@aventurevc/mcp-server 0.7.283 → 0.7.285
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.
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import{B as e,G as t,I as n,Q as r,S as i,U as a,X as o,Y as s,Z as c,_ as l,a as u,b as d,c as f,h as p,i as m,j as h,l as g,n as _,o as v,p as y,q as b,r as x,s as S,u as C}from"./esm-VTPP_TTM.js";import{C as w,D as T,E,H as D,S as O,T as k,_ as A,a as j,c as M,f as N,g as P,h as F,j as I,k as L,l as R,m as z,n as ee,o as B,r as te,s as V,t as ne,v as H,w as U,x as W}from"./person-owner-ChqQWHII.js";import G,{execFile as re}from"node:child_process";import{createHash as K}from"node:crypto";import{mkdir as ie,readFile as ae,stat as oe,writeFile as se}from"node:fs/promises";import{homedir as ce,platform as le}from"node:os";import ue,{basename as de,dirname as fe,extname as pe,join as q,resolve as me}from"node:path";import{inspect as he}from"util";import*as J from"zlib";import{Readable as ge}from"stream";import*as _e from"fs";import*as ve from"path";import Y,{argv as ye,env as be,stderr as xe}from"node:process";import{Buffer as Se}from"node:buffer";import Ce,{existsSync as we,readFileSync as Te,realpathSync as Ee}from"node:fs";import{fileURLToPath as De}from"node:url";import{EventEmitter as Oe}from"node:events";import{stripVTControlCharacters as ke}from"node:util";import{AsyncLocalStorage as Ae}from"node:async_hooks";var je={invalid_type:`invalid_type`,too_big:`too_big`,too_small:`too_small`,invalid_format:`invalid_format`,not_multiple_of:`not_multiple_of`,unrecognized_keys:`unrecognized_keys`,invalid_union:`invalid_union`,invalid_key:`invalid_key`,invalid_element:`invalid_element`,invalid_value:`invalid_value`,custom:`custom`},Me;Me||={};function Ne(e){return I(te,e)}var Pe=z(()=>U([w(),A(),R(),B(),M(Pe),W(w(),Pe)])),Fe;(function(e){e[e.UNSPECIFIED=0]=`UNSPECIFIED`,e[e.TRACE=1]=`TRACE`,e[e.TRACE2=2]=`TRACE2`,e[e.TRACE3=3]=`TRACE3`,e[e.TRACE4=4]=`TRACE4`,e[e.DEBUG=5]=`DEBUG`,e[e.DEBUG2=6]=`DEBUG2`,e[e.DEBUG3=7]=`DEBUG3`,e[e.DEBUG4=8]=`DEBUG4`,e[e.INFO=9]=`INFO`,e[e.INFO2=10]=`INFO2`,e[e.INFO3=11]=`INFO3`,e[e.INFO4=12]=`INFO4`,e[e.WARN=13]=`WARN`,e[e.WARN2=14]=`WARN2`,e[e.WARN3=15]=`WARN3`,e[e.WARN4=16]=`WARN4`,e[e.ERROR=17]=`ERROR`,e[e.ERROR2=18]=`ERROR2`,e[e.ERROR3=19]=`ERROR3`,e[e.ERROR4=20]=`ERROR4`,e[e.FATAL=21]=`FATAL`,e[e.FATAL2=22]=`FATAL2`,e[e.FATAL3=23]=`FATAL3`,e[e.FATAL4=24]=`FATAL4`})(Fe||={});var Ie=class{emit(e){}enabled(){return!1}},Le=new Ie;function Re(){return Le}var ze=Symbol.for(`io.opentelemetry.js.api.logs`),Be=globalThis;function Ve(e,t,n){return r=>r===e?t:n}var He=new class{getLogger(e,t,n){return new Ie}},Ue=class{constructor(e,t,n,r){this._provider=e,this.name=t,this.version=n,this.options=r}emit(e){this._getLogger().emit(e)}enabled(e){return this._getLogger().enabled(e)}_getLogger(){if(this._delegate)return this._delegate;let e=this._provider._getDelegateLogger(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):Le}},We=class{getLogger(e,t,n){return this._getDelegateLogger(e,t,n)??new Ue(this,e,t,n)}_getDelegate(){return this._delegate??He}_setDelegate(e){this._delegate=e}_getDelegateLogger(e,t,n){return this._delegate?.getLogger(e,t,n)}},Ge=class e{constructor(){this._proxyLoggerProvider=new We}static getInstance(){return this._instance||=new e,this._instance}setGlobalLoggerProvider(e){return Be[ze]?this.getLoggerProvider():(Be[ze]=Ve(1,e,He),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){return Be[ze]?.call(Be,1)??this._proxyLoggerProvider}getLogger(e,t,n){return this.getLoggerProvider().getLogger(e,t,n)}disable(){delete Be[ze],this._proxyLoggerProvider=new We}}.getInstance(),Ke=class{_delegate;constructor(e){this._delegate=e}export(e,t){this._delegate.export(e,t)}forceFlush(){return this._delegate.forceFlush()}shutdown(){return this._delegate.shutdown()}setMetrics(e){this._delegate.setMetrics(e)}},qe=class extends Error{code;name=`OTLPExporterError`;data;constructor(e,t,n){super(e),this.data=n,this.code=t}};function Je(e){if(Number.isFinite(e)&&e>0)return e;throw Error(`Configuration: timeoutMillis is invalid, expected number greater than 0 (actual: '${e}')`)}function Ye(e){if(e!=null)return async()=>e}function Xe(e,t,n){return{timeoutMillis:Je(e.timeoutMillis??t.timeoutMillis??n.timeoutMillis),concurrencyLimit:e.concurrencyLimit??t.concurrencyLimit??n.concurrencyLimit,compression:e.compression??t.compression??n.compression}}function Ze(){return{timeoutMillis:1e4,concurrencyLimit:30,compression:`none`}}var Qe=class{_concurrencyLimit;_sendingPromises=[];constructor(e){this._concurrencyLimit=e}pushPromise(e){if(this.hasReachedLimit())throw Error(`Concurrency Limit reached`);this._sendingPromises.push(e);let t=()=>{let t=this._sendingPromises.indexOf(e);this._sendingPromises.splice(t,1)};e.then(t,t)}hasReachedLimit(){return this._sendingPromises.length>=this._concurrencyLimit}async awaitAll(){await Promise.all(this._sendingPromises)}};function $e(e){return new Qe(e.concurrencyLimit)}function et(e){return e.setValue(rt,!0)}function tt(e){return e.deleteValue(rt)}function nt(e){return e.getValue(rt)===!0}var rt,it=o((()=>{y(),rt=a(`OpenTelemetry SDK Context Key SUPPRESS_TRACING`)})),at,ot,st=o((()=>{at=`baggage`,ot=4096}));function ct(e){return e.reduce((e,t)=>{let n=`${e}${e===``?``:`,`}${t}`;return n.length>8192?e:n},``)}function lt(e){return e.getAllEntries().map(([e,t])=>{let n=`${encodeURIComponent(e)}=${encodeURIComponent(t.value)}`;return t.metadata!==void 0&&(n+=`;`+t.metadata.toString()),n})}function ut(e){if(!e)return;let n=e.indexOf(`;`),r=n===-1?e:e.substring(0,n),i=r.indexOf(`=`);if(i<=0)return;let a=r.substring(0,i).trim(),o=r.substring(i+1).trim();if(!a||!o)return;let s,c;try{s=decodeURIComponent(a),c=decodeURIComponent(o)}catch{return}let l;if(n!==-1&&n<e.length-1){let r=e.substring(n+1);l=t(r)}return{key:s,value:c,metadata:l}}function dt(e,t,n,r){let i=0;for(;i<e.length&&n<180;){let a=e.indexOf(`,`,i),o=a===-1?e.length:a,s=o-i;if(s<=4096){let a=ut(e.substring(i,o));if(a){let e=(n===0?0:1)+s;if(r+e>8192)break;t[a.key]=a.metadata?{value:a.value,metadata:a.metadata}:{value:a.value},n++,r+=e}}if(a===-1)break;i=a+1}return[n,r]}function ft(e){let t={};return typeof e==`string`&&e.length>0&&e.split(`,`).forEach(e=>{let n=ut(e);n!==void 0&&n.value.length>0&&(t[n.key]=n.value)}),t}var pt=o((()=>{y(),st()})),mt,ht=o((()=>{y(),it(),st(),pt(),mt=class{inject(e,t,n){let r=l.getBaggage(e);if(!r||nt(e))return;let i=ct(lt(r).filter(e=>e.length<=ot).slice(0,180));i.length>0&&n.set(t,at,i)}extract(e,t,n){let r=n.get(t,at);if(!r)return e;let i={},a=0,o=0;if(Array.isArray(r))for(let e=0;e<r.length;e++)[a,o]=dt(r[e],i,a,o);else[a]=dt(r,i,a,o);return a===0?e:l.setBaggage(e,l.createBaggage(i))}fields(){return[at]}}})),gt,_t=o((()=>{gt=class{_monotonicClock;_epochMillis;_performanceMillis;constructor(e,t){this._monotonicClock=t,this._epochMillis=e.now(),this._performanceMillis=t.now()}now(){let e=this._monotonicClock.now()-this._performanceMillis;return this._epochMillis+e}}}));function vt(e){let t={};if(typeof e!=`object`||!e)return t;for(let n in e){if(!Object.prototype.hasOwnProperty.call(e,n))continue;if(!yt(n)){d.warn(`Invalid attribute key: ${n}`);continue}let r=e[n];if(!bt(r)){d.warn(`Invalid attribute value set for key: ${n}`);continue}t[n]=Array.isArray(r)?r.slice():r}return t}function yt(e){return typeof e==`string`&&e!==``}function bt(e){return e==null?!0:Array.isArray(e)?xt(e):St(typeof e)}function xt(e){let t;for(let n of e){if(n==null)continue;let e=typeof n;if(e!==t){if(!t){if(St(e)){t=e;continue}return!1}return!1}}return!0}function St(e){switch(e){case`number`:case`boolean`:case`string`:return!0}return!1}var Ct=o((()=>{y()}));function wt(){return e=>{d.error(Tt(e))}}function Tt(e){return typeof e==`string`?e:JSON.stringify(Et(e))}function Et(e){let t={},n=e;for(;n!==null;)Object.getOwnPropertyNames(n).forEach(e=>{if(t[e])return;let r=n[e];r&&(t[e]=String(r))}),n=Object.getPrototypeOf(n);return t}var Dt=o((()=>{y()}));function Ot(e){At=e}function kt(e){try{At(e)}catch{}}var At,jt=o((()=>{Dt(),At=wt()}));function Mt(e){let t=process.env[e];if(t==null||t.trim()===``)return;let n=Number(t);if(isNaN(n)){d.warn(`Unknown value ${he(t)} for ${e}, expected a number, using defaults`);return}return n}function Nt(e){let t=process.env[e];if(t!=null&&t.trim()!==``)return t}function Pt(e){let t=process.env[e]?.trim().toLowerCase();return t==null||t===``?!1:t===`true`||(t===`false`||d.warn(`Unknown value ${he(t)} for ${e}, expected 'true' or 'false', falling back to 'false' (default)`),!1)}function Ft(e){return Nt(e)?.split(`,`).map(e=>e.trim()).filter(e=>e!==``)}var It=o((()=>{y()})),Lt,Rt=o((()=>{Lt=globalThis})),zt,Bt=o((()=>{zt=`2.10.0`})),Vt,Ht=o((()=>{Vt=`process.runtime.name`})),Ut,Wt=o((()=>{Bt(),_(),Ht(),Ut={[f]:`opentelemetry`,[Vt]:`node`,[S]:C,[g]:zt}})),Gt,Kt=o((()=>{It(),Rt(),Wt(),Gt=performance})),qt=o((()=>{Kt()}));function Jt(e){let t=e/1e3;return[Math.trunc(t),Math.round(e%1e3*ln)]}function Yt(){return Gt.timeOrigin}function Xt(e){return sn(Jt(Gt.timeOrigin),Jt(typeof e==`number`?e:Gt.now()))}function Zt(e){if(an(e))return e;if(typeof e==`number`)return e<Gt.timeOrigin/2?Xt(e):Jt(e);if(e instanceof Date)return Jt(e.getTime());throw TypeError(`Invalid input type`)}function Qt(e,t){let n=t[0]-e[0],r=t[1]-e[1];return r<0&&(--n,r+=un),[n,r]}function $t(e){let t=cn,n=`${`0`.repeat(t)}${e[1]}Z`,r=n.substring(n.length-t-1);return new Date(e[0]*1e3).toISOString().replace(`000Z`,r)}function en(e){return e[0]*un+e[1]}function tn(e){return e[0]*1e6+e[1]/1e3}function nn(e){return e[0]*1e3+e[1]/1e6}function rn(e){return e[0]+e[1]/un}function an(e){return Array.isArray(e)&&e.length===2&&typeof e[0]==`number`&&typeof e[1]==`number`}function on(e){return an(e)||typeof e==`number`||e instanceof Date}function sn(e,t){let n=[e[0]+t[0],e[1]+t[1]];return n[1]>=un&&(n[1]-=un,n[0]+=1),n}var cn,ln,un,dn=o((()=>{qt(),cn=9,ln=10**6,un=10**cn}));function fn(e){typeof e!=`number`&&e.unref()}var pn=o((()=>{})),mn,hn=o((()=>{(function(e){e[e.SUCCESS=0]=`SUCCESS`,e[e.FAILED=1]=`FAILED`})(mn||={})})),gn,_n=o((()=>{y(),gn=class{_propagators;_fields;constructor(e={}){this._propagators=e.propagators??[];let t=new Set;for(let e of this._propagators){let n=typeof e.fields==`function`?e.fields():[];for(let e of n)t.add(e)}this._fields=Array.from(t)}inject(e,t,n){for(let r of this._propagators)try{r.inject(e,t,n)}catch(e){d.warn(`Failed to inject with ${r.constructor.name}. Err: ${e.message}`)}}extract(e,t,n){return this._propagators.reduce((e,r)=>{try{return r.extract(e,t,n)}catch(e){d.warn(`Failed to extract with ${r.constructor.name}. Err: ${e.message}`)}return e},e)}fields(){return this._fields.slice()}}}));function vn(e){return xn.test(e)}function yn(e){return Sn.test(e)&&!Cn.test(e)}var bn,xn,Sn,Cn,wn=o((()=>{bn=`[_0-9a-z-*/]`,xn=RegExp(`^(?:${`[a-z]${bn}{0,255}`}|${`[a-z0-9]${bn}{0,240}@[a-z]${bn}{0,13}`})$`),Sn=/^[ -~]{0,255}[!-~]$/,Cn=/,|=/})),Tn,En,Dn,On,kn,An=o((()=>{wn(),Tn=32,En=512,Dn=`,`,On=`=`,kn=class e{_length;_rawTraceState;_internalState;constructor(e){this._rawTraceState=typeof e==`string`?e:``,this._length=this._rawTraceState.length}set(e,t){if(!vn(e)||!yn(t))return this;let n=this._getState(),r=n.get(e),i=this._length;if(i+=typeof r==`string`?t.length-r.length:e.length+t.length+(n.size>0?2:1),i>En)return this;let a=new Map(n);return a.delete(e),a.set(e,t),this._fromState(a,i)}unset(e){let t=this._getState(),n=t.get(e);if(typeof n!=`string`)return this;let r=this._length-(e.length+n.length+1);t.size>1&&--r;let i=new Map(t);return i.delete(e),this._fromState(i,r)}get(e){return this._getState().get(e)}serialize(){let e=``,t=0;for(let n of this._getState())t>0&&(e=Dn+e),e=`${n[0]}${On}${n[1]}`+e,t++;return e}_getState(){if(this._internalState)return this._internalState;let e=this._rawTraceState.split(Dn),t=new Map,n=0;for(let r of e){let e=r.trim(),i=e.indexOf(On);if(i===-1)continue;let a=e.slice(0,i),o=e.slice(i+1);if(!vn(a)||!yn(o))continue;let s=n+e.length+ +(t.size>0);if(!(s>En)&&(t.set(a,o),n=s,t.size>=Tn))break}return this._length=n,this._internalState=new Map(Array.from(t.entries()).reverse()),this._internalState}_fromState(t,n){let r=Object.create(e.prototype);return r._internalState=t,r._length=n,r}}}));function jn(e){let t=Fn.exec(e);return!t||t[1]===`00`&&t[5]?null:{traceId:t[2],spanId:t[3],traceFlags:parseInt(t[4],16)}}var Mn,Nn,Pn,Fn,In,Ln=o((()=>{y(),it(),An(),Mn=`traceparent`,Nn=`tracestate`,Pn=`00`,Fn=RegExp(`^\\s?((?!ff)[\\da-f]{2})-((?![0]{32})[\\da-f]{32})-((?![0]{16})[\\da-f]{16})-([\\da-f]{2})(-.*)?\\s?$`),In=class{inject(e,t,r){let i=p.getSpanContext(e);if(!i||nt(e)||!h(i))return;let a=`${Pn}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||n.NONE).toString(16)}`;r.set(t,Mn,a),i.traceState&&r.set(t,Nn,i.traceState.serialize())}extract(e,t,n){let r=n.get(t,Mn);if(!r)return e;let i=Array.isArray(r)?r[0]:r;if(typeof i!=`string`)return e;let a=jn(i);if(!a)return e;a.isRemote=!0;let o=n.get(t,Nn);if(o){let e=Array.isArray(o)?o.join(`,`):o;a.traceState=new kn(typeof e==`string`?e:void 0)}return p.setSpanContext(e,a)}fields(){return[Mn,Nn]}}}));function Rn(e,t){return e.setValue(Vn,t)}function zn(e){return e.deleteValue(Vn)}function Bn(e){return e.getValue(Vn)}var Vn,Hn,Un=o((()=>{y(),Vn=a(`OpenTelemetry SDK Context Key RPC_METADATA`),(function(e){e.HTTP=`http`})(Hn||={})}));function Wn(e){if(!Gn(e)||Kn(e)!==Yn)return!1;let t=er(e);if(t===null)return!0;let n=nr.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n instanceof n&&Qn.call(n)===$n}function Gn(e){return typeof e==`object`&&!!e}function Kn(e){return e==null?e===void 0?Zn:Xn:rr&&rr in Object(e)?qn(e):Jn(e)}function qn(e){let t=nr.call(e,rr),n=e[rr],r=!1;try{e[rr]=void 0,r=!0}catch{}let i=ir.call(e);return r&&(t?e[rr]=n:delete e[rr]),i}function Jn(e){return ir.call(e)}var Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir,ar=o((()=>{Yn=`[object Object]`,Xn=`[object Null]`,Zn=`[object Undefined]`,Qn=Function.prototype.toString,$n=Qn.call(Object),er=Object.getPrototypeOf,tr=Object.prototype,nr=tr.hasOwnProperty,rr=Symbol?Symbol.toStringTag:void 0,ir=tr.toString}));function or(...e){let t=e.shift(),n=new WeakMap;for(;e.length>0;)t=cr(t,e.shift(),0,n);return t}function sr(e){return ur(e)?e.slice():e}function cr(e,t,n=0,r){let i;if(!(n>hr)){if(n++,pr(e)||pr(t)||dr(t))i=sr(t);else if(ur(e)){if(i=e.slice(),ur(t))for(let e=0,n=t.length;e<n;e++)i.push(sr(t[e]));else if(fr(t)){let e=Object.keys(t);for(let n=0,r=e.length;n<r;n++){let r=e[n];r!==`__proto__`&&r!==`constructor`&&r!==`prototype`&&(i[r]=sr(t[r]))}}}else if(fr(e)){if(fr(t)){if(!mr(e,t))return t;i=Object.assign({},e);let a=Object.keys(t);for(let o=0,s=a.length;o<s;o++){let s=a[o];if(s===`__proto__`||s===`constructor`||s===`prototype`)continue;let c=t[s];if(pr(c))c===void 0?delete i[s]:i[s]=c;else{let a=i[s],o=c;if(lr(e,s,r)||lr(t,s,r))delete i[s];else{if(fr(a)&&fr(o)){let n=r.get(a)||[],i=r.get(o)||[];n.push({obj:e,key:s}),i.push({obj:t,key:s}),r.set(a,n),r.set(o,i)}i[s]=cr(i[s],c,n,r)}}}}else i=t}return i}}function lr(e,t,n){let r=n.get(e[t])||[];for(let n=0,i=r.length;n<i;n++){let i=r[n];if(i.key===t&&i.obj===e)return!0}return!1}function ur(e){return Array.isArray(e)}function dr(e){return typeof e==`function`}function fr(e){return!pr(e)&&!ur(e)&&!dr(e)&&typeof e==`object`}function pr(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||e===void 0||e instanceof Date||e instanceof RegExp||e===null}function mr(e,t){return!(!Wn(e)||!Wn(t))}var hr,gr=o((()=>{ar(),hr=20}));function _r(e,t){let n,r=new Promise(function(e,r){n=setTimeout(function(){r(new vr(`Operation timed out.`))},t)});return Promise.race([e,r]).then(e=>(clearTimeout(n),e),e=>{throw clearTimeout(n),e})}var vr,yr=o((()=>{vr=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}}}));function br(e,t){return typeof t==`string`?e===t:!!e.match(t)}function xr(e,t){if(!t)return!1;for(let n of t)if(br(e,n))return!0;return!1}var Sr=o((()=>{})),Cr,wr=o((()=>{Cr=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((e,t)=>{this._resolve=e,this._reject=t})}get promise(){return this._promise}resolve(e){this._resolve(e)}reject(e){this._reject(e)}}})),Tr,Er=o((()=>{wr(),Tr=class{_isCalled=!1;_deferred=new Cr;_callback;_that;constructor(e,t){this._callback=e,this._that=t}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...e){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...e)).then(e=>this._deferred.resolve(e),e=>this._deferred.reject(e))}catch(e){this._deferred.reject(e)}}return this._deferred.promise}}}));function Dr(e){return e==null?void 0:Or[e.toUpperCase()]??(d.warn(`Unknown log level "${e}", expected one of ${Object.keys(Or)}, using default`),b.INFO)}var Or,kr=o((()=>{y(),Or={ALL:b.ALL,VERBOSE:b.VERBOSE,DEBUG:b.DEBUG,INFO:b.INFO,WARN:b.WARN,ERROR:b.ERROR,NONE:b.NONE}}));function Ar(e,t){return new Promise(n=>{i.with(et(i.active()),()=>{e.export(t,n)})})}var jr=o((()=>{y(),it()})),Mr=c({AnchoredClock:()=>gt,BindOnceFuture:()=>Tr,CompositePropagator:()=>gn,ExportResultCode:()=>mn,RPCType:()=>Hn,SDK_INFO:()=>Ut,TRACE_PARENT_HEADER:()=>Mn,TRACE_STATE_HEADER:()=>Nn,TimeoutError:()=>vr,TraceState:()=>kn,W3CBaggagePropagator:()=>mt,W3CTraceContextPropagator:()=>In,_globalThis:()=>Lt,addHrTimes:()=>sn,callWithTimeout:()=>_r,deleteRPCMetadata:()=>zn,diagLogLevelFromString:()=>Dr,getBooleanFromEnv:()=>Pt,getNumberFromEnv:()=>Mt,getRPCMetadata:()=>Bn,getStringFromEnv:()=>Nt,getStringListFromEnv:()=>Ft,getTimeOrigin:()=>Yt,globalErrorHandler:()=>kt,hrTime:()=>Xt,hrTimeDuration:()=>Qt,hrTimeToMicroseconds:()=>tn,hrTimeToMilliseconds:()=>nn,hrTimeToNanoseconds:()=>en,hrTimeToSeconds:()=>rn,hrTimeToTimeStamp:()=>$t,internal:()=>Nr,isAttributeValue:()=>bt,isTimeInput:()=>on,isTimeInputHrTime:()=>an,isTracingSuppressed:()=>nt,isUrlIgnored:()=>xr,loggingErrorHandler:()=>wt,merge:()=>or,millisToHrTime:()=>Jt,otperformance:()=>Gt,parseKeyPairsIntoRecord:()=>ft,parseTraceParent:()=>jn,sanitizeAttributes:()=>vt,setGlobalErrorHandler:()=>Ot,setRPCMetadata:()=>Rn,suppressTracing:()=>et,timeInputToHrTime:()=>Zt,unrefTimer:()=>fn,unsuppressTracing:()=>tt,urlMatches:()=>br}),Nr,Pr=o((()=>{ht(),_t(),Ct(),jt(),Dt(),dn(),pn(),hn(),pt(),qt(),_n(),Ln(),Un(),it(),An(),gr(),yr(),Sr(),Er(),kr(),jr(),Nr={_export:Ar}}));Pr(),y();function Fr(e){return Object.prototype.hasOwnProperty.call(e,`partialSuccess`)}function Ir(){return{handleResponse(e){e!=null&&Fr(e)&&e.partialSuccess!=null&&Object.keys(e.partialSuccess).length!==0&&d.warn(`Received Partial Success response:`,JSON.stringify(e.partialSuccess))}}}y();var Lr=class{_metrics;_diagLogger;_transport;_serializer;_responseHandler;_promiseQueue;_timeout;constructor(e,t,n,r,i,a){this._transport=e,this._serializer=t,this._responseHandler=n,this._promiseQueue=r,this._timeout=a,this._diagLogger=d.createComponentLogger({namespace:`OTLPExportDelegate`}),this._metrics=i}export(e,t){if(this._diagLogger.debug(`items to be sent`,e),this._promiseQueue.hasReachedLimit()){t({code:mn.FAILED,error:Error(`Concurrent export limit reached`)});return}let n=this._serializer.serializeRequest(e);if(n==null){t({code:mn.FAILED,error:Error(`Nothing to send`)});return}let r=this._metrics.startExport(e);this._promiseQueue.pushPromise(this._transport.send(n,this._timeout).then(e=>{if(e.status===`success`){if(r(void 0),e.data!=null)try{this._responseHandler.handleResponse(this._serializer.deserializeResponse(e.data))}catch(t){this._diagLogger.warn(`Export succeeded but could not deserialize response - is the response specification compliant?`,t,e.data)}t({code:mn.SUCCESS});return}if(e.status===`failure`&&e.error){r(e.error),t({code:mn.FAILED,error:e.error});return}e.status===`retryable`?(r(`export_max_retries`),t({code:mn.FAILED,error:e.error??new qe(`Export failed with retryable status`)})):(r(`export_failed`),t({code:mn.FAILED,error:new qe(`Export failed with unknown error`)}))},e=>{r(e),t({code:mn.FAILED,error:e})}))}forceFlush(){return this._promiseQueue.awaitAll()}setMetrics(e){this._metrics=e}async shutdown(){this._diagLogger.debug(`shutdown started`),await this.forceFlush(),this._transport.shutdown()}};function Rr(e,t){return new Lr(e.transport,e.serializer,Ir(),e.promiseHandler,e.metrics,t.timeout)}var zr=`http.response.status_code`,Br=`otel.component.name`,Vr=`otel.component.type`,Hr=`server.address`,Ur=`server.port`,Wr=`error.type`,Gr=`0.221.0`;y(),Pr();var Kr=new Map,qr=class{inflight;exported;duration;standardAttrs;responseAttributesFromError;helper;constructor(t){let{componentType:n,metricsHelper:r,meterProvider:i,url:a,responseAttributesFromError:o}=t;this.responseAttributesFromError=o;let s=i?i.getMeter(`@opentelemetry/otlp-exporter`,Gr):e(),c=Kr.get(n)??0;if(Kr.set(n,c+1),this.standardAttrs={[Vr]:n,[Br]:`${n}/${c}`},a){let e=a;a.includes(`://`)||(e=`http://${a}`);try{let t=new URL(e);this.standardAttrs[Hr]=t.hostname;let n;t.port?n=Number(t.port):t.protocol===`http:`?n=80:t.protocol===`https:`&&(n=443),typeof n==`number`&&(this.standardAttrs[Ur]=n)}catch{}}this.helper=r,this.inflight=s.createUpDownCounter(`otel.sdk.exporter.${this.helper.name}.inflight`,{unit:`{${this.helper.name}}`,description:`The number of ${this.helper.name}s which were passed to the exporter, but that have not been exported yet (neither successful, nor failed).`}),this.exported=s.createCounter(`otel.sdk.exporter.${this.helper.name}.exported`,{unit:`{${this.helper.name}}`,description:`The number of ${this.helper.name}s for which the export has finished, either successful or failed.`}),this.duration=s.createHistogram(`otel.sdk.exporter.operation.duration`,{unit:`s`,description:`The duration of exporting a batch of telemetry records.`,advice:{explicitBucketBoundaries:[]}})}startExport(e){let t=this.helper.countItems(e),n=Xt();return this.inflight.add(t,this.standardAttrs),e=>{let r=Xt();this.inflight.add(-t,this.standardAttrs);let i=e?{...this.standardAttrs,[Wr]:e instanceof Error?e.name:`export_failed`}:this.standardAttrs;this.exported.add(t,i);let a={...i,...this.responseAttributesFromError(e)},o=nn(Qt(n,r))/1e3;this.duration.record(o,a)}}},Jr={name:`log`,countItems:e=>e.length};function Yr(){if(Xr===void 0)try{let e=globalThis.process.argv0;Xr=e?`unknown_service:${e}`:`unknown_service`}catch{Xr=`unknown_service`}return Xr}var Xr,Zr=o((()=>{})),Qr,$r=o((()=>{Qr=e=>typeof e==`object`&&!!e&&typeof e.then==`function`}));function ei(e,t){return ai.FromAttributeList(Object.entries(e),t)}function ti(){return ei({[v]:Yr(),[S]:Ut[S],[f]:Ut[f],[g]:Ut[g]})}function ni(e){return e.map(([e,t])=>Qr(t)?[e,t.catch(t=>{d.debug(`promise rejection for resource attribute: %s - %s`,e,t)})]:[e,t])}function ri(e){if(typeof e==`string`||e===void 0)return e;d.warn(`Schema URL must be string or undefined, got %s. Schema URL will be ignored.`,e)}function ii(e,t){let n=e?.schemaUrl,r=t?.schemaUrl,i=n===void 0||n===``,a=r===void 0||r===``;if(i)return r;if(a||n===r)return n;d.warn(`Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.`,n,r)}var ai,oi=o((()=>{y(),Pr(),_(),Zr(),$r(),ai=class e{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(t,n){let r=new e({},n);return r._rawAttributes=ni(t),r._asyncAttributesPending=t.filter(([e,t])=>Qr(t)).length>0,r}constructor(e,t){let n=e.attributes??{};this._rawAttributes=Object.entries(n).map(([e,t])=>(Qr(t)&&(this._asyncAttributesPending=!0),[e,t])),this._rawAttributes=ni(this._rawAttributes),this._schemaUrl=ri(t?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let e=0;e<this._rawAttributes.length;e++){let[t,n]=this._rawAttributes[e];this._rawAttributes[e]=[t,Qr(n)?await n:n]}this._asyncAttributesPending=!1}}get attributes(){if(this.asyncAttributesPending&&d.error(`Accessing resource attributes before async attributes settled`),this._memoizedAttributes)return this._memoizedAttributes;let e={};for(let[t,n]of this._rawAttributes){if(Qr(n)){d.debug(`Unsettled resource attribute ${t} skipped`);continue}n!=null&&(e[t]??=n)}return this._asyncAttributesPending||(this._memoizedAttributes=e),e}getRawAttributes(){return this._rawAttributes}get schemaUrl(){return this._schemaUrl}merge(t){if(t==null)return this;let n=ii(this,t),r=n?{schemaUrl:n}:void 0;return e.FromAttributeList([...t.getRawAttributes(),...this.getRawAttributes()],r)}}})),si=o((()=>{oi(),Pr(),Zr()}));function ci(e,t){let n={attributes:ui(e.attributes,t),droppedAttributesCount:0},r=e.schemaUrl;return r&&r!==``&&(n.schemaUrl=r),n}function li(e,t){let n={name:e.name,version:e.version};return e.attributes&&Object.keys(e.attributes).length>0&&(n.attributes=ui(e.attributes,t),n.droppedAttributesCount=e.droppedAttributesCount??0),n}function ui(e,t){return Object.keys(e).map(n=>di(n,e[n],t))}function di(e,t,n){return{key:e,value:fi(t,n)}}function fi(e,t){let n=typeof e;if(n===`string`)return{stringValue:e};if(n===`number`)return Number.isInteger(e)?{intValue:e}:{doubleValue:e};if(n===`boolean`)return{boolValue:e};if(e instanceof Uint8Array)return{bytesValue:t.encodeUint8Array(e)};if(Array.isArray(e)){let n=Array(e.length);for(let r=0;r<e.length;r++)n[r]=fi(e[r],t);return{arrayValue:{values:n}}}if(n===`object`&&e!=null){let n=Object.keys(e),r=Array(n.length);for(let i=0;i<n.length;i++)r[i]={key:n[i],value:fi(e[n[i]],t)};return{kvlistValue:{values:r}}}return{}}function pi(e,t){return{resourceLogs:hi(e,t)}}function mi(e){let t=new Map;for(let n of e){let{resource:e,instrumentationScope:r}=n,i=t.get(e);i||(i=new Map,t.set(e,i));let a=i.get(r);a||(a=[],i.set(r,a)),a.push(n)}return t}function hi(e,t){let n=mi(e);return Array.from(n,([e,n])=>{let r=ci(e,t);return{resource:r,scopeLogs:Array.from(n,([,e])=>({scope:li(e[0].instrumentationScope,t),logRecords:e.map(e=>gi(e,t)),schemaUrl:e[0].instrumentationScope.schemaUrl})),schemaUrl:r.schemaUrl}})}function gi(e,t){return{timeUnixNano:t.encodeHrTime(e.hrTime),observedTimeUnixNano:t.encodeHrTime(e.hrTimeObserved),severityNumber:_i(e.severityNumber),severityText:e.severityText,body:fi(e.body,t),eventName:e.eventName,attributes:ui(e.attributes,t),droppedAttributesCount:e.droppedAttributesCount,flags:e.spanContext?.traceFlags,traceId:t.encodeOptionalSpanContext(e.spanContext?.traceId),spanId:t.encodeOptionalSpanContext(e.spanContext?.spanId)}}function _i(e){return e}Pr();function vi(e){let t=BigInt(1e9);return BigInt(Math.trunc(e[0]))*t+BigInt(Math.trunc(e[1]))}function yi(e){return vi(e).toString()}var bi=typeof BigInt<`u`?yi:en;function xi(e){return e}var Si={encodeHrTime:bi,encodeSpanContext:xi,encodeOptionalSpanContext:xi,encodeUint8Array:e=>{if(typeof Buffer<`u`)return Buffer.from(e).toString(`base64`);let t=Array(e.length);for(let n=0;n<e.length;n++)t[n]=String.fromCharCode(e[n]);return btoa(t.join(``))}};y();var Ci={serializeRequest:e=>{let t=pi(e,Si);return new TextEncoder().encode(JSON.stringify(t))},deserializeResponse:e=>{if(e.length===0)return{};let t=new TextDecoder;try{return JSON.parse(t.decode(e))}catch(e){return d.warn(`Failed to parse logs export response: ${e.message}. Returning empty response`),{}}}};y();function wi(e){let t={};return Object.entries(e??{}).forEach(([e,n])=>{n===void 0?d.warn(`Header "${e}" has invalid value (${n}) and will be ignored`):t[e]=String(n)}),t}function Ti(e,t,n){return async()=>{let r={...await n()},i={};return t!=null&&Object.assign(i,await t()),e!=null&&Object.assign(i,wi(await e())),Object.assign(i,r)}}function Ei(e){if(e!=null)try{let t=globalThis.location?.href;return new URL(e,t).href}catch{throw Error(`Configuration: Could not parse user-provided export URL: '${e}'`)}}function Di(e,t,n){return{...Xe(e,t,n),headers:Ti(e.headers,t.headers,n.headers),url:Ei(e.url)??t.url??n.url}}function Oi(e,t){return{...Ze(),headers:async()=>e,url:`http://localhost:4318/`+t}}function ki(e){return async t=>{let n=t===`http:`,{Agent:r}=await(n?import(`http`):import(`https`));if(n){let{ca:t,cert:n,key:i,...a}=e;return new r(a)}return new r(e)}}function Ai(e,t,n){return{...Di(e,t,n),agentFactory:e.agentFactory??t.agentFactory??n.agentFactory,userAgent:e.userAgent}}function ji(e,t){return{...Oi(e,t),agentFactory:ki({keepAlive:!0})}}function Mi(e){return e===429||e===502||e===503||e===504}function Ni(e){if(e==null)return;let t=Number.parseInt(e,10);if(Number.isInteger(t))return t>0?t*1e3:-1;let n=new Date(e).getTime()-Date.now();return n>=0?n:0}var Pi=`OTel-OTLP-Exporter-JavaScript/${Gr}`,Fi=4194304;function Ii(e,t,n,r,i,a,o,s){return new Promise(c=>{let l=new URL(t);n[`User-Agent`]=i?`${i} ${Pi}`:Pi;let u=e(l,{method:`POST`,headers:n,agent:a},e=>{let t=[],n=0;e.on(`data`,r=>{if(n+=r.length,n>4194304){c({status:`failure`,error:Error(`OTLP export response body exceeded size limit of ${Fi} bytes`)}),e.destroy();return}t.push(r)}),e.on(`end`,()=>{e.statusCode&&e.statusCode<=299?c({status:`success`,data:Buffer.concat(t)}):e.statusCode&&Mi(e.statusCode)?c({status:`retryable`,retryInMillis:Ni(e.headers[`retry-after`])}):c({status:`failure`,error:new qe(e.statusMessage,e.statusCode,Buffer.concat(t).toString())})}),e.on(`error`,t=>{e.statusCode&&e.statusCode<=299?c({status:`success`}):e.statusCode&&Mi(e.statusCode)?c({status:`retryable`,error:t,retryInMillis:Ni(e.headers[`retry-after`])}):c({status:`failure`,error:t})})});u.setTimeout(s,()=>{u.destroy(),c({status:`retryable`,error:Error(`Request timed out`)})}),u.on(`error`,e=>{zi(e)?c({status:`retryable`,error:e}):c({status:`failure`,error:e})}),Li(u,r,o,e=>{c({status:`failure`,error:e})})})}function Li(e,t,n,r){let i=Ri(n);t===`gzip`&&(e.setHeader(`Content-Encoding`,`gzip`),i=i.on(`error`,r).pipe(J.createGzip()).on(`error`,r)),i.pipe(e).on(`error`,r)}function Ri(e){let t=new ge;return t.push(e),t.push(null),t}function zi(e){let t=new Set([`ECONNRESET`,`ECONNREFUSED`,`EPIPE`,`ETIMEDOUT`,`EAI_AGAIN`,`ENOTFOUND`,`ENETUNREACH`,`EHOSTUNREACH`]);return`code`in e&&typeof e.code==`string`&&t.has(e.code)}var Bi=class{_utils=null;_parameters;constructor(e){this._parameters=e}async send(e,t){let{agent:n,request:r}=await this._loadUtils(),i=await this._parameters.headers();return Ii(r,this._parameters.url,i,this._parameters.compression,this._parameters.userAgent,n,e,t)}shutdown(){}async _loadUtils(){let e=this._utils;if(e===null){let t=new URL(this._parameters.url).protocol,[n,r]=await Promise.all([this._parameters.agentFactory(t),Vi(t)]);e=this._utils={agent:n,request:r}}return e}};async function Vi(e){let{request:t}=await(e===`http:`?import(`http`):import(`https`));return t}function Hi(e){return new Bi(e)}y();var Ui=5,Wi=1e3,Gi=5e3,Ki=1.5,qi=.2;function Ji(){return 2*qi*Math.random()-qi}var Yi=class{_transport;constructor(e){this._transport=e}retry(e,t,n){return new Promise((r,i)=>{setTimeout(()=>{this._transport.send(e,t).then(r,i)},n)})}async send(e,t){let n=Ui,r=Wi,i=Date.now()+t,a=await this._transport.send(e,t);for(;a.status===`retryable`&&n>0;){n--;let t=Math.max(Math.min(r*(1+Ji()),Gi),0);r*=Ki;let o=a.retryInMillis??t,s=i-Date.now();if(o>s)return d.info(`Export retry time ${Math.round(o)}ms exceeds remaining timeout ${Math.round(s)}ms, not retrying further.`),a;d.verbose(`Scheduling export retry in ${Math.round(o)}ms`),a=await this.retry(e,s,o)}return a.status===`success`?d.verbose(`Export succeeded after ${Ui-n} retry attempts.`):a.status===`retryable`?d.info(`Export failed after maximum retry attempts (${Ui}).`):d.info(`Export failed with non-retryable error: ${a.error}`),a}shutdown(){return this._transport.shutdown()}};function Xi(e){return new Yi(e.transport)}function Zi(e,t,n,r){return new qr({componentType:e,metricsHelper:t,url:n,meterProvider:r,responseAttributesFromError:e=>e?e instanceof qe?{[zr]:e.code}:{}:{[zr]:200}})}function Qi(e,t,n,r,i){return Rr({transport:Xi({transport:Hi(e)}),serializer:t,promiseHandler:$e(e),metrics:Zi(n,r,e.url,i)},{timeout:e.timeoutMillis})}Pr(),y();function $i(e){let t=Mt(e);if(t!=null){if(Number.isFinite(t)&&t>0)return t;d.warn(`Configuration: ${e} is invalid, expected number greater than 0 (actual: ${t})`)}}function ea(e){let t=$i(`OTEL_EXPORTER_OTLP_${e}_TIMEOUT`),n=$i(`OTEL_EXPORTER_OTLP_TIMEOUT`);return t??n}function ta(e){let t=Nt(e)?.trim();if(t==null||t===`none`||t===`gzip`)return t;d.warn(`Configuration: ${e} is invalid, expected 'none' or 'gzip' (actual: '${t}')`)}function na(e){let t=ta(`OTEL_EXPORTER_OTLP_${e}_COMPRESSION`),n=ta(`OTEL_EXPORTER_OTLP_COMPRESSION`);return t??n}function ra(e){return{timeoutMillis:ea(e),compression:na(e)}}Pr(),y();function ia(e){let t=Nt(`OTEL_EXPORTER_OTLP_${e}_HEADERS`),n=Nt(`OTEL_EXPORTER_OTLP_HEADERS`),r=ft(t),i=ft(n);if(Object.keys(r).length!==0||Object.keys(i).length!==0)return Object.assign({},ft(n),ft(t))}function aa(e){try{return new URL(e).toString()}catch{d.warn(`Configuration: Could not parse environment-provided export URL: '${e}', falling back to undefined`);return}}function oa(e,t){try{new URL(e)}catch{d.warn(`Configuration: Could not parse environment-provided export URL: '${e}', falling back to undefined`);return}e.endsWith(`/`)||(e+=`/`),e+=t;try{new URL(e)}catch{d.warn(`Configuration: Provided URL appended with '${t}' is not a valid URL, using 'undefined' instead of '${e}'`);return}return e}function sa(e){let t=Nt(`OTEL_EXPORTER_OTLP_ENDPOINT`);if(t!==void 0)return oa(t,e)}function ca(e){let t=Nt(`OTEL_EXPORTER_OTLP_${e}_ENDPOINT`);if(t!==void 0)return aa(t)}function la(e,t,n){let r=Nt(e),i=Nt(t),a=r??i;if(a!=null)try{return _e.readFileSync(ve.resolve(process.cwd(),a))}catch{d.warn(n);return}}function ua(e){return la(`OTEL_EXPORTER_OTLP_${e}_CLIENT_CERTIFICATE`,`OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`,`Failed to read client certificate chain file`)}function da(e){return la(`OTEL_EXPORTER_OTLP_${e}_CLIENT_KEY`,`OTEL_EXPORTER_OTLP_CLIENT_KEY`,`Failed to read client certificate private key file`)}function fa(e){return la(`OTEL_EXPORTER_OTLP_${e}_CERTIFICATE`,`OTEL_EXPORTER_OTLP_CERTIFICATE`,`Failed to read root certificate file`)}function pa(e,t){return{...ra(e),url:ca(e)??sa(t),headers:Ye(ia(e)),agentFactory:ki({keepAlive:!0,ca:fa(e),cert:ua(e),key:da(e)})}}function ma(e){return typeof e.headers==`function`?e.headers:Ye(e.headers)}y();function ha(e){if(typeof e.httpAgentOptions==`function`)return e.httpAgentOptions;let t=e.httpAgentOptions;if(e.keepAlive!=null&&(t={keepAlive:e.keepAlive,...t}),t!=null)return ki(t)}function ga(e,t,n,r){return e.metadata&&d.warn(`Metadata cannot be set when using http`),Ai({url:e.url,headers:ma(e),concurrencyLimit:e.concurrencyLimit,timeoutMillis:e.timeoutMillis,compression:e.compression,agentFactory:ha(e),userAgent:e.userAgent},pa(t,n),ji(r,n))}var _a=`otlp_http_log_exporter`,va=class extends Ke{constructor(e={}){super(Qi(ga(e,`LOGS`,`v1/logs`,{"Content-Type":`application/json`}),Ci,_a,Jr,e.selfObsMeterProvider))}};function ya(e){let t=process.env[e];if(t!=null&&t.trim()!==``)return t}var ba=`2.11.0`,xa=`process.runtime.name`;_();var Sa={[f]:`opentelemetry`,[xa]:`node`,[S]:C,[g]:ba},Ca;function wa(){if(Ca===void 0)try{let e=globalThis.process.argv0;Ca=e?`unknown_service:${e}`:`unknown_service`}catch{Ca=`unknown_service`}return Ca}var Ta=e=>typeof e==`object`&&!!e&&typeof e.then==`function`;y(),_();var Ea=class e{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(t,n){let r=new e({},n);return r._rawAttributes=ka(t),r._asyncAttributesPending=t.filter(([e,t])=>Ta(t)).length>0,r}constructor(e,t){let n=e.attributes??{};this._rawAttributes=Object.entries(n).map(([e,t])=>(Ta(t)&&(this._asyncAttributesPending=!0),[e,t])),this._rawAttributes=ka(this._rawAttributes),this._schemaUrl=Aa(t?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let e=0;e<this._rawAttributes.length;e++){let[t,n]=this._rawAttributes[e];this._rawAttributes[e]=[t,Ta(n)?await n:n]}this._asyncAttributesPending=!1}}get attributes(){if(this.asyncAttributesPending&&d.error(`Accessing resource attributes before async attributes settled`),this._memoizedAttributes)return this._memoizedAttributes;let e={};for(let[t,n]of this._rawAttributes){if(Ta(n)){d.debug(`Unsettled resource attribute ${t} skipped`);continue}n!=null&&(e[t]??=n)}return this._asyncAttributesPending||(this._memoizedAttributes=e),e}getRawAttributes(){return this._rawAttributes}get schemaUrl(){return this._schemaUrl}merge(t){if(t==null)return this;let n=ja(this,t),r=n?{schemaUrl:n}:void 0;return e.FromAttributeList([...t.getRawAttributes(),...this.getRawAttributes()],r)}};function Da(e,t){return Ea.FromAttributeList(Object.entries(e),t)}function Oa(){return Da({[v]:wa(),[S]:Sa[S],[f]:Sa[f],[g]:Sa[g]})}function ka(e){return e.map(([e,t])=>Ta(t)?[e,t.catch(t=>{d.debug(`promise rejection for resource attribute: %s - %s`,e,t)})]:[e,t])}function Aa(e){if(typeof e==`string`||e===void 0)return e;d.warn(`Schema URL must be string or undefined, got %s. Schema URL will be ignored.`,e)}function ja(e,t){let n=e?.schemaUrl,r=t?.schemaUrl,i=n===void 0||n===``,a=r===void 0||r===``;if(i)return r;if(a||n===r)return n;d.warn(`Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.`,n,r)}y(),_();var Ma=new class{_MAX_LENGTH=255;_COMMA_SEPARATOR=`,`;_LABEL_KEY_VALUE_SPLITTER=`=`;detect(e){let t={},n=ya(`OTEL_RESOURCE_ATTRIBUTES`),r=ya(`OTEL_SERVICE_NAME`);if(n)try{let e=this._parseResourceAttributes(n);Object.assign(t,e)}catch(e){d.debug(`EnvDetector failed: ${e instanceof Error?e.message:e}`)}return r&&(t[v]=r),{attributes:t}}_parseResourceAttributes(e){if(!e)return{};let t={},n=e.split(this._COMMA_SEPARATOR).filter(e=>e.trim()!==``);for(let e of n){let n=e.split(this._LABEL_KEY_VALUE_SPLITTER);if(n.length!==2)throw Error(`Invalid format for OTEL_RESOURCE_ATTRIBUTES: "${e}". Expected format: key=value. The ',' and '=' characters must be percent-encoded in keys and values.`);let[r,i]=n,a=r.trim(),o=i.trim();if(a.length===0)throw Error(`Invalid OTEL_RESOURCE_ATTRIBUTES: empty attribute key in "${e}".`);let s,c;try{s=decodeURIComponent(a),c=decodeURIComponent(o)}catch(t){throw Error(`Failed to percent-decode OTEL_RESOURCE_ATTRIBUTES entry "${e}": ${t instanceof Error?t.message:t}`,{cause:t})}if(s.length>this._MAX_LENGTH)throw Error(`Attribute key exceeds the maximum length of ${this._MAX_LENGTH} characters: "${s}".`);if(c.length>this._MAX_LENGTH)throw Error(`Attribute value exceeds the maximum length of ${this._MAX_LENGTH} characters for key "${s}".`);t[s]=c}return t}};si(),y();function Na(e){return Pa(e,new WeakSet)}function Pa(e,t){if(e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`||e instanceof Uint8Array)return!0;if(typeof e==`object`){if(t.has(e))return!1;if(t.add(e),Array.isArray(e)){for(let n of e)if(!Pa(n,t))return!1;return!0}let n=e;if(n.constructor!==Object&&n.constructor!==void 0)return!1;for(let e in n)if(Object.prototype.hasOwnProperty.call(n,e)&&!Pa(n[e],t))return!1;return!0}return!1}var Fa;(function(e){e[e.DROP_INVALID=0]=`DROP_INVALID`,e[e.DROP_LIMIT_REACHED=1]=`DROP_LIMIT_REACHED`,e[e.ADD_NEW=2]=`ADD_NEW`,e[e.ADD_OVERWRITE_EXISTING=3]=`ADD_OVERWRITE_EXISTING`})(Fa||={});function Ia(e,t,n,r,i){if(r.length===0)return d.warn(`Invalid attribute key: ${r}`),Fa.DROP_INVALID;if(!Na(i))return d.warn(`Invalid attribute value set for key: ${r}`),Fa.DROP_INVALID;let a=!Object.prototype.hasOwnProperty.call(e,r);return a&&n>=t.attributeCountLimit?Fa.DROP_LIMIT_REACHED:(e[r]=La(i,t.attributeValueLengthLimit),a?Fa.ADD_NEW:Fa.ADD_OVERWRITE_EXISTING)}function La(e,t){if(t<=0)return d.warn(`Attribute value limit must be positive, got ${t}`),e;if(e==null)return e;if(typeof e==`string`)return e.length<=t?e:e.substring(0,t);if(e instanceof Uint8Array)return e;if(Array.isArray(e))return e.map(e=>La(e,t));if(typeof e==`object`){let n={};for(let[r,i]of Object.entries(e))n[r]=La(i,t);return n}return e}function Ra(e,t){if(t==null)return{};let n={},r=0,i=0;for(let[a,o]of Object.entries(t)){let t=Ia(n,e,r,a,o);t===Fa.ADD_NEW?r+=1:(t===Fa.DROP_INVALID||t===Fa.DROP_LIMIT_REACHED)&&(i+=1)}return{attributes:r>0?n:void 0,droppedAttributesCount:i}}y(),Pr(),_();var za=class{resource;instrumentationScope;attributes={};_hrTime;_hrTimeObserved;_spanContext;_severityText;_severityNumber;_body;_eventName;_attributesCount=0;_droppedAttributesCount=0;_isReadonly=!1;_logRecordLimits;get hrTime(){return this._hrTime}set hrTime(e){this._isLogRecordReadonly()||(this._hrTime=e)}get hrTimeObserved(){return this._hrTimeObserved}set hrTimeObserved(e){this._isLogRecordReadonly()||(this._hrTimeObserved=e)}get spanContext(){return this._spanContext}set spanContext(e){this._isLogRecordReadonly()||(this._spanContext=e)}set severityText(e){this._isLogRecordReadonly()||(this._severityText=e)}get severityText(){return this._severityText}set severityNumber(e){this._isLogRecordReadonly()||(this._severityNumber=e)}get severityNumber(){return this._severityNumber}set body(e){this._isLogRecordReadonly()||(this._body=e)}get body(){return this._body}get eventName(){return this._eventName}set eventName(e){this._isLogRecordReadonly()||(this._eventName=e)}get droppedAttributesCount(){return this._droppedAttributesCount}constructor(e,t,n){let{timestamp:r,observedTimestamp:i,eventName:a,severityNumber:o,severityText:s,body:c,attributes:l={},exception:u,context:d}=n,f=Date.now();if(this._hrTime=Zt(r??f),this._hrTimeObserved=Zt(i??f),d){let e=p.getSpanContext(d);e&&h(e)&&(this._spanContext=e)}this.severityNumber=o,this.severityText=s,this.body=c,this.resource=e.resource,this.instrumentationScope=t,this._logRecordLimits=e.logRecordLimits,this._eventName=a,this.setAttributes(l),u!=null&&this._setException(u)}setAttribute(e,t){if(this._isLogRecordReadonly())return this;let n=Ia(this.attributes,this._logRecordLimits,this._attributesCount,e,t);return n===Fa.DROP_LIMIT_REACHED?(this._droppedAttributesCount++,this._droppedAttributesCount===1&&d.warn(`Dropping extra attributes.`)):n===Fa.ADD_NEW&&this._attributesCount++,this}setAttributes(e){for(let[t,n]of Object.entries(e))this.setAttribute(t,n);return this}setBody(e){return this.body=e,this}setEventName(e){return this.eventName=e,this}setSeverityNumber(e){return this.severityNumber=e,this}setSeverityText(e){return this.severityText=e,this}_makeReadonly(){this._isReadonly=!0}_setException(e){let t=!1;if(typeof e==`string`||typeof e==`number`)Object.hasOwn(this.attributes,`exception.message`)||this.setAttribute(x,String(e)),t=!0;else if(e&&typeof e==`object`){let n=e;n.code?(Object.hasOwn(this.attributes,`exception.type`)||this.setAttribute(u,n.code.toString()),t=!0):n.name&&(Object.hasOwn(this.attributes,`exception.type`)||this.setAttribute(u,n.name),t=!0),n.message&&(Object.hasOwn(this.attributes,`exception.message`)||this.setAttribute(x,n.message),t=!0),n.stack&&(Object.hasOwn(this.attributes,`exception.stacktrace`)||this.setAttribute(m,n.stack),t=!0)}t||d.warn(`Failed to record an exception ${e}`)}_isLogRecordReadonly(){return this._isReadonly&&d.warn(`Can not execute the operation on emitted log record`),this._isReadonly}};y();var Ba=class{_instrumentationScope;_sharedState;_loggerConfig;constructor(e,t){this._instrumentationScope=e,this._sharedState=t,this._loggerConfig=this._sharedState.getLoggerConfig(this._instrumentationScope)}emit(e){let t=e.context||i.active();if(!this.enabled(e))return;let n=new za(this._sharedState,this._instrumentationScope,{context:t,...e});this._sharedState.loggerMetrics.emitLog(),this._sharedState.activeProcessor.onEmit(n,t),n._makeReadonly()}enabled(e){if(this._sharedState.hasShutdown)return!1;let t=this._loggerConfig;if(t.disabled)return!1;let r=e?.severityNumber;if(typeof r==`number`&&r!==Fe.UNSPECIFIED&&r<t.minimumSeverity)return!1;let a=e?.context||i.active();if(t.traceBased){let e=p.getSpanContext(a);if(e&&h(e)&&(e.traceFlags&n.SAMPLED)!==n.SAMPLED)return!1}let o={context:a,instrumentationScope:this._instrumentationScope,severityNumber:e?.severityNumber,eventName:e?.eventName};for(let e of this._sharedState.processors)if(!e.enabled||e.enabled(o))return!0;return!1}},Va=class{forceFlush(){return Promise.resolve()}onEmit(e,t){}shutdown(){return Promise.resolve()}enabled(e){return!1}};Pr();var Ha=class{processors;constructor(e){this.processors=e}async forceFlush(e){let t=e?.timeoutMillis??3e4;await Promise.all(this.processors.map(e=>_r(e.forceFlush(),t)))}onEmit(e,t){this.processors.forEach(n=>n.onEmit(e,t))}async shutdown(){await Promise.all(this.processors.map(e=>e.shutdown()))}enabled(e){for(let t of this.processors)if(!t.enabled||t.enabled(e))return!0;return!1}};function Ua(e){if(e===void 0)return[`u`,null];if(e===null)return[`n`,null];let t=typeof e;return t===`string`?[`s`,e]:t===`boolean`?[`b`,e]:t===`number`?Number.isNaN(e)?[`nan`,null]:e===1/0?[`inf`,null]:e===-1/0?[`-inf`,null]:Object.is(e,-0)?[`n0`,null]:[`d`,e]:e instanceof Uint8Array?[`bytes`,Array.from(e)]:Array.isArray(e)?[`arr`,e.map(Ua)]:[`map`,Object.entries(e).sort(([e],[t])=>e.localeCompare(t)).map(([e,t])=>[e,Ua(t)])]}function Wa(e){return JSON.stringify([e.name,e.version||``,e.schemaUrl||``,Ua(e.attributes),e.droppedAttributesCount??0])}var Ga=`otel.sdk.log.created`,Ka=`otel.sdk.processor.log.processed`,qa=`otel.sdk.processor.log.queue.capacity`,Ja=`otel.sdk.processor.log.queue.size`,Ya=`otel.component.name`,Xa=`otel.component.type`,Za=`batching_log_processor`,Qa=`error.type`,$a=class{createdLogs;constructor(e){this.createdLogs=e.createCounter(Ga,{unit:`{log_record}`,description:`The number of logs submitted to enabled SDK Loggers.`})}emitLog(){this.createdLogs.add(1)}},eo=`0.221.0`;y();var to={disabled:!1,minimumSeverity:Fe.UNSPECIFIED,traceBased:!1},no=()=>({...to}),ro=class{loggers=new Map;activeProcessor;registeredLogRecordProcessors=[];resource;logRecordLimits;processors;loggerMetrics;hasShutdown=!1;_loggerConfigurator;_loggerConfigs=new Map;constructor(t,n,r,i,a){this.resource=t,this.logRecordLimits=n,this.processors=r,r.length>0?(this.registeredLogRecordProcessors=r,this.activeProcessor=new Ha(this.registeredLogRecordProcessors)):this.activeProcessor=new Va,this._loggerConfigurator=i??no;let o=a?a.getMeter(`@opentelemetry/sdk-logs`,eo):e();this.loggerMetrics=new $a(o)}getLoggerConfig(e){let t=Wa(e),n=this._loggerConfigs.get(t);return n||(n=this._loggerConfigurator(e),this._loggerConfigs.set(t,n),n)}};y(),Pr();var io=class{_shutdownOnce;_sharedState;constructor(e={}){let t={resource:e.resource??ti(),logRecordLimits:{attributeCountLimit:e.logRecordLimits?.attributeCountLimit??128,attributeValueLengthLimit:e.logRecordLimits?.attributeValueLengthLimit??1/0},loggerConfigurator:e.loggerConfigurator??no,processors:e.processors??[],meterProvider:e.meterProvider};this._sharedState=new ro(t.resource,t.logRecordLimits,t.processors,t.loggerConfigurator,t.meterProvider),this._shutdownOnce=new Tr(this._shutdown,this)}getLogger(e,t,n){if(this._shutdownOnce.isCalled)return d.warn(`A shutdown LoggerProvider cannot provide a Logger`),Re();e||d.warn(`Logger requested without instrumentation scope name.`);let r={name:e||`unknown`,version:t,schemaUrl:n?.schemaUrl,...Ra(this._sharedState.logRecordLimits,n?.attributes)},i=Wa(r);return this._sharedState.loggers.has(i)||this._sharedState.loggers.set(i,new Ba(r,this._sharedState)),this._sharedState.loggers.get(i)}forceFlush(e){return this._shutdownOnce.isCalled?(d.warn(`invalid attempt to force flush after LoggerProvider shutdown`),this._shutdownOnce.promise):this._sharedState.activeProcessor.forceFlush(e)}shutdown(){return this._shutdownOnce.isCalled?(d.warn(`shutdown may only be called once per LoggerProvider`),this._shutdownOnce.promise):this._shutdownOnce.call()}_shutdown(){return this._sharedState.hasShutdown=!0,this._sharedState.activeProcessor.shutdown()}},ao=new Map,oo=class{processedLogs;queueSize;queueSizeCallback;standardAttrs;droppedAttrs;constructor(e,t,n){let r=ao.get(e)??0;if(ao.set(e,r+1),this.standardAttrs={[Xa]:e,[Ya]:`${e}/${r}`},this.droppedAttrs={...this.standardAttrs,[Qa]:`queue_full`},this.processedLogs=t.createCounter(Ka,{unit:`{log_record}`,description:`The number of log records for which the processing has finished, either successful or failed.`}),n){let{capacity:e,getQueueSize:r}=n;t.createUpDownCounter(qa,{unit:`{log_record}`,description:`The maximum number of log records the queue of a given instance of an SDK log processor can hold.`}).add(e,this.standardAttrs),this.queueSize=t.createObservableUpDownCounter(Ja,{unit:`{log_record}`,description:`The number of log records in the queue of a given instance of an SDK log processor.`}),this.queueSizeCallback=e=>e.observe(r(),this.standardAttrs),this.queueSize.addCallback(this.queueSizeCallback)}}dropLogs(e){this.processedLogs.add(e,this.droppedAttrs)}finishLogs(e,t){if(!t){this.processedLogs.add(e,this.standardAttrs);return}let n={...this.standardAttrs,[Qa]:t.name};this.processedLogs.add(e,n)}shutdown(){this.queueSize&&this.queueSizeCallback&&this.queueSize.removeCallback(this.queueSizeCallback)}};y(),Pr();async function so(e){let t=[];for(let n=0,r=e.length;n<r;n++){let r=e[n];r.resource.asyncAttributesPending&&r.resource.waitForAsyncAttributes&&t.push(r.resource.waitForAsyncAttributes())}t!=null&&t.length>0&&await Promise.all(t)}var co=class{_exportCompleted;_exportScheduledPromise;_metrics;_exportScheduledResolve;constructor(e,t,n,r){this._exportScheduledPromise=new Promise(e=>{this._exportScheduledResolve=e}),this._exportCompleted=this._executeExport(e,t,n),this._metrics=r}get exportCompleted(){return this._exportCompleted}get exportScheduled(){return this._exportScheduledPromise}async _executeExport(e,t,n){try{await so(t),await i.with(et(i.active()),async()=>this._exportWithTimeout(e,t,n))}catch(e){kt(e),this._exportScheduledResolve()}}async _exportWithTimeout(e,t,n){return new Promise((r,i)=>{let a=setTimeout(()=>{i(Error(`Timeout`))},n);e.export(t,e=>{this._metrics.finishLogs(t.length,e.error),clearTimeout(a),e.code===mn.SUCCESS?r():i(e.error??Error(`BatchLogRecordProcessor: log record export failed`))}),this._exportScheduledResolve()})}},lo=class{_maxExportBatchSize;_maxQueueSize;_scheduledDelayMillis;_exportTimeoutMillis;_exporter;_metrics;_currentExport=null;_finishedLogRecords=[];_timer;_shutdownOnce;_flushing=!1;constructor(t){this._exporter=t.exporter,this._maxExportBatchSize=t.maxExportBatchSize??512,this._maxQueueSize=t.maxQueueSize??2048,this._scheduledDelayMillis=t.scheduledDelayMillis??1e3,this._exportTimeoutMillis=t.exportTimeoutMillis??3e4,this._shutdownOnce=new Tr(this._shutdown,this),this._maxExportBatchSize>this._maxQueueSize&&(d.warn(`BatchLogRecordProcessor: maxExportBatchSize must be smaller or equal to maxQueueSize, setting maxExportBatchSize to match maxQueueSize`),this._maxExportBatchSize=this._maxQueueSize);let n=t?.selfObsMeterProvider?t.selfObsMeterProvider.getMeter(`@opentelemetry/sdk-logs`):e();this._metrics=new oo(Za,n,{capacity:this._maxQueueSize,getQueueSize:()=>this._finishedLogRecords.length})}onEmit(e){this._shutdownOnce.isCalled||this._addToBuffer(e)}forceFlush(){return this._shutdownOnce.isCalled?this._shutdownOnce.promise:this._flushAll()}_addToBuffer(e){if(this._finishedLogRecords.length>=this._maxQueueSize){this._metrics.dropLogs(1);return}this._finishedLogRecords.push(e),this._maybeStartTimer()}shutdown(){return this._shutdownOnce.call()}async _shutdown(){this.onShutdown(),await this._flushAll(),this._metrics.shutdown(),await this._exporter.shutdown()}async _flushAll(){if(this._flushing)return;this._flushing=!0;let e=this._finishedLogRecords;this._finishedLogRecords=[],this._clearTimer();let t=this._currentExport;for(t!==null&&(await this._exporter.forceFlush(),await t.exportCompleted,this._currentExport=null);e.length>0;){let t;e.length<=this._maxExportBatchSize?(t=e,e=[]):t=e.splice(0,this._maxExportBatchSize);let n=new co(this._exporter,t,this._exportTimeoutMillis,this._metrics);this._currentExport=n;try{await n.exportScheduled,await this._exporter.forceFlush(),await n.exportCompleted}catch(e){kt(e)}finally{this._currentExport=null}}this._flushing=!1,this._maybeStartTimer()}_extractBatch(){if(this._finishedLogRecords.length===0)return null;if(this._finishedLogRecords.length<=this._maxExportBatchSize){let e=this._finishedLogRecords;return this._finishedLogRecords=[],e}return this._finishedLogRecords.splice(0,this._maxExportBatchSize)}_exportOneBatch(){this._clearTimer();let e=this._extractBatch();if(e===null)return;let t=new co(this._exporter,e,this._exportTimeoutMillis,this._metrics);this._currentExport=t,t.exportCompleted.then(()=>{this._currentExport=null,this._maybeStartTimer()}).catch(e=>{this._currentExport=null,kt(e),this._maybeStartTimer()})}_maybeStartTimer(){if(!this._shutdownOnce.isCalled&&!this._flushing&&this._finishedLogRecords.length!==0&&this._currentExport===null){if(this._finishedLogRecords.length>=this._maxExportBatchSize){this._exportOneBatch();return}this._timer===void 0&&(this._timer=setTimeout(()=>{this._timer=void 0,this._exportOneBatch()},this._scheduledDelayMillis),typeof this._timer!=`number`&&this._timer.unref())}}_clearTimer(){this._timer!==void 0&&(clearTimeout(this._timer),this._timer=void 0)}},uo=class extends lo{onShutdown(){}},fo=j([`REACTIVATE`,`ATTACH_INACTIVE`]),po=H({availableOverrides:M(fo),slug:w(),tagId:N()}),mo=H({externalId:w().nullish(),id:N(),reason:M(w()),score:N(),slug:w().regex(/^[a-z0-9_-]+$/).max(255).nullish()}),ho=H({externalId:w().nullish(),id:T(),name:w().nullish(),operatingStatus:w().nullish(),publicPath:w().nullish(),reason:M(w()),score:N(),slug:w().regex(/^[a-z0-9_-]+$/).max(255).nullish(),typeRecord:ee.nullish()}),go=H({candidate:M(ho).nullish(),newsCandidate:M(mo).nullish(),overridePath:w().nullish(),threshold:N()}),_o=H({conflictingArticleId:N(),conflictingArticleSlug:w(),conflictingArticleTitle:w()}),vo=H({candidateEntityId:M(T()),candidatePersonId:M(T()),hint:w(),normalizedUrl:w().nullish(),url:w(),urlType:w().nullish()}),yo=H({owner:ne,urlId:N()}),bo=H({existingJoin:M(yo),fragmentIgnored:R(),guidance:w(),normalizedUrl:w().nullish(),requestedOwner:ne,url:w(),urlType:w()}),xo=U([bo,vo,go,po,_o]),So=H({acceptedValue:M(w()).nullish(),action:j([`setField`,`setParameter`,`removeParameter`,`useEndpoint`,`reviewCandidates`,`authenticate`]),endpoint:w().nullish(),fieldPath:w().nullish(),parameter:w().nullish(),retryable:R().nullish()}),Co=j([`entity`,`person`,`news`,`blog`,`content`]),wo=H({deletedAt:L({offset:!0}).nullish(),id:w(),isHidden:R(),nameBrand:w().nullish(),resourceType:Co,showOnSitemap:R(),slug:w()}),To=H({newUrl:w().nullish(),oldUrl:w(),targetCurrentSlug:w().nullish(),targetId:w().nullish(),targetResourceType:Co.nullish()}),Eo=H({circuitBreaker:w().nullish(),code:j(`not_authorized.rateLimited.origin_detail_capacity.origin_detail_shutdown.suspectedShellStrip.url_surface_misclassification.JOBRUNR_DISABLED.JOBRUNR_STORAGE_UNAVAILABLE.rbac_lookup_unavailable.GEOCODE_PROVIDER_ERROR.sentry_api_error.swagger_headers_unconfigured.frontend_cache_epoch_mode_not_targeted.image_blocklist_match.image_monochrome.image_too_small.image_wrong_aspect.image_monogram.image_unreadable.image_processing_error.image_brand_mismatch.web_crawl_fetch_failed.news_rss_feed_fetch_failed.news_rss_article_fetch_failed.r2_fetch_failed.r2_delete_failed.r2_upload_failed.source_document_body_unavailable.source_document_capture_limit_exceeded.news_similarity_embedding_unavailable.search_provider_not_configured.search_provider_error.sec_edgar_fetch_failed.github_fetch_failed.INFERENCE_PROVIDER_ERROR.INFERENCE_PROVIDER_RESPONSE_EMPTY.INFERENCE_PROVIDER_INVALID_JSON.INFERENCE_PROFILES_MISSING.INFERENCE_PROFILE_API_KEY_MISSING`.split(`.`)).nullish(),conflictingRecord:wo.nullish(),detail:w().optional(),details:xo.nullish(),error:W(w(),w()).nullish(),existingRedirect:To.nullish(),feId:w().nullish(),field:w().nullish(),hammingDistance:A().int().nullish(),hint:w().nullish(),instance:w().optional(),limit:A().int().nullish(),limitType:j([`FORM`,`GLOBAL`,`SUBNET`,`IP`,`UNKNOWN`,`RESILIENCE4J`,`WEB_SEARCH`,`NATURAL_SEARCH`,`BILLING_ALLOWANCE`,`CLERK_PUBLIC_ADMISSION`,`CLERK_SCRIPT_LOAD`,`ORIGIN_DETAIL`,`INFERENCE_PROVIDER`]).nullish(),matchedBlocklistKey:w().nullish(),mediaType:w().nullish(),moderationReason:w().nullish(),parseError:w().nullish(),path:w().nullish(),properties:W(w(),Pe).optional(),remaining:A().int().nullish(),requiredRole:w().nullish(),resetAt:L({offset:!0}).nullish(),resolution:So.nullish(),retryAfterSeconds:A().int().nullish(),spanId:w().nullish(),status:N().optional(),suggestion:w().nullish(),suggestions:W(w(),w()).nullish(),suspectedFragment:w().nullish(),title:w().optional(),traceId:w().nullish(),type:w().optional(),unknownParameters:M(w()).nullish(),used:A().int().nullish(),validParameters:M(w()).nullish(),value:w().nullish(),windowSeconds:A().int().nullish()}),Do=U([w(),A(),R()]),Oo=H({status:A(),title:w(),type:w()}).catchall(Pe.optional()).and(Eo);H({ok:R(),summary:w(),httpStatus:A().optional(),operationId:w().optional(),method:w().optional(),endpoint:w().optional(),format:j([`json`,`text`]).optional(),count:A().optional(),page:H({number:A().optional(),size:A().optional(),numberOfElements:A().optional(),totalElements:A().optional(),totalPages:A().optional(),first:R().optional(),last:R().optional(),empty:R().optional()}).optional(),filters:W(w(),U([Do,M(Do)])).optional(),truncated:R().optional(),truncation:H({byteLength:A(),maxBytes:A(),omitted:M(w()),recovery:w()}).optional(),omitted:M(w()).default([]),ids:M(w()),counts:W(w(),A()),references:M(w()),warnings:M(w()),problem:Oo.optional(),data:k()});var ko=5e4,Ao=[50,25,10,5,1],jo=320,Mo=1e3,No=/^(?:bio|biography|body|content|description|evidence|fulltext|notes|snippet|sourcetext|summary|text)$/u,Po=/(?:description|snippet|summary|text)$/u;function Fo(e){let t=$o(e)?e:null;if(t===null)return;let n={number:es(t,`number`),size:es(t,`size`),numberOfElements:es(t,`numberOfElements`),totalElements:es(t,`totalElements`),totalPages:es(t,`totalPages`),first:ts(t,`first`),last:ts(t,`last`),empty:ts(t,`empty`)};return Object.values(n).some(e=>e!==void 0)?n:void 0}function Io(e,t){if(t?.numberOfElements!==void 0)return t.numberOfElements;if(Array.isArray(e))return e.length;let n=$o(e)?e.content:void 0;return Array.isArray(n)?n.length:void 0}function Lo(e,t,n={}){return{ok:!0,summary:e,...n,omitted:n.omitted??[],ids:n.ids??[],counts:n.counts??{},references:n.references??[],warnings:n.warnings??[],data:t}}function X(e,t=[],n={}){return{ok:!1,summary:e,...n,omitted:n.omitted??[],ids:n.ids??[],counts:n.counts??{},references:n.references??[],warnings:t,data:null}}function Ro(e){let t=JSON.stringify(e),n=Se.byteLength(t,`utf8`);if(n<=5e4)return e;let r=e;for(let t of Ao)if(r=zo(e,n,Wo(e.data,n,t)),Se.byteLength(JSON.stringify(r),`utf8`)<=5e4)return r;let i={truncated:!0,byteLength:n,maxBytes:ko};return Bo({...r,truncation:Yo(n,[`data`]),data:i},n)}function zo(e,t,n){return{...e,truncated:!0,truncation:Yo(t,n.omitted),warnings:[...e.warnings,`response truncated (>50KB); ids/references preserved; refetch via the owning sub-resource list/get command for the section you need, or --data with server-side filters`],data:n.value}}function Bo(e,t){if(Ho(e))return e;let n=e.warnings.slice(0,-1),r=`response truncated (>50KB); metadata named in truncation.omitted was removed; refetch via the owning sub-resource list/get command for the section you need, or --data with narrower server-side filters`,i=[`data`],a=e;if(a.problem!==void 0){let e=Vo(a.problem);if(JSON.stringify(e).length<JSON.stringify(a.problem).length&&(i.push(`problem`),a={...a,problem:e,truncation:Yo(t,i)},Ho(a)))return a}if(i.push(...e.filters===void 0?[]:[`filters`],...e.omitted.length===0?[]:[`omitted`],...e.ids.length===0?[]:[`ids`],...Object.keys(e.counts).length===0?[]:[`counts`],...e.references.length===0?[]:[`references`]),a={...a,filters:void 0,truncation:Yo(t,i),omitted:[],ids:[],counts:{},references:[],warnings:i.length===1?e.warnings:[...n,r]},Ho(a))return a;let o=Uo(a.summary,t),s=a.operationId===void 0?void 0:Uo(a.operationId,t),c=a.method===void 0?void 0:Uo(a.method,t),l=a.endpoint===void 0?void 0:Uo(a.endpoint,t),u=a.warnings.map(e=>Uo(e,t)),d=a.problem===void 0?void 0:Vo(a.problem,t);if(o!==a.summary&&i.push(`summary`),s!==a.operationId&&i.push(`operationId`),c!==a.method&&i.push(`method`),l!==a.endpoint&&i.push(`endpoint`),u.some((e,t)=>e!==a.warnings[t])&&i.push(`warnings`),a.problem!==void 0&&d!==void 0&&JSON.stringify(d)!==JSON.stringify(a.problem)&&i.push(`problem`),a={...a,summary:o,...s===void 0?{}:{operationId:s},...c===void 0?{}:{method:c},...l===void 0?{}:{endpoint:l},truncation:Yo(t,i),warnings:u,...d===void 0?{}:{problem:d}},Ho(a))return a;i.push(`warnings`),a.page!==void 0&&i.push(`page`);let f=Uo(a.summary,t,jo);return f!==a.summary&&i.push(`summary`),{ok:a.ok,summary:f,...a.httpStatus===void 0?{}:{httpStatus:a.httpStatus},...a.operationId===void 0?{}:{operationId:a.operationId},...a.method===void 0?{}:{method:a.method},...a.endpoint===void 0?{}:{endpoint:a.endpoint},...a.format===void 0?{}:{format:a.format},...a.count===void 0?{}:{count:a.count},truncated:!0,truncation:Yo(t,i),omitted:[],ids:[],counts:{},references:[],warnings:[r],...a.problem===void 0?{}:{problem:a.problem},data:a.data}}function Vo(e,t){let n=e=>t===void 0?e:Uo(e,t);return{status:e.status,title:n(e.title),type:n(e.type),...e.detail===void 0?{}:{detail:n(e.detail)},...e.instance===void 0?{}:{instance:n(e.instance)}}}function Ho(e){return Se.byteLength(JSON.stringify(e),`utf8`)<=ko}function Uo(e,t,n=Mo){if(Se.byteLength(JSON.stringify(e),`utf8`)<=n)return e;let r=Zo(t),i=``,a=Se.byteLength(JSON.stringify(r),`utf8`);for(let t of e){let e=Se.byteLength(JSON.stringify(t),`utf8`)-2;if(a+e>n)break;i+=t,a+=e}return`${i.trimEnd()}${r}`}function Wo(e,t,n){let r=Pe.safeParse(JSON.parse(JSON.stringify(e)));return r.success?Go(r.data,`data`,t,n):{value:Xo(t),omitted:[`data`]}}function Go(e,t,n,r){if(typeof e==`string`){if(qo(Qo(t))||e.length>Mo){let r=Jo(e,n);return{value:r.value,omitted:r.wasTruncated?[t]:[]}}return{value:e,omitted:[]}}if(typeof e!=`object`||!e)return{value:e,omitted:[]};if(Array.isArray(e))return Ko(e,t,n,r);let i={},a=[];for(let[o,s]of Object.entries(e)){let e=Go(s,`${t}.${o}`,n,r);i[o]=e.value,a.push(...e.omitted)}return{value:i,omitted:a}}function Ko(e,t,n,r){let i=e.slice(0,r),a=i.map((e,i)=>Go(e,`${t}[${i}]`,n,r));return{value:a.map(e=>e.value),omitted:[...a.flatMap(e=>e.omitted),...e.length>i.length?[`${t}[${i.length}..]`]:[]]}}function qo(e){let t=e.toLowerCase();return No.test(t)||Po.test(t)}function Jo(e,t){return e.length<=jo?{value:e,wasTruncated:!1}:{value:`${e.slice(0,jo).trimEnd()}${Zo(t)}`,wasTruncated:!0}}function Yo(e,t){return{byteLength:e,maxBytes:ko,omitted:t.length===0?[`data`]:[...new Set(t)],recovery:`Refetch a narrower result: use ids/references, a more specific list read (e.g. entities relationships list, entities people list, or entities news list), filters, or responseFormat (MCP generic tools only).`}}function Xo(e){return{truncated:!0,byteLength:e,maxBytes:ko}}function Zo(e){return`\n[truncated byteLength=${e} maxBytes=${ko}]`}function Qo(e){return(e.split(`.`).at(-1)??e).replace(/\[\d+\]$/,``)}function $o(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function es(e,t){let n=e[t];return typeof n==`number`?n:void 0}function ts(e,t){let n=e[t];return typeof n==`boolean`?n:void 0}var ns={clientSecret:`CLIENT_SECRET`,adminApiKey:`ADMIN_API_KEY`,authToken:`AUTH_TOKEN`},rs=[ns.clientSecret,ns.adminApiKey,ns.authToken],is=`production`,as={production:{host:`api.aventure.vc`},local:{host:`localhost:8080`}};`${as.production.host}`;function os(){let e=fs(process.env.API_ENV)??as.production;if(e===void 0)throw Error(`Default API environment is unavailable`);return{host:ms(process.env.API_URL)??e.host,clientSecret:process.env[ns.clientSecret],adminApiKey:process.env[ns.adminApiKey],userBearerToken:process.env[ns.authToken]}}function ss(e){if(e.clientSecret)return{"X-Client-Secret":e.clientSecret};if(e.userBearerToken)return ls(e);throw Error("Read authentication is required. Run `auth login` or provide a personal API key.")}function cs(e){if(e.adminApiKey)return{"X-API-Key":e.adminApiKey};if(e.userBearerToken)return ls(e);throw Error(`ADMIN_API_KEY or AUTH_TOKEN is required for write operations`)}function ls(e){if(!e.userBearerToken)throw Error(`AUTH_TOKEN is required for bearer auth`);return{Authorization:`Bearer ${e.userBearerToken}`}}function us(){return Object.keys(as)}function ds(e){let t=e?.trim().toLowerCase();if(!t)return null;switch(t){case`dev`:case`development`:return`development`;case`stage`:case`staging`:return`staging`;case`prod`:case`production`:return`production`;case`localhost`:case`local`:return`local`;default:return null}}function fs(e){let t=ds(e);if(t===null){if(!e?.trim())return null;throw Error(`Unknown aVenture environment '${e}'. Use one of: ${us().join(`, `)}`)}let n=as[t];if(n===void 0)throw Error(`Environment '${t}' is unavailable in this distribution`);return n}function ps(e){try{let t=os();return e===`none`?Lo(`env ready`,{env:t,headers:{}}):Lo(`env ready`,{env:t,headers:e===`read`?ss(t):e===`bearer`?ls(t):cs(t)})}catch(e){return X(e.message)}}function ms(...e){return e.find(e=>e!==void 0&&e.trim().length>0)}var hs=8,gs=De(import.meta.url),_s=`aventure-`,vs;function ys(){return vs??=bs(Ss()),vs}function bs({manifest:e,manifestPath:t}){return`${xs(ws(e,`name`,t))}/${ws(e,`version`,t)} (${process.platform}; ${process.arch}) Node.js/${process.versions.node}`}function xs(e){let t=e.slice(e.lastIndexOf(`/`)+1);return t.startsWith(_s)?t:`${_s}${t}`}function Ss(e=gs){let t;try{t=Ee(e)}catch(t){throw Es(`cannot resolve ${e}`,t instanceof Error?t:void 0)}let n=fe(t);for(let e=0;e<hs;e+=1){let e=me(n,`package.json`);if(we(e))return{entryPath:t,manifest:Cs(e),manifestPath:e,packageRoot:n};let r=fe(n);if(r===n)break;n=r}throw Es(`no package.json found above ${e}`)}function Cs(e){let t;try{t=JSON.parse(Te(e,`utf8`))}catch(t){throw Es(`cannot parse ${e}`,t instanceof Error?t:void 0)}if(!Ts(t))throw Es(`${e} must contain a JSON object`);return t}function ws(e,t,n){let r=Reflect.get(e,t);if(typeof r!=`string`||r===``||r.trim()!==r)throw Es(`${n} ${t} must be a non-empty, unpadded string`);return r}function Ts(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Es(e,t){return Error(`aventure package metadata: ${e}`,{cause:t})}var Ds=`@aventurevc/aventure-cli`,Os=`https://npm.pkg.github.com/`,ks=`@aventurevc/mcp-server`,As=`https://registry.npmjs.org/`;function js(e){let{entryPath:t,manifest:n,manifestPath:r,packageRoot:i}=Ss(e);return Ms(n,r,i,t)}function Ms(e,t,n,r){let i=Reflect.get(e,`name`);if(i!==`@aventurevc/aventure-cli`&&i!==`@aventurevc/mcp-server`)throw Es(`${t} has unsupported package name ${String(i)}`);let a=ws(e,`version`,t),o=we(me(n,`aventure-cli`,`index.ts`))?n:null,s=Is(Reflect.get(e,`bin`),`${t} bin`);return{bin:Ls(Ns(e,t,n,r)??s,t),entryPath:r,name:i,packageRoot:n,registry:Rs(e,t,o!==null),version:a,workingTreeRoot:o}}function Ns(e,t,n,r){let i=Reflect.get(e,`aventurePublish`);if(i===void 0)return;if(!Ts(i))throw Es(`${t} aventurePublish must be an object`);let a=Reflect.get(i,`variants`);if(!Ts(a))throw Es(`${t} aventurePublish.variants is required`);let o=new Set(r.slice(n.length).split(/[\\/]/u));for(let e of Object.keys(a)){let n=Ps(a,e,t),r=Reflect.get(n,`directory`);if(typeof r==`string`&&o.has(r))return Fs(n,e,t)}return Fs(Ps(a,`cli`,t),`cli`,t)}function Ps(e,t,n){let r=Reflect.get(e,t);if(!Ts(r))throw Es(`${n} aventurePublish.variants.${t} is required`);return r}function Fs(e,t,n){let r=Is(Reflect.get(e,`bin`),`${n} aventurePublish.variants.${t}.bin`);if(r===void 0)throw Es(`${n} aventurePublish.variants.${t}.bin is required`);return r}function Is(e,t){if(e!==void 0){if(!Ts(e))throw Es(`${t} must be an object`);return Object.entries(e).map(([e,n])=>{if(typeof n!=`string`)throw Es(`${t}.${e} must be a string`);return[e,n]})}}function Ls(e,t){let[n,...r]=(e??[]).map(([e])=>e);if(n===void 0)throw Es(`${t} defines no bin`);return[n,...r]}function Rs(e,t,n){let r=Reflect.get(e,`publishConfig`);if(r===void 0){if(n)return Os;throw Es(`${t} publishConfig.registry is required outside a working tree`)}if(!Ts(r))throw Es(`${t} publishConfig must be an object`);let i=Reflect.get(r,`registry`);if(i!==`https://npm.pkg.github.com/`&&i!==`https://registry.npmjs.org/`)throw Es(`${t} has unsupported publishConfig.registry ${String(i)}`);return i}var zs=!(ye.includes(`--json`)||ye.includes(`--data`)||ye.includes(`--data-full`));function Bs(e){zs=e}var Vs={debug:10,info:20,warn:30,error:40,silent:50},Hs={debug:Fe.DEBUG,info:Fe.INFO,warn:Fe.WARN,error:Fe.ERROR},Us=/\b(x-api-key|x-client-secret|client[_-]?secret|admin_api_key|auth_token)(\s*[:=]\s*)(\S+)/gi,Ws=/\bAuthorization(\s*[:=]\s*)([^\r\n]+)/gi,Gs=/\bBearer\s+[A-Za-z0-9._~+/=-]+/gi,Ks=`aventure-mcp-server`,qs=`development`,Js=3e3,Ys=1e3,Xs=4,Zs=`Unprintable thrown value`,Qs,$s,ec=!1,tc;function nc(e){return e.replace(Ws,`Authorization$1***`).replace(Gs,`Bearer ***`).replace(Us,(...e)=>{let[,t,n]=e;return`${t}${n}***`})}function rc(e){hc(`debug`,e)}function ic(e){hc(`info`,e)}function ac(e){hc(`warn`,e)}function oc(e){hc(`error`,e)}function sc(e){return Cc(e).message}function cc(e){let t=[],n,r,i=dc(uc(e),`cause`);for(let e=0;e<Xs&&i!=null;e++){let a=uc(i),o=fc(a,`name`)??typeof i,s=lc(i),c=fc(a,`message`)??pc(i);e===0&&(n=o,r=s),t.push(s===void 0?`${o}: ${c}`:`${o}(${s}): ${c}`),i=dc(a,`cause`)}return t.length===0?{}:{causeName:n,causeCode:r,causeChain:nc(t.join(` <- `))}}function lc(e){let t=dc(e,`code`);return typeof t==`string`?t:void 0}function uc(e){try{return e instanceof Error?e:void 0}catch{return}}function dc(e,t){if(typeof e==`object`&&e||typeof e==`function`)try{return Reflect.get(e,t)}catch{return}}function fc(e,t){let n=dc(e,t);return typeof n==`string`?n:void 0}function pc(e){try{return String(e)}catch{return Zs}}async function mc(){let e=Qs;if(e===void 0)return;Qs=void 0,$s=void 0;let t=tc;tc=void 0,await t,await e.shutdown()}function hc(e,t){if(!vc(e)&&!bc(e))return;let n=t.message?nc(t.message):void 0,r=t.fields?Sc(t.fields):void 0,i=Object.hasOwn(t,`error`)?Cc(t.error):void 0,a=e===`warn`||e===`error`;if((zs||a)&&vc(e)){if(a&&!yc())xe.write(`${gc(e,t,n,r,i)}\n`);else{let a={timestamp:new Date().toISOString(),level:e,component:t.component,event:t.event,...n?{message:n}:{},...r,...i?{error:i}:{}};xe.write(`${JSON.stringify(a)}\n`)}}bc(e)&&wc(e,t.component,t.event,n,r,i)}function gc(e,t,n,r,i){let a=r??{},o=[a.status,a.title].filter(e=>e!=null&&e!==``).map(String).join(` `),s=i===void 0?void 0:i.name?`${i.name}: ${i.message}`:i.message;return[`${e} ${t.component} ${t.event}`,o,typeof a.code==`string`?a.code:void 0,n,typeof a.detail==`string`?a.detail:void 0,s,typeof a.causeChain==`string`?a.causeChain:void 0,typeof a.traceId==`string`&&a.traceId.length>0?`traceId=${a.traceId}`:void 0].filter(e=>typeof e==`string`&&e.length>0).join(` | `)}function _c(){let e=be.AVENTURE_LOG_LEVEL?.toLowerCase();return e===`debug`||e===`info`||e===`warn`||e===`error`||e===`silent`?e:be.VITEST?`silent`:`warn`}function vc(e){return Vs[e]>=Vs[_c()]}function yc(){return Vs[_c()]<Vs.warn}function bc(e){return Vs[e]>=Vs[xc()]}function xc(){return _c()===`debug`?`debug`:`info`}function Sc(e){let t={};for(let[n,r]of Object.entries(e))t[n]=typeof r==`string`?nc(r):r;return t}function Cc(e){let t=uc(e);if(t!==void 0){let e=fc(t,`name`),n=fc(t,`message`)??pc(t),r={...e?{name:nc(e)}:{},message:nc(n)},i=fc(t,`stack`);return _c()===`debug`&&i&&(r.stack=nc(i)),r}return{message:nc(pc(e))}}function wc(e,t,n,r,i,a){let o=Tc();o!==void 0&&o.emit({severityNumber:Nc(e),severityText:e.toUpperCase(),body:r??n,attributes:{component:t,event:n,...jc(i),...Mc(a)}})}function Tc(){if(ec)return $s;if(ec=!0,js().registry!==`https://npm.pkg.github.com/`)return;let e=be.CLIENT_SECRET?.trim();if(!e)return;let t=Ec();if(t===void 0)return;let n=new va({url:t,headers:{Authorization:`Bearer ${e}`}}),r=new io({resource:Da(Dc()),processors:[new uo({exporter:n,exportTimeoutMillis:Js,scheduledDelayMillis:Ys})]});return Ge.setGlobalLoggerProvider(r),Qs=r,$s=Ge.getLogger(Ks),Y.once(`beforeExit`,()=>{let e=Qs;e!==void 0&&(tc=e.forceFlush().catch(()=>void 0))}),$s}function Ec(){let e=be.OTEL_EXPORTER_OTLP_LOGS_ENDPOINT?.trim();if(e)return e;let t=be.OTEL_EXPORTER_OTLP_ENDPOINT?.trim();if(t)return t.endsWith(`/v1/logs`)?t:`${t.replace(/\/+$/,``)}/v1/logs`}function Dc(){let e=kc()??Ac();return{"service.name":be.OTEL_SERVICE_NAME?.trim()||xs(js().name),"deployment.environment.name":Oc(),...e?{"cloud.platform":e}:{}}}function Oc(){let e=[be.DOPPLER_CONFIG,be.API_ENV,be.RAILWAY_ENVIRONMENT_NAME,be.NODE_ENV];for(let t of e){let e=ds(t);if(e!==null)return e}return qs}function kc(){let e=Ma.detect().attributes?.[`cloud.platform`];if(typeof e!=`string`)return;let t=e.trim();if(t){if(t.toLowerCase()===`railway`)throw Error(`cloud.platform=railway is retired; configure the current runtime platform`);return t}}function Ac(){if(be.FLY_MACHINE_ID||be.FLY_APP_NAME)return`fly`}function jc(e){let t={};for(let[n,r]of Object.entries(e??{}))r!=null&&(t[n]=r);return t}function Mc(e){return e===void 0?{}:{...e.name?{"exception.type":e.name}:{},...e.message?{"exception.message":e.message}:{},...e.stack?{"exception.stacktrace":e.stack}:{}}}function Nc(e){return Hs[e]}var Pc=new Map,Fc,Ic=!1,Lc=null;function Rc(){return Lc}function zc(){if(le()===`win32`){let e=process.env.APPDATA??q(ce(),`AppData`,`Roaming`);return q(e,`aventure`,`config.json`)}let e=process.env.XDG_CONFIG_HOME??q(ce(),`.config`);return q(e,`aventure`,`config.json`)}async function Bc(){try{let e=await ae(zc(),`utf8`),t=Pe.safeParse(JSON.parse(e));if(!t.success)throw Error(`auth config must be a JSON value`);let n=ol(t.data);if(n===null)throw Error(`auth config must define auth.source as doppler`);return n}catch(e){if(ll(e))return null;throw e}}async function Vc(e){let t=zc();await ie(fe(t),{recursive:!0}),await se(t,`${JSON.stringify({auth:e},null,2)}\n`,{mode:384}),Hc(),Ic=!1,Lc=null}function Hc(){for(let[e,t]of Pc)process.env[e]===t&&delete process.env[e];Pc.clear()}function Uc(){return Ic?Promise.resolve():(Fc??=Wc().finally(()=>{Fc=void 0}),Fc)}async function Wc(){try{let e=await Bc();if(!e){Ic=!0;return}await qc(e),Lc=null,Ic=!0}catch(e){Lc={configPath:zc(),reason:e instanceof Error?e.message:String(e)},ac({component:`aventure-auth-resolver`,event:`auth_materialization_failed`,message:`unable to materialize saved auth; falling back to inherited environment auth`,fields:{configPath:zc(),errorName:e instanceof Error?e.name:`Error`},error:e})}}function Gc(e){return{[ns.clientSecret]:Kc(ns.clientSecret,e),[ns.adminApiKey]:Kc(ns.adminApiKey,e),[ns.authToken]:Kc(ns.authToken,e)}}function Kc(e,t){let n=process.env[e];return typeof n==`string`&&n.length>0?{present:!0,source:Pc.get(e)===n?`config`:`env`}:t===null?{present:!1,source:null}:{present:!1,source:`config`}}async function qc(e){let t=rs.filter(e=>!Jc(e));if(t.length===0)return;let n=await Yc(e,rs);for(let e of t){let t=n[e];t&&!Jc(e)&&(process.env[e]=t,Pc.set(e,t))}}function Jc(e){let t=process.env[e];return typeof t==`string`&&t.length>0}async function Yc(e,t){let n=Qc(e);if(await tl(n))try{return await Xc(e,t,n,`fallback-only`)}catch{}try{return await Xc(e,t,n,`live`)}catch(r){try{let i=await Xc(e,t,n,`fallback-only`);if(Object.keys(i).length===0)throw r;return i}catch{throw r}}}function Xc(e,t,n,r){let i=`process.stdout.write(JSON.stringify(Object.fromEntries(${JSON.stringify([...t])}.map((name) => [name, process.env[name] ?? null]))))`;return new Promise((a,o)=>{re(`doppler`,[`run`,`--scope`,fe(zc()),`--project`,e.project,`--config`,e.config,`--only-secrets`,t.join(`,`),`--no-exit-on-missing-only-secrets`,`--fallback`,n,...r===`fallback-only`?[`--fallback-only`]:[`--attempts`,`2`],`--no-check-version`,`--no-liveness-ping`,`--`,process.execPath,`-e`,i],{encoding:`utf8`,timeout:r===`live`?nl:rl,killSignal:`SIGTERM`,maxBuffer:il},(e,n)=>{if(e){o(e);return}try{a(Zc(n,t))}catch(e){o(e)}})})}function Zc(e,t){let n=Pe.safeParse(JSON.parse(e)),r=n.success?sl(n.data):null;if(r===null)return{};let i={};for(let e of t){let t=r[e];cl(t)&&(i[e]=t)}return i}function Qc(e){let t=`${e.project}-${e.config}-${$c()}`.replace(/[^A-Za-z0-9._-]/g,`_`);return q(fe(zc()),`doppler-fallback-${t}.json`)}function $c(){let e=process.env.DOPPLER_PASSPHRASE;if(e)return`passphrase-${el(e)}`;let t=process.env.DOPPLER_TOKEN;return t?`token-${el(t)}`:`configured-token`}function el(e){return K(`sha256`).update(e).digest(`hex`).slice(0,16)}async function tl(e){try{let t=await oe(e);return Date.now()-t.mtimeMs<al}catch{return!1}}var nl=15e3,rl=5e3,il=65536,al=3e5;function ol(e){let t=sl(e),n=t===null?null:sl(t.auth);if(n===null)return null;if(n.source===`doppler`)return cl(n.project)&&cl(n.config)?{source:`doppler`,project:n.project,config:n.config}:null;if(n.source===`inline`)throw Error("auth config source 'inline' is no longer supported because it persists credentials; move credentials to Doppler or the environment, then replace this configuration using the installed CLI's `auth init` command");return null}function sl(e){return e==null||Array.isArray(e)?null:typeof e==`object`?e:null}function cl(e){return typeof e==`string`&&e.length>0}function ll(e){return typeof e==`object`&&!!e&&`code`in e&&e.code===`ENOENT`}var ul=class extends Error{constructor(e,t,n){super(n),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name,this.code=t,this.exitCode=e,this.nestedError=void 0}},dl=class extends ul{constructor(e){super(1,`commander.invalidArgument`,e),Error.captureStackTrace(this,this.constructor),this.name=this.constructor.name}},fl=class{constructor(e,t){switch(this.description=t||``,this.variadic=!1,this.parseArg=void 0,this.defaultValue=void 0,this.defaultValueDescription=void 0,this.argChoices=void 0,e[0]){case`<`:this.required=!0,this._name=e.slice(1,-1);break;case`[`:this.required=!1,this._name=e.slice(1,-1);break;default:this.required=!0,this._name=e}this._name.endsWith(`...`)&&(this.variadic=!0,this._name=this._name.slice(0,-3))}name(){return this._name}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}argParser(e){return this.parseArg=e,this}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,t)=>{if(!this.argChoices.includes(e))throw new dl(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,t):e},this}argRequired(){return this.required=!0,this}argOptional(){return this.required=!1,this}};function pl(e){let t=e.name()+(e.variadic===!0?`...`:``);return e.required?`<`+t+`>`:`[`+t+`]`}var ml=class{constructor(){this.helpWidth=void 0,this.minWidthToWrap=40,this.sortSubcommands=!1,this.sortOptions=!1,this.showGlobalOptions=!1}prepareContext(e){this.helpWidth=this.helpWidth??e.helpWidth??80}visibleCommands(e){let t=e.commands.filter(e=>!e._hidden),n=e._getHelpCommand();return n&&!n._hidden&&t.push(n),this.sortSubcommands&&t.sort((e,t)=>e.name().localeCompare(t.name())),t}compareOptions(e,t){let n=e=>e.short?e.short.replace(/^-/,``):e.long.replace(/^--/,``);return n(e).localeCompare(n(t))}visibleOptions(e){let t=e.options.filter(e=>!e.hidden),n=e._getHelpOption();if(n&&!n.hidden){let r=n.short&&e._findOption(n.short),i=n.long&&e._findOption(n.long);!r&&!i?t.push(n):n.long&&!i?t.push(e.createOption(n.long,n.description)):n.short&&!r&&t.push(e.createOption(n.short,n.description))}return this.sortOptions&&t.sort(this.compareOptions),t}visibleGlobalOptions(e){if(!this.showGlobalOptions)return[];let t=[];for(let n=e.parent;n;n=n.parent){let e=n.options.filter(e=>!e.hidden);t.push(...e)}return this.sortOptions&&t.sort(this.compareOptions),t}visibleArguments(e){return e._argsDescription&&e.registeredArguments.forEach(t=>{t.description=t.description||e._argsDescription[t.name()]||``}),e.registeredArguments.find(e=>e.description)?e.registeredArguments:[]}subcommandTerm(e){let t=e.registeredArguments.map(e=>pl(e)).join(` `);return e._name+(e._aliases[0]?`|`+e._aliases[0]:``)+(e.options.length?` [options]`:``)+(t?` `+t:``)}optionTerm(e){return e.flags}argumentTerm(e){return e.name()}longestSubcommandTermLength(e,t){return t.visibleCommands(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleSubcommandTerm(t.subcommandTerm(n)))),0)}longestOptionTermLength(e,t){return t.visibleOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestGlobalOptionTermLength(e,t){return t.visibleGlobalOptions(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleOptionTerm(t.optionTerm(n)))),0)}longestArgumentTermLength(e,t){return t.visibleArguments(e).reduce((e,n)=>Math.max(e,this.displayWidth(t.styleArgumentTerm(t.argumentTerm(n)))),0)}commandUsage(e){let t=e._name;e._aliases[0]&&(t=t+`|`+e._aliases[0]);let n=``;for(let t=e.parent;t;t=t.parent)n=t.name()+` `+n;return n+t+` `+e.usage()}commandDescription(e){return e.description()}subcommandDescription(e){return e.summary()||e.description()}optionDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&(e.required||e.optional||e.isBoolean()&&typeof e.defaultValue==`boolean`)&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),e.presetArg!==void 0&&e.optional&&t.push(`preset: ${JSON.stringify(e.presetArg)}`),e.envVar!==void 0&&t.push(`env: ${e.envVar}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}argumentDescription(e){let t=[];if(e.argChoices&&t.push(`choices: ${e.argChoices.map(e=>JSON.stringify(e)).join(`, `)}`),e.defaultValue!==void 0&&t.push(`default: ${e.defaultValueDescription||JSON.stringify(e.defaultValue)}`),t.length>0){let n=`(${t.join(`, `)})`;return e.description?`${e.description} ${n}`:n}return e.description}formatItemList(e,t,n){return t.length===0?[]:[n.styleTitle(e),...t,``]}groupItems(e,t,n){let r=new Map;return e.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[])}),t.forEach(e=>{let t=n(e);r.has(t)||r.set(t,[]),r.get(t).push(e)}),r}formatHelp(e,t){let n=t.padWidth(e,t),r=t.helpWidth??80;function i(e,r){return t.formatItem(e,n,r,t)}let a=[`${t.styleTitle(`Usage:`)} ${t.styleUsage(t.commandUsage(e))}`,``],o=t.commandDescription(e);o.length>0&&(a=a.concat([t.boxWrap(t.styleCommandDescription(o),r),``]));let s=t.visibleArguments(e).map(e=>i(t.styleArgumentTerm(t.argumentTerm(e)),t.styleArgumentDescription(t.argumentDescription(e))));if(a=a.concat(this.formatItemList(`Arguments:`,s,t)),this.groupItems(e.options,t.visibleOptions(e),e=>e.helpGroupHeading??`Options:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),t.showGlobalOptions){let n=t.visibleGlobalOptions(e).map(e=>i(t.styleOptionTerm(t.optionTerm(e)),t.styleOptionDescription(t.optionDescription(e))));a=a.concat(this.formatItemList(`Global Options:`,n,t))}return this.groupItems(e.commands,t.visibleCommands(e),e=>e.helpGroup()||`Commands:`).forEach((e,n)=>{let r=e.map(e=>i(t.styleSubcommandTerm(t.subcommandTerm(e)),t.styleSubcommandDescription(t.subcommandDescription(e))));a=a.concat(this.formatItemList(n,r,t))}),a.join(`
|
|
2
|
+
`)}displayWidth(e){return ke(e).length}styleTitle(e){return e}styleUsage(e){return e.split(` `).map(e=>e===`[options]`?this.styleOptionText(e):e===`[command]`?this.styleSubcommandText(e):e[0]===`[`||e[0]===`<`?this.styleArgumentText(e):this.styleCommandText(e)).join(` `)}styleCommandDescription(e){return this.styleDescriptionText(e)}styleOptionDescription(e){return this.styleDescriptionText(e)}styleSubcommandDescription(e){return this.styleDescriptionText(e)}styleArgumentDescription(e){return this.styleDescriptionText(e)}styleDescriptionText(e){return e}styleOptionTerm(e){return this.styleOptionText(e)}styleSubcommandTerm(e){return e.split(` `).map(e=>e===`[options]`?this.styleOptionText(e):e[0]===`[`||e[0]===`<`?this.styleArgumentText(e):this.styleSubcommandText(e)).join(` `)}styleArgumentTerm(e){return this.styleArgumentText(e)}styleOptionText(e){return e}styleArgumentText(e){return e}styleSubcommandText(e){return e}styleCommandText(e){return e}padWidth(e,t){return Math.max(t.longestOptionTermLength(e,t),t.longestGlobalOptionTermLength(e,t),t.longestSubcommandTermLength(e,t),t.longestArgumentTermLength(e,t))}preformatted(e){return/\n[^\S\r\n]/.test(e)}formatItem(e,t,n,r){let i=` `.repeat(2);if(!n)return i+e;let a=e.padEnd(t+e.length-r.displayWidth(e)),o=(this.helpWidth??80)-t-2-2,s;return s=o<this.minWidthToWrap||r.preformatted(n)?n:r.boxWrap(n,o).replace(/\n/g,`
|
|
3
|
+
`+` `.repeat(t+2)),i+a+` `.repeat(2)+s.replace(/\n/g,`\n${i}`)}boxWrap(e,t){if(t<this.minWidthToWrap)return e;let n=e.split(/\r\n|\n/),r=/[\s]*[^\s]+/g,i=[];return n.forEach(e=>{let n=e.match(r);if(n===null){i.push(``);return}let a=[n.shift()],o=this.displayWidth(a[0]);n.forEach(e=>{let n=this.displayWidth(e);if(o+n<=t){a.push(e),o+=n;return}i.push(a.join(``));let r=e.trimStart();a=[r],o=this.displayWidth(r)}),i.push(a.join(``))}),i.join(`
|
|
4
|
+
`)}},hl=class{constructor(e,t){this.flags=e,this.description=t||``,this.required=e.includes(`<`),this.optional=e.includes(`[`),this.variadic=/\w\.\.\.[>\]]$/.test(e),this.mandatory=!1;let n=vl(e);this.short=n.shortFlag,this.long=n.longFlag,this.negate=!1,this.long&&(this.negate=this.long.startsWith(`--no-`)),this.defaultValue=void 0,this.defaultValueDescription=void 0,this.presetArg=void 0,this.envVar=void 0,this.parseArg=void 0,this.hidden=!1,this.argChoices=void 0,this.conflictsWith=[],this.implied=void 0,this.helpGroupHeading=void 0}default(e,t){return this.defaultValue=e,this.defaultValueDescription=t,this}preset(e){return this.presetArg=e,this}conflicts(e){return this.conflictsWith=this.conflictsWith.concat(e),this}implies(e){let t=e;return typeof e==`string`&&(t={[e]:!0}),this.implied=Object.assign(this.implied||{},t),this}env(e){return this.envVar=e,this}argParser(e){return this.parseArg=e,this}makeOptionMandatory(e=!0){return this.mandatory=!!e,this}hideHelp(e=!0){return this.hidden=!!e,this}_collectValue(e,t){return t===this.defaultValue||!Array.isArray(t)?[e]:(t.push(e),t)}choices(e){return this.argChoices=e.slice(),this.parseArg=(e,t)=>{if(!this.argChoices.includes(e))throw new dl(`Allowed choices are ${this.argChoices.join(`, `)}.`);return this.variadic?this._collectValue(e,t):e},this}name(){return this.long?this.long.replace(/^--/,``):this.short.replace(/^-/,``)}attributeName(){return this.negate?_l(this.name().replace(/^no-/,``)):_l(this.name())}helpGroup(e){return this.helpGroupHeading=e,this}is(e){return this.short===e||this.long===e}isBoolean(){return!this.required&&!this.optional&&!this.negate}},gl=class{constructor(e){this.positiveOptions=new Map,this.negativeOptions=new Map,this.dualOptions=new Set,e.forEach(e=>{e.negate?this.negativeOptions.set(e.attributeName(),e):this.positiveOptions.set(e.attributeName(),e)}),this.negativeOptions.forEach((e,t)=>{this.positiveOptions.has(t)&&this.dualOptions.add(t)})}valueFromOption(e,t){let n=t.attributeName();if(!this.dualOptions.has(n))return!0;let r=this.negativeOptions.get(n).presetArg,i=r!==void 0&&r;return t.negate===(i===e)}};function _l(e){return e.split(`-`).reduce((e,t)=>e+t[0].toUpperCase()+t.slice(1))}function vl(e){let t,n,r=/^-[^-]$/,i=/^--[^-]/,a=e.split(/[ |,]+/).concat(`guard`);if(r.test(a[0])&&(t=a.shift()),i.test(a[0])&&(n=a.shift()),!t&&r.test(a[0])&&(t=a.shift()),!t&&i.test(a[0])&&(t=n,n=a.shift()),a[0].startsWith(`-`)){let t=a[0],n=`option creation failed due to '${t}' in option flags '${e}'`;throw/^-[^-][^-]/.test(t)?Error(`${n}
|
|
5
|
+
- a short flag is a single dash and a single character
|
|
6
|
+
- either use a single dash and a single character (for a short flag)
|
|
7
|
+
- or use a double dash for a long option (and can have two, like '--ws, --workspace')`):r.test(t)?Error(`${n}
|
|
8
|
+
- too many short flags`):i.test(t)?Error(`${n}
|
|
9
|
+
- too many long flags`):Error(`${n}
|
|
10
|
+
- unrecognised flag format`)}if(t===void 0&&n===void 0)throw Error(`option creation failed due to no flags found in '${e}'.`);return{shortFlag:t,longFlag:n}}var yl=3;function bl(e,t){if(Math.abs(e.length-t.length)>yl)return Math.max(e.length,t.length);let n=[];for(let t=0;t<=e.length;t++)n[t]=[t];for(let e=0;e<=t.length;e++)n[0][e]=e;for(let r=1;r<=t.length;r++)for(let i=1;i<=e.length;i++){let a;a=e[i-1]===t[r-1]?0:1,n[i][r]=Math.min(n[i-1][r]+1,n[i][r-1]+1,n[i-1][r-1]+a),i>1&&r>1&&e[i-1]===t[r-2]&&e[i-2]===t[r-1]&&(n[i][r]=Math.min(n[i][r],n[i-2][r-2]+1))}return n[e.length][t.length]}function xl(e,t){if(!t||t.length===0)return``;t=Array.from(new Set(t));let n=e.startsWith(`--`);n&&(e=e.slice(2),t=t.map(e=>e.slice(2)));let r=[],i=yl;return t.forEach(t=>{if(t.length<=1)return;let n=bl(e,t),a=Math.max(e.length,t.length);(a-n)/a>.4&&(n<i?(i=n,r=[t]):n===i&&r.push(t))}),r.sort((e,t)=>e.localeCompare(t)),n&&(r=r.map(e=>`--${e}`)),r.length>1?`\n(Did you mean one of ${r.join(`, `)}?)`:r.length===1?`\n(Did you mean ${r[0]}?)`:``}var Sl=class e extends Oe{constructor(e){super(),this.commands=[],this.options=[],this.parent=null,this._allowUnknownOption=!1,this._allowExcessArguments=!1,this.registeredArguments=[],this._args=this.registeredArguments,this.args=[],this.rawArgs=[],this.processedArgs=[],this._scriptPath=null,this._name=e||``,this._optionValues={},this._optionValueSources={},this._storeOptionsAsProperties=!1,this._actionHandler=null,this._executableHandler=!1,this._executableFile=null,this._executableDir=null,this._defaultCommandName=null,this._exitCallback=null,this._aliases=[],this._combineFlagAndOptionalValue=!0,this._description=``,this._summary=``,this._argsDescription=void 0,this._enablePositionalOptions=!1,this._passThroughOptions=!1,this._lifeCycleHooks={},this._showHelpAfterError=!1,this._showSuggestionAfterError=!0,this._savedState=null,this._outputConfiguration={writeOut:e=>Y.stdout.write(e),writeErr:e=>Y.stderr.write(e),outputError:(e,t)=>t(e),getOutHelpWidth:()=>Y.stdout.isTTY?Y.stdout.columns:void 0,getErrHelpWidth:()=>Y.stderr.isTTY?Y.stderr.columns:void 0,getOutHasColors:()=>wl()??(Y.stdout.isTTY&&Y.stdout.hasColors?.()),getErrHasColors:()=>wl()??(Y.stderr.isTTY&&Y.stderr.hasColors?.()),stripColor:e=>ke(e)},this._hidden=!1,this._helpOption=void 0,this._addImplicitHelpCommand=void 0,this._helpCommand=void 0,this._helpConfiguration={},this._helpGroupHeading=void 0,this._defaultCommandGroup=void 0,this._defaultOptionGroup=void 0}copyInheritedSettings(e){return this._outputConfiguration=e._outputConfiguration,this._helpOption=e._helpOption,this._helpCommand=e._helpCommand,this._helpConfiguration=e._helpConfiguration,this._exitCallback=e._exitCallback,this._storeOptionsAsProperties=e._storeOptionsAsProperties,this._combineFlagAndOptionalValue=e._combineFlagAndOptionalValue,this._allowExcessArguments=e._allowExcessArguments,this._enablePositionalOptions=e._enablePositionalOptions,this._showHelpAfterError=e._showHelpAfterError,this._showSuggestionAfterError=e._showSuggestionAfterError,this}_getCommandAndAncestors(){let e=[];for(let t=this;t;t=t.parent)e.push(t);return e}command(e,t,n){let r=t,i=n;typeof r==`object`&&r&&(i=r,r=null),i||={};let[,a,o]=e.match(/([^ ]+) *(.*)/),s=this.createCommand(a);return r&&(s.description(r),s._executableHandler=!0),i.isDefault&&(this._defaultCommandName=s._name),s._hidden=!!(i.noHelp||i.hidden),s._executableFile=i.executableFile||null,o&&s.arguments(o),this._registerCommand(s),s.parent=this,s.copyInheritedSettings(this),r?this:s}createCommand(t){return new e(t)}createHelp(){return Object.assign(new ml,this.configureHelp())}configureHelp(e){return e===void 0?this._helpConfiguration:(this._helpConfiguration=e,this)}configureOutput(e){return e===void 0?this._outputConfiguration:(this._outputConfiguration={...this._outputConfiguration,...e},this)}showHelpAfterError(e=!0){return typeof e!=`string`&&(e=!!e),this._showHelpAfterError=e,this}showSuggestionAfterError(e=!0){return this._showSuggestionAfterError=!!e,this}addCommand(e,t){if(!e._name)throw Error(`Command passed to .addCommand() must have a name
|
|
11
|
+
- specify the name in Command constructor or using .name()`);return t||={},t.isDefault&&(this._defaultCommandName=e._name),(t.noHelp||t.hidden)&&(e._hidden=!0),this._registerCommand(e),e.parent=this,e._checkForBrokenPassThrough(),this}createArgument(e,t){return new fl(e,t)}argument(e,t,n,r){let i=this.createArgument(e,t);return typeof n==`function`?i.default(r).argParser(n):i.default(n),this.addArgument(i),this}arguments(e){return e.trim().split(/ +/).forEach(e=>{this.argument(e)}),this}addArgument(e){let t=this.registeredArguments.slice(-1)[0];if(t?.variadic)throw Error(`only the last argument can be variadic '${t.name()}'`);if(e.required&&e.defaultValue!==void 0&&e.parseArg===void 0)throw Error(`a default value for a required argument is never used: '${e.name()}'`);return this.registeredArguments.push(e),this}helpCommand(e,t){if(typeof e==`boolean`)return this._addImplicitHelpCommand=e,e&&this._defaultCommandGroup&&this._initCommandGroup(this._getHelpCommand()),this;let[,n,r]=(e??`help [command]`).match(/([^ ]+) *(.*)/),i=t??`display help for command`,a=this.createCommand(n);return a.helpOption(!1),r&&a.arguments(r),i&&a.description(i),this._addImplicitHelpCommand=!0,this._helpCommand=a,(e||t)&&this._initCommandGroup(a),this}addHelpCommand(e,t){return typeof e==`object`?(this._addImplicitHelpCommand=!0,this._helpCommand=e,this._initCommandGroup(e),this):(this.helpCommand(e,t),this)}_getHelpCommand(){return this._addImplicitHelpCommand??(this.commands.length&&!this._actionHandler&&!this._findCommand(`help`))?(this._helpCommand===void 0&&this.helpCommand(void 0,void 0),this._helpCommand):null}hook(e,t){let n=[`preSubcommand`,`preAction`,`postAction`];if(!n.includes(e))throw Error(`Unexpected value for event passed to hook : '${e}'.
|
|
12
|
+
Expecting one of '${n.join(`', '`)}'`);return this._lifeCycleHooks[e]?this._lifeCycleHooks[e].push(t):this._lifeCycleHooks[e]=[t],this}exitOverride(e){return this._exitCallback=e||(e=>{if(e.code!==`commander.executeSubCommandAsync`)throw e}),this}_exit(e,t,n){this._exitCallback&&this._exitCallback(new ul(e,t,n)),Y.exit(e)}action(e){let t=t=>{let n=this.registeredArguments.length,r=t.slice(0,n);return r[n]=this._storeOptionsAsProperties?this:this.opts(),r.push(this),e.apply(this,r)};return this._actionHandler=t,this}createOption(e,t){return new hl(e,t)}_callParseArg(e,t,n,r){try{return e.parseArg(t,n)}catch(e){if(e.code===`commander.invalidArgument`){let t=`${r} ${e.message}`;this.error(t,{exitCode:e.exitCode,code:e.code})}throw e}}_registerOption(e){let t=e.short&&this._findOption(e.short)||e.long&&this._findOption(e.long);if(t){let n=e.long&&this._findOption(e.long)?e.long:e.short;throw Error(`Cannot add option '${e.flags}'${this._name&&` to command '${this._name}'`} due to conflicting flag '${n}'
|
|
13
|
+
- already used by option '${t.flags}'`)}this._initOptionGroup(e),this.options.push(e)}_registerCommand(e){let t=e=>[e.name()].concat(e.aliases()),n=t(e).find(e=>this._findCommand(e));if(n){let r=t(this._findCommand(n)).join(`|`),i=t(e).join(`|`);throw Error(`cannot add command '${i}' as already have command '${r}'`)}this._initCommandGroup(e),this.commands.push(e)}addOption(e){this._registerOption(e);let t=e.name(),n=e.attributeName();e.defaultValue!==void 0&&this.setOptionValueWithSource(n,e.defaultValue,`default`);let r=(t,r,i)=>{t==null&&e.presetArg!==void 0&&(t=e.presetArg);let a=this.getOptionValue(n);t!==null&&e.parseArg?t=this._callParseArg(e,t,a,r):t!==null&&e.variadic&&(t=e._collectValue(t,a)),t??=e.negate?!1:e.isBoolean()||e.optional?!0:``,this.setOptionValueWithSource(n,t,i)};return this.on(`option:`+t,t=>{let n=`error: option '${e.flags}' argument '${t}' is invalid.`;r(t,n,`cli`)}),e.envVar&&this.on(`optionEnv:`+t,t=>{let n=`error: option '${e.flags}' value '${t}' from env '${e.envVar}' is invalid.`;r(t,n,`env`)}),this}_optionEx(e,t,n,r,i){if(typeof t==`object`&&t instanceof hl)throw Error(`To add an Option object use addOption() instead of option() or requiredOption()`);let a=this.createOption(t,n);if(a.makeOptionMandatory(!!e.mandatory),typeof r==`function`)a.default(i).argParser(r);else if(r instanceof RegExp){let e=r;r=(t,n)=>{let r=e.exec(t);return r?r[0]:n},a.default(i).argParser(r)}else a.default(r);return this.addOption(a)}option(e,t,n,r){return this._optionEx({},e,t,n,r)}requiredOption(e,t,n,r){return this._optionEx({mandatory:!0},e,t,n,r)}combineFlagAndOptionalValue(e=!0){return this._combineFlagAndOptionalValue=!!e,this}allowUnknownOption(e=!0){return this._allowUnknownOption=!!e,this}allowExcessArguments(e=!0){return this._allowExcessArguments=!!e,this}enablePositionalOptions(e=!0){return this._enablePositionalOptions=!!e,this}passThroughOptions(e=!0){return this._passThroughOptions=!!e,this._checkForBrokenPassThrough(),this}_checkForBrokenPassThrough(){if(this.parent&&this._passThroughOptions&&!this.parent._enablePositionalOptions)throw Error(`passThroughOptions cannot be used for '${this._name}' without turning on enablePositionalOptions for parent command(s)`)}storeOptionsAsProperties(e=!0){if(this.options.length)throw Error(`call .storeOptionsAsProperties() before adding options`);if(Object.keys(this._optionValues).length)throw Error(`call .storeOptionsAsProperties() before setting option values`);return this._storeOptionsAsProperties=!!e,this}getOptionValue(e){return this._storeOptionsAsProperties?this[e]:this._optionValues[e]}setOptionValue(e,t){return this.setOptionValueWithSource(e,t,void 0)}setOptionValueWithSource(e,t,n){return this._storeOptionsAsProperties?this[e]=t:this._optionValues[e]=t,this._optionValueSources[e]=n,this}getOptionValueSource(e){return this._optionValueSources[e]}getOptionValueSourceWithGlobals(e){let t;return this._getCommandAndAncestors().forEach(n=>{n.getOptionValueSource(e)!==void 0&&(t=n.getOptionValueSource(e))}),t}_prepareUserArgs(e,t){if(e!==void 0&&!Array.isArray(e))throw Error(`first parameter to parse must be array or undefined`);if(t||={},e===void 0&&t.from===void 0){Y.versions?.electron&&(t.from=`electron`);let e=Y.execArgv??[];(e.includes(`-e`)||e.includes(`--eval`)||e.includes(`-p`)||e.includes(`--print`))&&(t.from=`eval`)}e===void 0&&(e=Y.argv),this.rawArgs=e.slice();let n;switch(t.from){case void 0:case`node`:this._scriptPath=e[1],n=e.slice(2);break;case`electron`:Y.defaultApp?(this._scriptPath=e[1],n=e.slice(2)):n=e.slice(1);break;case`user`:n=e.slice(0);break;case`eval`:n=e.slice(1);break;default:throw Error(`unexpected parse option { from: '${t.from}' }`)}return!this._name&&this._scriptPath&&this.nameFromFilename(this._scriptPath),this._name=this._name||`program`,n}parse(e,t){this._prepareForParse();let n=this._prepareUserArgs(e,t);return this._parseCommand([],n),this}async parseAsync(e,t){this._prepareForParse();let n=this._prepareUserArgs(e,t);return await this._parseCommand([],n),this}_prepareForParse(){this._savedState===null?(this.options.filter(e=>e.negate&&e.defaultValue===void 0&&this.getOptionValue(e.attributeName())===void 0).forEach(e=>{let t=e.long.replace(/^--no-/,`--`);this._findOption(t)||this.setOptionValueWithSource(e.attributeName(),!0,`default`)}),this.saveStateBeforeParse()):this.restoreStateBeforeParse()}saveStateBeforeParse(){this._savedState={_name:this._name,_optionValues:{...this._optionValues},_optionValueSources:{...this._optionValueSources}}}restoreStateBeforeParse(){if(this._storeOptionsAsProperties)throw Error(`Can not call parse again when storeOptionsAsProperties is true.
|
|
14
|
+
- either make a new Command for each call to parse, or stop storing options as properties`);this._name=this._savedState._name,this._scriptPath=null,this.rawArgs=[],this._optionValues={...this._savedState._optionValues},this._optionValueSources={...this._savedState._optionValueSources},this.args=[],this.processedArgs=[]}_checkForMissingExecutable(e,t,n){if(Ce.existsSync(e))return;let r=`'${e}' does not exist
|
|
15
|
+
- if '${n}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
|
|
16
|
+
- if the default executable name is not suitable, use the executableFile option to supply a custom name or path
|
|
17
|
+
- ${t?`searched for local subcommand relative to directory '${t}'`:`no directory for search for local subcommand, use .executableDir() to supply a custom directory`}`;throw Error(r)}_executeSubCommand(e,t){t=t.slice();let n=[`.js`,`.ts`,`.tsx`,`.mjs`,`.cjs`];function r(e,t){let r=ue.resolve(e,t);if(Ce.existsSync(r))return r;if(n.includes(ue.extname(t)))return;let i=n.find(e=>Ce.existsSync(`${r}${e}`));if(i)return`${r}${i}`}this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let i=e._executableFile||`${this._name}-${e._name}`,a=this._executableDir||``;if(this._scriptPath){let e;try{e=Ce.realpathSync(this._scriptPath)}catch{e=this._scriptPath}a=ue.resolve(ue.dirname(e),a)}if(a){let t=r(a,i);if(!t&&!e._executableFile&&this._scriptPath){let n=ue.basename(this._scriptPath,ue.extname(this._scriptPath));n!==this._name&&(t=r(a,`${n}-${e._name}`))}i=t||i}let o=n.includes(ue.extname(i)),s;Y.platform===`win32`?(this._checkForMissingExecutable(i,a,e._name),t.unshift(i),t=Cl(Y.execArgv).concat(t),s=G.spawn(Y.execPath,t,{stdio:`inherit`})):o?(t.unshift(i),t=Cl(Y.execArgv).concat(t),s=G.spawn(Y.argv[0],t,{stdio:`inherit`})):s=G.spawn(i,t,{stdio:`inherit`}),s.killed||[`SIGUSR1`,`SIGUSR2`,`SIGTERM`,`SIGINT`,`SIGHUP`].forEach(e=>{Y.on(e,()=>{s.killed===!1&&s.exitCode===null&&s.kill(e)})});let c=this._exitCallback;s.on(`close`,e=>{e??=1,c?c(new ul(e,`commander.executeSubCommandAsync`,`(close)`)):Y.exit(e)}),s.on(`error`,t=>{if(t.code===`ENOENT`)this._checkForMissingExecutable(i,a,e._name);else if(t.code===`EACCES`)throw Error(`'${i}' not executable`);if(!c)Y.exit(1);else{let e=new ul(1,`commander.executeSubCommandAsync`,`(error)`);e.nestedError=t,c(e)}}),this.runningCommand=s}_dispatchSubcommand(e,t,n){let r=this._findCommand(e);r||this.help({error:!0}),r._prepareForParse();let i;return i=this._chainOrCallSubCommandHook(i,r,`preSubcommand`),i=this._chainOrCall(i,()=>{if(r._executableHandler)this._executeSubCommand(r,t.concat(n));else return r._parseCommand(t,n)}),i}_dispatchHelpCommand(e){e||this.help();let t=this._findCommand(e);return t&&!t._executableHandler&&t.help(),this._dispatchSubcommand(e,[],[this._getHelpOption()?.long??this._getHelpOption()?.short??`--help`])}_checkNumberOfArguments(){this.registeredArguments.forEach((e,t)=>{e.required&&this.args[t]==null&&this.missingArgument(e.name())}),!(this.registeredArguments.length>0&&this.registeredArguments[this.registeredArguments.length-1].variadic)&&this.args.length>this.registeredArguments.length&&this._excessArguments(this.args)}_processArguments(){let e=(e,t,n)=>{let r=t;if(t!==null&&e.parseArg){let i=`error: command-argument value '${t}' is invalid for argument '${e.name()}'.`;r=this._callParseArg(e,t,n,i)}return r};this._checkNumberOfArguments();let t=[];this.registeredArguments.forEach((n,r)=>{let i=n.defaultValue;n.variadic?r<this.args.length?(i=this.args.slice(r),n.parseArg&&(i=i.reduce((t,r)=>e(n,r,t),n.defaultValue))):i===void 0&&(i=[]):r<this.args.length&&(i=this.args[r],n.parseArg&&(i=e(n,i,n.defaultValue))),t[r]=i}),this.processedArgs=t}_chainOrCall(e,t){return e?.then&&typeof e.then==`function`?e.then(()=>t()):t()}_chainOrCallHooks(e,t){let n=e,r=[];return this._getCommandAndAncestors().reverse().filter(e=>e._lifeCycleHooks[t]!==void 0).forEach(e=>{e._lifeCycleHooks[t].forEach(t=>{r.push({hookedCommand:e,callback:t})})}),t===`postAction`&&r.reverse(),r.forEach(e=>{n=this._chainOrCall(n,()=>e.callback(e.hookedCommand,this))}),n}_chainOrCallSubCommandHook(e,t,n){let r=e;return this._lifeCycleHooks[n]!==void 0&&this._lifeCycleHooks[n].forEach(e=>{r=this._chainOrCall(r,()=>e(this,t))}),r}_parseCommand(e,t){let n=this.parseOptions(t);if(this._parseOptionsEnv(),this._parseOptionsImplied(),e=e.concat(n.operands),t=n.unknown,this.args=e.concat(t),e&&this._findCommand(e[0]))return this._dispatchSubcommand(e[0],e.slice(1),t);if(this._getHelpCommand()&&e[0]===this._getHelpCommand().name())return this._dispatchHelpCommand(e[1]);if(this._defaultCommandName)return this._outputHelpIfRequested(t),this._dispatchSubcommand(this._defaultCommandName,e,t);this.commands.length&&this.args.length===0&&!this._actionHandler&&!this._defaultCommandName&&this.help({error:!0}),this._outputHelpIfRequested(n.unknown),this._checkForMissingMandatoryOptions(),this._checkForConflictingOptions();let r=()=>{n.unknown.length>0&&this.unknownOption(n.unknown[0])},i=`command:${this.name()}`;if(this._actionHandler){r(),this._processArguments();let n;return n=this._chainOrCallHooks(n,`preAction`),n=this._chainOrCall(n,()=>this._actionHandler(this.processedArgs)),this.parent&&(n=this._chainOrCall(n,()=>{this.parent.emit(i,e,t)})),n=this._chainOrCallHooks(n,`postAction`),n}if(this.parent?.listenerCount(i))r(),this._processArguments(),this.parent.emit(i,e,t);else if(e.length){if(this._findCommand(`*`))return this._dispatchSubcommand(`*`,e,t);this.listenerCount(`command:*`)?this.emit(`command:*`,e,t):this.commands.length?this.unknownCommand():(r(),this._processArguments())}else this.commands.length?(r(),this.help({error:!0})):(r(),this._processArguments())}_findCommand(e){if(e)return this.commands.find(t=>t._name===e||t._aliases.includes(e))}_findOption(e){return this.options.find(t=>t.is(e))}_checkForMissingMandatoryOptions(){this._getCommandAndAncestors().forEach(e=>{e.options.forEach(t=>{t.mandatory&&e.getOptionValue(t.attributeName())===void 0&&e.missingMandatoryOptionValue(t)})})}_checkForConflictingLocalOptions(){let e=this.options.filter(e=>{let t=e.attributeName();return this.getOptionValue(t)!==void 0&&this.getOptionValueSource(t)!=="default"});e.filter(e=>e.conflictsWith.length>0).forEach(t=>{let n=e.find(e=>t.conflictsWith.includes(e.attributeName()));n&&this._conflictingOption(t,n)})}_checkForConflictingOptions(){this._getCommandAndAncestors().forEach(e=>{e._checkForConflictingLocalOptions()})}parseOptions(e){let t=[],n=[],r=t;function i(e){return e.length>1&&e[0]===`-`}let a=e=>/^-(\d+|\d*\.\d+)(e[+-]?\d+)?$/.test(e)?!this._getCommandAndAncestors().some(e=>e.options.map(e=>e.short).some(e=>/^-\d$/.test(e))):!1,o=null,s=null,c=0;for(;c<e.length||s;){let l=s??e[c++];if(s=null,l===`--`){r===n&&r.push(l),r.push(...e.slice(c));break}if(o&&(!i(l)||a(l))){this.emit(`option:${o.name()}`,l);continue}if(o=null,i(l)){let t=this._findOption(l);if(t){if(t.required){let n=e[c++];n===void 0&&this.optionMissingArgument(t),this.emit(`option:${t.name()}`,n)}else if(t.optional){let n=null;c<e.length&&(!i(e[c])||a(e[c]))&&(n=e[c++]),this.emit(`option:${t.name()}`,n)}else this.emit(`option:${t.name()}`);o=t.variadic?t:null;continue}}if(l.length>2&&l[0]===`-`&&l[1]!==`-`){let e=this._findOption(`-${l[1]}`);if(e){e.required||e.optional&&this._combineFlagAndOptionalValue?this.emit(`option:${e.name()}`,l.slice(2)):(this.emit(`option:${e.name()}`),s=`-${l.slice(2)}`);continue}}if(/^--[^=]+=/.test(l)){let e=l.indexOf(`=`),t=this._findOption(l.slice(0,e));if(t&&(t.required||t.optional)){this.emit(`option:${t.name()}`,l.slice(e+1));continue}}if(r===t&&i(l)&&!(this.commands.length===0&&a(l))&&(r=n),(this._enablePositionalOptions||this._passThroughOptions)&&t.length===0&&n.length===0){if(this._findCommand(l)){t.push(l),n.push(...e.slice(c));break}if(this._getHelpCommand()&&l===this._getHelpCommand().name()){t.push(l,...e.slice(c));break}if(this._defaultCommandName){n.push(l,...e.slice(c));break}}if(this._passThroughOptions){r.push(l,...e.slice(c));break}r.push(l)}return{operands:t,unknown:n}}opts(){if(this._storeOptionsAsProperties){let e={},t=this.options.length;for(let n=0;n<t;n++){let t=this.options[n].attributeName();e[t]=t===this._versionOptionName?this._version:this[t]}return e}return this._optionValues}optsWithGlobals(){return this._getCommandAndAncestors().reduce((e,t)=>Object.assign(e,t.opts()),{})}error(e,t){this._outputConfiguration.outputError(`${e}\n`,this._outputConfiguration.writeErr),typeof this._showHelpAfterError==`string`?this._outputConfiguration.writeErr(`${this._showHelpAfterError}\n`):this._showHelpAfterError&&(this._outputConfiguration.writeErr(`
|
|
18
|
+
`),this.outputHelp({error:!0}));let n=t||{},r=n.exitCode||1,i=n.code||`commander.error`;this._exit(r,i,e)}_parseOptionsEnv(){this.options.forEach(e=>{if(e.envVar&&e.envVar in Y.env){let t=e.attributeName();(this.getOptionValue(t)===void 0||[`default`,`config`,`env`].includes(this.getOptionValueSource(t)))&&(e.required||e.optional?this.emit(`optionEnv:${e.name()}`,Y.env[e.envVar]):this.emit(`optionEnv:${e.name()}`))}})}_parseOptionsImplied(){let e=new gl(this.options),t=e=>this.getOptionValue(e)!==void 0&&![`default`,`implied`].includes(this.getOptionValueSource(e));this.options.filter(n=>n.implied!==void 0&&t(n.attributeName())&&e.valueFromOption(this.getOptionValue(n.attributeName()),n)).forEach(e=>{Object.keys(e.implied).filter(e=>!t(e)).forEach(t=>{this.setOptionValueWithSource(t,e.implied[t],`implied`)})})}missingArgument(e){let t=`error: missing required argument '${e}'`;this.error(t,{code:`commander.missingArgument`})}optionMissingArgument(e){let t=`error: option '${e.flags}' argument missing`;this.error(t,{code:`commander.optionMissingArgument`})}missingMandatoryOptionValue(e){let t=`error: required option '${e.flags}' not specified`;this.error(t,{code:`commander.missingMandatoryOptionValue`})}_conflictingOption(e,t){let n=e=>{let t=e.attributeName(),n=this.getOptionValue(t),r=this.options.find(e=>e.negate&&t===e.attributeName()),i=this.options.find(e=>!e.negate&&t===e.attributeName());return r&&(r.presetArg===void 0&&n===!1||r.presetArg!==void 0&&n===r.presetArg)?r:i||e},r=e=>{let t=n(e),r=t.attributeName();return this.getOptionValueSource(r)===`env`?`environment variable '${t.envVar}'`:`option '${t.flags}'`},i=`error: ${r(e)} cannot be used with ${r(t)}`;this.error(i,{code:`commander.conflictingOption`})}unknownOption(e){if(this._allowUnknownOption)return;let t=``;if(e.startsWith(`--`)&&this._showSuggestionAfterError){let n=[],r=this;do{let e=r.createHelp().visibleOptions(r).filter(e=>e.long).map(e=>e.long);n=n.concat(e),r=r.parent}while(r&&!r._enablePositionalOptions);t=xl(e,n)}let n=`error: unknown option '${e}'${t}`;this.error(n,{code:`commander.unknownOption`})}_excessArguments(e){if(this._allowExcessArguments)return;let t=this.registeredArguments.length,n=t===1?``:`s`,r=e.length,i=`error: too many arguments${this.parent?` for '${this.name()}'`:``}. Expected ${t} argument${n} but got ${r}: ${e.join(`, `)}.`;this.error(i,{code:`commander.excessArguments`})}unknownCommand(){let e=this.args[0],t=``;if(this._showSuggestionAfterError){let n=[];this.createHelp().visibleCommands(this).forEach(e=>{n.push(e.name()),e.alias()&&n.push(e.alias())}),t=xl(e,n)}let n=`error: unknown command '${e}'${t}`;this.error(n,{code:`commander.unknownCommand`})}version(e,t,n){if(e===void 0)return this._version;this._version=e,t||=`-V, --version`,n||=`output the version number`;let r=this.createOption(t,n);return this._versionOptionName=r.attributeName(),this._registerOption(r),this.on(`option:`+r.name(),()=>{this._outputConfiguration.writeOut(`${e}\n`),this._exit(0,`commander.version`,e)}),this}description(e,t){return e===void 0&&t===void 0?this._description:(this._description=e,t&&(this._argsDescription=t),this)}summary(e){return e===void 0?this._summary:(this._summary=e,this)}alias(e){if(e===void 0)return this._aliases[0];let t=this;if(this.commands.length!==0&&this.commands[this.commands.length-1]._executableHandler&&(t=this.commands[this.commands.length-1]),e===t._name)throw Error(`Command alias can't be the same as its name`);let n=this.parent?._findCommand(e);if(n){let t=[n.name()].concat(n.aliases()).join(`|`);throw Error(`cannot add alias '${e}' to command '${this.name()}' as already have command '${t}'`)}return t._aliases.push(e),this}aliases(e){return e===void 0?this._aliases:(e.forEach(e=>this.alias(e)),this)}usage(e){if(e===void 0){if(this._usage)return this._usage;let e=this.registeredArguments.map(e=>pl(e));return[].concat(this.options.length||this._helpOption!==null?`[options]`:[],this.commands.length?`[command]`:[],this.registeredArguments.length?e:[]).join(` `)}return this._usage=e,this}name(e){return e===void 0?this._name:(this._name=e,this)}helpGroup(e){return e===void 0?this._helpGroupHeading??``:(this._helpGroupHeading=e,this)}commandsGroup(e){return e===void 0?this._defaultCommandGroup??``:(this._defaultCommandGroup=e,this)}optionsGroup(e){return e===void 0?this._defaultOptionGroup??``:(this._defaultOptionGroup=e,this)}_initOptionGroup(e){this._defaultOptionGroup&&!e.helpGroupHeading&&e.helpGroup(this._defaultOptionGroup)}_initCommandGroup(e){this._defaultCommandGroup&&!e.helpGroup()&&e.helpGroup(this._defaultCommandGroup)}nameFromFilename(e){return this._name=ue.basename(e,ue.extname(e)),this}executableDir(e){return e===void 0?this._executableDir:(this._executableDir=e,this)}helpInformation(e){let t=this.createHelp(),n=this._getOutputContext(e);t.prepareContext({error:n.error,helpWidth:n.helpWidth,outputHasColors:n.hasColors});let r=t.formatHelp(this,t);return n.hasColors?r:this._outputConfiguration.stripColor(r)}_getOutputContext(e){e||={};let t=!!e.error,n,r,i;return t?(n=e=>this._outputConfiguration.writeErr(e),r=this._outputConfiguration.getErrHasColors(),i=this._outputConfiguration.getErrHelpWidth()):(n=e=>this._outputConfiguration.writeOut(e),r=this._outputConfiguration.getOutHasColors(),i=this._outputConfiguration.getOutHelpWidth()),{error:t,write:e=>(r||(e=this._outputConfiguration.stripColor(e)),n(e)),hasColors:r,helpWidth:i}}outputHelp(e){let t;typeof e==`function`&&(t=e,e=void 0);let n=this._getOutputContext(e),r={error:n.error,write:n.write,command:this};this._getCommandAndAncestors().reverse().forEach(e=>e.emit(`beforeAllHelp`,r)),this.emit(`beforeHelp`,r);let i=this.helpInformation({error:n.error});if(t&&(i=t(i),typeof i!=`string`&&!Buffer.isBuffer(i)))throw Error(`outputHelp callback must return a string or a Buffer`);n.write(i),this._getHelpOption()?.long&&this.emit(this._getHelpOption().long),this.emit(`afterHelp`,r),this._getCommandAndAncestors().forEach(e=>e.emit(`afterAllHelp`,r))}helpOption(e,t){return typeof e==`boolean`?(e?(this._helpOption===null&&(this._helpOption=void 0),this._defaultOptionGroup&&this._initOptionGroup(this._getHelpOption())):this._helpOption=null,this):(this._helpOption=this.createOption(e??`-h, --help`,t??`display help for command`),(e||t)&&this._initOptionGroup(this._helpOption),this)}_getHelpOption(){return this._helpOption===void 0&&this.helpOption(void 0,void 0),this._helpOption}addHelpOption(e){return this._helpOption=e,this._initOptionGroup(e),this}help(e){this.outputHelp(e);let t=Number(Y.exitCode??0);t===0&&e&&typeof e!=`function`&&e.error&&(t=1),this._exit(t,`commander.help`,`(outputHelp)`)}addHelpText(e,t){let n=[`beforeAll`,`before`,`after`,`afterAll`];if(!n.includes(e))throw Error(`Unexpected value for position to addHelpText.
|
|
19
|
+
Expecting one of '${n.join(`', '`)}'`);let r=`${e}Help`;return this.on(r,e=>{let n;n=typeof t==`function`?t({error:e.error,command:e.command}):t,n&&e.write(`${n}\n`)}),this}_outputHelpIfRequested(e){let t=this._getHelpOption();t&&e.find(e=>t.is(e))&&(this.outputHelp(),this._exit(0,`commander.helpDisplayed`,`(outputHelp)`))}};function Cl(e){return e.map(e=>{if(!e.startsWith(`--inspect`))return e;let t,n=`127.0.0.1`,r=`9229`,i;return(i=e.match(/^(--inspect(-brk)?)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+)$/))===null?(i=e.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/))!==null&&(t=i[1],n=i[3],r=i[4]):(t=i[1],/^\d+$/.test(i[3])?r=i[3]:n=i[3]):t=i[1],t&&r!==`0`?`${t}=${n}:${parseInt(r)+1}`:e})}function wl(){if(Y.env.NO_COLOR||Y.env.FORCE_COLOR===`0`||Y.env.FORCE_COLOR===`false`)return!1;if(Y.env.FORCE_COLOR||Y.env.CLICOLOR_FORCE!==void 0)return!0}new Sl;var Tl=3e4;async function El(e,t,n,r){let i=Ol(Dl(e.requestBody?.content),n);if(!i.ok||i.data===null)return X(i.summary,i.warnings);let a=i.data;return e.requestBody?.required===!0&&t===void 0&&a?.kind!==`multipart`?X(`Request body is required.`):a?.kind===`multipart`?await Al(e.requestBody?.required===!0,a.schema,t):Lo(`Request body prepared`,{body:t,contentType:a?.contentType??r})}function Dl(e){let t=Object.entries(e??{});return[...t.flatMap(e=>Hl(e[0])?[kl(e,`json`)]:[]),...t.flatMap(e=>Ul(e[0])?[kl(e,`multipart`)]:[])]}function Ol(e,t){if(t===void 0)return Lo(`Default request content selected`,e[0]);let n=Wl(t),r=e.find(e=>Wl(e.contentType)===n);return r===void 0?X(`Request Content-Type '${t}' is not supported. Supported choices: ${e.map(({contentType:e})=>e).join(`, `)||`none`}.`):Lo(`Explicit request content selected`,r)}function kl(e,t){return{contentType:e[0],kind:t,schema:e[1].schema}}async function Al(e,t,n){if(!e&&n==null)return Lo(`Optional multipart body omitted`,{});let r=jl(n);if(!r.ok||r.data===null)return X(r.summary,r.warnings);let i=new FormData;for(let e of Ml(t)){let t=r.data[e.name];if(t==null){if(e.required)return X(`Multipart body requires '${e.name}'.`);continue}if(Array.isArray(t)&&t.length<(e.schema.minItems??0))return X(`Multipart part '${e.name}' requires more entries.`);if(Array.isArray(t)&&t.length>(e.schema.maxItems??2**53-1))return X(`Multipart part '${e.name}' has too many entries.`);if(Nl(e.schema)||Pl(e.schema)){let n=Pl(e.schema)?t:[t];if(!Array.isArray(n)||n.some(e=>typeof e!=`string`))return X(`Multipart part '${e.name}' must contain file paths or URLs.`);for(let t of n){if(typeof t!=`string`)continue;let n=await Ll(t);if(!n.ok||n.data===null)return X(n.summary,n.warnings);i.append(e.name,n.data.blob,n.data.filename)}}else if(Fl(e.schema,t)){let n=JSON.stringify(t);i.append(e.name,new Blob([n],{type:`application/json`}),`${e.name}.json`)}else{let n=Il(i,e.name,t);if(!n.ok)return n}}return Lo(`Multipart body prepared`,{body:i})}function jl(e){return typeof e==`object`&&e&&!Array.isArray(e)?Lo(`Multipart input parsed`,Object.fromEntries(Object.entries(e))):X(`Multipart request body must be a JSON object keyed by form part name.`)}function Ml(e){let t=new Set(e?.required??[]);return Object.entries(e?.properties??{}).map(([e,n])=>({name:e,schema:n,required:t.has(e)}))}function Nl(e){return e.type===`string`&&e.format===`binary`}function Pl(e){return e.type===`array`&&e.items!==void 0&&Nl(e.items)}function Fl(e,t){return typeof t!=`object`||!t||Array.isArray(t)?!1:e.type===`object`||typeof e.$ref==`string`&&e.$ref.length>0}function Il(e,t,n){if(Array.isArray(n)){for(let r of n){let n=Il(e,t,r);if(!n.ok)return n}return Lo(`Multipart scalar array appended`,null)}return typeof n==`object`?X(`Multipart part '${t}' must be scalar.`):(e.append(t,String(n)),Lo(`Multipart scalar appended`,null))}async function Ll(e){return Bl(e)?await Rl(e):await zl(e)}async function Rl(e){let t=new AbortController,n=setTimeout(()=>t.abort(),Tl);try{let n=new URL(e),r=await fetch(e,{signal:t.signal});if(!r.ok)return X(`Failed to fetch media URL: ${r.status} ${r.statusText}`);let i=r.headers.get(`content-type`)?.split(`;`)[0]?.trim()??Vl(n.pathname)??``;return Lo(`URL media fetched`,{blob:new Blob([await r.arrayBuffer()],{type:i}),filename:de(n.pathname)||`upload`})}catch(e){return t.signal.aborted?X(`Failed to fetch media URL: timed out after ${Tl}ms.`):X(`Failed to fetch media URL: ${e.message}`)}finally{clearTimeout(n)}}async function zl(e){try{let t=Vl(e)??``,n=await ae(e);return Lo(`File media read`,{blob:new Blob([n],{type:t}),filename:de(e)})}catch(t){return X(`Failed to read media file '${e}': ${t.message}`)}}function Bl(e){return e.startsWith(`http://`)||e.startsWith(`https://`)}function Vl(e){return Gl[pe(e).toLowerCase()]}function Hl(e){let t=Wl(e);return t===`*/*`||t===`application/json`||t.endsWith(`+json`)}function Ul(e){return Wl(e)===`multipart/form-data`}var Wl=e=>e.split(`;`)[0]?.trim().toLowerCase()??``,Gl={".gif":`image/gif`,".heic":`image/heic`,".heif":`image/heif`,".jpeg":`image/jpeg`,".jpg":`image/jpeg`,".png":`image/png`,".webp":`image/webp`};function Kl(e){return e===`write`||e===`delete`}var ql=`Shell-safe input: single-quote string flag values that contain $; use --from-file or stdin for JSON bodies, multiline text, and free text with currency amounts.`;function Jl(e,t,n){return Yl(t,n)?`'${e.replaceAll(`'`,`'\\''`)}'`:e}function Yl(e,t){let n=e===`array`?t:e;return n===void 0||n===`string`}function Xl(e){let t=Object.entries(e.responses).filter(([e])=>e.startsWith(`2`));return t.length>0&&t.every(([,e])=>Object.values(e.content??{}).some(e=>Zl(e.schema)))}function Zl(e){return e?.format===`byte`||e?.format===`binary`}function Ql(e){return`aventure_${e}`}function $l(e){return e.replace(/([a-z0-9])([A-Z])/gu,`$1-$2`).replace(/[^A-Za-z0-9]+/gu,`-`).replace(/^-+|-+$/gu,``).toLowerCase()}var eu=e=>`--${$l(e)}`,tu=j([`READ`,`PERMISSION`,`ADMIN`]),nu=j([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`]),ru=H({authorizationPath:w().max(2048),method:nu,operationId:w().max(128),path:w().max(2048)}),iu=H({permission:M(w()),role:M(w())}),au=H({operation:M(ru),operationAccess:tu,permissionGrant:iu});new TextEncoder;var ou=new TextDecoder,su=new TextDecoder(`utf-8`,{fatal:!0});function cu(e,t=!1){if(Uint8Array.fromBase64)return Uint8Array.fromBase64(e,{alphabet:t?`base64url`:`base64`});if(t){if(e.includes(`+`)||e.includes(`/`))throw TypeError(`Invalid base64url`);e=e.replace(/-/g,`+`).replace(/_/g,`/`)}let n=atob(e),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r}var lu=class extends Error{static code=`ERR_JOSE_GENERIC`;code=`ERR_JOSE_GENERIC`;constructor(e,t){super(e,t),this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}},uu=class extends lu{static code=`ERR_JWT_INVALID`;code=`ERR_JWT_INVALID`},du=`The input to be decoded is not correctly encoded.`;function fu(e){try{return cu(typeof e==`string`?e:ou.decode(e),!0)}catch(e){throw TypeError(du,{cause:e})}}function pu(e){if(typeof e!=`object`||!e||Object.prototype.toString.call(e)!==`[object Object]`)return!1;let t=Object.getPrototypeOf(e);return t===null||Object.getPrototypeOf(t)===null}function mu(e,t,n){let r;try{r=JSON.parse(su.decode(fu(e)))}catch{throw new t(n)}if(!pu(r))throw new t(n);return r}function hu(e){let t;if(typeof e==`string`){let n=e.split(`.`);(n.length===3||n.length===5)&&([t]=n)}else if(typeof e==`object`&&e){if(`protected`in e)t=e.protected;else throw TypeError(`Token does not contain a Protected Header`)}let n=`Invalid Token or Protected Header formatting`;if(typeof t!=`string`||!t)throw TypeError(n);return mu(t,TypeError,n)}function gu(e){if(typeof e!=`string`)throw new uu(`JWTs must use Compact JWS serialization, JWT must be a string`);let{1:t,length:n}=e.split(`.`);if(n===5)throw new uu(`Only JWTs using Compact JWS serialization can be decoded`);if(n!==3)throw new uu(`Invalid JWT`);if(!t)throw new uu(`JWTs must contain a payload`);let r;try{r=fu(t)}catch{throw new uu(`Failed to base64url decode the payload`)}let i;try{i=JSON.parse(su.decode(r))}catch{throw new uu(`Failed to parse the decoded payload as JSON`)}if(!pu(i))throw new uu(`Invalid JWT Claims Set`);return i}var _u={openapi:`3.1.0`,info:{contact:{email:`team@aventure.vc`,name:`aVenture`},description:`Public API docs for aVenture.vc, private company research data on their staff/team, products & services, fundraising and investors, and more.`,title:`aVenture Public API Docs`,version:`0.7.285`},externalDocs:{description:`Documentation and GitHub repositories: [aventure-docs](https://github.com/aventurevc/aventure-docs), [aventure-cli](https://github.com/aventurevc/aventure-cli), [aventure-mcp](https://github.com/aventurevc/aventure-mcp), [aventure-api](https://github.com/aventurevc/aventure-api).`,url:`https://docs.aventure.vc`},servers:[{url:`https://api.aventure.vc`,description:`aVenture API`}],tags:[{description:`Authentication entry points and sign-in configuration`,name:`Auth`},{description:`Crawl screenshot metadata endpoints — S3 key is the binary asset source of truth`,name:`Screenshots`},{description:`Entity and person text endpoints.`,name:`Texts`},{description:`Companies, funds, investors, accelerators, and other organizations`,name:`Entities`},{description:`External identifier mappings (EIN, SEC CIK, ticker, LEI, DUNS, ...) for entities and people, plus reverse lookup from an identifier to its owner.`,name:`Identifiers`},{description:`Canonical acquisition event CRUD. The path entity is acquired; acquirerEntityId is the buyer.`,name:`Entity Acquisitions`},{description:`Batch person list and detail endpoints.`,name:`Person Batch`},{description:`Read browser sign-in availability and CLI OAuth configuration`,name:`Providers`},{description:`Search companies, people, and news together, or search the live web`,name:`Search`},{description:`Founders, executives, and investors in the venture ecosystem`,name:`People`},{description:`Person-entity association routes`,name:`Entity Person Associations`},{description:`SEC EDGAR filings, tickers, and CIKs for public companies`,name:`SEC`},{description:`Versioned agent prompt and skill documents`,name:`Agent Instructions`},{description:`Related companies, trending news, and batch ingestion`,name:`Semantic Similarity`},{description:`Funding rounds and their participating investors for an entity`,name:`Entity Fundraise`},{description:`Venture news articles linked to companies and people`,name:`News`},{description:`Grounded natural-language platform help with citations`,name:`Agent Help`},{description:`Browser-approved CLI credential delivery`,name:`CLI Authorizations`},{description:`Entity and person URL link endpoints.`,name:`URL Links`},{description:`Location-based company directory and sitemap endpoints`,name:`Addresses`},{description:`Advisory, non-exhaustive per-slot semantic suggestions with completion coverage.`,name:`Entity Suggestions`},{description:`Entity filter discovery: tag counts, type counts, refinement metadata, and option set search used to drive entity-listing UIs.`,name:`Entity Filters`},{description:`Sitemap boundary metadata for index generation`,name:`Sitemap`},{description:`Person filter, letter-count, and search metadata endpoints used to drive people-listing UI affordances.`,name:`Person Metadata`},{description:`Read and mutate a news article by its canonical numeric identifier`,name:`By ID`},{description:`Logos, photos, and thumbnails for companies, people, and news`,name:`Media`},{description:`Universal identifier resolver: map any handle — stable public id, UUID, external registry id (ticker, LEI, EIN, ...), or slug — to its canonical entity or person.`,name:`Resolve`},{description:`Nested classification CRUD for entities`,name:`Entity Classifications`},{description:`Public content cards: news, blog posts, social posts, repositories, websites, and papers`,name:`Content`},{description:`Entity employee-count sub-resource: time series for an entity.`,name:`Entity Employee Count`},{description:`Similar entity discovery`,name:`Entity Similarity`},{description:`Session management and user info endpoints`,name:`Auth Session`},{description:`Typed research details and snippets for entities, with snippet provenance`,name:`Entity Research`},{description:`Search the entity classification tag catalog. Use this to look up tagId values before posting to /v1/entities/{id}/classifications.`,name:`Classification Tags`},{description:`Person investment portfolio sub-resource: paginated investments made by a person, looked up by id or slug, sortable by date/round/amount/amountInvested.`,name:`Person Investments`},{description:`Nested address CRUD for entities. Country code is looked up in res_address_country_ref (404 if unknown); state and city are find-or-create on their reference tables; address rows resolve by canonical address fields.`,name:`Entity Addresses`},{description:`Entity relationship endpoints`,name:`Entity Relationships`},{description:`Authenticated personal API-key lifecycle`,name:`Personal API Key`},{description:`External blog and article links for entities and people`,name:`Research Blog Posts`},{description:`CRUD endpoints for news articles joined to entities`,name:`Entity News`},{description:`System health and status endpoints`,name:`System`},{description:`Per-domain slug changes and redirect rows`,name:`URL Slug Redirects`},{description:`CRUD endpoints for news articles joined to people`,name:`Person News`},{description:`Where any stored field value came from: its source, method, and time`,name:`Data Provenance`},{description:`Canonical nested physical-address groups for people. Country code is looked up in res_address_country_ref; state and city are resolved or created from source-backed names.`,name:`Person Addresses`},{description:`Global metrics (cached, refreshed frequently) for homepage/overview use`,name:`Metrics`},{description:`Similar person discovery`,name:`Person Similarity`},{description:`GitHub repositories synced per entity or person owner.`,name:`Repositories`},{description:`Administrative tools for entity data maintenance`,name:`Entity Maintenance`},{description:`Entity valuation time-series reads and writes.`,name:`Entity Financial Valuation`}],paths:JSON.parse(`{"/images/monograms/{seed}.svg":{"get":{"description":"Returns cached fallback SVG.","operationId":"getMonogramImage","parameters":[{"description":"Seed used to render the deterministic monogram","in":"path","name":"seed","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"image/svg+xml":{"schema":{"type":"string"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Render a deterministic monogram SVG","tags":["Media"],"x-aventure-visibility":{"scope":"public"}}},"/info":{"get":{"description":"Returns typed build metadata equivalent to the actuator info build payload","operationId":"info","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemBuild"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get build metadata","tags":["System"],"x-aventure-visibility":{"scope":"public"}}},"/v1/addresses/locations/batch":{"post":{"description":"Fetch the location directory, exact letter counts, and optional company URL slots in one request.","operationId":"batch","parameters":[{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":100,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationSitemapBatch"}}},"required":true},"responses":{"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationSitemap"}}},"description":"The slug's canonical token resolves to a real location with no publishable companies; the body carries slugResolution.outcome=unpublished so crawlers drop the URL permanently."},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Batch directory + companies payload","tags":["Addresses"],"x-aventure-visibility":{"scope":"public"}}},"/v1/addresses/locations/{scope}":{"get":{"description":"Paginated directory of locations filtered by scope and starting letter","operationId":"listLocations","parameters":[{"description":"Location scope (countries, states, cities)","example":"countries","in":"path","name":"scope","required":true,"schema":{"type":"string","description":"Accepted location scope tokens for path and batch inputs","enum":["country","COUNTRY","countries","COUNTRIES","state","STATE","states","STATES","city","CITY","cities","CITIES"],"example":"countries"}},{"description":"Starting letter filter","example":"A","in":"query","name":"letter","required":false,"schema":{"type":"string","default":"A"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":100,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageLocationDirectoryEntry"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List locations by scope","tags":["Addresses"],"x-aventure-visibility":{"scope":"public"}}},"/v1/addresses/locations/{scope}/{slug}":{"get":{"description":"Paginated list of companies in a specific location, filtered by starting letter","operationId":"listCompanies","parameters":[{"description":"Location scope (countries, states, cities)","example":"states","in":"path","name":"scope","required":true,"schema":{"type":"string","description":"Accepted location scope tokens for path and batch inputs","enum":["country","COUNTRY","countries","COUNTRIES","state","STATE","states","STATES","city","CITY","cities","CITIES"],"example":"countries"}},{"description":"Location URL-friendly identifier (slug)","example":"california","in":"path","name":"slug","required":true,"schema":{"type":"string"}},{"description":"Starting letter filter","example":"S","in":"query","name":"letter","required":false,"schema":{"type":"string","default":"A"}},{"description":"Return only pagination totals with empty content","example":true,"in":"query","name":"countOnly","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":100,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageEntity"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List companies by location","tags":["Addresses"],"x-aventure-visibility":{"scope":"public"}}},"/v1/agents/help":{"post":{"description":"Retrieves the most relevant operations, skills, and completion gates, then returns a grounded, citation-bearing answer. Unsupported questions abstain (LOW confidence) rather than invent a command. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"answerAgentHelpQuestion","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentHelpQuestion"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentHelp"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Answer a natural-language platform help question","tags":["Agent Help"],"x-aventure-tool":{"cli":"help ask"},"x-aventure-visibility":{"scope":"public"}}},"/v1/agents/instructions/manifest":{"get":{"description":"Returns the latest-pointer manifest of versioned prompt and skill documents. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"getAgentInstructionManifest","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentInstructionManifest"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get the agent instruction manifest","tags":["Agent Instructions"],"x-aventure-tool":{"cli":"agents instructions list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/agents/instructions/{kind}/{name}":{"get":{"description":"Returns the current version and markdown content for one prompt, skill, or agent. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"getAgentInstruction","parameters":[{"description":"Document kind: prompt, skill, or agent","in":"path","name":"kind","required":true,"schema":{"$ref":"#/components/schemas/AgentInstructionKind"}},{"description":"Manifest name of the document","in":"path","name":"name","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentInstructionDetail"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get one agent instruction document","tags":["Agent Instructions"],"x-aventure-visibility":{"scope":"public"}}},"/v1/agents/instructions/{kind}/{name}/versions/{version}":{"get":{"description":"Returns an immutable prompt, skill, or agent document by name and version. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"getAgentInstructionVersion","parameters":[{"description":"Document kind: prompt, skill, or agent","in":"path","name":"kind","required":true,"schema":{"$ref":"#/components/schemas/AgentInstructionKind"}},{"description":"Manifest name of the document","in":"path","name":"name","required":true,"schema":{"type":"string"}},{"description":"Immutable content version","in":"path","name":"version","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentInstructionDetail"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get one agent instruction document version","tags":["Agent Instructions"],"x-aventure-visibility":{"scope":"public"}}},"/v1/auth/cli-authorizations":{"post":{"description":"Creates a short-lived browser approval request and returns its poll credential once.","operationId":"createCliAuthorization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CliAuthorizationMutation"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CliAuthorizationStart"}}},"description":"Created"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Start CLI authorization","tags":["CLI Authorizations"],"x-aventure-cli-composite":{"bodyOption":["clientLabel"],"command":"auth personal-login","localOption":[{"optionKey":"browser","flag":"--no-browser","description":"Print the approval URL without launching a browser."}],"role":"start","summary":"Approve a personal CLI key"},"x-aventure-visibility":{"scope":"public"}}},"/v1/auth/cli-authorizations/{cliAuthorizationId}/acknowledge":{"post":{"description":"Confirms the CLI stored the delivered personal key in its OS credential store and clears transient delivery material.","operationId":"acknowledgeCliAuthorization","parameters":[{"description":"Public CLI authorization request identifier","in":"path","name":"cliAuthorizationId","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"One-time poll credential returned by request creation","in":"header","name":"X-Cli-Poll-Secret","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CliAuthorization"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Acknowledge CLI credential delivery","tags":["CLI Authorizations"],"x-aventure-cli-composite":{"command":"auth personal-login","role":"acknowledge"},"x-aventure-visibility":{"scope":"public"}}},"/v1/auth/cli-authorizations/{cliAuthorizationId}/poll":{"post":{"description":"Returns pending state, a terminal state, or an encrypted one-time credential delivery.","operationId":"pollCliAuthorization","parameters":[{"description":"Public CLI authorization request identifier","in":"path","name":"cliAuthorizationId","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"One-time poll credential returned by request creation","in":"header","name":"X-Cli-Poll-Secret","required":true,"schema":{"type":"string"}}],"responses":{"202":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CliAuthorizationPoll"}}},"description":"Authorization is still pending or issuing"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Poll CLI authorization","tags":["CLI Authorizations"],"x-aventure-cli-composite":{"command":"auth personal-login","role":"poll"},"x-aventure-visibility":{"scope":"public"}}},"/v1/auth/me/permissions":{"get":{"description":"Returns resolved roles and permissions for Clerk session or OAuth authentication, explicit personal API-key permissions, full admin API-key permissions, or an empty grant for a client secret.","operationId":"currentPermissions","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthPermissionGrant"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Current user permissions","tags":["Auth Session"],"x-aventure-visibility":{"scope":"public"}},"post":{"description":"Returns the supplied generated API operations that the current caller may call, alongside its existing permission grant and access class. Candidate operations are checked without being executed.","operationId":"authorizeOperations","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthOperationFilter"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthOperationAuthorization"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Authorize API operations","tags":["Auth Session"],"x-aventure-visibility":{"scope":"public"}}},"/v1/auth/personal-api-key":{"delete":{"description":"Revokes the stored personal key and returns provider metadata so the CLI can confirm remote revocation before removing local bytes.","operationId":"revokeCurrentPersonalApiKey","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonalApiKey"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]}],"summary":"Revoke current personal API key","tags":["Personal API Key"],"x-aventure-cli-composite":{"command":"auth personal-logout","localOption":[{"optionKey":"forgetLocal","flag":"--forget-local","description":"Remove local bytes even when remote revocation cannot be confirmed."}],"role":"revoke"},"x-aventure-visibility":{"scope":"public"}},"get":{"description":"Returns provider metadata for the personal API key authenticating this request.","operationId":"getCurrentPersonalApiKey","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonalApiKey"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]}],"summary":"Get current personal API key","tags":["Personal API Key"],"x-aventure-visibility":{"scope":"public"}}},"/v1/auth/providers":{"get":{"description":"Sign-in provider availability and CLI OAuth configuration. Public — callers read it before any session exists. A non-null Clerk publishable key offers browser sign-in; a non-null OAuth client offers the PKCE CLI sign-in lane.","operationId":"getAuthProviderCatalog","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthProviderCatalog"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get the public authentication provider catalog","tags":["Auth","Providers"],"x-aventure-cli-composite":{"command":"auth login","description":"Sign in through your browser and save verified CLI access in the OS credential store.","localOption":[{"optionKey":"browser","flag":"--no-browser","description":"Print the authorization URL without opening a browser."}],"role":"oauth","summary":"Sign in through your browser"},"x-aventure-tool":{"auth":"none"},"x-aventure-visibility":{"scope":"public"}}},"/v1/classifications":{"get":{"description":"Returns a paginated list of editorial tags and standardized classifications. Filter by category using any bucket or standardized category spelling listed by the catalog. Results expose writable/creatable policy so callers know whether to join by id or create by type plus name. Sorting is not supported — sort returns 422.","operationId":"searchClassifications","parameters":[{"description":"Classification bucket or standardized category. Case- and punctuation-insensitive.","example":"industry","in":"query","name":"category","required":false,"schema":{"type":"string"}},{"description":"Case-insensitive name substring filter (e.g. 'enterprise').","example":"enterprise","in":"query","name":"q","required":false,"schema":{"type":"string"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":25,"minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageClassification"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Search classifications","tags":["Classification Tags"],"x-aventure-tool":{"cli":"classifications search get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/classifications/catalog":{"get":{"description":"Returns active classification buckets with optional tag lists. Each bucket carries its canonical \`type\`, accepted \`alias[]\` spellings, \`tagCount\`, and (when includeTags=true) the active \`tag[]\`. Use bucketType to scope to one bucket and includeTags=false to fetch metadata only. For tag ids, prefer \`classifications tags --type <bucket> --q <name>\` over broad catalog JSON; use returned tag.id as EntityClassificationMutation.tagId when writing classifications. Dormant registry tags are intentionally omitted; type + name writes that find one return 409 with inactiveTagOverride recovery choices.","operationId":"getCatalog","parameters":[{"description":"Optional classification bucket. Accepts the same values as the tags endpoint type parameter.","example":"industry","in":"query","name":"bucketType","required":false,"schema":{"type":"string"}},{"description":"When false, returns bucket metadata without tag arrays. For tag ids, prefer \`classifications tags\` with type and q filters instead of broad catalog JSON.","in":"query","name":"includeTags","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassificationCatalog"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Fetch the entity classification taxonomy","tags":["Classification Tags"],"x-aventure-visibility":{"scope":"public"}}},"/v1/classifications/tags":{"get":{"description":"Returns a paginated list of active tags from the entity classification registry. Filter by bucket via \`type\` (any spelling listed on the corresponding ClassificationCatalogBucket — \`type\` plus its \`alias[]\`) and optionally by a name keyword via \`q\`. Results are ordered by bucket then by name; sorting is not supported — \`sort\` returns 422. Dormant registry tags are not returned by this read surface.","operationId":"searchTags","parameters":[{"description":"Classification bucket. Case- and punctuation-insensitive. Accepts the bucket wire value or any entry from its \`alias[]\` — discover both via GET /v1/classifications/catalog?includeTags=false.","example":"revenueModel","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"Case-insensitive name substring filter (e.g. 'enterprise').","example":"enterprise","in":"query","name":"q","required":false,"schema":{"type":"string"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":25,"minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityTag"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Search entity classification tags","tags":["Classification Tags"],"x-aventure-tool":{"cli":"classifications tags search"},"x-aventure-visibility":{"scope":"public"}}},"/v1/content":{"get":{"description":"Returns a paged public content index across supported source owners. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"listContent","parameters":[{"description":"Topic key or source category.","in":"query","name":"topic","required":false,"schema":{"type":"string","description":"Topic key or source category."}},{"description":"Public content type filter.","in":"query","name":"contentType","required":false,"schema":{"$ref":"#/components/schemas/ContentType"}},{"description":"Owner relation filter.","in":"query","name":"relation","required":false,"schema":{"$ref":"#/components/schemas/ContentRelation"}},{"description":"Best-effort content year filter.","in":"query","name":"year","required":false,"schema":{"type":"integer","format":"int32","description":"Best-effort content year filter."}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Set true for first-page content-existence probes that do not need exact totals or stable ordering.","in":"query","name":"existenceProbe","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageContent"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List content","tags":["Content"],"x-aventure-tool":{"cli":"content list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/content/search":{"post":{"description":"Translates plain-English content constraints into canonical filters. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"searchContent","parameters":[{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaturalSearch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentSearchResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Search content","tags":["Content"],"x-aventure-tool":{"cli":"content search"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities":{"get":{"description":"Browse paginated entity records or apply explicit query filters. entityName is an exact normalized brand/legal-name filter; textSearch is keyword/full-text search. Organization expands to the canonical organization type group. For a plain-English or multi-constraint company request, use the search entities command (POST /v1/entities/natural-search) instead. Set semanticQuery for semantic nearest-neighbor ranking over stored content embeddings; semanticQuery uses the live priority embeddings tier and returns semanticMatch evidence. countOnly is unsupported when semanticQuery is present; count-only pages have no content, so read totalElements rather than empty. Default public visibility can filter hidden/off-sitemap records and does not prove create safety; use duplicate-check before writes that need identity review.","operationId":"listEntities","parameters":[{"description":"Restrict results to specific entity IDs.","in":"query","name":"entityId","required":false,"schema":{"type":"array","description":"Restrict results to specific entity IDs.","items":{"type":"string","format":"uuid","description":"Canonical entity UUID"}}},{"description":"Restrict results to entity slugs.","in":"query","name":"slug","required":false,"schema":{"type":"array","description":"Restrict results to entity slugs.","items":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}}},{"description":"Exact normalized match against entity brand or legal names.","in":"query","name":"entityName","required":false,"schema":{"type":"array","description":"Exact normalized match against entity brand or legal names.","items":{"type":"string","description":"Exact normalized match against entity brand or legal names."}}},{"description":"Entity type filter. Organization expands to Company, Investment Firm, Nonprofit, and Government; omit to include every entity type.","in":"query","name":"typeRecord","required":false,"schema":{"type":"array","description":"Entity type filter. Organization expands to Company, Investment Firm, Nonprofit, and Government; omit to include every entity type.","items":{"$ref":"#/components/schemas/EntityType"}}},{"description":"Industry classification values.","in":"query","name":"industry","required":false,"schema":{"type":"array","description":"Industry classification values.","items":{"type":"string","description":"Industry classification values."}}},{"description":"Geographic classification values.","in":"query","name":"location","required":false,"schema":{"type":"array","description":"Geographic classification values.","items":{"type":"string","description":"Geographic classification values."}}},{"description":"General classification tag values.","in":"query","name":"tag","required":false,"schema":{"type":"array","description":"General classification tag values.","items":{"type":"string","description":"General classification tag values."}}},{"description":"Main product classification values.","in":"query","name":"mainProduct","required":false,"schema":{"type":"array","description":"Main product classification values.","items":{"type":"string","description":"Main product classification values."}}},{"description":"Technology-used classification values.","in":"query","name":"typeTechnologyUsed","required":false,"schema":{"type":"array","description":"Technology-used classification values.","items":{"type":"string","description":"Technology-used classification values."}}},{"description":"Business-model classification values.","in":"query","name":"typeModel","required":false,"schema":{"type":"array","description":"Business-model classification values.","items":{"type":"string","description":"Business-model classification values."}}},{"description":"Ownership-model classification values.","in":"query","name":"typeOwnership","required":false,"schema":{"type":"array","description":"Ownership-model classification values.","items":{"type":"string","description":"Ownership-model classification values."}}},{"description":"Customer-type classification values.","in":"query","name":"typeCustomer","required":false,"schema":{"type":"array","description":"Customer-type classification values.","items":{"type":"string","description":"Customer-type classification values."}}},{"description":"Revenue-model classification values.","in":"query","name":"typeRevenue","required":false,"schema":{"type":"array","description":"Revenue-model classification values.","items":{"type":"string","description":"Revenue-model classification values."}}},{"description":"Accelerator brand or operator name.","in":"query","name":"acceleratorBrand","required":false,"schema":{"type":"array","description":"Accelerator brand or operator name.","items":{"type":"string","description":"Accelerator brand or operator name."}}},{"description":"Specific accelerator program name.","in":"query","name":"acceleratorName","required":false,"schema":{"type":"array","description":"Specific accelerator program name.","items":{"type":"string","description":"Specific accelerator program name."}}},{"description":"Accelerator batch or cohort label.","in":"query","name":"acceleratorCohort","required":false,"schema":{"type":"array","description":"Accelerator batch or cohort label.","items":{"type":"string","description":"Accelerator batch or cohort label."}}},{"description":"Accelerator participation status.","in":"query","name":"acceleratorStatus","required":false,"schema":{"type":"array","description":"Accelerator participation status.","items":{"type":"string","description":"Accelerator participation status."}}},{"description":"Affinity provider organization names accepted by the companies list filter. Affinity rows are member -> provider; use provider names here, not member names.","in":"query","name":"affinity","required":false,"schema":{"type":"array","description":"Affinity provider organization names accepted by the companies list filter. Affinity rows are member -> provider; use provider names here, not member names.","items":{"type":"string","description":"Affinity provider organization names accepted by the companies list filter. Affinity rows are member -> provider; use provider names here, not member names."}}},{"description":"Headquarters country values.","in":"query","name":"headquartersCountry","required":false,"schema":{"type":"array","description":"Headquarters country values.","items":{"type":"string","description":"Headquarters country values."}}},{"description":"Headquarters state or region values.","in":"query","name":"headquartersState","required":false,"schema":{"type":"array","description":"Headquarters state or region values.","items":{"type":"string","description":"Headquarters state or region values."}}},{"description":"Headquarters city values.","in":"query","name":"headquartersCity","required":false,"schema":{"type":"array","description":"Headquarters city values.","items":{"type":"string","description":"Headquarters city values."}}},{"description":"Investment stage classification values.","in":"query","name":"stage","required":false,"schema":{"type":"array","description":"Investment stage classification values.","items":{"type":"string","description":"Investment stage classification values."}}},{"description":"Inclusive founding-year ranges, in calendar years.","in":"query","name":"yearFoundedRange","required":false,"schema":{"type":"array","description":"Inclusive founding-year ranges, in calendar years.","items":{"$ref":"#/components/schemas/IntRange"}}},{"description":"Inclusive reported employee-count ranges, in employees.","in":"query","name":"employeeCountRange","required":false,"schema":{"type":"array","description":"Inclusive reported employee-count ranges, in employees.","items":{"$ref":"#/components/schemas/IntRange"}}},{"description":"Operating status values.","in":"query","name":"operatingStatus","required":false,"schema":{"type":"array","description":"Operating status values.","items":{"type":"string","description":"Operating status values."}}},{"description":"Inclusive earliest timestamp.","in":"query","name":"createdAtRange.min","required":false,"schema":{"type":"string","format":"date-time","description":"Inclusive earliest timestamp."}},{"description":"Inclusive latest timestamp.","in":"query","name":"createdAtRange.max","required":false,"schema":{"type":"string","format":"date-time","description":"Inclusive latest timestamp."}},{"description":"Inclusive earliest timestamp.","in":"query","name":"updatedAtRange.min","required":false,"schema":{"type":"string","format":"date-time","description":"Inclusive earliest timestamp."}},{"description":"Inclusive latest timestamp.","in":"query","name":"updatedAtRange.max","required":false,"schema":{"type":"string","format":"date-time","description":"Inclusive latest timestamp."}},{"description":"First letter of the display name.","in":"query","name":"letter","required":false,"schema":{"type":"string","description":"First letter of the display name."}},{"description":"Privileged filter to entities with any logo.","in":"query","name":"hasLogo","required":false,"schema":{"type":"boolean","description":"Privileged filter to entities with any logo."}},{"description":"Privileged filter by hidden status.","in":"query","name":"isHidden","required":false,"schema":{"type":"boolean","description":"Privileged filter by hidden status."}},{"description":"Privileged filter by public sitemap inclusion.","in":"query","name":"showOnSitemap","required":false,"schema":{"type":"boolean","description":"Privileged filter by public sitemap inclusion."}},{"description":"Privileged filter to entities with a real uploaded logo.","in":"query","name":"hasRealLogo","required":false,"schema":{"type":"boolean","description":"Privileged filter to entities with a real uploaded logo."}},{"description":"Filter to entities with fundraise activity.","in":"query","name":"hasFundraising","required":false,"schema":{"type":"boolean","description":"Filter to entities with fundraise activity."}},{"description":"Filter by featured status.","in":"query","name":"featured","required":false,"schema":{"type":"boolean","description":"Filter by featured status."}},{"description":"Suppress entities whose total raised is zero.","in":"query","name":"suppressZeroTotalRaised","required":false,"schema":{"type":"boolean","description":"Suppress entities whose total raised is zero."}},{"description":"Suppress entities with terminal operating status.","in":"query","name":"suppressNonOperating","required":false,"schema":{"type":"boolean","description":"Suppress entities with terminal operating status."}},{"description":"Named server-owned list quality gate.","in":"query","name":"qualityGate","required":false,"schema":{"$ref":"#/components/schemas/EntityListQualityGate"}},{"description":"Current URL to match by normalized host and path.","in":"query","name":"url","required":false,"schema":{"type":"string","description":"Current URL to match by normalized host and path."}},{"description":"Current root domain to match when urlMatchMode=domain.","example":"example.com","in":"query","name":"urlDomain","required":false,"schema":{"type":"string","description":"Current root domain to match when urlMatchMode=domain.","example":"example.com"}},{"description":"Restrict URL matching to one URL type.","example":"website","in":"query","name":"urlType","required":false,"schema":{"$ref":"#/components/schemas/EntityUrlType"}},{"description":"URL matching mode: hostPath uses host and path; domain uses the root domain.","example":"domain","in":"query","name":"urlMatchMode","required":false,"schema":{"$ref":"#/components/schemas/UrlMatchMode"}},{"description":"Portfolio-company headquarters country values.","in":"query","name":"portfolioHeadquartersCountry","required":false,"schema":{"type":"array","description":"Portfolio-company headquarters country values.","items":{"type":"string","description":"Portfolio-company headquarters country values."}}},{"description":"Portfolio-company headquarters state or region values.","in":"query","name":"portfolioHeadquartersState","required":false,"schema":{"type":"array","description":"Portfolio-company headquarters state or region values.","items":{"type":"string","description":"Portfolio-company headquarters state or region values."}}},{"description":"Portfolio-company headquarters city values.","in":"query","name":"portfolioHeadquartersCity","required":false,"schema":{"type":"array","description":"Portfolio-company headquarters city values.","items":{"type":"string","description":"Portfolio-company headquarters city values."}}},{"description":"Fundraise round labels, such as Seed or Series A.","in":"query","name":"fundraiseActivity.round","required":false,"schema":{"type":"array","description":"Fundraise round labels, such as Seed or Series A.","items":{"type":"string","description":"Fundraise round labels, such as Seed or Series A."}}},{"in":"query","name":"fundraiseActivity.amountRaisedRange","required":false,"schema":{"type":"array","description":"Per-round amount-raised ranges in USD. Use plain JSON numbers.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.amountInvestedRange","required":false,"schema":{"type":"array","description":"Investor-level amount-invested ranges in the transaction currency. Use plain JSON numbers.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.totalRaisedRange","required":false,"schema":{"type":"array","description":"Total-raised ranges across all rounds in USD. Use plain JSON numbers.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.valuationRange","required":false,"schema":{"type":"array","description":"Post-money valuation ranges in USD.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.lastRoundYearRange","required":false,"schema":{"type":"array","description":"Last-round-year ranges for each entity's most recent fundraise round.","items":{"$ref":"#/components/schemas/IntRange"}}},{"description":"Portfolio company names. Exact, case-sensitive match on the portfolio company's brand or legal name; restricts returned entities to investors in those companies.","in":"query","name":"fundraiseActivity.investedCompanyName","required":false,"schema":{"type":"array","description":"Portfolio company names. Exact, case-sensitive match on the portfolio company's brand or legal name; restricts returned entities to investors in those companies.","items":{"type":"string","description":"Portfolio company names. Exact, case-sensitive match on the portfolio company's brand or legal name; restricts returned entities to investors in those companies."}}},{"in":"query","name":"fundraiseActivity.investorActivity.totalInvestmentRange","required":false,"schema":{"type":"array","description":"Distinct fundraise-deal count ranges for an investor, with inclusive integer bounds.","items":{"$ref":"#/components/schemas/IntRange"}}},{"in":"query","name":"fundraiseActivity.investorActivity.totalAmountInvestedUsdRange","required":false,"schema":{"type":"array","description":"Total USD amount-invested ranges with inclusive bounds.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.investorActivity.averageAmountInvestedUsdRange","required":false,"schema":{"type":"array","description":"Average USD amount-invested ranges with inclusive bounds.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.investorActivity.largestAmountInvestedUsdRange","required":false,"schema":{"type":"array","description":"Largest USD amount-invested ranges with inclusive bounds.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.investorActivity.smallestAmountInvestedUsdRange","required":false,"schema":{"type":"array","description":"Smallest USD amount-invested ranges with inclusive bounds.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"description":"Non-blank keyword/full-text search term. Use natural-search for plain-English or multi-constraint company requests.","in":"query","name":"textSearch","required":false,"schema":{"type":"string","description":"Non-blank keyword/full-text search term. Use natural-search for plain-English or multi-constraint company requests."}},{"description":"Semantic entity search phrase. Supported by GET /v1/entities and POST /v1/entities/search; every other entity filter surface rejects the parameter.","in":"query","name":"semanticQuery","required":false,"schema":{"type":"string"}},{"description":"Return only the matching entity count in totalElements. Content is empty by design, so the page empty flag describes content, not whether matches exist. Unsupported with semanticQuery.","in":"query","name":"countOnly","required":false,"schema":{"type":"boolean"}},{"description":"Allow generated monogram logos in results.","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Privileged admin readback scope. Includes hidden or off-sitemap entities. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityList"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List or search companies and other entities (GET)","tags":["Entities"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/batch":{"post":{"description":"List entities with pagination or cursor continuation while preserving the raw page body. Rows use the EntityList projection: core, enrichment, list-safe research, and fundraise rounds without detail-only relationship, newsArticle, person, sitemap, or research snippet sections.","operationId":"listEntitiesBatch","parameters":[{"description":"Opaque URL-safe cursor token from X-Next-Cursor. Reuse the same filters and sort.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Permit monogram fallback","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Privileged read scope for admin callers. Bypasses the public visibility filter so hidden, unverified, and not-yet-published records are returned instead of being silently dropped. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":25,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Privileged read flag. Send the exact lowercase literal \\"true\\" to return the /v1/entities/detail payload, or \\"false\\" (or omit it) for the list payload. Any other spelling is rejected.","in":"query","name":"includeFullDetail","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilter"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PageEntityList"},{"$ref":"#/components/schemas/PageEntityDetail"}]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Batch entity list","tags":["Entities"],"x-aventure-tool":{"cli":"entities batch lookup"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/counts":{"get":{"description":"Return total visible entity count for each entity type","operationId":"entityCountsByType","responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EntityTypeCount"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Count entities by type","tags":["Entity Filters"],"x-aventure-tool":{"cli":"entities counts get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/detail":{"get":{"description":"Returns one entity by exact id, slug, strict URL, or deterministic candidate signals. A sole exact normalized brand/legal-name or stored-URL match, or a guaranteed identity match without a competing review candidate, resolves directly. For keywords use POST /v1/entities/search with textSearch; for plain English use the search entities command (POST /v1/entities/natural-search). Default reads hide hidden or off-sitemap entities; privileged callers may set includePrivate=true for write readback. GET /v1/entities and POST /v1/entities/search list filtered records. Changed slugs redirect; error responses document every unresolved outcome.","operationId":"getEntityDetail","parameters":[{"description":"Exact entity UUID.","in":"query","name":"id","required":false,"schema":{"type":"string","format":"uuid","description":"Exact entity UUID."}},{"description":"Exact entity slug.","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Provider slug for Product/Service slug lookup. Historically named companySlug; providerTypeRecord can narrow this to Company, Nonprofit, or Government routes.","in":"query","name":"companySlug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Concrete provider type qualifier for a Product/Service provider route; group-only Organization is invalid. Use with companySlug when resolving \`/companies/{slug}/products-services/{product}\`, \`/non-profits/{slug}/products-services/{product}\`, or \`/government/{slug}/products-services/{product}\`.","example":"Company","in":"query","name":"providerTypeRecord","required":false,"schema":{"type":"string","description":"Concrete provider type qualifier for a Product/Service provider route; group-only Organization is invalid. Use with companySlug when resolving \`/companies/{slug}/products-services/{product}\`, \`/non-profits/{slug}/products-services/{product}\`, or \`/government/{slug}/products-services/{product}\`.","example":"Company"}},{"description":"Entity URL matched by host and path unless urlMatchMode=domain.","in":"query","name":"url","required":false,"schema":{"type":"string","description":"Entity URL matched by host and path unless urlMatchMode=domain."}},{"description":"URL type qualifier. List the accepted tokens with GET /v1/entities/urls/types (CLI: entities urls types list).","example":"website","in":"query","name":"urlType","required":false,"schema":{"type":"string","description":"URL type qualifier. List the accepted tokens with GET /v1/entities/urls/types (CLI: entities urls types list).","example":"website"}},{"description":"URL matching mode: hostPath (default for url) or domain. Omit when urlDomain is supplied; urlDomain selects domain mode automatically.","example":"hostPath","in":"query","name":"urlMatchMode","required":false,"schema":{"type":"string","description":"URL matching mode: hostPath (default for url) or domain. Omit when urlDomain is supplied; urlDomain selects domain mode automatically.","example":"hostPath"}},{"description":"Concrete entity type qualifier; group-only Organization is invalid. List the accepted concrete tokens and their aliases with GET /v1/entities/types (CLI: entities type-record types list).","example":"Company","in":"query","name":"typeRecord","required":false,"schema":{"type":"string","description":"Concrete entity type qualifier; group-only Organization is invalid. List the accepted concrete tokens and their aliases with GET /v1/entities/types (CLI: entities type-record types list).","example":"Company"}},{"description":"Primary entity name candidate.","in":"query","name":"name","required":false,"schema":{"type":"string","description":"Primary entity name candidate."}},{"description":"Brand name candidate.","in":"query","name":"nameBrand","required":false,"schema":{"type":"string","description":"Brand name candidate."}},{"description":"Legal name candidate.","in":"query","name":"nameLegal","required":false,"schema":{"type":"string","description":"Legal name candidate."}},{"description":"Location candidate: city, state, or country.","in":"query","name":"location","required":false,"schema":{"type":"string","description":"Location candidate: city, state, or country."}},{"description":"Website domain candidate without protocol or path.","in":"query","name":"urlDomain","required":false,"schema":{"type":"string","description":"Website domain candidate without protocol or path."}},{"description":"Allow generated monogram logo fallback.","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean","description":"Allow generated monogram logo fallback."}},{"description":"Privileged admin readback scope. Includes hidden or off-sitemap entities and hidden research snippets. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean","description":"Privileged admin readback scope. Includes hidden or off-sitemap entities and hidden research snippets. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public."}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetail"}},"text/plain":{"schema":{"type":"string"}}},"description":"Entity detail as canonical JSON or the same data rendered as compact text/plain."},"301":{"description":"Redirect to new slug location"},"400":{"description":"Conflicting or unusable identity input: name, nameBrand, and nameLegal must identify the same entity, and exactly one identifier form may be supplied."},"404":{"description":"No entity resolved: fuzzy candidate signals below the review threshold without identity proof are exhausted, which does not prove the record is absent or safe to create — search POST /v1/entities/search with textSearch first (CLI: entities search --text-search). An existing but filtered row instead reports its reason as the ProblemDetail title: Entity Exists but Is Not Public (retry with includePrivate=true; CLI: --include-private true), Product Not Public: Missing Provider Relationship, or Fund Not Public: No Public Manager Firm."},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"description":"Ambiguous identity: review-level candidates, unresolved identity proof, multiple exact normalized-name matches, or a Product/Service slug shared across provider pairs. ProblemDetail carries candidates and names the duplicate-check endpoint (CLI: entities duplicate-check candidates list); resolve by entityId, companySlug plus slug, or a provider's productService relationship."},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get company or entity detail","tags":["Entities"],"x-aventure-tool":{"cli":"entities get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/detail/batch":{"post":{"description":"Returns a page envelope of entity detail records by id, slug, and/or current joined URL. When page and size are omitted, the full deduplicated batch is returned in request order. Sort is not supported for this fixed-order batch response. For public reads totalElements counts the entities visible to the caller, so requested identifiers that do not resolve or fail the public visibility filter are excluded. For privileged reads totalElements counts the requested identifiers that resolved to an entity id, which can exceed the number of records returned when an id no longer exists.","operationId":"postEntityDetailBatch","parameters":[{"description":"Privileged read scope for admin callers. Bypasses the public visibility filter so hidden, unverified, and not-yet-published entities are returned instead of being silently dropped. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N); omit page and size for the full batch.","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","description":"Zero-based page index (0..N); omit page and size for the full batch."}},{"description":"The size of the page to be returned; omit page and size for the full batch.","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","description":"The size of the page to be returned; omit page and size for the full batch."}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetailBatch"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityDetail"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Batch entity detail retrieval (POST)","tags":["Entities"],"x-aventure-tool":{"cli":"entities batch detail lookup"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/detail/fundraise-investor-joins":{"get":{"description":"Lists entity or person investors joined to a fundraise round, including join-level amountInvested attribution. amountInvested is a plain decimal number in the fundraise transaction currency. API and MCP request bodies use JSON numbers such as 220000 or 123456.78; CLI callers use --amount-invested 220000 or --amount-invested 123456.78. Do not send currency signs, currency codes, comma grouping, quoted numeric strings, or abbreviations such as 220k or 0.22M. PATCH with amountInvested:null clears the value. Use --entity-id or --entity-slug for the fundraising/portfolio company that raised the round — always a company, never the fund or investment firm that supplied the capital. For an Investment Firm's outgoing investment, pass the portfolio company that received the money here and identify the firm with --investor-entity-id or --investor-entity-slug. Use transactionId for the round id, or round plus dateAnnounced when transactionId is unknown. Investor entity/person selectors reference existing records only. Create a referenced investor entity first with POST /v1/entities/detail or a referenced investor person first with POST /v1/people/detail, then create the join.","operationId":"listFundraiseInvestorJoins","parameters":[{"description":"Owner-scoped resource UUID selector.","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"query","name":"id","required":false,"schema":{"type":"string","format":"uuid"}},{"description":"Owner-scoped resource slug selector.","example":"acme-corp","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Join identifier. When present, lookup ignores transaction and investor query parameters.","in":"query","name":"joinId","required":false,"schema":{"type":"string","format":"uuid","description":"Join identifier. When present, lookup ignores transaction and investor query parameters."}},{"description":"Fundraise round transaction id. The target entity id/slug is the entity that raised the round; for an Investment Firm investment, use the portfolio/fundraising company as target and identify the firm with investorEntityId or investorEntitySlug. When omitted, lookup uses the target entity plus round/dateAnnounced.","in":"query","name":"transactionId","required":false,"schema":{"type":"string","format":"uuid","description":"Fundraise round transaction id. The target entity id/slug is the entity that raised the round; for an Investment Firm investment, use the portfolio/fundraising company as target and identify the firm with investorEntityId or investorEntitySlug. When omitted, lookup uses the target entity plus round/dateAnnounced."}},{"description":"Raw fundraise round label used when transactionId is omitted","in":"query","name":"round","required":false,"schema":{"type":"string","description":"Raw fundraise round label used when transactionId is omitted"}},{"description":"Exact announced timestamp used to disambiguate same-label rounds","in":"query","name":"dateAnnounced","required":false,"schema":{"type":"string","format":"date-time","description":"Exact announced timestamp used to disambiguate same-label rounds"}},{"description":"Existing investor entity identifier. The entity must already exist; create a referenced investor entity first with POST /v1/entities/detail.","in":"query","name":"investorEntityId","required":false,"schema":{"type":"string","format":"uuid","description":"Existing investor entity identifier. The entity must already exist; create a referenced investor entity first with POST /v1/entities/detail."}},{"description":"Existing investor entity slug when investorEntityId is omitted. The entity must already exist; create it first with POST /v1/entities/detail.","in":"query","name":"investorEntitySlug","required":false,"schema":{"type":"string","description":"Existing investor entity slug when investorEntityId is omitted. The entity must already exist; create it first with POST /v1/entities/detail."}},{"description":"Existing investor person identifier. The person must already exist; create a referenced investor person first with POST /v1/people/detail.","in":"query","name":"investorPersonId","required":false,"schema":{"type":"string","format":"uuid","description":"Existing investor person identifier. The person must already exist; create a referenced investor person first with POST /v1/people/detail."}},{"description":"Existing investor person slug when investorPersonId is omitted. The person must already exist; create it first with POST /v1/people/detail.","in":"query","name":"investorPersonSlug","required":false,"schema":{"type":"string","description":"Existing investor person slug when investorPersonId is omitted. The person must already exist; create it first with POST /v1/people/detail."}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":25}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityFundraiseInvestorJoin"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List fundraise investor joins","tags":["Entity Fundraise"],"x-aventure-tool":{"cli":"entities fundraise investor-joins list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/detail/fundraise-investor-joins/{joinId}":{"get":{"description":"Gets one entity or person investor join by join id.","operationId":"getFundraiseInvestorJoin","parameters":[{"description":"Owner-scoped resource UUID selector.","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"query","name":"id","required":false,"schema":{"type":"string","format":"uuid"}},{"description":"Owner-scoped resource slug selector.","example":"acme-corp","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Fundraise investor join identifier","in":"path","name":"joinId","required":true,"schema":{"type":"string","format":"uuid","description":"Type-safe identifier for fundraise investor joins"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFundraiseInvestorJoin"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get fundraise investor join","tags":["Entity Fundraise"],"x-aventure-tool":{"cli":"entities fundraise investor-joins get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/detail/news":{"get":{"description":"Returns news joined to the entity directly or via its public products/services; mutations require a direct join. Fixed sort (publishedAt DESC); page/size only.","operationId":"listEntityNews","parameters":[{"description":"Owner-scoped resource UUID selector.","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"query","name":"id","required":false,"schema":{"type":"string","format":"uuid"}},{"description":"Owner-scoped resource slug selector.","example":"acme-corp","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Full-text search query","example":"funding","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Category include/exclude CSV","example":"funding,-ai","in":"query","name":"category","required":false,"schema":{"type":"string"}},{"description":"Opaque URL-safe cursor token from X-Next-Cursor. Reuse the same filters and sort.","example":"2025-01-01T00:00:00Z::123","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":25,"minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageNews"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List news joined to an entity","tags":["Entity News"],"x-aventure-tool":{"cli":"entities news list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/detail/resolve":{"post":{"deprecated":true,"description":"Resolves each queried id, slug, and current joined URL to exactly one outcome row that echoes the raw input: MATCHED with full detail, AMBIGUOUS with candidate ids when a URL is currently owned by more than one entity, or MISSING. Unlike the batch detail read, no input is silently dropped and every row maps back to its source identifier. URL matching is host+path exact: scheme and a leading www are ignored, but distinct paths stay distinct (stripe.com does not match stripe.com/payments).","operationId":"postEntityDetailResolve","parameters":[{"description":"Privileged read scope for admin callers. Returns hidden, unverified, and not-yet-published entities instead of resolving them as MISSING. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetailBatch"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EntityResolution"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Resolve entity identifiers (deprecated detail path)","tags":["Entities"],"x-aventure-tool":{"auth":"read","cli":"entities identifiers resolve"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/detail/similar":{"get":{"description":"Requires one entity identity: id or slug (CLI: --entity-id or --entity-slug). Neither is individually required, but the request fails without one of them; id wins when both are sent. Returns similar entities by id or slug. Results include the entity list row and per-row similarity provenance; load full detail through the entity detail endpoints. Results are ordered by similarity score (highest first). Use relationshipType to filter by specific stored relationships (e.g., competitor). This endpoint does not support custom sorting.","operationId":"listSimilarEntities","parameters":[{"description":"Entity unique identifier (UUID) — at least one of id or slug required","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"query","name":"id","required":false,"schema":{"type":"string","format":"uuid"}},{"description":"Entity URL-friendly identifier (slug) — at least one of id or slug required","example":"leantime-charlotte-nc-us","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Filter by stored relationship type, one of: acceleratorParticipant, acquirer, affinity, calculated, competingProductService, competitor, customer, fundManagerFirm, parent, productService, serviceProvider, similarCompany, spinOffFrom, successor.","example":"competitor","in":"query","name":"relationshipType","required":false,"schema":{"type":"string"}},{"description":"Optional entity typeRecord filter. Repeat to allow multiple entity types.","example":"Company","in":"query","name":"typeRecord","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Permit monogram fallback","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":10,"minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntitySimilarityResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List entities similar to one entity","tags":["Entity Similarity"],"x-aventure-tool":{"cli":"entities similar list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/detail/trending-news":{"get":{"deprecated":true,"description":"Returns trending news semantically related to an entity.","operationId":"trendingNews","parameters":[{"description":"Entity unique identifier (UUID) — at least one of id or slug required","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"query","name":"id","required":false,"schema":{"type":"string","format":"uuid"}},{"description":"Entity URL-friendly identifier (slug) — at least one of id or slug required","example":"leantime-charlotte-nc-us","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":10,"minimum":1}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageNews"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get trending news for an entity (deprecated detail path)","tags":["Semantic Similarity"],"x-aventure-tool":{"cli":"entities news trending list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/filters":{"get":{"description":"Get available filter options","operationId":"entityFilters","parameters":[{"description":"Type group for default filter scope. Ignored when typeRecord is provided.","in":"query","name":"typeGroup","required":false,"schema":{"$ref":"#/components/schemas/EntityTypeGroup"}},{"description":"Filter by entity type (Company, Investor, etc.)","in":"query","name":"typeRecord","required":false,"schema":{"type":"string"}},{"description":"Include governed expanded values","example":false,"in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean","default":false}},{"description":"Include range distribution charts","example":false,"in":"query","name":"includeDistribution","required":false,"schema":{"type":"boolean","default":false}},{"description":"Comma-separated or repeated filter keys for chart distribution (for example amountRaised,totalRaised)","in":"query","name":"distributionKey","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterOptionSet"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List entity filter options","tags":["Entity Filters"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/filters/counts":{"get":{"description":"Return tag counts for entities by repeated name query parameters","operationId":"listEntityFilterCounts","parameters":[{"description":"Entity type (Company, Investment Firm, etc.)","example":"Company","in":"query","name":"typeRecord","required":false,"schema":{"type":"string","description":"Entity type (Company, Investment Firm, etc.)","example":"Company"}},{"description":"Tag name values to filter counts","example":["AI","FinTech"],"in":"query","name":"name","required":false,"schema":{"type":"array","description":"Tag name values to filter counts","example":["AI","FinTech"],"items":{"type":"string","description":"Tag name values to filter counts","example":["AI","FinTech"]},"maxItems":100,"minItems":0}},{"description":"Maximum number of results","example":35,"in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","description":"Maximum number of results","example":35,"maximum":200,"minimum":1}},{"description":"Minimum count threshold","example":1,"in":"query","name":"minCount","required":false,"schema":{"type":"integer","format":"int32","description":"Minimum count threshold","example":1,"minimum":0}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterCountResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List entity filter tag counts","tags":["Entity Filters"],"x-aventure-visibility":{"scope":"public"}},"post":{"description":"Return tag counts for entities by name","operationId":"entityFilterCounts","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterCount"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterCountResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Count entity filter tags","tags":["Entity Filters"],"x-aventure-tool":{"auth":"read"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/filters/refine":{"post":{"description":"Return filter metadata scoped by current filters. Each filter entry reports choiceOptionTotal and choiceOptionTruncated so CLI and MCP callers can tell when the displayed choiceOption list is only the top scoped subset. Use the filter search endpoint with the same scopeFilter to look up values not shown in the refine response.","operationId":"entityFiltersRefined","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilter"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterRefinedFilters"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Refine entity filter options","tags":["Entity Filters"],"x-aventure-tool":{"auth":"read"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/filters/search":{"get":{"description":"Live search within filter values. Use filterKey to choose a filter, search to match values, and typeRecord to scope the eligible entity universe.","operationId":"entityFilterSearch","parameters":[{"description":"Filter key to search in (e.g. industry, tag)","in":"query","name":"filterKey","required":true,"schema":{"type":"string"}},{"description":"Search keyword or phrase. Single characters valid; stop words rejected.","example":"AI","in":"query","name":"search","required":true,"schema":{"type":"string"}},{"description":"Page index is fixed to 0 for filter search","example":0,"in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"The size of the page to be returned; filter-search default 20, maximum 100.","example":20,"in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Filter by entity type","in":"query","name":"typeRecord","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterSearchResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Search filter options","tags":["Entity Filters"],"x-aventure-visibility":{"scope":"public"}},"post":{"description":"Live search within the full eligible filter universe using current entity filters. Pass the same scopeFilter used for list/refine work; the searched filter excludes its own current values so callers can expand a facet without clearing the rest of the query.","operationId":"entityFilterSearchScoped","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterSearch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterSearchResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Search filter options (scoped)","tags":["Entity Filters"],"x-aventure-tool":{"auth":"read"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/lookup":{"get":{"description":"Resolves one entity by slug, URL, or candidate signals with existing detail qualifiers and visibility rules. UUIDs use the item route; id query parameters are rejected. Changed slugs redirect canonically.","operationId":"lookupEntity","parameters":[{"description":"Exact entity slug.","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Provider slug for Product/Service slug lookup. Historically named companySlug; providerTypeRecord can narrow this to Company, Nonprofit, or Government routes.","in":"query","name":"companySlug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Concrete provider type qualifier for a Product/Service provider route; group-only Organization is invalid. Use with companySlug when resolving \`/companies/{slug}/products-services/{product}\`, \`/non-profits/{slug}/products-services/{product}\`, or \`/government/{slug}/products-services/{product}\`.","example":"Company","in":"query","name":"providerTypeRecord","required":false,"schema":{"type":"string","description":"Concrete provider type qualifier for a Product/Service provider route; group-only Organization is invalid. Use with companySlug when resolving \`/companies/{slug}/products-services/{product}\`, \`/non-profits/{slug}/products-services/{product}\`, or \`/government/{slug}/products-services/{product}\`.","example":"Company"}},{"description":"Entity URL matched by host and path unless urlMatchMode=domain.","in":"query","name":"url","required":false,"schema":{"type":"string","description":"Entity URL matched by host and path unless urlMatchMode=domain."}},{"description":"URL type qualifier. List the accepted tokens with GET /v1/entities/urls/types (CLI: entities urls types list).","example":"website","in":"query","name":"urlType","required":false,"schema":{"type":"string","description":"URL type qualifier. List the accepted tokens with GET /v1/entities/urls/types (CLI: entities urls types list).","example":"website"}},{"description":"URL matching mode: hostPath (default for url) or domain. Omit when urlDomain is supplied; urlDomain selects domain mode automatically.","example":"hostPath","in":"query","name":"urlMatchMode","required":false,"schema":{"type":"string","description":"URL matching mode: hostPath (default for url) or domain. Omit when urlDomain is supplied; urlDomain selects domain mode automatically.","example":"hostPath"}},{"description":"Concrete entity type qualifier; group-only Organization is invalid. List the accepted concrete tokens and their aliases with GET /v1/entities/types (CLI: entities type-record types list).","example":"Company","in":"query","name":"typeRecord","required":false,"schema":{"type":"string","description":"Concrete entity type qualifier; group-only Organization is invalid. List the accepted concrete tokens and their aliases with GET /v1/entities/types (CLI: entities type-record types list).","example":"Company"}},{"description":"Primary entity name candidate.","in":"query","name":"name","required":false,"schema":{"type":"string","description":"Primary entity name candidate."}},{"description":"Brand name candidate.","in":"query","name":"nameBrand","required":false,"schema":{"type":"string","description":"Brand name candidate."}},{"description":"Legal name candidate.","in":"query","name":"nameLegal","required":false,"schema":{"type":"string","description":"Legal name candidate."}},{"description":"Location candidate: city, state, or country.","in":"query","name":"location","required":false,"schema":{"type":"string","description":"Location candidate: city, state, or country."}},{"description":"Website domain candidate without protocol or path.","in":"query","name":"urlDomain","required":false,"schema":{"type":"string","description":"Website domain candidate without protocol or path."}},{"description":"Allow generated monogram logo fallback.","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean","description":"Allow generated monogram logo fallback."}},{"description":"Privileged admin readback scope. Includes hidden or off-sitemap entities and hidden research snippets. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean","description":"Privileged admin readback scope. Includes hidden or off-sitemap entities and hidden research snippets. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public."}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetail"}},"text/plain":{"schema":{"type":"string"}}},"description":"Entity detail as canonical JSON or the same data rendered as compact text/plain."},"301":{"description":"Redirect to new slug location"},"400":{"description":"Conflicting or unusable identity input: name, nameBrand, and nameLegal must identify the same entity, and exactly one identifier form may be supplied."},"404":{"description":"No entity resolved: fuzzy candidate signals below the review threshold without identity proof are exhausted, which does not prove the record is absent or safe to create — search POST /v1/entities/search with textSearch first (CLI: entities search --text-search). An existing but filtered row instead reports its reason as the ProblemDetail title: Entity Exists but Is Not Public (retry with includePrivate=true; CLI: --include-private true), Product Not Public: Missing Provider Relationship, or Fund Not Public: No Public Manager Firm."},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"description":"Ambiguous identity: review-level candidates, unresolved identity proof, multiple exact normalized-name matches, or a Product/Service slug shared across provider pairs. ProblemDetail carries candidates and names the duplicate-check endpoint (CLI: entities duplicate-check candidates list); resolve by entityId, companySlug plus slug, or a provider's productService relationship."},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Look up one entity","tags":["Entities"],"x-aventure-tool":{"cli":"entities lookup"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/lookup/batch":{"post":{"description":"Returns a page envelope of entity detail records by id, slug, and/or current joined URL. When page and size are omitted, the full deduplicated batch is returned in request order. Sort is not supported for this fixed-order batch response. For public reads totalElements counts the entities visible to the caller, so requested identifiers that do not resolve or fail the public visibility filter are excluded. For privileged reads totalElements counts the requested identifiers that resolved to an entity id, which can exceed the number of records returned when an id no longer exists.","operationId":"lookupEntityBatch","parameters":[{"description":"Privileged read scope for admin callers. Bypasses the public visibility filter so hidden, unverified, and not-yet-published entities are returned instead of being silently dropped. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N); omit page and size for the full batch.","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","description":"Zero-based page index (0..N); omit page and size for the full batch."}},{"description":"The size of the page to be returned; omit page and size for the full batch.","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","description":"The size of the page to be returned; omit page and size for the full batch."}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetailBatch"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityDetail"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Batch entity lookup","tags":["Entities"],"x-aventure-tool":{"auth":"read","cli":"entities lookup batch"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/lookup/matches":{"post":{"description":"Resolves each queried id, slug, and current joined URL to exactly one outcome row that echoes the raw input: MATCHED with full detail, AMBIGUOUS with candidate ids when a URL is currently owned by more than one entity, or MISSING. Unlike the batch detail read, no input is silently dropped and every row maps back to its source identifier. URL matching is host+path exact: scheme and a leading www are ignored, but distinct paths stay distinct (stripe.com does not match stripe.com/payments).","operationId":"lookupEntityMatches","parameters":[{"description":"Privileged read scope for admin callers. Returns hidden, unverified, and not-yet-published entities instead of resolving them as MISSING. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetailBatch"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EntityResolution"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Resolve entity identifiers (POST)","tags":["Entities"],"x-aventure-tool":{"auth":"read"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/natural-search":{"post":{"description":"Translate a plain-English company, startup, investor, investment firm, or investment manager search into the canonical EntityFilter contract, execute the existing entity list engine, and return both the interpretation and ranked entity list page. Unsupported constraints are named in the interpretation instead of being silently ignored. Explicit filter fields are hard constraints: they override planner values, while the planner fills fields left unset. CLI: search entities --query 'AI infrastructure companies founded since 2020' --size 3. The query accepts plain English; --size limits the page, --page starts at 0, and --year-founded-range-min 2020 imposes a hard founding-year constraint. Use --include-private false for publicly visible results and search entities --help for all available flags.","operationId":"naturalSearchEntities","parameters":[{"description":"When false, generated monogram logos are stripped from entity rows.","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Privileged admin readback scope. Includes hidden or off-sitemap entities. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityNaturalSearch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaturalSearchResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Find companies, startups, and investors with natural language","tags":["Entities"],"x-aventure-tool":{"cli":"search entities"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/relationships/types":{"get":{"description":"Returns canonical EntityRelationshipType values, aliases, and policy flags. Use joinable=true values with entities relationships join; acquisitionManaged=true values route through entity acquisitions; exclusiveRelationshipType lists relationship types that cannot coexist for the same unordered entity pair; readOnly=true values are emitted by reads only.","operationId":"listRelationshipTypes","responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EntityRelationshipTypeOption"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List relationship types","tags":["Entity Relationships"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/relationships/{relationshipId}":{"get":{"description":"Returns one relationship by row id, including historic and non-primary rows. The response includes isCurrent and isPrimary so hidden-row cause is explicit.","operationId":"getRelationship","parameters":[{"description":"Integer entity_relationship.id row id from EntityRelationship.id, not an entity UUID.","in":"path","name":"relationshipId","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityRelationship"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get relationship row by id","tags":["Entity Relationships"],"x-aventure-tool":{"cli":"entities relationships row get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/research/details/types":{"get":{"description":"Returns research detail type tokens and write metadata, including valueShape, allowedToken, range, and timeSeries. When timeSeries=true, each believable dated observation is historical data: add a new current row and delete only rows believed false.","operationId":"researchDetailTypes","responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResearchDetailType"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List research detail types","tags":["Entity Research"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/research/snippets/types":{"get":{"description":"Lists the recognized research snippet types. A textType in this list is validated against its length and paragraph rules on write and defaults to visible; a textType not in this list is still saved but defaults to visible=false (hidden from default reads). The per-row visible flag overrides the default either way. The curated and analysisRenderable flags mark public Analysis-page eligibility, not snippet display.","operationId":"researchSnippetTypes","responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResearchSnippetType"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List research snippet types","tags":["Entity Research"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/search":{"post":{"description":"Run keyword, semantic, or explicit structured entity filtering with an EntityListFilter JSON body. entityName is an exact normalized brand/legal-name filter; textSearch is keyword/full-text search. For a plain-English or multi-constraint company request, use POST /v1/entities/natural-search instead. Set semanticQuery for semantic nearest-neighbor ranking over stored content embeddings; semanticQuery uses the live priority embeddings tier and returns semanticMatch evidence. countOnly is unsupported when semanticQuery is present; count-only pages have no content, so read totalElements rather than empty. Default public visibility can filter hidden/off-sitemap records and does not prove create safety. Use duplicate-check before writes that need identity review. Structured search supports sort-aware cursor continuation with unchanged filters and sort; cursors are unsupported with semanticQuery or countOnly.","operationId":"listEntitiesPost","parameters":[{"description":"Return only the matching entity count in totalElements. Content is empty by design, so the page empty flag describes content, not whether matches exist. Unsupported with semanticQuery.","in":"query","name":"countOnly","required":false,"schema":{"type":"boolean"}},{"description":"Allow generated monogram logos in results.","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Privileged admin readback scope. Includes hidden or off-sitemap entities. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Opaque sort-aware entity cursor; reuse the same filters and sort. Unsupported with semanticQuery or countOnly.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Privileged read flag. Must be true to return the /v1/entities/detail payload.","in":"query","name":"includeFullDetail","schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityListFilter"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PageEntityList"},{"$ref":"#/components/schemas/PageEntityDetail"}]}}},"description":"OK","headers":{"X-Next-Cursor":{"description":"Opaque sort-aware continuation token when another page is available","schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Search companies and other entities (POST)","tags":["Entities"],"x-aventure-tool":{"cli":"entities search"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/summary":{"get":{"description":"List lean entity rows for homepage and card surfaces. Returns core identity, funding rollup, and fundraise rounds while omitting heavier list enrichment, research, address, text, classification, and URL sections.","operationId":"listEntitySummaries","parameters":[{"description":"Restrict results to specific entity IDs.","in":"query","name":"entityId","required":false,"schema":{"type":"array","description":"Restrict results to specific entity IDs.","items":{"type":"string","format":"uuid","description":"Canonical entity UUID"}}},{"description":"Restrict results to entity slugs.","in":"query","name":"slug","required":false,"schema":{"type":"array","description":"Restrict results to entity slugs.","items":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}}},{"description":"Exact normalized match against entity brand or legal names.","in":"query","name":"entityName","required":false,"schema":{"type":"array","description":"Exact normalized match against entity brand or legal names.","items":{"type":"string","description":"Exact normalized match against entity brand or legal names."}}},{"description":"Entity type filter. Organization expands to Company, Investment Firm, Nonprofit, and Government; omit to include every entity type.","in":"query","name":"typeRecord","required":false,"schema":{"type":"array","description":"Entity type filter. Organization expands to Company, Investment Firm, Nonprofit, and Government; omit to include every entity type.","items":{"$ref":"#/components/schemas/EntityType"}}},{"description":"Industry classification values.","in":"query","name":"industry","required":false,"schema":{"type":"array","description":"Industry classification values.","items":{"type":"string","description":"Industry classification values."}}},{"description":"Geographic classification values.","in":"query","name":"location","required":false,"schema":{"type":"array","description":"Geographic classification values.","items":{"type":"string","description":"Geographic classification values."}}},{"description":"General classification tag values.","in":"query","name":"tag","required":false,"schema":{"type":"array","description":"General classification tag values.","items":{"type":"string","description":"General classification tag values."}}},{"description":"Main product classification values.","in":"query","name":"mainProduct","required":false,"schema":{"type":"array","description":"Main product classification values.","items":{"type":"string","description":"Main product classification values."}}},{"description":"Technology-used classification values.","in":"query","name":"typeTechnologyUsed","required":false,"schema":{"type":"array","description":"Technology-used classification values.","items":{"type":"string","description":"Technology-used classification values."}}},{"description":"Business-model classification values.","in":"query","name":"typeModel","required":false,"schema":{"type":"array","description":"Business-model classification values.","items":{"type":"string","description":"Business-model classification values."}}},{"description":"Ownership-model classification values.","in":"query","name":"typeOwnership","required":false,"schema":{"type":"array","description":"Ownership-model classification values.","items":{"type":"string","description":"Ownership-model classification values."}}},{"description":"Customer-type classification values.","in":"query","name":"typeCustomer","required":false,"schema":{"type":"array","description":"Customer-type classification values.","items":{"type":"string","description":"Customer-type classification values."}}},{"description":"Revenue-model classification values.","in":"query","name":"typeRevenue","required":false,"schema":{"type":"array","description":"Revenue-model classification values.","items":{"type":"string","description":"Revenue-model classification values."}}},{"description":"Accelerator brand or operator name.","in":"query","name":"acceleratorBrand","required":false,"schema":{"type":"array","description":"Accelerator brand or operator name.","items":{"type":"string","description":"Accelerator brand or operator name."}}},{"description":"Specific accelerator program name.","in":"query","name":"acceleratorName","required":false,"schema":{"type":"array","description":"Specific accelerator program name.","items":{"type":"string","description":"Specific accelerator program name."}}},{"description":"Accelerator batch or cohort label.","in":"query","name":"acceleratorCohort","required":false,"schema":{"type":"array","description":"Accelerator batch or cohort label.","items":{"type":"string","description":"Accelerator batch or cohort label."}}},{"description":"Accelerator participation status.","in":"query","name":"acceleratorStatus","required":false,"schema":{"type":"array","description":"Accelerator participation status.","items":{"type":"string","description":"Accelerator participation status."}}},{"description":"Affinity provider organization names accepted by the companies list filter. Affinity rows are member -> provider; use provider names here, not member names.","in":"query","name":"affinity","required":false,"schema":{"type":"array","description":"Affinity provider organization names accepted by the companies list filter. Affinity rows are member -> provider; use provider names here, not member names.","items":{"type":"string","description":"Affinity provider organization names accepted by the companies list filter. Affinity rows are member -> provider; use provider names here, not member names."}}},{"description":"Headquarters country values.","in":"query","name":"headquartersCountry","required":false,"schema":{"type":"array","description":"Headquarters country values.","items":{"type":"string","description":"Headquarters country values."}}},{"description":"Headquarters state or region values.","in":"query","name":"headquartersState","required":false,"schema":{"type":"array","description":"Headquarters state or region values.","items":{"type":"string","description":"Headquarters state or region values."}}},{"description":"Headquarters city values.","in":"query","name":"headquartersCity","required":false,"schema":{"type":"array","description":"Headquarters city values.","items":{"type":"string","description":"Headquarters city values."}}},{"description":"Investment stage classification values.","in":"query","name":"stage","required":false,"schema":{"type":"array","description":"Investment stage classification values.","items":{"type":"string","description":"Investment stage classification values."}}},{"description":"Inclusive founding-year ranges, in calendar years.","in":"query","name":"yearFoundedRange","required":false,"schema":{"type":"array","description":"Inclusive founding-year ranges, in calendar years.","items":{"$ref":"#/components/schemas/IntRange"}}},{"description":"Inclusive reported employee-count ranges, in employees.","in":"query","name":"employeeCountRange","required":false,"schema":{"type":"array","description":"Inclusive reported employee-count ranges, in employees.","items":{"$ref":"#/components/schemas/IntRange"}}},{"description":"Operating status values.","in":"query","name":"operatingStatus","required":false,"schema":{"type":"array","description":"Operating status values.","items":{"type":"string","description":"Operating status values."}}},{"description":"Inclusive earliest timestamp.","in":"query","name":"createdAtRange.min","required":false,"schema":{"type":"string","format":"date-time","description":"Inclusive earliest timestamp."}},{"description":"Inclusive latest timestamp.","in":"query","name":"createdAtRange.max","required":false,"schema":{"type":"string","format":"date-time","description":"Inclusive latest timestamp."}},{"description":"Inclusive earliest timestamp.","in":"query","name":"updatedAtRange.min","required":false,"schema":{"type":"string","format":"date-time","description":"Inclusive earliest timestamp."}},{"description":"Inclusive latest timestamp.","in":"query","name":"updatedAtRange.max","required":false,"schema":{"type":"string","format":"date-time","description":"Inclusive latest timestamp."}},{"description":"First letter of the display name.","in":"query","name":"letter","required":false,"schema":{"type":"string","description":"First letter of the display name."}},{"description":"Privileged filter to entities with any logo.","in":"query","name":"hasLogo","required":false,"schema":{"type":"boolean","description":"Privileged filter to entities with any logo."}},{"description":"Privileged filter by hidden status.","in":"query","name":"isHidden","required":false,"schema":{"type":"boolean","description":"Privileged filter by hidden status."}},{"description":"Privileged filter by public sitemap inclusion.","in":"query","name":"showOnSitemap","required":false,"schema":{"type":"boolean","description":"Privileged filter by public sitemap inclusion."}},{"description":"Privileged filter to entities with a real uploaded logo.","in":"query","name":"hasRealLogo","required":false,"schema":{"type":"boolean","description":"Privileged filter to entities with a real uploaded logo."}},{"description":"Filter to entities with fundraise activity.","in":"query","name":"hasFundraising","required":false,"schema":{"type":"boolean","description":"Filter to entities with fundraise activity."}},{"description":"Filter by featured status.","in":"query","name":"featured","required":false,"schema":{"type":"boolean","description":"Filter by featured status."}},{"description":"Suppress entities whose total raised is zero.","in":"query","name":"suppressZeroTotalRaised","required":false,"schema":{"type":"boolean","description":"Suppress entities whose total raised is zero."}},{"description":"Suppress entities with terminal operating status.","in":"query","name":"suppressNonOperating","required":false,"schema":{"type":"boolean","description":"Suppress entities with terminal operating status."}},{"description":"Named server-owned list quality gate.","in":"query","name":"qualityGate","required":false,"schema":{"$ref":"#/components/schemas/EntityListQualityGate"}},{"description":"Current URL to match by normalized host and path.","in":"query","name":"url","required":false,"schema":{"type":"string","description":"Current URL to match by normalized host and path."}},{"description":"Current root domain to match when urlMatchMode=domain.","example":"example.com","in":"query","name":"urlDomain","required":false,"schema":{"type":"string","description":"Current root domain to match when urlMatchMode=domain.","example":"example.com"}},{"description":"Restrict URL matching to one URL type.","example":"website","in":"query","name":"urlType","required":false,"schema":{"$ref":"#/components/schemas/EntityUrlType"}},{"description":"URL matching mode: hostPath uses host and path; domain uses the root domain.","example":"domain","in":"query","name":"urlMatchMode","required":false,"schema":{"$ref":"#/components/schemas/UrlMatchMode"}},{"description":"Portfolio-company headquarters country values.","in":"query","name":"portfolioHeadquartersCountry","required":false,"schema":{"type":"array","description":"Portfolio-company headquarters country values.","items":{"type":"string","description":"Portfolio-company headquarters country values."}}},{"description":"Portfolio-company headquarters state or region values.","in":"query","name":"portfolioHeadquartersState","required":false,"schema":{"type":"array","description":"Portfolio-company headquarters state or region values.","items":{"type":"string","description":"Portfolio-company headquarters state or region values."}}},{"description":"Portfolio-company headquarters city values.","in":"query","name":"portfolioHeadquartersCity","required":false,"schema":{"type":"array","description":"Portfolio-company headquarters city values.","items":{"type":"string","description":"Portfolio-company headquarters city values."}}},{"description":"Fundraise round labels, such as Seed or Series A.","in":"query","name":"fundraiseActivity.round","required":false,"schema":{"type":"array","description":"Fundraise round labels, such as Seed or Series A.","items":{"type":"string","description":"Fundraise round labels, such as Seed or Series A."}}},{"in":"query","name":"fundraiseActivity.amountRaisedRange","required":false,"schema":{"type":"array","description":"Per-round amount-raised ranges in USD. Use plain JSON numbers.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.amountInvestedRange","required":false,"schema":{"type":"array","description":"Investor-level amount-invested ranges in the transaction currency. Use plain JSON numbers.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.totalRaisedRange","required":false,"schema":{"type":"array","description":"Total-raised ranges across all rounds in USD. Use plain JSON numbers.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.valuationRange","required":false,"schema":{"type":"array","description":"Post-money valuation ranges in USD.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.lastRoundYearRange","required":false,"schema":{"type":"array","description":"Last-round-year ranges for each entity's most recent fundraise round.","items":{"$ref":"#/components/schemas/IntRange"}}},{"description":"Portfolio company names. Exact, case-sensitive match on the portfolio company's brand or legal name; restricts returned entities to investors in those companies.","in":"query","name":"fundraiseActivity.investedCompanyName","required":false,"schema":{"type":"array","description":"Portfolio company names. Exact, case-sensitive match on the portfolio company's brand or legal name; restricts returned entities to investors in those companies.","items":{"type":"string","description":"Portfolio company names. Exact, case-sensitive match on the portfolio company's brand or legal name; restricts returned entities to investors in those companies."}}},{"in":"query","name":"fundraiseActivity.investorActivity.totalInvestmentRange","required":false,"schema":{"type":"array","description":"Distinct fundraise-deal count ranges for an investor, with inclusive integer bounds.","items":{"$ref":"#/components/schemas/IntRange"}}},{"in":"query","name":"fundraiseActivity.investorActivity.totalAmountInvestedUsdRange","required":false,"schema":{"type":"array","description":"Total USD amount-invested ranges with inclusive bounds.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.investorActivity.averageAmountInvestedUsdRange","required":false,"schema":{"type":"array","description":"Average USD amount-invested ranges with inclusive bounds.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.investorActivity.largestAmountInvestedUsdRange","required":false,"schema":{"type":"array","description":"Largest USD amount-invested ranges with inclusive bounds.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.investorActivity.smallestAmountInvestedUsdRange","required":false,"schema":{"type":"array","description":"Smallest USD amount-invested ranges with inclusive bounds.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"description":"Non-blank keyword/full-text search term. Use natural-search for plain-English or multi-constraint company requests.","in":"query","name":"textSearch","required":false,"schema":{"type":"string","description":"Non-blank keyword/full-text search term. Use natural-search for plain-English or multi-constraint company requests."}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityListSummary"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List entity summaries","tags":["Entities"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/texts/types":{"get":{"description":"Returns text type values accepted by entity text rows.","operationId":"entityTextTypes","parameters":[{"description":"Include private text types","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TextTypeOption"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List entity text types","tags":["Texts"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/types":{"get":{"description":"Returns typeRecord alias guidance for API help and CLI command suggestions.","operationId":"entityTypes","responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EntityTypeAlias"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List writable entity typeRecords with accepted alias tokens","tags":["Entity Maintenance"],"x-aventure-tool":{"cli":"entities type-record types list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/urls/surface-misclassifications":{"get":{"description":"Returns URL shapes whose attempted write surface is deterministically wrong. Consumers route these before writing; news/press articles belong on News.newsUrlOriginal via news create, not EntityUrl.urlType=website.","operationId":"urlSurfaceMisclassifications","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UrlSurfaceMisclassificationCatalog"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List URL surface misclassification rules","tags":["URL Links"],"x-aventure-tool":{"cli":"entities urls surface-misclassifications list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/urls/types":{"get":{"description":"Returns canonical URL types and aliases accepted by entity URL rows.","operationId":"entityUrlTypes","responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UrlTypeAlias"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List entity URL types","tags":["URL Links"],"x-aventure-tool":{"auth":"none"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}":{"get":{"description":"Returns entity detail by exact UUID. Use lookup for a slug, URL, or candidate signals.","operationId":"getEntityById","parameters":[{"description":"Exact entity UUID.","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Concrete entity type qualifier; group-only Organization is invalid. List the accepted concrete tokens and their aliases with GET /v1/entities/types (CLI: entities type-record types list).","example":"Company","in":"query","name":"typeRecord","required":false,"schema":{"type":"string","description":"Concrete entity type qualifier; group-only Organization is invalid. List the accepted concrete tokens and their aliases with GET /v1/entities/types (CLI: entities type-record types list).","example":"Company"}},{"description":"Allow generated monogram logo fallback.","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean","description":"Allow generated monogram logo fallback."}},{"description":"Privileged admin readback scope. Includes hidden or off-sitemap entities and hidden research snippets. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean","description":"Privileged admin readback scope. Includes hidden or off-sitemap entities and hidden research snippets. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public."}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetail"}},"text/plain":{"schema":{"type":"string"}}},"description":"Entity detail as canonical JSON or the same data rendered as compact text/plain."},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get entity by ID","tags":["Entities"],"x-aventure-tool":{"cli":"entities by-id get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/acquisitions":{"get":{"description":"VISIBILITY-GATED READ: a row is returned only when BOTH the acquired and acquirer entities are publicly visible. An acquisition relationship that already exists (and is visible in the entity relationships resource) but returns 404 here means one counterpart entity is still hidden -- publish that entity (statusSitemapShow=true, statusHidePage=false) -- it is an unmet visibility prerequisite, not data-layer inconsistency or projection lag. The acquired/acquirer roles in each row are always declared explicitly in the response via the acquiredEntity and acquirerEntity fields. The role query parameter only selects which side the path entity occupies in the WHERE clause: acquired (default) lists acquisitions where the path entity was bought; acquirer lists acquisitions where the path entity was the buyer; all lists or reads both sides in one response. Writes (POST/PUT/PATCH/DELETE) ignore role and always treat the path entity as acquired. List responses are ordered by most recent acquisition event first.","operationId":"listAcquisitions","parameters":[{"description":"Entity UUID whose acquisition rows are being read or written.","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Selects which side the path entity occupies in the WHERE clause: \`acquired\` (default) lists rows where the path entity was bought; \`acquirer\` lists rows where the path entity was the buyer; \`all\` lists both sides.","in":"query","name":"role","required":false,"schema":{"$ref":"#/components/schemas/EntityAcquisitionRole","default":"acquired"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityAcquisition"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List acquisitions for an entity","tags":["Entity Acquisitions"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/acquisitions/{relationshipId}":{"get":{"description":"VISIBILITY-GATED READ: a row is returned only when BOTH the acquired and acquirer entities are publicly visible. An acquisition relationship that already exists (and is visible in the entity relationships resource) but returns 404 here means one counterpart entity is still hidden -- publish that entity (statusSitemapShow=true, statusHidePage=false) -- it is an unmet visibility prerequisite, not data-layer inconsistency or projection lag. A gated miss on an existing row returns 404 with title 'Acquisition Exists but a Counterpart Entity Is Not Public'. The acquired/acquirer roles in each row are always declared explicitly in the response via the acquiredEntity and acquirerEntity fields. The role query parameter only selects which side the path entity occupies in the WHERE clause: acquired (default) lists acquisitions where the path entity was bought; acquirer lists acquisitions where the path entity was the buyer; all lists or reads both sides in one response. Writes (POST/PUT/PATCH/DELETE) ignore role and always treat the path entity as acquired.","operationId":"getAcquisition","parameters":[{"description":"Entity UUID whose acquisition rows are being read or written.","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Acquisition relationship row id (entity_relationship.id).","in":"path","name":"relationshipId","required":true,"schema":{"type":"integer","format":"int32"}},{"description":"Selects which side the path entity occupies in the WHERE clause: \`acquired\` (default) lists rows where the path entity was bought; \`acquirer\` lists rows where the path entity was the buyer; \`all\` reads either side.","in":"query","name":"role","required":false,"schema":{"$ref":"#/components/schemas/EntityAcquisitionRole","default":"acquired"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityAcquisition"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get acquisition for an entity","tags":["Entity Acquisitions"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/addresses":{"get":{"description":"Returns current physical addresses with their role-period associations, ordered HQ-first, primary-next, most-recent-first (\`updated_at DESC\`). Reads directly from the base tables so fresh writes surface immediately (bypassing the mv_entity_addresses materialized view).","operationId":"listEntityAddresses","parameters":[{"description":"Canonical entity UUID","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Include inactive rows","in":"query","name":"includeInactive","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Address"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List entity addresses","tags":["Entity Addresses"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/addresses/{addressJoinId}":{"get":{"description":"Returns the physical address group containing the selected entity address association.","operationId":"getEntityAddress","parameters":[{"description":"Canonical entity UUID","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Address join id parameter","in":"path","name":"addressJoinId","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Address"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get a single entity address join row","tags":["Entity Addresses"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/blog-posts":{"get":{"description":"Returns active external blog post links stored in research.res_blog_article. NOT FOR: News/press coverage; use \`news list\`.","operationId":"listEntityBlogPosts","parameters":[{"description":"Entity UUID owning the blog post rows","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Include inactive research blog post rows","in":"query","name":"includeInactive","required":false,"schema":{"type":"boolean","default":false}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":10,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","default":["publishedAt,desc"],"items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageBlogPost"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List entity blog posts","tags":["Research Blog Posts"],"x-aventure-tool":{"cli":"entities blog-posts list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/blog-posts/{blogPostId}":{"get":{"description":"Returns one entity-owned external link by id. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"getEntityBlogPost","parameters":[{"description":"Entity UUID owning the blog post row","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Blog post UUID","in":"path","name":"blogPostId","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPost"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get entity blog post","tags":["Research Blog Posts"],"x-aventure-tool":{"cli":"entities blog-posts get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/classifications":{"get":{"description":"Returns joins grouped by bucket. The default view includes current rows; includeInactive=true adds historical rows and requires read auth. Callers with private-visibility authority (admin key or ROLE_ADMIN) also resolve hidden/private entities; includePrivate=true requires that authority, and a signed-in user without it is admitted for public entities but hidden entities 404.","operationId":"getEntityClassifications","parameters":[{"description":"Canonical entity UUID","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Include inactive/historical entity classification join rows; default false returns only current joins.","in":"query","name":"includeInactive","required":false,"schema":{"type":"boolean","default":false}},{"description":"Include private/hidden entity classification rows when the caller has private-visibility authority (admin key or ROLE_ADMIN). Without that authority hidden/private entities 404.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityClassification"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get entity classification joins","tags":["Entity Classifications"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/classifications/suggestions":{"get":{"description":"Default classification discovery path for enrichment agents. Returns ranked embedding-derived tag and standardized-code suggestions; empty array means no embedding neighbors. Create joins with the entity classifications create endpoint. A signed-in user is admitted for public entities; callers with private-visibility authority (admin key or ROLE_ADMIN) also resolve hidden/private entities, and includePrivate=true requires that authority, otherwise hidden/private entities 404.","operationId":"suggestEntityClassifications","parameters":[{"description":"Canonical entity UUID","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Maximum suggestions to return; default 12, maximum 50.","in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Include private/hidden entity suggestions when the caller has private-visibility authority (admin key or ROLE_ADMIN). Without that authority hidden/private entities 404.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EntityClassificationSuggestion"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Suggest entity classifications","tags":["Entity Classifications"],"x-aventure-tool":{"cli":"entities classifications suggest"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/content":{"get":{"description":"Returns news articles, blog posts, repositories, websites, and pages related to an entity. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"listEntityContent","parameters":[{"description":"Entity UUID whose content is listed.","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Topic key or source category.","in":"query","name":"topic","required":false,"schema":{"type":"string","description":"Topic key or source category."}},{"description":"Public content type filter.","in":"query","name":"contentType","required":false,"schema":{"$ref":"#/components/schemas/ContentType"}},{"description":"Owner relation filter.","in":"query","name":"relation","required":false,"schema":{"$ref":"#/components/schemas/ContentRelation"}},{"description":"Best-effort content year filter.","in":"query","name":"year","required":false,"schema":{"type":"integer","format":"int32","description":"Best-effort content year filter."}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Set true for first-page content-existence probes that do not need exact totals or stable ordering.","in":"query","name":"existenceProbe","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageContent"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List entity content","tags":["Content"],"x-aventure-tool":{"cli":"entities content list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/content/search":{"post":{"description":"Translates plain-English constraints for one entity's content index. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"searchEntityContent","parameters":[{"description":"Entity UUID whose content is searched.","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaturalSearch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentSearchResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Search entity content","tags":["Content"],"x-aventure-tool":{"cli":"entities content search"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/fundraise-rounds":{"get":{"description":"Lists fundraise rounds for an entity. Use entityId for the fundraising/portfolio company that raised the round - always a company, never the fund or investment firm. For an investment made by an Investment Firm, pass the portfolio company that received the money here, not the investment firm id and not the round id.","operationId":"entityFundraises","parameters":[{"description":"Entity unique identifier (UUID).","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Round label contains filter","example":"Series A","in":"query","name":"round","required":false,"schema":{"type":"string"}},{"description":"Inclusive minimum announced date","example":"2022-01-01","in":"query","name":"dateFrom","required":false,"schema":{"type":"string","format":"date"}},{"description":"Inclusive maximum announced date","example":"2024-12-31","in":"query","name":"dateTo","required":false,"schema":{"type":"string","format":"date"}},{"description":"Inclusive minimum amount raised. Use a plain whole-number amount such as 500000; do not include currency signs, codes, comma grouping, decimals, or strings.","example":500000,"in":"query","name":"minAmount","required":false,"schema":{"type":"integer","format":"int64"}},{"description":"Inclusive maximum amount raised. Use a plain whole-number amount such as 50000000; do not include currency signs, codes, comma grouping, decimals, or strings.","example":50000000,"in":"query","name":"maxAmount","required":false,"schema":{"type":"integer","format":"int64"}},{"description":"Permit monogram fallback","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Opaque URL-safe cursor token from X-Next-Cursor. Reuse the same filters and sort.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageEntityFundraiseTransaction"}}},"description":"OK","headers":{"X-Next-Cursor":{"description":"Opaque continuation token when cursor traversal has another page.","schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List fundraise rounds","tags":["Entity Fundraise"],"x-aventure-tool":{"cli":"entities fundraise rounds list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/fundraise-rounds/{fundraiseRoundId}":{"get":{"description":"Gets one fundraise round for an entity. Use entityId for the fundraising/portfolio company that raised the round - always a company, never the fund or investment firm. For an investment made by an Investment Firm, pass the portfolio company that received the money here, not the investment firm id and not the round id. Use fundraiseRoundId for the round id.","operationId":"getFundraiseTransaction","parameters":[{"description":"Entity unique identifier (UUID).","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Fundraise round id. Use this with the entityId path segment that owns the round.","in":"path","name":"fundraiseRoundId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical fundraise transaction UUID"}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/EntityFundraiseTransaction"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get fundraise round","tags":["Entity Fundraise"],"x-aventure-tool":{"cli":"entities fundraise rounds get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/investments":{"get":{"description":"Lists investments made by the requesting investor entity. Use entityId to select the investor, then filter by round, dateFrom/dateTo, minAmount/maxAmount, and latestPerEntity. amountInvested appears only inside investorAttribution, is a plain decimal number in the fundraise transaction currency, and is not added to amountRaised. Valid sort syntax is sort=amountInvested,desc or --sort amountInvested,desc; do not use investorAttribution.amountInvested, amount_invested, currency signs, currency codes, comma grouping, or abbreviated values. Deep traversal uses cursor: pass the prior X-Next-Cursor value as cursor and reuse the same filters and sort.","operationId":"entityInvestments","parameters":[{"description":"Entity unique identifier (UUID).","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Round label contains filter","example":"Series A","in":"query","name":"round","required":false,"schema":{"type":"string"}},{"description":"Inclusive minimum announced date","example":"2022-01-01","in":"query","name":"dateFrom","required":false,"schema":{"type":"string","format":"date"}},{"description":"Inclusive maximum announced date","example":"2024-12-31","in":"query","name":"dateTo","required":false,"schema":{"type":"string","format":"date"}},{"description":"Inclusive minimum amount raised. Use a plain whole-number amount such as 500000; do not include currency signs, codes, comma grouping, decimals, or strings.","example":500000,"in":"query","name":"minAmount","required":false,"schema":{"type":"integer","format":"int64"}},{"description":"Inclusive maximum amount raised. Use a plain whole-number amount such as 50000000; do not include currency signs, codes, comma grouping, decimals, or strings.","example":50000000,"in":"query","name":"maxAmount","required":false,"schema":{"type":"integer","format":"int64"}},{"description":"Permit monogram fallback","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Return latest transaction per entity","in":"query","name":"latestPerEntity","required":false,"schema":{"type":"boolean"}},{"description":"Opaque URL-safe cursor token from X-Next-Cursor. Reuse the same filters and sort.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Privileged private readback scope. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret frontend reads stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageEntityFundraiseTransaction"}}},"description":"OK","headers":{"X-Next-Cursor":{"description":"Opaque continuation token when cursor traversal has another page.","schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List investments made by an entity","tags":["Entity Fundraise"],"x-aventure-tool":{"cli":"entities fundraise investments list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/investor-activity":{"get":{"description":"Gets the investor-perspective activity aggregate (total investments, current portfolio count, exits, and top investment stages) for an investor. Use entityId for the investor — the fund, investment firm, or company that supplied the capital — not a portfolio company that raised a round.","operationId":"investorActivity","parameters":[{"description":"Entity unique identifier (UUID).","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/EntityFundraiseInvestorActivity"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get investor activity","tags":["Entity Fundraise"],"x-aventure-tool":{"cli":"entities fundraise investor-activity get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/investors":{"get":{"description":"Lists entity investors with per-round investorAttribution rows. Use entityId for the fundraising/portfolio company being invested in, whose investors to list — always a company, never an investor fund or firm. amountInvested appears only inside investorAttribution, is a plain decimal number in the fundraise transaction currency, and is not added to amountRaised. Valid sort syntax is sort=amountInvested,desc or --sort amountInvested,desc; do not use investorAttribution.amountInvested, amount_invested, currency signs, currency codes, comma grouping, or abbreviated values.","operationId":"entityInvestors","parameters":[{"description":"Entity unique identifier (UUID).","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Permit generated monogram fallback","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Opaque URL-safe cursor token from X-Next-Cursor. Reuse the same filters and sort.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Privileged private readback scope. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret frontend reads stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageEntityInvestorParticipation"}}},"description":"OK","headers":{"X-Next-Cursor":{"description":"Opaque continuation token when cursor traversal has another page.","schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List entity investors","tags":["Entity Fundraise"],"x-aventure-tool":{"cli":"entities fundraise investors list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/media/logo":{"get":{"description":"Returns the selected square or standard entity logo. Empty slots return 404.","operationId":"getEntityMedia","parameters":[{"description":"Canonical entity UUID","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Entity logo variant; defaults to square.","in":"query","name":"logoType","required":false,"schema":{"$ref":"#/components/schemas/EntityLogoType"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaUpload"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get entity logo","tags":["Media"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/people":{"get":{"description":"Returns people associated with one entity. Public and client-secret reads exclude hidden entities; trusted admin credentials include them for write readback.","operationId":"listEntityPeopleAssociations","parameters":[{"description":"Entity UUID","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Entity unique identifier (UUID) — at least one of id or slug required","in":"query","name":"id","required":false,"schema":{"type":"string","format":"uuid"}},{"description":"Entity URL-friendly identifier — at least one of id or slug required","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Search term filter","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Association role filter","in":"query","name":"role","required":false,"schema":{"type":"string"}},{"description":"Current association filter","in":"query","name":"isCurrent","required":false,"schema":{"type":"boolean"}},{"description":"Include person URL records","in":"query","name":"includeUrl","required":false,"schema":{"type":"boolean"}},{"description":"Include person address records","in":"query","name":"includeAddress","required":false,"schema":{"type":"boolean"}},{"description":"Person slug fallback for entity-keyed writes","in":"query","name":"personSlug","required":false,"schema":{"type":"string"}},{"description":"Return count metadata without full content","in":"query","name":"countOnly","required":false,"schema":{"type":"boolean"}},{"description":"Permit generated monogram fallback","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Privileged read scope. Includes associations on hidden entities. Defaults to private visibility for admin API key or ROLE_ADMIN callers; explicit true requires that authority.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":40,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityPersonAssociation"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List entity people associations","tags":["Entity Person Associations"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/people/time-series":{"get":{"description":"Returns employee-count time series for the entity at this address. Results are sorted newest first. This endpoint does not support custom sorting.","operationId":"getEmployeeCountTimeSeries","parameters":[{"description":"Entity unique identifier (UUID)","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"description":"The size of the page to be returned; maximum 500.","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":25}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageEmployeeCount"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Entity employee count time series","tags":["Entity Employee Count"],"x-aventure-tool":{"cli":"entities people employee-counts list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/people/{associationId}":{"get":{"description":"Returns one entity-scoped association detail. Public and client-secret reads hide associations to hidden entities; trusted admin credentials can read them back.","operationId":"getEntityPeopleAssociation","parameters":[{"description":"Entity UUID","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Association id","in":"path","name":"associationId","required":true,"schema":{"type":"integer","format":"int32"}},{"description":"Entity unique identifier (UUID) — at least one of id or slug required","in":"query","name":"id","required":false,"schema":{"type":"string","format":"uuid"}},{"description":"Entity URL-friendly identifier — at least one of id or slug required","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Search term filter","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Association role filter","in":"query","name":"role","required":false,"schema":{"type":"string"}},{"description":"Current association filter","in":"query","name":"isCurrent","required":false,"schema":{"type":"boolean"}},{"description":"Include person URL records","in":"query","name":"includeUrl","required":false,"schema":{"type":"boolean"}},{"description":"Include person address records","in":"query","name":"includeAddress","required":false,"schema":{"type":"boolean"}},{"description":"Person slug fallback for entity-keyed writes","in":"query","name":"personSlug","required":false,"schema":{"type":"string"}},{"description":"Return count metadata without full content","in":"query","name":"countOnly","required":false,"schema":{"type":"boolean"}},{"description":"Permit generated monogram fallback","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Privileged read scope. Includes associations on hidden entities. Defaults to private visibility for admin API key or ROLE_ADMIN callers; explicit true requires that authority.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityPersonAssociation"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get entity people association","tags":["Entity Person Associations"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/person-investors":{"get":{"description":"Lists person investors with per-round investorAttribution rows. Use entityId for the fundraising/portfolio company being invested in, whose investors to list — always a company, never an investor fund or firm. amountInvested appears only inside investorAttribution, is a plain decimal number in the fundraise transaction currency, and is not added to amountRaised. Valid sort syntax is sort=amountInvested,desc or --sort amountInvested,desc; do not use investorAttribution.amountInvested, amount_invested, currency signs, currency codes, comma grouping, or abbreviated values.","operationId":"entityPersonInvestors","parameters":[{"description":"Entity unique identifier (UUID).","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Permit generated monogram fallback","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Opaque URL-safe cursor token from X-Next-Cursor. Reuse the same filters and sort.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Privileged private readback scope. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret frontend reads stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PagePersonInvestorParticipation"}}},"description":"OK","headers":{"X-Next-Cursor":{"description":"Opaque continuation token when cursor traversal has another page.","schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List person investors","tags":["Entity Fundraise"],"x-aventure-tool":{"cli":"entities fundraise person-investors list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/products/suggestions":{"get":{"description":"Semantic suggestions for this slot only. NOT a completeness signal. Each candidate is a hypothesis — verify with web search before writing. exhaustive is always false. See coverage for the remaining details and the owning read that proves each.","operationId":"suggestProducts","parameters":[{"description":"Canonical entity UUID","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Maximum suggestions to return; default 12, maximum 50.","in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Whether to include private completion coverage when the caller has private-visibility authority.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntitySuggestionResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Suggest entity products or services","tags":["Entity Suggestions"],"x-aventure-tool":{"cli":"entities products suggest"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/relationships":{"get":{"description":"Returns relationship rows touching the path entity. Defaults to renderable-only rows where isCurrent=true and isPrimary=true. Set includeNonRenderable=true to surface historic and non-primary curation rows; returned rows include id, isCurrent, and isPrimary so hidden-row cause is explicit. Use entities relationships row get to retrieve one row by id without an entity path.","operationId":"listEntityRelationships","parameters":[{"description":"Canonical entity UUID","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Optional EntityRelationshipType filter, one of: acceleratorParticipant, acquirer, affinity, calculated, competingProductService, competitor, customer, fundManagerFirm, parent, productService, serviceProvider, similarCompany, spinOffFrom, successor. Use entities relationships types for valid values.","in":"query","name":"type","required":false,"schema":{"type":"string"}},{"description":"Include historic or non-primary rows. Default false returns only rows where isCurrent=true and isPrimary=true.","in":"query","name":"includeNonRenderable","required":false,"schema":{"type":"boolean","default":false}},{"description":"Opaque URL-safe cursor token from X-Next-Cursor. Reuse the same filters and sort.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"When true, returns direct curated competitors with each competitor's provider comparison signals (sells-to, pricing, ownership, funding, website) nested under its productService row. Competition is not transitively closed: A-B plus B-C surfaces B from A, never C. Only supported for type=competingProductService; the result is capped, so cursor and includeNonRenderable are not accepted alongside transitive=true.","in":"query","name":"transitive","required":false,"schema":{"type":"boolean","default":false}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityRelationship"}}},"description":"OK","headers":{"X-Next-Cursor":{"description":"Opaque continuation token when cursor traversal has another page.","schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List entity relationships","tags":["Entity Relationships"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/relationships/suggestions":{"get":{"description":"Semantic suggestions for this slot only. NOT a completeness signal. Each candidate is a hypothesis — verify with web search before writing. exhaustive is always false. See coverage for the remaining details and the owning read that proves each.","operationId":"suggestRelationships","parameters":[{"description":"Canonical entity UUID","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Maximum suggestions to return; default 12, maximum 50.","in":"query","name":"limit","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Whether to include private completion coverage when the caller has private-visibility authority.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntitySuggestionResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Suggest entity relationships","tags":["Entity Suggestions"],"x-aventure-tool":{"cli":"entities relationships suggest"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/repositories":{"get":{"description":"Returns the entity's synced GitHub repositories, paged. Default sort is stargazerCount desc, then name.","operationId":"listEntityRepositories","parameters":[{"description":"Entity UUID owning the repositories","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":50,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageGithubRepo"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List entity repositories","tags":["Repositories"],"x-aventure-tool":{"cli":"entities repositories list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/research":{"get":{"description":"Returns the consolidated research projection for an entity. Use includePrivate to include hidden research snippets and off-sitemap entities.","operationId":"getEntityResearch","parameters":[{"description":"Canonical entity UUID.","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Include hidden research snippets (visible=false) and off-sitemap entities.","example":true,"in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/EntityResearch"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Entity research projection","tags":["Entity Research"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/research/details":{"get":{"description":"Returns paginated research details for an entity. Optionally filter by detail type. Rows for timeSeries=true types are history, not stale current state.","operationId":"listResearchDetails","parameters":[{"description":"Canonical entity UUID.","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Zero-based page index (0..N)","example":0,"in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"description":"The size of the page to be returned","example":25,"in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":25}},{"description":"Research detail type filter.","example":"nameCongruencyScore","in":"query","name":"type","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityResearchDetail"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List research details","tags":["Entity Research"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/research/details/{detailId}":{"get":{"description":"Returns one research detail for an entity.","operationId":"getResearchDetail","parameters":[{"description":"Canonical entity UUID.","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Research detail id.","example":6444,"in":"path","name":"detailId","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResearchDetail"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get research detail","tags":["Entity Research"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/research/snippets":{"get":{"description":"Returns paginated research snippets for one entity. Public reads omit hidden rows and private provenance fields; privileged private reads include hidden rows. Sorting is fixed by the server.","operationId":"listResearchSnippets","parameters":[{"description":"Canonical entity UUID.","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Zero-based page index (0..N)","example":0,"in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"description":"The size of the page to be returned","example":25,"in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":25}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityResearchSnippet"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List research snippets","tags":["Entity Research"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/research/snippets/{snippetId}":{"get":{"description":"Returns one research snippet for an entity. Public reads omit private provenance fields.","operationId":"getResearchSnippet","parameters":[{"description":"Canonical entity UUID.","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Research snippet id.","example":538,"in":"path","name":"snippetId","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResearchSnippet"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get research snippet","tags":["Entity Research"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/similar":{"get":{"description":"Returns similar entities for the UUID at this address, ordered by similarity score. Rows include the entity and similarity provenance. Use relationshipType to filter stored relationships. Custom sorting is unsupported.","operationId":"listSimilarEntitiesByEntityId","parameters":[{"description":"Entity unique identifier (UUID)","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Filter by stored relationship type, one of: acceleratorParticipant, acquirer, affinity, calculated, competingProductService, competitor, customer, fundManagerFirm, parent, productService, serviceProvider, similarCompany, spinOffFrom, successor.","example":"competitor","in":"query","name":"relationshipType","required":false,"schema":{"type":"string"}},{"description":"Optional entity typeRecord filter. Repeat to allow multiple entity types.","example":"Company","in":"query","name":"typeRecord","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Permit monogram fallback","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":10,"minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntitySimilarityResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"clientSecretAuth":[]}],"summary":"List entities similar to one entity by UUID","tags":["Entity Similarity"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/slug":{"get":{"description":"Returns the current slug, canonical path, and public URL. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"getEntitySlug","parameters":[{"description":"Entity UUID","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlugLocation"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get entity slug","tags":["URL Slug Redirects"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/slug/redirects":{"get":{"description":"Lists redirects whose newUrl targets the record's current public URL. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"listEntityRedirects","parameters":[{"description":"Entity UUID","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageUrlSlugRedirect"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List entity slug redirects","tags":["URL Slug Redirects"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/texts":{"get":{"description":"Returns paginated text rows owned by the entity. Inactive or private rows require read auth.","operationId":"listEntityTexts","parameters":[{"description":"Entity UUID owning the text rows","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Include inactive text rows","in":"query","name":"includeInactive","required":false,"schema":{"type":"boolean","default":false}},{"description":"Include private text rows","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean","default":false}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":25,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageEntityText"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List entity text rows","tags":["Texts"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/texts/{textId}":{"get":{"description":"Returns one entity-owned text row by id. Requires read auth.","operationId":"getEntityText","parameters":[{"description":"Entity UUID owning the text row","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Text row id","in":"path","name":"textId","required":true,"schema":{"type":"integer","format":"int64"}},{"description":"Include private text rows","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/EntityText"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get one entity text row","tags":["Texts"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/trending-news":{"get":{"description":"Returns trending news semantically related to an entity.","operationId":"listEntityTrendingNews","parameters":[{"description":"Canonical entity UUID.","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":10,"minimum":1}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageNews"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get trending news for an entity","tags":["Semantic Similarity"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/type-record":{"get":{"description":"Returns the current canonical EntityType for an existing entity.","operationId":"getTypeRecord","parameters":[{"description":"Canonical entity UUID","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityType"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get entity typeRecord","tags":["Entity Maintenance"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/unique-ids":{"get":{"description":"Returns paginated external identifier mappings for one owner. Sort by id, idType, identifier, createdAt, or updatedAt; default is updatedAt descending.","operationId":"listEntityUniqueIds","parameters":[{"description":"Canonical entity UUID.","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":50,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageUniqueId"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List entity identifiers","tags":["Identifiers"],"x-aventure-tool":{"cli":"entities identifiers list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/unique-ids/{uniqueIdId}":{"get":{"description":"Returns one external identifier mapping after verifying it belongs to the path owner.","operationId":"getEntityUniqueId","parameters":[{"description":"Canonical entity UUID.","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Unique-id row id.","example":42,"in":"path","name":"uniqueIdId","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniqueId"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get an entity identifier","tags":["Identifiers"],"x-aventure-tool":{"cli":"entities identifiers get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/urls":{"get":{"description":"Returns paged primary current URL rows owned by an entity. Set includeInactive=true as a signed-in user or with read credentials to include secondary active and inactive/historical rows.","operationId":"listEntityUrls","parameters":[{"description":"Entity UUID owning the URL rows","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Include secondary active and inactive/historical URL rows","in":"query","name":"includeInactive","required":false,"schema":{"type":"boolean","default":false}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":25,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityUrlLink"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List entity URLs","tags":["URL Links"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/urls/all":{"get":{"description":"Returns paged active and inactive URL rows owned by an entity.","operationId":"listAllEntityUrls","parameters":[{"description":"Entity UUID owning the URL rows","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":25,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityUrlLink"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List all entity URLs","tags":["URL Links"],"x-aventure-tool":{"cli":"entities urls all list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/urls/{urlId}":{"get":{"description":"Returns one entity-owned URL row by id. Requires read auth.","operationId":"getEntityUrl","parameters":[{"description":"Entity UUID owning the URL row","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"description":"URL link id","in":"path","name":"urlId","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityUrlLink"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get one entity URL","tags":["URL Links"],"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/valuations":{"get":{"description":"Returns newest-first, per-UTC-month valuation points composed from stated latestValuation research details plus fundraise-round valuations. Only researchDetail points have detailId and can be changed here; fundraiseRound points are read-only here. Custom sort is not supported.","operationId":"getValuationTimeSeries","parameters":[{"description":"Entity unique identifier (UUID).","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"entityId","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":25}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityValuationTimeSeriesPoint"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Entity valuation time series","tags":["Entity Financial Valuation"],"x-aventure-tool":{"cli":"entities valuations list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/media":{"get":{"description":"Returns current managed asset; empty slots 404; inactive media is not listed.","operationId":"getMedia","parameters":[{"description":"Media target type.","example":"ENTITY","in":"query","name":"mediaType","required":true,"schema":{"$ref":"#/components/schemas/MediaObjectType"}},{"description":"Target UUID for entity/person or integer id for news.","in":"query","name":"id","required":false,"schema":{"type":"string","description":"Target UUID for entity/person or integer id for news."}},{"description":"Target slug.","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Entity logo variant.","in":"query","name":"logoType","required":false,"schema":{"$ref":"#/components/schemas/EntityLogoType"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaUpload"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get attached media asset","tags":["Media"],"x-aventure-visibility":{"scope":"public"}}},"/v1/media/identicons/{seed}.svg":{"get":{"description":"Returns cached fallback SVG.","operationId":"getGeneratedMonogram","parameters":[{"description":"Seed used to render the deterministic monogram","in":"path","name":"seed","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"image/svg+xml":{"schema":{"type":"string"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Render a deterministic monogram SVG (v1)","tags":["Media"],"x-aventure-visibility":{"scope":"public"}}},"/v1/media/screenshots":{"get":{"description":"Returns paginated screenshot metadata for the given URL, newest crawl first. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"listByUrl","parameters":[{"description":"Page URL whose crawl screenshots should be listed (encoded query value).","in":"query","name":"url","required":true,"schema":{"type":"string"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":20,"minimum":1}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageMediaScreenshot"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List screenshots for a URL","tags":["Screenshots"],"x-aventure-visibility":{"scope":"public"}}},"/v1/media/screenshots/{screenshotId}":{"get":{"description":"Returns a single screenshot metadata record by its surrogate id. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"getById","parameters":[{"description":"Screenshot surrogate id from the crawl_screenshot table.","in":"path","name":"screenshotId","required":true,"schema":{"type":"integer","format":"int64"},"x-aventure-legacy-name":{"name":"id"}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/MediaScreenshot"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get screenshot by id","tags":["Screenshots"],"x-aventure-visibility":{"scope":"public"}}},"/v1/metrics":{"get":{"description":"Global metrics snapshot. Companies tracked, total funding, trailing 30-day funding, investors, people, countries, cities. Cached for high-traffic homepage reads.","operationId":"getMetrics","responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/SystemGlobalMetrics"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Global metrics snapshot","tags":["Metrics"],"x-aventure-tool":{"auth":"none","cli":"operations metrics get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/news":{"get":{"description":"USE FOR: Browsing news/articles in the canonical news domain with optional filtering. NOT FOR: Pre-create or pre-update identity gates; use /v1/news/duplicate-check.","operationId":"listNews","parameters":[{"description":"Full-text news search term.","in":"query","name":"search","required":false,"schema":{"type":"string","description":"Full-text news search term."}},{"description":"News category slug to include or exclude.","in":"query","name":"category","required":false,"schema":{"type":"string","description":"News category slug to include or exclude."}},{"in":"query","name":"owner.entityId","required":false,"schema":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},{"in":"query","name":"owner.personId","required":false,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Exclude one news article by id.","in":"query","name":"excludeId","required":false,"schema":{"type":"integer","format":"int32","description":"Type-safe identifier for news articles"}},{"description":"Author initial filter.","in":"query","name":"authorInitial","required":false,"schema":{"type":"string","description":"Author initial filter."}},{"description":"Earliest publication date, inclusive.","in":"query","name":"publishedAfter","required":false,"schema":{"type":"string","format":"date","description":"Earliest publication date, inclusive."}},{"description":"Latest publication date, inclusive.","in":"query","name":"publishedBefore","required":false,"schema":{"type":"string","format":"date","description":"Latest publication date, inclusive."}},{"description":"Cursor token returned by the previous thin page.","in":"query","name":"cursor","required":false,"schema":{"type":"string","description":"Cursor token returned by the previous thin page."}},{"deprecated":true,"description":"Deprecated author-initial alias; use authorInitial.","in":"query","name":"letter","required":false,"schema":{"type":"string"}},{"description":"Response mode; use thin for cursor-paginated index reads.","in":"query","name":"mode","required":false,"schema":{"type":"string"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":25,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageNews"}}},"description":"OK","headers":{"X-Next-Cursor":{"description":"Opaque continuation token when cursor traversal has another page.","schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List news articles","tags":["News"],"x-aventure-visibility":{"scope":"public"}},"post":{"description":"List news articles from a JSON filter body; pagination and sort stay in query parameters.","operationId":"listNewsPost","parameters":[{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":25,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Search strategy. News supports \`auto\` and \`keyword\`; other canonical modes are rejected.","in":"query","name":"mode","required":false,"schema":{"$ref":"#/components/schemas/SearchMode"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsFilter"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageNews"}}},"description":"OK","headers":{"X-Next-Cursor":{"description":"Opaque continuation token when cursor traversal has another page.","schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Search news articles with a JSON filter body","tags":["News"],"x-aventure-tool":{"cli":"search news"},"x-aventure-visibility":{"scope":"public"}}},"/v1/news/detail":{"get":{"description":"Returns full news article detail by id, slug, externalId, strict URL, or bounded title candidate signals. Ambiguous candidate signals return 409 ProblemDetail.details.newsCandidate; review those ids, update the matching article, and create only when all candidates are distinct and source evidence supports the target. score/threshold are review ranking, not absence proof. Handles canonical redirects for changed slugs.","operationId":"getNewsDetail","parameters":[{"description":"Exact news article id. Mutually exclusive with slug, externalId, url, and title.","in":"query","name":"id","required":false,"schema":{"type":"integer","format":"int32","description":"Exact news article id. Mutually exclusive with slug, externalId, url, and title."}},{"description":"Exact news article slug (URL-friendly identifier). Mutually exclusive with id, externalId, url, and title.","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"External ID or RSS GUID for ingestion-key lookup. Mutually exclusive with id, slug, url, and title.","in":"query","name":"externalId","required":false,"schema":{"type":"string","description":"External ID or RSS GUID for ingestion-key lookup. Mutually exclusive with id, slug, url, and title."}},{"description":"Original article URL to resolve via strict host+path or domain-only match. Mutually exclusive with id, slug, and externalId. May pair with title and publication to narrow candidate recovery after an exact URL miss. Pair with urlMatchMode to disambiguate.","in":"query","name":"url","required":false,"schema":{"type":"string","description":"Original article URL to resolve via strict host+path or domain-only match. Mutually exclusive with id, slug, and externalId. May pair with title and publication to narrow candidate recovery after an exact URL miss. Pair with urlMatchMode to disambiguate."}},{"description":"Candidate lookup signal: article title. Mutually exclusive with id, slug, and externalId. Combine with publication, urlDomain, or url for bounded candidate search.","in":"query","name":"title","required":false,"schema":{"type":"string","description":"Candidate lookup signal: article title. Mutually exclusive with id, slug, and externalId. Combine with publication, urlDomain, or url for bounded candidate search."}},{"description":"Publication qualifier (e.g., 'TechCrunch', 'Forbes'). Narrows a title candidate search. Not an identifier on its own.","in":"query","name":"publication","required":false,"schema":{"type":"string","description":"Publication qualifier (e.g., 'TechCrunch', 'Forbes'). Narrows a title candidate search. Not an identifier on its own."}},{"description":"Candidate lookup URL domain qualifier (host only, no path). Narrows a title candidate search. Not an identifier on its own.","in":"query","name":"urlDomain","required":false,"schema":{"type":"string","description":"Candidate lookup URL domain qualifier (host only, no path). Narrows a title candidate search. Not an identifier on its own."}},{"description":"URL match mode qualifier: 'hostPath' (strict host + path match, default) or 'domain' (host-only match). Narrows url and urlDomain matching. Not an identifier on its own.","in":"query","name":"urlMatchMode","required":false,"schema":{"type":"string","description":"URL match mode qualifier: 'hostPath' (strict host + path match, default) or 'domain' (host-only match). Narrows url and urlDomain matching. Not an identifier on its own."}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsDetail"}},"text/plain":{"schema":{"type":"string"}}},"description":"News detail as canonical JSON, or the same data rendered as compact text/plain."},"301":{"description":"Redirect to new slug location"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"description":"Ambiguous candidate signals: more than one article still matches the supplied title/URL bundle. ProblemDetail carries details.newsCandidate; review those ids, update the matching article, and create only when all candidates are distinct and source evidence supports the target. score and threshold are review ranking, not absence proof. Resolve directly by id, slug, or externalId."},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get news detail","tags":["News"],"x-aventure-tool":{"cli":"news get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/news/feedback":{"post":{"description":"Records feedback on a news article.","operationId":"submitFeedback","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsFeedback"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsFeedbackAcknowledgement"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]}],"summary":"Submit news feedback","tags":["News"],"x-aventure-visibility":{"scope":"public"}}},"/v1/news/lookup":{"get":{"description":"Resolves news detail by slug, external ID, URL, or bounded title candidate signals. Use the numeric item route for an id; any id query is rejected. Canonical redirects are preserved.","operationId":"lookupNews","parameters":[{"description":"Exact news article slug (URL-friendly identifier). Mutually exclusive with id, externalId, url, and title.","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"External ID or RSS GUID for ingestion-key lookup. Mutually exclusive with id, slug, url, and title.","in":"query","name":"externalId","required":false,"schema":{"type":"string","description":"External ID or RSS GUID for ingestion-key lookup. Mutually exclusive with id, slug, url, and title."}},{"description":"Original article URL to resolve via strict host+path or domain-only match. Mutually exclusive with id, slug, and externalId. May pair with title and publication to narrow candidate recovery after an exact URL miss. Pair with urlMatchMode to disambiguate.","in":"query","name":"url","required":false,"schema":{"type":"string","description":"Original article URL to resolve via strict host+path or domain-only match. Mutually exclusive with id, slug, and externalId. May pair with title and publication to narrow candidate recovery after an exact URL miss. Pair with urlMatchMode to disambiguate."}},{"description":"Candidate lookup signal: article title. Mutually exclusive with id, slug, and externalId. Combine with publication, urlDomain, or url for bounded candidate search.","in":"query","name":"title","required":false,"schema":{"type":"string","description":"Candidate lookup signal: article title. Mutually exclusive with id, slug, and externalId. Combine with publication, urlDomain, or url for bounded candidate search."}},{"description":"Publication qualifier (e.g., 'TechCrunch', 'Forbes'). Narrows a title candidate search. Not an identifier on its own.","in":"query","name":"publication","required":false,"schema":{"type":"string","description":"Publication qualifier (e.g., 'TechCrunch', 'Forbes'). Narrows a title candidate search. Not an identifier on its own."}},{"description":"Candidate lookup URL domain qualifier (host only, no path). Narrows a title candidate search. Not an identifier on its own.","in":"query","name":"urlDomain","required":false,"schema":{"type":"string","description":"Candidate lookup URL domain qualifier (host only, no path). Narrows a title candidate search. Not an identifier on its own."}},{"description":"URL match mode qualifier: 'hostPath' (strict host + path match, default) or 'domain' (host-only match). Narrows url and urlDomain matching. Not an identifier on its own.","in":"query","name":"urlMatchMode","required":false,"schema":{"type":"string","description":"URL match mode qualifier: 'hostPath' (strict host + path match, default) or 'domain' (host-only match). Narrows url and urlDomain matching. Not an identifier on its own."}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsDetail"}},"text/plain":{"schema":{"type":"string"}}},"description":"News detail as canonical JSON or compact text."},"301":{"description":"Redirect to new slug location"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"description":"Ambiguous candidate signals: more than one article still matches the supplied title/URL bundle. ProblemDetail carries details.newsCandidate; review those ids, update the matching article, and create only when all candidates are distinct and source evidence supports the target. score and threshold are review ranking, not absence proof. Resolve directly by id, slug, or externalId."},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Look up one news article","tags":["News"],"x-aventure-tool":{"cli":"news lookup"},"x-aventure-visibility":{"scope":"public"}}},"/v1/news/recent":{"get":{"description":"Returns recent news articles.","operationId":"listRecentNews","parameters":[{"description":"Optional category slug to filter recent news.","in":"query","name":"category","required":false,"schema":{"type":"string"}},{"description":"News id to exclude from results (typically the article currently in view).","in":"query","name":"excludeId","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":12,"minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageNews"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List recent news","tags":["News"],"x-aventure-tool":{"cli":"news recent list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/news/similar":{"get":{"description":"Returns news articles similar to the article specified by exactly one id or slug. When similarity stages return nothing, falls back to recent articles excluding the target. The similarity embedding model is pinned to qwen-4b-fp16; embeddingModel, when provided, must equal qwen-4b-fp16. Source: https://huggingface.co/Qwen/Qwen3-Embedding-4B-GGUF?show_file_info=Qwen3-Embedding-4B-f16.gguf.","operationId":"listSimilarNews","parameters":[{"description":"News article id — exactly one of \`id\` or \`slug\` is required.","in":"query","name":"id","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"News article slug — exactly one of \`id\` or \`slug\` is required.","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Pinned similarity embedding model","example":"qwen-4b-fp16","in":"query","name":"embeddingModel","required":false,"schema":{"type":"string","enum":["qwen-4b-fp16"]}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":4,"minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageNews"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Find similar news","tags":["News"],"x-aventure-tool":{"cli":"news similar list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/news/{newsId}":{"get":{"description":"Returns news detail by exact positive ID. Use lookup for a slug, external ID, URL, or title candidates.","operationId":"getNewsById","parameters":[{"description":"Exact positive news article id.","in":"path","name":"newsId","required":true,"schema":{"type":"integer","format":"int32","description":"Type-safe identifier for news articles"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsDetail"}},"text/plain":{"schema":{"type":"string"}}},"description":"News detail as canonical JSON or compact text."},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get news article by ID","tags":["News","By ID"],"x-aventure-tool":{"cli":"news by-id get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/news/{newsId}/media/thumbnail":{"get":{"description":"Returns the article's attached thumbnail. Empty slots return 404.","operationId":"getNewsMedia","parameters":[{"description":"Exact positive news article id","in":"path","name":"newsId","required":true,"schema":{"type":"integer","format":"int32","description":"Type-safe identifier for news articles"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaUpload"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get news thumbnail","tags":["Media"],"x-aventure-visibility":{"scope":"public"}}},"/v1/news/{newsId}/related-companies":{"get":{"description":"Returns companies semantically related to a news article.","operationId":"relatedCompanies","parameters":[{"description":"News article id whose semantic neighbors should be returned.","in":"path","name":"newsId","required":true,"schema":{"type":"integer","format":"int32"},"x-aventure-legacy-name":{"name":"id"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":10,"minimum":1}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageEntity"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get related companies for a news article","tags":["Semantic Similarity"],"x-aventure-tool":{"cli":"news related-companies get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/news/{newsId}/slug/redirects":{"get":{"description":"Lists redirects whose newUrl targets the record's current public URL. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"listNewsRedirects","parameters":[{"description":"News article id","in":"path","name":"newsId","required":true,"schema":{"type":"integer","format":"int32","description":"Type-safe identifier for news articles"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageUrlSlugRedirect"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List news slug redirects","tags":["URL Slug Redirects"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people":{"get":{"description":"USE FOR: Browsing and filtering person/people/individual records in the people domain. semanticQuery uses the live priority embeddings tier and returns semanticMatch evidence. NOT FOR: Pre-create or pre-update identity gates; use /v1/people/duplicate-check.","operationId":"listPeople","parameters":[{"description":"Person first name.","in":"query","name":"firstName","required":false,"schema":{"type":"string","description":"Person first name."}},{"description":"Person last name.","in":"query","name":"lastName","required":false,"schema":{"type":"string","description":"Person last name."}},{"description":"Person workflow status.","in":"query","name":"status","required":false,"schema":{"type":"string","description":"Person workflow status."}},{"description":"Associated entity names.","in":"query","name":"arrayFilter.entityName","required":false,"schema":{"type":"array","description":"Associated entity names.","items":{"type":"string","description":"Associated entity names."}}},{"description":"Associated entity type scope. Omit or use [] for any associated type.","in":"query","name":"arrayFilter.typeRecord","required":false,"schema":{"type":"array","description":"Associated entity type scope. Omit or use [] for any associated type.","items":{"$ref":"#/components/schemas/EntityType"}}},{"description":"Person titles.","in":"query","name":"arrayFilter.personTitle","required":false,"schema":{"type":"array","description":"Person titles.","items":{"type":"string","description":"Person titles."}}},{"description":"Invested company names.","in":"query","name":"arrayFilter.investedCompany","required":false,"schema":{"type":"array","description":"Invested company names.","items":{"type":"string","description":"Invested company names."}}},{"description":"Fundraise round labels.","in":"query","name":"arrayFilter.round","required":false,"schema":{"type":"array","description":"Fundraise round labels.","items":{"type":"string","description":"Fundraise round labels."}}},{"in":"query","name":"arrayFilter.amountRaisedRange","required":false,"schema":{"type":"array","description":"Selected per-investment amount-raised ranges (inclusive decimal bounds, USD) used to filter people by investment activity. Body syntax is [{\\"min\\":220000,\\"max\\":5000000}] with plain JSON numbers only.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"arrayFilter.amountInvestedRange","required":false,"schema":{"type":"array","description":"Selected investor-level amount-invested ranges (inclusive decimal bounds) used to filter people by attributed investment activity. Body syntax is {\\"arrayFilter\\":{\\"amountInvestedRange\\":[{\\"min\\":220000,\\"max\\":5000000}]}} with plain JSON numbers in each fundraise transaction currency. Do not send currency signs, codes, commas, numeric strings, or abbreviated values.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"arrayFilter.totalInvestmentCount","required":false,"schema":{"type":"array","description":"Selected total-investment-count ranges (inclusive integer bounds) used to filter people by the number of distinct fundraise deals they invested in.","items":{"$ref":"#/components/schemas/IntRange"}}},{"description":"Search keyword or phrase. Single characters valid; stop words rejected.","example":"AI","in":"query","name":"search","required":false,"schema":{"type":"string","description":"Search keyword or phrase. Single characters valid; stop words rejected.","example":"AI"}},{"description":"Semantic person search phrase.","in":"query","name":"semanticQuery","required":false,"schema":{"type":"string","description":"Semantic person search phrase."}},{"description":"First-name initial.","example":"A","in":"query","name":"letter","required":false,"schema":{"type":"string","description":"First-name initial.","example":"A"}},{"description":"Associated entity UUID.","in":"query","name":"entityId","required":false,"schema":{"type":"string","format":"uuid","description":"Associated entity UUID."}},{"description":"Associated entity slug.","in":"query","name":"entitySlug","required":false,"schema":{"type":"string","description":"Associated entity slug."}},{"description":"Associated entity role or title.","in":"query","name":"role","required":false,"schema":{"type":"string","description":"Associated entity role or title."}},{"description":"Filter current associations.","in":"query","name":"isCurrent","required":false,"schema":{"type":"boolean","description":"Filter current associations."}},{"description":"Include URL links on each person","in":"query","name":"includeUrl","required":false,"schema":{"type":"boolean","description":"Include URL links on each person"}},{"description":"Include addresses on each person","in":"query","name":"includeAddress","required":false,"schema":{"type":"boolean","description":"Include addresses on each person"}},{"in":"query","name":"investorActivity.totalInvestmentRange","required":false,"schema":{"type":"array","description":"Distinct fundraise-deal count ranges for an investor, with inclusive integer bounds.","items":{"$ref":"#/components/schemas/IntRange"}}},{"in":"query","name":"investorActivity.totalAmountInvestedUsdRange","required":false,"schema":{"type":"array","description":"Total USD amount-invested ranges with inclusive bounds.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"investorActivity.averageAmountInvestedUsdRange","required":false,"schema":{"type":"array","description":"Average USD amount-invested ranges with inclusive bounds.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"investorActivity.largestAmountInvestedUsdRange","required":false,"schema":{"type":"array","description":"Largest USD amount-invested ranges with inclusive bounds.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"investorActivity.smallestAmountInvestedUsdRange","required":false,"schema":{"type":"array","description":"Smallest USD amount-invested ranges with inclusive bounds.","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"description":"When true, return only the page total in the body and skip the content payload.","in":"query","name":"countOnly","required":false,"schema":{"type":"boolean"}},{"description":"When true, sort people who have a photo before those who do not.","in":"query","name":"hasImageFirst","required":false,"schema":{"type":"boolean"}},{"description":"When false, monogram fallback logos are stripped from the response. Defaults to true.","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Privileged read scope for admin callers. Bypasses the public visibility filter so hidden, unverified, and not-yet-published records are returned instead of being silently dropped. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","example":false,"in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":25,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePerson"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List or search people","tags":["People"],"x-aventure-tool":{"cli":"people list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/batch":{"post":{"description":"List people with Spring pageable request params and a typed PersonFilter body. Use projection=association to include bounded association detail rows while preserving the raw page body and cursor semantics.","operationId":"listPeopleBatch","parameters":[{"description":"Cursor for pagination (format: timestamp::uuid). Omit when search is present; use page pagination for relevance-ranked results.","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Max association values per person","in":"query","name":"maxAssociations","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Prioritize people with images before the default sort","in":"query","name":"hasImageFirst","required":false,"schema":{"type":"boolean"}},{"description":"Permit monogram fallback","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Include private fields. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":25,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Batch projection mode. Omit or use core for Person rows; association returns PersonDetail rows with bounded associations.","in":"query","name":"projection","schema":{"type":"string","enum":["core","association"]}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonFilter"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PagePerson"},{"$ref":"#/components/schemas/PagePersonDetail"}]}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"clientSecretAuth":[]},{"bearerAuth":[]},{"adminApiKeyAuth":[]}],"summary":"Batch person list","tags":["Person Batch"],"x-aventure-tool":{"auth":"read"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/detail":{"get":{"description":"Returns person detail by id, slug, strict URL, or bounded name/domain candidate signals. Default reads hide hidden or off-sitemap people; privileged callers can use includePrivate=true for write readback. Handles canonical redirects. Every non-resolving outcome is documented on this operation's error responses.","operationId":"getPersonDetail","parameters":[{"description":"Group A — exact person UUID. Mutually exclusive with slug, url, and every candidate signal in group C.","in":"query","name":"id","required":false,"schema":{"type":"string","format":"uuid","description":"Group A — exact person UUID. Mutually exclusive with slug, url, and every candidate signal in group C."}},{"description":"Group A — exact person slug (URL-friendly identifier). Mutually exclusive with id, url, and every candidate signal in group C.","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Group A — exact person slug (URL-friendly identifier). Mutually exclusive with id, url, and every candidate signal in group C."}},{"description":"Group B — current person URL to resolve via strict host+path or domain-only match. Mutually exclusive with id and slug; may be combined with group-C candidate signals for URL-first fallback.","in":"query","name":"url","required":false,"schema":{"type":"string","description":"Group B — current person URL to resolve via strict host+path or domain-only match. Mutually exclusive with id and slug; may be combined with group-C candidate signals for URL-first fallback."}},{"description":"Optional URL type qualifier for URL lookup (e.g., 'linkedin', 'twitter'). Narrows Group B (url) and Group C (urlDomain) matching. Not an identifier on its own.","example":"linkedin","in":"query","name":"urlType","required":false,"schema":{"type":"string","description":"Optional URL type qualifier for URL lookup (e.g., 'linkedin', 'twitter'). Narrows Group B (url) and Group C (urlDomain) matching. Not an identifier on its own.","example":"linkedin"}},{"description":"URL match mode qualifier: 'hostPath' (strict host + path match, default) or 'domain' (host-only match). Not an identifier on its own.","in":"query","name":"urlMatchMode","required":false,"schema":{"type":"string","description":"URL match mode qualifier: 'hostPath' (strict host + path match, default) or 'domain' (host-only match). Not an identifier on its own."}},{"description":"Group C — candidate lookup signal: person full name. Combine with other group-C signals (nameAny, location, urlDomain) for bounded candidate search. Mutually exclusive with id and slug; may be combined with url for fallback.","in":"query","name":"nameFull","required":false,"schema":{"type":"string","description":"Group C — candidate lookup signal: person full name. Combine with other group-C signals (nameAny, location, urlDomain) for bounded candidate search. Mutually exclusive with id and slug; may be combined with url for fallback."}},{"description":"Group C — candidate lookup signal: loose name match (any of given/family/full). Combine with other group-C signals for disambiguation. Mutually exclusive with id and slug; may be combined with url for fallback.","in":"query","name":"nameAny","required":false,"schema":{"type":"string","description":"Group C — candidate lookup signal: loose name match (any of given/family/full). Combine with other group-C signals for disambiguation. Mutually exclusive with id and slug; may be combined with url for fallback."}},{"description":"Group C — candidate lookup signal: person location (city, state, country). Combine with other group-C signals for bounded search. Mutually exclusive with id and slug; may be combined with url for fallback.","in":"query","name":"location","required":false,"schema":{"type":"string","description":"Group C — candidate lookup signal: person location (city, state, country). Combine with other group-C signals for bounded search. Mutually exclusive with id and slug; may be combined with url for fallback."}},{"description":"Group C — candidate lookup signal: person URL domain (host only, no path). Combine with other group-C signals for disambiguation. Mutually exclusive with id and slug; may be combined with url for fallback.","in":"query","name":"urlDomain","required":false,"schema":{"type":"string","description":"Group C — candidate lookup signal: person URL domain (host only, no path). Combine with other group-C signals for disambiguation. Mutually exclusive with id and slug; may be combined with url for fallback."}},{"description":"Projection qualifier — include URL link values in response (default: true). Set false to omit urlLink array.","in":"query","name":"includeUrl","required":false,"schema":{"type":"boolean","description":"Projection qualifier — include URL link values in response (default: true). Set false to omit urlLink array."}},{"description":"Projection qualifier — include association values (default: true). Set false to omit association array.","in":"query","name":"includeAssociation","required":false,"schema":{"type":"boolean","description":"Projection qualifier — include association values (default: true). Set false to omit association array."}},{"description":"Projection qualifier — include address values (default: true). Set false to omit address array.","in":"query","name":"includeAddress","required":false,"schema":{"type":"boolean","description":"Projection qualifier — include address values (default: true). Set false to omit address array."}},{"description":"Projection qualifier — max association values to return; bounded internally to the association limit. Default: 40.","in":"query","name":"maxAssociations","required":false,"schema":{"type":"integer","format":"int32","description":"Projection qualifier — max association values to return; bounded internally to the association limit. Default: 40."}},{"description":"Permit generated monogram photo fallback (default: true). Set false to exclude monogram photos in response.","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean","description":"Permit generated monogram photo fallback (default: true). Set false to exclude monogram photos in response."}},{"description":"Privileged admin readback scope. Includes hidden or off-sitemap people and privileged private fields. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean","description":"Privileged admin readback scope. Includes hidden or off-sitemap people and privileged private fields. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public."}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonDetail"}},"text/plain":{"schema":{"type":"string"}}},"description":"Person detail as canonical JSON or the same data rendered as compact text/plain."},"301":{"description":"Canonical person URL redirect"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"description":"No person resolved: exact URL and bounded candidate signals are exhausted, which does not prove the record is absent — search before creating. An existing but filtered row instead reports its reason as the ProblemDetail title: Person Exists but Is Not Public (retry with includePrivate=true)."},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"description":"Ambiguous identity: a strict-URL match or candidate set still at the review threshold resolves to more than one person. ProblemDetail carries details.candidate; review those ids, update the matching candidate, and create only when all candidates are distinct and source evidence supports the target. score and threshold are review ranking, not absence proof. Resolve directly by personId."},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get person detail","tags":["People"],"x-aventure-tool":{"cli":"people get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/detail/batch":{"post":{"description":"Enrich multiple people by id or slug with optional url, association, and address. When page and size are omitted, the full deduplicated batch is returned in request order. Sort is not supported for this fixed-order batch response.","operationId":"getPersonDetailBatch","parameters":[{"description":"Include private fields. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N); omit page and size for the full batch.","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","description":"Zero-based page index (0..N); omit page and size for the full batch."}},{"description":"The size of the page to be returned; omit page and size for the full batch.","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","description":"The size of the page to be returned; omit page and size for the full batch."}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonDetailBatch"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePersonDetail"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Batch person detail enrichment","tags":["Person Batch"],"x-aventure-tool":{"cli":"people batch detail lookup"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/detail/investments":{"get":{"description":"Returns a paginated investment portfolio for a person by id or slug with investorAttribution. amountInvested appears only inside investorAttribution, is a plain decimal number in the fundraise transaction currency, and is not added to amount. Valid sort syntax is sort=amountInvested,desc or --sort amountInvested,desc; do not use investorAttribution.amountInvested, amount_invested, currency signs, currency codes, comma grouping, or abbreviated values.","operationId":"getPersonInvestments","parameters":[{"description":"Person unique identifier (UUID)","example":"01993139-fc26-768a-bdf3-c8396c184be7","in":"query","name":"id","required":false,"schema":{"type":"string","format":"uuid"}},{"description":"Person URL-friendly identifier (slug)","example":"stacey-bishop-san-mateo-ca-usa","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Permit monogram fallback","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":50,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePersonInvestment"}}},"description":"OK"},"301":{"description":"Redirect to new slug location"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get person investments","tags":["Person Investments"],"x-aventure-tool":{"cli":"people investments list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/detail/investor-activity":{"get":{"description":"Gets the investor-perspective activity aggregate (total investments, distinct portfolio companies, current portfolio count, exits, USD-attributed money totals, and top investment stages) for a person investor by id or slug. Use --id or --slug for the individual who supplied the capital — an angel or individual investor, not the company that raised the round.","operationId":"getPersonInvestorActivity","parameters":[{"description":"Person unique identifier (UUID)","example":"01993139-fc26-768a-bdf3-c8396c184be7","in":"query","name":"id","required":false,"schema":{"type":"string","format":"uuid"}},{"description":"Person URL-friendly identifier (slug)","example":"stacey-bishop-san-mateo-ca-usa","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFundraiseInvestorActivity"}}},"description":"OK"},"301":{"description":"Redirect to new slug location"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get person investor activity","tags":["Person Investments"],"x-aventure-tool":{"cli":"people investor-activity get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/detail/news":{"get":{"description":"Returns news articles linked to a person. Uses fixed sort (publishedAt DESC). Sorting is not supported; use page/size params only.","operationId":"listPersonNews","parameters":[{"description":"Owner-scoped resource UUID selector.","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"query","name":"id","required":false,"schema":{"type":"string","format":"uuid"}},{"description":"Owner-scoped resource slug selector.","example":"acme-corp","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Full-text search query","example":"funding","in":"query","name":"search","required":false,"schema":{"type":"string"}},{"description":"Category include/exclude CSV","example":"funding,-ai","in":"query","name":"category","required":false,"schema":{"type":"string"}},{"description":"Opaque URL-safe cursor token from X-Next-Cursor. Reuse the same filters and sort.","example":"2025-01-01T00:00:00Z::123","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":25,"minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageNews"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List news joined to a person","tags":["Person News"],"x-aventure-tool":{"cli":"people news list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/filters":{"get":{"description":"Returns available people filter facets.","operationId":"filters","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterOptionSet"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List person filter options","tags":["Person Metadata"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people/filters/search":{"get":{"description":"Searches available people filter options.","operationId":"filterSearch","parameters":[{"description":"Filter key to search within","in":"query","name":"filterKey","required":true,"schema":{"type":"string"}},{"description":"Search keyword or phrase. Single characters valid; stop words rejected.","example":"AI","in":"query","name":"search","required":true,"schema":{"type":"string"}},{"description":"Page index is fixed to 0 for filter search","example":0,"in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"The size of the page to be returned; filter-search default 20, maximum 100.","example":20,"in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterSearchResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Search people filter options","tags":["Person Metadata"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people/lookup":{"get":{"description":"Resolves person detail by slug, URL or bounded candidate signals with the existing projection and visibility options. Use the UUID item route for an id; any id query is rejected. Canonical redirects are preserved.","operationId":"lookupPerson","parameters":[{"description":"Group A — exact person slug (URL-friendly identifier). Mutually exclusive with id, url, and every candidate signal in group C.","in":"query","name":"slug","required":false,"schema":{"type":"string","description":"Group A — exact person slug (URL-friendly identifier). Mutually exclusive with id, url, and every candidate signal in group C."}},{"description":"Group B — current person URL to resolve via strict host+path or domain-only match. Mutually exclusive with id and slug; may be combined with group-C candidate signals for URL-first fallback.","in":"query","name":"url","required":false,"schema":{"type":"string","description":"Group B — current person URL to resolve via strict host+path or domain-only match. Mutually exclusive with id and slug; may be combined with group-C candidate signals for URL-first fallback."}},{"description":"Optional URL type qualifier for URL lookup (e.g., 'linkedin', 'twitter'). Narrows Group B (url) and Group C (urlDomain) matching. Not an identifier on its own.","example":"linkedin","in":"query","name":"urlType","required":false,"schema":{"type":"string","description":"Optional URL type qualifier for URL lookup (e.g., 'linkedin', 'twitter'). Narrows Group B (url) and Group C (urlDomain) matching. Not an identifier on its own.","example":"linkedin"}},{"description":"URL match mode qualifier: 'hostPath' (strict host + path match, default) or 'domain' (host-only match). Not an identifier on its own.","in":"query","name":"urlMatchMode","required":false,"schema":{"type":"string","description":"URL match mode qualifier: 'hostPath' (strict host + path match, default) or 'domain' (host-only match). Not an identifier on its own."}},{"description":"Group C — candidate lookup signal: person full name. Combine with other group-C signals (nameAny, location, urlDomain) for bounded candidate search. Mutually exclusive with id and slug; may be combined with url for fallback.","in":"query","name":"nameFull","required":false,"schema":{"type":"string","description":"Group C — candidate lookup signal: person full name. Combine with other group-C signals (nameAny, location, urlDomain) for bounded candidate search. Mutually exclusive with id and slug; may be combined with url for fallback."}},{"description":"Group C — candidate lookup signal: loose name match (any of given/family/full). Combine with other group-C signals for disambiguation. Mutually exclusive with id and slug; may be combined with url for fallback.","in":"query","name":"nameAny","required":false,"schema":{"type":"string","description":"Group C — candidate lookup signal: loose name match (any of given/family/full). Combine with other group-C signals for disambiguation. Mutually exclusive with id and slug; may be combined with url for fallback."}},{"description":"Group C — candidate lookup signal: person location (city, state, country). Combine with other group-C signals for bounded search. Mutually exclusive with id and slug; may be combined with url for fallback.","in":"query","name":"location","required":false,"schema":{"type":"string","description":"Group C — candidate lookup signal: person location (city, state, country). Combine with other group-C signals for bounded search. Mutually exclusive with id and slug; may be combined with url for fallback."}},{"description":"Group C — candidate lookup signal: person URL domain (host only, no path). Combine with other group-C signals for disambiguation. Mutually exclusive with id and slug; may be combined with url for fallback.","in":"query","name":"urlDomain","required":false,"schema":{"type":"string","description":"Group C — candidate lookup signal: person URL domain (host only, no path). Combine with other group-C signals for disambiguation. Mutually exclusive with id and slug; may be combined with url for fallback."}},{"description":"Projection qualifier — include URL link values in response (default: true). Set false to omit urlLink array.","in":"query","name":"includeUrl","required":false,"schema":{"type":"boolean","description":"Projection qualifier — include URL link values in response (default: true). Set false to omit urlLink array."}},{"description":"Projection qualifier — include association values (default: true). Set false to omit association array.","in":"query","name":"includeAssociation","required":false,"schema":{"type":"boolean","description":"Projection qualifier — include association values (default: true). Set false to omit association array."}},{"description":"Projection qualifier — include address values (default: true). Set false to omit address array.","in":"query","name":"includeAddress","required":false,"schema":{"type":"boolean","description":"Projection qualifier — include address values (default: true). Set false to omit address array."}},{"description":"Projection qualifier — max association values to return; bounded internally to the association limit. Default: 40.","in":"query","name":"maxAssociations","required":false,"schema":{"type":"integer","format":"int32","description":"Projection qualifier — max association values to return; bounded internally to the association limit. Default: 40."}},{"description":"Permit generated monogram photo fallback (default: true). Set false to exclude monogram photos in response.","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean","description":"Permit generated monogram photo fallback (default: true). Set false to exclude monogram photos in response."}},{"description":"Privileged admin readback scope. Includes hidden or off-sitemap people and privileged private fields. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean","description":"Privileged admin readback scope. Includes hidden or off-sitemap people and privileged private fields. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public."}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonDetail"}},"text/plain":{"schema":{"type":"string"}}},"description":"Person detail as canonical JSON or compact text."},"301":{"description":"Canonical person URL redirect"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"description":"No person resolved: exact URL and bounded candidate signals are exhausted, which does not prove the record is absent — search before creating. An existing but filtered row instead reports its reason as the ProblemDetail title: Person Exists but Is Not Public (retry with includePrivate=true)."},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"description":"Ambiguous identity: a strict-URL match or candidate set still at the review threshold resolves to more than one person. ProblemDetail carries details.candidate; review those ids, update the matching candidate, and create only when all candidates are distinct and source evidence supports the target. score and threshold are review ranking, not absence proof. Resolve directly by personId."},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Look up one person","tags":["People"],"x-aventure-tool":{"cli":"people lookup"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/lookup/batch":{"post":{"description":"Enrich multiple people by id or slug with optional url, association, and address. When page and size are omitted, the full deduplicated batch is returned in request order. Sort is not supported for this fixed-order batch response.","operationId":"lookupPersonBatch","parameters":[{"description":"Include private fields. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N); omit page and size for the full batch.","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","description":"Zero-based page index (0..N); omit page and size for the full batch."}},{"description":"The size of the page to be returned; omit page and size for the full batch.","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","description":"The size of the page to be returned; omit page and size for the full batch."}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonDetailBatch"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePersonDetail"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Batch person lookup","tags":["Person Batch"],"x-aventure-tool":{"auth":"read","cli":"people lookup batch"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/natural-search":{"post":{"description":"Translate a plain-English people search into the canonical PersonFilter contract, execute the existing people list engine, and return both the interpretation and ranked people page. Broad role and profile requests use person semantic search. Explicit filter fields are hard constraints: they override planner values, while the planner fills fields left unset.","operationId":"naturalSearchPeople","parameters":[{"description":"When false, generated monogram pictures are stripped from person rows.","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Privileged admin readback scope. Includes hidden or off-sitemap people. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonNaturalSearch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonNaturalSearchResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Find people with natural language","tags":["People"],"x-aventure-tool":{"cli":"search people"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/search":{"post":{"description":"Returns a paginated people list matching a filter request body. semanticQuery uses the live priority embeddings tier and returns semanticMatch evidence.","operationId":"listPeoplePost","parameters":[{"description":"When true, return only the page total in the body and skip the content payload.","in":"query","name":"countOnly","required":false,"schema":{"type":"boolean"}},{"description":"When true, sort people who have a photo before those who do not.","in":"query","name":"hasImageFirst","required":false,"schema":{"type":"boolean"}},{"description":"When false, monogram fallback logos are stripped from the response. Defaults to true.","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Privileged read scope for admin callers. Bypasses the public visibility filter so hidden, unverified, and not-yet-published records are returned instead of being silently dropped. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","example":false,"in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":25,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonFilter"}}}},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePerson"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List people (POST)","tags":["People"],"x-aventure-tool":{"cli":"people search"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/texts/types":{"get":{"description":"Returns text type values accepted by person text rows.","operationId":"personTextTypes","responses":{"200":{"content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TextTypeOption"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List person text types","tags":["Texts"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people/urls/types":{"get":{"description":"Returns canonical URL types and aliases accepted by person URL rows.","operationId":"personUrlTypes","responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UrlTypeAlias"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List person URL types","tags":["URL Links"],"x-aventure-tool":{"auth":"none"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}":{"get":{"description":"Returns person detail by exact UUID. Use lookup for a slug, URL, or candidate signals.","operationId":"getPersonById","parameters":[{"description":"Exact person UUID.","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Projection qualifier — include URL link values in response (default: true). Set false to omit urlLink array.","in":"query","name":"includeUrl","required":false,"schema":{"type":"boolean","description":"Projection qualifier — include URL link values in response (default: true). Set false to omit urlLink array."}},{"description":"Projection qualifier — include association values (default: true). Set false to omit association array.","in":"query","name":"includeAssociation","required":false,"schema":{"type":"boolean","description":"Projection qualifier — include association values (default: true). Set false to omit association array."}},{"description":"Projection qualifier — include address values (default: true). Set false to omit address array.","in":"query","name":"includeAddress","required":false,"schema":{"type":"boolean","description":"Projection qualifier — include address values (default: true). Set false to omit address array."}},{"description":"Projection qualifier — max association values to return; bounded internally to the association limit. Default: 40.","in":"query","name":"maxAssociations","required":false,"schema":{"type":"integer","format":"int32","description":"Projection qualifier — max association values to return; bounded internally to the association limit. Default: 40."}},{"description":"Permit generated monogram photo fallback (default: true). Set false to exclude monogram photos in response.","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean","description":"Permit generated monogram photo fallback (default: true). Set false to exclude monogram photos in response."}},{"description":"Privileged admin readback scope. Includes hidden or off-sitemap people and privileged private fields. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean","description":"Privileged admin readback scope. Includes hidden or off-sitemap people and privileged private fields. Defaults to private for admin API key or ROLE_ADMIN callers; client-secret/client-read callers stay public."}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonDetail"}},"text/plain":{"schema":{"type":"string"}}},"description":"Person detail as canonical JSON or compact text."},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get person by ID","tags":["People"],"x-aventure-tool":{"cli":"people by-id get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/addresses":{"get":{"description":"Returns physical addresses with all role-period associations for one person.","operationId":"listAddresses","parameters":[{"description":"Canonical person UUID","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Address"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List person addresses","tags":["Person Addresses"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/addresses/{addressJoinId}":{"get":{"description":"Returns the physical address group containing the selected person association.","operationId":"getAddress","parameters":[{"description":"Canonical person UUID","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Integer person-address association id","in":"path","name":"addressJoinId","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Address"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get person address","tags":["Person Addresses"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/blog-posts":{"get":{"description":"Returns active external blog post links stored in research.res_blog_article.","operationId":"listPersonBlogPosts","parameters":[{"description":"Person UUID owning the blog post rows","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Include inactive research blog post rows","in":"query","name":"includeInactive","required":false,"schema":{"type":"boolean","default":false}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":10,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","default":["publishedAt,desc"],"items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageBlogPost"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List person blog posts","tags":["Research Blog Posts"],"x-aventure-tool":{"cli":"people blog-posts list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/blog-posts/{blogPostId}":{"get":{"description":"Returns one person-owned external link by id. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"getPersonBlogPost","parameters":[{"description":"Person UUID owning the blog post row","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Blog post UUID","in":"path","name":"blogPostId","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPost"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get person blog post","tags":["Research Blog Posts"],"x-aventure-tool":{"cli":"people blog-posts get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/content":{"get":{"description":"Returns news articles, blog posts, repositories, websites, and pages related to a person. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"listPersonContent","parameters":[{"description":"Person UUID whose content is listed.","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Topic key or source category.","in":"query","name":"topic","required":false,"schema":{"type":"string","description":"Topic key or source category."}},{"description":"Public content type filter.","in":"query","name":"contentType","required":false,"schema":{"$ref":"#/components/schemas/ContentType"}},{"description":"Owner relation filter.","in":"query","name":"relation","required":false,"schema":{"$ref":"#/components/schemas/ContentRelation"}},{"description":"Best-effort content year filter.","in":"query","name":"year","required":false,"schema":{"type":"integer","format":"int32","description":"Best-effort content year filter."}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Set true for first-page content-existence probes that do not need exact totals or stable ordering.","in":"query","name":"existenceProbe","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageContent"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List person content","tags":["Content"],"x-aventure-tool":{"cli":"people content list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/content/search":{"post":{"description":"Translates plain-English constraints for one person's content index. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"searchPersonContent","parameters":[{"description":"Person UUID whose content is searched.","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaturalSearch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentSearchResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Search person content","tags":["Content"],"x-aventure-tool":{"cli":"people content search"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/entities":{"get":{"description":"Returns entity associations for one person.","operationId":"listPersonEntityAssociations","parameters":[{"description":"Person UUID","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Return count metadata without full content","in":"query","name":"countOnly","required":false,"schema":{"type":"boolean"}},{"description":"Include entity URL records","in":"query","name":"includeUrl","required":false,"schema":{"type":"boolean"}},{"description":"Permit generated monogram logo fallback","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Opaque URL-safe cursor token from X-Next-Cursor","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Include hidden people and entity associations. Defaults false; true requires an admin API key or ROLE_ADMIN.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityPersonAssociation"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List person entity associations","tags":["Entity Person Associations"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/entities/{associationId}":{"get":{"description":"Returns one person-scoped association join row.","operationId":"getPersonEntityAssociation","parameters":[{"description":"Person UUID","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Association id","in":"path","name":"associationId","required":true,"schema":{"type":"integer","format":"int32"}},{"description":"Return count metadata without full content","in":"query","name":"countOnly","required":false,"schema":{"type":"boolean"}},{"description":"Include entity URL records","in":"query","name":"includeUrl","required":false,"schema":{"type":"boolean"}},{"description":"Permit generated monogram logo fallback","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Opaque URL-safe cursor token from X-Next-Cursor","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Include hidden people and entity associations. Defaults false; true requires an admin API key or ROLE_ADMIN.","in":"query","name":"includePrivate","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityPersonAssociation"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get person entity association","tags":["Entity Person Associations"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/graph":{"get":{"description":"Returns the precomputed person-graph document: career context per associated entity (entity facts, recent news, colleagues, similar entities with key people) and co-investors. Lists are capped and pre-ranked; the response is the display order. Hidden people and entities are excluded at materialization. When no document has been materialized yet, returns empty lists with computedAt=null and schedules an asynchronous recompute.","operationId":"getPersonGraph","parameters":[{"description":"Canonical person UUID","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonGraph"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get person graph","tags":["People"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/media/photo":{"get":{"description":"Returns the person's attached photo. Empty slots return 404.","operationId":"getPersonMedia","parameters":[{"description":"Canonical person UUID","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaUpload"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get person photo","tags":["Media"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/repositories":{"get":{"description":"Returns the person's synced GitHub repositories, paged. Default sort is stargazerCount desc, then name.","operationId":"listPersonRepositories","parameters":[{"description":"Person UUID owning the repositories","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":50,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageGithubRepo"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List person repositories","tags":["Repositories"],"x-aventure-tool":{"cli":"people repositories list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/similar":{"get":{"description":"Returns people similar to the person at this address. Rows carry the person shape and per-row similarity provenance; load full detail through the person read endpoint. Results are ordered by similarity score (highest first). This endpoint does not support custom sorting.","operationId":"listSimilarPeople","parameters":[{"description":"Person unique identifier (UUID)","example":"04e2bf9c-a100-72ad-83ff-ba69c647b30b","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid"}},{"description":"Permit monogram fallback","in":"query","name":"permitMonogram","required":false,"schema":{"type":"boolean"}},{"description":"Attribution token identifying the requesting surface; metrics-only","in":"header","name":"X-Request-Origin","required":false,"schema":{"type":"string"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":10,"minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePersonSimilarityResult"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List people similar to one person","tags":["Person Similarity"],"x-aventure-tool":{"cli":"people similar list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/slug/redirects":{"get":{"description":"Lists redirects whose newUrl targets the record's current public URL. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"listPersonRedirects","parameters":[{"description":"Person UUID","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":20,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageUrlSlugRedirect"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List person slug redirects","tags":["URL Slug Redirects"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/texts":{"get":{"description":"Returns paginated text rows owned by the person. Inactive rows require read auth.","operationId":"listPersonTexts","parameters":[{"description":"Person UUID owning the text rows","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Include inactive text rows","in":"query","name":"includeInactive","required":false,"schema":{"type":"boolean","default":false}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":25,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageEntityText"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List person text rows","tags":["Texts"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/texts/{textId}":{"get":{"description":"Returns one person-owned text row by id. Requires read auth.","operationId":"getPersonText","parameters":[{"description":"Person UUID owning the text row","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Text row id","in":"path","name":"textId","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"content":{"*/*":{"schema":{"$ref":"#/components/schemas/EntityText"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get one person text row","tags":["Texts"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/unique-ids":{"get":{"description":"Returns paginated external identifier mappings for one owner. Sort by id, idType, identifier, createdAt, or updatedAt; default is updatedAt descending.","operationId":"listPersonUniqueIds","parameters":[{"description":"Canonical person UUID.","example":"1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":50,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageUniqueId"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List person identifiers","tags":["Identifiers"],"x-aventure-tool":{"cli":"people identifiers list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/unique-ids/{uniqueIdId}":{"get":{"description":"Returns one external identifier mapping after verifying it belongs to the path owner.","operationId":"getPersonUniqueId","parameters":[{"description":"Canonical person UUID.","example":"1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Unique-id row id.","example":42,"in":"path","name":"uniqueIdId","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniqueId"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get a person identifier","tags":["Identifiers"],"x-aventure-tool":{"cli":"people identifiers get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/urls":{"get":{"description":"Returns paged primary current URL rows owned by a person. Set includeInactive=true as a signed-in user or with read credentials to include secondary active and inactive/historical rows.","operationId":"listPersonUrls","parameters":[{"description":"Person UUID owning the URL rows","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Include secondary active and inactive/historical URL rows","in":"query","name":"includeInactive","required":false,"schema":{"type":"boolean","default":false}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":25,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityUrlLink"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List person URLs","tags":["URL Links"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/urls/all":{"get":{"description":"Returns paged active and inactive URL rows owned by a person.","operationId":"listAllPersonUrls","parameters":[{"description":"Person UUID owning the URL rows","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":25,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityUrlLink"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"List all person URLs","tags":["URL Links"],"x-aventure-tool":{"cli":"people urls all list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/urls/{urlId}":{"get":{"description":"Returns one person-owned URL row by id. Requires read auth.","operationId":"getPersonUrl","parameters":[{"description":"Person UUID owning the URL row","in":"path","name":"personId","required":true,"schema":{"type":"string","format":"uuid","description":"Canonical person UUID"}},{"description":"URL link id","in":"path","name":"urlId","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityUrlLink"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get one person URL","tags":["URL Links"],"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{slug}/blog-posts":{"get":{"description":"Returns active external links for a person by slug.","operationId":"listPersonBlogPostsBySlug","parameters":[{"description":"Person URL-friendly identifier","example":"stacey-bishop","in":"path","name":"slug","required":true,"schema":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","default":10,"minimum":1}},{"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","in":"query","name":"sort","required":false,"schema":{"type":"array","default":["publishedAt,desc"],"items":{"type":"string"}}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageBlogPost"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List person blog posts by slug","tags":["Research Blog Posts"],"x-aventure-tool":{"cli":"people by-slug blog-posts list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/provenance/history":{"get":{"description":"Returns paginated field-level provenance rows ordered by effectiveAt DESC. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"getHistory","parameters":[{"description":"Tracked resource. Canonical form is the camelCase wire token (e.g. \`entity\`, \`newsArticle\`); the legacy Postgres table name (\`res_entity\`) is still accepted for backwards compatibility.","example":"entity","in":"query","name":"tableName","required":true,"schema":{"$ref":"#/components/schemas/DatasourceTrackedProvenanceTable"}},{"description":"Record key of the tracked row (text)","in":"query","name":"recordId","required":false,"schema":{"type":"string"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":25,"minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageDatasourceFieldProvenance"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Provenance history for a record","tags":["Data Provenance"],"x-aventure-tool":{"cli":"provenance history list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/provenance/latest":{"get":{"description":"Returns the most recent provenance row for a tracked record. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"getLatestSource","parameters":[{"description":"Tracked resource. Canonical form is the camelCase wire token (e.g. \`entity\`, \`newsArticle\`); the legacy Postgres table name (\`res_entity\`) is still accepted for backwards compatibility.","example":"entity","in":"query","name":"tableName","required":true,"schema":{"$ref":"#/components/schemas/DatasourceTrackedProvenanceTable"}},{"description":"Record key of the tracked row (text)","in":"query","name":"recordId","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasourceSourceMetadata"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Latest data source for a record","tags":["Data Provenance"],"x-aventure-visibility":{"scope":"public"}}},"/v1/provenance/{provenanceId}":{"get":{"description":"Returns one field-level provenance row by its surrogate id, in the same shape the provenance history list returns. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"getProvenance","parameters":[{"description":"Provenance row surrogate id","example":42,"in":"path","name":"provenanceId","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatasourceFieldProvenance"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Get a provenance row","tags":["Data Provenance"],"x-aventure-visibility":{"scope":"public"}}},"/v1/resolve/{token}":{"get":{"description":"Resolve any identifier token to its canonical entity or person. Tries UUID, then the stable public handle, then external registry ids, then the slug (with redirects). Returns 404 when nothing matches and 409 when an external id maps to multiple owners.","operationId":"resolve","parameters":[{"description":"Any identifier: a stable public handle (e.g. eV1StGXR8Z5a), a UUID, an external registry id (ticker, LEI, EIN, ...), or a slug.","example":"eV1StGXR8Z5a","in":"path","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolvedHandle"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"404":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Found"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Resolve any identifier to its owner","tags":["Resolve"],"x-aventure-visibility":{"scope":"public"}}},"/v1/search/all":{"post":{"description":"Runs the canonical entity, person, and news search engines sequentially and returns their typed result pages with per-scope strategy provenance. Supports only auto and keyword modes; unsupported modes are rejected before any scope runs. Page and size apply to every scope; cross-domain sort is not supported.","operationId":"searchAll","parameters":[{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","minimum":1}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaturalSearch"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FederatedSearch"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Search entities, people, and news","tags":["Search"],"x-aventure-tool":{"cli":"search all"},"x-aventure-visibility":{"scope":"public"}}},"/v1/search/link":{"get":{"description":"Fetches the page at the supplied URL, identifies the single company, product, or person the page is primarily about, and returns the federated entity, person, and news results for that name together with the synthesized query itself. A page whose content cannot be read returns 404; a fetch or inference failure returns 503, never an empty result. For direct URL-to-record identity resolution use the entities lookup operation (GET /v1/entities/lookup?url=...) instead.","operationId":"searchLink","parameters":[{"description":"Public article or page URL to search from","example":"https://example.com/article","in":"query","name":"url","required":true,"schema":{"type":"string"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkSearch"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Search from a shared article or page URL","tags":["Search"],"x-aventure-tool":{"cli":"search link get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/search/web":{"post":{"description":"Runs a live web search through SerpAPI, returns a stored result when a fresh version exists, and durably records fresh results in the source-document store. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"searchWeb","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Search"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebSearch"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"409":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Conflict"},"415":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unsupported Media Type"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Search the live web","tags":["Search"],"x-aventure-tool":{"cli":"search web"},"x-aventure-visibility":{"scope":"public"}}},"/v1/sec/company":{"get":{"description":"Resolves a publicly traded US company by ticker (preferred) or company-name query and returns the SEC EDGAR identity facts: legal name, former names, ticker, exchange, SIC industry, state of incorporation, headquarters, and whether it is an operating company. SEC supplies no brand name, website, or summary text — those stay enrichment-owned and are absent here. A 404 means the query matched no SEC registrant (e.g. a private company). Read live and never persisted.","operationId":"previewCompany","parameters":[{"description":"Trading ticker symbol (preferred resolver)","example":"AAPL","in":"query","name":"ticker","required":false,"schema":{"type":"string"}},{"description":"Company name query (used when no ticker is given)","example":"NVIDIA","in":"query","name":"name","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecCompany"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Preview a public company from SEC EDGAR","tags":["SEC"],"x-aventure-tool":{"cli":"sec company get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/sitemap/entities/boundaries":{"get":{"description":"Per-page boundary timestamps for entity sitemap index generation. Front-end sitemap.xml consumer metadata over large URL inventories; not an enrichment read or write surface.","operationId":"entityBoundaries","parameters":[{"description":"Entity type filter (Company, Investment Firm, etc.)","in":"query","name":"typeRecord","required":true,"schema":{"type":"array","items":{"type":"string"}}},{"description":"The size of the page to be returned; only 5000 is supported.","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationSitemapBoundaryDetail"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Entity sitemap boundaries","tags":["Sitemap"],"x-aventure-tool":{"cli":"sitemap entity-boundaries get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/sitemap/entities/letter-counts":{"get":{"description":"Returns available entity initials and counts scoped by typeRecord. Front-end directory-browse projection over the full entity inventory; not an enrichment read or write surface.","operationId":"entityLetterCounts","parameters":[{"description":"Filter by entity type (Company, Investment Firm, etc.)","in":"query","name":"typeRecord","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LetterCounts"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Entity letter counts","tags":["Entity Filters"],"x-aventure-tool":{"cli":"sitemap entity-letter-counts list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/sitemap/entities/routes":{"get":{"description":"Large paginated list serving front-end sitemap.xml generation; not an enrichment read or write surface. Returns thin Entity rows enriched with EntitySitemap gate booleans plus a bounded list of product/service child slugs; one row per company. Eligibility for /analysis, /fundraising, /employees, /news, and /products-services/{slug} is served from a materialized projection refreshed asynchronously after writes, so rows are eventually consistent and can lag a recent relationship or visibility change.","operationId":"getSitemapRoutes","parameters":[{"description":"Entity type whose sitemap rows to list.","in":"query","name":"typeRecord","required":true,"schema":{"$ref":"#/components/schemas/EntityType"}},{"description":"Cursor for pagination (format: timestamp::uuid)","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":5000,"minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntity"}}},"description":"OK","headers":{"X-Next-Cursor":{"description":"Opaque continuation token; reuse the same filters and forward unchanged.","schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Paginated sitemap-routes projection for an entity type","tags":["Entities"],"x-aventure-tool":{"cli":"sitemap entity-routes list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/sitemap/entities/urls":{"get":{"description":"Large paginated list serving front-end sitemap.xml generation; not an enrichment read or write surface. Returns one row per concrete entity URL; the slot path and lastmod come from a materialized projection refreshed asynchronously after writes, so rows are eventually consistent. XML page limits count URLs, not parent entities.","operationId":"getSitemapUrls","parameters":[{"description":"Entity type filters whose sitemap URLs to list. Repeat for multiple types.","in":"query","name":"typeRecord","required":true,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Cursor for pagination (format: timestamp::slotKey)","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":5000,"minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntitySitemapUrl"}}},"description":"OK","headers":{"X-Next-Cursor":{"description":"Opaque continuation token; reuse the same filters and forward unchanged.","schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Paginated sitemap URL slots for entity types","tags":["Entities"],"x-aventure-tool":{"cli":"sitemap entity-urls list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/sitemap/entities/urls/boundaries":{"get":{"description":"Per-page URL-slot boundary timestamps for entity sitemap XML generation. Front-end sitemap.xml consumer metadata over large URL inventories; not an enrichment read or write surface.","operationId":"entityUrlBoundaries","parameters":[{"description":"Entity type filter (Company, Investment Firm, etc.)","in":"query","name":"typeRecord","required":true,"schema":{"type":"array","items":{"type":"string"}}},{"description":"The size of the page to be returned; only 5000 is supported.","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationSitemapBoundaryDetail"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Entity sitemap URL boundaries","tags":["Sitemap"],"x-aventure-tool":{"cli":"sitemap entity-url-boundaries get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/sitemap/index-manifest":{"get":{"description":"O(1) manifest of every dynamic sitemap family with its index path, index path mode, eligible URL count, derived page count, latest timestamp, change frequency, and priority. Front-end sitemap.xml consumer metadata; not an enrichment read or write surface.","operationId":"indexManifest","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SitemapIndexManifest"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Sitemap index manifest","tags":["Sitemap"],"x-aventure-visibility":{"scope":"public"}}},"/v1/sitemap/news/boundaries":{"get":{"description":"Per-page boundary timestamps for news sitemap index generation. Front-end sitemap.xml consumer metadata over large URL inventories; not an enrichment read or write surface.","operationId":"newsBoundaries","parameters":[{"description":"The size of the page to be returned; only 5000 is supported.","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationSitemapBoundaryDetail"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"News sitemap boundaries","tags":["Sitemap"],"x-aventure-tool":{"cli":"sitemap news-boundaries get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/sitemap/news/letter-counts":{"get":{"description":"Returns available news author initials and counts. Front-end directory-browse projection over the full news-author inventory; not an enrichment read or write surface.","operationId":"newsLetterCounts","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LetterCounts"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"News author letter counts","tags":["News"],"x-aventure-tool":{"cli":"sitemap news-letter-counts list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/sitemap/people/boundaries":{"get":{"description":"Per-page boundary timestamps for person sitemap index generation. Front-end sitemap.xml consumer metadata over large URL inventories; not an enrichment read or write surface.","operationId":"personBoundaries","parameters":[{"description":"The size of the page to be returned; only 5000 is supported.","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationSitemapBoundaryDetail"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Person sitemap boundaries","tags":["Sitemap"],"x-aventure-tool":{"cli":"sitemap person-boundaries get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/sitemap/people/letter-counts":{"get":{"description":"Returns available people initials and counts. Front-end directory-browse projection over the full people inventory; not an enrichment read or write surface.","operationId":"letterCounts","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LetterCounts"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"People letter counts","tags":["Person Metadata"],"x-aventure-tool":{"cli":"sitemap person-letter-counts list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/sitemap/url-slots":{"get":{"description":"Returns backend-owned URL slots for people, news, people image, and company image sitemaps. Large paginated list serving front-end sitemap.xml generation; not an enrichment read or write surface.","operationId":"urlSlots","parameters":[{"description":"Sitemap family to list, for example person or personImage.","in":"query","name":"family","required":true,"schema":{"type":"string"}},{"description":"Cursor for pagination (format: timestamp::slotKey)","in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"description":"Zero-based page index (0..N)","in":"query","name":"page","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},{"description":"The size of the page to be returned","in":"query","name":"size","required":false,"schema":{"type":"integer","format":"int32","default":5000,"minimum":1}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageSitemapUrlSlot"}}},"description":"OK","headers":{"X-Next-Cursor":{"description":"Opaque continuation token; reuse the same filters and forward unchanged.","schema":{"type":"string"},"style":"simple"}}},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Paginated sitemap URL slots","tags":["Sitemap"],"x-aventure-visibility":{"scope":"public"}}},"/v1/sitemap/url-slots/boundaries":{"get":{"description":"O(1) page boundaries for canonical 5000-row sitemap URL-slot families. Front-end sitemap.xml consumer metadata; not an enrichment read or write surface.","operationId":"urlSlotBoundaries","parameters":[{"description":"Sitemap family to summarize, for example news or companyImage.","in":"query","name":"family","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocationSitemapBoundaryDetail"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Sitemap URL-slot boundaries","tags":["Sitemap"],"x-aventure-tool":{"cli":"sitemap url-slot-boundaries list"},"x-aventure-visibility":{"scope":"public"}}},"/v1/slug-redirects/lookup":{"get":{"description":"Read-only public-path resolver used before front-end page rendering so changed slug, entity-family, and Business Line parent-family URLs return a permanent HTTP redirect to the current canonical public path, while missing slug URLs return a real 404 before the App Router starts streaming. One profile sub-path segment is preserved across family redirects; the front-end owns the tab inventory. Direct product/service alias paths /companies/products-services/{slug} return 204 for a public Product/Service with a non-hidden eligible provider, with curated alias redirect rows taking precedence; a 404 on a slug-backed path can also mean the record exists but is not yet publicly visible. Bearer access requires ROLE_ADMIN or ROLE_CLIENT.","operationId":"resolvePathRedirect","parameters":[{"description":"Public site path, such as /companies/old-slug","in":"query","name":"path","required":true,"schema":{"type":"string"}}],"responses":{"301":{"description":"Permanent redirect to the canonical public route."},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Resolve slug redirect path","tags":["URL Slug Redirects"],"x-aventure-tool":{"cli":"slug redirects lookup"},"x-aventure-visibility":{"scope":"public"}}},"/v1/status":{"get":{"description":"Returns Better Stack uptime SLA. Public — callable with zero credentials. Local CLI auth provenance is reported by its auth status builtin, which calls this endpoint for uptime and resolves credential sources locally.","operationId":"getStatus","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemStatus"}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"Get system uptime","tags":["System"],"x-aventure-tool":{"auth":"none","cli":"status","cliAlias":"operations status get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/unique-ids/lookup":{"get":{"description":"Resolves an external identifier to its owner(s). idType accepts a canonical token or alias; the value is normalized per type before matching. Returns every owner that carries the identifier (a value can recur across owners, e.g. a reused ticker), each row carrying its entityId or personId.","operationId":"lookupUniqueId","parameters":[{"description":"Identifier type token or alias, for example ein.","example":"ein","in":"query","name":"idType","required":true,"schema":{"type":"string"}},{"description":"Identifier value to resolve.","example":"12-3456789","in":"query","name":"identifier","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UniqueId"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"401":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unauthorized"},"403":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Forbidden"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"security":[{"bearerAuth":[]},{"adminApiKeyAuth":[]},{"clientSecretAuth":[]}],"summary":"Look up an identifier owner","tags":["Identifiers"],"x-aventure-tool":{"cli":"entities identifiers lookup","cliAlias":"people identifiers lookup"},"x-aventure-visibility":{"scope":"public"}}},"/v1/unique-ids/types":{"get":{"description":"Lists the recognized external identifier types (ein, secCik, ticker, lei, duns, isin, cusip, crd, orcid) with each type's label, accepted aliases, owner scope (entity and/or person), and the format pattern a value must match on write.","operationId":"uniqueIdTypes","responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UniqueIdTypeAlias"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List identifier types","tags":["Identifiers"],"x-aventure-tool":{"cli":"entities identifiers types get","cliAlias":"people identifiers types get"},"x-aventure-visibility":{"scope":"public"}}},"/v1/url-types":{"get":{"description":"Returns canonical URL types and aliases accepted by entity and person URL rows.","operationId":"listUrlTypes","responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UrlTypeAlias"}}}},"description":"OK"},"400":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Bad Request"},"406":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Not Acceptable"},"422":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Unprocessable Content"},"429":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Too Many Requests"},"500":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Internal Server Error"},"503":{"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"description":"Service Unavailable"}},"summary":"List URL types","tags":["URL Links"],"x-aventure-tool":{"auth":"none"},"x-aventure-visibility":{"scope":"public"}}}}`),components:JSON.parse('{"schemas":{"ProblemDetail":{"type":"object","description":"RFC 9457 problem response with aVenture extensions.","properties":{"circuitBreaker":{"type":["string","null"]},"code":{"type":["string","null"],"description":"Machine-readable secondary code on ProblemDetail.code. Agents should branch on this value when the HTTP status alone does not identify the recovery path. Code groups include auth/session, rate limiting, job infrastructure, RBAC, external providers, image processing, R2 storage, search, and inference. Many codes indicate infra/admin-only conditions where the correct agent action is to surface the error and stop, not retry.","enum":["not_authorized","rateLimited","origin_detail_capacity","origin_detail_shutdown","suspectedShellStrip","url_surface_misclassification","JOBRUNR_DISABLED","JOBRUNR_STORAGE_UNAVAILABLE","rbac_lookup_unavailable","GEOCODE_PROVIDER_ERROR","sentry_api_error","swagger_headers_unconfigured","frontend_cache_epoch_mode_not_targeted","image_blocklist_match","image_monochrome","image_too_small","image_wrong_aspect","image_monogram","image_unreadable","image_processing_error","image_brand_mismatch","web_crawl_fetch_failed","news_rss_feed_fetch_failed","news_rss_article_fetch_failed","r2_fetch_failed","r2_delete_failed","r2_upload_failed","source_document_body_unavailable","source_document_capture_limit_exceeded","news_similarity_embedding_unavailable","search_provider_not_configured","search_provider_error","sec_edgar_fetch_failed","github_fetch_failed","INFERENCE_PROVIDER_ERROR","INFERENCE_PROVIDER_RESPONSE_EMPTY","INFERENCE_PROVIDER_INVALID_JSON","INFERENCE_PROFILES_MISSING","INFERENCE_PROFILE_API_KEY_MISSING"]},"conflictingRecord":{"oneOf":[{"$ref":"#/components/schemas/CurrentSlugOwner"},{"type":"null"}]},"detail":{"type":"string"},"details":{"description":"Structured conflict details. Create duplicate reviews and deterministic lookup ambiguity return DuplicateCreateReview; the returned candidates are the decision surface for update, create-with-override, or block. score/threshold rank review priority and are not proof that the requested record is absent.","oneOf":[{"$ref":"#/components/schemas/DomainConflictDetails"},{"type":"null"}]},"error":{"type":["object","null"],"additionalProperties":{"type":"string"}},"existingRedirect":{"oneOf":[{"$ref":"#/components/schemas/RedirectSlugPath"},{"type":"null"}]},"feId":{"type":["string","null"]},"field":{"type":["string","null"]},"hammingDistance":{"type":["integer","null"],"format":"int64"},"hint":{"type":["string","null"]},"instance":{"type":"string","format":"uri"},"limit":{"type":["integer","null"],"format":"int64"},"limitType":{"type":["string","null"],"enum":["FORM","GLOBAL","SUBNET","IP","UNKNOWN","RESILIENCE4J","WEB_SEARCH","NATURAL_SEARCH","BILLING_ALLOWANCE","CLERK_PUBLIC_ADMISSION","CLERK_SCRIPT_LOAD","ORIGIN_DETAIL","INFERENCE_PROVIDER"]},"matchedBlocklistKey":{"type":["string","null"]},"mediaType":{"type":["string","null"]},"moderationReason":{"type":["string","null"]},"parseError":{"type":["string","null"]},"path":{"type":["string","null"]},"properties":{"type":"object","additionalProperties":{}},"remaining":{"type":["integer","null"],"format":"int64"},"requiredRole":{"type":["string","null"]},"resetAt":{"type":["string","null"],"format":"date-time"},"resolution":{"oneOf":[{"$ref":"#/components/schemas/ProblemResolution"},{"type":"null"}]},"retryAfterSeconds":{"type":["integer","null"],"format":"int64"},"spanId":{"type":["string","null"]},"status":{"type":"integer","format":"int32"},"suggestion":{"type":["string","null"]},"suggestions":{"type":["object","null"],"additionalProperties":{"type":"string"}},"suspectedFragment":{"type":["string","null"]},"title":{"type":"string"},"traceId":{"type":["string","null"]},"type":{"type":"string","format":"uri","anyOf":[{"format":"uri"},{"$ref":"#/components/schemas/ProblemType"}]},"unknownParameters":{"type":["array","null"],"items":{"type":"string"}},"used":{"type":["integer","null"],"format":"int64"},"validParameters":{"type":["array","null"],"items":{"type":"string"}},"value":{"type":["string","null"]},"windowSeconds":{"type":["integer","null"],"format":"int64"}}},"SystemBuild":{"type":"object","description":"Build metadata exposed by the public info alias","properties":{"build":{"$ref":"#/components/schemas/SystemBuildDetail","description":"Application build metadata"}},"required":["build"]},"LocationSitemapBatch":{"type":"object","description":"Request body for batch sitemap hydration","properties":{"cursor":{"type":["string","null"],"description":"Opaque continuation from companyNextCursor; keeps deep company traversal keyset-based."},"letter":{"type":"string"},"scope":{"type":"string","description":"Accepted location scope tokens for path and batch inputs","enum":["country","COUNTRY","countries","COUNTRIES","state","STATE","states","STATES","city","CITY","cities","CITIES"],"example":"countries"},"slug":{"type":["string","null"]}},"required":["letter","scope"]},"LocationSitemap":{"type":"object","description":"Batch sitemap response with directory, exact letter counts, and optional company URL slots","properties":{"company":{"oneOf":[{"$ref":"#/components/schemas/PageResultSitemapUrlSlot"},{"type":"null"}]},"companyNextCursor":{"type":["string","null"],"description":"Opaque continuation for the next company URL-slot page."},"directory":{"$ref":"#/components/schemas/PageResultLocationDirectoryEntry"},"directoryLetterCount":{"type":"object","additionalProperties":{"type":"integer","format":"int64"}},"location":{"oneOf":[{"$ref":"#/components/schemas/LocationDirectoryEntry"},{"type":"null"}]},"locationLetterCount":{"type":["object","null"],"additionalProperties":{"type":"integer","format":"int64"}},"requestedLetter":{"type":"string"},"resolvedDirectoryLetter":{"type":"string"},"resolvedLocationLetter":{"type":["string","null"]},"scope":{"type":"string"},"slugResolution":{"oneOf":[{"$ref":"#/components/schemas/LocationSlugResolution"},{"type":"null"}]}},"required":["directory","directoryLetterCount","requestedLetter","resolvedDirectoryLetter","scope"]},"PageLocationDirectoryEntry":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/LocationDirectoryEntry"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"PageEntity":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/Entity"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"AgentHelpQuestion":{"type":"object","description":"A natural-language question about how to operate the platform, answered from the operation catalog, agent skills, and completion gates.","properties":{"model":{"type":["string","null"],"description":"Optional chat model that answers the question; null uses the configured default. A CLIENT_SECRET (non-admin) caller may only choose a client-secret-eligible model (owned by app.inference.client-secret-eligible-chat-model); an ineligible model is rejected with 422. Admin keys are unrestricted."},"question":{"type":"string","description":"The question to answer, in natural language.","example":"how do I attach a product URL?","minLength":1},"scope":{"description":"Optional scope restricting which operations the answer may recommend; null means all.","oneOf":[{"$ref":"#/components/schemas/HelpScope"},{"type":"null"}]}},"required":["question"]},"AgentHelp":{"type":"object","description":"Grounded natural-language help answer with citations to specific operations, skills, or completion gates. Unsupported questions abstain (LOW confidence) rather than guess.","properties":{"answer":{"type":"string","description":"Answer drawn only from the cited corpus; abstains when unsupported."},"citation":{"type":"array","description":"Corpus evidence backing the answer; empty when the model abstains.","items":{"$ref":"#/components/schemas/HelpCitation"}},"confidence":{"$ref":"#/components/schemas/Confidence","description":"Confidence the answer is fully supported by the cited corpus. LOW signals an abstention."},"recommendedCommand":{"type":["string","null"],"description":"Canonical CLI/MCP/API command the asker should run, when one is supported by the cited corpus; null when no single command applies or the model abstains."}},"required":["answer","citation","confidence"]},"AgentInstructionManifest":{"type":"object","description":"Latest-pointer manifest at agents/manifest.json; written last by the sync pipeline.","properties":{"agent":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AgentInstructionPointer"},"description":"Sub-agent name to current version pointer"},"prompt":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AgentInstructionPointer"},"description":"Prompt name to current version pointer"},"skill":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AgentInstructionPointer"},"description":"Skill name to current version pointer"}},"required":["agent","prompt","skill"]},"AgentInstructionKind":{"type":"string","description":"Kinds of agent instruction documents stored under the agents/ prefix.","enum":["PROMPT","SKILL","AGENT"]},"AgentInstructionDetail":{"type":"object","description":"A resolved agent instruction document: its identity plus the markdown content.","properties":{"content":{"type":"string","description":"Markdown document content"},"core":{"$ref":"#/components/schemas/AgentInstruction","description":"Addressable identity of the document"}},"required":["content","core"]},"CliAuthorizationMutation":{"type":"object","description":"Creates a short-lived CLI authorization request bound to an ephemeral key","properties":{"clientLabel":{"type":["string","null"],"description":"Label for this CLI installation","example":"William\'s MacBook","maxLength":120,"minLength":1,"pattern":".*\\\\S.*"},"clientPlatform":{"description":"Coarse operating-system family","oneOf":[{"$ref":"#/components/schemas/CliAuthorizationClientPlatform"},{"type":"null"}]},"encryptionAlgorithm":{"description":"Requested hybrid encryption suite","oneOf":[{"$ref":"#/components/schemas/CliAuthorizationEncryptionAlgorithm"},{"type":"null"}]},"encryptionPublicKey":{"type":["string","null"],"description":"Base64-encoded DER SubjectPublicKeyInfo for an ephemeral RSA public key","maxLength":12000,"minLength":344}}},"CliAuthorizationStart":{"type":"object","description":"New CLI authorization handle and one-time poll credential","properties":{"comparisonCode":{"type":"string","description":"Human comparison code shown by both the CLI and browser"},"expiresAt":{"type":"string","format":"date-time","description":"Authorization request expiry timestamp"},"id":{"type":"string","format":"uuid","description":"Public authorization request identifier"},"intervalSeconds":{"type":"integer","format":"int64","description":"Minimum poll interval in seconds","minimum":1},"pollSecret":{"type":"string","description":"One-time high-entropy credential required to poll and acknowledge delivery","readOnly":true},"verificationUrl":{"type":"string","format":"uri","description":"Browser verification URL"}},"required":["comparisonCode","expiresAt","id","intervalSeconds","pollSecret","verificationUrl"]},"CliAuthorization":{"type":"object","description":"Browser-approved CLI authorization metadata. Secret poll and encrypted-delivery material are exposed only by their dedicated one-time response contracts.","properties":{"approvedAt":{"type":["string","null"],"format":"date-time","description":"Time the authenticated user approved this request"},"clientLabel":{"type":"string","description":"User-supplied label for the requesting CLI installation"},"clientPlatform":{"$ref":"#/components/schemas/CliAuthorizationClientPlatform","description":"Coarse client operating-system family"},"comparisonCode":{"type":"string","description":"Human comparison code shown by both the CLI and browser"},"consumedAt":{"type":["string","null"],"format":"date-time","description":"Time the CLI acknowledged durable local storage"},"createdAt":{"type":"string","format":"date-time","description":"Authorization request creation timestamp"},"expiresAt":{"type":"string","format":"date-time","description":"Time after which an unfinished request cannot be approved"},"id":{"type":"string","format":"uuid","description":"Public authorization request identifier"},"intervalSeconds":{"type":"integer","format":"int64","description":"Minimum server-directed poll interval in seconds","minimum":1},"keyReadyAt":{"type":["string","null"],"format":"date-time","description":"Time encrypted key delivery became available"},"status":{"$ref":"#/components/schemas/CliAuthorizationStatus","description":"Current broker lifecycle state"},"terminalAt":{"type":["string","null"],"format":"date-time","description":"Time this request entered its terminal state"},"terminalReason":{"description":"Non-secret terminal-state explanation","oneOf":[{"$ref":"#/components/schemas/CliAuthorizationTerminalReason"},{"type":"null"}]},"updatedAt":{"type":"string","format":"date-time","description":"Most recent lifecycle update timestamp"}},"required":["clientLabel","clientPlatform","comparisonCode","createdAt","expiresAt","id","intervalSeconds","status","updatedAt"]},"CliAuthorizationPoll":{"type":"object","description":"Current broker state and encrypted delivery when the key is ready","properties":{"delivery":{"description":"Encrypted one-time delivery, present only for KEY_READY","oneOf":[{"$ref":"#/components/schemas/CliAuthorizationDelivery"},{"type":"null"}]},"expiresAt":{"type":"string","format":"date-time","description":"Authorization request expiry timestamp"},"status":{"$ref":"#/components/schemas/CliAuthorizationStatus","description":"Current broker lifecycle state"},"terminalReason":{"description":"Non-secret terminal-state explanation","oneOf":[{"$ref":"#/components/schemas/CliAuthorizationTerminalReason"},{"type":"null"}]}},"required":["expiresAt","status"]},"AuthPermissionGrant":{"type":"object","description":"Auth permission grant","properties":{"permission":{"type":"array","items":{"type":"string"},"uniqueItems":true},"role":{"type":"array","items":{"type":"string"},"uniqueItems":true}},"required":["permission","role"]},"AuthOperationFilter":{"type":"object","description":"Bounded generated API operations to authorize for the current session.","properties":{"operation":{"type":"array","description":"Generated API operation candidates to authorize.","items":{"$ref":"#/components/schemas/AuthOperation"},"maxItems":1000,"minItems":0}},"required":["operation"]},"AuthOperationAuthorization":{"type":"object","description":"Current permission grant, access class, and supplied API operations admitted by the live request authorization policy.","properties":{"operation":{"type":"array","description":"Supplied operations admitted by the current session.","items":{"$ref":"#/components/schemas/AuthOperation"}},"operationAccess":{"$ref":"#/components/schemas/AuthOperationAccess","description":"Highest access class represented by the current session."},"permissionGrant":{"$ref":"#/components/schemas/AuthPermissionGrant","description":"Existing role and permission grant for the current session."}},"required":["operation","operationAccess","permissionGrant"]},"PersonalApiKey":{"type":"object","description":"Personal API-key metadata sourced from Clerk; never contains the key secret","properties":{"createdAt":{"type":"string","format":"date-time","description":"Provider creation timestamp"},"description":{"type":["string","null"],"description":"Optional user-visible key description"},"expiresAt":{"type":["string","null"],"format":"date-time","description":"Provider expiry timestamp"},"id":{"type":"string","description":"Clerk API-key identifier","pattern":"^ak_[0-9A-Fa-f]{32}$"},"lastUsedAt":{"type":["string","null"],"format":"date-time","description":"Most recent provider-recorded use timestamp"},"name":{"type":"string","description":"User-visible key name"},"revocationReason":{"type":["string","null"],"description":"Provider revocation explanation"},"scopes":{"type":"array","description":"Clerk scopes assigned to this key","items":{"type":"string"}},"status":{"type":"string","description":"Provider-derived current lifecycle state","enum":["ACTIVE","REVOKED","EXPIRED"]},"subject":{"type":"string","description":"Owning Clerk user subject"},"updatedAt":{"type":"string","format":"date-time","description":"Provider metadata update timestamp"}},"required":["createdAt","id","name","scopes","status","subject","updatedAt"]},"AuthProviderCatalog":{"type":"object","properties":{"clerkPublishableKey":{"type":["string","null"],"description":"Clerk publishable key for browser sign-in; absent when the environment has no Clerk instance","example":"pk_test_cmVmaW5lZC13aWxkY2F0LTMuY2xlcmsuYWNjb3VudHMuZGV2JA"},"oauthClient":{"description":"OAuth PKCE client configuration for the CLI; absent until its client configuration is complete","oneOf":[{"$ref":"#/components/schemas/AuthClient"},{"type":"null"}]}}},"PageClassification":{"type":"object","properties":{"content":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/EntityTag"},{"$ref":"#/components/schemas/StandardizedClassification"}]}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"ClassificationCatalog":{"type":"object","description":"Full active entity classification taxonomy in one payload. Dormant registry tags are omitted from the catalog and surface through write-time 409 recovery instead.","properties":{"bucket":{"type":"array","items":{"$ref":"#/components/schemas/ClassificationCatalogBucket"}},"category":{"type":"array","items":{"$ref":"#/components/schemas/ClassificationCatalogCategory"}},"generatedAt":{"type":"string","format":"date-time"},"totalBucket":{"type":"integer","format":"int32"},"totalCategory":{"type":"integer","format":"int32"},"totalStandardizedClassification":{"type":"integer","format":"int32"},"totalTag":{"type":"integer","format":"int32"}},"required":["bucket","category","generatedAt","totalBucket","totalCategory","totalStandardizedClassification","totalTag"]},"PageEntityTag":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityTag"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"ContentType":{"type":"string","description":"Public source family for canonical content cards.","enum":["newsArticle","blogPost","externalSocialPost","repositoryOwner","repository","webSite","webPage","researchPaper"]},"ContentRelation":{"type":"string","description":"How a content card relates to an entity or person owner.","enum":["by","about"]},"PageContent":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/Content"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"NaturalSearch":{"type":"object","description":"Plain-English search request. The server plans the query into the target domain filter plus sort, then runs that domain\'s canonical list engine.","properties":{"mode":{"$ref":"#/components/schemas/SearchMode","default":"auto","description":"Search strategy to run. Accepted values narrow per surface: entity and person natural-search take every value (`exact` is entity-only); news and federated search accept only `auto` and `keyword`; content search accepts only `auto`. Defaults to `auto`, which keeps the server-chosen pipeline; any other value forces exactly that strategy."},"model":{"type":["string","null"],"description":"Optional chat model for planning; null uses the configured natural-search default. CLIENT_SECRET callers may only choose client-secret-eligible models; admin keys are unrestricted."},"query":{"type":"string","description":"Plain-English search request.","example":"Companies founded in the last year that raised venture capital","minLength":1}},"required":["query"]},"ContentSearchResult":{"type":"object","description":"Natural-language content search result: planner interpretation plus page.","properties":{"interpretation":{"$ref":"#/components/schemas/ContentSearchInterpretation","description":"Structured interpretation used to run the content query."},"result":{"$ref":"#/components/schemas/PageResultContent","description":"Content page."}},"required":["interpretation","result"]},"EntityType":{"type":"string","description":"Canonical entity classification for the organization, product, and service records stored in the entity domain.","enum":["Company","Investment Firm","Fund","Nonprofit","Government","Organization","Business Line","Product","Service"]},"IntRange":{"type":"object","description":"Integer range for count-based filter criteria","properties":{"max":{"type":["integer","null"],"format":"int32","description":"Inclusive maximum integer."},"min":{"type":["integer","null"],"format":"int32","description":"Inclusive minimum integer."}}},"EntityListQualityGate":{"type":"string","description":"Named quality gates for entity list endpoints.","enum":["NONE","COMPANY_LISTING_READY"]},"EntityUrlType":{"type":"string","description":"Canonical URL platform type such as website, linkedin, twitter, or github. Lifecycle facts belong on link flags such as isCurrent and isPrimary.","enum":["website","linkedin","twitter","github","facebook","instagram","tiktok","youtube","subreddit","forum","documentation","support","statuspage","changelog","roadmap","discord","crunchbase","wellfound","angellist","glassdoor","theorg","ycombinator","wikipedia","pitchbook","morningstar","bloomberg","nyse","nasdaq","g2","producthunt","trustpilot","alternativeto","gartnerpeerinsights","getapp","sourceforge","appstore","googleplay","capterra","trustradius","hubspotmarketplace","slackappdirectory","awsmarketplace","salesforceappexchange","chromewebstore","vscodemarketplace","npm","pypi","maven","dockerhub","homebrew","crates","huggingface"]},"UrlMatchMode":{"type":"string","description":"URL matching mode for URL-backed filters and duplicate checks.","enum":["hostPath","domain"]},"DecimalRange":{"type":"object","description":"Decimal range for monetary and numeric filter criteria","properties":{"max":{"type":["number","null"],"description":"Inclusive maximum decimal number, such as 220000 or 123456.78."},"min":{"type":["number","null"],"description":"Inclusive minimum decimal number, such as 220000 or 123456.78."}}},"PageEntityList":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityList"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntityFilter":{"type":"object","additionalProperties":false,"description":"Entity list and search filters. GET flattens these fields as query parameters; POST accepts the same shape as JSON.","properties":{"acceleratorBrand":{"type":"array","description":"Accelerator brand or operator name.","items":{"type":"string"}},"acceleratorCohort":{"type":"array","description":"Accelerator batch or cohort label.","items":{"type":"string"}},"acceleratorName":{"type":"array","description":"Specific accelerator program name.","items":{"type":"string"}},"acceleratorStatus":{"type":"array","description":"Accelerator participation status.","items":{"type":"string"}},"affinity":{"type":"array","description":"Affinity provider organization names accepted by the companies list filter. Affinity rows are member -> provider; use provider names here, not member names.","items":{"type":"string"}},"employeeCountRange":{"type":"array","description":"Inclusive reported employee-count ranges, in employees.","items":{"$ref":"#/components/schemas/IntRange"}},"entityId":{"type":"array","description":"Restrict results to specific entity IDs.","items":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},"entityName":{"type":"array","description":"Exact normalized match against entity brand or legal names.","items":{"type":"string"}},"featured":{"type":["boolean","null"],"description":"Filter by featured status."},"fundraiseActivity":{"$ref":"#/components/schemas/EntityFundraiseFilterCriteria","description":"Fundraise activity"},"hasFundraising":{"type":["boolean","null"],"description":"Filter to entities with fundraise activity."},"headquartersCity":{"type":"array","description":"Headquarters city values.","items":{"type":"string"}},"headquartersCountry":{"type":"array","description":"Headquarters country values.","items":{"type":"string"}},"headquartersState":{"type":"array","description":"Headquarters state or region values.","items":{"type":"string"}},"industry":{"type":"array","description":"Industry classification values.","items":{"type":"string"}},"letter":{"type":["string","null"],"description":"First letter of the display name."},"location":{"type":"array","description":"Geographic classification values.","items":{"type":"string"}},"logoOption":{"$ref":"#/components/schemas/EntityFilterLogoOption","description":"Logo sort priority."},"mainProduct":{"type":"array","description":"Main product classification values.","items":{"type":"string"}},"operatingStatus":{"type":"array","description":"Operating status values.","items":{"type":"string"}},"portfolioHeadquartersCity":{"type":"array","description":"Portfolio-company headquarters city values.","items":{"type":"string"}},"portfolioHeadquartersCountry":{"type":"array","description":"Portfolio-company headquarters country values.","items":{"type":"string"}},"portfolioHeadquartersState":{"type":"array","description":"Portfolio-company headquarters state or region values.","items":{"type":"string"}},"qualityGate":{"$ref":"#/components/schemas/EntityListQualityGate","description":"Named server-owned list quality gate."},"slug":{"type":"array","description":"Restrict results to entity slugs.","items":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},"stage":{"type":"array","description":"Investment stage classification values.","items":{"type":"string"}},"suppressNonOperating":{"type":["boolean","null"],"description":"Suppress entities with terminal operating status."},"suppressZeroTotalRaised":{"type":["boolean","null"],"description":"Suppress entities whose total raised is zero."},"tag":{"type":"array","description":"General classification tag values.","items":{"type":"string"}},"textSearch":{"type":["string","null"],"description":"Non-blank keyword/full-text search term. Use natural-search for plain-English or multi-constraint company requests."},"typeCustomer":{"type":"array","description":"Customer-type classification values.","items":{"type":"string"}},"typeModel":{"type":"array","description":"Business-model classification values.","items":{"type":"string"}},"typeOwnership":{"type":"array","description":"Ownership-model classification values.","items":{"type":"string"}},"typeRecord":{"type":"array","description":"Entity type filter. Organization expands to Company, Investment Firm, Nonprofit, and Government; omit to include every entity type.","items":{"$ref":"#/components/schemas/EntityType"}},"typeRevenue":{"type":"array","description":"Revenue-model classification values.","items":{"type":"string"}},"typeTechnologyUsed":{"type":"array","description":"Technology-used classification values.","items":{"type":"string"}},"url":{"type":["string","null"],"description":"Current URL to match by normalized host and path."},"urlDomain":{"type":["string","null"],"description":"Current root domain to match when urlMatchMode=domain.","example":"example.com"},"urlMatchMode":{"$ref":"#/components/schemas/UrlMatchMode","description":"URL matching mode: hostPath uses host and path; domain uses the root domain.","example":"domain"},"urlType":{"description":"Restrict URL matching to one URL type.","example":"website","oneOf":[{"$ref":"#/components/schemas/EntityUrlType"},{"type":"null"}]},"yearFoundedRange":{"type":"array","description":"Inclusive founding-year ranges, in calendar years.","items":{"$ref":"#/components/schemas/IntRange"}}}},"PageEntityDetail":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityDetail"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntityTypeCount":{"type":"object","description":"Visible entity count for one EntityType.","properties":{"totalCount":{"type":"integer","format":"int64","description":"Total visible entities of this type","minimum":0},"typeRecord":{"$ref":"#/components/schemas/EntityType","description":"Entity type classification"}},"required":["totalCount","typeRecord"]},"EntityDetail":{"type":"object","description":"\\n Full entity detail response: core entity, enrichment, governed research,\\n relationships, external identifiers, fundraising, news, people, and sitemap eligibility.\\n Core identity and naming fields live under core.\\n ","properties":{"core":{"$ref":"#/components/schemas/Entity","description":"Core entity identity, naming, status, image, and source metadata."},"enrichment":{"$ref":"#/components/schemas/EntityEnrichment","description":"Entity enrichment: addresses, classification, funding summary, text, and URL links."},"fundraiseRound":{"type":"array","description":"Fundraise rounds associated with this entity.","items":{"$ref":"#/components/schemas/EntityFundraiseTransaction"}},"newsArticle":{"type":"array","description":"News articles associated with this entity.","items":{"$ref":"#/components/schemas/News"}},"person":{"type":"array","description":"People associated with this entity.","items":{"$ref":"#/components/schemas/PersonDetail"}},"publicUrl":{"type":["string","null"],"description":"Absolute canonical public URL when this detail has a renderable public route."},"relationship":{"type":"array","description":"Entity relationships.","items":{"$ref":"#/components/schemas/EntityRelationship"}},"research":{"$ref":"#/components/schemas/EntityResearch","description":"Combined research disclosure: governed detail rows, snippets, and accelerator participation."},"sitemap":{"$ref":"#/components/schemas/EntitySitemap","description":"Sub-route eligibility computed once at the persistence boundary."},"uniqueId":{"type":"array","description":"External registry identifiers associated with this entity.","items":{"$ref":"#/components/schemas/UniqueId"}}},"required":["core","enrichment","fundraiseRound","newsArticle","person","relationship","research","sitemap","uniqueId"]},"EntityDetailBatch":{"type":"object","additionalProperties":false,"description":"Batch request for entity detail retrieval by id, slug, or current joined URL","properties":{"entityId":{"type":"array","description":"Entity UUID values","items":{"type":"string","format":"uuid"}},"permitMonogram":{"type":["boolean","null"],"default":true,"description":"Permit monogram fallbacks"},"slug":{"type":"array","description":"Entity slug values","items":{"type":"string"}},"url":{"type":"array","description":"Current joined entity URL values","items":{"type":"string"}}}},"PageEntityFundraiseInvestorJoin":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityFundraiseInvestorJoin"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntityFundraiseInvestorJoin":{"type":"object","description":"Canonical fundraise investor join row for API serialization","properties":{"amountInvested":{"type":["number","null"],"description":"Investor-level attributed amount invested in the fundraise transaction currency. Serialized as a plain JSON number such as 220000 or 123456.78; no currency sign, currency code, comma grouping, or abbreviated amount text is valid."},"createdAt":{"type":"string","format":"date-time","description":"Created timestamp"},"financialInstrumentType":{"description":"Financial instrument/vehicle for this investor\'s participation in the round (e.g. SAFE, Preferred Stock, Convertible Note). Distinct from the round-level financialInstrumentType: a single round can record different vehicles per investor join — e.g. an accelerator batch holding a capped SAFE and an uncapped-MFN SAFE as two joins.","oneOf":[{"$ref":"#/components/schemas/FundraiseFinancialInstrumentType"},{"type":"null"}]},"id":{"type":"string","format":"uuid","description":"Fundraise investor join identifier"},"investor":{"$ref":"#/components/schemas/EntityPersonOwner","description":"Investor identity, nested: investor.entityId for a firm/fund investor or investor.personId for an angel — exactly one is set. Read responses carry ids only, never flat investor* fields or names; resolve display names with GET /v1/entities/detail or GET /v1/people/detail."},"leadInvestor":{"type":"boolean","description":"Whether this investor is the lead investor for the round — the lead/anchor investor that set the round terms or made the primary commitment."},"transactionId":{"type":"string","format":"uuid","description":"Fundraise transaction identifier"},"updatedAt":{"type":"string","format":"date-time","description":"Updated timestamp"}},"required":["createdAt","id","investor","leadInvestor","transactionId","updatedAt"]},"PageNews":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/News"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntityResolution":{"type":"object","description":"Resolution of one queried identifier (id, slug, or current joined URL) to its current entity. Echoes the raw input; matched rows carry the full detail, ambiguous rows carry the conflicting candidate ids, missing rows carry neither.","properties":{"candidateEntityId":{"type":"array","description":"Entity ids that all currently own the queried URL when status is AMBIGUOUS; empty otherwise. Re-query a single id to disambiguate.","items":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},"detail":{"description":"Full entity detail when status is MATCHED; absent otherwise.","oneOf":[{"$ref":"#/components/schemas/EntityDetail"},{"type":"null"}]},"input":{"type":"string","description":"Raw identifier exactly as queried (UUID string, slug, or URL)."},"inputType":{"type":"string","description":"Which identifier kind this row was queried by.","enum":["ID","SLUG","URL"]},"status":{"type":"string","description":"Resolution outcome for this input.","enum":["MATCHED","AMBIGUOUS","MISSING"]}},"required":["candidateEntityId","input","inputType","status"]},"PageEntitySimilarityResult":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntitySimilarityResult"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntityTypeGroup":{"type":"string","description":"Canonical entity type groups for boundary-level scope selection.","enum":["Organization","Investor"]},"EntityFilterOptionSet":{"type":"object","description":"Available filter options for list endpoints","properties":{"arrayFilterEntry":{"type":"array","description":"Array filter entries","items":{"$ref":"#/components/schemas/EntityFilterEntry"}},"filtersMeta":{"description":"Metadata for the generated filter option set","oneOf":[{"$ref":"#/components/schemas/EntityFilterOptionSetMeta"},{"type":"null"}]},"rangeFilterEntry":{"type":"array","description":"Range filter entries","items":{"$ref":"#/components/schemas/EntityFilterEntry"}}},"required":["arrayFilterEntry","rangeFilterEntry"]},"EntityFilterCountResult":{"type":"object","properties":{"count":{"type":"array","items":{"$ref":"#/components/schemas/EntityTagCount"}},"meta":{"$ref":"#/components/schemas/EntityFilterCountMeta"}},"required":["count","meta"]},"EntityFilterCount":{"type":"object","description":"Entity filter tag count criteria","properties":{"minCount":{"type":["integer","null"],"format":"int32","description":"Minimum count threshold","example":1,"minimum":0},"name":{"type":"array","description":"Tag name values to filter counts","example":["AI","FinTech"],"items":{"type":"string"},"maxItems":100,"minItems":0},"size":{"type":["integer","null"],"format":"int32","description":"Maximum number of results","example":35,"maximum":200,"minimum":1},"typeRecord":{"type":["string","null"],"description":"Entity type (Company, Investment Firm, etc.)","example":"Company"}},"required":["name"]},"EntityFilterRefinedFilters":{"type":"object","description":"Refined filters","properties":{"filter":{"type":"array","description":"Canonical filter entries for the active entity scope.","items":{"$ref":"#/components/schemas/EntityFilterEntry"}},"meta":{"$ref":"#/components/schemas/RefinementMeta","description":"Pagination and degradation state for this refinement."}},"required":["filter","meta"]},"EntityFilterSearchResult":{"type":"object","description":"Typeahead search result pairing a filter key with matching option values","properties":{"filterKey":{"type":"string","description":"Canonical filter key searched"},"result":{"type":"array","description":"Matching option values","items":{"type":"string"}}},"required":["filterKey","result"]},"EntityFilterSearch":{"type":"object","additionalProperties":false,"description":"Record representing a filter search request","properties":{"filterKey":{"type":"string","description":"Filter key","minLength":1},"limit":{"type":"integer","format":"int32","description":"Maximum number of search results"},"query":{"type":"string","description":"Query","minLength":1},"scopeFilter":{"$ref":"#/components/schemas/EntityFilter","description":"Entity filter scope applied to the option search"}},"required":["filterKey","limit","query","scopeFilter"]},"EntityNaturalSearch":{"type":"object","description":"Plain-English entity search plus explicit hard constraints. The planner may fill only filter fields the caller leaves unset.","properties":{"filter":{"$ref":"#/components/schemas/EntityFilter","description":"Explicit entity constraints. Caller-supplied fields override planner values; the planner fills only fields left at their canonical defaults."},"search":{"$ref":"#/components/schemas/NaturalSearch","description":"Canonical plain-English search request and strategy."}},"required":["search"]},"NaturalSearchResult":{"type":"object","description":"Natural-language entity search result: planner interpretation plus the canonical entity list page produced by EntityListService.","properties":{"interpretation":{"$ref":"#/components/schemas/SearchInterpretation","description":"Structured interpretation used to run the entity list query."},"result":{"$ref":"#/components/schemas/PageResultEntityList","description":"Entity list page returned by the canonical entity list engine."}},"required":["interpretation","result"]},"EntityRelationshipTypeOption":{"type":"object","description":"Published relationship catalog row. Directional values use sourceRole and targetRole to name sourceEntityId and targetEntityId.","properties":{"acquisitionManaged":{"type":"boolean","description":"Whether this type must be written through acquisition endpoints."},"alias":{"type":"array","description":"Accepted aliases that normalize to canonical.","items":{"type":"string"}},"canonical":{"type":"string","description":"Canonical relationship type token used in reads and writes."},"description":{"type":"string","description":"Human-readable catalog meaning and placement guidance."},"direction":{"$ref":"#/components/schemas/RelationshipDirection","description":"How to interpret sourceEntityId and targetEntityId. DIRECTIONAL means sourceRole and targetRole are authoritative."},"exclusiveRelationshipType":{"type":"array","description":"Relationship types that cannot coexist for one unordered pair.","items":{"type":"string"}},"joinable":{"type":"boolean","description":"Whether generic relationship join/write endpoints accept this type."},"pairRule":{"type":"string","description":"Entity type pairing rule enforced before persistence."},"readOnly":{"type":"boolean","description":"Whether this type is emitted by reads only and rejected on writes."},"sourceRole":{"type":["string","null"],"description":"Role of sourceEntityId for directional/type-oriented rows. For affinity this is member."},"targetRole":{"type":["string","null"],"description":"Role of targetEntityId for directional/type-oriented rows. For affinity this is provider."}},"required":["acquisitionManaged","alias","canonical","description","direction","exclusiveRelationshipType","joinable","pairRule","readOnly"]},"EntityRelationship":{"type":"object","description":"Domain record for entity relationships - oriented from the requested entity to the joined entity","properties":{"asOf":{"type":["string","null"],"format":"date","description":"Effective date for this relationship when known"},"comparisonSignals":{"description":"Competitive comparison signals for the joined entity when it is a product/service provider — sells-to, pricing model, ownership, funding, and website. Null for every other joined entity. Lets comparison surfaces render provider columns without a second per-provider fetch.","oneOf":[{"$ref":"#/components/schemas/EntityComparisonSignals"},{"type":"null"}]},"createdAt":{"type":["string","null"],"format":"date-time"},"detail":{"type":["string","null"],"description":"Relationship-specific detail. acceleratorParticipant rows use `batch=<label>`, or `program=<name>; batch=<label>` only for a distinct sub-program. program= never repeats the accelerator name or the batch, and batch= never contains the accelerator name — the row already points to the accelerator entity."},"entity":{"$ref":"#/components/schemas/Entity","description":"Joined entity on the other side of this relationship — read-only display projection. Writes identify both sides only via the flat sourceEntityId and targetEntityId UUIDs, never a nested entity object."},"id":{"type":["integer","null"],"format":"int32","description":"Integer entity_relationship.id row id, not an entity UUID"},"isCurrent":{"type":["boolean","null"],"description":"Current-state curation flag for this relationship row. Default relationship reads return only rows where isCurrent=true and isPrimary=true."},"isPrimary":{"type":["boolean","null"],"description":"Primary/renderable curation flag for this relationship row. isCurrent=false or isPrimary=false hides the row from default relationship reads."},"relationship":{"type":"array","description":"Nested relationships for the joined entity","items":{"$ref":"#/components/schemas/EntityRelationship"}},"relationshipType":{"type":"string","description":"Canonical relationship type, one of: acceleratorParticipant, acquirer, affinity, calculated, competingProductService, competitor, customer, fundManagerFirm, parent, productService, serviceProvider, similarCompany, spinOffFrom, successor. Similarity endpoint rows use stored relationship types when a curation row exists and calculated when the row comes from semantic/vector similarity."},"source":{"type":["string","null"],"description":"Source URL or compact source label copied to the relationship row"},"sourceEntityId":{"type":["string","null"],"format":"uuid","description":"Canonical source entity UUID stored on the relationship row. Compare with the requested entity id and `/v1/entities/relationships/types` sourceRole/targetRole to orient directional relationships such as parent."},"targetEntityId":{"type":["string","null"],"format":"uuid","description":"Canonical target entity UUID stored on the relationship row. Compare with the requested entity id and `/v1/entities/relationships/types` sourceRole/targetRole to orient directional relationships such as parent."},"updatedAt":{"type":["string","null"],"format":"date-time"}},"required":["entity","relationship","relationshipType"]},"ResearchDetailType":{"type":"object","properties":{"allowedToken":{"type":["array","null"],"description":"Allowed valueResearchDetail tokens for enumeratedToken shapes.","items":{"type":"string"}},"curated":{"type":"boolean"},"label":{"type":"string"},"range":{"description":"Inclusive numeric bounds for numericRatio, numericScore, and numericGrowthRate. numericGrowthRate values use percentage points: 80 means 80%, not 0.8.","oneOf":[{"$ref":"#/components/schemas/ResearchValueRange"},{"type":"null"}]},"targetPath":{"type":"string"},"timeSeries":{"type":"boolean","description":"Whether rows are dated history; true means add current observations and keep believable old rows."},"typeValue":{"type":"string"},"valueShape":{"$ref":"#/components/schemas/ResearchValueShapeType","description":"Write-time value shape token. For numericCountOrRange details, send either discreteValue for an exact count or textValue for an employee range.","example":"numericCountOrRange"},"valueType":{"$ref":"#/components/schemas/EntityResearchValueType","description":"Read projection category; choose write fields from valueShape."}},"required":["curated","label","targetPath","timeSeries","typeValue","valueShape","valueType"]},"ResearchSnippetType":{"type":"object","description":"Canonical research snippet type with the governance rules write callers must satisfy.","properties":{"analysisRenderable":{"type":"boolean","description":"Whether curated rows of this snippet type can make the public company Analysis page eligible."},"curated":{"type":"boolean","description":"Whether the type is curated; with analysisRenderable this gates public Analysis-page eligibility. It does not gate snippet display — every type listed here is recognized and defaults to visible, and the row-level visible flag controls display."},"defaultVisible":{"type":"boolean","description":"Default visible flag when a write omits visible; true for recognized snippet types even when curated=false."},"label":{"type":"string","description":"Human-readable label."},"minLength":{"type":["integer","null"],"format":"int32","description":"Minimum total text length in characters; null = no minimum."},"paragraphShape":{"description":"Per-paragraph shape rule that write requests must satisfy; null = no paragraph rule.","oneOf":[{"$ref":"#/components/schemas/ResearchParagraphShape"},{"type":"null"}]},"recognized":{"type":"boolean","description":"Whether this textType is recognized by the research contract catalog; true for every row returned by this endpoint."},"targetPath":{"type":"string","description":"Dotted research section path the snippet attaches to."},"typeValue":{"type":"string","description":"Canonical snippet type token used on the wire."}},"required":["analysisRenderable","curated","defaultVisible","label","recognized","targetPath","typeValue"]},"EntityListFilter":{"type":"object","additionalProperties":false,"description":"Entity list and search filters including semantic entity search. Supported by GET /v1/entities and POST /v1/entities/search; every other reused EntityFilter surface accepts the base EntityFilter, which omits semanticQuery.","properties":{"acceleratorBrand":{"type":"array","description":"Accelerator brand or operator name.","items":{"type":"string"}},"acceleratorCohort":{"type":"array","description":"Accelerator batch or cohort label.","items":{"type":"string"}},"acceleratorName":{"type":"array","description":"Specific accelerator program name.","items":{"type":"string"}},"acceleratorStatus":{"type":"array","description":"Accelerator participation status.","items":{"type":"string"}},"affinity":{"type":"array","description":"Affinity provider organization names accepted by the companies list filter. Affinity rows are member -> provider; use provider names here, not member names.","items":{"type":"string"}},"employeeCountRange":{"type":"array","description":"Inclusive reported employee-count ranges, in employees.","items":{"$ref":"#/components/schemas/IntRange"}},"entityId":{"type":"array","description":"Restrict results to specific entity IDs.","items":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},"entityName":{"type":"array","description":"Exact normalized match against entity brand or legal names.","items":{"type":"string"}},"featured":{"type":["boolean","null"],"description":"Filter by featured status."},"fundraiseActivity":{"$ref":"#/components/schemas/EntityFundraiseFilterCriteria","description":"Fundraise activity"},"hasFundraising":{"type":["boolean","null"],"description":"Filter to entities with fundraise activity."},"headquartersCity":{"type":"array","description":"Headquarters city values.","items":{"type":"string"}},"headquartersCountry":{"type":"array","description":"Headquarters country values.","items":{"type":"string"}},"headquartersState":{"type":"array","description":"Headquarters state or region values.","items":{"type":"string"}},"industry":{"type":"array","description":"Industry classification values.","items":{"type":"string"}},"letter":{"type":["string","null"],"description":"First letter of the display name."},"location":{"type":"array","description":"Geographic classification values.","items":{"type":"string"}},"logoOption":{"$ref":"#/components/schemas/EntityFilterLogoOption","description":"Logo sort priority."},"mainProduct":{"type":"array","description":"Main product classification values.","items":{"type":"string"}},"operatingStatus":{"type":"array","description":"Operating status values.","items":{"type":"string"}},"portfolioHeadquartersCity":{"type":"array","description":"Portfolio-company headquarters city values.","items":{"type":"string"}},"portfolioHeadquartersCountry":{"type":"array","description":"Portfolio-company headquarters country values.","items":{"type":"string"}},"portfolioHeadquartersState":{"type":"array","description":"Portfolio-company headquarters state or region values.","items":{"type":"string"}},"qualityGate":{"$ref":"#/components/schemas/EntityListQualityGate","description":"Named server-owned list quality gate."},"semanticQuery":{"type":["string","null"],"description":"Semantic entity search phrase. Supported by GET /v1/entities and POST /v1/entities/search."},"slug":{"type":"array","description":"Restrict results to entity slugs.","items":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},"stage":{"type":"array","description":"Investment stage classification values.","items":{"type":"string"}},"suppressNonOperating":{"type":["boolean","null"],"description":"Suppress entities with terminal operating status."},"suppressZeroTotalRaised":{"type":["boolean","null"],"description":"Suppress entities whose total raised is zero."},"tag":{"type":"array","description":"General classification tag values.","items":{"type":"string"}},"textSearch":{"type":["string","null"],"description":"Non-blank keyword/full-text search term. Use natural-search for plain-English or multi-constraint company requests."},"typeCustomer":{"type":"array","description":"Customer-type classification values.","items":{"type":"string"}},"typeModel":{"type":"array","description":"Business-model classification values.","items":{"type":"string"}},"typeOwnership":{"type":"array","description":"Ownership-model classification values.","items":{"type":"string"}},"typeRecord":{"type":"array","description":"Entity type filter. Organization expands to Company, Investment Firm, Nonprofit, and Government; omit to include every entity type.","items":{"$ref":"#/components/schemas/EntityType"}},"typeRevenue":{"type":"array","description":"Revenue-model classification values.","items":{"type":"string"}},"typeTechnologyUsed":{"type":"array","description":"Technology-used classification values.","items":{"type":"string"}},"url":{"type":["string","null"],"description":"Current URL to match by normalized host and path."},"urlDomain":{"type":["string","null"],"description":"Current root domain to match when urlMatchMode=domain.","example":"example.com"},"urlMatchMode":{"$ref":"#/components/schemas/UrlMatchMode","description":"URL matching mode: hostPath uses host and path; domain uses the root domain.","example":"domain"},"urlType":{"description":"Restrict URL matching to one URL type.","example":"website","oneOf":[{"$ref":"#/components/schemas/EntityUrlType"},{"type":"null"}]},"yearFoundedRange":{"type":"array","description":"Inclusive founding-year ranges, in calendar years.","items":{"$ref":"#/components/schemas/IntRange"}}}},"PageEntityListSummary":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityListSummary"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"TextTypeOption":{"type":"object","description":"Canonical textType value accepted by text endpoints; entity rows include minWords, maxWords, rewriteHint, and paragraphShape when a governed text contract applies.","properties":{"canonical":{"type":"string","description":"Canonical textType value."},"maxWords":{"type":["integer","null"],"format":"int32","description":"Maximum words allowed by the governed text contract."},"minWords":{"type":["integer","null"],"format":"int32","description":"Minimum words allowed by the governed text contract."},"paragraphShape":{"description":"Paragraph-shape rule returned by the governed text contract.","oneOf":[{"$ref":"#/components/schemas/ResearchParagraphShape"},{"type":"null"}]},"privateType":{"type":"boolean","description":"Whether the textType requires trusted read visibility."},"rewriteHint":{"type":["string","null"],"description":"Rewrite guidance returned by the governed text contract."}},"required":["canonical","privateType"]},"EntityTypeAlias":{"type":"object","description":"Canonical EntityType value, accepted aliases, and public routing metadata.","properties":{"alias":{"type":"array","description":"Alias tokens accepted by EntityType.fromRaw (case-insensitive).","items":{"type":"string"}},"canOwnPublicProductServiceRoute":{"type":"boolean","description":"Whether this EntityType can provide the parent route for a public Product/Service."},"canonical":{"type":"string","description":"Canonical EntityType value (e.g. \\"Company\\", \\"Investment Firm\\")."},"description":{"type":"string","description":"Human-facing meaning of this EntityType."},"productServiceRouteSegment":{"type":"string","description":"Nested public route segment shared by Product and Service records."},"publicPathPrefix":{"type":"string","description":"Public website path prefix for this EntityType."}},"required":["alias","canOwnPublicProductServiceRoute","canonical","description","productServiceRouteSegment","publicPathPrefix"]},"UrlSurfaceMisclassificationCatalog":{"type":"object","description":"URL surface misclassification catalog. Consumers MUST route these URL shapes to the named canonical surface instead of writing them to the attempted surface.","properties":{"assetExtension":{"type":"array","description":"Binary asset file extensions (no leading dot) — an asset is not a web page.","items":{"type":"string"}},"newsArticleHost":{"type":"array","description":"Pure news/press-wire hosts. An article path on these is a news record, never a URL link; the outlet\'s own root stays a valid website.","items":{"type":"string"}},"parkingHost":{"type":"array","description":"Domain-marketplace / for-sale / parking hosts — the domain is unowned, never a URL.","items":{"type":"string"}},"route":{"type":"array","description":"Deterministic URL path routes whose canonical surface is not the attempted write surface.","items":{"$ref":"#/components/schemas/UrlSurfaceMisclassificationRoute"}}},"required":["assetExtension","newsArticleHost","parkingHost","route"]},"UrlTypeAlias":{"type":"object","description":"Canonical urlType value plus accepted alias and platform host tokens.","properties":{"alias":{"type":"array","description":"Alias tokens accepted by UrlTypeCatalog.fromRaw.","items":{"type":"string"}},"canonical":{"type":"string","description":"Canonical urlType value."},"hostDomain":{"type":"array","description":"Host domains used by URL inference for this urlType.","items":{"type":"string"}}},"required":["alias","canonical","hostDomain"]},"EntityAcquisitionRole":{"type":"string","description":"Role of the path entity in the acquisition. Defaults to acquired (the company that was bought). Pass acquirer to list acquisitions made by the path entity, or all to list both sides in one page.","enum":["acquired","acquirer","all"]},"PageEntityAcquisition":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityAcquisition"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntityAcquisition":{"type":"object","description":"Canonical acquisition event: scoped entity is acquired, acquirerEntity is buyer, and status is read stage -- Acquisition before operating-status change, Acquired Subsidiary for active completed brands, Acquired for terminal/folded/closed (including Closed (Acquihire)).","properties":{"acquiredEntity":{"$ref":"#/components/schemas/Entity","description":"Acquired company — read-only nested display projection of the scoped path entity."},"acquirerEntity":{"$ref":"#/components/schemas/Entity","description":"Buyer — read-only nested display projection. Mutations identify the buyer only via the flat acquirerEntityId UUID, never a nested entity object."},"amount":{"type":["integer","null"],"format":"int64"},"announcedAt":{"type":["string","null"],"format":"date-time"},"asOf":{"type":["string","null"],"format":"date"},"completedAt":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":["string","null"],"format":"date-time"},"currency":{"type":["string","null"]},"dataConfidence":{"oneOf":[{"$ref":"#/components/schemas/FundraiseDataConfidence"},{"type":"null"}]},"evidence":{"$ref":"#/components/schemas/EntityAcquisitionEvidence"},"fundraiseTransactionId":{"type":["string","null"],"format":"uuid","description":"Canonical fundraise transaction UUID"},"investorJoinId":{"type":["string","null"],"format":"uuid","description":"Type-safe identifier for fundraise investor joins"},"relationshipId":{"type":"integer","format":"int32"},"source":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/EntityAcquisitionStage","description":"Read stage, not transactionStatus: Acquisition before operating-status change; Acquired Subsidiary for active completed acquisitions; Acquired for terminal/folded/closed (including Closed (Acquihire))."},"transactionStatus":{"oneOf":[{"$ref":"#/components/schemas/FundraiseTransactionStatus"},{"type":"null"}]},"updatedAt":{"type":["string","null"],"format":"date-time"}},"required":["acquiredEntity","acquirerEntity","evidence","relationshipId","status"]},"Address":{"type":"object","description":"Canonical address record for entity and person payloads","properties":{"address":{"type":["integer","null"],"format":"int32","description":"Legacy address row identifier","example":456},"addressLine1":{"type":["string","null"]},"addressLine2":{"type":["string","null"]},"association":{"type":"array","description":"Role-period associations for this physical address","items":{"$ref":"#/components/schemas/AddressAssociation"}},"city":{"description":"City reference","oneOf":[{"$ref":"#/components/schemas/AddressCity"},{"type":"null"}]},"country":{"description":"Country reference","oneOf":[{"$ref":"#/components/schemas/AddressCountry"},{"type":"null"}]},"countryAbbrev":{"type":["string","null"]},"createdAt":{"type":["string","null"],"format":"date-time"},"fullAddress":{"type":["string","null"],"description":"Single-line formatted address","example":"123 Main St, Boston, MA 02110, USA"},"id":{"type":["integer","null"],"format":"int32","description":"Address record identifier","example":123},"isCurrent":{"type":["boolean","null"],"deprecated":true,"description":"Deprecated aggregate compatibility flag; true when any association is current","example":true},"isHq":{"type":["boolean","null"],"deprecated":true,"description":"Deprecated legacy flag marking the headquarters or legal/registered address","example":true},"isPrimary":{"type":["boolean","null"],"deprecated":true,"description":"Deprecated legacy flag marking the primary display address","example":true},"latitude":{"type":["number","null"],"format":"double"},"longitude":{"type":["number","null"],"format":"double"},"postalCode":{"type":["string","null"]},"state":{"description":"State or region reference","oneOf":[{"$ref":"#/components/schemas/AddressState"},{"type":"null"}]},"stateAbbrev":{"type":["string","null"]},"street":{"type":["string","null"]},"updatedAt":{"type":["string","null"],"format":"date-time"}}},"PageBlogPost":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/BlogPost"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"BlogPost":{"type":"object","description":"External research-side blog post owned by exactly one entity or person. Unrelated to app.app_blog_article.","properties":{"author":{"type":["string","null"],"description":"Blog-post author when discovered by ingest"},"createdAt":{"type":"string","format":"date-time"},"externalId":{"type":["string","null"],"description":"Stable external feed/item identifier when available"},"id":{"type":"string","format":"uuid","description":"Type-safe UUID identifier for research-side external blog article links"},"isCurrent":{"type":"boolean"},"lastFetchedAt":{"type":["string","null"],"format":"date-time","description":"Last time ingest fetched or summarized this blog-post URL"},"mentionedEntityId":{"type":"array","description":"Entities mentioned in the blog-post body, excluding the owner","items":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},"mentionedPersonId":{"type":"array","description":"People mentioned in the blog-post body, excluding the owner","items":{"type":"string","format":"uuid","description":"Canonical person UUID"}},"owner":{"$ref":"#/components/schemas/EntityPersonOwner","description":"Owning record, nested ids only: owner.entityId or owner.personId — exactly one is set."},"publishedAt":{"type":["string","null"],"format":"date-time"},"summary":{"type":["string","null"],"description":"LLM-generated blog-post summary from blog-post-ingest"},"summaryGeneratedAt":{"type":["string","null"],"format":"date-time","description":"Timestamp when summary was last generated"},"title":{"type":["string","null"]},"topic":{"type":["string","null"],"description":"Nullable blog-post topic key from app.contracts.web-crawl.section, such as product, blog, or press.","example":"product"},"type":{"$ref":"#/components/schemas/BlogPostType"},"updatedAt":{"type":"string","format":"date-time"},"url":{"type":"string"}},"required":["createdAt","id","isCurrent","mentionedEntityId","mentionedPersonId","owner","type","updatedAt","url"]},"EntityClassification":{"type":"object","description":"Entity classification join rows grouped by bucket; default reads include only current joins, and includeInactive=true adds inactive/historical joins.","properties":{"geoLocationExposure":{"type":"array","default":"[]","description":"Geographic markets where the entity earns revenue and serves customers (e.g. North America, EMEA, APAC). This is the sales/market footprint classification — NOT the HQ or office location. HQ and office locations belong on the address record (enrichment.address), not this bucket. A London-headquartered company selling globally should have North America and EMEA here, not United Kingdom.","items":{"$ref":"#/components/schemas/EntityTag"}},"industry":{"type":"array","default":"[]","description":"Industry filter values","items":{"$ref":"#/components/schemas/EntityTag"}},"mainProduct":{"type":"array","default":"[]","description":"Main product filter values","items":{"$ref":"#/components/schemas/EntityTag"}},"standardizedClassification":{"type":"array","default":"[]","description":"Standardized classification joins from res_classification_ref. Rows are join-existing-only and carry category/code metadata.","items":{"$ref":"#/components/schemas/StandardizedClassification"}},"tag":{"type":"array","default":"[]","description":"Tag filter values","items":{"$ref":"#/components/schemas/EntityTag"}},"typeCustomer":{"type":"array","default":"[]","description":"Type customer filter values","items":{"$ref":"#/components/schemas/EntityTag"}},"typeModel":{"type":"array","default":"[]","description":"Type model filter values","items":{"$ref":"#/components/schemas/EntityTag"}},"typeOwnership":{"type":"array","default":"[]","description":"Type ownership filter values","items":{"$ref":"#/components/schemas/EntityTag"}},"typeRevenue":{"type":"array","default":"[]","description":"Type revenue filter values","items":{"$ref":"#/components/schemas/EntityTag"}},"typeTechnologyUsed":{"type":"array","default":"[]","description":"Type technology used filter values","items":{"$ref":"#/components/schemas/EntityTag"}}}},"EntityClassificationSuggestion":{"type":"object","description":"Ranked classification suggestion derived from the enriched entity profile and classification centroid embeddings. Returned by the default classification discovery endpoint before callers create source-backed classification joins.","properties":{"alreadyJoined":{"type":"boolean","description":"True when the entity already has a current or historical matching join."},"classification":{"description":"Suggested writable editorial tag or standardized classification code candidate.","oneOf":[{"$ref":"#/components/schemas/EntityTag"},{"$ref":"#/components/schemas/StandardizedClassification"}]},"creatable":{"type":"boolean","description":"Whether a missing editorial tag value may be created with type plus name instead of tagId."},"rank":{"type":"integer","format":"int32","description":"One-based rank within this suggestion response."},"score":{"type":"number","format":"double","description":"Composite embedding similarity score; larger values rank higher."},"writable":{"type":"boolean","description":"Whether this suggestion can be joined through the classification mutation endpoint."}},"required":["alreadyJoined","classification","creatable","rank","score","writable"]},"PageEntityFundraiseTransaction":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityFundraiseTransaction"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntityFundraiseTransaction":{"type":"object","description":"Canonical fundraise transaction view. ONE row per discrete round. An entity that raised pre-seed, seed, and Series A is THREE rows. Combined or rolled-up totals are never modeled here — total raised is a sum across rows.","properties":{"amountRaised":{"type":["integer","null"],"format":"int64"},"createdAt":{"type":["string","null"],"format":"date-time"},"currency":{"type":["string","null"]},"dataConfidence":{"description":"Data confidence level","oneOf":[{"$ref":"#/components/schemas/FundraiseDataConfidence"},{"type":"null"}]},"dateAnnounced":{"type":["string","null"],"format":"date-time"},"dateFundingComplete":{"type":["string","null"],"format":"date-time"},"dateInvestorExit":{"type":["string","null"],"format":"date-time"},"entity":{"oneOf":[{"$ref":"#/components/schemas/EntityFundraiseTransactionEntity"},{"type":"null"}]},"id":{"type":"string","format":"uuid","description":"Canonical fundraise transaction UUID"},"investorAttribution":{"description":"Investor-specific attribution when returned from investor-perspective investment views. amountInvested is not added to amountRaised; it is the selected investor\'s attributed participation amount for this round.","oneOf":[{"$ref":"#/components/schemas/FundraiseInvestmentAttribution"},{"type":"null"}]},"investorCount":{"type":["integer","null"],"format":"int32","description":"Source-reported number of investors in the round. This can exceed the identified investor joins when a source reports a total without naming every investor."},"round":{"type":["string","null"]},"sourceAttribution":{"type":"array","items":{"$ref":"#/components/schemas/FundraiseInvestmentAttribution"}},"updatedAt":{"type":["string","null"],"format":"date-time"},"valuationPostMoney":{"type":["integer","null"],"format":"int64"},"valuationPreMoney":{"type":["integer","null"],"format":"int64"}},"required":["id","sourceAttribution"]},"EntityFundraiseInvestorActivity":{"type":"object","description":"Investor-perspective activity aggregate for entity and person investors.","properties":{"attributedInvestmentCount":{"type":"integer","format":"int32","description":"Count of participations with a USD-attributed investor-level amount — the coverage denominator behind totalAmountInvestedUsd, averageAmountInvestedUsd, largestAmountInvestedUsd, and smallestAmountInvestedUsd."},"averageAmountInvestedUsd":{"type":["number","null"],"description":"Average investor-level attributed amount per participation, restricted to rounds whose transaction functional currency is USD. Null when no USD-attributed amounts exist for this investor."},"currentPortfolioCount":{"type":"integer","format":"int32"},"largestAmountInvestedUsd":{"type":["number","null"],"description":"Largest single investor-level attributed amount, restricted to rounds whose transaction functional currency is USD. Null when no USD-attributed amounts exist for this investor."},"portfolioCompanyCount":{"type":"integer","format":"int32","description":"Distinct portfolio companies this investor has participated in, across all portfolio-company statuses. Counts companies, whereas totalInvestment counts distinct fundraise transactions."},"smallestAmountInvestedUsd":{"type":["number","null"],"description":"Smallest single investor-level attributed amount, restricted to rounds whose transaction functional currency is USD. Null when no USD-attributed amounts exist for this investor."},"topInvestmentStage":{"type":"array","items":{"$ref":"#/components/schemas/StageFrequency"}},"totalAmountInvestedUsd":{"type":["number","null"],"description":"Sum of investor-level attributed amounts (amount_invested) restricted to rounds whose transaction functional currency is USD. Null when no USD-attributed amounts exist for this investor."},"totalInvestment":{"type":"integer","format":"int32"},"totalPortfolioExit":{"type":"integer","format":"int32"},"totalWriteOff":{"type":"integer","format":"int32"}},"required":["attributedInvestmentCount","currentPortfolioCount","portfolioCompanyCount","topInvestmentStage","totalInvestment","totalPortfolioExit","totalWriteOff"]},"PageEntityInvestorParticipation":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityInvestorParticipation"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntityLogoType":{"type":"string","description":"Distinguishes square icon vs standard/horizontal entity logo","enum":["SQUARE","STANDARD"]},"MediaUpload":{"type":"object","description":"Managed media asset reference with resolved CDN URL and target metadata","properties":{"cdnUrl":{"type":"string","description":"Resolved API CDN URL"},"firstUploadedAt":{"type":["string","null"],"format":"date-time","description":"Earliest recorded write timestamp for this media asset slot from res_provenance_event (when this entity/person/news first received any image in this slot)."},"mediaType":{"$ref":"#/components/schemas/MediaObjectType","description":"Target media domain"},"path":{"type":"string","description":"Attached managed storage path; never an external image URL"},"provenance":{"description":"Latest write source for this media asset slot from res_provenance_event. `changedAt` is the last-modified timestamp of the current attached file.","oneOf":[{"$ref":"#/components/schemas/DatasourceSourceMetadata"},{"type":"null"}]},"targetId":{"type":["string","null"],"description":"Attached entity/person/news target id, when known"}},"required":["cdnUrl","mediaType","path"]},"PageEntityPersonAssociation":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityPersonAssociation"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"PageEmployeeCount":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EmployeeCount"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntityPersonAssociation":{"type":"object","description":"One entity↔person association, naming both sides","properties":{"associationId":{"type":"integer","format":"int32","description":"Integer person-entity association join row id, not a person or entity UUID"},"createdAt":{"type":["string","null"],"format":"date-time"},"creator":{"type":["string","null"],"description":"Association creator label"},"endDate":{"type":["string","null"],"format":"date-time","description":"Association period end timestamp"},"entityAddress":{"type":"array","description":"Entity addresses carried on the association projection","items":{"$ref":"#/components/schemas/Address"}},"entityId":{"type":"string","format":"uuid","description":"Associated entity id"},"entityLogo":{"$ref":"#/components/schemas/EntityImage","description":"Entity logo image projection"},"entityName":{"type":["string","null"]},"entityOperatingStatus":{"type":["string","null"]},"entitySlug":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"},"entityType":{"description":"Entity type classification","oneOf":[{"$ref":"#/components/schemas/EntityType"},{"type":"null"}]},"entityUrlLink":{"type":"array","description":"Entity URL links carried on the association projection","items":{"$ref":"#/components/schemas/EntityUrlLink"}},"isCurrent":{"type":["boolean","null"]},"personAddress":{"type":"array","description":"Person addresses carried on the association projection","items":{"$ref":"#/components/schemas/Address"}},"personId":{"type":"string","format":"uuid","description":"Associated person id"},"personImage":{"$ref":"#/components/schemas/PersonImage","description":"Person image projection"},"personName":{"type":"string"},"personSlug":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"},"personUrlLink":{"type":"array","description":"Person URL links carried on the association projection","items":{"$ref":"#/components/schemas/EntityUrlLink"}},"score":{"type":["integer","null"],"format":"int32"},"startDate":{"type":["string","null"],"format":"date-time","description":"Association period start timestamp"},"titleFunction":{"type":["string","null"],"description":"Read-side corporate title function for the association row"},"titleId":{"type":["integer","null"],"format":"int32","description":"Corporate title id for the association row"},"titleLevel":{"type":["string","null"],"description":"Read-side corporate title level for the association row"},"titleName":{"type":["string","null"],"description":"Read-side corporate title text for the association row"},"updatedAt":{"type":["string","null"],"format":"date-time"}},"required":["associationId","entityAddress","entityId","entityLogo","entitySlug","entityUrlLink","personAddress","personId","personImage","personName","personSlug","personUrlLink"]},"PagePersonInvestorParticipation":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/PersonInvestorParticipation"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntitySuggestionResult":{"type":"object","description":"Semantic suggestions for the named slot only. NOT a completeness signal. Each candidate is a hypothesis — verify with web search before writing. exhaustive is always false. See coverage for the remaining details and the owning read that proves each.","properties":{"coverage":{"type":"array","description":"Per-entity completion-floor coverage of every other detail, with the owning read and how to obtain each gate. Sourced from the completion-gate coverage projection.","items":{"$ref":"#/components/schemas/EntityDetailCoverageSlot"}},"exhaustive":{"type":"boolean","description":"Always false. These suggestions are a non-exhaustive hypothesis set; the agent must still verify each candidate and consult coverage for everything else.","example":false},"slot":{"type":"string","description":"The single enrichment slot these candidates cover.","example":"relationship"},"suggestion":{"type":"array","description":"Advisory candidate hypotheses for this slot, ranked by semantic score. Empty means no embedding neighbors; it is never a claim that the slot is complete.","items":{"$ref":"#/components/schemas/EntitySuggestion"}}},"required":["coverage","exhaustive","slot","suggestion"]},"PageEntityRelationship":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityRelationship"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"PageGithubRepo":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/GithubRepo"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntityResearch":{"type":"object","description":"Combined entity research disclosure: governed detail rows, research text snippets, and joined accelerator participation.","properties":{"acceleratorParticipation":{"type":"array","description":"Joined accelerator participation derived from governed accelerator research rows","items":{"$ref":"#/components/schemas/EntityAcceleratorParticipation"}},"detail":{"type":"array","description":"Flat governed research detail rows filtered by visibility","items":{"$ref":"#/components/schemas/EntityResearchDetail"}},"snippet":{"type":"array","description":"Research text snippets for this entity","items":{"$ref":"#/components/schemas/EntityResearchSnippet"}}},"required":["acceleratorParticipation","detail","snippet"]},"PageEntityResearchDetail":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityResearchDetail"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntityResearchDetail":{"type":"object","description":"Canonical research detail row for research.res_entity_detail","properties":{"asOfDate":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":["string","null"],"format":"date-time"},"creator":{"type":["string","null"]},"dataConfidence":{"oneOf":[{"$ref":"#/components/schemas/EntityValuationDataConfidence"},{"type":"null"}]},"derivedRange":{"description":"Read-only range derived only for targetDateAbsolute detail rows","oneOf":[{"$ref":"#/components/schemas/ResearchDerivedRange"},{"type":"null"}],"readOnly":true},"discreteValue":{"type":["number","null"],"format":"double"},"entityId":{"type":"string","format":"uuid","description":"Canonical entity UUID"},"id":{"type":"integer","format":"int32"},"textValue":{"type":["string","null"]},"typeResearchDetail":{"type":"string"},"updatedAt":{"type":["string","null"],"format":"date-time"},"valueResearchDetail":{"type":["string","null"]},"valueType":{"$ref":"#/components/schemas/EntityResearchValueType"}},"required":["entityId","id","typeResearchDetail","valueType"]},"PageEntityResearchSnippet":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityResearchSnippet"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntityResearchSnippet":{"type":"object","description":"Persisted research snippet row for one entity.","properties":{"compliance":{"description":"Derived character/word counts and governed-contract compliance for this snippet row; null when not evaluated.","oneOf":[{"$ref":"#/components/schemas/ContentCompliance"},{"type":"null"}]},"createdAt":{"type":["string","null"],"format":"date-time"},"entityId":{"type":"string","format":"uuid","description":"Canonical entity UUID"},"id":{"type":"integer","format":"int32"},"isCurrent":{"type":"boolean","description":"Current row. The live snippet for its type; demoted historical rows read only with includePrivate."},"isPrimary":{"type":"boolean","description":"Primary row among the current snippets of its type."},"text":{"type":"string"},"textType":{"type":"string"},"updatedAt":{"type":["string","null"],"format":"date-time"},"visible":{"type":"boolean","description":"Whether the snippet appears in default reads. Admin/private reads (includePrivate) also return hidden rows."}},"required":["entityId","id","isCurrent","isPrimary","text","textType","visible"]},"SlugLocation":{"type":"object","description":"Current slug location for a resource","properties":{"entityType":{"type":["string","null"]},"id":{"type":"string"},"path":{"type":"string"},"resourceType":{"$ref":"#/components/schemas/SlugResource"},"slug":{"type":"string"},"url":{"type":"string"}},"required":["id","path","resourceType","slug","url"]},"PageUrlSlugRedirect":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/UrlSlugRedirect"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"PageEntityText":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityText"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntityText":{"type":"object","description":"Canonical entity/person text read record","properties":{"compliance":{"description":"Derived character/word counts and governed-contract compliance for this text row; null when not evaluated.","oneOf":[{"$ref":"#/components/schemas/ContentCompliance"},{"type":"null"}]},"createdAt":{"type":["string","null"],"format":"date-time"},"id":{"type":"integer","format":"int32","description":"Type-safe identifier for text records"},"isCurrent":{"type":["boolean","null"]},"isPrimary":{"type":["boolean","null"]},"language":{"type":["string","null"]},"owner":{"$ref":"#/components/schemas/EntityPersonOwner","description":"Owning record, nested ids only: owner.entityId or owner.personId — exactly one is set, and no name fields. Writes are scoped by the owning entity/person route; owner is never a write field."},"source":{"type":["string","null"]},"text":{"type":"string"},"textName":{"type":["string","null"]},"textType":{"type":"string","description":"Value object for text type classification","example":"note"},"updatedAt":{"type":["string","null"],"format":"date-time"}},"required":["id","owner","text","textType"]},"PageUniqueId":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/UniqueId"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"UniqueId":{"type":"object","description":"External identifier mapped to one owner (entity or person): for example a company\'s EIN, SEC CIK, or ticker symbol. Owner carries exactly one entityId or personId.","properties":{"createdAt":{"type":"string","format":"date-time","description":"Row creation timestamp."},"id":{"type":"integer","format":"int32","description":"Unique-id row id."},"idType":{"$ref":"#/components/schemas/UniqueIdType","description":"Identifier type."},"identifier":{"type":"string","description":"Identifier value as issued by the registry (normalized per type)."},"owner":{"$ref":"#/components/schemas/EntityPersonOwner","description":"Owning entity or person id; exactly one nested id is present."},"source":{"type":["string","null"],"description":"Attribution source label for the mapping, when recorded."},"updatedAt":{"type":"string","format":"date-time","description":"Row update timestamp."}},"required":["createdAt","id","idType","identifier","owner","updatedAt"]},"PageEntityUrlLink":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityUrlLink"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"EntityUrlLink":{"type":"object","description":"Canonical URL link resource with owner, status, crawl, and source metadata. Lifecycle state (current vs former, primary vs secondary) is encoded by `isCurrent` and `isPrimary` — `urlType` is the canonical platform role only and MUST be one of the closed `EntityUrlType` values. To record a rebrand or domain migration, retain the prior URL with the same `urlType` (typically `website`) and set `isCurrent=false, isPrimary=false`; do not propose new enum values.","properties":{"crawlCdnProvider":{"oneOf":[{"$ref":"#/components/schemas/EntityUrlCrawlCdnProvider"},{"type":"null"}]},"crawlRenderMode":{"oneOf":[{"$ref":"#/components/schemas/EntityUrlCrawlRenderMode"},{"type":"null"}]},"createdAt":{"type":["string","null"],"format":"date-time"},"id":{"type":["integer","null"],"format":"int32"},"isCurrent":{"type":["boolean","null"],"description":"`true` = owner currently uses this URL; `false` = historical/former (rebrand source domain, deprecated platform handle). The lifecycle state lives here, NEVER in the `urlType` discriminator."},"isPrimary":{"type":["boolean","null"],"description":"`true` = canonical/primary URL of this `urlType` for this owner. Only one row per (owner, urlType) may be `isCurrent=true` AND `isPrimary=true`."},"owner":{"description":"Owning record, nested ids only: owner.entityId or owner.personId — exactly one is set, and no name fields. Writes are scoped by the owning entity/person route; owner is never a write field.","oneOf":[{"$ref":"#/components/schemas/EntityPersonOwner"},{"type":"null"}]},"sourceId":{"type":["string","null"]},"status":{"type":["string","null"]},"statusChecked":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"url":{"type":"string","format":"uri","description":"Canonical absolute HTTP URL value - validates scheme + host at construction","example":"https://example.com"},"urlType":{"$ref":"#/components/schemas/EntityUrlType"}},"required":["url","urlType"]},"PageEntityValuationTimeSeriesPoint":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityValuationTimeSeriesPoint"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"MediaObjectType":{"type":"string","description":"Target domain for media operations (logos, pictures, thumbnails)","enum":["ENTITY","PERSON","NEWS","BLOG"],"example":"ENTITY"},"PageMediaScreenshot":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/MediaScreenshot"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"MediaScreenshot":{"type":"object","description":"Domain record for crawl screenshot metadata - also the API response type","properties":{"contentType":{"type":"string"},"crawledAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"fileSize":{"type":["integer","null"],"format":"int32"},"id":{"type":"integer","format":"int64","description":"Type-safe identifier for crawl screenshots"},"owner":{"oneOf":[{"$ref":"#/components/schemas/EntityPersonOwner"},{"type":"null"}]},"position":{"type":"integer","format":"int32"},"s3Key":{"type":"string"},"updatedAt":{"type":"string","format":"date-time"},"url":{"type":"string"},"urlId":{"type":["integer","null"],"format":"int32"},"viewportHeight":{"type":["integer","null"],"format":"int32"},"viewportWidth":{"type":["integer","null"],"format":"int32"}},"required":["contentType","crawledAt","createdAt","id","position","s3Key","updatedAt","url"]},"SystemGlobalMetrics":{"type":"object","description":"Global platform metrics snapshot","properties":{"cities":{"type":"integer","format":"int64"},"companies":{"type":"integer","format":"int64"},"countries":{"type":"integer","format":"int64"},"dataPoints":{"type":"integer","format":"int64"},"fundingLast30Days":{"type":"number","description":"Total positive funding announced by visible companies in the trailing 30-day window."},"fundraiseRoundsLast30Days":{"type":"integer","format":"int64","description":"Count of positive funding rounds announced by visible companies in the trailing 30-day window."},"investors":{"type":"integer","format":"int64"},"people":{"type":"integer","format":"int64"},"refreshedAt":{"type":"string","format":"date-time"},"totalFunding":{"type":"number"}},"required":["cities","companies","countries","dataPoints","fundingLast30Days","fundraiseRoundsLast30Days","investors","people","refreshedAt","totalFunding"]},"SearchMode":{"type":"string","description":"Search strategy for a natural-language search request. `auto` keeps the server pipeline (exact-name shortcut first, planner otherwise); `exact` matches entity names exactly with no planner and no embedding; `keyword` runs full-text search; `semantic` runs vector similarity; `natural` always runs the language-model planner. Entity natural-search supports every mode; person natural-search rejects `exact`; news and federated search accept only `auto` and `keyword`; content search accepts only `auto`.","enum":["auto","exact","keyword","semantic","natural"]},"NewsFilter":{"type":"object","description":"Canonical news list/filter contract","properties":{"authorInitial":{"type":["string","null"],"description":"Author initial filter."},"category":{"type":["string","null"],"description":"News category slug to include or exclude."},"cursor":{"type":["string","null"],"description":"Cursor token returned by the previous thin page."},"excludeId":{"type":["integer","null"],"format":"int32","description":"Exclude one news article by id."},"owner":{"description":"Entity or person owner filter.","oneOf":[{"$ref":"#/components/schemas/EntityPersonOwner"},{"type":"null"}]},"publishedAfter":{"type":["string","null"],"format":"date","description":"Earliest publication date, inclusive."},"publishedBefore":{"type":["string","null"],"format":"date","description":"Latest publication date, inclusive."},"search":{"type":["string","null"],"description":"Full-text news search term."}}},"NewsDetail":{"type":"object","description":"Canonical news detail owner","properties":{"content":{"type":["string","null"]},"core":{"$ref":"#/components/schemas/News"},"entityMentionResolved":{"type":"array","description":"Resolved entity mentions — read-only display projections. News mutations attach entities only via flat entityJoinId values, never these nested objects.","items":{"$ref":"#/components/schemas/NewsResolvedEntityLink"}},"externalId":{"type":["string","null"]},"linkedContent":{"type":["string","null"]},"personMentionResolved":{"type":"array","description":"Resolved person mentions — read-only display projections. News mutations attach people only via flat personId/personSlug values, never these nested objects.","items":{"$ref":"#/components/schemas/NewsResolvedPersonLink"}}},"required":["core","entityMentionResolved","personMentionResolved"]},"NewsFeedback":{"type":"object","description":"Feedback submission for a news article","properties":{"comment":{"type":["string","null"],"description":"Free-form feedback text","maxLength":4000,"minLength":0},"newsId":{"type":["integer","null"],"format":"int32","description":"News article ID","example":5980},"reaction":{"type":["string","null"],"description":"Short reaction (like, dislike, etc.)","example":"helpful","maxLength":64,"minLength":0},"slug":{"type":["string","null"],"description":"News article slug","example":"startup-raises-series-a","maxLength":255,"pattern":"^[a-z0-9_-]+$"}}},"NewsFeedbackAcknowledgement":{"type":"object","description":"Feedback acknowledgment for news articles - non-mutating response","properties":{"acknowledged":{"type":"boolean"},"at":{"type":"string","format":"date-time"},"comment":{"type":["string","null"]},"newsId":{"type":["integer","null"],"format":"int32"},"reaction":{"type":["string","null"]},"slug":{"type":["string","null"]}},"required":["acknowledged","at"]},"PagePerson":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/Person"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"PersonFilter":{"type":"object","description":"Canonical person criteria contract for GET/POST/batch endpoints","properties":{"arrayFilter":{"$ref":"#/components/schemas/PersonListArrayFilter","description":"Array and range filters"},"entityId":{"type":["string","null"],"format":"uuid","description":"Associated entity UUID."},"entitySlug":{"type":["string","null"],"description":"Associated entity slug."},"firstName":{"type":["string","null"],"description":"Person first name."},"includeAddress":{"type":["boolean","null"],"description":"Include addresses on each person"},"includeUrl":{"type":["boolean","null"],"description":"Include URL links on each person"},"investorActivity":{"$ref":"#/components/schemas/InvestorActivityFilter","description":"Aggregate investor activity filters."},"isCurrent":{"type":["boolean","null"],"description":"Filter current associations."},"lastName":{"type":["string","null"],"description":"Person last name."},"letter":{"type":["string","null"],"description":"First-name initial.","example":"A"},"role":{"type":["string","null"],"description":"Associated entity role or title."},"search":{"type":["string","null"],"description":"Search keyword or phrase. Single characters valid; stop words rejected.","example":"AI"},"semanticQuery":{"type":["string","null"],"description":"Semantic person search phrase."},"status":{"type":["string","null"],"description":"Person workflow status."}}},"PagePersonDetail":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/PersonDetail"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"PersonDetail":{"type":"object","description":"Composed person wrapper: core identity + enrichment + associations + investments. Access core fields via .core (for example .core.slug or .core.nameFull).","properties":{"articleCount":{"type":["integer","null"],"format":"int32"},"association":{"type":"array","description":"Entity associations for this person","items":{"$ref":"#/components/schemas/EntityPersonAssociation"}},"core":{"$ref":"#/components/schemas/Person"},"enrichment":{"$ref":"#/components/schemas/PersonEnrichment"},"investment":{"type":"array","description":"Investments associated with this person","items":{"$ref":"#/components/schemas/PersonInvestment"}},"nameAlias":{"type":"array","description":"Display and search aliases for this person","items":{"$ref":"#/components/schemas/EntityNameAliasPersonAliasType"}},"pendingApproval":{"type":["integer","null"],"format":"int32"}},"required":["association","core","enrichment","investment","nameAlias"]},"PersonDetailBatch":{"type":"object","additionalProperties":false,"description":"Batch request for person detail enrichment. Each selector array accepts at most 200 values, and at most 200 selectors may be submitted across personId, slug, and url.","properties":{"hasImageFirst":{"type":"boolean","default":false,"description":"Sort results by image presence"},"includeAddress":{"type":"boolean","default":true,"description":"Include address values"},"includeAssociation":{"type":"boolean","default":true,"description":"Include association values"},"includeUrl":{"type":"boolean","default":true,"description":"Include URL links"},"maxAssociations":{"type":"integer","format":"int32","default":40,"description":"Max association values per person"},"permitMonogram":{"type":"boolean","default":true,"description":"Permit monogram fallbacks"},"personId":{"type":"array","description":"Person UUID values","items":{"type":"string","format":"uuid"},"maxItems":200,"minItems":0},"slug":{"type":"array","description":"Person slug values","items":{"type":"string","pattern":"^[\\\\t-\\\\r\\\\u0020\\\\u00A0\\\\u1680\\\\u2000-\\\\u200A\\\\u2028-\\\\u2029\\\\u202F\\\\u205F\\\\u3000]*(?:[A-Za-z0-9_\\\\u212A-]{1,255}[\\\\t-\\\\r\\\\u0020\\\\u00A0\\\\u1680\\\\u2000-\\\\u200A\\\\u2028-\\\\u2029\\\\u202F\\\\u205F\\\\u3000]*)?(?![\\\\s\\\\S])"},"maxItems":200},"url":{"type":"array","description":"Person URL values","items":{"type":"string"},"maxItems":200,"minItems":0}},"x-aventure-max-total-array-items":200},"PagePersonInvestment":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/PersonInvestment"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"PersonNaturalSearch":{"type":"object","description":"Plain-English people search plus explicit hard constraints. The planner may fill only filter fields the caller leaves unset.","properties":{"filter":{"$ref":"#/components/schemas/PersonFilter","description":"Explicit people constraints. Caller-supplied fields override planner values; the planner fills only fields left at their canonical defaults."},"search":{"$ref":"#/components/schemas/NaturalSearch","description":"Canonical plain-English search request and strategy."}},"required":["search"]},"PersonNaturalSearchResult":{"type":"object","description":"Natural-language people search result: planner interpretation plus the canonical person page produced by the person list engine.","properties":{"interpretation":{"$ref":"#/components/schemas/PersonSearchInterpretation","description":"Structured interpretation used to run the people query."},"result":{"$ref":"#/components/schemas/PageResultPerson","description":"Person page returned by the canonical person list engine."}},"required":["interpretation","result"]},"PersonGraph":{"type":"object","description":"\\n Precomputed professional-graph document for one person: career context per associated\\n entity (entity facts, recent news, colleagues, similar entities with key people), plus\\n co-investors. Lists are capped and pre-ranked server-side; the response is the display\\n order. Served from a precomputed store with member names, images, and slugs hydrated from\\n live person records at read time; computedAt is null only when the document has not been\\n materialized yet.\\n ","properties":{"careerContext":{"type":"array","description":"One entry per entity the person holds or held an association with, current first","items":{"$ref":"#/components/schemas/PersonGraphCareerContext"}},"coInvestor":{"type":"array","description":"People who participated in the same fundraise transactions or invested in the same companies, ranked by overlap count and recency","items":{"$ref":"#/components/schemas/PersonGraphCoInvestor"}},"computedAt":{"type":["string","null"],"format":"date-time","description":"Instant the document was materialized; null only when no document exists yet and an asynchronous recompute has been requested"}},"required":["careerContext","coInvestor"]},"PagePersonSimilarityResult":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/PersonSimilarityResult"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"DatasourceTrackedProvenanceTable":{"type":"string","description":"Domain resource whose field-level provenance is tracked","enum":["entity","person","newsArticle","entityPersonJoin","newsArticleEntityJoin","newsArticlePersonJoin","entityRelationship","entityTypeJoin","entityAddressJoin","entityClassificationJoin","entityDetail","entityResearchSnippets","personAddressJoin","fundraiseTransaction","fundraiseTransactionInvestorJoin","text","urlLink","deployTarget"],"example":"entity"},"PageDatasourceFieldProvenance":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/DatasourceFieldProvenance"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"DatasourceSourceMetadata":{"type":"object","description":"Grouped source/provenance metadata for private v1 response fields","properties":{"changedAt":{"type":["string","null"],"format":"date-time"},"dataSourceUpdatedAt":{"type":["string","null"],"format":"date-time"},"detail":{"type":["string","null"]},"kind":{"type":["string","null"]},"pendingApproval":{"type":["integer","null"],"format":"int32"},"sourceId":{"type":["string","null"]},"status":{"type":["string","null"]}}},"DatasourceFieldProvenance":{"type":"object","description":"Full audit row from research.res_provenance_event","properties":{"actor":{"oneOf":[{"$ref":"#/components/schemas/DatasourceProvenanceActor"},{"type":"null"}]},"changedBy":{"type":["string","null"]},"changes":{"type":"array","items":{"$ref":"#/components/schemas/DatasourceProvenanceFieldChange"}},"effectiveAt":{"type":"string","format":"date-time"},"entityId":{"type":["string","null"],"format":"uuid"},"eventId":{"type":"string","format":"uuid"},"id":{"type":"integer","format":"int64"},"operation":{"$ref":"#/components/schemas/DatasourceProvenanceOperation"},"personId":{"type":["string","null"],"format":"uuid"},"recordId":{"type":"string"},"source":{"$ref":"#/components/schemas/DatasourceProvenanceSource"},"status":{"$ref":"#/components/schemas/DatasourceProvenanceStatus"},"tableName":{"$ref":"#/components/schemas/DatasourceTrackedProvenanceTable"}},"required":["changes","effectiveAt","eventId","id","operation","recordId","source","status","tableName"]},"ResolvedHandle":{"type":"object","description":"Canonical subject a universal-lookup token resolved to. Exactly one of owner.entityId / owner.personId is set. Echoes the subject\'s canonical public handle and slug. Fetch display fields with GET /v1/entities/detail or GET /v1/people/detail.","properties":{"matchedBy":{"type":"string","description":"Which identifier kind matched the token.","enum":["PUBLIC_ID","UUID","EXTERNAL_ID","SLUG"]},"owner":{"$ref":"#/components/schemas/EntityPersonOwner","description":"Canonical entity/person owner matched by the token."},"publicId":{"type":["string","null"],"description":"Canonical stable public handle of the resolved subject; null on rows still awaiting handle backfill."},"slug":{"type":["string","null"],"description":"Canonical slug of the resolved subject.","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},"required":["matchedBy","owner"]},"FederatedSearch":{"type":"object","description":"Federated entity, person, and news search result composed from each domain\'s canonical search result owner, with the strategy used for every scope.","properties":{"entity":{"$ref":"#/components/schemas/NaturalSearchResult","description":"Canonical entity natural-search result."},"news":{"$ref":"#/components/schemas/PageResultNews","description":"Canonical news page returned by the keyword list engine."},"person":{"$ref":"#/components/schemas/PersonNaturalSearchResult","description":"Canonical person natural-search result."},"provenance":{"$ref":"#/components/schemas/FederatedSearchProvenance","description":"Requested and executed strategy for each search scope."}},"required":["entity","news","person","provenance"]},"LinkSearch":{"type":"object","description":"Search results related to a shared article or page URL: the fetched URL, the search query synthesized from the page content, and the federated entity, person, and news results for that query.","properties":{"query":{"type":"string","description":"Search query synthesized from the page content."},"related":{"$ref":"#/components/schemas/FederatedSearch","description":"Federated entity, person, and news results for the synthesized query."},"url":{"type":"string","description":"The fetched page URL after validation.","example":"https://example.com/article"}},"required":["query","related","url"]},"Search":{"type":"object","description":"Live web search request with cache controls","properties":{"bypassCache":{"type":"boolean","default":false,"description":"Skip cache lookup and refresh from the search provider"},"cacheKey":{"type":["string","null"],"description":"Stable lookup text for cache keying when generated search text varies between runs","example":"OpenAI"},"language":{"type":["string","null"],"description":"Search language code","example":"en"},"region":{"type":["string","null"],"description":"Search region code","example":"us"},"resultLimit":{"type":["integer","null"],"format":"int32","description":"Maximum number of normalized results to keep","example":5},"search":{"type":"string","description":"Search text sent to the upstream web search provider","example":"OpenAI latest funding news"},"source":{"type":["string","null"],"description":"Optional caller identity for source-document attribution and abuse triage. Any non-blank string up to 64 characters is accepted and persisted with the resolved request context.","maxLength":64}},"required":["search"]},"WebSearch":{"type":"object","description":"Live web search result with its backing source-document row and normalized items","properties":{"document":{"$ref":"#/components/schemas/SourceDocumentList","description":"Source-document ledger row backing this result"},"result":{"type":"array","description":"Normalized result items in provider rank order","items":{"$ref":"#/components/schemas/SearchHit"}},"search":{"$ref":"#/components/schemas/Search","description":"Web search request represented by this result"}},"required":["document","result","search"]},"SecCompany":{"type":"object","description":"Public-company identity facts from SEC EDGAR (legal name, former names, ticker, exchange, industry, incorporation, headquarters). SEC supplies no brand name, website, or summary text — those stay enrichment-owned and are not part of this shape.","properties":{"cik":{"type":"string","description":"SEC Central Index Key, 10-digit zero-padded. The stable cross-sync join key.","example":"0000320193"},"ein":{"type":["string","null"],"description":"Employer Identification Number (tax id), when SEC supplies one.","example":"942404110"},"entityType":{"type":["string","null"],"description":"SEC entity type. `operating` marks a real operating company; `other` marks a SPAC, trust, holding, or shell filing vehicle.","example":"operating"},"exchange":{"type":"array","description":"Listing exchange(s).","example":["Nasdaq"],"items":{"type":"string"}},"filerCategory":{"type":["string","null"],"description":"SEC filer size category.","example":"Large accelerated filer"},"fiscalYearEnd":{"type":["string","null"],"description":"Fiscal year-end as MMDD.","example":"0926"},"headquartersCity":{"type":["string","null"],"description":"Headquarters city from the SEC business address.","example":"CUPERTINO"},"headquartersCountry":{"type":["string","null"],"description":"Headquarters country code; often null for US filers.","example":"US"},"headquartersPostalCode":{"type":["string","null"],"description":"Headquarters postal/ZIP code.","example":"95014"},"headquartersState":{"type":["string","null"],"description":"Headquarters state or country from the SEC business address.","example":"CA"},"headquartersStreet":{"type":["string","null"],"description":"Headquarters street address from the SEC business address.","example":"ONE APPLE PARK WAY"},"isOperating":{"type":"boolean","description":"True when SEC classifies this registrant as an operating company, false for a SPAC/trust/holding/shell vehicle."},"matchedVia":{"type":"string","description":"How the query resolved to this registrant.","enum":["TICKER","NAME"]},"nameAlias":{"type":"array","description":"Former registered legal names from SEC `formerNames`, most recent first.","example":["APPLE COMPUTER INC"],"items":{"type":"string"}},"nameLegal":{"type":"string","description":"Registered legal name from SEC filings.","example":"Apple Inc."},"otherCandidate":{"type":"array","description":"Other registrants whose name also matched the query (legal names). Empty for an exact ticker resolution; non-empty signals an ambiguous name query.","items":{"type":"string"}},"phone":{"type":["string","null"],"description":"Business phone from SEC filings.","example":"(408) 996-1010"},"sicCode":{"type":["string","null"],"description":"SIC industry code.","example":"3571"},"sicDescription":{"type":["string","null"],"description":"SIC industry description.","example":"Electronic Computers"},"stateOfIncorporation":{"type":["string","null"],"description":"State or country of incorporation (SEC code).","example":"CA"},"ticker":{"type":"array","description":"Trading ticker symbol(s).","example":["AAPL"],"items":{"type":"string"}}},"required":["cik","exchange","isOperating","matchedVia","nameAlias","nameLegal","otherCandidate","ticker"]},"LocationSitemapBoundaryDetail":{"type":"object","description":"Complete sitemap boundary metadata for a domain O(1) boundary endpoint payload replacing O(N) cursor traversal for sitemap index lastmod generation","properties":{"boundary":{"type":"array","items":{"$ref":"#/components/schemas/LocationSitemapBoundary"}},"size":{"type":"integer","format":"int32"},"total":{"type":"integer","format":"int32"}},"required":["boundary","size","total"]},"LetterCounts":{"type":"object","description":"Per-initial visible-row counts for sitemap directory navigation. Keys are uppercase A–Z initials; values are the visible total for that initial.","properties":{"counts":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"description":"Letter → count map. Keys are single uppercase A–Z characters; missing keys mean zero rows."}},"required":["counts"]},"PageEntitySitemapUrl":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntitySitemapUrl"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"SitemapIndexManifest":{"type":"object","description":"Manifest of dynamic sitemap families with O(1) freshness summaries","properties":{"families":{"type":"array","items":{"$ref":"#/components/schemas/SitemapFamilyEntry"}}},"required":["families"]},"PageSitemapUrlSlot":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/SitemapUrlSlot"}},"empty":{"type":"boolean"},"first":{"type":"boolean"},"last":{"type":"boolean"},"number":{"type":"integer","format":"int32"},"numberOfElements":{"type":"integer","format":"int32"},"pageable":{"$ref":"#/components/schemas/PageableObject"},"size":{"type":"integer","format":"int32"},"sort":{"$ref":"#/components/schemas/SortObject"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}}},"SystemStatus":{"type":"object","description":"Uptime SLA from Better Stack and the identity of the served operation set","properties":{"operationFingerprint":{"type":"string","description":"Short hash identifying the exact set of operations this deployment serves. A generated client stamps the same value from the OpenAPI document it was built from; an unequal value means the client catalog is stale. `vc.aventure.application.usecase.system.status.OperationInventory` owns how it is computed.","example":"3f9a1c7d21b4e6a0"},"uptime":{"$ref":"#/components/schemas/Uptime","description":"Uptime SLA data from Better Stack monitoring"}},"required":["operationFingerprint","uptime"]},"UniqueIdTypeAlias":{"type":"object","description":"Canonical uniqueId type value plus its label, accepted aliases, owner scope, and format pattern.","properties":{"alias":{"type":"array","description":"Alias tokens accepted by the write boundary.","items":{"type":"string"}},"canonical":{"type":"string","description":"Canonical uniqueId type value persisted in id_type."},"label":{"type":"string","description":"Human-readable label."},"ownerScope":{"type":"array","description":"Owner kinds this identifier type may attach to.","items":{"$ref":"#/components/schemas/UniqueIdOwnerScope"}},"pattern":{"type":["string","null"],"description":"Regex the identifier value must match, when constrained."}},"required":["alias","canonical","label","ownerScope"]},"UniqueIdOwnerScope":{"type":"string","description":"Owner kind a unique-id type can attach to: entity or person.","enum":["entity","person"]},"Uptime":{"type":"object","description":"Uptime SLA data from Better Stack monitoring","properties":{"availability":{"type":["number","null"],"format":"double","description":"Uptime percentage"},"downtimeSeconds":{"type":["integer","null"],"format":"int32","description":"Total downtime in seconds","example":151921},"error":{"type":["string","null"],"description":"Error message if unavailable"},"incidents":{"type":["integer","null"],"format":"int32","description":"Number of incidents","example":82}}},"SitemapUrlSlot":{"type":"object","description":"Concrete sitemap URL slot with backend-owned path and lastmod.","properties":{"family":{"$ref":"#/components/schemas/SitemapFamily"},"imagePath":{"type":["string","null"]},"lastUpdatedAt":{"type":"string","format":"date-time"},"path":{"type":"string"},"slotKey":{"type":"string"},"slug":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},"required":["family","lastUpdatedAt","path","slotKey","slug"]},"PageableObject":{"type":"object","properties":{"offset":{"type":"integer","format":"int64"},"pageNumber":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"paged":{"type":"boolean"},"sort":{"$ref":"#/components/schemas/SortObject"},"unpaged":{"type":"boolean"}}},"SortObject":{"type":"object","properties":{"empty":{"type":"boolean"},"sorted":{"type":"boolean"},"unsorted":{"type":"boolean"}}},"SitemapFamily":{"type":"string","description":"Dynamic sitemap family served by the sitemap index manifest","enum":["companyUrl","governmentUrl","nonprofitUrl","investorUrl","person","news","personImage","companyImage","blogArticle","blogCategory","blogTag","locationCountry","locationState","locationCity"]},"SitemapFamilyEntry":{"type":"object","description":"One dynamic sitemap family with its O(1) freshness summary","properties":{"changeFrequency":{"$ref":"#/components/schemas/SitemapChangeFrequency"},"eligibleUrlCount":{"type":"integer","format":"int32","description":"Current number of public URLs eligible for this sitemap family","minimum":0},"family":{"$ref":"#/components/schemas/SitemapFamily"},"indexPath":{"type":"string"},"indexPathMode":{"$ref":"#/components/schemas/SitemapIndexPathMode"},"latestUpdatedAt":{"type":["string","null"],"format":"date-time"},"pageCount":{"type":"integer","format":"int32"},"priority":{"type":"number","format":"double"}},"required":["changeFrequency","eligibleUrlCount","family","indexPath","indexPathMode","pageCount","priority"]},"SitemapChangeFrequency":{"type":"string","description":"sitemaps.org <changefreq> token","enum":["always","hourly","daily","weekly","monthly","yearly","never"]},"SitemapIndexPathMode":{"type":"string","description":"How the sitemap index path should be expanded by the front-end sitemap builder","enum":["pageBase","singleFile"]},"EntitySitemapUrl":{"type":"object","description":"Concrete entity sitemap URL slot with backend-owned path and lastmod.","properties":{"entityId":{"type":"string","format":"uuid","description":"Entity that owns this sitemap URL slot."},"lastUpdatedAt":{"type":"string","format":"date-time","description":"Latest backend update timestamp affecting this concrete URL."},"path":{"type":"string","description":"Backend-owned public path, relative to the production origin."},"productServiceSlug":{"type":["string","null"],"description":"Product/service child slug for productService slots.","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"},"slotKey":{"type":"string","description":"Stable cursor and dedupe key for this sitemap URL slot."},"slug":{"type":"string","description":"Canonical entity slug.","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"},"typeRecord":{"$ref":"#/components/schemas/EntityType","description":"Canonical entity type for the owning entity."},"urlType":{"$ref":"#/components/schemas/EntitySitemapUrlType","description":"Kind of entity URL represented by this slot."}},"required":["entityId","lastUpdatedAt","path","slotKey","slug","typeRecord","urlType"]},"EntitySitemapUrlType":{"type":"string","description":"Canonical entity sitemap URL slot kind.","enum":["overview","acquisitions","analysis","fundraising","employees","news","productService"]},"LocationSitemapBoundary":{"type":"object","description":"Sitemap page boundary with page number and latest timestamp","properties":{"latestUpdatedAt":{"type":"string","format":"date-time"},"nextCursor":{"type":["string","null"]},"page":{"type":"integer","format":"int32"}},"required":["latestUpdatedAt","page"]},"SourceDocumentList":{"type":"object","description":"Metadata-only ledger row for source-document lists","properties":{"cacheHitCount":{"type":"integer","format":"int32"},"createdAt":{"type":"string","format":"date-time"},"documentType":{"type":"string"},"expiresAt":{"type":["string","null"],"format":"date-time"},"httpStatus":{"type":["integer","null"],"format":"int32"},"id":{"type":"string","format":"uuid","description":"Document id"},"lastAccessedAt":{"type":["string","null"],"format":"date-time"},"provider":{"type":"string"},"providerRequestId":{"type":["string","null"]},"rawByteCount":{"type":["integer","null"],"format":"int64"},"rawCharset":{"type":["string","null"]},"rawMediaType":{"type":["string","null"]},"sourceKey":{"type":"string","description":"Canonical fetch identity: canonical URL, query hash, or dataset + external id"},"upstreamContentEncoding":{"type":["string","null"]}},"required":["cacheHitCount","createdAt","documentType","id","provider","sourceKey"]},"SearchHit":{"type":"object","description":"One normalized web-search hit with its title, URL, snippet, and relevance score","properties":{"relevanceScore":{"type":"number","format":"double"},"snippet":{"type":"string"},"title":{"type":"string"},"url":{"type":"string"}},"required":["relevanceScore","snippet","title","url"]},"PageResultNews":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/News"}},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}},"required":["content","number","size","totalElements","totalPages"]},"FederatedSearchProvenance":{"type":"object","description":"Requested and executed search strategy for every federated scope.","properties":{"entity":{"$ref":"#/components/schemas/SearchModeExecution","description":"Entity search strategy execution."},"news":{"$ref":"#/components/schemas/SearchModeExecution","description":"News search strategy execution."},"person":{"$ref":"#/components/schemas/SearchModeExecution","description":"Person search strategy execution."}},"required":["entity","news","person"]},"SearchModeExecution":{"type":"object","description":"Search strategy requested by the caller and executed by the canonical engine.","properties":{"modeRequested":{"$ref":"#/components/schemas/SearchMode","description":"Search mode requested by the caller."},"modeUsed":{"$ref":"#/components/schemas/SearchMode","description":"Search mode executed by the canonical engine."}},"required":["modeRequested","modeUsed"]},"News":{"type":"object","description":"Canonical news owner for list and core semantics","properties":{"author":{"type":["string","null"]},"category":{"type":["string","null"]},"createdAt":{"type":["string","null"],"format":"date-time"},"excerpt":{"type":["string","null"],"description":"Article summary from the source publication feed; null means the feed supplied no description (expected absence, not an error) — full text is NewsDetail.content"},"externalNewsArticle":{"type":["boolean","null"]},"id":{"type":"integer","format":"int32","description":"Type-safe identifier for news articles"},"newsImageThumbnail":{"type":["string","null"]},"newsUrlOriginal":{"type":["string","null"]},"pendingApproval":{"type":["integer","null"],"format":"int32"},"publication":{"type":["string","null"]},"publishedAt":{"type":["string","null"],"format":"date-time"},"slug":{"type":["string","null"],"description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"},"title":{"type":"string","description":"Article headline; the headline field is title"},"updatedAt":{"type":["string","null"],"format":"date-time"}},"required":["id","title"]},"EntityPersonOwner":{"type":"object","description":"Exactly one of entityId or personId is set; ids only, no name fields. Resolve display names with GET /v1/entities/detail or GET /v1/people/detail.","properties":{"entityId":{"type":["string","null"],"format":"uuid","description":"Canonical entity UUID"},"personId":{"type":["string","null"],"format":"uuid","description":"Canonical person UUID"}}},"DatasourceProvenanceActor":{"type":"object","description":"Authenticated actor that authored a provenance write event","properties":{"agent":{"oneOf":[{"$ref":"#/components/schemas/DatasourceAgentIdentity"},{"type":"null"}]},"displayName":{"type":"string"},"employeeDisplayName":{"type":["string","null"]},"employeeUserId":{"type":["string","null"]},"type":{"$ref":"#/components/schemas/DatasourceProvenanceActorType"}},"required":["displayName","type"]},"DatasourceProvenanceFieldChange":{"type":"object","description":"One changed field inside a provenance write event","properties":{"fieldName":{"type":"string"},"newPresent":{"type":"boolean"},"newValue":{"type":["string","null"]},"oldPresent":{"type":"boolean"},"oldValue":{"type":["string","null"]}},"required":["fieldName","newPresent","oldPresent"]},"DatasourceProvenanceOperation":{"type":"string","description":"Write operation captured by a provenance event row","enum":["insert","update","delete"]},"DatasourceProvenanceSource":{"type":"object","description":"Write provenance supplied on mutation query parameters.","properties":{"actorType":{"$ref":"#/components/schemas/DatasourceProvenanceActorType","description":"Actor type; inferred as agent when agentChassis and agentModel are supplied, or as employee from an authenticated user JWT session.","example":"agent"},"agentChassis":{"type":["string","null"],"description":"Agent chassis token for agent-authored writes.","example":"codex-cli"},"agentModel":{"type":["string","null"],"description":"Agent model id for agent-authored writes."},"sourceDetail":{"type":"string","description":"Source detail or reviewer reference for the write.","example":"aventure.vc"},"sourceProvider":{"type":["string","null"],"description":"Provider name for provider-native IDs or slugs.","example":"TechCrunch"},"sourceProviderId":{"type":["string","null"],"description":"Provider-native source ID.","example":"tc-2026-05-20-example-round"},"sourceProviderSlug":{"type":["string","null"],"description":"Provider-native source slug.","example":"example-round"},"sourceType":{"$ref":"#/components/schemas/DatasourceDataSourceType","description":"Write provenance source type.","example":"aventureStaff"}},"required":["sourceDetail","sourceType"]},"DatasourceProvenanceStatus":{"type":"string","description":"Confidence and dispute state of a field-level provenance row","enum":["unconfirmed","confirmed","disputedFirstParty","disputedRelatedParty","disputedThirdParty","disputedAnonymous"]},"DatasourceProvenanceActorType":{"type":"string","description":"Actor boundary for a provenance write event","enum":["agent","employee"]},"DatasourceDataSourceType":{"type":"string","description":"Full read/storage source type for field-level provenance rows. Write query parameters use DatasourceWritableDataSourceType.","enum":["requestChangeForm","newsArticle","blogArticle","firstPartyWebsite","relatedPartyWebsite","thirdPartyWebsite","llm","aventureStaff","api","manual","import"]},"DatasourceAgentIdentity":{"type":"object","description":"Validated automated-agent attribution for a write request. Travels on agentChassis and agentModel query parameters; actorType is not required at the OpenAPI/HTTP layer only because the web boundary infers actorType=agent from this complete pair before the domain factory and persistence write lane enforce actor context. Chassis is a CLI/SDK token, modelFamily is the derived LLM family prefix, and model is the full model identifier.","properties":{"chassis":{"type":"string","description":"Wire token from app.contracts.agent-provenance.chassis keys.","example":"claude-code"},"model":{"type":"string","description":"Full agent model identifier with the family prefix preserved."},"modelFamily":{"type":"string","description":"Model family derived from the leading token of the model identifier.","example":"claude"}},"required":["chassis","model","modelFamily"]},"PersonSimilarityResult":{"type":"object","description":"Similar person list row with the provenance that explains why it appears. Rows carry the canonical Person projection; load full detail through the person detail endpoints.","properties":{"currentRole":{"description":"Current titled association for the similar-person card; null when no current titled role is available.","oneOf":[{"$ref":"#/components/schemas/EntityPersonAssociation"},{"type":"null"}]},"person":{"$ref":"#/components/schemas/Person"},"similarity":{"$ref":"#/components/schemas/PersonSimilarityContext"}},"required":["person","similarity"]},"Person":{"type":"object","description":"Canonical person core record","properties":{"createdAt":{"type":["string","null"],"format":"date-time","description":"Record creation timestamp"},"gender":{"type":["string","null"]},"id":{"type":"string","format":"uuid","description":"Canonical person UUID"},"image":{"$ref":"#/components/schemas/PersonImage"},"lastModifiedAt":{"type":["string","null"],"format":"date-time","description":"Provenance-grounded last-modified watermark (schema.org dateModified): the latest effective time across all writes attributed to this person."},"nameAlias":{"type":"array","description":"Display and search aliases for this person","items":{"$ref":"#/components/schemas/EntityNameAliasPersonAliasType"}},"nameFirst":{"type":["string","null"]},"nameFull":{"type":"string"},"nameLast":{"type":["string","null"]},"nameMiddle":{"type":["string","null"]},"nickname":{"type":["string","null"]},"publicId":{"type":["string","null"],"description":"Stable, immutable public handle (e.g. `pV1StGXR8Z5ab`). Never changes once assigned, unlike the slug. Null on projections that do not select it and on rows still awaiting handle backfill.","example":"pV1StGXR8Z5ab","pattern":"^p[0-9A-Za-z]{12}$"},"semanticMatch":{"description":"Semantic embedding match evidence populated only for semantic people reads.","oneOf":[{"$ref":"#/components/schemas/ContentEmbeddingMatch"},{"type":"null"}]},"slug":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"},"source":{"$ref":"#/components/schemas/DatasourceSourceMetadata"},"suffix":{"type":["string","null"]},"text":{"$ref":"#/components/schemas/EntityTextBundle","description":"Grouped person text content"},"updatedAt":{"type":["string","null"],"format":"date-time","description":"Last modification timestamp"}},"required":["id","image","nameAlias","nameFull","slug","source","text"]},"PersonSimilarityContext":{"type":"object","description":"Per-row provenance for a similar-person result.","properties":{"compositeScore":{"type":["number","null"],"format":"double","description":"Composite section-fusion similarity score."},"cosineScore":{"type":["number","null"],"format":"double","description":"Cosine similarity score where higher is closer."},"matchedSectionWeight":{"type":["number","null"],"format":"double","description":"Total normalized source-section weight matched."},"origin":{"$ref":"#/components/schemas/PersonSimilarityOrigin"},"rank":{"type":"integer","format":"int32","description":"1-based position in the merged result page"},"sharedSectionCount":{"type":["integer","null"],"format":"int32","description":"Number of source/target sections compared."}},"required":["origin","rank"]},"PersonSimilarityOrigin":{"type":"string","description":"Provenance origin for a similar-person result row.","enum":["precomputed","live"]},"PersonImage":{"type":"object","description":"Read projection: person image fields for detail/list responses","properties":{"isMonogram":{"type":"boolean","description":"Whether person image monogram"},"picture":{"type":["string","null"]}},"required":["isMonogram"]},"EntityNameAliasPersonAliasType":{"type":"object","description":"Alternate name used for search and display","properties":{"displayable":{"type":["boolean","null"],"description":"Show this alias in public name displays.","example":true},"name":{"type":"string","description":"Alternate name text","example":"Bun"},"type":{"description":"Alias type classification","oneOf":[{"$ref":"#/components/schemas/PersonAliasType"},{"type":"null"}]}},"required":["name"]},"ContentEmbeddingMatch":{"type":"object","description":"Nearest-neighbor content embedding match evidence.","properties":{"computedAt":{"type":"string","format":"date-time","description":"Timestamp when the embedding row was computed."},"cosineDistance":{"type":"number","format":"double","description":"pgvector cosine distance where lower is closer."},"cosineScore":{"type":"number","format":"double","description":"Cosine similarity score where higher is closer."},"modelVersion":{"type":"string","description":"Embedding model/profile version for this row."},"rank":{"type":"integer","format":"int32","description":"One-based semantic rank within the returned ANN candidate set."},"sourceHash":{"type":"string","description":"SHA-256 hash of the source content."},"sourceId":{"type":"string","description":"Content embedding source identifier."},"sourceJson":{"type":"string","description":"Serialized JSONB source document stored for the embedding row."},"sourceText":{"type":"string","description":"Source text used to compute the stored embedding."},"sourceType":{"$ref":"#/components/schemas/ContentSourceType","description":"Stored content embedding source partition."}},"required":["computedAt","cosineDistance","cosineScore","modelVersion","rank","sourceHash","sourceId","sourceJson","sourceText","sourceType"]},"EntityTextBundle":{"type":"object","description":"Grouped entity/person text content","properties":{"expanded":{"type":["string","null"],"description":"Expanded summary text","example":"Canonical expanded summary for grouped text assertions."},"generatedDescription":{"type":["string","null"],"description":"Generated SEO meta description text","example":"Acme AI builds AI copilots for growth teams."},"short":{"type":["string","null"],"description":"Short summary text","example":"Canonical short summary"}}},"ContentSourceType":{"type":"string","description":"Discriminator for unified content embedding source partitions","enum":["entity","person","newsArticle","blogPost","text","classificationTag","classificationCode","product","service","agentHelpDoc"]},"PersonAliasType":{"type":"string","description":"Alias types for person NameAlias","enum":["nickname","maidenName","formerName","stageName"]},"PersonGraphCareerContext":{"type":"object","description":"Entity facts, recent news, colleagues, and similar entities for one associated entity","properties":{"colleague":{"type":"array","description":"People associated with the same entity, excluding the subject person, ranked by currency and recency","items":{"$ref":"#/components/schemas/PersonGraphMember"}},"employeeCount":{"description":"Most recent employee-count research fact when one is recorded","oneOf":[{"$ref":"#/components/schemas/EmployeeCount"},{"type":"null"}]},"entity":{"$ref":"#/components/schemas/EntityFundraiseTransactionEntity","description":"Entity card projection: core identity plus aggregate funding rollup"},"primaryAddress":{"description":"Primary address of the entity when one is recorded","oneOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]},"recentNews":{"type":"array","description":"Most recent news linked to the entity, newest first","items":{"$ref":"#/components/schemas/News"}},"similarEntity":{"type":"array","description":"Entities similar to this entity, from the entity similarity rails","items":{"$ref":"#/components/schemas/PersonGraphSimilarEntity"}}},"required":["colleague","entity","recentNews","similarEntity"]},"PersonGraphCoInvestor":{"type":"object","description":"Person who co-invested with the subject, with the shared context","properties":{"overlapCount":{"type":"integer","format":"int32","description":"Number of shared fundraise transactions between the two people"},"person":{"$ref":"#/components/schemas/PersonGraphMember","description":"Co-investing person rail member"},"round":{"type":["string","null"],"description":"Round label of the shared fundraise transaction"},"sharedEntity":{"description":"Entity whose fundraise both people participated in (association projection)","oneOf":[{"$ref":"#/components/schemas/Entity"},{"type":"null"}]},"transactionId":{"type":["string","null"],"format":"uuid","description":"Shared fundraise transaction id"}},"required":["overlapCount","person"]},"PersonGraphMember":{"type":"object","description":"Lean person rail member with association title facts","properties":{"isCurrent":{"type":["boolean","null"]},"personId":{"type":"string","format":"uuid","description":"Associated person id"},"personImage":{"$ref":"#/components/schemas/PersonImage","description":"Person image projection"},"personName":{"type":"string","description":"Person display name"},"personSlug":{"type":"string","description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"},"titleName":{"type":["string","null"],"description":"Read-side corporate title text for the association row"}},"required":["personId","personImage","personName","personSlug"]},"Entity":{"type":"object","description":"Flat entity core record — identity, naming, status, image, and source metadata. An entity is our umbrella record for organizations such as companies, funds, investment firms and investors, accelerators, nonprofits, and government agencies, plus products and services connected to those organizations. Returned directly by thin-mode (?mode=thin) and alphabetical (?letter=X) list endpoints. Nested as .core inside EntityList for default list reads and EntityDetail for detail reads.","properties":{"createdAt":{"type":["string","null"],"format":"date-time","description":"Record creation timestamp"},"defaultCurrency":{"type":["string","null"],"description":"Default currency code (ISO 4217)"},"foundedYear":{"type":["integer","null"],"format":"int32","description":"Year the entity was founded"},"id":{"type":"string","format":"uuid","description":"Unique entity identifier"},"image":{"$ref":"#/components/schemas/EntityImage","description":"Logo and monogram image metadata"},"lastModifiedAt":{"type":["string","null"],"format":"date-time","description":"Provenance-grounded last-modified watermark (schema.org dateModified). Advances only when a real, consumer-meaningful data point changes via a recorded provenance event — never on timestamp-only writes, migrations, or index refreshes. Pairs with createdAt (dateCreated) and grounds the sitemap lastmod."},"nameAlias":{"type":"array","description":"All names this entity has been known by — current alternates, DBAs, former names, and rebrand-source identities. Naming history (e.g. `Metaphor Systems` for the current `Exa` entity) lives here; never as a separate relationship type or `formerName` field.","items":{"$ref":"#/components/schemas/EntityNameAliasEntityAliasType"}},"nameBrand":{"type":"string","description":"Resolved display brand name"},"nameLegal":{"type":["string","null"],"description":"Registered legal name"},"operatingStatus":{"type":["string","null"],"description":"Current operating status. Use Acquired Subsidiary when the entity was acquired and still operates; use Closed (Acquihire) when the entity was acquired for its team and shut down, rendering like Closed everywhere; use Acquired only when it is terminal, folded, or closed."},"publicId":{"type":["string","null"],"description":"Stable, immutable public handle (e.g. `eV1StGXR8Z5a`). Never changes once assigned, unlike the slug. Null on projections that do not select it and on rows still awaiting handle backfill.","example":"eV1StGXR8Z5a","pattern":"^e[0-9A-Za-z]{11}$"},"publicUrl":{"type":["string","null"],"description":"Absolute public profile URL on the aVenture front-end, e.g. `https://aventure.vc/non-profits/{slug}`, derived from the typeRecord\'s canonical route family. Null when the route needs relationship context or the record has no direct public SSR route (Business Line, Organization, Product, Service, or a non-public slug). EntityDetail.publicUrl resolves Business Line parent context. Product/Service pages are provider-nested: compose the provider entity\'s publicUrl + `/products-services/` + this record\'s slug, or consume the sitemap-urls slot paths, which already emit the composed child routes."},"sitemap":{"description":"Sub-route eligibility, populated by the sitemap projection. Null on non-sitemap reads to keep thin payloads compact.","oneOf":[{"$ref":"#/components/schemas/EntitySitemap"},{"type":"null"}]},"slug":{"type":"string","description":"URL-safe identifier","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"},"typeRecord":{"description":"Entity type classification","oneOf":[{"$ref":"#/components/schemas/EntityType"},{"type":"null"}]},"updatedAt":{"type":["string","null"],"format":"date-time","description":"Last modification timestamp"}},"required":["id","image","nameAlias","nameBrand","slug"]},"EntityImage":{"type":"object","description":"Grouped entity image fields for square, standard, and monogram logo state","properties":{"isMonogram":{"type":"boolean","description":"Whether entity image monogram"},"logo":{"type":["string","null"]},"logoSquare":{"type":["string","null"]}},"required":["isMonogram"]},"EntityNameAliasEntityAliasType":{"type":"object","description":"Alternate name used for search and display","properties":{"displayable":{"type":["boolean","null"],"description":"Show this alias in public name displays.","example":true},"name":{"type":"string","description":"Alternate name text","example":"Bun"},"type":{"description":"Alias type classification","oneOf":[{"$ref":"#/components/schemas/EntityAliasType"},{"type":"null"}]}},"required":["name"]},"EntitySitemap":{"type":"object","description":"Sub-route eligibility GATE for sitemap.xml emission, not a write receipt. Each boolean is true only when the underlying rows EXIST AND every entity that sub-route renders (this entity and any counterpart, e.g. the acquired/acquirer company behind `hasAcquisitions`) currently passes publication visibility (not hidden, on sitemap). A `false` flag when you know the data exists means an unmet visibility prerequisite -- publish the hidden entity -- confirmed against the owning command-side read; it is an active gate result, not refresh lag, and a flag being `false` says nothing succeeded-and-is-fine. Served from a materialized projection (`mv_entity_sitemap_url_slots`) refreshed asynchronously, so a `true` flag can trail a gate that was just satisfied, but a successful write alone does not flip any flag.","properties":{"hasAcquisitions":{"type":"boolean","default":false,"description":"Whether `/companies/<slug>/acquisitions` should be emitted. True only when an acquisition relationship exists AND both the acquired and acquirer entities are publicly visible. A confirmed acquisition relationship row with this flag `false` (or with `entities acquisitions list` returning zero rows) means a counterpart entity is still hidden -- publish it -- it is a visibility gate, not list lag."},"hasAnalysis":{"type":"boolean","description":"Whether the profile Analysis sub-route should be emitted."},"hasEmployees":{"type":"boolean","description":"Whether the profile Employees sub-route should be emitted."},"hasFundraising":{"type":"boolean","description":"Whether the profile Fundraising sub-route should be emitted."},"hasNews":{"type":"boolean","description":"Whether the profile News sub-route should be emitted."},"productServiceSlug":{"type":"array","description":"Slugs of related Product/Service entities that should each get their own `/companies/<slug>/products-services/<productSlug>` URL, capped at `MAX_PRODUCT_SERVICE_SLUGS` server-side. Derived from current `productService` relationships in either stored direction; the entity relationships resource is the authoritative, read-your-writes view of those joins.","items":{"type":"string"}}},"required":["hasAnalysis","hasEmployees","hasFundraising","hasNews","productServiceSlug"]},"EntityAliasType":{"type":"string","description":"Alias types for entity NameAlias","enum":["alternativeDba","relatedLegal"]},"EmployeeCount":{"type":"object","description":"Employee-count time-series point for an entity","properties":{"asOfDate":{"type":"string","format":"date-time"},"fact":{"$ref":"#/components/schemas/EntityResearchFactValue"},"id":{"type":"string"}},"required":["asOfDate","fact","id"]},"EntityFundraiseTransactionEntity":{"type":"object","description":"Entity projection used inside FundraiseTransaction responses","properties":{"core":{"$ref":"#/components/schemas/Entity"},"fundingDetail":{"oneOf":[{"$ref":"#/components/schemas/EntityFundingDetail"},{"type":"null"}]}},"required":["core"]},"PersonGraphSimilarEntity":{"type":"object","description":"Similar-entity card with its key people","properties":{"entity":{"$ref":"#/components/schemas/EntityFundraiseTransactionEntity","description":"Entity card projection: core identity plus aggregate funding rollup"},"keyPerson":{"type":"array","description":"Top-ranked current people at the similar entity","items":{"$ref":"#/components/schemas/PersonGraphMember"}}},"required":["entity","keyPerson"]},"EntityFundingDetail":{"type":"object","description":"Aggregate view of an entity\'s fundraising activity","properties":{"fundingRoundCount":{"type":"integer","format":"int32"},"investorCount":{"type":"integer","format":"int32"},"latestValuation":{"type":["number","null"]},"mostRecentAmount":{"type":["number","null"]},"mostRecentDate":{"type":["string","null"],"format":"date"},"stage":{"oneOf":[{"$ref":"#/components/schemas/FundingStage"},{"type":"null"}]},"totalRaised":{"type":"number"}},"required":["fundingRoundCount","investorCount","totalRaised"]},"FundingStage":{"type":"string","description":"Canonical inferred equity, entity-type, or Company operating-status stage emitted by the entity fundraise rollup. Transaction classifications such as Debt, IPO, and Acquisition are not entity stages.","enum":["Angel","Pre-Seed","Seed","Series A","Series B","Series C","Series D","Series E","Series F","Series G","Series H","Series I","Series J","Series K","Series L","Series M","Series N","Series O","Series P","Series Q","Series R","Series S","Series T","Series U","Series V","Series W","Series X","Series Y","Series Z","Investment Firm","Fund","Nonprofit","Government","Public","Acquired","Acquired Subsidiary"]},"EntityResearchFactValue":{"type":"object","description":"Canonical typed fact value nested under entity research fields","properties":{"asOfDate":{"type":["string","null"],"format":"date-time"},"dataConfidence":{"oneOf":[{"$ref":"#/components/schemas/EntityValuationDataConfidence"},{"type":"null"}]},"dateValue":{"type":["string","null"],"format":"date-time"},"numericValue":{"type":["number","null"],"format":"double"},"referenceValue":{"type":["string","null"]},"source":{"type":["string","null"]},"textValue":{"type":["string","null"]},"updatedAt":{"type":["string","null"],"format":"date-time"},"valueType":{"$ref":"#/components/schemas/EntityResearchValueType"}},"required":["valueType"]},"EntityValuationDataConfidence":{"type":"string","description":"Confidence tier stored verbatim in res_entity_detail.data_confidence.","enum":["low","medium","high"]},"EntityResearchValueType":{"type":"string","description":"Output kind for governed research detail values","enum":["text","numeric","monetary","percentage","date"]},"PersonSearchInterpretation":{"type":"object","description":"Structured interpretation of a natural-language people search: canonical filter, sort, confidence, and any unsupported constraint the planner could not translate exactly.","properties":{"confidence":{"$ref":"#/components/schemas/Confidence","description":"Planner confidence in the structured interpretation."},"execution":{"$ref":"#/components/schemas/SearchModeExecution","description":"Requested and executed search strategy."},"fallbackUsed":{"type":"boolean","description":"True when the semantic fallback replaced an unconstrained planner result with a semantic search over the original query."},"filter":{"$ref":"#/components/schemas/PersonFilter","description":"Canonical person filter generated from the natural-language query."},"interpretation":{"type":"string","description":"Human-readable summary of how the query was interpreted."},"sort":{"$ref":"#/components/schemas/SearchOrderingPersonSortField","description":"Ordering applied to the result page: the relevance rank that ran first, if any, then the sortable-column terms."},"unsupported":{"type":["string","null"],"description":"Constraint the planner could not translate into the canonical PersonFilter contract; null when every material constraint was supported."}},"required":["confidence","execution","fallbackUsed","filter","interpretation","sort"]},"PageResultPerson":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/Person"}},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}},"required":["content","number","size","totalElements","totalPages"]},"Confidence":{"type":"string","description":"Three-level confidence band for a classifier, model, or probe verdict. The carrying property states what is assessed and what each band licenses.","enum":["HIGH","MEDIUM","LOW"]},"SearchOrderingPersonSortField":{"type":"object","description":"Ordering applied to a search result page: an optional relevance rank that precedes the sortable-column terms.","properties":{"order":{"type":"array","description":"Sortable-column terms applied after the relevance rank, highest precedence first. Empty when the relevance rank alone ordered the page. Listing priorities that every list page applies ahead of these terms, such as operating-status and logo priority, are not reported.","items":{"$ref":"#/components/schemas/SortOrderPersonSortField"}},"relevance":{"description":"Relevance rank applied before any column term; absent when no relevance rank ran.","oneOf":[{"$ref":"#/components/schemas/SearchRelevance"},{"type":"null"}]}},"required":["order"]},"SortOrderPersonSortField":{"type":"object","description":"Single sort term: which enumerated sort field to use and whether direction is descending.","properties":{"descending":{"type":"boolean","description":"true for descending (DESC), false for ascending (ASC)"},"field":{"type":"string","description":"Sort field for this resource (entity list uses EntityFilter.Sortable / published sort keys).","enum":["ID","FIRST_NAME","LAST_NAME","FULL_NAME","SLUG","CREATED_AT","UPDATED_AT","STATUS","GENDER","AMOUNT_INVESTED","TOTAL_INVESTMENTS"]}},"required":["descending","field"]},"SearchRelevance":{"type":"string","description":"Relevance rank that ordered a search page before any sortable column.","enum":["keyword","semantic"]},"PersonInvestment":{"type":"object","description":"Domain model for a person\'s investment in an entity (fundraise transaction)","properties":{"amount":{"type":["number","null"]},"company":{"$ref":"#/components/schemas/PersonInvestedCompany"},"date":{"type":["string","null"],"format":"date-time"},"fundraiseTransaction":{"oneOf":[{"$ref":"#/components/schemas/EntityFundraise"},{"type":"null"}]},"fundraiseTransactionId":{"type":"string","format":"uuid","description":"Canonical fundraise transaction UUID"},"id":{"type":"string"},"investmentDate":{"type":"string","format":"date-time"},"investorAttribution":{"description":"Investor-specific attribution for this person\'s participation in the fundraise round. amountInvested is a plain decimal number in the fundraise transaction currency and is not added to amount.","oneOf":[{"$ref":"#/components/schemas/FundraiseInvestmentAttribution"},{"type":"null"}]},"round":{"type":["string","null"]}},"required":["company","fundraiseTransactionId","id","investmentDate"]},"PersonInvestedCompany":{"type":"object","description":"Company metadata associated with a person investment","properties":{"entity":{"$ref":"#/components/schemas/Entity"}},"required":["entity"]},"EntityFundraise":{"type":"object","description":"Fundraise transaction metadata linked to a person investment","properties":{"amountRaised":{"type":["number","null"]},"dateAnnounced":{"type":["string","null"],"format":"date-time"},"id":{"type":"string","format":"uuid","description":"Canonical fundraise transaction UUID"},"image":{"$ref":"#/components/schemas/EntityImage"},"investorCount":{"type":["integer","null"],"format":"int32"},"nameBrand":{"type":"string"},"round":{"type":["string","null"]},"status":{"type":["string","null"]},"valuationPostMoney":{"type":["number","null"]}},"required":["id","image","nameBrand"]},"FundraiseInvestmentAttribution":{"type":"object","description":"Investor-specific attribution for one fundraise participation row","properties":{"amountInvested":{"type":["number","null"],"description":"Investor-level attributed amount invested in the fundraise transaction currency. Serialized as a plain JSON number such as 220000 or 123456.78; no currency sign, currency code, comma grouping, or abbreviated amount text is valid."},"attributionType":{"$ref":"#/components/schemas/FundraiseInvestmentAttributionType","description":"How this attribution row participates in the investor view."},"beneficialEntityId":{"type":["string","null"],"format":"uuid","description":"Investment firm entity receiving the rollup attribution."},"fundManagerRelationshipId":{"type":["integer","null"],"format":"int32","description":"Fund-manager relationship id when the attribution rolls up through a managed fund."},"joinId":{"type":"string","format":"uuid","description":"Fundraise investor join identifier"},"leadInvestor":{"type":"boolean","description":"Whether this investor is the lead investor for the round — the lead/anchor investor that set the round terms or made the primary commitment."},"recordedEntityId":{"type":["string","null"],"format":"uuid","description":"Entity recorded directly on the fundraise investor join."},"round":{"description":"Round label for the attributed participation","oneOf":[{"$ref":"#/components/schemas/RoundLabel"},{"type":"null"}]},"transactionId":{"type":"string","format":"uuid","description":"Fundraise transaction identifier"}},"required":["attributionType","joinId","leadInvestor","transactionId"]},"FundraiseInvestmentAttributionType":{"type":"string","description":"How a fundraise investor attribution row was selected for an investor view.","enum":["direct","managedFund"]},"RoundLabel":{"type":"object","description":"Round participation label - shared by entity and person investor participation","properties":{"round":{"type":"string"}},"required":["round"]},"PersonEnrichment":{"type":"object","description":"Supplemental person data — addresses and URL links","properties":{"address":{"type":"array","description":"Addresses associated with the person","items":{"$ref":"#/components/schemas/Address"}},"urlLink":{"type":"array","description":"External and social URL links associated with the person","items":{"$ref":"#/components/schemas/EntityUrlLink"}}},"required":["address","urlLink"]},"PersonListArrayFilter":{"type":"object","description":"Array and range filters for person list endpoints","properties":{"amountInvestedRange":{"type":["array","null"],"items":{"$ref":"#/components/schemas/DecimalRange"}},"amountRaisedRange":{"type":["array","null"],"items":{"$ref":"#/components/schemas/DecimalRange"}},"entityName":{"type":["array","null"],"description":"Associated entity names.","items":{"type":"string"}},"investedCompany":{"type":["array","null"],"description":"Invested company names.","items":{"type":"string"}},"personTitle":{"type":["array","null"],"description":"Person titles.","items":{"type":"string"}},"round":{"type":["array","null"],"description":"Fundraise round labels.","items":{"type":"string"}},"totalInvestmentCount":{"type":["array","null"],"items":{"$ref":"#/components/schemas/IntRange"}},"typeRecord":{"type":["array","null"],"description":"Associated entity type scope. Omit or use [] for any associated type.","items":{"$ref":"#/components/schemas/EntityType"}}}},"InvestorActivityFilter":{"type":"object","description":"Aggregate investor activity filters from distinct fundraise deals and USD amounts.","properties":{"averageAmountInvestedUsdRange":{"type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}},"largestAmountInvestedUsdRange":{"type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}},"smallestAmountInvestedUsdRange":{"type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}},"totalAmountInvestedUsdRange":{"type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}},"totalInvestmentRange":{"type":"array","items":{"$ref":"#/components/schemas/IntRange"}}}},"NewsResolvedEntityLink":{"type":"object","description":"Resolved entity mention in news content - hyperlink to an entity detected in article text - matchType: composite format \\"status:score|quote=evidence|user=email|at=timestamp\\" - m...","properties":{"createdAt":{"type":"string","format":"date-time"},"entityId":{"type":"string","format":"uuid","description":"Canonical entity UUID"},"href":{"type":["string","null"]},"internal":{"type":"boolean"},"matchScore":{"type":["number","null"],"format":"double"},"matchType":{"type":["string","null"]},"mention":{"type":["string","null"]},"slug":{"type":["string","null"],"description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"},"typeRecord":{"oneOf":[{"$ref":"#/components/schemas/EntityType"},{"type":"null"}]},"updatedAt":{"type":"string","format":"date-time"}},"required":["createdAt","entityId","internal","updatedAt"]},"NewsResolvedPersonLink":{"type":"object","description":"Resolved person mention in news content - hyperlink to a person detected in article text","properties":{"createdAt":{"type":"string","format":"date-time"},"href":{"type":["string","null"]},"matchScore":{"type":["number","null"],"format":"double"},"matchType":{"type":["string","null"]},"mention":{"type":["string","null"]},"personId":{"type":"string","format":"uuid","description":"Canonical person UUID"},"slug":{"type":["string","null"],"description":"Canonical lowercase URL slug for the resource","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"},"updatedAt":{"type":"string","format":"date-time"}},"required":["createdAt","personId","updatedAt"]},"EntityValuationTimeSeriesPoint":{"type":"object","description":"A single valuation datapoint. `valuationPostMoney` is the canonical charted value; filled when directly recorded or safely derivable from pre-money + amount raised (same currency only). `derivation` explains whether the value was stored or inferred. Only `researchDetail` points have a `detailId` and can be changed here; `fundraiseRound` points are changed through fundraise-round commands.","properties":{"amountRaised":{"type":["integer","null"],"format":"int64","description":"Amount raised in the same currency, only for fundraise rows."},"asOfDate":{"type":"string","format":"date-time","description":"Effective timestamp for this valuation datapoint."},"confidence":{"$ref":"#/components/schemas/EntityValuationDataConfidence","description":"Confidence tier for this datapoint."},"currency":{"type":"string","description":"ISO 4217 currency code."},"declaredBasis":{"$ref":"#/components/schemas/ValuationType","description":"Basis declared by the original source."},"derivation":{"$ref":"#/components/schemas/EntityValuationDerivation","description":"How pre-money and post-money fields were obtained."},"detailId":{"type":["integer","null"],"format":"int32","description":"Research detail id for stated valuation rows. Null for fundraise-derived rows, which cannot be updated or deleted on this valuation surface."},"label":{"type":["string","null"],"description":"Fundraise round label or legacy detail display text, when present."},"source":{"$ref":"#/components/schemas/EntityValuationSource","description":"Canonical store that supplied the point."},"sourceRef":{"type":"string","description":"`detail-<id>` or `fundraise-<transactionId>` display reference."},"valuationPostMoney":{"type":["integer","null"],"format":"int64","description":"Post-money valuation in full currency units, when known."},"valuationPreMoney":{"type":["integer","null"],"format":"int64","description":"Pre-money valuation in full currency units, when known."}},"required":["asOfDate","confidence","currency","declaredBasis","derivation","source","sourceRef"]},"ValuationType":{"type":"string","description":"Which side of the pre/post relationship the source declared.","enum":["preMoney","postMoney","reported"]},"EntityValuationDerivation":{"type":"string","description":"How the point\'s valuationPostMoney and valuationPreMoney were obtained.","enum":["stored","derivedFromPreAndRaised","derivedFromPostMinusRaised","reportedAssumedPost"]},"EntityValuationSource":{"type":"string","description":"Which canonical store the point came from.","enum":["fundraiseRound","researchDetail"]},"EntityUrlCrawlCdnProvider":{"type":"string","description":"CDN or hosting provider fronting a web URL.","enum":["cloudflare","akamai","fastly","awsCloudfront","vercel","netlify","sucuri","incapsula","bunny","keycdn","cdn77","gcore","cdnetworks","azureCdn","leaseweb","digitalocean","stackpath","googlecloudCdn","none","unknown"]},"EntityUrlCrawlRenderMode":{"type":"string","description":"JavaScript rendering requirement for crawl checks.","enum":["static","jsRequired","jsEnhanced"]},"UniqueIdType":{"type":"string","description":"External identifier type that maps an owner to a registry id: ein, secCik, ticker, lei, duns, isin, cusip, crd, or orcid.","enum":["ein","secCik","ticker","lei","duns","isin","cusip","crd","orcid"]},"ContentCompliance":{"type":"object","description":"Derived character/word counts and whether the row text meets its governed type contract (word/character limits and paragraph shape). violation lists each unmet rule and is empty when the row is compliant.","properties":{"characterCount":{"type":"integer","format":"int32","description":"Character count of the row text (UTF-16 units)."},"meetsRequirements":{"type":"boolean","description":"Whether the text satisfies every governed contract rule."},"violation":{"type":"array","description":"One human-readable reason per unmet rule; empty when compliant.","items":{"type":"string"}},"wordCount":{"type":"integer","format":"int32","description":"Word count of the row text (whitespace-separated tokens)."}},"required":["characterCount","meetsRequirements","violation","wordCount"]},"UrlSlugRedirect":{"type":"object","description":"URL slug redirect row","properties":{"createdAt":{"type":"string","format":"date-time","description":"Redirect row creation timestamp"},"newUrl":{"type":"string","description":"New public URL, e.g., /companies/new-slug"},"oldUrl":{"type":"string","description":"Old public URL, e.g., /companies/old-slug"},"redirectId":{"type":"integer","format":"int32","description":"Redirect row id","example":42},"redirectType":{"type":"integer","format":"int32","description":"HTTP redirect type; permanent 301"},"updatedAt":{"type":"string","format":"date-time","description":"Redirect row update timestamp"}},"required":["createdAt","newUrl","oldUrl","redirectId","redirectType","updatedAt"]},"SlugResource":{"type":"string","description":"Resource type whose slug is being changed","enum":["entity","person","news","blog","content"]},"ResearchDerivedRange":{"type":"object","description":"Read-only derived range projection for targetDateAbsolute detail rows","properties":{"asOfDate":{"type":"string","format":"date-time","description":"Observation timestamp from the source detail row"},"bucket":{"$ref":"#/components/schemas/ResearchDerivedBucket","description":"Derived bucket using inclusive 0, 3, 6, 12, and 24 month boundaries"},"monthsFromNow":{"type":"integer","format":"int32","description":"Whole months from now() to targetDate"},"targetDate":{"type":"string","format":"date-time","description":"Absolute target date stored for a targetDateAbsolute detail row"}},"required":["asOfDate","bucket","monthsFromNow","targetDate"]},"ResearchDerivedBucket":{"type":"string","description":"Bucket computed from now() to the target date with inclusive boundaries at 0, 3, 6, 12, and 24 months","enum":["pastDue","withinThreeMonths","threeToSixMonths","sixToTwelveMonths","twelveToTwentyFourMonths","beyondTwoYears"]},"EntityAcceleratorParticipation":{"type":"object","description":"Flattened accelerator participation derived from acceleratorParticipant relationship rows and joined to the canonical accelerator entity.","properties":{"accelerator":{"$ref":"#/components/schemas/Entity","description":"Canonical thin accelerator entity from the acceleratorParticipant relationship"},"acceleratorName":{"type":"string","description":"Full accelerator participation name, including program detail"},"asOfDate":{"type":"string","format":"date-time","description":"Participation effective timestamp"},"batch":{"type":["string","null"],"description":"Accelerator batch or cohort"},"id":{"type":"string","description":"Stable participation identifier anchored to the contributing acceleratorParticipant relationship"},"program":{"type":["string","null"],"description":"Accelerator program name, when the source distinguishes one"},"status":{"type":["string","null"],"description":"Accelerator participation status"}},"required":["accelerator","acceleratorName","asOfDate","id"]},"GithubRepo":{"type":"object","description":"GitHub repository synced for an entity or person from their current github URL links. githubId is GitHub\'s stable numeric repository id; rows are replaced per owner on each sync, so counts and timestamps reflect the last sync.","properties":{"createdAt":{"type":["string","null"],"format":"date-time"},"description":{"type":["string","null"]},"forkCount":{"type":"integer","format":"int32"},"githubId":{"type":"integer","format":"int64","description":"GitHub\'s stable numeric repository id; sync upsert key per owner"},"homepageUrl":{"type":["string","null"],"description":"Project homepage URL declared on the repository"},"id":{"type":"integer","format":"int64"},"isArchived":{"type":"boolean","description":"True when the repository is archived on GitHub"},"isFork":{"type":"boolean","description":"True when the repository is a fork of another repository"},"language":{"type":["string","null"],"description":"Primary language reported by GitHub"},"license":{"type":["string","null"],"description":"SPDX license id reported by GitHub"},"name":{"type":"string","description":"Repository name (slug segment after the login)"},"ownerLogin":{"type":"string","description":"GitHub account login (org or user) the repository belongs to"},"repoCreatedAt":{"type":["string","null"],"format":"date-time","description":"GitHub created_at of the repository"},"repoPushedAt":{"type":["string","null"],"format":"date-time","description":"GitHub pushed_at of the repository at last sync"},"stargazerCount":{"type":"integer","format":"int32"},"topic":{"type":"array","description":"Repository topics reported by GitHub","items":{"type":"string"}},"updatedAt":{"type":["string","null"],"format":"date-time"},"url":{"type":"string","description":"Canonical https GitHub repository page URL"}},"required":["forkCount","githubId","id","isArchived","isFork","name","ownerLogin","stargazerCount","topic","url"]},"EntityDetailCoverageSlot":{"type":"object","description":"One completion gate evaluated against the assembled entity detail.","properties":{"count":{"type":"integer","format":"int32","description":"Resolved row/value count backing this gate."},"coverage":{"$ref":"#/components/schemas/CompletionGateCoverage","description":"Coverage verdict for this gate on the assembled detail. NOT_EVALUABLE means the detail does not carry the gate, so it is neither satisfied nor unsatisfied here — grade it from owningRead instead of treating it as an unmet gate."},"gateId":{"type":"string","description":"Canonical dotted completion gate id.","example":"entity.founded"},"howToObtain":{"type":"string","description":"What to do to obtain this gate when it is not present."},"label":{"type":"string","description":"Human-readable gate name.","example":"Founded Year"},"owningRead":{"type":"string","description":"OpenAPI operationId of the canonical read that proves the gate.","example":"getEntityDetail"},"parentPersonId":{"type":["string","null"],"format":"uuid","description":"Parent person this slot was instantiated for when indexed per person. Null on flat and Product/Service-indexed gates. Two per-person slots sharing a gateId are distinguished by this id; per-person slots remain advisory rather than required."},"parentProductServiceId":{"type":["string","null"],"format":"uuid","description":"Parent Product/Service this slot was instantiated for when indexed per offering. Null on flat and per-person gates. Required Product/Service slots sharing a gateId are addressed independently by this id."},"required":{"type":"boolean","description":"Whether this read can decide and demand the gate. True for mandatory flat-floor gates and for server-decidable indexed Product/Service gates. False for indexed per-person slots: their source-backed unobtainable relief lives only in the run completion ledger, so the server cannot terminally decide them."},"unobtainableAllowed":{"type":"boolean","description":"Whether the governed completion contract permits source-backed unobtainable evidence to relieve this exact absent slot."}},"required":["count","coverage","gateId","howToObtain","label","owningRead","required","unobtainableAllowed"]},"EntitySuggestion":{"type":"object","description":"One advisory suggestion candidate. The candidate row is the canonical entity list projection; whySuggested reuses the similarity provenance origin as confidence.","properties":{"alreadyPresent":{"type":"boolean","description":"True when this candidate already backs the slot for the entity (a curated row)."},"candidate":{"$ref":"#/components/schemas/EntityList","description":"Candidate entity list row; load full detail through the entity detail reads."},"rank":{"type":"integer","format":"int32","description":"One-based rank within this suggestion response."},"score":{"type":"number","format":"double","description":"Composite semantic similarity score; larger values rank higher."},"whySuggested":{"$ref":"#/components/schemas/EntitySimilarityOrigin","description":"Why this candidate was suggested — the similarity provenance origin, not free text."}},"required":["alreadyPresent","candidate","rank","score","whySuggested"]},"EntityList":{"type":"object","description":"\\n Narrow entity row for list and batch-list reads. Keeps core identity, enrichment,\\n governed research detail, accelerator participation, and fundraise rounds while omitting\\n detail-only relationship, newsArticle, person, sitemap, and research snippet sections.\\n Classification enrichment is current-only on list rows; use the entity classifications\\n subresource with includeInactive=true to audit historical joins.\\n ","properties":{"core":{"$ref":"#/components/schemas/Entity","description":"Flat entity core — identity, naming, status, image, and source metadata"},"enrichment":{"$ref":"#/components/schemas/EntityEnrichment","description":"Supplemental entity data — addresses, classification tags, funding, text content, and URL links"},"fundraiseRound":{"type":"array","description":"Fundraise rounds associated with this entity","items":{"$ref":"#/components/schemas/EntityFundraiseTransaction"}},"research":{"$ref":"#/components/schemas/EntityListResearch","description":"List-safe research disclosure without text snippets"},"semanticMatch":{"description":"Semantic embedding match evidence populated only for semantic list reads.","oneOf":[{"$ref":"#/components/schemas/ContentEmbeddingMatch"},{"type":"null"}]}},"required":["core","enrichment","fundraiseRound","research"]},"EntitySimilarityOrigin":{"type":"string","description":"Provenance origin for a similar-entity result row.","enum":["curated","semantic","precomputed","derived","computed"]},"EntityEnrichment":{"type":"object","description":"Supplemental entity data — addresses, classification tags, funding, text content, and URL links","properties":{"address":{"type":"array","items":{"$ref":"#/components/schemas/Address"}},"classification":{"$ref":"#/components/schemas/EntityClassification","description":"Entity classification join projection for this read surface. Single-detail and full-detail batch reads include full history; list, default batch, and similar-entity reads may filter to current joins. Use GET /v1/entities/{entityId}/classifications?includeInactive=true for authoritative join history."},"fundingDetail":{"oneOf":[{"$ref":"#/components/schemas/EntityFundingDetail"},{"type":"null"}]},"text":{"$ref":"#/components/schemas/EntityTextBundle"},"urlLink":{"type":"array","description":"URL link filter values","items":{"$ref":"#/components/schemas/EntityUrlLink"}}},"required":["address","classification","text","urlLink"]},"EntityListResearch":{"type":"object","description":"Nested research projection owned by EntityList rows, excluding snippet text.","properties":{"acceleratorParticipation":{"type":"array","description":"Joined accelerator participation derived from governed accelerator research rows","items":{"$ref":"#/components/schemas/EntityAcceleratorParticipation"}},"detail":{"type":"array","description":"Flat governed research detail rows filtered by visibility","items":{"$ref":"#/components/schemas/EntityResearchDetail"}}},"required":["acceleratorParticipation","detail"]},"CompletionGateCoverage":{"type":"string","description":"Coverage verdict for one completion gate on the assembled entity detail. NOT_EVALUABLE is not a failure and is not closed by evidence: the detail does not carry this gate at all, so only the gate\'s owningRead can grade it.","enum":["PRESENT","ABSENT","NOT_EVALUABLE"]},"PersonInvestorParticipation":{"type":"object","description":"Person investor with round participation labels and count","properties":{"investorAttribution":{"type":"array","items":{"$ref":"#/components/schemas/FundraiseInvestmentAttribution"}},"person":{"$ref":"#/components/schemas/PersonDetail"},"round":{"type":"array","items":{"$ref":"#/components/schemas/RoundLabel"}},"roundCount":{"type":"integer","format":"int32"}},"required":["investorAttribution","person","round","roundCount"]},"EntityInvestorParticipation":{"type":"object","description":"Entity investor with round participation and enrichment data (addresses, URLs)","properties":{"entity":{"$ref":"#/components/schemas/EntityDetail"},"investorAttribution":{"type":"array","items":{"$ref":"#/components/schemas/FundraiseInvestmentAttribution"}},"round":{"type":"array","items":{"$ref":"#/components/schemas/RoundLabel"}},"roundCount":{"type":"integer","format":"int32"}},"required":["entity","investorAttribution","round","roundCount"]},"StageFrequency":{"type":"object","description":"Canonical equity stage derived from a transaction calculatedRoundLabel, with deal frequency ranked by count descending.","properties":{"count":{"type":"integer","format":"int32"},"stage":{"type":"string"}},"required":["count","stage"]},"FundraiseDataConfidence":{"type":"string","description":"Fundraise data confidence label","enum":["High","Medium","Low","Verified"]},"EntityTag":{"allOf":[{"$ref":"#/components/schemas/Classification"},{"type":"object","properties":{"bucket":{"type":["string","null"],"description":"Canonical entity-classification bucket key. Use this as EntityClassificationMutation.type when creating by type plus name; `type` remains the registry wire value for tag search and catalog round-trips."},"classificationId":{"type":["integer","null"],"format":"int32","description":"Entity classification join row id for update/delete; present on entity classification responses and null on discovery responses."},"creatable":{"type":"boolean","description":"Whether this bucket permits creating missing values by type plus name."},"createdAt":{"type":["string","null"],"format":"date-time","description":"Registry tag creation timestamp, not the entity join timestamp."},"id":{"type":"integer","format":"int32","description":"Classification tag registry id from res_type_ref; use as EntityClassificationMutation.tagId."},"isCurrent":{"type":["boolean","null"],"description":"Current-state flag for this context: registry active flag in discovery, entity join current flag in entity-classification responses."},"isPrimary":{"type":["boolean","null"],"description":"Entity join primary flag within its bucket; null on catalog/tag discovery."},"name":{"type":"string","description":"Name","maxLength":255,"minLength":0},"slug":{"type":["string","null"],"description":"Slug","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"},"type":{"type":"string","description":"Canonical tag classification type","example":"industry"},"updatedAt":{"type":["string","null"],"format":"date-time","description":"Registry tag update timestamp; join updates return isCurrent/isPrimary but no join updatedAt."},"writable":{"type":"boolean","description":"Whether this existing tag can be joined through tagId."}}}],"description":"Canonical classification tag projection. Catalog/search responses describe registry tags; entity-classification responses include classificationId plus join state.","required":["creatable","id","name","type","writable"]},"StandardizedClassification":{"allOf":[{"$ref":"#/components/schemas/Classification"},{"type":"object","properties":{"category":{"type":"string","description":"Standardized category token."},"code":{"type":["integer","null"],"format":"int32","description":"Standardized classification code when present."},"creatable":{"type":"boolean","description":"Standardized taxonomy rows are join-existing-only."},"createdAt":{"type":["string","null"],"format":"date-time","description":"Registry row creation timestamp."},"entityClassificationId":{"type":["integer","null"],"format":"int32","description":"Entity classification join row id for update/delete; present on entity classification responses and null on discovery responses."},"id":{"type":"integer","format":"int32","description":"Standardized classification registry id from res_classification_ref; use as EntityClassificationMutation.classificationId."},"isCurrent":{"type":["boolean","null"],"description":"Standardized reference rows are current by definition."},"isPrimary":{"type":["boolean","null"],"description":"Entity join primary flag within this standardized category."},"level":{"type":["integer","null"],"format":"int32","description":"Hierarchy level when present."},"name":{"type":"string","description":"Name","maxLength":255,"minLength":0},"updatedAt":{"type":["string","null"],"format":"date-time","description":"Registry row update timestamp."},"writable":{"type":"boolean","description":"Existing standardized rows can be joined through classificationId."}}}],"description":"Canonical standardized classification projection backed by res_classification_ref. Rows are join-existing-only; creatable is false until a taxonomy writer exists.","required":["category","creatable","id","name","writable"]},"Classification":{"type":"object","properties":{"creatable":{"type":"boolean"},"isCurrent":{"type":["boolean","null"]},"isPrimary":{"type":["boolean","null"]},"name":{"type":"string","description":"Display name. Capped to the standardized taxonomy storage limit because this shared read contract covers NAICS/SIC/ISIC-style classification labels as well as editorial tags.","maxLength":255,"minLength":0},"writable":{"type":"boolean"}},"required":["creatable","name","writable"]},"BlogPostType":{"type":"string","description":"External research-side blog-post source classification","enum":["aventureBlog","personalBlog","employerBlog","linkedin","xTwitter","medium","substack","other"],"example":"personalBlog"},"AddressAssociation":{"type":"object","description":"One role and effective period for a physical address association","properties":{"endDate":{"type":["string","null"],"format":"date","description":"Last known day this role applied"},"id":{"type":"integer","format":"int32","description":"Address association row identifier","example":123},"isCurrent":{"type":"boolean","description":"Whether this role is currently relevant"},"role":{"description":"Address association role; null means unclassified","oneOf":[{"$ref":"#/components/schemas/AddressAssociationRole"},{"type":"null"}]},"startDate":{"type":["string","null"],"format":"date","description":"First known day this role applied"}},"required":["id","isCurrent"]},"AddressCity":{"type":"object","description":"City reference used inside an address","properties":{"id":{"type":["integer","null"],"format":"int32"},"name":{"type":"string","description":"City name","example":"Boston"}},"required":["name"]},"AddressCountry":{"type":"object","description":"Country reference used inside an address","properties":{"countryCodeChar2":{"type":["string","null"],"description":"Two-letter country code","example":"US"},"countryCodeChar3":{"type":["string","null"],"description":"Three-letter country code","example":"USA"},"id":{"type":["integer","null"],"format":"int32"},"name":{"type":"string","description":"Country name","example":"United States"},"unRegion":{"type":["string","null"]},"unSubregion":{"type":["string","null"]}},"required":["name"]},"AddressState":{"type":"object","description":"State or region reference used inside an address","properties":{"id":{"type":["integer","null"],"format":"int32"},"name":{"type":"string","description":"State or region name","example":"Massachusetts"},"stateAbbrev":{"type":["string","null"],"description":"State or region abbreviation","example":"MA"}},"required":["name"]},"AddressAssociationRole":{"type":"string","description":"Meaning of an entity or person address association. Domicile is a legal or registered seat and is not evidence of operational presence; dominant is the predominant display location; origin is the founding or historical location.","enum":["domicile","dominant","origin"]},"EntityAcquisitionEvidence":{"type":"object","description":"Booleans confirming each managed row written by the acquisition endpoint.","properties":{"fundraiseInvestorJoin":{"type":"boolean"},"fundraiseTransaction":{"type":"boolean"},"operatingStatus":{"type":"boolean"},"relationship":{"type":"boolean"}},"required":["fundraiseInvestorJoin","fundraiseTransaction","operatingStatus","relationship"]},"EntityAcquisitionStage":{"type":"string","description":"Acquisition stage/status values used by acquisition APIs and fundraise rollups. Acquisition is neutral before operating-status change; Acquired Subsidiary is completed and still operating; Acquired is terminal or folded, including Closed (Acquihire).","enum":["Acquisition","Acquired","Acquired Subsidiary"]},"FundraiseTransactionStatus":{"type":"string","description":"Fundraise transaction status label","enum":["Announced","Announced; subject to approvals and closing conditions","Active","Closed","Completed","In Progress","Open"]},"UrlSurfaceMisclassificationRoute":{"type":"object","description":"One deterministic URL shape and the canonical surface it must be routed to.","properties":{"additionalGuidance":{"type":["string","null"],"description":"Additional routing guidance for agents and API clients."},"apiEndpoint":{"type":"string","description":"Canonical API endpoint or discovery endpoint."},"attemptedSurface":{"type":"array","description":"Attempted write surfaces this route rejects.","items":{"type":"string"}},"cliCommand":{"type":"string","description":"Canonical aventure-cli guidance."},"correctSurface":{"type":"string","description":"Canonical aVenture write surface."},"deterministicUrlShape":{"type":"string","description":"Human-readable deterministic URL shape."},"exactPath":{"type":"array","description":"Exact path segments, when the whole path must match.","items":{"type":"string"}},"externalSocialPostPlatform":{"description":"Publishing platform for an external-social permalink route.","oneOf":[{"$ref":"#/components/schemas/ExternalSocialPostPlatform"},{"type":"null"}]},"hostSuffix":{"type":"string","description":"Host suffix matched against the submitted URL host."},"id":{"type":"string","description":"Stable YAML key for this route."},"pathPrefix":{"type":"array","description":"Required leading path segments.","items":{"type":"string"}},"pathTemplate":{"type":"array","description":"Exact external-social permalink template. Literals match exactly, * matches one nonblank segment, and @* matches one @handle segment.","items":{"type":"string"}},"requiredLastSegment":{"type":["string","null"],"description":"Required final path segment, when applicable."},"requiredSegment":{"type":["string","null"],"description":"Required path segment at any position, for shapes whose discriminating segment follows a variable owner handle."}},"required":["apiEndpoint","attemptedSurface","cliCommand","correctSurface","deterministicUrlShape","exactPath","hostSuffix","id","pathPrefix","pathTemplate"]},"ExternalSocialPostPlatform":{"type":"string","description":"Social platform that published an externally-authored post.","enum":["linkedin","xTwitter","facebook","tiktok","instagram","threads","other"],"example":"linkedin"},"ResearchParagraphShape":{"type":"object","description":"Write-time per-paragraph shape rule for governed text bodies. Paragraphs split on `\\\\n\\\\n` (one blank line). Each paragraph must satisfy minChars..maxChars and minSentences..maxSentences; whole body must satisfy minParagraphs..maxParagraphs (null maxParagraphs = unbounded). Sentence boundaries follow Unicode rules (java.text.BreakIterator), so \'Inc.\' and \'U.S.\' do not split a sentence.","properties":{"maxChars":{"type":"integer","format":"int32","description":"Maximum characters per paragraph (inclusive)."},"maxParagraphs":{"type":["integer","null"],"format":"int32","description":"Maximum paragraph count (inclusive); null means unbounded."},"maxSentences":{"type":"integer","format":"int32","description":"Maximum sentences per paragraph (inclusive)."},"minChars":{"type":"integer","format":"int32","description":"Minimum characters per paragraph (inclusive)."},"minParagraphs":{"type":"integer","format":"int32","description":"Minimum paragraph count (inclusive)."},"minSentences":{"type":"integer","format":"int32","description":"Minimum sentences per paragraph (inclusive)."}},"required":["maxChars","maxSentences","minChars","minParagraphs","minSentences"]},"EntityListSummary":{"type":"object","description":"\\n Lean entity row for catalog-list and rail reads. Keeps core identity plus funding rollup\\n and the most-recent fundraise rounds, and omits the classification, text, address, URL,\\n and research sections carried by EntityList. Use GET /v1/entities/summary when only card\\n surfaces render; use EntityList for full-row consumers.\\n ","properties":{"entity":{"$ref":"#/components/schemas/EntityFundraiseTransactionEntity","description":"Entity card projection with core identity and aggregate funding rollup"},"fundraiseRound":{"type":"array","description":"Most-recent fundraise rounds associated with this entity","items":{"$ref":"#/components/schemas/EntityFundraiseTransaction"}}},"required":["entity","fundraiseRound"]},"EntityFundraiseFilterCriteria":{"type":"object","description":"Fundraise and investment filters for entity search","properties":{"amountInvestedRange":{"type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}},"amountRaisedRange":{"type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}},"investedCompanyName":{"type":"array","description":"Portfolio company names. Exact, case-sensitive match on the portfolio company\'s brand or legal name; restricts returned entities to investors in those companies.","items":{"type":"string"}},"investorActivity":{"$ref":"#/components/schemas/InvestorActivityFilter","description":"Aggregate investor activity filters."},"lastRoundYearRange":{"type":"array","items":{"$ref":"#/components/schemas/IntRange"}},"round":{"type":"array","description":"Fundraise round labels, such as Seed or Series A.","items":{"type":"string"}},"totalRaisedRange":{"type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}},"valuationRange":{"type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}}},"EntityFilterLogoOption":{"type":"object","description":"Logo sort priority for entity search","properties":{"sortPriority":{"type":"string","description":"Logo sort priority.","enum":["NONE","ANY_LOGO_FIRST","REAL_LOGO_FIRST"]}},"required":["sortPriority"]},"ResearchValueRange":{"type":"object","properties":{"max":{"type":"number","format":"double"},"min":{"type":"number","format":"double"}},"required":["max","min"]},"ResearchValueShapeType":{"type":"string","description":"Closed write-time value shape token. Shape, not valueType, selects which write fields and validation rules apply.","enum":["acceleratorParticipation","enumeratedToken","freeText","isoCurrencyCode","monetaryFlow","monetaryFlowOverPeriod","monetaryStock","numericCount","numericCountOrRange","numericGrowthRate","numericRatio","numericScore","targetDateAbsolute"]},"EntityComparisonSignals":{"type":"object","description":"Competitive comparison signals for a provider entity — sells-to customers, pricing model, ownership, funding stage, total raised, and website. Projected from entity enrichment for side-by-side comparison; founded year rides the entity core.","properties":{"fundingStage":{"description":"Latest funding stage when known","oneOf":[{"$ref":"#/components/schemas/FundingStage"},{"type":"null"}]},"ownership":{"type":"array","description":"Provider ownership structure (current typeOwnership tags)","items":{"type":"string"}},"pricingModel":{"type":"array","description":"Provider pricing/revenue model (current typeRevenue tags)","items":{"type":"string"}},"sellsTo":{"type":"array","description":"Customer types the provider sells to (current typeCustomer tags)","items":{"type":"string"}},"totalRaised":{"type":["number","null"],"description":"Total capital raised when known"},"website":{"type":["string","null"],"format":"uri","description":"Provider website URL when known"}},"required":["ownership","pricingModel","sellsTo"]},"RelationshipDirection":{"type":"string","description":"How entities relationships join interprets sourceEntityId and targetEntityId.","enum":["symmetric","typeOriented","directional"]},"SearchInterpretation":{"type":"object","description":"Structured interpretation of a natural-language entity search: canonical filter, sort, confidence, and any unsupported constraint the planner could not translate.","properties":{"confidence":{"$ref":"#/components/schemas/Confidence","description":"Planner confidence in the structured interpretation."},"execution":{"$ref":"#/components/schemas/SearchModeExecution","description":"Requested and executed search strategy."},"fallbackUsed":{"type":"boolean","description":"True when the semantic fallback replaced an untranslatable planner result with a semantic search over the original query."},"filter":{"$ref":"#/components/schemas/EntityListFilter","description":"Canonical entity filter generated from the natural-language query."},"interpretation":{"type":"string","description":"Human-readable summary of how the query was interpreted."},"sort":{"$ref":"#/components/schemas/SearchOrderingEntityFilterSortable","description":"Ordering applied to the result page: the relevance rank that ran first, if any, then the sortable-column terms."},"unsupported":{"type":["string","null"],"description":"Constraint the planner could not translate into the canonical EntityFilter contract; null when every material constraint was supported."}},"required":["confidence","execution","fallbackUsed","filter","interpretation","sort"]},"PageResultEntityList":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntityList"}},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}},"required":["content","number","size","totalElements","totalPages"]},"SearchOrderingEntityFilterSortable":{"type":"object","description":"Ordering applied to a search result page: an optional relevance rank that precedes the sortable-column terms.","properties":{"order":{"type":"array","description":"Sortable-column terms applied after the relevance rank, highest precedence first. Empty when the relevance rank alone ordered the page. Listing priorities that every list page applies ahead of these terms, such as operating-status and logo priority, are not reported.","items":{"$ref":"#/components/schemas/SortOrderEntityFilterSortable"}},"relevance":{"description":"Relevance rank applied before any column term; absent when no relevance rank ran.","oneOf":[{"$ref":"#/components/schemas/SearchRelevance"},{"type":"null"}]}},"required":["order"]},"SortOrderEntityFilterSortable":{"type":"object","description":"Single sort term: which enumerated sort field to use and whether direction is descending.","properties":{"descending":{"type":"boolean","description":"true for descending (DESC), false for ascending (ASC)"},"field":{"type":"string","description":"Sort field for this resource (entity list uses EntityFilter.Sortable / published sort keys).","enum":["ID","NAME_BRAND","YEAR_FOUNDED","STATUS_OPERATING","UPDATED_AT","CREATED_AT","TOTAL_RAISED","AMOUNT_INVESTED","RECENT_INVESTMENT_AT","STAGE","MOST_RECENT_AMOUNT","LATEST_VALUATION","MOST_RECENT_DATE","ACCELERATOR_BRAND","ACCELERATOR_COHORT","HEADQUARTERS_COUNTRY","EMPLOYEE_COUNT"]}},"required":["descending","field"]},"EntityFilterEntry":{"type":"object","description":"Filter entry payload served by list filter endpoints","properties":{"chart":{"type":"array","description":"Chart filter values","items":{"$ref":"#/components/schemas/ChartBucket"}},"choiceOption":{"type":"array","description":"Choice option filter values","items":{"$ref":"#/components/schemas/EntityFilterChoice"}},"choiceOptionTotal":{"type":["integer","null"],"format":"int32","description":"Total eligible choice option values for this filter"},"choiceOptionTruncated":{"type":["boolean","null"],"description":"Whether additional eligible choices exist beyond choiceOption"},"controlType":{"$ref":"#/components/schemas/EntityFilterControlType","description":"Control type used to render the filter"},"filterKey":{"type":"string","description":"Canonical filter key"},"filterMeta":{"description":"Optional entity-specific filter metadata","oneOf":[{"$ref":"#/components/schemas/EntityFilterMeta"},{"type":"null"}]},"label":{"type":"string","description":"Display label for the filter"},"scope":{"description":"Optional numeric scope for the filter","oneOf":[{"$ref":"#/components/schemas/EntityFilterScope"},{"type":"null"}]}},"required":["chart","choiceOption","controlType","filterKey","label"]},"RefinementMeta":{"type":"object","description":"Meta","properties":{"degraded":{"type":"boolean","description":"Whether retrying may improve scoped choice totals"},"limit":{"type":"integer","format":"int32","description":"Maximum entities sampled for displayed choices."},"page":{"type":"integer","format":"int32","description":"Zero-based result page used to build the refinement."},"total":{"type":["integer","null"],"format":"int32","description":"Total entities matching the active filter; null when unavailable."}},"required":["degraded","limit","page"]},"ChartBucket":{"type":"object","description":"Typed bucket for range histogram charts","properties":{"amount":{"type":"integer","format":"int64","description":"Amount"},"end":{"type":"integer","format":"int64","description":"Exclusive bucket end value"},"start":{"type":"integer","format":"int64","description":"Inclusive bucket start value"}},"required":["amount","end","start"]},"EntityFilterChoice":{"type":"object","description":"Filter choice payload served by filter endpoints","properties":{"label":{"type":"string","description":"Display label for the option"},"scope":{"description":"Optional numeric scope for the option","oneOf":[{"$ref":"#/components/schemas/EntityFilterScope"},{"type":"null"}]},"value":{"type":"string","description":"Canonical option value"}},"required":["label","value"]},"EntityFilterControlType":{"type":"string","description":"Render control discriminator for filter UI components","enum":["checkbox","range","currencyRange","dateRange"]},"EntityFilterMeta":{"type":"object","description":"API response fragment for entity filter metadata","properties":{"ui":{"description":"UI metadata for rendering entity filter controls","oneOf":[{"$ref":"#/components/schemas/EntityFilterUiMeta"},{"type":"null"}]}}},"EntityFilterScope":{"type":"object","additionalProperties":false,"description":"Numeric min/max bounds for range filter values","properties":{"max":{"type":["integer","null"],"format":"int64","description":"Maximum scope value"},"min":{"type":["integer","null"],"format":"int64","description":"Minimum scope value"}}},"EntityFilterUiMeta":{"type":"object","description":"UI-only metadata used for rendering entity filter panels","properties":{"headquartersOption":{"oneOf":[{"$ref":"#/components/schemas/EntityFilterHeadquartersOptionSet"},{"type":"null"}]}}},"EntityFilterHeadquartersOptionSet":{"type":"object","description":"Headquarters option hierarchy","properties":{"country":{"type":"array","description":"Countries with their states and cities","items":{"$ref":"#/components/schemas/EntityFilterHeadquartersCountry"}}},"required":["country"]},"EntityFilterHeadquartersCountry":{"type":"object","description":"Country with its states (and optionally cities)","properties":{"country":{"type":"string","description":"Country name"},"state":{"type":"array","description":"States within the country","items":{"$ref":"#/components/schemas/EntityFilterHeadquartersStateCity"}}},"required":["country","state"]},"EntityFilterHeadquartersStateCity":{"type":"object","description":"City within a state","properties":{"city":{"type":"array","description":"Cities within the state; empty when only states were requested","items":{"type":"string"}},"state":{"type":"string","description":"State name"}},"required":["city","state"]},"EntityTagCount":{"type":"object","description":"Summary count for a specific tag.","properties":{"count":{"type":"integer","format":"int64"},"name":{"type":"string"}},"required":["count","name"]},"EntityFilterCountMeta":{"type":"object","properties":{"total":{"type":"integer","format":"int32"}},"required":["total"]},"EntityFilterOptionSetMeta":{"type":"object","description":"Generator metadata for a filter payload","properties":{"defaultOptionLimit":{"type":"integer","format":"int32","description":"Default maximum option count"},"defaultTypeGroup":{"$ref":"#/components/schemas/EntityTypeGroup","description":"Default type group"},"distributionKey":{"type":"array","description":"Filter keys that include distribution data","items":{"type":"string"}},"generatedAt":{"type":"string","format":"date-time","description":"Generation timestamp"},"includeDistribution":{"type":"boolean","description":"Whether distribution data is included"},"includePrivate":{"type":"boolean","description":"Whether private filter options are included"},"includedTypeRecord":{"type":"array","description":"Entity type records included in the filter payload","items":{"type":"string"}},"optionMode":{"$ref":"#/components/schemas/EntityFilterOptionMode","description":"Option mode used to generate option lists"},"requestedTypeGroup":{"type":"string","description":"Requested entity type group"},"typeGroupMembership":{"type":"array","description":"Type group membership filter values","items":{"$ref":"#/components/schemas/EntityTypeGroupMembership"}}},"required":["defaultOptionLimit","distributionKey","generatedAt","includeDistribution","includePrivate","includedTypeRecord","optionMode","requestedTypeGroup"]},"EntityFilterOptionMode":{"type":"string","description":"Filter option mode","enum":["TOP_RESULTS","FULL_RESULTS"]},"EntityTypeGroupMembership":{"type":"object","description":"Canonical concrete entity types included by one entity type group.","properties":{"typeGroup":{"$ref":"#/components/schemas/EntityTypeGroup"},"typeRecord":{"type":"array","items":{"$ref":"#/components/schemas/EntityType"}}},"required":["typeGroup","typeRecord"]},"EntitySimilarityResult":{"type":"object","description":"Similar entity list row with the provenance that explains why it appears. Rows carry the EntityList projection; load full detail through the entity detail endpoints.","properties":{"entity":{"$ref":"#/components/schemas/EntityList"},"similarity":{"$ref":"#/components/schemas/EntitySimilarityContext"}},"required":["entity","similarity"]},"EntitySimilarityContext":{"type":"object","description":"Per-row provenance for a similar-entity result","properties":{"compositeScore":{"type":["number","null"],"format":"double","description":"Composite (section-fusion) score. Populated only when origin=precomputed."},"cosineScore":{"type":["number","null"],"format":"double","description":"Cosine similarity when origin=precomputed"},"curatedAsOf":{"type":["string","null"],"format":"date","description":"Curated as-of date when origin=curated"},"curatedRelationshipType":{"type":["string","null"],"description":"Curated relationship type when origin=curated"},"curatedSource":{"type":["string","null"],"description":"Curated source URL/note when origin=curated"},"derivedFromEntityId":{"type":["string","null"],"format":"uuid","description":"Curated peer id that produced this row when origin=derived"},"matchedSectionWeight":{"type":["number","null"],"format":"double","description":"Total normalized source-section weight matched when origin=precomputed"},"origin":{"$ref":"#/components/schemas/EntitySimilarityOrigin"},"rank":{"type":"integer","format":"int32","description":"1-based position in the merged result page"},"sharedSectionCount":{"type":["integer","null"],"format":"int32","description":"Number of source/target sections compared when origin=precomputed"}},"required":["origin","rank"]},"FundraiseFinancialInstrumentType":{"type":"string","description":"Fundraise financial instrument type — the vehicle a round or investor join used","enum":["SAFE","Convertible Note","Preferred Stock","Common Stock","Other Equity","Bond","Loan","Other Debt","Grant","Token"]},"ContentSearchInterpretation":{"type":"object","description":"Structured interpretation of a natural-language content search.","properties":{"confidence":{"$ref":"#/components/schemas/Confidence","description":"Planner confidence in the structured interpretation."},"filter":{"$ref":"#/components/schemas/ContentFilter","description":"Canonical content filter generated from the query."},"interpretation":{"type":"string","description":"Human-readable summary of how the query was interpreted."},"sort":{"$ref":"#/components/schemas/SortSpecContentSortField","description":"Sort generated from the query."},"unsupported":{"type":["string","null"],"description":"Unsupported constraint, or null when all were translated."}},"required":["confidence","filter","interpretation","sort"]},"PageResultContent":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/Content"}},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}},"required":["content","number","size","totalElements","totalPages"]},"Content":{"type":"object","description":"Canonical public content card across news, blog posts, social posts, repositories, websites, pages, and research papers.","properties":{"canonicalUrl":{"type":["string","null"],"description":"Canonical URL when known."},"contentId":{"type":"string","description":"Stable content id scoped by contentType."},"contentType":{"$ref":"#/components/schemas/ContentType","description":"Public content source type."},"createdAt":{"type":["string","null"],"format":"date-time","description":"Content row creation instant when known."},"publishedAt":{"type":["string","null"],"format":"date-time","description":"Publication or source activity instant when known."},"relation":{"description":"How this content relates to the requested owner.","oneOf":[{"$ref":"#/components/schemas/ContentRelation"},{"type":"null"}]},"sourceDomain":{"type":["string","null"],"description":"Registrable source domain when known."},"sourceName":{"type":["string","null"],"description":"Publication, platform owner, or source label."},"summary":{"type":["string","null"],"description":"Short summary or excerpt when known."},"title":{"type":"string","description":"Human title or best available display label. webPage rows restate the page URL when the crawl captured no label; renderers may humanize that fallback."},"topic":{"type":["string","null"],"description":"Single canonical topic key (web-crawl section vocabulary) or source category (repository language); null when the source has no classified topic."},"updatedAt":{"type":["string","null"],"format":"date-time","description":"Content row update instant when known."},"url":{"type":["string","null"],"description":"Primary URL for this content card."},"year":{"type":["integer","null"],"format":"int32","description":"Best-effort content year used by the year filter."}},"required":["contentId","contentType","title"]},"ContentFilter":{"type":"object","description":"Canonical filters for public content cards.","properties":{"contentType":{"description":"Public content type filter.","oneOf":[{"$ref":"#/components/schemas/ContentType"},{"type":"null"}]},"relation":{"description":"Owner relation filter.","oneOf":[{"$ref":"#/components/schemas/ContentRelation"},{"type":"null"}]},"topic":{"type":["string","null"],"description":"Topic key or source category."},"year":{"type":["integer","null"],"format":"int32","description":"Best-effort content year filter."}}},"SortSpecContentSortField":{"type":"object","description":"Multi-term sort. First term has highest precedence. Used on entity list filters and saved-view payloads. An empty `order` array is valid JSON and means the client did not specify sort terms; the server applies resource-specific defaults.","properties":{"order":{"type":"array","description":"Ordered sort terms. Empty list means unspecified at the HTTP boundary (defaults apply).","items":{"$ref":"#/components/schemas/SortOrderContentSortField"}}},"required":["order"]},"SortOrderContentSortField":{"type":"object","description":"Single sort term: which enumerated sort field to use and whether direction is descending.","properties":{"descending":{"type":"boolean","description":"true for descending (DESC), false for ascending (ASC)"},"field":{"$ref":"#/components/schemas/ContentSortField","description":"Sort field for this resource (entity list uses EntityFilter.Sortable / published sort keys)."}},"required":["descending","field"]},"ContentSortField":{"type":"string","description":"Sortable fields for public content cards.","enum":["CONTENT_ID","CONTENT_TYPE","RELATION","TITLE","TOPIC","YEAR","PUBLISHED_AT","CREATED_AT","UPDATED_AT"]},"ClassificationCatalogBucket":{"type":"object","description":"Classification bucket with active registry tags and accepted-spelling aliases.","properties":{"alias":{"type":"array","description":"Other accepted spellings for this bucket (JSON key plus storage form, deduplicated against `type`). The /tags ?type= and /catalog ?bucketType= parameters accept any of `[type, ...alias]`. Empty when the bucket has only one canonical spelling.","items":{"type":"string"}},"bucket":{"type":["string","null"],"description":"Canonical entity-classification bucket key. Use as EntityClassificationMutation.type when creating by type plus name."},"creatable":{"type":"boolean","description":"Whether missing values in this bucket can be created by name."},"hierarchical":{"type":"boolean","description":"Whether the bucket has hierarchy semantics."},"label":{"type":"string","description":"Human-readable bucket label (e.g. \'Revenue Model\')."},"tag":{"type":"array","description":"Active registry tags only. Empty when includeTags=false; dormant tags are omitted and require write-time inactiveTagOverride recovery when type + name matches.","items":{"$ref":"#/components/schemas/EntityTag"}},"tagCount":{"type":"integer","format":"int32","description":"Total active tags in this bucket. Populated regardless of `includeTags` so callers can decide whether to fetch detail without a follow-up count query."},"type":{"type":"string","description":"Canonical wire value — use as ?type= for /tags, as ?bucketType= for /catalog, and as Tag.type when round-tripping. Matches Tag.type returned in this bucket\'s tag[]."},"writable":{"type":"boolean","description":"Whether existing rows in this bucket can be joined."}},"required":["alias","creatable","hierarchical","label","tag","tagCount","type","writable"]},"ClassificationCatalogCategory":{"type":"object","description":"Standardized classification category with accepted spellings and registry rows.","properties":{"alias":{"type":"array","description":"Accepted spellings for this category.","items":{"type":"string"}},"category":{"type":"string","description":"Canonical standardized category key."},"classification":{"type":"array","description":"Standardized classifications. Empty when includeTags=false.","items":{"$ref":"#/components/schemas/StandardizedClassification"}},"classificationCount":{"type":"integer","format":"int32","description":"Total standardized classifications in this category."},"creatable":{"type":"boolean","description":"Whether missing values in this category can be created by name."},"hierarchical":{"type":"boolean","description":"Whether the category has hierarchy semantics."},"label":{"type":"string","description":"Human-readable category label."},"writable":{"type":"boolean","description":"Whether existing rows in this category can be joined."}},"required":["alias","category","classification","classificationCount","creatable","hierarchical","label","writable"]},"AuthClient":{"type":"object","properties":{"authorizationServer":{"type":"string","format":"uri","description":"OAuth authorization server URI"},"clientId":{"type":"string","description":"Public OAuth client identifier"},"redirectUri":{"type":"string","format":"uri","description":"Registered loopback callback URI template"},"resource":{"type":"string","format":"uri","description":"OAuth resource indicator accepted by the API"},"scope":{"type":"array","description":"OAuth scope requested by the CLI","items":{"type":"string"}}},"required":["authorizationServer","clientId","redirectUri","resource","scope"]},"AuthOperation":{"type":"object","description":"Generated API operation candidate identified by operation id, method, and path.","properties":{"authorizationPath":{"type":"string","description":"Concrete path for authorization. Preserve the path template\'s literal segments and substitute its parameters with values matching their generated schema. No request is executed against this path.","maxLength":2048,"minLength":0},"method":{"$ref":"#/components/schemas/AuthOperationMethod","description":"HTTP method of the operation."},"operationId":{"type":"string","description":"Generated OpenAPI operation id.","maxLength":128,"minLength":0},"path":{"type":"string","description":"Absolute API path. A whole path segment may be an OpenAPI placeholder such as {entityId}.","maxLength":2048,"minLength":0}},"required":["authorizationPath","method","operationId","path"]},"AuthOperationAccess":{"type":"string","description":"Current session access class: ordinary reads, explicit permissions, or admin.","enum":["READ","PERMISSION","ADMIN"]},"AuthOperationMethod":{"type":"string","description":"HTTP method of a generated aVenture API operation.","enum":["GET","POST","PUT","PATCH","DELETE"]},"CliAuthorizationDelivery":{"type":"object","description":"RSA-wrapped AES-256-GCM delivery of one personal API-key secret","properties":{"algorithm":{"$ref":"#/components/schemas/CliAuthorizationEncryptionAlgorithm","description":"Hybrid encryption suite used for this delivery"},"authenticationTag":{"type":"string","description":"Base64-encoded 16-byte AES-GCM authentication tag"},"ciphertext":{"type":"string","description":"Base64-encoded encrypted UTF-8 personal API-key secret bytes"},"nonce":{"type":"string","description":"Base64-encoded 12-byte AES-GCM nonce"},"wrappedKey":{"type":"string","description":"Base64-encoded RSA-OAEP-wrapped AES key"}},"required":["algorithm","authenticationTag","ciphertext","nonce","wrappedKey"]},"CliAuthorizationStatus":{"type":"string","description":"CLI authorization broker lifecycle state","enum":["PENDING","ISSUING","KEY_READY","REVOKING","CONSUMED","REVOKED","DENIED","EXPIRED","FAILED"]},"CliAuthorizationTerminalReason":{"type":"string","description":"CLI authorization terminal explanation","enum":["Denied by user","Authorization request expired","CLI authorization expired before acknowledgement","Credential issuance recovery revoked an unrecoverable key","Revoked by user","Clerk create response validation failed","Credential issuance failed","Credential issuance could not be recovered","Personal API-key quota reached","Credential issuance lost its database claim","Credential delivery encryption failed","Credential issuance finalization was lost"]},"CliAuthorizationEncryptionAlgorithm":{"type":"string","description":"Versioned hybrid encryption suite for one-time CLI credential delivery","enum":["RSA_OAEP_256_A256_GCM_V1"]},"CliAuthorizationClientPlatform":{"type":"string","description":"Coarse operating-system family reported by the CLI","enum":["MACOS","LINUX","WINDOWS","OTHER"]},"AgentInstruction":{"type":"object","description":"Addressable identity of a versioned agent instruction document.","properties":{"kind":{"$ref":"#/components/schemas/AgentInstructionKind","description":"Document kind"},"name":{"type":"string","description":"Manifest name of the instruction document"},"version":{"type":"string","description":"Immutable content version (first 12 hex chars of the content sha256)"}},"required":["kind","name","version"]},"AgentInstructionPointer":{"type":"object","description":"One manifest entry: immutable version id and the full object key it resolves to.","properties":{"key":{"type":"string","description":"Object key under the agents/ prefix"},"version":{"type":"string","description":"Immutable content version (sha256-12)"}},"required":["key","version"]},"HelpCitation":{"type":"object","description":"A single corpus document the help answer is grounded in.","properties":{"excerpt":{"type":"string","description":"Verbatim excerpt from the cited document supporting the answer."},"sourceId":{"type":"string","description":"Stable id within the source type: an operationId, a skill/prompt name, or a completion gate id.","example":"createEntityText"},"sourceType":{"$ref":"#/components/schemas/HelpSourceType","description":"Which part of the platform corpus this citation comes from."},"sourceVersion":{"type":["string","null"],"description":"Immutable version of the cited document when one exists (skill/prompt content version); null for catalog-derived sources."}},"required":["excerpt","sourceId","sourceType"]},"HelpSourceType":{"type":"string","description":"Corpus partition a help citation is drawn from.","enum":["OPERATION","SKILL","PROMPT","COMPLETION_GATE"]},"HelpScope":{"type":"string","description":"Operation scope a help answer may recommend: read-only, write, or all.","enum":["READ","WRITE","ALL"]},"LocationDirectoryEntry":{"type":"object","description":"Single directory entry (country/state/city) for sitemap","properties":{"canonicalSlug":{"type":"string"},"entityCount":{"type":"integer","format":"int64"},"identifier":{"$ref":"#/components/schemas/LocationIdentifier"},"latestUpdatedAt":{"type":["string","null"],"format":"date-time","description":"Per-location entity provenance watermark: MAX over the location\'s member companies of COALESCE(lastModifiedAt, createdAt), computed by the stored directory rebuild. Absent until that rebuild has run for the row."},"name":{"type":"string"},"parentLabel":{"type":["string","null"]},"slug":{"type":"string"}},"required":["canonicalSlug","entityCount","identifier","name","slug"]},"LocationIdentifier":{"type":"object","description":"Canonical multi-scope location identifier with hierarchical IDs","properties":{"cityId":{"type":["integer","null"],"format":"int32"},"cityName":{"type":["string","null"]},"countryId":{"type":["integer","null"],"format":"int32"},"countryIso2":{"type":["string","null"]},"countryName":{"type":["string","null"]},"scope":{"$ref":"#/components/schemas/LocationScope"},"stateAbbrev":{"type":["string","null"]},"stateId":{"type":["integer","null"],"format":"int32"},"stateName":{"type":["string","null"]}},"required":["scope"]},"LocationScope":{"type":"string","description":"Geographic scope tier for location directory","enum":["country","state","city"]},"PageResultSitemapUrlSlot":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/SitemapUrlSlot"}},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}},"required":["content","number","size","totalElements","totalPages"]},"PageResultLocationDirectoryEntry":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/LocationDirectoryEntry"}},"number":{"type":"integer","format":"int32"},"size":{"type":"integer","format":"int32"},"totalElements":{"type":"integer","format":"int64"},"totalPages":{"type":"integer","format":"int32"}},"required":["content","number","size","totalElements","totalPages"]},"LocationSlugResolution":{"type":"object","description":"Slug resolution pair for sitemap hydration","properties":{"canonicalSlug":{"type":"string"},"matched":{"type":"boolean"},"outcome":{"$ref":"#/components/schemas/LocationResolutionOutcome","description":"Lifecycle outcome for the requested slug; absent or current means live, unpublished accompanies an HTTP 410 response."},"seoSlug":{"type":"string"}},"required":["canonicalSlug","matched","seoSlug"]},"LocationResolutionOutcome":{"type":"string","description":"Lifecycle classification for a requested location slug: current resolves to a live published directory entry; unpublished means the canonical token resolves to a real reference-table location that has no publishable companies, served as HTTP 410 Gone so crawlers drop the URL permanently","enum":["current","unpublished"]},"SystemBuildDetail":{"type":"object","description":"Application build metadata","properties":{"artifact":{"type":["string","null"],"description":"Artifact identifier","example":"back-end"},"group":{"type":["string","null"],"description":"Group identifier","example":"vc.aventure"},"name":{"type":["string","null"],"description":"Project name","example":"aVenture API"},"revision":{"type":["string","null"],"description":"Deployed Git commit revision","example":"0123456789abcdef"},"time":{"type":["string","null"],"format":"date-time","description":"Build timestamp"},"version":{"type":["string","null"],"description":"Project version","example":"0.6.2-SNAPSHOT"}}},"CurrentSlugOwner":{"type":"object","description":"Current slug owner","properties":{"deletedAt":{"type":["string","null"],"format":"date-time"},"id":{"type":"string"},"isHidden":{"type":"boolean"},"nameBrand":{"type":["string","null"]},"resourceType":{"$ref":"#/components/schemas/SlugResource"},"showOnSitemap":{"type":"boolean"},"slug":{"type":"string"}},"required":["id","isHidden","resourceType","showOnSitemap","slug"]},"DomainConflictDetails":{"description":"Polymorphic envelope for RFC 9457 ProblemDetail.details on HTTP 409 responses. The concrete variant depends on the conflict kind: URL ownership collisions return UrlDuplicateConflict; ambiguous strict URL lookups return StrictUrlLookupConflict; create-time duplicate review gates return DuplicateCreateReview; classification writes that touch an inactive tag bucket return ClassificationInactiveTagDetails; news publication+URL uniqueness violations return NewsSourceUrlConflict. Inspect ProblemDetail.code/type and the field set present on details to identify the variant.","oneOf":[{"$ref":"#/components/schemas/UrlDuplicateConflict"},{"$ref":"#/components/schemas/StrictUrlLookupConflict"},{"$ref":"#/components/schemas/DuplicateCreateReview"},{"$ref":"#/components/schemas/ClassificationInactiveTagDetails"},{"$ref":"#/components/schemas/NewsSourceUrlConflict"}]},"RedirectSlugPath":{"type":"object","description":"Redirect slug path","properties":{"newUrl":{"type":["string","null"]},"oldUrl":{"type":"string"},"targetCurrentSlug":{"type":["string","null"]},"targetId":{"type":["string","null"]},"targetResourceType":{"oneOf":[{"$ref":"#/components/schemas/SlugResource"},{"type":"null"}]}},"required":["oldUrl"]},"ProblemResolution":{"type":"object","description":"Machine-readable next action for an aVenture ProblemDetail. For reviewCandidates, inspect ProblemDetail.details candidates and decide update, create-with-override, or block from those returned records.","properties":{"acceptedValue":{"type":["array","null"],"description":"Accepted values for the field or parameter, when enumerable.","items":{"type":"string"}},"action":{"type":"string","description":"Next action category for the client or agent.","enum":["setField","setParameter","removeParameter","useEndpoint","reviewCandidates","authenticate"]},"endpoint":{"type":["string","null"],"description":"Endpoint to call for the next action, when applicable."},"fieldPath":{"type":["string","null"],"description":"Request-body field path that needs attention, when applicable."},"parameter":{"type":["string","null"],"description":"Query parameter that needs attention, when applicable."},"retryable":{"type":["boolean","null"],"description":"Whether the same logical request can be retried after the next action."}},"required":["action"]},"ProblemType":{"type":"string","format":"uri","description":"Known RFC 9457 error type URIs.","enum":["https://api.aventure.vc/errors/validation-failed","https://api.aventure.vc/errors/missing-parameter","https://api.aventure.vc/errors/invalid-parameter-type","https://api.aventure.vc/errors/unknown-parameter","https://api.aventure.vc/errors/invalid-argument","https://api.aventure.vc/errors/invalid-request","https://api.aventure.vc/errors/invalid-token","https://api.aventure.vc/errors/token-expired","https://api.aventure.vc/errors/invalid-authentication","https://api.aventure.vc/errors/client-closed-request","https://api.aventure.vc/errors/invalid-json","https://api.aventure.vc/errors/method-not-allowed","https://api.aventure.vc/errors/not-acceptable","https://api.aventure.vc/errors/unsupported-media-type","https://api.aventure.vc/errors/internal-error","https://api.aventure.vc/errors/unexpected-error","https://api.aventure.vc/errors/not-implemented","https://api.aventure.vc/errors/authentication-required","https://api.aventure.vc/errors/auth.docs-required","https://api.aventure.vc/errors/auth.admin-key-not-configured","https://api.aventure.vc/errors/auth.empty-admin-key","https://api.aventure.vc/errors/auth.empty-admin-bearer","https://api.aventure.vc/errors/auth.invalid-admin-key","https://api.aventure.vc/errors/auth.missing-admin-key","https://api.aventure.vc/errors/auth.metrics-unauthorized","https://api.aventure.vc/errors/access-denied","https://api.aventure.vc/errors/not-found","https://api.aventure.vc/errors/gone","https://api.aventure.vc/errors/rate-limited","https://api.aventure.vc/errors/precondition-failed","https://api.aventure.vc/errors/precondition-required","https://api.aventure.vc/errors/billing-allowance-exhausted","https://api.aventure.vc/errors/subscription-required","https://api.aventure.vc/errors/service-unavailable","https://api.aventure.vc/errors/malformed-form-body","https://api.aventure.vc/errors/state-conflict","https://api.aventure.vc/errors/slug-held-by-record","https://api.aventure.vc/errors/slug-held-by-redirect","https://api.aventure.vc/errors/slug-ambiguous","https://api.aventure.vc/errors/duplicate","https://api.aventure.vc/errors/duplicate-key","https://api.aventure.vc/errors/integrity-violation","https://api.aventure.vc/errors/circuit-breaker-open","https://api.aventure.vc/errors/bulkhead-full","https://api.aventure.vc/errors/write-lane-busy","https://api.aventure.vc/errors/database-unavailable","https://api.aventure.vc/errors/database-error","https://api.aventure.vc/errors/file-too-large","https://api.aventure.vc/errors/missing-file-part","https://api.aventure.vc/errors/invalid-multipart-boundary","https://api.aventure.vc/errors/multipart-parse-error","https://api.aventure.vc/errors/non-english-article","https://api.aventure.vc/errors/invalid-image","https://api.aventure.vc/errors/upstream-edge-challenged","https://api.aventure.vc/errors/accelerator-detail-restates-target"],"x-enum-varnames":["VALIDATION_FAILED","MISSING_PARAMETER","INVALID_PARAMETER_TYPE","UNKNOWN_PARAMETER","INVALID_ARGUMENT","INVALID_REQUEST","INVALID_TOKEN","TOKEN_EXPIRED","INVALID_AUTHENTICATION","CLIENT_CLOSED_REQUEST","INVALID_JSON","METHOD_NOT_ALLOWED","NOT_ACCEPTABLE","UNSUPPORTED_MEDIA_TYPE","INTERNAL_ERROR","UNEXPECTED_ERROR","NOT_IMPLEMENTED","AUTHENTICATION_REQUIRED","AUTH_DOCS_REQUIRED","AUTH_ADMIN_KEY_NOT_CONFIGURED","AUTH_EMPTY_ADMIN_KEY","AUTH_EMPTY_ADMIN_BEARER","AUTH_INVALID_ADMIN_KEY","AUTH_MISSING_ADMIN_KEY","AUTH_METRICS_UNAUTHORIZED","ACCESS_DENIED","NOT_FOUND","GONE","RATE_LIMITED","PRECONDITION_FAILED","PRECONDITION_REQUIRED","BILLING_ALLOWANCE_EXHAUSTED","SUBSCRIPTION_REQUIRED","SERVICE_UNAVAILABLE","MALFORMED_FORM_BODY","STATE_CONFLICT","SLUG_HELD_BY_RECORD","SLUG_HELD_BY_REDIRECT","SLUG_AMBIGUOUS","DUPLICATE","DUPLICATE_KEY","INTEGRITY_VIOLATION","CIRCUIT_BREAKER_OPEN","BULKHEAD_FULL","WRITE_LANE_BUSY","DATABASE_UNAVAILABLE","DATABASE_ERROR","FILE_TOO_LARGE","MISSING_FILE_PART","INVALID_MULTIPART_BOUNDARY","MULTIPART_PARSE_ERROR","NON_ENGLISH_ARTICLE","INVALID_IMAGE","UPSTREAM_EDGE_CHALLENGED","ACCELERATOR_DETAIL_RESTATES_TARGET"]},"UrlDuplicateConflict":{"type":"object","description":"Typed extension on ProblemDetail.details for HTTP 409 when a create/update attempts to set a URL with urlType=website (or another exclusive urlType) that is already a current URL on a different entity or person. The existingJoin list names every current owner of the normalized URL; resolve by demoting the existing owner (isCurrent=false, isPrimary=false) before promoting the new owner.","properties":{"existingJoin":{"type":"array","description":"Every current owner that already holds the normalized URL with this urlType. Non-empty when this conflict is emitted.","items":{"$ref":"#/components/schemas/UrlDuplicateJoin"}},"fragmentIgnored":{"type":"boolean","description":"True when URL fragment differences were ignored during duplicate matching (i.e., the conflict ignores everything after \'#\')."},"guidance":{"type":"string","description":"Human-readable guidance on how to resolve the conflict. Defaults to the standard inspect-then-demote/promote sequence."},"normalizedUrl":{"type":["string","null"],"description":"Normalized URL match key used for duplicate detection. Null when normalization could not produce a stable key (e.g., malformed input)."},"requestedOwner":{"$ref":"#/components/schemas/EntityPersonOwner","description":"Owner the caller attempted to attach the URL to."},"url":{"type":"string","description":"Raw URL as submitted by the caller (pre-normalization)."},"urlType":{"type":"string","description":"URL type submitted by the caller (e.g., \'website\', \'twitter\'). The conflict applies only within this urlType."}},"required":["existingJoin","fragmentIgnored","guidance","requestedOwner","url","urlType"]},"StrictUrlLookupConflict":{"type":"object","description":"Typed extension on ProblemDetail.details for HTTP 409 when a strict URL lookup (GET /v1/entities/lookup?url=...) resolves to more than one current owner. The candidate lists return every current owner that matches the normalized URL key; the caller must add disambiguating signals (urlType, typeRecord, slug) to resolve to a single owner.","properties":{"candidateEntityId":{"type":"array","description":"Every entity id that currently owns the normalized URL. May be empty when the conflict is between persons; combined with candidatePersonId always > 1.","items":{"type":"string","format":"uuid","description":"Canonical entity UUID"}},"candidatePersonId":{"type":"array","description":"Every person id that currently owns the normalized URL. May be empty when the conflict is between entities; combined with candidateEntityId always > 1.","items":{"type":"string","format":"uuid","description":"Canonical person UUID"}},"hint":{"type":"string","description":"Human-readable hint describing which disambiguating query parameters to add."},"normalizedUrl":{"type":["string","null"],"description":"Normalized URL match key the lookup resolved against. Null when normalization could not produce a stable key."},"url":{"type":"string","description":"Raw URL the caller queried."},"urlType":{"type":["string","null"],"description":"URL type the caller specified, or null if the lookup did not constrain by urlType."}},"required":["candidateEntityId","candidatePersonId","hint","url"]},"DuplicateCreateReview":{"type":"object","description":"Candidate-review conflict details returned in ProblemDetail.details for create gates and deterministic lookup ambiguity. The returned candidates are the decision surface: update the matching candidate, create with duplicate override only when every candidate is distinct from the source-backed target, or block when identity is unresolved. score and threshold rank review priority; they are not proof that the requested record is absent.","properties":{"candidate":{"type":["array","null"],"description":"Entity/person candidates returned by lookup or create duplicate review. If a candidate is the requested record, read/update that candidate by id. Create with duplicate override only after every candidate is reviewed as distinct.","items":{"$ref":"#/components/schemas/SearchDuplicateCandidateScore"}},"newsCandidate":{"type":["array","null"],"description":"News candidates returned by lookup or create duplicate review. If a candidate is the requested article, read/update that article by id. Otherwise block until source evidence proves a distinct article.","items":{"$ref":"#/components/schemas/NewsCandidateScore"}},"overridePath":{"type":["string","null"],"description":"Create endpoint to retry only after reviewing the returned candidates and supplying overrideGate=duplicate and overrideReason as query parameters. Null for detail lookup ambiguity, where the next action is review/update/block."},"threshold":{"type":"integer","format":"int32","description":"Review threshold used by duplicate scoring. Scores below this value can still be useful candidate context; this value does not prove absence or authorize create."}},"required":["threshold"]},"ClassificationInactiveTagDetails":{"type":"object","description":"ProblemDetail.details for HTTP 409 when a classification value exists but is inactive.","properties":{"availableOverrides":{"type":"array","description":"Allowed inactiveTagOverride values for this conflict","items":{"$ref":"#/components/schemas/EntityClassificationInactiveTagOverride"}},"slug":{"type":"string","description":"Existing dormant value slug or lookup key"},"tagId":{"type":"integer","format":"int32","description":"Existing tag id in res_type_ref"}},"required":["availableOverrides","slug","tagId"]},"NewsSourceUrlConflict":{"type":"object","description":"Typed extension on ProblemDetail.details for HTTP 409 when a news mutation\'s publication + newsUrlOriginal pair already belongs to another article. The returned fields identify the existing article so the caller can read/update it instead of creating a duplicate.","properties":{"conflictingArticleId":{"type":"integer","format":"int32","description":"Existing article id (NewsId.value) that already owns this publication + URL pair."},"conflictingArticleSlug":{"type":"string","description":"Existing article slug, or empty string when the existing article has no slug. Use with GET /v1/news/detail?slug= to fetch the conflicting article."},"conflictingArticleTitle":{"type":"string","description":"Existing article title for human-readable diagnostics."}},"required":["conflictingArticleId","conflictingArticleSlug","conflictingArticleTitle"]},"EntityClassificationInactiveTagOverride":{"type":"string","description":"Caller-chosen handling when the canonical classification value exists but is dormant.","enum":["REACTIVATE","ATTACH_INACTIVE"]},"SearchDuplicateCandidateScore":{"type":"object","description":"Duplicate candidate scoring result. Use id/name/slug/typeRecord/reason to decide whether the candidate is the requested record. score ranks review priority; it does not prove absence.","properties":{"externalId":{"type":["string","null"],"description":"Matched external identifier when duplicate scoring used one."},"id":{"type":"string","format":"uuid","description":"Candidate id to read or update when this candidate is the requested record."},"name":{"type":["string","null"],"description":"Candidate display name from the existing record."},"operatingStatus":{"type":["string","null"],"description":"Current operating status for entity candidates."},"publicPath":{"type":["string","null"],"description":"Public API/UI path for the candidate when available."},"reason":{"type":"array","description":"Match reasons such as name-exact, slug-exact, url-match, url-type, or precomputed-similarity. url-match proves the supplied URL/domain matched; url-type only means the candidate has the same URL category and is review context, not URL identity evidence.","items":{"type":"string"}},"score":{"type":"integer","format":"int32","description":"Ranking score for duplicate review. It is not an absence proof; a low score can still be the intended record when reason/name/slug/typeRecord match."},"slug":{"type":["string","null"],"description":"Candidate slug from the existing record.","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"},"typeRecord":{"description":"Candidate entity type from the existing record.","oneOf":[{"$ref":"#/components/schemas/EntityType"},{"type":"null"}]}},"required":["id","reason","score"]},"NewsCandidateScore":{"type":"object","description":"Duplicate candidate scoring result for news articles. Use id/slug/externalId/reason to decide whether the candidate is the requested article. score ranks review priority; it does not prove absence.","properties":{"externalId":{"type":["string","null"],"description":"Matched external article identifier when duplicate scoring used one."},"id":{"type":"integer","format":"int32","description":"News article id to read or update when this candidate is the requested article."},"reason":{"type":"array","description":"Match reasons for reviewing the candidate. Exact reasons are decision signals regardless of whether score crosses the review threshold.","items":{"type":"string"}},"score":{"type":"integer","format":"int32","description":"Ranking score for duplicate review. It is not an absence proof; a low score can still be the intended article when reason/slug/externalId match."},"slug":{"type":["string","null"],"description":"Candidate article slug from the existing record.","example":"aventure-vc","maxLength":255,"pattern":"^[a-z0-9_-]+$"}},"required":["id","reason","score"]},"UrlDuplicateJoin":{"type":"object","description":"URL ownership join row identifying which entity or person currently owns a normalized URL.","properties":{"owner":{"$ref":"#/components/schemas/EntityPersonOwner","description":"Owner of the URL: either entityId or personId is populated depending on the owner kind. Use the populated id to read or update the owner\'s URL."},"urlId":{"type":"integer","format":"int32","description":"Internal URL row id (res_weburl.id) — opaque to API clients."}},"required":["owner","urlId"]}},"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT or opaque OAuth access token","description":"User bearer token: Clerk session JWT, Clerk OAuth access token, or Clerk personal API key","scheme":"bearer","type":"http"},"adminApiKeyAuth":{"description":"Admin API key for system-to-system write operations","in":"header","name":"X-API-Key","type":"apiKey"},"clientSecretAuth":{"description":"Client secret for read-only service-to-service access (no writes)","in":"header","name":"X-Client-Secret","type":"apiKey"}}}')};j([`requestChangeForm`,`newsArticle`,`blogArticle`,`firstPartyWebsite`,`relatedPartyWebsite`,`thirdPartyWebsite`,`llm`,`aventureStaff`,`api`,`manual`,`import`]);var Z=s(((e,t)=>{t.exports={kClose:Symbol(`close`),kDestroy:Symbol(`destroy`),kDispatch:Symbol(`dispatch`),kUrl:Symbol(`url`),kWriting:Symbol(`writing`),kResuming:Symbol(`resuming`),kQueue:Symbol(`queue`),kConnect:Symbol(`connect`),kConnecting:Symbol(`connecting`),kKeepAliveDefaultTimeout:Symbol(`default keep alive timeout`),kKeepAliveMaxTimeout:Symbol(`max keep alive timeout`),kKeepAliveTimeoutThreshold:Symbol(`keep alive timeout threshold`),kKeepAliveTimeoutValue:Symbol(`keep alive timeout`),kKeepAlive:Symbol(`keep alive`),kHeadersTimeout:Symbol(`headers timeout`),kBodyTimeout:Symbol(`body timeout`),kServerName:Symbol(`server name`),kLocalAddress:Symbol(`local address`),kHost:Symbol(`host`),kNoRef:Symbol(`no ref`),kBodyUsed:Symbol(`used`),kBody:Symbol(`abstracted request body`),kRunning:Symbol(`running`),kBlocking:Symbol(`blocking`),kPending:Symbol(`pending`),kSize:Symbol(`size`),kBusy:Symbol(`busy`),kQueued:Symbol(`queued`),kFree:Symbol(`free`),kConnected:Symbol(`connected`),kClosed:Symbol(`closed`),kNeedDrain:Symbol(`need drain`),kReset:Symbol(`reset`),kDestroyed:Symbol.for(`nodejs.stream.destroyed`),kResume:Symbol(`resume`),kOnError:Symbol(`on error`),kMaxHeadersSize:Symbol(`max headers size`),kRunningIdx:Symbol(`running index`),kPendingIdx:Symbol(`pending index`),kError:Symbol(`error`),kClients:Symbol(`clients`),kClient:Symbol(`client`),kParser:Symbol(`parser`),kOnDestroyed:Symbol(`destroy callbacks`),kPipelining:Symbol(`pipelining`),kSocket:Symbol(`socket`),kHostHeader:Symbol(`host header`),kConnector:Symbol(`connector`),kStrictContentLength:Symbol(`strict content length`),kMaxRedirections:Symbol(`maxRedirections`),kMaxRequests:Symbol(`maxRequestsPerClient`),kProxy:Symbol(`proxy agent options`),kCounter:Symbol(`socket request counter`),kMaxResponseSize:Symbol(`max response size`),kHTTP2Session:Symbol(`http2Session`),kHTTP2Options:Symbol(`http2 options`),kHTTP2SessionState:Symbol(`http2Session state`),kRetryHandlerDefaultRetry:Symbol(`retry agent default retry`),kConstruct:Symbol(`constructable`),kListeners:Symbol(`listeners`),kHTTPContext:Symbol(`http context`),kMaxConcurrentStreams:Symbol(`max concurrent streams`),kHostAuthority:Symbol(`host authority`),kHTTP2InitialWindowSize:Symbol(`http2 initial window size`),kHTTP2ConnectionWindowSize:Symbol(`http2 connection window size`),kEnableConnectProtocol:Symbol(`http2session connect protocol`),kRemoteSettings:Symbol(`http2session remote settings`),kHTTP2Stream:Symbol(`http2session client stream`),kPingInterval:Symbol(`ping interval`),kNoProxyAgent:Symbol(`no proxy agent`),kHttpProxyAgent:Symbol(`http proxy agent`),kHttpsProxyAgent:Symbol(`https proxy agent`),kSocks5ProxyAgent:Symbol(`socks5 proxy agent`)}})),vu=s(((e,t)=>{var n=0,r=1e3,i,a=Symbol(`kFastTimer`),o=[],s=-2,c=-1,l=0,u=1;function d(){n+=499;let e=0,t=o.length;for(;e<t;){let r=o[e];r._state===l?(r._idleStart=n-499,r._state=u):r._state===u&&n>=r._idleStart+r._idleTimeout&&(r._state=c,r._idleStart=-1,r._onTimeout(r._timerArg)),r._state===c?(r._state=s,--t!==0&&(o[e]=o[t])):++e}o.length=t,o.length!==0&&f()}function f(){i?.refresh?i.refresh():(clearTimeout(i),i=setTimeout(d,499),i?.unref())}var p=class{[a]=!0;_state=s;_idleTimeout=-1;_idleStart=-1;_onTimeout;_timerArg;constructor(e,t,n){this._onTimeout=e,this._idleTimeout=t,this._timerArg=n,this.refresh()}refresh(){this._state===s&&o.push(this),(!i||o.length===1)&&f(),this._state=l}clear(){this._state=c,this._idleStart=-1}};t.exports={setTimeout(e,t,n){return t<=r?setTimeout(e,t,n):new p(e,t,n)},clearTimeout(e){e[a]?e.clear():clearTimeout(e)},setFastTimeout(e,t,n){return new p(e,t,n)},clearFastTimeout(e){e.clear()},now(){return n},tick(e=0){n+=e-r+1,d(),d()},reset(){n=0,o.length=0,clearTimeout(i),i=null},kFastTimer:a}})),Q=s(((e,t)=>{var n=Symbol.for(`undici.error.UND_ERR`),r=class extends Error{constructor(e,t){super(e,t),this.name=`UndiciError`,this.code=`UND_ERR`}static[Symbol.hasInstance](e){return e&&e[n]===!0}get[n](){return!0}},i=Symbol.for(`undici.error.UND_ERR_CONNECT_TIMEOUT`),a=class extends r{constructor(e){super(e),this.name=`ConnectTimeoutError`,this.message=e||`Connect Timeout Error`,this.code=`UND_ERR_CONNECT_TIMEOUT`}static[Symbol.hasInstance](e){return e&&e[i]===!0}get[i](){return!0}},o=Symbol.for(`undici.error.UND_ERR_HEADERS_TIMEOUT`),s=class extends r{constructor(e){super(e),this.name=`HeadersTimeoutError`,this.message=e||`Headers Timeout Error`,this.code=`UND_ERR_HEADERS_TIMEOUT`}static[Symbol.hasInstance](e){return e&&e[o]===!0}get[o](){return!0}},c=Symbol.for(`undici.error.UND_ERR_HEADERS_OVERFLOW`),l=class extends r{constructor(e){super(e),this.name=`HeadersOverflowError`,this.message=e||`Headers Overflow Error`,this.code=`UND_ERR_HEADERS_OVERFLOW`}static[Symbol.hasInstance](e){return e&&e[c]===!0}get[c](){return!0}},u=Symbol.for(`undici.error.UND_ERR_BODY_TIMEOUT`),d=class extends r{constructor(e){super(e),this.name=`BodyTimeoutError`,this.message=e||`Body Timeout Error`,this.code=`UND_ERR_BODY_TIMEOUT`}static[Symbol.hasInstance](e){return e&&e[u]===!0}get[u](){return!0}},f=Symbol.for(`undici.error.UND_ERR_INVALID_ARG`),p=class extends r{constructor(e){super(e),this.name=`InvalidArgumentError`,this.message=e||`Invalid Argument Error`,this.code=`UND_ERR_INVALID_ARG`}static[Symbol.hasInstance](e){return e&&e[f]===!0}get[f](){return!0}},m=Symbol.for(`undici.error.UND_ERR_INVALID_RETURN_VALUE`),h=class extends r{constructor(e){super(e),this.name=`InvalidReturnValueError`,this.message=e||`Invalid Return Value Error`,this.code=`UND_ERR_INVALID_RETURN_VALUE`}static[Symbol.hasInstance](e){return e&&e[m]===!0}get[m](){return!0}},g=Symbol.for(`undici.error.UND_ERR_ABORT`),_=class extends r{constructor(e){super(e),this.name=`AbortError`,this.message=e||`The operation was aborted`,this.code=`UND_ERR_ABORT`}static[Symbol.hasInstance](e){return e&&e[g]===!0}get[g](){return!0}},v=Symbol.for(`undici.error.UND_ERR_ABORTED`),y=class extends _{constructor(e){super(e),this.name=`AbortError`,this.message=e||`Request aborted`,this.code=`UND_ERR_ABORTED`}static[Symbol.hasInstance](e){return e&&e[v]===!0}get[v](){return!0}},b=Symbol.for(`undici.error.UND_ERR_INFO`),x=class extends r{constructor(e,t){super(e,t),this.name=`InformationalError`,this.message=e||`Request information`,this.code=`UND_ERR_INFO`}static[Symbol.hasInstance](e){return e&&e[b]===!0}get[b](){return!0}},S=Symbol.for(`undici.error.UND_ERR_REQ_CONTENT_LENGTH_MISMATCH`),C=class extends r{constructor(e){super(e),this.name=`RequestContentLengthMismatchError`,this.message=e||`Request body length does not match content-length header`,this.code=`UND_ERR_REQ_CONTENT_LENGTH_MISMATCH`}static[Symbol.hasInstance](e){return e&&e[S]===!0}get[S](){return!0}},w=Symbol.for(`undici.error.UND_ERR_RES_CONTENT_LENGTH_MISMATCH`),T=class extends r{constructor(e){super(e),this.name=`ResponseContentLengthMismatchError`,this.message=e||`Response body length does not match content-length header`,this.code=`UND_ERR_RES_CONTENT_LENGTH_MISMATCH`}static[Symbol.hasInstance](e){return e&&e[w]===!0}get[w](){return!0}},E=Symbol.for(`undici.error.UND_ERR_DESTROYED`),D=class extends r{constructor(e){super(e),this.name=`ClientDestroyedError`,this.message=e||`The client is destroyed`,this.code=`UND_ERR_DESTROYED`}static[Symbol.hasInstance](e){return e&&e[E]===!0}get[E](){return!0}},O=Symbol.for(`undici.error.UND_ERR_CLOSED`),k=class extends r{constructor(e){super(e),this.name=`ClientClosedError`,this.message=e||`The client is closed`,this.code=`UND_ERR_CLOSED`}static[Symbol.hasInstance](e){return e&&e[O]===!0}get[O](){return!0}},A=Symbol.for(`undici.error.UND_ERR_SOCKET`),j=class extends r{constructor(e,t){super(e),this.name=`SocketError`,this.message=e||`Socket error`,this.code=`UND_ERR_SOCKET`,this.socket=t}static[Symbol.hasInstance](e){return e&&e[A]===!0}get[A](){return!0}},M=Symbol.for(`undici.error.UND_ERR_NOT_SUPPORTED`),N=class extends r{constructor(e){super(e),this.name=`NotSupportedError`,this.message=e||`Not supported error`,this.code=`UND_ERR_NOT_SUPPORTED`}static[Symbol.hasInstance](e){return e&&e[M]===!0}get[M](){return!0}},P=Symbol.for(`undici.error.UND_ERR_BPL_MISSING_UPSTREAM`),F=class extends r{constructor(e){super(e),this.name=`MissingUpstreamError`,this.message=e||`No upstream has been added to the BalancedPool`,this.code=`UND_ERR_BPL_MISSING_UPSTREAM`}static[Symbol.hasInstance](e){return e&&e[P]===!0}get[P](){return!0}},I=Symbol.for(`undici.error.UND_ERR_HTTP_PARSER`),L=class extends Error{constructor(e,t,n){super(e),this.name=`HTTPParserError`,this.code=t?`HPE_${t}`:void 0,this.data=n?n.toString():void 0}static[Symbol.hasInstance](e){return e&&e[I]===!0}get[I](){return!0}},R=Symbol.for(`undici.error.UND_ERR_RES_EXCEEDED_MAX_SIZE`),z=class extends r{constructor(e){super(e),this.name=`ResponseExceededMaxSizeError`,this.message=e||`Response content exceeded max size`,this.code=`UND_ERR_RES_EXCEEDED_MAX_SIZE`}static[Symbol.hasInstance](e){return e&&e[R]===!0}get[R](){return!0}},ee=Symbol.for(`undici.error.UND_ERR_REQ_RETRY`),B=class extends r{constructor(e,t,{headers:n,data:r}){super(e),this.name=`RequestRetryError`,this.message=e||`Request retry error`,this.code=`UND_ERR_REQ_RETRY`,this.statusCode=t,this.data=r,this.headers=n}static[Symbol.hasInstance](e){return e&&e[ee]===!0}get[ee](){return!0}},te=Symbol.for(`undici.error.UND_ERR_RESPONSE`),V=class extends r{constructor(e,t,{headers:n,body:r}){super(e),this.name=`ResponseError`,this.message=e||`Response error`,this.code=`UND_ERR_RESPONSE`,this.statusCode=t,this.body=r,this.headers=n}static[Symbol.hasInstance](e){return e&&e[te]===!0}get[te](){return!0}},ne=Symbol.for(`undici.error.UND_ERR_PRX_TLS`),H=class extends r{constructor(e,t,n={}){super(t,{cause:e,...n}),this.name=`SecureProxyConnectionError`,this.message=t||`Secure Proxy Connection failed`,this.code=`UND_ERR_PRX_TLS`,this.cause=e}static[Symbol.hasInstance](e){return e&&e[ne]===!0}get[ne](){return!0}},U=Symbol.for(`undici.error.UND_ERR_PRX_CONN`),W=class extends r{constructor(e,t,n={}){super(t,{cause:e,...n}),this.name=`ProxyConnectionError`,this.message=t||`Proxy Connection failed`,this.code=`UND_ERR_PRX_CONN`,this.cause=e}static[Symbol.hasInstance](e){return e&&e[U]===!0}get[U](){return!0}},G=Symbol.for(`undici.error.UND_ERR_MAX_ORIGINS_REACHED`),re=class extends r{constructor(e){super(e),this.name=`MaxOriginsReachedError`,this.message=e||`Maximum allowed origins reached`,this.code=`UND_ERR_MAX_ORIGINS_REACHED`}static[Symbol.hasInstance](e){return e&&e[G]===!0}get[G](){return!0}},K=class extends r{constructor(e,t){super(e),this.name=`Socks5ProxyError`,this.message=e||`SOCKS5 proxy error`,this.code=t||`UND_ERR_SOCKS5`}},ie=Symbol.for(`undici.error.UND_ERR_WS_MESSAGE_SIZE_EXCEEDED`);t.exports={AbortError:_,HTTPParserError:L,UndiciError:r,HeadersTimeoutError:s,HeadersOverflowError:l,BodyTimeoutError:d,RequestContentLengthMismatchError:C,ConnectTimeoutError:a,InvalidArgumentError:p,InvalidReturnValueError:h,RequestAbortedError:y,ClientDestroyedError:D,ClientClosedError:k,InformationalError:x,SocketError:j,NotSupportedError:N,ResponseContentLengthMismatchError:T,BalancedPoolMissingUpstreamError:F,ResponseExceededMaxSizeError:z,RequestRetryError:B,ResponseError:V,SecureProxyConnectionError:H,ProxyConnectionError:W,MaxOriginsReachedError:re,Socks5ProxyError:K,MessageSizeExceededError:class extends r{constructor(e){super(e),this.name=`MessageSizeExceededError`,this.message=e||`Max decompressed message size exceeded`,this.code=`UND_ERR_WS_MESSAGE_SIZE_EXCEEDED`}static[Symbol.hasInstance](e){return e&&e[ie]===!0}get[ie](){return!0}}}})),yu=s(((e,t)=>{var n=`Accept.Accept-Encoding.Accept-Language.Accept-Ranges.Access-Control-Allow-Credentials.Access-Control-Allow-Headers.Access-Control-Allow-Methods.Access-Control-Allow-Origin.Access-Control-Expose-Headers.Access-Control-Max-Age.Access-Control-Request-Headers.Access-Control-Request-Method.Age.Allow.Alt-Svc.Alt-Used.Authorization.Cache-Control.Clear-Site-Data.Connection.Content-Disposition.Content-Encoding.Content-Language.Content-Length.Content-Location.Content-Range.Content-Security-Policy.Content-Security-Policy-Report-Only.Content-Type.Cookie.Cross-Origin-Embedder-Policy.Cross-Origin-Opener-Policy.Cross-Origin-Resource-Policy.Date.Device-Memory.Downlink.ECT.ETag.Expect.Expect-CT.Expires.Forwarded.From.Host.If-Match.If-Modified-Since.If-None-Match.If-Range.If-Unmodified-Since.Keep-Alive.Last-Modified.Link.Location.Max-Forwards.Origin.Permissions-Policy.Pragma.Proxy-Authenticate.Proxy-Authorization.RTT.Range.Referer.Referrer-Policy.Refresh.Retry-After.Sec-WebSocket-Accept.Sec-WebSocket-Extensions.Sec-WebSocket-Key.Sec-WebSocket-Protocol.Sec-WebSocket-Version.Server.Server-Timing.Service-Worker-Allowed.Service-Worker-Navigation-Preload.Set-Cookie.SourceMap.Strict-Transport-Security.Supports-Loading-Mode.TE.Timing-Allow-Origin.Trailer.Transfer-Encoding.Upgrade.Upgrade-Insecure-Requests.User-Agent.Vary.Via.WWW-Authenticate.X-Content-Type-Options.X-DNS-Prefetch-Control.X-Frame-Options.X-Permitted-Cross-Domain-Policies.X-Powered-By.X-Requested-With.X-XSS-Protection`.split(`.`),r={};Object.setPrototypeOf(r,null);for(let e=0;e<n.length;++e){let t=n[e],i=t.toLowerCase();r[t]=r[i]=i}t.exports={wellknownHeaderNames:n,headerNameLowerCasedRecord:r}})),bu=s(((e,t)=>{var{wellknownHeaderNames:n,headerNameLowerCasedRecord:r}=yu(),i=class e{value=null;left=null;middle=null;right=null;code;constructor(t,n,r){if(r===void 0||r>=t.length)throw TypeError(`Unreachable`);if((this.code=t.charCodeAt(r))>127)throw TypeError(`key must be ascii string`);t.length===++r?this.value=n:this.middle=new e(t,n,r)}add(t,n){let r=t.length;if(r===0)throw TypeError(`Unreachable`);let i=0,a=this;for(;;){let o=t.charCodeAt(i);if(o>127)throw TypeError(`key must be ascii string`);if(a.code===o){if(r===++i){a.value=n;break}if(a.middle!==null)a=a.middle;else{a.middle=new e(t,n,i);break}}else if(a.code<o){if(a.left!==null)a=a.left;else{a.left=new e(t,n,i);break}}else if(a.right!==null)a=a.right;else{a.right=new e(t,n,i);break}}}search(e){let t=e.length,n=0,r=this;for(;r!==null&&n<t;){let i=e[n];for(i<=90&&i>=65&&(i|=32);r!==null;){if(i===r.code){if(t===++n)return r;r=r.middle;break}r=r.code<i?r.left:r.right}}return null}},a=class{node=null;insert(e,t){this.node===null?this.node=new i(e,t,0):this.node.add(e,t)}lookup(e){return this.node?.search(e)?.value??null}},o=new a;for(let e=0;e<n.length;++e){let t=r[n[e]];o.insert(t,t)}t.exports={TernarySearchTree:a,tree:o}})),$=s(((e,t)=>{var n=r(`node:assert`),{kDestroyed:i,kBodyUsed:a,kListeners:o,kBody:s}=Z(),{IncomingMessage:c}=r(`node:http`),l=r(`node:stream`),u=r(`node:net`),{stringify:d}=r(`node:querystring`),{EventEmitter:f,addAbortListener:p}=r(`node:events`),m=vu(),{InvalidArgumentError:h,ConnectTimeoutError:g}=Q(),{headerNameLowerCasedRecord:_}=yu(),{tree:v}=bu(),y=class{constructor(e){this[s]=e,this[a]=!1}async*[Symbol.asyncIterator](){n(!this[a],`disturbed`),this[a]=!0,yield*this[s]}};function b(){}function x(e){return S(e)?(I(e)===0&&e.on(`data`,function(){n(!1)}),typeof e.readableDidRead!=`boolean`&&(e[a]=!1,f.prototype.on.call(e,`data`,function(){this[a]=!0})),e):e&&typeof e.pipeTo==`function`?new y(e):e&&ae(e)?e:e&&typeof e!=`string`&&!ArrayBuffer.isView(e)&&P(e)?new y(e):e}function S(e){return e&&typeof e==`object`&&typeof e.pipe==`function`&&typeof e.on==`function`}function C(e){return e instanceof Blob}function w(e){return e.includes(`?`)||e.includes(`#`)}function T(e,t){if(w(e))throw Error(`Query params cannot be passed when url already contains "?" or "#".`);let n=d(t);return n&&(e+=`?`+n),e}function E(e){let t=parseInt(e,10);return t===Number(e)&&t>=0&&t<=65535}function D(e){return e!=null&&e[0]===`h`&&e[1]===`t`&&e[2]===`t`&&e[3]===`p`&&(e[4]===`:`||e[4]===`s`&&e[5]===`:`)}function O(e){if(typeof e==`string`){if(e=new URL(e),!D(e.origin||e.protocol))throw new h("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}if(!e||typeof e!=`object`)throw new h(`Invalid URL: The URL argument must be a non-null object.`);if(!(e instanceof URL)){if(e.port!=null&&e.port!==``&&E(e.port)===!1)throw new h(`Invalid URL: port must be a valid integer or a string representation of an integer.`);if(e.path!=null&&typeof e.path!=`string`)throw new h(`Invalid URL path: the path must be a string or null/undefined.`);if(e.pathname!=null&&typeof e.pathname!=`string`)throw new h(`Invalid URL pathname: the pathname must be a string or null/undefined.`);if(e.hostname!=null&&typeof e.hostname!=`string`)throw new h(`Invalid URL hostname: the hostname must be a string or null/undefined.`);if(e.origin!=null&&typeof e.origin!=`string`)throw new h(`Invalid URL origin: the origin must be a string or null/undefined.`);if(!D(e.origin||e.protocol))throw new h("Invalid URL protocol: the URL must start with `http:` or `https:`.");let t=e.port==null?e.protocol===`https:`?443:80:e.port,n=e.origin==null?`${e.protocol||``}//${e.hostname||``}:${t}`:e.origin,r=e.path==null?`${e.pathname||``}${e.search||``}`:e.path;return n[n.length-1]===`/`&&(n=n.slice(0,n.length-1)),r&&r[0]!==`/`&&(r=`/${r}`),new URL(`${n}${r}`)}if(!D(e.origin||e.protocol))throw new h("Invalid URL protocol: the URL must start with `http:` or `https:`.");return e}function k(e){if(e=O(e),e.pathname!==`/`||e.search||e.hash)throw new h(`invalid url`);return e}function A(e){if(e[0]===`[`){let t=e.indexOf(`]`);return n(t!==-1),e.substring(1,t)}let t=e.indexOf(`:`);return t===-1?e:e.substring(0,t)}function j(e){if(!e)return null;n(typeof e==`string`);let t=A(e);return u.isIP(t)?``:t}function M(e){return JSON.parse(JSON.stringify(e))}function N(e){return e!=null&&typeof e[Symbol.asyncIterator]==`function`}function P(e){return!(e==null||typeof e[Symbol.iterator]!=`function`&&typeof e[Symbol.asyncIterator]!=`function`)}function F(e){let t=Object.getPrototypeOf(e);return Object.hasOwn(e,Symbol.iterator)||t!=null&&t!==Object.prototype&&typeof e[Symbol.iterator]==`function`}function I(e){if(e==null)return 0;if(S(e)){let t=e._readableState;return t&&t.objectMode===!1&&t.ended===!0&&Number.isFinite(t.length)?t.length:null}return C(e)?e.size==null?null:e.size:W(e)?e.byteLength:null}function L(e){return e&&!!(e.destroyed||e[i]||l.isDestroyed?.(e))}function R(e,t){if(e!=null&&S(e)&&!L(e)){if(typeof e.destroy==`function`){Object.getPrototypeOf(e).constructor===c&&(e.socket=null);try{e.destroy(t)}catch{}}else t&&queueMicrotask(()=>{e.emit(`error`,t)});e.destroyed!==!0&&(e[i]=!0)}}var z=/timeout=(\d+)/;function ee(e){let t=e.match(z);return t?parseInt(t[1],10)*1e3:null}function B(e){return typeof e==`string`?_[e]??e.toLowerCase():v.lookup(e)??e.toString(`latin1`).toLowerCase()}function te(e){return v.lookup(e)??e.toString(`latin1`).toLowerCase()}function V(e,t){t===void 0&&(t={});for(let n=0;n<e.length;n+=2){let r=B(e[n]),i=t[r];if(i!==void 0){if(Object.hasOwn(t,r))typeof i==`string`&&(i=[i],t[r]=i),i.push(e[n+1].toString(`latin1`));else{let i=typeof e[n+1]==`string`?e[n+1]:Array.isArray(e[n+1])?e[n+1].map(e=>e.toString(`latin1`)):e[n+1].toString(`latin1`);r===`__proto__`?Object.defineProperty(t,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[r]=i}}else{let i=typeof e[n+1]==`string`?e[n+1]:Array.isArray(e[n+1])?e[n+1].map(e=>e.toString(`latin1`)):e[n+1].toString(`latin1`);t[r]=i}}return t}function ne(e){if(e==null)return[];if(!Array.isArray(e)){let t=[];for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.push(n,`${e}`);else t.push(n,`${r}`);return t}let t=e.length,n=Array(t),r,i;for(let a=0;a<t;a+=2)r=e[a],i=e[a+1],typeof r!=`string`&&(r=r.toString()),typeof i!=`string`&&(i=i.toString(`latin1`)),n[a]=r,n[a+1]=i;return n}function H(e){let t=[];for(let[n,r]of Object.entries(e))if(Array.isArray(r))for(let e of r)t.push(Buffer.from(n,`latin1`),Buffer.from(`${e}`,`latin1`));else t.push(Buffer.from(n,`latin1`),Buffer.from(`${r}`,`latin1`));return t}function U(e){if(!Array.isArray(e))throw TypeError(`expected headers to be an array`);return e.map(e=>Buffer.from(e))}function W(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function G(e,t,n){if(!e||typeof e!=`object`)throw new h(`handler must be an object`);if(typeof e.onRequestStart!=`function`)throw new h(`invalid onRequestStart method`);if(typeof e.onResponseError!=`function`)throw new h(`invalid onResponseError method`);if(typeof e.onBodySent!=`function`&&e.onBodySent!==void 0)throw new h(`invalid onBodySent method`);if(typeof e.onRequestSent!=`function`&&e.onRequestSent!==void 0)throw new h(`invalid onRequestSent method`);if(n||t===`CONNECT`){if(typeof e.onRequestUpgrade!=`function`)throw new h(`invalid onRequestUpgrade method`)}else{if(typeof e.onResponseStart!=`function`)throw new h(`invalid onResponseStart method`);if(typeof e.onResponseData!=`function`)throw new h(`invalid onResponseData method`);if(typeof e.onResponseEnd!=`function`)throw new h(`invalid onResponseEnd method`)}}function re(e){return!!(e&&(l.isDisturbed(e)||e[a]))}function K(e){return{localAddress:e.localAddress,localPort:e.localPort,remoteAddress:e.remoteAddress,remotePort:e.remotePort,remoteFamily:e.remoteFamily,timeout:e.timeout,bytesWritten:e.bytesWritten,bytesRead:e.bytesRead}}function ie(e){let t;return new ReadableStream({start(){t=e[Symbol.asyncIterator]()},pull(e){return t.next().then(({done:t,value:n})=>{if(t)return queueMicrotask(()=>{e.close(),e.byobRequest?.respond(0)});{let t=Buffer.isBuffer(n)?n:Buffer.from(n);return t.byteLength?e.enqueue(new Uint8Array(t)):this.pull(e)}})},cancel(){return t.return()},type:`bytes`})}function ae(e){return e&&typeof e==`object`&&typeof e.append==`function`&&typeof e.delete==`function`&&typeof e.get==`function`&&typeof e.getAll==`function`&&typeof e.has==`function`&&typeof e.set==`function`&&e[Symbol.toStringTag]===`FormData`}function oe(e,t){return!e||`aborted`in e?p(e,t)[Symbol.dispose]:typeof e.addEventListener==`function`?(e.addEventListener(`abort`,t,{once:!0}),()=>e.removeEventListener(`abort`,t)):(e.once(`abort`,t),()=>e.removeListener(`abort`,t))}var se=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function ce(e){return se[e]===1}var le=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;function ue(e){if(e.length>=12)return le.test(e);if(e.length===0)return!1;for(let t=0;t<e.length;t++)if(se[e.charCodeAt(t)]!==1)return!1;return!0}var de=/[^\t\x20-\x7e\x80-\xff]/;function fe(e){return!de.test(e)}var pe=/^bytes (\d+)-(\d+)\/(\d+|\*)?$/;function q(e){if(e==null||e===``)return{start:0,end:null,size:null};if(!e)return null;let t=pe.exec(e);return t?{start:parseInt(t[1]),end:t[2]?parseInt(t[2]):null,size:t[3]&&t[3]!==`*`?parseInt(t[3]):null}:null}function me(e,t,n){return(e[o]??=[]).push([t,n]),e.on(t,n),e}function he(e){if(e[o]!=null){for(let[t,n]of e[o])e.removeListener(t,n);e[o]=null}return e}function J(e,t,r){try{t.onResponseError(r),n(t.aborted)}catch(t){e.emit(`error`,t)}}var ge=process.platform===`win32`?(e,t)=>{if(!t.timeout)return b;let n=null,r=null,i=m.setFastTimeout(()=>{n=setImmediate(()=>{r=setImmediate(()=>_e(e.deref(),t))})},t.timeout);return()=>{m.clearFastTimeout(i),clearImmediate(n),clearImmediate(r)}}:(e,t)=>{if(!t.timeout)return b;let n=null,r=m.setFastTimeout(()=>{n=setImmediate(()=>{_e(e.deref(),t)})},t.timeout);return()=>{m.clearFastTimeout(r),clearImmediate(n)}};function _e(e,t){if(e==null)return;let n=`Connect Timeout Error`;Array.isArray(e.autoSelectFamilyAttemptedAddresses)?n+=` (attempted addresses: ${e.autoSelectFamilyAttemptedAddresses.join(`, `)},`:n+=` (attempted address: ${t.hostname}:${t.port},`,n+=` timeout: ${t.timeout}ms)`,R(e,new g(n))}var ve=null,Y=null;function ye(e){if(e===ve)return Y;let t=be(e);return ve=e,Y=t,t}function be(e){if(e[0]===`h`&&e[1]===`t`&&e[2]===`t`&&e[3]===`p`)switch(e[4]){case`:`:return`http:`;case`s`:if(e[5]===`:`)return`https:`}return e.slice(0,e.indexOf(`:`)+1)}var xe={__proto__:null,enumerable:!0},Se={delete:`DELETE`,DELETE:`DELETE`,get:`GET`,GET:`GET`,head:`HEAD`,HEAD:`HEAD`,options:`OPTIONS`,OPTIONS:`OPTIONS`,post:`POST`,POST:`POST`,put:`PUT`,PUT:`PUT`,query:`QUERY`,QUERY:`QUERY`},Ce={...Se,patch:`patch`,PATCH:`PATCH`};Object.setPrototypeOf(Se,null),Object.setPrototypeOf(Ce,null),t.exports={kEnumerableProperty:xe,isDisturbed:re,isBlobLike:C,parseOrigin:k,parseURL:O,getServerName:j,isStream:S,isIterable:P,hasSafeIterator:F,isAsyncIterable:N,isDestroyed:L,headerNameToString:B,bufferToLowerCasedHeaderName:te,addListener:me,removeAllListeners:he,errorRequest:J,parseRawHeaders:ne,toRawHeaders:H,encodeRawHeaders:U,parseHeaders:V,parseKeepAliveTimeout:ee,destroy:R,bodyLength:I,deepClone:M,ReadableStreamFrom:ie,isBuffer:W,assertRequestHandler:G,getSocketInfo:K,isFormDataLike:ae,pathHasQueryOrFragment:w,serializePathWithQuery:T,addAbortListener:oe,isValidHTTPToken:ue,isValidHeaderValue:fe,isTokenCharCode:ce,parseRangeHeader:q,normalizedMethodRecordsBase:Se,normalizedMethodRecords:Ce,isValidPort:E,isHttpOrHttpsPrefixed:D,safeHTTPMethods:Object.freeze([`GET`,`HEAD`,`OPTIONS`,`TRACE`]),wrapRequestBody:x,setupConnectTimeout:ge,getProtocolFromUrlString:ye}})),xu=s(((e,t)=>{var{kConnected:n,kPending:r,kRunning:i,kSize:a,kFree:o,kQueued:s}=Z();t.exports={ClientStats:class{constructor(e){this.connected=e[n],this.pending=e[r],this.running=e[i],this.size=e[a]}},PoolStats:class{constructor(e){this.connected=e[n],this.free=e[o],this.pending=e[r],this.queued=e[s],this.running=e[i],this.size=e[a]}}}})),Su=s(((e,t)=>{var n=r(`node:diagnostics_channel`),i=r(`node:util`),a=i.debuglog(`undici`),o=i.debuglog(`fetch`),s=i.debuglog(`websocket`),c={beforeConnect:n.channel(`undici:client:beforeConnect`),connected:n.channel(`undici:client:connected`),connectError:n.channel(`undici:client:connectError`),sendHeaders:n.channel(`undici:client:sendHeaders`),create:n.channel(`undici:request:create`),bodySent:n.channel(`undici:request:bodySent`),bodyChunkSent:n.channel(`undici:request:bodyChunkSent`),bodyChunkReceived:n.channel(`undici:request:bodyChunkReceived`),headers:n.channel(`undici:request:headers`),trailers:n.channel(`undici:request:trailers`),error:n.channel(`undici:request:error`),open:n.channel(`undici:websocket:open`),close:n.channel(`undici:websocket:close`),socketError:n.channel(`undici:websocket:socket_error`),ping:n.channel(`undici:websocket:ping`),pong:n.channel(`undici:websocket:pong`),proxyConnected:n.channel(`undici:proxy:connected`)},l=!1;function u(e=a){if(!l){if(c.beforeConnect.hasSubscribers||c.connected.hasSubscribers||c.connectError.hasSubscribers||c.sendHeaders.hasSubscribers){l=!0;return}l=!0,n.subscribe(`undici:client:beforeConnect`,t=>{let{connectParams:{version:n,protocol:r,port:i,host:a}}=t;e(`connecting to %s%s using %s%s`,a,i?`:${i}`:``,r,n)}),n.subscribe(`undici:client:connected`,t=>{let{connectParams:{version:n,protocol:r,port:i,host:a}}=t;e(`connected to %s%s using %s%s`,a,i?`:${i}`:``,r,n)}),n.subscribe(`undici:client:connectError`,t=>{let{connectParams:{version:n,protocol:r,port:i,host:a},error:o}=t;e(`connection to %s%s using %s%s errored - %s`,a,i?`:${i}`:``,r,n,o.message)}),n.subscribe(`undici:client:sendHeaders`,t=>{let{request:{method:n,path:r,origin:i}}=t;e(`sending request to %s %s%s`,n,i,r)})}}var d=!1;function f(e=a){if(!d){if(c.headers.hasSubscribers||c.trailers.hasSubscribers||c.error.hasSubscribers){d=!0;return}d=!0,n.subscribe(`undici:request:headers`,t=>{let{request:{method:n,path:r,origin:i},response:{statusCode:a}}=t;e(`received response to %s %s%s - HTTP %d`,n,i,r,a)}),n.subscribe(`undici:request:trailers`,t=>{let{request:{method:n,path:r,origin:i}}=t;e(`trailers received from %s %s%s`,n,i,r)}),n.subscribe(`undici:request:error`,t=>{let{request:{method:n,path:r,origin:i},error:a}=t;e(`request to %s %s%s errored - %s`,n,i,r,a.message)})}}var p=!1;function m(e=s){if(!p){if(c.open.hasSubscribers||c.close.hasSubscribers||c.socketError.hasSubscribers||c.ping.hasSubscribers||c.pong.hasSubscribers){p=!0;return}p=!0,n.subscribe(`undici:websocket:open`,t=>{if(t.address!=null){let{address:n,port:r}=t.address;e(`connection opened %s%s`,n,r?`:${r}`:``)}else e(`connection opened`)}),n.subscribe(`undici:websocket:close`,t=>{let{websocket:n,code:r,reason:i}=t;e(`closed connection to %s - %s %s`,n.url,r,i)}),n.subscribe(`undici:websocket:socket_error`,t=>{e(`connection errored - %s`,t.message)}),n.subscribe(`undici:websocket:ping`,t=>{e(`ping received`)}),n.subscribe(`undici:websocket:pong`,t=>{e(`pong received`)})}}(a.enabled||o.enabled)&&(u(o.enabled?o:a),f(o.enabled?o:a)),s.enabled&&(u(a.enabled?a:s),m(s)),t.exports={channels:c}})),Cu=s(((e,t)=>{var{InvalidArgumentError:n,NotSupportedError:i}=Q(),a=r(`node:assert`),{isValidHTTPToken:o,isValidHeaderValue:s,isStream:c,destroy:l,isBuffer:u,isFormDataLike:d,isIterable:f,hasSafeIterator:p,isBlobLike:m,serializePathWithQuery:h,parseHeaders:g,assertRequestHandler:_,getServerName:v,normalizedMethodRecords:y,getProtocolFromUrlString:b}=$(),{channels:x}=Su(),{headerNameLowerCasedRecord:S}=yu(),C=/[^\u0021-\u00ff]/;function w(e){if(typeof e!=`string`||e.length===0)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}return!0}var T=Symbol(`handler`),E=Symbol(`controller`),D=Symbol(`resume`),O=class{#e=!1;#t=null;#n=!1;#r;[D]=null;rawHeaders=null;rawTrailers=null;constructor(e){this.#r=e}pause(){this.#e=!0}resume(){this.#e&&(this.#e=!1,this[D]?.())}abort(e){this.#n||(this.#n=!0,this.#t=e,this.#r(e))}get aborted(){return this.#n}get reason(){return this.#t}get paused(){return this.#e}},k=class{constructor(e,{path:t,method:r,body:i,headers:a,query:g,idempotent:S,blocking:w,upgrade:E,headersTimeout:D,bodyTimeout:O,reset:k,expectContinue:j,servername:M,throwOnError:N,maxRedirections:P,typeOfService:F},I){if(typeof t!=`string`)throw new n(`path must be a string`);if(t[0]!==`/`&&!(t.startsWith(`http://`)||t.startsWith(`https://`))&&r!==`CONNECT`)throw new n(`path must be an absolute URL or start with a slash`);if(C.test(t))throw new n(`invalid request path`);if(typeof r!=`string`)throw new n(`method must be a string`);if(y[r]===void 0&&!o(r))throw new n(`invalid request method`);if(E&&typeof E!=`string`)throw new n(`upgrade must be a string`);if(E&&!s(E))throw new n(`invalid upgrade header`);if(D!=null&&(!Number.isFinite(D)||D<0))throw new n(`invalid headersTimeout`);if(O!=null&&(!Number.isFinite(O)||O<0))throw new n(`invalid bodyTimeout`);if(k!=null&&typeof k!=`boolean`)throw new n(`invalid reset`);if(j!=null&&typeof j!=`boolean`)throw new n(`invalid expectContinue`);if(N!=null)throw new n(`invalid throwOnError`);if(P!=null&&P!==0)throw new n(`maxRedirections is not supported, use the redirect interceptor`);if(F!=null&&(!Number.isInteger(F)||F<0||F>255))throw new n(`typeOfService must be an integer between 0 and 255`);if(this.headersTimeout=D,this.bodyTimeout=O,this.method=r,this.typeOfService=F,this.abort=null,i==null)this.body=null;else if(c(i)){this.body=i;let e=this.body._readableState;(!e||!e.autoDestroy)&&(this.endHandler=function(){l(this)},this.body.on(`end`,this.endHandler)),this.errorHandler=e=>{this.abort?this.abort(e):this.error=e},this.body.on(`error`,this.errorHandler)}else if(u(i))this.body=i.byteLength?i:null;else if(ArrayBuffer.isView(i))this.body=i.buffer.byteLength?Buffer.from(i.buffer,i.byteOffset,i.byteLength):null;else if(i instanceof ArrayBuffer)this.body=i.byteLength?Buffer.from(i):null;else if(typeof i==`string`)this.body=i.length?Buffer.from(i):null;else if(d(i)||f(i)||m(i))this.body=i;else throw new n(`body must be a string, a Buffer, a Readable stream, an iterable, or an async iterable`);if(this.completed=!1,this.aborted=!1,this.upgrade=E||null,this.path=g?h(t,g):t,this.origin=e,this.protocol=b(e),this.idempotent=S??(r===`HEAD`||r===`GET`||r===`QUERY`),this.blocking=w??this.method!==`HEAD`,this.reset=k??null,this.host=null,this.contentLength=null,this.contentType=null,this.headers=[],this.expectContinue=j??!1,Array.isArray(a)){if(a.length%2!=0)throw new n(`headers array must be even`);for(let e=0;e<a.length;e+=2)A(this,a[e],a[e+1])}else if(a&&typeof a==`object`){if(p(a))for(let e of a){if(!Array.isArray(e)||e.length!==2)throw new n(`headers must be in key-value pair format`);A(this,e[0],e[1])}else{let e=Object.keys(a);for(let t=0;t<e.length;++t)A(this,e[t],a[e[t]])}}else if(a!=null)throw new n(`headers must be an object or an array`);_(I,r,E),this.servername=M||v(this.host)||null,this[T]=I,x.create.hasSubscribers&&x.create.publish({request:this})}onBodySent(e){if(x.bodyChunkSent.hasSubscribers&&x.bodyChunkSent.publish({request:this,chunk:e}),this[T].onBodySent)try{return this[T].onBodySent(e)}catch(e){this.abort(e)}}onRequestSent(){if(x.bodySent.hasSubscribers&&x.bodySent.publish({request:this}),this[T].onRequestSent)try{return this[T].onRequestSent()}catch(e){this.abort(e)}}onRequestStart(e,t){if(a(!this.aborted),a(!this.completed),this[E]=new O(e),this.error){this[E].abort(this.error);return}return this.abort=e,this[T].onRequestStart(this[E],t)}onResponseStarted(){return this[T].onResponseStarted?.()}onResponseStart(e,t,n,r){a(!this.aborted),a(!this.completed),x.headers.hasSubscribers&&x.headers.publish({request:this,response:{statusCode:e,headers:t,statusText:r}});let i=this[E];i&&(i[D]=n,i.rawHeaders=t);let o=Array.isArray(t)?g(t):t;try{return this[T].onResponseStart?.(i,e,o,r),!i?.paused}catch(e){return this.abort(e),!1}}onResponseData(e){a(!this.aborted),a(!this.completed),x.bodyChunkReceived.hasSubscribers&&x.bodyChunkReceived.publish({request:this,chunk:e});let t=this[E];try{return this[T].onResponseData?.(t,e),!t?.paused}catch(e){return this.abort(e),!1}}onRequestUpgrade(e,t,n){a(!this.aborted),a(!this.completed);let r=this[E];r&&(r.rawHeaders=t);let i=Array.isArray(t)?g(t):t;return this[T].onRequestUpgrade?.(r,e,i,n)}onResponseEnd(e){this.onFinally(),a(!this.aborted),a(!this.completed),this.completed=!0,x.trailers.hasSubscribers&&x.trailers.publish({request:this,trailers:e});let t=this[E];t&&(t.rawTrailers=e);let n=Array.isArray(e)?g(e):e;try{return this[T].onResponseEnd?.(t,n)}catch(e){this.onResponseError(e)}}onResponseError(e){if(this.onFinally(),x.error.hasSubscribers&&x.error.publish({request:this,error:e}),this.aborted)return;this.aborted=!0;let t=this[E];return this[T].onResponseError?.(t,e)}onFinally(){this.errorHandler&&=(this.body.off(`error`,this.errorHandler),null),this.endHandler&&=(this.body.off(`end`,this.endHandler),null)}addHeader(e,t){return A(this,e,t),this}};function A(e,t,r){if(r&&typeof r==`object`&&!Array.isArray(r))throw new n(`invalid ${t} header`);if(r===void 0)return;let a=S[t];if(a===void 0&&(a=t.toLowerCase(),S[a]===void 0&&!o(a)))throw new n(`invalid header key`);if(Array.isArray(r)){let e=[];for(let i=0;i<r.length;i++)if(typeof r[i]==`string`){if(!s(r[i]))throw new n(`invalid ${t} header`);e.push(r[i])}else if(r[i]===null)e.push(``);else if(typeof r[i]==`object`)throw new n(`invalid ${t} header`);else{let a=`${r[i]}`;if(!s(a))throw new n(`invalid ${t} header`);e.push(a)}r=e}else if(typeof r==`string`){if(!s(r))throw new n(`invalid ${t} header`)}else if(r===null)r=``;else if(r=`${r}`,!s(r))throw new n(`invalid ${t} header`);if(a===`host`){if(e.host!==null)throw new n(`duplicate host header`);if(typeof r!=`string`)throw new n(`invalid host header`);e.host=r}else if(a===`content-length`){if(e.contentLength!==null)throw new n(`duplicate content-length header`);if(!w(r))throw new n(`invalid content-length header`);e.contentLength=parseInt(r,10)}else if(e.contentType===null&&a===`content-type`)e.contentType=r,e.headers.push(t,r);else if(a===`transfer-encoding`||a===`keep-alive`||a===`upgrade`)throw new n(`invalid ${a} header`);else if(a===`connection`){let t=typeof r==`string`?r:null;if(t===null)throw new n(`invalid connection header`);for(let r of t.toLowerCase().split(`,`)){let t=r.trim();if(!o(t))throw new n(`invalid connection header`);t===`close`&&(e.reset=!0)}}else if(a===`expect`)throw new i(`expect header not supported`);else e.headers.push(t,r)}t.exports=k})),wu=s(((e,t)=>{var n=r(`node:events`),{kUrl:i}=Z();t.exports=class extends n{dispatch(){throw Error(`not implemented`)}close(){throw Error(`not implemented`)}destroy(){throw Error(`not implemented`)}compose(...e){let t=Array.isArray(e[0])?e[0]:e,n=this.dispatch.bind(this);for(let e of t)if(e!=null){if(typeof e!=`function`)throw TypeError(`invalid interceptor, expected function received ${typeof e}`);if(n=e(n),n==null||typeof n!=`function`||n.length!==2)throw TypeError(`invalid interceptor`)}let r=n,a=this;return n=function(e,t){return e&&typeof e==`object`&&!e.origin&&a[i]&&(e=Object.assign({},e,{origin:a[i].origin})),r(e,t)},new Proxy(this,{get:(e,t)=>t===`dispatch`?n:e[t]})}}})),Tu=s(((e,t)=>{var n=r(`node:buffer`),i=wu(),{ClientDestroyedError:a,ClientClosedError:o,InvalidArgumentError:s}=Q(),{kDestroy:c,kClose:l,kClosed:u,kDestroyed:d,kDispatch:f}=Z(),p=Symbol(`onDestroyed`),m=Symbol(`onClosed`),h=Symbol(`webSocketOptions`),g=Symbol(`eventSourceOptions`);t.exports=class extends i{[d]=!1;[p]=null;[u]=!1;[m]=null;constructor(e){super(),this[h]=e?.webSocket??{},this[g]=e?.eventSource??{}}get webSocketOptions(){return{maxFragments:this[h].maxFragments??131072,maxPayloadSize:this[h].maxPayloadSize??134217728}}get eventSourceOptions(){return{maxEventSize:this[g].maxEventSize??n.kStringMaxLength}}get destroyed(){return this[d]}get closed(){return this[u]}close(e){if(e===void 0)return new Promise((e,t)=>{this.close((n,r)=>n?t(n):e(r))});if(typeof e!=`function`)throw new s(`invalid callback`);if(this[d]){let t=new a;queueMicrotask(()=>e(t,null));return}if(this[u]){this[m]?this[m].push(e):queueMicrotask(()=>e(null,null));return}this[u]=!0,this[m]??=[],this[m].push(e);let t=()=>{let e=this[m];this[m]=null;for(let t=0;t<e.length;t++)e[t](null,null)};this[l]().then(()=>this.destroy()).then(()=>queueMicrotask(t))}destroy(e,t){if(typeof e==`function`&&(t=e,e=null),t===void 0)return new Promise((t,n)=>{this.destroy(e,(e,r)=>e?n(e):t(r))});if(typeof t!=`function`)throw new s(`invalid callback`);if(this[d]){this[p]?this[p].push(t):queueMicrotask(()=>t(null,null));return}e||=new a,this[d]=!0,this[p]??=[],this[p].push(t);let n=()=>{let e=this[p];this[p]=null;for(let t=0;t<e.length;t++)e[t](null,null)};this[c](e).then(()=>queueMicrotask(n))}dispatch(e,t){if(!t||typeof t!=`object`)throw new s(`handler must be an object`);try{if(!e||typeof e!=`object`)throw new s(`opts must be an object.`);if(e.dispatcher)throw new s(`opts.dispatcher is not supported by instance methods. Pass opts.dispatcher to the top-level undici functions or call the dispatcher instance method directly.`);if(this[d]||this[p])throw new a;if(this[u])throw new o;return this[f](e,t)}catch(e){if(typeof t.onResponseError!=`function`)throw e;return t.onResponseError(null,e),!1}}}})),Eu=s(((e,t)=>{var n=r(`node:net`),i=r(`node:assert`),a=$(),{InvalidArgumentError:o,ConnectTimeoutError:s}=Q(),c,l=class{constructor(e){this._maxCachedSessions=e,this._sessionCache=new Map,this._sessionRegistry=new FinalizationRegistry(e=>{if(this._sessionCache.size<this._maxCachedSessions)return;let t=this._sessionCache.get(e);t!==void 0&&t.deref()===void 0&&this._sessionCache.delete(e)})}get(e){let t=this._sessionCache.get(e);return t?t.deref():null}set(e,t){if(this._maxCachedSessions!==0){if(this._sessionCache.has(e))this._sessionCache.delete(e);else if(this._sessionCache.size>=this._maxCachedSessions){for(let[e,t]of this._sessionCache)if(t.deref()===void 0){this._sessionCache.delete(e);return}let e=this._sessionCache.keys().next();e.done||this._sessionCache.delete(e.value)}this._sessionCache.set(e,new WeakRef(t)),this._sessionRegistry.register(t,e)}}};function u({allowH2:e,preferH2:t,useH2c:s,maxCachedSessions:u,socketPath:f,timeout:p,session:m,...h}){if(u!=null&&(!Number.isInteger(u)||u<0))throw new o(`maxCachedSessions must be a positive integer or zero`);let g={path:f,...h},_=new l(u??100);return p??=1e4,e??=!0,function({hostname:o,host:l,protocol:u,port:f,servername:h,localAddress:v,httpSocket:y},b){let x;if(u===`https:`){c||=r(`node:tls`),h=h||g.servername||a.getServerName(l)||null;let n=h||o;i(n);let s=m||_.get(n)||null;f||=443,x=c.connect({highWaterMark:16384,...g,servername:h,session:s,localAddress:v,ALPNProtocols:e?t?[`h2`,`http/1.1`]:[`http/1.1`,`h2`]:[`http/1.1`],socket:y,port:f,host:o}),x.on(`session`,function(e){_.set(n,e)})}else{i(!y,`httpSocket can only be sent on TLS update`),f||=80;let e={highWaterMark:65536,...g,localAddress:v,port:f,host:o},t=n.isIP(o);t!==0&&h&&h!==o&&(e.host=h,e.lookup=(e,n,r)=>{n.all?r(null,[{address:o,family:t}]):r(null,o,t)}),x=n.connect(e),s===!0&&(x.alpnProtocol=`h2`)}if(g.keepAlive==null||g.keepAlive){let e=g.keepAliveInitialDelay===void 0?6e4:g.keepAliveInitialDelay;x.setKeepAlive(!0,e)}let S=a.setupConnectTimeout(new WeakRef(x),{timeout:p,hostname:o,port:f});return x.setNoDelay(!0).once(u===`https:`?`secureConnect`:`connect`,function(){if(queueMicrotask(S),b){let e=b;b=null,e(null,this)}}).on(`error`,function(e){if(queueMicrotask(S),b){let t=b;b=null,t(d(e,this,{timeout:p,hostname:o,port:f}))}}),x}}function d(e,t,n){if(e instanceof AggregateError&&(e.code===`ETIMEDOUT`||e.errors.some(e=>e!=null&&e.code===`ETIMEDOUT`))){let r=`Connect Timeout Error`;Array.isArray(t.autoSelectFamilyAttemptedAddresses)?r+=` (attempted addresses: ${t.autoSelectFamilyAttemptedAddresses.join(`, `)},`:r+=` (attempted address: ${n.hostname}:${n.port},`,r+=` timeout: ${n.timeout}ms)`;let i=new s(r);return i.cause=e,i}return e}t.exports=u})),Du=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.enumToMap=t;function t(e,t=[],n=[]){let r=(t?.length??0)===0,i=(n?.length??0)===0;return Object.fromEntries(Object.entries(e).filter(([,e])=>typeof e==`number`&&(r||t.includes(e))&&(i||!n.includes(e))))}})),Ou=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.SPECIAL_HEADERS=e.MINOR=e.MAJOR=e.HTAB_SP_VCHAR_OBS_TEXT=e.QUOTED_STRING=e.CONNECTION_TOKEN_CHARS=e.HEADER_CHARS=e.TOKEN=e.HEX=e.URL_CHAR=e.USERINFO_CHARS=e.MARK=e.ALPHANUM=e.NUM=e.HEX_MAP=e.NUM_MAP=e.ALPHA=e.STATUSES_HTTP=e.H_METHOD_MAP=e.METHOD_MAP=e.METHODS_RTSP=e.METHODS_ICE=e.METHODS_HTTP=e.HEADER_STATE=e.FINISH=e.STATUSES=e.METHODS=e.LENIENT_FLAGS=e.FLAGS=e.TYPE=e.ERROR=void 0;var t=Du();e.ERROR={OK:0,INTERNAL:1,STRICT:2,CR_EXPECTED:25,LF_EXPECTED:3,UNEXPECTED_CONTENT_LENGTH:4,UNEXPECTED_SPACE:30,CLOSED_CONNECTION:5,INVALID_METHOD:6,INVALID_URL:7,INVALID_CONSTANT:8,INVALID_VERSION:9,INVALID_HEADER_TOKEN:10,INVALID_CONTENT_LENGTH:11,INVALID_CHUNK_SIZE:12,INVALID_STATUS:13,INVALID_EOF_STATE:14,INVALID_TRANSFER_ENCODING:15,CB_MESSAGE_BEGIN:16,CB_HEADERS_COMPLETE:17,CB_MESSAGE_COMPLETE:18,CB_CHUNK_HEADER:19,CB_CHUNK_COMPLETE:20,PAUSED:21,PAUSED_UPGRADE:22,PAUSED_H2_UPGRADE:23,USER:24,CB_URL_COMPLETE:26,CB_STATUS_COMPLETE:27,CB_METHOD_COMPLETE:32,CB_VERSION_COMPLETE:33,CB_HEADER_FIELD_COMPLETE:28,CB_HEADER_VALUE_COMPLETE:29,CB_CHUNK_EXTENSION_NAME_COMPLETE:34,CB_CHUNK_EXTENSION_VALUE_COMPLETE:35,CB_RESET:31,CB_PROTOCOL_COMPLETE:38},e.TYPE={BOTH:0,REQUEST:1,RESPONSE:2},e.FLAGS={CONNECTION_KEEP_ALIVE:1,CONNECTION_CLOSE:2,CONNECTION_UPGRADE:4,CHUNKED:8,UPGRADE:16,CONTENT_LENGTH:32,SKIPBODY:64,TRAILING:128,TRANSFER_ENCODING:512},e.LENIENT_FLAGS={HEADERS:1,CHUNKED_LENGTH:2,KEEP_ALIVE:4,TRANSFER_ENCODING:8,VERSION:16,DATA_AFTER_CLOSE:32,OPTIONAL_LF_AFTER_CR:64,OPTIONAL_CRLF_AFTER_CHUNK:128,OPTIONAL_CR_BEFORE_LF:256,SPACES_AFTER_CHUNK_SIZE:512},e.METHODS={DELETE:0,GET:1,HEAD:2,POST:3,PUT:4,CONNECT:5,OPTIONS:6,TRACE:7,COPY:8,LOCK:9,MKCOL:10,MOVE:11,PROPFIND:12,PROPPATCH:13,SEARCH:14,UNLOCK:15,BIND:16,REBIND:17,UNBIND:18,ACL:19,REPORT:20,MKACTIVITY:21,CHECKOUT:22,MERGE:23,"M-SEARCH":24,NOTIFY:25,SUBSCRIBE:26,UNSUBSCRIBE:27,PATCH:28,PURGE:29,MKCALENDAR:30,LINK:31,UNLINK:32,SOURCE:33,PRI:34,DESCRIBE:35,ANNOUNCE:36,SETUP:37,PLAY:38,PAUSE:39,TEARDOWN:40,GET_PARAMETER:41,SET_PARAMETER:42,REDIRECT:43,RECORD:44,FLUSH:45,QUERY:46},e.STATUSES={CONTINUE:100,SWITCHING_PROTOCOLS:101,PROCESSING:102,EARLY_HINTS:103,RESPONSE_IS_STALE:110,REVALIDATION_FAILED:111,DISCONNECTED_OPERATION:112,HEURISTIC_EXPIRATION:113,MISCELLANEOUS_WARNING:199,OK:200,CREATED:201,ACCEPTED:202,NON_AUTHORITATIVE_INFORMATION:203,NO_CONTENT:204,RESET_CONTENT:205,PARTIAL_CONTENT:206,MULTI_STATUS:207,ALREADY_REPORTED:208,TRANSFORMATION_APPLIED:214,IM_USED:226,MISCELLANEOUS_PERSISTENT_WARNING:299,MULTIPLE_CHOICES:300,MOVED_PERMANENTLY:301,FOUND:302,SEE_OTHER:303,NOT_MODIFIED:304,USE_PROXY:305,SWITCH_PROXY:306,TEMPORARY_REDIRECT:307,PERMANENT_REDIRECT:308,BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,METHOD_NOT_ALLOWED:405,NOT_ACCEPTABLE:406,PROXY_AUTHENTICATION_REQUIRED:407,REQUEST_TIMEOUT:408,CONFLICT:409,GONE:410,LENGTH_REQUIRED:411,PRECONDITION_FAILED:412,PAYLOAD_TOO_LARGE:413,URI_TOO_LONG:414,UNSUPPORTED_MEDIA_TYPE:415,RANGE_NOT_SATISFIABLE:416,EXPECTATION_FAILED:417,IM_A_TEAPOT:418,PAGE_EXPIRED:419,ENHANCE_YOUR_CALM:420,MISDIRECTED_REQUEST:421,UNPROCESSABLE_ENTITY:422,LOCKED:423,FAILED_DEPENDENCY:424,TOO_EARLY:425,UPGRADE_REQUIRED:426,PRECONDITION_REQUIRED:428,TOO_MANY_REQUESTS:429,REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL:430,REQUEST_HEADER_FIELDS_TOO_LARGE:431,LOGIN_TIMEOUT:440,NO_RESPONSE:444,RETRY_WITH:449,BLOCKED_BY_PARENTAL_CONTROL:450,UNAVAILABLE_FOR_LEGAL_REASONS:451,CLIENT_CLOSED_LOAD_BALANCED_REQUEST:460,INVALID_X_FORWARDED_FOR:463,REQUEST_HEADER_TOO_LARGE:494,SSL_CERTIFICATE_ERROR:495,SSL_CERTIFICATE_REQUIRED:496,HTTP_REQUEST_SENT_TO_HTTPS_PORT:497,INVALID_TOKEN:498,CLIENT_CLOSED_REQUEST:499,INTERNAL_SERVER_ERROR:500,NOT_IMPLEMENTED:501,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504,HTTP_VERSION_NOT_SUPPORTED:505,VARIANT_ALSO_NEGOTIATES:506,INSUFFICIENT_STORAGE:507,LOOP_DETECTED:508,BANDWIDTH_LIMIT_EXCEEDED:509,NOT_EXTENDED:510,NETWORK_AUTHENTICATION_REQUIRED:511,WEB_SERVER_UNKNOWN_ERROR:520,WEB_SERVER_IS_DOWN:521,CONNECTION_TIMEOUT:522,ORIGIN_IS_UNREACHABLE:523,TIMEOUT_OCCURED:524,SSL_HANDSHAKE_FAILED:525,INVALID_SSL_CERTIFICATE:526,RAILGUN_ERROR:527,SITE_IS_OVERLOADED:529,SITE_IS_FROZEN:530,IDENTITY_PROVIDER_AUTHENTICATION_ERROR:561,NETWORK_READ_TIMEOUT:598,NETWORK_CONNECT_TIMEOUT:599},e.FINISH={SAFE:0,SAFE_WITH_CB:1,UNSAFE:2},e.HEADER_STATE={GENERAL:0,CONNECTION:1,CONTENT_LENGTH:2,TRANSFER_ENCODING:3,UPGRADE:4,CONNECTION_KEEP_ALIVE:5,CONNECTION_CLOSE:6,CONNECTION_UPGRADE:7,TRANSFER_ENCODING_CHUNKED:8},e.METHODS_HTTP=[e.METHODS.DELETE,e.METHODS.GET,e.METHODS.HEAD,e.METHODS.POST,e.METHODS.PUT,e.METHODS.CONNECT,e.METHODS.OPTIONS,e.METHODS.TRACE,e.METHODS.COPY,e.METHODS.LOCK,e.METHODS.MKCOL,e.METHODS.MOVE,e.METHODS.PROPFIND,e.METHODS.PROPPATCH,e.METHODS.SEARCH,e.METHODS.UNLOCK,e.METHODS.BIND,e.METHODS.REBIND,e.METHODS.UNBIND,e.METHODS.ACL,e.METHODS.REPORT,e.METHODS.MKACTIVITY,e.METHODS.CHECKOUT,e.METHODS.MERGE,e.METHODS[`M-SEARCH`],e.METHODS.NOTIFY,e.METHODS.SUBSCRIBE,e.METHODS.UNSUBSCRIBE,e.METHODS.PATCH,e.METHODS.PURGE,e.METHODS.MKCALENDAR,e.METHODS.LINK,e.METHODS.UNLINK,e.METHODS.PRI,e.METHODS.SOURCE,e.METHODS.QUERY],e.METHODS_ICE=[e.METHODS.SOURCE],e.METHODS_RTSP=[e.METHODS.OPTIONS,e.METHODS.DESCRIBE,e.METHODS.ANNOUNCE,e.METHODS.SETUP,e.METHODS.PLAY,e.METHODS.PAUSE,e.METHODS.TEARDOWN,e.METHODS.GET_PARAMETER,e.METHODS.SET_PARAMETER,e.METHODS.REDIRECT,e.METHODS.RECORD,e.METHODS.FLUSH,e.METHODS.GET,e.METHODS.POST],e.METHOD_MAP=(0,t.enumToMap)(e.METHODS),e.H_METHOD_MAP=Object.fromEntries(Object.entries(e.METHODS).filter(([e])=>e.startsWith(`H`))),e.STATUSES_HTTP=[e.STATUSES.CONTINUE,e.STATUSES.SWITCHING_PROTOCOLS,e.STATUSES.PROCESSING,e.STATUSES.EARLY_HINTS,e.STATUSES.RESPONSE_IS_STALE,e.STATUSES.REVALIDATION_FAILED,e.STATUSES.DISCONNECTED_OPERATION,e.STATUSES.HEURISTIC_EXPIRATION,e.STATUSES.MISCELLANEOUS_WARNING,e.STATUSES.OK,e.STATUSES.CREATED,e.STATUSES.ACCEPTED,e.STATUSES.NON_AUTHORITATIVE_INFORMATION,e.STATUSES.NO_CONTENT,e.STATUSES.RESET_CONTENT,e.STATUSES.PARTIAL_CONTENT,e.STATUSES.MULTI_STATUS,e.STATUSES.ALREADY_REPORTED,e.STATUSES.TRANSFORMATION_APPLIED,e.STATUSES.IM_USED,e.STATUSES.MISCELLANEOUS_PERSISTENT_WARNING,e.STATUSES.MULTIPLE_CHOICES,e.STATUSES.MOVED_PERMANENTLY,e.STATUSES.FOUND,e.STATUSES.SEE_OTHER,e.STATUSES.NOT_MODIFIED,e.STATUSES.USE_PROXY,e.STATUSES.SWITCH_PROXY,e.STATUSES.TEMPORARY_REDIRECT,e.STATUSES.PERMANENT_REDIRECT,e.STATUSES.BAD_REQUEST,e.STATUSES.UNAUTHORIZED,e.STATUSES.PAYMENT_REQUIRED,e.STATUSES.FORBIDDEN,e.STATUSES.NOT_FOUND,e.STATUSES.METHOD_NOT_ALLOWED,e.STATUSES.NOT_ACCEPTABLE,e.STATUSES.PROXY_AUTHENTICATION_REQUIRED,e.STATUSES.REQUEST_TIMEOUT,e.STATUSES.CONFLICT,e.STATUSES.GONE,e.STATUSES.LENGTH_REQUIRED,e.STATUSES.PRECONDITION_FAILED,e.STATUSES.PAYLOAD_TOO_LARGE,e.STATUSES.URI_TOO_LONG,e.STATUSES.UNSUPPORTED_MEDIA_TYPE,e.STATUSES.RANGE_NOT_SATISFIABLE,e.STATUSES.EXPECTATION_FAILED,e.STATUSES.IM_A_TEAPOT,e.STATUSES.PAGE_EXPIRED,e.STATUSES.ENHANCE_YOUR_CALM,e.STATUSES.MISDIRECTED_REQUEST,e.STATUSES.UNPROCESSABLE_ENTITY,e.STATUSES.LOCKED,e.STATUSES.FAILED_DEPENDENCY,e.STATUSES.TOO_EARLY,e.STATUSES.UPGRADE_REQUIRED,e.STATUSES.PRECONDITION_REQUIRED,e.STATUSES.TOO_MANY_REQUESTS,e.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE_UNOFFICIAL,e.STATUSES.REQUEST_HEADER_FIELDS_TOO_LARGE,e.STATUSES.LOGIN_TIMEOUT,e.STATUSES.NO_RESPONSE,e.STATUSES.RETRY_WITH,e.STATUSES.BLOCKED_BY_PARENTAL_CONTROL,e.STATUSES.UNAVAILABLE_FOR_LEGAL_REASONS,e.STATUSES.CLIENT_CLOSED_LOAD_BALANCED_REQUEST,e.STATUSES.INVALID_X_FORWARDED_FOR,e.STATUSES.REQUEST_HEADER_TOO_LARGE,e.STATUSES.SSL_CERTIFICATE_ERROR,e.STATUSES.SSL_CERTIFICATE_REQUIRED,e.STATUSES.HTTP_REQUEST_SENT_TO_HTTPS_PORT,e.STATUSES.INVALID_TOKEN,e.STATUSES.CLIENT_CLOSED_REQUEST,e.STATUSES.INTERNAL_SERVER_ERROR,e.STATUSES.NOT_IMPLEMENTED,e.STATUSES.BAD_GATEWAY,e.STATUSES.SERVICE_UNAVAILABLE,e.STATUSES.GATEWAY_TIMEOUT,e.STATUSES.HTTP_VERSION_NOT_SUPPORTED,e.STATUSES.VARIANT_ALSO_NEGOTIATES,e.STATUSES.INSUFFICIENT_STORAGE,e.STATUSES.LOOP_DETECTED,e.STATUSES.BANDWIDTH_LIMIT_EXCEEDED,e.STATUSES.NOT_EXTENDED,e.STATUSES.NETWORK_AUTHENTICATION_REQUIRED,e.STATUSES.WEB_SERVER_UNKNOWN_ERROR,e.STATUSES.WEB_SERVER_IS_DOWN,e.STATUSES.CONNECTION_TIMEOUT,e.STATUSES.ORIGIN_IS_UNREACHABLE,e.STATUSES.TIMEOUT_OCCURED,e.STATUSES.SSL_HANDSHAKE_FAILED,e.STATUSES.INVALID_SSL_CERTIFICATE,e.STATUSES.RAILGUN_ERROR,e.STATUSES.SITE_IS_OVERLOADED,e.STATUSES.SITE_IS_FROZEN,e.STATUSES.IDENTITY_PROVIDER_AUTHENTICATION_ERROR,e.STATUSES.NETWORK_READ_TIMEOUT,e.STATUSES.NETWORK_CONNECT_TIMEOUT],e.ALPHA=[];for(let t=65;t<=90;t++)e.ALPHA.push(String.fromCharCode(t)),e.ALPHA.push(String.fromCharCode(t+32));e.NUM_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9},e.HEX_MAP={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},e.NUM=[`0`,`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`],e.ALPHANUM=e.ALPHA.concat(e.NUM),e.MARK=[`-`,`_`,`.`,`!`,`~`,`*`,`'`,`(`,`)`],e.USERINFO_CHARS=e.ALPHANUM.concat(e.MARK).concat([`%`,`;`,`:`,`&`,`=`,`+`,`$`,`,`]),e.URL_CHAR=`!"$%&'()*+,-./:;<=>@[\\]^_\`{|}~`.split(``).concat(e.ALPHANUM),e.HEX=e.NUM.concat([`a`,`b`,`c`,`d`,`e`,`f`,`A`,`B`,`C`,`D`,`E`,`F`]),e.TOKEN=[`!`,`#`,`$`,`%`,`&`,`'`,`*`,`+`,`-`,`.`,`^`,`_`,"`",`|`,`~`].concat(e.ALPHANUM),e.HEADER_CHARS=[` `];for(let t=32;t<=255;t++)t!==127&&e.HEADER_CHARS.push(t);e.CONNECTION_TOKEN_CHARS=e.HEADER_CHARS.filter(e=>e!==44),e.QUOTED_STRING=[` `,` `];for(let t=33;t<=255;t++)t!==34&&t!==92&&e.QUOTED_STRING.push(t);e.HTAB_SP_VCHAR_OBS_TEXT=[` `,` `];for(let t=33;t<=126;t++)e.HTAB_SP_VCHAR_OBS_TEXT.push(t);for(let t=128;t<=255;t++)e.HTAB_SP_VCHAR_OBS_TEXT.push(t);e.MAJOR=e.NUM_MAP,e.MINOR=e.MAJOR,e.SPECIAL_HEADERS={connection:e.HEADER_STATE.CONNECTION,"content-length":e.HEADER_STATE.CONTENT_LENGTH,"proxy-connection":e.HEADER_STATE.CONNECTION,"transfer-encoding":e.HEADER_STATE.TRANSFER_ENCODING,upgrade:e.HEADER_STATE.UPGRADE},e.default={ERROR:e.ERROR,TYPE:e.TYPE,FLAGS:e.FLAGS,LENIENT_FLAGS:e.LENIENT_FLAGS,METHODS:e.METHODS,STATUSES:e.STATUSES,FINISH:e.FINISH,HEADER_STATE:e.HEADER_STATE,ALPHA:e.ALPHA,NUM_MAP:e.NUM_MAP,HEX_MAP:e.HEX_MAP,NUM:e.NUM,ALPHANUM:e.ALPHANUM,MARK:e.MARK,USERINFO_CHARS:e.USERINFO_CHARS,URL_CHAR:e.URL_CHAR,HEX:e.HEX,TOKEN:e.TOKEN,HEADER_CHARS:e.HEADER_CHARS,CONNECTION_TOKEN_CHARS:e.CONNECTION_TOKEN_CHARS,QUOTED_STRING:e.QUOTED_STRING,HTAB_SP_VCHAR_OBS_TEXT:e.HTAB_SP_VCHAR_OBS_TEXT,MAJOR:e.MAJOR,MINOR:e.MINOR,SPECIAL_HEADERS:e.SPECIAL_HEADERS,METHODS_HTTP:e.METHODS_HTTP,METHODS_ICE:e.METHODS_ICE,METHODS_RTSP:e.METHODS_RTSP,METHOD_MAP:e.METHOD_MAP,H_METHOD_MAP:e.H_METHOD_MAP,STATUSES_HTTP:e.STATUSES_HTTP}})),ku=s(((e,t)=>{var{Buffer:n}=r(`node:buffer`),i=`AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgL5YUCAgd/A34gASACaiEEAkAgACIDKAIMIgANACADKAIEBEAgAyABNgIECyMAQRBrIgkkAAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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C0HjAQwHC0HXAQwGC0HYAQwFC0HZAQwEC0HaAQwDC0HbAQwCC0HdAQwBC0HcAQshAgNAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAg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ogKiAqICogKiAqICogKiAqICogKiAqICogIAogILIAQgAUEBaiIBRw0AC0HJACECDOwCCyABQQFqIQEgA0Evai0AAEEBcQ2lAiADQQA2AhwgAyABNgIUIANBlxA2AhAgA0EKNgIMQQAhAgzrAgsgASAERwRAA0AgAS0AAEEgRw0VIAQgAUEBaiIBRw0AC0H4ACECDOsCC0H4ACECDOoCCyADQQI6ACgMOAtBACECIANBADYCHCADQb8LNgIQIANBAjYCDCADIAFBAWo2AhQM6AILQQAhAgzOAgtBDSECDM0CC0ETIQIMzAILQRUhAgzLAgtBFiECDMoCC0EYIQIMyQILQRkhAgzIAgtBGiECDMcCC0EbIQIMxgILQRwhAgzFAgtBHSECDMQCC0EeIQIMwwILQR8hAgzCAgtBICECDMECC0EiIQIMwAILQSMhAgy/AgtBJSECDL4CC0HlACECDL0CCyADQT02AhwgAyABNgIUIAMgADYCDEEAIQIM1QILIANBGzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDNQCCyADQSA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzTAgsgA0ETNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0gILIANBCzYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNECCyADQRA2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzQAgsgA0EgNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzwILIANBCzYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM4CCyADQQw2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzNAgtBACECIANBADYCHCADIAE2AhQgA0HdDjYCECADQRI2AgwMzAILAkADQAJAIAEtAABBCmsOBAACAgACCyAEIAFBAWoiAUcNAAtB/QEhAgzMAgsCQAJAIAMtADZBAUcNAEEAIQACQCADKAI4IgJFDQAgAigCYCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUcNASADQfwBNgIcIAMgATYCFCADQdwZNgIQIANBFTYCDEEAIQIMzQILQdwBIQIMswILIANBADYCHCADIAE2AhQgA0H5CzYCECADQR82AgxBACECDMsCCwJAAkAgAy0AKEEBaw4CBAEAC0HbASECDLICC0HUASECDLECCyADQQI6ADFBACEAAkAgAygCOCICRQ0AIAIoAgAiAkUNACADIAIRAAAhAAsgAEUEQEHdASECDLECCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQbQMNgIQIANBEDYCDEEAIQIMygILIANB+wE2AhwgAyABNgIUIANBgRo2AhAgA0EVNgIMQQAhAgzJAgsgASAERgRAQfoBIQIMyQILIAEtAABByABGDQEgA0EBOgAoC0HAASECDK4CC0HaASECDK0CCyABIARHBEAgA0EMNgIIIAMgATYCBEHZASECDK0CC0H5ASECDMUCCyABIARGBEBB+AEhAgzFAgsgAS0AAEHIAEcNBCABQQFqIQFB2AEhAgyrAgsgASAERgRAQfcBIQIMxAILAkACQCABLQAAQcUAaw4QAAUFBQUFBQUFBQUFBQUFAQULIAFBAWohAUHWASECDKsCCyABQQFqIQFB1wEhAgyqAgtB9gEhAiABIARGDcICIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbrVAGotAABHDQMgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMMCCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIARQRAQeMBIQIMqgILIANB9QE2AhwgAyABNgIUIAMgADYCDEEAIQIMwgILQfQBIQIgASAERg3BAiADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEG41QBqLQAARw0CIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzCAgsgA0GBBDsBKCADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQLiIADQMMAgsgA0EANgIAC0EAIQIgA0EANgIcIAMgATYCFCADQeUfNgIQIANBCDYCDAy/AgtB1QEhAgylAgsgA0HzATYCHCADIAE2AhQgAyAANgIMQQAhAgy9AgtBACEAAkAgAygCOCICRQ0AIAIoAkAiAkUNACADIAIRAAAhAAsgAEUNbiAAQRVHBEAgA0EANgIcIAMgATYCFCADQYIPNgIQIANBIDYCDEEAIQIMvQILIANBjwE2AhwgAyABNgIUIANB7Bs2AhAgA0EVNgIMQQAhAgy8AgsgASAERwRAIANBDTYCCCADIAE2AgRB0wEhAgyjAgtB8gEhAgy7AgsgASAERgRAQfEBIQIMuwILAkACQAJAIAEtAABByABrDgsAAQgICAgICAgIAggLIAFBAWohAUHQASECDKMCCyABQQFqIQFB0QEhAgyiAgsgAUEBaiEBQdIBIQIMoQILQfABIQIgASAERg25AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBtdUAai0AAEcNBCAAQQJGDQMgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuQILQe8BIQIgASAERg24AiADKAIAIgAgBCABa2ohBiABIABrQQFqIQUDQCABLQAAIABBs9UAai0AAEcNAyAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMuAILQe4BIQIgASAERg23AiADKAIAIgAgBCABa2ohBiABIABrQQJqIQUDQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAY2AgAMtwILIAMoAgQhACADQgA3AwAgAyAAIAVBAWoiARArIgBFDQIgA0HsATYCHCADIAE2AhQgAyAANgIMQQAhAgy2AgsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNnAIgA0HtATYCHCADIAE2AhQgAyAANgIMQQAhAgy0AgtBzwEhAgyaAgtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDLQCC0HOASECDJoCCyADQesBNgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMsgILIAEgBEYEQEHrASECDLICCyABLQAAQS9GBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GyODYCECADQQg2AgxBACECDLECC0HNASECDJcCCyABIARHBEAgA0EONgIIIAMgATYCBEHMASECDJcCC0HqASECDK8CCyABIARGBEBB6QEhAgyvAgsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFBywEhAgyWAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZcCIANB6AE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAEgBEYEQEHnASECDK4CCwJAIAEtAABBLkYEQCABQQFqIQEMAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5gE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILQcoBIQIMlAILIAEgBEYEQEHlASECDK0CC0EAIQBBASEFQQEhB0EAIQICQAJAAkACQAJAAn8CQAJAAkACQAJAAkACQCABLQAAQTBrDgoKCQABAgMEBQYICwtBAgwGC0EDDAULQQQMBAtBBQwDC0EGDAILQQcMAQtBCAshAkEAIQVBACEHDAILQQkhAkEBIQBBACEFQQAhBwwBC0EAIQVBASECCyADIAI6ACsgAUEBaiEBAkACQCADLQAuQRBxDQACQAJAAkAgAy0AKg4DAQACBAsgB0UNAwwCCyAADQEMAgsgBUUNAQsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDQIgA0HiATYCHCADIAE2AhQgAyAANgIMQQAhAgyvAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZoCIANB4wE2AhwgAyABNgIUIAMgADYCDEEAIQIMrgILIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ2YAiADQeQBNgIcIAMgATYCFCADIAA2AgwMrQILQckBIQIMkwILQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANBpA02AhAgA0EhNgIMQQAhAgytAgtByAEhAgyTAgsgA0HhATYCHCADIAE2AhQgA0HQGjYCECADQRU2AgxBACECDKsCCyABIARGBEBB4QEhAgyrAgsCQCABLQAAQSBGBEAgA0EAOwE0IAFBAWohAQwBCyADQQA2AhwgAyABNgIUIANBmRE2AhAgA0EJNgIMQQAhAgyrAgtBxwEhAgyRAgsgASAERgRAQeABIQIMqgILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyrAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqgILQcYBIQIMkAILIAEgBEYEQEHfASECDKkCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqgILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKkCC0HFASECDI8CCyABIARGBEBB3gEhAgyoAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKkCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyoAgtBxAEhAgyOAgsgASAERgRAQd0BIQIMpwILAkACQAJAAkAgAS0AAEEKaw4XAgMDAAMDAwMDAwMDAwMDAwMDAwMDAwEDCyABQQFqDAULIAFBAWohAUHDASECDI8CCyABQQFqIQEgA0Evai0AAEEBcQ0IIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKcCCyADQQA2AhwgAyABNgIUIANBjQs2AhAgA0ENNgIMQQAhAgymAgsgASAERwRAIANBDzYCCCADIAE2AgRBASECDI0CC0HcASECDKUCCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtB2wEhAgymAgsgAygCBCEAIANBADYCBCADIAAgARAtIgBFBEAgAUEBaiEBDAQLIANB2gE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMpQILIAMoAgQhACADQQA2AgQgAyAAIAEQLSIADQEgAUEBagshAUHBASECDIoCCyADQdkBNgIcIAMgADYCDCADIAFBAWo2AhRBACECDKICC0HCASECDIgCCyADQS9qLQAAQQFxDQEgA0EANgIcIAMgATYCFCADQeQcNgIQIANBGTYCDEEAIQIMoAILIAEgBEYEQEHZASEC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IAFBAWohAUGeASECDOQBCyABQQFqIQFBnwEhAgzjAQtBtwEhAiABIARGDfsBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQezUAGotAABHDSggAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPwBCyADQQA2AgAgBkEBaiEBQQ0MKAtBtgEhAiABIARGDfoBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDScgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPsBCyADQQA2AgAgBkEBaiEBQQwMJwtBtQEhAiABIARGDfkBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQerUAGotAABHDSYgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPoBCyADQQA2AgAgBkEBaiEBQQMMJgtBtAEhAiABIARGDfgBIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQejUAGotAABHDSUgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADPkBCyADQQA2AgAgBkEBaiEBQSYMJQsgASAERgRAQbMBIQIM+AELAkACQCABLQAAQdQAaw4CAAEnCyABQQFqIQFBmQEhAgzfAQsgAUEBaiEBQZoBIQIM3gELQbIBIQIgASAERg32ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHm1ABqLQAARw0jIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz3AQsgA0EANgIAIAZBAWohAUEnDCMLQbEBIQIgASAERg31ASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHk1ABqLQAARw0iIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz2AQsgA0EANgIAIAZBAWohAUEcDCILQbABIQIgASAERg30ASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHe1ABqLQAARw0hIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz1AQsgA0EANgIAIAZBAWohAUEGDCELQa8BIQIgASAERg3zASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEHZ1ABqLQAARw0gIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAz0AQsgA0EANgIAIAZBAWohAUEZDCALIAEgBEYEQEGuASECDPMBCwJAAkACQAJAIAEtAABBLWsOIwAkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJAEkJCQkJAIkJCQDJAsgAUEBaiEBQY4BIQIM3AELIAFBAWohAUGPASECDNsBCyABQQFqIQFBlAEhAgzaAQsgAUEBaiEBQZUBIQIM2QELQa0BIQIgASAERg3xASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEHX1ABqLQAARw0eIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzyAQsgA0EANgIAIAZBAWohAUELDB4LIAEgBEYEQEGsASECDPEBCwJAAkAgAS0AAEHBAGsOAwAgASALIAFBAWohAUGQASECDNgBCyABQQFqIQFBkwEhAgzXAQsgASAERgRAQasBIQIM8AELAkACQCABLQAAQcEAaw4PAB8fHx8fHx8fHx8fHx8BHwsgAUEBaiEBQZEBIQIM1wELIAFBAWohAUGSASECDNYBCyABIARGBEBBqgEhAgzvAQsgAS0AAEHMAEcNHCABQQFqIQFBCgwbC0GpASECIAEgBEYN7QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABB0dQAai0AAEcNGiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7gELIANBADYCACAGQQFqIQFBHgwaC0GoASECIAEgBEYN7AEgAygCACIAIAQgAWtqIQUgASAAa0EGaiEGAkADQCABLQAAIABBytQAai0AAEcNGSAAQQZGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7QELIANBADYCACAGQQFqIQFBFQwZC0GnASECIAEgBEYN6wEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBx9QAai0AAEcNGCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM7AELIANBADYCACAGQQFqIQFBFwwYC0GmASECIAEgBEYN6gEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBwdQAai0AAEcNFyAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6wELIANBADYCACAGQQFqIQFBGAwXCyABIARGBEBBpQEhAgzqAQsCQAJAIAEtAABByQBrDgcAGRkZGRkBGQsgAUEBaiEBQYsBIQIM0QELIAFBAWohAUGMASECDNABC0GkASECIAEgBEYN6AEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBptUAai0AAEcNFSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6QELIANBADYCACAGQQFqIQFBCQwVC0GjASECIAEgBEYN5wEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBpNUAai0AAEcNFCAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM6AELIANBADYCACAGQQFqIQFBHwwUC0GiASECIAEgBEYN5gEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBvtQAai0AAEcNEyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5wELIANBADYCACAGQQFqIQFBAgwTC0GhASECIAEgBEYN5QEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGA0AgAS0AACAAQbzUAGotAABHDREgAEEBRg0CIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADOUBCyABIARGBEBBoAEhAgzlAQtBASABLQAAQd8ARw0RGiABQQFqIQFBhwEhAgzLAQsgA0EANgIAIAZBAWohAUGIASECDMoBC0GfASECIAEgBEYN4gEgAygCACIAIAQgAWtqIQUgASAAa0EIaiEGAkADQCABLQAAIABBhNUAai0AAEcNDyAAQQhGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4wELIANBADYCACAGQQFqIQFBKQwPC0GeASECIAEgBEYN4QEgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBuNQAai0AAEcNDiAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM4gELIANBADYCACAGQQFqIQFBLQwOCyABIARGBEBBnQEhAgzhAQsgAS0AAEHFAEcNDiABQQFqIQFBhAEhAgzHAQsgASAERgRAQZwBIQIM4AELAkACQCABLQAAQcwAaw4IAA8PDw8PDwEPCyABQQFqIQFBggEhAgzHAQsgAUEBaiEBQYMBIQIMxgELQZsBIQIgASAERg3eASADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANAIAEtAAAgAEGz1ABqLQAARw0LIABBBEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzfAQsgA0EANgIAIAZBAWohAUEjDAsLQZoBIQIgASAERg3dASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGw1ABqLQAARw0KIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzeAQsgA0EANgIAIAZBAWohAUEADAoLIAEgBEYEQEGZASECDN0BCwJAAkAgAS0AAEHIAGsOCAAMDAwMDAwBDAsgAUEBaiEBQf0AIQIMxAELIAFBAWohAUGAASECDMMBCyABIARGBEBBmAEhAgzcAQsCQAJAIAEtAABBzgBrDgMACwELCyABQQFqIQFB/gAhAgzDAQsgAUEBaiEBQf8AIQIMwgELIAEgBEYEQEGXASECDNsBCyABLQAAQdkARw0IIAFBAWohAUEIDAcLQZYBIQIgASAERg3ZASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEGs1ABqLQAARw0GIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzaAQsgA0EANgIAIAZBAWohAUEFDAYLQZUBIQIgASAERg3YASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEGm1ABqLQAARw0FIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzZAQsgA0EANgIAIAZBAWohAUEWDAULQZQBIQIgASAERg3XASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGh1QBqLQAARw0EIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzYAQsgA0EANgIAIAZBAWohAUEQDAQLIAEgBEYEQEGTASECDNcBCwJAAkAgAS0AAEHDAGsODAAGBgYGBgYGBgYGAQYLIAFBAWohAUH5ACECDL4BCyABQQFqIQFB+gAhAgy9AQtBkgEhAiABIARGDdUBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQaDUAGotAABHDQIgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNYBCyADQQA2AgAgBkEBaiEBQSQMAgsgA0EANgIADAILIAEgBEYEQEGRASECDNQBCyABLQAAQcwARw0BIAFBAWohAUETCzoAKSADKAIEIQAgA0EANgIEIAMgACABEC4iAA0CDAELQQAhAiADQQA2AhwgAyABNgIUIANB/h82AhAgA0EGNgIMDNEBC0H4ACECDLcBCyADQZABNgIcIAMgATYCFCADIAA2AgxBACECDM8BC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ0AIABBFUYNASADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgzOAQtB9wAhAgy0AQsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDMwBCyABIARGBEBBjwEhAgzMAQsCQCABLQAAQSBGBEAgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GbHzYCECADQQY2AgxBACECDMwBC0ECIQIMsgELA0AgAS0AAEEgRw0CIAQgAUEBaiIBRw0AC0GOASECDMoBCyABIARGBEBBjQEhAgzKAQsCQCABLQAAQQlrDgRKAABKAAtB9QAhAgywAQsgAy0AKUEFRgRAQfYAIQIMsAELQfQAIQIMrwELIAEgBEYEQEGMASECDMgBCyADQRA2AgggAyABNgIEDAoLIAEgBEYEQEGLASECDMcBCwJAIAEtAABBCWsOBEcAAEcAC0HzACECDK0BCyABIARHBEAgA0EQNgIIIAMgATYCBEHxACECDK0BC0GKASECDMUBCwJAIAEgBEcEQANAIAEtAABBoNAAai0AACIAQQNHBEACQCAAQQFrDgJJAAQLQfAAIQIMrwELIAQgAUEBaiIBRw0AC0GIASEC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BCABQQFqIgFHDQALQfsAIQIMpwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMpgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMpQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0DIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMpAELIANBADYCHCADIAE2AhQgA0G8CjYCECADQQc2AgxBACECDKMBC0HPACECDIkBC0HRACECDIgBC0HnACECDIcBCyABIARGBEBB+gAhAgygAQsCQCABLQAAQQlrDgQgAAAgAAsgAUEBaiEBQeYAIQIMhgELIAEgBEYEQEH5ACECDJ8BCwJAIAEtAABBCWsOBB8AAB8AC0EAIQACQCADKAI4IgJFDQAgAigCOCICRQ0AIAMgAhEAACEACyAARQRAQeIBIQIMhgELIABBFUcEQCADQQA2AhwgAyABNgIUIANByQ02AhAgA0EaNgIMQQAhAgyfAQsgA0H4ADYCHCADIAE2AhQgA0HqGjYCECADQRU2AgxBACECDJ4BCyABIARHBEAgA0ENNgIIIAMgATYCBEHkACECDIUBC0H3ACECDJ0BCyABIARGBEBB9gAhAgydAQsCQAJAAkAgAS0AAEHIAGsOCwABCwsLCwsLCwsCCwsgAUEBaiEBQd0AIQIMhQELIAFBAWohAUHgACECDIQBCyABQQFqIQFB4wAhAgyDAQtB9QAhAiABIARGDZsBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbXVAGotAABHDQggAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJwBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIABEAgA0H0ADYCHCADIAE2AhQgAyAANgIMQQAhAgycAQtB4gAhAgyCAQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJwBC0HhACECDIIBCyADQfMANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMmgELIAMtACkiAEEja0ELSQ0JAkAgAEEGSw0AQQEgAHRBygBxRQ0ADAoLQQAhAiADQQA2AhwgAyABNgIUIANB7Qk2AhAgA0EINgIMDJkBC0HyACECIAEgBEYNmAEgAygCACIAIAQgAWtqIQUgASAAa0EBaiEGAkADQCABLQAAIABBs9UAai0AAEcNBSAAQQFGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMmQELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfEANgIcIAMgATYCFCADIAA2AgxBACECDJkBC0HfACECDH8LQQAhAAJAIAMoAjgiAkUNACACKAI0IgJFDQAgAyACEQAAIQALAkAgAARAIABBFUYNASADQQA2AhwgAyABNgIUIANB6g02AhAgA0EmNgIMQQAhAgyZAQtB3gAhAgx/CyADQfAANgIcIAMgATYCFCADQYAbNgIQIANBFTYCDEEAIQIMlwELIAMtAClBIUYNBiADQQA2AhwgAyABNgIUIANBkQo2AhAgA0EINgIMQQAhAgyWAQtB7wAhAiABIARGDZUBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDVAGotAABHDQIgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADJYBCyADKAIEIQAgA0IANwMAIAMgACAGQQFqIgEQKyIARQ0CIANB7QA2AhwgAyABNgIUIAMgADYCDEEAIQIMlQELIANBADYCAAsgAygCBCEAIANBADYCBCADIAAgARArIgBFDYABIANB7gA2AhwgAyABNgIUIAMgADYCDEEAIQIMkwELQdwAIQIMeQtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJMBC0HbACECDHkLIANB7AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyRAQsgAy0AKSIAQSNJDQAgAEEuRg0AIANBADYCHCADIAE2AhQgA0HJCTYCECADQQg2AgxBACECDJABC0HaACECDHYLIAEgBEYEQEHrACECDI8BCwJAIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMjwELQdkAIQIMdQsgASAERwRAIANBDjYCCCADIAE2AgRB2AAhAgx1C0HqACECDI0BCyABIARGBEBB6QAhAgyNAQsgAS0AAEEwayIAQf8BcUEKSQRAIAMgADoAKiABQQFqIQFB1wAhAgx0CyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeiADQegANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyABIARGBEBB5wAhAgyMAQsCQCABLQAAQS5GBEAgAUEBaiEBDAELIAMoAgQhACADQQA2AgQgAyAAIAEQLyIARQ17IANB5gA2AhwgAyABNgIUIAMgADYCDEEAIQIMjAELQdYAIQIMcgsgASAERgRAQeUAIQIMiwELQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIANgIcIAMgATYCFCADIAA2AgxBACECDI0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNfSADQeMANgIcIAMgATYCFCADIAA2AgxBACECDIwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNeyADQeQANgIcIAMgATYCFCADIAA2AgwMiwELQdQAIQIMcQsgAy0AKUEiRg2GAUHTACECDHALQQAhAAJAIAMoAjgiAkUNACACKAJEIgJFDQAgAyACEQAAIQALIABFBEBB1QAhAgxwCyAAQRVHBEAgA0EANgIcIAMgATYCFCADQaQNNgIQIANBITYCDEEAIQIMiQELIANB4QA2AhwgAyABNgIUIANB0Bo2AhAgA0EVNgIMQQAhAgyIAQsgASAERgRAQeAAIQIMiAELAkACQAJAAkACQCABLQAAQQprDgQBBAQABAsgAUEBaiEBDAELIAFBAWohASADQS9qLQAAQQFxRQ0BC0HSACECDHALIANBADYCHCADIAE2AhQgA0G2ETYCECADQQk2AgxBACECDIgBCyADQQA2AhwgAyABNgIUIANBthE2AhAgA0EJNgIMQQAhAgyHAQsgASAERgRAQd8AIQIMhwELIAEtAABBCkYEQCABQQFqIQEMCQsgAy0ALkHAAHENCCADQQA2AhwgAyABNgIUIANBthE2AhAgA0ECNgIMQQAhAgyGAQsgASAERgRAQd0AIQIMhgELIAEtAAAiAkENRgRAIAFBAWohAUHQACECDG0LIAEhACACQQlrDgQFAQEFAQsgBCABIgBGBEBB3AAhAgyFAQsgAC0AAEEKRw0AIABBAWoMAgtBACECIANBADYCHCADIAA2AhQgA0HKLTYCECADQQc2AgwMgwELIAEgBEYEQEHbACECDIMBCwJAIAEtAABBCWsOBAMAAAMACyABQQFqCyEBQc4AIQIMaAsgASAERgRAQdoAIQIMgQELIAEtAABBCWsOBAABAQABC0EAIQIgA0EANgIcIANBmhI2AhAgA0EHNgIMIAMgAUEBajYCFAx/CyADQYASOwEqQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB2QA2AhwgAyABNgIUIANB6ho2AhAgA0EVNgIMQQAhAgx+C0HNACECDGQLIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDHwLIAEgBEYEQEHZACECDHwLIAEtAABBIEcNPSABQQFqIQEgAy0ALkEBcQ09IANBADYCHCADIAE2AhQgA0HCHDYCECADQR42AgxBACECDHsLIAEgBEYEQEHYACECDHsLAkACQAJAAkACQCABLQAAIgBBCmsOBAIDAwABCyABQQFqIQFBLCECDGULIABBOkcNASADQQA2AhwgAyABNgIUIANB5xE2AhAgA0EKNgIMQQAhAgx9CyABQQFqIQEgA0Evai0AAEEBcUUNcyADLQAyQYABcUUEQCADQTJqIQIgAxA1QQAhAAJAIAMoAjgiBkUNACAGKAIoIgZFDQAgAyAGEQAAIQALAkACQCAADhZNTEsBAQEBAQEBAQEBAQEBAQEBAQEAAQsgA0EpNgIcIAMgATYCFCADQawZNgIQIANBFTYCDEEAIQIMfgsg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c3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==`,a;Object.defineProperty(t,"exports",{get:()=>a||=n.from(i,`base64`)})})),Au=s(((e,t)=>{var{Buffer:n}=r(`node:buffer`),i=`AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRwX3NldF9sZW5pZW50X2hlYWRlcnMAISFsbGh0dHBfc2V0X2xlbmllbnRfY2h1bmtlZF9sZW5ndGgAIh1sbGh0dHBfc2V0X2xlbmllbnRfa2VlcF9hbGl2ZQAjJGxsaHR0cF9zZXRfbGVuaWVudF90cmFuc2Zlcl9lbmNvZGluZwAkGmxsaHR0cF9zZXRfbGVuaWVudF92ZXJzaW9uACUjbGxodHRwX3NldF9sZW5pZW50X2RhdGFfYWZ0ZXJfY2xvc2UAJidsbGh0dHBfc2V0X2xlbmllbnRfb3B0aW9uYWxfbGZfYWZ0ZXJfY3IAJyxsbGh0dHBfc2V0X2xlbmllbnRfb3B0aW9uYWxfY3JsZl9hZnRlcl9jaHVuawAoKGxsaHR0cF9zZXRfbGVuaWVudF9vcHRpb25hbF9jcl9iZWZvcmVfbGYAKSpsbGh0dHBfc2V0X2xlbmllbnRfc3BhY2VzX2FmdGVyX2NodW5rX3NpemUAKhhsbGh0dHBfbWVzc2FnZV9uZWVkc19lb2YANgkYAQBBAQsSAQIDBAUKBgcyNDMuKy8tLDAxCuzaAjQWAEHA1QAoAgAEQAALQcDVAEEBNgIACxQAIAAQOCAAIAI2AjggACABOgAoCxQAIAAgAC8BNCAALQAwIAAQNxAACx4BAX9BwAAQOiIBEDggAUGACDYCOCABIAA6ACggAQuPDAEHfwJAIABFDQAgAEEIayIBIABBBGsoAgAiAEF4cSIEaiEFAkAgAEEBcQ0AIABBA3FFDQEgASABKAIAIgBrIgFB1NUAKAIASQ0BIAAgBGohBAJAAkBB2NUAKAIAIAFHBEAgAEH/AU0EQCAAQQN2IQMgASgCCCIAIAEoAgwiAkYEQEHE1QBBxNUAKAIAQX4gA3dxNgIADAULIAIgADYCCCAAIAI2AgwMBAsgASgCGCEGIAEgASgCDCIARwRAIAAgASgCCCICNgIIIAIgADYCDAwDCyABQRRqIgMoAgAiAkUEQCABKAIQIgJFDQIgAUEQaiEDCwNAIAMhByACIgBBFGoiAygCACICDQAgAEEQaiEDIAAoAhAiAg0ACyAHQQA2AgAMAgsgBSgCBCIAQQNxQQNHDQIgBSAAQX5xNgIEQczVACAENgIAIAUgBDYCACABIARBAXI2AgQMAwtBACEACyAGRQ0AAkAgASgCHCICQQJ0QfTXAGoiAygCACABRgRAIAMgADYCACAADQFByNUAQcjVACgCAEF+IAJ3cTYCAAwCCyAGQRBBFCAGKAIQIAFGG2ogADYCACAARQ0BCyAAIAY2AhggASgCECICBEAgACACNgIQIAIgADYCGAsgAUEUaigCACICRQ0AIABBFGogAjYCACACIAA2AhgLIAEgBU8NACAFKAIEIgBBAXFFDQACQAJAAkACQCAAQQJxRQRAQdzVACgCACAFRgRAQdzVACABNgIAQdDVAEHQ1QAoAgAgBGoiADYCACABIABBAXI2AgQgAUHY1QAoAgBHDQZBzNUAQQA2AgBB2NUAQQA2AgAMBgtB2NUAKAIAIAVGBEBB2NUAIAE2AgBBzNUAQczVACgCACAEaiIANgIAIAEgAEEBcjYCBCAAIAFqIAA2AgAMBgsgAEF4cSAEaiEEIABB/wFNBEAgAEEDdiEDIAUoAggiACAFKAIMIgJGBEBBxNUAQcTVACgCAEF+IAN3cTYCAAwFCyACIAA2AgggACACNgIMDAQLIAUoAhghBiAFIAUoAgwiAEcEQEHU1QAoAgAaIAAgBSgCCCICNgIIIAIgADYCDAwDCyAFQRRqIgMoAgAiAkUEQCAFKAIQIgJFDQIgBUEQaiEDCwNAIAMhByACIgBBFGoiAygCACICDQAgAEEQaiEDIAAoAhAiAg0ACyAHQQA2AgAMAgsgBSAAQX5xNgIEIAEgBGogBDYCACABIARBAXI2AgQMAwtBACEACyAGRQ0AAkAgBSgCHCICQQJ0QfTXAGoiAygCACAFRgRAIAMgADYCACAADQFByNUAQcjVACgCAEF+IAJ3cTYCAAwCCyAGQRBBFCAGKAIQIAVGG2ogADYCACAARQ0BCyAAIAY2AhggBSgCECICBEAgACACNgIQIAIgADYCGAsgBUEUaigCACICRQ0AIABBFGogAjYCACACIAA2AhgLIAEgBGogBDYCACABIARBAXI2AgQgAUHY1QAoAgBHDQBBzNUAIAQ2AgAMAQsgBEH/AU0EQCAEQXhxQezVAGohAAJ/QcTVACgCACICQQEgBEEDdnQiA3FFBEBBxNUAIAIgA3I2AgAgAAwBCyAAKAIICyICIAE2AgwgACABNgIIIAEgADYCDCABIAI2AggMAQtBHyECIARB////B00EQCAEQSYgBEEIdmciAGt2QQFxIABBAXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgLhocCAwd/A34BeyABIAJqIQQCQCAAIgMoAgwiAA0AIAMoAgQEQCADIAE2AgQLIwBBEGsiCSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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DAgLQeMBDAcLQdcBDAYLQdgBDAULQdkBDAQLQdoBDAMLQdsBDAILQd0BDAELQdwBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAn8CQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAwJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAC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A0EXNgIcIAMgADYCDCADIAFBAWo2AhQM+AILIABBFUYNI0EAIQIgA0EANgIcIAMgATYCFCADQdYMNgIQIANBIzYCDAz3AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQwdCyADQRk2AhwgAyAANgIMIAMgAUEBajYCFAz2AgsgAygCBCEAQQAhAiADQQA2AgQgAyAAIAEQNCIARQRAIAFBAWohAQzvAgsgA0EaNgIcIAMgADYCDCADIAFBAWo2AhQM9QILIABBFUYNH0EAIQIgA0EANgIcIAMgATYCFCADQdAPNgIQIANBIjYCDAz0AgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDBsLIANBHDYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgzzAgsgAygCBCEAIANBADYCBCADIAAgARAzIgBFBEAgAUEBaiEBDOsCCyADQR02AhwgAyAANgIMIAMgAUEBajYCFEEAIQIM8gILIABBO0cNASABQQFqIQELQSYhAgzXAgtBACECIANBADYCHCADIAE2AhQgA0GfFTYCECADQQw2AgwM7wILIAEgBEcEQANAIAEtAABBIEcNhAIgBCABQQFqIgFHDQALQSwhAgzvAgtBLCECDO4CCyABIARGBEBBNCECDO4CCwJAAkADQAJAIAEtAABBCmsOBAIAAAMACyAEIAFBAWoiAUcNAAtBNCECDO8CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUNnwIgA0EyNgIcIAMgATYCFCADIAA2AgxBACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABEDEiAEUEQCABQQFqIQEMnwILIANBMjYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgztAgsgASAERwRAAkADQCABLQAAQTBrIgBB/wFxQQpPBEBBOiECDNcCCyADKQMgIgtCmbPmzJmz5swZVg0BIAMgC0IKfiIKNwMgIAogAK1C/wGDIgtCf4VWDQEgAyAKIAt8NwMgIAQgAUEBaiIBRw0AC0HAACECDO4CCyADKAIEIQAgA0EANgIEIAMgACABQQFqIgEQMSIADRcM4gILQcAAIQIM7AILIAEgBEYEQEHJACECDOwCCwJAA0ACQCABLQAAQQlrDhgAAqICogKpAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAqICogKiAgCiAgsgBCABQQFqIgFHDQALQckAIQIM7AILIAFBAWohASADQS9qLQAAQQFxDaUCIANBADYCHCADIAE2AhQgA0GXEDYCECADQQo2AgxBACECDOsCCyABIARHBEADQCABLQAAQSBHDRUgBCABQQFqIgFHDQALQfgAIQIM6wILQfgAIQIM6gILIANBAjoAKAw4C0EAIQIgA0EANgIcIANBvws2AhAgA0ECNgIMIAMgAUEBajYCFAzoAgtBACECDM4CC0ENIQIMzQILQRMhAgzMAgtBFSECDMsCC0EWIQIMygILQRghAgzJAgtBGSECDMgCC0EaIQIMxwILQRshAgzGAgtBHCECDMUCC0EdIQIMxAILQR4hAgzDAgtBHyECDMICC0EgIQIMwQILQSIhAgzAAgtBIyECDL8CC0ElIQIMvgILQeUAIQIMvQILIANBPTYCHCADIAE2AhQgAyAANgIMQQAhAgzVAgsgA0EbNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIM1AILIANBIDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNMCCyADQRM2AhwgAyABNgIUIANBmBo2AhAgA0EVNgIMQQAhAgzSAgsgA0ELNgIcIAMgATYCFCADQZgaNgIQIANBFTYCDEEAIQIM0QILIANBEDYCHCADIAE2AhQgA0GYGjYCECADQRU2AgxBACECDNACCyADQSA2AhwgAyABNgIUIANBpBw2AhAgA0EVNgIMQQAhAgzPAgsgA0ELNgIcIAMgATYCFCADQaQcNgIQIANBFTYCDEEAIQIMzgILIANBDDYCHCADIAE2AhQgA0GkHDYCECADQRU2AgxBACECDM0CC0EAIQIgA0EANgIcIAMgATYCFCADQd0ONgIQIANBEjYCDAzMAgsCQANAAkAgAS0AAEEKaw4EAAICAAILIAQgAUEBaiIBRw0AC0H9ASECDMwCCwJAAkAgAy0ANkEBRw0AQQAhAAJAIAMoAjgiAkUNACACKAJgIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRw0BIANB/AE2AhwgAyABNgIUIANB3Bk2AhAgA0EVNgIMQQAhAgzNAgtB3AEhAgyzAgsgA0EANgIcIAMgATYCFCADQfkLNgIQIANBHzYCDEEAIQIMywILAkACQCADLQAoQQFrDgIEAQALQdsBIQIMsgILQdQBIQIMsQILIANBAjoAMUEAIQACQCADKAI4IgJFDQAgAigCACICRQ0AIAMgAhEAACEACyAARQRAQd0BIQIMsQILIABBFUcEQCADQQA2AhwgAyABNgIUIANBtAw2AhAgA0EQNgIMQQAhAgzKAgsgA0H7ATYCHCADIAE2AhQgA0GBGjYCECADQRU2AgxBACECDMkCCyABIARGBEBB+gEhAgzJAgsgAS0AAEHIAEYNASADQQE6ACgLQcABIQIMrgILQdoBIQIMrQILIAEgBEcEQCADQQw2AgggAyABNgIEQdkBIQIMrQILQfkBIQIMxQILIAEgBEYEQEH4ASECDMUCCyABLQAAQcgARw0EIAFBAWohAUHYASECDKsCCyABIARGBEBB9wEhAgzEAgsCQAJAIAEtAABBxQBrDhAABQUFBQUFBQUFBQUFBQUBBQsgAUEBaiEBQdYBIQIMqwILIAFBAWohAUHXASECDKoCC0H2ASECIAEgBEYNwgIgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABButUAai0AAEcNAyAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMwwILIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgBFBEBB4wEhAgyqAgsgA0H1ATYCHCADIAE2AhQgAyAANgIMQQAhAgzCAgtB9AEhAiABIARGDcECIAMoAgAiACAEIAFraiEFIAEgAGtBAWohBgJAA0AgAS0AACAAQbjVAGotAABHDQIgAEEBRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADMICCyADQYEEOwEoIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARAuIgANAwwCCyADQQA2AgALQQAhAiADQQA2AhwgAyABNgIUIANB5R82AhAgA0EINgIMDL8CC0HVASECDKUCCyADQfMBNgIcIAMgATYCFCADIAA2AgxBACECDL0CC0EAIQACQCADKAI4IgJFDQAgAigCQCICRQ0AIAMgAhEAACEACyAARQ1uIABBFUcEQCADQQA2AhwgAyABNgIUIANBgg82AhAgA0EgNgIMQQAhAgy9AgsgA0GPATYCHCADIAE2AhQgA0HsGzYCECADQRU2AgxBACECDLwCCyABIARHBEAgA0ENNgIIIAMgATYCBEHTASECDKMCC0HyASECDLsCCyABIARGBEBB8QEhAgy7AgsCQAJAAkAgAS0AAEHIAGsOCwABCAgICAgICAgCCAsgAUEBaiEBQdABIQIMowILIAFBAWohAUHRASECDKICCyABQQFqIQFB0gEhAgyhAgtB8AEhAiABIARGDbkCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEG11QBqLQAARw0EIABBAkYNAyAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy5AgtB7wEhAiABIARGDbgCIAMoAgAiACAEIAFraiEGIAEgAGtBAWohBQNAIAEtAAAgAEGz1QBqLQAARw0DIABBAUYNAiAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy4AgtB7gEhAiABIARGDbcCIAMoAgAiACAEIAFraiEGIAEgAGtBAmohBQNAIAEtAAAgAEGw1QBqLQAARw0CIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBjYCAAy3AgsgAygCBCEAIANCADcDACADIAAgBUEBaiIBECsiAEUNAiADQewBNgIcIAMgATYCFCADIAA2AgxBACECDLYCCyADQQA2AgALIAMoAgQhACADQQA2AgQgAyAAIAEQKyIARQ2cAiADQe0BNgIcIAMgATYCFCADIAA2AgxBACECDLQCC0HPASECDJoCC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMtAILQc4BIQIMmgILIANB6wE2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyyAgsgASAERgRAQesBIQIMsgILIAEtAABBL0YEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQbI4NgIQIANBCDYCDEEAIQIMsQILQc0BIQIMlwILIAEgBEcEQCADQQ42AgggAyABNgIEQcwBIQIMlwILQeoBIQIMrwILIAEgBEYEQEHpASECDK8CCyABLQAAQTBrIgBB/wFxQQpJBEAgAyAAOgAqIAFBAWohAUHLASECDJYCCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNlwIgA0HoATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgASAERgRAQecBIQIMrgILAkAgAS0AAEEuRgRAIAFBAWohAQwBCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmAIgA0HmATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgtBygEhAgyUAgsgASAERgRAQeUBIQIMrQILQQAhAEEBIQVBASEHQQAhAgJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAIAEtAABBMGsOCgoJAAECAwQFBggLC0ECDAYLQQMMBQtBBAwEC0EFDAMLQQYMAgtBBwwBC0EICyECQQAhBUEAIQcMAgtBCSECQQEhAEEAIQVBACEHDAELQQAhBUEBIQILIAMgAjoAKyABQQFqIQECQAJAIAMtAC5BEHENAAJAAkACQCADLQAqDgMBAAIECyAHRQ0DDAILIAANAQwCCyAFRQ0BCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNAiADQeIBNgIcIAMgATYCFCADIAA2AgxBACECDK8CCyADKAIEIQAgA0EANgIEIAMgACABEC8iAEUNmgIgA0HjATYCHCADIAE2AhQgAyAANgIMQQAhAgyuAgsgAygCBCEAIANBADYCBCADIAAgARAvIgBFDZgCIANB5AE2AhwgAyABNgIUIAMgADYCDAytAgtByQEhAgyTAgtBACEAAkAgAygCOCICRQ0AIAIoAkQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GkDTYCECADQSE2AgxBACECDK0CC0HIASECDJMCCyADQeEBNgIcIAMgATYCFCADQdAaNgIQIANBFTYCDEEAIQIMqwILIAEgBEYEQEHhASECDKsCCwJAIAEtAABBIEYEQCADQQA7ATQgAUEBaiEBDAELIANBADYCHCADIAE2AhQgA0GZETYCECADQQk2AgxBACECDKsCC0HHASECDJECCyABIARGBEBB4AEhAgyqAgsCQCABLQAAQTBrQf8BcSICQQpJBEAgAUEBaiEBAkAgAy8BNCIAQZkzSw0AIAMgAEEKbCIAOwE0IABB/v8DcSACQf//A3NLDQAgAyAAIAJqOwE0DAILQQAhAiADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMDKsCCyADQQA2AhwgAyABNgIUIANBlR42AhAgA0ENNgIMQQAhAgyqAgtBxgEhAgyQAgsgASAERgRAQd8BIQIMqQILAkAgAS0AAEEwa0H/AXEiAkEKSQRAIAFBAWohAQJAIAMvATQiAEGZM0sNACADIABBCmwiADsBNCAAQf7/A3EgAkH//wNzSw0AIAMgACACajsBNAwCC0EAIQIgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDAyqAgsgA0EANgIcIAMgATYCFCADQZUeNgIQIANBDTYCDEEAIQIMqQILQcUBIQIMjwILIAEgBEYEQEHeASECDKgCCwJAIAEtAABBMGtB/wFxIgJBCkkEQCABQQFqIQECQCADLwE0IgBBmTNLDQAgAyAAQQpsIgA7ATQgAEH+/wNxIAJB//8Dc0sNACADIAAgAmo7ATQMAgtBACECIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgwMqQILIANBADYCHCADIAE2AhQgA0GVHjYCECADQQ02AgxBACECDKgCC0HEASECDI4CCyABIARGBEBB3QEhAgynAgsCQAJAAkACQCABLQAAQQprDhcCAwMAAwMDAwMDAwMDAwMDAwMDAwMDAQMLIAFBAWoMBQsgAUEBaiEBQcMBIQIMjwILIAFBAWohASADQS9qLQAAQQFxDQggA0EANgIcIAMgATYCFCADQY0LNgIQIANBDTYCDEEAIQIMpwILIANBADYCHCADIAE2AhQgA0GNCzYCECADQQ02AgxBACECDKYCCyABIARHBEAgA0EPNgIIIAMgATYCBEEBIQIMjQILQdwBIQIMpQILAkACQANAAkAgAS0AAEEKaw4EAgAAAwALIAQgAUEBaiIBRw0AC0HbASECDKYCCyADKAIEIQAgA0EANgIEIAMgACABEC0iAEUEQCABQQFqIQEMBAsgA0HaATYCHCADIAA2AgwgAyABQQFqNgIUQQAhAgylAgsgAygCBCEAIANBADYCBCADIAAgARAtIgANASABQQFqCyEBQcEBIQIMigILIANB2QE2AhwgAyAANgIMIAMgAUEBajYCFEEAIQIMogILQcIBIQIMiAILIANBL2otAABBAXENASADQQA2AhwgAyABNgIUIANB5Bw2AhAgA0EZNgIMQQAhAgygAgsgASAERgRAQdkB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CyADIAU2AgAMkAILIANBADYCACAGQQFqIQFBGgw8C0HKASECIAEgBEYNjgIgAygCACIAIAQgAWtqIQUgASAAa0EDaiEGAkADQCABLQAAIABBjdUAai0AAEcNOyAAQQNGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMjwILIANBADYCACAGQQFqIQFBIQw7CyABIARGBEBByQEhAgyOAgsCQAJAIAEtAABBwQBrDhQAPT09PT09PT09PT09PT09PT09AT0LIAFBAWohAUGtASECDPUBCyABQQFqIQFBsAEhAgz0AQsgASAERgRAQcgBIQIMjQILAkACQCABLQAAQdUAaw4LADw8PDw8PDw8PAE8CyABQQFqIQFBrgEhAgz0AQsgAUEBaiEBQa8BIQIM8wELQccBIQIgASAERg2LAiADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw04IABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyMAgsgA0EANgIAIAZBAWohAUEqDDgLIAEgBEYEQEHGASECDIsCCyABLQAAQdAARw04IAFBAWohAUElDDcLQcUBIQIgASAERg2JAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEGB1QBqLQAARw02IABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyKAgsgA0EANgIAIAZBAWohAUEODDYLIAEgBEYEQEHEASECDIkCCyABLQAAQcUARw02IAFBAWohAUGrASECDO8BCyABIARGBEBBwwEhAgyIAgsCQAJAAkACQCABLQAAQcIAaw4PAAECOTk5OTk5OTk5OTkDOQsgAUEBaiEBQacBIQIM8QELIAFBAWohAUGoASECDPABCyABQQFqIQFBqQEhAgzvAQsgAUEBaiEBQaoBIQIM7gELQcIBIQIgASAERg2GAiADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEH+1ABqLQAARw0zIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyHAgsgA0EANgIAIAZBAWohAUEUDDMLQcEBIQIgASAERg2FAiADKAIAIgAgBCABa2ohBSABIABrQQRqIQYCQANA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BTYCAAzsAQsgA0EANgIAIAZBAWohAUEXDBgLQaYBIQIgASAERg3qASADKAIAIgAgBCABa2ohBSABIABrQQVqIQYCQANAIAEtAAAgAEHB1ABqLQAARw0XIABBBUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzrAQsgA0EANgIAIAZBAWohAUEYDBcLIAEgBEYEQEGlASECDOoBCwJAAkAgAS0AAEHJAGsOBwAZGRkZGQEZCyABQQFqIQFBiwEhAgzRAQsgAUEBaiEBQYwBIQIM0AELQaQBIQIgASAERg3oASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGm1QBqLQAARw0VIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzpAQsgA0EANgIAIAZBAWohAUEJDBULQaMBIQIgASAERg3nASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGk1QBqLQAARw0UIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzoAQsgA0EANgIAIAZBAWohAUEfDBQLQaIBIQIgASAERg3mASADKAIAIgAgBCABa2ohBSABIABrQQJqIQYCQANAIAEtAAAgAEG+1ABqLQAARw0TIABBAkYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAznAQsgA0EANgIAIAZBAWohAUECDBMLQaEBIQIgASAERg3lASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYDQCABLQAAIABBvNQAai0AAEcNESAAQQFGDQIgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM5QELIAEgBEYEQEGgASECDOUBC0EBIAEtAABB3wBHDREaIAFBAWohAUGHASECDMsBCyADQQA2AgAgBkEBaiEBQYgBIQIMygELQZ8BIQIgASAERg3iASADKAIAIgAgBCABa2ohBSABIABrQQhqIQYCQANAIAEtAAAgAEGE1QBqLQAARw0PIABBCEYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAzjAQsgA0EANgIAIAZBAWohAUEpDA8LQZ4BIQIgASAERg3hASADKAIAIgAgBCABa2ohBSABIABrQQNqIQYCQANAIAEtAAAgAEG41ABqLQAARw0OIABBA0YNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAziAQsgA0EANgIAIAZBAWohAUEtDA4LIAEgBEYEQEGdASECDOEBCyABLQAAQcUARw0OIAFBAWohAUGEASECDMcBCyABIARGBEBBnAEhAgzgAQsCQAJAIAEtAABBzABrDggADw8PDw8PAQ8LIAFBAWohAUGCASECDMcBCyABQQFqIQFBgwEhAgzGAQtBmwEhAiABIARGDd4BIAMoAgAiACAEIAFraiEFIAEgAGtBBGohBgJAA0AgAS0AACAAQbPUAGotAABHDQsgAEEERg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN8BCyADQQA2AgAgBkEBaiEBQSMMCwtBmgEhAiABIARGDd0BIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQbDUAGotAABHDQogAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADN4BCyADQQA2AgAgBkEBaiEBQQAMCgsgASAERgRAQZkBIQIM3QELAkACQCABLQAAQcgAaw4IAAwMDAwMDAEMCyABQQFqIQFB/QAhAgzEAQsgAUEBaiEBQYABIQIMwwELIAEgBEYEQEGYASECDNwBCwJAAkAgAS0AAEHOAGsOAwALAQsLIAFBAWohAUH+ACECDMMBCyABQQFqIQFB/wAhAgzCAQsgASAERgRAQZcBIQIM2wELIAEtAABB2QBHDQggAUEBaiEBQQgMBwtBlgEhAiABIARGDdkBIAMoAgAiACAEIAFraiEFIAEgAGtBA2ohBgJAA0AgAS0AACAAQazUAGotAABHDQYgAEEDRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNoBCyADQQA2AgAgBkEBaiEBQQUMBgtBlQEhAiABIARGDdgBIAMoAgAiACAEIAFraiEFIAEgAGtBBWohBgJAA0AgAS0AACAAQabUAGotAABHDQUgAEEFRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNkBCyADQQA2AgAgBkEBaiEBQRYMBQtBlAEhAiABIARGDdcBIAMoAgAiACAEIAFraiEFIAEgAGtBAmohBgJAA0AgAS0AACAAQaHVAGotAABHDQQgAEECRg0BIABBAWohACAEIAFBAWoiAUcNAAsgAyAFNgIADNgBCyADQQA2AgAgBkEBaiEBQRAMBAsgASAERgRAQZMBIQIM1wELAkACQCABLQAAQcMAaw4MAAYGBgYGBgYGBgYBBgsgAUEBaiEBQfkAIQIMvgELIAFBAWohAUH6ACECDL0BC0GSASECIAEgBEYN1QEgAygCACIAIAQgAWtqIQUgASAAa0EFaiEGAkADQCABLQAAIABBoNQAai0AAEcNAiAAQQVGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAM1gELIANBADYCACAGQQFqIQFBJAwCCyADQQA2AgAMAgsgASAERgRAQZEBIQIM1AELIAEtAABBzABHDQEgAUEBaiEBQRMLOgApIAMoAgQhACADQQA2AgQgAyAAIAEQLiIADQIMAQtBACECIANBADYCHCADIAE2AhQgA0H+HzYCECADQQY2AgwM0QELQfgAIQIMtwELIANBkAE2AhwgAyABNgIUIAMgADYCDEEAIQIMzwELQQAhAAJAIAMoAjgiAkUNACACKAJAIgJFDQAgAyACEQAAIQALIABFDQAgAEEVRg0BIANBADYCHCADIAE2AhQgA0GCDzYCECADQSA2AgxBACECDM4BC0H3ACECDLQBCyADQY8BNgIcIAMgATYCFCADQewbNgIQIANBFTYCDEEAIQIMzAELIAEgBEYEQEGPASECDMwBCwJAIAEtAABBIEYEQCABQQFqIQEMAQsgA0EANgIcIAMgATYCFCADQZsfNgIQIANBBjYCDEEAIQIMzAELQQIhAgyyAQsDQCABLQAAQSBHDQIgBCABQQFqIgFHDQALQY4BIQIMygELIAEgBEYEQEGNASECDMoBCwJAIAEtAABBCWsOBEoAAEoAC0H1ACECDLABCyADLQApQQVGBEBB9gAhAgywAQtB9AAhAgyvAQsgASAERgRAQYwBIQIMyAELIANBEDYCCCADIAE2AgQMCgsgASAERgRAQYsBIQIMxwELAkAgAS0AAEEJaw4ERwAARwALQfMAIQIMrQELIAEgBEcEQCADQRA2AgggAyABNgIEQfEAIQIMrQELQYoBIQIMxQELAkAgASAERwRAA0AgAS0AAEGg0ABqLQAAIgBBA0cEQAJAIABBAWsOAkkABAtB8AAhAgyvAQsgBCABQQFqIgFHDQALQYgBIQIMxgELQYgBIQIMxQELIANBADYCHCADIAE2AhQgA0HbIDYCECADQQc2AgxBACECDMQBCyABIARGBEBBiQEhAgzEAQsCQAJAAkAgAS0AAEGg0gBqLQAAQQFrDgNGAgABC0HyACECDKwBCyADQQA2AhwgAyABNgIUIANBtBI2AhAgA0EHNgIMQQAhAgzEAQtB6gAhAgyqAQsgASAERwRAIAFBAWohAUHvACECDKoBC0GHASECDMIBCyAEIAEiAEYEQEGGASECDMIBCyAALQAAIgFBL0YEQCAAQQFqIQFB7gAhAgypAQsgAUEJayICQRdLDQEgACEBQQEgAnRBm4CABHENQQwBCyAEIAEiAEYEQEGFASECDMEBCyAALQAAQS9HDQAgAEEBaiEBDAMLQQAhAiADQQA2AhwgAyAANgIUIANB2yA2AhAgA0EHNgIMDL8BCwJAAkACQAJAAkADQCABLQAAQaDOAGotAAAiAEEFRwRAAkACQCAAQQFrDghHBQYHCAAEAQgLQesAIQIMrQELIAFBAWohAUHtACECDKwBCyAEIAFBAWoiAUcNAAtBhAEhAgzDAQsgAUEBagwUCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDMEBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDMABCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNHiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDL8BCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy+AQsgASAERgRAQYMBIQIMvgELAkAgAS0AAEGgzgBqLQAAQQFrDgg+BAUGAAgCAwcLIAFBAWohAQtBAyECDKMBCyABQQFqDA0LQQAhAiADQQA2AhwgA0HREjYCECADQQc2AgwgAyABQQFqNgIUDLoBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQdsANgIcIAMgATYCFCADIAA2AgxBACECDLkBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQd0ANgIcIAMgATYCFCADIAA2AgxBACECDLgBCyADKAIEIQAgA0EANgIEIAMgACABECwiAEUNFiADQfoANgIcIAMgATYCFCADIAA2AgxBACECDLcBCyADQQA2AhwgAyABNgIUIANB+Q82AhAgA0EHNgIMQQAhAgy2AQtB7AAhAgycAQsgASAERgRAQYIBIQIMtQELIAFBAWoMAgsgASAERgRAQYEBIQIMtAELIAFBAWoMAQsgASAERg0BIAFBAWoLIQFBBCECDJgBC0GAASECDLABCwNAIAEtAABBoMwAai0AACIAQQJHBEAgAEEBRwRAQekAIQIMmQELDDELIAQgAUEBaiIBRw0AC0H/ACECDK8BCyABIARGBEBB/gAhAgyvAQsCQCABLQAAQQlrDjcvAwYvBAYGBgYGBgYGBgYGBgYGBgYGBgUGBgIGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYABgsgAUEBagshAUEFIQIMlAELIAFBAWoMBgsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgyrAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgyqAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQggA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgypAQsgA0EANgIcIAMgATYCFCADQY0UNgIQIANBBzYCDEEAIQIMqAELAkACQAJAAkADQCABLQAAQaDKAGotAAAiAEEFRwRAAkAgAEEBaw4GLgMEBQYABgtB6AAhAgyUAQsgBCABQQFqIgFHDQALQf0AIQIMqwELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB2wA2AhwgAyABNgIUIAMgADYCDEEAIQIMqgELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB3QA2AhwgAyABNgIUIAMgADYCDEEAIQIMqQELIAMoAgQhACADQQA2AgQgAyAAIAEQLCIARQ0HIANB+gA2AhwgAyABNgIUIAMgADYCDEEAIQIMqAELIANBADYCHCADIAE2AhQgA0HkCDYCECADQQc2AgxBACECDKcBCyABIARGDQEgAUEBagshAUEGIQIMjAELQfwAIQIMpAELAkACQAJAAkADQCABLQAAQaDIAGotAAAiAEEFRwRAIABBAWsOBCkCAwQFCyAEIAFBAWoiAUcNAAtB+wAhAgynAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HbADYCHCADIAE2AhQgAyAANgIMQQAhAgymAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0HdADYCHCADIAE2AhQgAyAANgIMQQAhAgylAQsgAygCBCEAIANBADYCBCADIAAgARAsIgBFDQMgA0H6ADYCHCADIAE2AhQgAyAANgIMQQAhAgykAQsgA0EANgIcIAMgATYCFCADQbwKNgIQIANBBzYCDEEAIQIMowELQc8AIQIMiQELQdEAIQIMiAELQecAIQIMhwELIAEgBEYEQEH6ACECDKABCwJAIAEtAABBCWsOBCAAACAACyABQQFqIQFB5gAhAgyGAQsgASAERgRAQfkAIQIMnwELAkAgAS0AAEEJaw4EHwAAHwALQQAhAAJAIAMoAjgiAkUNACACKAI4IgJFDQAgAyACEQAAIQALIABFBEBB4gEhAgyGAQsgAEEVRwRAIANBADYCHCADIAE2AhQgA0HJDTYCECADQRo2AgxBACECDJ8BCyADQfgANgIcIAMgATYCFCADQeoaNgIQIANBFTYCDEEAIQIMngELIAEgBEcEQCADQQ02AgggAyABNgIEQeQAIQIMhQELQfcAIQIMnQELIAEgBEYEQEH2ACECDJ0BCwJAAkACQCABLQAAQcgAaw4LAAELCwsLCwsLCwILCyABQQFqIQFB3QAhAgyFAQsgAUEBaiEBQeAAIQIMhAELIAFBAWohAUHjACECDIMBC0H1ACECIAEgBEYNmwEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBtdUAai0AAEcNCCAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMnAELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgAEQCADQfQANgIcIAMgATYCFCADIAA2AgxBACECDJwBC0HiACECDIIBC0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMnAELQeEAIQIMggELIANB8wA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyaAQsgAy0AKSIAQSNrQQtJDQkCQCAAQQZLDQBBASAAdEHKAHFFDQAMCgtBACECIANBADYCHCADIAE2AhQgA0HtCTYCECADQQg2AgwMmQELQfIAIQIgASAERg2YASADKAIAIgAgBCABa2ohBSABIABrQQFqIQYCQANAIAEtAAAgAEGz1QBqLQAARw0FIABBAUYNASAAQQFqIQAgBCABQQFqIgFHDQALIAMgBTYCAAyZAQsgAygCBCEAIANCADcDACADIAAgBkEBaiIBECsiAARAIANB8QA2AhwgAyABNgIUIAMgADYCDEEAIQIMmQELQd8AIQIMfwtBACEAAkAgAygCOCICRQ0AIAIoAjQiAkUNACADIAIRAAAhAAsCQCAABEAgAEEVRg0BIANBADYCHCADIAE2AhQgA0HqDTYCECADQSY2AgxBACECDJkBC0HeACECDH8LIANB8AA2AhwgAyABNgIUIANBgBs2AhAgA0EVNgIMQQAhAgyXAQsgAy0AKUEhRg0GIANBADYCHCADIAE2AhQgA0GRCjYCECADQQg2AgxBACECDJYBC0HvACECIAEgBEYNlQEgAygCACIAIAQgAWtqIQUgASAAa0ECaiEGAkADQCABLQAAIABBsNUAai0AAEcNAiAAQQJGDQEgAEEBaiEAIAQgAUEBaiIBRw0ACyADIAU2AgAMlgELIAMoAgQhACADQgA3AwAgAyAAIAZBAWoiARArIgBFDQIgA0HtADYCHCADIAE2AhQgAyAANgIMQQAhAgyVAQsgA0EANgIACyADKAIEIQAgA0EANgIEIAMgACABECsiAEUNgAEgA0HuADYCHCADIAE2AhQgAyAANgIMQQAhAgyTAQtB3AAhAgx5C0EAIQACQCADKAI4IgJFDQAgAigCNCICRQ0AIAMgAhEAACEACwJAIAAEQCAAQRVGDQEgA0EANgIcIAMgATYCFCADQeoNNgIQIANBJjYCDEEAIQIMkwELQdsAIQIMeQsgA0HsADYCHCADIAE2AhQgA0GAGzYCECADQRU2AgxBACECDJEBCyADLQApIgBBI0kNACAAQS5GDQAgA0EANgIcIAMgATYCFCADQckJNgIQIANBCDYCDEEAIQIMkAELQdoAIQIMdgsgASAERgRAQesAIQIMjwELAkAgAS0AAEEvRgRAIAFBAWohAQwBCyAD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ciBIVFRQL3gueCByZXF1ZXN0AEludmFsaWQgbWV0aG9kIGZvciBSVFNQL3gueCByZXF1ZXN0AEV4cGVjdGVkIFNPVVJDRSBtZXRob2QgZm9yIElDRS94LnggcmVxdWVzdABJbnZhbGlkIGNoYXIgaW4gdXJsIGZyYWdtZW50IHN0YXJ0AEV4cGVjdGVkIGRvdABTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3N0YXR1cwBJbnZhbGlkIHJlc3BvbnNlIHN0YXR1cwBFeHBlY3RlZCBMRiBhZnRlciBoZWFkZXJzAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMAVXNlciBjYWxsYmFjayBlcnJvcgBgb25fcmVzZXRgIGNhbGxiYWNrIGVycm9yAGBvbl9jaHVua19oZWFkZXJgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2JlZ2luYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX3ZhbHVlYCBjYWxsYmFjayBlcnJvcgBgb25fc3RhdHVzX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fdmVyc2lvbl9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3VybF9jb21wbGV0ZWAgY2FsbGJhY2sgZXJyb3IAYG9uX3Byb3RvY29sX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9oZWFkZXJfdmFsdWVfY29tcGxldGVgIGNhbGxiYWNrIGVycm9yAGBvbl9tZXNzYWdlX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fbWV0aG9kX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25faGVhZGVyX2ZpZWxkX2NvbXBsZXRlYCBjYWxsYmFjayBlcnJvcgBgb25fY2h1bmtfZXh0ZW5zaW9uX25hbWVgIGNhbGxiYWNrIGVycm9yAFVuZXhwZWN0ZWQgY2hhciBpbiB1cmwgc2VydmVyAEludmFsaWQgaGVhZGVyIHZhbHVlIGNoYXIASW52YWxpZCBoZWFkZXIgZmllbGQgY2hhcgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3ZlcnNpb24ASW52YWxpZCBtaW5vciB2ZXJzaW9uAEludmFsaWQgbWFqb3IgdmVyc2lvbgBFeHBlY3RlZCBzcGFjZSBhZnRlciB2ZXJzaW9uAEV4cGVjdGVkIENSTEYgYWZ0ZXIgdmVyc2lvbgBJbnZhbGlkIEhUVFAgdmVyc2lvbgBJbnZhbGlkIGhlYWRlciB0b2tlbgBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX3VybABJbnZhbGlkIGNoYXJhY3RlcnMgaW4gdXJsAFVuZXhwZWN0ZWQgc3RhcnQgY2hhciBpbiB1cmwARG91YmxlIEAgaW4gdXJsAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fcHJvdG9jb2wARW1wdHkgQ29udGVudC1MZW5ndGgASW52YWxpZCBjaGFyYWN0ZXIgaW4gQ29udGVudC1MZW5ndGgAVHJhbnNmZXItRW5jb2RpbmcgY2FuJ3QgYmUgcHJlc2VudCB3aXRoIENvbnRlbnQtTGVuZ3RoAER1cGxpY2F0ZSBDb250ZW50LUxlbmd0aABJbnZhbGlkIGNoYXIgaW4gdXJsIHBhdGgAQ29udGVudC1MZW5ndGggY2FuJ3QgYmUgcHJlc2VudCB3aXRoIFRyYW5zZmVyLUVuY29kaW5nAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgc2l6ZQBFeHBlY3RlZCBMRiBhZnRlciBjaHVuayBzaXplAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIHNpemUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfdmFsdWUAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9jaHVua19leHRlbnNpb25fdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyB2YWx1ZQBVbmV4cGVjdGVkIHdoaXRlc3BhY2UgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgaGVhZGVyIHZhbHVlAE1pc3NpbmcgZXhwZWN0ZWQgTEYgYWZ0ZXIgaGVhZGVyIHZhbHVlAEludmFsaWQgYFRyYW5zZmVyLUVuY29kaW5nYCBoZWFkZXIgdmFsdWUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciBjaHVuayBleHRlbnNpb24gdmFsdWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBxdW90ZSB2YWx1ZQBJbnZhbGlkIHF1b3RlZC1wYWlyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAEludmFsaWQgY2hhcmFjdGVyIGluIGNodW5rIGV4dGVuc2lvbnMgcXVvdGVkIHZhbHVlAFBhdXNlZCBieSBvbl9oZWFkZXJzX2NvbXBsZXRlAEludmFsaWQgRU9GIHN0YXRlAG9uX3Jlc2V0IHBhdXNlAG9uX2NodW5rX2hlYWRlciBwYXVzZQBvbl9tZXNzYWdlX2JlZ2luIHBhdXNlAG9uX2NodW5rX2V4dGVuc2lvbl92YWx1ZSBwYXVzZQBvbl9zdGF0dXNfY29tcGxldGUgcGF1c2UAb25fdmVyc2lvbl9jb21wbGV0ZSBwYXVzZQBvbl91cmxfY29tcGxldGUgcGF1c2UAb25fcHJvdG9jb2xfY29tcGxldGUgcGF1c2UAb25fY2h1bmtfY29tcGxldGUgcGF1c2UAb25faGVhZGVyX3ZhbHVlX2NvbXBsZXRlIHBhdXNlAG9uX21lc3NhZ2VfY29tcGxldGUgcGF1c2UAb25fbWV0aG9kX2NvbXBsZXRlIHBhdXNlAG9uX2hlYWRlcl9maWVsZF9jb21wbGV0ZSBwYXVzZQBvbl9jaHVua19leHRlbnNpb25fbmFtZSBwYXVzZQBVbmV4cGVjdGVkIHNwYWNlIGFmdGVyIHN0YXJ0IGxpbmUATWlzc2luZyBleHBlY3RlZCBDUiBhZnRlciByZXNwb25zZSBsaW5lAFNwYW4gY2FsbGJhY2sgZXJyb3IgaW4gb25fY2h1bmtfZXh0ZW5zaW9uX25hbWUASW52YWxpZCBjaGFyYWN0ZXIgaW4gY2h1bmsgZXh0ZW5zaW9ucyBuYW1lAE1pc3NpbmcgZXhwZWN0ZWQgQ1IgYWZ0ZXIgY2h1bmsgZXh0ZW5zaW9uIG5hbWUASW52YWxpZCBzdGF0dXMgY29kZQBQYXVzZSBvbiBDT05ORUNUL1VwZ3JhZGUAUGF1c2Ugb24gUFJJL1VwZ3JhZGUARXhwZWN0ZWQgSFRUUC8yIENvbm5lY3Rpb24gUHJlZmFjZQBTcGFuIGNhbGxiYWNrIGVycm9yIGluIG9uX21ldGhvZABFeHBlY3RlZCBzcGFjZSBhZnRlciBtZXRob2QAU3BhbiBjYWxsYmFjayBlcnJvciBpbiBvbl9oZWFkZXJfZmllbGQAUGF1c2VkAEludmFsaWQgd29yZCBlbmNvdW50ZXJlZABJbnZhbGlkIG1ldGhvZCBlbmNvdW50ZXJlZABNaXNzaW5nIGV4cGVjdGVkIENSIGFmdGVyIGNodW5rIGRhdGEARXhwZWN0ZWQgTEYgYWZ0ZXIgY2h1bmsgZGF0YQBVbmV4cGVjdGVkIGNoYXIgaW4gdXJsIHNjaGVtYQBSZXF1ZXN0IGhhcyBpbnZhbGlkIGBUcmFuc2Zlci1FbmNvZGluZ2AARGF0YSBhZnRlciBgQ29ubmVjdGlvbjogY2xvc2VgAFNXSVRDSF9QUk9YWQBVU0VfUFJPWFkATUtBQ1RJVklUWQBVTlBST0NFU1NBQkxFX0VOVElUWQBRVUVSWQBDT1BZAE1PVkVEX1BFUk1BTkVOVExZAFRPT19FQVJMWQBOT1RJRlkARkFJTEVEX0RFUEVOREVOQ1kAQkFEX0dBVEVXQVkAUExBWQBQVVQAQ0hFQ0tPVVQAR0FURVdBWV9USU1FT1VUAFJFUVVFU1RfVElNRU9VVABORVRXT1JLX0NPTk5FQ1RfVElNRU9VVABDT05ORUNUSU9OX1RJTUVPVVQATE9HSU5fVElNRU9VVABORVRXT1JLX1JFQURfVElNRU9VVABQT1NUAE1JU0RJUkVDVEVEX1JFUVVFU1QAQ0xJRU5UX0NMT1NFRF9SRVFVRVNUAENMSUVOVF9DTE9TRURfTE9BRF9CQUxBTkNFRF9SRVFVRVNUAEJBRF9SRVFVRVNUAEhUVFBfUkVRVUVTVF9TRU5UX1RPX0hUVFBTX1BPUlQAUkVQT1JUAElNX0FfVEVBUE9UAFJFU0VUX0NPTlRFTlQATk9fQ09OVEVOVABQQVJUSUFMX0NPTlRFTlQASFBFX0lOVkFMSURfQ09OU1RBTlQASFBFX0NCX1JFU0VUAEdFVABIUEVfU1RSSUNUAENPTkZMSUNUAFRFTVBPUkFSWV9SRURJUkVDVABQRVJNQU5FTlRfUkVESVJFQ1QAQ09OTkVDVABNVUxUSV9TVEFUVVMASFBFX0lOVkFMSURfU1RBVFVTAFRPT19NQU5ZX1JFUVVFU1RTAEVBUkxZX0hJTlRTAFVOQVZBSUxBQkxFX0ZPUl9MRUdBTF9SRUFTT05TAE9QVElPTlMAU1dJVENISU5HX1BST1RPQ09MUwBWQVJJQU5UX0FMU09fTkVHT1RJQVRFUwBNVUxUSVBMRV9DSE9JQ0VTAElOVEVSTkFMX1NFUlZFUl9FUlJPUgBXRUJfU0VSVkVSX1VOS05PV05fRVJST1IAUkFJTEdVTl9FUlJPUgBJREVOVElUWV9QUk9WSURFUl9BVVRIRU5USUNBVElPTl9FUlJPUgBTU0xfQ0VSVElGSUNBVEVfRVJST1IASU5WQUxJRF9YX0ZPUldBUkRFRF9GT1IAU0VUX1BBUkFNRVRFUgBHRVRfUEFSQU1FVEVSAEhQRV9VU0VSAFNFRV9PVEhFUgBIUEVfQ0JfQ0hVTktfSEVBREVSAEV4cGVjdGVkIExGIGFmdGVyIENSAE1LQ0FMRU5EQVIAU0VUVVAAV0VCX1NFUlZFUl9JU19ET1dOAFRFQVJET1dOAEhQRV9DTE9TRURfQ09OTkVDVElPTgBIRVVSSVNUSUNfRVhQSVJBVElPTgBESVNDT05ORUNURURfT1BFUkFUSU9OAE5PTl9BVVRIT1JJVEFUSVZFX0lORk9STUFUSU9OAEhQRV9JTlZBTElEX1ZFUlNJT04ASFBFX0NCX01FU1NBR0VfQkVHSU4AU0lURV9JU19GUk9aRU4ASFBFX0lOVkFMSURfSEVBREVSX1RPS0VOAElOVkFMSURfVE9LRU4ARk9SQklEREVOAEVOSEFOQ0VfWU9VUl9DQUxNAEhQRV9JTlZBTElEX1VSTABCTE9DS0VEX0JZX1BBUkVOVEFMX0NPTlRST0wATUtDT0wAQUNMAEhQRV9JTlRFUk5BTABSRVFVRVNUX0hFQURFUl9GSUVMRFNfVE9PX0xBUkdFX1VOT0ZGSUNJQUwASFBFX09LAFVOTElOSwBVTkxPQ0sAUFJJAFJFVFJZX1dJVEgASFBFX0lOVkFMSURfQ09OVEVOVF9MRU5HVEgASFBFX1VORVhQRUNURURfQ09OVEVOVF9MRU5HVEgARkxVU0gAUFJPUFBBVENIAE0tU0VBUkNIAFVSSV9UT09fTE9ORwBQUk9DRVNTSU5HAE1JU0NFTExBTkVPVVNfUEVSU0lTVEVOVF9XQVJOSU5HAE1JU0NFTExBTkVPVVNfV0FSTklORwBIUEVfSU5WQUxJRF9UUkFOU0ZFUl9FTkNPRElORwBFeHBlY3RlZCBDUkxGAEhQRV9JTlZBTElEX0NIVU5LX1NJWkUATU9WRQBDT05USU5VRQBIUEVfQ0JfU1RBVFVTX0NPTVBMRVRFAEhQRV9DQl9IRUFERVJTX0NPTVBMRVRFAEhQRV9DQl9WRVJTSU9OX0NPTVBMRVRFAEhQRV9DQl9VUkxfQ09NUExFVEUASFBFX0NCX1BST1RPQ09MX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19DT01QTEVURQBIUEVfQ0JfSEVBREVSX1ZBTFVFX0NPTVBMRVRFAEhQRV9DQl9DSFVOS19FWFRFTlNJT05fVkFMVUVfQ09NUExFVEUASFBFX0NCX0NIVU5LX0VYVEVOU0lPTl9OQU1FX0NPTVBMRVRFAEhQRV9DQl9NRVNTQUdFX0NPTVBMRVRFAEhQRV9DQl9NRVRIT0RfQ09NUExFVEUASFBFX0NCX0hFQURFUl9GSUVMRF9DT01QTEVURQBERUxFVEUASFBFX0lOVkFMSURfRU9GX1NUQVRFAElOVkFMSURfU1NMX0NFUlRJRklDQVRFAFBBVVNFAE5PX1JFU1BPTlNFAFVOU1VQUE9SVEVEX01FRElBX1RZUEUAR09ORQBOT1RfQUNDRVBUQUJMRQBTRVJWSUNFX1VOQVZBSUxBQkxFAFJBTkdFX05PVF9TQVRJU0ZJQUJMRQBPUklHSU5fSVNfVU5SRUFDSEFCTEUAUkVTUE9OU0VfSVNfU1RBTEUAUFVSR0UATUVSR0UAUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRQBSRVFVRVNUX0hFQURFUl9UT09fTEFSR0UAUEFZTE9BRF9UT09fTEFSR0UASU5TVUZGSUNJRU5UX1NUT1JBR0UASFBFX1BBVVNFRF9VUEdSQURFAEhQRV9QQVVTRURfSDJfVVBHUkFERQBTT1VSQ0UAQU5OT1VOQ0UAVFJBQ0UASFBFX1VORVhQRUNURURfU1BBQ0UAREVTQ1JJQkUAVU5TVUJTQ1JJQkUAUkVDT1JEAEhQRV9JTlZBTElEX01FVEhPRABOT1RfRk9VTkQAUFJPUEZJTkQAVU5CSU5EAFJFQklORABVTkFVVEhPUklaRUQATUVUSE9EX05PVF9BTExPV0VEAEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEAEFMUkVBRFlfUkVQT1JURUQAQUNDRVBURUQATk9UX0lNUExFTUVOVEVEAExPT1BfREVURUNURUQASFBFX0NSX0VYUEVDVEVEAEhQRV9MRl9FWFBFQ1RFRABDUkVBVEVEAElNX1VTRUQASFBFX1BBVVNFRABUSU1FT1VUX09DQ1VSRUQAUEFZTUVOVF9SRVFVSVJFRABQUkVDT05ESVRJT05fUkVRVUlSRUQAUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQATkVUV09SS19BVVRIRU5USUNBVElPTl9SRVFVSVJFRABMRU5HVEhfUkVRVUlSRUQAU1NMX0NFUlRJRklDQVRFX1JFUVVJUkVEAFVQR1JBREVfUkVRVUlSRUQAUEFHRV9FWFBJUkVEAFBSRUNPTkRJVElPTl9GQUlMRUQARVhQRUNUQVRJT05fRkFJTEVEAFJFVkFMSURBVElPTl9GQUlMRUQAU1NMX0hBTkRTSEFLRV9GQUlMRUQATE9DS0VEAFRSQU5TRk9STUFUSU9OX0FQUExJRUQATk9UX01PRElGSUVEAE5PVF9FWFRFTkRFRABCQU5EV0lEVEhfTElNSVRfRVhDRUVERUQAU0lURV9JU19PVkVSTE9BREVEAEhFQUQARXhwZWN0ZWQgSFRUUC8sIFJUU1AvIG9yIElDRS8A5xUAAK8VAACkEgAAkhoAACYWAACeFAAA2xkAAHkVAAB+EgAA/hQAADYVAAALFgAA2BYAAPMSAABCGAAArBYAABIVAAAUFwAA7xcAAEgUAABxFwAAshoAAGsZAAB+GQAANRQAAIIaAABEFwAA/RYAAB4YAACHFwAAqhkAAJMSAAAHGAAALBcAAMoXAACkFwAA5xUAAOcVAABYFwAAOxgAAKASAAAtHAAAwxEAAEgRAADeEgAAQhMAAKQZAAD9EAAA9xUAAKUVAADvFgAA+BkAAEoWAABWFgAA9RUAAAoaAAAIGgAAARoAAKsVAABCEgAA1xAAAEwRAAAFGQAAVBYAAB4RAADKGQAAyBkAAE4WAAD/GAAAcRQAAPAVAADuFQAAlBkAAPwVAAC/GQAAmxkAAHwUAABDEQAAcBgAAJUUAAAnFAAAGRQAANUSAADUGQAARBYAAPcQAEG5OwsBAQBB0DsL4AEBAQIBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBuj0LBAEAAAIAQdE9C14DBAMDAwMDAAADAwADAwADAwMDAwMDAwMDAAUAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwADAEG6PwsEAQAAAgBB0T8LXgMAAwMDAwMAAAMDAAMDAAMDAwMDAwMDAwMABAAFAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwADAAMAQbDBAAsNbG9zZWVlcC1hbGl2ZQBBycEACwEBAEHgwQAL4AEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBycMACwEBAEHgwwAL5wEBAQEBAQEBAQEBAQECAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAWNodW5rZWQAQfHFAAteAQABAQEBAQAAAQEAAQEAAQEBAQEBAQEBAQAAAAAAAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAQBB0McACyFlY3Rpb25lbnQtbGVuZ3Rob25yb3h5LWNvbm5lY3Rpb24AQYDIAAsgcmFuc2Zlci1lbmNvZGluZ3BncmFkZQ0KDQpTTQ0KDQoAQanIAAsFAQIAAQMAQcDIAAtfBAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanKAAsFAQIAAQMAQcDKAAtfBAUFBgUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAQanMAAsEAQAAAQBBwcwAC14CAgACAgICAgICAgICAgICAgICAgICAgICAgICAgIAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEGpzgALBQECAAEDAEHAzgALXwQFAAAFBQUFBQUFBQUFBQYFBQUFBQUFBQUFBQUABQAHCAUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQAFAAUABQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUAAAAFAEGp0AALBQEBAAEBAEHA0AALAQEAQdrQAAtBAgAAAAAAAAMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAAAAAAAAAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQanSAAsFAQEAAQEAQcDSAAsBAQBBytIACwYCAAAAAAIAQeHSAAs6AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBBoNQAC50BTk9VTkNFRUNLT1VUTkVDVEVURUNSSUJFTFVTSEVURUFEU0VBUkNIUkdFQ1RJVklUWUxFTkRBUlZFT1RJRllQVElPTlNDSFNFQVlTVEFUQ0hHRVVFUllPUkRJUkVDVE9SVFJDSFBBUkFNRVRFUlVSQ0VCU0NSSUJFQVJET1dOQUNFSU5ETktDS1VCU0NSSUJFVFRQQ0VUU1BBRFRQLw==`,a;Object.defineProperty(t,"exports",{get:()=>a||=n.from(i,`base64`)})})),ju=s(((e,t)=>{var n=[`GET`,`HEAD`,`POST`],r=new Set(n),i=[101,204,205,304],a=[301,302,303,307,308],o=new Set(a),s=`1.7.9.11.13.15.17.19.20.21.22.23.25.37.42.43.53.69.77.79.87.95.101.102.103.104.109.110.111.113.115.117.119.123.135.137.139.143.161.179.389.427.465.512.513.514.515.526.530.531.532.540.548.554.556.563.587.601.636.989.990.993.995.1719.1720.1723.2049.3659.4045.4190.5060.5061.6000.6566.6665.6666.6667.6668.6669.6679.6697.10080`.split(`.`),c=new Set(s),l=[`no-referrer`,`no-referrer-when-downgrade`,`same-origin`,`origin`,`strict-origin`,`origin-when-cross-origin`,`strict-origin-when-cross-origin`,`unsafe-url`],u=[``,...l],d=new Set(l),f=[`follow`,`manual`,`error`],p=[`GET`,`HEAD`,`OPTIONS`,`TRACE`,`QUERY`],m=new Set(p),h=[`navigate`,`same-origin`,`no-cors`,`cors`],g=[`omit`,`same-origin`,`include`],_=[`default`,`no-store`,`reload`,`no-cache`,`force-cache`,`only-if-cached`],v=[`content-encoding`,`content-language`,`content-location`,`content-type`,`content-length`],y=[`half`],b=[`CONNECT`,`TRACE`,`TRACK`],x=new Set(b),S=[`audio`,`audioworklet`,`font`,`image`,`manifest`,`paintworklet`,`script`,`style`,`track`,`video`,`xslt`,``];t.exports={subresource:S,forbiddenMethods:b,requestBodyHeader:v,referrerPolicy:u,requestRedirect:f,requestMode:h,requestCredentials:g,requestCache:_,redirectStatus:a,corsSafeListedMethods:n,nullBodyStatus:i,safeMethods:p,badPorts:s,requestDuplex:y,subresourceSet:new Set(S),badPortsSet:c,redirectStatusSet:o,corsSafeListedMethodsSet:r,safeMethodsSet:m,forbiddenMethodsSet:x,referrerPolicyTokens:d}})),Mu=s(((e,t)=>{var n=Symbol.for(`undici.globalOrigin.1`);function r(){return globalThis[n]}function i(e){if(e===void 0){Object.defineProperty(globalThis,n,{value:void 0,writable:!0,enumerable:!1,configurable:!1});return}let t=new URL(e);if(t.protocol!==`http:`&&t.protocol!==`https:`)throw TypeError(`Only http & https urls are allowed, received ${t.protocol}`);Object.defineProperty(globalThis,n,{value:t,writable:!0,enumerable:!1,configurable:!1})}t.exports={getGlobalOrigin:r,setGlobalOrigin:i}})),Nu=s(((e,t)=>{var n=new TextDecoder;function r(e){return e.length===0?``:(e[0]===239&&e[1]===187&&e[2]===191&&(e=e.subarray(3)),n.decode(e))}t.exports={utf8DecodeBytes:r}})),Pu=s(((e,t)=>{var n=r(`node:assert`),{utf8DecodeBytes:i}=Nu();function a(e,t,n){let r=``;for(;n.position<t.length&&e(t[n.position]);)r+=t[n.position],n.position++;return r}function o(e,t,n){let r=t.indexOf(e,n.position),i=n.position;return r===-1?(n.position=t.length,t.slice(i)):(n.position=r,t.slice(i,n.position))}var s=/[\u0009\u000A\u000C\u000D\u0020]/g;function c(e){e=e.replace(s,``);let t=e.length;if(t%4==0&&e.charCodeAt(t-1)===61&&(--t,e.charCodeAt(t-1)===61&&--t),t%4==1||/[^+/0-9A-Za-z]/.test(e.length===t?e:e.substring(0,t)))return`failure`;let n=Buffer.from(e,`base64`);return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}function l(e){return e===9||e===10||e===12||e===13||e===32}function u(e){let t=e.length;if(65535>t)return String.fromCharCode.apply(null,e);let n=``,r=0,i=65535;for(;r<t;)r+i>t&&(i=t-r),n+=String.fromCharCode.apply(null,e.subarray(r,r+=i));return n}var d=/[^\x00-\xFF]/;function f(e){return n(!d.test(e)),e}function p(e){return JSON.parse(i(e))}function m(e,t=!0,n=!0){return h(e,t,n,l)}function h(e,t,n,r){let i=0,a=e.length-1;if(t)for(;i<e.length&&r(e.charCodeAt(i));)i++;if(n)for(;a>0&&r(e.charCodeAt(a));)a--;return i===0&&a===e.length-1?e:e.slice(i,a+1)}function g(e){let t=JSON.stringify(e);if(t===void 0)throw TypeError(`Value is not JSON serializable`);return n(typeof t==`string`),t}t.exports={collectASequenceOfCodePoints:a,collectASequenceOfCodePointsFast:o,forgivingBase64:c,isASCIIWhitespace:l,isomorphicDecode:u,isomorphicEncode:f,parseJSONFromBytes:p,removeASCIIWhitespace:m,removeChars:h,serializeJavascriptValueToJSONString:g}})),Fu=s(((e,t)=>{var n=r(`node:assert`),{forgivingBase64:i,collectASequenceOfCodePoints:a,collectASequenceOfCodePointsFast:o,isomorphicDecode:s,removeASCIIWhitespace:c,removeChars:l}=Pu(),u=new TextEncoder,d=/^[-!#$%&'*+.^_|~A-Za-z0-9]+$/u,f=/[\u000A\u000D\u0009\u0020]/u,p=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/u;function m(e){n(e.protocol===`data:`);let t=h(e,!0);t=t.slice(5);let r={position:0},a=o(`,`,t,r),l=a.length;if(a=c(a,!0,!0),r.position>=t.length)return`failure`;r.position++;let u=g(t.slice(l+1));if(/;(?:\u0020*)base64$/iu.test(a)){if(u=i(s(u)),u===`failure`)return`failure`;a=a.slice(0,-6),a=a.replace(/(\u0020+)$/u,``),a=a.slice(0,-1)}a.startsWith(`;`)&&(a=`text/plain`+a);let d=b(a);return d===`failure`&&(d=b(`text/plain;charset=US-ASCII`)),{mimeType:d,body:u}}function h(e,t=!1){if(!t)return e.href;let n=e.href,r=e.hash.length,i=r===0?n:n.substring(0,n.length-r);return!r&&n.endsWith(`#`)?i.slice(0,-1):i}function g(e){return y(u.encode(e))}function _(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function v(e){return e>=48&&e<=57?e-48:(e&223)-55}function y(e){let t=e.length,n=new Uint8Array(t),r=0,i=0;for(;i<t;){let t=e[i];t===37?t===37&&!(_(e[i+1])&&_(e[i+2]))?n[r++]=37:(n[r++]=v(e[i+1])<<4|v(e[i+2]),i+=2):n[r++]=t,++i}return t===r?n:n.subarray(0,r)}function b(e){e=w(e,!0,!0);let t={position:0},n=o(`/`,e,t);if(n.length===0||!d.test(n)||t.position>=e.length)return`failure`;t.position++;let r=o(`;`,e,t);if(r=w(r,!1,!0),r.length===0||!d.test(r))return`failure`;let i=n.toLowerCase(),s=r.toLowerCase(),c={type:i,subtype:s,parameters:new Map,essence:`${i}/${s}`};for(;t.position<e.length;){t.position++,a(e=>f.test(e),e,t);let n=a(e=>e!==`;`&&e!==`=`,e,t);if(n=n.toLowerCase(),t.position<e.length){if(e[t.position]===`;`)continue;t.position++}if(t.position>=e.length)break;let r=null;if(e[t.position]===`"`)r=x(e,t,!0),o(`;`,e,t);else if(r=o(`;`,e,t),r=w(r,!1,!0),r.length===0)continue;n.length!==0&&d.test(n)&&(r.length===0||p.test(r))&&!c.parameters.has(n)&&c.parameters.set(n,r)}return c}function x(e,t,r=!1){let i=t.position,o=``;for(n(e[t.position]===`"`),t.position++;o+=a(e=>e!==`"`&&e!==`\\`,e,t),!(t.position>=e.length);){let r=e[t.position];if(t.position++,r===`\\`){if(t.position>=e.length){o+=`\\`;break}o+=e[t.position],t.position++}else{n(r===`"`);break}}return r?o:e.slice(i,t.position)}function S(e){n(e!==`failure`);let{parameters:t,essence:r}=e,i=r;for(let[e,n]of t.entries())i+=`;`,i+=e,i+=`=`,d.test(n)||(n=n.replace(/[\\"]/gu,`\\$&`),n=`"`+n,n+=`"`),i+=n;return i}function C(e){return e===13||e===10||e===9||e===32}function w(e,t=!0,n=!0){return l(e,t,n,C)}function T(e){switch(e.essence){case`application/ecmascript`:case`application/javascript`:case`application/x-ecmascript`:case`application/x-javascript`:case`text/ecmascript`:case`text/javascript`:case`text/javascript1.0`:case`text/javascript1.1`:case`text/javascript1.2`:case`text/javascript1.3`:case`text/javascript1.4`:case`text/javascript1.5`:case`text/jscript`:case`text/livescript`:case`text/x-ecmascript`:case`text/x-javascript`:return`text/javascript`;case`application/json`:case`text/json`:return`application/json`;case`image/svg+xml`:return`image/svg+xml`;case`text/xml`:case`application/xml`:return`application/xml`}return e.subtype.endsWith(`+json`)?`application/json`:e.subtype.endsWith(`+xml`)?`application/xml`:``}t.exports={dataURLProcessor:m,URLSerializer:h,stringPercentDecode:g,parseMIMEType:b,collectAnHTTPQuotedString:x,serializeAMimeType:S,removeHTTPWhitespace:w,minimizeSupportedMimeType:T,HTTP_TOKEN_CODEPOINTS:d}})),Iu=s(((e,t)=>{var n=r(`node:assert`),{types:i,inspect:a}=r(`node:util`),{markAsUncloneable:o}=r(`node:worker_threads`),s=1,c=2,l=3,u=4,d=5,f=6,p=7,m=8,h=Function.call.bind(Function.prototype[Symbol.hasInstance]),g={converters:{},util:{},errors:{},is:{}};g.errors.exception=function(e){return TypeError(`${e.header}: ${e.message}`)},g.errors.conversionFailed=function(e){let t=e.types.length===1?``:` one of`,n=`${e.argument} could not be converted to${t}: ${e.types.join(`, `)}.`;return g.errors.exception({header:e.prefix,message:n})},g.errors.invalidArgument=function(e){return g.errors.exception({header:e.prefix,message:`"${e.value}" is an invalid ${e.type}.`})},g.brandCheck=function(e,t){if(!h(t,e)){let e=TypeError(`Illegal invocation`);throw e.code=`ERR_INVALID_THIS`,e}},g.brandCheckMultiple=function(e){let t=e.map(e=>g.util.MakeTypeAssertion(e));return e=>{if(t.every(t=>!t(e))){let e=TypeError(`Illegal invocation`);throw e.code=`ERR_INVALID_THIS`,e}}},g.argumentLengthCheck=function({length:e},t,n){if(e<t)throw g.errors.exception({message:`${t} argument${t===1?``:`s`} required, but${e?` only`:``} ${e} found.`,header:n})},g.illegalConstructor=function(){throw g.errors.exception({header:`TypeError`,message:`Illegal constructor`})},g.util.MakeTypeAssertion=function(e){return t=>h(e,t)},g.util.Type=function(e){switch(typeof e){case`undefined`:return s;case`boolean`:return c;case`string`:return l;case`symbol`:return u;case`number`:return d;case`bigint`:return f;case`function`:case`object`:return e===null?p:m}},g.util.Types={UNDEFINED:s,BOOLEAN:c,STRING:l,SYMBOL:u,NUMBER:d,BIGINT:f,NULL:p,OBJECT:m},g.util.TypeValueToString=function(e){switch(g.util.Type(e)){case s:return`Undefined`;case c:return`Boolean`;case l:return`String`;case u:return`Symbol`;case d:return`Number`;case f:return`BigInt`;case p:return`Null`;case m:return`Object`}},g.util.markAsUncloneable=o,g.util.ConvertToInt=function(e,t,n,r){let i,a;t===64?(i=2**53-1,a=n===`unsigned`?0:(-2)**53+1):n===`unsigned`?(a=0,i=2**t-1):(a=-(2**(t-1)),i=2**(t-1)-1);let o=Number(e);if(o===0&&(o=0),g.util.HasFlag(r,g.attributes.EnforceRange)){if(Number.isNaN(o)||o===1/0||o===-1/0)throw g.errors.exception({header:`Integer conversion`,message:`Could not convert ${g.util.Stringify(e)} to an integer.`});if(o=g.util.IntegerPart(o),o<a||o>i)throw g.errors.exception({header:`Integer conversion`,message:`Value must be between ${a}-${i}, got ${o}.`});return o}return!Number.isNaN(o)&&g.util.HasFlag(r,g.attributes.Clamp)?(o=Math.min(Math.max(o,a),i),o=Math.floor(o)%2==0?Math.floor(o):Math.ceil(o),o):Number.isNaN(o)||o===0&&Object.is(0,o)||o===1/0||o===-1/0?0:(o=g.util.IntegerPart(o),o%=2**t,n===`signed`&&o>=2**(t-1)?o-2**t:o)},g.util.IntegerPart=function(e){let t=Math.floor(Math.abs(e));return e<0?-1*t:t},g.util.Stringify=function(e){switch(g.util.Type(e)){case u:return`Symbol(${e.description})`;case m:return a(e);case l:return`"${e}"`;case f:return`${e}n`;default:return`${e}`}},g.util.IsResizableArrayBuffer=function(e){if(i.isArrayBuffer(e))return e.resizable;if(i.isSharedArrayBuffer(e))return e.growable;throw g.errors.exception({header:`IsResizableArrayBuffer`,message:`"${g.util.Stringify(e)}" is not an array buffer.`})},g.util.HasFlag=function(e,t){return typeof e==`number`&&(e&t)===t},g.sequenceConverter=function(e){return(t,n,r,i)=>{if(g.util.Type(t)!==m)throw g.errors.exception({header:n,message:`${r} (${g.util.Stringify(t)}) is not iterable.`});let a=typeof i==`function`?i():t?.[Symbol.iterator]?.(),o=[],s=0;if(a===void 0||typeof a.next!=`function`)throw g.errors.exception({header:n,message:`${r} is not iterable.`});for(;;){let{done:t,value:i}=a.next();if(t)break;o.push(e(i,n,`${r}[${s++}]`))}return o}},g.recordConverter=function(e,t){return(n,r,a)=>{if(g.util.Type(n)!==m)throw g.errors.exception({header:r,message:`${a} ("${g.util.TypeValueToString(n)}") is not an Object.`});let o={};if(!i.isProxy(n)){let i=[...Object.getOwnPropertyNames(n),...Object.getOwnPropertySymbols(n)];for(let s of i){let i=g.util.Stringify(s),c=e(s,r,`Key ${i} in ${a}`);o[c]=t(n[s],r,`${a}[${i}]`)}return o}let s=Reflect.ownKeys(n);for(let i of s)if(Reflect.getOwnPropertyDescriptor(n,i)?.enumerable){let s=e(i,r,a);o[s]=t(n[i],r,a)}return o}},g.interfaceConverter=function(e,t){return(n,r,i)=>{if(!e(n))throw g.errors.exception({header:r,message:`Expected ${i} ("${g.util.Stringify(n)}") to be an instance of ${t}.`});return n}},g.dictionaryConverter=function(e){return e.sort((e,t)=>(e.key>t.key)-(e.key<t.key)),(t,n,r)=>{let i={};if(t!=null&&g.util.Type(t)!==m)throw g.errors.exception({header:n,message:`Expected ${t} to be one of: Null, Undefined, Object.`});for(let a of e){let{key:e,defaultValue:o,required:s,converter:c}=a;if(s===!0&&(t==null||!Object.hasOwn(t,e)))throw g.errors.exception({header:n,message:`Missing required key "${e}".`});let l=t?.[e],u=o!==void 0;if(u&&l===void 0&&(l=o()),s||u||l!==void 0){if(l=c(l,n,`${r}.${e}`),a.allowedValues&&!a.allowedValues.includes(l))throw g.errors.exception({header:n,message:`${l} is not an accepted type. Expected one of ${a.allowedValues.join(`, `)}.`});i[e]=l}}return i}},g.nullableConverter=function(e){return(t,n,r)=>t===null?t:e(t,n,r)},g.is.USVString=function(e){return typeof e==`string`&&e.isWellFormed()},g.is.ReadableStream=g.util.MakeTypeAssertion(ReadableStream),g.is.Blob=g.util.MakeTypeAssertion(Blob),g.is.URLSearchParams=g.util.MakeTypeAssertion(URLSearchParams),g.is.File=g.util.MakeTypeAssertion(File),g.is.URL=g.util.MakeTypeAssertion(URL),g.is.AbortSignal=g.util.MakeTypeAssertion(AbortSignal),g.is.MessagePort=g.util.MakeTypeAssertion(MessagePort),g.is.BufferSource=function(e){return i.isArrayBuffer(e)||ArrayBuffer.isView(e)&&i.isArrayBuffer(e.buffer)},g.util.getCopyOfBytesHeldByBufferSource=function(e){let t=e,r=t,a=0,o=0;if(i.isTypedArray(t)||i.isDataView(t)?(r=t.buffer,a=t.byteOffset,o=t.byteLength):(n(i.isAnyArrayBuffer(t)),o=t.byteLength),r.detached)return new Uint8Array;let s=new Uint8Array(o),c=new Uint8Array(r,a,o);return s.set(c),s},g.converters.DOMString=function(e,t,n,r){if(e===null&&g.util.HasFlag(r,g.attributes.LegacyNullToEmptyString))return``;if(typeof e==`symbol`)throw g.errors.exception({header:t,message:`${n} is a symbol, which cannot be converted to a DOMString.`});return String(e)},g.converters.ByteString=function(e,t,n){if(typeof e==`symbol`)throw g.errors.exception({header:t,message:`${n} is a symbol, which cannot be converted to a ByteString.`});let r=String(e);for(let e=0;e<r.length;e++)if(r.charCodeAt(e)>255)throw TypeError(`Cannot convert argument to a ByteString because the character at index ${e} has a value of ${r.charCodeAt(e)} which is greater than 255.`);return r},g.converters.USVString=function(e){return typeof e==`string`?e.toWellFormed():`${e}`.toWellFormed()},g.converters.boolean=function(e){return!!e},g.converters.any=function(e){return e},g.converters[`long long`]=function(e,t,n){return g.util.ConvertToInt(e,64,`signed`,0,t,n)},g.converters[`unsigned long long`]=function(e,t,n){return g.util.ConvertToInt(e,64,`unsigned`,0,t,n)},g.converters[`unsigned long`]=function(e,t,n){return g.util.ConvertToInt(e,32,`unsigned`,0,t,n)},g.converters[`unsigned short`]=function(e,t,n,r){return g.util.ConvertToInt(e,16,`unsigned`,r,t,n)},g.converters.ArrayBuffer=function(e,t,n,r){if(g.util.Type(e)!==m||!i.isArrayBuffer(e))throw g.errors.conversionFailed({prefix:t,argument:`${n} ("${g.util.Stringify(e)}")`,types:[`ArrayBuffer`]});if(!g.util.HasFlag(r,g.attributes.AllowResizable)&&g.util.IsResizableArrayBuffer(e))throw g.errors.exception({header:t,message:`${n} cannot be a resizable ArrayBuffer.`});return e},g.converters.SharedArrayBuffer=function(e,t,n,r){if(g.util.Type(e)!==m||!i.isSharedArrayBuffer(e))throw g.errors.conversionFailed({prefix:t,argument:`${n} ("${g.util.Stringify(e)}")`,types:[`SharedArrayBuffer`]});if(!g.util.HasFlag(r,g.attributes.AllowResizable)&&g.util.IsResizableArrayBuffer(e))throw g.errors.exception({header:t,message:`${n} cannot be a resizable SharedArrayBuffer.`});return e},g.converters.TypedArray=function(e,t,n,r,a){if(g.util.Type(e)!==m||!i.isTypedArray(e)||e.constructor.name!==t.name)throw g.errors.conversionFailed({prefix:n,argument:`${r} ("${g.util.Stringify(e)}")`,types:[t.name]});if(!g.util.HasFlag(a,g.attributes.AllowShared)&&i.isSharedArrayBuffer(e.buffer))throw g.errors.exception({header:n,message:`${r} cannot be a view on a shared array buffer.`});if(!g.util.HasFlag(a,g.attributes.AllowResizable)&&g.util.IsResizableArrayBuffer(e.buffer))throw g.errors.exception({header:n,message:`${r} cannot be a view on a resizable array buffer.`});return e},g.converters.DataView=function(e,t,n,r){if(g.util.Type(e)!==m||!i.isDataView(e))throw g.errors.conversionFailed({prefix:t,argument:`${n} ("${g.util.Stringify(e)}")`,types:[`DataView`]});if(!g.util.HasFlag(r,g.attributes.AllowShared)&&i.isSharedArrayBuffer(e.buffer))throw g.errors.exception({header:t,message:`${n} cannot be a view on a shared array buffer.`});if(!g.util.HasFlag(r,g.attributes.AllowResizable)&&g.util.IsResizableArrayBuffer(e.buffer))throw g.errors.exception({header:t,message:`${n} cannot be a view on a resizable array buffer.`});return e},g.converters.ArrayBufferView=function(e,t,n,r){if(g.util.Type(e)!==m||!i.isArrayBufferView(e))throw g.errors.conversionFailed({prefix:t,argument:`${n} ("${g.util.Stringify(e)}")`,types:[`ArrayBufferView`]});if(!g.util.HasFlag(r,g.attributes.AllowShared)&&i.isSharedArrayBuffer(e.buffer))throw g.errors.exception({header:t,message:`${n} cannot be a view on a shared array buffer.`});if(!g.util.HasFlag(r,g.attributes.AllowResizable)&&g.util.IsResizableArrayBuffer(e.buffer))throw g.errors.exception({header:t,message:`${n} cannot be a view on a resizable array buffer.`});return e},g.converters.BufferSource=function(e,t,n,r){if(i.isArrayBuffer(e))return g.converters.ArrayBuffer(e,t,n,r);if(i.isArrayBufferView(e))return r&=~g.attributes.AllowShared,g.converters.ArrayBufferView(e,t,n,r);throw i.isSharedArrayBuffer(e)?g.errors.exception({header:t,message:`${n} cannot be a SharedArrayBuffer.`}):g.errors.conversionFailed({prefix:t,argument:`${n} ("${g.util.Stringify(e)}")`,types:[`ArrayBuffer`,`ArrayBufferView`]})},g.converters.AllowSharedBufferSource=function(e,t,n,r){if(i.isArrayBuffer(e))return g.converters.ArrayBuffer(e,t,n,r);if(i.isSharedArrayBuffer(e))return g.converters.SharedArrayBuffer(e,t,n,r);if(i.isArrayBufferView(e))return r|=g.attributes.AllowShared,g.converters.ArrayBufferView(e,t,n,r);throw g.errors.conversionFailed({prefix:t,argument:`${n} ("${g.util.Stringify(e)}")`,types:[`ArrayBuffer`,`SharedArrayBuffer`,`ArrayBufferView`]})},g.converters[`sequence<ByteString>`]=g.sequenceConverter(g.converters.ByteString),g.converters[`sequence<sequence<ByteString>>`]=g.sequenceConverter(g.converters[`sequence<ByteString>`]),g.converters[`record<ByteString, ByteString>`]=g.recordConverter(g.converters.ByteString,g.converters.ByteString),g.converters.Blob=g.interfaceConverter(g.is.Blob,`Blob`),g.converters.AbortSignal=g.interfaceConverter(g.is.AbortSignal,`AbortSignal`),g.converters.EventHandlerNonNull=function(e){return g.util.Type(e)===m?typeof e==`function`?e:()=>{}:null},g.attributes={Clamp:1,EnforceRange:2,AllowShared:4,AllowResizable:8,LegacyNullToEmptyString:16},t.exports={webidl:g}})),Lu=s(((e,t)=>{var{Transform:n}=r(`node:stream`),i=r(`node:zlib`),{redirectStatusSet:a,referrerPolicyTokens:o,badPortsSet:s}=ju(),{getGlobalOrigin:c}=Mu(),{collectAnHTTPQuotedString:l,parseMIMEType:u}=Fu(),{performance:d}=r(`node:perf_hooks`),{ReadableStreamFrom:f,isValidHTTPToken:p,normalizedMethodRecordsBase:m}=$(),h=r(`node:assert`),{isUint8Array:g}=r(`node:util/types`),{webidl:_}=Iu(),{isomorphicEncode:v,collectASequenceOfCodePoints:y,removeChars:b}=Pu();function x(e){let t=e.urlList,n=t.length;return n===0?null:t[n-1].toString()}function S(e,t){if(!a.has(e.status))return null;let n=e.headersList.get(`location`,!0);return n!==null&&A(n)&&(C(n)||(n=w(n)),n=new URL(n,x(e))),n&&!n.hash&&(n.hash=t),n}function C(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n>126||n<32)return!1}return!0}function w(e){return Buffer.from(e,`binary`).toString(`utf8`)}function T(e){return e.urlList[e.urlList.length-1]}function E(e){let t=T(e);return J(t)&&s.has(t.port)?`blocked`:`allowed`}function D(e){return e instanceof Error||e?.constructor?.name===`Error`||e?.constructor?.name===`DOMException`}function O(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(!(n===9||n>=32&&n<=126||n>=128&&n<=255))return!1}return!0}var k=p;function A(e){return(e[0]===` `||e[0]===` `||e[e.length-1]===` `||e[e.length-1]===` `||e.includes(`
|
|
20
|
+
`)||e.includes(`\r`)||e.includes(`\0`))===!1}function j(e){let t=(e.headersList.get(`referrer-policy`,!0)??``).split(`,`),n=``;if(t.length)for(let e=t.length;e!==0;e--){let r=t[e-1].trim();if(o.has(r)){n=r;break}}return n}function M(e,t){let n=j(t);n!==``&&(e.referrerPolicy=n)}function N(){return`allowed`}function P(){return`success`}function F(){return`success`}function I(e){let t=null;t=e.mode,e.headersList.set(`sec-fetch-mode`,t,!0)}function L(e){let t=e.origin;if(t!==`client`&&t!==void 0){if(e.responseTainting===`cors`||e.mode===`websocket`)e.headersList.append(`origin`,t,!0);else if(e.method!==`GET`&&e.method!==`HEAD`){switch(e.referrerPolicy){case`no-referrer`:t=null;break;case`no-referrer-when-downgrade`:case`strict-origin`:case`strict-origin-when-cross-origin`:e.origin&&he(e.origin)&&!he(T(e))&&(t=null);break;case`same-origin`:ae(e,T(e))||(t=null)}e.headersList.append(`origin`,t,!0)}}}function R(e,t){return e}function z(e,t,n){return!e?.startTime||e.startTime<t?{domainLookupStartTime:t,domainLookupEndTime:t,connectionStartTime:t,connectionEndTime:t,secureConnectionStartTime:t,ALPNNegotiatedProtocol:e?.ALPNNegotiatedProtocol}:{domainLookupStartTime:R(e.domainLookupStartTime,n),domainLookupEndTime:R(e.domainLookupEndTime,n),connectionStartTime:R(e.connectionStartTime,n),connectionEndTime:R(e.connectionEndTime,n),secureConnectionStartTime:R(e.secureConnectionStartTime,n),ALPNNegotiatedProtocol:e.ALPNNegotiatedProtocol}}function ee(e){return R(d.now(),e)}function B(e){return{startTime:e.startTime??0,redirectStartTime:0,redirectEndTime:0,postRedirectStartTime:e.startTime??0,finalServiceWorkerStartTime:0,finalNetworkResponseStartTime:0,finalNetworkRequestStartTime:0,endTime:0,encodedBodySize:0,decodedBodySize:0,finalConnectionTimingInfo:null}}function te(){return{referrerPolicy:`strict-origin-when-cross-origin`}}function V(e){return{referrerPolicy:e.referrerPolicy}}function ne(e){let t=e.referrerPolicy;h(t);let n=null;if(e.referrer===`client`){let e=c();if(!e||e.origin===`null`)return`no-referrer`;n=new URL(e)}else _.is.URL(e.referrer)&&(n=e.referrer);let r=H(n),i=H(n,!0);switch(r.toString().length>4096&&(r=i),t){case`no-referrer`:return`no-referrer`;case`origin`:return i??H(n,!0);case`unsafe-url`:return r;case`strict-origin`:{let t=T(e);return K(r)&&!K(t)?`no-referrer`:i}case`strict-origin-when-cross-origin`:{let t=T(e);return ae(r,t)?r:K(r)&&!K(t)?`no-referrer`:i}case`same-origin`:return ae(e,r)?r:`no-referrer`;case`origin-when-cross-origin`:return ae(e,r)?r:i;case`no-referrer-when-downgrade`:{let t=T(e);return K(r)&&!K(t)?`no-referrer`:r}}}function H(e,t=!1){return h(_.is.URL(e)),e=new URL(e),me(e)?`no-referrer`:(e.username=``,e.password=``,e.hash=``,t===!0&&(e.pathname=``,e.search=``),e)}var U=RegExp.prototype.test.bind(/^127\.(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){2}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)$/),W=RegExp.prototype.test.bind(/^(?:(?:0{1,4}:){7}|(?:0{1,4}:){1,6}:|::)0{0,3}1$/);function G(e){return e.includes(`:`)?(e[0]===`[`&&e[e.length-1]===`]`&&(e=e.slice(1,-1)),W(e)):U(e)}function re(e){return e==null||e===`null`?!1:(e=new URL(e),!!(e.protocol===`https:`||e.protocol===`wss:`||G(e.hostname)||e.hostname===`localhost`||e.hostname===`localhost.`||e.hostname.endsWith(`.localhost`)||e.hostname.endsWith(`.localhost.`)||e.protocol===`file:`))}function K(e){return _.is.URL(e)?e.href===`about:blank`||e.href===`about:srcdoc`||e.protocol===`data:`||e.protocol===`blob:`||re(e.origin):!1}function ie(e){}function ae(e,t){return e.origin===t.origin&&e.origin===`null`||e.protocol===t.protocol&&e.hostname===t.hostname&&e.port===t.port}function oe(e){return e.controller.state===`aborted`}function se(e){return e.controller.state===`aborted`||e.controller.state===`terminated`}function ce(e){return m[e.toLowerCase()]??e}var le=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function ue(e,t,n=0,r=1){class i{#e;#t;#n;constructor(e,t){this.#e=e,this.#t=t,this.#n=0}next(){if(typeof this!=`object`||this===null||!(#e in this))throw TypeError(`'next' called on an object that does not implement interface ${e} Iterator.`);let i=this.#n,a=t(this.#e);if(i>=a.length)return{value:void 0,done:!0};let{[n]:o,[r]:s}=a[i];this.#n=i+1;let c;switch(this.#t){case`key`:c=o;break;case`value`:c=s;break;case`key+value`:c=[o,s]}return{value:c,done:!1}}}return delete i.prototype.constructor,Object.setPrototypeOf(i.prototype,le),Object.defineProperties(i.prototype,{[Symbol.toStringTag]:{writable:!1,enumerable:!1,configurable:!0,value:`${e} Iterator`},next:{writable:!0,enumerable:!0,configurable:!0}}),function(e,t){return new i(e,t)}}function de(e,t,n,r=0,i=1){let a=ue(e,n,r,i),o={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return _.brandCheck(this,t),a(this,`key`)}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return _.brandCheck(this,t),a(this,`value`)}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return _.brandCheck(this,t),a(this,`key+value`)}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(n,r=globalThis){if(_.brandCheck(this,t),_.argumentLengthCheck(arguments,1,`${e}.forEach`),typeof n!=`function`)throw TypeError(`Failed to execute 'forEach' on '${e}': parameter 1 is not of type 'Function'.`);for(let{0:e,1:t}of a(this,`key+value`))n.call(r,t,e,this)}}};return Object.defineProperties(t.prototype,{...o,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:o.entries.value}})}function fe(e,t,n){let r=t,i=n;try{q(e.stream.getReader(),r,i)}catch(e){i(e)}}function pe(e){try{e.close(),e.byobRequest?.respond(0)}catch(e){if(!e.message.includes(`Controller is already closed`)&&!e.message.includes(`ReadableStream is already closed`))throw e}}async function q(e,t,n){try{let r=[],i=0;do{let{done:a,value:o}=await e.read();if(a){t(Buffer.concat(r,i));return}if(!g(o)){n(TypeError(`Received non-Uint8Array chunk`));return}r.push(o),i+=o.length}while(1)}catch(e){n(e)}}function me(e){h(`protocol`in e);let t=e.protocol;return t===`about:`||t===`blob:`||t===`data:`}function he(e){return typeof e==`string`&&e[5]===`:`&&e[0]===`h`&&e[1]===`t`&&e[2]===`t`&&e[3]===`p`&&e[4]===`s`||e.protocol===`https:`}function J(e){h(`protocol`in e);let t=e.protocol;return t===`http:`||t===`https:`}function ge(e,t){let n=e;if(!n.startsWith(`bytes`))return`failure`;let r={position:5};if(t&&y(e=>e===` `||e===` `,n,r),n.charCodeAt(r.position)!==61)return`failure`;r.position++,t&&y(e=>e===` `||e===` `,n,r);let i=y(e=>{let t=e.charCodeAt(0);return t>=48&&t<=57},n,r),a=i.length?Number(i):null;if(t&&y(e=>e===` `||e===` `,n,r),n.charCodeAt(r.position)!==45)return`failure`;r.position++,t&&y(e=>e===` `||e===` `,n,r);let o=y(e=>{let t=e.charCodeAt(0);return t>=48&&t<=57},n,r),s=o.length?Number(o):null;return r.position<n.length||s===null&&a===null||a!==null&&s!==null&&a>s?`failure`:{rangeStartValue:a,rangeEndValue:s}}function _e(e,t,n){let r=`bytes `;return r+=v(`${e}`),r+=`-`,r+=v(`${t}`),r+=`/`,r+=v(`${n}`),r}var ve=class extends n{#e;constructor(e){super(),this.#e=e}_transform(e,t,n){if(!this._inflateStream){if(e.length===0){n();return}this._inflateStream=(e[0]&15)==8?i.createInflate(this.#e):i.createInflateRaw(this.#e),this._inflateStream.on(`data`,this.push.bind(this)),this._inflateStream.on(`end`,()=>this.push(null)),this._inflateStream.on(`error`,e=>this.destroy(e))}this._inflateStream.write(e,t,n)}_final(e){this._inflateStream&&=(this._inflateStream.end(),null),e()}};function Y(e){return new ve(e)}function ye(e){let t=null,n=null,r=null,i=xe(`content-type`,e);if(i===null)return`failure`;for(let e of i){let i=u(e);i!==`failure`&&i.essence!==`*/*`&&(r=i,r.essence===n?!r.parameters.has(`charset`)&&t!==null&&r.parameters.set(`charset`,t):(t=null,r.parameters.has(`charset`)&&(t=r.parameters.get(`charset`)),n=r.essence))}return r??`failure`}function be(e){let t=e,n={position:0},r=[],i=``;for(;n.position<t.length;){if(i+=y(e=>e!==`"`&&e!==`,`,t,n),n.position<t.length){if(t.charCodeAt(n.position)===34){if(i+=l(t,n),n.position<t.length)continue}else h(t.charCodeAt(n.position)===44),n.position++}i=b(i,!0,!0,e=>e===9||e===32),r.push(i),i=``}return r}function xe(e,t){let n=t.get(e,!0);return n===null?null:be(n)}function Se(e){return!1}function Ce(e){return!!(e.username||e.password)}function we(e){return e!=null&&e!==`client`&&e!==`no-traversable`}var Te=class{get baseUrl(){return c()}get origin(){return this.baseUrl?.origin}policyContainer=te()};t.exports={isAborted:oe,isCancelled:se,isValidEncodedURL:C,ReadableStreamFrom:f,tryUpgradeRequestToAPotentiallyTrustworthyURL:ie,clampAndCoarsenConnectionTimingInfo:z,coarsenedSharedCurrentTime:ee,determineRequestsReferrer:ne,makePolicyContainer:te,clonePolicyContainer:V,appendFetchMetadata:I,appendRequestOriginHeader:L,TAOCheck:F,corsCheck:P,crossOriginResourcePolicyCheck:N,createOpaqueTimingInfo:B,setRequestReferrerPolicyOnRedirect:M,isValidHTTPToken:p,requestBadPort:E,requestCurrentURL:T,responseURL:x,responseLocationURL:S,isURLPotentiallyTrustworthy:K,isValidReasonPhrase:O,sameOrigin:ae,normalizeMethod:ce,iteratorMixin:de,createIterator:ue,isValidHeaderName:k,isValidHeaderValue:A,isErrorLike:D,fullyReadBody:fe,readableStreamClose:pe,urlIsLocal:me,urlHasHttpsScheme:he,urlIsHttpHttpsScheme:J,readAllBytes:q,simpleRangeHeaderValue:ge,buildContentRange:_e,createInflate:Y,extractMimeType:ye,getDecodeSplit:xe,environmentSettingsObject:new class{settingsObject=new Te},isOriginIPPotentiallyTrustworthy:G,hasAuthenticationEntry:Se,includesCredentials:Ce,isTraversableNavigable:we}})),Ru=s(((e,t)=>{var n={__proto__:null,"node:crypto":()=>r(`node:crypto`),"node:sqlite":()=>r(`node:sqlite`)};function i(e){try{return n[e](),!0}catch(e){if(e.code!==`ERR_UNKNOWN_BUILTIN_MODULE`&&e.code!==`ERR_NO_CRYPTO`)throw e;return!1}}var a=[`crypto`,`sqlite`];function o(e){if(a.includes(e))return i(`node:${e}`);throw TypeError(`unknown feature: ${e}`)}var s=new class{#e=new Map;clear(){this.#e.clear()}has(e){return this.#e.get(e)??this.#t(e)}set(e,t){if(a.includes(e)===!1)throw TypeError(`unknown feature: ${e}`);this.#e.set(e,t)}#t(e){let t=o(e);return this.#e.set(e,t),t}};t.exports.runtimeFeatures=s,t.exports.default=s})),zu=s(((e,t)=>{var{iteratorMixin:n}=Lu(),{kEnumerableProperty:i}=$(),{webidl:a}=Iu(),o=r(`node:util`),{runtimeFeatures:s}=Ru(),c=s.has(`crypto`)?r(`node:crypto`).randomInt:e=>Math.floor(Math.random()*e),l=class e{#e=[];#t=null;constructor(e=void 0){if(a.util.markAsUncloneable(this),e!==void 0)throw a.errors.conversionFailed({prefix:`FormData constructor`,argument:`Argument 1`,types:[`undefined`]})}append(t,n,r=void 0){a.brandCheck(this,e);let i=`FormData.append`;a.argumentLengthCheck(arguments,2,i),t=a.converters.USVString(t),arguments.length===3||a.is.Blob(n)?(n=a.converters.Blob(n,i,`value`),r!==void 0&&(r=a.converters.USVString(r))):n=a.converters.USVString(n);let o=p(t,n,r);this.#e.push(o)}delete(t){a.brandCheck(this,e),a.argumentLengthCheck(arguments,1,`FormData.delete`),t=a.converters.USVString(t),this.#e=this.#e.filter(e=>e.name!==t)}get(t){a.brandCheck(this,e),a.argumentLengthCheck(arguments,1,`FormData.get`),t=a.converters.USVString(t);let n=this.#e.findIndex(e=>e.name===t);return n===-1?null:this.#e[n].value}getAll(t){return a.brandCheck(this,e),a.argumentLengthCheck(arguments,1,`FormData.getAll`),t=a.converters.USVString(t),this.#e.filter(e=>e.name===t).map(e=>e.value)}has(t){return a.brandCheck(this,e),a.argumentLengthCheck(arguments,1,`FormData.has`),t=a.converters.USVString(t),this.#e.findIndex(e=>e.name===t)!==-1}set(t,n,r=void 0){a.brandCheck(this,e);let i=`FormData.set`;a.argumentLengthCheck(arguments,2,i),t=a.converters.USVString(t),arguments.length===3||a.is.Blob(n)?(n=a.converters.Blob(n,i,`value`),r!==void 0&&(r=a.converters.USVString(r))):n=a.converters.USVString(n);let o=p(t,n,r),s=this.#e.findIndex(e=>e.name===t);s===-1?this.#e.push(o):this.#e=[...this.#e.slice(0,s),o,...this.#e.slice(s+1).filter(e=>e.name!==t)]}[o.inspect.custom](e,t){let n=this.#e.reduce((e,t)=>(e[t.name]?Array.isArray(e[t.name])?e[t.name].push(t.value):e[t.name]=[e[t.name],t.value]:e[t.name]=t.value,e),{__proto__:null});t.depth??=e,t.colors??=!0;let r=o.formatWithOptions(t,n);return`FormData ${r.slice(r.indexOf(`]`)+2)}`}static getFormDataState(e){return e.#e}static setFormDataState(e,t){e.#e=t}static getFormDataBoundary(e){return e.#t??=`----formdata-undici-0${`${c(1e11)}`.padStart(11,`0`)}`}},{getFormDataState:u,setFormDataState:d,getFormDataBoundary:f}=l;Reflect.deleteProperty(l,`getFormDataState`),Reflect.deleteProperty(l,`setFormDataState`),Reflect.deleteProperty(l,`getFormDataBoundary`),n(`FormData`,l,u,`name`,`value`),Object.defineProperties(l.prototype,{append:i,delete:i,get:i,getAll:i,has:i,set:i,[Symbol.toStringTag]:{value:`FormData`,configurable:!0}});function p(e,t,n){if(typeof t!=`string`&&(a.is.File(t)||(t=new File([t],`blob`,{type:t.type})),n!==void 0)){let e={type:t.type,lastModified:t.lastModified};t=new File([t],n,e)}return{name:e,value:t}}a.is.FormData=a.util.MakeTypeAssertion(l),t.exports={FormData:l,makeEntry:p,setFormDataState:d,getFormDataBoundary:f}})),Bu=s(((e,t)=>{var{bufferToLowerCasedHeaderName:n}=$(),{HTTP_TOKEN_CODEPOINTS:i}=Fu(),{makeEntry:a}=zu(),{webidl:o}=Iu(),s=r(`node:assert`),{isomorphicDecode:c}=Pu(),l=Buffer.from(`--`),u=new TextDecoder,d=new TextDecoder(`utf-8`,{ignoreBOM:!0});function f(e){for(let t=0;t<e.length;++t)if(e.charCodeAt(t)&-128)return!1;return!0}function p(e){let t=e.length;if(t<27||t>70)return!1;for(let n=0;n<t;++n){let t=e.charCodeAt(n);if(!(t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122||t===39||t===45||t===95))return!1}return!0}function m(e,t){s(t!==`failure`&&t.essence===`multipart/form-data`);let n=t.parameters.get(`boundary`);if(n===void 0)throw b(`missing boundary in content-type header`);let r=Buffer.from(`--${n}`,`utf8`),i=[],c={position:0},u=e.indexOf(r);if(u===-1)throw b(`no boundary found in multipart body`);for(c.position=u;;){if(e.subarray(c.position,c.position+r.length).equals(r))c.position+=r.length;else throw b(`expected a value starting with -- and the boundary`);if(y(e,l,c))return i;if(e[c.position]!==13||e[c.position+1]!==10)throw b(`expected CRLF`);c.position+=2;let{name:t,filename:n,contentType:u,encoding:p}=g(e,c);c.position+=2;let m;{let t=e.indexOf(r.subarray(2),c.position);if(t===-1)throw b(`expected boundary after body`);m=e.subarray(c.position,t-4),c.position+=m.length,p===`base64`&&(m=Buffer.from(m.toString(),`base64`))}if(e[c.position]!==13||e[c.position+1]!==10)throw b(`expected CRLF`);c.position+=2;let h;n===null?h=d.decode(Buffer.from(m)):(u??=`text/plain`,f(u)||(u=``),h=new File([m],n,{type:u})),s(o.is.USVString(t)),s(typeof h==`string`&&o.is.USVString(h)||o.is.File(h)),i.push(a(t,h,n))}}function h(e,t){e[t.position]===59&&t.position++,_(e=>e===32||e===9,e,t);let n=_(e=>C(e)&&e!==61&&e!==42,e,t);if(n.length===0)return null;let r=n.toString(`ascii`).toLowerCase(),i=e[t.position]===42;if(i&&t.position++,e[t.position]!==61)return null;t.position++,_(e=>e===32||e===9,e,t);let a;if(i){let n=_(e=>e!==32&&e!==13&&e!==10&&e!==59,e,t);if(n[0]!==117&&n[0]!==85||n[1]!==116&&n[1]!==84||n[2]!==102&&n[2]!==70||n[3]!==45||n[4]!==56)throw b(`unknown encoding, expected utf-8''`);a=decodeURIComponent(u.decode(n.subarray(7)))}else if(e[t.position]===34){t.position++;let n=_(e=>e!==10&&e!==13&&e!==34,e,t);if(e[t.position]!==34)throw b(`Closing quote not found`);t.position++,a=u.decode(n).replace(/%0A/gi,`
|
|
21
|
+
`).replace(/%0D/gi,`\r`).replace(/%22/g,`"`)}else{let n=_(e=>C(e)&&e!==59,e,t);a=u.decode(n)}return{name:r,value:a,extended:i}}function g(e,t){let r=null,a=null,o=null,s=null;for(;;){if(e[t.position]===13&&e[t.position+1]===10){if(r===null)throw b(`header name is null`);return{name:r,filename:a,contentType:o,encoding:s}}let l=_(e=>e!==10&&e!==13&&e!==58,e,t);if(l=v(l,!0,!0,e=>e===9||e===32),!i.test(l.toString()))throw b(`header name does not match the field-name token production`);if(e[t.position]!==58)throw b(`expected :`);switch(t.position++,_(e=>e===32||e===9,e,t),n(l)){case`content-disposition`:{r=a=null;let n=!1;if(_(e=>C(e),e,t).toString(`ascii`).toLowerCase()!==`form-data`)throw b(`expected form-data for content-disposition header`);for(;t.position<e.length&&(e[t.position]!==13||e[t.position+1]!==10);){let i=h(e,t);if(!i)break;i.name===`name`?r=i.value:i.name===`filename`&&(i.extended?(a=i.value,n=!0):n||(a=i.value))}if(r===null)throw b(`name attribute is required in content-disposition header`);break}case`content-type`:{let n=_(e=>e!==10&&e!==13,e,t);n=v(n,!1,!0,e=>e===9||e===32),o=c(n);break}case`content-transfer-encoding`:{let n=_(e=>e!==10&&e!==13,e,t);n=v(n,!1,!0,e=>e===9||e===32),s=c(n);break}default:_(e=>e!==10&&e!==13,e,t)}if(e[t.position]!==13||e[t.position+1]!==10)throw b(`expected CRLF`);t.position+=2}}function _(e,t,n){let r=n.position;for(;r<t.length&&e(t[r]);)++r;return t.subarray(n.position,n.position=r)}function v(e,t,n,r){let i=0,a=e.length-1;if(t)for(;i<e.length&&r(e[i]);)i++;if(n)for(;a>0&&r(e[a]);)a--;return i===0&&a===e.length-1?e:e.subarray(i,a+1)}function y(e,t,n){if(e.length<t.length)return!1;for(let r=0;r<t.length;r++)if(t[r]!==e[n.position+r])return!1;return!0}function b(e){return TypeError(`Failed to parse body as FormData.`,{cause:TypeError(e)})}function x(e){return e<=31||e===127}function S(e){return e===40||e===41||e===60||e===62||e===64||e===44||e===59||e===58||e===92||e===34||e===47||e===91||e===93||e===63||e===61}function C(e){return e<=127&&e!==32&&e!==9&&!x(e)&&!S(e)}t.exports={multipartFormDataParser:m,validateBoundary:p}})),Vu=s(((e,t)=>{var n=$(),{ReadableStreamFrom:i,readableStreamClose:a,fullyReadBody:o,extractMimeType:s}=Lu(),{FormData:c,setFormDataState:l,getFormDataBoundary:u}=zu(),{webidl:d}=Iu(),f=r(`node:assert`),{isErrored:p,isDisturbed:m}=r(`node:stream`),{isUint8Array:h}=r(`node:util/types`),{serializeAMimeType:g}=Fu(),{multipartFormDataParser:_}=Bu(),{parseJSONFromBytes:v}=Pu(),{utf8DecodeBytes:y}=Nu(),{ReadableStreamTee:b}=r(`node:stream/web`),x=new TextEncoder;function S(){}var C=new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&!m(t)&&!p(t)&&t.cancel(`Response object has been garbage collected`).catch(S)});function w(e,t=!1){let r=null,o=null;r=d.is.ReadableStream(e)?e:d.is.Blob(e)?e.stream():new ReadableStream({pull(){},start(e){o=e},cancel(){},type:`bytes`}),f(d.is.ReadableStream(r));let s=null,c=null,l=null,m=null;if(typeof e==`string`)c=e,m=`text/plain;charset=UTF-8`;else if(d.is.URLSearchParams(e))c=e.toString(),m=`application/x-www-form-urlencoded;charset=UTF-8`;else if(d.is.BufferSource(e))c=d.util.getCopyOfBytesHeldByBufferSource(e);else if(d.is.FormData(e)){let t=u(e),n=`--${t}\r\nContent-Disposition: form-data`,r=e=>e.replace(/\n/g,`%0A`).replace(/\r/g,`%0D`).replace(/"/g,`%22`),i=e=>e.replace(/\r?\n|\r/g,`\r
|
|
22
|
+
`),a=[],o=new Uint8Array([13,10]);l=0;let d=!1;for(let[t,s]of e)if(typeof s==`string`){let e=x.encode(n+`; name="${r(i(t))}"\r\n\r\n${i(s)}\r\n`);a.push(e),l+=e.byteLength}else{let e=x.encode(`${n}; name="${r(i(t))}"`+(s.name?`; filename="${r(s.name)}"`:``)+`\r
|
|
23
|
+
Content-Type: ${s.type||`application/octet-stream`}\r\n\r\n`);a.push(e,s,o),typeof s.size==`number`?l+=e.byteLength+s.size+o.byteLength:d=!0}let f=x.encode(`--${t}--\r\n`);a.push(f),l+=f.byteLength,d&&(l=null),c=e,s=async function*(){for(let e of a)e.stream?yield*e.stream():yield e},m=`multipart/form-data; boundary=${t}`}else if(d.is.Blob(e))c=e,l=e.size,e.type&&(m=e.type);else if(typeof e[Symbol.asyncIterator]==`function`){if(t)throw TypeError(`keepalive`);if(n.isDisturbed(e)||e.locked)throw TypeError(`Response body object should not be disturbed or locked`);r=d.is.ReadableStream(e)?e:i(e)}return(typeof c==`string`||h(c))&&(s=()=>(l=typeof c==`string`?Buffer.byteLength(c):c.length,c)),s!=null&&(async()=>{let e=s(),t=e?.[Symbol.asyncIterator]?.();if(t)for await(let e of t){if(p(r))break;e.length&&o.enqueue(new Uint8Array(e))}else e?.length&&!p(r)&&o.enqueue(typeof e==`string`?x.encode(e):new Uint8Array(e));queueMicrotask(()=>a(o))})(),[{stream:r,source:c,length:l},m]}function T(e,t=!1){return d.is.ReadableStream(e)&&(f(!n.isDisturbed(e),`The body has already been consumed.`),f(!e.locked,`The stream is locked.`)),w(e,t)}function E(e){let{0:t,1:n}=b?.(e.stream,!0)??e.stream.tee();return e.stream=t,{stream:n,length:e.length,source:e.source}}function D(e,t){return{blob(){return k(this,e=>{let n=j(t(this));return n===null?n=``:n&&=g(n),new Blob([e],{type:n})},e,t)},arrayBuffer(){return k(this,e=>new Uint8Array(e).buffer,e,t)},text(){return k(this,y,e,t)},json(){return k(this,v,e,t)},formData(){return k(this,e=>{let n=j(t(this));if(n!==null)switch(n.essence){case`multipart/form-data`:{let t=_(e,n),r=new c;return l(r,t),r}case`application/x-www-form-urlencoded`:{let t=new URLSearchParams(e.toString()),n=new c;for(let[e,r]of t)n.append(e,r);return n}}throw TypeError(`Content-Type was not one of "multipart/form-data" or "application/x-www-form-urlencoded".`)},e,t)},bytes(){return k(this,e=>new Uint8Array(e),e,t)},textStream(){let e=t(this);if(A(e))throw TypeError(`Body is unusable: Body has already been read`);if(e.body==null){let e,t=new ReadableStream({start:t=>{e=t},pull:()=>Promise.resolve(),cancel:()=>Promise.resolve()},{size:()=>1});return e.close(),t}let n=e.body.stream,r=new TextDecoderStream(`UTF-8`);return n.pipeThrough(r)}}}function O(e,t){Object.assign(e.prototype,D(e,t))}function k(e,t,n,r){try{d.brandCheck(e,n)}catch(e){return Promise.reject(e)}if(e=r(e),A(e))return Promise.reject(TypeError(`Body is unusable: Body has already been read`));let i=Promise.withResolvers(),a=i.reject,s=e=>{try{i.resolve(t(e))}catch(e){a(e)}};return e.body==null?(s(Buffer.allocUnsafe(0)),i.promise):(o(e.body,s,a),i.promise)}function A(e){let t=e.body;return t!=null&&(t.stream.locked||n.isDisturbed(t.stream))}function j(e){let t=e.headersList,n=s(t);return n===`failure`?null:n}t.exports={extractBody:w,safelyExtractBody:T,cloneBody:E,mixinBody:O,streamRegistry:C,bodyUnusable:A}})),Hu=s(((e,t)=>{var n=r(`node:assert`),i=$(),{channels:a}=Su(),o=vu(),{RequestContentLengthMismatchError:s,ResponseContentLengthMismatchError:c,RequestAbortedError:l,InvalidArgumentError:u,HeadersTimeoutError:d,HeadersOverflowError:f,SocketError:p,InformationalError:m,BodyTimeoutError:h,HTTPParserError:g,ResponseExceededMaxSizeError:_}=Q(),{kUrl:v,kReset:y,kClient:b,kParser:x,kBlocking:S,kRunning:C,kPending:w,kSize:T,kWriting:E,kQueue:D,kNoRef:O,kKeepAliveDefaultTimeout:k,kHostHeader:A,kPendingIdx:j,kRunningIdx:M,kError:N,kPipelining:P,kSocket:F,kKeepAliveTimeoutValue:I,kMaxHeadersSize:L,kKeepAliveMaxTimeout:R,kKeepAliveTimeoutThreshold:z,kHeadersTimeout:ee,kBodyTimeout:B,kStrictContentLength:te,kMaxRequests:V,kCounter:ne,kMaxResponseSize:H,kOnError:U,kResume:W,kHTTPContext:G,kClosed:re}=Z(),K=Ou(),ie=Buffer.alloc(0),ae=Buffer[Symbol.species],oe=i.removeAllListeners,se=Symbol(`kIdleSocketValidation`),ce=Symbol(`kIdleSocketValidationTimeout`),le=Symbol(`kSocketUsed`),ue=Symbol(`kTypeOfService`),de;function fe(){let e=process.env.JEST_WORKER_ID?ku():void 0,t,r=process.arch!==`ppc64`;if(process.env.UNDICI_NO_WASM_SIMD===`1`?r=!1:process.env.UNDICI_NO_WASM_SIMD===`0`&&(r=!0),r)try{t=new WebAssembly.Module(Au())}catch{}return t||=new WebAssembly.Module(e||ku()),new WebAssembly.Instance(t,{env:{wasm_on_url:(e,t,n)=>0,wasm_on_status:(e,t,r)=>{n(q.ptr===e);let i=t-J+me.byteOffset;return q.onStatus(new ae(me.buffer,i,r))},wasm_on_message_begin:e=>(n(q.ptr===e),q.onMessageBegin()),wasm_on_header_field:(e,t,r)=>{n(q.ptr===e);let i=t-J+me.byteOffset;return q.onHeaderField(new ae(me.buffer,i,r))},wasm_on_header_value:(e,t,r)=>{n(q.ptr===e);let i=t-J+me.byteOffset;return q.onHeaderValue(new ae(me.buffer,i,r))},wasm_on_headers_complete:(e,t,r,i)=>(n(q.ptr===e),q.onHeadersComplete(t,r===1,i===1)),wasm_on_body:(e,t,r)=>{n(q.ptr===e);let i=t-J+me.byteOffset;return q.onBody(new ae(me.buffer,i,r))},wasm_on_message_complete:e=>(n(q.ptr===e),q.onMessageComplete())}})}var pe=null,q=null,me=null,he=0,J=null,ge=null,_e=1,ve=3,Y=5,ye=8,be=class{constructor(e,t,{exports:n}){this.llhttp=n,this.ptr=this.llhttp.llhttp_alloc(K.TYPE.RESPONSE),this.client=e,this.socket=t,this.timeout=null,this.timeoutWeakRef=new WeakRef(this),this.timeoutValue=null,this.timeoutType=null,this.statusCode=0,this.statusText=``,this.upgrade=!1,this.headers=[],this.headersSize=0,this.headersMaxSize=e[L],this.shouldKeepAlive=!1,this.paused=!1,this.resume=this.resume.bind(this),this.bytesRead=0,this.keepAlive=``,this.contentLength=-1,this.connectionKeepAlive=!1,this.maxResponseSize=e[H]}setTimeout(e,t){e!==this.timeoutValue||t&_e^this.timeoutType&_e?(this.timeout&&=(o.clearTimeout(this.timeout),null),e&&(t&_e?this.timeout=o.setFastTimeout(xe,e,this.timeoutWeakRef):(this.timeout=setTimeout(xe,e,this.timeoutWeakRef),this.timeout?.unref())),this.timeoutValue=e):this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.timeoutType=t}resume(){!this.socket.destroyed&&this.paused&&(n(this.ptr!=null),n(q===null),this.llhttp.llhttp_resume(this.ptr),n(this.timeoutType===Y),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||ie),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let e=this.socket.read();if(e===null)break;this.execute(e)}}execute(e){n(q===null),n(this.ptr!=null),n(!this.paused);let{socket:t,llhttp:r}=this;e.length>he&&(J&&r.free(J),he=Math.ceil(e.length/4096)*4096,J=r.malloc(he)),(ge===null||ge.buffer!==r.memory.buffer||ge.byteOffset!==J||ge.byteLength!==he)&&(ge=new Uint8Array(r.memory.buffer,J,he)),ge.set(e);try{let n;try{me=e,q=this,n=r.llhttp_execute(this.ptr,J,e.length)}finally{q=null,me=null}if(n!==K.ERROR.OK){let i=e.subarray(r.llhttp_get_error_pos(this.ptr)-J);if(n===K.ERROR.PAUSED_UPGRADE)this.onUpgrade(i);else if(n===K.ERROR.PAUSED)this.paused=!0,t.unshift(i);else throw this.createError(n,i)}}catch(e){i.destroy(t,e)}}finish(){n(q===null),n(this.ptr!=null);let{llhttp:e}=this;if(this.paused){let t;do e.llhttp_resume(this.ptr),this.paused=!1,t=this.socket.read()||ie,this.execute(t);while(this.paused&&t.length>0);this.paused&&=(e.llhttp_resume(this.ptr),!1)}let t;try{q=this,t=e.llhttp_finish(this.ptr)}finally{q=null}return t===K.ERROR.OK?null:t===K.ERROR.PAUSED||t===K.ERROR.PAUSED_UPGRADE?(this.paused=!0,null):this.createError(t,ie)}createError(e,t){let{llhttp:n,contentLength:r,bytesRead:i}=this;if(r!==-1&&i!==r)return new c;let a=n.llhttp_get_error_reason(this.ptr),o=``;if(a){let e=new Uint8Array(n.memory.buffer,a).indexOf(0);o=`Response does not match the HTTP/1.1 protocol (`+Buffer.from(n.memory.buffer,a,e).toString()+`)`}return new g(o,K.ERROR[e],t)}destroy(){n(q===null),n(this.ptr!=null),this.llhttp.llhttp_free(this.ptr),this.ptr=null,this.timeout&&o.clearTimeout(this.timeout),this.timeout=null,this.timeoutValue=null,this.timeoutType=null,this.paused=!1}onStatus(e){return this.statusText=e.toString(),0}onMessageBegin(){let{socket:e,client:t}=this;if(e.destroyed)return-1;if(t[C]===0)return i.destroy(e,new p(`bad response`,i.getSocketInfo(e))),-1;let n=t[D][t[M]];return n?(n.onResponseStarted(),0):-1}onHeaderField(e){let t=this.headers.length;return t&1?this.headers[t-1]=Buffer.concat([this.headers[t-1],e]):this.headers.push(e),this.trackHeader(e.length),0}onHeaderValue(e){let t=this.headers.length;(t&1)==1?(this.headers.push(e),t+=1):this.headers[t-1]=Buffer.concat([this.headers[t-1],e]);let n=this.headers[t-2];if(n.length===10){let r=i.bufferToLowerCasedHeaderName(n);r===`keep-alive`?this.keepAlive+=e.toString():r===`connection`&&(this.connectionKeepAlive=this.headers[t-1].length===10&&i.bufferToLowerCasedHeaderName(this.headers[t-1])===`keep-alive`)}else if(n.length===14&&i.bufferToLowerCasedHeaderName(n)===`content-length`){this.contentLength===-1&&(this.contentLength=0);for(let t=0;t<e.length;t++)this.contentLength=this.contentLength*10+(e[t]-48)}return this.trackHeader(e.length),0}trackHeader(e){this.headersSize+=e,this.headersSize>=this.headersMaxSize&&i.destroy(this.socket,new f)}onUpgrade(e){let{upgrade:t,client:r,socket:a,headers:o,statusCode:s}=this;n(t),n(r[F]===a),n(!a.destroyed),n(!this.paused),n(!(o.length&1));let c=r[D][r[M]];n(c),n(c.upgrade||c.method===`CONNECT`),this.statusCode=0,this.statusText=``,this.shouldKeepAlive=!1,this.headers=[],this.headersSize=0,a.unshift(e),a[x].destroy(),a[x]=null,a[b]=null,a[N]=null,oe(a),r[F]=null,r[G]=null,r[D][r[M]++]=null,r.emit(`disconnect`,r[v],[r],new m(`upgrade`));try{c.onRequestUpgrade(s,o,a)}catch(e){i.destroy(a,e)}r[W]()}onHeadersComplete(e,t,r){let{client:a,socket:o,headers:s,statusText:c}=this;if(o.destroyed)return-1;if(a[C]===0)return i.destroy(o,new p(`bad response`,i.getSocketInfo(o))),-1;let l=a[D][a[M]];if(!l)return-1;if(n(!this.upgrade),n(this.statusCode<200),e===100)return i.destroy(o,new p(`bad response`,i.getSocketInfo(o))),-1;if(t&&!l.upgrade)return i.destroy(o,new p(`bad upgrade`,i.getSocketInfo(o))),-1;if(n(this.timeoutType===ve),this.statusCode=e,this.shouldKeepAlive=r||l.method===`HEAD`&&!o[y]&&this.connectionKeepAlive,this.statusCode>=200){let e=l.bodyTimeout==null?a[B]:l.bodyTimeout;this.setTimeout(e,Y)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(l.method===`CONNECT`||t)return n(a[C]===1),this.upgrade=!0,2;if(n(!(this.headers.length&1)),this.headers=[],this.headersSize=0,this.shouldKeepAlive&&a[P]){let e=this.keepAlive?i.parseKeepAliveTimeout(this.keepAlive):null;if(e!=null){let t=Math.min(e-a[z],a[R]);t<=0?o[y]=!0:a[I]=t}else a[I]=a[k]}else o[y]=!0;let u=l.onResponseStart(e,s,this.resume,c)===!1;return l.aborted?-1:l.method===`HEAD`||e<200?1:(o[S]&&(o[S]=!1,a[W]()),u?K.ERROR.PAUSED:0)}onBody(e){let{client:t,socket:r,statusCode:a,maxResponseSize:o}=this;if(r.destroyed)return-1;let s=t[D][t[M]];return n(s),n(this.timeoutType===Y),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),n(a>=200),o>-1&&this.bytesRead+e.length>o?(i.destroy(r,new _),-1):(this.bytesRead+=e.length,s.onResponseData(e)===!1?K.ERROR.PAUSED:0)}onMessageComplete(){let{client:e,socket:t,statusCode:r,upgrade:a,headers:o,contentLength:s,bytesRead:l,shouldKeepAlive:u}=this;if(t.destroyed&&(!r||u))return-1;if(a)return 0;n(r>=100),n(!(this.headers.length&1));let d=e[D][e[M]];return n(d),this.statusCode=0,this.statusText=``,this.bytesRead=0,this.contentLength=-1,this.keepAlive=``,this.connectionKeepAlive=!1,this.headers=[],this.headersSize=0,r<200?0:d.method!==`HEAD`&&s!==-1&&l!==s?(i.destroy(t,new c),-1):(d.onResponseEnd(o),e[D][e[M]++]=null,t[le]=e[w]===0,t[E]?(n(e[C]===0),i.destroy(t,new m(`reset`)),K.ERROR.PAUSED):u?t[y]&&e[C]===0?(i.destroy(t,new m(`reset`)),K.ERROR.PAUSED):(e[P]==null||e[P]===1?setImmediate(e[W]):e[W](),0):(i.destroy(t,new m(`reset`)),K.ERROR.PAUSED))}};function xe(e){let t=e.deref();if(!t)return;let{socket:r,timeoutType:a,client:o,paused:s}=t;a===ve?(!r[E]||r.writableNeedDrain||o[C]>1)&&(n(!s,`cannot be paused while waiting for headers`),i.destroy(r,new d)):a===Y?s||i.destroy(r,new h):a===ye&&(n(o[C]===0&&o[I]),i.destroy(r,new m(`socket idle timeout`)))}function Se(e,t){if(e[F]=t,pe||=fe(),t.errored)throw t.errored;if(t.destroyed)throw new p(`destroyed`);return t[O]=!1,t[E]=!1,t[y]=!1,t[S]=!1,t[se]=0,t[ce]=null,t[le]=!1,t[x]=new be(e,t,pe),i.addListener(t,`error`,Ce),i.addListener(t,`readable`,we),i.addListener(t,`end`,Te),i.addListener(t,`close`,Ee),t[re]=!1,t.on(`close`,De),{version:`h1`,defaultPipelining:1,write(t){return Ne(e,t)},resume(){Ae(e)},destroy(e,n){t[re]?queueMicrotask(n):(t.on(`close`,n),t.destroy(e))},get destroyed(){return t.destroyed},busy(n){return!!(t[E]||t[y]||t[S]||t[se]===1||n&&(e[C]>0&&!n.idempotent||e[C]>0&&(n.upgrade||n.method===`CONNECT`)||e[C]>0&&i.bodyLength(n.body)!==0&&(i.isStream(n.body)||i.isAsyncIterable(n.body)||i.isFormDataLike(n.body))))}}}function Ce(e){n(e.code!==`ERR_TLS_CERT_ALTNAME_INVALID`);let t=this[x];if(e.code===`ECONNRESET`&&t.statusCode&&!t.shouldKeepAlive){let e=t.finish();e&&(this[N]=e,this[b][U](e));return}this[N]=e,this[b][U](e)}function we(){this[x]?.readMore()}function Te(){let e=this[x];if(e.statusCode&&!e.shouldKeepAlive){let t=e.finish();t&&i.destroy(this,t);return}i.destroy(this,new p(`other side closed`,i.getSocketInfo(this)))}function Ee(){let e=this[x];Oe(this),e&&(!this[N]&&e.statusCode&&!e.shouldKeepAlive&&(this[N]=e.finish()||this[N]),this[x].destroy(),this[x]=null);let t=this[N]||new p(`closed`,i.getSocketInfo(this)),r=this[b];if(r[F]=null,r[G]=null,r.destroyed){n(r[w]===0);let e=r[D].splice(r[M]);for(let n=0;n<e.length;n++){let a=e[n];i.errorRequest(r,a,t)}}else if(r[C]>0&&t.code!==`UND_ERR_INFO`){let e=r[D][r[M]];r[D][r[M]++]=null,i.errorRequest(r,e,t)}r[j]=r[M],n(r[C]===0),r.emit(`disconnect`,r[v],[r],t),r[W]()}function De(){this[re]=!0}function Oe(e){e[ce]&&(clearImmediate(e[ce]),e[ce]=null),e[se]=0}function ke(e,t){t[se]=1,t[ce]=setImmediate(()=>{t[ce]=null,t[se]=2,e[F]===t&&!t.destroyed&&e[W]()})}function Ae(e){let t=e[F];if(t&&!t.destroyed){if(e[T]===0?!t[O]&&t.unref&&(t.unref(),t[O]=!0):t[O]&&t.ref&&(t.ref(),t[O]=!1),e[C]===0&&e[w]>0&&t[le]){if(t[se]===0)return ke(e,t),t[x].readMore(),t.destroyed,void 0;if(t[se]===1)return t[x].readMore(),t.destroyed,void 0}if(e[C]===0&&(t[x].readMore(),t.destroyed))return;if(e[T]===0)t[x].timeoutType!==ye&&t[x].setTimeout(e[I],ye);else if(e[C]>0&&t[x].statusCode<200&&t[x].timeoutType!==ve){let n=e[D][e[M]],r=n.headersTimeout==null?e[ee]:n.headersTimeout;t[x].setTimeout(r,ve)}}}function je(e){return e!==`GET`&&e!==`HEAD`&&e!==`OPTIONS`&&e!==`TRACE`&&e!==`CONNECT`}function Me(e,t){if(typeof e.setTypeOfService!=`function`)return;let n=t.typeOfService;if(n!==void 0&&e[ue]!==n)try{e.setTypeOfService(n),e[ue]=n}catch{}}function Ne(e,t){let{method:r,path:o,host:c,upgrade:d,blocking:f,reset:p}=t,{body:h,headers:g,contentLength:_}=t,v=r===`PUT`||r===`POST`||r===`PATCH`||r===`QUERY`||r===`PROPFIND`||r===`PROPPATCH`;if(i.isFormDataLike(h)){de||=Vu().extractBody;let[e,n]=de(h);t.contentType??g.push(`content-type`,n),h=e.stream,_=e.length}else if(i.isBlobLike(h)&&t.contentType==null){let n=h.type;if(n){let r=`${n}`;if(!i.isValidHeaderValue(r))return i.errorRequest(e,t,new u(`invalid content-type header`)),!1;g.push(`content-type`,r)}}h&&typeof h.read==`function`&&h.read(0);let b=i.bodyLength(h);if(_=b??_,_===null&&(_=t.contentLength),_===0&&!v&&(_=null),je(r)&&_>0&&t.contentLength!==null&&t.contentLength!==_){if(e[te])return i.errorRequest(e,t,new s),!1;process.emitWarning(new s)}let x=e[F];Oe(x);let C=n=>{t.aborted||t.completed||(i.errorRequest(e,t,n||new l),i.destroy(h),i.destroy(x,new m(`aborted`)))};try{t.onRequestStart(C,null)}catch(n){i.errorRequest(e,t,n)}if(t.aborted)return!1;r===`HEAD`&&(x[y]=!0),(d||r===`CONNECT`)&&(x[y]=!0),p!=null&&(x[y]=p),e[V]&&++x[ne]>=e[V]&&(x[y]=!0),f&&(x[S]=!0),Me(x,t);let w=`${r} ${o} HTTP/1.1\r\n`;if(w+=typeof c==`string`?`host: ${c}\r\n`:e[A],d?w+=`connection: upgrade\r\nupgrade: ${d}\r\n`:e[P]&&!x[y]?w+=`connection: keep-alive\r
|
|
24
|
+
`:w+=`connection: close\r
|
|
25
|
+
`,Array.isArray(g))for(let e=0;e<g.length;e+=2){let t=g[e+0],n=g[e+1];if(Array.isArray(n))for(let e=0;e<n.length;e++)w+=`${t}: ${n[e]}\r\n`;else w+=`${t}: ${n}\r\n`}return a.sendHeaders.hasSubscribers&&a.sendHeaders.publish({request:t,headers:w,socket:x}),!h||b===0?Fe(C,null,e,t,x,_,w,v):i.isBuffer(h)?Fe(C,h,e,t,x,_,w,v):i.isBlobLike(h)?typeof h.stream==`function`?Le(C,h.stream(),e,t,x,_,w,v):Ie(C,h,e,t,x,_,w,v):i.isStream(h)?Pe(C,h,e,t,x,_,w,v):i.isIterable(h)?Le(C,h,e,t,x,_,w,v):n(!1),!0}function Pe(e,t,r,a,o,s,c,u){n(s!==0||r[C]===0,`stream body cannot be pipelined`);let d=!1,f=new Re({abort:e,socket:o,request:a,contentLength:s,client:r,expectsPayload:u,header:c}),p=function(e){if(!d)try{!f.write(e)&&this.pause&&this.pause()}catch(e){i.destroy(this,e)}},m=function(){d||t.resume&&t.resume()},h=function(){if(queueMicrotask(()=>{t.removeListener(`error`,g)}),!d){let e=new l;queueMicrotask(()=>g(e))}},g=function(e){if(!d){if(d=!0,n(o.destroyed||o[E]&&r[C]<=1),o.off(`drain`,m).off(`error`,g),t.removeListener(`data`,p).removeListener(`end`,g).removeListener(`close`,h),!e)try{f.end()}catch(t){e=t}f.destroy(e),e&&(e.code!==`UND_ERR_INFO`||e.message!==`reset`)?i.destroy(t,e):i.destroy(t)}};t.on(`data`,p).on(`end`,g).on(`error`,g).on(`close`,h),t.resume&&t.resume(),o.on(`drain`,m).on(`error`,g),t.errorEmitted??t.errored?setImmediate(g,t.errored):(t.endEmitted??t.readableEnded)&&setImmediate(g,null),(t.closeEmitted??t.closed)&&setImmediate(h)}function Fe(e,t,r,a,o,s,c,l){try{t?i.isBuffer(t)&&(n(s===t.byteLength,`buffer body must have content length`),o.cork(),o.write(`${c}content-length: ${s}\r\n\r\n`,`latin1`),o.write(t),o.uncork(),a.onBodySent(t),!l&&a.reset!==!1&&(o[y]=!0)):s===0?o.write(`${c}content-length: 0\r\n\r\n`,`latin1`):(n(s===null,`no body must not have content length`),o.write(`${c}\r\n`,`latin1`)),a.onRequestSent(),r[W]()}catch(t){e(t)}}async function Ie(e,t,n,r,i,a,o,c){try{if(a!=null&&a!==t.size)throw new s;let e=Buffer.from(await t.arrayBuffer());i.cork(),i.write(`${o}content-length: ${a}\r\n\r\n`,`latin1`),i.write(e),i.uncork(),r.onBodySent(e),r.onRequestSent(),!c&&r.reset!==!1&&(i[y]=!0),n[W]()}catch(t){e(t)}}async function Le(e,t,r,i,a,o,s,c){n(o!==0||r[C]===0,`iterator body cannot be pipelined`);let l=null;function u(){if(l){let e=l;l=null,e()}}let d=()=>new Promise((e,t)=>{n(l===null),a[N]?t(a[N]):l=e});a.on(`close`,u).on(`drain`,u);let f=new Re({abort:e,socket:a,request:i,contentLength:o,client:r,expectsPayload:c,header:s});try{for await(let e of t){if(a[N])throw a[N];f.write(e)||await d()}f.end()}catch(e){f.destroy(e)}finally{a.off(`close`,u).off(`drain`,u)}}var Re=class{constructor({abort:e,socket:t,request:n,contentLength:r,client:i,expectsPayload:a,header:o}){this.socket=t,this.request=n,this.contentLength=r,this.client=i,this.bytesWritten=0,this.expectsPayload=a,this.header=o,this.abort=e,t[E]=!0}write(e){let{socket:t,request:n,contentLength:r,client:i,bytesWritten:a,expectsPayload:o,header:c}=this;if(t[N])throw t[N];if(t.destroyed)return!1;let l=e instanceof Uint8Array?e.byteLength:Buffer.byteLength(e);if(!l)return!0;if(r!==null&&a+l>r){if(i[te])throw new s;process.emitWarning(new s)}t.cork(),a===0&&(!o&&n.reset!==!1&&(t[y]=!0),r===null?t.write(`${c}transfer-encoding: chunked\r\n`,`latin1`):t.write(`${c}content-length: ${r}\r\n\r\n`,`latin1`)),r===null&&t.write(`\r\n${l.toString(16)}\r\n`,`latin1`),this.bytesWritten+=l;let u=t.write(e);return t.uncork(),n.onBodySent(e),u||t[x].timeout&&t[x].timeoutType===ve&&t[x].timeout.refresh&&t[x].timeout.refresh(),u}end(){let{socket:e,contentLength:t,client:n,bytesWritten:r,expectsPayload:i,header:a,request:o}=this;if(o.onRequestSent(),e[E]=!1,e[N])throw e[N];if(!e.destroyed){if(r===0?i?e.write(`${a}content-length: 0\r\n\r\n`,`latin1`):e.write(`${a}\r\n`,`latin1`):t===null&&e.write(`\r
|
|
26
|
+
0\r
|
|
27
|
+
\r
|
|
28
|
+
`,`latin1`),t!==null&&r!==t){if(n[te])throw new s;process.emitWarning(new s)}e[x].timeout&&e[x].timeoutType===ve&&e[x].timeout.refresh&&e[x].timeout.refresh(),n[W]()}}destroy(e){let{socket:t,client:r,abort:i}=this;t[E]=!1,e&&(n(r[C]<=1,`pipeline should only contain this request`),i(e))}};t.exports=Se})),Uu=s(((e,t)=>{var n=r(`node:assert`),{pipeline:i}=r(`node:stream`),a=$(),{RequestContentLengthMismatchError:o,RequestAbortedError:s,SocketError:c,InformationalError:l,InvalidArgumentError:u,HeadersTimeoutError:d,BodyTimeoutError:f,ResponseExceededMaxSizeError:p}=Q(),{kUrl:m,kReset:h,kClient:g,kRunning:_,kPending:v,kQueue:y,kPendingIdx:b,kRunningIdx:x,kError:S,kSocket:C,kStrictContentLength:w,kOnError:T,kMaxConcurrentStreams:E,kHTTP2Session:D,kHostAuthority:O,kResume:k,kSize:A,kHTTPContext:j,kClosed:M,kKeepAliveDefaultTimeout:N,kHeadersTimeout:P,kBodyTimeout:F,kEnableConnectProtocol:I,kRemoteSettings:L,kHTTP2Stream:R,kHTTP2SessionState:z,kHTTP2Options:ee,kMaxResponseSize:B}=Z(),{channels:te}=Su(),V=Symbol(`open streams`),ne=Symbol(`request stream id`),H=Symbol(`request stream`),U=Symbol(`request stream cleanup`),W=Symbol(`request stream state`),G=Symbol(`received goaway`),re=Symbol(`goaway replay attempts`),K=Symbol(`refused stream retry`),ie=1,ae,oe;try{oe=r(`node:http2`)}catch{oe={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:se,HTTP2_HEADER_METHOD:ce,HTTP2_HEADER_PATH:le,HTTP2_HEADER_SCHEME:ue,HTTP2_HEADER_CONTENT_LENGTH:de,HTTP2_HEADER_EXPECT:fe,HTTP2_HEADER_STATUS:pe,HTTP2_HEADER_PROTOCOL:q,NGHTTP2_NO_ERROR:me,NGHTTP2_REFUSED_STREAM:he}}=oe;function J(e,t){return e[S]||(t===me?new l(`HTTP/2: "GOAWAY" frame received with code ${t}`):new c(`HTTP/2: "GOAWAY" frame received with code ${t}`,a.getSocketInfo(e[C])))}function ge(e,t){let n=e[g],r=e[C];if(n[D]===e&&(n[C]=null,n[j]=null,n[D]=null),r!=null&&r[S]==null&&(r[S]=t),!e.closed&&!e.destroyed)try{e.destroy(t)}catch{}a.destroy(r,t)}function _e(e,t){let n=Number.isInteger(t)?t:2**53-1;for(let t=e[x];t<e[b];t++){let r=e[y][t];if(r!=null&&(typeof r[ne]!=`number`||r[ne]>n))return t}return e[b]}function ve(e){e[ne]=null,e[H]=null,e[U]=null}function Y(e,t,n){let r=e[U],i=e[H];ve(e),r?.(i),e[ne]=t.id,e[H]=t,e[U]=n}function ye(e){let t=e[U],n=e[H];ve(e),t?.(n)}function be(e,t){e[y].splice(e[b]+1,0,t)}function xe(e,t,n=!1){let r=e[y],i=e[x];if(i<e[b]&&r[i]===t){r[i]=null,e[x]=i+1;return}let a=r.indexOf(t,i);a===-1||a>=e[b]||(r.splice(a,1),e[b]--,n&&e[b]<e[x]&&(e[b]=e[x]))}function Se(e){let{body:t}=e;return t==null||a.isBuffer(t)||a.isBlobLike(t)}function Ce(e){let t=(e[re]??0)+1;return e[re]=t,t<=ie}function we(e,t=he){if(e!=null&&!e.destroyed&&!e.closed)try{e.close(t)}catch{}}function Te(e){let t=e[H];return ye(e),Ee(t),t}function Ee(e){e!=null&&e[W]!=null&&(e[W]=null,e.off(`close`,Ze),e.off(`close`,Xe),e[D]!=null&&Ye(e),!e.destroyed&&!e.closed&&e.once(`error`,Je))}function De(e,t){e[C]=t;let n=e[ee].sessionOptions?.initialWindowSize,r=e[ee].connectionWindowSize,i=oe.connect(e[m],{createConnection:()=>t,peerMaxConcurrentStreams:e[ee].maxConcurrentStreams,settings:{enablePush:!1,...n==null?null:{initialWindowSize:n}}});return e[C]=t,i[V]=0,i[g]=e,i[C]=t,i[z]={idleTimeout:null,noStreamsTimeout:null,refed:!0,ping:{interval:e[ee].pingInterval===0?null:setInterval(ze,e[ee].pingInterval,i).unref()}},i[G]=!1,i[I]=!1,i[L]=!1,r&&a.addListener(i,`connect`,Le.bind(i,r)),a.addListener(i,`error`,Be),a.addListener(i,`frameError`,Ve),a.addListener(i,`goaway`,He),a.addListener(i,`close`,Ue),a.addListener(i,`remoteSettings`,Re),ke(i),e[D]=i,t[D]=i,a.addListener(t,`error`,Ge),a.addListener(t,`end`,Ke),a.addListener(t,`close`,We),t[M]=!1,t.on(`close`,qe),{version:`h2`,defaultPipelining:1/0,write(t){return ut(e,t)},resume(){Ae(e)},destroy(e,n){t[M]?queueMicrotask(n):t.destroy(e).on(`close`,n)},get destroyed(){return t.destroyed},busy(t){if(i[L]===!1&&e[_]>0||e[_]>=e[E])return!0;if(t!=null){if(e[_]>0){if((t.upgrade===`websocket`||t.method===`CONNECT`)&&i[L]===!1)return!0}else return(t.upgrade===`websocket`||t.method===`CONNECT`)&&i[L]===!1}return!1}}}function Oe(e){let t=e[z];t.refed===!1&&(t.refed=!0,e.ref())}function ke(e){let t=e[z];t.refed===!0&&(t.refed=!1,e.unref())}function Ae(e){let t=e[C],n=e[D];t?.destroyed===!1&&(e[A]===0||e[E]===0?ke(n):Oe(n),e[A]===0&&n[V]===0?Fe(n):Pe(n),e[E]===0&&e[_]===0&&e[v]>0?Me(n):je(n))}function je(e){let t=e[z];t?.noStreamsTimeout!=null&&(clearTimeout(t.noStreamsTimeout),t.noStreamsTimeout=null)}function Me(e){let t=e[g],n=e[z],r=t[P];r&&n.noStreamsTimeout==null&&(n.noStreamsTimeout=setTimeout(Ne,r,e).unref())}function Ne(e){let t=e[g],n=e[z];if(n.noStreamsTimeout=null,t[D]!==e||t[E]!==0||t[_]!==0||t[v]===0)return;let r=new d(`HTTP/2: server did not accept a new stream within ${t[P]}`),i=t[y].splice(t[b]);for(let e=0;e<i.length;e++)i[e]!=null&&a.errorRequest(t,i[e],r);e[S]=r,ge(e,r)}function Pe(e){let t=e[z];t?.idleTimeout!=null&&(clearTimeout(t.idleTimeout),t.idleTimeout=null)}function Fe(e){let t=e[g];if(t[D]!==e||e.closed||e.destroyed)return;if(e[V]!==0||t[A]!==0){Pe(e);return}let n=e[z];n.idleTimeout??=setTimeout(Ie,t[N],e).unref()}function Ie(e){let t=e[g],n=e[C],r=e[z];if(r.idleTimeout=null,t[D]!==e||e[V]!==0||t[A]!==0||e.closed||e.destroyed)return;let i=new l(`socket idle timeout`);n[S]=i,a.destroy(n,i)}function Le(e){try{typeof this.setLocalWindowSize==`function`&&this.setLocalWindowSize(e)}catch{}}function Re(e){if(this[g][E]=e.maxConcurrentStreams??this[g][E],this[L]===!0&&this[I]===!0&&e.enableConnectProtocol===!1){let e=new l(`HTTP/2: Server disabled extended CONNECT protocol against RFC-8441`);this[C][S]=e,this[g][T](e);return}this[I]=e.enableConnectProtocol??this[I],this[L]=!0,this[g][k]()}function ze(e){let t=e[z];if((e.closed||e.destroyed)&&t.ping.interval!=null){clearInterval(t.ping.interval),t.ping.interval=null;return}e.ping(n.bind(e));function n(e,t){let n=this[g],r=this[C];if(e!=null){let t=new l(`HTTP/2: "PING" errored - type ${e.message}`);r[S]=t,n[T](t)}else n.emit(`ping`,t)}}function Be(e){n(e.code!==`ERR_TLS_CERT_ALTNAME_INVALID`),this[C][S]=e,!this[G]&&this[g][T](e)}function Ve(e,t,n){if(n===0){if(this[G])return;let n=new l(`HTTP/2: "frameError" received - type ${e}, code ${t}`);this[C][S]=n,this[g][T](n)}}function He(e,t){if(this[G])return;this[G]=!0;let n=J(this,e),r=this[g],i=r[b],o=_e(r,t),s=[],c=[];for(let e=o;e<i;e++){let t=r[y][e];t!=null&&(c.push(Te(t)),Se(t)&&Ce(t)?s.push(t):a.errorRequest(r,t,n))}for(let e=0;e<c.length;e++)we(c[e]);if(o!==i){let e=r[y].slice(i);r[y].length=o,r[y].push(...s,...e)}r[D]===this&&(r[C]=null,r[j]=null,r[D]=null),Pe(this),je(this),!this.closed&&!this.destroyed&&this.close(),r[b]=o,r.emit(`disconnect`,r[m],[r],n),r[k]()}function Ue(){let{[g]:e,[z]:t,[C]:r}=this,i=r[S]||this[S]||new c(`closed`,a.getSocketInfo(r));if(e[D]===this&&(e[C]=null,e[j]=null,e[D]=null),Pe(this),je(this),t.ping.interval!=null&&(clearInterval(t.ping.interval),t.ping.interval=null),e.destroyed){n(e[v]===0);let t=e[y].splice(e[x]);for(let n=0;n<t.length;n++){let r=t[n];r!=null&&a.errorRequest(e,r,i)}}}function We(){let e=this[S]||new c(`closed`,a.getSocketInfo(this)),t=this[D],r=t[g];r[C]!==this&&(t[G]||r[D]!=null&&r[D]!==t)||(r[C]=null,r[j]=null,r[D]===t&&(r[D]=null),t.destroy(e),r[b]=r[x],n(r[_]===0),r.emit(`disconnect`,r[m],[r],e),r[k]())}function Ge(e){n(e.code!==`ERR_TLS_CERT_ALTNAME_INVALID`),this[S]=e,!this[D]?.[G]&&this[D]?.[g]?.[T](e)}function Ke(){a.destroy(this,new c(`other side closed`,a.getSocketInfo(this)))}function qe(){this[M]=!0}function Je(){}function Ye(e){let t=e[D];e[D]=null,--t[V],t[V]===0&&(ke(t),Fe(t))}function Xe(){this.off(`error`,Je);let e=this[W];this[W]=null,nt(e,new l(`HTTP/2: stream closed before response headers`)),Ye(this)}function Ze(){let e=this[W];e!=null&&(ft(this),e.pendingEnd&&!e.request.aborted&&!e.request.completed?e.request.onResponseEnd(e.trailers||{}):!e.request.aborted&&!e.request.completed&&a.errorRequest(e.client,e.request,new l(`HTTP/2: stream closed before the response was complete`)),ct(e),Ye(this),this[W]=null)}function Qe(e){return e!==`GET`&&e!==`HEAD`&&e!==`OPTIONS`&&e!==`TRACE`&&e!==`CONNECT`}function $e(e){let t={};for(let n=0;n<e.length;n+=2){let r=e[n+0],i=e[n+1],a=t[r];if(r===`cookie`){t[r]=a==null?i:Array.isArray(a)?(a.push(i),a):[a,i];continue}if(typeof i==`string`){t[r]=a?`${a}, ${i}`:i;continue}for(let e=0;e<i.length;e++)t[r]=t[r]?`${t[r]}, ${i[e]}`:i[e]}return t}function et(e){e.off(`response`,ot),e.off(`error`,rt),e.off(`end`,it),e.off(`timeout`,at),e.off(`error`,Je)}function tt(e){if(e==null)return;let t=e[W];if(t==null)return;let{request:n}=t;n[H]===e&&ve(n),et(e),!e.destroyed&&!e.closed&&e.once(`error`,Je)}function nt(e,t){if(e==null)return;let{request:n}=e;e.responseReceived||n.aborted||n.completed||(tt(e.stream),e.abort(t,!0))}function rt(){let e=this[W];typeof this.rstCode==`number`&&this.rstCode!==0?nt(e,new l(`HTTP/2: "stream error" received - code ${this.rstCode}`)):nt(e,new l(`HTTP/2: stream errored before response headers`))}function it(){nt(this[W],new l(`HTTP/2: stream half-closed (remote)`))}function at(){let e=this[W];nt(e,new l(`HTTP/2: "stream timeout after ${e.headersTimeout}"`))}function ot(e,t){let n=this,r=n[W],{request:i}=r;r.responseReceived=!0;let a=e[pe];delete e[pe],i.onRequestUpgrade(a,e,n),!(i.aborted||i.completed)&&(et(n),ve(i),ct(r))}function st(e,t){let{request:n,headersTimeout:r,session:i}=t;e[R]=!0,e[D]=i,e[W]=t,t.stream=e,Y(n,e,tt),e.once(`response`,ot),e.on(`error`,rt),e.once(`end`,it),e.on(`timeout`,at),e.once(`close`,Xe),Pe(i),++i[V],e.setTimeout(r)}function ct(e,t=!1){e.requestFinalized||(e.requestFinalized=!0,xe(e.client,e.request,t),e.client[k]())}function lt(e,t,n,r,i,o){try{return n.request(i,o)}catch(i){if(i?.code===`ERR_HTTP2_INVALID_SESSION`||i?.code===`ERR_HTTP2_GOAWAY_SESSION`){let r=new c(i.message,a.getSocketInfo(n[C]));return r.cause=i,n[S]=r,ge(n,r),be(e,t),null}let o=new l(i.message,{cause:i});return n[S]=o,n[C][S]=o,n.destroy(o),a.destroy(n[C],o),r(o),null}}function ut(e,t){let r=t.headersTimeout??e[P],i=t.bodyTimeout??e[F],c=e[D],{method:d,path:f,host:p,upgrade:m,expectContinue:h,signal:g,protocol:_,headers:v}=t;if(m!=null&&m!==`websocket`)return a.errorRequest(e,t,new u(`Custom upgrade "${m}" not supported over HTTP/2`)),!1;let y=$e(v);y[se]=p||e[O],y[ce]=d;let b={abort:null,body:t.body,bytesRead:0,client:e,contentLength:null,expectsPayload:!1,maxResponseSize:e[B],request:t,headersTimeout:r,bodyTimeout:i,requestFinalized:!1,responseReceived:!1,bodySent:!1,pendingEnd:!1,trailers:null,session:c,stream:null},x=(n,r=!1)=>{if(!(t.aborted||t.completed)){if(n||=new s,a.errorRequest(e,t,n),b.stream!=null){ye(t);let i=b.stream;i.close(),i.destroyed||a.destroy(i),e[T](n),ct(b,r)}a.destroy(b.body,n)}};b.abort=x;let S=null;try{t.onRequestStart(x,null)}catch(n){a.errorRequest(e,t,n)}if(t.aborted)return!1;if(m||d===`CONNECT`)return Oe(c),m===`websocket`?c[I]===!1?(a.errorRequest(e,t,new l(`HTTP/2: Extended CONNECT protocol not supported by server`)),ke(c),!1):(y[ce]=`CONNECT`,y[q]=`websocket`,y[le]=f,y[ue]=_===`ws:`||_===`wss:`?_===`ws:`?`http`:`https`:_===`http:`?`http`:`https`,S=lt(e,t,c,x,y,{endStream:!1,signal:g}),S==null?(ke(c),!1):(st(S,b),!0)):(S=lt(e,t,c,x,y,{endStream:!1,signal:g}),S==null?(ke(c),!1):(st(S,b),!0));y[le]=f,y[ue]=_===`http:`?`http`:`https`;let E=d===`PUT`||d===`POST`||d===`PATCH`||d===`QUERY`||d===`PROPFIND`||d===`PROPPATCH`,k=b.body;k&&typeof k.read==`function`&&k.read(0);let A=a.bodyLength(k);if(a.isFormDataLike(k)){ae??=Vu().extractBody;let[e,t]=ae(k);y[`content-type`]=t,k=e.stream,A=e.length}if(A??=t.contentLength,A===0&&!E&&(A=null),Qe(d)&&A>0&&t.contentLength!=null&&t.contentLength!==A){if(e[w])return a.errorRequest(e,t,new o),!1;process.emitWarning(new o)}if(A!=null&&(n(k||A===0,`no body must not have content length`),y[de]=`${A}`),Oe(c),te.sendHeaders.hasSubscribers){let e=``;for(let t in y)e+=`${t}: ${y[t]}\r\n`;te.sendHeaders.publish({request:t,headers:e,socket:c[C]})}let j=k===null||A===0;return b.body=k,b.contentLength=A,b.expectsPayload=E,h&&(y[fe]=`100-continue`),S=lt(e,t,c,x,y,{endStream:j,signal:g}),S!=null&&(S[R]=!0,S[W]=b,b.stream=S,Pe(c),++c[V],r&&S.setTimeout(r),S[D]=c,S.on(`close`,Ze),Y(t,S,ft),h&&S.once(`continue`,Ct),S.on(`response`,ht),S.on(`headers`,mt),S.on(`end`,gt),S.on(`error`,vt),S.on(`frameError`,yt),S.on(`aborted`,bt),(r||i)&&S.on(`timeout`,xt),S.on(`trailers`,St),h||Ct.call(S),!0)}function dt(e){e.off(`error`,Je),e.off(`continue`,Ct),e.off(`response`,ht),e.off(`headers`,mt),e.off(`end`,gt),e.off(`error`,vt),e.off(`frameError`,yt),e.off(`aborted`,bt),e.off(`timeout`,xt),e.off(`trailers`,St),e.off(`data`,pt)}function ft(e){if(e==null)return;let t=e[W];if(t==null)return;let{request:n}=t;n[H]===e&&ve(n),!e.destroyed&&!e.closed&&(dt(e),e.once(`error`,Je))}function pt(e){let t=this,n=t[W];if(n==null)return;let{request:r,maxResponseSize:i}=n;if(!(r.aborted||r.completed)){if(i>-1&&n.bytesRead+e.length>i){n.abort(new p);return}n.bytesRead+=e.length,r.onResponseData(e)===!1&&t.pause()}}function mt(e){let t=this[W];if(t==null)return;let{request:n}=t;if(n.aborted||n.completed)return;let r=e[pe];delete e[pe],n.onResponseStart(Number(r),e,Je,``)}function ht(e){let t=this,n=t[W];if(n==null)return;let{request:r}=n;t.off(`response`,ht),n.body!=null&&!n.bodySent&&!t.writableEnded&&(t.removeListener(`continue`,Ct),t.end());let i=e[pe];if(delete e[pe],r.onResponseStarted(),n.responseReceived=!0,(n.headersTimeout||n.bodyTimeout)&&t.setTimeout(n.bodyTimeout),r.aborted||r.completed){ft(t);return}r.onResponseStart(Number(i),e,t.resume.bind(t),``)===!1&&t.pause(),t.on(`data`,pt)}function gt(){let e=this,t=e[W];if(t==null)return;let{request:n}=t;e.off(`end`,gt),t.responseReceived?!n.aborted&&!n.completed&&(t.pendingEnd=!0,Ze.call(e)):t.abort(new l(`HTTP/2: stream half-closed (remote)`),!0)}function _t(e,t){let{client:n,request:r}=t;return t.responseReceived||r.aborted||r.completed||r[K]||!Se(r)?!1:(r[K]=!0,Te(r),t.stream=null,t.requestFinalized=!0,xe(n,r),n[y].splice(n[b],0,r),n[k](),!0)}function vt(e){let t=this,n=t[W];n!=null&&(t.off(`error`,vt),typeof t.rstCode==`number`&&t.rstCode!==me&&(e.http2ErrorCode=t.rstCode),!(t.rstCode===he&&_t(t,n))&&n.abort(e))}function yt(e,t){let n=this,r=n[W];r!=null&&(n.off(`frameError`,yt),r.abort(new l(`HTTP/2: "frameError" received - type ${e}, code ${t}`)))}function bt(){this.off(`data`,pt)}function xt(){let e=this,t=e[W];if(t==null)return;e.off(`timeout`,xt);let n=t.responseReceived?new f(`HTTP/2: "stream timeout after ${t.bodyTimeout}"`):new d(`HTTP/2: "headers timeout after ${t.headersTimeout}"`);t.abort(n)}function St(e){let t=this,n=t[W];if(n==null)return;let{request:r}=n;t.off(`trailers`,St),t.off(`data`,pt),!(r.aborted||r.completed)&&(n.trailers=e)}function Ct(){let e=this,t=e[W];t.bodySent=!0;let{abort:r,body:i,client:o,contentLength:s,expectsPayload:c,request:l}=t;!i||s===0?wt(r,e,null,o,l,o[C],s,c):a.isBuffer(i)?wt(r,e,i,o,l,o[C],s,c):a.isBlobLike(i)?typeof i.stream==`function`?Dt(r,e,i.stream(),o,l,o[C],s,c):Et(r,e,i,o,l,o[C],s,c):a.isStream(i)?Tt(r,o[C],c,e,i,o,l,s):a.isIterable(i)?Dt(r,e,i,o,l,o[C],s,c):n(!1)}function wt(e,t,r,i,o,s,c,l){try{r!=null&&a.isBuffer(r)&&(n(c===r.byteLength,`buffer body must have content length`),t.cork(),t.write(r),t.uncork(),t.end(),o.onBodySent(r)),l||(s[h]=!0),o.onRequestSent(),i[k]()}catch(t){e(t)}}function Tt(e,t,r,o,s,c,l,u){n(u!==0||c[_]===0,`stream body cannot be pipelined`);let d=i(s,o,n=>{n?(a.destroy(d,n),e(n)):(a.removeAllListeners(d),l.onRequestSent(),r||(t[h]=!0),c[k]())});a.addListener(d,`data`,f);function f(e){l.onBodySent(e)}}async function Et(e,t,n,r,i,a,s,c){try{if(s!=null&&s!==n.size)throw new o;let e=Buffer.from(await n.arrayBuffer());t.cork(),t.write(e),t.uncork(),t.end(),i.onBodySent(e),i.onRequestSent(),c||(a[h]=!0),r[k]()}catch(t){e(t)}}async function Dt(e,t,r,i,a,o,s,c){n(s!==0||i[_]===0,`iterator body cannot be pipelined`);let l=null;function u(){if(l){let e=l;l=null,e()}}let d=()=>new Promise((e,t)=>{n(l===null),o[S]?t(o[S]):l=e});t.on(`close`,u).on(`drain`,u);try{for await(let e of r){if(o[S])throw o[S];let n=t.write(e);a.onBodySent(e),n||await d()}t.end(),a.onRequestSent(),c||(o[h]=!0),i[k]()}catch(t){e(t)}finally{t.off(`close`,u).off(`drain`,u)}}t.exports=De})),Wu=s(((e,t)=>{var n=r(`node:assert`),i=r(`node:net`),a=r(`node:http`),o=$(),{ClientStats:s}=xu(),{channels:c}=Su(),l=Cu(),u=Tu(),{InvalidArgumentError:d,InformationalError:f,ClientDestroyedError:p}=Q(),m=Eu(),{kUrl:h,kServerName:g,kClient:_,kBusy:v,kConnect:y,kResuming:b,kRunning:x,kPending:S,kSize:C,kQueue:w,kConnected:T,kConnecting:E,kNeedDrain:D,kKeepAliveDefaultTimeout:O,kHostHeader:k,kPendingIdx:A,kRunningIdx:j,kError:M,kPipelining:N,kKeepAliveTimeoutValue:P,kMaxHeadersSize:F,kKeepAliveMaxTimeout:I,kKeepAliveTimeoutThreshold:L,kHeadersTimeout:R,kBodyTimeout:z,kStrictContentLength:ee,kConnector:B,kMaxRequests:te,kCounter:V,kClose:ne,kDestroy:H,kDispatch:U,kLocalAddress:W,kMaxResponseSize:G,kOnError:re,kHTTPContext:K,kMaxConcurrentStreams:ie,kHostAuthority:ae,kResume:oe,kHTTP2Options:se}=Z(),ce=Hu(),le=Uu(),ue=Symbol(`kClosedResolve`),de=a&&a.maxHeaderSize&&Number.isInteger(a.maxHeaderSize)&&a.maxHeaderSize>0?()=>a.maxHeaderSize:()=>{throw new d(`http module not available or http.maxHeaderSize invalid`)},fe=()=>{};function pe(e){return e[N]??e[K]?.defaultPipelining??1}var q=!1;function me(e){q!==!0&&(process.emitWarning(`Use h2Options.${e} instead. ${e} for H2 will be deprecated in future major.`,{code:`UNDICI-H2-OPTIONS`}),q=!0)}function he(e){return e[K]?.version===`h2`?e[ie]:pe(e)}var J=class extends u{constructor(e,{maxHeaderSize:t,headersTimeout:n,socketTimeout:r,requestTimeout:a,connectTimeout:s,bodyTimeout:c,idleTimeout:l,keepAlive:u,keepAliveTimeout:f,maxKeepAliveTimeout:p,keepAliveMaxTimeout:_,keepAliveTimeoutThreshold:v,socketPath:y,pipelining:x,tls:S,strictContentLength:C,maxCachedSessions:T,connect:E,maxRequestsPerClient:M,localAddress:V,maxResponseSize:ne,autoSelectFamily:H,autoSelectFamilyAttemptTimeout:U,maxConcurrentStreams:ie,allowH2:ce,useH2c:le,initialWindowSize:fe,connectionWindowSize:pe,pingInterval:q,webSocket:he,h2Options:J,eventSource:_e}={}){if(u!==void 0)throw new d(`unsupported keepAlive, use pipelining=0 instead`);if(r!==void 0)throw new d(`unsupported socketTimeout, use headersTimeout & bodyTimeout instead`);if(a!==void 0)throw new d(`unsupported requestTimeout, use headersTimeout & bodyTimeout instead`);if(l!==void 0)throw new d(`unsupported idleTimeout, use keepAliveTimeout instead`);if(p!==void 0)throw new d(`unsupported maxKeepAliveTimeout, use keepAliveMaxTimeout instead`);if(t!=null){if(!Number.isInteger(t)||t<1)throw new d(`invalid maxHeaderSize`)}else t=de();if(y!=null&&typeof y!=`string`)throw new d(`invalid socketPath`);if(s!=null&&(!Number.isFinite(s)||s<0))throw new d(`invalid connectTimeout`);if(f!=null&&(!Number.isFinite(f)||f<=0))throw new d(`invalid keepAliveTimeout`);if(_!=null&&(!Number.isFinite(_)||_<=0))throw new d(`invalid keepAliveMaxTimeout`);if(v!=null&&!Number.isFinite(v))throw new d(`invalid keepAliveTimeoutThreshold`);if(n!=null&&(!Number.isInteger(n)||n<0))throw new d(`headersTimeout must be a positive integer or zero`);if(c!=null&&(!Number.isInteger(c)||c<0))throw new d(`bodyTimeout must be a positive integer or zero`);if(E!=null&&typeof E!=`function`&&typeof E!=`object`)throw new d(`connect must be a function or an object`);if(M!=null&&(!Number.isInteger(M)||M<0))throw new d(`maxRequestsPerClient must be a positive number`);if(V!=null&&(typeof V!=`string`||i.isIP(V)===0))throw new d(`localAddress must be valid string IP address`);if(ne!=null&&(!Number.isInteger(ne)||ne<-1))throw new d(`maxResponseSize must be a positive number`);if(U!=null&&(!Number.isInteger(U)||U<-1))throw new d(`autoSelectFamilyAttemptTimeout must be a positive number`);if(ce!=null&&typeof ce!=`boolean`)throw new d(`allowH2 must be a valid boolean value`);if(ce!==!1){if(J!=null){if(J.useH2c!=null&&typeof J.useH2c!=`boolean`)throw new d(`h2Options.useH2c must be a valid boolean value`);if(J.settings?.initialWindowSize!=null&&(!Number.isInteger(J.settings.initialWindowSize)||J.settings.initialWindowSize<1))throw new d(`h2Options.settings.initialWindowSize must be a positive integer, greater than 0`);if(J.maxConcurrentStreams!=null&&(!Number.isInteger(J.connectionWindowSize)||J.maxConcurrentStreams<1))throw new d(`h2Options.maxConcurrentStreams must be a positive integer, greater than 0`);if(J.connectionWindowSize!=null&&(!Number.isInteger(J.connectionWindowSize)||J.connectionWindowSize<1))throw new d(`h2Options.connectionWindowSize must be a positive integer, greater than 0`);if(J.pingInterval!=null&&(typeof J.pingInterval!=`number`||!Number.isInteger(J.pingInterval)||J.pingInterval<0))throw new d(`h2Options.pingInterval must be a positive integer, greater or equal to 0`)}else{if(le!=null&&typeof le!=`boolean`)throw me(`useH2c`),new d(`useH2c must be a valid boolean value`);if(ie!=null&&(typeof ie!=`number`||ie<1))throw me(`maxConcurrentStreams`),new d(`maxConcurrentStreams must be a positive integer, greater than 0`);if(fe!=null&&(!Number.isInteger(fe)||fe<1))throw me(`initialWindowSize`),new d(`initialWindowSize must be a positive integer, greater than 0`);if(pe!=null&&(!Number.isInteger(pe)||pe<1))throw me(`connectionWindowSize`),new d(`connectionWindowSize must be a positive integer, greater than 0`);if(q!=null&&(typeof q!=`number`||!Number.isInteger(q)||q<0))throw me(`pingInterval`),new d(`pingInterval must be a positive integer, greater or equal to 0`)}}if(super({webSocket:he,eventSource:_e}),typeof E!=`function`)E=m({...S,maxCachedSessions:T,allowH2:ce,socketPath:y,useH2c:J?.useH2c??le,timeout:s,...typeof H==`boolean`?{autoSelectFamily:H,autoSelectFamilyAttemptTimeout:U}:void 0,...E});else{let e=E;E=(t,n)=>e({...t,...y==null?null:{socketPath:y},...ce==null?null:{allowH2:ce}},n)}this[h]=o.parseOrigin(e),this[ae]=`${this[h].hostname}${this[h].port?`:${this[h].port}`:``}`,this[B]=E,this[N]=x??1,this[F]=t,this[O]=f??4e3,this[I]=_??6e5,this[L]=v??2e3,this[P]=this[O],this[g]=null,this[W]=V??null,this[b]=0,this[D]=0,this[k]=`host: ${this[ae]}\r\n`,this[z]=c??3e5,this[R]=n??3e5,this[ee]=C??!0,this[te]=M,this[ue]=null,this[G]=ne>-1?ne:-1,this[K]=null,this[se]={pingInterval:J?.pingInterval??q??6e4,connectionWindowSize:J?.connectionWindowSize??pe??524288,maxConcurrentStreams:J?.maxConcurrentStreams??ie??100,sessionOptions:{initialWindowSize:J?.initialWindowSize??fe??262144}},this[w]=[],this[j]=0,this[A]=0,this[oe]=e=>ye(this,e),this[re]=e=>ge(this,e)}get pipelining(){return this[N]}set pipelining(e){this[N]=e,this[oe](!0)}get stats(){return new s(this)}get[S](){return this[w].length-this[A]}get[x](){return this[A]-this[j]}get[C](){return this[w].length-this[j]}get[T](){return!!this[K]&&!this[E]&&!this[K].destroyed}get[v](){let e=this[K]?.version===`h2`;return!!(this[K]?.busy(null)||this[C]>=(he(this)||1)||this[S]>0&&!e)}[y](e){_e(this),this.once(`connect`,e)}[U](e,t){let n=new l(this[h].origin,e,t);return this[w].push(n),this[b]||(o.bodyLength(n.body)==null&&o.isIterable(n.body)?(this[b]=1,queueMicrotask(()=>ye(this))):this[oe](!0)),this[b]&&this[D]!==2&&this[v]&&(this[D]=2),this[D]<2}[ne](){return new Promise(e=>{this[C]?this[ue]=e:e(null)})}[H](e){return new Promise(t=>{let n=this[w].splice(this[A]);for(let t=0;t<n.length;t++){let r=n[t];r!=null&&o.errorRequest(this,r,e)}let r=()=>{this[ue]&&(this[ue](),this[ue]=null),t(null)};this[K]?(this[K].destroy(e,r),this[K]=null):queueMicrotask(r),this[oe]()})}};function ge(e,t){if(e[x]===0&&t.code!==`UND_ERR_INFO`&&t.code!==`UND_ERR_SOCKET`){n(e[A]===e[j]);let r=e[w].splice(e[j]);for(let n=0;n<r.length;n++){let i=r[n];i!=null&&o.errorRequest(e,i,t)}n(e[C]===0)}}function _e(e){n(!e[E]),n(!e[K]);let{host:t,hostname:r,protocol:a,port:s}=e[h];if(r[0]===`[`){let e=r.indexOf(`]`);n(e!==-1);let t=r.substring(1,e);n(i.isIPv6(t)),r=t}e[E]=!0,c.beforeConnect.hasSubscribers&&c.beforeConnect.publish({connectParams:{host:t,hostname:r,protocol:a,port:s,version:e[K]?.version,servername:e[g],localAddress:e[W]},connector:e[B]});try{e[B]({host:t,hostname:r,protocol:a,port:s,servername:e[g],localAddress:e[W]},(i,l)=>{if(i){ve(e,i,{host:t,hostname:r,protocol:a,port:s}),e[oe]();return}if(e.destroyed){o.destroy(l.on(`error`,fe),new p),e[oe]();return}n(l);try{e[K]=l.alpnProtocol===`h2`?le(e,l):ce(e,l)}catch(n){l.destroy().on(`error`,fe),ve(e,n,{host:t,hostname:r,protocol:a,port:s}),e[oe]();return}e[E]=!1,l[V]=0,l[te]=e[te],l[_]=e,l[M]=null,c.connected.hasSubscribers&&c.connected.publish({connectParams:{host:t,hostname:r,protocol:a,port:s,version:e[K]?.version,servername:e[g],localAddress:e[W]},connector:e[B],socket:l}),e.emit(`connect`,e[h],[e]),e[oe]()})}catch(n){ve(e,n,{host:t,hostname:r,protocol:a,port:s}),e[oe]()}}function ve(e,t,{host:n,hostname:r,protocol:i,port:a}){if(!e.destroyed){if(e[E]=!1,c.connectError.hasSubscribers&&c.connectError.publish({connectParams:{host:n,hostname:r,protocol:i,port:a,version:e[K]?.version,servername:e[g],localAddress:e[W]},connector:e[B],error:t}),t.code===`ERR_TLS_CERT_ALTNAME_INVALID`){let n=e[w].splice(e[j],e[x]);e[A]=e[j];for(let r=0;r<n.length;r++)o.errorRequest(e,n[r],t);for(;e[S]>0&&e[w][e[A]].servername===e[g];){let n=e[w].splice(e[A],1)[0];o.errorRequest(e,n,t)}}else ge(e,t);e.emit(`connectionError`,e[h],[e],t)}}function Y(e){e[D]=0,e.emit(`drain`,e[h],[e])}function ye(e,t){e[b]!==2&&(e[b]=2,be(e,t),e[b]=0,e[j]>256&&(e[w].splice(0,e[j]),e[A]-=e[j],e[j]=0))}function be(e,t){for(;;){if(e.destroyed){n(e[S]===0);return}if(e[ue]&&!e[C]){e[ue](),e[ue]=null;return}if(e[K]&&e[K].resume(),e[v])e[D]=2;else if(e[D]===2){t?(e[D]=1,queueMicrotask(()=>Y(e))):Y(e);continue}if(e[S]===0||e[x]>=(he(e)||1))return;let r=e[w][e[A]];if(r===null)return;if(e[h].protocol===`https:`&&e[g]!==r.servername){if(e[x]>0)return;e[g]=r.servername,e[K]?.destroy(new f(`servername changed`),()=>{e[K]=null,ye(e)})}if(e[E])return;if(!e[K]){e[g]=r.servername,_e(e);return}if(e[K].destroyed||e[K].busy(r))return;!r.aborted&&e[K].write(r)?e[A]++:e[w].splice(e[A],1)}}t.exports=J})),Gu=s(((e,t)=>{var n=2048,r=2047,i=class{bottom=0;top=0;list=Array(n).fill(void 0);next=null;isEmpty(){return this.top===this.bottom}isFull(){return(this.top+1&r)===this.bottom}push(e){this.list[this.top]=e,this.top=this.top+1&r}shift(){let e=this.list[this.bottom];return e===void 0?null:(this.list[this.bottom]=void 0,this.bottom=this.bottom+1&r,e)}};t.exports=class{constructor(){this.head=this.tail=new i}isEmpty(){return this.head.isEmpty()}push(e){this.head.isFull()&&(this.head=this.head.next=new i),this.head.push(e)}shift(){let e=this.tail,t=e.shift();return e.isEmpty()&&e.next!==null&&(this.tail=e.next,e.next=null),t}}})),Ku=s(((e,t)=>{var{PoolStats:n}=xu(),r=Tu(),i=Gu(),{kConnected:a,kSize:o,kRunning:s,kPending:c,kQueued:l,kBusy:u,kFree:d,kUrl:f,kClose:p,kDestroy:m,kDispatch:h}=Z(),g=Symbol(`clients`),_=Symbol(`needDrain`),v=Symbol(`queue`),y=Symbol(`closed resolve`),b=Symbol(`onDrain`),x=Symbol(`onConnect`),S=Symbol(`onDisconnect`),C=Symbol(`onConnectionError`),w=Symbol(`get dispatcher`),T=Symbol(`has dispatcher`),E=Symbol(`add client`),D=Symbol(`remove client`);t.exports={PoolBase:class extends r{[v]=new i;[l]=0;[g]=[];[_]=!1;[b](e,t,n){let r=this[v],i=!1;for(;!i;){let t=r.shift();if(!t)break;this[l]--,i=!e.dispatch(t.opts,t.handler)}if(e[_]=i,!i&&this[_]&&(this[_]=!1,this.emit(`drain`,t,[this,...n])),this[y]&&r.isEmpty()){let e=[];for(let t=0;t<this[g].length;t++){let n=this[g][t];n.destroyed||e.push(n.close())}return Promise.all(e).then(this[y])}}[x]=(e,t)=>{this.emit(`connect`,e,[this,...t])};[S]=(e,t,n)=>{this.emit(`disconnect`,e,[this,...t],n)};[C]=(e,t,n)=>{this.emit(`connectionError`,e,[this,...t],n)};get[u](){return this[_]}get[a](){let e=0;for(let{[a]:t}of this[g])e+=t;return e}get[d](){let e=0;for(let{[a]:t,[_]:n}of this[g])e+=t&&!n;return e}get[c](){let e=this[l];for(let{[c]:t}of this[g])e+=t;return e}get[s](){let e=0;for(let{[s]:t}of this[g])e+=t;return e}get[o](){let e=this[l];for(let{[o]:t}of this[g])e+=t;return e}get stats(){return new n(this)}[p](){if(this[v].isEmpty()){let e=[];for(let t=0;t<this[g].length;t++){let n=this[g][t];n.destroyed||e.push(n.close())}return Promise.all(e)}return new Promise(e=>{this[y]=e})}[m](e){for(;;){let t=this[v].shift();if(!t)break;t.handler.onResponseError(null,e)}let t=Array(this[g].length);for(let n=0;n<this[g].length;n++)t[n]=this[g][n].destroy(e);return Promise.all(t)}[h](e,t){let n=this[w]();return n?n.dispatch(e,t)||(n[_]=!0,this[_]=!this[T]()):(this[_]=!0,this[v].push({opts:e,handler:t}),this[l]++),!this[_]}[T](){for(let e=0;e<this[g].length;e++){let t=this[g][e];if(!t[_]&&t.closed!==!0&&t.destroyed!==!0)return!0}return!1}[E](e){return e.on(`drain`,this[b].bind(this,e)).on(`connect`,this[x]).on(`disconnect`,this[S]).on(`connectionError`,this[C]),this[g].push(e),this[_]&&queueMicrotask(()=>{this[_]&&this[b](e,e[f],[e,this])}),this}[D](e){let t=this[g].indexOf(e);t!==-1&&this[g].splice(t,1),e.close(()=>{}),this[_]=!this[g].some(e=>!e[_]&&e.closed!==!0&&e.destroyed!==!0)}},kClients:g,kNeedDrain:_,kAddClient:E,kRemoveClient:D,kGetDispatcher:w,kHasDispatcher:T}})),qu=s(((e,t)=>{var{PoolBase:n,kClients:r,kNeedDrain:i,kAddClient:a,kGetDispatcher:o,kHasDispatcher:s,kRemoveClient:c}=Ku(),l=Wu(),{InvalidArgumentError:u}=Q(),d=$(),{kUrl:f}=Z(),p=Eu(),m=Symbol(`options`),h=Symbol(`connections`),g=Symbol(`factory`);function _(e,t){return new l(e,t)}t.exports=class extends n{constructor(e,{connections:t,factory:n=_,connect:i,connectTimeout:a,tls:o,maxCachedSessions:s,socketPath:c,autoSelectFamily:l,autoSelectFamilyAttemptTimeout:v,allowH2:y,useH2c:b,clientTtl:x,...S}={}){if(t!=null&&(!Number.isFinite(t)||t<0))throw new u(`invalid connections`);if(typeof n!=`function`)throw new u(`factory must be a function.`);if(i!=null&&typeof i!=`function`&&typeof i!=`object`)throw new u(`connect must be a function or an object`);typeof i!=`function`&&(i=p({...o,maxCachedSessions:s,allowH2:y,useH2c:b,socketPath:c,timeout:a,...typeof l==`boolean`?{autoSelectFamily:l,autoSelectFamilyAttemptTimeout:v}:void 0,...i})),super(S),this[h]=t||null,this[f]=d.parseOrigin(e),this[m]={...d.deepClone(S),connect:i,allowH2:y,useH2c:b,clientTtl:x,socketPath:c},this[g]=n,this.on(`connect`,(e,t)=>{if(x!=null&&x>0)for(let e of t)Object.assign(e,{ttl:Date.now()})}),this.on(`connectionError`,(e,t,n)=>{for(let e of t){let t=this[r].indexOf(e);t!==-1&&this[r].splice(t,1)}})}[o](){let e=this[m].clientTtl;for(let t=0;t<this[r].length;t++){let n=this[r][t];if(e!=null&&e>0&&n.ttl&&Date.now()-n.ttl>e)this[c](n),t--;else if(!n[i])return n}if(!this[h]||this[r].length<this[h]){let e=this[g](this[f],this[m]);return this[a](e),e}}[s](){let e=this[m].clientTtl;for(let t=0;t<this[r].length;t++){let n=this[r][t];if(e!=null&&e>0&&n.ttl&&Date.now()-n.ttl>e)this[c](n),t--;else if(!n[i])return!0}if(!this[h]||this[r].length<this[h]){let e=this[g](this[f],this[m]);return this[a](e),!0}return!1}}})),Ju=s(((e,t)=>{var{BalancedPoolMissingUpstreamError:n,InvalidArgumentError:r}=Q(),{PoolBase:i,kClients:a,kNeedDrain:o,kAddClient:s,kRemoveClient:c,kGetDispatcher:l}=Ku(),u=qu(),{kUrl:d}=Z(),f=$(),p=Symbol(`factory`),m=Symbol(`options`),h=Symbol(`kGreatestCommonDivisor`),g=Symbol(`kCurrentWeight`),_=Symbol(`kIndex`),v=Symbol(`kWeight`),y=Symbol(`kMaxWeightPerServer`),b=Symbol(`kErrorPenalty`);function x(e,t){if(e===0)return t;for(;t!==0;){let n=t;t=e%t,e=n}return e}function S(e,t){return new u(e,t)}t.exports=class extends i{constructor(e=[],{factory:t=S,...n}={}){if(typeof t!=`function`)throw new r(`factory must be a function.`);super(n),this[m]={...f.deepClone(n)},this[_]=-1,this[g]=0,this[y]=this[m].maxWeightPerServer||100,this[b]=this[m].errorPenalty||15,Array.isArray(e)||(e=[e]),this[p]=t;for(let t of e)this.addUpstream(t);this._updateBalancedPoolStats()}addUpstream(e){let t=f.parseOrigin(e).origin;if(this[a].find(e=>e[d].origin===t&&e.closed!==!0&&e.destroyed!==!0))return this;let n=this[p](t,this[m]);this[s](n),n.on(`connect`,()=>{n[v]=Math.min(this[y],n[v]+this[b])}),n.on(`connectionError`,()=>{n[v]=Math.max(1,n[v]-this[b]),this._updateBalancedPoolStats()}),n.on(`disconnect`,(...e)=>{let t=e[2];t&&t.code===`UND_ERR_SOCKET`&&(n[v]=Math.max(1,n[v]-this[b]),this._updateBalancedPoolStats())});for(let e of this[a])e[v]=this[y];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let e=0;for(let t=0;t<this[a].length;t++)e=x(this[a][t][v],e);this[h]=e}removeUpstream(e){let t=f.parseOrigin(e).origin,n=this[a].find(e=>e[d].origin===t&&e.closed!==!0&&e.destroyed!==!0);return n&&this[c](n),this}getUpstream(e){let t=f.parseOrigin(e).origin;return this[a].find(e=>e[d].origin===t&&e.closed!==!0&&e.destroyed!==!0)}get upstreams(){return this[a].filter(e=>e.closed!==!0&&e.destroyed!==!0).map(e=>e[d].origin)}[l](){if(this[a].length===0)throw new n;let e=0,t=-1;for(;e++<this[a].length;){this[_]=(this[_]+1)%this[a].length;let e=this[a][this[_]];if(this[_]===0&&(this[g]=this[g]-this[h],this[g]<=0&&(this[g]=this[y])),!(e[o]||e.closed===!0||e.destroyed===!0)&&((t===-1||e[v]>this[a][t][v])&&(t=this[_]),e[v]>=this[g]))return e}if(t!==-1)return this[g]=this[a][t][v],this[_]=t,this[a][t]}}})),Yu=s(((e,t)=>{var{PoolBase:n,kClients:r,kNeedDrain:i,kAddClient:a,kGetDispatcher:o,kHasDispatcher:s,kRemoveClient:c}=Ku(),l=Wu(),{InvalidArgumentError:u}=Q(),d=$(),{kUrl:f}=Z(),p=Eu(),m=Symbol(`options`),h=Symbol(`connections`),g=Symbol(`factory`),_=Symbol(`index`);function v(e,t){return new l(e,t)}t.exports=class extends n{constructor(e,{connections:t,factory:n=v,connect:i,connectTimeout:a,tls:o,maxCachedSessions:s,socketPath:c,autoSelectFamily:l,autoSelectFamilyAttemptTimeout:y,allowH2:b,clientTtl:x,...S}={}){if(t!=null&&(!Number.isFinite(t)||t<0))throw new u(`invalid connections`);if(typeof n!=`function`)throw new u(`factory must be a function.`);if(i!=null&&typeof i!=`function`&&typeof i!=`object`)throw new u(`connect must be a function or an object`);typeof i!=`function`&&(i=p({...o,maxCachedSessions:s,allowH2:b,socketPath:c,timeout:a,...typeof l==`boolean`?{autoSelectFamily:l,autoSelectFamilyAttemptTimeout:y}:void 0,...i})),super(S),this[h]=t||null,this[f]=d.parseOrigin(e),this[m]={...d.deepClone(S),connect:i,allowH2:b,clientTtl:x,socketPath:c},this[g]=n,this[_]=-1,this.on(`connect`,(e,t)=>{if(x!=null&&x>0)for(let e of t)Object.assign(e,{ttl:Date.now()})}),this.on(`connectionError`,(e,t,n)=>{for(let e of t){let t=this[r].indexOf(e);t!==-1&&this[r].splice(t,1)}})}[o](){let e=this[m].clientTtl;if(this[r].length===0){let e=this[g](this[f],this[m]);return this[a](e),e}let t=0;for(;t<this[r].length;){this[_]=(this[_]+1)%this[r].length;let n=this[r][this[_]];if(e!=null&&e>0&&n.ttl&&Date.now()-n.ttl>e){this[c](n),this[_]--;continue}if(!n[i])return n;t++}if(!this[h]||this[r].length<this[h]){let e=this[g](this[f],this[m]);return this[a](e),e}}[s](){let e=this[m].clientTtl;for(let t=0;t<this[r].length;t++){let n=this[r][t];if(e!=null&&e>0&&n.ttl&&Date.now()-n.ttl>e)this[c](n),t<=this[_]&&this[_]--,t--;else if(!n[i])return!0}if(!this[h]||this[r].length<this[h]){let e=this[g](this[f],this[m]);return this[a](e),!0}return!1}}})),Xu=s(((e,t)=>{var{InvalidArgumentError:n,MaxOriginsReachedError:r}=Q(),{kBusy:i,kClients:a,kConnected:o,kRunning:s,kPending:c,kClose:l,kDestroy:u,kDispatch:d,kUrl:f}=Z(),p=Tu(),m=qu(),h=Wu(),g=$(),_=Symbol(`onConnect`),v=Symbol(`onDisconnect`),y=Symbol(`onConnectionError`),b=Symbol(`onDrain`),x=Symbol(`factory`),S=Symbol(`options`),C=Symbol(`origins`);function w(e,t){return t&&t.connections===1?new h(e,t):new m(e,t)}t.exports=class extends p{constructor({factory:e=w,maxOrigins:t=1/0,connect:r,...i}={}){if(typeof e!=`function`)throw new n(`factory must be a function.`);if(r!=null&&typeof r!=`function`&&typeof r!=`object`)throw new n(`connect must be a function or an object`);if(typeof t!=`number`||Number.isNaN(t)||t<=0)throw new n(`maxOrigins must be a number greater than 0`);super(i),r&&typeof r!=`function`&&(r={...r}),this[S]={...g.deepClone(i),maxOrigins:t,connect:r},this[x]=e,this[a]=new Map,this[C]=new Set,this[b]=(e,t)=>{this.emit(`drain`,e,[this,...t])},this[_]=(e,t)=>{this.emit(`connect`,e,[this,...t])},this[v]=(e,t,n)=>{this.emit(`disconnect`,e,[this,...t],n)},this[y]=(e,t,n)=>{this.emit(`connectionError`,e,[this,...t],n)}}get[s](){let e=0;for(let t of this[a].values())e+=t[s];return e}[d](e,t){let s;if(e.origin&&(typeof e.origin==`string`||e.origin instanceof URL))s=String(e.origin);else throw new n(`opts.origin must be a non-empty string or URL.`);let l=e.allowH2??this[S].allowH2,u=l===!1?`${s}#http1-only`:s;if(this[C].size>=this[S].maxOrigins&&!this[C].has(s))throw new r;let d=this[a].get(u);if(!d){d=this[x](e.origin,l===!1?{...this[S],allowH2:!1}:this[S]);let t=()=>{if(this[a].get(u)!==d||d[o]>0||d[i]||d[c]>0)return;this[a].delete(u),d.destroyed||d.close();let e=!1;for(let t of this[a].keys())if(t===s||t===`${s}#http1-only`){e=!0;break}e||this[C].delete(s)};d.on(`drain`,this[b]).on(`connect`,this[_]).on(`disconnect`,(e,n,r)=>{t(),this[v](e,n,r)}).on(`connectionError`,(e,n,r)=>{t(),this[y](e,n,r)}),this[a].set(u,d),this[C].add(s)}return d.dispatch(e,t)}[l](){let e=[];for(let t of this[a].values())e.push(t.close());return this[a].clear(),Promise.all(e)}[u](e){let t=[];for(let n of this[a].values())t.push(n.destroy(e));return this[a].clear(),Promise.all(t)}get stats(){let e={};for(let t of this[a].values())t.stats&&(e[t[f].origin]=t.stats);return e}}})),Zu=s(((e,t)=>{var n=wu(),{InvalidArgumentError:r}=Q(),{toRawHeaders:i}=$(),a=class{#e;constructor(e){this.#e=e}onRequestStart(e,t){this.#e.onConnect?.(t=>e.abort(t),t)}onRequestUpgrade(e,t,n,r){let a=e?.rawHeaders??i(n??{});this.#e.onUpgrade?.(t,a,r)}onResponseStart(e,t,n,r){let a=e?.rawHeaders??i(n??{});this.#e.onHeaders?.(t,a,()=>e.resume(),r)===!1&&e.pause()}onResponseData(e,t){this.#e.onData?.(t)===!1&&e.pause()}onResponseEnd(e,t){let n=e?.rawTrailers??i(t??{});this.#e.onComplete?.(n)}onResponseError(e,t){if(!this.#e.onError)throw t;this.#e.onError(t)}onBodySent(e){this.#e.onBodySent?.(e)}onRequestSent(){this.#e.onRequestSent?.()}onResponseStarted(){this.#e.onResponseStarted?.()}};t.exports=class e extends n{#e;constructor(e){if(super(),!e||typeof e.dispatch!=`function`)throw new r(`Argument dispatcher must implement dispatch`);this.#e=e}static wrapHandler(e){if(!e||typeof e!=`object`)throw new r(`handler must be an object`);return typeof e.onRequestStart==`function`?e:new a(e)}dispatch(t,n){return t.allowH2!==!1&&(t={...t,allowH2:!1}),this.#e.dispatch(t,e.wrapHandler(n))}close(...e){return this.#e.close(...e)}destroy(...e){return this.#e.destroy(...e)}}})),Qu=s(((e,t)=>{var{Buffer:n}=r(`node:buffer`),i=r(`node:net`),{InvalidArgumentError:a}=Q();function o(e){if(i.isIPv4(e)){let t=e.split(`.`).map(Number);return{type:1,buffer:n.from(t)}}if(i.isIPv6(e))return{type:4,buffer:s(e)};let t=n.from(e,`utf8`);if(t.length>255)throw new a(`Domain name too long (max 255 bytes)`);return{type:3,buffer:n.concat([n.from([t.length]),t])}}function s(e){let t=n.alloc(16),r=e;if(e.includes(`.`)){let t=e.lastIndexOf(`:`),n=e.slice(t+1);if(i.isIPv4(n)){let i=n.split(`.`).map(Number),a=(i[0]<<8|i[1]).toString(16),o=(i[2]<<8|i[3]).toString(16);r=`${e.slice(0,t)}:${a}:${o}`}}let a=r.indexOf(`::`);if(a!==-1){let e=r.slice(0,a),n=r.slice(a+2),i=e===``?[]:e.split(`:`),o=n===``?[]:n.split(`:`),s=0;for(let e of i)t.writeUInt16BE(parseInt(e,16),s),s+=2;s=16-o.length*2;for(let e of o)t.writeUInt16BE(parseInt(e,16),s),s+=2}else{let e=r.split(`:`);for(let n=0;n<e.length;n++)t.writeUInt16BE(parseInt(e[n],16),n*2)}return t}function c(e,t,r){let i=n.allocUnsafe(2);return i.writeUInt16BE(r,0),n.concat([n.from([e]),t,i])}function l(e,t=0){if(e.length<t+1)throw new a(`Buffer too small to contain address type`);let n=e[t],r,i=t+1;switch(n){case 1:if(e.length<i+6)throw new a(`Buffer too small for IPv4 address`);r=Array.from(e.subarray(i,i+4)).join(`.`),i+=4;break;case 3:{if(e.length<i+1)throw new a(`Buffer too small for domain length`);let t=e[i];if(i+=1,e.length<i+t+2)throw new a(`Buffer too small for domain address`);r=e.subarray(i,i+t).toString(`utf8`),i+=t;break}case 4:{if(e.length<i+18)throw new a(`Buffer too small for IPv6 address`);let t=[];for(let n=0;n<8;n++){let r=e.readUInt16BE(i+n*2);t.push(r.toString(16))}r=t.join(`:`),i+=16;break}default:throw new a(`Invalid address type: ${n}`)}if(e.length<i+2)throw new a(`Buffer too small for port`);let o=e.readUInt16BE(i);return i+=2,{address:r,port:o,bytesRead:i-t}}function u(e){let t={1:`General SOCKS server failure`,2:`Connection not allowed by ruleset`,3:`Network unreachable`,4:`Host unreachable`,5:`Connection refused`,6:`TTL expired`,7:`Command not supported`,8:`Address type not supported`}[e]||`Unknown SOCKS5 error code: ${e}`,n=Error(t);return n.code=`SOCKS5_${e}`,n}t.exports={parseAddress:o,parseIPv6:s,buildAddressBuffer:c,parseResponseAddress:l,createReplyError:u}})),$u=s(((e,t)=>{var{EventEmitter:n}=r(`node:events`),{Buffer:i}=r(`node:buffer`),{InvalidArgumentError:a,Socks5ProxyError:o}=Q(),{debuglog:s}=r(`node:util`),{parseAddress:c}=Qu(),l=s(`undici:socks5`),u=i.alloc(0),d=5,f={NO_AUTH:0,GSSAPI:1,USERNAME_PASSWORD:2,NO_ACCEPTABLE:255},p={CONNECT:1,BIND:2,UDP_ASSOCIATE:3},m={IPV4:1,DOMAIN:3,IPV6:4},h={SUCCEEDED:0,GENERAL_FAILURE:1,CONNECTION_NOT_ALLOWED:2,NETWORK_UNREACHABLE:3,HOST_UNREACHABLE:4,CONNECTION_REFUSED:5,TTL_EXPIRED:6,COMMAND_NOT_SUPPORTED:7,ADDRESS_TYPE_NOT_SUPPORTED:8},g={INITIAL:`initial`,HANDSHAKING:`handshaking`,AUTHENTICATING:`authenticating`,AUTHENTICATED:`authenticated`,CONNECTING:`connecting`,CONNECTED:`connected`,ERROR:`error`,CLOSED:`closed`};t.exports={Socks5Client:class extends n{constructor(e,t={}){if(super(),!e)throw new a(`socket is required`);this.socket=e,this.options=t,this.state=g.INITIAL,this.buffer=u,this.onSocketData=this.onData.bind(this),this.onSocketError=this.onError.bind(this),this.onSocketClose=this.onClose.bind(this),this.authMethods=[],t.username&&t.password&&this.authMethods.push(f.USERNAME_PASSWORD),this.authMethods.push(f.NO_AUTH),this.socket.on(`data`,this.onSocketData),this.socket.on(`error`,this.onSocketError),this.socket.on(`close`,this.onSocketClose)}onData(e){l(`received data`,e.length,`bytes in state`,this.state),this.buffer=i.concat([this.buffer,e]);try{switch(this.state){case g.HANDSHAKING:this.handleHandshakeResponse();break;case g.AUTHENTICATING:this.handleAuthResponse();break;case g.CONNECTING:this.handleConnectResponse()}}catch(e){this.onError(e)}}onError(e){l(`socket error`,e),this.state=g.ERROR,this.emit(`error`,e),this.destroy()}onClose(){l(`socket closed`),this.state=g.CLOSED,this.emit(`close`)}destroy(){this.socket&&!this.socket.destroyed&&this.socket.destroy()}markAuthenticated(){this.state=g.AUTHENTICATED,this.emit(`authenticated`)}handshake(){if(this.state!==g.INITIAL)throw new a(`Handshake already started`);l(`starting handshake with`,this.authMethods.length,`auth methods`),this.state=g.HANDSHAKING;let e=i.alloc(2+this.authMethods.length);e[0]=d,e[1]=this.authMethods.length,this.authMethods.forEach((t,n)=>{e[2+n]=t}),this.socket.write(e)}handleHandshakeResponse(){if(this.buffer.length<2)return;let e=this.buffer[0],t=this.buffer[1];if(e!==d)throw new o(`Invalid SOCKS version: ${e}`,`UND_ERR_SOCKS5_VERSION`);if(t===f.NO_ACCEPTABLE)throw new o(`No acceptable authentication method`,`UND_ERR_SOCKS5_AUTH_REJECTED`);if(this.buffer=this.buffer.subarray(2),l(`server selected auth method`,t),t===f.NO_AUTH)this.markAuthenticated();else if(t===f.USERNAME_PASSWORD)this.state=g.AUTHENTICATING,this.sendAuthRequest();else throw new o(`Unsupported authentication method: ${t}`,`UND_ERR_SOCKS5_AUTH_METHOD`)}sendAuthRequest(){let{username:e,password:t}=this.options;if(!e||!t)throw new a(`Username and password required for authentication`);l(`sending username/password auth`);let n=i.from(e),r=i.from(t);if(n.length>255||r.length>255)throw new a(`Username or password too long`);let o=i.alloc(3+n.length+r.length);o[0]=1,o[1]=n.length,n.copy(o,2),o[2+n.length]=r.length,r.copy(o,3+n.length),this.socket.write(o)}handleAuthResponse(){if(this.buffer.length<2)return;let e=this.buffer[0],t=this.buffer[1];if(e!==1)throw new o(`Invalid auth sub-negotiation version: ${e}`,`UND_ERR_SOCKS5_AUTH_VERSION`);if(t!==0)throw new o(`Authentication failed`,`UND_ERR_SOCKS5_AUTH_FAILED`);this.buffer=this.buffer.subarray(2),l(`authentication successful`),this.markAuthenticated()}connect(e,t){if(this.state===g.CONNECTING||this.state===g.CONNECTED)throw new a(`Connection already in progress`);if(this.state!==g.AUTHENTICATED)throw new a(`Client must be authenticated before CONNECT`);l(`connecting to`,e,t),this.state=g.CONNECTING;let n=this.buildConnectRequest(p.CONNECT,e,t);this.socket.write(n)}buildConnectRequest(e,t,n){let{type:r,buffer:a}=c(t),o=i.alloc(4+a.length+2);return o[0]=d,o[1]=e,o[2]=0,o[3]=r,a.copy(o,4),o.writeUInt16BE(n,4+a.length),o}handleConnectResponse(){if(this.buffer.length<4)return;let e=this.buffer[0],t=this.buffer[1],n=this.buffer[3];if(e!==d)throw new o(`Invalid SOCKS version in reply: ${e}`,`UND_ERR_SOCKS5_REPLY_VERSION`);let r=4;if(n===m.IPV4)r+=6;else if(n===m.DOMAIN){if(this.buffer.length<5)return;r+=1+this.buffer[4]+2}else if(n===m.IPV6)r+=18;else throw new o(`Invalid address type in reply: ${n}`,`UND_ERR_SOCKS5_ADDR_TYPE`);if(this.buffer.length<r)return;if(t!==h.SUCCEEDED)throw new o(`SOCKS5 connection failed: ${this.getReplyErrorMessage(t)}`,`UND_ERR_SOCKS5_REPLY_${t}`);let i,a=4;if(n===m.IPV4)i=Array.from(this.buffer.subarray(a,a+4)).join(`.`),a+=4;else if(n===m.DOMAIN){let e=this.buffer[a];a+=1,i=this.buffer.subarray(a,a+e).toString(),a+=e}else if(n===m.IPV6){let e=[];for(let t=0;t<8;t++){let n=this.buffer.readUInt16BE(a+t*2);e.push(n.toString(16))}i=e.join(`:`),a+=16}let s=this.buffer.readUInt16BE(a);this.buffer=u,this.state=g.CONNECTED,this.socket.removeListener(`data`,this.onSocketData),l(`connected, bound address:`,i,`port:`,s),this.emit(`connected`,{address:i,port:s})}getReplyErrorMessage(e){switch(e){case h.GENERAL_FAILURE:return`General SOCKS server failure`;case h.CONNECTION_NOT_ALLOWED:return`Connection not allowed by ruleset`;case h.NETWORK_UNREACHABLE:return`Network unreachable`;case h.HOST_UNREACHABLE:return`Host unreachable`;case h.CONNECTION_REFUSED:return`Connection refused`;case h.TTL_EXPIRED:return`TTL expired`;case h.COMMAND_NOT_SUPPORTED:return`Command not supported`;case h.ADDRESS_TYPE_NOT_SUPPORTED:return`Address type not supported`;default:return`Unknown error code: ${e}`}}},AUTH_METHODS:f,COMMANDS:p,ADDRESS_TYPES:m,REPLY_CODES:h,STATES:g}})),ed=s(((e,t)=>{var{URL:n}=r(`node:url`),i,a=Tu(),{InvalidArgumentError:o}=Q(),{Socks5Client:s,STATES:c}=$u(),{kBusy:l,kConnected:u,kDispatch:d,kClose:f,kDestroy:p}=Z(),m=qu(),h=Eu(),{debuglog:g}=r(`node:util`),_=g(`undici:socks5-proxy`),v=Symbol(`proxy url`),y=Symbol(`proxy headers`),b=Symbol(`proxy auth`),x=Symbol(`proxy protocol`),S=Symbol(`pools`),C=Symbol(`connector`),w=Symbol(`request tls settings`),T=!1;t.exports=class extends a{constructor(e,t={}){if(super(t),T||=(process.emitWarning(`SOCKS5 proxy support is experimental and subject to change`,`ExperimentalWarning`),!0),!e)throw new o(`Proxy URL is mandatory`);let r=typeof e==`string`?new n(e):e;if(r.protocol!==`socks5:`&&r.protocol!==`socks:`)throw new o(`Proxy URL must use socks5:// or socks:// protocol`);this[v]=r,this[y]=t.headers||{},this[x]=t.proxyTls?`https:`:`http:`,this[w]=t.requestTls,this[b]={username:t.username||(r.username?decodeURIComponent(r.username):null),password:t.password||(r.password?decodeURIComponent(r.password):null)},this[C]=t.connect||h({...t.proxyTls,servername:t.proxyTls?.servername||r.hostname}),this[S]=new Map}async createSocks5Connection(e,t){let n=this[v].hostname,r=parseInt(this[v].port)||1080;_(`creating SOCKS5 connection to`,n,r);let i=Promise.withResolvers();this[C]({hostname:n,host:n,port:r,protocol:this[x]},(e,t)=>{e?i.reject(e):i.resolve(t)});let a=await i.promise,o=new s(a,this[b]);o.on(`error`,e=>{_(`SOCKS5 error:`,e),a.destroy()}),await o.handshake();let l=Promise.withResolvers(),u=setTimeout(()=>{o.destroy(),l.reject(Error(`SOCKS5 authentication timeout`))},5e3),d=()=>{clearTimeout(u),o.removeListener(`error`,f),l.resolve()},f=e=>{clearTimeout(u),o.removeListener(`authenticated`,d),l.reject(e)};o.state===c.AUTHENTICATED?(clearTimeout(u),l.resolve()):(o.once(`authenticated`,d),o.once(`error`,f)),await l.promise,await o.connect(e,t);let p=Promise.withResolvers(),m=setTimeout(()=>{o.destroy(),p.reject(Error(`SOCKS5 connection timeout`))},5e3),h=n=>{_(`SOCKS5 tunnel established to`,e,t,`via`,n),clearTimeout(m),o.removeListener(`error`,g),p.resolve()},g=e=>{clearTimeout(m),o.removeListener(`connected`,h),p.reject(e)};return o.once(`connected`,h),o.once(`error`,g),await p.promise,a}[d](e,t){let{origin:a}=e;_(`dispatching request to`,a,`via SOCKS5`);try{let o=String(a),s=this[S].get(o);if(!s||s.destroyed||s.closed){s=new m(a,{pipelining:e.pipelining,connections:e.connections,connect:async(e,t)=>{try{let e=new n(a),o=e.hostname,s=parseInt(e.port)||(e.protocol===`https:`?443:80);_(`establishing SOCKS5 connection to`,o,s);let c=await this.createSocks5Connection(o,s),l=c;if(e.protocol===`https:`){i||=r(`node:tls`),_(`upgrading to TLS`),l=i.connect({...this[w],socket:c,servername:this[w]?.servername||o});let e=Promise.withResolvers();l.once(`secureConnect`,e.resolve),l.once(`error`,e.reject),await e.promise}t(null,l)}catch(e){_(`SOCKS5 connection error:`,e),t(e)}}}),this[S].set(o,s);let t=()=>{this[S].get(o)!==s||s[u]>0||s[l]||(this[S].delete(o),s.destroyed||s.close())};s.on(`disconnect`,t),s.on(`connectionError`,t)}return s[d](e,t)}catch(e){if(_(`dispatch error:`,e),typeof t.onResponseError==`function`)return t.onResponseError(null,e),!1;if(typeof t.onError==`function`)return t.onError(e),!1;throw e}}async[f](){let e=[];for(let t of this[S].values())e.push(t.close());this[S].clear(),await Promise.all(e)}async[p](e){let t=[];for(let n of this[S].values())t.push(n.destroy(e));this[S].clear(),await Promise.all(t)}}})),td=s(((e,t)=>{var{kProxy:n,kClose:r,kDestroy:i,kDispatch:a}=Z(),o=Xu(),s=qu(),c=Tu(),{InvalidArgumentError:l,RequestAbortedError:u,SecureProxyConnectionError:d,ProxyConnectionError:f}=Q(),p=Eu(),m=Wu(),{channels:h}=Su(),g=ed(),_=Symbol(`proxy agent`),v=Symbol(`proxy client`),y=Symbol(`proxy headers`),b=Symbol(`request tls settings`),x=Symbol(`proxy tls settings`),S=Symbol(`connect endpoint function`),C=Symbol(`connect endpoint function (http/1.1 only)`),w=Symbol(`tunnel proxy`),T=`proxy-authorization`;function E(e){return e===`https:`?443:80}function D(e,t){return new s(e,t)}var O=()=>{};function k(e,t){return t.connections===1?new m(e,t):new s(e,t)}function A(e,t){return t===!0||e!==`http:`}var j=class extends c{#e;#t;constructor(e,{headers:t={},connect:n,factory:r,proxyServername:i}){if(!e)throw new l(`Proxy URL is mandatory`);super(),this[y]=t,this.#t=i,this.#e=r?r(e,{connect:n}):new m(e,{connect:n})}[a](e,t){let n=t.onResponseStart;t.onResponseStart=function(e,r,i,a){if(r===407){typeof t.onResponseError==`function`&&t.onResponseError(e,new l(`Proxy Authentication Required (407)`));return}n&&n.call(this,e,r,i,a)};let{origin:r,path:i=`/`,headers:o={}}=e;if(e.path=r+i,!(`host`in o)&&!(`Host`in o)){let{host:e}=new URL(r);o.host=e}return e.headers={...this[y],...o},this.#t!=null&&(e.servername=this.#t),this.#e[a](e,t)}[r](){return this.#e.close()}[i](e){return this.#e.destroy(e)}},M=class extends c{constructor(e){if(!e||typeof e==`object`&&!(e instanceof URL)&&!e.uri)throw new l(`Proxy uri is mandatory`);let{clientFactory:t=D}=e;if(typeof t!=`function`)throw new l(`Proxy opts.clientFactory must be a function.`);let{proxyTunnel:r,connectTimeout:i}=e;super(e);let a=this.#e(e),{href:s,origin:c,port:m,protocol:T,username:M,password:N,hostname:P}=a;if(this[n]={uri:s,protocol:T},this[b]=e.requestTls,this[x]=e.proxyTls,this[y]=e.headers||{},this[w]=r,e.auth&&e.token)throw new l(`opts.auth cannot be used in combination with opts.token`);e.auth?this[y][`proxy-authorization`]=`Basic ${e.auth}`:e.token?this[y][`proxy-authorization`]=e.token:M&&N?this[y][`proxy-authorization`]=`Basic ${Buffer.from(`${decodeURIComponent(M)}:${decodeURIComponent(N)}`).toString(`base64`)}`:M&&(this[y][`proxy-authorization`]=`Basic ${Buffer.from(`${decodeURIComponent(M)}:`).toString(`base64`)}`);let F=p({timeout:i,...e.proxyTls}),I=p({timeout:i,...e.proxyTls,allowH2:!1});this[S]=p({timeout:i,...e.requestTls}),this[C]=p({timeout:i,...e.requestTls,allowH2:!1});let L=e.factory||k,R=(t,r)=>{let{protocol:i}=new URL(t);if(this[n].protocol===`socks5:`||this[n].protocol===`socks:`)return new g(this[n].uri,{headers:this[y],connect:F,factory:L,username:e.username||M,password:e.password||N,proxyTls:e.proxyTls,requestTls:e.requestTls});if(!A(i,this[w])){let e=this[n].protocol===`https:`?(e,t)=>I(e,(e,n)=>{e&&e.code===`ERR_TLS_CERT_ALTNAME_INVALID`?t(new d(e)):t(e,n)}):I;return new j(this[n].uri,{headers:this[y],connect:e,factory:L,proxyServername:this[n].protocol===`https:`?this[x]?.servername||P:void 0})}return L(t,r)};this[v]=T===`socks5:`||T===`socks:`?null:t(a,{connect:F}),this[_]=new o({...e,factory:R,connect:async(e,t)=>{if(!this[v]){t(new l(`Cannot establish tunnel connection without a proxy client`));return}let n=e.host;e.port||(n+=`:${E(e.protocol)}`);try{let r={origin:c,port:m,path:n,signal:e.signal,headers:{...this[y],host:e.host,...e.connections==null||e.connections>0?{"proxy-connection":`keep-alive`}:{}},servername:this[x]?.servername||P},{socket:i,statusCode:a}=await this[v].connect(r);if(a!==200){i.on(`error`,O).destroy(),t(new u(`Proxy response (${a}) !== 200 when HTTP Tunneling`));return}if(h.proxyConnected.hasSubscribers&&h.proxyConnected.publish({socket:i,connectParams:r}),e.protocol!==`https:`){t(null,i);return}let o;o=this[b]?this[b].servername:e.servername,(e.allowH2===!1?this[C]:this[S])({...e,servername:o,httpSocket:i},t)}catch(e){e.code===`ERR_TLS_CERT_ALTNAME_INVALID`?t(new d(e)):e.code===`UND_ERR_SOCKET`?t(new f(e)):t(e)}}})}dispatch(e,t){let n=N(e.headers);if(P(n),n&&!(`host`in n)&&!(`Host`in n)){let{host:t}=new URL(e.origin);n.host=t}return this[_].dispatch({...e,headers:n},t)}#e(e){return typeof e==`string`?new URL(e):e instanceof URL?e:new URL(e.uri)}[r](){let e=[this[_].close()];return this[v]&&e.push(this[v].close()),Promise.all(e)}[i](){let e=[this[_].destroy()];return this[v]&&e.push(this[v].destroy()),Promise.all(e)}};function N(e){if(Array.isArray(e)){let t={};for(let n=0;n<e.length;n+=2)F(e[n])&&I(),t[e[n]]=e[n+1];return t}return e}function P(e){for(let t in e)F(t)&&I()}function F(e){return e.length===19&&e.toLowerCase()===T}function I(){throw new l(`Proxy-Authorization should be sent in ProxyAgent constructor`)}t.exports=M})),nd=s(((e,t)=>{var n=Tu(),{kClose:r,kDestroy:i,kClosed:a,kDestroyed:o,kDispatch:s,kNoProxyAgent:c,kHttpProxyAgent:l,kHttpsProxyAgent:u}=Z(),d=td(),f=Xu(),p={"http:":80,"https:":443};t.exports=class extends n{#e=null;#t=null;#n=null;constructor(e={}){super(e),this.#n=e;let{httpProxy:t,httpsProxy:n,noProxy:r,...i}=e;this[c]=new f(i);let a=t??process.env.http_proxy??process.env.HTTP_PROXY;this[l]=a?new d({...i,uri:a}):this[c];let o=n??process.env.https_proxy??process.env.HTTPS_PROXY;this[u]=o?new d({...i,uri:o}):this[l],this.#a()}[s](e,t){let n=new URL(e.origin);return this.#r(n).dispatch(e,t)}[r](){return Promise.all([this[c].close(),!this[l][a]&&this[l].close(),!this[u][a]&&this[u].close()])}[i](e){return Promise.all([this[c].destroy(e),!this[l][o]&&this[l].destroy(e),!this[u][o]&&this[u].destroy(e)])}#r(e){let{protocol:t,host:n,port:r}=e;return n=n.replace(/:\d*$/,``).replace(/^\[(.+)\]$/,`$1`).toLowerCase(),n.length>1&&n.charCodeAt(n.length-1)===46&&(n=n.slice(0,-1)),r=Number.parseInt(r,10)||p[t]||0,this.#i(n,r)?t===`https:`?this[u]:this[l]:this[c]}#i(e,t){if(this.#o&&this.#a(),this.#t.length===0)return!0;if(this.#e===`*`)return!1;for(let n=0;n<this.#t.length;n++){let r=this.#t[n];if(!(r.port&&r.port!==t)&&(e===r.hostname||e.slice(-(r.hostname.length+1))===`.${r.hostname}`))return!1}return!0}#a(){let e=this.#n.noProxy??this.#s,t=e.split(/[,\s]/),n=[];for(let e=0;e<t.length;e++){let r=t[e];if(!r)continue;let i,a,o=r.match(/^\[(.+)\]:(\d+)$/);if(o)i=o[1],a=Number.parseInt(o[2],10);else{let e=r.replace(/^\[(.+)\]$/,`$1`),t=(e.match(/:/g)||[]).length===1&&e.match(/^(.+):(\d+)$/);i=t?t[1]:e,a=t?Number.parseInt(t[2],10):0}n.push({hostname:i.replace(/^\*?\./,``).replace(/^(.+)\.$/,`$1`).toLowerCase(),port:a})}this.#e=e,this.#t=n}get#o(){return this.#n.noProxy===void 0&&this.#e!==this.#s}get#s(){return process.env.no_proxy??process.env.NO_PROXY??``}}})),rd=s(((e,t)=>{var n=r(`node:assert`),{kRetryHandlerDefaultRetry:i}=Z(),{RequestRetryError:a,RequestAbortedError:o}=Q(),{isDisturbed:s,parseRangeHeader:c,wrapRequestBody:l}=$();function u(e){let t=new Date(e).getTime();return isNaN(t)?null:t-Date.now()}function d(e,t,n,r){let i=e[`content-length`];if(i==null||!Number.isFinite(t.start)||!Number.isFinite(t.end))return;let o=Number(i),s=t.end-t.start+1;if(!Number.isFinite(o)||o!==s)throw new a(`Content-Length mismatch`,n,{headers:e,data:{count:r}})}var f=class{#e;constructor(e){this.#e=e,this.target=null}pause(){this.target?.pause()}resume(){this.target?.resume()}abort(e){this.target?.abort(e),this.#e(e)}get paused(){return this.target?.paused??!1}get aborted(){return this.target?.aborted??!1}get reason(){return this.target?.reason??null}get rawHeaders(){return this.target?.rawHeaders??null}get rawTrailers(){return this.target?.rawTrailers??null}};t.exports=class e{constructor(t,{dispatch:n,handler:r}){let{retryOptions:a,...o}=t,{retry:s,maxRetries:c,maxTimeout:u,minTimeout:d,timeoutFactor:p,methods:m,errorCodes:h,retryAfter:g,statusCodes:_,throwOnError:v}=a??{};this.error=null,this.dispatch=n,this.handler=r,this.opts={...o,body:l(t.body)},this.retryOpts={throwOnError:v??!0,retry:s??e[i],retryAfter:g??!0,maxTimeout:u??3e4,minTimeout:d??500,timeoutFactor:p??2,maxRetries:c??5,methods:m??[`GET`,`HEAD`,`OPTIONS`,`PUT`,`DELETE`,`TRACE`,`QUERY`],statusCodes:_??[500,502,503,504,429],errorCodes:h??[`ECONNRESET`,`ECONNREFUSED`,`ENOTFOUND`,`ENETDOWN`,`ENETUNREACH`,`EHOSTDOWN`,`EHOSTUNREACH`,`EPIPE`,`UND_ERR_SOCKET`]},this.retryCount=0,this.retryCountCheckpoint=0,this.headersSent=!1,this.start=0,this.end=null,this.etag=null,this.statusCode=null,this.headers=null,this.controllerProxy=new f(e=>this.#e(e)),this.retryPending=!1,this.retryTimer=null,this.aborted=!1}onResponseStartWithRetry(e,t,n,r,i){if(this.retryOpts.throwOnError){this.retryOpts.statusCodes.includes(t)===!1?(this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,t,n,r)):this.error=i;return}if(s(this.opts.body)){this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,t,n,r);return}function a(a){if(!this.aborted){if(this.retryPending=!1,this.retryTimer=null,a){this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,t,n,r),e.resume();return}this.error=i,e.resume()}}e.pause(),this.retryPending=!0,this.retryTimer=this.retryOpts.retry(i,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},a.bind(this))??null}onRequestStart(e,t){this.controllerProxy.target=e,this.headersSent||this.handler.onRequestStart?.(this.controllerProxy,t)}onBodySent(e){this.handler.onBodySent?.(e)}onRequestSent(){this.handler.onRequestSent?.()}onRequestUpgrade(e,t,n,r){this.handler.onRequestUpgrade?.(this.controllerProxy,t,n,r)}static[i](e,{state:t,opts:n},r){let{statusCode:i,code:a,headers:o}=e,{method:s,retryOptions:c}=n,{maxRetries:l,minTimeout:d,maxTimeout:f,timeoutFactor:p,statusCodes:m,errorCodes:h,methods:g,retryAfter:_}=c,{counter:v}=t;if(a&&a!==`UND_ERR_REQ_RETRY`&&!h.includes(a)){r(e);return}if(Array.isArray(g)&&!g.includes(s)){r(e);return}if(i!=null&&Array.isArray(m)&&!m.includes(i)){r(e);return}if(v>l){r(e);return}let y=_===!1?void 0:o?.[`retry-after`];y&&=(y=Number(y),Number.isNaN(y)?u(o[`retry-after`]):y*1e3);let b=y===0?0:Math.min(y>0?y:d*p**(v-1),f);return setTimeout(()=>r(null),b)}onResponseStart(e,t,r,i){if(t<200){this.handler.onResponseStart?.(this.controllerProxy,t,r,i);return}if(this.error=null,this.retryCount+=1,this.statusCode=t,this.headers=r,t>=300){let n=new a(`Request failed`,t,{headers:r,data:{count:this.retryCount}});this.onResponseStartWithRetry(e,t,r,i,n);return}if(this.headersSent){if(t!==206&&(this.start>0||t!==200))throw new a(`server does not support the range header and the payload was partially consumed`,t,{headers:r,data:{count:this.retryCount}});let e=c(r[`content-range`]);if(!e)throw new a(`Content-Range mismatch`,t,{headers:r,data:{count:this.retryCount}});if(this.etag!=null&&this.etag!==r.etag)throw new a(`ETag mismatch`,t,{headers:r,data:{count:this.retryCount}});d(r,e,t,this.retryCount);let{start:i,size:o,end:s=o?o-1:null}=e;n(this.start===i,`content-range mismatch`),n(this.end==null||this.end===s,`content-range mismatch`);return}if(this.end==null){if(t===206){let e=c(r[`content-range`]);if(e==null||e.end==null){this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,t,r,i);return}d(r,e,t,this.retryCount);let{start:a,size:o,end:s=o?o-1:null}=e;n(a!=null&&Number.isFinite(a),`content-range mismatch`),n(s!=null&&Number.isFinite(s),`invalid content-length`),this.start=a,this.end=s}if(this.end==null&&this.opts.method!==`HEAD`){let e=r[`content-length`];this.end=e==null?null:Number(e)-1}n(Number.isFinite(this.start)),n(this.end==null||Number.isFinite(this.end),`invalid content-length`),this.resume=!0,this.etag=r.etag==null?null:r.etag,this.etag!=null&&this.etag[0]===`W`&&this.etag[1]===`/`&&(this.etag=null),this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,t,r,i)}else throw new a(`Request failed`,t,{headers:r,data:{count:this.retryCount}})}onResponseData(e,t){this.error||(this.start+=t.length,this.handler.onResponseData?.(this.controllerProxy,t))}onResponseEnd(e,t){if(this.error&&this.retryOpts.throwOnError)throw this.error;if(!this.error){if(this.end!=null&&Number.isFinite(this.end)&&this.start!==this.end+1)throw new a(`Content-Range mismatch`,this.statusCode,{headers:this.headers,data:{count:this.retryCount}});return this.retryCount=0,this.handler.onResponseEnd?.(this.controllerProxy,t)}this.retry()}retry(){if(this.start!==0){let e={range:`bytes=${this.start}-${this.end??``}`};this.etag!=null&&(e[`if-match`]=this.etag),this.opts={...this.opts,headers:{...this.opts.headers,...e}}}try{this.retryCountCheckpoint=this.retryCount,this.dispatch(this.opts,this)}catch(e){this.handler.onResponseError?.(this.controllerProxy,e)}}onResponseError(e,t){if(this.aborted)return;if(e?.aborted||s(this.opts.body)){this.handler.onResponseError?.(this.controllerProxy,t);return}function n(e){if(!this.aborted){if(this.retryPending=!1,this.retryTimer=null,!e){this.retry();return}this.handler?.onResponseError?.(this.controllerProxy,e)}}this.retryCount-this.retryCountCheckpoint>0?this.retryCount=this.retryCountCheckpoint+(this.retryCount-this.retryCountCheckpoint):this.retryCount+=1,this.retryPending=!0,this.retryTimer=this.retryOpts.retry(t,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},n.bind(this))??null}#e(e){this.retryPending&&(this.aborted=!0,this.retryPending=!1,clearTimeout(this.retryTimer),this.retryTimer=null,this.handler.onResponseError?.(this.controllerProxy,e??new o))}}})),id=s(((e,t)=>{var n=wu(),r=rd();t.exports=class extends n{#e=null;#t=null;constructor(e,t={}){super(t),this.#e=e,this.#t=t}dispatch(e,t){let n=new r({...e,retryOptions:this.#t},{dispatch:this.#e.dispatch.bind(this.#e),handler:t});return this.#e.dispatch(e,n)}close(){return this.#e.close()}destroy(){return this.#e.destroy()}}})),ad=s(((e,t)=>{var{InvalidArgumentError:n}=Q(),r=Wu();t.exports=class extends r{constructor(e,t){if(typeof e==`string`&&(e=new URL(e)),e.protocol!==`http:`)throw new n(`h2c-client: Only h2c protocol is supported`);let{maxConcurrentStreams:r,pipelining:i,...a}=t??{},o=r??100,s=100;if(r!=null&&(!Number.isInteger(r)||r<1))throw new n(`maxConcurrentStreams must be a positive integer, greater than 0`);if(i!=null&&Number.isInteger(i)&&i>0&&(s=i),s>o)throw new n(`h2c-client: pipelining cannot be greater than maxConcurrentStreams`);super(e,{...a,maxConcurrentStreams:o,pipelining:s,allowH2:!0,useH2c:!0})}}})),od=s(((e,t)=>{var n=r(`node:assert`),{addAbortListener:i}=r(`node:events`),{Readable:a}=r(`node:stream`),{RequestAbortedError:o,NotSupportedError:s,InvalidArgumentError:c,AbortError:l}=Q(),u=$(),{ReadableStreamFrom:d}=$(),f=Symbol(`kConsume`),p=Symbol(`kReading`),m=Symbol(`kBody`),h=Symbol(`kAbort`),g=Symbol(`kContentType`),_=Symbol(`kContentLength`),v=Symbol(`kUsed`),y=Symbol(`kBytesRead`),b=()=>{},x=class extends a{constructor({resume:e,abort:t,contentType:n=``,contentLength:r,highWaterMark:i=65536}){super({autoDestroy:!0,read:e,highWaterMark:i}),this._readableState.dataEmitted=!1,this[h]=t,this[f]=null,this[y]=0,this[m]=null,this[v]=!1,this[g]=n,this[_]=Number.isFinite(r)?r:null,this[p]=!1}_destroy(e,t){!e&&!this._readableState.endEmitted&&(e=new o),e&&this[h](),this[v]?t(e):setImmediate(t,e)}on(e,t){return(e===`data`||e===`readable`)&&(this[p]=!0,this[v]=!0),super.on(e,t)}addListener(e,t){return this.on(e,t)}off(e,t){let n=super.off(e,t);return(e===`data`||e===`readable`)&&(this[p]=this.listenerCount(`data`)>0||this.listenerCount(`readable`)>0),n}removeListener(e,t){return this.off(e,t)}push(e){return e&&(this[y]+=e.length,this[f])?(k(this[f],e),!this[p]||super.push(e)):super.push(e)}text(){return w(this,`text`)}json(){return w(this,`json`)}blob(){return w(this,`blob`)}bytes(){return w(this,`bytes`)}arrayBuffer(){return w(this,`arrayBuffer`)}async formData(){throw new s}get bodyUsed(){return u.isDisturbed(this)}get body(){return this[m]||(this[m]=d(this),this[f]&&(this[m].getReader(),n(this[m].locked))),this[m]}dump(e){let t=e?.signal;if(t!=null&&(typeof t!=`object`||!(`aborted`in t)))return Promise.reject(new c(`signal must be an AbortSignal`));let n=e?.limit&&Number.isFinite(e.limit)?e.limit:131072;return t?.aborted?Promise.reject(t.reason??new l):this._readableState.closeEmitted?Promise.resolve(null):new Promise((e,r)=>{if((this[_]&&this[_]>n||this[y]>n)&&this.destroy(new l),t){let n=i(t,()=>{this.destroy(t.reason??new l)});this.on(`close`,function(){n[Symbol.dispose](),t.aborted?r(t.reason??new l):e(null)})}else this.on(`close`,e);this.on(`error`,b).on(`data`,()=>{this[y]>n&&this.destroy()}).resume()})}setEncoding(e){return Buffer.isEncoding(e)&&super.setEncoding(e),this}};function S(e){return e[m]?.locked===!0||e[f]!==null}function C(e){return u.isDisturbed(e)||S(e)}function w(e,t){return n(!e[f]),new Promise((n,r)=>{if(C(e)){let t=e._readableState;t.destroyed&&t.closeEmitted===!1?e.on(`error`,r).on(`close`,()=>{r(TypeError(`unusable`))}):r(t.errored??TypeError(`unusable`))}else queueMicrotask(()=>{e[f]={type:t,stream:e,resolve:n,reject:r,length:0,body:[]},e.on(`error`,function(e){A(this[f],e)}).on(`close`,function(){this[f].body!==null&&A(this[f],new o)}),T(e[f])})})}function T(e){if(e.body===null)return;let{_readableState:t}=e.stream;if(t.bufferIndex){let n=t.bufferIndex,r=t.buffer.length;for(let i=n;i<r;i++)k(e,t.buffer[i])}else for(let n of t.buffer)k(e,n);let n=t.decoder;if(n!=null&&n.lastNeed>0&&k(e,Buffer.from(n.lastChar.subarray(0,n.lastTotal-n.lastNeed))),t.endEmitted){O(e,t.encoding);return}for(e.stream.on(`end`,function(){O(this[f],this._readableState.encoding)}),e.stream.resume();e.stream.read()!=null;);}function E(e,t,n){if(e.length===0||t===0)return``;let r=e.length===1?e[0]:Buffer.concat(e,t),i=r.length,a=i>2&&r[0]===239&&r[1]===187&&r[2]===191?3:0;return!n||n===`utf8`||n===`utf-8`?r.utf8Slice(a,i):r.subarray(a,i).toString(n)}function D(e,t){if(e.length===0||t===0)return new Uint8Array;if(e.length===1)return new Uint8Array(e[0]);let n=new Uint8Array(Buffer.allocUnsafeSlow(t).buffer),r=0;for(let t=0;t<e.length;++t){let i=e[t];n.set(i,r),r+=i.length}return n}function O(e,t){let{type:n,body:r,resolve:i,stream:a,length:o}=e;try{n===`text`?i(E(r,o,t)):n===`json`?i(JSON.parse(E(r,o,t))):n===`arrayBuffer`?i(D(r,o).buffer):n===`blob`?i(new Blob(r,{type:a[g]})):n===`bytes`&&i(D(r,o)),A(e)}catch(e){a.destroy(e)}}function k(e,t){e.body!==null&&(typeof t==`string`&&(t=Buffer.from(t,e.stream._readableState.encoding)),e.length+=t.length,e.body.push(t))}function A(e,t){e.body!==null&&(t?e.reject(t):e.resolve(),e.type=null,e.stream=null,e.resolve=null,e.reject=null,e.length=0,e.body=null)}t.exports={Readable:x,chunksDecode:E}})),sd=s(((e,t)=>{var n=r(`node:assert`),{AsyncResource:i}=r(`node:async_hooks`),{Readable:a}=od(),{InvalidArgumentError:o,RequestAbortedError:s}=Q(),c=$();function l(){}var u=class extends i{constructor(e,t){if(!e||typeof e!=`object`)throw new o(`invalid opts`);let{signal:n,method:r,opaque:i,body:a,onInfo:u,responseHeaders:d,highWaterMark:f}=e;try{if(typeof t!=`function`)throw new o(`invalid callback`);if(f!=null&&(!Number.isFinite(f)||f<0))throw new o(`invalid highWaterMark`);if(n&&typeof n.on!=`function`&&typeof n.addEventListener!=`function`)throw new o(`signal must be an EventEmitter or EventTarget`);if(r===`CONNECT`)throw new o(`invalid method`);if(u&&typeof u!=`function`)throw new o(`invalid onInfo callback`);super(`UNDICI_REQUEST`)}catch(e){throw c.isStream(a)&&c.destroy(a.on(`error`,l),e),e}this.method=r,this.responseHeaders=d||null,this.opaque=i||null,this.callback=t,this.res=null,this.abort=null,this.body=a,this.trailers={},this.context=null,this.controller=null,this.onInfo=u||null,this.highWaterMark=f,this.reason=null,this.removeAbortListener=null,n?.aborted?this.reason=n.reason??new s:n&&(this.removeAbortListener=c.addAbortListener(n,()=>{if(this.reason=n.reason??new s,this.res){let e=this.res;this.res=null,c.destroy(e.on(`error`,l),this.reason)}else this.abort&&this.abort(this.reason)}))}onRequestStart(e,t){if(this.reason){e.abort(this.reason);return}n(this.callback),this.controller=e,this.abort=t=>e.abort(t),this.context=t}onResponseStart(e,t,n,r){let{callback:i,opaque:o,context:s,responseHeaders:u,highWaterMark:d}=this,f=e?.rawHeaders,p=u===`raw`?c.parseRawHeaders(f):n;if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:p});return}let m=n,h=m?.[`content-type`],g=m?.[`content-length`],_=new a({resume:()=>e.resume(),abort:t=>e.abort(t),contentType:h,contentLength:this.method!==`HEAD`&&g?Number(g):null,highWaterMark:d});if(this.removeAbortListener&&=(_.on(`close`,this.removeAbortListener),null),this.callback=null,this.res=_,i!==null)try{this.runInAsyncScope(i,null,null,{statusCode:t,statusText:r,headers:p,trailers:this.trailers,opaque:o,body:_,context:s})}catch(e){this.res=null,c.destroy(_.on(`error`,l),e),queueMicrotask(()=>{throw e})}}onResponseData(e,t){this.res&&this.res.push(t)===!1&&e.pause()}onResponseEnd(e,t){if(t&&typeof t==`object`)for(let e of Object.keys(t))e===`__proto__`?Object.defineProperty(this.trailers,e,{value:t[e],enumerable:!0,configurable:!0,writable:!0}):this.trailers[e]=t[e];this.res?.push(null)}onResponseError(e,t){let{res:n,callback:r,body:i,opaque:a}=this;r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:a})})),n&&(this.res=null,queueMicrotask(()=>{c.destroy(n.on(`error`,l),t)})),i&&(this.body=null,c.isStream(i)&&(i.on(`error`,l),c.destroy(i,t))),this.removeAbortListener&&=(this.removeAbortListener(),null)}};function d(e,t){if(t===void 0)return new Promise((t,n)=>{d.call(this,e,(e,r)=>e?n(e):t(r))});try{let n=new u(e,t);this.dispatch(e,n)}catch(n){if(typeof t!=`function`)throw n;let r=e?.opaque;queueMicrotask(()=>t(n,{opaque:r}))}}t.exports=d,t.exports.RequestHandler=u})),cd=s(((e,t)=>{var{addAbortListener:n}=$(),{RequestAbortedError:r}=Q(),i=Symbol(`kListener`),a=Symbol(`kSignal`);function o(e){e.abort?e.abort(e[a]?.reason):e.reason=e[a]?.reason??new r,c(e)}function s(e,t){if(e.reason=null,e[a]=null,e[i]=null,t){if(t.aborted){o(e);return}e[a]=t,e[i]=()=>{o(e)},n(e[a],e[i])}}function c(e){e[a]&&(`removeEventListener`in e[a]?e[a].removeEventListener(`abort`,e[i]):e[a].removeListener(`abort`,e[i]),e[a]=null,e[i]=null)}t.exports={addSignal:s,removeSignal:c}})),ld=s(((e,t)=>{var n=r(`node:assert`),{AsyncResource:i}=r(`node:async_hooks`),{InvalidArgumentError:a,InvalidReturnValueError:o}=Q(),s=$(),{addSignal:c,removeSignal:l}=cd();function u(){}function d(e){return e.errored??e.writableErrored??e._writableState?.errored}function f(){let e=Error(`Premature close`);return e.code=`ERR_STREAM_PREMATURE_CLOSE`,e}function p(e,t){let n=!1,r=()=>{e.removeListener(`close`,a),e.removeListener(`error`,o),e.removeListener(`finish`,s)},i=(e,i=!1)=>{n||(n=!0,r(),t(e,i))},a=()=>{let t=d(e);i(t??(e.writableFinished?void 0:f()))},o=e=>i(e,!0),s=()=>i();e.on(`close`,a),e.on(`error`,o),e.on(`finish`,s),e.closed?process.nextTick(a):e.writableFinished&&process.nextTick(s)}var m=class extends i{constructor(e,t,n){if(!e||typeof e!=`object`)throw new a(`invalid opts`);let{signal:r,method:i,opaque:o,body:l,onInfo:d,responseHeaders:f}=e;try{if(typeof n!=`function`)throw new a(`invalid callback`);if(typeof t!=`function`)throw new a(`invalid factory`);if(r&&typeof r.on!=`function`&&typeof r.addEventListener!=`function`)throw new a(`signal must be an EventEmitter or EventTarget`);if(i===`CONNECT`)throw new a(`invalid method`);if(d&&typeof d!=`function`)throw new a(`invalid onInfo callback`);super(`UNDICI_STREAM`)}catch(e){throw s.isStream(l)&&s.destroy(l.on(`error`,u),e),e}this.responseHeaders=f||null,this.opaque=o||null,this.factory=t,this.callback=n,this.res=null,this.abort=null,this.context=null,this.controller=null,this.trailers=null,this.body=l,this.onInfo=d||null,s.isStream(l)&&l.on(`error`,e=>{this.onResponseError(this.controller,e)}),c(this,r)}onRequestStart(e,t){if(this.reason){e.abort(this.reason);return}n(this.callback),this.controller=e,this.abort=t=>e.abort(t),this.context=t}onResponseStart(e,t,n,r){let{factory:i,opaque:a,context:c,responseHeaders:l}=this,u=e?.rawHeaders,d=l===`raw`?s.parseRawHeaders(u):n;if(t<200){this.onInfo&&this.onInfo({statusCode:t,headers:d});return}if(this.factory=null,i===null)return;let f=this.runInAsyncScope(i,null,{statusCode:t,headers:d,opaque:a,context:c});if(!f||typeof f.write!=`function`||typeof f.end!=`function`||typeof f.on!=`function`)throw new o(`expected Writable`);p(f,(e,t)=>{let{callback:n,res:r,opaque:i,trailers:a,abort:o}=this;this.res=null,(e||!r?.readable)&&s.destroy(r,t?void 0:e),this.callback=null,this.runInAsyncScope(n,null,e||null,{opaque:i,trailers:a}),e&&o(e)}),f.on(`drain`,()=>e.resume()),this.res=f,(f.writableNeedDrain===void 0?f._writableState?.needDrain:f.writableNeedDrain)===!0&&e.pause()}onResponseData(e,t){let{res:n}=this;n&&n.write(t)===!1&&e.pause()}onResponseEnd(e,t){let{res:n}=this;l(this),n&&(t&&typeof t==`object`&&(this.trailers=t),n.end())}onResponseError(e,t){let{res:n,callback:r,opaque:i,body:a}=this;l(this),this.factory=null,n?(this.res=null,s.destroy(n,t)):r&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(r,null,t,{opaque:i})})),a&&(this.body=null,s.destroy(a,t))}};function h(e,t,n){if(n===void 0)return new Promise((n,r)=>{h.call(this,e,t,(e,t)=>e?r(e):n(t))});try{let r=new m(e,t,n);this.dispatch(e,r)}catch(t){if(typeof n!=`function`)throw t;let r=e?.opaque;queueMicrotask(()=>n(t,{opaque:r}))}}t.exports=h})),ud=s(((e,t)=>{var{Readable:n,Duplex:i,PassThrough:a}=r(`node:stream`),o=r(`node:assert`),{AsyncResource:s}=r(`node:async_hooks`),{InvalidArgumentError:c,InvalidReturnValueError:l,RequestAbortedError:u}=Q(),d=$(),{kBodyUsed:f}=Z(),{addSignal:p,removeSignal:m}=cd();function h(){}var g=Symbol(`resume`),_=class extends n{constructor(){super({autoDestroy:!0}),this[g]=null,this[f]=!0}_read(){let{[g]:e}=this;e&&(this[g]=null,e())}_destroy(e,t){this._read(),t(e)}},v=class extends n{constructor(e){super({autoDestroy:!0}),this[g]=e}_read(){this[g]()}_destroy(e,t){!e&&!this._readableState.endEmitted&&(e=new u),t(e)}},y=class extends s{constructor(e,t){if(!e||typeof e!=`object`)throw new c(`invalid opts`);if(typeof t!=`function`)throw new c(`invalid handler`);let{signal:n,method:r,opaque:a,onInfo:o,responseHeaders:s}=e;if(n&&typeof n.on!=`function`&&typeof n.addEventListener!=`function`)throw new c(`signal must be an EventEmitter or EventTarget`);if(r===`CONNECT`)throw new c(`invalid method`);if(o&&typeof o!=`function`)throw new c(`invalid onInfo callback`);super(`UNDICI_PIPELINE`),this.opaque=a||null,this.responseHeaders=s||null,this.handler=t,this.abort=null,this.context=null,this.onInfo=o||null,this.req=new _().on(`error`,h),this.ret=new i({readableObjectMode:e.objectMode,autoDestroy:!0,read:()=>{let{body:e}=this;e?.resume&&e.resume()},write:(e,t,n)=>{let{req:r}=this;r.push(e,t)||r._readableState.destroyed?n():r[g]=n},destroy:(e,t)=>{let{body:n,req:r,res:i,ret:a,abort:o}=this;!e&&!a._readableState.endEmitted&&(e=new u),o&&e&&o(),d.destroy(n,e),d.destroy(r,e),d.destroy(i,e),m(this),t(e)}}).on(`prefinish`,()=>{let{req:e}=this;e.push(null)}),this.res=null,p(this,n)}onRequestStart(e,t){let{res:n}=this;if(this.reason){e.abort(this.reason);return}o(!n,`pipeline cannot be retried`),this.abort=t=>e.abort(t),this.context=t}onResponseStart(e,t,n,r){let{opaque:i,handler:a,context:o}=this;if(t<200){if(this.onInfo){let r=e?.rawHeaders,i=this.responseHeaders===`raw`?d.parseRawHeaders(r):n;this.onInfo({statusCode:t,headers:i})}return}this.res=new v(()=>e.resume());let s;try{this.handler=null;let r=e?.rawHeaders,c=this.responseHeaders===`raw`?d.parseRawHeaders(r):n;s=this.runInAsyncScope(a,null,{statusCode:t,headers:c,opaque:i,body:this.res,context:o})}catch(e){throw this.res.on(`error`,h),e}if(!s||typeof s.on!=`function`)throw new l(`expected Readable`);s.on(`data`,e=>{let{ret:t,body:n}=this;!t.push(e)&&n.pause&&n.pause()}).on(`error`,e=>{let{ret:t}=this;d.destroy(t,e)}).on(`end`,()=>{let{ret:e}=this;e.push(null)}).on(`close`,()=>{let{ret:e}=this;e._readableState.ended||d.destroy(e,new u)}),this.body=s}onResponseData(e,t){let{res:n}=this;n.push(t)===!1&&e.pause()}onResponseEnd(e,t){let{res:n}=this;n.push(null)}onResponseError(e,t){let{ret:n}=this;this.handler=null,d.destroy(n,t)}};function b(e,t){try{let n=new y(e,t);return this.dispatch({...e,body:n.req},n),n.ret}catch(e){return new a().destroy(e)}}t.exports=b})),dd=s(((e,t)=>{var{InvalidArgumentError:n,SocketError:i}=Q(),{AsyncResource:a}=r(`node:async_hooks`),o=r(`node:assert`),s=$(),{kHTTP2Stream:c}=Z(),{addSignal:l,removeSignal:u}=cd(),d=class extends a{constructor(e,t){if(!e||typeof e!=`object`)throw new n(`invalid opts`);if(typeof t!=`function`)throw new n(`invalid callback`);let{signal:r,opaque:i,responseHeaders:a}=e;if(r&&typeof r.on!=`function`&&typeof r.addEventListener!=`function`)throw new n(`signal must be an EventEmitter or EventTarget`);super(`UNDICI_UPGRADE`),this.responseHeaders=a||null,this.opaque=i||null,this.callback=t,this.abort=null,this.context=null,l(this,r)}onRequestStart(e,t){if(this.reason){e.abort(this.reason);return}o(this.callback),this.abort=t=>e.abort(t),this.context=t}onResponseStart(){throw new i(`bad upgrade`,null)}onRequestUpgrade(e,t,n,r){if(t!==(r[c]===!0?200:101)){let t=r[c]===!0?null:s.getSocketInfo(r);e.abort(new i(`bad upgrade`,t));return}let{callback:a,opaque:o,context:l}=this;u(this),this.callback=null;let d=e?.rawHeaders,f=this.responseHeaders===`raw`?s.parseRawHeaders(d):n;this.runInAsyncScope(a,null,null,{headers:f,socket:r,opaque:o,context:l})}onResponseError(e,t){let{callback:n,opaque:r}=this;u(this),n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:r})}))}};function f(e,t){if(t===void 0)return new Promise((t,n)=>{f.call(this,e,(e,r)=>e?n(e):t(r))});try{let n=new d(e,t),r={...e,method:e.method||`GET`,upgrade:e.protocol||`Websocket`};this.dispatch(r,n)}catch(n){if(typeof t!=`function`)throw n;let r=e?.opaque;queueMicrotask(()=>t(n,{opaque:r}))}}t.exports=f})),fd=s(((e,t)=>{var n=r(`node:assert`),{AsyncResource:i}=r(`node:async_hooks`),{InvalidArgumentError:a,SocketError:o}=Q(),s=$(),{addSignal:c,removeSignal:l}=cd(),u=class extends i{constructor(e,t){if(!e||typeof e!=`object`)throw new a(`invalid opts`);if(typeof t!=`function`)throw new a(`invalid callback`);let{signal:n,opaque:r,responseHeaders:i}=e;if(n&&typeof n.on!=`function`&&typeof n.addEventListener!=`function`)throw new a(`signal must be an EventEmitter or EventTarget`);super(`UNDICI_CONNECT`),this.opaque=r||null,this.responseHeaders=i||null,this.callback=t,this.abort=null,c(this,n)}onRequestStart(e,t){if(this.reason){e.abort(this.reason);return}n(this.callback),this.abort=t=>e.abort(t),this.context=t}onResponseStart(){throw new o(`bad connect`,null)}onRequestUpgrade(e,t,n,r){let{callback:i,opaque:a,context:o}=this;l(this),this.callback=null;let c=n,u=e?.rawHeaders;c!=null&&(c=this.responseHeaders===`raw`?s.parseRawHeaders(u):n),this.runInAsyncScope(i,null,null,{statusCode:t,headers:c,socket:r,opaque:a,context:o})}onResponseError(e,t){let{callback:n,opaque:r}=this;l(this),n&&(this.callback=null,queueMicrotask(()=>{this.runInAsyncScope(n,null,t,{opaque:r})}))}};function d(e,t){if(t===void 0)return new Promise((t,n)=>{d.call(this,e,(e,r)=>e?n(e):t(r))});try{let n=new u(e,t),r={...e,method:`CONNECT`};this.dispatch(r,n)}catch(n){if(typeof t!=`function`)throw n;let r=e?.opaque;queueMicrotask(()=>t(n,{opaque:r}))}}t.exports=d})),pd=s(((e,t)=>{t.exports.request=sd(),t.exports.stream=ld(),t.exports.pipeline=ud(),t.exports.upgrade=dd(),t.exports.connect=fd()})),md=s(((e,t)=>{var{UndiciError:n}=Q(),r=Symbol.for(`undici.error.UND_MOCK_ERR_MOCK_NOT_MATCHED`);t.exports={MockNotMatchedError:class extends n{constructor(e){super(e),this.name=`MockNotMatchedError`,this.message=e||`The request does not match any registered mock dispatches`,this.code=`UND_MOCK_ERR_MOCK_NOT_MATCHED`}static[Symbol.hasInstance](e){return e&&e[r]===!0}get[r](){return!0}}}})),hd=s(((e,t)=>{t.exports={kAgent:Symbol(`agent`),kOptions:Symbol(`options`),kFactory:Symbol(`factory`),kDispatches:Symbol(`dispatches`),kDispatchKey:Symbol(`dispatch key`),kDefaultHeaders:Symbol(`default headers`),kDefaultTrailers:Symbol(`default trailers`),kContentLength:Symbol(`content length`),kMockAgent:Symbol(`mock agent`),kMockAgentSet:Symbol(`mock agent set`),kMockAgentGet:Symbol(`mock agent get`),kMockDispatch:Symbol(`mock dispatch`),kClose:Symbol(`close`),kOriginalClose:Symbol(`original agent close`),kOriginalDispatch:Symbol(`original dispatch`),kOrigin:Symbol(`origin`),kIsMockActive:Symbol(`is mock active`),kNetConnect:Symbol(`net connect`),kGetNetConnect:Symbol(`get net connect`),kConnected:Symbol(`connected`),kIgnoreTrailingSlash:Symbol(`ignore trailing slash`),kMockAgentMockCallHistoryInstance:Symbol(`mock agent mock call history name`),kMockAgentRegisterCallHistory:Symbol(`mock agent register mock call history`),kMockAgentAddCallHistoryLog:Symbol(`mock agent add call history log`),kMockAgentIsCallHistoryEnabled:Symbol(`mock agent is call history enabled`),kMockAgentAcceptsNonStandardSearchParameters:Symbol(`mock agent accepts non standard search parameters`),kMockCallHistoryAddLog:Symbol(`mock call history add log`),kTotalDispatchCount:Symbol(`total dispatch count`)}})),gd=s(((e,t)=>{var{MockNotMatchedError:n}=md(),{kDispatches:i,kMockAgent:a,kOriginalDispatch:o,kOrigin:s,kGetNetConnect:c,kTotalDispatchCount:l}=hd(),{serializePathWithQuery:u,parseHeaders:d}=$(),{STATUS_CODES:f}=r(`node:http`),{types:{isPromise:p}}=r(`node:util`),{InvalidArgumentError:m}=Q(),h=Symbol(`request aborted`);function g(e,t){return typeof e==`string`?e===t:e instanceof RegExp?e.test(t):typeof e==`function`&&e(t)===!0}function _(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e.toLocaleLowerCase(),t]))}function v(e,t){if(Array.isArray(e)){for(let n=0;n<e.length;n+=2)if(e[n].toLocaleLowerCase()===t.toLocaleLowerCase())return e[n+1];return}return typeof e.get==`function`?e.get(t):_(e)[t.toLocaleLowerCase()]}function y(e){let t=e.slice(),n=[];for(let e=0;e<t.length;e+=2)n.push([t[e],t[e+1]]);return Object.fromEntries(n)}function b(e,t){if(typeof e.headers==`function`)return Array.isArray(t)&&(t=y(t)),e.headers(t?_(t):{});if(e.headers===void 0)return!0;if(typeof t!=`object`||typeof e.headers!=`object`)return!1;for(let[n,r]of Object.entries(e.headers))if(!g(r,v(t,n)))return!1;return!0}function x(e){if(typeof e!=`string`)return e;let t=new URLSearchParams(e),n=new URLSearchParams;for(let[e,r]of t.entries()){if(e=e.replace(`[]`,``),/^(['"]).*\1$/.test(r)){n.append(e,r);continue}if(r.includes(`,`)){let t=r.split(`,`);for(let r of t)n.append(e,r);continue}n.append(e,r)}return n}function S(e){if(typeof e!=`string`)return e;let t=e.split(`?`,3);if(t.length!==2)return e;let n=new URLSearchParams(t.pop());return n.sort(),[...t,n.toString()].join(`?`)}function C(e,{path:t,method:n,body:r,headers:i}){let a=g(e.path,t),o=g(e.method,n),s=e.body===void 0||g(e.body,r),c=b(e,i);return a&&o&&s&&c}function w(e){return Buffer.isBuffer(e)||e instanceof Uint8Array||e instanceof ArrayBuffer?e:ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):typeof e==`object`?JSON.stringify(e):e?e.toString():``}function T(e,t){let r=t.query?u(t.path,t.query):t.path,i=typeof r==`string`?S(r):r,a=O(i),o=e.filter(({consumed:e})=>!e).filter(({path:e,ignoreTrailingSlash:t})=>t?g(O(S(e)),a):g(S(e),i));if(o.length===0)throw new n(`Mock dispatch not matched for path '${i}'`);if(o=o.filter(({method:e})=>g(e,t.method)),o.length===0)throw new n(`Mock dispatch not matched for method '${t.method}' on path '${i}'`);if(o=o.filter(({body:e})=>e===void 0||g(e,t.body)),o.length===0)throw new n(`Mock dispatch not matched for body '${t.body}' on path '${i}'`);if(o=o.filter(e=>b(e,t.headers)),o.length===0)throw new n(`Mock dispatch not matched for headers '${typeof t.headers==`object`?JSON.stringify(t.headers):t.headers}' on path '${i}'`);return o[0]}function E(e,t,n,r){let i={timesInvoked:0,times:1,persist:!1,consumed:!1,...r},a=typeof n==`function`?{callback:n}:{...n},o={...i,...t,pending:!0,data:{error:null,...a}};return e.push(o),e[l]=(e[l]||0)+1,o}function D(e,t){let n=e.findIndex(e=>e.consumed?C(e,t):!1);n!==-1&&e.splice(n,1)}function O(e){if(typeof e!=`string`)return e;for(;e.endsWith(`/`);)e=e.slice(0,-1);return e.length===0&&(e=`/`),e}function k(e){let{path:t,method:n,body:r,headers:i,query:a}=e;return{path:t,method:n,body:r,headers:i,query:a}}function A(e){let t=Object.keys(e),n=[];for(let r=0;r<t.length;++r){let i=t[r],a=e[i],o=Buffer.from(`${i}`);if(Array.isArray(a))for(let e=0;e<a.length;++e)n.push(o,Buffer.from(`${a[e]}`));else n.push(o,Buffer.from(`${a}`))}return n}function j(e){return f[e]||`unknown`}async function M(e){let t=[];for await(let n of e)t.push(n);return Buffer.concat(t).toString(`utf8`)}function N(e,t){let n=k(e),r=T(this[i],n),a=this[i];r.timesInvoked++;let{timesInvoked:o,times:s}=r;r.consumed=!r.persist&&o>=s,r.pending=o<s;let c=typeof t.onBodySent==`function`||typeof t.onRequestSent==`function`;if(r.data.callback&&(!c||e.body==null)){let{callback:i,...o}=r.data,s=i(e);if(p(s))return s.then(i=>{if(typeof i!=`object`||!i){t.onResponseError(null,new m(`reply options callback must return an object`));return}P(a,r,n,e,t,{...o,...i})},e=>{t.onResponseError(null,e)}),!0;if(typeof s!=`object`||!s)throw new m(`reply options callback must return an object`);return P(a,r,n,e,t,{...o,...s})}return P(a,r,n,e,t)}function P(e,t,n,r,i,a){let{data:o,delay:s}=t,c=a??o;if(c.error!==null)return D(e,n),i.onResponseError(null,c.error),!0;let l=!1,u=null,f={paused:!1,rawHeaders:null,rawTrailers:null,pause(){this.paused=!0},resume(){this.paused=!1},abort:e=>{l||(l=!0,u!==null&&(clearTimeout(u),u=null),i.onResponseError?.(f,e))}},g=r,_=e;if(i.onRequestStart?.(f,null),l)return!0;let v=F(r.body,i,f,()=>l);if(p(v))return v.then(e=>{e!==h&&(e!==r.body&&(g={...r,body:e}),b())},e=>f.abort(e)),!0;if(v===h)return!0;v!==r.body&&(g={...r,body:v}),b();function b(){if(c.callback){let{callback:t,...r}=c,a;try{a=t(g)}catch(t){D(e,n),i.onResponseError(null,t);return}if(p(a)){a.then(e=>{if(typeof e!=`object`||!e){i.onResponseError(null,new m(`reply options callback must return an object`));return}x(_,{...r,...e})},e=>{i.onResponseError(null,e)});return}if(typeof a!=`object`||!a)throw new m(`reply options callback must return an object`);x(_,{...r,...a});return}typeof s==`number`&&s>0?u=setTimeout(()=>{u=null,x(_)},s):x(_)}function x(e,t=c){if(l)return;let{statusCode:a,data:o,headers:s,trailers:u}=t,m=Array.isArray(r.headers)?y(r.headers):r.headers,h=typeof o==`function`?o({...g,headers:m}):o;if(p(h))return h.then(n=>x(e,{...t,data:n}));if(l)return;let _=w(h),v=A(s??{}),b=A(u??{});f.rawHeaders=v,f.rawTrailers=b,i.onResponseStart?.(f,a,d(v),j(a)),i.onResponseData?.(f,Buffer.from(_)),i.onResponseEnd?.(f,d(b)),D(e,n)}return!0}function F(e,t,n,r){if(typeof t.onBodySent!=`function`&&typeof t.onRequestSent!=`function`)return e;if(e==null)return R(t,n,r)?e:h;if(e&&typeof e[Symbol.asyncIterator]==`function`)return I(e,t,n,r);if(z(e)){let i=[];for(let a of e)if(r()||(i.push(a),!L(t,n,a)||r()))return h;return R(t,n,r)?i:h}return r()||!L(t,n,e)?h:R(t,n,r)?e:h}async function I(e,t,n,r){let i=[];for await(let a of e)if(r()||(i.push(a),!L(t,n,a)||r()))return h;return R(t,n,r)?{async*[Symbol.asyncIterator](){yield*i}}:h}function L(e,t,n){try{return e.onBodySent?.(n),!0}catch(e){return t.abort(e),!1}}function R(e,t,n){try{return e.onRequestSent?.(),!n()}catch(e){return t.abort(e),!1}}function z(e){return typeof e!=`string`&&!Buffer.isBuffer(e)&&!ArrayBuffer.isView(e)&&typeof e[Symbol.iterator]==`function`}function ee(){let e=this[a],t=this[s],r=this[o];return function(a,o){if(e.isMockActive)try{N.call(this,a,o)}catch(s){if(s.code===`UND_MOCK_ERR_MOCK_NOT_MATCHED`){let u=e[c](),d=this[i][l]||this[i].length,f=`, ${this[i].filter(({consumed:e})=>!e).length} interceptor(s) remaining out of ${d} defined`;if(u===!1)throw new n(`${s.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)${f}`);if(B(u,t))r.call(this,`__mockAgentBodyForDispatch`in a?{...a,body:a.__mockAgentBodyForDispatch}:a,o);else throw new n(`${s.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)${f}`)}else throw s}else r.call(this,a,o)}}function B(e,t){let n=new URL(t);return e===!0||!!(Array.isArray(e)&&e.some(e=>g(e,n.host)))}function te(e){return typeof e!=`string`&&!(e instanceof URL)?e:e instanceof URL?e.origin:e.toLowerCase()}function V(e){let{agent:t,...n}=e;if(`enableCallHistory`in n&&typeof n.enableCallHistory!=`boolean`)throw new m(`options.enableCallHistory must to be a boolean`);if(`acceptNonStandardSearchParameters`in n&&typeof n.acceptNonStandardSearchParameters!=`boolean`)throw new m(`options.acceptNonStandardSearchParameters must to be a boolean`);if(`ignoreTrailingSlash`in n&&typeof n.ignoreTrailingSlash!=`boolean`)throw new m(`options.ignoreTrailingSlash must to be a boolean`);return n}t.exports={getResponseData:w,getMockDispatch:T,addMockDispatch:E,deleteMockDispatch:D,buildKey:k,generateKeyValues:A,matchValue:g,getResponse:M,getStatusText:j,mockDispatch:N,buildMockDispatch:ee,checkNetConnect:B,buildAndValidateMockOptions:V,getHeaderByName:v,buildHeadersFromArray:y,normalizeSearchParams:x,normalizeOrigin:te}})),_d=s(((e,t)=>{var{getResponseData:n,buildKey:i,addMockDispatch:a}=gd(),{kDispatches:o,kDispatchKey:s,kDefaultHeaders:c,kDefaultTrailers:l,kContentLength:u,kMockDispatch:d,kIgnoreTrailingSlash:f}=hd(),{InvalidArgumentError:p}=Q(),{serializePathWithQuery:m}=$(),{types:{isPromise:h}}=r(`node:util`),g=class{constructor(e){this[d]=e}delay(e){if(typeof e!=`number`||!Number.isInteger(e)||e<=0)throw new p(`waitInMs must be a valid integer > 0`);return this[d].delay=e,this}persist(){return this[d].persist=!0,this}times(e){if(typeof e!=`number`||!Number.isInteger(e)||e<=0)throw new p(`repeatTimes must be a valid integer > 0`);return this[d].times=e,this}},_=class{constructor(e,t){if(typeof e!=`object`)throw new p(`opts must be an object`);if(e.path===void 0)throw new p(`opts.path must be defined`);if(e.method===void 0&&(e.method=`GET`),typeof e.path==`string`){if(e.query)e.path=m(e.path,e.query);else{let t=new URL(e.path,`data://`);e.path=t.pathname+t.search}}typeof e.method==`string`&&(e.method=e.method.toUpperCase()),this[s]=i(e),this[o]=t,this[f]=e.ignoreTrailingSlash??!1,this[c]={},this[l]={},this[u]=!1}createMockScopeDispatchData({statusCode:e,data:t,responseOptions:r}){let i=n(t),a=this[u]?{"content-length":i.length}:{};return{statusCode:e,data:t,headers:{...this[c],...a,...r.headers},trailers:{...this[l],...r.trailers}}}validateReplyParameters(e){if(e.statusCode===void 0)throw new p(`statusCode must be defined`);if(typeof e.responseOptions!=`object`||e.responseOptions===null)throw new p(`responseOptions must be an object`)}reply(e){if(typeof e==`function`){let t=e=>{if(typeof e!=`object`||!e)throw new p(`reply options callback must return an object`);let t={data:``,responseOptions:{},...e};return this.validateReplyParameters(t),{...this.createMockScopeDispatchData(t)}};return new g(a(this[o],this[s],n=>{let r=e(n);return h(r)?r.then(t):t(r)},{ignoreTrailingSlash:this[f]}))}let t={statusCode:e,data:arguments[1]===void 0?``:arguments[1],responseOptions:arguments[2]===void 0?{}:arguments[2]};this.validateReplyParameters(t);let n=this.createMockScopeDispatchData(t);return new g(a(this[o],this[s],n,{ignoreTrailingSlash:this[f]}))}replyWithError(e){if(e===void 0)throw new p(`error must be defined`);return new g(a(this[o],this[s],{error:e},{ignoreTrailingSlash:this[f]}))}defaultReplyHeaders(e){if(e===void 0)throw new p(`headers must be defined`);return this[c]=e,this}defaultReplyTrailers(e){if(e===void 0)throw new p(`trailers must be defined`);return this[l]=e,this}replyContentLength(){return this[u]=!0,this}};t.exports.MockInterceptor=_,t.exports.MockScope=g})),vd=s(((e,t)=>{var{promisify:n}=r(`node:util`),i=Wu(),{buildMockDispatch:a}=gd(),{kDispatches:o,kMockAgent:s,kClose:c,kOriginalClose:l,kOrigin:u,kOriginalDispatch:d,kConnected:f,kIgnoreTrailingSlash:p}=hd(),{MockInterceptor:m}=_d(),h=Z(),{InvalidArgumentError:g}=Q();t.exports=class extends i{constructor(e,t){if(!t||!t.agent||typeof t.agent.dispatch!=`function`)throw new g(`Argument opts.agent must implement Agent`);super(e,t),this[s]=t.agent,this[u]=e,this[p]=t.ignoreTrailingSlash??!1,this[o]=[],this[f]=1,this[d]=this.dispatch,this[l]=this.close.bind(this),this.dispatch=a.call(this),this.close=this[c]}get[h.kConnected](){return this[f]}intercept(e){return new m(e&&{ignoreTrailingSlash:this[p],...e},this[o])}cleanMocks(){this[o]=[]}async[c](){await n(this[l])(),this[f]=0,this[s][h.kClients].delete(this[u])}}})),yd=s(((e,t)=>{var{kMockCallHistoryAddLog:n}=hd(),{InvalidArgumentError:r}=Q();function i(e,t,n,i,a){switch(t.operator){case`OR`:return i.push(...n(e,a)),i;case`AND`:return n(e,i);default:throw new r(`options.operator must to be a case insensitive string equal to 'OR' or 'AND'`)}}function a(e={}){let t={};if(`operator`in e){if(typeof e.operator!=`string`||e.operator.toUpperCase()!==`OR`&&e.operator.toUpperCase()!==`AND`)throw new r(`options.operator must to be a case insensitive string equal to 'OR' or 'AND'`);return{...t,operator:e.operator.toUpperCase()}}return t}function o(e){return(t,n=this.logs)=>{if(typeof t==`string`||t==null)return n.filter(n=>n[e]===t);if(t instanceof RegExp)return n.filter(n=>t.test(n[e]));throw new r(`${e} parameter should be one of string, regexp, undefined or null`)}}function s(e){try{let t=new URL(e.path,e.origin);return t.search.length===0&&(t.search=new URLSearchParams(e.query).toString()),t}catch(e){throw new r(`An error occurred when computing MockCallHistoryLog.url`,{cause:e})}}var c=class{constructor(e={}){this.body=e.body,this.headers=e.headers,this.method=e.method;let t=s(e);this.fullUrl=t.toString(),this.origin=t.origin,this.path=t.pathname,this.searchParams=Object.fromEntries(t.searchParams),this.protocol=t.protocol,this.host=t.host,this.port=t.port,this.hash=t.hash}toMap(){return new Map([[`protocol`,this.protocol],[`host`,this.host],[`port`,this.port],[`origin`,this.origin],[`path`,this.path],[`hash`,this.hash],[`searchParams`,this.searchParams],[`fullUrl`,this.fullUrl],[`method`,this.method],[`body`,this.body],[`headers`,this.headers]])}toString(){let e={betweenKeyValueSeparator:`->`,betweenPairSeparator:`|`},t=``;return this.toMap().forEach((n,r)=>{(typeof n==`string`||n==null)&&(t=`${t}${r}${e.betweenKeyValueSeparator}${n}${e.betweenPairSeparator}`),(typeof n==`object`&&n||Array.isArray(n))&&(t=`${t}${r}${e.betweenKeyValueSeparator}${JSON.stringify(n)}${e.betweenPairSeparator}`)}),t.slice(0,-1)}},l=class{logs=[];calls(){return this.logs}firstCall(){return this.logs.at(0)}lastCall(){return this.logs.at(-1)}nthCall(e){if(typeof e!=`number`)throw new r(`nthCall must be called with a number`);if(!Number.isInteger(e))throw new r(`nthCall must be called with an integer`);if(Math.sign(e)!==1)throw new r(`nthCall must be called with a positive value. use firstCall or lastCall instead`);return this.logs.at(e-1)}filterCalls(e,t){if(this.logs.length===0)return this.logs;if(typeof e==`function`)return this.logs.filter(e);if(e instanceof RegExp)return this.logs.filter(t=>e.test(t.toString()));if(typeof e==`object`&&e){if(Object.keys(e).length===0)return this.logs;let n={operator:`OR`,...a(t)},r=n.operator===`AND`?this.logs:[];return`protocol`in e&&(r=i(e.protocol,n,this.filterCallsByProtocol,r,this.logs)),`host`in e&&(r=i(e.host,n,this.filterCallsByHost,r,this.logs)),`port`in e&&(r=i(e.port,n,this.filterCallsByPort,r,this.logs)),`origin`in e&&(r=i(e.origin,n,this.filterCallsByOrigin,r,this.logs)),`path`in e&&(r=i(e.path,n,this.filterCallsByPath,r,this.logs)),`hash`in e&&(r=i(e.hash,n,this.filterCallsByHash,r,this.logs)),`fullUrl`in e&&(r=i(e.fullUrl,n,this.filterCallsByFullUrl,r,this.logs)),`method`in e&&(r=i(e.method,n,this.filterCallsByMethod,r,this.logs)),[...new Set(r)]}throw new r(`criteria parameter should be one of function, regexp, or object`)}filterCallsByProtocol=o.call(this,`protocol`);filterCallsByHost=o.call(this,`host`);filterCallsByPort=o.call(this,`port`);filterCallsByOrigin=o.call(this,`origin`);filterCallsByPath=o.call(this,`path`);filterCallsByHash=o.call(this,`hash`);filterCallsByFullUrl=o.call(this,`fullUrl`);filterCallsByMethod=o.call(this,`method`);clear(){this.logs=[]}[n](e){let t=new c(e);return this.logs.push(t),t}*[Symbol.iterator](){for(let e of this.calls())yield e}};t.exports.MockCallHistory=l,t.exports.MockCallHistoryLog=c})),bd=s(((e,t)=>{var{promisify:n}=r(`node:util`),i=qu(),{buildMockDispatch:a}=gd(),{kDispatches:o,kMockAgent:s,kClose:c,kOriginalClose:l,kOrigin:u,kOriginalDispatch:d,kConnected:f,kIgnoreTrailingSlash:p}=hd(),{MockInterceptor:m}=_d(),h=Z(),{InvalidArgumentError:g}=Q();t.exports=class extends i{constructor(e,t){if(!t||!t.agent||typeof t.agent.dispatch!=`function`)throw new g(`Argument opts.agent must implement Agent`);super(e,t),this[s]=t.agent,this[u]=e,this[p]=t.ignoreTrailingSlash??!1,this[o]=[],this[f]=1,this[d]=this.dispatch,this[l]=this.close.bind(this),this.dispatch=a.call(this),this.close=this[c]}get[h.kConnected](){return this[f]}intercept(e){return new m(e&&{ignoreTrailingSlash:this[p],...e},this[o])}cleanMocks(){this[o]=[]}async[c](){await n(this[l])(),this[f]=0,this[s][h.kClients].delete(this[u])}}})),xd=s(((e,t)=>{var{Transform:n}=r(`node:stream`),{Console:i}=r(`node:console`),a=process.versions.icu?`✅`:`Y `,o=process.versions.icu?`❌`:`N `;t.exports=class{constructor({disableColors:e}={}){this.transform=new n({transform(e,t,n){n(null,e)}}),this.logger=new i({stdout:this.transform,inspectOptions:{colors:!e&&!process.env.CI}})}format(e){let t=e.map(({method:e,path:t,data:{statusCode:n},persist:r,times:i,timesInvoked:s,origin:c})=>({Method:e,Origin:c,Path:t,"Status code":n,Persistent:r?a:o,Invocations:s,Remaining:r?1/0:i-s}));return this.logger.table(t),this.transform.read().toString()}}})),Sd=s(((e,t)=>{var{kClients:n}=Z(),r=Xu(),{kAgent:i,kMockAgentSet:a,kMockAgentGet:o,kDispatches:s,kIsMockActive:c,kNetConnect:l,kGetNetConnect:u,kOptions:d,kFactory:f,kMockAgentRegisterCallHistory:p,kMockAgentIsCallHistoryEnabled:m,kMockAgentAddCallHistoryLog:h,kMockAgentMockCallHistoryInstance:g,kMockAgentAcceptsNonStandardSearchParameters:_,kMockCallHistoryAddLog:v,kIgnoreTrailingSlash:y}=hd(),b=vd(),x=bd(),{matchValue:S,normalizeSearchParams:C,buildAndValidateMockOptions:w,normalizeOrigin:T}=gd(),{InvalidArgumentError:E,UndiciError:D}=Q(),O=wu(),k=xd(),{MockCallHistory:A}=yd();t.exports=class extends O{constructor(e={}){super(e);let t=w(e);if(this[l]=!0,this[c]=!0,this[m]=t.enableCallHistory??!1,this[_]=t.acceptNonStandardSearchParameters??!1,this[y]=t.ignoreTrailingSlash??!1,e?.agent&&typeof e.agent.dispatch!=`function`)throw new E(`Argument opts.agent must implement Agent`);let a=e?.agent?e.agent:new r(e);this[i]=a,this[n]=a[n],this[d]=t,this[m]&&this[p]()}get(e){let t=T(e),n=this[y]?t.replace(/\/$/,``):t,r=this[o](n);return r||(r=this[f](n),this[a](n,r)),r}dispatch(e,t){e.origin=T(e.origin);let r=this.get(e.origin);this[h](e);let o=this[_],c={...e};if(c.allowH2===!1){let e=`${c.origin}#http1-only`;if(!this[n].has(e)){let t=this[f](c.origin);t[s]=r[s],this[a](e,t)}}if(o&&c.path){let[e,t]=c.path.split(`?`);c.path=`${e}?${C(t,o)}`}return this[i].dispatch(c,t)}async close(){this.clearCallHistory(),await this[i].close(),this[n].clear()}deactivate(){this[c]=!1}activate(){this[c]=!0}enableNetConnect(e){if(typeof e==`string`||typeof e==`function`||e instanceof RegExp)Array.isArray(this[l])?this[l].push(e):this[l]=[e];else if(e===void 0)this[l]=!0;else throw new E(`Unsupported matcher. Must be one of String|Function|RegExp.`)}disableNetConnect(){this[l]=!1}enableCallHistory(){return this[m]=!0,this}disableCallHistory(){return this[m]=!1,this}getCallHistory(){return this[g]}clearCallHistory(){this[g]!==void 0&&this[g].clear()}get isMockActive(){return this[c]}[p](){this[g]===void 0&&(this[g]=new A)}[h](e){this[m]&&(this[p](),this[g][v](e))}[a](e,t){this[n].set(e,t)}[f](e){let t=Object.assign({agent:this},this[d]);return this[d]&&this[d].connections===1?new b(e,t):new x(e,t)}[o](e){let t=this[n].get(e);if(t)return t;if(typeof e!=`string`){let t=this[f](`http://localhost:9999`);return this[a](e,t),t}for(let[t,r]of Array.from(this[n]))if(r&&typeof t!=`string`&&S(t,e)){let t=this[f](e);return this[a](e,t),t[s]=r[s],t}}[u](){return this[l]}pendingInterceptors(){let e=this[n];return Array.from(e.entries()).flatMap(([e,t])=>t[s].map(t=>({...t,origin:e}))).filter(({pending:e})=>e)}assertNoPendingInterceptors({pendingInterceptorsFormatter:e=new k}={}){let t=this.pendingInterceptors();if(t.length!==0)throw new D(t.length===1?`1 interceptor is pending:\n\n${e.format(t)}`.trim():`${t.length} interceptors are pending:\n\n${e.format(t)}`.trim())}}})),Cd=s(((e,t)=>{var{InvalidArgumentError:n}=Q(),{runtimeFeatures:i}=Ru();function a(e={}){let{ignoreHeaders:t=[],excludeHeaders:n=[],matchHeaders:r=[],caseSensitive:i=!1}=e;return{ignore:new Set(t.map(e=>i?e:e.toLowerCase())),exclude:new Set(n.map(e=>i?e:e.toLowerCase())),match:new Set(r.map(e=>i?e:e.toLowerCase()))}}var o=i.has(`crypto`)?r(`node:crypto`):null,s=o?.hash?e=>o.hash(`sha256`,e,`base64url`):e=>Buffer.from(e).toString(`base64url`);function c(e){return Array.isArray(e)&&!(e.length&1)}function l(e=[]){return e.length===0?()=>!1:function(t){let n;for(let r of e)if(typeof r==`string`){if(n||=t.toLowerCase(),n.includes(r.toLowerCase()))return!0}else if(r instanceof RegExp&&r.test(t))return!0;return!1}}function u(e){let t={};if(!e)return t;if(c(e)){for(let n=0;n<e.length;n+=2){let r=e[n],i=e[n+1];if(r&&i!==void 0){let e=Buffer.isBuffer(r)?r.toString():r,n=Buffer.isBuffer(i)?i.toString():i;t[e.toLowerCase()]=n}}return t}if(e&&typeof e==`object`)for(let[n,r]of Object.entries(e))n&&typeof n==`string`&&(t[n.toLowerCase()]=Array.isArray(r)?r.join(`, `):String(r));return t}var d=[`record`,`playback`,`update`];function f(e){if(!d.includes(e))throw new n(`Invalid snapshot mode: ${e}. Must be one of: ${d.join(`, `)}`)}t.exports={createHeaderFilters:a,hashId:s,isUndiciHeaders:c,normalizeHeaders:u,isUrlExcludedFactory:l,validateSnapshotMode:f}})),wd=s(((e,t)=>{var{writeFile:n,readFile:i,mkdir:a}=r(`node:fs/promises`),{dirname:o,resolve:s}=r(`node:path`),{setTimeout:c,clearTimeout:l}=r(`node:timers`),{InvalidArgumentError:u,UndiciError:d}=Q(),{hashId:f,isUrlExcludedFactory:p,normalizeHeaders:m,createHeaderFilters:h}=Cd();function g(e,t,n){if(t===!1)return`${e.origin}${e.pathname}`;if(n){let t=String(n(e.searchParams)??``);return t?`${e.origin}${e.pathname}?${t}`:`${e.origin}${e.pathname}`}return e.toString()}function _(e,t,n){return t===!1?``:n?String(n(e)??``):e?String(e):``}function v(e,t,n={}){let r=new URL(e.path,e.origin),i=e._normalizedHeaders||m(e.headers);return e._normalizedHeaders||=i,{method:e.method||`GET`,url:g(r,n.matchQuery,n.normalizeQuery),headers:y(i,t,n),body:_(e.body,n.matchBody,n.normalizeBody)}}function y(e,t,n={}){if(!e||typeof e!=`object`)return{};let{caseSensitive:r=!1}=n,i={},{ignore:a,exclude:o,match:s}=t;for(let[t,n]of Object.entries(e)){let e=r?t:t.toLowerCase();o.has(e)||a.has(e)||(s.size===0||s.has(e))&&(i[e]=n)}return i}function b(e,t,n={}){if(!e||typeof e!=`object`)return{};let{caseSensitive:r=!1}=n,i={},{exclude:a}=t;for(let[t,n]of Object.entries(e)){let e=r?t:t.toLowerCase();a.has(e)||(i[e]=n)}return i}function x(e){let t=[e.method,e.url];if(e.headers&&typeof e.headers==`object`){let n=Object.keys(e.headers).sort();for(let r of n){let n=Array.isArray(e.headers[r])?e.headers[r]:[e.headers[r]];t.push(r);for(let e of n.sort())t.push(String(e))}}return t.push(e.body),f(t.join(`|`))}t.exports={SnapshotRecorder:class{#e;#t;#n=new Map;#r;#i=1/0;#a=!1;#o;constructor(e={}){this.#r=e.snapshotPath,this.#i=e.maxSnapshots||1/0,this.#a=e.autoFlush||!1,this.flushInterval=e.flushInterval||3e4,this._flushTimer=null,this.matchOptions={matchHeaders:e.matchHeaders||[],ignoreHeaders:e.ignoreHeaders||[],excludeHeaders:e.excludeHeaders||[],matchBody:e.matchBody!==!1,normalizeBody:e.normalizeBody||void 0,matchQuery:e.matchQuery!==!1,normalizeQuery:e.normalizeQuery||void 0,caseSensitive:e.caseSensitive||!1},this.#o=h(this.matchOptions),this.shouldRecord=e.shouldRecord||(()=>!0),this.shouldPlayback=e.shouldPlayback||(()=>!0),this.#t=p(e.excludeUrls),this.#a&&this.#r&&this.#s()}async record(e,t){if(!this.shouldRecord(e)||this.isUrlExcluded(e))return;let n=v(e,this.#o,this.matchOptions),r=x(n),i=m(t.headers),a={statusCode:t.statusCode,headers:b(i,this.#o,this.matchOptions),body:Buffer.isBuffer(t.body)?t.body.toString(`base64`):Buffer.from(String(t.body||``)).toString(`base64`),trailers:t.trailers};if(this.#n.size>=this.#i&&!this.#n.has(r)){let e=this.#n.keys().next().value;this.#n.delete(e)}let o=this.#n.get(r);o&&o.responses?(o.responses.push(a),o.timestamp=new Date().toISOString()):this.#n.set(r,{request:n,responses:[a],callCount:0,timestamp:new Date().toISOString()}),this.#a&&this.#r&&this.#l()}isUrlExcluded(e){let t=new URL(e.path,e.origin).toString();return this.#t(t)}findSnapshot(e){if(!this.shouldPlayback(e)||this.isUrlExcluded(e))return;let t=x(v(e,this.#o,this.matchOptions)),n=this.#n.get(t);if(!n)return;let r=n.callCount||0,i=Math.min(r,n.responses.length-1);return n.callCount=r+1,{...n,response:n.responses[i]}}async loadSnapshots(e){let t=e||this.#r;if(!t)throw new u(`Snapshot path is required`);try{let e=await i(s(t),`utf8`),n=JSON.parse(e);if(Array.isArray(n)){this.#n.clear();for(let{hash:e,snapshot:t}of n)this.#n.set(e,t)}else this.#n=new Map(Object.entries(n))}catch(e){if(e.code===`ENOENT`)this.#n.clear();else throw new d(`Failed to load snapshots from ${t}`,{cause:e})}}async saveSnapshots(e){let t=e||this.#r;if(!t)throw new u(`Snapshot path is required`);let r=s(t);await a(o(r),{recursive:!0});let i=Array.from(this.#n.entries()).map(([e,t])=>({hash:e,snapshot:t}));await n(r,JSON.stringify(i,null,2),{flush:!0})}clear(){this.#n.clear()}getSnapshots(){return Array.from(this.#n.values())}size(){return this.#n.size}resetCallCounts(){for(let e of this.#n.values())e.callCount=0}deleteSnapshot(e){let t=x(v(e,this.#o,this.matchOptions));return this.#n.delete(t)}getSnapshotInfo(e){let t=x(v(e,this.#o,this.matchOptions)),n=this.#n.get(t);return n?{hash:t,request:n.request,responseCount:n.responses?n.responses.length:+!!n.response,callCount:n.callCount||0,timestamp:n.timestamp}:null}replaceSnapshots(e){if(this.#n.clear(),Array.isArray(e))for(let{hash:t,snapshot:n}of e)this.#n.set(t,n);else e&&typeof e==`object`&&(this.#n=new Map(Object.entries(e)))}#s(){return this.#l()}#c(){this.#e&&=(l(this.#e),this.saveSnapshots().catch(()=>{}),null)}#l(){this.#e=c(()=>{this.saveSnapshots().catch(()=>{}),this.#a?this.#e?.refresh():this.#e=null},1e3)}destroy(){this.#c(),this.#e&&=(l(this.#e),null)}async close(){this.#r&&this.#n.size!==0&&await this.saveSnapshots(),this.destroy()}},formatRequestKey:v,createRequestHash:x,filterHeadersForMatching:y,filterHeadersForStorage:b,createHeaderFilters:h}})),Td=s(((e,t)=>{var n=Xu(),r=Sd(),{SnapshotRecorder:i}=wd(),{InvalidArgumentError:a,UndiciError:o}=Q(),s=$(),{validateSnapshotMode:c}=Cd(),l=Symbol(`kSnapshotRecorder`),u=Symbol(`kSnapshotMode`),d=Symbol(`kSnapshotPath`),f=Symbol(`kSnapshotLoaded`),p=Symbol(`kRealAgent`),m=!1;t.exports=class extends r{constructor(e={}){m||=(process.emitWarning(`SnapshotAgent is experimental and subject to change`,`ExperimentalWarning`),!0);let{mode:t=`record`,snapshotPath:r=null,...o}=e;if(super(o),c(t),(t===`playback`||t===`update`)&&!r)throw new a(`snapshotPath is required when mode is '${t}'`);this[u]=t,this[d]=r,this[l]=new i({snapshotPath:this[d],mode:this[u],maxSnapshots:e.maxSnapshots,autoFlush:e.autoFlush,flushInterval:e.flushInterval,matchHeaders:e.matchHeaders,ignoreHeaders:e.ignoreHeaders,excludeHeaders:e.excludeHeaders,matchBody:e.matchBody,normalizeBody:e.normalizeBody,matchQuery:e.matchQuery,normalizeQuery:e.normalizeQuery,caseSensitive:e.caseSensitive,shouldRecord:e.shouldRecord,shouldPlayback:e.shouldPlayback,excludeUrls:e.excludeUrls}),this[f]=!1,(this[u]===`record`||this[u]===`update`||this[u]===`playback`&&e.excludeUrls&&e.excludeUrls.length>0)&&(this[p]=new n(e)),(this[u]===`playback`||this[u]===`update`)&&this[d]&&this.loadSnapshots().catch(()=>{})}dispatch(e,t){let n=this[u];if(this[l].isUrlExcluded(e))return this[p].dispatch(e,t);if(n===`playback`||n===`update`){if(!this[f])return this.#e(e,t);let r=this[l].findSnapshot(e);if(r)return this.#n(r,t);if(n===`update`)return this.#t(e,t);{let n=new o(`No snapshot found for ${e.method||`GET`} ${e.path}`);if(t.onResponseError){t.onResponseError(null,n);return}throw n}}if(n===`record`)return this.#t(e,t)}async#e(e,t){return await this.loadSnapshots(),this.dispatch(e,t)}#t(e,t){let n={statusCode:null,headers:{},trailers:{},body:[]},r=this;return this[p].dispatch(e,{onRequestStart(e,n){return t.onRequestStart(e,{...n,history:this.history})},onRequestUpgrade(e,n,r,i){return t.onRequestUpgrade(e,n,r,i)},onResponseStart(e,r,i,a){return n.statusCode=r,n.headers=i,t.onResponseStart(e,r,i,a)},onResponseData(e,r){return n.body.push(r),t.onResponseData(e,r)},onResponseEnd(i,a){n.trailers=a;let o=Buffer.concat(n.body);r[l].record(e,{statusCode:n.statusCode,headers:n.headers,body:o,trailers:n.trailers}).then(()=>t.onResponseEnd(i,a)).catch(e=>t.onResponseError(i,e))},onResponseError(e,n){return t.onResponseError(e,n)}})}#n(e,t){try{let{response:n}=e,r={rawHeaders:n.headers?s.toRawHeaders(n.headers):[],rawTrailers:n.trailers?s.toRawHeaders(n.trailers):[],pause(){},resume(){},abort(e){this.aborted=!0,this.reason=e},aborted:!1,paused:!1};t.onRequestStart(r),t.onResponseStart(r,n.statusCode,n.headers,n.statusMessage);let i=Buffer.from(n.body,`base64`);t.onResponseData(r,i),t.onResponseEnd(r,n.trailers)}catch(e){t.onResponseError?.(null,e)}}async loadSnapshots(e){await this[l].loadSnapshots(e||this[d]),this[f]=!0,this[u]===`playback`&&this.#r()}async saveSnapshots(e){return this[l].saveSnapshots(e||this[d])}#r(){for(let e of this[l].getSnapshots()){let{request:t,responses:n,response:r}=e,i=new URL(t.url),a=this.get(i.origin),o=n?n[0]:r;o&&a.intercept({path:i.pathname+i.search,method:t.method,headers:t.headers,body:t.body}).reply(o.statusCode,o.body,{headers:o.headers,trailers:o.trailers}).persist()}}getRecorder(){return this[l]}getMode(){return this[u]}clearSnapshots(){this[l].clear()}resetCallCounts(){this[l].resetCallCounts()}deleteSnapshot(e){return this[l].deleteSnapshot(e)}getSnapshotInfo(e){return this[l].getSnapshotInfo(e)}replaceSnapshots(e){this[l].replaceSnapshots(e)}async close(){this[u]===`playback`?this[l].destroy():await this[l].close(),await this[p]?.close(),await super.close()}}})),Ed=s(((e,t)=>{var n=Symbol.for(`undici.globalDispatcher.2`),r=Symbol.for(`undici.globalDispatcher.1`),{InvalidArgumentError:i}=Q(),a=Xu(),o=Zu(),s;l()===void 0&&c(new a);function c(e){if(!e||typeof e.dispatch!=`function`)throw new i(`Argument agent must implement Agent`);try{Object.defineProperty(globalThis,n,{value:e,writable:!0,enumerable:!1,configurable:!1})}catch(t){if(t instanceof TypeError){s=e;return}throw t}try{let t=e instanceof o?e:new o(e);Object.defineProperty(globalThis,r,{value:t,writable:!0,enumerable:!1,configurable:!1})}catch(e){if(!(e instanceof TypeError))throw e}}function l(){return globalThis[n]??s}t.exports={setGlobalDispatcher:c,getGlobalDispatcher:l,installedExports:[`fetch`,`Headers`,`Response`,`Request`,`FormData`,`WebSocket`,`CloseEvent`,`ErrorEvent`,`MessageEvent`,`EventSource`]}})),Dd=s(((e,t)=>{var n=r(`node:assert`);t.exports=class{#e;#t=!1;#n=!1;#r=!1;constructor(e){if(typeof e!=`object`||!e)throw TypeError(`handler must be an object`);this.#e=e}onRequestStart(...e){this.#e.onRequestStart?.(...e)}onRequestUpgrade(...e){return n(!this.#t),n(!this.#n),this.#e.onRequestUpgrade?.(...e)}onResponseStart(...e){return n(!this.#t),n(!this.#n),n(!this.#r),this.#r=!0,this.#e.onResponseStart?.(...e)}onResponseData(...e){return n(!this.#t),n(!this.#n),this.#e.onResponseData?.(...e)}onResponseEnd(...e){return n(!this.#t),n(!this.#n),this.#t=!0,this.#e.onResponseEnd?.(...e)}onResponseError(...e){return this.#n=!0,this.#e.onResponseError?.(...e)}onBodySent(...e){return this.#e.onBodySent?.(...e)}onRequestSent(...e){return this.#e.onRequestSent?.(...e)}}})),Od=s(((e,t)=>{var n=$(),i=r(`node:assert`),{InvalidArgumentError:a}=Q(),o=[300,301,302,303,307,308],s=()=>{},c=class e{static buildDispatch(t,n){if(n!=null&&(!Number.isInteger(n)||n<0))throw new a(`maxRedirections must be a positive number`);let r=t.dispatch.bind(t);return(t,i)=>r(t,new e(r,n,t,i))}constructor(e,t,r,i){if(t!=null&&(!Number.isInteger(t)||t<0))throw new a(`maxRedirections must be a positive number`);if(r.throwOnMaxRedirect!=null&&typeof r.throwOnMaxRedirect!=`boolean`)throw new a(`throwOnMaxRedirect must be a boolean`);this.dispatch=e,this.location=null;let{maxRedirections:o,stripHeadersOnRedirect:s,stripHeadersOnCrossOriginRedirect:c,...l}=r;this.opts=l,this.opts.body=n.wrapRequestBody(this.opts.body),this.stripHeadersOnRedirect=u(s,`stripHeadersOnRedirect`),this.stripHeadersOnCrossOriginRedirect=u(c,`stripHeadersOnCrossOriginRedirect`),this.maxRedirections=t,this.handler=i,this.history=[]}onRequestStart(e,t){this.handler.onRequestStart?.(e,{...t,history:this.history})}onBodySent(e){this.handler.onBodySent?.(e)}onRequestSent(){this.handler.onRequestSent?.()}onRequestUpgrade(e,t,n,r){this.handler.onRequestUpgrade?.(e,t,n,r)}onResponseStart(e,t,r,i){if(this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections)throw Error(`max redirects`);let c=t===303;if((t===301||t===302)&&this.opts.method===`POST`&&(this.opts.method=`GET`,n.isStream(this.opts.body)&&n.destroy(this.opts.body.on(`error`,s)),this.opts.body=null,c=!0),t===303&&this.opts.method!==`HEAD`&&(this.opts.method=`GET`,n.isStream(this.opts.body)&&n.destroy(this.opts.body.on(`error`,s)),this.opts.body=null),this.location=this.history.length>=this.maxRedirections||n.isDisturbed(this.opts.body)||o.indexOf(t)===-1?null:r.location,this.opts.origin&&this.history.push(new URL(this.opts.path,this.opts.origin)),!this.location){this.handler.onResponseStart?.(e,t,r,i);return}let{origin:l,pathname:u,search:f}=n.parseURL(new URL(this.location,this.opts.origin&&new URL(this.opts.path,this.opts.origin))),p=f?`${u}${f}`:u,m=`${l}${p}`;for(let e of this.history)if(e.toString()===m)throw new a(`Redirect loop detected. Cannot redirect to ${l}. This typically happens when using a Client or Pool with cross-origin redirects. Use an Agent for cross-origin redirects.`);this.opts.headers=d(this.opts.headers,c,this.opts.origin!==l,this.stripHeadersOnRedirect,this.stripHeadersOnCrossOriginRedirect),this.opts.path=p,this.opts.origin=l,this.opts.query=null}onResponseData(e,t){this.location||this.handler.onResponseData?.(e,t)}onResponseEnd(e,t){this.location?this.dispatch(this.opts,this):this.handler.onResponseEnd(e,t)}onResponseError(e,t){this.handler.onResponseError?.(e,t)}};function l(e,t,r,i,a){let o=n.headerNameToString(e);return o===`host`||i?.has(o)||r&&a?.has(o)||t&&o.startsWith(`content-`)?!0:r?o===`authorization`||o===`cookie`||o===`proxy-authorization`:!1}function u(e,t){if(e==null)return null;if(!Array.isArray(e))throw new a(`${t} must be an array`);let r=new Set;for(let i of e){if(typeof i!=`string`)throw new a(`${t} must contain header names`);r.add(n.headerNameToString(i))}return r}function d(e,t,r,a,o){let s=[];if(Array.isArray(e))for(let n=0;n<e.length;n+=2)l(e[n],t,r,a,o)||s.push(e[n],e[n+1]);else if(e&&typeof e==`object`){let i=n.hasSafeIterator(e)?e:Object.entries(e);for(let[e,n]of i)l(e,t,r,a,o)||s.push(e,n)}else i(e==null,`headers must be an object or an array`);return s}t.exports=c})),kd=s(((e,t)=>{var n=Od();function r({maxRedirections:e,throwOnMaxRedirect:t,stripHeadersOnRedirect:r,stripHeadersOnCrossOriginRedirect:i}={}){return a=>function(o,s){let{maxRedirections:c=e,throwOnMaxRedirect:l=t,stripHeadersOnRedirect:u=r,stripHeadersOnCrossOriginRedirect:d=i,...f}=o;if(c==null||c===0)return a(o,s);let p={...f,throwOnMaxRedirect:l,stripHeadersOnRedirect:u,stripHeadersOnCrossOriginRedirect:d};return a(p,new n(a,c,p,s))}}t.exports=r})),Ad=s(((e,t)=>{var n=Dd(),{ResponseError:r}=Q(),i=class extends n{#e;#t;#n;#r;#i;constructor(e,{handler:t}){super(t)}#a(e){return(this.#t??``).indexOf(e)===0}onRequestStart(e,t){return this.#e=0,this.#t=null,this.#n=null,this.#r=null,this.#i=``,super.onRequestStart(e,t)}onResponseStart(e,t,n,r){if(this.#e=t,this.#r=n,this.#t=n[`content-type`],this.#e<400)return super.onResponseStart(e,t,n,r);(this.#a(`application/json`)||this.#a(`text/plain`))&&(this.#n=new TextDecoder(`utf-8`))}onResponseData(e,t){if(this.#e<400)return super.onResponseData(e,t);this.#i+=this.#n?.decode(t,{stream:!0})??``}onResponseEnd(e,t){if(this.#e>=400){if(this.#i+=this.#n?.decode(void 0,{stream:!1})??``,this.#a(`application/json`))try{this.#i=JSON.parse(this.#i)}catch{}let t,n=Error.stackTraceLimit;Error.stackTraceLimit=0;try{t=new r(`Response Error`,this.#e,{body:this.#i,headers:this.#r})}finally{Error.stackTraceLimit=n}super.onResponseError(e,t)}else super.onResponseEnd(e,t)}onResponseError(e,t){super.onResponseError(e,t)}};t.exports=()=>e=>function(t,n){return e(t,new i(t,{handler:n}))}})),jd=s(((e,t)=>{var n=rd();t.exports=e=>t=>function(r,i){return t(r,new n({...r,retryOptions:{...e,...r.retryOptions}},{handler:i,dispatch:t}))}})),Md=s(((e,t)=>{var{InvalidArgumentError:n,RequestAbortedError:r}=Q(),i=Dd(),a=class extends i{#e=1048576;#t=!1;#n=0;#r=null;aborted=!1;reason=!1;constructor({maxSize:e,signal:t},r){if(e!=null&&(!Number.isFinite(e)||e<1))throw new n(`maxSize must be a number greater than 0`);super(r),this.#e=e??this.#e}#i(e){this.aborted=!0,this.reason=e}onRequestStart(e,t){return e.abort=this.#i.bind(this),this.#r=e,super.onRequestStart(e,t)}onResponseStart(e,t,n,i){let a=n[`content-length`];if(a!=null&&a>this.#e)throw new r(`Response size (${a}) larger than maxSize (${this.#e})`);return this.aborted===!0||super.onResponseStart(e,t,n,i)}onResponseError(e,t){this.#t||(t=this.#r?.reason??t,super.onResponseError(e,t))}onResponseData(e,t){return this.#n+=t.length,this.#n>=this.#e&&(this.#t=!0,this.aborted===!0?super.onResponseError(e,this.reason):super.onResponseEnd(e,{})),!0}onResponseEnd(e,t){if(!this.#t){if(this.aborted===!0){super.onResponseError(e,this.reason);return}super.onResponseEnd(e,t)}}};function o({maxSize:e}={maxSize:1048576}){return t=>function(n,r){let{dumpMaxSize:i=e}=n;return t(n,new a({maxSize:i,signal:n.signal},r))}}t.exports=o})),Nd=s(((e,t)=>{var{isIP:n}=r(`node:net`),{lookup:i}=r(`node:dns`),a=Dd(),{InvalidArgumentError:o,InformationalError:s}=Q(),c=2**31-1;function l(e){let t=Object.getPrototypeOf(e);return Object.hasOwn(e,Symbol.iterator)||t!=null&&t!==Object.prototype&&typeof e[Symbol.iterator]==`function`}function u(e){return typeof e==`string`&&e.toLowerCase()===`host`}function d(e){if(e==null)return null;if(Array.isArray(e)){if(e.length===0||!Array.isArray(e[0]))return e;let t=[];for(let n of e)Array.isArray(n)&&n.length===2?t.push(n[0],n[1]):t.push(n);return t}if(typeof e==`object`&&l(e)){let t=[];for(let n of e)Array.isArray(n)&&n.length===2?t.push(n[0],n[1]):t.push(n);return t}return e}function f(e){if(e==null)return!1;if(Array.isArray(e)){if(e.length===0)return!1;for(let t=0;t<e.length;t+=2)if(u(e[t]))return!0;return!1}if(typeof e==`object`){for(let t in e)if(u(t))return!0}return!1}function p(e,t){let n=d(t);return f(n)?n:Array.isArray(n)?[`host`,e,...n]:n&&typeof n==`object`?{host:e,...n}:{host:e}}var m=class{#e=0;#t=new Map;constructor(e){this.#e=e.maxItems}get size(){return this.#t.size}get(e){return this.#t.get(e)??null}set(e,t){this.#t.set(e,t)}delete(e){this.#t.delete(e)}full(){return this.size>=this.#e}},h=class{#e=0;#t=0;dualStack=!0;affinity=null;lookup=null;pick=null;storage=null;constructor(e){this.#e=e.maxTTL,this.#t=e.maxItems,this.dualStack=e.dualStack,this.affinity=e.affinity,this.lookup=e.lookup??this.#n,this.pick=e.pick??this.#r,this.storage=e.storage??new m(e)}runLookup(e,t,n){let r=this.storage.get(e.hostname);if(r==null&&this.storage.full()){n(null,e);return}let i={affinity:this.affinity,dualStack:this.dualStack,lookup:this.lookup,pick:this.pick,...t.dns,maxTTL:this.#e,maxItems:this.#t};if(r==null)this.lookup(e,i,(t,r)=>{if(t||r==null||r.length===0){n(t??new s(`No DNS entries found`));return}this.setRecords(e,r);let a=this.storage.get(e.hostname),o=this.pick(e,a,i.affinity),c;c=typeof o.port==`number`?`:${o.port}`:e.port===``?``:`:${e.port}`,n(null,new URL(`${e.protocol}//${o.family===6?`[${o.address}]`:o.address}${c}`))});else{let a=this.pick(e,r,i.affinity);if(a==null){this.storage.delete(e.hostname),this.runLookup(e,t,n);return}let o;o=typeof a.port==`number`?`:${a.port}`:e.port===``?``:`:${e.port}`,n(null,new URL(`${e.protocol}//${a.family===6?`[${a.address}]`:a.address}${o}`))}}#n(e,t,n){i(e.hostname,{all:!0,family:this.dualStack===!1?this.affinity:0,order:`ipv4first`},(e,t)=>{if(e)return n(e);let r=new Map;for(let e of t)r.set(`${e.address}:${e.family}`,e);n(null,r.values())})}#r(e,t,n){let r=null,{records:i,offset:a}=t,o;if(this.dualStack?(n??(a==null||a===c?(t.offset=0,n=4):(t.offset++,n=(t.offset&1)==1?6:4)),o=i[n]!=null&&i[n].ips.length>0?i[n]:i[n===4?6:4]):o=i[n],o==null||o.ips.length===0)return r;o.offset==null||o.offset===c?o.offset=0:o.offset++;let s=o.offset%o.ips.length;return r=o.ips[s]??null,r==null?r:Date.now()-r.timestamp>r.ttl?(o.ips.splice(s,1),this.pick(e,t,n)):r}pickFamily(e,t){let n=this.storage.get(e.hostname)?.records;if(!n)return null;let r=n[t];if(!r)return null;r.offset==null||r.offset===c?r.offset=0:r.offset++;let i=r.offset%r.ips.length,a=r.ips[i]??null;return a==null||Date.now()-a.timestamp>a.ttl&&r.ips.splice(i,1),a}setRecords(e,t){let n=Date.now(),r={records:{4:null,6:null}},i=this.#e;for(let e of t){e.timestamp=n,typeof e.ttl==`number`?(e.ttl=Math.min(e.ttl,this.#e),i=Math.min(i,e.ttl)):e.ttl=this.#e;let t=r.records[e.family]??{ips:[]};t.ips.push(e),r.records[e.family]=t}this.storage.set(e.hostname,r,{ttl:i})}deleteRecords(e){this.storage.delete(e.hostname)}getHandler(e,t){return new g(this,e,t)}},g=class extends a{#e=null;#t=null;#n=null;#r=null;#i=null;#a=!0;constructor(e,{origin:t,handler:n,dispatch:r,newOrigin:i},a){super(n),this.#r=t,this.#i=i,this.#t={...a},this.#e=e,this.#n=r}onResponseError(e,t){switch(t.code){case`ETIMEDOUT`:case`ECONNREFUSED`:if(this.#e.dualStack){if(!this.#a){super.onResponseError(e,t);return}this.#a=!1;let n=this.#i.hostname[0]===`[`?4:6,r=this.#e.pickFamily(this.#r,n);if(r==null){super.onResponseError(e,t);return}let i;i=typeof r.port==`number`?`:${r.port}`:this.#r.port===``?``:`:${this.#r.port}`;let a={...this.#t,origin:`${this.#r.protocol}//${r.family===6?`[${r.address}]`:r.address}${i}`,headers:p(this.#r.host,this.#t.headers)};this.#n(a,this);return}super.onResponseError(e,t);break;case`ENOTFOUND`:this.#e.deleteRecords(this.#r),super.onResponseError(e,t);break;default:super.onResponseError(e,t)}}};t.exports=e=>{if(e?.maxTTL!=null&&(typeof e?.maxTTL!=`number`||e?.maxTTL<0))throw new o(`Invalid maxTTL. Must be a positive number`);if(e?.maxItems!=null&&(typeof e?.maxItems!=`number`||e?.maxItems<1))throw new o(`Invalid maxItems. Must be a positive number and greater than zero`);if(e?.affinity!=null&&e?.affinity!==4&&e?.affinity!==6)throw new o(`Invalid affinity. Must be either 4 or 6`);if(e?.dualStack!=null&&typeof e?.dualStack!=`boolean`)throw new o(`Invalid dualStack. Must be a boolean`);if(e?.lookup!=null&&typeof e?.lookup!=`function`)throw new o(`Invalid lookup. Must be a function`);if(e?.pick!=null&&typeof e?.pick!=`function`)throw new o(`Invalid pick. Must be a function`);if(e?.storage!=null&&(typeof e?.storage?.get!=`function`||typeof e?.storage?.set!=`function`||typeof e?.storage?.full!=`function`||typeof e?.storage?.delete!=`function`))throw new o(`Invalid storage. Must be a object with methods: { get, set, full, delete }`);let t=e?.dualStack??!0,r;r=t?e?.affinity??null:e?.affinity??4;let i=new h({maxTTL:e?.maxTTL??1e4,lookup:e?.lookup??null,pick:e?.pick??null,dualStack:t,affinity:r,maxItems:e?.maxItems??1/0,storage:e?.storage});return e=>function(t,r){if(t.origin==null)return e(t,r);let a=t.origin.constructor===URL?t.origin:new URL(t.origin);return n(a.hostname)===0?(i.runLookup(a,t,(n,o)=>{if(n)return r.onResponseError(null,n);e({...t,servername:a.hostname,origin:o.origin,headers:p(a.host,t.headers)},i.getHandler({origin:a,dispatch:e,handler:r,newOrigin:o},t))}),!0):e(t,r)}}})),Pd=s(((e,t)=>{var{safeHTTPMethods:n,pathHasQueryOrFragment:r,hasSafeIterator:i,isValidHTTPToken:a}=$(),{serializePathWithQuery:o}=$(),s=2147483647,c=[`no-store`,`private`,`no-cache`],l=Symbol(`invalid cache-control directives`);function u(e){return e.replace(/^[\t ]+|[\t ]+$/g,``)}function d(e,t){for(let n=0;n<e.length;n++)if(e[n]===t)return!0;return!1}function f(e){return e.replace(/^[\t ]+/,``)}function p(e){return e.replace(/[\t ]+$/,``)}function m(e,t){let n=!1;for(let r=t;r<e.length;r++)if(n)n=!1;else if(e[r]===`\\`)n=!0;else if(e[r]===`"`)return r;return-1}function h(e){let t=[],n=0,r=-1,i=!1,a=!1;for(let o=0;o<e.length;o++)i?a?a=!1:e[o]===`\\`?a=!0:e[o]===`"`&&(i=!1,r=-1):e[o]===`"`?(i=!0,r=o):e[o]===`,`&&(t.push({value:e.substring(n,o),fromMalformedQuote:!1}),n=o+1);if(!i)return t.push({value:e.substring(n),fromMalformedQuote:!1}),t;let o=e.substring(n),s=r-n,c=0;for(let e=0;e<o.length;e++)o[e]===`,`&&(t.push({value:o.substring(c,e),fromMalformedQuote:c>s}),c=e+1);return t.push({value:o.substring(c),fromMalformedQuote:c>s}),t}function g(e,t){let n=e[l];n===void 0&&(n=new Set,Object.defineProperty(e,l,{value:n})),n.add(t)}function _(e,t){return e[l]?.has(t)===!0}function v(e){for(let t of c)if(e.startsWith(t)&&e.length>t.length&&!a(e[t.length]))return t;let t=``,n=!1;for(let r=0;r<e.length;r++)a(e[r])?t+=e[r]:n=!0;if(n&&d(c,t))return t}function y(e){let t=e.origin?e.origin.toString():``,n=e.path||`/`;return e.query&&!r(n)&&(n=o(n,e.query)),{origin:t,method:e.method,path:n,headers:e.headers}}function b(e,t,n){let r=t.toLowerCase(),i=e[r],a=Array.isArray(n)?n:[n];i===void 0?e[r]=Array.isArray(n)?n.slice():n:Array.isArray(i)?i.push(...a):e[r]=[i,...a]}function x(e){let t;if(e.headers==null)t={};else if(typeof e.headers==`object`){if(t={},i(e.headers)){if(Array.isArray(e.headers)){let n=e.headers[0];if(Array.isArray(n))for(let n of e.headers){if(!Array.isArray(n))throw Error(`opts.headers is not a valid header map`);let[e,r]=n;if(typeof e!=`string`||typeof r!=`string`)throw Error(`opts.headers is not a valid header map`);b(t,e,r)}else{let n=e.headers.length;if(n%2!=0)throw Error(`opts.headers is not a valid header map`);for(let r=0;r<n;r+=2){let n=e.headers[r],i=e.headers[r+1];if(typeof n!=`string`||typeof i!=`string`&&!Array.isArray(i))throw Error(`opts.headers is not a valid header map`);if(typeof i==`string`)b(t,n,i);else{let e=[];for(let t=0;t<i.length;t++){let n=i[t];e.push(typeof n==`string`?n:n.toString(`latin1`))}b(t,n,e)}}}}else for(let n of e.headers){if(!Array.isArray(n))throw Error(`opts.headers is not a valid header map`);let[e,r]=n;if(typeof e!=`string`||typeof r!=`string`)throw Error(`opts.headers is not a valid header map`);b(t,e,r)}}else for(let n of Object.keys(e.headers))b(t,n,e.headers[n])}else throw Error(`opts.headers is not an object`);return t}function S(e){if(typeof e!=`object`)throw TypeError(`expected key to be object, got ${typeof e}`);for(let t of[`origin`,`method`,`path`])if(typeof e[t]!=`string`)throw TypeError(`expected key.${t} to be string, got ${typeof e[t]}`);if(e.headers!==void 0&&typeof e.headers!=`object`)throw TypeError(`expected headers to be object, got ${typeof e}`)}function C(e){if(typeof e!=`object`)throw TypeError(`expected value to be object, got ${typeof e}`);for(let t of[`statusCode`,`cachedAt`,`staleAt`,`deleteAt`])if(typeof e[t]!=`number`)throw TypeError(`expected value.${t} to be number, got ${typeof e[t]}`);if(typeof e.statusMessage!=`string`)throw TypeError(`expected value.statusMessage to be string, got ${typeof e.statusMessage}`);if(e.headers!=null&&typeof e.headers!=`object`)throw TypeError(`expected value.rawHeaders to be object, got ${typeof e.headers}`);if(e.vary!==void 0&&typeof e.vary!=`object`)throw TypeError(`expected value.vary to be object, got ${typeof e.vary}`);if(e.etag!==void 0&&typeof e.etag!=`string`)throw TypeError(`expected value.etag to be string, got ${typeof e.etag}`)}function w(e){let t={},n=new Set,r=new Set,i=h(Array.isArray(e)?e.join(`,`):e);for(let e=0;e<i.length;e++){let o=i[e],c=o.value.toLowerCase(),l=o.fromMalformedQuote,d=c.indexOf(`=`),h,_,y=!1,b=!1;if(d!==-1){let e=c.substring(0,d),t=c.substring(d+1);y=p(e)!==e,b=f(t)!==t,h=u(e),_=f(t)}else h=u(c);let x=v(h);if(x!==void 0){t[x]=!0;continue}switch(h){case`min-fresh`:case`max-stale`:case`max-age`:case`s-maxage`:case`stale-while-revalidate`:case`stale-if-error`:{if(l||n.has(h))continue;if(_===void 0||y||b){delete t[h],n.add(h),g(t,h);continue}if(_.length>=2&&_[0]===`"`&&_[_.length-1]===`"`&&(_=_.substring(1,_.length-1)),!/^[0-9]+$/.test(_)){delete t[h],n.add(h),g(t,h);continue}let e=Math.min(parseInt(_,10),s);h===`min-fresh`?(!(h in t)||t[h]<e)&&(t[h]=e):(!(h in t)||t[h]>e)&&(t[h]=e);break}case`private`:case`no-cache`:if(l){t[h]=!0;break}if(_!==void 0&&_.length===0){t[h]=!0;break}if(_){if(_[0]===`"`){_=p(_);let n=``,r=e,o=!1,s=m(_,1);if(s!==-1)n=_.substring(1,s),o=!0;else{let t=[_.substring(1)];for(let n=e+1;n<i.length;n++){let e=u(i[n].value),a=m(e,0);if(r=n,a!==-1){t.push(e.substring(0,a)),o=!0;break}t.push(e)}n=t.join(`,`)}if(!o){t[h]=!0;break}e=r;let c=n.split(`,`),l=!0;for(let e=0;e<c.length;e++)c[e]=u(c[e]),a(c[e])||(l=!1);l?t[h]!==!0&&(h in t?t[h]=t[h].concat(c):t[h]=c):t[h]=!0}else{let e=u(_);a(e)?t[h]!==!0&&(h in t?t[h]=t[h].concat(e):t[h]=[e]):t[h]=!0}break}case`public`:case`must-revalidate`:case`proxy-revalidate`:case`immutable`:case`no-transform`:case`must-understand`:case`only-if-cached`:if(l||r.has(h))continue;if(_!==void 0){delete t[h],r.add(h);continue}t[h]=!0;break;case`no-store`:t[h]=!0;break;default:continue}}return t}function T(e){let t=Array.isArray(e)?e:[e],n=[];for(let e=0;e<t.length;e++){let r=t[e].split(`,`);for(let e=0;e<r.length;e++)n.push(r[e])}return n}function E(e){let t=T(e);for(let e=0;e<t.length;e++)if(u(t[e]).indexOf(`*`)!==-1)return!0;return!1}function D(e,t){if(E(e))return t;let n={},r=T(e);for(let e of r){let r=u(e).toLowerCase();if(r.length===0)continue;if(!a(r))return;let i=t[r];n[r]=Array.isArray(i)?i.slice():i??null}return n}function O(e){return E(e)||D(e,{})===void 0}function k(e){return e.length<=2?!1:e[0]===`"`&&e[e.length-1]===`"`?!(e[1]===`"`||e.startsWith(`"W/`)):e.startsWith(`W/"`)&&e[e.length-1]===`"`?e.length!==4:!1}function A(e,t=`CacheStore`){if(typeof e!=`object`||!e)throw TypeError(`expected type of ${t} to be a CacheStore, got ${e===null?`null`:typeof e}`);for(let n of[`get`,`createWriteStream`,`delete`])if(typeof e[n]!=`function`)throw TypeError(`${t} needs to have a \`${n}()\` function`)}function j(e,t=`CacheMethods`){if(!Array.isArray(e))throw TypeError(`expected type of ${t} needs to be an array, got ${e===null?`null`:typeof e}`);if(e.length===0)throw TypeError(`${t} needs to have at least one method`);for(let r of e)if(!d(n,r))throw TypeError(`element of ${t}-array needs to be one of following values: ${n.join(`, `)}, got ${r}`)}function M(e,t){let n={};if(e.headers){let r=Object.keys(e.headers).sort();for(let i of r)t?.has(i.toLowerCase())||(n[i]=e.headers[i])}return JSON.stringify([e.origin,e.method,e.path,n])}t.exports={makeCacheKey:y,normalizeHeaders:x,assertCacheKey:S,assertCacheValue:C,parseCacheControlHeader:w,hasInvalidCacheControlDirective:_,parseVaryHeader:D,hasVaryStar:E,isInvalidOrWildcardVaryHeader:O,isEtagUsable:k,assertCacheMethods:j,assertCacheStore:A,makeDeduplicationKey:M}})),Fd=s(((e,t)=>{function n(e){switch(e[3]){case`,`:return i(e);case` `:return a(e);default:return o(e)}}function r(e,t,n,r,i,a,o){let s=new Date(Date.UTC(e,t,n,r,i,a));return e>=0&&e<=99&&s.setUTCFullYear(e),s.getUTCFullYear()===e&&s.getUTCMonth()===t&&s.getUTCDate()===n&&s.getUTCHours()===r&&s.getUTCMinutes()===i&&s.getUTCSeconds()===a&&s.getUTCDay()===o?s:void 0}function i(e){if(e.length!==29||e[4]!==` `||e[7]!==` `||e[11]!==` `||e[16]!==` `||e[19]!==`:`||e[22]!==`:`||e[25]!==` `||e[26]!==`G`||e[27]!==`M`||e[28]!==`T`)return;let t=-1;if(e[0]===`S`&&e[1]===`u`&&e[2]===`n`)t=0;else if(e[0]===`M`&&e[1]===`o`&&e[2]===`n`)t=1;else if(e[0]===`T`&&e[1]===`u`&&e[2]===`e`)t=2;else if(e[0]===`W`&&e[1]===`e`&&e[2]===`d`)t=3;else if(e[0]===`T`&&e[1]===`h`&&e[2]===`u`)t=4;else if(e[0]===`F`&&e[1]===`r`&&e[2]===`i`)t=5;else if(e[0]===`S`&&e[1]===`a`&&e[2]===`t`)t=6;else return;let n=0;if(e[5]===`0`){let t=e.charCodeAt(6);if(t<49||t>57)return;n=t-48}else{let t=e.charCodeAt(5);if(t<49||t>51)return;let r=e.charCodeAt(6);if(r<48||r>57)return;n=(t-48)*10+(r-48)}let i=-1;if(e[8]===`J`&&e[9]===`a`&&e[10]===`n`)i=0;else if(e[8]===`F`&&e[9]===`e`&&e[10]===`b`)i=1;else if(e[8]===`M`&&e[9]===`a`){if(e[10]===`r`)i=2;else if(e[10]===`y`)i=4;else return}else if(e[8]===`J`){if(e[9]===`a`&&e[10]===`n`)i=0;else if(e[9]===`u`){if(e[10]===`n`)i=5;else if(e[10]===`l`)i=6;else return}else return}else if(e[8]===`A`){if(e[9]===`p`&&e[10]===`r`)i=3;else if(e[9]===`u`&&e[10]===`g`)i=7;else return}else if(e[8]===`S`&&e[9]===`e`&&e[10]===`p`)i=8;else if(e[8]===`O`&&e[9]===`c`&&e[10]===`t`)i=9;else if(e[8]===`N`&&e[9]===`o`&&e[10]===`v`)i=10;else if(e[8]===`D`&&e[9]===`e`&&e[10]===`c`)i=11;else return;let a=e.charCodeAt(12);if(a<48||a>57)return;let o=e.charCodeAt(13);if(o<48||o>57)return;let s=e.charCodeAt(14);if(s<48||s>57)return;let c=e.charCodeAt(15);if(c<48||c>57)return;let l=(a-48)*1e3+(o-48)*100+(s-48)*10+(c-48),u=0;if(e[17]===`0`){let t=e.charCodeAt(18);if(t<48||t>57)return;u=t-48}else{let t=e.charCodeAt(17);if(t<48||t>50)return;let n=e.charCodeAt(18);if(n<48||n>57||t===50&&n>51)return;u=(t-48)*10+(n-48)}let d=0;if(e[20]===`0`){let t=e.charCodeAt(21);if(t<48||t>57)return;d=t-48}else{let t=e.charCodeAt(20);if(t<48||t>53)return;let n=e.charCodeAt(21);if(n<48||n>57)return;d=(t-48)*10+(n-48)}let f=0;if(e[23]===`0`){let t=e.charCodeAt(24);if(t<48||t>57)return;f=t-48}else{let t=e.charCodeAt(23);if(t<48||t>53)return;let n=e.charCodeAt(24);if(n<48||n>57)return;f=(t-48)*10+(n-48)}return r(l,i,n,u,d,f,t)}function a(e){if(e.length!==24||e[7]!==` `||e[10]!==` `||e[19]!==` `)return;let t=-1;if(e[0]===`S`&&e[1]===`u`&&e[2]===`n`)t=0;else if(e[0]===`M`&&e[1]===`o`&&e[2]===`n`)t=1;else if(e[0]===`T`&&e[1]===`u`&&e[2]===`e`)t=2;else if(e[0]===`W`&&e[1]===`e`&&e[2]===`d`)t=3;else if(e[0]===`T`&&e[1]===`h`&&e[2]===`u`)t=4;else if(e[0]===`F`&&e[1]===`r`&&e[2]===`i`)t=5;else if(e[0]===`S`&&e[1]===`a`&&e[2]===`t`)t=6;else return;let n=-1;if(e[4]===`J`&&e[5]===`a`&&e[6]===`n`)n=0;else if(e[4]===`F`&&e[5]===`e`&&e[6]===`b`)n=1;else if(e[4]===`M`&&e[5]===`a`){if(e[6]===`r`)n=2;else if(e[6]===`y`)n=4;else return}else if(e[4]===`J`){if(e[5]===`a`&&e[6]===`n`)n=0;else if(e[5]===`u`){if(e[6]===`n`)n=5;else if(e[6]===`l`)n=6;else return}else return}else if(e[4]===`A`){if(e[5]===`p`&&e[6]===`r`)n=3;else if(e[5]===`u`&&e[6]===`g`)n=7;else return}else if(e[4]===`S`&&e[5]===`e`&&e[6]===`p`)n=8;else if(e[4]===`O`&&e[5]===`c`&&e[6]===`t`)n=9;else if(e[4]===`N`&&e[5]===`o`&&e[6]===`v`)n=10;else if(e[4]===`D`&&e[5]===`e`&&e[6]===`c`)n=11;else return;let i=0;if(e[8]===` `){let t=e.charCodeAt(9);if(t<49||t>57)return;i=t-48}else{let t=e.charCodeAt(8);if(t<49||t>51)return;let n=e.charCodeAt(9);if(n<48||n>57)return;i=(t-48)*10+(n-48)}let a=0;if(e[11]===`0`){let t=e.charCodeAt(12);if(t<48||t>57)return;a=t-48}else{let t=e.charCodeAt(11);if(t<48||t>50)return;let n=e.charCodeAt(12);if(n<48||n>57||t===50&&n>51)return;a=(t-48)*10+(n-48)}let o=0;if(e[14]===`0`){let t=e.charCodeAt(15);if(t<48||t>57)return;o=t-48}else{let t=e.charCodeAt(14);if(t<48||t>53)return;let n=e.charCodeAt(15);if(n<48||n>57)return;o=(t-48)*10+(n-48)}let s=0;if(e[17]===`0`){let t=e.charCodeAt(18);if(t<48||t>57)return;s=t-48}else{let t=e.charCodeAt(17);if(t<48||t>53)return;let n=e.charCodeAt(18);if(n<48||n>57)return;s=(t-48)*10+(n-48)}let c=e.charCodeAt(20);if(c<48||c>57)return;let l=e.charCodeAt(21);if(l<48||l>57)return;let u=e.charCodeAt(22);if(u<48||u>57)return;let d=e.charCodeAt(23);if(!(d<48||d>57))return r((c-48)*1e3+(l-48)*100+(u-48)*10+(d-48),n,i,a,o,s,t)}function o(e){let t=-1,n=-1;if(e[0]===`S`)e[1]===`u`&&e[2]===`n`&&e[3]===`d`&&e[4]===`a`&&e[5]===`y`?(n=0,t=6):e[1]===`a`&&e[2]===`t`&&e[3]===`u`&&e[4]===`r`&&e[5]===`d`&&e[6]===`a`&&e[7]===`y`&&(n=6,t=8);else if(e[0]===`M`&&e[1]===`o`&&e[2]===`n`&&e[3]===`d`&&e[4]===`a`&&e[5]===`y`)n=1,t=6;else if(e[0]===`T`)e[1]===`u`&&e[2]===`e`&&e[3]===`s`&&e[4]===`d`&&e[5]===`a`&&e[6]===`y`?(n=2,t=7):e[1]===`h`&&e[2]===`u`&&e[3]===`r`&&e[4]===`s`&&e[5]===`d`&&e[6]===`a`&&e[7]===`y`&&(n=4,t=8);else if(e[0]===`W`&&e[1]===`e`&&e[2]===`d`&&e[3]===`n`&&e[4]===`e`&&e[5]===`s`&&e[6]===`d`&&e[7]===`a`&&e[8]===`y`)n=3,t=9;else if(e[0]===`F`&&e[1]===`r`&&e[2]===`i`&&e[3]===`d`&&e[4]===`a`&&e[5]===`y`)n=5,t=6;else return;if(e[t]!==`,`||e.length-t-1!=23||e[t+1]!==` `||e[t+4]!==`-`||e[t+8]!==`-`||e[t+11]!==` `||e[t+14]!==`:`||e[t+17]!==`:`||e[t+20]!==` `||e[t+21]!==`G`||e[t+22]!==`M`||e[t+23]!==`T`)return;let i=0;if(e[t+2]===`0`){let n=e.charCodeAt(t+3);if(n<49||n>57)return;i=n-48}else{let n=e.charCodeAt(t+2);if(n<49||n>51)return;let r=e.charCodeAt(t+3);if(r<48||r>57)return;i=(n-48)*10+(r-48)}let a=-1;if(e[t+5]===`J`&&e[t+6]===`a`&&e[t+7]===`n`)a=0;else if(e[t+5]===`F`&&e[t+6]===`e`&&e[t+7]===`b`)a=1;else if(e[t+5]===`M`&&e[t+6]===`a`&&e[t+7]===`r`)a=2;else if(e[t+5]===`A`&&e[t+6]===`p`&&e[t+7]===`r`)a=3;else if(e[t+5]===`M`&&e[t+6]===`a`&&e[t+7]===`y`)a=4;else if(e[t+5]===`J`&&e[t+6]===`u`&&e[t+7]===`n`)a=5;else if(e[t+5]===`J`&&e[t+6]===`u`&&e[t+7]===`l`)a=6;else if(e[t+5]===`A`&&e[t+6]===`u`&&e[t+7]===`g`)a=7;else if(e[t+5]===`S`&&e[t+6]===`e`&&e[t+7]===`p`)a=8;else if(e[t+5]===`O`&&e[t+6]===`c`&&e[t+7]===`t`)a=9;else if(e[t+5]===`N`&&e[t+6]===`o`&&e[t+7]===`v`)a=10;else if(e[t+5]===`D`&&e[t+6]===`e`&&e[t+7]===`c`)a=11;else return;let o=e.charCodeAt(t+9);if(o<48||o>57)return;let s=e.charCodeAt(t+10);if(s<48||s>57)return;let c=(o-48)*10+(s-48);c+=c<70?2e3:1900;let l=0;if(e[t+12]===`0`){let n=e.charCodeAt(t+13);if(n<48||n>57)return;l=n-48}else{let n=e.charCodeAt(t+12);if(n<48||n>50)return;let r=e.charCodeAt(t+13);if(r<48||r>57||n===50&&r>51)return;l=(n-48)*10+(r-48)}let u=0;if(e[t+15]===`0`){let n=e.charCodeAt(t+16);if(n<48||n>57)return;u=n-48}else{let n=e.charCodeAt(t+15);if(n<48||n>53)return;let r=e.charCodeAt(t+16);if(r<48||r>57)return;u=(n-48)*10+(r-48)}let d=0;if(e[t+18]===`0`){let n=e.charCodeAt(t+19);if(n<48||n>57)return;d=n-48}else{let n=e.charCodeAt(t+18);if(n<48||n>53)return;let r=e.charCodeAt(t+19);if(r<48||r>57)return;d=(n-48)*10+(r-48)}return r(c,a,i,l,u,d,n)}t.exports={parseHttpDate:n}})),Id=s(((e,t)=>{var n=$(),{parseCacheControlHeader:r,hasInvalidCacheControlDirective:i,parseVaryHeader:a,hasVaryStar:o,isInvalidOrWildcardVaryHeader:s,isEtagUsable:c}=Pd(),{parseHttpDate:l}=Fd();function u(){}var d=[200,203,204,206,300,301,308,404,405,410,414,501],f=[206],p=2147483647e3,m=864e5;function h(e){return e.replace(/^[\t ]+|[\t ]+$/g,``)}function g(e,t){for(let n=0;n<e.length;n++)if(e[n]===t)return!0;return!1}function _(e,t){let n=Array.isArray(t)?t:[t];for(let t=0;t<n.length;t++){let r=n[t].split(`,`);for(let t=0;t<r.length;t++)e.push(h(r[t]).toLowerCase())}}function v(e,t){if(typeof t!=`string`)return;let n,r,i;try{n=new URL(e.origin),r=new URL(e.path,n),i=new URL(t,r)}catch{return}if(i.origin===n.origin)return i.pathname+i.search}function y(e,t,r){C(e,{...t,path:r});for(let i=0;i<n.safeHTTPMethods.length;i++){let a=n.safeHTTPMethods[i];a!==t.method&&C(e,{...t,method:a,path:r})}}function b(e,t,n){if(n===void 0)return;let r=Array.isArray(n)?n:[n];for(let n=0;n<r.length;n++){let i=v(t,r[n]);i!==void 0&&y(e,t,i)}}function x(e,t,n){y(e,t,t.path),b(e,t,n.location),b(e,t,n[`content-location`])}var S=class{#e;#t;#n;#r;#i;#a;constructor({store:e,type:t,cacheByDefault:n},r,i){this.#r=e,this.#t=t,this.#n=n,this.#e=r,this.#i=i}onRequestStart(e,t){this.#a?.destroy(),this.#a=void 0,this.#i.onRequestStart?.(e,t)}onBodySent(e){this.#i.onBodySent?.(e)}onRequestSent(){this.#i.onRequestSent?.()}onRequestUpgrade(e,t,n,r){this.#i.onRequestUpgrade?.(e,t,n,r)}onResponseStart(e,t,i,o){let l=()=>this.#i.onResponseStart?.(e,t,i,o),u=this;if(!g(n.safeHTTPMethods,this.#e.method)&&t>=200&&t<=399)return x(this.#r,this.#e,i),l();let f=i[`cache-control`],m=i[`last-modified`]&&g(d,t);if(!f&&!i.expires&&!m&&!this.#n)return t===304&&i.vary&&s(i.vary)&&C(this.#r,this.#e),l();let h=f?r(f):{};if(!E(this.#t,t,i,h,this.#e.headers))return t===304&&(f||T(this.#t,i,h))&&C(this.#r,this.#e),l();let _=Date.now(),v=Object.hasOwn(i,`age`)?O(i.age):void 0;if(v!==void 0&&v>=p)return w(t,this.#r,this.#e),l();let y=Object.hasOwn(i,`date`)?D(i.date):void 0;if(y===null)return w(t,this.#r,this.#e),l();let b=y?Math.max(0,_-y.getTime()):0,S=Math.max(b,v??0),M=typeof i.etag==`string`&&c(i.etag)||typeof i[`last-modified`]==`string`,N=k(this.#t,_,v,i,y,h,M)??this.#n,P=N===0&&M;if(N===void 0||S>=N&&!P)return(f||N!==void 0)&&w(t,this.#r,this.#e),l();let F=_-S,I=N+F;if(_>=I&&!P)return w(t,this.#r,this.#e),l();let L;if(this.#e.headers&&i.vary&&(L=a(i.vary,this.#e.headers),!L))return l();let R=F,z=A(F,_,h,I),ee=j(i,h),B={statusCode:t,statusMessage:o,headers:ee,vary:L,cacheControlDirectives:h,cachedAt:R,staleAt:I,deleteAt:z};if(t===304){let t=t=>{if(!t)return l();if(B.statusCode=t.statusCode,B.statusMessage=t.statusMessage,B.etag=t.etag,B.vary=L??t.vary,B.headers={...t.headers,...ee},l(),this.#a=this.#r.createWriteStream(this.#e,B),this.#a&&t?.body){if(typeof t.body.values==`function`){let n=t.body.values(),r=()=>{for(let t of n){let n=this.#a.write(t)===!1;if(this.#i.onResponseData?.(e,t),n)break}};this.#a.on(`error`,function(){u.#a=void 0,u.#r.delete(u.#e)}).on(`drain`,()=>{r()}).on(`close`,function(){u.#a===this&&(u.#a=void 0)}),r()}else typeof t.body.on==`function`&&(t.body.on(`data`,t=>{this.#a.write(t),this.#i.onResponseData?.(e,t)}).on(`end`,()=>{this.#a.end()}).on(`error`,()=>{this.#a=void 0,this.#r.delete(this.#e)}),this.#a.on(`error`,function(){u.#a=void 0,u.#r.delete(u.#e)}).on(`close`,function(){u.#a===this&&(u.#a=void 0)}))}},n=this.#r.get(this.#e);n&&typeof n.then==`function`?n.then(t):t(n)}else{if(typeof i.etag==`string`&&c(i.etag)&&(B.etag=i.etag),this.#a=this.#r.createWriteStream(this.#e,B),!this.#a)return l();this.#a.on(`drain`,()=>e.resume()).on(`error`,function(){u.#a=void 0,u.#r.delete(u.#e)}).on(`close`,function(){u.#a===this&&(u.#a=void 0),e.resume()}),l()}}onResponseData(e,t){this.#a?.write(t)===!1&&e.pause(),this.#i.onResponseData?.(e,t)}onResponseEnd(e,t){this.#a?.end(),this.#i.onResponseEnd?.(e,t)}onResponseError(e,t){this.#a?.destroy(t),this.#a=void 0,this.#i.onResponseError?.(e,t)}};function C(e,t){try{e.delete(t)?.catch?.(u)}catch{}}function w(e,t,n){e===304&&C(t,n)}function T(e,t,n){return n[`no-store`]===!0||e===`shared`&&n.private===!0||(t.vary?s(t.vary):!1)}function E(e,t,n,r,i){return!(t<200||g(f,t)||!g(d,t)&&!n.expires&&!r.public&&r[`max-age`]===void 0&&!(r.private&&e===`private`)&&(r[`s-maxage`]===void 0||e!==`shared`)||r[`no-store`]||e===`shared`&&r.private===!0||n.vary&&o(n.vary)||i!=null&&Object.hasOwn(i,`authorization`)&&(!r.public&&!r[`s-maxage`]&&!r[`must-revalidate`]||typeof i.authorization!=`string`||Array.isArray(r[`no-cache`])&&g(r[`no-cache`],`authorization`)||Array.isArray(r.private)&&g(r.private,`authorization`)))}function D(e){let t=e;if(Array.isArray(t)){if(t.length!==1)return null;t=t[0]}return typeof t==`string`?l(t):null}function O(e){let t=e;if(Array.isArray(t)){if(t.length!==1)return p;t=t[0]}if(typeof t!=`string`||!/^[\t ]*[0-9]+[\t ]*$/.test(t))return p;let n=BigInt(t.replace(/^[\t ]+|[\t ]+$/g,``));return n>=BigInt(p/1e3)?p:Number(n)*1e3}function k(e,t,n,r,a,o,s){if(e===`shared`){if(i(o,`s-maxage`))return 0;let e=o[`s-maxage`];if(e!==void 0)return e>0?e*1e3:0}if(i(o,`max-age`))return 0;let c=o[`max-age`];if(c!==void 0)return c>0?c*1e3:0;if(Object.hasOwn(r,`expires`)){if(typeof r.expires!=`string`)return 0;let e=l(r.expires);if(!e||t>=e.getTime())return 0;if(a){if(a>=e)return 0;let t=e.getTime()-a.getTime();return n!==void 0&&n>=t?0:t}return e.getTime()-t}if(typeof r[`last-modified`]==`string`){let e=l(r[`last-modified`]);if(e)return e.getTime()>=t?void 0:(t-e.getTime())*.1}if(o.immutable)return 31536e6;if(o[`no-cache`]===!0&&s)return 0}function A(e,t,n,r){let i=-1/0,a=-1/0,o=-1/0;if(n[`stale-while-revalidate`]&&(i=r+n[`stale-while-revalidate`]*1e3),n[`stale-if-error`]&&(a=r+n[`stale-if-error`]*1e3),n.immutable&&i===-1/0&&a===-1/0&&(o=t+31536e6),i===-1/0&&a===-1/0&&o===-1/0){let n=r-e;if(n<=0)return t+m;let i=Math.min(Math.max(t-e,0),1e3);return r+n+i}return Math.max(r,i,a,o)}function j(e,t){let n=[`connection`,`proxy-authenticate`,`proxy-authentication-info`,`proxy-authorization`,`proxy-connection`,`te`,`transfer-encoding`,`upgrade`,`age`];e.connection&&_(n,e.connection),Array.isArray(t[`no-cache`])&&n.push(...t[`no-cache`]),Array.isArray(t.private)&&n.push(...t.private);let r;for(let t of n)Object.hasOwn(e,t)&&(r??={...e},delete r[t]);return r??e}t.exports=S})),Ld=s(((e,t)=>{var{Writable:n}=r(`node:stream`),{EventEmitter:i}=r(`node:events`),{assertCacheKey:a,assertCacheValue:o}=Pd(),s=class extends i{#e=1024;#t=104857600;#n=5242880;#r=0;#i=0;#a=new Map;#o=!1;constructor(e){if(super(),e){if(typeof e!=`object`)throw TypeError(`MemoryCacheStore options must be an object`);if(e.maxCount!==void 0){if(typeof e.maxCount!=`number`||!Number.isInteger(e.maxCount)||e.maxCount<0)throw TypeError(`MemoryCacheStore options.maxCount must be a non-negative integer`);this.#e=e.maxCount}if(e.maxSize!==void 0){if(typeof e.maxSize!=`number`||!Number.isInteger(e.maxSize)||e.maxSize<0)throw TypeError(`MemoryCacheStore options.maxSize must be a non-negative integer`);this.#t=e.maxSize}if(e.maxEntrySize!==void 0){if(typeof e.maxEntrySize!=`number`||!Number.isInteger(e.maxEntrySize)||e.maxEntrySize<0)throw TypeError(`MemoryCacheStore options.maxEntrySize must be a non-negative integer`);this.#n=e.maxEntrySize}}}get size(){return this.#r}isFull(){return this.#r>=this.#t||this.#i>=this.#e}get(e){a(e);let t=`${e.origin}:${e.path}`,n=Date.now(),r=this.#a.get(t),i=r?c(e,r,n):null;return i==null?void 0:{statusMessage:i.statusMessage,statusCode:i.statusCode,headers:i.headers,body:i.body,vary:i.vary?i.vary:void 0,etag:i.etag,cacheControlDirectives:i.cacheControlDirectives,cachedAt:i.cachedAt,staleAt:i.staleAt,deleteAt:i.deleteAt}}createWriteStream(e,t){a(e),o(t);let r=`${e.origin}:${e.path}`,i=this,s={...e,...t,body:[],size:0};return new n({write(e,t,n){typeof e==`string`&&(e=Buffer.from(e,t)),s.size+=e.byteLength,s.size>i.#n?this.destroy():s.body.push(e),n(null)},final(t){let n=i.#a.get(r);n||(n=[],i.#a.set(r,n));let a=c(e,n,Date.now());if(a){let e=n.indexOf(a);n.splice(e,1,s),i.#r-=a.size}else n.push(s),i.#i+=1;if(i.#r+=s.size,i.#r>i.#t||i.#i>i.#e){i.#o||=(i.emit(`maxSizeExceeded`,{size:i.#r,maxSize:i.#t,count:i.#i,maxCount:i.#e}),!0);for(let[e,t]of i.#a){for(let e of t.splice(0,Math.ceil(t.length/2)))i.#r-=e.size,--i.#i;t.length===0&&i.#a.delete(e)}i.#r<i.#t&&i.#i<i.#e&&(i.#o=!1)}t(null)}})}delete(e){if(typeof e!=`object`)throw TypeError(`expected key to be object, got ${typeof e}`);let t=`${e.origin}:${e.path}`;for(let e of this.#a.get(t)??[])this.#r-=e.size,--this.#i;this.#a.delete(t)}};function c(e,t,n){for(let r=0;r<t.length;r++){let i=t[r];if(i.deleteAt>n&&i.method===e.method&&l(e,i))return i}}function l(e,t){if(t.vary==null)return!0;for(let n in t.vary)if(Object.hasOwn(t.vary,n)&&!u(e.headers?.[n],t.vary[n]))return!1;return!0}function u(e,t){if(e==null&&t==null)return!0;if(e==null&&t!=null||e!=null&&t==null)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return e===t}t.exports=s})),Rd=s(((e,t)=>{var n=r(`node:assert`);t.exports=class{#e=!1;#t;#n;#r;#i;constructor(e,t,n){if(typeof e!=`function`)throw TypeError(`callback must be a function`);this.#t=e,this.#n=t,this.#i=n}onRequestStart(e,t){this.#e=!1,this.#r=t}onRequestUpgrade(e,t,n,r){this.#n.onRequestUpgrade?.(e,t,n,r)}onResponseStart(e,t,r,i){if(n(this.#t!=null),this.#e=t===304||this.#i&&t>=500&&t<=504,this.#t(this.#e,this.#r,t,r),this.#t=null,this.#e)return!0;this.#n.onRequestStart?.(e,this.#r),this.#n.onResponseStart?.(e,t,r,i)}onResponseData(e,t){if(!this.#e)return this.#n.onResponseData?.(e,t)}onResponseEnd(e,t){this.#e||this.#n.onResponseEnd?.(e,t)}onResponseError(e,t){if(!this.#e){if(this.#t){if(this.#i){this.#e=!0,this.#t(!0,this.#r),this.#t=null;return}this.#t(!1),this.#t=null}if(typeof this.#n.onResponseError==`function`)this.#n.onResponseError(e,t);else throw t}}}})),zd=s(((e,t)=>{var n=r(`node:assert`),{Readable:i}=r(`node:stream`),a=$(),o=Id(),s=Ld(),c=Rd(),{assertCacheStore:l,assertCacheMethods:u,makeCacheKey:d,normalizeHeaders:f,parseCacheControlHeader:p,isInvalidOrWildcardVaryHeader:m}=Pd(),{AbortError:h}=Q(),{parseHttpDate:g}=Fd();function _(e,t){if(e!==void 0){if(!Array.isArray(e))throw TypeError(`expected ${t} to be an array or undefined, got ${typeof e}`);for(let n=0;n<e.length;n++){let r=e[n];if(typeof r!=`string`&&!(r instanceof RegExp))throw TypeError(`expected ${t}[${n}] to be a string or RegExp, got ${typeof r}`)}}}var v=()=>{};function y(e){return e.replace(/^[\t ]+|[\t ]+$/g,``)}function b(e,t){for(let n=0;n<e.length;n++)if(e[n]===t)return!0;return!1}function x(e){let t=e?.pragma;if(!t)return!1;let n=Array.isArray(t)?t:[t];for(let e=0;e<n.length;e++){let t=n[e];if(typeof t!=`string`)continue;let r=t.split(`,`);for(let e=0;e<r.length;e++)if(y(r[e]).toLowerCase()===`no-cache`)return!0}return!1}function S(e,t,{headers:n={}}){return!!(t?.[`no-cache`]||e.cacheControlDirectives?.[`no-cache`]&&!Array.isArray(e.cacheControlDirectives[`no-cache`])||n[`if-modified-since`]||n[`if-none-match`])}function C(e,t){return e.cacheControlDirectives?.[`must-revalidate`]===!0||t===`shared`&&(e.cacheControlDirectives?.[`proxy-revalidate`]===!0||e.cacheControlDirectives?.[`s-maxage`]!==void 0)}function w(e,t){if(t.vary&&m(t.vary))return!0;let n=t[`cache-control`];if(!n)return!1;let r=p(n);return r[`no-store`]===!0||e===`shared`&&r.private===!0}function T(e){return e[`cache-control`]!==void 0}function E(e,t){try{e.delete(t)?.catch?.(v)}catch{}}function D(e){let t=e?.[`last-modified`];if(typeof t==`string`&&g(t))return t}function O(e,t){let n={...e.headers,"if-modified-since":D(t.headers)??new Date(t.cachedAt).toUTCString()};if(t.etag&&(n[`if-none-match`]=t.etag),t.vary)for(let e in t.vary)t.vary[e]!=null&&(n[e]=t.vary[e]);return n}function k(e,t,n){let r=Date.now();return r>e.staleAt?!C(e,n)&&t?.[`max-stale`]?r>e.staleAt+t[`max-stale`]*1e3:!0:t?.[`min-fresh`]?e.staleAt-r<=t[`min-fresh`]*1e3:!1}function A(e,t){let n=e.cacheControlDirectives?.[`stale-while-revalidate`];return!n||C(e,t)?!1:Date.now()<=e.staleAt+n*1e3}function j(e,t,n,r,i,a){if(a?.[`only-if-cached`]){let e=!1,t={paused:!1,rawHeaders:[],rawTrailers:[],pause(){this.paused=!0},resume(){this.paused=!1},abort:n=>{e=!0,r.onResponseError?.(t,n??new h)}};try{if(r.onRequestStart?.(t,null),e||(r.onResponseStart?.(t,504,{},`Gateway Timeout`),e))return;r.onResponseEnd?.(t,{})}catch(e){typeof r.onResponseError==`function`&&r.onResponseError(t,e)}return!0}return e(i,new o(t,n,r))}function M(e,t,r,o,s,c){let l=a.isStream(r.body)?r.body:i.from(r.body??[]);n(!l.destroyed,`stream should not be destroyed`),n(!l.readableDidRead,`stream should not be readableDidRead`);let u={rawHeaders:[],rawTrailers:[],resume(){l.resume()},pause(){l.pause()},get paused(){return l.isPaused()},get aborted(){return l.destroyed},get reason(){return l.errored},abort(e){l.destroy(e??new h)}};if(l.on(`error`,function(t){if(!this.readableEnded){if(typeof e.onResponseError==`function`)e.onResponseError(u,t);else throw t}}).on(`close`,function(){this.errored||e.onResponseEnd?.(u,{})}),e.onRequestStart?.(u,s),l.destroyed)return;let d={...r.headers,age:String(o)};c&&(d.warning=`110 - "response is stale"`),u.rawHeaders=a.toRawHeaders(d),e.onResponseStart?.(u,r.statusCode,d,r.statusMessage),t.method===`HEAD`?l.destroy():l.on(`data`,function(t){e.onResponseData?.(u,t)})}function N(e,t,n,r,i,s,l){if(!l)return j(e,t,n,r,i,s);let u=Date.now();if(u>l.deleteAt)return e(i,new o(t,n,r));let d=Math.round((u-l.cachedAt)/1e3),f=s?.[`max-age`]!==void 0&&d>=s[`max-age`],p=f||k(l,s,t.type),m=f||S(l,s,i);if(p||m){if(a.isStream(i.body)&&a.bodyLength(i.body)!==0)return e(i,new o(t,n,r));if(!m&&A(l,t.type))return M(r,i,l,d,null,!0),queueMicrotask(()=>{let r=O(i,l);e({...i,headers:r},new o(t,n,{onRequestStart(){},onRequestUpgrade(){},onResponseStart(){},onResponseData(){},onResponseEnd(){},onResponseError(){}}))}),!0;let f=!1;if(!C(l,t.type)){let e=l.cacheControlDirectives[`stale-if-error`]??s?.[`stale-if-error`];e&&(f=u<l.staleAt+e*1e3)}let h=O(i,l);return e({...i,headers:h},new c((s,c,u,f)=>{if(s){if(u===304){if(w(t.type,f))return a.isStream(l.body)&&l.body.on(`error`,v).destroy(),E(t.store,n),e(i,new o(t,n,r));T(f)&&E(t.store,n)}M(r,i,l,d,c,p)}else a.isStream(l.body)&&l.body.on(`error`,v).destroy()},new o(t,n,r),f))}a.isStream(i.body)&&i.body.on(`error`,v).destroy(),M(r,i,l,d,null,!1)}t.exports=(e={})=>{let{store:t=new s,methods:n=[`GET`],cacheByDefault:r=void 0,type:i=`shared`,origins:o=void 0}=e;if(typeof e!=`object`||!e)throw TypeError(`expected type of opts to be an Object, got ${e===null?`null`:typeof e}`);if(l(t,`opts.store`),u(n,`opts.methods`),_(o,`opts.origins`),r!==void 0&&typeof r!=`number`)throw TypeError(`expected opts.cacheByDefault to be number or undefined, got ${typeof r}`);if(i!==void 0&&i!==`shared`&&i!==`private`)throw TypeError(`expected opts.type to be shared, private, or undefined, got ${typeof i}`);let c={store:t,methods:n,cacheByDefault:r,type:i},m=[];for(let e=0;e<a.safeHTTPMethods.length;e++){let t=a.safeHTTPMethods[e];b(n,t)||m.push(t)}return e=>(n,r)=>{if(b(m,n.method))return e(n,r);if(o!==void 0){if(!n.origin)return e(n,r);let t=n.origin.toString().toLowerCase(),i=!1;for(let e=0;e<o.length;e++){let n=o[e];if(typeof n==`string`){if(n.toLowerCase()===t){i=!0;break}}else if(n.test(t)){i=!0;break}}if(!i)return e(n,r)}n={...n,headers:f(n)};let i=n.headers?.[`cache-control`]?p(n.headers[`cache-control`]):x(n.headers)?{"no-cache":!0}:void 0;if(i?.[`no-store`])return e(n,r);let a=d(n),s=t.get(a);return s&&typeof s.then==`function`?s.then(t=>N(e,c,a,r,n,i,t)):N(e,c,a,r,n,i,s)}}})),Bd=s(((e,t)=>{var{createInflate:n,createGunzip:i,createBrotliDecompress:a,createZstdDecompress:o}=r(`node:zlib`),{pipeline:s}=r(`node:stream`),c=Dd(),l={gzip:i,"x-gzip":i,br:a,deflate:n,compress:n,"x-compress":n,zstd:o},u=[204,304],d=!1,f=class extends c{#e=[];#t;#n;#r;constructor(e,{skipStatusCodes:t=u,skipErrorResponses:n=!0}={}){super(e),this.#n=t,this.#r=n}#i(e,t){return!!(!e||t<200||this.#n.includes(t)||this.#r&&t>=400)}#a(e){let t=e.split(`,`);if(t.length>5)throw Error(`too many content-encodings in response: ${t.length}, maximum allowed is 5`);let n=[];for(let e=t.length-1;e>=0;e--){let r=t[e].trim();if(r){if(!l[r])return n.length=0,n;n.push(l[r]())}}return n}#o(e,t){e.on(`readable`,()=>{let n;for(;(n=e.read())!==null&&super.onResponseData(t,n)!==!1;);}),e.on(`error`,e=>{super.onResponseError(t,e)})}#s(e){let t=this.#e[0];this.#o(t,e),t.on(`end`,()=>{super.onResponseEnd(e,this.#t)})}#c(e){let t=this.#e[this.#e.length-1];this.#o(t,e),s(this.#e,t=>{if(t){super.onResponseError(e,t);return}super.onResponseEnd(e,this.#t)})}#l(){this.#e.length=0}onResponseStart(e,t,n,r){let i=n[`content-encoding`];if(this.#i(i,t))return super.onResponseStart(e,t,n,r);let a=this.#a(i.toLowerCase());if(a.length===0)return this.#l(),super.onResponseStart(e,t,n,r);this.#e=a;let{"content-encoding":o,"content-length":s,...c}=n;if(e?.rawHeaders){let t=e.rawHeaders;if(Array.isArray(t)){let n=[];for(let e=0;e<t.length;e+=2){let r=t[e],i=(Buffer.isBuffer(r)?r.toString(`latin1`):`${r}`).toLowerCase();i!==`content-encoding`&&i!==`content-length`&&n.push(t[e],t[e+1])}e.rawHeaders=n}else if(typeof t==`object`)for(let e of Object.keys(t)){let n=e.toLowerCase();(n===`content-encoding`||n===`content-length`)&&delete t[e]}}return this.#e.length===1?this.#s(e):this.#c(e),super.onResponseStart(e,t,c,r)}onResponseData(e,t){if(this.#e.length>0){this.#e[0].write(t);return}super.onResponseData(e,t)}onResponseEnd(e,t){if(this.#e.length>0){this.#t=t,this.#e[0].end(),this.#l();return}super.onResponseEnd(e,t)}onResponseError(e,t){if(this.#e.length>0){for(let e of this.#e)e.destroy(t);this.#l()}super.onResponseError(e,t)}};function p(e={}){return d||=(process.emitWarning(`DecompressInterceptor is experimental and subject to change`,`ExperimentalWarning`),!0),t=>(n,r)=>n.method===`HEAD`?t(n,r):t(n,new f(r,e))}t.exports=p})),Vd=s(((e,t)=>{var{RequestAbortedError:n}=Q(),r=5242880;t.exports=class{#e;#t=[];#n=r;#r=0;#i={};#a=``;#o=!1;#s=!1;#c=!1;#l=!1;#u=null;#d=null;constructor(e,t,n=r){this.#e=e,this.#d=t,this.#n=n}addWaitingHandler(e){if(this.#l||this.#c)return!1;let t=this.#f(e),n=t.controller;try{if(e.onRequestStart?.(n,null),n.aborted)return t.done=!0,!0;this.#s&&e.onResponseStart?.(n,this.#r,this.#i,this.#a)}catch{return t.done=!0,!0}return n.aborted||this.#t.push(t),!0}onRequestStart(e,t){this.#u=e,this.#e.onRequestStart?.(e,t)}onRequestUpgrade(e,t,n,r){this.#e.onRequestUpgrade?.(e,t,n,r)}onResponseStart(e,t,n,r){this.#s=!0,this.#r=t,this.#i=n,this.#a=r,this.#e.onResponseStart?.(e,t,n,r);for(let e of this.#t){let{handler:i,controller:a}=e;if(e.done||a.aborted){e.done=!0;continue}try{i.onResponseStart?.(a,t,n,r)}catch{}a.aborted&&(e.done=!0)}this.#g()}onResponseData(e,t){if(!(this.#o||this.#l)){this.#c=!0,this.#e.onResponseData?.(e,t);for(let e of this.#t){let{handler:n,controller:r}=e;if(e.done||r.aborted){e.done=!0;continue}if(r.paused){this.#p(e,t);continue}try{n.onResponseData?.(r,t)}catch{}r.aborted&&(e.done=!0,e.bufferedChunks=[],e.bufferedBytes=0)}this.#g()}}onResponseEnd(e,t){if(!(this.#o||this.#l)){this.#l=!0,this.#e.onResponseEnd?.(e,t);for(let e of this.#t){if(e.done||e.controller.aborted){e.done=!0;continue}if(this.#m(e),e.done||e.controller.aborted){e.done=!0;continue}if(e.controller.paused&&e.bufferedChunks.length>0){e.pendingTrailers=t;continue}try{e.handler.onResponseEnd?.(e.controller,t)}catch{}e.done=!0}this.#g(),this.#d?.()}}onResponseError(e,t){if(!this.#l){this.#o=!0,this.#l=!0,this.#e.onResponseError?.(e,t);for(let e of this.#t)this.#h(e,t);this.#t=[],this.#d?.()}}#f(e){let t={handler:e,controller:null,bufferedChunks:[],bufferedBytes:0,pendingTrailers:null,done:!1},r={aborted:!1,paused:!1,reason:null};return t.controller={resume:()=>{if(!r.aborted){if(r.paused=!1,this.#m(t),this.#l&&t.pendingTrailers&&t.bufferedChunks.length===0&&!r.paused&&!r.aborted){try{t.handler.onResponseEnd?.(t.controller,t.pendingTrailers)}catch{}t.pendingTrailers=null,t.done=!0}this.#g()}},pause:()=>{r.aborted||(r.paused=!0)},get paused(){return r.paused},get aborted(){return r.aborted},get reason(){return r.reason},abort:i=>{if(!r.aborted){r.aborted=!0,r.reason=i??null,t.done=!0,t.pendingTrailers=null,t.bufferedChunks=[],t.bufferedBytes=0;try{e.onResponseError?.(t.controller,r.reason??new n)}catch{}}}},t}#p(e,t){if(e.done||e.controller.aborted){e.done=!0,e.bufferedChunks=[],e.bufferedBytes=0;return}let r=Buffer.from(t);if(e.bufferedChunks.push(r),e.bufferedBytes+=r.length,e.bufferedBytes>this.#n){let t=new n(`Deduplicated waiting handler exceeded maxBufferSize (${this.#n} bytes) while paused`);this.#h(e,t)}}#m(e){let{handler:t,controller:n}=e;for(;!e.done&&!n.aborted&&!n.paused&&e.bufferedChunks.length>0;){let r=e.bufferedChunks.shift();e.bufferedBytes-=r.length;try{t.onResponseData?.(n,r)}catch{}if(n.aborted){e.done=!0,e.pendingTrailers=null,e.bufferedChunks=[],e.bufferedBytes=0;break}}}#h(e,t){e.done||(e.done=!0,e.pendingTrailers=null,e.bufferedChunks=[],e.bufferedBytes=0,e.controller.abort(t))}#g(){this.#t=this.#t.filter(e=>e.done===!1)}}})),Hd=s(((e,t)=>{var n=r(`node:diagnostics_channel`),i=$(),a=Vd(),{normalizeHeaders:o,makeCacheKey:s,makeDeduplicationKey:c}=Pd(),l=n.channel(`undici:request:pending-requests`);t.exports=(e={})=>{let{methods:t=[`GET`],skipHeaderNames:n=[],excludeHeaderNames:r=[],maxBufferSize:u=5242880}=e;if(typeof e!=`object`||!e)throw TypeError(`expected type of opts to be an Object, got ${e===null?`null`:typeof e}`);if(!Array.isArray(t))throw TypeError(`expected opts.methods to be an array, got ${typeof t}`);for(let e of t)if(!i.safeHTTPMethods.includes(e))throw TypeError(`expected opts.methods to only contain safe HTTP methods, got ${e}`);if(!Array.isArray(n))throw TypeError(`expected opts.skipHeaderNames to be an array, got ${typeof n}`);if(!Array.isArray(r))throw TypeError(`expected opts.excludeHeaderNames to be an array, got ${typeof r}`);if(!Number.isFinite(u)||u<=0)throw TypeError(`expected opts.maxBufferSize to be a positive finite number, got ${u}`);let d=new Set(n.map(e=>e.toLowerCase())),f=new Set(r.map(e=>e.toLowerCase())),p=new Map;return e=>(n,r)=>{if(n.upgrade||t.includes(n.method)===!1)return e(n,r);if(n={...n,headers:o(n)},d.size>0){for(let t of Object.keys(n.headers))if(d.has(t.toLowerCase()))return e(n,r)}let i=c(s(n),f),m=p.get(i);if(m)return m.addWaitingHandler(r)?!0:e(n,r);let h=new a(r,()=>{p.delete(i),l.hasSubscribers&&l.publish({size:p.size,key:i,type:`removed`})},u);return p.set(i,h),l.hasSubscribers&&l.publish({size:p.size,key:i,type:`added`}),e(n,h)}}})),Ud=s(((e,t)=>{var{Writable:n}=r(`node:stream`),{assertCacheKey:i,assertCacheValue:a}=Pd(),o,s=3,c=2e9;t.exports=class{#e=c;#t=1/0;#n;#r;#i;#a;#o;#s;#c;#l;constructor(e){if(e){if(typeof e!=`object`)throw TypeError(`SqliteCacheStore options must be an object`);if(e.maxEntrySize!==void 0){if(typeof e.maxEntrySize!=`number`||!Number.isInteger(e.maxEntrySize)||e.maxEntrySize<0)throw TypeError(`SqliteCacheStore options.maxEntrySize must be a non-negative integer`);if(e.maxEntrySize>c)throw TypeError(`SqliteCacheStore options.maxEntrySize must be less than 2gb`);this.#e=e.maxEntrySize}if(e.maxCount!==void 0){if(typeof e.maxCount!=`number`||!Number.isInteger(e.maxCount)||e.maxCount<0)throw TypeError(`SqliteCacheStore options.maxCount must be a non-negative integer`);this.#t=e.maxCount}}o||=r(`node:sqlite`).DatabaseSync,this.#n=new o(e?.location??`:memory:`),this.#n.exec(`
|
|
29
|
+
PRAGMA journal_mode = WAL;
|
|
30
|
+
PRAGMA synchronous = NORMAL;
|
|
31
|
+
PRAGMA temp_store = memory;
|
|
32
|
+
PRAGMA optimize;
|
|
33
|
+
|
|
34
|
+
CREATE TABLE IF NOT EXISTS cacheInterceptorV${s} (
|
|
35
|
+
-- Data specific to us
|
|
36
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
37
|
+
url TEXT NOT NULL,
|
|
38
|
+
method TEXT NOT NULL,
|
|
39
|
+
|
|
40
|
+
-- Data returned to the interceptor
|
|
41
|
+
body BUF NULL,
|
|
42
|
+
deleteAt INTEGER NOT NULL,
|
|
43
|
+
statusCode INTEGER NOT NULL,
|
|
44
|
+
statusMessage TEXT NOT NULL,
|
|
45
|
+
headers TEXT NULL,
|
|
46
|
+
cacheControlDirectives TEXT NULL,
|
|
47
|
+
etag TEXT NULL,
|
|
48
|
+
vary TEXT NULL,
|
|
49
|
+
cachedAt INTEGER NOT NULL,
|
|
50
|
+
staleAt INTEGER NOT NULL
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${s}_getValuesQuery ON cacheInterceptorV${s}(url, method, deleteAt);
|
|
54
|
+
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${s}_deleteByUrlQuery ON cacheInterceptorV${s}(deleteAt);
|
|
55
|
+
`),this.#r=this.#n.prepare(`
|
|
56
|
+
SELECT
|
|
57
|
+
id,
|
|
58
|
+
body,
|
|
59
|
+
deleteAt,
|
|
60
|
+
statusCode,
|
|
61
|
+
statusMessage,
|
|
62
|
+
headers,
|
|
63
|
+
etag,
|
|
64
|
+
cacheControlDirectives,
|
|
65
|
+
vary,
|
|
66
|
+
cachedAt,
|
|
67
|
+
staleAt
|
|
68
|
+
FROM cacheInterceptorV${s}
|
|
69
|
+
WHERE
|
|
70
|
+
url = ?
|
|
71
|
+
AND method = ?
|
|
72
|
+
ORDER BY
|
|
73
|
+
deleteAt ASC
|
|
74
|
+
`),this.#i=this.#n.prepare(`
|
|
75
|
+
UPDATE cacheInterceptorV${s} SET
|
|
76
|
+
body = ?,
|
|
77
|
+
deleteAt = ?,
|
|
78
|
+
statusCode = ?,
|
|
79
|
+
statusMessage = ?,
|
|
80
|
+
headers = ?,
|
|
81
|
+
etag = ?,
|
|
82
|
+
cacheControlDirectives = ?,
|
|
83
|
+
vary = ?,
|
|
84
|
+
cachedAt = ?,
|
|
85
|
+
staleAt = ?
|
|
86
|
+
WHERE
|
|
87
|
+
id = ?
|
|
88
|
+
`),this.#a=this.#n.prepare(`
|
|
89
|
+
INSERT INTO cacheInterceptorV${s} (
|
|
90
|
+
url,
|
|
91
|
+
method,
|
|
92
|
+
body,
|
|
93
|
+
deleteAt,
|
|
94
|
+
statusCode,
|
|
95
|
+
statusMessage,
|
|
96
|
+
headers,
|
|
97
|
+
etag,
|
|
98
|
+
cacheControlDirectives,
|
|
99
|
+
vary,
|
|
100
|
+
cachedAt,
|
|
101
|
+
staleAt
|
|
102
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
103
|
+
`),this.#s=this.#n.prepare(`DELETE FROM cacheInterceptorV${s} WHERE url = ?`),this.#c=this.#n.prepare(`SELECT COUNT(*) AS total FROM cacheInterceptorV${s}`),this.#o=this.#n.prepare(`DELETE FROM cacheInterceptorV${s} WHERE deleteAt <= ?`),this.#l=this.#t===1/0?null:this.#n.prepare(`
|
|
104
|
+
DELETE FROM cacheInterceptorV${s}
|
|
105
|
+
WHERE id IN (
|
|
106
|
+
SELECT
|
|
107
|
+
id
|
|
108
|
+
FROM cacheInterceptorV${s}
|
|
109
|
+
ORDER BY cachedAt ASC
|
|
110
|
+
LIMIT ?
|
|
111
|
+
)
|
|
112
|
+
`)}close(){this.#n.close()}get(e){i(e);let t=this.#f(e);return t?{body:t.body?Buffer.from(t.body.buffer,t.body.byteOffset,t.body.byteLength):void 0,statusCode:t.statusCode,statusMessage:t.statusMessage,headers:t.headers?JSON.parse(t.headers):void 0,etag:t.etag?t.etag:void 0,vary:t.vary?JSON.parse(t.vary):void 0,cacheControlDirectives:t.cacheControlDirectives?JSON.parse(t.cacheControlDirectives):void 0,cachedAt:t.cachedAt,staleAt:t.staleAt,deleteAt:t.deleteAt}:void 0}set(e,t){i(e);let n=this.#d(e),r=Array.isArray(t.body)?Buffer.concat(t.body):t.body,a=r?.byteLength;if(a&&a>this.#e)return;let o=this.#f(e,!0);o?this.#i.run(r,t.deleteAt,t.statusCode,t.statusMessage,t.headers?JSON.stringify(t.headers):null,t.etag?t.etag:null,t.cacheControlDirectives?JSON.stringify(t.cacheControlDirectives):null,t.vary?JSON.stringify(t.vary):null,t.cachedAt,t.staleAt,o.id):(this.#a.run(n,e.method,r,t.deleteAt,t.statusCode,t.statusMessage,t.headers?JSON.stringify(t.headers):null,t.etag?t.etag:null,t.cacheControlDirectives?JSON.stringify(t.cacheControlDirectives):null,t.vary?JSON.stringify(t.vary):null,t.cachedAt,t.staleAt),this.#u())}createWriteStream(e,t){i(e),a(t);let r=0,o=[],s=this;return new n({decodeStrings:!0,write(e,t,n){r+=e.byteLength,r<=s.#e?o.push(e):this.destroy(),n()},final(n){s.set(e,{...t,body:o}),n()}})}delete(e){if(typeof e!=`object`)throw TypeError(`expected key to be object, got ${typeof e}`);this.#s.run(this.#d(e))}#u(){if(Number.isFinite(this.#t)&&this.size<=this.#t)return 0;{let e=this.#o.run(Date.now()).changes;if(e)return e}{let e=this.#l?.run(Math.max(Math.floor(this.#t*.1),1)).changes;if(e)return e}return 0}get size(){let{total:e}=this.#c.get();return e}#d(e){return`${e.origin}/${e.path}`}#f(e,t=!1){let n=this.#d(e),{headers:r,method:i}=e,a=this.#r.all(n,i);if(a.length===0)return;let o=Date.now();for(let e of a){if(o>=e.deleteAt&&!t)continue;let n=!0;if(e.vary){let t=JSON.parse(e.vary);for(let e in t)if(!l(r[e],t[e])){n=!1;break}}if(n)return e}}};function l(e,t){if(e==null&&t==null)return!0;if(e==null&&t!=null||e!=null&&t==null)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return e===t}})),Wd=s(((e,t)=>{var{kConstruct:n}=Z(),{kEnumerableProperty:i}=$(),{iteratorMixin:a,isValidHeaderName:o,isValidHeaderValue:s}=Lu(),{webidl:c}=Iu(),l=r(`node:assert`),u=r(`node:util`);function d(e){return e===10||e===13||e===9||e===32}function f(e){let t=0,n=e.length;for(;n>t&&d(e.charCodeAt(n-1));)--n;for(;n>t&&d(e.charCodeAt(t));)++t;return t===0&&n===e.length?e:e.substring(t,n)}function p(e,t){if(Array.isArray(t))for(let n=0;n<t.length;++n){let r=t[n];if(r.length!==2)throw c.errors.exception({header:`Headers constructor`,message:`expected name/value pair to be length 2, found ${r.length}.`});m(e,r[0],r[1])}else if(typeof t==`object`&&t){let n=Object.keys(t);for(let r=0;r<n.length;++r)m(e,n[r],t[n[r]])}else throw c.errors.conversionFailed({prefix:`Headers constructor`,argument:`Argument 1`,types:[`sequence<sequence<ByteString>>`,`record<ByteString, ByteString>`]})}function m(e,t,n){if(n=f(n),!o(t))throw c.errors.invalidArgument({prefix:`Headers.append`,value:t,type:`header name`});if(!s(n))throw c.errors.invalidArgument({prefix:`Headers.append`,value:n,type:`header value`});if(y(e)===`immutable`)throw TypeError(`immutable`);return x(e).append(t,n,!1)}function h(e){let t=x(e);if(!t)return[];if(t.sortedMap)return t.sortedMap;let n=[],r=t.toSortedArray(),i=t.cookies;if(i===null||i.length===1)return t.sortedMap=r;for(let e=0;e<r.length;++e){let{0:t,1:a}=r[e];if(t===`set-cookie`)for(let e=0;e<i.length;++e)n.push([t,i[e]]);else n.push([t,a])}return t.sortedMap=n}function g(e,t){return e[0]<t[0]?-1:1}var _=class e{cookies=null;sortedMap;headersMap;constructor(t){t instanceof e?(this.headersMap=new Map(t.headersMap),this.sortedMap=t.sortedMap,this.cookies=t.cookies===null?null:[...t.cookies]):(this.headersMap=new Map(t),this.sortedMap=null)}contains(e,t){return this.headersMap.has(t?e:e.toLowerCase())}clear(){this.headersMap.clear(),this.sortedMap=null,this.cookies=null}append(e,t,n){this.sortedMap=null;let r=n?e:e.toLowerCase(),i=this.headersMap.get(r);if(i){let e=r===`cookie`?`; `:`, `;this.headersMap.set(r,{name:i.name,value:`${i.value}${e}${t}`})}else this.headersMap.set(r,{name:e,value:t});r===`set-cookie`&&(this.cookies??=[]).push(t)}set(e,t,n){this.sortedMap=null;let r=n?e:e.toLowerCase();r===`set-cookie`&&(this.cookies=[t]),this.headersMap.set(r,{name:e,value:t})}delete(e,t){this.sortedMap=null,t||(e=e.toLowerCase()),e===`set-cookie`&&(this.cookies=null),this.headersMap.delete(e)}get(e,t){return this.headersMap.get(t?e:e.toLowerCase())?.value??null}*[Symbol.iterator](){for(let{0:e,1:{value:t}}of this.headersMap)yield[e,t]}get entries(){let e={};if(this.headersMap.size!==0)for(let{name:t,value:n}of this.headersMap.values())e[t]=n;return e}rawValues(){return this.headersMap.values()}get entriesList(){let e=[];if(this.headersMap.size!==0)for(let{0:t,1:{name:n,value:r}}of this.headersMap)if(t===`set-cookie`)for(let t of this.cookies)e.push([n,t]);else e.push([n,r]);return e}toSortedArray(){let e=this.headersMap.size,t=Array(e);if(e<=32){if(e===0)return t;let n=this.headersMap[Symbol.iterator](),r=n.next().value;t[0]=[r[0],r[1].value],l(r[1].value!==null);for(let r=1,i=0,a=0,o=0,s=0,c,u;r<e;++r){for(u=n.next().value,c=t[r]=[u[0],u[1].value],l(c[1]!==null),o=0,a=r;o<a;)s=o+(a-o>>1),t[s][0]<=c[0]?o=s+1:a=s;if(r!==s){for(i=r;i>o;)t[i]=t[--i];t[o]=c}}if(!n.next().done)throw TypeError(`Unreachable`);return t}{let e=0;for(let{0:n,1:{value:r}}of this.headersMap)t[e++]=[n,r],l(r!==null);return t.sort(g)}}},v=class e{#e;#t;constructor(e=void 0){c.util.markAsUncloneable(this),e!==n&&(this.#t=new _,this.#e=`none`,e!==void 0&&(e=c.converters.HeadersInit(e,`Headers constructor`,`init`),p(this,e)))}append(t,n){c.brandCheck(this,e),c.argumentLengthCheck(arguments,2,`Headers.append`);let r=`Headers.append`;return t=c.converters.ByteString(t,r,`name`),n=c.converters.ByteString(n,r,`value`),m(this,t,n)}delete(t){if(c.brandCheck(this,e),c.argumentLengthCheck(arguments,1,`Headers.delete`),t=c.converters.ByteString(t,`Headers.delete`,`name`),!o(t))throw c.errors.invalidArgument({prefix:`Headers.delete`,value:t,type:`header name`});if(this.#e===`immutable`)throw TypeError(`immutable`);this.#t.contains(t,!1)&&this.#t.delete(t,!1)}get(t){c.brandCheck(this,e),c.argumentLengthCheck(arguments,1,`Headers.get`);let n=`Headers.get`;if(t=c.converters.ByteString(t,n,`name`),!o(t))throw c.errors.invalidArgument({prefix:n,value:t,type:`header name`});return this.#t.get(t,!1)}has(t){c.brandCheck(this,e),c.argumentLengthCheck(arguments,1,`Headers.has`);let n=`Headers.has`;if(t=c.converters.ByteString(t,n,`name`),!o(t))throw c.errors.invalidArgument({prefix:n,value:t,type:`header name`});return this.#t.contains(t,!1)}set(t,n){c.brandCheck(this,e),c.argumentLengthCheck(arguments,2,`Headers.set`);let r=`Headers.set`;if(t=c.converters.ByteString(t,r,`name`),n=c.converters.ByteString(n,r,`value`),n=f(n),!o(t))throw c.errors.invalidArgument({prefix:r,value:t,type:`header name`});if(!s(n))throw c.errors.invalidArgument({prefix:r,value:n,type:`header value`});if(this.#e===`immutable`)throw TypeError(`immutable`);this.#t.set(t,n,!1)}getSetCookie(){c.brandCheck(this,e);let t=this.#t.cookies;return t?[...t]:[]}[u.inspect.custom](e,t){return t.depth??=e,`Headers ${u.formatWithOptions(t,this.#t.entries)}`}static getHeadersGuard(e){return e.#e}static setHeadersGuard(e,t){e.#e=t}static getHeadersList(e){return e.#t}static setHeadersList(e,t){e.#t=t}},{getHeadersGuard:y,setHeadersGuard:b,getHeadersList:x,setHeadersList:S}=v;Reflect.deleteProperty(v,`getHeadersGuard`),Reflect.deleteProperty(v,`setHeadersGuard`),Reflect.deleteProperty(v,`getHeadersList`),Reflect.deleteProperty(v,`setHeadersList`),a(`Headers`,v,h,0,1),Object.defineProperties(v.prototype,{append:i,delete:i,get:i,has:i,set:i,getSetCookie:i,[Symbol.toStringTag]:{value:`Headers`,configurable:!0},[u.inspect.custom]:{enumerable:!1}}),c.converters.HeadersInit=function(e,t,n){if(c.util.Type(e)===c.util.Types.OBJECT){let r=Reflect.get(e,Symbol.iterator);if(!u.types.isProxy(e)&&r===v.prototype.entries)try{return x(e).entriesList}catch{}return typeof r==`function`?c.converters[`sequence<sequence<ByteString>>`](e,t,n,r.bind(e)):c.converters[`record<ByteString, ByteString>`](e,t,n)}throw c.errors.conversionFailed({prefix:`Headers constructor`,argument:`Argument 1`,types:[`sequence<sequence<ByteString>>`,`record<ByteString, ByteString>`]})},t.exports={fill:p,compareHeaderName:g,Headers:v,HeadersList:_,getHeadersGuard:y,setHeadersGuard:b,setHeadersList:S,getHeadersList:x}})),Gd=s(((e,t)=>{var{Headers:n,HeadersList:i,fill:a,getHeadersGuard:o,setHeadersGuard:s,setHeadersList:c}=Wd(),{extractBody:l,cloneBody:u,mixinBody:d,streamRegistry:f,bodyUnusable:p}=Vu(),m=$(),h=r(`node:util`),{kEnumerableProperty:g}=m,{isValidReasonPhrase:_,isCancelled:v,isAborted:y,isErrorLike:b,environmentSettingsObject:x}=Lu(),{redirectStatusSet:S,nullBodyStatus:C}=ju(),{webidl:w}=Iu(),{URLSerializer:T}=Fu(),{kConstruct:E}=Z(),D=r(`node:assert`),{isomorphicEncode:O,serializeJavascriptValueToJSONString:k}=Pu(),A=new TextEncoder(`utf-8`),j=class e{#e;#t;static error(){return ne(R(),`immutable`)}static json(e,t=void 0){w.argumentLengthCheck(arguments,1,`Response.json`),t=w.converters.ResponseInit(t);let n=l(A.encode(k(e))),r=ne(L({}),`response`);return V(r,t,{body:n[0],type:`application/json`}),r}static redirect(e,t=302){w.argumentLengthCheck(arguments,1,`Response.redirect`),e=w.converters.USVString(e),t=w.converters[`unsigned short`](t);let n;try{n=new URL(e,x.settingsObject.baseUrl)}catch(t){throw TypeError(`Failed to parse URL from ${e}`,{cause:t})}if(!S.has(t))throw RangeError(`Invalid status code ${t}`);let r=ne(L({}),`immutable`);r.#t.status=t;let i=O(T(n));return r.#t.headersList.append(`location`,i,!0),r}constructor(e=null,t=void 0){if(w.util.markAsUncloneable(this),e===E)return;e!==null&&(e=w.converters.BodyInit(e,`Response`,`body`)),t=w.converters.ResponseInit(t),this.#t=L({}),this.#e=new n(E),s(this.#e,`response`),c(this.#e,this.#t.headersList);let r=null;if(e!=null){let[t,n]=l(e);r={body:t,type:n}}V(this,t,r)}get type(){return w.brandCheck(this,e),this.#t.type}get url(){w.brandCheck(this,e);let t=this.#t.urlList,n=t[t.length-1]??null;return n===null?``:T(n,!0)}get redirected(){return w.brandCheck(this,e),this.#t.urlList.length>1}get status(){return w.brandCheck(this,e),this.#t.status}get ok(){return w.brandCheck(this,e),this.#t.status>=200&&this.#t.status<=299}get statusText(){return w.brandCheck(this,e),this.#t.statusText}get headers(){return w.brandCheck(this,e),this.#e}get body(){return w.brandCheck(this,e),this.#t.body?this.#t.body.stream:null}get bodyUsed(){return w.brandCheck(this,e),!!this.#t.body&&m.isDisturbed(this.#t.body.stream)}clone(){if(w.brandCheck(this,e),p(this.#t))throw w.errors.exception({header:`Response.clone`,message:`Body has already been consumed.`});let t=I(this.#t);return this.#t.urlList.length!==0&&this.#t.body?.stream&&f.register(this,new WeakRef(this.#t.body.stream)),ne(t,o(this.#e))}[h.inspect.custom](e,t){t.depth===null&&(t.depth=2),t.colors??=!0;let n={status:this.status,statusText:this.statusText,headers:this.headers,body:this.body,bodyUsed:this.bodyUsed,ok:this.ok,redirected:this.redirected,type:this.type,url:this.url};return`Response ${h.formatWithOptions(t,n)}`}static getResponseHeaders(e){return e.#e}static setResponseHeaders(e,t){e.#e=t}static getResponseState(e){return e.#t}static setResponseState(e,t){e.#t=t}},{getResponseHeaders:M,setResponseHeaders:N,getResponseState:P,setResponseState:F}=j;Reflect.deleteProperty(j,`getResponseHeaders`),Reflect.deleteProperty(j,`setResponseHeaders`),Reflect.deleteProperty(j,`getResponseState`),Reflect.deleteProperty(j,`setResponseState`),d(j,P),Object.defineProperties(j.prototype,{type:g,url:g,status:g,ok:g,redirected:g,statusText:g,headers:g,clone:g,body:g,bodyUsed:g,[Symbol.toStringTag]:{value:`Response`,configurable:!0}}),Object.defineProperties(j,{json:g,redirect:g,error:g});function I(e){if(e.internalResponse)return B(I(e.internalResponse),e.type);let t=L({...e,body:null});return e.body!=null&&(t.body=u(e.body)),t}function L(e){return{aborted:!1,rangeRequested:!1,timingAllowPassed:!1,requestIncludesCredentials:!1,type:`default`,status:200,timingInfo:null,cacheState:``,statusText:``,...e,headersList:e?.headersList?new i(e?.headersList):new i,urlList:e?.urlList?[...e.urlList]:[]}}function R(e){return L({type:`error`,status:0,error:b(e)?e:Error(e&&String(e)),aborted:e&&e.name===`AbortError`})}function z(e){return e.type===`error`&&e.status===0}function ee(e,t){return t={internalResponse:e,...t},new Proxy(e,{get(e,n){return n in t?t[n]:e[n]},set(e,n,r){return D(!(n in t)),e[n]=r,!0}})}function B(e,t){if(t===`basic`)return ee(e,{type:`basic`,headersList:e.headersList});if(t===`cors`)return ee(e,{type:`cors`,headersList:e.headersList});if(t===`opaque`)return ee(e,{type:`opaque`,urlList:[],status:0,statusText:``,body:null});if(t===`opaqueredirect`)return ee(e,{type:`opaqueredirect`,status:0,statusText:``,headersList:[],body:null});D(!1)}function te(e,t=null){return D(v(e)),y(e)?R(Object.assign(new DOMException(`The operation was aborted.`,`AbortError`),{cause:t})):R(Object.assign(new DOMException(`Request was cancelled.`),{cause:t}))}function V(e,t,n){if(t.status!==null&&(t.status<200||t.status>599))throw RangeError(`init["status"] must be in the range of 200 to 599, inclusive.`);if(`statusText`in t&&t.statusText!=null&&!_(String(t.statusText)))throw TypeError(`Invalid statusText`);if(`status`in t&&t.status!=null&&(P(e).status=t.status),`statusText`in t&&t.statusText!=null&&(P(e).statusText=t.statusText),`headers`in t&&t.headers!=null&&a(M(e),t.headers),n){if(C.includes(e.status))throw w.errors.exception({header:`Response constructor`,message:`Invalid response status code ${e.status}`});P(e).body=n.body,n.type!=null&&!P(e).headersList.contains(`content-type`,!0)&&P(e).headersList.append(`content-type`,n.type,!0)}}function ne(e,t){let r=new j(E);F(r,e);let i=new n(E);return N(r,i),c(i,e.headersList),s(i,t),e.urlList.length!==0&&e.body?.stream&&f.register(r,new WeakRef(e.body.stream)),r}w.converters.XMLHttpRequestBodyInit=function(e,t,n){return typeof e==`string`?w.converters.USVString(e,t,n):w.is.Blob(e)||w.is.BufferSource(e)||w.is.FormData(e)||w.is.URLSearchParams(e)?e:w.converters.DOMString(e,t,n)},w.converters.BodyInit=function(e,t,n){return w.is.ReadableStream(e)||e?.[Symbol.asyncIterator]?e:w.converters.XMLHttpRequestBodyInit(e,t,n)},w.converters.ResponseInit=w.dictionaryConverter([{key:`status`,converter:w.converters[`unsigned short`],defaultValue:()=>200},{key:`statusText`,converter:w.converters.ByteString,defaultValue:()=>``},{key:`headers`,converter:w.converters.HeadersInit}]),w.is.Response=w.util.MakeTypeAssertion(j),t.exports={isNetworkError:z,makeNetworkError:R,makeResponse:L,makeAppropriateNetworkError:te,filterResponse:B,Response:j,cloneResponse:I,fromInnerResponse:ne,getResponseState:P}})),Kd=s(((e,t)=>{var{extractBody:n,mixinBody:i,cloneBody:a,bodyUnusable:o}=Vu(),{Headers:s,fill:c,HeadersList:l,setHeadersGuard:u,getHeadersGuard:d,setHeadersList:f,getHeadersList:p}=Wd(),m=$(),h=r(`node:util`),{isValidHTTPToken:g,sameOrigin:_,environmentSettingsObject:v}=Lu(),{forbiddenMethodsSet:y,corsSafeListedMethodsSet:b,referrerPolicy:x,requestRedirect:S,requestMode:C,requestCredentials:w,requestCache:T,requestDuplex:E}=ju(),{kEnumerableProperty:D,normalizedMethodRecordsBase:O,normalizedMethodRecords:k}=m,{webidl:A}=Iu(),{URLSerializer:j}=Fu(),{kConstruct:M}=Z(),N=r(`node:assert`),{getMaxListeners:P,setMaxListeners:F,defaultMaxListeners:I}=r(`node:events`),L=Symbol(`abortController`),R=new FinalizationRegistry(({signal:e,abort:t})=>{e.removeEventListener(`abort`,t)}),z=new WeakMap,ee;try{ee=P(new AbortController().signal)>0}catch{ee=!1}function B(e){return t;function t(){let n=e.deref();if(n!==void 0){R.unregister(t),this.removeEventListener(`abort`,t),n.abort(this.reason);let e=z.get(n.signal);if(e!==void 0){if(e.size!==0){for(let t of e){let e=t.deref();e!==void 0&&e.abort(this.reason)}e.clear()}z.delete(n.signal)}}}}var te=!1,V=class e{#e;#t;#n;#r;#i=null;constructor(e,t=void 0){if(A.util.markAsUncloneable(this),e===M)return;A.argumentLengthCheck(arguments,1,`Request constructor`),e=A.converters.RequestInfo(e),t=A.converters.RequestInit(t);let r=null,i=null,a=v.settingsObject.baseUrl,d=null;if(typeof e==`string`){this.#t=t.dispatcher;let n;try{n=new URL(e,a)}catch(t){throw TypeError(`Failed to parse URL from `+e,{cause:t})}if(n.username||n.password)throw TypeError(`Request cannot be constructed from a URL that includes credentials: `+e);r=ie({urlList:[n]}),i=`cors`}else N(A.is.Request(e)),r=e.#r,d=e.#e,this.#t=t.dispatcher||e.#t;let h=v.settingsObject.origin,x=`client`;if(r.window?.constructor?.name===`EnvironmentSettingsObject`&&_(r.window,h)&&(x=r.window),t.window!=null)throw TypeError(`'window' option '${x}' must be null`);`window`in t&&(x=`no-window`),r=ie({method:r.method,headersList:r.headersList,unsafeRequest:r.unsafeRequest,client:v.settingsObject,window:x,priority:r.priority,origin:r.origin,referrer:r.referrer,referrerPolicy:r.referrerPolicy,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,integrity:r.integrity,keepalive:r.keepalive,reloadNavigation:r.reloadNavigation,historyNavigation:r.historyNavigation,urlList:[...r.urlList]});let S=Object.keys(t).length!==0;if(S&&(r.mode===`navigate`&&(r.mode=`same-origin`),r.reloadNavigation=!1,r.historyNavigation=!1,r.origin=`client`,r.referrer=`client`,r.referrerPolicy=``,r.url=r.urlList[r.urlList.length-1],r.urlList=[r.url]),t.referrer!==void 0){let e=t.referrer;if(e===``)r.referrer=`no-referrer`;else{let t;try{t=new URL(e,a)}catch(t){throw TypeError(`Referrer "${e}" is not a valid URL.`,{cause:t})}t.protocol===`about:`&&t.hostname===`client`||h&&!_(t,v.settingsObject.baseUrl)?r.referrer=`client`:r.referrer=t}}t.referrerPolicy!==void 0&&(r.referrerPolicy=t.referrerPolicy);let C;if(C=t.mode===void 0?i:t.mode,C===`navigate`)throw A.errors.exception({header:`Request constructor`,message:`invalid request mode navigate.`});if(C!=null&&(r.mode=C),t.credentials!==void 0&&(r.credentials=t.credentials),t.cache!==void 0&&(r.cache=t.cache),r.cache===`only-if-cached`&&r.mode!==`same-origin`)throw TypeError(`'only-if-cached' can be set only with 'same-origin' mode`);if(t.redirect!==void 0&&(r.redirect=t.redirect),t.integrity!=null&&(r.integrity=String(t.integrity)),t.keepalive!==void 0&&(r.keepalive=!!t.keepalive),t.method!==void 0){let e=t.method,n=k[e];if(n!==void 0)r.method=n;else{if(!g(e))throw TypeError(`'${e}' is not a valid HTTP method.`);let t=e.toUpperCase();if(y.has(t))throw TypeError(`'${e}' HTTP method is unsupported.`);e=O[t]??e,r.method=e}!te&&r.method===`patch`&&(process.emitWarning("Using `patch` is highly likely to result in a `405 Method Not Allowed`. `PATCH` is much more likely to succeed.",{code:`UNDICI-FETCH-patch`}),te=!0)}t.signal!==void 0&&(d=t.signal),this.#r=r;let w=new AbortController;if(this.#e=w.signal,d!=null){if(d.aborted)w.abort(d.reason);else{this[L]=w;let e=B(new WeakRef(w));ee&&P(d)===I&&F(1500,d);let t=m.addAbortListener(d,e);R.register(w,{signal:d,abort:e},e),this.#i=()=>{R.unregister(e),t(),this.#i=null}}}if(this.#n=new s(M),f(this.#n,r.headersList),u(this.#n,`request`),C===`no-cors`){if(!b.has(r.method))throw TypeError(`'${r.method} is unsupported in no-cors mode.`);u(this.#n,`request-no-cors`)}if(S){let e=p(this.#n),n=t.headers===void 0?new l(e):t.headers;if(e.clear(),n instanceof l){for(let{name:t,value:r}of n.rawValues())e.append(t,r,!1);e.cookies=n.cookies}else c(this.#n,n)}let T=A.is.Request(e)?e.#r.body:null;if((t.body!=null||T!=null)&&(r.method===`GET`||r.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);let E=null;if(t.body!=null){let[e,i]=n(t.body,r.keepalive);E=e,i&&!p(this.#n).contains(`content-type`,!0)&&this.#n.append(`content-type`,i,!0)}let D=E??T;if(D!=null&&D.source==null){if(E!=null&&t.duplex==null)throw TypeError(`RequestInit: duplex option is required when sending a body.`);if(r.mode!==`same-origin`&&r.mode!==`cors`)throw TypeError(`If request is made from ReadableStream, mode should be "same-origin" or "cors"`);r.useCORSPreflightFlag=!0}let j=D;if(E==null&&T!=null){if(o(e.#r))throw TypeError(`Cannot construct a Request with a Request object that has already been used.`);let t=new TransformStream;T.stream.pipeThrough(t),j={source:T.source,length:T.length,stream:t.readable}}this.#r.body=j}get method(){return A.brandCheck(this,e),this.#r.method}get url(){return A.brandCheck(this,e),j(this.#r.url)}get headers(){return A.brandCheck(this,e),this.#n}get destination(){return A.brandCheck(this,e),this.#r.destination}get referrer(){return A.brandCheck(this,e),this.#r.referrer===`no-referrer`?``:this.#r.referrer===`client`?`about:client`:this.#r.referrer.toString()}get referrerPolicy(){return A.brandCheck(this,e),this.#r.referrerPolicy}get mode(){return A.brandCheck(this,e),this.#r.mode}get credentials(){return A.brandCheck(this,e),this.#r.credentials}get cache(){return A.brandCheck(this,e),this.#r.cache}get redirect(){return A.brandCheck(this,e),this.#r.redirect}get integrity(){return A.brandCheck(this,e),this.#r.integrity}get keepalive(){return A.brandCheck(this,e),this.#r.keepalive}get isReloadNavigation(){return A.brandCheck(this,e),this.#r.reloadNavigation}get isHistoryNavigation(){return A.brandCheck(this,e),this.#r.historyNavigation}get signal(){return A.brandCheck(this,e),this.#e}get body(){return A.brandCheck(this,e),this.#r.body?this.#r.body.stream:null}get bodyUsed(){return A.brandCheck(this,e),!!this.#r.body&&m.isDisturbed(this.#r.body.stream)}get duplex(){return A.brandCheck(this,e),`half`}clone(){if(A.brandCheck(this,e),o(this.#r))throw TypeError(`unusable`);let t=ae(this.#r),n=new AbortController;if(this.signal.aborted)n.abort(this.signal.reason);else{let e=z.get(this.signal);e===void 0&&(e=new Set,z.set(this.signal,e));let t=new WeakRef(n);e.add(t),m.addAbortListener(n.signal,B(t))}return oe(t,this.#t,n.signal,d(this.#n))}[h.inspect.custom](e,t){t.depth===null&&(t.depth=2),t.colors??=!0;let n={method:this.method,url:this.url,headers:this.headers,destination:this.destination,referrer:this.referrer,referrerPolicy:this.referrerPolicy,mode:this.mode,credentials:this.credentials,cache:this.cache,redirect:this.redirect,integrity:this.integrity,keepalive:this.keepalive,isReloadNavigation:this.isReloadNavigation,isHistoryNavigation:this.isHistoryNavigation,signal:this.signal};return`Request ${h.formatWithOptions(t,n)}`}static setRequestSignal(e,t){return e.#e=t,e}static getRequestDispatcher(e){return e.#t}static setRequestDispatcher(e,t){e.#t=t}static setRequestHeaders(e,t){e.#n=t}static getRequestState(e){return e.#r}static setRequestState(e,t){e.#r=t}static removeRequestAbortListener(e){e.#i?.()}},{setRequestSignal:ne,getRequestDispatcher:H,setRequestDispatcher:U,setRequestHeaders:W,getRequestState:G,setRequestState:re,removeRequestAbortListener:K}=V;Reflect.deleteProperty(V,`setRequestSignal`),Reflect.deleteProperty(V,`getRequestDispatcher`),Reflect.deleteProperty(V,`setRequestDispatcher`),Reflect.deleteProperty(V,`setRequestHeaders`),Reflect.deleteProperty(V,`getRequestState`),Reflect.deleteProperty(V,`setRequestState`),Reflect.deleteProperty(V,`removeRequestAbortListener`),i(V,G);function ie(e){return{method:e.method??`GET`,localURLsOnly:e.localURLsOnly??!1,unsafeRequest:e.unsafeRequest??!1,body:e.body??null,client:e.client??null,reservedClient:e.reservedClient??null,replacesClientId:e.replacesClientId??``,window:e.window??`client`,keepalive:e.keepalive??!1,serviceWorkers:e.serviceWorkers??`all`,initiator:e.initiator??``,destination:e.destination??``,priority:e.priority??`auto`,origin:e.origin??`client`,policyContainer:e.policyContainer??`client`,referrer:e.referrer??`client`,referrerPolicy:e.referrerPolicy??``,mode:e.mode??`no-cors`,useCORSPreflightFlag:e.useCORSPreflightFlag??!1,credentials:e.credentials??`same-origin`,useCredentials:e.useCredentials??!1,cache:e.cache??`default`,redirect:e.redirect??`follow`,integrity:e.integrity??``,cryptoGraphicsNonceMetadata:e.cryptoGraphicsNonceMetadata??``,parserMetadata:e.parserMetadata??``,reloadNavigation:e.reloadNavigation??!1,historyNavigation:e.historyNavigation??!1,userActivation:e.userActivation??!1,taintedOrigin:e.taintedOrigin??!1,redirectCount:e.redirectCount??0,responseTainting:e.responseTainting??`basic`,preventNoCacheCacheControlHeaderModification:e.preventNoCacheCacheControlHeaderModification??!1,done:e.done??!1,timingAllowFailed:e.timingAllowFailed??!1,useURLCredentials:e.useURLCredentials??void 0,traversableForUserPrompts:e.traversableForUserPrompts??`client`,urlList:e.urlList,url:e.urlList[0],headersList:e.headersList?new l(e.headersList):new l}}function ae(e){let t=ie({...e,body:null});return e.body!=null&&(t.body=a(e.body)),t}function oe(e,t,n,r){let i=new V(M);re(i,e),U(i,t),ne(i,n);let a=new s(M);return W(i,a),f(a,e.headersList),u(a,r),i}Object.defineProperties(V.prototype,{method:D,url:D,headers:D,redirect:D,clone:D,signal:D,duplex:D,destination:D,body:D,bodyUsed:D,isHistoryNavigation:D,isReloadNavigation:D,keepalive:D,integrity:D,cache:D,credentials:D,attribute:D,referrerPolicy:D,referrer:D,mode:D,[Symbol.toStringTag]:{value:`Request`,configurable:!0}}),A.is.Request=A.util.MakeTypeAssertion(V),A.converters.RequestInfo=function(e){return typeof e==`string`?A.converters.USVString(e):A.is.Request(e)?e:A.converters.USVString(e)},A.converters.RequestInit=A.dictionaryConverter([{key:`method`,converter:A.converters.ByteString},{key:`headers`,converter:A.converters.HeadersInit},{key:`body`,converter:A.nullableConverter(A.converters.BodyInit)},{key:`referrer`,converter:A.converters.USVString},{key:`referrerPolicy`,converter:A.converters.DOMString,allowedValues:x},{key:`mode`,converter:A.converters.DOMString,allowedValues:C},{key:`credentials`,converter:A.converters.DOMString,allowedValues:w},{key:`cache`,converter:A.converters.DOMString,allowedValues:T},{key:`redirect`,converter:A.converters.DOMString,allowedValues:S},{key:`integrity`,converter:A.converters.DOMString},{key:`keepalive`,converter:A.converters.boolean},{key:`signal`,converter:A.nullableConverter(e=>A.converters.AbortSignal(e,`RequestInit`,`signal`))},{key:`window`,converter:A.converters.any},{key:`duplex`,converter:A.converters.DOMString,allowedValues:E},{key:`dispatcher`,converter:A.converters.any},{key:`priority`,converter:A.converters.DOMString,allowedValues:[`high`,`low`,`auto`]}]),t.exports={Request:V,makeRequest:ie,fromInnerRequest:oe,cloneRequest:ae,getRequestDispatcher:H,getRequestState:G,removeRequestAbortListener:K}})),qd=s(((e,t)=>{var n=r(`node:assert`),{runtimeFeatures:i}=Ru(),a=new Map([[`sha256`,0],[`sha384`,1],[`sha512`,2]]),o;if(i.has(`crypto`)){o=r(`node:crypto`);let e=o.getHashes();e.length===0&&a.clear();for(let t of a.keys())e.includes(t)===!1&&a.delete(t)}else a.clear();var s=Map.prototype.get.bind(a),c=Map.prototype.has.bind(a),l=i.has(`crypto`)===!1||a.size===0?()=>!0:(e,t)=>{let n=d(t);if(n.length===0)return!0;let r=u(n);for(let t of r){let n=t.alg,r=t.val;if(p(f(n,e),r))return!0}return!1};function u(e){let t=[],r=null;for(let i of e){if(n(c(i.alg),`Invalid SRI hash algorithm token`),t.length===0){t.push(i),r=i;continue}let e=r.alg,a=s(e),o=i.alg,l=s(o);l<a||(l>a?(r=i,t[0]=i,t.length=1):t.push(i))}return t}function d(e){let t=[];for(let n of e.split(` `)){let e=n.split(`?`,1)[0],r=``,i=[e.slice(0,6),e.slice(7)],a=i[0];if(!c(a))continue;i[1]&&(r=i[1]);let o={alg:a,val:r};t.push(o)}return t}var f=(e,t)=>o.hash(e,t,`base64`);function p(e,t){let n=e.length;n!==0&&e[n-1]===`=`&&--n,n!==0&&e[n-1]===`=`&&--n;let r=t.length;if(r!==0&&t[r-1]===`=`&&--r,r!==0&&t[r-1]===`=`&&--r,n!==r)return!1;for(let r=0;r<n;++r)if(!(e[r]===t[r]||e[r]===`+`&&t[r]===`-`||e[r]===`/`&&t[r]===`_`))return!1;return!0}t.exports={applyAlgorithmToBytes:f,bytesMatch:l,caseSensitiveMatch:p,isValidSRIHashAlgorithm:c,getStrongestMetadata:u,parseMetadata:d}})),Jd=s(((e,t)=>{var{makeNetworkError:n,makeAppropriateNetworkError:i,filterResponse:a,makeResponse:o,fromInnerResponse:s,getResponseState:c}=Gd(),{HeadersList:l}=Wd(),{Request:u,cloneRequest:d,getRequestDispatcher:f,getRequestState:p,removeRequestAbortListener:m}=Kd(),h=r(`node:zlib`),{makePolicyContainer:g,clonePolicyContainer:_,requestBadPort:v,TAOCheck:y,appendRequestOriginHeader:b,responseLocationURL:x,requestCurrentURL:S,setRequestReferrerPolicyOnRedirect:C,tryUpgradeRequestToAPotentiallyTrustworthyURL:w,createOpaqueTimingInfo:T,appendFetchMetadata:E,corsCheck:D,crossOriginResourcePolicyCheck:O,determineRequestsReferrer:k,coarsenedSharedCurrentTime:A,sameOrigin:j,isCancelled:M,isAborted:N,isErrorLike:P,fullyReadBody:F,readableStreamClose:I,urlIsLocal:L,urlIsHttpHttpsScheme:R,urlHasHttpsScheme:z,clampAndCoarsenConnectionTimingInfo:ee,simpleRangeHeaderValue:B,buildContentRange:te,createInflate:V,extractMimeType:ne,hasAuthenticationEntry:H,includesCredentials:U,isTraversableNavigable:W}=Lu(),G=r(`node:assert`),{safelyExtractBody:re,extractBody:K}=Vu(),{redirectStatusSet:ie,nullBodyStatus:ae,safeMethodsSet:oe,requestBodyHeader:se,subresourceSet:ce}=ju(),le=r(`node:events`),{Readable:ue,pipeline:de,finished:fe,isErrored:pe,isReadable:q}=r(`node:stream`),{addAbortListener:me,bufferToLowerCasedHeaderName:he}=$(),{dataURLProcessor:J,serializeAMimeType:ge,minimizeSupportedMimeType:_e}=Fu(),{getGlobalDispatcher:ve}=Ed(),{webidl:Y}=Iu(),{STATUS_CODES:ye}=r(`node:http`),{bytesMatch:be}=qd(),{isomorphicEncode:xe}=Pu(),Se=[`GET`,`HEAD`],Ce=typeof __UNDICI_IS_NODE__<`u`||typeof esbuildDetection<`u`?`node`:`undici`,we;function Te(e,t,n){if(Array.isArray(n)){for(let t=0;t<n.length;t+=2){let r=he(n[t]),i=n[t+1];if(Array.isArray(i)&&!Buffer.isBuffer(i))for(let t of i)e.append(r,t.toString(`latin1`),!0);else e.append(r,i.toString(`latin1`),!0)}return}for(let[n,r]of Object.entries(t??{}))if(Array.isArray(r))for(let t of r)e.append(n,`${t}`,!0);else e.append(n,`${r}`,!0)}var Ee=class extends le{constructor(e){super(),this.dispatcher=e,this.connection=null,this.dump=!1,this.state=`ongoing`}terminate(e){this.state===`ongoing`&&(this.state=`terminated`,this.connection?.destroy(e),this.emit(`terminated`,e))}abort(e){this.state===`ongoing`&&(this.state=`aborted`,e||=new DOMException(`The operation was aborted.`,`AbortError`),this.serializedAbortReason=e,this.connection?.destroy(e),this.emit(`terminated`,e))}};function De(e){ke(e,`fetch`)}function Oe(e,t=void 0){Y.argumentLengthCheck(arguments,1,`globalThis.fetch`);let n=Promise.withResolvers(),r;try{r=new u(e,t)}catch(e){return n.reject(e),n.promise}let i=p(r);if(r.signal.aborted)return je(n,i,null,r.signal.reason,null),n.promise;i.client.globalObject?.constructor?.name===`ServiceWorkerGlobalScope`&&(i.serviceWorkers=`none`);let a=null,o=!1,c=null,l=me(r.signal,()=>{o=!0,G(c!=null),c.abort(r.signal.reason);let e=a?.deref();je(n,i,e,r.signal.reason,c.controller)}),d=()=>{l(),m(r)};return c=Me({request:i,processResponseEndOfBody:e=>{De(e),d()},processResponse:e=>{if(!o){if(e.aborted){je(n,i,a,c.serializedAbortReason,c.controller),d();return}if(e.type===`error`){n.reject(TypeError(`fetch failed`,{cause:e.error})),d();return}a=new WeakRef(s(e,`immutable`)),n.resolve(a.deref()),n=null}},dispatcher:f(r),requestObject:r}),n.promise}function ke(e,t=`other`){if(e.type===`error`&&e.aborted||!e.urlList?.length)return;let n=e.urlList[0],r=e.timingInfo,i=e.cacheState;R(n)&&r!==null&&(e.timingAllowPassed||(r=T({startTime:r.startTime}),i=``),r.endTime=A(),e.timingInfo=r,Ae(r,n.href,t,globalThis,i,``,e.status))}var Ae=performance.markResourceTiming;function je(e,t,n,r,i){if(e&&e.reject(r),t.body?.stream!=null&&q(t.body.stream)&&t.body.stream.cancel(r).catch(e=>{if(e.code!==`ERR_INVALID_STATE`)throw e}),n==null)return;let a=c(n);a.body?.stream!=null&&q(a.body.stream)&&i.error(r)}function Me({request:e,processRequestBodyChunkLength:t,processRequestEndOfBody:n,processResponse:r,processResponseEndOfBody:i,processResponseConsumeBody:a,useParallelQueue:o=!1,dispatcher:s=ve(),requestObject:c=null}){G(s);let l=null,u=!1;e.client!=null&&(l=e.client.globalObject,u=e.client.crossOriginIsolatedCapability);let d=T({startTime:A(u)}),f={controller:new Ee(s),request:e,timingInfo:d,processRequestBodyChunkLength:t,processRequestEndOfBody:n,processResponse:r,processResponseConsumeBody:a,processResponseEndOfBody:i,taskDestination:l,crossOriginIsolatedCapability:u,requestObject:c};return G(!e.body||e.body.stream),e.window===`client`&&(e.window=e.client?.globalObject?.constructor?.name===`Window`?e.client:`no-window`),e.origin===`client`&&(e.origin=e.client.origin),e.policyContainer===`client`&&(e.policyContainer=e.client==null?g():_(e.client.policyContainer)),e.headersList.contains(`accept`,!0)||e.headersList.append(`accept`,`*/*`,!0),e.headersList.contains(`accept-language`,!0)||e.headersList.append(`accept-language`,`*`,!0),e.priority,ce.has(e.destination),Ne(f,!1),f.controller}async function Ne(e,t){try{let r=e.request,i=null;if(r.localURLsOnly&&!L(S(r))&&(i=n(`local URLs only`)),w(r),v(r)===`blocked`&&(i=n(`bad port`)),r.referrerPolicy===``&&(r.referrerPolicy=r.policyContainer.referrerPolicy),r.referrer!==`no-referrer`&&(r.referrer=k(r)),i===null){let t=S(r);j(t,r.url)&&r.responseTainting===`basic`||t.protocol===`data:`||r.mode===`navigate`||r.mode===`websocket`?(r.responseTainting=`basic`,i=await Pe(e)):r.mode===`same-origin`?i=n(`request mode cannot be "same-origin"`):r.mode===`no-cors`?r.redirect===`follow`?(r.responseTainting=`opaque`,i=await Pe(e)):i=n(`redirect mode cannot be "follow" for "no-cors" request`):R(S(r))?(r.responseTainting=`cors`,i=await Le(e)):i=n(`URL scheme must be a HTTP(S) scheme`)}if(t)return i;i.status!==0&&!i.internalResponse&&(r.responseTainting,r.responseTainting===`basic`?i=a(i,`basic`):r.responseTainting===`cors`?i=a(i,`cors`):r.responseTainting===`opaque`?i=a(i,`opaque`):G(!1));let o=i.status===0?i:i.internalResponse;if(o.urlList.length===0&&o.urlList.push(...r.urlList),r.timingAllowFailed||(i.timingAllowPassed=!0),i.type===`opaque`&&o.status===206&&o.rangeRequested&&!r.headers.contains(`range`,!0)&&(i=o=n()),i.status!==0&&(r.method===`HEAD`||r.method===`CONNECT`||ae.includes(o.status))&&(o.body=null,e.controller.dump=!0),r.integrity){let t=t=>Ie(e,n(t));if(r.responseTainting===`opaque`||i.body==null){t(i.error);return}F(i.body,n=>{if(!be(n,r.integrity)){t(`integrity mismatch`);return}i.body=re(n)[0],Ie(e,i)},t)}else Ie(e,i)}catch(t){e.controller.terminate(t)}}function Pe(e){if(M(e)&&e.request.redirectCount===0)return Promise.resolve(i(e));let{request:t}=e,{protocol:a}=S(t);switch(a){case`about:`:return Promise.resolve(n(`about scheme is not supported`));case`blob:`:{we||=r(`node:buffer`).resolveObjectURL;let e=S(t);if(e.search.length!==0)return Promise.resolve(n(`NetworkError when attempting to fetch resource.`));let i=we(e.toString());if(t.method!==`GET`||!Y.is.Blob(i))return Promise.resolve(n(`invalid method`));let a=o(),s=i.size,c=xe(`${s}`),l=i.type;if(t.headersList.contains(`range`,!0)){a.rangeRequested=!0;let e=B(t.headersList.get(`range`,!0),!0);if(e===`failure`)return Promise.resolve(n(`failed to fetch the data URL`));let{rangeStartValue:r,rangeEndValue:o}=e;if(r===null)r=s-o,o=r+o-1;else{if(r>=s)return Promise.resolve(n(`Range start is greater than the blob's size.`));(o===null||o>=s)&&(o=s-1)}let c=i.slice(r,o+1,l);a.body=K(c)[0];let u=xe(`${c.size}`),d=te(r,o,s);a.status=206,a.statusText=`Partial Content`,a.headersList.set(`content-length`,u,!0),a.headersList.set(`content-type`,l,!0),a.headersList.set(`content-range`,d,!0)}else{let e=K(i);a.statusText=`OK`,a.body=e[0],a.headersList.set(`content-length`,c,!0),a.headersList.set(`content-type`,l,!0)}return Promise.resolve(a)}case`data:`:{let e=J(S(t));if(e===`failure`)return Promise.resolve(n(`failed to fetch the data URL`));let r=ge(e.mimeType);return Promise.resolve(o({statusText:`OK`,headersList:[[`content-type`,{name:`Content-Type`,value:r}]],body:re(e.body)[0]}))}case`file:`:return Promise.resolve(n(`not implemented... yet...`));case`http:`:case`https:`:return Le(e).catch(e=>n(e));default:return Promise.resolve(n(`unknown scheme`))}}function Fe(e,t){e.request.done=!0,e.processResponseDone!=null&&queueMicrotask(()=>e.processResponseDone(t))}function Ie(e,t){let n=e.timingInfo,r=()=>{let r=Date.now();e.request.destination===`document`&&(e.controller.fullTimingInfo=n),e.controller.reportTimingSteps=()=>{if(!R(e.request.url))return;n.endTime=r;let i=t.cacheState,a=t.bodyInfo;t.timingAllowPassed||(n=T(n),i=``);let o=0;if(e.request.mode!==`navigate`||!t.hasCrossOriginRedirects){o=t.status;let e=ne(t.headersList);e!==`failure`&&(a.contentType=_e(e))}e.request.initiatorType!=null&&Ae(n,e.request.url.href,e.request.initiatorType,globalThis,i,a,o)};let i=()=>{e.request.done=!0,e.processResponseEndOfBody!=null&&queueMicrotask(()=>e.processResponseEndOfBody(t)),e.request.initiatorType!=null&&e.controller.reportTimingSteps()};queueMicrotask(()=>i())};e.processResponse!=null&&queueMicrotask(()=>{e.processResponse(t),e.processResponse=null});let i=t.type===`error`?t:t.internalResponse??t;i.body==null?r():fe(i.body.stream,()=>{r()})}async function Le(e){let t=e.request,r=null,i=null,a=e.timingInfo;if(t.serviceWorkers,r===null){if(t.redirect===`follow`&&(t.serviceWorkers=`none`),i=r=await ze(e),t.responseTainting===`cors`&&D(t,r)===`failure`)return n(`cors failure`);y(t,r)===`failure`&&(t.timingAllowFailed=!0)}return(t.responseTainting===`opaque`||r.type===`opaque`)&&O(t.origin,t.client,t.destination,i)===`blocked`?n(`blocked`):(ie.has(i.status)&&(t.redirect!==`manual`&&e.controller.connection.destroy(void 0,!1),t.redirect===`error`?r=n(`unexpected redirect`):t.redirect===`manual`?r=i:t.redirect===`follow`?r=await Re(e,r):G(!1)),r.timingInfo=a,r)}function Re(e,t){let r=e.request,i=t.internalResponse?t.internalResponse:t,a;try{if(a=x(i,S(r).hash),a==null)return t}catch(e){return Promise.resolve(n(e))}if(!R(a))return Promise.resolve(n(`URL scheme must be a HTTP(S) scheme`));if(r.redirectCount===20)return Promise.resolve(n(`redirect count exceeded`));if(r.redirectCount+=1,r.mode===`cors`&&(a.username||a.password)&&!j(r,a))return Promise.resolve(n(`cross origin not allowed for request mode "cors"`));if(r.responseTainting===`cors`&&(a.username||a.password))return Promise.resolve(n(`URL cannot contain credentials for request mode "cors"`));if(i.status!==303&&r.body!=null&&r.body.source==null)return Promise.resolve(n());if([301,302].includes(i.status)&&r.method===`POST`||i.status===303&&!Se.includes(r.method)){r.method=`GET`,r.body=null;for(let e of se)r.headersList.delete(e)}j(S(r),a)||(r.headersList.delete(`authorization`,!0),r.headersList.delete(`proxy-authorization`,!0),r.headersList.delete(`cookie`,!0),r.headersList.delete(`host`,!0)),r.body!=null&&(G(r.body.source!=null),r.body=re(r.body.source)[0]);let o=e.timingInfo;return o.redirectEndTime=o.postRedirectStartTime=A(e.crossOriginIsolatedCapability),o.redirectStartTime===0&&(o.redirectStartTime=o.startTime),r.urlList.push(a),C(r,i),Ne(e,!0)}async function ze(e,t=!1,r=!1){let a=e.request,o=null,s=null,c=null;a.window===`no-window`&&a.redirect===`error`?(o=e,s=a):(a.body?.source==null?(s=d({...a,body:null}),s.body=a.body):s=d(a),o={...e},o.request=s);let l=a.credentials===`include`||a.credentials===`same-origin`&&a.responseTainting===`basic`,u=s.body?s.body.length:null,f=null;if(s.body==null&&[`POST`,`PUT`].includes(s.method)&&(f=`0`),u!=null&&(f=xe(`${u}`)),f!=null&&!s.headersList.contains(`content-length`,!0)&&s.headersList.append(`content-length`,f,!0),u!=null&&s.keepalive,Y.is.URL(s.referrer)&&s.headersList.append(`referer`,xe(s.referrer.href),!0),b(s),E(s),s.headersList.contains(`user-agent`,!0)||s.headersList.append(`user-agent`,Ce,!0),s.cache==="default"&&(s.headersList.contains(`if-modified-since`,!0)||s.headersList.contains(`if-none-match`,!0)||s.headersList.contains(`if-unmodified-since`,!0)||s.headersList.contains(`if-match`,!0)||s.headersList.contains(`if-range`,!0))&&(s.cache=`no-store`),s.cache===`no-cache`&&!s.preventNoCacheCacheControlHeaderModification&&!s.headersList.contains(`cache-control`,!0)&&s.headersList.append(`cache-control`,`max-age=0`,!0),(s.cache===`no-store`||s.cache===`reload`)&&(s.headersList.contains(`pragma`,!0)||s.headersList.append(`pragma`,`no-cache`,!0),s.headersList.contains(`cache-control`,!0)||s.headersList.append(`cache-control`,`no-cache`,!0)),s.headersList.contains(`range`,!0)&&s.headersList.append(`accept-encoding`,`identity`,!0),s.headersList.contains(`accept-encoding`,!0)||(z(S(s))?s.headersList.append(`accept-encoding`,`br, gzip, deflate, zstd`,!0):s.headersList.append(`accept-encoding`,`gzip, deflate`,!0)),s.headersList.delete(`host`,!0),l&&!s.headersList.contains(`authorization`,!0)){let e=null;if((!H(s)||s.useURLCredentials!==void 0&&U(S(s)))&&U(S(s))&&t){let{username:t,password:n}=S(s);e=`Basic ${Buffer.from(`${t}:${n}`).toString(`base64`)}`}e!==null&&s.headersList.append(`Authorization`,e,!1)}if(s.cache=`no-store`,s.cache!==`no-store`&&s.cache,c==null){if(s.cache===`only-if-cached`)return n(`only if cached`);let e=await Be(o,l,r);!oe.has(s.method)&&e.status>=200&&e.status,c??=e}if(c.urlList=[...s.urlList],s.headersList.contains(`range`,!0)&&(c.rangeRequested=!0),c.requestIncludesCredentials=l,c.status===401&&s.responseTainting!==`cors`&&l&&(a.useURLCredentials!==void 0||W(a.traversableForUserPrompts))){if(a.body!=null){if(a.body.source==null)return c;a.body=re(a.body.source)[0]}if(a.useURLCredentials===void 0||t)return M(e)?i(e):c;e.controller.connection.destroy(),c=await ze(e,!0)}if(c.status===407)return a.window===`no-window`?n():M(e)?i(e):n(`proxy authentication required`);if(c.status===421&&!r&&(a.body==null||a.body.source!=null)){if(M(e))return i(e);e.controller.connection.destroy(),c=await ze(e,t,!0)}return c}async function Be(e,t=!1,r=!1){G(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(e,t=!0){this.destroyed||(this.destroyed=!0,t&&this.abort?.(e??new DOMException(`The operation was aborted.`,`AbortError`)))}};let a=e.request,s=null,c=e.timingInfo;a.cache=`no-store`,a.mode;let u=null;if(a.body==null&&e.processRequestEndOfBody)queueMicrotask(()=>e.processRequestEndOfBody());else if(a.body!=null){let t=async function*(t){M(e)||(yield t,e.processRequestBodyChunkLength?.(t.byteLength))},n=()=>{M(e)||e.processRequestEndOfBody&&e.processRequestEndOfBody()},r=t=>{M(e)||(t.name===`AbortError`?e.controller.abort():e.controller.terminate(t))};u=(async function*(){try{for await(let e of a.body.stream)yield*t(e);n()}catch(e){r(e)}})()}try{let{body:t,status:n,statusText:r,headersList:i,socket:a}=await p({body:u});if(a)s=o({status:n,statusText:r,headersList:i,socket:a});else{let a=t[Symbol.asyncIterator]();e.controller.next=()=>a.next(),s=o({status:n,statusText:r,headersList:i})}}catch(t){return t.name===`AbortError`?(e.controller.connection.destroy(),i(e,t)):n(t)}let d=new ReadableStream({start(t){e.controller.controller=t},pull:()=>e.controller.resume(),cancel:t=>{M(e)||e.controller.abort(t)},type:`bytes`});s.body={stream:d,source:null,length:null},e.controller.resume||e.controller.on(`terminated`,f),e.controller.resume=async()=>{for(;;){let t,n;try{let{done:n,value:r}=await e.controller.next();if(N(e))break;t=n?void 0:r}catch(r){e.controller.ended&&!c.encodedBodySize?t=void 0:(t=r,n=!0)}if(t===void 0){I(e.controller.controller),Fe(e,s);return}if(c.decodedBodySize+=t?.byteLength??0,n){e.controller.terminate(t);return}let r=new Uint8Array(t);if(r.byteLength&&e.controller.controller.enqueue(r),pe(d)){e.controller.terminate();return}if(e.controller.controller.desiredSize<=0)return}};function f(t){N(e)?(s.aborted=!0,q(d)&&e.controller.controller.error(e.controller.serializedAbortReason)):q(d)&&e.controller.controller.error(TypeError(`terminated`,{cause:P(t)?t:void 0})),e.controller.connection.destroy()}return s;function p({body:t}){let n=S(a),r=e.controller.dispatcher,i=n.pathname+n.search,o=n.search.length===0&&n.href[n.href.length-n.hash.length-1]===`?`;return s(t);function s(t,u){return new Promise((d,f)=>r.dispatch({path:o?`${i}?`:i,origin:n.origin,method:a.method,body:r.isMockActive?a.body&&(a.body.source||a.body.stream):t,__mockAgentBodyForDispatch:t,headers:a.headersList.entries,maxRedirections:0,upgrade:a.mode===`websocket`?`websocket`:void 0,...u===!1?{allowH2:u}:null},{body:null,abort:null,onRequestStart(t){let{connection:n}=e.controller;c.finalConnectionTimingInfo=ee(void 0,c.postRedirectStartTime,e.crossOriginIsolatedCapability);let r=e=>t.abort(e);n.destroyed?r(new DOMException(`The operation was aborted.`,`AbortError`)):(e.controller.on(`terminated`,r),this.abort=n.abort=r),c.finalNetworkRequestStartTime=A(e.crossOriginIsolatedCapability)},onResponseStarted(){c.finalNetworkResponseStartTime=A(e.crossOriginIsolatedCapability)},onResponseStart(e,t,n,r){if(t<200)return;let i=e?.rawHeaders??[],o=new l;Te(o,n,i);let s=o.get(`location`,!0);this.body=new ue({read:()=>e.resume()});let c=s&&a.redirect===`follow`&&ie.has(t),u=[];if(a.method!==`HEAD`&&a.method!==`CONNECT`&&!ae.includes(t)&&!c){let e=o.get(`content-encoding`,!0),t=e?e.toLowerCase().split(`,`):[];if(t.length>5){f(Error(`too many content-encodings in response: ${t.length}, maximum allowed is 5`));return}for(let e=t.length-1;e>=0;--e){let n=t[e].trim();if(n===`x-gzip`||n===`gzip`)u.push(h.createGunzip({flush:h.constants.Z_SYNC_FLUSH,finishFlush:h.constants.Z_SYNC_FLUSH}));else if(n===`deflate`)u.push(V({flush:h.constants.Z_SYNC_FLUSH,finishFlush:h.constants.Z_SYNC_FLUSH}));else if(n===`br`)u.push(h.createBrotliDecompress({flush:h.constants.BROTLI_OPERATION_FLUSH,finishFlush:h.constants.BROTLI_OPERATION_FLUSH}));else if(n===`zstd`)u.push(h.createZstdDecompress({flush:h.constants.ZSTD_e_continue,finishFlush:h.constants.ZSTD_e_end}));else{u.length=0;break}}}let p=t=>this.onResponseError(e,t);d({status:t,statusText:r,headersList:o,body:u.length?de(this.body,...u,t=>{t&&this.onResponseError(e,t)}).on(`error`,p):this.body.on(`error`,p)})},onResponseData(t,n){if(e.controller.dump)return;let r=n;c.encodedBodySize+=r.byteLength,this.body.push(r)===!1&&t.pause()},onResponseEnd(){this.abort&&e.controller.off(`terminated`,this.abort),e.controller.ended=!0,this.body?.push(null)},onResponseError(n,r){if(this.abort&&e.controller.off(`terminated`,this.abort),a.mode===`websocket`&&u!==!1&&r?.code===`UND_ERR_INFO`&&r?.message===`HTTP/2: Extended CONNECT protocol not supported by server`){d(s(t,!1));return}this.body?.destroy(r),e.controller.terminate(r),f(r)},onRequestUpgrade(e,t,n,r){if(r.session!=null&&t!==200||r.session==null&&t!==101)return!1;let i=e?.rawHeaders??[],a=new l;return Te(a,n,i),d({status:t,statusText:ye[t],headersList:a,socket:r}),!0}}))}}}t.exports={fetch:Oe,Fetch:Ee,fetching:Me,finalizeAndReportTiming:ke}})),Yd=s(((e,t)=>{var n=r(`node:assert`),{URLSerializer:i}=Fu(),{isValidHeaderName:a}=Lu();function o(e,t,n=!1){return i(e,n)===i(t,n)}function s(e){n(e!==null);let t=[];for(let n of e.split(`,`))n=n.trim(),a(n)&&t.push(n);return t}t.exports={urlEquals:o,getFieldValues:s}})),Xd=s(((e,t)=>{var n=r(`node:assert`),{kConstruct:i}=Z(),{urlEquals:a,getFieldValues:o}=Yd(),{kEnumerableProperty:s,isDisturbed:c}=$(),{webidl:l}=Iu(),{cloneResponse:u,fromInnerResponse:d,getResponseState:f}=Gd(),{Request:p,fromInnerRequest:m,getRequestState:h}=Kd(),{fetching:g}=Jd(),{urlIsHttpHttpsScheme:_,readAllBytes:v}=Lu(),y=class e{#e;constructor(){arguments[0]!==i&&l.illegalConstructor(),l.util.markAsUncloneable(this),this.#e=arguments[1]}async match(t,n={}){l.brandCheck(this,e);let r=`Cache.match`;l.argumentLengthCheck(arguments,1,r),t=l.converters.RequestInfo(t),n=l.converters.CacheQueryOptions(n,r,`options`);let i=this.#i(t,n,1);if(i.length!==0)return i[0]}async matchAll(t=void 0,n={}){return l.brandCheck(this,e),t!==void 0&&(t=l.converters.RequestInfo(t)),n=l.converters.CacheQueryOptions(n,`Cache.matchAll`,`options`),this.#i(t,n)}async add(t){l.brandCheck(this,e),l.argumentLengthCheck(arguments,1,`Cache.add`),t=l.converters.RequestInfo(t);let n=[t];return await this.addAll(n)}async addAll(t){l.brandCheck(this,e);let n=`Cache.addAll`;l.argumentLengthCheck(arguments,1,n);let r=[],i=[];for(let e of t){if(e===void 0)throw l.errors.conversionFailed({prefix:n,argument:`Argument 1`,types:[`undefined is not allowed`]});if(e=l.converters.RequestInfo(e),typeof e==`string`)continue;let t=h(e);if(!_(t.url)||t.method!==`GET`)throw l.errors.exception({header:n,message:`Expected http/s scheme when method is not GET.`})}let a=[];for(let e of t){let t=h(new p(e));if(!_(t.url))throw l.errors.exception({header:n,message:`Expected http/s scheme.`});t.initiator=`fetch`,t.destination=`subresource`,i.push(t);let s=Promise.withResolvers();a.push(g({request:t,processResponse(e){if(e.type===`error`||e.status===206||e.status<200||e.status>299)s.reject(l.errors.exception({header:`Cache.addAll`,message:`Received an invalid status code or the request failed.`}));else if(e.headersList.contains(`vary`)){let t=o(e.headersList.get(`vary`));for(let e of t)if(e===`*`){s.reject(l.errors.exception({header:`Cache.addAll`,message:`invalid vary field value`}));for(let e of a)e.abort();return}}},processResponseEndOfBody(e){if(e.aborted){s.reject(new DOMException(`aborted`,`AbortError`));return}s.resolve(e)}})),r.push(s.promise)}let s=await Promise.all(r),c=[],u=0;for(let e of s){let t={type:`put`,request:i[u],response:e};c.push(t),u++}let d=Promise.withResolvers(),f=null;try{this.#t(c)}catch(e){f=e}return queueMicrotask(()=>{f===null?d.resolve(void 0):d.reject(f)}),d.promise}async put(t,n){l.brandCheck(this,e);let r=`Cache.put`;l.argumentLengthCheck(arguments,2,r),t=l.converters.RequestInfo(t),n=l.converters.Response(n,r,`response`);let i=null;if(i=l.is.Request(t)?h(t):h(new p(t)),!_(i.url)||i.method!==`GET`)throw l.errors.exception({header:r,message:`Expected an http/s scheme when method is not GET`});let a=f(n);if(a.status===206)throw l.errors.exception({header:r,message:`Got 206 status`});if(a.headersList.contains(`vary`)){let e=o(a.headersList.get(`vary`));for(let t of e)if(t===`*`)throw l.errors.exception({header:r,message:`Got * vary field value`})}if(a.body&&(c(a.body.stream)||a.body.stream.locked))throw l.errors.exception({header:r,message:`Response body is locked or disturbed`});let s=u(a),d=Promise.withResolvers();a.body==null?d.resolve(void 0):v(a.body.stream.getReader(),d.resolve,d.reject);let m=[],g={type:`put`,request:i,response:s};m.push(g);let y=await d.promise;s.body!=null&&(s.body.source=y);let b=Promise.withResolvers(),x=null;try{this.#t(m)}catch(e){x=e}return queueMicrotask(()=>{x===null?b.resolve():b.reject(x)}),b.promise}async delete(t,r={}){l.brandCheck(this,e);let i=`Cache.delete`;l.argumentLengthCheck(arguments,1,i),t=l.converters.RequestInfo(t),r=l.converters.CacheQueryOptions(r,i,`options`);let a=null;if(l.is.Request(t)){if(a=h(t),a.method!==`GET`&&!r.ignoreMethod)return!1}else n(typeof t==`string`),a=h(new p(t));let o=[],s={type:`delete`,request:a,options:r};o.push(s);let c=Promise.withResolvers(),u=null,d;try{d=this.#t(o)}catch(e){u=e}return queueMicrotask(()=>{u===null?c.resolve(!!d?.length):c.reject(u)}),c.promise}async keys(t=void 0,n={}){l.brandCheck(this,e),t!==void 0&&(t=l.converters.RequestInfo(t)),n=l.converters.CacheQueryOptions(n,`Cache.keys`,`options`);let r=null;if(t!==void 0){if(l.is.Request(t)){if(r=h(t),r.method!==`GET`&&!n.ignoreMethod)return[]}else typeof t==`string`&&(r=h(new p(t)))}let i=Promise.withResolvers(),a=[];if(t===void 0)for(let e of this.#e)a.push(e[0]);else{let e=this.#n(r,n);for(let t of e)a.push(t[0])}return queueMicrotask(()=>{let e=[];for(let t of a){let n=m(t,void 0,new AbortController().signal,`immutable`);e.push(n)}i.resolve(Object.freeze(e))}),i.promise}#t(e){let t=this.#e,r=[...t],i=[],a=[];try{for(let r of e){if(r.type!==`delete`&&r.type!==`put`)throw l.errors.exception({header:`Cache.#batchCacheOperations`,message:`operation type does not match "delete" or "put"`});if(r.type===`delete`&&r.response!=null)throw l.errors.exception({header:`Cache.#batchCacheOperations`,message:`delete operation should not have an associated response`});if(this.#n(r.request,r.options,i).length)throw new DOMException(`???`,`InvalidStateError`);let e;if(r.type===`delete`){if(e=this.#n(r.request,r.options),e.length===0)return[];for(let r of e){let e=t.indexOf(r);n(e!==-1),t.splice(e,1)}}else if(r.type===`put`){if(r.response==null)throw l.errors.exception({header:`Cache.#batchCacheOperations`,message:`put operation should have an associated response`});let a=r.request;if(!_(a.url))throw l.errors.exception({header:`Cache.#batchCacheOperations`,message:`expected http or https scheme`});if(a.method!==`GET`)throw l.errors.exception({header:`Cache.#batchCacheOperations`,message:`not get method`});if(r.options!=null)throw l.errors.exception({header:`Cache.#batchCacheOperations`,message:`options must not be defined`});e=this.#n(r.request);for(let r of e){let e=t.indexOf(r);n(e!==-1),t.splice(e,1)}t.push([r.request,r.response]),i.push([r.request,r.response])}a.push([r.request,r.response])}return a}catch(e){throw this.#e.length=0,this.#e=r,e}}#n(e,t,n){let r=[],i=n??this.#e;for(let n of i){let[i,a]=n;this.#r(e,i,a,t)&&r.push(n)}return r}#r(e,t,n=null,r){let i=new URL(e.url),s=new URL(t.url);if(r?.ignoreSearch&&(s.search=``,i.search=``),!a(i,s,!0))return!1;if(n==null||r?.ignoreVary||!n.headersList.contains(`vary`))return!0;let c=o(n.headersList.get(`vary`));for(let n of c)if(n===`*`||t.headersList.get(n)!==e.headersList.get(n))return!1;return!0}#i(e,t,n=1/0){let r=null;if(e!==void 0){if(l.is.Request(e)){if(r=h(e),r.method!==`GET`&&!t.ignoreMethod)return[]}else typeof e==`string`&&(r=h(new p(e)))}let i=[];if(e===void 0)for(let e of this.#e)i.push(e[1]);else{let e=this.#n(r,t);for(let t of e)i.push(t[1])}let a=[];for(let e of i){let t=d(u(e),`immutable`);if(a.push(t),a.length>=n)break}return Object.freeze(a)}};Object.defineProperties(y.prototype,{[Symbol.toStringTag]:{value:`Cache`,configurable:!0},match:s,matchAll:s,add:s,addAll:s,put:s,delete:s,keys:s});var b=[{key:`ignoreSearch`,converter:l.converters.boolean,defaultValue:()=>!1},{key:`ignoreMethod`,converter:l.converters.boolean,defaultValue:()=>!1},{key:`ignoreVary`,converter:l.converters.boolean,defaultValue:()=>!1}];l.converters.CacheQueryOptions=l.dictionaryConverter(b),l.converters.MultiCacheQueryOptions=l.dictionaryConverter([...b,{key:`cacheName`,converter:l.converters.DOMString}]),l.converters.Response=l.interfaceConverter(l.is.Response,`Response`),l.converters[`sequence<RequestInfo>`]=l.sequenceConverter(l.converters.RequestInfo),t.exports={Cache:y}})),Zd=s(((e,t)=>{var{Cache:n}=Xd(),{webidl:r}=Iu(),{kEnumerableProperty:i}=$(),{kConstruct:a}=Z(),o=class e{#e=new Map;constructor(){arguments[0]!==a&&r.illegalConstructor(),r.util.markAsUncloneable(this)}async match(t,i={}){if(r.brandCheck(this,e),r.argumentLengthCheck(arguments,1,`CacheStorage.match`),t=r.converters.RequestInfo(t),i=r.converters.MultiCacheQueryOptions(i),i.cacheName!=null){if(this.#e.has(i.cacheName))return await new n(a,this.#e.get(i.cacheName)).match(t,i)}else for(let e of this.#e.values()){let r=await new n(a,e).match(t,i);if(r!==void 0)return r}}async has(t){r.brandCheck(this,e);let n=`CacheStorage.has`;return r.argumentLengthCheck(arguments,1,n),t=r.converters.DOMString(t,n,`cacheName`),this.#e.has(t)}async open(t){r.brandCheck(this,e);let i=`CacheStorage.open`;if(r.argumentLengthCheck(arguments,1,i),t=r.converters.DOMString(t,i,`cacheName`),this.#e.has(t))return new n(a,this.#e.get(t));let o=[];return this.#e.set(t,o),new n(a,o)}async delete(t){r.brandCheck(this,e);let n=`CacheStorage.delete`;return r.argumentLengthCheck(arguments,1,n),t=r.converters.DOMString(t,n,`cacheName`),this.#e.delete(t)}async keys(){return r.brandCheck(this,e),[...this.#e.keys()]}};Object.defineProperties(o.prototype,{[Symbol.toStringTag]:{value:`CacheStorage`,configurable:!0},match:i,has:i,open:i,delete:i,keys:i}),t.exports={CacheStorage:o}})),Qd=s(((e,t)=>{t.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}})),$d=s(((e,t)=>{function n(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n>=0&&n<=8||n>=10&&n<=31||n===127)return!0}return!1}function r(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n<33||n>126||n===34||n===40||n===41||n===60||n===62||n===64||n===44||n===59||n===58||n===92||n===47||n===91||n===93||n===63||n===61||n===123||n===125)throw Error(`Invalid cookie name`)}}function i(e){let t=e.length,n=0;if(e[0]===`"`){if(t===1||e[t-1]!==`"`)throw Error(`Invalid cookie value`);--t,++n}for(;n<t;){let t=e.charCodeAt(n++);if(t<33||t>126||t===34||t===44||t===59||t===92)throw Error(`Invalid cookie value`)}}function a(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n<32||n>126||n===59)throw Error(`Invalid cookie path`)}}function o(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function s(e){if(e===` `)return;if(e.length>255)throw Error(`Invalid cookie domain`);let t=0;for(let n=0;n<e.length;++n){let r=e.charCodeAt(n);if(r===46){if(t===0||e.charCodeAt(n-1)===45)throw Error(`Invalid cookie domain`);t=0;continue}if(t===0&&!o(r)||!o(r)&&r!==45||++t>63)throw Error(`Invalid cookie domain`)}if(t===0||e.charCodeAt(e.length-1)===45)throw Error(`Invalid cookie domain`)}var c=[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],l=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],u=Array(61).fill(0).map((e,t)=>t.toString().padStart(2,`0`));function d(e){return typeof e==`number`&&(e=new Date(e)),`${c[e.getUTCDay()]}, ${u[e.getUTCDate()]} ${l[e.getUTCMonth()]} ${e.getUTCFullYear()} ${u[e.getUTCHours()]}:${u[e.getUTCMinutes()]}:${u[e.getUTCSeconds()]} GMT`}function f(e){if(e<0)throw Error(`Invalid cookie max-age`)}function p(e){if(e.name.length===0)return null;r(e.name),i(e.value);let t=[`${e.name}=${e.value}`];e.name.startsWith(`__Secure-`)&&(e.secure=!0),e.name.startsWith(`__Host-`)&&(e.secure=!0,e.domain=null,e.path=`/`),e.secure&&t.push(`Secure`),e.httpOnly&&t.push(`HttpOnly`),typeof e.maxAge==`number`&&(f(e.maxAge),t.push(`Max-Age=${e.maxAge}`)),e.domain&&(s(e.domain),t.push(`Domain=${e.domain}`)),e.path&&(a(e.path),t.push(`Path=${e.path}`)),e.expires&&e.expires.toString()!==`Invalid Date`&&t.push(`Expires=${d(e.expires)}`),e.sameSite&&t.push(`SameSite=${e.sameSite}`);for(let n of e.unparsed){if(!n.includes(`=`))throw Error(`Invalid unparsed`);let[e,...a]=n.split(`=`),o=e.trim(),s=a.join(`=`);r(o),i(s),t.push(`${o}=${s}`)}return t.join(`; `)}t.exports={isCTLExcludingHtab:n,validateCookieName:r,validateCookiePath:a,validateCookieValue:i,toIMFDate:d,stringify:p}})),ef=s(((e,t)=>{var{collectASequenceOfCodePointsFast:n}=Pu(),{maxNameValuePairSize:i,maxAttributeValueSize:a}=Qd(),{isCTLExcludingHtab:o}=$d(),s=r(`node:assert`);function c(e){if(o(e))return null;let t=``,r=``,a=``,s=``;if(e.includes(`;`)){let i={position:0};t=n(`;`,e,i),r=e.slice(i.position)}else t=e;if(!t.includes(`=`))s=t;else{let e={position:0};a=n(`=`,t,e),s=t.slice(e.position+1)}return a=a.trim(),s=s.trim(),a.length+s.length>i?null:{name:a,value:s,...l(r)}}function l(e,t={}){if(e.length===0)return t;s(e[0]===`;`),e=e.slice(1);let r=``;e.includes(`;`)?(r=n(`;`,e,{position:0}),e=e.slice(r.length)):(r=e,e=``);let i=``,o=``;if(r.includes(`=`)){let e={position:0};i=n(`=`,r,e),o=r.slice(e.position+1)}else i=r;if(i=i.trim(),o=o.trim(),o.length>a)return l(e,t);let c=i.toLowerCase();if(c===`expires`){let e=new Date(o);Number.isNaN(e.getTime())||(t.expires=e)}else if(c===`max-age`){let n=o.charCodeAt(0),r=n>=48&&n<=57,i=o[0]===`-`&&o.length>1;if(!r&&!i||/[^\d]/.test(o.slice(1)))return l(e,t);t.maxAge=Number(o)}else if(c===`domain`){let e=o;e[0]===`.`&&(e=e.slice(1)),e=e.toLowerCase(),t.domain=e}else if(c===`path`){let e=``;e=o.length===0||o[0]!==`/`?`/`:o,t.path=e}else if(c===`secure`)t.secure=!0;else if(c===`httponly`)t.httpOnly=!0;else if(c===`samesite`){let e=o.toLowerCase();e===`none`?t.sameSite=`None`:e===`strict`?t.sameSite=`Strict`:e===`lax`&&(t.sameSite=`Lax`)}else t.unparsed??=[],t.unparsed.push(`${i}=${o}`);return l(e,t)}t.exports={parseSetCookie:c,parseUnparsedAttributes:l}})),tf=s(((e,t)=>{var{parseSetCookie:n}=ef(),{stringify:r}=$d(),{webidl:i}=Iu(),{Headers:a}=Wd(),o=i.brandCheckMultiple([a,globalThis.Headers].filter(Boolean));function s(e){i.argumentLengthCheck(arguments,1,`getCookies`),o(e);let t=e.get(`cookie`),n={};if(!t)return n;for(let e of t.split(`;`)){let[t,...r]=e.split(`=`);n[t.trim()]=r.join(`=`)}return n}function c(e,t,n){o(e);let r=`deleteCookie`;i.argumentLengthCheck(arguments,2,r),t=i.converters.DOMString(t,r,`name`),n=i.converters.DeleteCookieAttributes(n),d(e,{name:t,value:``,expires:new Date(0),...n})}function l(e){i.argumentLengthCheck(arguments,1,`getSetCookies`),o(e);let t=e.getSetCookie();return t?t.map(e=>n(e)):[]}function u(e){return e=i.converters.DOMString(e),n(e)}function d(e,t){i.argumentLengthCheck(arguments,2,`setCookie`),o(e),t=i.converters.Cookie(t);let n=r(t);n&&e.append(`set-cookie`,n,!0)}i.converters.DeleteCookieAttributes=i.dictionaryConverter([{converter:i.nullableConverter(i.converters.DOMString),key:`path`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.DOMString),key:`domain`,defaultValue:()=>null}]),i.converters.Cookie=i.dictionaryConverter([{converter:i.converters.DOMString,key:`name`},{converter:i.converters.DOMString,key:`value`},{converter:i.nullableConverter(e=>typeof e==`number`?i.converters[`unsigned long long`](e):new Date(e)),key:`expires`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters[`long long`]),key:`maxAge`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.DOMString),key:`domain`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.DOMString),key:`path`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.boolean),key:`secure`,defaultValue:()=>null},{converter:i.nullableConverter(i.converters.boolean),key:`httpOnly`,defaultValue:()=>null},{converter:i.converters.USVString,key:`sameSite`,allowedValues:[`Strict`,`Lax`,`None`]},{converter:i.sequenceConverter(i.converters.DOMString),key:`unparsed`,defaultValue:()=>[]}]),t.exports={getCookies:s,deleteCookie:c,getSetCookies:l,setCookie:d,parseCookie:u}})),nf=s(((e,t)=>{var{webidl:n}=Iu(),{kEnumerableProperty:r}=$(),{kConstruct:i}=Z(),a=class e extends Event{#e;constructor(e,t={}){if(e===i){super(arguments[1],arguments[2]),n.util.markAsUncloneable(this);return}let r=`MessageEvent constructor`;n.argumentLengthCheck(arguments,1,r),e=n.converters.DOMString(e,r,`type`),t=n.converters.MessageEventInit(t,r,`eventInitDict`),super(e,t),this.#e=t,n.util.markAsUncloneable(this)}get data(){return n.brandCheck(this,e),this.#e.data}get origin(){return n.brandCheck(this,e),this.#e.origin}get lastEventId(){return n.brandCheck(this,e),this.#e.lastEventId}get source(){return n.brandCheck(this,e),this.#e.source}get ports(){return n.brandCheck(this,e),Object.isFrozen(this.#e.ports)||Object.freeze(this.#e.ports),this.#e.ports}initMessageEvent(t,r=!1,i=!1,a=null,o=``,s=``,c=null,l=[]){return n.brandCheck(this,e),n.argumentLengthCheck(arguments,1,`MessageEvent.initMessageEvent`),new e(t,{bubbles:r,cancelable:i,data:a,origin:o,lastEventId:s,source:c,ports:l})}static createFastMessageEvent(t,n){let r=new e(i,t,n);return r.#e=n,r.#e.data??=null,r.#e.origin??=``,r.#e.lastEventId??=``,r.#e.source??=null,r.#e.ports??=[],r}},{createFastMessageEvent:o}=a;delete a.createFastMessageEvent;var s=class e extends Event{#e;constructor(e,t={}){let r=`CloseEvent constructor`;n.argumentLengthCheck(arguments,1,r),e=n.converters.DOMString(e,r,`type`),t=n.converters.CloseEventInit(t),super(e,t),this.#e=t,n.util.markAsUncloneable(this)}get wasClean(){return n.brandCheck(this,e),this.#e.wasClean}get code(){return n.brandCheck(this,e),this.#e.code}get reason(){return n.brandCheck(this,e),this.#e.reason}},c=class e extends Event{#e;constructor(e,t){let r=`ErrorEvent constructor`;n.argumentLengthCheck(arguments,1,r),super(e,t),n.util.markAsUncloneable(this),e=n.converters.DOMString(e,r,`type`),t=n.converters.ErrorEventInit(t??{}),this.#e=t}get message(){return n.brandCheck(this,e),this.#e.message}get filename(){return n.brandCheck(this,e),this.#e.filename}get lineno(){return n.brandCheck(this,e),this.#e.lineno}get colno(){return n.brandCheck(this,e),this.#e.colno}get error(){return n.brandCheck(this,e),this.#e.error}};Object.defineProperties(a.prototype,{[Symbol.toStringTag]:{value:`MessageEvent`,configurable:!0},data:r,origin:r,lastEventId:r,source:r,ports:r,initMessageEvent:r}),Object.defineProperties(s.prototype,{[Symbol.toStringTag]:{value:`CloseEvent`,configurable:!0},reason:r,code:r,wasClean:r}),Object.defineProperties(c.prototype,{[Symbol.toStringTag]:{value:`ErrorEvent`,configurable:!0},message:r,filename:r,lineno:r,colno:r,error:r}),n.converters.MessagePort=n.interfaceConverter(n.is.MessagePort,`MessagePort`),n.converters[`sequence<MessagePort>`]=n.sequenceConverter(n.converters.MessagePort);var l=[{key:`bubbles`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`cancelable`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`composed`,converter:n.converters.boolean,defaultValue:()=>!1}];n.converters.MessageEventInit=n.dictionaryConverter([...l,{key:`data`,converter:n.converters.any,defaultValue:()=>null},{key:`origin`,converter:n.converters.USVString,defaultValue:()=>``},{key:`lastEventId`,converter:n.converters.DOMString,defaultValue:()=>``},{key:`source`,converter:n.nullableConverter(n.converters.MessagePort),defaultValue:()=>null},{key:`ports`,converter:n.converters[`sequence<MessagePort>`],defaultValue:()=>[]}]),n.converters.CloseEventInit=n.dictionaryConverter([...l,{key:`wasClean`,converter:n.converters.boolean,defaultValue:()=>!1},{key:`code`,converter:n.converters[`unsigned short`],defaultValue:()=>0},{key:`reason`,converter:n.converters.USVString,defaultValue:()=>``}]),n.converters.ErrorEventInit=n.dictionaryConverter([...l,{key:`message`,converter:n.converters.DOMString,defaultValue:()=>``},{key:`filename`,converter:n.converters.USVString,defaultValue:()=>``},{key:`lineno`,converter:n.converters[`unsigned long`],defaultValue:()=>0},{key:`colno`,converter:n.converters[`unsigned long`],defaultValue:()=>0},{key:`error`,converter:n.converters.any}]),t.exports={MessageEvent:a,CloseEvent:s,ErrorEvent:c,createFastMessageEvent:o}})),rf=s(((e,t)=>{t.exports={uid:`258EAFA5-E914-47DA-95CA-C5AB0DC85B11`,sentCloseFrameState:{SENT:1,RECEIVED:2},staticPropertyDescriptors:{enumerable:!0,writable:!1,configurable:!1},states:{CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},opcodes:{CONTINUATION:0,TEXT:1,BINARY:2,CLOSE:8,PING:9,PONG:10},maxUnsigned16Bit:65535,parserStates:{INFO:0,PAYLOADLENGTH_16:2,PAYLOADLENGTH_64:3,READ_DATA:4},emptyBuffer:Buffer.allocUnsafe(0),sendHints:{text:1,typedArray:2,arrayBuffer:3,blob:4}}})),af=s(((e,t)=>{var{states:n,opcodes:i}=rf(),{isUtf8:a}=r(`node:buffer`),{removeHTTPWhitespace:o}=Fu(),{collectASequenceOfCodePointsFast:s}=Pu();function c(e){return e===n.CONNECTING}function l(e){return e===n.OPEN}function u(e){return e===n.CLOSING}function d(e){return e===n.CLOSED}function f(e,t,n=(e,t)=>new Event(e,t),r={}){let i=n(e,r);t.dispatchEvent(i)}function p(e,t,n){e.onMessage(t,n)}function m(e){return e.byteLength===e.buffer.byteLength?e.buffer:new Uint8Array(e).buffer}function h(e){if(e.length===0)return!1;for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n<33||n>126||n===34||n===40||n===41||n===44||n===47||n===58||n===59||n===60||n===61||n===62||n===63||n===64||n===91||n===92||n===93||n===123||n===125)return!1}return!0}function g(e){return e>=1e3&&e<1015?e!==1004&&e!==1005&&e!==1006:e>=3e3&&e<=4999}function _(e){return e===i.CLOSE||e===i.PING||e===i.PONG}function v(e){return e===i.CONTINUATION}function y(e){return e===i.TEXT||e===i.BINARY}function b(e){return y(e)||v(e)||_(e)}function x(e){let t={position:0},n=new Map;for(;t.position<e.length;){let[r,i=``]=s(`;`,e,t).split(`=`,2);n.set(o(r,!0,!1),o(i,!1,!0)),t.position++}return n}function S(e){if(e.length===0)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}let t=Number.parseInt(e,10);return t>=8&&t<=15}function C(e,t){let n;try{n=new URL(e,t)}catch(e){throw new DOMException(e,`SyntaxError`)}if(n.protocol===`http:`?n.protocol=`ws:`:n.protocol===`https:`&&(n.protocol=`wss:`),n.protocol!==`ws:`&&n.protocol!==`wss:`)throw new DOMException(`expected a ws: or wss: url`,`SyntaxError`);if(n.hash.length||n.href.endsWith(`#`))throw new DOMException(`hash`,`SyntaxError`);return n}function w(e,t){if(e!==null&&e!==1e3&&(e<3e3||e>4999))throw new DOMException(`invalid code`,`InvalidAccessError`);if(t!==null){let e=Buffer.byteLength(t);if(e>123)throw new DOMException(`Reason must be less than 123 bytes; received ${e}`,`SyntaxError`)}}t.exports={isConnecting:c,isEstablished:l,isClosing:u,isClosed:d,fireEvent:f,isValidSubprotocol:h,isValidStatusCode:g,websocketMessageReceived:p,utf8Decode:(()=>{if(typeof process.versions.icu==`string`){let e=new TextDecoder(`utf-8`,{fatal:!0});return e.decode.bind(e)}return function(e){if(a(e))return e.toString(`utf-8`);throw TypeError(`Invalid utf-8 received.`)}})(),isControlFrame:_,isContinuationFrame:v,isTextBinaryFrame:y,isValidOpcode:b,parseExtensions:x,isValidClientWindowBits:S,toArrayBuffer:m,getURLRecord:C,validateCloseCodeAndReason:w}})),of=s(((e,t)=>{var{runtimeFeatures:n}=Ru(),{maxUnsigned16Bit:i,opcodes:a}=rf(),o=8192,s=null,c=o,l=n.has(`crypto`)?r(`node:crypto`).randomFillSync:null;function u(){return c===o&&(c=0,l(s??=Buffer.allocUnsafeSlow(o),0,o)),[s[c++],s[c++],s[c++],s[c++]]}t.exports={WebsocketFrameSend:class{constructor(e){this.frameData=e}createFrame(e){let t=this.frameData,n=u(),r=t?.byteLength??0,a=r,o=6;r>i?(o+=8,a=127):r>125&&(o+=2,a=126);let s=Buffer.allocUnsafe(r+o);s[0]=s[1]=0,s[0]|=128,s[0]=(s[0]&240)+e,s[o-4]=n[0],s[o-3]=n[1],s[o-2]=n[2],s[o-1]=n[3],s[1]=a,a===126?s.writeUInt16BE(r,2):a===127&&(s[2]=s[3]=0,s.writeUIntBE(r,4,6)),s[1]|=128;for(let e=0;e<r;++e)s[o+e]=t[e]^n[e&3];return s}static createFastTextFrame(e){let t=u(),n=e.length;for(let r=0;r<n;++r)e[r]^=t[r&3];let r=n,o=6;n>i?(o+=8,r=127):n>125&&(o+=2,r=126);let s=Buffer.allocUnsafeSlow(o);return s[0]=128|a.TEXT,s[1]=r|128,s[o-4]=t[0],s[o-3]=t[1],s[o-2]=t[2],s[o-1]=t[3],r===126?s.writeUInt16BE(n,2):r===127&&(s[2]=s[3]=0,s.writeUIntBE(n,4,6)),[s,e]}},generateMask:u}})),sf=s(((e,t)=>{var{uid:n,states:i,sentCloseFrameState:a,emptyBuffer:o,opcodes:s}=rf(),{parseExtensions:c,isClosed:l,isClosing:u,isEstablished:d,isConnecting:f,validateCloseCodeAndReason:p}=af(),{makeRequest:m}=Kd(),{fetching:h}=Jd(),{Headers:g,getHeadersList:_}=Wd(),{getDecodeSplit:v}=Lu(),{WebsocketFrameSend:y}=of(),b=r(`node:assert`),{runtimeFeatures:x}=Ru(),S=x.has(`crypto`)?r(`node:crypto`):null,C=!1;function w(e,t,r,i,a){let o=e;o.protocol=e.protocol===`ws:`?`http:`:`https:`;let s=m({urlList:[o],client:r,serviceWorkers:`none`,referrer:`no-referrer`,mode:`websocket`,credentials:`include`,cache:`no-store`,redirect:`error`,useURLCredentials:!0});a.headers&&(s.headersList=_(new g(a.headers)));let l=S.randomBytes(16).toString(`base64`);s.headersList.append(`sec-websocket-key`,l,!0),s.headersList.append(`sec-websocket-version`,`13`,!0);for(let e of t)s.headersList.append(`sec-websocket-protocol`,e,!0);return s.headersList.append(`sec-websocket-extensions`,`permessage-deflate; client_max_window_bits`,!0),h({request:s,useParallelQueue:!0,dispatcher:a.dispatcher,processResponse(e){if(e.type===`error`||e.status!==101){if(e.socket?.session==null){E(i,1002,`Received network error or non-101 status code.`,e.error);return}if(e.status!==200){E(i,1002,`Received network error or non-200 status code.`,e.error);return}}if(C===!1&&e.socket?.session!=null&&(process.emitWarning(`WebSocket over HTTP2 is experimental, and subject to change.`,`ExperimentalWarning`),C=!0),t.length!==0&&!e.headersList.get(`Sec-WebSocket-Protocol`)){E(i,1002,`Server did not respond with sent protocols.`);return}if(e.socket.session==null&&e.headersList.get(`Upgrade`)?.toLowerCase()!==`websocket`){E(i,1002,`Server did not set Upgrade header to "websocket".`);return}if(e.socket.session==null&&e.headersList.get(`Connection`)?.toLowerCase()!==`upgrade`){E(i,1002,`Server did not set Connection header to "upgrade".`);return}if(e.headersList.get(`Sec-WebSocket-Accept`)!==S.hash(`sha1`,l+n,`base64`)){E(i,1002,`Incorrect hash received in Sec-WebSocket-Accept header.`);return}let r=e.headersList.get(`Sec-WebSocket-Extensions`),a;if(r!==null&&(a=c(r),!a.has(`permessage-deflate`))){E(i,1002,`Sec-WebSocket-Extensions header does not match.`);return}let o=e.headersList.get(`Sec-WebSocket-Protocol`);if(o!==null&&!v(`sec-websocket-protocol`,s.headersList).includes(o)){E(i,1002,`Protocol was not set in the opening handshake.`);return}e.socket.on(`data`,i.onSocketData),e.socket.on(`close`,i.onSocketClose),e.socket.on(`error`,i.onSocketError),i.wasEverConnected=!0,i.onConnectionEstablished(e,a)}})}function T(e,t,n,r=!1){if(t??=null,n??=``,r&&p(t,n),!(l(e.readyState)||u(e.readyState))){if(!d(e.readyState))E(e),e.readyState=i.CLOSING;else if(!e.closeState.has(a.SENT)&&!e.closeState.has(a.RECEIVED)){let r=new y;n.length!==0&&t===null&&(t=1e3),b(t===null||Number.isInteger(t)),t===null&&n.length===0?r.frameData=o:t!==null&&n===null?(r.frameData=Buffer.allocUnsafe(2),r.frameData.writeUInt16BE(t,0)):t!==null&&n!==null?(r.frameData=Buffer.allocUnsafe(2+Buffer.byteLength(n)),r.frameData.writeUInt16BE(t,0),r.frameData.write(n,2,`utf-8`)):r.frameData=o,e.socket.write(r.createFrame(s.CLOSE)),e.closeState.add(a.SENT),e.readyState=i.CLOSING}else e.readyState=i.CLOSING}}function E(e,t,n,r){d(e.readyState)&&T(e,t,n,!1),e.controller.abort(),f(e.readyState)?e.onSocketClose():e.socket?.destroyed===!1&&e.socket.destroy()}t.exports={establishWebSocketConnection:w,failWebsocketConnection:E,closeWebSocketConnection:T}})),cf=s(((e,t)=>{var{createInflateRaw:n,Z_DEFAULT_WINDOWBITS:i}=r(`node:zlib`),{isValidClientWindowBits:a}=af(),{MessageSizeExceededError:o}=Q(),s=Buffer.from([0,0,255,255]),c=Symbol(`kBuffer`),l=Symbol(`kLength`);t.exports={PerMessageDeflate:class{#e;#t={};#n=0;constructor(e,t){this.#t.serverNoContextTakeover=e.has(`server_no_context_takeover`),this.#t.serverMaxWindowBits=e.get(`server_max_window_bits`),this.#n=t.maxPayloadSize}decompress(e,t,r){if(!this.#e){let e=i;if(this.#t.serverMaxWindowBits){if(!a(this.#t.serverMaxWindowBits)){r(Error(`Invalid server_max_window_bits`));return}e=Number.parseInt(this.#t.serverMaxWindowBits)}try{this.#e=n({windowBits:e})}catch(e){r(e);return}this.#e[c]=[],this.#e[l]=0,this.#e.on(`data`,e=>{if(this.#e[l]+=e.length,this.#n>0&&this.#e[l]>this.#n){r(new o),this.#e.removeAllListeners(),this.#e=null;return}this.#e[c].push(e)}),this.#e.on(`error`,e=>{this.#e=null,r(e)})}this.#e.write(e),t&&this.#e.write(s),this.#e.flush(()=>{if(!this.#e)return;let e=Buffer.concat(this.#e[c],this.#e[l]);this.#e[c].length=0,this.#e[l]=0,r(null,e)})}}}})),lf=s(((e,t)=>{var{Writable:n}=r(`node:stream`),i=r(`node:assert`),{parserStates:a,opcodes:o,states:s,emptyBuffer:c,sentCloseFrameState:l}=rf(),{isValidStatusCode:u,isValidOpcode:d,websocketMessageReceived:f,utf8Decode:p,isControlFrame:m,isTextBinaryFrame:h,isContinuationFrame:g}=af(),{failWebsocketConnection:_}=sf(),{WebsocketFrameSend:v}=of(),{PerMessageDeflate:y}=cf(),{MessageSizeExceededError:b}=Q();t.exports={ByteParser:class extends n{#e=[];#t=0;#n=0;#r=!1;#i=a.INFO;#a={};#o=[];#s;#c;#l;#u;constructor(e,t,n={}){super(),this.#c=e,this.#s=t??new Map,this.#l=n.maxFragments??0,this.#u=n.maxPayloadSize??0,this.#s.has(`permessage-deflate`)&&this.#s.set(`permessage-deflate`,new y(t,n))}_write(e,t,n){this.#e.push(e),this.#n+=e.length,this.#r=!0,this.run(n)}#d(){return this.#u>0&&!m(this.#a.opcode)&&this.#a.payloadLength+this.#t>this.#u?(_(this.#c,1009,`Payload size exceeds maximum allowed size`),!1):!0}run(e){for(;this.#r;)if(this.#i===a.INFO){if(this.#n<2)return e();let t=this.consume(2),n=!!(t[0]&128),r=t[0]&15,i=(t[1]&128)==128,s=!n&&r!==o.CONTINUATION,c=t[1]&127,l=t[0]&64,u=t[0]&32,f=t[0]&16;if(!d(r))return _(this.#c,1002,`Invalid opcode received`),e();if(i)return _(this.#c,1002,`Frame cannot be masked`),e();if(l!==0&&!this.#s.has(`permessage-deflate`)){_(this.#c,1002,`Expected RSV1 to be clear.`);return}if(u!==0||f!==0){_(this.#c,1002,`RSV1, RSV2, RSV3 must be clear`);return}if(s&&!h(r)){_(this.#c,1002,`Invalid frame type was fragmented.`);return}if(h(r)&&this.#o.length>0){_(this.#c,1002,`Expected continuation frame`);return}if(this.#a.fragmented&&s){_(this.#c,1002,`Fragmented frame exceeded 125 bytes.`);return}if((c>125||s)&&m(r)){_(this.#c,1002,`Control frame either too large or fragmented`);return}if(g(r)&&this.#o.length===0&&!this.#a.compressed){_(this.#c,1002,`Unexpected continuation frame`);return}if(c<=125){if(this.#a.payloadLength=c,this.#i=a.READ_DATA,!this.#d())return}else c===126?this.#i=a.PAYLOADLENGTH_16:c===127&&(this.#i=a.PAYLOADLENGTH_64);h(r)&&(this.#a.binaryType=r,this.#a.compressed=l!==0),this.#a.opcode=r,this.#a.masked=i,this.#a.fin=n,this.#a.fragmented=s}else if(this.#i===a.PAYLOADLENGTH_16){if(this.#n<2)return e();let t=this.consume(2);if(this.#a.payloadLength=t.readUInt16BE(0),this.#i=a.READ_DATA,!this.#d())return}else if(this.#i===a.PAYLOADLENGTH_64){if(this.#n<8)return e();let t=this.consume(8),n=t.readUInt32BE(0),r=t.readUInt32BE(4);if(n!==0||r>2**31-1){_(this.#c,1009,`Received payload length > 2^31 bytes.`);return}if(this.#a.payloadLength=r,this.#i=a.READ_DATA,!this.#d())return}else if(this.#i===a.READ_DATA){if(this.#n<this.#a.payloadLength)return e();let t=this.consume(this.#a.payloadLength);if(m(this.#a.opcode))this.#r=this.parseControlFrame(t),this.#i=a.INFO;else if(this.#a.compressed){this.#s.get(`permessage-deflate`).decompress(t,this.#a.fin,(t,n)=>{if(t){let e=t instanceof b?1009:1007;_(this.#c,e,t.message);return}if(this.writeFragments(n)){if(this.#u>0&&this.#t>this.#u){_(this.#c,1009,new b().message);return}if(!this.#a.fin){this.#i=a.INFO,this.#r=!0,this.run(e);return}f(this.#c,this.#a.binaryType,this.consumeFragments()),this.#r=!0,this.#i=a.INFO,this.run(e)}},this.#t),this.#r=!1;break}else{if(!this.writeFragments(t))return;!this.#a.fragmented&&this.#a.fin&&f(this.#c,this.#a.binaryType,this.consumeFragments()),this.#i=a.INFO}}}consume(e){if(e>this.#n)throw Error(`Called consume() before buffers satiated.`);if(e===0)return c;this.#n-=e;let t=this.#e[0];if(t.length>e)return this.#e[0]=t.subarray(e,t.length),t.subarray(0,e);if(t.length===e)return this.#e.shift();{let t=0,n=Buffer.allocUnsafeSlow(e);for(;t!==e;){let r=this.#e[0],i=r.length;if(i+t===e){n.set(this.#e.shift(),t);break}if(i+t>e){n.set(r.subarray(0,e-t),t),this.#e[0]=r.subarray(e-t);break}n.set(this.#e.shift(),t),t+=i}return n}}writeFragments(e){return this.#l>0&&this.#o.length===this.#l?(_(this.#c,1008,`Too many message fragments`),!1):(this.#t+=e.length,this.#o.push(e),!0)}consumeFragments(){let e=this.#o;if(e.length===1)return this.#t=0,e.shift();let t=0,n=Buffer.allocUnsafeSlow(this.#t);for(let r=0;r<e.length;++r){let i=e[r];n.set(i,t),t+=i.length}return this.#o=[],this.#t=0,n}parseCloseBody(e){i(e.length!==1);let t;if(e.length>=2&&(t=e.readUInt16BE(0)),t!==void 0&&!u(t))return{code:1002,reason:`Invalid status code`,error:!0};let n=e.subarray(2);n[0]===239&&n[1]===187&&n[2]===191&&(n=n.subarray(3));try{n=p(n)}catch{return{code:1007,reason:`Invalid UTF-8`,error:!0}}return{code:t,reason:n,error:!1}}parseControlFrame(e){let{opcode:t,payloadLength:n}=this.#a;if(t===o.CLOSE){if(n===1)return _(this.#c,1002,`Received close frame with a 1-byte body.`),!1;if(this.#a.closeInfo=this.parseCloseBody(e),this.#a.closeInfo.error){let{code:e,reason:t}=this.#a.closeInfo;return _(this.#c,e,t),!1}if(!this.#c.closeState.has(l.SENT)&&!this.#c.closeState.has(l.RECEIVED)){let e=c;this.#a.closeInfo.code&&(e=Buffer.allocUnsafe(2),e.writeUInt16BE(this.#a.closeInfo.code,0));let t=new v(e);this.#c.socket.write(t.createFrame(o.CLOSE)),this.#c.closeState.add(l.SENT)}return this.#c.readyState=s.CLOSING,this.#c.closeState.add(l.RECEIVED),!1}if(t===o.PING){if(!this.#c.closeState.has(l.RECEIVED)){let t=new v(e);this.#c.socket.write(t.createFrame(o.PONG)),this.#c.onPing(e)}}else t===o.PONG&&this.#c.onPong(e);return!0}get closingInfo(){return this.#a.closeInfo}}}})),uf=s(((e,t)=>{var{WebsocketFrameSend:n}=of(),{opcodes:r,sendHints:i}=rf(),a=Gu(),o=class{#e=new a;#t=!1;#n;constructor(e){this.#n=e}add(e,t,r){if(r!==i.blob){if(this.#t){let n={promise:null,callback:t,frame:s(e,r)};this.#e.push(n)}else if(r===i.text){let{0:r,1:i}=n.createFastTextFrame(e);this.#n.cork(),this.#n.write(r),this.#n.write(i,t),this.#n.uncork()}else this.#n.write(s(e,r),t);return}let a={promise:e.arrayBuffer().then(e=>{a.promise=null,a.frame=s(e,r)}),callback:t,frame:null};this.#e.push(a),this.#t||this.#r()}async#r(){this.#t=!0;let e=this.#e;for(;!e.isEmpty();){let t=e.shift();t.promise!==null&&await t.promise,this.#n.write(t.frame,t.callback),t.callback=t.frame=null}this.#t=!1}};function s(e,t){return new n(c(e,t)).createFrame(t===i.text?r.TEXT:r.BINARY)}function c(e,t){switch(t){case i.text:case i.typedArray:return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);case i.arrayBuffer:case i.blob:return new Uint8Array(e)}}t.exports={SendQueue:o}})),df=s(((e,t)=>{var{isArrayBuffer:n}=r(`node:util/types`),{webidl:i}=Iu(),{URLSerializer:a}=Fu(),{environmentSettingsObject:o}=Lu(),{staticPropertyDescriptors:s,states:c,sentCloseFrameState:l,sendHints:u,opcodes:d}=rf(),{isConnecting:f,isEstablished:p,isClosing:m,isClosed:h,isValidSubprotocol:g,fireEvent:_,utf8Decode:v,toArrayBuffer:y,getURLRecord:b}=af(),{establishWebSocketConnection:x,closeWebSocketConnection:S,failWebsocketConnection:C}=sf(),{ByteParser:w}=lf(),{kEnumerableProperty:T}=$(),{getGlobalDispatcher:E}=Ed(),{ErrorEvent:D,CloseEvent:O,createFastMessageEvent:k}=nf(),{SendQueue:A}=uf(),{WebsocketFrameSend:j}=of(),{channels:M}=Su(),N=Symbol.for(`nodejs.ref`),P=Symbol.for(`nodejs.unref`);function F(e){return typeof e?.address==`function`?e.address():typeof e?.session?.socket?.address==`function`?e.session.socket.address():null}var I=class e extends EventTarget{#e={open:null,error:null,close:null,message:null};#t=0;#n=``;#r=``;#i=!0;#a;#o={onConnectionEstablished:(e,t)=>this.#u(e,t),onMessage:(e,t)=>this.#d(e,t),onParserError:e=>C(this.#o,null,e.message),onParserDrain:()=>this.#f(),onSocketData:e=>{this.#l.write(e)||this.#o.socket.pause()},onSocketError:e=>{this.#o.readyState=c.CLOSING,M.socketError.hasSubscribers&&M.socketError.publish(e),this.#o.socket.destroy()},onSocketClose:()=>this.#p(),onPing:e=>{M.ping.hasSubscribers&&M.ping.publish({payload:e,websocket:this})},onPong:e=>{M.pong.hasSubscribers&&M.pong.publish({payload:e,websocket:this})},readyState:c.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#s;#c;#l;constructor(t,n=[]){super(),i.util.markAsUncloneable(this);let r=`WebSocket constructor`;i.argumentLengthCheck(arguments,1,r);let a=i.converters[`DOMString or sequence<DOMString> or WebSocketInit`](n,r,`options`);t=i.converters.USVString(t),n=a.protocols;let s=o.settingsObject.baseUrl,c=b(t,s);if(typeof n==`string`&&(n=[n]),n.length!==new Set(n.map(e=>e.toLowerCase())).size||n.length>0&&!n.every(e=>g(e)))throw new DOMException(`Invalid Sec-WebSocket-Protocol value`,`SyntaxError`);this.#s=new URL(c.href);let l=o.settingsObject;this.#o.controller=x(c,n,l,this.#o,a),this.#o.readyState=e.CONNECTING,this.#c=`blob`}[N](){i.brandCheck(this,e),this.#i=!0,this.#o.socket?.ref?.()}[P](){i.brandCheck(this,e),this.#i=!1,this.#o.socket?.unref?.()}close(t=void 0,n=void 0){i.brandCheck(this,e),t!==void 0&&(t=i.converters[`unsigned short`](t,`WebSocket.close`,`code`,i.attributes.Clamp)),n!==void 0&&(n=i.converters.USVString(n)),t??=null,n??=``,S(this.#o,t,n,!0)}send(t){i.brandCheck(this,e);let r=`WebSocket.send`;if(i.argumentLengthCheck(arguments,1,r),t=i.converters.WebSocketSendData(t,r,`data`),f(this.#o.readyState))throw new DOMException(`Sent before connected.`,`InvalidStateError`);if(p(this.#o.readyState)&&!m(this.#o.readyState)){if(typeof t==`string`){let e=Buffer.from(t);this.#t+=e.byteLength,this.#a.add(e,()=>{this.#t-=e.byteLength},u.text)}else n(t)?(this.#t+=t.byteLength,this.#a.add(t,()=>{this.#t-=t.byteLength},u.arrayBuffer)):ArrayBuffer.isView(t)?(this.#t+=t.byteLength,this.#a.add(t,()=>{this.#t-=t.byteLength},u.typedArray)):i.is.Blob(t)&&(this.#t+=t.size,this.#a.add(t,()=>{this.#t-=t.size},u.blob))}}get readyState(){return i.brandCheck(this,e),this.#o.readyState}get bufferedAmount(){return i.brandCheck(this,e),this.#t}get url(){return i.brandCheck(this,e),a(this.#s)}get extensions(){return i.brandCheck(this,e),this.#r}get protocol(){return i.brandCheck(this,e),this.#n}get onopen(){return i.brandCheck(this,e),this.#e.open}set onopen(t){i.brandCheck(this,e),this.#e.open&&this.removeEventListener(`open`,this.#e.open);let n=i.converters.EventHandlerNonNull(t);n===null?this.#e.open=null:(this.addEventListener(`open`,n),this.#e.open=t)}get onerror(){return i.brandCheck(this,e),this.#e.error}set onerror(t){i.brandCheck(this,e),this.#e.error&&this.removeEventListener(`error`,this.#e.error);let n=i.converters.EventHandlerNonNull(t);n===null?this.#e.error=null:(this.addEventListener(`error`,n),this.#e.error=t)}get onclose(){return i.brandCheck(this,e),this.#e.close}set onclose(t){i.brandCheck(this,e),this.#e.close&&this.removeEventListener(`close`,this.#e.close);let n=i.converters.EventHandlerNonNull(t);n===null?this.#e.close=null:(this.addEventListener(`close`,n),this.#e.close=t)}get onmessage(){return i.brandCheck(this,e),this.#e.message}set onmessage(t){i.brandCheck(this,e),this.#e.message&&this.removeEventListener(`message`,this.#e.message);let n=i.converters.EventHandlerNonNull(t);n===null?this.#e.message=null:(this.addEventListener(`message`,n),this.#e.message=t)}get binaryType(){return i.brandCheck(this,e),this.#c}set binaryType(t){i.brandCheck(this,e),this.#c=t!==`blob`&&t!==`arraybuffer`?`blob`:t}#u(e,t){this.#o.socket=e.socket,this.#i||this.#o.socket.unref?.();let n=this.#o.controller.dispatcher?.webSocketOptions?.maxFragments,r=this.#o.controller.dispatcher?.webSocketOptions?.maxPayloadSize,i=new w(this.#o,t,{maxFragments:n,maxPayloadSize:r});i.on(`drain`,()=>this.#o.onParserDrain()),i.on(`error`,e=>this.#o.onParserError(e)),this.#l=i,this.#a=new A(e.socket),this.#o.readyState=c.OPEN;let a=e.headersList.get(`sec-websocket-extensions`);a!==null&&(this.#r=a);let o=e.headersList.get(`sec-websocket-protocol`);if(o!==null&&(this.#n=o),_(`open`,this),M.open.hasSubscribers){let t=e.headersList.entries;M.open.publish({address:F(e.socket),protocol:this.#n,extensions:this.#r,websocket:this,handshakeResponse:{status:e.status,statusText:e.statusText,headers:t}})}}#d(e,t){if(this.#o.readyState!==c.OPEN)return;let n;if(e===d.TEXT)try{n=v(t)}catch{C(this.#o,1007,`Received invalid UTF-8 in text frame.`);return}else e===d.BINARY&&(n=this.#c===`blob`?new Blob([t]):y(t));_(`message`,this,k,{origin:this.#s.origin,data:n})}#f(){this.#o.socket.resume()}#p(){let e=this.#o.closeState.has(l.SENT)&&this.#o.closeState.has(l.RECEIVED),t=1005,n=``,r=this.#l?.closingInfo;r&&!r.error&&(t=r.code??1005,n=r.reason),this.#o.readyState=c.CLOSED,this.#o.closeState.has(l.RECEIVED)||(t=1006,_(`error`,this,(e,t)=>new D(e,t),{error:TypeError(n)})),_(`close`,this,(e,t)=>new O(e,t),{wasClean:e,code:t,reason:n}),M.close.hasSubscribers&&M.close.publish({websocket:this,code:t,reason:n})}static ping(e,t){if(Buffer.isBuffer(t)){if(t.length>125)throw TypeError(`A PING frame cannot have a body larger than 125 bytes.`)}else if(t!==void 0)throw TypeError(`Expected buffer payload`);let n=e.#o.readyState;if(p(n)&&!m(n)&&!h(n)){let n=new j(t);e.#o.socket.write(n.createFrame(d.PING))}}},{ping:L}=I;Reflect.deleteProperty(I,`ping`),I.CONNECTING=I.prototype.CONNECTING=c.CONNECTING,I.OPEN=I.prototype.OPEN=c.OPEN,I.CLOSING=I.prototype.CLOSING=c.CLOSING,I.CLOSED=I.prototype.CLOSED=c.CLOSED,Object.defineProperties(I.prototype,{CONNECTING:s,OPEN:s,CLOSING:s,CLOSED:s,url:T,readyState:T,bufferedAmount:T,onopen:T,onerror:T,onclose:T,close:T,onmessage:T,binaryType:T,send:T,extensions:T,protocol:T,[Symbol.toStringTag]:{value:`WebSocket`,writable:!1,enumerable:!1,configurable:!0}}),Object.defineProperties(I,{CONNECTING:s,OPEN:s,CLOSING:s,CLOSED:s}),i.converters[`sequence<DOMString>`]=i.sequenceConverter(i.converters.DOMString),i.converters[`DOMString or sequence<DOMString>`]=function(e,t,n){return i.util.Type(e)===i.util.Types.OBJECT&&Symbol.iterator in e?i.converters[`sequence<DOMString>`](e):i.converters.DOMString(e,t,n)},i.converters.WebSocketInit=i.dictionaryConverter([{key:`protocols`,converter:i.converters[`DOMString or sequence<DOMString>`],defaultValue:()=>[]},{key:`dispatcher`,converter:i.converters.any,defaultValue:()=>E()},{key:`headers`,converter:i.nullableConverter(i.converters.HeadersInit)}]),i.converters[`DOMString or sequence<DOMString> or WebSocketInit`]=function(e){return i.util.Type(e)===i.util.Types.OBJECT&&!(Symbol.iterator in e)?i.converters.WebSocketInit(e):{protocols:i.converters[`DOMString or sequence<DOMString>`](e)}},i.converters.WebSocketSendData=function(e){return i.util.Type(e)===i.util.Types.OBJECT&&(i.is.Blob(e)||i.is.BufferSource(e))?e:i.converters.USVString(e)},t.exports={WebSocket:I,ping:L}})),ff=s(((e,t)=>{var{webidl:n}=Iu(),{validateCloseCodeAndReason:r}=af(),{kConstruct:i}=Z(),{kEnumerableProperty:a}=$();function o(){class e extends DOMException{get reason(){return``}}return new e().reason===void 0?new Proxy(DOMException,{construct(e,t,n){let r=Reflect.construct(e,t,e);return Object.setPrototypeOf(r,n.prototype),r}}):DOMException}var s=class e extends o(){#e;#t;constructor(e=``,t=void 0){if(e=n.converters.DOMString(e,`WebSocketError`,`message`),super(e,`WebSocketError`),t===i)return;t!==null&&(t=n.converters.WebSocketCloseInfo(t));let a=t.closeCode??null,o=t.reason??``;r(a,o),o.length!==0&&a===null&&(a=1e3),this.#e=a,this.#t=o}get closeCode(){return this.#e}get reason(){return this.#t}static createUnvalidatedWebSocketError(t,n,r){let a=new e(t,i);return a.#e=n,a.#t=r,a}},{createUnvalidatedWebSocketError:c}=s;delete s.createUnvalidatedWebSocketError,Object.defineProperties(s.prototype,{closeCode:a,reason:a,[Symbol.toStringTag]:{value:`WebSocketError`,writable:!1,enumerable:!1,configurable:!0}}),n.is.WebSocketError=n.util.MakeTypeAssertion(s),t.exports={WebSocketError:s,createUnvalidatedWebSocketError:c}})),pf=s(((e,t)=>{var{addAbortListener:n}=r(`node:events`),{environmentSettingsObject:i,readableStreamClose:a}=Lu(),{states:o,opcodes:s,sentCloseFrameState:c}=rf(),{webidl:l}=Iu(),{getURLRecord:u,isValidSubprotocol:d,isEstablished:f,utf8Decode:p}=af(),{establishWebSocketConnection:m,failWebsocketConnection:h,closeWebSocketConnection:g}=sf(),{channels:_}=Su(),{WebsocketFrameSend:v}=of(),{ByteParser:y}=lf(),{WebSocketError:b,createUnvalidatedWebSocketError:x}=ff(),{kEnumerableProperty:S}=$(),{utf8DecodeBytes:C}=Nu(),w=!1,T=class{#e;#t;#n;#r;#i;#a;#o=!1;#s={onConnectionEstablished:(e,t)=>this.#u(e,t),onMessage:(e,t)=>this.#d(e,t),onParserError:e=>h(this.#s,null,e.message),onParserDrain:()=>this.#s.socket.resume(),onSocketData:e=>{this.#c.write(e)||this.#s.socket.pause()},onSocketError:e=>{this.#s.readyState=o.CLOSING,_.socketError.hasSubscribers&&_.socketError.publish(e),this.#s.socket.destroy()},onSocketClose:()=>this.#f(),onPing:()=>{},onPong:()=>{},readyState:o.CONNECTING,socket:null,closeState:new Set,controller:null,wasEverConnected:!1};#c;constructor(e,t=void 0){w||=(process.emitWarning(`WebSocketStream is experimental! Expect it to change at any time.`,{code:`UNDICI-WSS`}),!0),l.argumentLengthCheck(arguments,1,`WebSocket`),e=l.converters.USVString(e),t!==null&&(t=l.converters.WebSocketStreamOptions(t));let r=i.settingsObject.baseUrl,a=u(e,r),s=t.protocols;if(s.length!==new Set(s.map(e=>e.toLowerCase())).size||s.length>0&&!s.every(e=>d(e)))throw new DOMException(`Invalid Sec-WebSocket-Protocol value`,`SyntaxError`);if(this.#e=a.toString(),this.#t=Promise.withResolvers(),this.#n=Promise.withResolvers(),t.signal!=null){let e=t.signal;if(e.aborted){this.#t.reject(e.reason),this.#n.reject(e.reason);return}n(e,()=>{f(this.#s.readyState)||(h(this.#s),this.#s.readyState=o.CLOSING,this.#t.reject(e.reason),this.#n.reject(e.reason),this.#o=!0)})}let c=i.settingsObject;this.#s.controller=m(a,s,c,this.#s,t)}get url(){return this.#e.toString()}get opened(){return this.#t.promise}get closed(){return this.#n.promise}close(e=void 0){e!==null&&(e=l.converters.WebSocketCloseInfo(e));let t=e.closeCode??null,n=e.reason;g(this.#s,t,n,!0)}#l(e){e=l.converters.WebSocketStreamWrite(e);let t=Promise.withResolvers(),n=null,r=null;if(l.is.BufferSource(e))n=new Uint8Array(ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e.slice()),r=s.BINARY;else{let i;try{i=l.converters.DOMString(e)}catch(e){return t.reject(e),t.promise}n=new TextEncoder().encode(i),r=s.TEXT}if(!this.#s.closeState.has(c.SENT)&&!this.#s.closeState.has(c.RECEIVED)){let e=new v(n);this.#s.socket.write(e.createFrame(r),()=>{t.resolve(void 0)})}return t.promise}#u(e,t){this.#s.socket=e.socket;let n=this.#s.controller.dispatcher?.webSocketOptions?.maxFragments,r=this.#s.controller.dispatcher?.webSocketOptions?.maxPayloadSize,i=new y(this.#s,t,{maxFragments:n,maxPayloadSize:r});i.on(`drain`,()=>this.#s.onParserDrain()),i.on(`error`,e=>this.#s.onParserError(e)),this.#c=i,this.#s.readyState=o.OPEN;let a=t??``,s=e.headersList.get(`sec-websocket-protocol`)??``,c=new ReadableStream({start:e=>{this.#i=e},cancel:e=>this.#m(e)}),l=new WritableStream({write:e=>this.#l(e),close:()=>g(this.#s,null,null),abort:e=>this.#p(e)});this.#r=c,this.#a=l,this.#t.resolve({extensions:a,protocol:s,readable:c,writable:l})}#d(e,t){if(this.#s.readyState!==o.OPEN)return;let n;if(e===s.TEXT)try{n=p(t)}catch{h(this.#s,1007,`Received invalid UTF-8 in text frame.`);return}else e===s.BINARY&&(n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength));this.#i.enqueue(n)}#f(){let e=this.#s.closeState.has(c.SENT)&&this.#s.closeState.has(c.RECEIVED);if(this.#s.readyState=o.CLOSED,this.#o)return;this.#s.wasEverConnected||this.#t.reject(new b(`Socket never opened`));let t=this.#c?.closingInfo,n=t?.code??1005;!this.#s.closeState.has(c.SENT)&&!this.#s.closeState.has(c.RECEIVED)&&(n=1006);let r=t?.reason==null?``:C(Buffer.from(t.reason));if(e)a(this.#i),this.#a.locked||this.#a.abort(new DOMException(`A closed WebSocketStream cannot be written to`,`InvalidStateError`)),this.#n.resolve({closeCode:n,reason:r});else{let e=x(`unclean close`,n,r);this.#i?.error(e),this.#a?.abort(e),this.#n.reject(e)}}#p(e){let t=null,n=``;l.is.WebSocketError(e)&&(t=e.closeCode,n=e.reason),g(this.#s,t,n)}#m(e){this.#p(e)}};Object.defineProperties(T.prototype,{url:S,opened:S,closed:S,close:S,[Symbol.toStringTag]:{value:`WebSocketStream`,writable:!1,enumerable:!1,configurable:!0}}),l.converters.WebSocketStreamOptions=l.dictionaryConverter([{key:`protocols`,converter:l.sequenceConverter(l.converters.USVString),defaultValue:()=>[]},{key:`signal`,converter:l.nullableConverter(l.converters.AbortSignal),defaultValue:()=>null}]),l.converters.WebSocketCloseInfo=l.dictionaryConverter([{key:`closeCode`,converter:e=>l.converters[`unsigned short`](e,l.attributes.EnforceRange)},{key:`reason`,converter:l.converters.USVString,defaultValue:()=>``}]),l.converters.WebSocketStreamWrite=function(e){return typeof e==`string`?l.converters.USVString(e):l.converters.BufferSource(e)},t.exports={WebSocketStream:T}})),mf=s(((e,t)=>{var{makeRequest:n}=Kd();function r(e){return e.indexOf(`\0`)===-1}function i(e){if(e.length===0)return!1;for(let t=0;t<e.length;t++)if(e.charCodeAt(t)<48||e.charCodeAt(t)>57)return!1;return!0}function a(e,t,r,i){let a=r===`no cors`?`no-cors`:`cors`;i&&a===`no-cors`&&(a=`same-origin`);let o=`include`;return r===`anonymous`&&(o=`same-origin`),n({urlList:[e],destination:t,mode:a,credentials:o,useURLCredentials:!0})}t.exports={isValidLastEventId:r,isASCIINumber:i,createPotentialCORSRequest:a}})),hf=s(((e,t)=>{var n=r(`node:buffer`),{Transform:i}=r(`node:stream`),{isASCIINumber:a,isValidLastEventId:o}=mf(),s=[239,187,191],c=10,l=13,u=58,d=32,f=n.kStringMaxLength,p=Buffer.from(`data`),m=Buffer.from(`event`),h=Buffer.from(`id`),g=Buffer.from(`retry`);function _(e,t){if(t>=e.length)return!1;for(let n=t;n<e.length;n++)if(e[n]<48||e[n]>57)return!1;return!0}function v(e,t){for(let n=t;n<e.length;n++)if(e[n]===0)return!1;return!0}function y(e,t,n){if(t!==n.length)return!1;for(let r=0;r<t;r++)if(e[r]!==n[r])return!1;return!0}function b(){let e=Error(`EventSource message size exceeded`);return e.aborted=!1,e}t.exports={EventSourceStream:class extends i{state;checkBOM=!0;crlfCheck=!1;eventEndCheck=!1;chunks=[];chunkIndex=0;pos=0;lineChunkIndex=0;linePos=0;eventDataSize=0;maxEventSize;event={data:void 0,event:void 0,id:void 0,retry:void 0};constructor(e={}){e.readableObjectMode=!0,super(e),this.state=e.eventSourceSettings||{},this.maxEventSize=e.maxEventSize??f,e.push&&(this.push=e.push)}_transform(e,t,n){if(e.length===0){n();return}if(this.chunks.push(e),this.checkBOM&&this.handleBOM()){n();return}for(;this.hasCurrentByte();){let e=this.currentByte();if(this.eventEndCheck){if(this.crlfCheck){if(e===c){this.crlfCheck=!1,this.consumeCurrentByte();continue}this.crlfCheck=!1}if(e===c||e===l){e===l&&(this.crlfCheck=!0),this.consumeCurrentByte(),this.hasPendingEvent()&&this.processEvent(this.event),this.clearEvent();continue}this.eventEndCheck=!1;continue}if(e===c||e===l){e===l&&(this.crlfCheck=!0);try{this.parseLine(this.readLine(),this.event)}catch(e){n(e);return}this.consumeCurrentByte(),this.eventEndCheck=!0;continue}this.advanceCursor()}n()}parseLine(e,t){if(e.length===0)return;let n=e.indexOf(u);if(n===0)return;let r=e.length,i=e.length;if(n!==-1&&(r=n,i=n+1,e[i]===d&&++i),y(e,r,p)){let n=e.length-i,r=this.eventDataSize+(t.data===void 0?0:1)+n;if(this.maxEventSize>0&&r>this.maxEventSize)throw b();let a=e.toString(`utf8`,i);t.data===void 0?t.data=a:t.data+=`\n${a}`,this.eventDataSize=r;return}if(y(e,r,g)){_(e,i)&&(t.retry=e.toString(`utf8`,i));return}if(y(e,r,h)){v(e,i)&&(t.id=e.toString(`utf8`,i));return}if(y(e,r,m)){let n=e.toString(`utf8`,i);n.length>0&&(t.event=n)}}processEvent(e){e.retry&&a(e.retry)&&(this.state.reconnectionTime=parseInt(e.retry,10)),e.id!==void 0&&o(e.id)&&(this.state.lastEventId=e.id),e.data!==void 0&&this.push({type:e.event||`message`,options:{data:e.data,lastEventId:this.state.lastEventId,origin:this.state.origin}})}clearEvent(){this.event.data=void 0,this.event.event=void 0,this.event.id=void 0,this.event.retry=void 0,this.eventDataSize=0}hasPendingEvent(){return this.event.data!==void 0||this.event.event!==void 0||this.event.id!==void 0||this.event.retry!==void 0}hasCurrentByte(){return this.chunkIndex<this.chunks.length&&this.pos<this.chunks[this.chunkIndex].length}currentByte(){return this.chunks[this.chunkIndex][this.pos]}consumeCurrentByte(){this.advanceCursor(),this.syncLineStartToCursor()}advanceCursor(){for(this.pos++;this.chunkIndex<this.chunks.length&&this.pos>=this.chunks[this.chunkIndex].length;)this.chunkIndex++,this.pos=0}syncLineStartToCursor(){this.lineChunkIndex=this.chunkIndex,this.linePos=this.pos,this.dropConsumedChunks()}dropConsumedChunks(){for(;this.lineChunkIndex>0;)this.chunks.shift(),this.lineChunkIndex--,this.chunkIndex--;this.chunkIndex===this.chunks.length&&(this.chunks.length=0,this.chunkIndex=0,this.pos=0,this.lineChunkIndex=0,this.linePos=0)}readLine(){if(this.lineChunkIndex===this.chunkIndex)return this.chunks[this.chunkIndex].subarray(this.linePos,this.pos);let e=[],t=0;for(let n=this.lineChunkIndex;n<=this.chunkIndex;n++){let r=this.chunks[n],i=n===this.lineChunkIndex?this.linePos:0,a=n===this.chunkIndex?this.pos:r.length,o=r.subarray(i,a);t+=o.length,e.push(o)}return Buffer.concat(e,t)}peekBufferedByte(e){let t=this.lineChunkIndex,n=this.linePos;for(;t<this.chunks.length;){let r=this.chunks[t],i=r.length-n;if(e<i)return r[n+e];e-=i,t++,n=0}}discardLeadingBytes(e){for(;e>0&&this.lineChunkIndex<this.chunks.length;){let t=this.chunks[this.lineChunkIndex].length-this.linePos;e<t?(this.linePos+=e,e=0):(e-=t,this.lineChunkIndex++,this.linePos=0)}this.chunkIndex=this.lineChunkIndex,this.pos=this.linePos,this.dropConsumedChunks()}handleBOM(){let e=this.peekBufferedByte(0),t=this.peekBufferedByte(1),n=this.peekBufferedByte(2);return t===void 0?(e===s[0]||(this.checkBOM=!1),!0):n===void 0?e===s[0]&&t===s[1]||(this.checkBOM=!1,!1):(e===s[0]&&t===s[1]&&n===s[2]&&this.discardLeadingBytes(3),this.checkBOM=!1,!this.hasCurrentByte())}}}})),gf=s(((e,t)=>{var{pipeline:n}=r(`node:stream`),{fetching:i}=Jd(),{webidl:a}=Iu(),{EventSourceStream:o}=hf(),{parseMIMEType:s}=Fu(),{createFastMessageEvent:c}=nf(),{isNetworkError:l}=Gd(),{kEnumerableProperty:u}=$(),{environmentSettingsObject:d}=Lu(),{createPotentialCORSRequest:f}=mf(),{getGlobalDispatcher:p}=Ed(),m=!1,h=3e3,g=0,_=1,v=2,y=`anonymous`,b=`use-credentials`,x=class e extends EventTarget{#e={open:null,error:null,message:null};#t;#n=!1;#r=g;#i=null;#a=null;#o;#s;constructor(e,t={}){super(),a.util.markAsUncloneable(this);let n=`EventSource constructor`;a.argumentLengthCheck(arguments,1,n),m||(m=!0,process.emitWarning(`EventSource is experimental, expect them to change at any time.`,{code:`UNDICI-ES`})),e=a.converters.USVString(e),t=a.converters.EventSourceInitDict(t,n,`eventSourceInitDict`),this.#o=t.node.dispatcher||t.dispatcher,this.#s={lastEventId:``,reconnectionTime:t.node.reconnectionTime};let r=d,i;try{i=new URL(e,r.settingsObject.baseUrl),this.#s.origin=i.origin}catch(e){throw new DOMException(e,`SyntaxError`)}this.#t=i.href;let o=y;t.withCredentials===!0&&(o=b,this.#n=!0);let s=f(i,``,o);s.client=d.settingsObject,s.headersList.set(`Accept`,`text/event-stream`),s.cache=`no-store`,s.initiator=`other`,this.#i=s,this.#c()}get readyState(){return this.#r}get url(){return this.#t}get withCredentials(){return this.#n}#c(){if(this.#r===v)return;this.#r=g;let e={request:this.#i,dispatcher:this.#o};e.processResponseEndOfBody=e=>{if(!l(e))return this.#l()},e.processResponse=e=>{if(l(e)){if(e.aborted){this.close(),this.dispatchEvent(new Event(`error`));return}this.#l();return}let t=e.headersList.get(`content-type`,!0),r=t===null?`failure`:s(t),i=r!==`failure`&&r.essence===`text/event-stream`;if(e.status!==200||i===!1){this.close(),this.dispatchEvent(new Event(`error`));return}this.#r=_,this.dispatchEvent(new Event(`open`)),this.#s.origin=e.urlList[e.urlList.length-1].origin;let a=new o({eventSourceSettings:this.#s,maxEventSize:this.#o.eventSourceOptions?.maxEventSize,push:e=>{this.dispatchEvent(c(e.type,e.options))}});n(e.body.stream,a,e=>{e?.aborted===!1&&(this.close(),this.dispatchEvent(new Event(`error`)))})},this.#a=i(e)}#l(){this.#r!==v&&(this.#r=g,this.dispatchEvent(new Event(`error`)),setTimeout(()=>{this.#r===g&&(this.#s.lastEventId.length&&this.#i.headersList.set(`last-event-id`,this.#s.lastEventId,!0),this.#c())},this.#s.reconnectionTime)?.unref())}close(){a.brandCheck(this,e),this.#r!==v&&(this.#r=v,this.#a.abort(),this.#i=null)}get onopen(){return this.#e.open}set onopen(e){this.#e.open&&this.removeEventListener(`open`,this.#e.open);let t=a.converters.EventHandlerNonNull(e);t===null?this.#e.open=null:(this.addEventListener(`open`,t),this.#e.open=e)}get onmessage(){return this.#e.message}set onmessage(e){this.#e.message&&this.removeEventListener(`message`,this.#e.message);let t=a.converters.EventHandlerNonNull(e);t===null?this.#e.message=null:(this.addEventListener(`message`,t),this.#e.message=e)}get onerror(){return this.#e.error}set onerror(e){this.#e.error&&this.removeEventListener(`error`,this.#e.error);let t=a.converters.EventHandlerNonNull(e);t===null?this.#e.error=null:(this.addEventListener(`error`,t),this.#e.error=e)}},S={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:g,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:_,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:v,writable:!1}};Object.defineProperties(x,S),Object.defineProperties(x.prototype,S),Object.defineProperties(x.prototype,{close:u,onerror:u,onmessage:u,onopen:u,readyState:u,url:u,withCredentials:u}),a.converters.EventSourceInitDict=a.dictionaryConverter([{key:`withCredentials`,converter:a.converters.boolean,defaultValue:()=>!1},{key:`dispatcher`,converter:a.converters.any,defaultValue:()=>p()},{key:`node`,converter:a.dictionaryConverter([{key:`reconnectionTime`,converter:a.converters[`unsigned long`],defaultValue:()=>h},{key:`dispatcher`,converter:a.converters.any}]),defaultValue:()=>({})}]),t.exports={EventSource:x,defaultReconnectionTime:h}})),_f=s(((e,t)=>{var n=Wu(),r=wu(),i=qu(),a=Ju(),o=Yu(),s=Xu(),c=Zu(),l=td(),u=ed(),d=nd(),f=id(),p=ad(),m=Q(),h=$(),{InvalidArgumentError:g}=m,_=pd(),v=Eu(),y=vd(),{MockCallHistory:b,MockCallHistoryLog:x}=yd(),S=Sd(),C=bd(),w=Td(),T=md(),E=rd(),{getGlobalDispatcher:D,setGlobalDispatcher:O}=Ed(),k=Dd(),A=Od();Object.assign(r.prototype,_),t.exports.Dispatcher=r,t.exports.Client=n,t.exports.Pool=i,t.exports.BalancedPool=a,t.exports.RoundRobinPool=o,t.exports.Agent=s,t.exports.Dispatcher1Wrapper=c,t.exports.ProxyAgent=l,t.exports.Socks5ProxyAgent=u,t.exports.EnvHttpProxyAgent=d,t.exports.RetryAgent=f,t.exports.H2CClient=p,t.exports.RetryHandler=E,t.exports.DecoratorHandler=k,t.exports.RedirectHandler=A,t.exports.interceptors={redirect:kd(),responseError:Ad(),retry:jd(),dump:Md(),dns:Nd(),cache:zd(),decompress:Bd(),deduplicate:Hd()},t.exports.cacheStores={MemoryCacheStore:Ld()};var j=Ud();t.exports.cacheStores.SqliteCacheStore=j,t.exports.buildConnector=v,t.exports.errors=m,t.exports.util={parseHeaders:h.parseHeaders,headerNameToString:h.headerNameToString};function M(e){return(t,n,r)=>{if(typeof n==`function`&&(r=n,n=null),!t||typeof t!=`string`&&typeof t!=`object`&&!(t instanceof URL))throw new g(`invalid url`);if(n!=null&&typeof n!=`object`)throw new g(`invalid opts`);if(n&&n.path!=null){if(typeof n.path!=`string`)throw new g(`invalid opts.path`);let e=n.path;n.path.startsWith(`/`)||(e=`/${e}`),t=new URL(h.parseOrigin(t).origin+e)}else n||=typeof t==`object`?t:{},t=h.parseURL(t);let{agent:i,dispatcher:a=D(),...o}=n;if(i)throw new g(`unsupported opts.agent. Did you mean opts.client?`);return e.call(a,{...o,origin:t.origin,path:t.search?`${t.pathname}${t.search}`:t.pathname,method:n.method||(n.body?`PUT`:`GET`)},r)}}t.exports.setGlobalDispatcher=O,t.exports.getGlobalDispatcher=D;var N=Jd().fetch,P=typeof __filename<`u`?__filename:void 0;function F(e,t){if(!e||typeof e!=`object`)return;let n=typeof e.stack==`string`?e.stack:``,r=t.replace(/\\/g,`/`);if(n&&(n.includes(t)||n.includes(r)))return;let i={};if(Error.captureStackTrace(i,F),!i.stack)return;let a=i.stack.split(`
|
|
113
|
+
`).slice(1).join(`
|
|
114
|
+
`);e.stack=n?`${n}\n${a}`:i.stack}t.exports.fetch=function(e,n=void 0){return N(e,n).catch(e=>{throw P?F(e,P):e&&typeof e==`object`&&Error.captureStackTrace(e,t.exports.fetch),e})},t.exports.Headers=Wd().Headers,t.exports.Response=Gd().Response,t.exports.Request=Kd().Request,t.exports.FormData=zu().FormData;var{setGlobalOrigin:I,getGlobalOrigin:L}=Mu();t.exports.setGlobalOrigin=I,t.exports.getGlobalOrigin=L;var{CacheStorage:R}=Zd(),{kConstruct:z}=Z();t.exports.caches=new R(z);var{deleteCookie:ee,getCookies:B,getSetCookies:te,setCookie:V,parseCookie:ne}=tf();t.exports.deleteCookie=ee,t.exports.getCookies=B,t.exports.getSetCookies=te,t.exports.setCookie=V,t.exports.parseCookie=ne;var{parseMIMEType:H,serializeAMimeType:U}=Fu();t.exports.parseMIMEType=H,t.exports.serializeAMimeType=U;var{CloseEvent:W,ErrorEvent:G,MessageEvent:re}=nf(),{WebSocket:K,ping:ie}=df();t.exports.WebSocket=K,t.exports.CloseEvent=W,t.exports.ErrorEvent=G,t.exports.MessageEvent=re,t.exports.ping=ie,t.exports.WebSocketStream=pf().WebSocketStream,t.exports.WebSocketError=ff().WebSocketError,t.exports.request=M(_.request),t.exports.stream=M(_.stream),t.exports.pipeline=M(_.pipeline),t.exports.connect=M(_.connect),t.exports.upgrade=M(_.upgrade),t.exports.MockClient=y,t.exports.MockCallHistory=b,t.exports.MockCallHistoryLog=x,t.exports.MockPool=C,t.exports.MockAgent=S,t.exports.SnapshotAgent=w,t.exports.mockErrors=T;var{EventSource:ae}=gf();t.exports.EventSource=ae;function oe(){globalThis.fetch=t.exports.fetch,globalThis.Headers=t.exports.Headers,globalThis.Response=t.exports.Response,globalThis.Request=t.exports.Request,globalThis.FormData=t.exports.FormData,globalThis.WebSocket=t.exports.WebSocket,globalThis.CloseEvent=t.exports.CloseEvent,globalThis.ErrorEvent=t.exports.ErrorEvent,globalThis.MessageEvent=t.exports.MessageEvent,globalThis.EventSource=t.exports.EventSource}t.exports.install=oe}))(),vf={get:`GET`,post:`POST`,put:`PUT`,patch:`PATCH`,delete:`DELETE`},yf=e=>vf[e],bf=/(?:authorization|api-key|secret|token)/iu,xf=/^x-cli-[a-z0-9-]*secret$/iu,Sf=/^Bearer\s+\S+/iu,Cf=11e4,wf=new Map;function Tf(e){let t=wf.get(e);if(t!==void 0)return t;let n=new _f.Dispatcher1Wrapper(new _f.Agent({headersTimeout:e,bodyTimeout:e}));return wf.set(e,n),n}function Ef(e,t){if(typeof t!=`object`||!t)return{status:e,title:`HTTP ${e}`,type:`about:blank`,code:void 0,detail:typeof t==`string`?t:void 0};let n=t,r=typeof n.status==`number`?n.status:e;return{...n,status:r,title:typeof n.title==`string`?n.title:`HTTP ${r}`,type:typeof n.type==`string`?n.type:`about:blank`,detail:typeof n.detail==`string`?n.detail:void 0}}function Df(e,t,n=[]){return X(`${e}: ${t.status} ${t.title}`,[...n],{httpStatus:t.status,problem:t})}function Of(e,t){if(kf(t))return{status:e.status,title:`CLI authorization broker request failed`};let n=Af(t),r={};for(let[t,i]of Object.entries(e))i!=null&&(r[t]=typeof i==`object`?jf(JSON.stringify(i),n):typeof i==`string`?jf(i,n):i);return r}function kf(e){return Object.keys(e).some(e=>xf.test(e))}function Af(e){let t=[];for(let[n,r]of Object.entries(e)){if(!bf.test(n))continue;let e=r.trim();if(e.length===0)continue;t.push(e);let i=e.indexOf(` `);if(i>0){let n=e.slice(i+1).trim();n.length>0&&t.push(n)}}return t}function jf(e,t){let n=e;for(let e of t)e!=null&&e.length>0&&(n=n.replaceAll(e,`<redacted>`));return n}function Mf(e,t){if(kf(t))return{status:e.status,title:`CLI authorization broker request failed`,type:`about:blank`,detail:`Broker diagnostic text was suppressed at the CLI credential boundary.`,...Nf(e)};if(!Pf(t))return e;let n=Af(t);return{status:e.status,title:jf(e.title,n),type:jf(e.type,n),...e.detail===void 0?{}:{detail:jf(e.detail,n)},...e.code===void 0?{}:{code:e.code},...Nf(e)}}function Nf(e){let t=e.retryAfterSeconds;return typeof t!=`number`||!Number.isInteger(t)||t<=0?{}:{retryAfterSeconds:t}}function Pf(e){return Object.entries(e).some(([e,t])=>e.toLowerCase()===`authorization`&&Sf.test(t))}function Ff(e){let t=[],n=[];for(let[r,i]of Object.entries(e)){let e=r.toLowerCase();(e===`warning`||e.startsWith(`x-contract-warning-`))&&(t.push(`${If(e)}: ${i}`),e===`x-contract-warning-key`&&n.push(i))}return{warnings:t,omitted:n}}function If(e){return e===`warning`?`Warning`:e.split(`-`).map(e=>e===`x`?`X`:`${e[0]?.toUpperCase()??``}${e.slice(1)}`).join(`-`)}async function Lf(e,t,n){let r=Number(process.env.AVENTURE_API_REQUEST_TIMEOUT_MS),i=Number.isInteger(r)&&r>0?r:Cf,a=zf(e.host,t.path,t.searchParams),o={Accept:`application/json`,"User-Agent":ys(),...t.headers},s=t.body instanceof FormData?t.body:t.body===void 0?void 0:JSON.stringify(t.body);s!==void 0&&t.contentType!==void 0&&(o[`Content-Type`]=t.contentType);let c=performance.now();ic({component:`aventure-api-client`,event:`request`,fields:{method:t.method,host:e.host,path:t.path,hasBody:t.body!==void 0}});let l,u=t.method===`GET`?2:1;try{l=await Rf(a,t,o,s,i,u)}catch(n){throw oc({component:`aventure-api-client`,event:`request_failed`,message:sc(n),fields:{method:t.method,host:e.host,path:t.path,timeoutMs:i,...cc(n)},error:n}),n}let d=Math.round(performance.now()-c),f=l.ok&&t.responseBytes?void 0:await l.text(),p=f===void 0?new Uint8Array(await l.arrayBuffer()):Bf(f,l.headers.get(`content-type`),l.ok?n:void 0,{method:t.method,host:e.host,path:t.path,status:l.status}),m={component:`aventure-api-client`,event:`response`,fields:{method:t.method,host:e.host,path:t.path,status:l.status,durationMs:d}};if(l.ok)return ic(m),{ok:!0,status:l.status,headers:Object.fromEntries(l.headers),data:p};let h=Mf(Ef(l.status,p??f),o);return ac({component:`aventure-api-client`,event:`problem_response`,fields:{method:t.method,host:e.host,path:t.path,durationMs:d,...Of(h,o)}}),{ok:!1,status:l.status,problem:h}}async function Rf(e,t,n,r,i,a){let o;for(let s=1;s<=a;s+=1)try{return await fetch(e,{method:t.method,headers:n,body:r,signal:AbortSignal.timeout(i),dispatcher:Tf(i)})}catch(n){if(o=n,s>=a)break;ac({component:`aventure-api-client`,event:`request_retry`,message:sc(n),fields:{method:t.method,host:new URL(e).host,path:t.path,attempt:s,...cc(n)},error:n})}throw o}function zf(e,t,n){let r=e.startsWith(`http`)?e:`https://${e}`,i=new URL(t,r);for(let[e,t]of Object.entries(n??{}))t!==void 0&&i.searchParams.set(e,String(t));return i.toString()}function Bf(e,t,n,r){let i=t?.includes(`json`)===!0||[`{`,`[`].includes(e.trimStart().slice(0,1)),a=e.length===0?void 0:e;if(e.length>0&&i)try{a=JSON.parse(e)}catch(e){ac({component:`aventure-api-client`,event:`response_json_parse_failed`,message:sc(e),fields:{...r},error:e})}if(n===void 0)return a;let o=n.safeParse(a);if(o.success)return o.data;throw Error(`API response failed canonical schema validation`,{cause:o.error})}var Vf=`actorType`,Hf=`agentChassis`,Uf=`agentModel`,Wf=`AVENTURE_AGENT_CHASSIS`,Gf=`AVENTURE_AGENT_MODEL`,Kf=[{chassis:`kimi-cli`,envNames:[`KIMI_MODEL`]},{chassis:`grok-build-cli`,envNames:[`GROK_HOME`,`GROK_MANAGED_BY_NPM`,`GROK_MANAGED_BY_INTERNAL`]},{chassis:`claude-code`,envNames:[`CLAUDECODE`,`CLAUDE_CODE`]},{chassis:`pi-cli`,envNames:[`PI_CODING_AGENT`]},{chassis:`codex-cli`,envNames:[`CODEX_MANAGED_BY_NPM`,`CODEX_SANDBOX`,`CODEX_THREAD_ID`,`CODEX_HOME`]}],qf=[{chassis:`kimi-cli`,envNames:[`KIMI_MODEL`]},{chassis:`grok-build-cli`,envNames:[`GROK_MODEL`,`XAI_MODEL`]},{chassis:`codex-cli`,envNames:[`CODEX_MODEL`]},{chassis:`pi-cli`,envNames:[`PI_MODEL`]}],Jf=[`OLLAMA_MODEL`,`OLLAMA_LAUNCH_MODEL`],Yf=[`claude-code`,`claude-agent-sdk`],Xf=[`ANTHROPIC_MODEL`,`ANTHROPIC_DEFAULT_OPUS_MODEL`,`ANTHROPIC_DEFAULT_SONNET_MODEL`,`ANTHROPIC_DEFAULT_HAIKU_MODEL`];function Zf(e){let t=cp(e);return t.has(Vf)||t.has(Hf)&&t.has(Uf)}function Qf({operation:e,searchParams:t,env:n=process.env,clientInfo:r}){if(!Zf(e))return Lo(`Agent provenance unchanged`,t);let i=fp(t?.[Vf]),a=i?.toLowerCase();if(i&&a!==`agent`&&a!==`employee`)return X(`${e.operationId} has unknown provenance actorType.`,[`Use actorType=agent or actorType=employee. actorType is optional only at the API boundary when a complete agent pair or employee JWT lets the resolver infer it before domain and write-lane enforcement.`]);let o=fp(t?.[Hf]),s=fp(t?.[Uf]);if(a===`employee`)return o||s?X(`${e.operationId} has mixed employee and agent provenance.`,[`Pass actorType=employee without agentChassis or agentModel.`]):Lo(`Employee provenance explicit`,{...t,actorType:`employee`});let c=dp(n,Wf),l=dp(n,Gf);if(o&&c&&o!==c)return X(ep(e,`chassis`),[tp({param:Hf,flag:`--agent-chassis`,envName:Wf,envValue:c,explicitValue:o})]);if(s&&l&&s!==l)return X(ep(e,`model`),[tp({param:Uf,flag:`--agent-model`,envName:Gf,envValue:l,explicitValue:s})]);let u=np(n,r);return o&&s?u.status===`partial`?X(`${e.operationId} rejected: explicit agent provenance cannot repair partial runtime provenance.`,[u.warning,`You passed --agent-chassis ${o} --agent-model ${s}.`,`Set ${Wf} and ${Gf} together after verifying the session; do not patch provenance per command.`]):u.status===`complete`&&(o!==u.pair.agentChassis||s!==u.pair.agentModel)?X(`${e.operationId} rejected: explicit agent provenance disagrees with the runtime environment.`,[`Detected ${u.pair.agentChassis}/${u.pair.agentModel} from runtime signals.`,`You passed --agent-chassis ${o} --agent-model ${s}.`,`Omit both flags, or set AVENTURE_AGENT_CHASSIS and AVENTURE_AGENT_MODEL after verifying the session.`]):Lo(`Agent provenance explicit`,{...t,actorType:`agent`}):o||s?X($f(e),[`Pass both agentChassis and agentModel, or omit both so the API can infer an employee actor from an authenticated user JWT session or this caller can auto-fill a verified local agent pair.`]):u.status===`missing`?a===`agent`?X($f(e),[`actorType=agent requires agentChassis and agentModel before the API can build the enforced domain actor.`]):Lo(`Provenance left for API-boundary actor inference`,t):u.status===`partial`?X($f(e),[u.warning,`Set ${Wf} and ${Gf}, or pass --agent-chassis and --agent-model.`]):Lo(`Agent provenance auto-filled`,{...t,actorType:`agent`,agentChassis:u.pair.agentChassis,agentModel:u.pair.agentModel})}function $f(e){return`${e.operationId} requires complete agent provenance.`}function ep(e,t){return`${e.operationId} rejected: explicit agent ${t} disagrees with the runtime environment.`}function tp(e){return[`Your runtime environment declares ${e.envName}=${e.envValue}, but you passed ${e.flag} ${e.explicitValue} (query param ${e.param}).`,`The environment value comes from the container/runtime you are executing inside and is almost always correct.`,`If you (the LLM agent) believe the environment is wrong, investigate the container configuration first — do not override with a guess.`,`Otherwise, omit ${e.flag} entirely and the CLI will auto-fill from ${e.envName} (and ${Gf} for the model). LLM agents hallucinate provenance frequently; stop providing false parameters.`].join(` `)}function np(e,t){let n=dp(e,Wf),r=dp(e,Gf);if(n&&r)return{status:`complete`,pair:{agentChassis:n,agentModel:r}};if(n||r)return{status:`partial`,warning:`${Wf} and ${Gf} must be set together.`};let i=rp(e,t),a=ip(e,i)??(ap(i)?op(e):void 0)??lp(e,...Jf);return i&&a?{status:`complete`,pair:{agentChassis:i,agentModel:a}}:i?{status:`partial`,warning:`${i} was detected, but no verified model source was present.`}:a?{status:`partial`,warning:`A model was detected, but no verified agent chassis source was present.`}:{status:`missing`,warning:`No verified local agent chassis/model pair was present.`}}function rp(e,t){return Kf.find(t=>t.envNames.some(t=>up(e,t)))?.chassis??sp(t?.name)}function ip(e,t){let n=t?qf.find(e=>e.chassis===t):void 0;return n?lp(e,...n.envNames):void 0}function ap(e){return e!==void 0&&Yf.some(t=>t===e)}function op(e){let t=[...new Set(Xf.map(t=>dp(e,t)).filter(Boolean))];return t.length===1?t[0]:void 0}function sp(e){let t=e?.toLowerCase().replace(/[^a-z0-9]+/g,` `).trim();if(t){if(t.includes(`claude`)&&t.includes(`sdk`))return`claude-agent-sdk`;if(t===`claude code`||t.includes(`claude code`))return`claude-code`;if(t===`codex`||t.includes(`codex`))return`codex-cli`;if(t===`kimi`||t.includes(`kimi`))return`kimi-cli`;if(t.includes(`hermes`))return`hermes-cli`;if(t.includes(`grok`))return`grok-build-cli`;if(t.includes(`mistral vibe`))return`mistral-vibe-cli`;if(t===`pi`||t===`pi cli`)return`pi-cli`}}var cp=e=>new Set((e.parameters??[]).filter(e=>e.in===`query`).map(e=>e.name)),lp=(e,...t)=>t.map(t=>dp(e,t)).find(e=>e!==void 0);function up(e,t){let n=dp(e,t)?.toLowerCase();return n!==void 0&&n!==`0`&&n!==`false`&&n!==`no`}function dp(e,t){return e[t]?.trim()||void 0}function fp(e){if(e===void 0)return;let t=typeof e==`object`?e[0]:e;return t===void 0?void 0:String(t).trim()||void 0}var pp=[`get`,`post`,`put`,`patch`,`delete`],mp=[`oauth`,`start`,`poll`,`acknowledge`,`revoke`],hp=O({name:w().regex(/^[A-Z][A-Z0-9_]*$/u)}),gp=U([F(`private`),H({scope:w().optional(),value:w().optional()})]),_p=z(()=>H({$ref:w().optional(),description:w().optional(),type:U([w(),M(w())]).optional(),format:w().optional(),default:Pe.optional(),enum:M(Pe).optional(),readOnly:R().optional(),items:_p.optional(),minItems:A().int().nonnegative().optional(),maxItems:A().int().nonnegative().optional(),properties:W(w(),_p).optional(),required:M(w()).optional(),oneOf:M(_p).optional(),anyOf:M(_p).optional(),allOf:M(_p).optional(),"x-aventure-visibility":gp.optional(),"x-aventure-cli-conflicts":M(M(w().min(1)).min(2)).min(1).optional(),"x-aventure-env":hp.optional()})),vp=H({in:w(),name:w(),required:R().optional(),description:w().optional(),schema:_p.optional(),"x-aventure-visibility":gp.optional(),"x-aventure-legacy-name":O({name:w().trim().min(1)}).optional()}).superRefine((e,t)=>{let n=e[`x-aventure-legacy-name`]?.name;n!==void 0&&(e.in!==`path`&&t.addIssue({code:`custom`,path:[`x-aventure-legacy-name`],message:`x-aventure-legacy-name is valid only for path parameters`}),n===e.name&&t.addIssue({code:`custom`,path:[`x-aventure-legacy-name`,`name`],message:`Legacy path parameter name must differ from its canonical name`}))}),yp=W(w(),H({schema:_p.optional()})),bp=H({description:w().optional(),content:yp.optional()}),xp=H({description:w().optional(),required:R().optional(),content:yp.optional()}),Sp=H({auth:j([`none`,`read`]).optional(),cli:w().optional(),cliAlias:w().optional()}).optional(),Cp=U([F(``),w().regex(/^(?:\/(?:[^~/]|~[01])*)+$/)]),wp=O({readOperationId:w().min(1),writePointer:Cp,readPointer:Cp}),Tp=w().trim().regex(/^[a-z0-9]+(?:-[a-z0-9]+)* [a-z0-9]+(?:-[a-z0-9]+)*$/u),Ep=w().regex(/^[a-z][A-Za-z0-9]*$/u),Dp=w().regex(/^--(?:no-)?[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/u),Op=O({command:Tp,role:j(mp),summary:w().trim().min(1).optional(),description:w().trim().min(1).optional(),bodyOption:M(Ep).min(1).optional(),localOption:M(O({optionKey:Ep,flag:Dp,description:w().trim().min(1)})).min(1).optional()}).superRefine((e,t)=>{let n=[e.bodyOption??[],(e.localOption??[]).map(e=>e.optionKey),(e.localOption??[]).map(e=>e.flag)].some(e=>new Set(e).size!==e.length),r=(e.localOption??[]).some(e=>new hl(e.flag).attributeName()!==e.optionKey);(n||r)&&t.addIssue({code:`custom`,message:`Composite CLI options must be unique and match their local flags`})}).optional(),kp=H({operationId:w(),summary:w().optional(),description:w().optional(),tags:M(w()).optional(),deprecated:R().optional(),hidden:R().optional(),security:M(W(w(),M(w()))).optional(),parameters:M(vp).optional(),requestBody:xp.optional(),responses:W(w(),bp),"x-aventure-visibility":gp.optional(),"x-aventure-tool":Sp,"x-aventure-mutation-readback":wp.optional(),"x-aventure-cli-composite":Op}).superRefine((e,t)=>{let n=e.parameters??[];for(let[e,r]of n.entries()){let i=r[`x-aventure-legacy-name`]?.name;r.in===`path`&&i!==void 0&&n.some((t,n)=>n!==e&&t.in===`path`&&(t.name===i||t[`x-aventure-legacy-name`]?.name===i))&&t.addIssue({code:`custom`,path:[`parameters`,e,`x-aventure-legacy-name`,`name`],message:`Legacy path parameter name '${i}' collides with another declared path parameter`})}}),Ap=H(Object.fromEntries(pp.map(e=>[e,kp.optional()]))),jp=H({$ref:w().optional(),description:w().optional(),type:U([w(),M(w())]).optional(),format:w().optional(),default:Pe.optional(),enum:M(Pe).optional(),readOnly:R().optional(),items:_p.optional(),minItems:A().int().nonnegative().optional(),maxItems:A().int().nonnegative().optional(),oneOf:M(_p).optional(),anyOf:M(_p).optional(),allOf:M(_p).optional(),properties:W(w(),_p).optional(),required:M(w()).optional(),"x-aventure-visibility":gp.optional(),"x-aventure-cli-conflicts":M(M(w().min(1)).min(2)).min(1).optional(),"x-aventure-env":hp.optional()}),Mp=H({tags:M(H({name:w(),description:w().optional()})).optional(),paths:W(w(),Ap),components:H({schemas:W(w(),jp)})}).superRefine((e,t)=>{for(let[n,r]of Object.entries(e.paths))for(let i of pp){let a=r[i]?.[`x-aventure-mutation-readback`];a!==void 0&&Pp(e.paths,a.readOperationId)===null&&t.addIssue({code:`custom`,path:[`paths`,n,i,`x-aventure-mutation-readback`,`readOperationId`],message:`mutation readback names '${a.readOperationId}', which no operation in this document emits`})}}),Np=new Set([`page`,`size`,`sort`]);function Pp(e,t){for(let[n,r]of Object.entries(e))for(let e of pp){let i=r[e];if(i?.operationId===t)return{method:e,template:n,operation:i}}return null}function Fp(e,t,n){let r=Lp(n),i=e[r]?.[t];if(i)return{method:t,template:r,operation:i};for(let[n,i]of Object.entries(e)){let e=i[t];if(e&&zp(n,r))return{method:t,template:n,operation:e}}return null}function Ip(e,t,n=e){return e.replace(/\{([^}]+)}/g,(...e)=>{let r=e[1],i=t[r];if(i==null)throw Error(`Missing path parameter '${r}' for ${n}`);return encodeURIComponent(String(i))})}function Lp(e){return new URL(e,`https://placeholder.invalid`).pathname}function Rp(e,t){let n={};for(let r of e.parameters??[]){if(r.in!==`query`||Np.has(r.name))continue;let e=t?.[r.name]??Hp(r.schema?.default);e!==void 0&&(n[r.name]=e)}return Object.keys(n).length===0?void 0:n}function zp(e,t){let n=e.split(`/`).filter(Boolean),r=t.split(`/`).filter(Boolean);return n.length!==r.length||r.some(Vp)?!1:n.every((e,t)=>Bp(e)||e===r[t])}function Bp(e){let t=e.slice(1,-1);return e.startsWith(`{`)&&e.endsWith(`}`)&&t.length>0&&!t.includes(`/`)&&!t.includes(`{`)&&!t.includes(`}`)}function Vp(e){if(Bp(e))return!0;let t=e.toLowerCase(),n=e.slice(3,-3);return t.startsWith(`%7b`)&&t.endsWith(`%7d`)&&n.length>0&&!n.includes(`/`)&&!n.includes(`%`)&&!n.includes(`{`)&&!n.includes(`}`)}function Hp(e){if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`||Array.isArray(e)&&e.every(e=>typeof e==`string`||typeof e==`number`||typeof e==`boolean`))return e}function Up(e,t,n){let r=typeof n==`object`&&n&&!Array.isArray(n)?n.includePrivate:void 0;return Wp(t?.includePrivate)||Wp(r)?`required`:(e.parameters??[]).some(e=>e.in===`query`&&e.name===`includePrivate`)?`preferred`:`none`}function Wp(e){return e===null||typeof e==`object`?Array.isArray(e)&&e.some(Wp):e===!0||e===1||typeof e==`string`&&/^(true|on|yes|1)$/i.test(e.trim())}var Gp=!1,Kp=new Ae;function qp(e,t){return Kp.run(e,t)}async function Jp(e,t,n=[]){let r=await Lf(sm(os()),{method:`POST`,path:tm(`authorizeOperations`,{}),headers:{Authorization:`Bearer ${e}`,"Content-Type":`application/json`},body:{operation:[...n]}},au);if(!r.ok&&r.status!==401&&r.status!==403)throw Error(`OAuth bearer verification is unavailable`,{cause:r.problem});if(!r.ok)return null;if(!e.includes(`.`))return r.data;try{let{typ:t}=hu(e);if(t!==`at+jwt`&&t!==`application/at+jwt`)return r.data}catch{return r.data}let{aud:i}=gu(e);return i===void 0||i===t.href||Array.isArray(i)&&i.length===1&&i[0]===t.href?r.data:null}var Yp=Mp.safeParse(_u);if(!Yp.success)throw Error(`OpenAPI snapshot drifted from spec subset: ${Yp.error.message}`);var Xp=Yp.data,Zp=[`localhost`,`127.0.0.1`,`0.0.0.0`,`[::1]`],Qp=`X-Job-Name`,$p=`AVENTURE_JOB_NAME`,em=/^[A-Za-z0-9._:-]{1,120}$/;function tm(e,t){let n=Pp(Xp.paths,e);if(!n)throw Error(`OpenAPI operationId not found: ${e}`);return Ip(n.template,im(n.operation,t,e),e)}function nm(e){let t=Pp(Xp.paths,e);if(!t)throw Error(`OpenAPI operationId not found: ${e}`);let n=(t.operation.parameters??[]).filter(e=>e.in===`header`&&e.required===!0);if(n.length!==1)throw Error(`OpenAPI operation ${e} must declare exactly one required header parameter; found ${n.length}`);let r=n[0]?.name.trim();if(!r)throw Error(`OpenAPI operation ${e} has a blank required header name`);return r}function rm(e){let t=e.pathParams??{};try{if(e.operationId!==void 0){let n=Pp(Xp.paths,e.operationId);if(n===null)return X(`OpenAPI operationId not found: ${e.operationId}`);let r=Ip(n.template,im(n.operation,t,e.operationId),e.operationId);return Lo(`Resolved ${e.operationId}`,{...n,path:r})}if(e.method===void 0||e.path===void 0)return X(`Pass operationId or method+path.`);let n=e.method.toLowerCase(),r=e.path;Xp.paths[r]?.[n]===void 0&&r.includes(`{`)&&(r=Object.keys(Xp.paths).find(t=>{let r=Xp.paths[t][n];return r!==void 0&&(r.parameters??[]).reduce((e,t)=>{let n=t[`x-aventure-legacy-name`]?.name;return n===void 0?e:e.replaceAll(`{${t.name}}`,`{${n}}`)},t)===e.path})??e.path);let i=Xp.paths[r]?.[n],a=Ip(r,i===void 0?t:im(i,t,e.path),e.path),o=Fp(Xp.paths,n,a);return o===null?X(`OpenAPI operation not found for ${e.method} ${Lp(a)}`):(i===void 0&&im(o.operation,t,e.path),Lo(`Resolved ${o.operation.operationId}`,{...o,path:a}))}catch(e){return X(e.message)}}function im(e,t,n){let r=t;for(let i of e.parameters??[]){let e=i[`x-aventure-legacy-name`]?.name;if(i.in===`path`&&e!==void 0&&Object.hasOwn(t,e)){if(Object.hasOwn(t,i.name))throw Error(`Path parameters '${i.name}' and legacy alias '${e}' were both supplied for ${n}`);r===t&&(r={...t}),r[i.name]=t[e],delete r[e]}}return r}async function am(e){let t=Fp(Xp.paths,e.method.toLowerCase(),e.path);if(!t)return X(`OpenAPI operation not found for ${e.method} ${Lp(e.path)}`,[`Use a path in this package's OpenAPI contract; undocumented routes are not supported.`]);let n=t.operation,r=Dl(n.requestBody?.content),i=Ol(r,e.contentType);if(!i.ok||i.data===null)return X(i.summary,i.warnings);let a=om(n,e.headers);if(!a.ok||a.data===null)return X(a.summary,a.warnings);Gp||=(await Uc(),!0);let o=e.requesterScope??`write`,s=e.auth===`auto`?`none`:e.auth;if(e.auth===`auto`){let t=new Set(n.security?.flatMap(Object.keys)??[]);e.method===`GET`&&t.has(`clientSecretAuth`)?s=`read`:t.has(`adminApiKeyAuth`)?s=`write`:t.has(`bearerAuth`)?s=`bearer`:t.has(`clientSecretAuth`)&&(s=`read`)}let c=Kp.getStore();if(o===`read`&&c===void 0&&(s===`write`||s===`bearer`))return X(`MCP transport credential is read-only (CLIENT_SECRET); refused write-scope upstream call.`,[`Resolved upstream auth=${s} for ${e.method} ${e.path}.`,`Pass auth='read' explicitly for POST read endpoints, or invoke with X-API-Key (ADMIN_API_KEY) for writes.`]);let l=cm(e.body);if(!l.ok)return X(l.summary,l.warnings);let u=c===void 0?lm(s,o,n,{searchParams:e.searchParams,body:l.data}):ps(`none`);if(!u.ok||!u.data){let e=Rc(),t=[...u.warnings];return e&&t.push(`Saved auth never materialized (config ${e.configPath}): ${e.reason}. The credential is UNRESOLVED, which is not evidence that it is missing from Doppler; check that the \`doppler\` binary is on PATH and the config is readable.`),X(u.summary,t)}let d=c===void 0?u.data.headers:{Authorization:`Bearer ${c}`},f=Qf({operation:n,searchParams:e.searchParams,clientInfo:e.clientInfo});if(!f.ok)return X(f.summary,f.warnings);let p=f.data??void 0,m=fm(e.path,p),h=sm(u.data.env),g=n.operationId,_={method:e.method,endpoint:m,operationId:g},v=await El(n,l.data,e.contentType,um(e.method));if(!v.ok||v.data===null)return X(v.summary,v.warnings);let y=e.responseBytes===!0&&Xl(n),b=y?`*/*`:dm(e.responseFormat??`auto`,n),x=process.env[$p]?.trim(),S={method:e.method,path:m,headers:{...a.data,...d,...x&&em.test(x)?{[Qp]:x}:{},Accept:b},body:v.data.body,contentType:v.data.contentType},C=y?await Lf(h,{...S,responseBytes:!0}):await Lf(h,S,Pe);if(!C.ok)return Df(`${g??e.method} failed`,C.problem,[`endpoint=${m}`]);if(C.data instanceof Uint8Array)return Lo(`${g??e.method} succeeded`,C.data);let w=Fo(C.data),T=Ff(C.headers);return Lo(`${g??e.method} succeeded`,b===`text/plain`&&typeof C.data==`string`?C.data:{..._,...r.length>1&&i.data!==void 0?{contentType:i.data.contentType}:{},httpStatus:C.status,summary:n.summary,nextCursor:C.headers[`x-next-cursor`]||void 0,response:C.data},{httpStatus:C.status,..._,format:b===`text/plain`?`text`:`json`,count:Io(C.data,w),page:w,filters:Rp(n,p),omitted:T.omitted,references:[`${h.host}${m}`],warnings:T.warnings})}function om(e,t){let n=(e.parameters??[]).filter(e=>e.in===`header`),r={};for(let[i,a]of Object.entries(t??{})){let t=n.findLast(e=>e.name.toLowerCase()===i.toLowerCase());if(t===void 0)return X(`${e.operationId} does not declare header '${i}'.`);if(Object.hasOwn(r,t.name))return X(`Header '${t.name}' was supplied more than once.`);r[t.name]=a}let i=n.find(e=>e.required===!0&&!Object.hasOwn(r,e.name));return i===void 0?Lo(`OpenAPI request headers validated`,r):X(`${e.operationId} requires header '${i.name}'.`)}function sm(e){let t=e.host.trim(),n=t.toLowerCase();if(/^https?:\/\//i.test(t))return t===e.host?e:{...e,host:t};let r=Zp.some(e=>n===e||n.startsWith(`${e}:`));return{...e,host:`${r?`http`:`https`}://${t}`}}function cm(e){if(typeof e!=`string`)return Lo(`Request body unchanged`,e);let t=e.trimStart().slice(0,1);if(t!==`{`&&t!==`[`)return Lo(`Request body unchanged`,e);try{let t=Pe.safeParse(JSON.parse(e));if(!t.success)throw t.error;return Lo(`Request body parsed`,t.data)}catch(e){return X(`Request body string must be valid JSON: ${e.message}`)}}function lm(e,t,n,r){let i=Up(n,r.searchParams,r.body);if(e===`none`){let e=ps(`none`);if(!e.ok||!e.data)return e;let n=e.data.env;return t===`write`&&(n.adminApiKey||n.userBearerToken)?ps(`write`):i===`required`?ps(t===`write`?`write`:`read`):n.clientSecret||n.userBearerToken?ps(`read`):e}if(e===`read`&&t===`write`&&i!==`none`){let e=ps(`write`);return e.ok||i===`required`?e:ps(`read`)}let a=ps(e);if(a.ok||e!==`read`||t!==`write`)return a;let o=ps(`write`);return o.ok?o:a}function um(e){return e===`PATCH`?`application/merge-patch+json`:e===`POST`||e===`PUT`?`application/json`:void 0}function dm(e,t){return e===`json`?`application/json`:e===`text`||Object.entries(t.responses).some(([e,t])=>e.startsWith(`2`)&&`text/plain`in(t.content??{}))?`text/plain`:`application/json`}function fm(e,t){let n=new URL(e,`https://placeholder.invalid`);for(let[e,r]of Object.entries(t??{}))if(r!==void 0){if(Array.isArray(r))for(let t of r)n.searchParams.append(e,String(t));else n.searchParams.set(e,String(r))}return`${n.pathname}${n.search}`}var pm=H({authorizationServer:w(),clientId:w(),redirectUri:w(),resource:w(),scope:M(w())}),mm=E().superRefine((e,t)=>{if(!URL.canParse(e))return t.addIssue({code:je.custom,message:`URL must be parseable`,fatal:!0}),D}).refine(e=>{let t=new URL(e);return t.protocol!==`javascript:`&&t.protocol!==`data:`&&t.protocol!==`vbscript:`},{message:`URL cannot use javascript:, data:, or vbscript: scheme`});P({resource:w().url(),authorization_servers:M(mm).optional(),jwks_uri:w().url().optional(),scopes_supported:M(w()).optional(),bearer_methods_supported:M(w()).optional(),resource_signing_alg_values_supported:M(w()).optional(),resource_name:w().optional(),resource_documentation:w().optional(),resource_policy_uri:w().url().optional(),resource_tos_uri:w().url().optional(),tls_client_certificate_bound_access_tokens:R().optional(),authorization_details_types_supported:M(w()).optional(),dpop_signing_alg_values_supported:M(w()).optional(),dpop_bound_access_tokens_required:R().optional()});var hm=P({issuer:w(),authorization_endpoint:mm,token_endpoint:mm,registration_endpoint:mm.optional(),scopes_supported:M(w()).optional(),response_types_supported:M(w()),response_modes_supported:M(w()).optional(),grant_types_supported:M(w()).optional(),token_endpoint_auth_methods_supported:M(w()).optional(),token_endpoint_auth_signing_alg_values_supported:M(w()).optional(),service_documentation:mm.optional(),revocation_endpoint:mm.optional(),revocation_endpoint_auth_methods_supported:M(w()).optional(),revocation_endpoint_auth_signing_alg_values_supported:M(w()).optional(),introspection_endpoint:w().optional(),introspection_endpoint_auth_methods_supported:M(w()).optional(),introspection_endpoint_auth_signing_alg_values_supported:M(w()).optional(),code_challenge_methods_supported:M(w()).optional(),client_id_metadata_document_supported:R().optional()}),gm=P({issuer:w(),authorization_endpoint:mm,token_endpoint:mm,userinfo_endpoint:mm.optional(),jwks_uri:mm,registration_endpoint:mm.optional(),scopes_supported:M(w()).optional(),response_types_supported:M(w()),response_modes_supported:M(w()).optional(),grant_types_supported:M(w()).optional(),acr_values_supported:M(w()).optional(),subject_types_supported:M(w()),id_token_signing_alg_values_supported:M(w()),id_token_encryption_alg_values_supported:M(w()).optional(),id_token_encryption_enc_values_supported:M(w()).optional(),userinfo_signing_alg_values_supported:M(w()).optional(),userinfo_encryption_alg_values_supported:M(w()).optional(),userinfo_encryption_enc_values_supported:M(w()).optional(),request_object_signing_alg_values_supported:M(w()).optional(),request_object_encryption_alg_values_supported:M(w()).optional(),request_object_encryption_enc_values_supported:M(w()).optional(),token_endpoint_auth_methods_supported:M(w()).optional(),token_endpoint_auth_signing_alg_values_supported:M(w()).optional(),display_values_supported:M(w()).optional(),claim_types_supported:M(w()).optional(),claims_supported:M(w()).optional(),service_documentation:w().optional(),claims_locales_supported:M(w()).optional(),ui_locales_supported:M(w()).optional(),claims_parameter_supported:R().optional(),request_parameter_supported:R().optional(),request_uri_parameter_supported:R().optional(),require_request_uri_registration:R().optional(),op_policy_uri:mm.optional(),op_tos_uri:mm.optional(),client_id_metadata_document_supported:R().optional()}),_m=H({...gm.shape,...hm.pick({code_challenge_methods_supported:!0}).shape}),vm=H({access_token:w(),id_token:w().optional(),token_type:w(),expires_in:Ne().optional(),scope:w().optional(),refresh_token:w().optional()}).strip(),ym=H({error:w(),error_description:w().optional(),error_uri:w().optional()}),bm=mm.optional().or(F(``).transform(()=>void 0)),xm=H({redirect_uris:M(mm),token_endpoint_auth_method:w().optional(),grant_types:M(w()).optional(),response_types:M(w()).optional(),client_name:w().optional(),client_uri:mm.optional(),logo_uri:bm,scope:w().optional(),contacts:M(w()).optional(),tos_uri:bm,policy_uri:w().optional(),jwks_uri:mm.optional(),jwks:V().optional(),software_id:w().optional(),software_version:w().optional(),software_statement:w().optional()}).strip(),Sm=H({client_id:w(),client_secret:w().optional(),client_id_issued_at:A().optional(),client_secret_expires_at:A().optional()}).strip();xm.merge(Sm),H({error:w(),error_description:w().optional()}).strip(),H({token:w(),token_type_hint:w().optional()}).strip();export{os as $,Uc as A,Bs as B,Ql as C,ul as D,hl as E,rc as F,As as G,Ds as H,oc as I,rs as J,js as K,ic as L,Gc as M,Vc as N,dl as O,sc as P,ps as Q,ac as R,Kl as S,Pe as St,Sl as T,Os as U,mc as V,ks as W,us as X,is as Y,ds as Z,uu as _,rn as _t,pm as a,Da as at,Yl as b,kt as bt,rm as c,oi as ct,qp as d,Nr as dt,ko as et,pp as f,mn as ft,jf as g,tn as gt,Lf as h,Qt as ht,_m as i,Oa as it,Bc as j,zc as k,am as l,Mr as lt,yf as m,Xt as mt,hm as n,X as nt,tm as o,si as ot,Ip as p,hn as pt,ns as q,vm as r,Lo as rt,nm as s,ti as st,ym as t,Ro as tt,Jp as u,Pr as ut,ql as v,dn as vt,Ol as w,eu as x,jt as xt,Jl as y,Jt as yt,Dc as z};
|