@aventurevc/aventure-cli 0.8.215 → 0.8.216
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aventure-cli/index.js +1 -1
- package/dist/aventure-cli/unified-operations.json +1 -1
- package/dist/chunks/api-key-bearer-credential-C1_p7wsQ.js +1 -0
- package/dist/chunks/{api-key-bearer-credential-B5cWfTvy.js → api-key-bearer-credential-D8URNZHF.js} +1 -1
- package/dist/chunks/aventure-cli-DVdHbYPm.js +67 -0
- package/dist/chunks/{cli-help-policy-DtEA5aUs.js → cli-help-policy-DAMlMsef.js} +1 -1
- package/dist/chunks/{contract-B2e_hJVZ.js → contract-pPG4fNo5.js} +4 -4
- package/dist/chunks/dist-c8HUJZnY.js +108 -0
- package/dist/chunks/oauth-bearer-credential-Bd5t1ijb.js +8 -0
- package/dist/chunks/oauth-bearer-credential-CllNkwOL.js +1 -0
- package/dist/chunks/oauth-login-BD9dHEqU.js +1 -0
- package/dist/chunks/{oauth-login-Cr4KzZ0g.js → oauth-login-CxrOU9W-.js} +3 -3
- package/dist/chunks/openapi-commands-DRdfnVqt.js +1 -0
- package/dist/chunks/{openapi-commands-BPCqSbwO.js → openapi-commands-LRvurPYF.js} +1 -1
- package/dist/chunks/provider-catalog-Bgp_118N.js +1 -0
- package/dist/chunks/response-problem-CLwmyQLg.js +1 -0
- package/dist/chunks/{startup-auth-C0lEZxWc.js → startup-auth-B-pDC8t2.js} +1 -1
- package/dist/chunks/startup-auth-CAHK_djA.js +1 -0
- package/dist/chunks/tool-policy-kgp10gPN.js +1 -0
- package/package.json +3 -3
- package/dist/chunks/api-key-bearer-credential-CSbp5pO2.js +0 -1
- package/dist/chunks/aventure-cli-CYajAVv4.js +0 -67
- package/dist/chunks/dist-W6a2lhH8.js +0 -108
- package/dist/chunks/oauth-bearer-credential-CB5C3dLM.js +0 -8
- package/dist/chunks/oauth-bearer-credential-COLM0m6U.js +0 -1
- package/dist/chunks/oauth-login-DAAmiJQD.js +0 -1
- package/dist/chunks/openapi-commands-Cg31tun5.js +0 -1
- package/dist/chunks/provider-catalog-Bj9bossW.js +0 -1
- package/dist/chunks/response-problem-D1QJ3hMo.js +0 -1
- package/dist/chunks/startup-auth-CUgM9jUM.js +0 -1
- package/dist/chunks/tool-policy-Bs4Jo1cv.js +0 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import{B as e,L as t}from"./esm-CFkfzPrU.js";import{S as n,a as r,b as i,f as a,n as o,o as s,t as c,x as l,y as u}from"./logging-RiG2UJwJ.js";import{A as d,C as f,D as p,E as m,O as h,S as g,T as _,_ as v,f as y,g as b,h as x,k as S,m as C,r as w,v as T,w as E,x as D,z as O}from"./tool-policy-kgp10gPN.js";import{D as k,E as A,N as j,S as M,T as N,_ as P,a as F,b as I,c as L,d as R,g as z,h as ee,i as B,j as te,l as V,m as H,o as ne,s as re,u as U,v as W,w as G,x as K,y as q}from"./person-owner-BJgNYLKX.js";import{a as ie,c as ae,f as oe,i as J,l as se,o as ce}from"./result-envelope-HCfZHr9Q.js";import{o as le}from"./runtime-identity-DWyecGw5.js";import{c as ue,l as de,n as Y,o as fe,r as pe,s as X,t as me,u as he}from"./response-problem-CLwmyQLg.js";import{r as ge}from"./output-spill-ClPBdb4v.js";import{n as _e}from"./text-field-BoNdbrtA.js";import{Buffer as ve}from"node:buffer";import{setTimeout as ye}from"node:timers/promises";var be={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`},xe;xe||={};function Se(e){return te(F,e)}var Ce=q({authorizationServer:G(),clientId:G(),mcpResource:G().nullish(),redirectUri:G(),resource:G(),scope:V(G())}),we=new Set([408,429,502,503,504]),Te=250,Ee=`source_grounding_at_capacity`;function De(e,t){return!we.has(e)||t.disposition===`TERMINAL`?!1:t.resetAt===void 0||t.resetAt===null}function Oe(e){let t=e instanceof Error?e.cause:void 0;return t instanceof TypeError||t instanceof Error&&t.name===`TimeoutError`}function ke(){return Te*(1+Math.random())}function Ae(e,t,n){let r=de(t.retryAfterSeconds),i=r===void 0?void 0:r*1e3;if(e===503&&t.code===Ee)return i;if(n&&De(e,t))return e===429?i:i??ke()}var je=[`FAILED`,`CANCELED`],Me=`search_provider_error`,Ne=1e3,Pe=3e4,Fe=18e4;function Ie(e){return e.ok?!e.redirect&&e.status===202&&e.headers[`preference-applied`]?.toLowerCase()===`respond-async`?e.headers.location:void 0:e.problem.code===`search_still_running`?e.headers?.location:void 0}function Le(e){return e.ok?!e.redirect&&e.status===202:Ie(e)!==void 0}function Re(e){return`200`in e.responses&&`202`in e.responses}async function ze(e,{origin:t,path:n,deadline:r,signal:i,rollsOver:a},o){let s=Ge(e.ok?e.data:void 0,`jobId`),c=typeof s==`string`?s:void 0,l=e,u,d,f,p=Be(l),m=0,h=r,g=!1;for(;Le(l);){let a=l.ok?l.headers.location:Ie(l);if(a!==void 0&&(u=new URL(a,t).href),u===void 0||!u.startsWith(`${t}/`))return l;let s=u.slice(t.length);if(!g&&O(s)===O(n)&&l.ok&&!l.redirect&&(h=Math.max(r,Date.now()+Fe),g=!0),Date.now()+2*p>h)return e.ok?!l.ok||l.redirect?l:{...l,rolloverJob:{jobId:c,statusUrl:s,running:!0,answeredPath:f}}:e;await ye(p,void 0,{signal:i});let _=await o(s,h-Date.now()).catch(e=>{if(i?.aborted===!0||!Oe(e))throw e});if(d=s,_===void 0||!Le(_)&&Ve(_)){m+=1;let e=_?.ok===!1?de(_.problem.retryAfterSeconds):void 0;p=e===void 0?He(m):e*1e3;continue}m=0,l=_,f=s,p=Be(l)}return d===void 0||!l.ok||l.redirect||!a?l:{...l,rolloverJob:{jobId:c,statusUrl:d,running:!1,answeredPath:f}}}function Be(e){return((e.ok?ue(e.headers[`retry-after`]):de(e.problem.retryAfterSeconds))??1)*1e3}function Ve(e){return e.ok||!De(e.status,e.problem)?!1:e.problem.code!==Me}function He(e){let t=Math.min(Pe,Ne*2**(e-1));return t/2+t/2*Math.random()}function Ue(e,t,n){let r=t.redirect?void 0:t.rolloverJob;if(r===void 0||r.running&&n)return;if(r.running)return J(We(e,t),[],{httpStatus:t.status,ids:r.jobId===void 0?[]:[r.jobId],references:[r.statusUrl]});let i=Ge(t.data,`state`)??Ge(t.data,`status`);if(!je.some(e=>e===i))return;let a=Ge(t.data,`failureReason`),o=r.jobId===void 0?`the job at ${r.statusUrl}`:`job ${r.jobId}`;return J(`Fix the cause before retrying ${e}: ${o} ended ${String(i)} with failureReason ${typeof a==`string`?a:`unset`}.`,[],{httpStatus:t.status,ids:r.jobId===void 0?[]:[r.jobId]})}function We(e,t){if(t.redirect)return`${e} redirected`;let n=t.rolloverJob;if(n===void 0)return`${e} succeeded`;let r=n.jobId===void 0?`the job`:`job ${n.jobId}`;return n.running?`Poll GET ${n.statusUrl} for ${r}: ${e} was still running when this read returned.`:`${e} completed through ${r}; the job body carries the answer (a lookup job's identification).`}function Ge(e,t){return(e&&typeof e==`object`?Object.getOwnPropertyDescriptor(e,t):void 0)?.value}var Z=t(((e,t)=>{t.exports={kClose:Symbol(`close`),kDestroy:Symbol(`destroy`),kDispatch:Symbol(`dispatch`),kUrl:Symbol(`url`),kRequestOrigin:Symbol(`request origin`),kOriginless:Symbol(`originless`),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`)}})),Ke=t(((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=t(((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}},H=Symbol.for(`undici.error.UND_ERR_PRX_TLS`),ne=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[H]===!0}get[H](){return!0}},re=Symbol.for(`undici.error.UND_ERR_PRX_CONN`),U=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[re]===!0}get[re](){return!0}},W=Symbol.for(`undici.error.UND_ERR_MAX_ORIGINS_REACHED`),G=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[W]===!0}get[W](){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`}},q=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:ne,ProxyConnectionError:U,MaxOriginsReachedError:G,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[q]===!0}get[q](){return!0}}}})),qe=t(((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}})),Je=t(((e,t)=>{var{wellknownHeaderNames:n,headerNameLowerCasedRecord:r}=qe(),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}})),$=t(((t,n)=>{var r=e(`node:assert`),{kDestroyed:i,kBodyUsed:a,kListeners:o,kBody:s}=Z(),{IncomingMessage:c}=e(`node:http`),l=e(`node:stream`),u=e(`node:net`),{stringify:d}=e(`node:querystring`),{EventEmitter:f,addAbortListener:p}=e(`node:events`),m=Ke(),{InvalidArgumentError:h,ConnectTimeoutError:g}=Q(),{headerNameLowerCasedRecord:_}=qe(),{tree:v}=Je(),y=class{constructor(e){this[s]=e,this[a]=!1}async*[Symbol.asyncIterator](){r(!this[a],`disturbed`),this[a]=!0,yield*this[s]}};function b(){}function x(e){return S(e)?(I(e)===0&&e.on(`data`,function(){r(!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&&q(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 r(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;r(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:U(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 H(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 ne(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 re(e){if(!Array.isArray(e))throw TypeError(`expected headers to be an array`);return e.map(e=>Buffer.from(e))}function U(e){return e instanceof Uint8Array||Buffer.isBuffer(e)}function W(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 G(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 q(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 ie(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 ae=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 oe(e){return ae[e]===1}var J=/^[\^_`a-zA-Z\-0-9!#$%&'*+.|~]+$/;function se(e){if(e.length>=12)return J.test(e);if(e.length===0)return!1;for(let t=0;t<e.length;t++)if(ae[e.charCodeAt(t)]!==1)return!1;return!0}var ce=/[^\t\x20-\x7e\x80-\xff]/;function le(e){return!ce.test(e)}var ue=/^bytes (\d+)-(\d+)\/(\d+|\*)?$/;function de(e){if(e==null||e===``)return{start:0,end:null,size:null};if(!e)return null;let t=ue.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 Y(e,t,n){return(e[o]??=[]).push([t,n]),e.on(t,n),e}function fe(e){if(e[o]!=null){for(let[t,n]of e[o])e.removeListener(t,n);e[o]=null}return e}function pe(e,t,n){try{t.onResponseError(n),r(t.aborted)}catch(t){e.emit(`error`,t)}}var X=process.platform===`win32`?(e,t)=>{if(!t.timeout)return b;let n=null,r=null,i=m.setFastTimeout(()=>{n=setImmediate(()=>{r=setImmediate(()=>me(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(()=>{me(e.deref(),t)})},t.timeout);return()=>{m.clearFastTimeout(r),clearImmediate(n)}};function me(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 he=null,ge=null;function _e(e){if(e===he)return ge;let t=ve(e);return he=e,ge=t,t}function ve(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 ye={__proto__:null,enumerable:!0},be={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`},xe={...be,patch:`patch`,PATCH:`PATCH`};Object.setPrototypeOf(be,null),Object.setPrototypeOf(xe,null),n.exports={kEnumerableProperty:ye,isDisturbed:G,isBlobLike:C,parseOrigin:k,parseURL:O,getServerName:j,isStream:S,isIterable:P,hasSafeIterator:F,isAsyncIterable:N,isDestroyed:L,headerNameToString:B,bufferToLowerCasedHeaderName:te,addListener:Y,removeAllListeners:fe,errorRequest:pe,parseRawHeaders:H,toRawHeaders:ne,encodeRawHeaders:re,parseHeaders:V,parseKeepAliveTimeout:ee,destroy:R,bodyLength:I,deepClone:M,isBuffer:U,assertRequestHandler:W,getSocketInfo:K,isFormDataLike:q,pathHasQueryOrFragment:w,serializePathWithQuery:T,addAbortListener:ie,isValidHTTPToken:se,isValidHeaderValue:le,isTokenCharCode:oe,parseRangeHeader:de,normalizedMethodRecordsBase:be,normalizedMethodRecords:xe,isValidPort:E,isHttpOrHttpsPrefixed:D,safeHTTPMethods:Object.freeze([`GET`,`HEAD`,`OPTIONS`,`TRACE`]),wrapRequestBody:x,setupConnectTimeout:X,getProtocolFromUrlString:_e}})),Ye=t(((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]}}}})),Xe=t(((t,n)=>{var r=e(`node:diagnostics_channel`),i=e(`node:util`),a=i.debuglog(`undici`),o=i.debuglog(`fetch`),s=i.debuglog(`websocket`),c={beforeConnect:r.channel(`undici:client:beforeConnect`),connected:r.channel(`undici:client:connected`),connectError:r.channel(`undici:client:connectError`),sendHeaders:r.channel(`undici:client:sendHeaders`),create:r.channel(`undici:request:create`),bodySent:r.channel(`undici:request:bodySent`),bodyChunkSent:r.channel(`undici:request:bodyChunkSent`),bodyChunkReceived:r.channel(`undici:request:bodyChunkReceived`),headers:r.channel(`undici:request:headers`),trailers:r.channel(`undici:request:trailers`),error:r.channel(`undici:request:error`),open:r.channel(`undici:websocket:open`),close:r.channel(`undici:websocket:close`),socketError:r.channel(`undici:websocket:socket_error`),ping:r.channel(`undici:websocket:ping`),pong:r.channel(`undici:websocket:pong`),proxyConnected:r.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,r.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)}),r.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)}),r.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)}),r.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,r.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)}),r.subscribe(`undici:request:trailers`,t=>{let{request:{method:n,path:r,origin:i}}=t;e(`trailers received from %s %s%s`,n,i,r)}),r.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,r.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`)}),r.subscribe(`undici:websocket:close`,t=>{let{websocket:n,code:r,reason:i}=t;e(`closed connection to %s - %s %s`,n.url,r,i)}),r.subscribe(`undici:websocket:socket_error`,t=>{e(`connection errored - %s`,t.message)}),r.subscribe(`undici:websocket:ping`,t=>{e(`ping received`)}),r.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)),n.exports={channels:c}})),Ze=t(((t,n)=>{var{InvalidArgumentError:r,NotSupportedError:i}=Q(),a=e(`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}=Xe(),{headerNameLowerCasedRecord:S}=qe(),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:n,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 r(`path must be a string`);if(t[0]!==`/`&&!(t.startsWith(`http://`)||t.startsWith(`https://`))&&n!==`CONNECT`)throw new r(`path must be an absolute URL or start with a slash`);if(C.test(t))throw new r(`invalid request path`);if(typeof n!=`string`)throw new r(`method must be a string`);if(y[n]===void 0&&!o(n))throw new r(`invalid request method`);if(E&&typeof E!=`string`)throw new r(`upgrade must be a string`);if(E&&!s(E))throw new r(`invalid upgrade header`);if(D!=null&&(!Number.isFinite(D)||D<0))throw new r(`invalid headersTimeout`);if(O!=null&&(!Number.isFinite(O)||O<0))throw new r(`invalid bodyTimeout`);if(k!=null&&typeof k!=`boolean`)throw new r(`invalid reset`);if(j!=null&&typeof j!=`boolean`)throw new r(`invalid expectContinue`);if(N!=null)throw new r(`invalid throwOnError`);if(P!=null&&P!==0)throw new r(`maxRedirections is not supported, use the redirect interceptor`);if(F!=null&&(!Number.isInteger(F)||F<0||F>255))throw new r(`typeOfService must be an integer between 0 and 255`);if(this.headersTimeout=D,this.bodyTimeout=O,this.method=n,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 r(`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??(n===`HEAD`||n===`GET`||n===`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 r(`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 r(`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 r(`headers must be an object or an array`);_(I,n,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,r=``){this.onFinally(),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.rawHeaders=t);let o=Array.isArray(t)?g(t):t,s=this[T].onRequestUpgrade?.(i,e,o,n);return this.aborted||(this.completed=!0,x.trailers.hasSubscribers&&x.trailers.publish({request:this,trailers:[]})),s}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,n){if(n&&typeof n==`object`&&!Array.isArray(n))throw new r(`invalid ${t} header`);if(n===void 0)return;let a=S[t];if(a===void 0&&(a=t.toLowerCase(),S[a]===void 0&&!o(a)))throw new r(`invalid header key`);if(Array.isArray(n)){let e=[];for(let i=0;i<n.length;i++)if(typeof n[i]==`string`){if(!s(n[i]))throw new r(`invalid ${t} header`);e.push(n[i])}else if(n[i]===null)e.push(``);else if(typeof n[i]==`object`)throw new r(`invalid ${t} header`);else{let a=`${n[i]}`;if(!s(a))throw new r(`invalid ${t} header`);e.push(a)}n=e}else if(typeof n==`string`){if(!s(n))throw new r(`invalid ${t} header`)}else if(n===null)n=``;else if(n=`${n}`,!s(n))throw new r(`invalid ${t} header`);if(a===`host`){if(e.host!==null)throw new r(`duplicate host header`);if(typeof n!=`string`)throw new r(`invalid host header`);e.host=n}else if(a===`content-length`){if(e.contentLength!==null)throw new r(`duplicate content-length header`);if(!w(n))throw new r(`invalid content-length header`);e.contentLength=parseInt(n,10)}else if(e.contentType===null&&a===`content-type`)e.contentType=n,e.headers.push(t,n);else if(a===`transfer-encoding`||a===`keep-alive`||a===`upgrade`)throw new r(`invalid ${a} header`);else if(a===`connection`){let t=typeof n==`string`?n:null;if(t===null)throw new r(`invalid connection header`);for(let n of t.toLowerCase().split(`,`)){let t=n.trim();if(!o(t))throw new r(`invalid connection header`);t===`close`&&(e.reset=!0)}}else if(a===`expect`)throw new i(`expect header not supported`);else e.headers.push(t,n)}n.exports=k})),Qe=t(((t,n)=>{var r=e(`node:events`),{kOriginless:i,kUrl:a}=Z();n.exports=class extends r{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[i]===!0?null:this[a]?.origin,r=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(r=e(r,n),r==null||typeof r!=`function`||r.length!==2)throw TypeError(`invalid interceptor`)}let o=r,s=this;return r=function(e,t){return e&&typeof e==`object`&&!e.origin&&s[a]&&(e=Object.assign({},e,{origin:s[a].origin})),o(e,t)},new Proxy(this,{get:(e,t)=>t===`dispatch`?r:e[t]})}}})),$e=t(((t,n)=>{var r=e(`node:buffer`),i=Qe(),{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`);n.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??r.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}}}})),et=t(((t,n)=>{var r=e(`node:net`),i=e(`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:t,preferH2:n,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,t??=!0,function({hostname:o,host:l,protocol:u,port:f,servername:h,localAddress:v,httpSocket:y},b){let x;if(u===`https:`){c||=e(`node:tls`),h=h||g.servername||a.getServerName(l)||null;let r=h||o;i(r);let s=m||_.get(r)||null;f||=443,x=c.connect({highWaterMark:16384,...g,servername:h,session:s,localAddress:v,ALPNProtocols:t?n?[`h2`,`http/1.1`]:[`http/1.1`,`h2`]:[`http/1.1`],socket:y,port:f,host:o}),x.on(`session`,function(e){_.set(r,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=r.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=r.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}n.exports=u})),tt=t((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))))}})),nt=t((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=tt();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}})),rt=t(((t,n)=>{var{Buffer:r}=e(`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(n,"exports",{get:()=>a||=r.from(i,`base64`)})})),it=t(((t,n)=>{var{Buffer:r}=e(`node:buffer`),i=`AGFzbQEAAAABJwdgAX8Bf2ADf39/AX9gAn9/AGABfwBgBH9/f38Bf2AAAGADf39/AALLAQgDZW52GHdhc21fb25faGVhZGVyc19jb21wbGV0ZQAEA2VudhV3YXNtX29uX21lc3NhZ2VfYmVnaW4AAANlbnYLd2FzbV9vbl91cmwAAQNlbnYOd2FzbV9vbl9zdGF0dXMAAQNlbnYUd2FzbV9vbl9oZWFkZXJfZmllbGQAAQNlbnYUd2FzbV9vbl9oZWFkZXJfdmFsdWUAAQNlbnYMd2FzbV9vbl9ib2R5AAEDZW52GHdhc21fb25fbWVzc2FnZV9jb21wbGV0ZQAAAzU0BQYAAAMAAAAAAAADAQMAAwMDAAACAAAAAAICAgICAgICAgIBAQEBAQEBAQEBAwAAAwAAAAQFAXABExMFAwEAAgYIAX8BQcDZBAsHxQcoBm1lbW9yeQIAC19pbml0aWFsaXplAAgZX19pbmRpcmVjdF9mdW5jdGlvbl90YWJsZQEAC2xsaHR0cF9pbml0AAkYbGxodHRwX3Nob3VsZF9rZWVwX2FsaXZlADcMbGxodHRwX2FsbG9jAAsGbWFsbG9jADkLbGxodHRwX2ZyZWUADARmcmVlAAwPbGxodHRwX2dldF90eXBlAA0VbGxodHRwX2dldF9odHRwX21ham9yAA4VbGxodHRwX2dldF9odHRwX21pbm9yAA8RbGxodHRwX2dldF9tZXRob2QAEBZsbGh0dHBfZ2V0X3N0YXR1c19jb2RlABESbGxodHRwX2dldF91cGdyYWRlABIMbGxodHRwX3Jlc2V0ABMObGxodHRwX2V4ZWN1dGUAFBRsbGh0dHBfc2V0dGluZ3NfaW5pdAAVDWxsaHR0cF9maW5pc2gAFgxsbGh0dHBfcGF1c2UAFw1sbGh0dHBfcmVzdW1lABgbbGxodHRwX3Jlc3VtZV9hZnRlcl91cGdyYWRlABkQbGxodHRwX2dldF9lcnJubwAaF2xsaHR0cF9nZXRfZXJyb3JfcmVhc29uABsXbGxodHRwX3NldF9lcnJvcl9yZWFzb24AHBRsbGh0dHBfZ2V0X2Vycm9yX3BvcwAdEWxsaHR0cF9lcnJub19uYW1lAB4SbGxodHRwX21ldGhvZF9uYW1lAB8SbGxodHRwX3N0YXR1c19uYW1lACAabGxodHRw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AXRrQT5qIQILIAEgAjYCHCABQgA3AhAgAkECdEH01wBqIQACQEHI1QAoAgAiA0EBIAJ0IgdxRQRAIAAgATYCAEHI1QAgAyAHcjYCACABIAA2AhggASABNgIIIAEgATYCDAwBCyAEQRkgAkEBdmtBACACQR9HG3QhAiAAKAIAIQACQANAIAAiAygCBEF4cSAERg0BIAJBHXYhACACQQF0IQIgAyAAQQRxakEQaiIHKAIAIgANAAsgByABNgIAIAEgAzYCGCABIAE2AgwgASABNgIIDAELIAMoAggiACABNgIMIAMgATYCCCABQQA2AhggASADNgIMIAEgADYCCAtB5NUAQeTVACgCAEEBayIAQX8gABs2AgALCwcAIAAtACgLBwAgAC0AKgsHACAALQArCwcAIAAtACkLBwAgAC8BNAsHACAALQAwC0ABBH8gACgCGCEBIAAvAS4hAiAALQAoIQMgACgCOCEEIAAQOCAAIAQ2AjggACADOgAoIAAgAjsBLiAAIAE2AhgLhocCAwd/A34BeyABIAJqIQQCQCAAIgMoAgwiAA0AIAMoAgQEQCADIAE2AgQLIwBBEGsiCSQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKAIcIgJBAmsO/AEB+QECAwQFBgcICQoLDA0ODxAREvgBE/cBFBX2ARYX9QEYGRobHB0eHyD9AfsBIfQBIiMkJSYnKCkqK/MBLC0uLzAxMvIB8QEzNPAB7wE1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk/6AVBRUlPuAe0BVOwBVesBVldYWVrqAVtcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG/AcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAekB6AHPAecB0AHmAdEB0gHTAdQB5QHVAdYB1wHYAdkB2gHbAdwB3QHeAd8B4AHhAeIB4wEA/AELQQAM4wELQQ4M4gELQQ0M4QELQQ8M4AELQRAM3wELQRMM3gELQRQM3QELQRUM3AELQRYM2wELQRcM2gELQRgM2QELQRkM2AELQRoM1wELQRsM1gELQRwM1QELQR0M1AELQR4M0wELQR8M0gELQSAM0QELQSEM0AELQQgMzwELQSIMzgELQSQMzQELQSMMzAELQQcMywELQSUMygELQSYMyQELQScMyAELQSgMxwELQRIMxgELQREMxQELQSkMxAELQSoMwwELQSsMwgELQSwMwQELQd4BDMABC0EuDL8BC0EvDL4BC0EwDL0BC0ExDLwBC0EyDLsBC0EzDLoBC0E0DLkBC0HfAQy4AQtBNQy3AQtBOQy2AQtBDAy1AQtBNgy0AQtBNwyzAQtBOAyyAQtBPgyxAQtBOgywAQtB4AEMrwELQQsMrgELQT8MrQELQTsMrAELQQoMqwELQTwMqgELQT0MqQELQeEBDKgBC0HBAAynAQtBwAAMpgELQcIADKUBC0EJDKQBC0EtDKMBC0HDAAyiAQtBxAAMoQELQcUADKABC0HGAAyfAQtBxwAMngELQcgADJ0BC0HJAAycAQtBygAMmwELQcsADJoBC0HMAAyZAQtBzQAMmAELQc4ADJcBC0HPAAyWAQtB0AAMlQELQdEADJQBC0HSAAyTAQtB0wAMkgELQdUADJEBC0HUAAyQAQtB1gAMjwELQdcADI4BC0HYAAyNAQtB2QAMjAELQdoADIsBC0HbAAyKAQtB3AAMiQELQd0ADIgBC0HeAAyHAQtB3wAMhgELQeAADIUBC0HhAAyEAQtB4gAMgwELQeMADIIBC0HkAAyBAQtB5QAMgAELQeIBDH8LQeYADH4LQecADH0LQQYMfAtB6AAMewtBBQx6C0HpAAx5C0EEDHgLQeoADHcLQesADHYLQewADHULQe0ADHQLQQMMcwtB7gAMcgtB7wAMcQtB8AAMcAtB8gAMbwtB8QAMbgtB8wAMbQtB9AAMbAtB9QAMawtB9gAMagtBAgxpC0H3AAxoC0H4AAxnC0H5AAxmC0H6AAxlC0H7AAxkC0H8AAxjC0H9AAxiC0H+AAxhC0H/AAxgC0GAAQxfC0GBAQxeC0GCAQxdC0GDAQxcC0GEAQxbC0GFAQxaC0GGAQxZC0GHAQxYC0GIAQxXC0GJAQxWC0GKAQxVC0GLAQxUC0GMAQxTC0GNAQxSC0GOAQxRC0GPAQxQC0GQAQxPC0GRAQxOC0GSAQxNC0GTAQxMC0GUAQxLC0GVAQxKC0GWAQxJC0GXAQxIC0GYAQxHC0GZAQxGC0GaAQxFC0GbAQxEC0GcAQxDC0GdAQxCC0GeAQxBC0GfAQxAC0GgAQw/C0GhAQw+C0GiAQw9C0GjAQw8C0GkAQw7C0GlAQw6C0GmAQw5C0GnAQw4C0GoAQw3C0GpAQw2C0GqAQw1C0GrAQw0C0GsAQwzC0GtAQwyC0GuAQwxC0GvAQwwC0GwAQwvC0GxAQwuC0GyAQwtC0GzAQwsC0G0AQwrC0G1AQwqC0G2AQwpC0G3AQwoC0G4AQwnC0G5AQwmC0G6AQwlC0G7AQwkC0G8AQwjC0G9AQwiC0G+AQwhC0G/AQwgC0HAAQwfC0HBAQweC0HCAQwdC0EBDBwLQcMBDBsLQcQBDBoLQcUBDBkLQcYBDBgLQccBDBcLQcgBDBYLQckBDBULQcoBDBQLQcsBDBMLQcwBDBILQc0BDBELQc4BDBALQc8BDA8LQdABDA4LQdEBDA0LQdIBDAwLQdMBDAsLQdQBDAoLQdUBDAkLQdYBDAgLQeMBDAcLQdcBDAYLQdgBDAULQdkBDAQLQdoBDAMLQdsBDAILQd0BDAELQdwBCyECA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAMCfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACfwJAAkACQAJAAkACQAJAAn8CQAJAAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAwJ/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(n,"exports",{get:()=>a||=r.from(i,`base64`)})})),at=t(((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}})),ot=t(((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}})),st=t(((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}})),ct=t(((t,n)=>{var r=e(`node:assert`),{utf8DecodeBytes:i}=st();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 r(!d.test(e)),e}var p=/[^\x00-\x7F]/;function m(e){return p.test(e)?e.replace(/[A-Z]+/g,e=>e.toLowerCase()):e.toLowerCase()}function h(e){return JSON.parse(i(e))}function g(e,t=!0,n=!0){return _(e,t,n,l)}function _(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>=i&&r(e.charCodeAt(a));)a--;return i===0&&a===e.length-1?e:e.slice(i,a+1)}function v(e){let t=JSON.stringify(e);if(t===void 0)throw TypeError(`Value is not JSON serializable`);return r(typeof t==`string`),t}n.exports={asciiLowercase:m,collectASequenceOfCodePoints:a,collectASequenceOfCodePointsFast:o,forgivingBase64:c,isASCIIWhitespace:l,isomorphicDecode:u,isomorphicEncode:f,parseJSONFromBytes:h,removeASCIIWhitespace:g,removeChars:_,serializeJavascriptValueToJSONString:v}})),lt=t(((t,n)=>{var r=e(`node:assert`),{asciiLowercase:i,forgivingBase64:a,collectASequenceOfCodePoints:o,collectASequenceOfCodePointsFast:s,isomorphicDecode:c,removeASCIIWhitespace:l,removeChars:u}=ct(),d=new TextEncoder,f=/^[-!#$%&'*+.^_`|~A-Za-z0-9]+$/u,p=/[\u000A\u000D\u0009\u0020]/u,m=/^[\u0009\u0020-\u007E\u0080-\u00FF]+$/u;function h(e){r(e.protocol===`data:`);let t=g(e,!0);t=t.slice(5);let n={position:0},i=s(`,`,t,n),o=i.length;if(i=l(i,!0,!0),n.position>=t.length)return`failure`;n.position++;let u=_(t.slice(o+1));if(/;\u0020*[Bb][Aa][Ss][Ee]64$/u.test(i)){if(u=a(c(u)),u===`failure`)return`failure`;i=i.slice(0,-6),i=i.replace(/(\u0020+)$/u,``),i=i.slice(0,-1)}i.startsWith(`;`)&&(i=`text/plain`+i);let d=x(i);return d===`failure`&&(d=x(`text/plain;charset=US-ASCII`)),{mimeType:d,body:u}}function g(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 _(e){return b(d.encode(e))}function v(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function y(e){return e>=48&&e<=57?e-48:(e&223)-55}function b(e){let t=e.length,n=new Uint8Array(t),r=0,i=0;for(;i<t;){let t=e[i];t===37?t===37&&!(v(e[i+1])&&v(e[i+2]))?n[r++]=37:(n[r++]=y(e[i+1])<<4|y(e[i+2]),i+=2):n[r++]=t,++i}return t===r?n:n.subarray(0,r)}function x(e){e=T(e,!0,!0);let t={position:0},n=s(`/`,e,t);if(n.length===0||!f.test(n)||t.position>=e.length)return`failure`;t.position++;let r=s(`;`,e,t);if(r=T(r,!1,!0),r.length===0||!f.test(r))return`failure`;let a=i(n),c=i(r),l={type:a,subtype:c,parameters:new Map,essence:`${a}/${c}`};for(;t.position<e.length;){t.position++,o(e=>p.test(e),e,t);let n=o(e=>e!==`;`&&e!==`=`,e,t);if(n=i(n),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=S(e,t,!0),s(`;`,e,t);else if(r=s(`;`,e,t),r=T(r,!1,!0),r.length===0)continue;n.length!==0&&f.test(n)&&(r.length===0||m.test(r))&&!l.parameters.has(n)&&l.parameters.set(n,r)}return l}function S(e,t,n=!1){let i=t.position,a=``;for(r(e[t.position]===`"`),t.position++;a+=o(e=>e!==`"`&&e!==`\\`,e,t),!(t.position>=e.length);){let n=e[t.position];if(t.position++,n===`\\`){if(t.position>=e.length){a+=`\\`;break}a+=e[t.position],t.position++}else{r(n===`"`);break}}return n?a:e.slice(i,t.position)}function C(e){r(e!==`failure`);let{parameters:t,essence:n}=e,i=n;for(let[e,n]of t.entries())i+=`;`,i+=e,i+=`=`,f.test(n)||(n=n.replace(/[\\"]/gu,`\\$&`),n=`"`+n,n+=`"`),i+=n;return i}function w(e){return e===13||e===10||e===9||e===32}function T(e,t=!0,n=!0){return u(e,t,n,w)}function E(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`:``}n.exports={dataURLProcessor:h,URLSerializer:g,stringPercentDecode:_,parseMIMEType:x,collectAnHTTPQuotedString:S,serializeAMimeType:C,removeHTTPWhitespace:T,minimizeSupportedMimeType:E,HTTP_TOKEN_CODEPOINTS:f}})),ut=t(((t,n)=>{var r=e(`node:assert`),{types:i,inspect:a}=e(`node:util`),{markAsUncloneable:o}=e(`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(!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,n=t,a=0,o=0;if(i.isTypedArray(t)||i.isDataView(t)?(n=t.buffer,a=t.byteOffset,o=t.byteLength):(r(i.isAnyArrayBuffer(t)),o=t.byteLength),n.detached)return new Uint8Array;let s=new Uint8Array(o),c=new Uint8Array(n,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},n.exports={webidl:g}})),dt=t(((t,n)=>{var{Transform:r}=e(`node:stream`),i=e(`node:zlib`),{redirectStatusSet:a,referrerPolicyTokens:o,badPortsSet:s}=at(),{getGlobalOrigin:c}=ot(),{collectAnHTTPQuotedString:l,parseMIMEType:u}=lt(),{performance:d}=e(`node:perf_hooks`),{isValidHTTPToken:f,normalizedMethodRecordsBase:p}=$(),m=e(`node:assert`),{isUint8Array:h}=e(`node:util/types`),{webidl:g}=ut(),{isomorphicEncode:_,collectASequenceOfCodePoints:v,removeChars:y}=ct();function b(e){let t=e.urlList,n=t.length;return n===0?null:t[n-1].toString()}function x(e,t){if(!a.has(e.status))return null;let n=e.headersList.get(`location`,!0);return n!==null&&k(n)&&(S(n)||(n=C(n)),n=new URL(n,b(e))),n&&!n.hash&&(n.hash=t),n}function S(e){for(let t=0;t<e.length;++t){let n=e.charCodeAt(t);if(n>126||n<32)return!1}return!0}function C(e){return Buffer.from(e,`binary`).toString(`utf8`)}function w(e){return e.urlList[e.urlList.length-1]}function T(e){let t=w(e);return pe(t)&&s.has(t.port)?`blocked`:`allowed`}function E(e){return e instanceof Error||e?.constructor?.name===`Error`||e?.constructor?.name===`DOMException`}function D(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 O=f;function k(e){return(e[0]===` `||e[0]===` `||e[e.length-1]===` `||e[e.length-1]===` `||e.includes(`
|
|
2
|
+
`)||e.includes(`\r`)||e.includes(`\0`))===!1}function A(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 j(e,t){let n=A(t);n!==``&&(e.referrerPolicy=n)}function M(){return`allowed`}function N(){return`success`}function P(){return`success`}function F(e){if(!G(w(e)))return;let t=null;t=e.mode,e.headersList.set(`sec-fetch-mode`,t,!0)}function I(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&&fe(e.origin)&&!fe(w(e))&&(t=null);break;case`same-origin`:q(e,w(e))||(t=null)}e.headersList.append(`origin`,t,!0)}}}function L(e,t){return e}function R(e,t,n){return!e?.startTime||e.startTime<t?{domainLookupStartTime:t,domainLookupEndTime:t,connectionStartTime:t,connectionEndTime:t,secureConnectionStartTime:t,ALPNNegotiatedProtocol:e?.ALPNNegotiatedProtocol}:{domainLookupStartTime:L(e.domainLookupStartTime,n),domainLookupEndTime:L(e.domainLookupEndTime,n),connectionStartTime:L(e.connectionStartTime,n),connectionEndTime:L(e.connectionEndTime,n),secureConnectionStartTime:L(e.secureConnectionStartTime,n),ALPNNegotiatedProtocol:e.ALPNNegotiatedProtocol}}function z(e){return L(d.now(),e)}function ee(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 B(){return{referrerPolicy:`strict-origin-when-cross-origin`}}function te(e){return{referrerPolicy:e.referrerPolicy}}function V(e){let t=e.referrerPolicy;m(t);let n=null;if(e.referrer===`client`){let e=c();if(!e||e.origin===`null`)return`no-referrer`;n=new URL(e)}else g.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=w(e);return G(r)&&!G(t)?`no-referrer`:i}case`strict-origin-when-cross-origin`:{let t=w(e);return q(r,t)?r:G(r)&&!G(t)?`no-referrer`:i}case`same-origin`:return q(e,r)?r:`no-referrer`;case`origin-when-cross-origin`:return q(e,r)?r:i;case`no-referrer-when-downgrade`:{let t=w(e);return G(r)&&!G(t)?`no-referrer`:r}}}function H(e,t=!1){return m(g.is.URL(e)),e=new URL(e),Y(e)?`no-referrer`:(e.username=``,e.password=``,e.hash=``,t===!0&&(e.pathname=``,e.search=``),e)}var ne=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)$/),re=RegExp.prototype.test.bind(/^(?:(?:0{1,4}:){7}|(?:0{1,4}:){1,6}:|::)0{0,3}1$/);function U(e){return e.includes(`:`)?(e[0]===`[`&&e[e.length-1]===`]`&&(e=e.slice(1,-1)),re(e)):ne(e)}function W(e){return e==null||e===`null`?!1:(e=new URL(e),!!(e.protocol===`https:`||e.protocol===`wss:`||U(e.hostname)||e.hostname===`localhost`||e.hostname===`localhost.`||e.hostname.endsWith(`.localhost`)||e.hostname.endsWith(`.localhost.`)||e.protocol===`file:`))}function G(e){return g.is.URL(e)?e.href===`about:blank`||e.href===`about:srcdoc`||e.protocol===`data:`||e.protocol===`blob:`||W(e.origin):!1}function K(e){}function q(e,t){return e.origin===t.origin&&e.origin===`null`||e.protocol===t.protocol&&e.hostname===t.hostname&&e.port===t.port}function ie(e){return e.controller.state===`aborted`}function ae(e){return e.controller.state===`aborted`||e.controller.state===`terminated`}function oe(e){return p[e.toLowerCase()]??e}var J=Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()));function se(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,J),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 ce(e,t,n,r=0,i=1,a){let o=se(e,n,r,i),s={keys:{writable:!0,enumerable:!0,configurable:!0,value:function(){return g.brandCheck(this,a),o(this,`key`)}},values:{writable:!0,enumerable:!0,configurable:!0,value:function(){return g.brandCheck(this,a),o(this,`value`)}},entries:{writable:!0,enumerable:!0,configurable:!0,value:function(){return g.brandCheck(this,a),o(this,`key+value`)}},forEach:{writable:!0,enumerable:!0,configurable:!0,value:function(t,n=globalThis){if(g.brandCheck(this,a),g.argumentLengthCheck(arguments,1,`${e}.forEach`),typeof t!=`function`)throw TypeError(`Failed to execute 'forEach' on '${e}': parameter 1 is not of type 'Function'.`);for(let{0:e,1:r}of o(this,`key+value`))t.call(n,r,e,this)}}};return Object.defineProperties(t.prototype,{...s,[Symbol.iterator]:{writable:!0,enumerable:!1,configurable:!0,value:s.entries.value}})}function le(e,t,n){let r=t,i=n;try{de(e.stream.getReader(),r,i)}catch(e){i(e)}}function ue(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 de(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(!h(o)){n(TypeError(`Received non-Uint8Array chunk`));return}r.push(o),i+=o.length}while(1)}catch(e){n(e)}}function Y(e){m(`protocol`in e);let t=e.protocol;return t===`about:`||t===`blob:`||t===`data:`}function fe(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 pe(e){m(`protocol`in e);let t=e.protocol;return t===`http:`||t===`https:`}function X(e,t){let n=e;if(!n.startsWith(`bytes`))return`failure`;let r={position:5};if(t&&v(e=>e===` `||e===` `,n,r),n.charCodeAt(r.position)!==61)return`failure`;r.position++,t&&v(e=>e===` `||e===` `,n,r);let i=v(e=>{let t=e.charCodeAt(0);return t>=48&&t<=57},n,r),a=i.length?Number(i):null;if(t&&v(e=>e===` `||e===` `,n,r),n.charCodeAt(r.position)!==45)return`failure`;r.position++,t&&v(e=>e===` `||e===` `,n,r);let o=v(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 me(e,t,n){let r=`bytes `;return r+=_(`${e}`),r+=`-`,r+=_(`${t}`),r+=`/`,r+=_(`${n}`),r}var he=class extends r{#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 ge(e){return new he(e)}function _e(e){let t=null,n=null,r=null,i=ye(`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 ve(e){let t=e,n={position:0},r=[],i=``;for(;n.position<t.length;){if(i+=v(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 m(t.charCodeAt(n.position)===44),n.position++}i=y(i,!0,!0,e=>e===9||e===32),r.push(i),i=``}return r}function ye(e,t){let n=t.get(e,!0);return n===null?null:ve(n)}function be(e){return!1}function xe(e){return!!(e.username||e.password)}function Se(e){return e!=null&&e!==`client`&&e!==`no-traversable`}var Ce=class{get baseUrl(){return c()}get origin(){return this.baseUrl?.origin}policyContainer=B()};n.exports={isAborted:ie,isCancelled:ae,isValidEncodedURL:S,tryUpgradeRequestToAPotentiallyTrustworthyURL:K,clampAndCoarsenConnectionTimingInfo:R,coarsenedSharedCurrentTime:z,determineRequestsReferrer:V,makePolicyContainer:B,clonePolicyContainer:te,appendFetchMetadata:F,appendRequestOriginHeader:I,TAOCheck:P,corsCheck:N,crossOriginResourcePolicyCheck:M,createOpaqueTimingInfo:ee,setRequestReferrerPolicyOnRedirect:j,isValidHTTPToken:f,requestBadPort:T,requestCurrentURL:w,responseURL:b,responseLocationURL:x,isURLPotentiallyTrustworthy:G,isValidReasonPhrase:D,sameOrigin:q,normalizeMethod:oe,iteratorMixin:ce,createIterator:se,isValidHeaderName:O,isValidHeaderValue:k,isErrorLike:E,fullyReadBody:le,readableStreamClose:ue,urlIsLocal:Y,urlHasHttpsScheme:fe,urlIsHttpHttpsScheme:pe,readAllBytes:de,simpleRangeHeaderValue:X,buildContentRange:me,createInflate:ge,extractMimeType:_e,getDecodeSplit:ye,environmentSettingsObject:new class{settingsObject=new Ce},isOriginIPPotentiallyTrustworthy:U,hasAuthenticationEntry:be,includesCredentials:xe,isTraversableNavigable:Se}})),ft=t(((t,n)=>{var r={__proto__:null,"node:crypto":()=>e(`node:crypto`),"node:sqlite":()=>e(`node:sqlite`)};function i(e){try{return r[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}};n.exports.runtimeFeatures=s,n.exports.default=s})),pt=t(((t,n)=>{var{iteratorMixin:r}=dt(),{kEnumerableProperty:i}=$(),{webidl:a}=ut(),o=e(`node:util`),{runtimeFeatures:s}=ft(),c=s.has(`crypto`)?e(`node:crypto`).randomInt:e=>Math.floor(Math.random()*e),l,u,d,f=class{#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(e,t,n=void 0){a.brandCheck(this,a.is.FormData);let r=`FormData.append`;a.argumentLengthCheck(arguments,2,r),e=a.converters.USVString(e),arguments.length===3||a.is.Blob(t)?(t=a.converters.Blob(t,r,`value`),n!==void 0&&(n=a.converters.USVString(n))):t=a.converters.USVString(t);let i=p(e,t,n);this.#e.push(i)}delete(e){a.brandCheck(this,a.is.FormData),a.argumentLengthCheck(arguments,1,`FormData.delete`),e=a.converters.USVString(e),this.#e=this.#e.filter(t=>t.name!==e)}get(e){a.brandCheck(this,a.is.FormData),a.argumentLengthCheck(arguments,1,`FormData.get`),e=a.converters.USVString(e);let t=this.#e.findIndex(t=>t.name===e);return t===-1?null:this.#e[t].value}getAll(e){return a.brandCheck(this,a.is.FormData),a.argumentLengthCheck(arguments,1,`FormData.getAll`),e=a.converters.USVString(e),this.#e.filter(t=>t.name===e).map(e=>e.value)}has(e){return a.brandCheck(this,a.is.FormData),a.argumentLengthCheck(arguments,1,`FormData.has`),e=a.converters.USVString(e),this.#e.findIndex(t=>t.name===e)!==-1}set(e,t,n=void 0){a.brandCheck(this,a.is.FormData);let r=`FormData.set`;a.argumentLengthCheck(arguments,2,r),e=a.converters.USVString(e),arguments.length===3||a.is.Blob(t)?(t=a.converters.Blob(t,r,`value`),n!==void 0&&(n=a.converters.USVString(n))):t=a.converters.USVString(t);let i=p(e,t,n),o=this.#e.findIndex(t=>t.name===e);o===-1?this.#e.push(i):this.#e=[...this.#e.slice(0,o),i,...this.#e.slice(o+1).filter(t=>t.name!==e)]}[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{l=e=>e.#e,u=(e,t)=>{e.#e=t},d=e=>e.#t??=`----formdata-undici-0${`${c(1e11)}`.padStart(11,`0`)}`,a.is.FormData=e=>typeof e==`object`&&!!e&&#e in e}};r(`FormData`,f,l,`name`,`value`,a.is.FormData),Object.defineProperties(f.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}}n.exports={FormData:f,makeEntry:p,setFormDataState:u,getFormDataBoundary:d}})),mt=t(((t,n)=>{var{bufferToLowerCasedHeaderName:r}=$(),{HTTP_TOKEN_CODEPOINTS:i}=lt(),{makeEntry:a}=pt(),{webidl:o}=ut(),s=e(`node:assert`),{isomorphicDecode:c}=ct(),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,`
|
|
3
|
+
`).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 n=null,a=null,o=null,s=null;for(;;){if(e[t.position]===13&&e[t.position+1]===10){if(n===null)throw b(`header name is null`);return{name:n,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),r(l)){case`content-disposition`:{n=a=null;let r=!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`?n=i.value:i.name===`filename`&&(i.extended?(a=i.value,r=!0):r||(a=i.value))}if(n===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)}n.exports={multipartFormDataParser:m,validateBoundary:p}})),ht=t(((t,n)=>{var r=$(),{readableStreamClose:i,fullyReadBody:a,extractMimeType:o}=dt(),{FormData:s,setFormDataState:c,getFormDataBoundary:l}=pt(),{webidl:u}=ut(),d=e(`node:assert`),{isErrored:f,isDisturbed:p}=e(`node:stream`),{isUint8Array:m}=e(`node:util/types`),{serializeAMimeType:h}=lt(),{multipartFormDataParser:g}=mt(),{parseJSONFromBytes:_}=ct(),{utf8DecodeBytes:v}=st(),{ReadableStreamTee:y}=e(`node:stream/web`),b=new TextEncoder;function x(){}var S=new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&!p(t)&&!f(t)&&t.cancel(`Response object has been garbage collected`).catch(x)});function C(e,t=!1){let n=null,a=null;n=u.is.ReadableStream(e)?e:u.is.Blob(e)?e.stream():new ReadableStream({pull(){},start(e){a=e},cancel(){},type:`bytes`}),d(u.is.ReadableStream(n));let o=null,s=null,c=null,p=null;if(typeof e==`string`)s=e,p=`text/plain;charset=UTF-8`;else if(u.is.URLSearchParams(e))s=e.toString(),p=`application/x-www-form-urlencoded;charset=UTF-8`;else if(u.is.BufferSource(e))s=u.util.getCopyOfBytesHeldByBufferSource(e);else if(u.is.FormData(e)){let t=l(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
|
|
4
|
+
`),a=[],u=new Uint8Array([13,10]);c=0;let d=!1;for(let[t,o]of e)if(typeof o==`string`){let e=b.encode(n+`; name="${r(i(t))}"\r\n\r\n${i(o)}\r\n`);a.push(e),c+=e.byteLength}else{let e=b.encode(`${n}; name="${r(i(t))}"`+(o.name?`; filename="${r(o.name)}"`:``)+`\r
|
|
5
|
+
Content-Type: ${o.type||`application/octet-stream`}\r\n\r\n`);a.push(e,o,u),typeof o.size==`number`?c+=e.byteLength+o.size+u.byteLength:d=!0}let f=b.encode(`--${t}--\r\n`);a.push(f),c+=f.byteLength,d&&(c=null),s=e,o=async function*(){for(let e of a)e.stream?yield*e.stream():yield e},p=`multipart/form-data; boundary=${t}`}else if(u.is.Blob(e))s=e,c=e.size,e.type&&(p=e.type);else if(typeof e[Symbol.asyncIterator]==`function`){if(t)throw TypeError(`keepalive`);if(r.isDisturbed(e)||e.locked)throw TypeError(`Response body object should not be disturbed or locked`);n=u.is.ReadableStream(e)?e:ReadableStream.from(e).pipeThrough(new TransformStream({transform(e,t){let n=m(e)?e:Buffer.from(e);n.byteLength&&t.enqueue(n)}}))}return(typeof s==`string`||m(s))&&(o=()=>(c=typeof s==`string`?Buffer.byteLength(s):s.length,s)),o!=null&&(async()=>{let e=o(),t=e?.[Symbol.asyncIterator]?.();if(t)for await(let e of t){if(f(n))break;e.length&&a.enqueue(new Uint8Array(e))}else e?.length&&!f(n)&&a.enqueue(typeof e==`string`?b.encode(e):new Uint8Array(e));queueMicrotask(()=>i(a))})(),[{stream:n,source:s,length:c},p]}function w(e,t=!1){return u.is.ReadableStream(e)&&(d(!r.isDisturbed(e),`The body has already been consumed.`),d(!e.locked,`The stream is locked.`)),C(e,t)}function T(e){let{0:t,1:n}=y?.(e.stream,!0)??e.stream.tee();return e.stream=t,{stream:n,length:e.length,source:e.source}}function E(e,t){return{blob(){return O(this,e=>{let n=A(t(this));return n===null?n=``:n&&=h(n),new Blob([e],{type:n})},e,t)},arrayBuffer(){return O(this,e=>new Uint8Array(e).buffer,e,t)},text(){return O(this,v,e,t)},json(){return O(this,_,e,t)},formData(){return O(this,e=>{let n=A(t(this));if(n!==null)switch(n.essence){case`multipart/form-data`:{let t=g(e,n),r=new s;return c(r,t),r}case`application/x-www-form-urlencoded`:{let t=new URLSearchParams(e.toString()),n=new s;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 O(this,e=>new Uint8Array(e),e,t)},textStream(){let e=t(this);if(k(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 D(e,t,n){Object.assign(e.prototype,E(n,t))}function O(e,t,n,r){try{u.brandCheck(e,n)}catch(e){return Promise.reject(e)}if(e=r(e),k(e))return Promise.reject(TypeError(`Body is unusable: Body has already been read`));let i=Promise.withResolvers(),o=i.reject,s=e=>{try{i.resolve(t(e))}catch(e){o(e)}};return e.body==null?(s(Buffer.allocUnsafe(0)),i.promise):(a(e.body,s,o),i.promise)}function k(e){let t=e.body;return t!=null&&(t.stream.locked||r.isDisturbed(t.stream))}function A(e){let t=e.headersList,n=o(t);return n===`failure`?null:n}n.exports={extractBody:C,safelyExtractBody:w,cloneBody:T,mixinBody:D,streamRegistry:S,bodyUnusable:k}})),gt=t(((t,n)=>{var r=e(`node:assert`),i=$(),{channels:a}=Xe(),o=Ke(),{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:H,kMaxResponseSize:ne,kOnError:re,kResume:U,kHTTPContext:W,kClosed:G}=Z(),K=nt(),q=Buffer.alloc(0),ie=Buffer[Symbol.species],ae=i.removeAllListeners,oe=Symbol(`kIdleSocketValidation`),J=Symbol(`kIdleSocketValidationTimeout`),se=Symbol(`kSocketUsed`),ce=Symbol(`kTypeOfService`),le;function ue(){let e=process.env.JEST_WORKER_ID?rt():void 0,t,n=!0;if(process.arch===`ppc64`){let[e,t]=process.versions.node.split(`.`).map(e=>parseInt(e,10));(e<24||e===24&&t<12)&&(n=!1)}if(process.env.UNDICI_NO_WASM_SIMD===`1`?n=!1:process.env.UNDICI_NO_WASM_SIMD===`0`&&(n=!0),n)try{t=new WebAssembly.Module(it())}catch{}return t||=new WebAssembly.Module(e||rt()),new WebAssembly.Instance(t,{env:{wasm_on_url:(e,t,n)=>0,wasm_on_status:(e,t,n)=>{r(Y.ptr===e);let i=t-X+fe.byteOffset;return Y.onStatus(new ie(fe.buffer,i,n))},wasm_on_message_begin:e=>(r(Y.ptr===e),Y.onMessageBegin()),wasm_on_header_field:(e,t,n)=>{r(Y.ptr===e);let i=t-X+fe.byteOffset;return Y.onHeaderField(new ie(fe.buffer,i,n))},wasm_on_header_value:(e,t,n)=>{r(Y.ptr===e);let i=t-X+fe.byteOffset;return Y.onHeaderValue(new ie(fe.buffer,i,n))},wasm_on_headers_complete:(e,t,n,i)=>(r(Y.ptr===e),Y.onHeadersComplete(t,n===1,i===1)),wasm_on_body:(e,t,n)=>{r(Y.ptr===e);let i=t-X+fe.byteOffset;return Y.onBody(new ie(fe.buffer,i,n))},wasm_on_message_complete:e=>(r(Y.ptr===e),Y.onMessageComplete())}})}var de=null,Y=null,fe=null,pe=0,X=null,me=null,he=1,ge=3,_e=5,ve=8,ye=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[ne]}setTimeout(e,t){e!==this.timeoutValue||t&he^this.timeoutType&he?(this.timeout&&=(o.clearTimeout(this.timeout),null),e&&(t&he?this.timeout=o.setFastTimeout(be,e,this.timeoutWeakRef):(this.timeout=setTimeout(be,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&&(r(this.ptr!=null),r(Y===null),this.llhttp.llhttp_resume(this.ptr),r(this.timeoutType===_e),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),this.paused=!1,this.execute(this.socket.read()||q),this.readMore())}readMore(){for(;!this.paused&&this.ptr;){let e=this.socket.read();if(e===null)break;this.execute(e)}}execute(e){r(Y===null),r(this.ptr!=null),r(!this.paused);let{socket:t,llhttp:n}=this;e.length>pe&&(X&&n.free(X),pe=Math.ceil(e.length/4096)*4096,X=n.malloc(pe)),(me===null||me.buffer!==n.memory.buffer||me.byteOffset!==X||me.byteLength!==pe)&&(me=new Uint8Array(n.memory.buffer,X,pe)),me.set(e);try{let r;try{fe=e,Y=this,r=n.llhttp_execute(this.ptr,X,e.length)}finally{Y=null,fe=null}if(r!==K.ERROR.OK){let i=e.subarray(n.llhttp_get_error_pos(this.ptr)-X);if(r===K.ERROR.PAUSED_UPGRADE)this.onUpgrade(i);else if(r===K.ERROR.PAUSED)this.paused=!0,t.unshift(i);else throw this.createError(r,i)}}catch(e){i.destroy(t,e)}}finish(){r(Y===null),r(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()||q,this.execute(t);while(this.paused&&t.length>0);this.paused&&=(e.llhttp_resume(this.ptr),!1)}let t;try{Y=this,t=e.llhttp_finish(this.ptr)}finally{Y=null}return t===K.ERROR.OK?null:t===K.ERROR.PAUSED||t===K.ERROR.PAUSED_UPGRADE?(this.paused=!0,null):this.createError(t,q)}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(){r(Y===null),r(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:n,socket:a,headers:o,statusCode:s,statusText:c}=this;r(t),r(n[F]===a),r(!a.destroyed),r(!this.paused),r(!(o.length&1));let l=n[D][n[M]];r(l),r(l.upgrade||l.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,ae(a),n[F]=null,n[W]=null,n[D][n[M]++]=null,n.emit(`disconnect`,n[v],[n],new m(`upgrade`));try{l.onRequestUpgrade(s,o,a,c)}catch(e){i.errorRequest(n,l,e),i.destroy(a,e)}n[U]()}onHeadersComplete(e,t,n){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(r(!this.upgrade),r(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(r(this.timeoutType===ge),this.statusCode=e,this.shouldKeepAlive=n||l.method===`HEAD`&&!o[y]&&this.connectionKeepAlive,this.statusCode>=200){let e=l.bodyTimeout==null?a[B]:l.bodyTimeout;this.setTimeout(e,_e)}else this.timeout&&this.timeout.refresh&&this.timeout.refresh();if(l.method===`CONNECT`||t)return r(a[C]===1),this.upgrade=!0,2;if(r(!(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[U]()),u?K.ERROR.PAUSED:0)}onBody(e){let{client:t,socket:n,statusCode:a,maxResponseSize:o}=this;if(n.destroyed)return-1;let s=t[D][t[M]];return r(s),r(this.timeoutType===_e),this.timeout&&this.timeout.refresh&&this.timeout.refresh(),r(a>=200),o>-1&&this.bytesRead+e.length>o?(i.destroy(n,new _),-1):(this.bytesRead+=e.length,s.onResponseData(e)===!1?K.ERROR.PAUSED:0)}onMessageComplete(){let{client:e,socket:t,statusCode:n,upgrade:a,headers:o,contentLength:s,bytesRead:l,shouldKeepAlive:u}=this;if(t.destroyed&&(!n||u))return-1;if(a)return 0;r(n>=100),r(!(this.headers.length&1));let d=e[D][e[M]];return r(d),this.statusCode=0,this.statusText=``,this.bytesRead=0,this.contentLength=-1,this.keepAlive=``,this.connectionKeepAlive=!1,this.headers=[],this.headersSize=0,n<200?0:d.method!==`HEAD`&&s!==-1&&l!==s?(i.destroy(t,new c),-1):(d.onResponseEnd(o),e[D][e[M]++]=null,t[se]=e[w]===0,t[E]?(r(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[U]):e[U](),0))}};function be(e){let t=e.deref();if(!t)return;let{socket:n,timeoutType:a,client:o,paused:s}=t;a===ge?(!n[E]||n.writableNeedDrain||o[C]>1)&&(r(!s,`cannot be paused while waiting for headers`),i.destroy(n,new d)):a===_e?s||i.destroy(n,new h):a===ve&&(r(o[C]===0&&o[I]),i.destroy(n,new m(`socket idle timeout`)))}function xe(e,t){if(e[F]=t,de||=ue(),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[oe]=0,t[J]=null,t[se]=!1,t[x]=new ye(e,t,de),i.addListener(t,`error`,Se),i.addListener(t,`readable`,Ce),i.addListener(t,`end`,we),i.addListener(t,`close`,Te),t[G]=!1,t.on(`close`,Ee),{version:`h1`,defaultPipelining:1,write(t){return Me(e,t)},resume(){ke(e)},destroy(e,n){t[G]?queueMicrotask(n):(t.on(`close`,n),t.destroy(e))},get destroyed(){return t.destroyed},busy(n){return!!(t[E]||t[y]||t[S]||t[oe]===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 Se(e){r(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][re](e));return}this[N]=e,this[b][re](e)}function Ce(){this[x]?.readMore()}function we(){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 Te(){let e=this[x];De(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)),n=this[b];if(n[F]=null,n[W]=null,n.destroyed){r(n[w]===0);let e=n[D].splice(n[M]);for(let r=0;r<e.length;r++){let a=e[r];i.errorRequest(n,a,t)}}else if(n[C]>0&&t.code!==`UND_ERR_INFO`){let e=n[D][n[M]];n[D][n[M]++]=null,i.errorRequest(n,e,t)}n[j]=n[M],r(n[C]===0),n.emit(`disconnect`,n[v],[n],t),n[U]()}function Ee(){this[G]=!0}function De(e){e[J]&&(clearImmediate(e[J]),e[J]=null),e[oe]=0}function Oe(e,t){t[oe]=1,t[J]=setImmediate(()=>{t[J]=null,t[oe]=2,e[F]===t&&!t.destroyed&&e[U]()})}function ke(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[se]){if(t[oe]===0){Oe(e,t),t[x].readMore(),t.destroyed;return}if(t[oe]===1){t[x].readMore(),t.destroyed;return}}if(e[C]===0&&(t[x].readMore(),t.destroyed))return;if(e[T]===0)t[x].timeoutType!==ve&&t[x].setTimeout(e[I],ve);else if(e[C]>0&&t[x].statusCode<200&&t[x].timeoutType!==ge){let n=e[D][e[M]],r=n.headersTimeout==null?e[ee]:n.headersTimeout;t[x].setTimeout(r,ge)}}}function Ae(e){return e!==`GET`&&e!==`HEAD`&&e!==`OPTIONS`&&e!==`TRACE`&&e!==`CONNECT`}function je(e,t){if(typeof e.setTypeOfService!=`function`)return;let n=t.typeOfService;if(n!==void 0&&e[ce]!==n)try{e.setTypeOfService(n),e[ce]=n}catch{}}function Me(e,t){let{method:n,path:o,host:c,upgrade:d,blocking:f,reset:p}=t,{body:h,headers:g,contentLength:_}=t,v=n===`PUT`||n===`POST`||n===`PATCH`||n===`QUERY`||n===`PROPFIND`||n===`PROPPATCH`;if(i.isFormDataLike(h)){le||=ht().extractBody;let[e,n]=le(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),Ae(n)&&_>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];De(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;n===`HEAD`&&(x[y]=!0),(d||n===`CONNECT`)&&(x[y]=!0),p!=null&&(x[y]=p),e[V]&&++x[H]>=e[V]&&(x[y]=!0),f&&(x[S]=!0),je(x,t);let w=`${n} ${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
|
|
6
|
+
`:w+=`connection: close\r
|
|
7
|
+
`,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?Pe(C,null,e,t,x,_,w,v):i.isBuffer(h)?Pe(C,h,e,t,x,_,w,v):i.isBlobLike(h)?typeof h.stream==`function`?Ie(C,h.stream(),e,t,x,_,w,v):Fe(C,h,e,t,x,_,w,v):i.isStream(h)?Ne(C,h,e,t,x,_,w,v):i.isIterable(h)?Ie(C,h,e,t,x,_,w,v):r(!1),!0}function Ne(e,t,n,a,o,s,c,u){r(s!==0||n[C]===0,`stream body cannot be pipelined`);let d=!1,f=new Le({abort:e,socket:o,request:a,contentLength:s,client:n,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,r(o.destroyed||o[E]&&n[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 Pe(e,t,n,a,o,s,c,l){try{t?i.isBuffer(t)&&(r(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`):(r(s===null,`no body must not have content length`),o.write(`${c}\r\n`,`latin1`)),a.onRequestSent(),n[U]()}catch(t){e(t)}}async function Fe(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[U]()}catch(t){e(t)}}async function Ie(e,t,n,i,a,o,s,c){r(o!==0||n[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)=>{r(l===null),a[N]?t(a[N]):l=e});a.on(`close`,u).on(`drain`,u);let f=new Le({abort:e,socket:a,request:i,contentLength:o,client:n,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 Le=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===ge&&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
|
|
8
|
+
0\r
|
|
9
|
+
\r
|
|
10
|
+
`,`latin1`),t!==null&&r!==t){if(n[te])throw new s;process.emitWarning(new s)}e[x].timeout&&e[x].timeoutType===ge&&e[x].timeout.refresh&&e[x].timeout.refresh(),n[U]()}}destroy(e){let{socket:t,client:n,abort:i}=this;t[E]=!1,e&&(r(n[C]<=1,`pipeline should only contain this request`),i(e))}};n.exports=xe})),_t=t(((t,n)=>{var r=e(`node:assert`),{pipeline:i}=e(`node:stream`),a=$(),{RequestContentLengthMismatchError:o,ResponseContentLengthMismatchError:s,RequestAbortedError:c,SocketError:l,InformationalError:u,InvalidArgumentError:d,HeadersTimeoutError:f,BodyTimeoutError:p,ResponseExceededMaxSizeError:m}=Q(),{kUrl:h,kReset:g,kClient:_,kRunning:v,kPending:y,kQueue:b,kPendingIdx:x,kRunningIdx:S,kError:C,kSocket:w,kStrictContentLength:T,kOnError:E,kMaxConcurrentStreams:D,kHTTP2Session:O,kHostAuthority:k,kResume:A,kSize:j,kHTTPContext:M,kClosed:N,kKeepAliveDefaultTimeout:P,kHeadersTimeout:F,kBodyTimeout:I,kEnableConnectProtocol:L,kRemoteSettings:R,kHTTP2Stream:z,kHTTP2SessionState:ee,kHTTP2Options:B,kMaxResponseSize:te}=Z(),{channels:V}=Xe(),H=Symbol(`open streams`),ne=Symbol(`request stream id`),re=Symbol(`request stream`),U=Symbol(`request stream cleanup`),W=Symbol(`request stream state`),G=Symbol(`received goaway`),K=Symbol(`goaway replay attempts`),q=Symbol(`refused stream retry`),ie=1,ae,oe;try{oe=e(`node:http2`)}catch{oe={constants:{}}}var{constants:{HTTP2_HEADER_AUTHORITY:J,HTTP2_HEADER_METHOD:se,HTTP2_HEADER_PATH:ce,HTTP2_HEADER_SCHEME:le,HTTP2_HEADER_CONTENT_LENGTH:ue,HTTP2_HEADER_EXPECT:de,HTTP2_HEADER_STATUS:Y,HTTP2_HEADER_PROTOCOL:fe,NGHTTP2_NO_ERROR:pe,NGHTTP2_REFUSED_STREAM:X}}=oe;function me(e,t){return e[C]||(t===pe?new u(`HTTP/2: "GOAWAY" frame received with code ${t}`):new l(`HTTP/2: "GOAWAY" frame received with code ${t}`,a.getSocketInfo(e[w])))}function he(e,t){let n=e[_],r=e[w];if(n[O]===e&&(n[w]=null,n[M]=null,n[O]=null),r!=null&&r[C]==null&&(r[C]=t),!e.closed&&!e.destroyed)try{e.destroy(t)}catch{}a.destroy(r,t)}function ge(e,t){let n=Number.isInteger(t)?t:2**53-1;for(let t=e[S];t<e[x];t++){let r=e[b][t];if(r!=null&&(typeof r[ne]!=`number`||r[ne]>n))return t}return e[x]}function _e(e){e[ne]=null,e[re]=null,e[U]=null}function ve(e,t,n){let r=e[U],i=e[re];_e(e),r?.(i),e[ne]=t.id,e[re]=t,e[U]=n}function ye(e){let t=e[U],n=e[re];_e(e),t?.(n)}function be(e,t){e[b].splice(e[x]+1,0,t)}function xe(e,t,n=!1){let r=e[b],i=e[S];if(i<e[x]&&r[i]===t){r[i]=null,e[S]=i+1;return}let a=r.indexOf(t,i);a===-1||a>=e[x]||(r.splice(a,1),e[x]--,n&&e[x]<e[S]&&(e[x]=e[S]))}function Se(e){let{body:t}=e;return t==null||a.isBuffer(t)||a.isBlobLike(t)}function Ce(e){return e[re]?.[W]?.responseReceived===!0}function we(e){let t=(e[K]??0)+1;return e[K]=t,t<=ie}function Te(e,t=X){if(e!=null&&!e.destroyed&&!e.closed)try{e.close(t)}catch{}}function Ee(e){let t=e[re];return ye(e),De(t),t}function De(e){e!=null&&e[W]!=null&&(e[W]=null,e.off(`close`,$e),e.off(`close`,Qe),e[O]!=null&&Ze(e),!e.destroyed&&!e.closed&&e.once(`error`,Ye))}function Oe(e,t){e[w]=t;let n=e[B].sessionOptions?.initialWindowSize,r=e[B].connectionWindowSize,i=oe.connect(e[h],{createConnection:()=>t,peerMaxConcurrentStreams:e[B].maxConcurrentStreams,settings:{enablePush:!1,...n==null?null:{initialWindowSize:n}}});return e[w]=t,i[H]=0,i[_]=e,i[w]=t,i[ee]={idleTimeout:null,noStreamsTimeout:null,refed:!0,ping:{interval:e[B].pingInterval===0?null:setInterval(Be,e[B].pingInterval,i).unref()}},i[G]=!1,i[L]=!1,i[R]=!1,r&&a.addListener(i,`connect`,Re.bind(i,r)),a.addListener(i,`error`,Ve),a.addListener(i,`frameError`,He),a.addListener(i,`goaway`,Ue),a.addListener(i,`close`,We),a.addListener(i,`remoteSettings`,ze),Ae(i),e[O]=i,t[O]=i,a.addListener(t,`error`,Ke),a.addListener(t,`end`,qe),a.addListener(t,`close`,Ge),t[N]=!1,t.on(`close`,Je),{version:`h2`,defaultPipelining:1/0,write(t){return ft(e,t)},resume(){je(e)},destroy(e,n){t[N]?queueMicrotask(n):t.destroy(e).on(`close`,n)},get destroyed(){return t.destroyed},busy(t){if(i[R]===!1&&e[v]>0||e[v]>=e[D])return!0;if(t!=null){if(e[v]>0){if((t.upgrade===`websocket`||t.method===`CONNECT`)&&i[R]===!1)return!0}else return(t.upgrade===`websocket`||t.method===`CONNECT`)&&i[R]===!1}return!1}}}function ke(e){let t=e[ee];t.refed===!1&&(t.refed=!0,e.ref())}function Ae(e){let t=e[ee];t.refed===!0&&(t.refed=!1,e.unref())}function je(e){let t=e[w],n=e[O];t?.destroyed===!1&&(n[H]===0&&e[j]===0?Ae(n):ke(n),e[j]===0&&n[H]===0?Ie(n):Fe(n),e[D]===0&&e[v]===0&&e[y]>0?Ne(n):Me(n))}function Me(e){let t=e[ee];t?.noStreamsTimeout!=null&&(clearTimeout(t.noStreamsTimeout),t.noStreamsTimeout=null)}function Ne(e){let t=e[_],n=e[ee],r=t[F];r&&n.noStreamsTimeout==null&&(n.noStreamsTimeout=setTimeout(Pe,r,e).unref())}function Pe(e){let t=e[_],n=e[ee];if(n.noStreamsTimeout=null,t[O]!==e||t[D]!==0||t[v]!==0||t[y]===0)return;let r=new f(`HTTP/2: server did not accept a new stream within ${t[F]}`),i=t[b].splice(t[x]);for(let e=0;e<i.length;e++)i[e]!=null&&a.errorRequest(t,i[e],r);e[C]=r,he(e,r)}function Fe(e){let t=e[ee];t?.idleTimeout!=null&&(clearTimeout(t.idleTimeout),t.idleTimeout=null)}function Ie(e){let t=e[_];if(t[O]!==e||e.closed||e.destroyed)return;if(e[H]!==0||t[j]!==0){Fe(e);return}let n=e[ee];n.idleTimeout??=setTimeout(Le,t[P],e).unref()}function Le(e){let t=e[_],n=e[w],r=e[ee];if(r.idleTimeout=null,t[O]!==e||e[H]!==0||t[j]!==0||e.closed||e.destroyed)return;let i=new u(`socket idle timeout`);n[C]=i,a.destroy(n,i)}function Re(e){try{typeof this.setLocalWindowSize==`function`&&this.setLocalWindowSize(e)}catch{}}function ze(e){if(this[_][D]=e.maxConcurrentStreams??this[_][D],this[R]===!0&&this[L]===!0&&e.enableConnectProtocol===!1){let e=new u(`HTTP/2: Server disabled extended CONNECT protocol against RFC-8441`);this[w][C]=e,this[_][E](e);return}this[L]=e.enableConnectProtocol??this[L],this[R]=!0,this[_][A]()}function Be(e){let t=e[ee];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[_],r=this[w];if(e!=null){let t=new u(`HTTP/2: "PING" errored - type ${e.message}`);r[C]=t,n[E](t)}else n.emit(`ping`,t)}}function Ve(e){r(e.code!==`ERR_TLS_CERT_ALTNAME_INVALID`),this[w][C]=e,!this[G]&&this[_][E](e)}function He(e,t,n){if(n===0){if(this[G])return;let n=new u(`HTTP/2: "frameError" received - type ${e}, code ${t}`);this[w][C]=n,this[_][E](n)}}function Ue(e,t){if(this[G])return;this[G]=!0;let n=me(this,e),r=this[_],i=r[x],o=ge(r,t),s=[],c=[];for(let e=o;e<i;e++){let t=r[b][e];if(t!=null){let e=Ce(t);c.push(Ee(t)),!e&&Se(t)&&we(t)?s.push(t):a.errorRequest(r,t,n)}}for(let e=0;e<c.length;e++)Te(c[e]);if(o!==i){let e=r[b].slice(i);r[b].length=o,r[b].push(...s,...e)}r[O]===this&&(r[w]=null,r[M]=null,r[O]=null),Fe(this),Me(this),!this.closed&&!this.destroyed&&this.close(),r[x]=o,r.emit(`disconnect`,r[h],[r],n),r[A]()}function We(){let{[_]:e,[ee]:t,[w]:n}=this,i=n[C]||this[C]||new l(`closed`,a.getSocketInfo(n));if(e[O]===this&&(e[w]=null,e[M]=null,e[O]=null),Fe(this),Me(this),t.ping.interval!=null&&(clearInterval(t.ping.interval),t.ping.interval=null),e.destroyed){r(e[y]===0);let t=e[b].splice(e[S]);for(let n=0;n<t.length;n++){let r=t[n];r!=null&&a.errorRequest(e,r,i)}}}function Ge(){let e=this[C]||new l(`closed`,a.getSocketInfo(this)),t=this[O],n=t[_];n[w]!==this&&(t[G]||n[O]!=null&&n[O]!==t)||(n[w]=null,n[M]=null,n[O]===t&&(n[O]=null),t.destroy(e),n[x]=n[S],r(n[v]===0),n.emit(`disconnect`,n[h],[n],e),n[A]())}function Ke(e){r(e.code!==`ERR_TLS_CERT_ALTNAME_INVALID`),this[C]=e,!this[O]?.[G]&&this[O]?.[_]?.[E](e)}function qe(){a.destroy(this,new l(`other side closed`,a.getSocketInfo(this)))}function Je(){this[N]=!0}function Ye(){}function Ze(e){let t=e[O],n=t[_];e[O]=null,--t[H],t[H]===0&&(n[j]===0||t[G])&&(Ae(t),Ie(t))}function Qe(){this.off(`error`,Ye);let e=this[W];this[W]=null,it(e,new u(`HTTP/2: stream closed before response headers`)),Ze(this)}function $e(){let e=this[W];e!=null&&(mt(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 u(`HTTP/2: stream closed before the response was complete`)),ut(e),Ze(this),this[W]=null)}function et(e){return e!==`GET`&&e!==`HEAD`&&e!==`OPTIONS`&&e!==`TRACE`&&e!==`CONNECT`}function tt(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 nt(e){e.off(`response`,ct),e.off(`error`,at),e.off(`end`,ot),e.off(`timeout`,st),e.off(`error`,Ye)}function rt(e){if(e==null)return;let t=e[W];if(t==null)return;let{request:n}=t;n[re]===e&&_e(n),nt(e),!e.destroyed&&!e.closed&&e.once(`error`,Ye)}function it(e,t){if(e==null)return;let{request:n}=e;e.responseReceived||n.aborted||n.completed||(rt(e.stream),e.abort(t,!0))}function at(){let e=this[W];typeof this.rstCode==`number`&&this.rstCode!==0?it(e,new u(`HTTP/2: "stream error" received - code ${this.rstCode}`)):it(e,new u(`HTTP/2: stream errored before response headers`))}function ot(){it(this[W],new u(`HTTP/2: stream half-closed (remote)`))}function st(){let e=this[W];it(e,new u(`HTTP/2: "stream timeout after ${e.headersTimeout}"`))}function ct(e,t){let n=this,r=n[W],{request:i}=r;r.responseReceived=!0;let a=e[Y];delete e[Y];try{i.onRequestUpgrade(a,e,n)}catch(e){r.abort(e);return}i.aborted||(nt(n),_e(i),ut(r))}function lt(e,t){let{request:n,headersTimeout:r,session:i}=t;e[z]=!0,e[O]=i,e[W]=t,t.stream=e,ve(n,e,rt),e.once(`response`,ct),e.on(`error`,at),e.once(`end`,ot),e.on(`timeout`,st),e.once(`close`,Qe),Fe(i),++i[H],e.setTimeout(r)}function ut(e,t=!1){e.requestFinalized||(e.requestFinalized=!0,xe(e.client,e.request,t),e.client[A]())}function dt(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 l(i.message,a.getSocketInfo(n[w]));return r.cause=i,n[C]=r,he(n,r),be(e,t),null}let o=new u(i.message,{cause:i});return n[C]=o,n[w][C]=o,n.destroy(o),a.destroy(n[w],o),r(o),null}}function ft(e,t){let n=t.headersTimeout??e[F],i=t.bodyTimeout??e[I],s=e[O],{method:l,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 d(`Custom upgrade "${m}" not supported over HTTP/2`)),!1;let y=tt(v);y[J]=p||e[k],y[se]=l;let b={abort:null,body:t.body,bytesRead:0,client:e,contentLength:null,expectsPayload:!1,maxResponseSize:e[te],request:t,headersTimeout:n,bodyTimeout:i,requestFinalized:!1,responseContentLength:null,responseReceived:!1,bodySent:!1,pendingEnd:!1,trailers:null,session:s,stream:null},x=(n,r=!1)=>{if(!(t.aborted||t.completed)){if(n||=new c,a.errorRequest(e,t,n),b.stream!=null){ye(t);let i=b.stream;i.close(),i.destroyed||a.destroy(i),e[E](n),ut(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||l===`CONNECT`)return ke(s),m===`websocket`?s[L]===!1?(a.errorRequest(e,t,new u(`HTTP/2: Extended CONNECT protocol not supported by server`)),Ae(s),!1):(y[se]=`CONNECT`,y[fe]=`websocket`,y[ce]=f,y[le]=_===`ws:`||_===`wss:`?_===`ws:`?`http`:`https`:_===`http:`?`http`:`https`,S=dt(e,t,s,x,y,{endStream:!1,signal:g}),S==null?(Ae(s),!1):(lt(S,b),!0)):(S=dt(e,t,s,x,y,{endStream:!1,signal:g}),S==null?(Ae(s),!1):(lt(S,b),!0));y[ce]=f,y[le]=_===`http:`?`http`:`https`;let C=l===`PUT`||l===`POST`||l===`PATCH`||l===`QUERY`||l===`PROPFIND`||l===`PROPPATCH`,D=b.body;D&&typeof D.read==`function`&&D.read(0);let A=a.bodyLength(D);if(a.isFormDataLike(D)){ae??=ht().extractBody;let[e,t]=ae(D);y[`content-type`]=t,D=e.stream,A=e.length}if(A??=t.contentLength,A===0&&!C&&(A=null),et(l)&&A>0&&t.contentLength!=null&&t.contentLength!==A){if(e[T])return a.errorRequest(e,t,new o),!1;process.emitWarning(new o)}if(A!=null&&(r(D||A===0,`no body must not have content length`),y[ue]=`${A}`),ke(s),V.sendHeaders.hasSubscribers){let e=``;for(let t in y)e+=`${t}: ${y[t]}\r\n`;V.sendHeaders.publish({request:t,headers:e,socket:s[w]})}let j=D===null||A===0;return b.body=D,b.contentLength=A,b.expectsPayload=C,h&&(y[de]=`100-continue`),S=dt(e,t,s,x,y,{endStream:j,signal:g}),S!=null&&(S[z]=!0,S[W]=b,b.stream=S,Fe(s),++s[H],n&&S.setTimeout(n),S[O]=s,S.on(`close`,$e),ve(t,S,mt),h&&S.once(`continue`,Et),S.on(`response`,vt),S.on(`headers`,_t),S.on(`end`,yt),S.on(`error`,xt),S.on(`frameError`,St),S.on(`aborted`,Ct),(n||i)&&S.on(`timeout`,wt),S.on(`trailers`,Tt),h||Et.call(S),!0)}function pt(e){e.off(`error`,Ye),e.off(`continue`,Et),e.off(`response`,vt),e.off(`headers`,_t),e.off(`end`,yt),e.off(`error`,xt),e.off(`frameError`,St),e.off(`aborted`,Ct),e.off(`timeout`,wt),e.off(`trailers`,Tt),e.off(`data`,gt)}function mt(e){if(e==null)return;let t=e[W];if(t==null)return;let{request:n}=t;n[re]===e&&_e(n),!e.destroyed&&!e.closed&&(pt(e),e.once(`error`,Ye))}function gt(e){let t=this,n=t[W];if(n==null)return;let{request:r,maxResponseSize:i,responseContentLength:a}=n;if(!(r.aborted||r.completed)){if(a!=null&&n.bytesRead+e.length>a){n.abort(new s);return}if(i>-1&&n.bytesRead+e.length>i){n.abort(new m);return}n.bytesRead+=e.length,r.onResponseData(e)===!1&&t.pause()}}function _t(e){let t=this[W];if(t==null)return;let{request:n}=t;if(n.aborted||n.completed)return;let r=e[Y];delete e[Y],n.onResponseStart(Number(r),e,Ye,``)}function vt(e){let t=this,n=t[W];if(n==null)return;let{request:r}=n;t.off(`response`,vt),n.body!=null&&!n.bodySent&&!t.writableEnded&&(t.removeListener(`continue`,Et),t.end());let i=Number(e[Y]);if(delete e[Y],r.onResponseStarted(),n.responseReceived=!0,r.method!==`HEAD`&&i!==304){let t=e[ue];n.responseContentLength=t==null?null:Number(t)}if((n.headersTimeout||n.bodyTimeout)&&t.setTimeout(n.bodyTimeout),r.aborted||r.completed){mt(t);return}r.onResponseStart(i,e,t.resume.bind(t),``)===!1&&t.pause(),t.on(`data`,gt)}function yt(){let e=this,t=e[W];if(t==null)return;let{request:n}=t;if(e.off(`end`,yt),t.responseReceived){if(!n.aborted&&!n.completed){if(t.responseContentLength!=null&&t.bytesRead!==t.responseContentLength){t.abort(new s);return}t.pendingEnd=!0,$e.call(e)}}else t.abort(new u(`HTTP/2: stream half-closed (remote)`),!0)}function bt(e,t){let{client:n,request:r}=t;return t.responseReceived||r.aborted||r.completed||r[q]||!Se(r)?!1:(r[q]=!0,Ee(r),t.stream=null,t.requestFinalized=!0,xe(n,r),n[b].splice(n[x],0,r),n[A](),!0)}function xt(e){let t=this,n=t[W];n!=null&&(t.off(`error`,xt),n.responseContentLength!=null&&n.bytesRead!==n.responseContentLength&&(e=new s),typeof t.rstCode==`number`&&t.rstCode!==pe&&(e.http2ErrorCode=t.rstCode),!(t.rstCode===X&&bt(t,n))&&n.abort(e))}function St(e,t){let n=this,r=n[W];r!=null&&(n.off(`frameError`,St),r.abort(new u(`HTTP/2: "frameError" received - type ${e}, code ${t}`)))}function Ct(){this.off(`data`,gt)}function wt(){let e=this,t=e[W];if(t==null)return;e.off(`timeout`,wt);let n=t.responseReceived?new p(`HTTP/2: "stream timeout after ${t.bodyTimeout}"`):new f(`HTTP/2: "headers timeout after ${t.headersTimeout}"`);t.abort(n)}function Tt(e){let t=this,n=t[W];if(n==null)return;let{request:r}=n;t.off(`trailers`,Tt),t.off(`data`,gt),!(r.aborted||r.completed)&&(n.trailers=e)}function Et(){let e=this,t=e[W];t.bodySent=!0;let{abort:n,body:i,client:o,contentLength:s,expectsPayload:c,request:l}=t;!i||s===0?Dt(n,e,null,o,l,o[w],s,c):a.isBuffer(i)?Dt(n,e,i,o,l,o[w],s,c):a.isBlobLike(i)?typeof i.stream==`function`?At(n,e,i.stream(),o,l,o[w],s,c):kt(n,e,i,o,l,o[w],s,c):a.isStream(i)?Ot(n,o[w],c,e,i,o,l,s):a.isIterable(i)?At(n,e,i,o,l,o[w],s,c):r(!1)}function Dt(e,t,n,i,o,s,c,l){try{n!=null&&a.isBuffer(n)&&(r(c===n.byteLength,`buffer body must have content length`),t.cork(),t.write(n),t.uncork(),t.end(),o.onBodySent(n)),l||(s[g]=!0),o.onRequestSent(),i[A]()}catch(t){e(t)}}function Ot(e,t,n,o,s,c,l,u){r(u!==0||c[v]===0,`stream body cannot be pipelined`);let d=i(s,o,r=>{r?(a.destroy(d,r),e(r)):(a.removeAllListeners(d),l.onRequestSent(),n||(t[g]=!0),c[A]())});a.addListener(d,`data`,f);function f(e){l.onBodySent(e)}}async function kt(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[g]=!0),r[A]()}catch(t){e(t)}}async function At(e,t,n,i,a,o,s,c){r(s!==0||i[v]===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)=>{r(l===null),o[C]?t(o[C]):l=e});t.on(`close`,u).on(`drain`,u);try{for await(let e of n){if(o[C])throw o[C];let n=t.write(e);a.onBodySent(e),n||await d()}t.end(),a.onRequestSent(),c||(o[g]=!0),i[A]()}catch(t){e(t)}finally{t.off(`close`,u).off(`drain`,u)}}n.exports=Oe})),vt=t(((t,n)=>{var r=e(`node:assert`),i=e(`node:net`),a=e(`node:http`),o=$(),{ClientStats:s}=Ye(),{channels:c}=Xe(),l=Ze(),u=$e(),{InvalidArgumentError:d,InformationalError:f,ClientDestroyedError:p}=Q(),m=et(),{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:H,kDestroy:ne,kDispatch:re,kLocalAddress:U,kMaxResponseSize:W,kOnError:G,kHTTPContext:K,kMaxConcurrentStreams:q,kHostAuthority:ie,kResume:ae,kHTTP2Options:oe}=Z(),J=gt(),se=_t(),ce=Symbol(`kClosedResolve`),le=a&&a.maxHeaderSize&&Number.isInteger(a.maxHeaderSize)&&a.maxHeaderSize>0?()=>a.maxHeaderSize:()=>{throw new d(`http module not available or http.maxHeaderSize invalid`)},ue=()=>{};function de(e){return e[N]??e[K]?.defaultPipelining??1}var Y=!1;function fe(e){Y!==!0&&(process.emitWarning(`Use h2Options.${e} instead. ${e} for H2 will be deprecated in future major.`,{code:`UNDICI-H2-OPTIONS`}),Y=!0)}function pe(e){return e[K]?.version===`h2`?e[q]:de(e)}var X=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:H,autoSelectFamily:ne,autoSelectFamilyAttemptTimeout:re,maxConcurrentStreams:q,allowH2:J,useH2c:se,initialWindowSize:ue,connectionWindowSize:de,pingInterval:Y,webSocket:pe,h2Options:X,eventSource:he}={}){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=le();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(H!=null&&(!Number.isInteger(H)||H<-1))throw new d(`maxResponseSize must be a positive number`);if(re!=null&&(!Number.isInteger(re)||re<-1))throw new d(`autoSelectFamilyAttemptTimeout must be a positive number`);if(J!=null&&typeof J!=`boolean`)throw new d(`allowH2 must be a valid boolean value`);if(J!==!1){if(X!=null){if(X.useH2c!=null&&typeof X.useH2c!=`boolean`)throw new d(`h2Options.useH2c must be a valid boolean value`);if(X.settings?.initialWindowSize!=null&&(!Number.isInteger(X.settings.initialWindowSize)||X.settings.initialWindowSize<1))throw new d(`h2Options.settings.initialWindowSize must be a positive integer, greater than 0`);if(X.maxConcurrentStreams!=null&&(!Number.isInteger(X.maxConcurrentStreams)||X.maxConcurrentStreams<1))throw new d(`h2Options.maxConcurrentStreams must be a positive integer, greater than 0`);if(X.connectionWindowSize!=null&&(!Number.isInteger(X.connectionWindowSize)||X.connectionWindowSize<1))throw new d(`h2Options.connectionWindowSize must be a positive integer, greater than 0`);if(X.pingInterval!=null&&(typeof X.pingInterval!=`number`||!Number.isInteger(X.pingInterval)||X.pingInterval<0))throw new d(`h2Options.pingInterval must be a positive integer, greater or equal to 0`)}else{if(se!=null&&typeof se!=`boolean`)throw fe(`useH2c`),new d(`useH2c must be a valid boolean value`);if(q!=null&&(typeof q!=`number`||q<1))throw fe(`maxConcurrentStreams`),new d(`maxConcurrentStreams must be a positive integer, greater than 0`);if(ue!=null&&(!Number.isInteger(ue)||ue<1))throw fe(`initialWindowSize`),new d(`initialWindowSize must be a positive integer, greater than 0`);if(de!=null&&(!Number.isInteger(de)||de<1))throw fe(`connectionWindowSize`),new d(`connectionWindowSize must be a positive integer, greater than 0`);if(Y!=null&&(typeof Y!=`number`||!Number.isInteger(Y)||Y<0))throw fe(`pingInterval`),new d(`pingInterval must be a positive integer, greater or equal to 0`)}}if(super({webSocket:pe,eventSource:he}),typeof E!=`function`)E=m({...S,maxCachedSessions:T,allowH2:J,socketPath:y,useH2c:X?.useH2c??se,timeout:s,...typeof ne==`boolean`?{autoSelectFamily:ne,autoSelectFamilyAttemptTimeout:re}:void 0,...E});else{let e=E;E=(t,n)=>e({...t,...y==null?null:{socketPath:y},...J==null?null:{allowH2:J}},n)}this[h]=o.parseOrigin(e),this[ie]=`${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[U]=V??null,this[b]=0,this[D]=0,this[k]=`host: ${this[ie]}\r\n`,this[z]=c??3e5,this[R]=n??3e5,this[ee]=C??!0,this[te]=M,this[ce]=null,this[W]=H>-1?H:-1,this[K]=null,this[oe]={pingInterval:X?.pingInterval??Y??6e4,connectionWindowSize:X?.connectionWindowSize??de??524288,maxConcurrentStreams:X?.maxConcurrentStreams??q??100,sessionOptions:{initialWindowSize:X?.initialWindowSize??ue??262144}},this[w]=[],this[j]=0,this[A]=0,this[ae]=e=>ve(this,e),this[G]=e=>me(this,e)}get pipelining(){return this[N]}set pipelining(e){this[N]=e,this[ae](!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]>=(pe(this)||1)||this[S]>0&&!e)}[y](e){he(this),this.once(`connect`,e)}[re](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(()=>ve(this))):this[ae](!0)),this[b]&&this[D]!==2&&this[v]&&(this[D]=2),this[D]<2}[H](){return new Promise(e=>{this[C]?this[ce]=e:e(null)})}[ne](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[ce]&&(this[ce](),this[ce]=null),t(null)};this[K]?(this[K].destroy(e,r),this[K]=null):queueMicrotask(r),this[ae]()})}};function me(e,t){if(e[x]===0&&t.code!==`UND_ERR_INFO`&&t.code!==`UND_ERR_SOCKET`){r(e[A]===e[j]);let n=e[w].splice(e[j]);for(let r=0;r<n.length;r++){let i=n[r];i!=null&&o.errorRequest(e,i,t)}r(e[C]===0)}}function he(e){r(!e[E]),r(!e[K]);let{host:t,hostname:n,protocol:a,port:s}=e[h];if(n[0]===`[`){let e=n.indexOf(`]`);r(e!==-1);let t=n.substring(1,e);r(i.isIPv6(t)),n=t}e[E]=!0,c.beforeConnect.hasSubscribers&&c.beforeConnect.publish({connectParams:{host:t,hostname:n,protocol:a,port:s,version:e[K]?.version,servername:e[g],localAddress:e[U]},connector:e[B]});try{e[B]({host:t,hostname:n,protocol:a,port:s,servername:e[g],localAddress:e[U]},(i,l)=>{if(i){ge(e,i,{host:t,hostname:n,protocol:a,port:s}),e[ae]();return}if(e.destroyed){o.destroy(l.on(`error`,ue),new p),e[ae]();return}r(l);try{e[K]=l.alpnProtocol===`h2`?se(e,l):J(e,l)}catch(r){l.destroy().on(`error`,ue),ge(e,r,{host:t,hostname:n,protocol:a,port:s}),e[ae]();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:n,protocol:a,port:s,version:e[K]?.version,servername:e[g],localAddress:e[U]},connector:e[B],socket:l}),e.emit(`connect`,e[h],[e]),e[ae]()})}catch(r){ge(e,r,{host:t,hostname:n,protocol:a,port:s}),e[ae]()}}function ge(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[U]},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 me(e,t);e.emit(`connectionError`,e[h],[e],t)}}function _e(e){e[D]=0,e.emit(`drain`,e[h],[e])}function ve(e,t){e[b]!==2&&(e[b]=2,ye(e,t),e[b]=0,e[j]>256&&(e[w].splice(0,e[j]),e[A]-=e[j],e[j]=0))}function ye(e,t){for(;;){if(e.destroyed){r(e[S]===0);return}if(e[ce]&&!e[C]){e[ce](),e[ce]=null;return}if(e[K]&&e[K].resume(),e[v])e[D]=2;else if(e[D]===2){t?(e[D]=1,queueMicrotask(()=>_e(e))):_e(e);continue}if(e[S]===0||e[x]>=(pe(e)||1))return;let n=e[w][e[A]];if(n===null)return;if(n.aborted){e[w].splice(e[A],1);continue}if(e[h].protocol===`https:`&&e[g]!==n.servername){if(e[x]>0)return;e[g]=n.servername,e[K]?.destroy(new f(`servername changed`),()=>{e[K]=null,ve(e)})}if(e[E])return;if(!e[K]){e[g]=n.servername,he(e);return}if(e[K].destroyed||e[K].busy(n))return;!n.aborted&&e[K].write(n)?e[A]++:e[w].splice(e[A],1)}}n.exports=X})),yt=t(((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}}})),bt=t(((e,t)=>{var{PoolStats:n}=Ye(),r=$e(),i=yt(),{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(`on client busy`),T=Symbol(`on client drain`),E=Symbol(`drain queue`),D=Symbol(`get dispatcher`),O=Symbol(`has dispatcher`),k=Symbol(`add client`),A=Symbol(`remove client`);t.exports={PoolBase:class extends r{[v]=new i;[l]=0;[g]=[];[_]=!1;[b](e,t,n){if(e.closed||e.destroyed)return;let r=this[v],i=!1;for(this[T](e);!i;){let t=r.shift();if(!t)break;this[l]--,i=!e.dispatch(t.opts,t.handler)}if(e[_]=i,i&&this[w](e),!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])}}[w](){}[T](){}[E](e,t){let n=this[v],r=!0;for(;!n.isEmpty();){let e=this[D]();if(!e){r=!1;break}let t=n.shift();if(this[l]--,!e.dispatch(t.opts,t.handler)&&(e[_]=!0,this[w](e),r=this[O](),!r))break}if(r&&this[_]&&(this[_]=!1,this.emit(`drain`,e,[this,...t])),this[y]&&n.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[D]();return n?n.dispatch(e,t)||(n[_]=!0,this[w](n),this[_]=!this[O]()):(this[_]=!0,this[v].push({opts:e,handler:t}),this[l]++),!this[_]}[O](){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}[k](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[_]&&!e[_]&&this[b](e,e[f],[e,this])}),this}[A](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:k,kRemoveClient:A,kDrainQueue:E,kOnClientBusy:w,kOnClientDrain:T,kGetDispatcher:D,kHasDispatcher:O}})),xt=t(((e,t)=>{var{PoolBase:n,kClients:r,kNeedDrain:i,kAddClient:a,kDrainQueue:o,kOnClientBusy:s,kOnClientDrain:c,kGetDispatcher:l,kHasDispatcher:u,kRemoveClient:d}=bt(),f=vt(),{InvalidArgumentError:p}=Q(),m=$(),{kConnecting:h,kHTTPContext:g,kUrl:_}=Z(),v=et(),y=Symbol(`options`),b=Symbol(`connections`),x=Symbol(`factory`),S=Symbol(`protocol`),C=Symbol(`protocol probe`);function w(e,t){return new f(e,t)}function T(e,t){return t instanceof f&&e[S]!==`h1`&&(e[y].useH2c===!0||e[_].protocol===`https:`&&e[y].allowH2!==!1)}function E(e){let t=e[x](e[_],e[y]);return T(e,t)&&(e[C]=t),e[a](t),t}t.exports=class extends n{constructor(e,{connections:t,factory:n=w,connect:i,connectTimeout:a,tls:s,maxCachedSessions:c,socketPath:l,autoSelectFamily:u,autoSelectFamilyAttemptTimeout:d,allowH2:h,useH2c:T,clientTtl:E,...D}={}){if(t!=null&&(!Number.isFinite(t)||t<0))throw new p(`invalid connections`);if(typeof n!=`function`)throw new p(`factory must be a function.`);if(i!=null&&typeof i!=`function`&&typeof i!=`object`)throw new p(`connect must be a function or an object`);typeof i!=`function`&&(i=v({...s,maxCachedSessions:c,allowH2:h,useH2c:T,socketPath:l,timeout:a,...typeof u==`boolean`?{autoSelectFamily:u,autoSelectFamilyAttemptTimeout:d}:void 0,...i})),super(D),this[b]=t||null,this[_]=m.parseOrigin(e),this[y]={...m.deepClone(D),connect:i,allowH2:h,useH2c:T,clientTtl:E,socketPath:l},this[x]=n,this[S]=null,this[C]=null,this.on(`connect`,(e,t)=>{if(E!=null&&E>0)for(let e of t)Object.assign(e,{ttl:Date.now()});let n=t[t.length-1];n instanceof f&&(this[S]=n[g]?.version),n===this[C]&&this[S]!==`h2`&&(this[C]=null,this[o](e,t.slice(1)))}),this.on(`disconnect`,(e,t)=>{t.includes(this[C])&&(this[C]=null,this[o](e,t.slice(1)))}),this.on(`connectionError`,(e,t)=>{let n=!1;for(let e of t){e===this[C]&&(this[C]=null,n=!0);let t=this[r].indexOf(e);t!==-1&&this[r].splice(t,1)}n&&this[o](e,t.slice(1))})}[s](e){this[C]===null&&e[h]&&T(this,e)&&(this[C]=e)}[c](e){e===this[C]&&(this[C]=null)}[l](){let e=this[y].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[d](n),t--;else if(!n[i])return n}if(this[C]===null&&(!this[b]||this[r].length<this[b]))return E(this)}[u](){let e=this[y].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[d](n),t--;else if(!n[i])return!0}return this[C]===null&&(!this[b]||this[r].length<this[b])&&(E(this),!0)}}})),St=t(((e,t)=>{var{BalancedPoolMissingUpstreamError:n,InvalidArgumentError:r}=Q(),{PoolBase:i,kClients:a,kNeedDrain:o,kAddClient:s,kRemoveClient:c,kGetDispatcher:l}=bt(),u=xt(),{kOriginless:d,kUrl:f}=Z(),p=$(),m=Symbol(`factory`),h=Symbol(`options`),g=Symbol(`kGreatestCommonDivisor`),_=Symbol(`kCurrentWeight`),v=Symbol(`kIndex`),y=Symbol(`kWeight`),b=Symbol(`kMaxWeightPerServer`),x=Symbol(`kErrorPenalty`);function S(e,t){if(e===0)return t;for(;t!==0;){let n=t;t=e%t,e=n}return e}function C(e,t){return new u(e,t)}t.exports=class extends i{constructor(e=[],{factory:t=C,connect:n,tls:i,...a}={}){if(typeof t!=`function`)throw new r(`factory must be a function.`);super(a),this[d]=!0,n&&typeof n!=`function`&&(n={...n}),i&&typeof i!=`function`&&(i={...i}),this[h]={...p.deepClone(a),connect:n,tls:i},this[v]=-1,this[_]=0,this[b]=this[h].maxWeightPerServer||100,this[x]=this[h].errorPenalty||15,Array.isArray(e)||(e=[e]),this[m]=t;for(let t of e)this.addUpstream(t);this._updateBalancedPoolStats()}addUpstream(e){let t=p.parseOrigin(e).origin;if(this[a].find(e=>e[f].origin===t&&e.closed!==!0&&e.destroyed!==!0))return this;let n=this[m](t,this[h]);this[s](n),n.on(`connect`,()=>{n[y]=Math.min(this[b],n[y]+this[x])}),n.on(`connectionError`,()=>{n[y]=Math.max(1,n[y]-this[x]),this._updateBalancedPoolStats()}),n.on(`disconnect`,(...e)=>{let t=e[2];t&&t.code===`UND_ERR_SOCKET`&&(n[y]=Math.max(1,n[y]-this[x]),this._updateBalancedPoolStats())});for(let e of this[a])e[y]=this[b];return this._updateBalancedPoolStats(),this}_updateBalancedPoolStats(){let e=0;for(let t=0;t<this[a].length;t++)e=S(this[a][t][y],e);this[g]=e}removeUpstream(e){let t=p.parseOrigin(e).origin,n=this[a].find(e=>e[f].origin===t&&e.closed!==!0&&e.destroyed!==!0);return n&&this[c](n),this}getUpstream(e){let t=p.parseOrigin(e).origin;return this[a].find(e=>e[f].origin===t&&e.closed!==!0&&e.destroyed!==!0)}get upstreams(){return this[a].filter(e=>e.closed!==!0&&e.destroyed!==!0).map(e=>e[f].origin)}[l](){if(this[a].length===0)throw new n;let e=0,t=-1;for(;e++<this[a].length;){this[v]=(this[v]+1)%this[a].length;let e=this[a][this[v]];if(this[v]===0&&(this[_]=this[_]-this[g],this[_]<=0&&(this[_]=this[b])),!(e[o]||e.closed===!0||e.destroyed===!0)&&((t===-1||e[y]>this[a][t][y])&&(t=this[v]),e[y]>=this[_]))return e}if(t!==-1)return this[_]=this[a][t][y],this[v]=t,this[a][t]}}})),Ct=t(((e,t)=>{var{PoolBase:n,kClients:r,kNeedDrain:i,kAddClient:a,kGetDispatcher:o,kHasDispatcher:s,kRemoveClient:c}=bt(),l=vt(),{InvalidArgumentError:u}=Q(),d=$(),{kUrl:f}=Z(),p=et(),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}}})),wt=t(((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=$e(),m=xt(),h=vt(),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}}})),Tt=t(((e,t)=>{var n=Qe(),{InvalidArgumentError:r}=Q(),{toRawHeaders:i}=$(),{kOriginless:a,kUrl:o}=Z(),s=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,this[o]=e[o],this[a]=e[a]}static wrapHandler(e){if(!e||typeof e!=`object`)throw new r(`handler must be an object`);return typeof e.onRequestStart==`function`?e:new s(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)}}})),Et=t(((t,n)=>{var{Buffer:r}=e(`node:buffer`),i=e(`node:net`),{InvalidArgumentError:a}=Q();function o(e){if(i.isIPv4(e)){let t=e.split(`.`).map(Number);return{type:1,buffer:r.from(t)}}if(i.isIPv6(e))return{type:4,buffer:s(e)};let t=r.from(e,`utf8`);if(t.length>255)throw new a(`Domain name too long (max 255 bytes)`);return{type:3,buffer:r.concat([r.from([t.length]),t])}}function s(e){let t=r.alloc(16),n=e;if(e.includes(`.`)){let t=e.lastIndexOf(`:`),r=e.slice(t+1);if(i.isIPv4(r)){let i=r.split(`.`).map(Number),a=(i[0]<<8|i[1]).toString(16),o=(i[2]<<8|i[3]).toString(16);n=`${e.slice(0,t)}:${a}:${o}`}}let a=n.indexOf(`::`);if(a!==-1){let e=n.slice(0,a),r=n.slice(a+2),i=e===``?[]:e.split(`:`),o=r===``?[]:r.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=n.split(`:`);for(let n=0;n<e.length;n++)t.writeUInt16BE(parseInt(e[n],16),n*2)}return t}function c(e,t,n){let i=r.allocUnsafe(2);return i.writeUInt16BE(n,0),r.concat([r.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}n.exports={parseAddress:o,parseIPv6:s,buildAddressBuffer:c,parseResponseAddress:l,createReplyError:u}})),Dt=t(((t,n)=>{var{EventEmitter:r}=e(`node:events`),{Buffer:i}=e(`node:buffer`),{InvalidArgumentError:a,Socks5ProxyError:o}=Q(),{debuglog:s}=e(`node:util`),{parseAddress:c}=Et(),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`};n.exports={Socks5Client:class extends r{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}})),Ot=t(((t,n)=>{var{URL:r}=e(`node:url`),i,a=$e(),{ConnectTimeoutError:o,InvalidArgumentError:s}=Q(),{Socks5Client:c,STATES:l}=Dt(),{kBusy:u,kConnected:d,kDispatch:f,kClose:p,kDestroy:m}=Z(),h=xt(),g=et(),{setupConnectTimeout:_}=$(),{debuglog:v}=e(`node:util`),y=v(`undici:socks5-proxy`),b=5e3,x=Symbol(`proxy url`),S=Symbol(`proxy headers`),C=Symbol(`proxy auth`),w=Symbol(`proxy protocol`),T=Symbol(`pools`),E=Symbol(`connector`),D=Symbol(`connect timeout`),O=Symbol(`request tls settings`),k=Symbol(`request tls timeout`);function A(e,t,n){return new o(`Connect Timeout Error (attempted address: ${e}:${t}, timeout: ${n}ms)`)}var j=!1;n.exports=class extends a{constructor(e,t={}){if(super(t),j||=(process.emitWarning(`SOCKS5 proxy support is experimental and subject to change`,`ExperimentalWarning`),!0),!e)throw new s(`Proxy URL is mandatory`);let n=typeof e==`string`?new r(e):e;if(n.protocol!==`socks5:`&&n.protocol!==`socks:`)throw new s(`Proxy URL must use socks5:// or socks:// protocol`);this[x]=n,this[S]=t.headers||{},this[w]=t.proxyTls?`https:`:`http:`;let i=t.connectTimeout??b;if(!Number.isFinite(i)||i<0)throw new s(`invalid connectTimeout`);this[D]=i;let{timeout:a,...o}=t.requestTls||{},c=a??i;if(!Number.isFinite(c)||c<0)throw new s(`invalid requestTls.timeout`);this[O]=o,this[k]=c,this[C]={username:t.username||(n.username?decodeURIComponent(n.username):null),password:t.password||(n.password?decodeURIComponent(n.password):null)};let l=t.proxyTls?.timeout??i;if(!Number.isFinite(l)||l<0)throw new s(`invalid proxyTls.timeout`);this[E]=t.connect||g({...t.proxyTls,timeout:l,servername:t.proxyTls?.servername||n.hostname}),this[T]=new Map}async createSocks5Connection(e,t){let n=this[x].hostname,r=parseInt(this[x].port)||1080;y(`creating SOCKS5 connection to`,n,r);let i=Promise.withResolvers();this[E]({hostname:n,host:n,port:r,protocol:this[w]},(e,t)=>{e?i.reject(e):i.resolve(t)});let a=await i.promise,o=new c(a,this[C]);o.on(`error`,e=>{y(`SOCKS5 error:`,e),a.destroy()}),await o.handshake();let s=Promise.withResolvers(),u=this[D]===0?null:setTimeout(()=>{d(),o.destroy(),s.reject(A(n,r,this[D]))},this[D]),d=()=>{clearTimeout(u),o.removeListener(`authenticated`,f),o.removeListener(`error`,p)},f=()=>{d(),s.resolve()},p=e=>{d(),s.reject(e)};o.state===l.AUTHENTICATED?(clearTimeout(u),s.resolve()):(o.once(`authenticated`,f),o.once(`error`,p)),await s.promise,await o.connect(e,t);let m=Promise.withResolvers(),h=this[D]===0?null:setTimeout(()=>{g(),o.destroy(),m.reject(A(e,t,this[D]))},this[D]),g=()=>{clearTimeout(h),o.removeListener(`connected`,_),o.removeListener(`error`,v)},_=n=>{y(`SOCKS5 tunnel established to`,e,t,`via`,n),g(),m.resolve()},v=e=>{g(),m.reject(e)};return o.once(`connected`,_),o.once(`error`,v),await m.promise,a}[f](t,n){let{origin:a}=t;y(`dispatching request to`,a,`via SOCKS5`);try{let o=String(a),s=this[T].get(o);if(!s||s.destroyed||s.closed){s=new h(a,{pipelining:t.pipelining,connections:t.connections,connect:async(t,n)=>{try{let t=new r(a),o=t.hostname,s=parseInt(t.port)||(t.protocol===`https:`?443:80);y(`establishing SOCKS5 connection to`,o,s);let c=await this.createSocks5Connection(o,s),l=c;if(t.protocol===`https:`){i||=e(`node:tls`),y(`upgrading to TLS`),l=i.connect({...this[O],socket:c,servername:this[O]?.servername||o});let t=Promise.withResolvers(),n=()=>{queueMicrotask(u),l.removeListener(`secureConnect`,r),l.removeListener(`error`,a)},r=()=>{n(),t.resolve()},a=e=>{n(),t.reject(e)},u=_(new WeakRef(l),{timeout:this[k],hostname:o,port:s});l.once(`secureConnect`,r),l.once(`error`,a),await t.promise}n(null,l)}catch(e){y(`SOCKS5 connection error:`,e),n(e)}}}),this[T].set(o,s);let n=()=>{this[T].get(o)!==s||s[d]>0||s[u]||(this[T].delete(o),s.destroyed||s.close())};s.on(`disconnect`,n),s.on(`connectionError`,n)}return s[f](t,n)}catch(e){if(y(`dispatch error:`,e),typeof n.onResponseError==`function`)return n.onResponseError(null,e),!1;if(typeof n.onError==`function`)return n.onError(e),!1;throw e}}async[p](){let e=[];for(let t of this[T].values())e.push(t.close());this[T].clear(),await Promise.all(e)}async[m](e){let t=[];for(let n of this[T].values())t.push(n.destroy(e));this[T].clear(),await Promise.all(t)}}})),kt=t(((e,t)=>{var{kProxy:n,kClose:r,kDestroy:i,kDispatch:a}=Z(),o=wt(),s=xt(),c=$e(),{InvalidArgumentError:l,RequestAbortedError:u,SecureProxyConnectionError:d,ProxyConnectionError:f}=Q(),p=et(),m=vt(),{channels:h}=Xe(),g=Ot(),{hasSafeIterator:_}=$(),v=Symbol(`proxy agent`),y=Symbol(`proxy client`),b=Symbol(`proxy headers`),x=Symbol(`request tls settings`),S=Symbol(`proxy tls settings`),C=Symbol(`connect endpoint function`),w=Symbol(`connect endpoint function (http/1.1 only)`),T=Symbol(`tunnel proxy`),E=`proxy-authorization`;function D(e){return e===`https:`?443:80}function O(e,t){return new s(e,t)}var k=()=>{};function A(e,t){return t.connections===1?new m(e,t):new s(e,t)}function j(e,t){return t===!0||e!==`http:`}var M=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[b]=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[b],...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)}},N=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=O}=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:_,username:E,password:N,hostname:P}=a;if(this[n]={uri:s,protocol:_},this[x]=e.requestTls,this[S]=e.proxyTls,this[b]=e.headers||{},this[T]=r,e.auth&&e.token)throw new l(`opts.auth cannot be used in combination with opts.token`);e.auth?this[b][`proxy-authorization`]=`Basic ${e.auth}`:e.token?this[b][`proxy-authorization`]=e.token:E&&N?this[b][`proxy-authorization`]=`Basic ${Buffer.from(`${decodeURIComponent(E)}:${decodeURIComponent(N)}`).toString(`base64`)}`:E&&(this[b][`proxy-authorization`]=`Basic ${Buffer.from(`${decodeURIComponent(E)}:`).toString(`base64`)}`);let F=p({timeout:i,...e.proxyTls}),I=p({timeout:i,...e.proxyTls,allowH2:!1});this[C]=p({timeout:i,...e.requestTls}),this[w]=p({timeout:i,...e.requestTls,allowH2:!1});let L=e.factory||A,R=(t,r)=>{let{protocol:a}=new URL(t);if(this[n].protocol===`socks5:`||this[n].protocol===`socks:`)return new g(this[n].uri,{headers:this[b],connect:F,factory:L,username:e.username||E,password:e.password||N,connectTimeout:i,proxyTls:e.proxyTls,requestTls:e.requestTls});if(!j(a,this[T])){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 M(this[n].uri,{headers:this[b],connect:e,factory:L,proxyServername:this[n].protocol===`https:`?this[S]?.servername||P:void 0})}return L(t,r)};this[y]=_===`socks5:`||_===`socks:`?null:t(a,{connect:F}),this[v]=new o({...e,factory:R,connect:async(e,t)=>{if(!this[y]){t(new l(`Cannot establish tunnel connection without a proxy client`));return}let n=e.host;e.port||(n+=`:${D(e.protocol)}`);try{let r={origin:c,port:m,path:n,signal:e.signal,headers:{...this[b],host:e.host,...e.connections==null||e.connections>0?{"proxy-connection":`keep-alive`}:{}},servername:this[S]?.servername||P},{socket:i,statusCode:a}=await this[y].connect(r);if(a!==200){i.on(`error`,k).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[x]?this[x].servername:e.servername,(e.allowH2===!1?this[w]:this[C])({...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=P(e.headers);if(F(n),n&&!(`host`in n)&&!(`Host`in n)){let{host:t}=new URL(e.origin);n.host=t}return this[v].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[v].close()];return this[y]&&e.push(this[y].close()),Promise.all(e)}[i](){let e=[this[v].destroy()];return this[y]&&e.push(this[y].destroy()),Promise.all(e)}};function P(e){if(Array.isArray(e)){let t={};for(let n=0;n<e.length;n+=2)I(e[n])&&L(),t[e[n]]=e[n+1];return t}if(e&&typeof e==`object`&&_(e)){let t={};for(let[n,r]of e){if(!Object.hasOwn(t,n)){t[n]=r;continue}let e=t[n],i=[];e!==void 0&&i.push(...Array.isArray(e)?e:[e]),r!==void 0&&i.push(...Array.isArray(r)?r:[r]),t[n]=i.length>1?i:i[0]}return t}return e}function F(e){for(let t in e)I(t)&&L()}function I(e){return e.length===19&&e.toLowerCase()===E}function L(){throw new l(`Proxy-Authorization should be sent in ProxyAgent constructor`)}t.exports=N})),At=t(((e,t)=>{var n=$e(),{kClose:r,kDestroy:i,kClosed:a,kDestroyed:o,kDispatch:s,kNoProxyAgent:c,kHttpProxyAgent:l,kHttpsProxyAgent:u}=Z(),d=kt(),f=wt(),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;for(let n=0;n<this.#t.length;n++){let r=this.#t[n];if(r.hostname===`*`){if(r.port&&r.port!==t)continue;return!1}if(!(r.port&&r.port!==t)&&(!r.wildcard&&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}let s=r.charCodeAt(0)===42;n.push({hostname:i.replace(/^\*?\./,``).replace(/^(.+)\.$/,`$1`).toLowerCase(),port:a,wildcard:s})}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??``}}})),jt=t(((t,n)=>{var r=e(`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;#t=!1;#n=null;constructor(e){this.#e=e}set target(e){this.#n=e,this.#t&&e?.pause()}get target(){return this.#n}pause(){this.#t=!0,this.#n?.pause()}resume(){this.#t=!1,this.#n?.resume()}abort(e){this.#n?.abort(e),this.#e(e)}get paused(){return this.#t||(this.#n?.paused??!1)}get aborted(){return this.#n?.aborted??!1}get reason(){return this.#n?.reason??null}get rawHeaders(){return this.#n?.rawHeaders??null}set rawHeaders(e){this.#n&&(this.#n.rawHeaders=e)}get rawTrailers(){return this.#n?.rawTrailers??null}set rawTrailers(e){this.#n&&(this.#n.rawTrailers=e)}};n.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.pendingResponseData=null,this.pendingResponseTrailers=null,this.pendingResponseEnded=!1,this.aborted=!1}onResponseStartWithRetry(e,t,n,r,i){if(this.retryOpts.throwOnError){this.retryOpts.statusCodes.includes(t)===!1?this.headersSent?this.handler.onResponseError?.(this.controllerProxy,i):(this.headersSent=!0,this.checkpointResponseEnd(n),this.handler.onResponseStart?.(this.controllerProxy,t,n,r)):this.error=i;return}if(s(this.opts.body)){this.headersSent=!0,this.checkpointResponseEnd(n),this.handler.onResponseStart?.(this.controllerProxy,t,n,r);return}function a(a){if(this.aborted)return;this.retryPending=!1,this.retryTimer=null;let o=this.pendingResponseData,s=this.pendingResponseTrailers,c=this.pendingResponseEnded;if(this.pendingResponseData=null,this.pendingResponseTrailers=null,this.pendingResponseEnded=!1,a){if(this.headersSent)this.handler.onResponseError?.(this.controllerProxy,a);else{if(this.headersSent=!0,this.checkpointResponseEnd(n),this.handler.onResponseStart?.(this.controllerProxy,t,n,r),e.resume(),c){for(let t of o)this.onResponseData(e,t);this.onResponseEnd(e,s)}return}e.resume();return}this.error=i,e.resume(),c&&this.onResponseEnd(e,s)}e.pause(),this.retryPending=!0,this.pendingResponseData=[],this.pendingResponseTrailers=null,this.pendingResponseEnded=!1,this.retryTimer=this.retryOpts.retry(i,{state:{counter:this.retryCount},opts:{retryOptions:this.retryOpts,...this.opts}},a.bind(this))??null}checkpointResponseEnd(e){if(this.end==null&&this.opts.method!==`HEAD`){let t=e[`content-length`];this.end=t==null?null:Number(t)-1,r(this.end==null||Number.isFinite(this.end),`invalid content-length`),this.resume=this.end!=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,n,i){if(t<200){this.handler.onResponseStart?.(this.controllerProxy,t,n,i);return}if(this.error=null,this.retryCount+=1,this.statusCode=t,this.headers=n,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:n,data:{count:this.retryCount}});let e=c(n[`content-range`]);if(!e)throw new a(`Content-Range mismatch`,t,{headers:n,data:{count:this.retryCount}});if(this.etag!=null&&this.etag!==n.etag)throw new a(`ETag mismatch`,t,{headers:n,data:{count:this.retryCount}});d(n,e,t,this.retryCount);let{start:r,size:i,end:o=i?i-1:null}=e;if(this.start!==r||this.end!=null&&this.end!==o)throw new a(`Content-Range mismatch`,t,{headers:n,data:{count:this.retryCount}});return}if(t>=300){let r=new a(`Request failed`,t,{headers:n,data:{count:this.retryCount}});this.onResponseStartWithRetry(e,t,n,i,r);return}if(this.end==null){if(t===206){let e=c(n[`content-range`]);if(e==null||e.end==null){this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,t,n,i);return}d(n,e,t,this.retryCount);let{start:a,size:o,end:s=o?o-1:null}=e;r(a!=null&&Number.isFinite(a),`content-range mismatch`),r(s!=null&&Number.isFinite(s),`invalid content-length`),this.start=a,this.end=s}if(this.end==null&&this.opts.method!==`HEAD`){let e=n[`content-length`];this.end=e==null?null:Number(e)-1}r(Number.isFinite(this.start)),r(this.end==null||Number.isFinite(this.end),`invalid content-length`),this.resume=!0,this.etag=n.etag==null?null:n.etag,this.etag!=null&&this.etag[0]===`W`&&this.etag[1]===`/`&&(this.etag=null),this.headersSent=!0,this.handler.onResponseStart?.(this.controllerProxy,t,n,i)}else throw new a(`Request failed`,t,{headers:n,data:{count:this.retryCount}})}onResponseData(e,t){if(this.pendingResponseData!==null){this.pendingResponseData.push(t);return}this.error||(this.start+=t.length,this.handler.onResponseData?.(this.controllerProxy,t))}onResponseEnd(e,t){if(this.pendingResponseData!==null){this.pendingResponseTrailers=t,this.pendingResponseEnded=!0;return}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.headersSent&&!this.resume){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.pendingResponseData=null,this.pendingResponseTrailers=null,this.pendingResponseEnded=!1,this.handler.onResponseError?.(this.controllerProxy,e??new o))}}})),Mt=t(((e,t)=>{var n=Qe(),r=jt(),{kOriginless:i,kUrl:a}=Z();t.exports=class extends n{#e=null;#t=null;constructor(e,t={}){super(t),this.#e=e,this.#t=t,this[a]=e[a],this[i]=e[i]}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()}}})),Nt=t(((e,t)=>{var{InvalidArgumentError:n}=Q(),r=vt();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})}}})),Pt=t(((t,n)=>{var r=e(`node:assert`),{addAbortListener:i}=e(`node:events`),{Readable:a}=e(`node:stream`),{RequestAbortedError:o,NotSupportedError:s,InvalidArgumentError:c,AbortError:l}=Q(),u=$(),d=Symbol(`kConsume`),f=Symbol(`kReading`),p=Symbol(`kBody`),m=Symbol(`kAbort`),h=Symbol(`kContentType`),g=Symbol(`kContentLength`),_=Symbol(`kUsed`),v=Symbol(`kBytesRead`),y=()=>{},b=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[m]=t,this[d]=null,this[v]=0,this[p]=null,this[_]=!1,this[h]=n,this[g]=Number.isFinite(r)?r:null,this[f]=!1}_destroy(e,t){!e&&!this._readableState.endEmitted&&(e=new o),e&&this[m](),this[_]?t(e):setImmediate(t,e)}on(e,t){return(e===`data`||e===`readable`)&&(this[f]=!0,this[_]=!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[f]=this.listenerCount(`data`)>0||this.listenerCount(`readable`)>0),n}removeListener(e,t){return this.off(e,t)}push(e){return e&&(this[v]+=e.length,this[d])?(O(this[d],e),!this[f]||super.push(e)):super.push(e)}text(){return C(this,`text`)}json(){return C(this,`json`)}blob(){return C(this,`blob`)}bytes(){return C(this,`bytes`)}arrayBuffer(){return C(this,`arrayBuffer`)}async formData(){throw new s}get bodyUsed(){return u.isDisturbed(this)}get body(){return this[p]||(this[p]=ReadableStream.from(this),this[d]&&(this[p].getReader(),r(this[p].locked))),this[p]}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[g]&&this[g]>n||this[v]>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`,y).on(`data`,()=>{this[v]>n&&this.destroy()}).resume()})}setEncoding(e){return Buffer.isEncoding(e)&&super.setEncoding(e),this}};function x(e){return e[p]?.locked===!0||e[d]!==null}function S(e){return u.isDisturbed(e)||x(e)}function C(e,t){return r(!e[d]),new Promise((n,r)=>{if(S(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[d]={type:t,stream:e,resolve:n,reject:r,length:0,body:[]},e.on(`error`,function(e){k(this[d],e)}).on(`close`,function(){this[d].body!==null&&k(this[d],new o)}),w(e[d])})})}function w(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++)O(e,t.buffer[i])}else for(let n of t.buffer)O(e,n);let n=t.decoder;if(n!=null&&n.lastNeed>0&&O(e,Buffer.from(n.lastChar.subarray(0,n.lastTotal-n.lastNeed))),t.endEmitted){D(e,t.encoding);return}for(e.stream.on(`end`,function(){D(this[d],this._readableState.encoding)}),e.stream.resume();e.stream.read()!=null;);}function T(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 E(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 D(e,t){let{type:n,body:r,resolve:i,stream:a,length:o}=e;try{n===`text`?i(T(r,o,t)):n===`json`?i(JSON.parse(T(r,o,t))):n===`arrayBuffer`?i(E(r,o).buffer):n===`blob`?i(new Blob(r,{type:a[h]})):n===`bytes`&&i(E(r,o)),k(e)}catch(e){a.destroy(e)}}function O(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 k(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)}n.exports={Readable:b,chunksDecode:T}})),Ft=t(((t,n)=>{var r=e(`node:assert`),{AsyncResource:i}=e(`node:async_hooks`),{Readable:a}=Pt(),{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}r(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}))}}n.exports=d,n.exports.RequestHandler=u})),It=t(((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}})),Lt=t(((t,n)=>{var r=e(`node:assert`),{AsyncResource:i}=e(`node:async_hooks`),{InvalidArgumentError:a,InvalidReturnValueError:o}=Q(),s=$(),{addSignal:c,removeSignal:l}=It();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}r(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}))}}n.exports=h})),Rt=t(((t,n)=>{var{Readable:r,Duplex:i,PassThrough:a}=e(`node:stream`),o=e(`node:assert`),{AsyncResource:s}=e(`node:async_hooks`),{InvalidArgumentError:c,InvalidReturnValueError:l,RequestAbortedError:u}=Q(),d=$(),{kBodyUsed:f}=Z(),{addSignal:p,removeSignal:m}=It();function h(){}var g=Symbol(`resume`),_=class extends r{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 r{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)}}n.exports=b})),zt=t(((t,n)=>{var{InvalidArgumentError:r,SocketError:i}=Q(),{AsyncResource:a}=e(`node:async_hooks`),o=e(`node:assert`),s=$(),{kHTTP2Stream:c}=Z(),{addSignal:l,removeSignal:u}=It(),d=class extends a{constructor(e,t){if(!e||typeof e!=`object`)throw new r(`invalid opts`);if(typeof t!=`function`)throw new r(`invalid callback`);let{signal:n,opaque:i,responseHeaders:a}=e;if(n&&typeof n.on!=`function`&&typeof n.addEventListener!=`function`)throw new r(`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,n)}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}))}}n.exports=f})),Bt=t(((t,n)=>{var r=e(`node:assert`),{AsyncResource:i}=e(`node:async_hooks`),{InvalidArgumentError:a,SocketError:o}=Q(),s=$(),{addSignal:c,removeSignal:l}=It(),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}r(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}))}}n.exports=d})),Vt=t(((e,t)=>{t.exports.request=Ft(),t.exports.stream=Lt(),t.exports.pipeline=Rt(),t.exports.upgrade=zt(),t.exports.connect=Bt()})),Ht=t(((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}}}})),Ut=t(((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`)}})),Wt=t(((t,n)=>{var{MockNotMatchedError:r}=Ht(),{kDispatches:i,kMockAgent:a,kOriginalDispatch:o,kOrigin:s,kGetNetConnect:c,kTotalDispatchCount:l}=Ut(),{serializePathWithQuery:u,parseHeaders:d}=$(),{STATUS_CODES:f}=e(`node:http`),{types:{isPromise:p}}=e(`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 n=t.query?u(t.path,t.query):t.path,i=typeof n==`string`?S(n):n,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 r(`Mock dispatch not matched for path '${i}'`);if(o=o.filter(({method:e})=>g(e,t.method)),o.length===0)throw new r(`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 r(`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 r(`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],n=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 r(`${s.message}: subsequent request to origin ${t} was not allowed (net.connect disabled)${f}`);if(B(u,t))n.call(this,`__mockAgentBodyForDispatch`in a?{...a,body:a.__mockAgentBodyForDispatch}:a,o);else throw new r(`${s.message}: subsequent request to origin ${t} was not allowed (net.connect is not enabled for this origin)${f}`)}else throw s}else n.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}n.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}})),Gt=t(((t,n)=>{var{getResponseData:r,buildKey:i,addMockDispatch:a}=Wt(),{kDispatches:o,kDispatchKey:s,kDefaultHeaders:c,kDefaultTrailers:l,kContentLength:u,kMockDispatch:d,kIgnoreTrailingSlash:f}=Ut(),{InvalidArgumentError:p}=Q(),{serializePathWithQuery:m}=$(),{types:{isPromise:h}}=e(`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:n}){let i=r(t),a=this[u]?{"content-length":i.length}:{};return{statusCode:e,data:t,headers:{...this[c],...a,...n.headers},trailers:{...this[l],...n.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}};n.exports.MockInterceptor=_,n.exports.MockScope=g})),Kt=t(((t,n)=>{var{promisify:r}=e(`node:util`),i=vt(),{buildMockDispatch:a}=Wt(),{kDispatches:o,kMockAgent:s,kClose:c,kOriginalClose:l,kOrigin:u,kOriginalDispatch:d,kConnected:f,kIgnoreTrailingSlash:p}=Ut(),{MockInterceptor:m}=Gt(),h=Z(),{InvalidArgumentError:g}=Q();n.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 r(this[l])(),this[f]=0,this[s][h.kClients].delete(this[u])}}})),qt=t(((e,t)=>{var{kMockCallHistoryAddLog:n}=Ut(),{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})),Jt=t(((t,n)=>{var{promisify:r}=e(`node:util`),i=xt(),{buildMockDispatch:a}=Wt(),{kDispatches:o,kMockAgent:s,kClose:c,kOriginalClose:l,kOrigin:u,kOriginalDispatch:d,kConnected:f,kIgnoreTrailingSlash:p}=Ut(),{MockInterceptor:m}=Gt(),h=Z(),{InvalidArgumentError:g}=Q();n.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 r(this[l])(),this[f]=0,this[s][h.kClients].delete(this[u])}}})),Yt=t(((t,n)=>{var{Transform:r}=e(`node:stream`),{Console:i}=e(`node:console`),a=process.versions.icu?`✅`:`Y `,o=process.versions.icu?`❌`:`N `;n.exports=class{constructor({disableColors:e}={}){this.transform=new r({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()}}})),Xt=t(((e,t)=>{var{kClients:n}=Z(),r=wt(),{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}=Ut(),b=Kt(),x=Jt(),{matchValue:S,normalizeSearchParams:C,buildAndValidateMockOptions:w,normalizeOrigin:T}=Wt(),{InvalidArgumentError:E,UndiciError:D}=Q(),O=Qe(),k=Yt(),{MockCallHistory:A}=qt();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())}}})),Zt=t(((t,n)=>{var{InvalidArgumentError:r}=Q(),{runtimeFeatures:i}=ft();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`)?e(`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 r(`Invalid snapshot mode: ${e}. Must be one of: ${d.join(`, `)}`)}n.exports={createHeaderFilters:a,hashId:s,isUndiciHeaders:c,normalizeHeaders:u,isUrlExcludedFactory:l,validateSnapshotMode:f}})),Qt=t(((t,n)=>{var{writeFile:r,readFile:i,mkdir:a}=e(`node:fs/promises`),{dirname:o,resolve:s}=e(`node:path`),{setTimeout:c,clearTimeout:l}=e(`node:timers`),{InvalidArgumentError:u,UndiciError:d}=Q(),{hashId:f,isUrlExcludedFactory:p,normalizeHeaders:m,createHeaderFilters:h}=Zt();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(`|`))}n.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 n=s(t);await a(o(n),{recursive:!0});let i=Array.from(this.#n.entries()).map(([e,t])=>({hash:e,snapshot:t}));await r(n,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}})),$t=t(((e,t)=>{var n=wt(),r=Xt(),{SnapshotRecorder:i}=Qt(),{InvalidArgumentError:a,UndiciError:o}=Q(),s=$(),{validateSnapshotMode:c}=Zt(),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()}}})),en=t(((e,t)=>{var n=Symbol.for(`undici.globalDispatcher.2`),r=Symbol.for(`undici.globalDispatcher.1`),{InvalidArgumentError:i}=Q(),a=wt(),o=Tt(),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`]}})),tn=t(((t,n)=>{var r=e(`node:assert`);n.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 r(!this.#t),r(!this.#n),this.#e.onRequestUpgrade?.(...e)}onResponseStart(...e){return r(!this.#t),r(!this.#n),r(!this.#r),this.#r=!0,this.#e.onResponseStart?.(...e)}onResponseData(...e){return r(!this.#t),r(!this.#n),this.#e.onResponseData?.(...e)}onResponseEnd(...e){return r(!this.#t),r(!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)}}})),nn=t(((t,n)=>{var r=$(),i=e(`node:assert`),{InvalidArgumentError:a}=Q(),{kRequestOrigin:o}=Z(),s=[300,301,302,303,307,308],c=()=>{},l=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,n,i){if(t!=null&&(!Number.isInteger(t)||t<0))throw new a(`maxRedirections must be a positive number`);if(n.throwOnMaxRedirect!=null&&typeof n.throwOnMaxRedirect!=`boolean`)throw new a(`throwOnMaxRedirect must be a boolean`);this.dispatch=e,this.location=null;let{maxRedirections:o,stripHeadersOnRedirect:s,stripHeadersOnCrossOriginRedirect:c,...l}=n;this.opts=l,this.opts.body=r.wrapRequestBody(this.opts.body),this.stripHeadersOnRedirect=d(s,`stripHeadersOnRedirect`),this.stripHeadersOnCrossOriginRedirect=d(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,n,i){if(t<200){this.handler.onResponseStart?.(e,t,n,i);return}if(this.opts.throwOnMaxRedirect&&this.history.length>=this.maxRedirections)throw Error(`max redirects`);let l=t===303;(t===301||t===302)&&this.opts.method===`POST`&&(this.opts.method=`GET`,r.isStream(this.opts.body)&&r.destroy(this.opts.body.on(`error`,c)),this.opts.body=null,l=!0),t===303&&this.opts.method!==`HEAD`&&(this.opts.method=`GET`,r.isStream(this.opts.body)&&r.destroy(this.opts.body.on(`error`,c)),this.opts.body=null),this.location=this.history.length>=this.maxRedirections||r.isDisturbed(this.opts.body)||s.indexOf(t)===-1?null:n.location;let u=this.opts[o]===void 0?this.opts.origin:this.opts[o];if(u&&this.history.push(new URL(this.opts.path,u)),!this.location){this.handler.onResponseStart?.(e,t,n,i);return}let d=u?new URL(this.opts.path,u):void 0,{origin:p,pathname:m,search:h}=r.parseURL(new URL(this.location,d)),g=h?`${m}${h}`:m,_=`${p}${g}`;for(let e of this.history)if(e.toString()===_)throw new a(`Redirect loop detected. Cannot redirect to ${p}. This typically happens when using a Client or Pool with cross-origin redirects. Use an Agent for cross-origin redirects.`);this.opts.headers=f(this.opts.headers,l,u!==p,this.stripHeadersOnRedirect,this.stripHeadersOnCrossOriginRedirect),this.opts.path=g,this.opts.origin=p,this.opts[o]=p,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 u(e,t,n,i,a){let o=r.headerNameToString(e);return o===`host`||i?.has(o)||n&&a?.has(o)||t&&o.startsWith(`content-`)?!0:n?o===`authorization`||o===`cookie`||o===`proxy-authorization`:!1}function d(e,t){if(e==null)return null;if(!Array.isArray(e))throw new a(`${t} must be an array`);let n=new Set;for(let i of e){if(typeof i!=`string`)throw new a(`${t} must contain header names`);n.add(r.headerNameToString(i))}return n}function f(e,t,n,a,o){let s=[];if(Array.isArray(e))for(let r=0;r<e.length;r+=2)u(e[r],t,n,a,o)||s.push(e[r],e[r+1]);else if(e&&typeof e==`object`){let i=r.hasSafeIterator(e)?e:Object.entries(e);for(let[e,r]of i)u(e,t,n,a,o)||s.push(e,r)}else i(e==null,`headers must be an object or an array`);return s}n.exports=l})),rn=t(((e,t)=>{var n=nn();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})),an=t(((e,t)=>{var n=tn(),{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}))}})),on=t(((e,t)=>{var n=jt();t.exports=e=>t=>function(r,i){return t(r,new n({...r,retryOptions:{...e,...r.retryOptions}},{handler:i,dispatch:t}))}})),sn=t(((e,t)=>{var{InvalidArgumentError:n,RequestAbortedError:r}=Q(),i=tn(),a=class extends i{#e=1048576;#t=!1;#n=0;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}#r(e){this.aborted=!0,this.reason=e}onRequestStart(e,t){return e.abort=this.#r.bind(this),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){super.onResponseError(e,this.aborted===!0?this.reason:t)}onResponseData(e,t){if(this.#n+=t.length,this.#n>this.#e)throw new r(`Response size (${this.#n}) larger than maxSize (${this.#e})`);return this.#n===this.#e&&(this.#t=!0),!0}onResponseEnd(e,t){if(this.aborted===!0){super.onResponseError(e,this.reason);return}super.onResponseEnd(e,this.#t?{}: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})),cn=t(((t,n)=>{var{isIP:r}=e(`node:net`),{lookup:i}=e(`node:dns`),a=tn(),{InvalidArgumentError:o,InformationalError:s}=Q(),{kRequestOrigin:c}=Z(),l=2**31-1;function u(e){let t=Object.getPrototypeOf(e);return Object.hasOwn(e,Symbol.iterator)||t!=null&&t!==Object.prototype&&typeof e[Symbol.iterator]==`function`}function d(e){return typeof e==`string`&&e.toLowerCase()===`host`}function f(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`&&u(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 p(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(d(e[t]))return!0;return!1}if(typeof e==`object`){for(let t in e)if(d(t))return!0}return!1}function m(e,t){let n=f(t);return p(n)?n:Array.isArray(n)?[`host`,e,...n]:n&&typeof n==`object`?{host:e,...n}:{host:e}}var h=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}},g=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 h(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===l?(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===l?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===l?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 _(this,e,t)}},_=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}`,[c]:this.#t[c]===void 0?this.#r:this.#t[c],headers:m(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)}}};n.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,n;n=t?e?.affinity??null:e?.affinity??4;let i=new g({maxTTL:e?.maxTTL??1e4,lookup:e?.lookup??null,pick:e?.pick??null,dualStack:t,affinity:n,maxItems:e?.maxItems??1/0,storage:e?.storage});return e=>function(t,n){if(t.origin==null)return e(t,n);let a=t.origin.constructor===URL?t.origin:new URL(t.origin);return r(a.hostname)===0?(i.runLookup(a,t,(r,o)=>{if(r)return n.onResponseError(null,r);e({...t,servername:a.hostname,origin:o.origin,[c]:t[c]===void 0?a:t[c],headers:m(a.host,t.headers)},i.getHandler({origin:a,dispatch:e,handler:n,newOrigin:o},t))}),!0):e(t,n)}}})),ln=t(((e,t)=>{var{safeHTTPMethods:n,pathHasQueryOrFragment:r,hasSafeIterator:i,isValidHTTPToken:a}=$(),{serializePathWithQuery:o}=$(),{kRequestOrigin:s}=Z(),c=2147483647,l=[`no-store`,`private`,`no-cache`],u=Symbol(`invalid cache-control directives`);function d(e){return e.replace(/^[\t ]+|[\t ]+$/g,``)}function f(e,t){for(let n=0;n<e.length;n++)if(e[n]===t)return!0;return!1}function p(e){return e.replace(/^[\t ]+/,``)}function m(e){return e.replace(/[\t ]+$/,``)}function h(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 g(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 _(e,t){let n=e[u];n===void 0&&(n=new Set,Object.defineProperty(e,u,{value:n})),n.add(t)}function v(e,t){return e[u]?.has(t)===!0}function y(e){for(let t of l)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&&f(l,t))return t}function b(e){let t=e[s]===void 0?e.origin:e[s];return typeof t==`string`||t instanceof URL?t:null}function x(e,t){let n=b(e);if(t===void 0)return n;if(t===null)return null;if(n)try{if(new URL(n).origin!==t)return null}catch{return t}return t}function S(e,t=b(e)){if(!t)throw Error(`opts.origin is undefined`);let n=e.path||`/`;return e.query&&!r(n)&&(n=o(n,e.query)),{origin:t.toString(),method:e.method,path:n,headers:e.headers}}function C(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 w(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`);C(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`)C(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`))}C(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`);C(t,e,r)}}else for(let n of Object.keys(e.headers))C(t,n,e.headers[n])}else throw Error(`opts.headers is not an object`);return t}function T(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 E(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 D(e){let t={},n=new Set,r=new Set,i=g(Array.isArray(e)?e.join(`,`):e);for(let e=0;e<i.length;e++){let o=i[e],s=o.value.toLowerCase(),l=o.fromMalformedQuote,u=s.indexOf(`=`),f,g,v=!1,b=!1;if(u!==-1){let e=s.substring(0,u),t=s.substring(u+1);v=m(e)!==e,b=p(t)!==t,f=d(e),g=p(t)}else f=d(s);let x=y(f);if(x!==void 0){t[x]=!0;continue}switch(f){case`min-fresh`:case`max-stale`:case`max-age`:case`s-maxage`:case`stale-while-revalidate`:case`stale-if-error`:{if(l||n.has(f))continue;if(g===void 0||v||b){delete t[f],n.add(f),_(t,f);continue}if(g.length>=2&&g[0]===`"`&&g[g.length-1]===`"`&&(g=g.substring(1,g.length-1)),!/^[0-9]+$/.test(g)){delete t[f],n.add(f),_(t,f);continue}let e=Math.min(parseInt(g,10),c);f===`min-fresh`?(!(f in t)||t[f]<e)&&(t[f]=e):(!(f in t)||t[f]>e)&&(t[f]=e);break}case`private`:case`no-cache`:if(l){t[f]=!0;break}if(g!==void 0&&g.length===0){t[f]=!0;break}if(g){if(g[0]===`"`){g=m(g);let n=``,r=e,o=!1,s=h(g,1);if(s!==-1)n=g.substring(1,s),o=!0;else{let t=[g.substring(1)];for(let n=e+1;n<i.length;n++){let e=d(i[n].value),a=h(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[f]=!0;break}e=r;let c=n.split(`,`),l=!0;for(let e=0;e<c.length;e++)c[e]=d(c[e]),a(c[e])||(l=!1);l?t[f]!==!0&&(f in t?t[f]=t[f].concat(c):t[f]=c):t[f]=!0}else{let e=d(g);a(e)?t[f]!==!0&&(f in t?t[f]=t[f].concat(e):t[f]=[e]):t[f]=!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(f))continue;if(g!==void 0){delete t[f],r.add(f);continue}t[f]=!0;break;case`no-store`:t[f]=!0;break;default:continue}}return t}function O(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 k(e){let t=O(e);for(let e=0;e<t.length;e++)if(d(t[e]).indexOf(`*`)!==-1)return!0;return!1}function A(e,t){if(k(e))return t;let n={},r=O(e);for(let e of r){let r=d(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 j(e){return k(e)||A(e,{})===void 0}function M(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 N(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 P(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(!f(n,r))throw TypeError(`element of ${t}-array needs to be one of following values: ${n.join(`, `)}, got ${r}`)}function F(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={getInterceptorOrigin:x,getRequestOrigin:b,makeCacheKey:S,normalizeHeaders:w,assertCacheKey:T,assertCacheValue:E,parseCacheControlHeader:D,hasInvalidCacheControlDirective:v,parseVaryHeader:A,hasVaryStar:k,isInvalidOrWildcardVaryHeader:j,isEtagUsable:M,assertCacheMethods:P,assertCacheStore:N,makeDeduplicationKey:F}})),un=t(((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}})),dn=t(((e,t)=>{var n=$(),{parseCacheControlHeader:r,hasInvalidCacheControlDirective:i,parseVaryHeader:a,hasVaryStar:o,isInvalidOrWildcardVaryHeader:s,isEtagUsable:c}=ln(),{parseHttpDate:l}=un();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=f?r(f):{};if(T(this.#t,i,m))return C(this.#r,this.#e),l();let h=i[`last-modified`]&&g(d,t);if(!f&&!i.expires&&!h&&!this.#n)return t===304&&i.vary&&s(i.vary)&&C(this.#r,this.#e),l();if(!E(this.#t,this.#e.method,t,i,m,this.#e.headers))return t===304&&(f||T(this.#t,i,m))&&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,m,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,_,m,I),ee=j(i,m),B={statusCode:t,statusMessage:o,headers:ee,vary:L,cacheControlDirectives:m,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||Object.hasOwn(t,`set-cookie`))||(t.vary?s(t.vary):!1)}function E(e,t,r,i,a,s){return!(!g(n.safeHTTPMethods,t)||r<200||g(f,r)||!g(d,r)&&!i.expires&&!a.public&&a[`max-age`]===void 0&&!(a.private&&e===`private`)&&(a[`s-maxage`]===void 0||e!==`shared`)||a[`no-store`]||e===`shared`&&(a.private===!0||Object.hasOwn(i,`set-cookie`))||i.vary&&o(i.vary)||s!=null&&Object.hasOwn(s,`authorization`)&&(!a.public&&!a[`s-maxage`]&&!a[`must-revalidate`]||typeof s.authorization!=`string`||Array.isArray(a[`no-cache`])&&g(a[`no-cache`],`authorization`)||Array.isArray(a.private)&&g(a.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})),fn=t(((t,n)=>{var{Writable:r}=e(`node:stream`),{EventEmitter:i}=e(`node:events`),{assertCacheKey:a,assertCacheValue:o}=ln(),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 n=`${e.origin}:${e.path}`,i=this,s={...e,...t,body:[],size:0};return new r({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 r=i.#a.get(n);r||(r=[],i.#a.set(n,r));let a=c(e,r,Date.now());if(a){let e=r.indexOf(a);r.splice(e,1,s),i.#r-=a.size}else r.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}n.exports=s})),pn=t(((t,n)=>{var r=e(`node:assert`);n.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,n,i){if(r(this.#t!=null),this.#e=t===304||this.#i&&t>=500&&t<=504,this.#t(this.#e,this.#r,t,n),this.#t=null,this.#e)return!0;this.#n.onRequestStart?.(e,this.#r),this.#n.onResponseStart?.(e,t,n,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}}}})),mn=t(((t,n)=>{var r=e(`node:assert`),{Readable:i}=e(`node:stream`),a=$(),o=dn(),s=fn(),c=pn(),{assertCacheStore:l,assertCacheMethods:u,getInterceptorOrigin:d,makeCacheKey:f,normalizeHeaders:p,parseCacheControlHeader:m,isInvalidOrWildcardVaryHeader:h,parseVaryHeader:g}=ln(),{AbortError:_}=Q(),{parseHttpDate:v}=un();function y(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 b=()=>{};function x(e){return e.replace(/^[\t ]+|[\t ]+$/g,``)}function S(e,t){for(let n=0;n<e.length;n++)if(e[n]===t)return!0;return!1}function C(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(x(r[e]).toLowerCase()===`no-cache`)return!0}return!1}function w(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 T(e,t){return e.cacheControlDirectives?.[`must-revalidate`]===!0||t===`shared`&&(e.cacheControlDirectives?.[`proxy-revalidate`]===!0||e.cacheControlDirectives?.[`s-maxage`]!==void 0)}function E(e,t){if(t.vary&&h(t.vary)||e===`shared`&&Object.hasOwn(t,`set-cookie`))return!0;let n=t[`cache-control`];if(!n)return!1;let r=m(n);return r[`no-store`]===!0||e===`shared`&&r.private===!0}function D(e){return e[`cache-control`]!==void 0}function O(e,t){if(!t)return!1;for(let n in t)if(e.vary==null||!Object.hasOwn(e.vary,n))return!0;return!1}function k(e,t){try{e.delete(t)?.catch?.(b)}catch{}}function A(e){let t=e?.[`last-modified`];if(typeof t==`string`&&v(t))return t}function j(e,t){let n={...e.headers,"if-modified-since":A(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 M(e,t,n){let r=Date.now();return r>e.staleAt?!T(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 N(e,t){let n=e.cacheControlDirectives?.[`stale-while-revalidate`];return!n||T(e,t)?!1:Date.now()<=e.staleAt+n*1e3}function P(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 _)}};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 F(e,t,n,o,s,c){let l=a.isStream(n.body)?n.body:i.from(n.body??[]);r(!l.destroyed,`stream should not be destroyed`),r(!l.readableDidRead,`stream should not be readableDidRead`);let u=!1,d={rawHeaders:[],rawTrailers:[],resume(){l.resume()},pause(){l.pause()},get paused(){return l.isPaused()},get aborted(){return u},get reason(){return l.errored},abort(e){u=!0,l.destroy(e??new _)}};if(l.on(`error`,function(t){if(!this.readableEnded){if(typeof e.onResponseError==`function`)e.onResponseError(d,t);else throw t}}).on(`close`,function(){this.errored||e.onResponseEnd?.(d,{})}),e.onRequestStart?.(d,s),l.destroyed)return;let f={...n.headers,age:String(o)};c&&(f.warning=`110 - "response is stale"`),d.rawHeaders=a.toRawHeaders(f),e.onResponseStart?.(d,n.statusCode,f,n.statusMessage),t.method===`HEAD`?l.destroy():l.on(`data`,function(t){e.onResponseData?.(d,t)})}function I(e,t,n,r,i,s,l){if(!l)return P(e,t,n,r,i,s);if(t.type===`shared`&&Object.hasOwn(l.headers,`set-cookie`))return a.isStream(l.body)&&l.body.on(`error`,b).destroy(),k(t.store,n),P(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||M(l,s,t.type),m=f||w(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&&N(l,t.type))return F(r,i,l,d,null,!0),queueMicrotask(()=>{let r=j(i,l);e({...i,headers:r},new o(t,n,{onRequestStart(){},onRequestUpgrade(){},onResponseStart(){},onResponseData(){},onResponseEnd(){},onResponseError(){}}))}),!0;let f=!1;if(!T(l,t.type)){let e=l.cacheControlDirectives[`stale-if-error`]??s?.[`stale-if-error`];e&&(f=u<l.staleAt+e*1e3)}let h=j(i,l);return e({...i,headers:h},new c((s,c,u,f)=>{if(s){if(u===304){if(E(t.type,f))return a.isStream(l.body)&&l.body.on(`error`,b).destroy(),k(t.store,n),e(i,new o(t,n,r));if(D(f))k(t.store,n);else if(O(l,f.vary?g(f.vary,i.headers):void 0))return a.isStream(l.body)&&l.body.on(`error`,b).destroy(),k(t.store,n),e(i,new o(t,n,r))}F(r,i,l,d,c,p)}else a.isStream(l.body)&&l.body.on(`error`,b).destroy()},new o(t,n,r),f))}a.isStream(i.body)&&i.body.on(`error`,b).destroy(),F(r,i,l,d,null,!1)}n.exports=(e={})=>{let{store:t=new s,methods:n=[`GET`],cacheByDefault:r=void 0,type:i=`shared`,origins:c=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`),y(c,`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 h={store:t,methods:n,cacheByDefault:r,type:i},g=[];for(let e=0;e<a.safeHTTPMethods.length;e++){let t=a.safeHTTPMethods[e];S(n,t)||g.push(t)}return(e,n)=>(r,i)=>{let s=d(r,n);if(!s||S(g,r.method))return e(r,i);if(c!==void 0){let t=s.toString().toLowerCase(),n=!1;for(let e=0;e<c.length;e++){let r=c[e];if(typeof r==`string`){if(r.toLowerCase()===t){n=!0;break}}else if(r.test(t)){n=!0;break}}if(!n)return e(r,i)}r={...r,headers:p(r)};let l=r.headers?.[`cache-control`]?m(r.headers[`cache-control`]):C(r.headers)?{"no-cache":!0}:void 0;if(l?.[`no-store`])return e(r,i);let u=f(r,s);if(!S(a.safeHTTPMethods,r.method))return e(r,new o(h,u,i));let _=t.get(u);return _&&typeof _.then==`function`?_.then(t=>I(e,h,u,i,r,l,t)):I(e,h,u,i,r,l,_)}}})),hn=t(((t,n)=>{var{createInflate:r,createGunzip:i,createBrotliDecompress:a,createZstdDecompress:o}=e(`node:zlib`),{pipeline:s,Transform:c}=e(`node:stream`),{InvalidArgumentError:l,ResponseExceededMaxSizeError:u}=Q(),d=tn(),f=class{#e;#t;#n;#r=!1;constructor(e,t,n){this.#e=e,this.#t=t,this.#n=n,this.target=null}pause(){this.#r||(this.#r=!0,this.#e())}resume(){this.#r&&(this.#r=!1,this.#t())}abort(e){this.target?.abort(e),this.#n(e)}get paused(){return this.#r}get aborted(){return this.target?.aborted??!1}get reason(){return this.target?.reason??null}get rawHeaders(){return this.target?.rawHeaders??null}set rawHeaders(e){this.target&&(this.target.rawHeaders=e)}get rawTrailers(){return this.target?.rawTrailers??null}set rawTrailers(e){this.target&&(this.target.rawTrailers=e)}},p={__proto__:null,gzip:i,"x-gzip":i,br:a,deflate:r,compress:r,"x-compress":r,zstd:o},m=[204,304],h=0;function g(e){let t=0;return new c({transform(n,r,i){let a=t+n.length;if(a>e){i(new u(`Decompressed response size (${a}) exceeded maxSize (${e})`));return}t=a,i(null,n)}})}var _=!1,v=class extends d{#e=[];#t;#n;#r;#i;#a=0;#o=!1;#s=!1;#c=!1;#l=!1;#u=!1;#d=!1;#f=!1;#p;#m;constructor(e,{skipStatusCodes:t=m,skipErrorResponses:n=!0,maxSize:r=h}={}){if(!Number.isSafeInteger(r)||r<0)throw new l(`maxSize must be a non-negative integer`);super(e),this.#n=t,this.#r=n,this.#i=r,this.#m=new f(()=>this.#h(),()=>this.#g(),e=>{this.#s&&!this.#o&&this.onResponseError(this.#m,e)})}#h(){this.#_()}#g(){let e=this.#u;this.#y(),e||(this.#v(),this.#b())}#_(){!this.#l&&!this.#o&&(this.#l=!0,this.#m.target?.pause())}#v(){this.#l&&!this.#m.paused&&!this.#c&&(this.#l=!1,this.#s||this.#m.target?.resume())}#y(){if(!(this.#o||this.#m.paused||!this.#p)){if(this.#u){this.#d=!0;return}this.#u=!0;try{do{this.#d=!1;let e;for(;!this.#o&&!this.#m.paused&&(e=this.#p.read())!==null;){if(this.#i>0){let t=this.#a+e.length;if(t>this.#i){this.#w(new u(`Decompressed response size (${t}) exceeded maxSize (${this.#i})`));return}this.#a=t}super.onResponseData(this.#m,e)===!1&&!this.#m.paused&&this.#m.pause()}}while(this.#d&&!this.#o&&!this.#m.paused)}finally{this.#u=!1}this.#v(),this.#b()}}#b(){this.#o||!this.#f||this.#m.paused||this.#u||(this.#o=!0,this.#k(),super.onResponseEnd(this.#m,this.#t))}#x(){this.#o||(this.#f=!0,this.#y(),this.#b())}#S(e,t){return!!(!e||t<200||this.#n.includes(t)||this.#r&&t>=400)}#C(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(!p[r])return n.length=0,n;n.push(p[r]())}}if(n.length<2)return n;let r=[];for(let e=0;e<n.length;e++)r.push(n[e]),e<n.length-1&&this.#i>0&&r.push(g(this.#i));return r}#w(e){this.#o||(this.#s?this.onResponseError(this.#m,e):this.#m.abort(e))}#T(e){this.#p=e,e.on(`readable`,()=>this.#y()),e.on(`error`,e=>this.#w(e))}#E(){let e=this.#e[0];this.#T(e),e.on(`end`,()=>this.#x())}#D(){let e=this.#e[this.#e.length-1];this.#T(e),s(this.#e,e=>{if(!this.#o){if(e){this.#w(e);return}this.#x()}})}#O(){this.#e[0].on(`drain`,()=>{this.#o||(this.#c=!1,this.#m.paused||(this.#y(),this.#v()))})}#k(){this.#e.length=0,this.#p=void 0}onRequestStart(e,t){return this.#m.target=e,super.onRequestStart(this.#m,t)}onRequestUpgrade(e,t,n,r){return super.onRequestUpgrade(this.#m,t,n,r)}onResponseStart(e,t,n,r){let i=n[`content-encoding`],a=Array.isArray(i)?i.join(`,`):i;if(this.#S(a,t))return super.onResponseStart(this.#m,t,n,r);let o=this.#C(a.toLowerCase());if(o.length===0)return this.#k(),super.onResponseStart(this.#m,t,n,r);this.#e=o;let{"content-encoding":s,"content-length":c,...l}=n;if(this.#m.rawHeaders){let e=this.#m.rawHeaders;if(Array.isArray(e)){let t=[];for(let n=0;n<e.length;n+=2){let r=e[n],i=(Buffer.isBuffer(r)?r.toString(`latin1`):`${r}`).toLowerCase();i!==`content-encoding`&&i!==`content-length`&&t.push(e[n],e[n+1])}e.splice(0,e.length,...t)}else if(typeof e==`object`)for(let t of Object.keys(e)){let n=t.toLowerCase();(n===`content-encoding`||n===`content-length`)&&delete e[t]}}return this.#O(),this.#e.length===1?this.#E():this.#D(),super.onResponseStart(this.#m,t,l,r)}onResponseData(e,t){if(this.#e.length>0){this.#e[0].write(t)||(this.#c=!0,this.#_());return}return super.onResponseData(this.#m,t)}onResponseEnd(e,t){if(this.#e.length>0){this.#s=!0,this.#t=t,this.#e[0].end();return}return super.onResponseEnd(this.#m,t)}onResponseError(e,t){if(!this.#o){this.#o=!0;for(let e of this.#e)e.destroy();this.#k(),super.onResponseError(this.#m,t)}}};function y(e={}){return _||=(process.emitWarning(`DecompressInterceptor is experimental and subject to change`,`ExperimentalWarning`),!0),t=>(n,r)=>n.method===`HEAD`?t(n,r):t(n,new v(r,e))}n.exports=y})),gn=t(((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.#p(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.#_()}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.#m(e,t);continue}try{n.onResponseData?.(r,t)}catch{}r.aborted&&(e.done=!0,e.bufferedChunks=[],e.bufferedBytes=0)}this.#_()}}onResponseEnd(e,t){if(!(this.#o||this.#l)){this.#f(),this.#e.onResponseEnd?.(e,t),this.#l=!0;for(let e of this.#t){if(e.done||e.controller.aborted){e.done=!0;continue}if(this.#h(e),e.done||e.controller.aborted){e.done=!0;continue}if(e.controller.paused){e.pendingTrailers=t;continue}try{e.handler.onResponseEnd?.(e.controller,t)}catch(t){this.#g(e,t)}e.done=!0}this.#_()}}onResponseError(e,t){if(!this.#l){this.#o=!0,this.#l=!0,this.#f(),this.#e.onResponseError?.(e,t);for(let e of this.#t)this.#g(e,t);this.#t=[]}}#f(){let e=this.#d;this.#d=null,e?.()}#p(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.#h(t),this.#l&&t.pendingTrailers&&t.bufferedChunks.length===0&&!r.paused&&!r.aborted){try{t.handler.onResponseEnd?.(t.controller,t.pendingTrailers)}catch(e){this.#g(t,e)}t.pendingTrailers=null,t.done=!0}this.#_()}},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}#m(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`);e.controller.abort(t)}}#h(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}}}#g(e,t){if(!e.done){e.done=!0,e.pendingTrailers=null,e.bufferedChunks=[],e.bufferedBytes=0;try{e.handler.onResponseError?.(e.controller,t)}catch{}}}#_(){this.#t=this.#t.filter(e=>e.done===!1)}}})),_n=t(((t,n)=>{var r=e(`node:diagnostics_channel`),i=$(),a=gn(),{getInterceptorOrigin:o,normalizeHeaders:s,makeCacheKey:c,makeDeduplicationKey:l}=ln(),u=r.channel(`undici:request:pending-requests`);n.exports=(e={})=>{let{methods:t=[`GET`],skipHeaderNames:n=[],excludeHeaderNames:r=[],maxBufferSize:d=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(d)||d<=0)throw TypeError(`expected opts.maxBufferSize to be a positive finite number, got ${d}`);let f=new Set(n.map(e=>e.toLowerCase())),p=new Set(r.map(e=>e.toLowerCase())),m=new Map;return(e,n)=>(r,i)=>{let h=o(r,n);if(!h||r.upgrade||t.includes(r.method)===!1)return e(r,i);if(r={...r,headers:s(r)},f.size>0){for(let t of Object.keys(r.headers))if(f.has(t.toLowerCase()))return e(r,i)}let g=l(c(r,h),p),_=m.get(g);if(_)return _.addWaitingHandler(i)?!0:e(r,i);let v=new a(i,()=>{m.delete(g),u.hasSubscribers&&u.publish({size:m.size,key:g,type:`removed`})},d);return m.set(g,v),u.hasSubscribers&&u.publish({size:m.size,key:g,type:`added`}),e(r,v)}}})),vn=t(((t,n)=>{var{Writable:r}=e(`node:stream`),{assertCacheKey:i,assertCacheValue:a}=ln(),o,s=3,c=2e9;n.exports=class{#e=c;#t=1/0;#n;#r;#i;#a;#o;#s;#c;#l;constructor(t){if(t){if(typeof t!=`object`)throw TypeError(`SqliteCacheStore options must be an object`);if(t.maxEntrySize!==void 0){if(typeof t.maxEntrySize!=`number`||!Number.isInteger(t.maxEntrySize)||t.maxEntrySize<0)throw TypeError(`SqliteCacheStore options.maxEntrySize must be a non-negative integer`);if(t.maxEntrySize>c)throw TypeError(`SqliteCacheStore options.maxEntrySize must be less than 2gb`);this.#e=t.maxEntrySize}if(t.maxCount!==void 0){if(typeof t.maxCount!=`number`||!Number.isInteger(t.maxCount)||t.maxCount<0)throw TypeError(`SqliteCacheStore options.maxCount must be a non-negative integer`);this.#t=t.maxCount}}o||=e(`node:sqlite`).DatabaseSync,this.#n=new o(t?.location??`:memory:`),this.#n.exec(`
|
|
11
|
+
PRAGMA journal_mode = WAL;
|
|
12
|
+
PRAGMA synchronous = NORMAL;
|
|
13
|
+
PRAGMA temp_store = memory;
|
|
14
|
+
PRAGMA optimize;
|
|
15
|
+
|
|
16
|
+
CREATE TABLE IF NOT EXISTS cacheInterceptorV${s} (
|
|
17
|
+
-- Data specific to us
|
|
18
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
19
|
+
url TEXT NOT NULL,
|
|
20
|
+
method TEXT NOT NULL,
|
|
21
|
+
|
|
22
|
+
-- Data returned to the interceptor
|
|
23
|
+
body BUF NULL,
|
|
24
|
+
deleteAt INTEGER NOT NULL,
|
|
25
|
+
statusCode INTEGER NOT NULL,
|
|
26
|
+
statusMessage TEXT NOT NULL,
|
|
27
|
+
headers TEXT NULL,
|
|
28
|
+
cacheControlDirectives TEXT NULL,
|
|
29
|
+
etag TEXT NULL,
|
|
30
|
+
vary TEXT NULL,
|
|
31
|
+
cachedAt INTEGER NOT NULL,
|
|
32
|
+
staleAt INTEGER NOT NULL
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${s}_getValuesQuery ON cacheInterceptorV${s}(url, method, deleteAt);
|
|
36
|
+
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${s}_deleteByUrlQuery ON cacheInterceptorV${s}(deleteAt);
|
|
37
|
+
`),this.#r=this.#n.prepare(`
|
|
38
|
+
SELECT
|
|
39
|
+
id,
|
|
40
|
+
body,
|
|
41
|
+
deleteAt,
|
|
42
|
+
statusCode,
|
|
43
|
+
statusMessage,
|
|
44
|
+
headers,
|
|
45
|
+
etag,
|
|
46
|
+
cacheControlDirectives,
|
|
47
|
+
vary,
|
|
48
|
+
cachedAt,
|
|
49
|
+
staleAt
|
|
50
|
+
FROM cacheInterceptorV${s}
|
|
51
|
+
WHERE
|
|
52
|
+
url = ?
|
|
53
|
+
AND method = ?
|
|
54
|
+
ORDER BY
|
|
55
|
+
deleteAt ASC
|
|
56
|
+
`),this.#i=this.#n.prepare(`
|
|
57
|
+
UPDATE cacheInterceptorV${s} SET
|
|
58
|
+
body = ?,
|
|
59
|
+
deleteAt = ?,
|
|
60
|
+
statusCode = ?,
|
|
61
|
+
statusMessage = ?,
|
|
62
|
+
headers = ?,
|
|
63
|
+
etag = ?,
|
|
64
|
+
cacheControlDirectives = ?,
|
|
65
|
+
vary = ?,
|
|
66
|
+
cachedAt = ?,
|
|
67
|
+
staleAt = ?
|
|
68
|
+
WHERE
|
|
69
|
+
id = ?
|
|
70
|
+
`),this.#a=this.#n.prepare(`
|
|
71
|
+
INSERT INTO cacheInterceptorV${s} (
|
|
72
|
+
url,
|
|
73
|
+
method,
|
|
74
|
+
body,
|
|
75
|
+
deleteAt,
|
|
76
|
+
statusCode,
|
|
77
|
+
statusMessage,
|
|
78
|
+
headers,
|
|
79
|
+
etag,
|
|
80
|
+
cacheControlDirectives,
|
|
81
|
+
vary,
|
|
82
|
+
cachedAt,
|
|
83
|
+
staleAt
|
|
84
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
85
|
+
`),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(`
|
|
86
|
+
DELETE FROM cacheInterceptorV${s}
|
|
87
|
+
WHERE id IN (
|
|
88
|
+
SELECT
|
|
89
|
+
id
|
|
90
|
+
FROM cacheInterceptorV${s}
|
|
91
|
+
ORDER BY cachedAt ASC
|
|
92
|
+
LIMIT ?
|
|
93
|
+
)
|
|
94
|
+
`)}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 n=0,o=[],s=this;return new r({decodeStrings:!0,write(e,t,r){n+=e.byteLength,n<=s.#e?o.push(e):this.destroy(),r()},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}})),yn=t(((t,n)=>{var{kConstruct:r}=Z(),{kEnumerableProperty:i}=$(),{iteratorMixin:a,isValidHeaderName:o,isValidHeaderValue:s}=dt(),{webidl:c}=ut(),l=e(`node:assert`),u=e(`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(v(e)===`immutable`)throw TypeError(`immutable`);return b(e).append(t,n,!1)}function h(e){let t=b(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,y,b,x,S=class{#e;#t;constructor(e=void 0){c.util.markAsUncloneable(this),e!==r&&(this.#t=new _,this.#e=`none`,e!==void 0&&(e=c.converters.HeadersInit(e,`Headers constructor`,`init`),p(this,e)))}append(e,t){c.brandCheck(this,c.is.Headers),c.argumentLengthCheck(arguments,2,`Headers.append`);let n=`Headers.append`;return e=c.converters.ByteString(e,n,`name`),t=c.converters.ByteString(t,n,`value`),m(this,e,t)}delete(e){if(c.brandCheck(this,c.is.Headers),c.argumentLengthCheck(arguments,1,`Headers.delete`),e=c.converters.ByteString(e,`Headers.delete`,`name`),!o(e))throw c.errors.invalidArgument({prefix:`Headers.delete`,value:e,type:`header name`});if(this.#e===`immutable`)throw TypeError(`immutable`);this.#t.contains(e,!1)&&this.#t.delete(e,!1)}get(e){c.brandCheck(this,c.is.Headers),c.argumentLengthCheck(arguments,1,`Headers.get`);let t=`Headers.get`;if(e=c.converters.ByteString(e,t,`name`),!o(e))throw c.errors.invalidArgument({prefix:t,value:e,type:`header name`});return this.#t.get(e,!1)}has(e){c.brandCheck(this,c.is.Headers),c.argumentLengthCheck(arguments,1,`Headers.has`);let t=`Headers.has`;if(e=c.converters.ByteString(e,t,`name`),!o(e))throw c.errors.invalidArgument({prefix:t,value:e,type:`header name`});return this.#t.contains(e,!1)}set(e,t){c.brandCheck(this,c.is.Headers),c.argumentLengthCheck(arguments,2,`Headers.set`);let n=`Headers.set`;if(e=c.converters.ByteString(e,n,`name`),t=c.converters.ByteString(t,n,`value`),t=f(t),!o(e))throw c.errors.invalidArgument({prefix:n,value:e,type:`header name`});if(!s(t))throw c.errors.invalidArgument({prefix:n,value:t,type:`header value`});if(this.#e===`immutable`)throw TypeError(`immutable`);this.#t.set(e,t,!1)}getSetCookie(){c.brandCheck(this,c.is.Headers);let e=this.#t.cookies;return e?[...e]:[]}[u.inspect.custom](e,t){return t.depth??=e,`Headers ${u.formatWithOptions(t,this.#t.entries)}`}static{v=e=>e.#e,y=(e,t)=>{e.#e=t},b=e=>e.#t,x=(e,t)=>{e.#t=t},c.is.Headers=e=>typeof e==`object`&&!!e&&#e in e}};a(`Headers`,S,h,0,1,c.is.Headers),Object.defineProperties(S.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===S.prototype.entries)try{return b(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>`]})},n.exports={fill:p,compareHeaderName:g,Headers:S,HeadersList:_,getHeadersGuard:v,setHeadersGuard:y,setHeadersList:x,getHeadersList:b}})),bn=t(((t,n)=>{var{Headers:r,HeadersList:i,fill:a,getHeadersGuard:o,setHeadersGuard:s,setHeadersList:c}=yn(),{extractBody:l,cloneBody:u,mixinBody:d,streamRegistry:f,bodyUnusable:p}=ht(),m=$(),h=e(`node:util`),{kEnumerableProperty:g}=m,{isValidReasonPhrase:_,isCancelled:v,isAborted:y,isErrorLike:b,environmentSettingsObject:x}=dt(),{redirectStatusSet:S,nullBodyStatus:C}=at(),{webidl:w}=ut(),{URLSerializer:T}=lt(),{kConstruct:E}=Z(),D=e(`node:assert`),{isomorphicEncode:O,serializeJavascriptValueToJSONString:k}=ct(),A=new TextEncoder(`utf-8`),j,M,N,P,F=class{#e;#t;static error(){return H(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=H(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=H(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 r(E),s(this.#e,`response`),c(this.#e,this.#t.headersList);let n=null;if(e!=null){let[t,r]=l(e);n={body:t,type:r}}V(this,t,n)}get type(){return w.brandCheck(this,w.is.Response),this.#t.type}get url(){w.brandCheck(this,w.is.Response);let e=this.#t.urlList,t=e[e.length-1]??null;return t===null?``:T(t,!0)}get redirected(){return w.brandCheck(this,w.is.Response),this.#t.urlList.length>1}get status(){return w.brandCheck(this,w.is.Response),this.#t.status}get ok(){return w.brandCheck(this,w.is.Response),this.#t.status>=200&&this.#t.status<=299}get statusText(){return w.brandCheck(this,w.is.Response),this.#t.statusText}get headers(){return w.brandCheck(this,w.is.Response),this.#e}get body(){return w.brandCheck(this,w.is.Response),this.#t.body?this.#t.body.stream:null}get bodyUsed(){return w.brandCheck(this,w.is.Response),!!this.#t.body&&m.isDisturbed(this.#t.body.stream)}clone(){if(w.brandCheck(this,w.is.Response),p(this.#t))throw w.errors.exception({header:`Response.clone`,message:`Body has already been consumed.`});let e=I(this.#t);return this.#t.urlList.length!==0&&this.#t.body?.stream&&f.register(this,new WeakRef(this.#t.body.stream)),H(e,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{j=e=>e.#e,M=(e,t)=>{e.#e=t},N=e=>e.#t,P=(e,t)=>{e.#t=t},w.is.Response=e=>typeof e==`object`&&!!e&&#t in e}};d(F,N,w.is.Response),Object.defineProperties(F.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(F,{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&&(N(e).status=t.status),`statusText`in t&&t.statusText!=null&&(N(e).statusText=t.statusText),`headers`in t&&t.headers!=null&&a(j(e),t.headers),n){if(C.includes(e.status))throw w.errors.exception({header:`Response constructor`,message:`Invalid response status code ${e.status}`});N(e).body=n.body,n.type!=null&&!N(e).headersList.contains(`content-type`,!0)&&N(e).headersList.append(`content-type`,n.type,!0)}}function H(e,t){let n=new F(E);P(n,e);let i=new r(E);return M(n,i),c(i,e.headersList),s(i,t),e.urlList.length!==0&&e.body?.stream&&f.register(n,new WeakRef(e.body.stream)),n}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}]),n.exports={isNetworkError:z,makeNetworkError:R,makeResponse:L,makeAppropriateNetworkError:te,filterResponse:B,Response:F,cloneResponse:I,fromInnerResponse:H,getResponseState:N}})),xn=t(((t,n)=>{var{extractBody:r,mixinBody:i,cloneBody:a,bodyUnusable:o}=ht(),{Headers:s,fill:c,HeadersList:l,setHeadersGuard:u,getHeadersGuard:d,setHeadersList:f,getHeadersList:p}=yn(),m=$(),h=e(`node:util`),{isValidHTTPToken:g,sameOrigin:_,environmentSettingsObject:v}=dt(),{forbiddenMethodsSet:y,corsSafeListedMethodsSet:b,referrerPolicy:x,requestRedirect:S,requestMode:C,requestCredentials:w,requestCache:T,requestDuplex:E}=at(),{kEnumerableProperty:D,normalizedMethodRecordsBase:O,normalizedMethodRecords:k}=m,{webidl:A}=ut(),{URLSerializer:j}=lt(),{kConstruct:M}=Z(),N=e(`node:assert`),{getMaxListeners:P,setMaxListeners:F,defaultMaxListeners:I}=e(`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,H,ne,re,U,W,G,K=class{#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 n=null,i=null,a=v.settingsObject.baseUrl,d=null;if(typeof e==`string`){this.#t=t.dispatcher;let r;try{r=new URL(e,a)}catch(t){throw TypeError(`Failed to parse URL from `+e,{cause:t})}if(r.username||r.password)throw TypeError(`Request cannot be constructed from a URL that includes credentials: `+e);n=q({urlList:[r]}),i=`cors`}else N(A.is.Request(e)),n=e.#r,d=e.#e,this.#t=t.dispatcher||e.#t;let h=v.settingsObject.origin,x=`client`;if(n.window?.constructor?.name===`EnvironmentSettingsObject`&&_(n.window,h)&&(x=n.window),t.window!=null)throw TypeError(`'window' option '${x}' must be null`);`window`in t&&(x=`no-window`),n=q({method:n.method,headersList:n.headersList,unsafeRequest:n.unsafeRequest,client:v.settingsObject,window:x,priority:n.priority,origin:n.origin,referrer:n.referrer,referrerPolicy:n.referrerPolicy,mode:n.mode,credentials:n.credentials,cache:n.cache,redirect:n.redirect,integrity:n.integrity,keepalive:n.keepalive,reloadNavigation:n.reloadNavigation,historyNavigation:n.historyNavigation,urlList:[...n.urlList]});let S=Object.keys(t).length!==0;if(S&&(n.mode===`navigate`&&(n.mode=`same-origin`),n.reloadNavigation=!1,n.historyNavigation=!1,n.origin=`client`,n.referrer=`client`,n.referrerPolicy=``,n.url=n.urlList[n.urlList.length-1],n.urlList=[n.url]),t.referrer!==void 0){let e=t.referrer;if(e===``)n.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)?n.referrer=`client`:n.referrer=t}}t.referrerPolicy!==void 0&&(n.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&&(n.mode=C),t.credentials!==void 0&&(n.credentials=t.credentials),t.cache!==void 0&&(n.cache=t.cache),n.cache===`only-if-cached`&&n.mode!==`same-origin`)throw TypeError(`'only-if-cached' can be set only with 'same-origin' mode`);if(t.redirect!==void 0&&(n.redirect=t.redirect),t.integrity!=null&&(n.integrity=String(t.integrity)),t.keepalive!==void 0&&(n.keepalive=!!t.keepalive),t.method!==void 0){let e=t.method,r=k[e];if(r!==void 0)n.method=r;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,n.method=e}!te&&n.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=n;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,n.headersList),u(this.#n,`request`),C===`no-cors`){if(!b.has(n.method))throw TypeError(`'${n.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)&&(n.method===`GET`||n.method===`HEAD`))throw TypeError(`Request with GET/HEAD method cannot have body.`);let E=null;if(t.body!=null){let[e,i]=r(t.body,n.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(n.mode!==`same-origin`&&n.mode!==`cors`)throw TypeError(`If request is made from ReadableStream, mode should be "same-origin" or "cors"`);n.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,A.is.Request),this.#r.method}get url(){return A.brandCheck(this,A.is.Request),j(this.#r.url)}get headers(){return A.brandCheck(this,A.is.Request),this.#n}get destination(){return A.brandCheck(this,A.is.Request),this.#r.destination}get referrer(){return A.brandCheck(this,A.is.Request),this.#r.referrer===`no-referrer`?``:this.#r.referrer===`client`?`about:client`:this.#r.referrer.toString()}get referrerPolicy(){return A.brandCheck(this,A.is.Request),this.#r.referrerPolicy}get mode(){return A.brandCheck(this,A.is.Request),this.#r.mode}get credentials(){return A.brandCheck(this,A.is.Request),this.#r.credentials}get cache(){return A.brandCheck(this,A.is.Request),this.#r.cache}get redirect(){return A.brandCheck(this,A.is.Request),this.#r.redirect}get integrity(){return A.brandCheck(this,A.is.Request),this.#r.integrity}get keepalive(){return A.brandCheck(this,A.is.Request),this.#r.keepalive}get isReloadNavigation(){return A.brandCheck(this,A.is.Request),this.#r.reloadNavigation}get isHistoryNavigation(){return A.brandCheck(this,A.is.Request),this.#r.historyNavigation}get signal(){return A.brandCheck(this,A.is.Request),this.#e}get body(){return A.brandCheck(this,A.is.Request),this.#r.body?this.#r.body.stream:null}get bodyUsed(){return A.brandCheck(this,A.is.Request),!!this.#r.body&&m.isDisturbed(this.#r.body.stream)}get duplex(){return A.brandCheck(this,A.is.Request),`half`}clone(){if(A.brandCheck(this,A.is.Request),o(this.#r))throw TypeError(`unusable`);let e=ie(this.#r),t=new AbortController;if(this.signal.aborted)t.abort(this.signal.reason);else{let e=z.get(this.signal);e===void 0&&(e=new Set,z.set(this.signal,e));let n=new WeakRef(t);e.add(n),m.addAbortListener(t.signal,B(n))}return ae(e,this.#t,t.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{V=(e,t)=>{e.#e=t},H=e=>e.#t,ne=(e,t)=>{e.#t=t},re=(e,t)=>{e.#n=t},U=e=>e.#r,W=(e,t)=>{e.#r=t},G=e=>{e.#i?.()},A.is.Request=e=>typeof e==`object`&&!!e&&#r in e}};i(K,U,A.is.Request);function q(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 ie(e){let t=q({...e,body:null});return e.body!=null&&(t.body=a(e.body)),t}function ae(e,t,n,r){let i=new K(M);W(i,e),ne(i,t),V(i,n);let a=new s(M);return re(i,a),f(a,e.headersList),u(a,r),i}Object.defineProperties(K.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.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`]}]),n.exports={Request:K,makeRequest:q,fromInnerRequest:ae,cloneRequest:ie,getRequestDispatcher:H,getRequestState:U,removeRequestAbortListener:G}})),Sn=t(((t,n)=>{var r=e(`node:assert`),{runtimeFeatures:i}=ft(),a=new Map([[`sha256`,0],[`sha384`,1],[`sha512`,2]]),o;if(i.has(`crypto`)){o=e(`node:crypto`);let t=o.getHashes();t.length===0&&a.clear();for(let e of a.keys())t.includes(e)===!1&&a.delete(e)}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=[],n=null;for(let i of e){if(r(c(i.alg),`Invalid SRI hash algorithm token`),t.length===0){t.push(i),n=i;continue}let e=n.alg,a=s(e),o=i.alg,l=s(o);l<a||(l>a?(n=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}n.exports={applyAlgorithmToBytes:f,bytesMatch:l,caseSensitiveMatch:p,isValidSRIHashAlgorithm:c,getStrongestMetadata:u,parseMetadata:d}})),Cn=t(((t,n)=>{var{makeNetworkError:r,makeAppropriateNetworkError:i,filterResponse:a,makeResponse:o,fromInnerResponse:s,getResponseState:c}=bn(),{HeadersList:l}=yn(),{Request:u,cloneRequest:d,getRequestDispatcher:f,getRequestState:p,removeRequestAbortListener:m}=xn(),h=e(`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:H,hasAuthenticationEntry:ne,includesCredentials:re,isTraversableNavigable:U}=dt(),W=e(`node:assert`),{safelyExtractBody:G,extractBody:K}=ht(),{redirectStatusSet:q,nullBodyStatus:ie,safeMethodsSet:ae,requestBodyHeader:oe,subresourceSet:J}=at(),se=e(`node:events`),{Readable:ce,pipeline:le,finished:ue,isErrored:de,isReadable:Y}=e(`node:stream`),{addAbortListener:fe,bufferToLowerCasedHeaderName:pe}=$(),{SocketError:X}=Q(),{dataURLProcessor:me,serializeAMimeType:he,minimizeSupportedMimeType:ge}=lt(),{getGlobalDispatcher:_e}=en(),{webidl:ve}=ut(),{STATUS_CODES:ye}=e(`node:http`),{bytesMatch:be}=Sn(),{isomorphicEncode:xe}=ct(),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=pe(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 se{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){ve.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=fe(r.signal,()=>{o=!0,W(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&&Y(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&&Y(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=_e(),requestObject:c=null}){W(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 W(!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,J.has(e.destination),Ne(f,!1),f.controller}async function Ne(e,t){try{let n=e.request,i=null;if(n.localURLsOnly&&!L(S(n))&&(i=r(`local URLs only`)),w(n),v(n)===`blocked`&&(i=r(`bad port`)),n.referrerPolicy===``&&(n.referrerPolicy=n.policyContainer.referrerPolicy),n.referrer!==`no-referrer`&&(n.referrer=k(n)),i===null){let t=S(n);j(t,n.url)&&n.responseTainting===`basic`||t.protocol===`data:`||n.mode===`navigate`||n.mode===`websocket`?(n.responseTainting=`basic`,i=await Pe(e)):n.mode===`same-origin`?i=r(`request mode cannot be "same-origin"`):n.mode===`no-cors`?n.redirect===`follow`?(n.responseTainting=`opaque`,i=await Pe(e)):i=r(`redirect mode cannot be "follow" for "no-cors" request`):R(S(n))?(n.responseTainting=`cors`,i=await Le(e)):i=r(`URL scheme must be a HTTP(S) scheme`)}if(t)return i;i.status!==0&&!i.internalResponse&&(n.responseTainting,n.responseTainting===`basic`?i=a(i,`basic`):n.responseTainting===`cors`?i=a(i,`cors`):n.responseTainting===`opaque`?i=a(i,`opaque`):W(!1));let o=i.status===0?i:i.internalResponse;if(o.urlList.length===0&&o.urlList.push(...n.urlList),n.timingAllowFailed||(i.timingAllowPassed=!0),i.type===`opaque`&&o.status===206&&o.rangeRequested&&!n.headers.contains(`range`,!0)&&(i=o=r()),i.status!==0&&(n.method===`HEAD`||n.method===`CONNECT`||ie.includes(o.status))&&(o.body=null,e.controller.dump=!0),n.integrity){let t=t=>Ie(e,r(t));if(n.responseTainting===`opaque`||i.body==null){t(i.error);return}F(i.body,r=>{if(!be(r,n.integrity)){t(`integrity mismatch`);return}i.body=G(r)[0],Ie(e,i)},t)}else Ie(e,i)}catch(t){e.controller.terminate(t)}}function Pe(t){if(M(t))return Promise.resolve(i(t));let{request:n}=t,{protocol:a}=S(n);switch(a){case`about:`:return Promise.resolve(r(`about scheme is not supported`));case`blob:`:{we||=e(`node:buffer`).resolveObjectURL;let t=S(n);if(t.search.length!==0)return Promise.resolve(r(`NetworkError when attempting to fetch resource.`));let i=we(t.toString());if(n.method!==`GET`||!ve.is.Blob(i))return Promise.resolve(r(`invalid method`));let a=o(),s=i.size,c=xe(`${s}`),l=i.type;if(n.headersList.contains(`range`,!0)){a.rangeRequested=!0;let e=B(n.headersList.get(`range`,!0),!0);if(e===`failure`)return Promise.resolve(r(`failed to fetch the data URL`));let{rangeStartValue:t,rangeEndValue:o}=e;if(t===null)t=s-o,o=t+o-1;else{if(t>=s)return Promise.resolve(r(`Range start is greater than the blob's size.`));(o===null||o>=s)&&(o=s-1)}let c=i.slice(t,o+1,l);a.body=K(c)[0];let u=xe(`${c.size}`),d=te(t,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=me(S(n));if(e===`failure`)return Promise.resolve(r(`failed to fetch the data URL`));let t=he(e.mimeType);return Promise.resolve(o({statusText:`OK`,headersList:[[`content-type`,{name:`Content-Type`,value:t}]],body:G(e.body)[0]}))}case`file:`:return Promise.resolve(r(`not implemented... yet...`));case`http:`:case`https:`:return Le(t).catch(e=>r(e));default:return Promise.resolve(r(`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;e.request.destination===`document`&&(e.controller.fullTimingInfo=n);let r=()=>{let r=Date.now();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=H(t.headersList);e!==`failure`&&(a.contentType=ge(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;if(i.body==null?r():ue(i.body.stream,()=>{r()}),e.processResponseConsumeBody!=null){let n=n=>e.processResponseConsumeBody(t,n);i.body==null?queueMicrotask(()=>n(null)):F(i.body,n,()=>e.processResponseConsumeBody(t,`failure`))}}async function Le(e){let t=e.request,n=null,i=null,a=e.timingInfo;if(t.serviceWorkers,n===null){if(t.redirect===`follow`&&(t.serviceWorkers=`none`),i=n=await ze(e),t.responseTainting===`cors`&&D(t,n)===`failure`)return r(`cors failure`);y(t,n)===`failure`&&(t.timingAllowFailed=!0)}return(t.responseTainting===`opaque`||n.type===`opaque`)&&O(t.origin,t.client,t.destination,i)===`blocked`?r(`blocked`):(q.has(i.status)&&(t.redirect!==`manual`&&e.controller.connection.destroy(),t.redirect===`error`?n=r(`unexpected redirect`):t.redirect===`manual`?n=i:t.redirect===`follow`?n=await Re(e,n):W(!1)),n.timingInfo=a,n)}function Re(e,t){let n=e.request,i=t.internalResponse?t.internalResponse:t,a;try{if(a=x(i,S(n).hash),a==null)return t}catch(e){return Promise.resolve(r(e))}if(!R(a))return Promise.resolve(r(`URL scheme must be a HTTP(S) scheme`));if(n.redirectCount===20)return Promise.resolve(r(`redirect count exceeded`));if(n.redirectCount+=1,n.mode===`cors`&&(a.username||a.password)&&!j(n,a))return Promise.resolve(r(`cross origin not allowed for request mode "cors"`));if(n.responseTainting===`cors`&&(a.username||a.password))return Promise.resolve(r(`URL cannot contain credentials for request mode "cors"`));if(i.status!==303&&n.body!=null&&n.body.source==null)return Promise.resolve(r());if([301,302].includes(i.status)&&n.method===`POST`||i.status===303&&!Se.includes(n.method)){n.method=`GET`,n.body=null;for(let e of oe)n.headersList.delete(e)}j(S(n),a)||(n.headersList.delete(`authorization`,!0),n.headersList.delete(`proxy-authorization`,!0),n.headersList.delete(`cookie`,!0),n.headersList.delete(`host`,!0)),n.body!=null&&(W(n.body.source!=null),n.body=G(n.body.source)[0]);let o=e.timingInfo;return o.redirectEndTime=o.postRedirectStartTime=A(e.crossOriginIsolatedCapability),o.redirectStartTime===0&&(o.redirectStartTime=o.startTime),n.urlList.push(a),C(n,i),Ne(e,!0)}async function ze(e,t=!1,n=!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,ve.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((!ne(s)||s.useURLCredentials!==void 0&&re(S(s)))&&re(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 r(`only if cached`);let e=await Be(o,l,n);!ae.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||U(a.traversableForUserPrompts))){if(a.body!=null){if(a.body.source==null)return c;a.body=G(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`?r():M(e)?i(e):r(`proxy authentication required`);if(c.status===421&&!n&&(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,n=!1){W(!e.controller.connection||e.controller.connection.destroyed),e.controller.connection={abort:null,destroyed:!1,destroy(e){this.destroyed||(this.destroyed=!0,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)):r(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),de(d)){e.controller.terminate();return}if(e.controller.controller.desiredSize<=0)return}};function f(t){N(e)?(s.aborted=!0,Y(d)&&e.controller.controller.error(e.controller.serializedAbortReason)):Y(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 ce({read:()=>e.resume()});let c=s&&a.redirect===`follow`&&q.has(t),u=[];if(a.method!==`HEAD`&&a.method!==`CONNECT`&&!ie.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?le(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),n?.aborted||e.controller.terminate(r),f(r)},onRequestUpgrade(e,t,n,r){if(r.session!=null&&t!==200||r.session==null&&t!==101)return r.session!=null&&e.abort(new X(`bad upgrade`,null)),!1;let i=e?.rawHeaders??[],a=new l;return Te(a,n,i),d({status:t,statusText:ye[t],headersList:a,socket:r}),!0}}))}}}n.exports={fetch:Oe,Fetch:Ee,fetching:Me,finalizeAndReportTiming:ke}})),wn=t(((t,n)=>{var r=e(`node:assert`),{URLSerializer:i}=lt(),{isValidHeaderName:a}=dt();function o(e,t,n=!1){return i(e,n)===i(t,n)}function s(e){r(e!==null);let t=[];for(let n of e.split(`,`))n=n.trim(),a(n)&&t.push(n);return t}n.exports={urlEquals:o,getFieldValues:s}})),Tn=t(((t,n)=>{var r=e(`node:assert`),{kConstruct:i}=Z(),{urlEquals:a,getFieldValues:o}=wn(),{kEnumerableProperty:s,isDisturbed:c}=$(),{webidl:l}=ut(),{cloneResponse:u,fromInnerResponse:d,getResponseState:f}=bn(),{Request:p,fromInnerRequest:m,getRequestState:h}=xn(),{fetching:g}=Cn(),{urlIsHttpHttpsScheme:_,readAllBytes:v}=dt(),y=class{#e;constructor(){arguments[0]!==i&&l.illegalConstructor(),l.util.markAsUncloneable(this),this.#e=arguments[1]}async match(e,t={}){l.brandCheck(this,l.is.Cache);let n=`Cache.match`;l.argumentLengthCheck(arguments,1,n),e=l.converters.RequestInfo(e),t=l.converters.CacheQueryOptions(t,n,`options`);let r=this.#i(e,t,1);if(r.length!==0)return r[0]}async matchAll(e=void 0,t={}){return l.brandCheck(this,l.is.Cache),e!==void 0&&(e=l.converters.RequestInfo(e)),t=l.converters.CacheQueryOptions(t,`Cache.matchAll`,`options`),this.#i(e,t)}async add(e){l.brandCheck(this,l.is.Cache),l.argumentLengthCheck(arguments,1,`Cache.add`),e=l.converters.RequestInfo(e);let t=[e];return await this.addAll(t)}async addAll(e){l.brandCheck(this,l.is.Cache);let t=`Cache.addAll`;l.argumentLengthCheck(arguments,1,t);let n=[],r=[];for(let n of e){if(n===void 0)throw l.errors.conversionFailed({prefix:t,argument:`Argument 1`,types:[`undefined is not allowed`]});if(n=l.converters.RequestInfo(n),typeof n==`string`)continue;let e=h(n);if(!_(e.url)||e.method!==`GET`)throw l.errors.exception({header:t,message:`Expected http/s scheme when method is not GET.`})}let i=[];for(let a of e){let e=h(new p(a));if(!_(e.url))throw l.errors.exception({header:t,message:`Expected http/s scheme.`});e.initiator=`fetch`,e.destination=`subresource`,r.push(e);let s=Promise.withResolvers();i.push(g({request:e,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 i)e.abort();return}}},processResponseConsumeBody(e){if(e.aborted){s.reject(new DOMException(`aborted`,`AbortError`));return}s.resolve(e)}})),n.push(s.promise)}let a=await Promise.all(n),s=[],c=0;for(let e of a){let t={type:`put`,request:r[c],response:e};s.push(t),c++}let u=Promise.withResolvers(),d=null;try{this.#t(s)}catch(e){d=e}return queueMicrotask(()=>{d===null?u.resolve(void 0):u.reject(d)}),u.promise}async put(e,t){l.brandCheck(this,l.is.Cache);let n=`Cache.put`;l.argumentLengthCheck(arguments,2,n),e=l.converters.RequestInfo(e),t=l.converters.Response(t,n,`response`);let r=null;if(r=l.is.Request(e)?h(e):h(new p(e)),!_(r.url)||r.method!==`GET`)throw l.errors.exception({header:n,message:`Expected an http/s scheme when method is not GET`});let i=f(t);if(i.status===206)throw l.errors.exception({header:n,message:`Got 206 status`});if(i.headersList.contains(`vary`)){let e=o(i.headersList.get(`vary`));for(let t of e)if(t===`*`)throw l.errors.exception({header:n,message:`Got * vary field value`})}if(i.body&&(c(i.body.stream)||i.body.stream.locked))throw l.errors.exception({header:n,message:`Response body is locked or disturbed`});let a=u(i),s=Promise.withResolvers();i.body==null?s.resolve(void 0):v(i.body.stream.getReader(),s.resolve,s.reject);let d=[],m={type:`put`,request:r,response:a};d.push(m);let g=await s.promise;a.body!=null&&(a.body.source=g);let y=Promise.withResolvers(),b=null;try{this.#t(d)}catch(e){b=e}return queueMicrotask(()=>{b===null?y.resolve():y.reject(b)}),y.promise}async delete(e,t={}){l.brandCheck(this,l.is.Cache);let n=`Cache.delete`;l.argumentLengthCheck(arguments,1,n),e=l.converters.RequestInfo(e),t=l.converters.CacheQueryOptions(t,n,`options`);let i=null;if(l.is.Request(e)){if(i=h(e),i.method!==`GET`&&!t.ignoreMethod)return!1}else r(typeof e==`string`),i=h(new p(e));let a=[],o={type:`delete`,request:i,options:t};a.push(o);let s=Promise.withResolvers(),c=null,u;try{u=this.#t(a)}catch(e){c=e}return queueMicrotask(()=>{c===null?s.resolve(!!u?.length):s.reject(c)}),s.promise}async keys(e=void 0,t={}){l.brandCheck(this,l.is.Cache),e!==void 0&&(e=l.converters.RequestInfo(e)),t=l.converters.CacheQueryOptions(t,`Cache.keys`,`options`);let n=null;if(e!==void 0){if(l.is.Request(e)){if(n=h(e),n.method!==`GET`&&!t.ignoreMethod)return[]}else typeof e==`string`&&(n=h(new p(e)))}let r=Promise.withResolvers(),i=[];if(e===void 0)for(let e of this.#e)i.push(e[0]);else{let e=this.#n(n,t);for(let t of e)i.push(t[0])}return queueMicrotask(()=>{let e=[];for(let t of i){let n=m(t,void 0,new AbortController().signal,`immutable`);e.push(n)}r.resolve(Object.freeze(e))}),r.promise}#t(e){let t=this.#e,n=[...t],i=[],a=[];try{for(let n of e){if(n.type!==`delete`&&n.type!==`put`)throw l.errors.exception({header:`Cache.#batchCacheOperations`,message:`operation type does not match "delete" or "put"`});if(n.type===`delete`&&n.response!=null)throw l.errors.exception({header:`Cache.#batchCacheOperations`,message:`delete operation should not have an associated response`});if(this.#n(n.request,n.options,i).length)throw new DOMException(`???`,`InvalidStateError`);let e;if(n.type===`delete`){if(e=this.#n(n.request,n.options),e.length===0)return[];for(let n of e){let e=t.indexOf(n);r(e!==-1),t.splice(e,1)}}else if(n.type===`put`){if(n.response==null)throw l.errors.exception({header:`Cache.#batchCacheOperations`,message:`put operation should have an associated response`});let a=n.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(n.options!=null)throw l.errors.exception({header:`Cache.#batchCacheOperations`,message:`options must not be defined`});e=this.#n(n.request);for(let n of e){let e=t.indexOf(n);r(e!==-1),t.splice(e,1)}t.push([n.request,n.response]),i.push([n.request,n.response])}a.push([n.request,n.response])}return a}catch(e){throw this.#e.length=0,this.#e=n,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)}static{l.is.Cache=e=>typeof e==`object`&&!!e&&#e in e}};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),n.exports={Cache:y}})),En=t(((e,t)=>{var{Cache:n}=Tn(),{webidl:r}=ut(),{kEnumerableProperty:i}=$(),{kConstruct:a}=Z(),o=class{#e=new Map;constructor(){arguments[0]!==a&&r.illegalConstructor(),r.util.markAsUncloneable(this)}async match(e,t={}){if(r.brandCheck(this,r.is.CacheStorage),r.argumentLengthCheck(arguments,1,`CacheStorage.match`),e=r.converters.RequestInfo(e),t=r.converters.MultiCacheQueryOptions(t),t.cacheName!=null){if(this.#e.has(t.cacheName))return await new n(a,this.#e.get(t.cacheName)).match(e,t)}else for(let r of this.#e.values()){let i=await new n(a,r).match(e,t);if(i!==void 0)return i}}async has(e){r.brandCheck(this,r.is.CacheStorage);let t=`CacheStorage.has`;return r.argumentLengthCheck(arguments,1,t),e=r.converters.DOMString(e,t,`cacheName`),this.#e.has(e)}async open(e){r.brandCheck(this,r.is.CacheStorage);let t=`CacheStorage.open`;if(r.argumentLengthCheck(arguments,1,t),e=r.converters.DOMString(e,t,`cacheName`),this.#e.has(e))return new n(a,this.#e.get(e));let i=[];return this.#e.set(e,i),new n(a,i)}async delete(e){r.brandCheck(this,r.is.CacheStorage);let t=`CacheStorage.delete`;return r.argumentLengthCheck(arguments,1,t),e=r.converters.DOMString(e,t,`cacheName`),this.#e.delete(e)}async keys(){return r.brandCheck(this,r.is.CacheStorage),[...this.#e.keys()]}static{r.is.CacheStorage=e=>typeof e==`object`&&!!e&&#e in e}};Object.defineProperties(o.prototype,{[Symbol.toStringTag]:{value:`CacheStorage`,configurable:!0},match:i,has:i,open:i,delete:i,keys:i}),t.exports={CacheStorage:o}})),Dn=t(((e,t)=>{t.exports={maxAttributeValueSize:1024,maxNameValuePairSize:4096}})),On=t(((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!=null&&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}})),kn=t(((t,n)=>{var{collectASequenceOfCodePointsFast:r}=ct(),{maxNameValuePairSize:i,maxAttributeValueSize:a}=Dn(),{isCTLExcludingHtab:o}=On(),s=e(`node:assert`);function c(e){if(o(e))return null;let t=``,n=``,a=``,s=``;if(e.includes(`;`)){let i={position:0};t=r(`;`,e,i),n=e.slice(i.position)}else t=e;if(!t.includes(`=`))s=t;else{let e={position:0};a=r(`=`,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(n)}}function l(e,t={}){for(;;){if(e.length===0)return t;s(e[0]===`;`),e=e.slice(1);let n=``;e.includes(`;`)?(n=r(`;`,e,{position:0}),e=e.slice(n.length)):(n=e,e=``);let i=``,o=``;if(n.includes(`=`)){let e={position:0};i=r(`=`,n,e),o=n.slice(e.position+1)}else i=n;if(i=i.trim(),o=o.trim(),o.length>a)continue;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 e=o.charCodeAt(0),n=e>=48&&e<=57,r=o[0]===`-`&&o.length>1;if(!n&&!r||/[^\d]/.test(o.slice(1)))continue;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}`)}}n.exports={parseSetCookie:c,parseUnparsedAttributes:l}})),An=t(((e,t)=>{var{parseSetCookie:n}=kn(),{stringify:r}=On(),{webidl:i}=ut(),a=e=>i.brandCheck(e,i.util.MakeTypeAssertion(globalThis.Headers)),o=e=>i.brandCheck(e,i.is.Headers);function s(e){try{o(e);return}catch{}a(e)}function c(e){i.argumentLengthCheck(arguments,1,`getCookies`),s(e);let t=e.get(`cookie`),n={__proto__:null};if(!t)return n;for(let e of t.split(`;`)){let[t,...r]=e.split(`=`);n[t.trim()]=r.join(`=`)}return n}function l(e,t,n){s(e);let r=`deleteCookie`;i.argumentLengthCheck(arguments,2,r),t=i.converters.DOMString(t,r,`name`),n=i.converters.DeleteCookieAttributes(n),f(e,{name:t,value:``,expires:new Date(0),...n})}function u(e){i.argumentLengthCheck(arguments,1,`getSetCookies`),s(e);let t=e.getSetCookie();return t?t.map(e=>n(e)):[]}function d(e){return e=i.converters.DOMString(e),n(e)}function f(e,t){i.argumentLengthCheck(arguments,2,`setCookie`),s(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:c,deleteCookie:l,getSetCookies:u,setCookie:f,parseCookie:d}})),jn=t(((e,t)=>{var{webidl:n}=ut(),{kEnumerableProperty:r}=$(),{kConstruct:i}=Z(),a,o=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,n.is.MessageEvent),this.#e.data}get origin(){return n.brandCheck(this,n.is.MessageEvent),this.#e.origin}get lastEventId(){return n.brandCheck(this,n.is.MessageEvent),this.#e.lastEventId}get source(){return n.brandCheck(this,n.is.MessageEvent),this.#e.source}get ports(){return n.brandCheck(this,n.is.MessageEvent),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,n.is.MessageEvent),n.argumentLengthCheck(arguments,1,`MessageEvent.initMessageEvent`),new e(t,{bubbles:r,cancelable:i,data:a,origin:o,lastEventId:s,source:c,ports:l})}static{a=(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},n.is.MessageEvent=e=>typeof e==`object`&&!!e&&#e in e}},s=class 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,n.is.CloseEvent),this.#e.wasClean}get code(){return n.brandCheck(this,n.is.CloseEvent),this.#e.code}get reason(){return n.brandCheck(this,n.is.CloseEvent),this.#e.reason}static{n.is.CloseEvent=e=>typeof e==`object`&&!!e&&#e in e}},c=class 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,n.is.ErrorEvent),this.#e.message}get filename(){return n.brandCheck(this,n.is.ErrorEvent),this.#e.filename}get lineno(){return n.brandCheck(this,n.is.ErrorEvent),this.#e.lineno}get colno(){return n.brandCheck(this,n.is.ErrorEvent),this.#e.colno}get error(){return n.brandCheck(this,n.is.ErrorEvent),this.#e.error}static{n.is.ErrorEvent=e=>typeof e==`object`&&!!e&&#e in e}};Object.defineProperties(o.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:o,CloseEvent:s,ErrorEvent:c,createFastMessageEvent:a}})),Mn=t(((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}}})),Nn=t(((t,n)=>{var{states:r,opcodes:i}=Mn(),{isUtf8:a}=e(`node:buffer`),{removeHTTPWhitespace:o}=lt(),{collectASequenceOfCodePointsFast:s}=ct();function c(e){return e===r.CONNECTING}function l(e){return e===r.OPEN}function u(e){return e===r.CLOSING}function d(e){return e===r.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`)}}n.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}})),Pn=t(((t,n)=>{var{runtimeFeatures:r}=ft(),{maxUnsigned16Bit:i,opcodes:a}=Mn(),o=8192,s=null,c=o,l=r.has(`crypto`)?e(`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++]]}n.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}})),Fn=t(((t,n)=>{var{uid:r,states:i,sentCloseFrameState:a,emptyBuffer:o,opcodes:s}=Mn(),{parseExtensions:c,isClosed:l,isClosing:u,isEstablished:d,isConnecting:f,validateCloseCodeAndReason:p}=Nn(),{makeRequest:m}=xn(),{fetching:h}=Cn(),{Headers:g,getHeadersList:_}=yn(),{getDecodeSplit:v}=dt(),{WebsocketFrameSend:y}=Pn(),b=e(`node:assert`),{runtimeFeatures:x}=ft(),S=x.has(`crypto`)?e(`node:crypto`):null,C=!1;function w(e,t,n,i,a){let o=e;o.protocol=e.protocol===`ws:`?`http:`:`https:`;let s=m({urlList:[o],client:n,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,e,1002,`Received network error or non-101 status code.`,e.error);return}if(e.status!==200){E(i,e,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,e,1002,`Server did not respond with sent protocols.`);return}if(e.socket.session==null&&e.headersList.get(`Upgrade`)?.toLowerCase()!==`websocket`){E(i,e,1002,`Server did not set Upgrade header to "websocket".`);return}if(e.socket.session==null&&e.headersList.get(`Connection`)?.toLowerCase()!==`upgrade`){E(i,e,1002,`Server did not set Connection header to "upgrade".`);return}if(e.socket.session==null&&e.headersList.get(`Sec-WebSocket-Accept`)!==S.hash(`sha1`,l+r,`base64`)){E(i,e,1002,`Incorrect hash received in Sec-WebSocket-Accept header.`);return}let n=e.headersList.get(`Sec-WebSocket-Extensions`),a;if(n!==null&&(a=c(n),!a.has(`permessage-deflate`))){E(i,e,1002,`Sec-WebSocket-Extensions header does not match.`);return}let o=e.headersList.get(`Sec-WebSocket-Protocol`);if(o!==null){let t=v(`sec-websocket-protocol`,s.headersList);if(t===null||!t.includes(o)){E(i,e,1002,`Protocol was not set in the opening handshake.`);return}}e.socket.session!=null&&(e.socket.allowHalfOpen=!1),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))D(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,i){t.socket?.session!=null&&!t.socket.destroyed&&t.socket.destroy(),D(e,n,r,i)}function D(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()}n.exports={establishWebSocketConnection:w,failWebsocketConnection:D,closeWebSocketConnection:T}})),In=t(((t,n)=>{var{createInflateRaw:r,Z_DEFAULT_WINDOWBITS:i}=e(`node:zlib`),{isValidClientWindowBits:a}=Nn(),{MessageSizeExceededError:o}=Q(),s=Buffer.from([0,0,255,255]),c=Symbol(`kBuffer`),l=Symbol(`kLength`);n.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,n){if(!this.#e){let e=i;if(this.#t.serverMaxWindowBits){if(!a(this.#t.serverMaxWindowBits)){n(Error(`Invalid server_max_window_bits`));return}e=Number.parseInt(this.#t.serverMaxWindowBits)}try{this.#e=r({windowBits:e})}catch(e){n(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){n(new o),this.#e.removeAllListeners(),this.#e.destroy(),this.#e=null;return}this.#e[c].push(e)}),this.#e.on(`error`,e=>{this.#e=null,n(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,n(null,e)})}}}})),Ln=t(((t,n)=>{var{Writable:r}=e(`node:stream`),i=e(`node:assert`),{parserStates:a,opcodes:o,states:s,emptyBuffer:c,sentCloseFrameState:l}=Mn(),{isValidStatusCode:u,isValidOpcode:d,websocketMessageReceived:f,utf8Decode:p,isControlFrame:m,isTextBinaryFrame:h,isContinuationFrame:g}=Nn(),{failWebsocketConnection:_}=Fn(),{WebsocketFrameSend:v}=Pn(),{PerMessageDeflate:y}=In(),{MessageSizeExceededError:b}=Q();n.exports={ByteParser:class extends r{#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(this.#a.compressed=!1,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}}}})),Rn=t(((e,t)=>{var{WebsocketFrameSend:n}=Pn(),{opcodes:r,sendHints:i}=Mn(),a=yt(),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}})),zn=t(((t,n)=>{var{isArrayBuffer:r}=e(`node:util/types`),{webidl:i}=ut(),{URLSerializer:a}=lt(),{environmentSettingsObject:o}=dt(),{staticPropertyDescriptors:s,states:c,sentCloseFrameState:l,sendHints:u,opcodes:d}=Mn(),{isConnecting:f,isEstablished:p,isClosing:m,isClosed:h,isValidSubprotocol:g,fireEvent:_,utf8Decode:v,toArrayBuffer:y,getURLRecord:b}=Nn(),{establishWebSocketConnection:x,closeWebSocketConnection:S,failWebsocketConnection:C}=Fn(),{ByteParser:w}=Ln(),{kEnumerableProperty:T}=$(),{getGlobalDispatcher:E}=en(),{ErrorEvent:D,CloseEvent:O,createFastMessageEvent:k}=jn(),{SendQueue:A}=Rn(),{WebsocketFrameSend:j}=Pn(),{channels:M}=Xe(),N=Symbol.for(`nodejs.ref`),P=Symbol.for(`nodejs.unref`),F;function I(e){return typeof e?.address==`function`?e.address():typeof e?.session?.socket?.address==`function`?e.session.socket.address():null}var L=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](){this.#i=!0,this.#o.socket?.ref?.()}[P](){this.#i=!1,this.#o.socket?.unref?.()}close(e=void 0,t=void 0){i.brandCheck(this,i.is.WebSocket),e!==void 0&&(e=i.converters[`unsigned short`](e,`WebSocket.close`,`code`,i.attributes.Clamp)),t!==void 0&&(t=i.converters.USVString(t)),e??=null,t??=``,S(this.#o,e,t,!0)}send(e){i.brandCheck(this,i.is.WebSocket);let t=`WebSocket.send`;if(i.argumentLengthCheck(arguments,1,t),e=i.converters.WebSocketSendData(e,t,`data`),f(this.#o.readyState))throw new DOMException(`Sent before connected.`,`InvalidStateError`);if(p(this.#o.readyState)&&!m(this.#o.readyState)){if(typeof e==`string`){let t=Buffer.from(e);this.#t+=t.byteLength,this.#a.add(t,()=>{this.#t-=t.byteLength},u.text)}else r(e)?(this.#t+=e.byteLength,this.#a.add(e,()=>{this.#t-=e.byteLength},u.arrayBuffer)):ArrayBuffer.isView(e)?(this.#t+=e.byteLength,this.#a.add(e,()=>{this.#t-=e.byteLength},u.typedArray)):i.is.Blob(e)&&(this.#t+=e.size,this.#a.add(e,()=>{this.#t-=e.size},u.blob))}}get readyState(){return i.brandCheck(this,i.is.WebSocket),this.#o.readyState}get bufferedAmount(){return i.brandCheck(this,i.is.WebSocket),this.#t}get url(){return i.brandCheck(this,i.is.WebSocket),a(this.#s)}get extensions(){return i.brandCheck(this,i.is.WebSocket),this.#r}get protocol(){return i.brandCheck(this,i.is.WebSocket),this.#n}get onopen(){return i.brandCheck(this,i.is.WebSocket),this.#e.open}set onopen(e){i.brandCheck(this,i.is.WebSocket),this.#e.open&&this.removeEventListener(`open`,this.#e.open);let t=i.converters.EventHandlerNonNull(e);t===null?this.#e.open=null:(this.addEventListener(`open`,t),this.#e.open=e)}get onerror(){return i.brandCheck(this,i.is.WebSocket),this.#e.error}set onerror(e){i.brandCheck(this,i.is.WebSocket),this.#e.error&&this.removeEventListener(`error`,this.#e.error);let t=i.converters.EventHandlerNonNull(e);t===null?this.#e.error=null:(this.addEventListener(`error`,t),this.#e.error=e)}get onclose(){return i.brandCheck(this,i.is.WebSocket),this.#e.close}set onclose(e){i.brandCheck(this,i.is.WebSocket),this.#e.close&&this.removeEventListener(`close`,this.#e.close);let t=i.converters.EventHandlerNonNull(e);t===null?this.#e.close=null:(this.addEventListener(`close`,t),this.#e.close=e)}get onmessage(){return i.brandCheck(this,i.is.WebSocket),this.#e.message}set onmessage(e){i.brandCheck(this,i.is.WebSocket),this.#e.message&&this.removeEventListener(`message`,this.#e.message);let t=i.converters.EventHandlerNonNull(e);t===null?this.#e.message=null:(this.addEventListener(`message`,t),this.#e.message=e)}get binaryType(){return i.brandCheck(this,i.is.WebSocket),this.#c}set binaryType(e){i.brandCheck(this,i.is.WebSocket),this.#c=e!==`blob`&&e!==`arraybuffer`?`blob`:e}#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:I(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{F=(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))}},i.is.WebSocket=e=>typeof e==`object`&&!!e&&#o in e}};L.CONNECTING=L.prototype.CONNECTING=c.CONNECTING,L.OPEN=L.prototype.OPEN=c.OPEN,L.CLOSING=L.prototype.CLOSING=c.CLOSING,L.CLOSED=L.prototype.CLOSED=c.CLOSED,Object.defineProperties(L.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(L,{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)},n.exports={WebSocket:L,ping:F}})),Bn=t(((e,t)=>{var{webidl:n}=ut(),{validateCloseCodeAndReason:r}=Nn(),{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,c=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{s=(t,n,r)=>{let a=new e(t,i);return a.#e=n,a.#t=r,a},n.is.WebSocketError=e=>typeof e==`object`&&!!e&&#t in e}};Object.defineProperties(c.prototype,{closeCode:a,reason:a,[Symbol.toStringTag]:{value:`WebSocketError`,writable:!1,enumerable:!1,configurable:!0}}),t.exports={WebSocketError:c,createUnvalidatedWebSocketError:s}})),Vn=t(((t,n)=>{var{addAbortListener:r}=e(`node:events`),{environmentSettingsObject:i,readableStreamClose:a}=dt(),{states:o,opcodes:s,sentCloseFrameState:c}=Mn(),{webidl:l}=ut(),{getURLRecord:u,isValidSubprotocol:d,isEstablished:f,utf8Decode:p}=Nn(),{establishWebSocketConnection:m,failWebsocketConnection:h,closeWebSocketConnection:g}=Fn(),{channels:_}=Xe(),{WebsocketFrameSend:v}=Pn(),{ByteParser:y}=Ln(),{WebSocketError:b,createUnvalidatedWebSocketError:x}=Bn(),{kEnumerableProperty:S}=$(),{utf8DecodeBytes:C}=st(),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:()=>queueMicrotask(()=>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 n=i.settingsObject.baseUrl,a=u(e,n),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}r(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)})}else 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=e.headersList.get(`sec-websocket-extensions`)??``,s=e.headersList.get(`sec-websocket-protocol`)??``,c=new ReadableStream({start:e=>{this.#i=e},pull:()=>this.#m(),cancel:e=>this.#h(e)}),l=new WritableStream({start:e=>{this.#a=e},write:e=>this.#l(e),close:()=>g(this.#s,null,null),abort:e=>this.#p(e)});this.#r=c,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),this.#i.desiredSize<=0&&this.#s.socket.pause()}#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.RECEIVED)||(n=1006);let r=t?.reason==null?``:C(Buffer.from(t.reason));if(e)a(this.#i),this.#a.error(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?.error(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(){this.#s.socket.resume()}#h(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)},n.exports={WebSocketStream:T}})),Hn=t(((e,t)=>{var{makeRequest:n}=xn();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}})),Un=t(((t,n)=>{var r=e(`node:buffer`),{Transform:i}=e(`node:stream`),{isASCIINumber:a,isValidLastEventId:o}=Hn(),s=[239,187,191],c=10,l=13,u=58,d=32,f=r.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}n.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())}}}})),Wn=t(((t,n)=>{var{pipeline:r}=e(`node:stream`),{fetching:i}=Cn(),{webidl:a}=ut(),{EventSourceStream:o}=Un(),{parseMIMEType:s}=lt(),{createFastMessageEvent:c}=jn(),{isNetworkError:l}=bn(),{isValidHeaderValue:u,kEnumerableProperty:d}=$(),{environmentSettingsObject:f}=dt(),{createPotentialCORSRequest:p}=Hn(),{getGlobalDispatcher:m}=en(),{isomorphicDecode:h}=ct(),g=new TextEncoder,_=!1,v=3e3,y=0,b=1,x=2,S=`anonymous`,C=`use-credentials`,w=class extends EventTarget{#e={open:null,error:null,message:null};#t;#n=!1;#r=y;#i=null;#a=null;#o;#s;constructor(e,t={}){super(),a.util.markAsUncloneable(this);let n=`EventSource constructor`;a.argumentLengthCheck(arguments,1,n),_||(_=!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=f,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=S;t.withCredentials===!0&&(o=C,this.#n=!0);let s=p(i,``,o);s.client=f.settingsObject,s.headersList.set(`Accept`,`text/event-stream`),s.cache=`no-store`,s.initiator=`other`,this.#i=s,this.#c()}get readyState(){return a.brandCheck(this,a.is.EventSource),this.#r}get url(){return a.brandCheck(this,a.is.EventSource),this.#t}get withCredentials(){return a.brandCheck(this,a.is.EventSource),this.#n}#c(){if(this.#r===x)return;this.#r=y;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),n=t===null?`failure`:s(t),i=n!==`failure`&&n.essence===`text/event-stream`;if(e.status!==200||i===!1){this.close(),this.dispatchEvent(new Event(`error`));return}this.#r=b,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))}});r(e.body.stream,a,e=>{e?.aborted===!1&&(this.close(),this.dispatchEvent(new Event(`error`)))})},this.#a=i(e)}#l(){this.#r!==x&&(this.#r=y,this.dispatchEvent(new Event(`error`)),setTimeout(()=>{if(this.#r===y){if(this.#i.headersList.delete(`last-event-id`,!0),this.#s.lastEventId.length){let e=h(g.encode(this.#s.lastEventId));u(e)&&this.#i.headersList.set(`last-event-id`,e,!0)}this.#c()}},this.#s.reconnectionTime)?.unref())}close(){a.brandCheck(this,a.is.EventSource),this.#r!==x&&(this.#r=x,this.#a.abort(),this.#i=null)}get onopen(){return a.brandCheck(this,a.is.EventSource),this.#e.open}set onopen(e){a.brandCheck(this,a.is.EventSource),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 a.brandCheck(this,a.is.EventSource),this.#e.message}set onmessage(e){a.brandCheck(this,a.is.EventSource),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 a.brandCheck(this,a.is.EventSource),this.#e.error}set onerror(e){a.brandCheck(this,a.is.EventSource),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)}static{a.is.EventSource=e=>typeof e==`object`&&!!e&&#e in e}},T={CONNECTING:{__proto__:null,configurable:!1,enumerable:!0,value:y,writable:!1},OPEN:{__proto__:null,configurable:!1,enumerable:!0,value:b,writable:!1},CLOSED:{__proto__:null,configurable:!1,enumerable:!0,value:x,writable:!1}};Object.defineProperties(w,T),Object.defineProperties(w.prototype,T),Object.defineProperties(w.prototype,{close:d,onerror:d,onmessage:d,onopen:d,readyState:d,url:d,withCredentials:d}),a.converters.EventSourceInitDict=a.dictionaryConverter([{key:`withCredentials`,converter:a.converters.boolean,defaultValue:()=>!1},{key:`dispatcher`,converter:a.converters.any,defaultValue:()=>m()},{key:`node`,converter:a.dictionaryConverter([{key:`reconnectionTime`,converter:a.converters[`unsigned long`],defaultValue:()=>v},{key:`dispatcher`,converter:a.converters.any}]),defaultValue:()=>({})}]),n.exports={EventSource:w,defaultReconnectionTime:v}})),Gn=t(((e,t)=>{var n=vt(),r=Qe(),i=xt(),a=St(),o=Ct(),s=wt(),c=Tt(),l=kt(),u=Ot(),d=At(),f=Mt(),p=Nt(),m=Q(),h=$(),{InvalidArgumentError:g}=m,_=Vt(),v=et(),y=Kt(),{MockCallHistory:b,MockCallHistoryLog:x}=qt(),S=Xt(),C=Jt(),w=$t(),T=Ht(),E=jt(),{getGlobalDispatcher:D,setGlobalDispatcher:O}=en(),k=tn(),A=nn();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:rn(),responseError:an(),retry:on(),dump:sn(),dns:cn(),cache:mn(),decompress:hn(),deduplicate:_n()},t.exports.cacheStores={MemoryCacheStore:fn()};var j=vn();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=Cn().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(`
|
|
95
|
+
`).slice(1).join(`
|
|
96
|
+
`);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=yn().Headers,t.exports.Response=bn().Response,t.exports.Request=xn().Request,t.exports.FormData=pt().FormData;var{setGlobalOrigin:I,getGlobalOrigin:L}=ot();t.exports.setGlobalOrigin=I,t.exports.getGlobalOrigin=L;var{CacheStorage:R}=En(),{kConstruct:z}=Z();t.exports.caches=new R(z);var{deleteCookie:ee,getCookies:B,getSetCookies:te,setCookie:V,parseCookie:H}=An();t.exports.deleteCookie=ee,t.exports.getCookies=B,t.exports.getSetCookies=te,t.exports.setCookie=V,t.exports.parseCookie=H;var{parseMIMEType:ne,serializeAMimeType:re}=lt();t.exports.parseMIMEType=ne,t.exports.serializeAMimeType=re;var{CloseEvent:U,ErrorEvent:W,MessageEvent:G}=jn(),{WebSocket:K,ping:q}=zn();t.exports.WebSocket=K,t.exports.CloseEvent=U,t.exports.ErrorEvent=W,t.exports.MessageEvent=G,t.exports.ping=q,t.exports.WebSocketStream=Vn().WebSocketStream,t.exports.WebSocketError=Bn().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:ie}=Wn();t.exports.EventSource=ie;function ae(){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=ae}))(),Kn=11e4,qn=new Map;function Jn(e){let t=process.env.AVENTURE_API_SOCKET_PATH,n=`${t}:${e}`,r={headersTimeout:e,bodyTimeout:e},i=qn.get(n)??new Gn.Dispatcher1Wrapper(t?new Gn.Agent({...r,connect:(n,r)=>(0,Gn.buildConnector)({socketPath:t,timeout:e})({...n,protocol:`http:`},r)}):new Gn.EnvHttpProxyAgent({...r,proxyTunnel:!0}));return qn.set(n,i),i}async function Yn(e,t,n){let r=Number(process.env.AVENTURE_API_REQUEST_TIMEOUT_MS),i=t.timeoutMs??(Number.isInteger(r)&&r>0?r:Kn),a=Date.now()+i,o=t.method===`GET`||t.idempotent===!0?t:{...t,unconfirmedWriteAdvice:`no response arrived, so this write may or may not have been stored; read it back${t.readbackOperationId===void 0?``:` with ${t.readbackOperationId}`} before resending it`},s=await Xn(t.idempotent===!0,a,(r,s)=>Zn(e,{...t.followRollover===!0?o:{...o,headers:{Prefer:`respond-async`,...t.headers}},...s?{idempotent:!1}:{}},n,i,a,r)),c=t.followRollover!==!0&&Ie(s)!==void 0;if(t.followRollover!==!0&&!c)return s;let l=!c&&!s.ok&&s.problem.code===`search_still_running`&&Date.now()<a?await Zn(e,{...o,headers:{...t.headers,Prefer:`respond-async`},signal:AbortSignal.any([AbortSignal.timeout(Math.max(a-Date.now(),1)),...t.signal?[t.signal]:[]])},n,i,a):s,u=l.ok?l:s;if(!u.ok&&!c)return u;let d={...t.headers,Accept:`application/json`};return ze(u,{origin:new URL($n(e.host,`/`)).origin,path:t.path,deadline:a,signal:t.signal,rollsOver:t.followRollover===!0},(r,a)=>Zn(e,{method:`GET`,path:r,headers:d,signal:AbortSignal.any([AbortSignal.timeout(a),...t.signal?[t.signal]:[]])},n,i,Date.now()+a))}async function Xn(e,t,n){let r=await n(0,!1);if(r.ok)return r;let i=Ae(r.status,r.problem,e);return i===void 0||Date.now()+i>=t?r:n(i,!0)}async function Zn(e,t,n,a,l,u=0){let d=$n(e.host,t.path,t.searchParams),f=h(),p={Accept:`application/json`,"User-Agent":le(),...t.headers,...S()},m=t.body instanceof FormData?t.body:t.body===void 0?void 0:JSON.stringify(t.body);m!==void 0&&t.contentType!==void 0&&(p[`Content-Type`]=t.contentType);let g=performance.now();r({component:`aventure-api-client`,event:`request`,fields:{...nr(t,e.host,f),hasBody:t.body!==void 0}});let _=i(),v;try{u>0&&await ye(u,void 0,{signal:t.signal}),v=await Qn(d,t,p,m,a,l,f)}catch(n){let i=c(n),s=o(n);r({component:`aventure-api-client`,event:`request_failed`,message:i,fields:{...nr(t,e.host,f),timeoutMs:a,...s},error:n});let l=s.causeChain===void 0?``:`: ${String(s.causeChain)}`,u=t.unconfirmedWriteAdvice===void 0?``:`; ${t.unconfirmedWriteAdvice}`;throw Error(`request to ${_} failed: ${i}${l}${u}`,{cause:n})}let y=Math.round(performance.now()-g),b={component:`aventure-api-client`,event:`response`,fields:{...nr(t,e.host,f),status:v.status,durationMs:y}},x=v.headers.get(`location`);if(tr.has(v.status)&&x!==null)return await v.body?.cancel().catch(()=>s({component:`aventure-api-client`,event:`redirect_body_cleanup_failed`,message:`Redirect body cleanup failed after headers were received`,fields:{...nr(t,e.host,f),status:v.status}})),r(b),{ok:!0,redirect:!0,status:v.status,headers:Object.fromEntries(v.headers),location:x,data:void 0};let C=await(v.ok&&t.responseBytes?v.bytes():v.text()).catch(e=>{if(!v.ok)return`Response body read failed: ${c(e)}`;if(t.signal?.aborted)throw e;let n=t.unconfirmedWriteAdvice===void 0?``:`; ${t.unconfirmedWriteAdvice}`;throw Error(`Response body read from ${_} failed: ${c(e)}${n}`,{cause:e})}),w=C instanceof Uint8Array?C:rr(C,v.headers.get(`content-type`),v.ok?n:void 0,{...nr(t,e.host,f),status:v.status},t.unconfirmedWriteAdvice);if(v.ok)return r(b),{ok:!0,status:v.status,headers:Object.fromEntries(v.headers),data:w};let T=fe(he(Y(v.status,w??C,p),v.headers),p),E=T.code===`search_still_running`&&(t.followRollover===!0||v.headers.has(`location`));return(E?r:s)({component:`aventure-api-client`,event:E?`following_job`:`problem_response`,fields:{...nr(t,e.host,f),durationMs:y,...me(T,p)}}),{ok:!1,status:v.status,problem:T,headers:Object.fromEntries(v.headers)}}async function Qn(e,t,n,r,i,a,l){let u=t.method===`GET`||t.idempotent===!0?2:1,d;for(let f=1;f<=u;f+=1){let p=a-Date.now();if(p<=0){d??=Object.assign(Error(`request deadline exceeded`),{name:`TimeoutError`});break}let m=AbortSignal.any([AbortSignal.timeout(Math.min(i,p)),...t.signal?[t.signal]:[]]);try{return f>1&&await ye(ke(),void 0,{signal:m}),await fetch(e,{method:t.method,headers:n,body:r??null,signal:m,dispatcher:Jn(i),redirect:`manual`})}catch(n){if(d=m.aborted&&t.signal?.aborted!==!0?m.reason:n,f>=u||t.signal?.aborted===!0||Date.now()>=a)break;s({component:`aventure-api-client`,event:`request_retry`,message:c(n),fields:{...nr(t,new URL(e).host,l),attempt:f,...o(n)},error:n})}}throw d}function $n(e,t,n){let r=new URL(t,e.startsWith(`http`)?e:`https://${e}`);for(let[e,t]of Object.entries(n??{}))t!==void 0&&r.searchParams.set(e,String(t));return r.toString()}var er=new Set([202,204,205]),tr=new Set([301,302,303,307,308]);function nr(e,t,n){return{method:e.method,host:t,path:O(e.path),requestId:n,operationId:e.operationId}}function rr(e,t,n,r,i){let a=t?.includes(`json`)===!0||[`{`,`[`].includes(e.trimStart().slice(0,1)),o=e.length===0?void 0:e;if(e.length>0&&a)try{o=JSON.parse(e)}catch(e){s({component:`aventure-api-client`,event:`response_json_parse_failed`,message:c(e),fields:{...r},error:e})}if(n===void 0||o===void 0&&er.has(r.status))return o;let l=n.safeParse(o);if(l.success)return l.data;let u=i===void 0?``:`; ${i}`;throw Error(`API response failed canonical schema validation${u}`,{cause:l.error})}var ir='{"info":{"description":"aVenture is a research database covering privately held companies, their teams, products and services, fundraising rounds, investors, and related news. Answer from the records it holds and cite the records you use. When an indexed news article on aVenture (newsArticle or GET /v1/news) or a web source reports a newer or missing detail—such as a recent funding round, investor, role, or website—not yet reflected in the structured profile fields, report what the structured profile currently holds alongside the newer source and ask the user whether they would like to request an update to the record on aVenture (for example: \\"I see a news article discussing their latest round — would you also like me to have that updated on aVenture as well?\\"). On user request or confirmation, submit the update with enrichEntity, enrichPerson, or createResearchRun (MCP: aventure_job; CLI: entities enrichments enrich, people enrichments enrich, or research-runs create), passing finding when you read the external source page verbatim for an entity or userPrompt with the observed detail and source URL. Plan and usage rules vary by operation: a signed-in exact full-detail profile read consumes one monthly entity or person view for each distinct returned record, while repeating that record in the same month is free; an exhausted allowance can answer 429. Without a paid plan, name identification has a free daily allowance and then answers 402 subscription_required; natural, federated, and link search or page reads may require a paid plan; web search consumes its monthly allowance and can answer 429 when that allowance is exhausted. Call aventure_help for the selected operation\'s exact 402 or 429 details before choosing a paid or metered operation."},"tags":[{"name":"Identifiers","description":"External identifiers and the records they name. Covers EIN, SEC CIK, ticker, LEI, DUNS, and other mappings for companies and people, plus reverse lookup to the owner."},{"name":"People","description":"Founders and investors, and what they back"},{"name":"News Thumbnail","description":"A news article\'s thumbnail image"},{"name":"System","description":"Service status, build version, and platform totals"},{"name":"Entity Relationships","description":"Relationships between companies, investors, and other organizations"},{"name":"Entity Classifications","description":"Classification tags on a company, and suggested tags"},{"name":"Billing","description":"Plans, prices, subscription, usage, and upgrades"},{"name":"Agents","description":"Platform help, versioned agent instructions, and agent runtime discovery"},{"name":"Entity Filters","description":"Filter options for company listings: available values, refinement, and option search."},{"name":"URL Links","description":"Websites, social profiles, and other URLs for companies and people"},{"name":"Classification Tags","description":"Browse the classification taxonomy and search classification tags by category and name."},{"name":"Person Investments","description":"The investments a person made, looked up by id or slug and sortable by date, round, or amount"},{"name":"Semantic Similarity","description":"Similar companies and people, related entities, and trending news"},{"name":"Research Blog Posts","description":"External blog and article links for entities and people"},{"name":"Record Slugs","description":"A record\'s current slug, and slug changes that leave a permanent redirect"},{"name":"Entity Research","description":"Company research: typed details and snippets, headcount, SEC facts, and completion coverage"},{"name":"Person Photo","description":"A person\'s profile photo"},{"name":"Research Runs","description":"Research requests you file for a company, Product, Service, or person, and their progress."},{"name":"Entity Person Associations","description":"People linked to companies, and the role each one holds"},{"name":"Publications","description":"Publications about one company or person, and platform-wide publication search"},{"name":"Entity Acquisitions","description":"Acquisitions a company made or was part of. The path entity is acquired; acquirerEntityId is the buyer."},{"name":"Entity Similar","description":"Similar companies and lean similar-company summaries by id"},{"name":"Search","description":"Search companies, people, and news, or by URL"},{"name":"Entity Addresses","description":"A company\'s recorded office and headquarters addresses"},{"name":"Person Metadata","description":"Filter options for people listings and option search"},{"name":"Person Addresses","description":"A person\'s recorded addresses"},{"name":"Entity Fundraise","description":"Funding rounds, their investors, and valuations for a company"},{"name":"Entities","description":"Companies and funds: people, funding, and news"},{"name":"Lookup Jobs","description":"Async article and bulk name identification"},{"name":"Entity Logo","description":"A company\'s square and standard logo slots"},{"name":"Entity Maintenance","description":"Accepted record types, such as Company and Investment Firm"},{"name":"Repositories","description":"GitHub repositories synced per entity or person owner."},{"name":"Texts","description":"Descriptions and other written text for companies and people"},{"name":"Natural Search","description":"Find companies and people in natural language"},{"name":"Addresses","description":"Address validation and location directories","x-aventure-cli":{"section":"administration"}},{"name":"Auth","description":"Sign-in, session, API key, and CLI authorization endpoints"},{"name":"News","description":"News linked to the companies and people in it"}],"paths":{"/info":{"get":{"operationId":"getSystemBuild","summary":"Get Build Metadata","description":"Returns the running build\'s version, build time, and source revision","tags":["System"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemBuild"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/addresses/{addressId}/links":{"get":{"operationId":"listAddressLinks","summary":"List Address Links","description":"Returns entity and person association ids, owner ids, and nullable roles for a physical address, including historical associations. Only publicly visible owners are returned unless private visibility is authorized. Entity links precede person links; each group is ordered by join id. Bounded keyset pagination avoids counting or loading every owner. Follow nextCursor, also returned as X-Next-Cursor. An absent or unlinked address returns empty content. Page must be zero and sort is unsupported.","tags":["Addresses"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"page","description":"Offset paging is not supported; omit page. Any value other than 0 returns 400. Send the previous response\'s nextCursor as cursor to read the next page.","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"size","description":"The size of the page to be returned","schema":{"type":"integer","format":"int32"}},{"in":"path","name":"addressId","required":true,"description":"Physical address row id, not an association join id.","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"cursor","required":false,"description":"Opaque continuation from this address\'s previous response.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorSliceAddressLink"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/agents/help":{"post":{"operationId":"answerAgentHelpQuestion","summary":"Deprecated: Answer a Natural-Language Platform Help Question","description":"Deprecated: use help ask (POST /v1/help) with the same body.","tags":["Agents"],"deprecated":true,"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentHelpQuestion"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentHelp"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/auth/api-key":{"get":{"operationId":"getCurrentApiKey","summary":"Get Current API Key","description":"Returns provider metadata for the aVenture API key authenticating this request.","tags":["Auth"],"security":[{"clerkApiKeyAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}},"delete":{"operationId":"revokeCurrentApiKey","summary":"Revoke Current API Key","description":"Revokes the aVenture API key authenticating this request and returns its metadata so the CLI can confirm revocation before deleting its saved copy.","tags":["Auth"],"security":[{"clerkApiKeyAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-cli-composite":{"command":"auth logout","role":"revoke","summary":"Sign Out: Revoke the API Key and Forget Stored OAuth","localOption":[{"optionKey":"forgetLocal","flag":"--forget-local","description":"Delete the saved key even when revocation cannot be confirmed."}]}}},"/v1/auth/cli-authorizations":{"post":{"operationId":"createCliAuthorization","summary":"Start CLI Authorization","description":"Creates a short-lived browser approval request and returns its poll credential once.","tags":["Auth"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CliAuthorizationMutation"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CliAuthorizationStart"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-cli-composite":{"command":"auth login","role":"start","summary":"Sign In With a Browser-Approved aVenture API Key","bodyOption":["clientLabel"],"localOption":[{"optionKey":"key","flag":"--key","description":"Sign in with a browser-approved aVenture API key instead of OAuth; the approval URL opens on any device."},{"optionKey":"browser","flag":"--no-browser","description":"Print the API-key approval URL and wait for approval without opening a browser."}]}}},"/v1/auth/cli-authorizations/{cliAuthorizationId}/acknowledge":{"post":{"operationId":"acknowledgeCliAuthorization","summary":"Acknowledge CLI Credential Delivery","description":"Confirms the CLI stored the delivered API key in its credential store and clears transient delivery material.","tags":["Auth"],"parameters":[{"in":"path","name":"cliAuthorizationId","required":true,"description":"Public CLI authorization request identifier","schema":{"type":"string","format":"uuid"}},{"in":"header","name":"X-Cli-Poll-Secret","required":true,"description":"One-time poll credential returned by request creation","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CliAuthorization"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-cli-composite":{"command":"auth login","role":"acknowledge"}}},"/v1/auth/cli-authorizations/{cliAuthorizationId}/poll":{"post":{"operationId":"pollCliAuthorization","summary":"Poll CLI Authorization","description":"Returns pending state, a terminal state, or an encrypted one-time credential delivery.","tags":["Auth"],"parameters":[{"in":"path","name":"cliAuthorizationId","required":true,"description":"Public CLI authorization request identifier","schema":{"type":"string","format":"uuid"}},{"in":"header","name":"X-Cli-Poll-Secret","required":true,"description":"One-time poll credential returned by request creation","schema":{"type":"string"}}],"responses":{"202":{"description":"Authorization is still pending or issuing","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CliAuthorizationPoll"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-cli-composite":{"command":"auth login","role":"poll"}}},"/v1/auth/me/permissions":{"get":{"operationId":"getCurrentAuthPermissions","summary":"Current User Permissions","description":"Returns the current caller\'s resolved roles and permissions.","tags":["Auth"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthPermissionGrant"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}},"post":{"operationId":"authorizeOperations","summary":"Authorize API Operations","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.","tags":["Auth"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthOperationFilter"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthOperationAuthorization"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/auth/providers":{"get":{"operationId":"getAuthProviderCatalog","summary":"Get the Sign-In Options","description":"Sign-in options for the CLI and browser, readable before signing in. A non-null publishable key offers browser sign-in; a non-null OAuth client offers CLI sign-in.","tags":["Auth"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthProviderCatalog"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-cli-composite":{"command":"auth login","role":"oauth","summary":"Sign In Through Your Browser","description":"Sign in through your browser and save verified CLI access in the credential store. Use --no-browser for OAuth device authorization only when the issuer advertises device-grant support; otherwise use --key --no-browser for API-key approval.","localOption":[{"optionKey":"browser","flag":"--no-browser","description":"Use OAuth device authorization only when the issuer advertises device-grant support: print a sign-in URL and code, then wait for approval. Otherwise use --key --no-browser for API-key approval."},{"optionKey":"providers","flag":"--providers","description":"Print the sign-in providers and CLI OAuth client, then exit without signing in."}]}}},"/v1/billing/additional-usage":{"patch":{"operationId":"updateAdditionalUsage","summary":"Update Additional Usage Settings","description":"Turn metered usage past the monthly allowances on or off and choose how it is paid. Free accounts can enable PREPAID_CREDIT; USAGE_INVOICE requires an active AI Plus or AI Pro subscription. Send {\\"enabled\\":false} to stop recording it. Returns the settings with this UTC month\'s priced usage.","tags":["Billing"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/merge-patch+json":{"schema":{"$ref":"#/components/schemas/BillingAdditionalUsageMutation"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingAdditionalUsage"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/billing/ai-credits":{"get":{"operationId":"getAiCredits","summary":"Read the Current AI Credit Allowance","description":"AI credits are Researchly messages sent in Researchly\'s current billing period; the cap comes from the caller\'s tier and resetAt is Researchly\'s period end.","tags":["Billing"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchAllowance"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/billing/checkout-sessions":{"post":{"operationId":"createBillingCheckoutSession","summary":"Create or Recover a Checkout Session","description":"Start the selected AI Plus or AI Pro plan through Checkout: uiMode HOSTED_PAGE (the default) returns a hosted page url; ELEMENTS returns a clientSecret and publishableKey for the Payment Element in the caller\'s page. A caller with a continuing subscription changes plan with POST /v1/billing/plan-changes and cancels or resumes it with PATCH /v1/billing/subscription.","tags":["Billing"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingCheckoutMutation"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingCheckout"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/billing/credit-purchases":{"post":{"operationId":"createBillingCreditPurchase","summary":"Buy a Prepaid Additional Usage Credit Pack","description":"Create or replay a hosted Checkout Session for one credit pack; the paid amount becomes prepaid credit for metered usage, including free accounts. Paid plan entitlements do not change. A repeated Idempotency-Key with the same pack returns the same Session.","tags":["Billing"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"header","name":"Idempotency-Key","required":true,"description":"Caller-chosen key, 1 to 255 characters, that makes a retry return the same Checkout Session instead of a second purchase.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingCreditPurchaseMutation"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingCreditPurchase"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/billing/credit-purchases/{purchaseId}":{"get":{"operationId":"getBillingCreditPurchase","summary":"Read a Prepaid Credit Purchase Confirmation","description":"Read the current account\'s purchase amount and confirmed grant or closure time.","tags":["Billing"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"purchaseId","required":true,"description":"Purchase identity returned by prepaid credit checkout.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingCreditPurchaseConfirmation"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/billing/plan-change-previews":{"post":{"operationId":"createBillingPlanChangePreview","summary":"Preview a Subscription Plan Change","description":"Show what POST /v1/billing/plan-changes would do for the same plan without changing anything: the amount charged on confirmation, when the plan takes effect, the recurring price after it, and the card on file. Refuses exactly what the plan change refuses.","tags":["Billing"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingPlanChangeMutation"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingPlanChangePreview"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/billing/plan-changes":{"post":{"operationId":"createBillingPlanChange","summary":"Change the Subscription Plan","description":"Move an active AI Plus or AI Pro subscription to another plan. A higher tier or a longer billing period applies now and invoices the prorated difference; paymentUrl is set when that invoice needs the customer to pay before the change applies; paymentClientSecret lets Stripe.js finish that payment in the page instead. Any other change takes effect at the current period end. Sending the current plan cancels a scheduled change. Any change resumes a subscription that was set to end at the period end.","tags":["Billing"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingPlanChangeMutation"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingPlanChange"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/billing/plans":{"get":{"operationId":"listPlans","summary":"List Subscription Tiers and Plans","description":"Return every self-serve tier with its monthly allowance caps and every Checkout plan with its monthly and annual recurring prices.","tags":["Billing"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingCatalog"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/billing/portal-sessions":{"post":{"operationId":"createBillingPortalSession","summary":"Create a Hosted Billing Portal Session","description":"Open the authenticated user\'s hosted billing portal for payment methods, invoices, and billing details. The body is optional; flow PAYMENT_METHOD_UPDATE opens straight to updating the card.","tags":["Billing"],"security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingPortalMutation"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingPortal"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/billing/subscription":{"get":{"operationId":"getBillingSubscription","summary":"Read the Current Billing Subscription","description":"Return sanitized Essential, AI Plus, AI Pro, or Unlimited subscription, entitlement, monthly allowance usage, and additional usage spent and available.","tags":["Billing"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingSubscription"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}},"patch":{"operationId":"updateBillingSubscription","summary":"Cancel or Resume the Subscription","description":"Set cancelAtPeriodEnd to true to end an active AI Plus or AI Pro subscription at the current period end; a scheduled plan change is dropped. Set it to false to resume the subscription and restore the plan change scheduled before the cancellation. Set paused to false to resume a PAUSED subscription, which Stripe pauses when a trial ends without a payment method: add one first with POST /v1/billing/portal-sessions, since a resume without one is refused; the resumption invoices the plan and starts a new period now. Read the result with GET /v1/billing/subscription.","tags":["Billing"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/merge-patch+json":{"schema":{"$ref":"#/components/schemas/BillingSubscriptionMutation"}}}},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/billing/subscription/next-charge":{"get":{"operationId":"getBillingNextCharge","summary":"Preview the Next Subscription Charge","description":"Return what the next invoice of the caller\'s renewing Stripe subscription will charge and when, after coupons and credits, so a fully discounted plan reads 0. Read live from Stripe and never stored. 404 when the caller has no renewing Stripe subscription (none, cancelling, or App Store); 503 when Stripe is unavailable.","tags":["Billing"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingNextCharge"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/billing/subscription/payment-profile":{"get":{"operationId":"getBillingPaymentProfile","summary":"Read Your Card on File and Introductory Offer","description":"Return the card paying the caller\'s continuing Stripe subscription (brand, last four digits, expiry) and whether Checkout would charge each plan\'s introductoryAmount from GET /v1/billing/plans on the first payment, which only an account the App Store does not bill, with no earlier subscription, payment, or unvoided invoice, gets. Read live from Stripe and never stored; 503 when Stripe is unavailable.","tags":["Billing"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BillingPaymentProfile"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/directory/shared":{"get":{"operationId":"listSharedDirectory","summary":"List Shared Directory Views","description":"Returns publication metadata in UUID order with a bounded keyset cursor. Filters and a total count are omitted. Page must be zero; follow nextCursor.","tags":["Search"],"parameters":[{"in":"query","name":"page","required":false,"description":"Offset paging is not supported; omit page. Any value other than 0 returns 400. Send the previous response\'s nextCursor as cursor to read the next page.","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}},{"in":"query","name":"cursor","required":false,"description":"The previous page\'s nextCursor.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorSliceSharedDirectoryList"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}},"post":{"operationId":"createSharedDirectory","summary":"Share a Directory View","description":"Publishes the exact filter and sort a /companies, /investors, or /people page shows under the supplied UUID, with a model-written heading, title, and description. The view must match at least one public record and may set only public filter fields. Reusing the UUID with the same view, or sharing a view already published, returns that publication; a different view under a used UUID is rejected. The publication is readable without authentication.","tags":["Search"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedDirectoryMutation"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedDirectory"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/directory/shared/slug/{slug}":{"get":{"operationId":"getSharedDirectoryBySlug","summary":"Read a Shared Directory View by Slug","description":"Resolves the slug of a public /companies/shared, /investors/shared, or /people/shared page to its stored filter, sort, and page copy.","tags":["Search"],"parameters":[{"in":"path","name":"slug","required":true,"description":"Shared directory view slug.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedDirectory"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/enrichments":{"post":{"operationId":"enrichRecords","summary":"Enrich Many Companies and People","description":"Queues one enrichment run per listed entity and person, in order, each owned by the authenticated principal and billed exactly as the single-record enrich call is. A repeated id is filed once. Returns one outcome per distinct record: its run, or a refusal (NOT_FOUND, ALLOWANCE_EXHAUSTED, AMBIGUOUS, SUBSCRIPTION_REQUIRED) for a record that cannot be filed; other records still file, and runs already filed stay queued. A record already being researched, or researched within the last 24 hours, files nothing while the other records still file; the request then answers 429 whose filedRunId lists the runs it filed. A caller without a research subscription gets 402 before any run is filed. A transient failure fails the request; retrying it reuses runs still in progress without charging them again. A list longer than the configured batch limit is refused before any run is filed. Check each run\'s progress with GET /v1/research-runs/{runId} (CLI: research-runs get).","tags":["Research Runs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichmentBatch"}}}},"responses":{"200":{"description":"One outcome per distinct requested record, in request order.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Enrichment"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"402":{"description":"Needs a plan that includes research runs; a caller without one gets 402 with code subscription_required (subscription_canceled, subscription_past_due, or subscription_paused when a plan lapsed).","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities":{"get":{"operationId":"listEntities","summary":"List Companies, Products, and Services","description":"List entities with the same filters and sort as POST /v1/entities/search, passed as query parameters. Use the POST search for semantic ranking or a JSON EntityListFilter body, and POST /v1/search/natural/entities for plain English.","tags":["Entities"],"parameters":[{"in":"query","name":"entityId","required":false,"description":"Restrict results to specific entity IDs.","schema":{"description":"Restrict results to specific entity IDs.","type":"array","items":{"description":"Canonical entity UUID","type":"string","format":"uuid"}}},{"in":"query","name":"slug","required":false,"description":"Restrict results to entity slugs.","schema":{"description":"Restrict results to entity slugs.","type":"array","items":{"description":"Canonical lowercase URL slug for the resource","type":"string"}}},{"in":"query","name":"entityName","required":false,"description":"Exact normalized match against entity brand, legal, or alias names.","schema":{"description":"Exact normalized match against entity brand, legal, or alias names.","type":"array","items":{"description":"Exact normalized match against entity brand, legal, or alias names.","type":"string"}}},{"in":"query","name":"person","required":false,"description":"Associated person, matched by name.","schema":{"description":"Associated person, matched by name.","type":"array","items":{"description":"Associated person, matched by name.","type":"string"}}},{"in":"query","name":"typeRecord","required":false,"description":"Entity type filter. Organization expands to Company, Investment Firm, Nonprofit, Government, and Business Line; omit to include every entity type.","schema":{"description":"Entity type filter. Organization expands to Company, Investment Firm, Nonprofit, Government, and Business Line; omit to include every entity type.","type":"array","items":{"$ref":"#/components/schemas/EntityType"}}},{"in":"query","name":"industry","required":false,"description":"Industry classification values.","schema":{"description":"Industry classification values.","type":"array","items":{"description":"Industry classification values.","type":"string"}}},{"in":"query","name":"location","required":false,"description":"Geographic classification values.","schema":{"description":"Geographic classification values.","type":"array","items":{"description":"Geographic classification values.","type":"string"}}},{"in":"query","name":"tag","required":false,"description":"General classification tag values.","schema":{"description":"General classification tag values.","type":"array","items":{"description":"General classification tag values.","type":"string"}}},{"in":"query","name":"mainProduct","required":false,"description":"Main product classification values.","schema":{"description":"Main product classification values.","type":"array","items":{"description":"Main product classification values.","type":"string"}}},{"in":"query","name":"typeTechnologyUsed","required":false,"description":"Technology-used classification values.","schema":{"description":"Technology-used classification values.","type":"array","items":{"description":"Technology-used classification values.","type":"string"}}},{"in":"query","name":"typeModel","required":false,"description":"Business-model classification values.","schema":{"description":"Business-model classification values.","type":"array","items":{"description":"Business-model classification values.","type":"string"}}},{"in":"query","name":"typeOwnership","required":false,"description":"Ownership-model classification values.","schema":{"description":"Ownership-model classification values.","type":"array","items":{"description":"Ownership-model classification values.","type":"string"}}},{"in":"query","name":"typeCustomer","required":false,"description":"Customer-type classification values.","schema":{"description":"Customer-type classification values.","type":"array","items":{"description":"Customer-type classification values.","type":"string"}}},{"in":"query","name":"typeRevenue","required":false,"description":"Revenue-model classification values.","schema":{"description":"Revenue-model classification values.","type":"array","items":{"description":"Revenue-model classification values.","type":"string"}}},{"in":"query","name":"acceleratorBrand","required":false,"description":"Accelerator brand or operator name.","schema":{"description":"Accelerator brand or operator name.","type":"array","items":{"description":"Accelerator brand or operator name.","type":"string"}}},{"in":"query","name":"acceleratorName","required":false,"description":"Specific accelerator program name.","schema":{"description":"Specific accelerator program name.","type":"array","items":{"description":"Specific accelerator program name.","type":"string"}}},{"in":"query","name":"acceleratorCohort","required":false,"description":"Accelerator batch or cohort label.","schema":{"description":"Accelerator batch or cohort label.","type":"array","items":{"description":"Accelerator batch or cohort label.","type":"string"}}},{"in":"query","name":"acceleratorStatus","required":false,"description":"Accelerator participation status.","schema":{"description":"Accelerator participation status.","type":"array","items":{"description":"Accelerator participation status.","type":"string"}}},{"in":"query","name":"affinity","required":false,"description":"Affinity provider organization names accepted by the companies list filter. Affinity rows are member -> provider; use provider names here, not member names.","schema":{"description":"Affinity provider organization names accepted by the companies list filter. Affinity rows are member -> provider; use provider names here, not member names.","type":"array","items":{"description":"Affinity provider organization names accepted by the companies list filter. Affinity rows are member -> provider; use provider names here, not member names.","type":"string"}}},{"in":"query","name":"headquartersCountry","required":false,"description":"Headquarters country values.","schema":{"description":"Headquarters country values.","type":"array","items":{"description":"Headquarters country values.","type":"string"}}},{"in":"query","name":"headquartersState","required":false,"description":"Headquarters state or region values.","schema":{"description":"Headquarters state or region values.","type":"array","items":{"description":"Headquarters state or region values.","type":"string"}}},{"in":"query","name":"headquartersCity","required":false,"description":"Headquarters city values.","schema":{"description":"Headquarters city values.","type":"array","items":{"description":"Headquarters city values.","type":"string"}}},{"in":"query","name":"originCountry","required":false,"description":"Countries an entity is from: its headquarters country or the country of its current origin (founding) address, never a legal seat alone. What a nationality adjective (Colombian startups) means; headquartersCountry is only where it is based now.","schema":{"description":"Countries an entity is from: its headquarters country or the country of its current origin (founding) address, never a legal seat alone. What a nationality adjective (Colombian startups) means; headquartersCountry is only where it is based now.","type":"array","items":{"description":"Countries an entity is from: its headquarters country or the country of its current origin (founding) address, never a legal seat alone. What a nationality adjective (Colombian startups) means; headquartersCountry is only where it is based now.","type":"string"}}},{"in":"query","name":"stage","required":false,"description":"Investment stage classification values.","schema":{"description":"Investment stage classification values.","type":"array","items":{"description":"Investment stage classification values.","type":"string"}}},{"in":"query","name":"yearFoundedRange","required":false,"description":"Inclusive founding-year ranges, in calendar years.","schema":{"description":"Inclusive founding-year ranges, in calendar years.","type":"array","items":{"$ref":"#/components/schemas/IntRange"}}},{"in":"query","name":"employeeCountRange","required":false,"description":"Inclusive reported employee-count ranges, in employees.","schema":{"description":"Inclusive reported employee-count ranges, in employees.","type":"array","items":{"$ref":"#/components/schemas/IntRange"}}},{"in":"query","name":"operatingStatus","required":false,"description":"Operating states to include; omit to include every state.","schema":{"description":"Operating states to include; omit to include every state.","type":"array","items":{"$ref":"#/components/schemas/EntityOperatingStatus"}}},{"in":"query","name":"hasFundraising","required":false,"description":"Filter to entities with fundraise activity.","schema":{"description":"Filter to entities with fundraise activity.","type":"boolean"}},{"in":"query","name":"featured","required":false,"description":"Filter by featured status.","schema":{"description":"Filter by featured status.","type":"boolean"}},{"in":"query","name":"suppressZeroTotalRaised","required":false,"description":"Suppress entities with zero or unknown USD total raised.","schema":{"description":"Suppress entities with zero or unknown USD total raised.","type":"boolean"}},{"in":"query","name":"suppressNonOperating","required":false,"description":"Suppress entities with terminal operating status.","schema":{"description":"Suppress entities with terminal operating status.","type":"boolean"}},{"in":"query","name":"rankByProminence","required":false,"description":"Rank most prominent first (funding, stage, headcount, momentum, recent news, investor breadth), ahead of sort: what best, top, or most promising mean.","schema":{"description":"Rank most prominent first (funding, stage, headcount, momentum, recent news, investor breadth), ahead of sort: what best, top, or most promising mean.","type":"boolean"}},{"in":"query","name":"suppressLateStage","required":false,"description":"Exclude public and acquired companies (including acquired subsidiaries); what startup means. Private companies at any round stay, as do companies without a recorded stage or operating status.","schema":{"description":"Exclude public and acquired companies (including acquired subsidiaries); what startup means. Private companies at any round stay, as do companies without a recorded stage or operating status.","type":"boolean"}},{"in":"query","name":"qualityGate","required":false,"description":"Server-owned list quality gate.","schema":{"$ref":"#/components/schemas/EntityListQualityGate"}},{"in":"query","name":"url","required":false,"description":"Current URL to match by normalized host and path.","schema":{"description":"Current URL to match by normalized host and path.","type":"string"}},{"in":"query","name":"urlDomain","required":false,"description":"Current root domain to match when urlMatchMode=domain.","schema":{"description":"Current root domain to match when urlMatchMode=domain.","type":"string"}},{"in":"query","name":"urlType","required":false,"description":"Restrict URL matching to one URL type.","schema":{"$ref":"#/components/schemas/EntityUrlType"}},{"in":"query","name":"urlMatchMode","required":false,"description":"URL matching mode: hostPath uses host and path; domain uses the root domain. Omitted, it is domain when urlDomain is set, else hostPath.","schema":{"$ref":"#/components/schemas/UrlMatchMode"}},{"in":"query","name":"portfolioHeadquartersCountry","required":false,"description":"Portfolio-company headquarters country values.","schema":{"description":"Portfolio-company headquarters country values.","type":"array","items":{"description":"Portfolio-company headquarters country values.","type":"string"}}},{"in":"query","name":"portfolioHeadquartersState","required":false,"description":"Portfolio-company headquarters state or region values.","schema":{"description":"Portfolio-company headquarters state or region values.","type":"array","items":{"description":"Portfolio-company headquarters state or region values.","type":"string"}}},{"in":"query","name":"portfolioHeadquartersCity","required":false,"description":"Portfolio-company headquarters city values.","schema":{"description":"Portfolio-company headquarters city values.","type":"array","items":{"description":"Portfolio-company headquarters city values.","type":"string"}}},{"in":"query","name":"fundraiseActivity.round","required":false,"description":"Fundraise round labels, such as Seed or Series A.","schema":{"description":"Fundraise round labels, such as Seed or Series A.","type":"array","items":{"description":"Fundraise round labels, such as Seed or Series A.","type":"string"}}},{"in":"query","name":"fundraiseActivity.dateAnnouncedRange.min","required":false,"description":"Inclusive earliest timestamp.","schema":{"description":"Inclusive earliest timestamp.","type":"string","format":"date-time"}},{"in":"query","name":"fundraiseActivity.dateAnnouncedRange.max","required":false,"description":"Inclusive latest timestamp.","schema":{"description":"Inclusive latest timestamp.","type":"string","format":"date-time"}},{"in":"query","name":"fundraiseActivity.amountRaisedRange","required":false,"description":"Per-round amount-raised ranges in USD. Use plain JSON numbers.","schema":{"description":"Per-round amount-raised ranges in USD. Use plain JSON numbers.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.amountInvestedRange","required":false,"description":"Investor-level amount-invested ranges in the transaction currency. Use plain JSON numbers.","schema":{"description":"Investor-level amount-invested ranges in the transaction currency. Use plain JSON numbers.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.totalRaisedRange","required":false,"description":"Total-raised ranges across all rounds in USD. Use plain JSON numbers.","schema":{"description":"Total-raised ranges across all rounds in USD. Use plain JSON numbers.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.valuationRange","required":false,"description":"Post-money valuation ranges in USD.","schema":{"description":"Post-money valuation ranges in USD.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.lastRoundYearRange","required":false,"description":"Last-round-year ranges for each entity\'s most recent fundraise round.","schema":{"description":"Last-round-year ranges for each entity\'s most recent fundraise round.","type":"array","items":{"$ref":"#/components/schemas/IntRange"}}},{"in":"query","name":"fundraiseActivity.investedCompanyName","required":false,"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.","schema":{"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.","type":"array","items":{"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.","type":"string"}}},{"in":"query","name":"fundraiseActivity.investedRound","required":false,"description":"Round labels of the deals an investor joined, such as Seed, Pre-Seed, or Series A; restricts returned entities to investors with such a deal inside the investment-activity horizon.","schema":{"description":"Round labels of the deals an investor joined, such as Seed, Pre-Seed, or Series A; restricts returned entities to investors with such a deal inside the investment-activity horizon.","type":"array","items":{"description":"Round labels of the deals an investor joined, such as Seed, Pre-Seed, or Series A; restricts returned entities to investors with such a deal inside the investment-activity horizon.","type":"string"}}},{"in":"query","name":"fundraiseActivity.investedIndustry","required":false,"description":"Industry terms for the companies an investor backed, such as Software, Artificial Intelligence, or Fintech; a term matches a portfolio company whose industry or industry classification name contains it as whole words, case-insensitively. Restricts returned entities to investors with such a deal inside the investment-activity horizon; with investedRound, the same deal must match both.","schema":{"description":"Industry terms for the companies an investor backed, such as Software, Artificial Intelligence, or Fintech; a term matches a portfolio company whose industry or industry classification name contains it as whole words, case-insensitively. Restricts returned entities to investors with such a deal inside the investment-activity horizon; with investedRound, the same deal must match both.","type":"array","items":{"description":"Industry terms for the companies an investor backed, such as Software, Artificial Intelligence, or Fintech; a term matches a portfolio company whose industry or industry classification name contains it as whole words, case-insensitively. Restricts returned entities to investors with such a deal inside the investment-activity horizon; with investedRound, the same deal must match both.","type":"string"}}},{"in":"query","name":"fundraiseActivity.investedCountry","required":false,"description":"Countries of the companies an investor backed, as country names or ids; a deal matches when its company\'s current headquarters is in one of them. Restricts returned entities to investors with such a deal inside the investment-activity horizon; with investedRound or investedIndustry, the same deal must match each.","schema":{"description":"Countries of the companies an investor backed, as country names or ids; a deal matches when its company\'s current headquarters is in one of them. Restricts returned entities to investors with such a deal inside the investment-activity horizon; with investedRound or investedIndustry, the same deal must match each.","type":"array","items":{"description":"Countries of the companies an investor backed, as country names or ids; a deal matches when its company\'s current headquarters is in one of them. Restricts returned entities to investors with such a deal inside the investment-activity horizon; with investedRound or investedIndustry, the same deal must match each.","type":"string"}}},{"in":"query","name":"fundraiseActivity.rankByInvestmentActivity","required":false,"description":"True ranks returned investors by recent deal activity ahead of any sort: each deal inside investedRound, investedIndustry, and investedCountry (every deal when all are empty) adds a weight that decays to zero over the investment-activity horizon, nudged by the investor\'s known USD check. Restricts returned entities to investors with such a deal.","schema":{"description":"True ranks returned investors by recent deal activity ahead of any sort: each deal inside investedRound, investedIndustry, and investedCountry (every deal when all are empty) adds a weight that decays to zero over the investment-activity horizon, nudged by the investor\'s known USD check. Restricts returned entities to investors with such a deal.","type":"boolean"}},{"in":"query","name":"fundraiseActivity.investorName","required":false,"description":"Investor names. Each matches an investor entity whose brand, legal name, or alias equals it ignoring case and punctuation, or an individual investor\'s exact full name; a name that begins public entities\' brands as whole words (\\"Sequoia\\") also matches the one holding many times the recorded investments of every other such entity (Sequoia Capital). Restricts returned entities to companies with a fundraise that investor joined.","schema":{"description":"Investor names. Each matches an investor entity whose brand, legal name, or alias equals it ignoring case and punctuation, or an individual investor\'s exact full name; a name that begins public entities\' brands as whole words (\\"Sequoia\\") also matches the one holding many times the recorded investments of every other such entity (Sequoia Capital). Restricts returned entities to companies with a fundraise that investor joined.","type":"array","items":{"description":"Investor names. Each matches an investor entity whose brand, legal name, or alias equals it ignoring case and punctuation, or an individual investor\'s exact full name; a name that begins public entities\' brands as whole words (\\"Sequoia\\") also matches the one holding many times the recorded investments of every other such entity (Sequoia Capital). Restricts returned entities to companies with a fundraise that investor joined.","type":"string"}}},{"in":"query","name":"fundraiseActivity.investorActivity.totalInvestmentRange","required":false,"description":"Distinct fundraise-deal count ranges for an investor, with inclusive integer bounds.","schema":{"description":"Distinct fundraise-deal count ranges for an investor, with inclusive integer bounds.","type":"array","items":{"$ref":"#/components/schemas/IntRange"}}},{"in":"query","name":"fundraiseActivity.investorActivity.totalAmountInvestedUsdRange","required":false,"description":"Total USD amount-invested ranges with inclusive bounds.","schema":{"description":"Total USD amount-invested ranges with inclusive bounds.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.investorActivity.averageAmountInvestedUsdRange","required":false,"description":"Average USD amount-invested ranges with inclusive bounds.","schema":{"description":"Average USD amount-invested ranges with inclusive bounds.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.investorActivity.largestAmountInvestedUsdRange","required":false,"description":"Largest USD amount-invested ranges with inclusive bounds.","schema":{"description":"Largest USD amount-invested ranges with inclusive bounds.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"fundraiseActivity.investorActivity.smallestAmountInvestedUsdRange","required":false,"description":"Smallest USD amount-invested ranges with inclusive bounds.","schema":{"description":"Smallest USD amount-invested ranges with inclusive bounds.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"textSearch","required":false,"description":"Non-blank keyword/full-text search term. Use natural-search for plain-English or multi-constraint company requests.","schema":{"description":"Non-blank keyword/full-text search term. Use natural-search for plain-English or multi-constraint company requests.","type":"string"}},{"in":"query","name":"closedLast","required":false,"description":"Rank closed entities (Closed, Closed (Acquihire), Inactive) after every other textSearch or semanticQuery match, ahead of relevance and sort; omitted means true. false ranks them by relevance alone. Filter them out with operatingStatus or suppressNonOperating.","schema":{"description":"Rank closed entities (Closed, Closed (Acquihire), Inactive) after every other textSearch or semanticQuery match, ahead of relevance and sort; omitted means true. false ranks them by relevance alone. Filter them out with operatingStatus or suppressNonOperating.","type":"boolean"}},{"in":"query","name":"countOnly","required":false,"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.","schema":{"type":"boolean"}},{"in":"query","name":"permitMonogram","required":false,"description":"Allow generated monogram logos in results.","schema":{"type":"boolean"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityList"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/brand":{"get":{"operationId":"getEntityBrand","summary":"Get a Company\'s Names, Logos, Links, and Tags","description":"Thin, cached read of one company by exactly one of url, slug, or entityId: brand and legal names, logos, the primary website and social profile URLs, and current classification tags. url accepts any current URL joined to the company (website, LinkedIn, X/Twitter, Crunchbase, GitHub, and other profiles) or its aVenture page; scheme, a leading www, and case are ignored, while distinct paths stay distinct. 404 when nothing owns the identifier; 409 with candidate ids when a URL is owned by more than one company. A signed-in user\'s read charges one brand view per distinct company per UTC month against the monthly brand view allowance, then as additional usage when the subscriber enabled it; a repeat read of the same company in the month is free, as is a read of a company whose full profile view is already charged that month, a later full profile view of the company that month reverses its brand view charge, and an exhausted cap answers 429 with Retry-After.","tags":["Entities"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"url","required":false,"description":"Any current URL joined to the company, e.g. stripe.com.","schema":{"type":"string"}},{"in":"query","name":"slug","required":false,"description":"Exact aVenture entity slug, e.g. stripe.","schema":{"description":"Canonical lowercase URL slug for the resource","type":"string"}},{"in":"query","name":"entityId","required":false,"description":"Exact entity UUID.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityBrand"}}}},"400":{"description":"Not exactly one of url, slug, or entityId; a malformed slug or entityId; or a url that cannot be normalized.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"No visible company owns the identifier, including a url owned by a person.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"The url has more than one current owner; details.candidateEntityId and details.candidatePersonId list them. Retry with an entity candidate as entityId.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/classifications/catalog":{"get":{"operationId":"getClassificationCatalog","summary":"Get the Company Classification Taxonomy","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. To find one tag, prefer the classification tag list filtered by category and name over the full catalog. Inactive tags are omitted.","tags":["Classification Tags"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"bucketType","required":false,"description":"Optional classification bucket. Accepts the same values as the tags endpoint type parameter.","schema":{"type":"string"}},{"in":"query","name":"includeTags","required":false,"description":"When false, returns bucket metadata without tag arrays. To find one tag, prefer the classification tag list with category and q filters.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassificationCatalog"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/classifications/tags":{"get":{"operationId":"listClassifications","summary":"List Classification Tags","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, and by name with q. Sorting is not supported — sort returns 422.","tags":["Classification Tags"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"category","required":false,"description":"Classification bucket or standardized category. Case- and punctuation-insensitive.","schema":{"type":"string"}},{"in":"query","name":"q","required":false,"description":"Case-insensitive name substring filter (e.g. \'enterprise\').","schema":{"type":"string"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","format":"int32","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","format":"int32","default":25}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageClassification"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/filters":{"get":{"operationId":"listEntityFilters","summary":"List the Company Filter Options","description":"Get available filter options","tags":["Entity Filters"],"parameters":[{"in":"query","name":"typeGroup","required":false,"description":"Type group for default filter scope. Ignored when typeRecord is provided.","schema":{"$ref":"#/components/schemas/EntityTypeGroup"}},{"in":"query","name":"typeRecord","required":false,"description":"Filter by entity type (Company, Investor, etc.)","schema":{"type":"string"}},{"in":"query","name":"includeDistribution","required":false,"description":"Include range distribution charts","schema":{"type":"boolean","default":false}},{"in":"query","name":"distributionKey","required":false,"description":"Comma-separated or repeated filter keys for chart distribution (for example amountRaised,totalRaised)","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterOptionSet"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/filters/refine":{"post":{"operationId":"refineEntityFilters","summary":"Refine the Company Filter Options","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.","tags":["Entity Filters"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilter"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterRefinedFilters"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/entities/filters/search":{"post":{"operationId":"searchEntityFilters","summary":"Look Up Filter Values Inside the Current Search","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.","tags":["Entity Filters"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterSearch"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterSearchResult"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/entities/lookup":{"post":{"operationId":"lookupEntity","summary":"Deprecated: Identify a Company, Product, or Service by Name and Scope","description":"Deprecated: send the same body to lookup-from-file (POST /v1/lookup) with kind ENTITY. Identifies a company, Product, or Service among the records you can see. Send typeRecord=Company for a company, or typeRecord=Product or Service for an offering, plus providerId when its provider is known; provider words in context are clues, not constraints. MATCHED: match.owner.entityId identifies the record and match.record.typeRecord names its type; read it with GET /v1/entities/{entityId}. A provider company and its offering are different records even when they share a brand or website. NO_MATCH: no record you can see fits the requested identity, type, and provider. NEEDS_REVIEW: several candidates fit; resend with a URL the subject owns to settle it. stage names the step that settled the answer: DETERMINISTIC, JUDGMENT, or WEB_EVIDENCE. Put pages the subject owns in url and articles in sourceUrl or sourceNewsId. Set scheduleEnrichment=true to also queue research on a matched record. For full detail by exact slug or URL use GET /v1/entities/lookup-exact. Company example: {\\"name\\":\\"Acme AI\\",\\"typeRecord\\":\\"Company\\",\\"url\\":[\\"https://acme.ai\\"]}. Offering example: {\\"name\\":\\"Acme Assistant\\",\\"typeRecord\\":\\"Product\\",\\"url\\":[\\"https://acme.ai/assistant\\"]}. A signed-in caller that sends Prefer: respond-async gets 202 with a Location status URL instead: a lookup job runs this same identification without the live deadline, and GET /v1/lookup-jobs/{jobId} returns it as identification once COMPLETED. A repeat of the same request returns the same job while it is still PENDING or RUNNING.","tags":["Search"],"deprecated":true,"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"scheduleEnrichment","required":false,"description":"For an existing match, true queues research; omitted or false does not. A record this lookup adds is not queued for research; queue it with the record\'s enrichments route.","schema":{"type":"boolean"}},{"in":"header","name":"Prefer","description":"Send respond-async to request a pollable entity lookup job.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentificationSubject"}}}},"responses":{"200":{"description":"The identification as canonical JSON or compact text/plain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Identification"}},"text/plain":{"schema":{"type":"string"}}}},"202":{"description":"Sent with Prefer: respond-async (and Preference-Applied: respond-async), or without it to a signed-in caller once its paid live attempt, past the free exact match, ran out of time or left a provider still running: a lookup job was filed and finishes the lookup, adding no record for a NO_MATCH; poll the Location status URL after Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobEnqueue"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"402":{"description":"Without a paid aVenture plan a caller gets a free daily allowance of name identifications per UTC day; past it the lookup answers 402 with code subscription_required (subscription_canceled, subscription_past_due, or subscription_paused when a plan lapsed), carrying limit, used, remaining, resetAt, and a Retry-After header.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/entities/lookup-batch":{"post":{"operationId":"lookupEntityBatch","summary":"Look Up Companies in Bulk by ID, Slug, or URL","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. A signed-in user\'s read charges one view per distinct returned record against the monthly entity or person view allowance; a repeat read of the same record in the month is free, and an exhausted cap answers 429 with Retry-After.","tags":["Entities"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N); omit page and size for the full batch.","schema":{"description":"Zero-based page index (0..N); omit page and size for the full batch.","type":"integer","format":"int32"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned; omit page and size for the full batch.","schema":{"description":"The size of the page to be returned; omit page and size for the full batch.","type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetailBatch"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityDetail"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/entities/lookup-exact":{"get":{"operationId":"getEntityLookup","summary":"Read Full Entity Detail by aVenture Profile URL, Slug, Website, or Domain","description":"Start here for any aventure.vc profile URL, slug, website, or domain. Exact read: returns the full EntityDetail (names, links, funding, rounds, news, people, and research) of the one entity that identifier proves, so do not re-read it with getEntity or listEntities; it answers 404 or 409 instead of guessing. To identify a company by name and clues, use the POST lookup (CLI lookup). Detail qualifiers and visibility rules apply. UUIDs use the item route; id query parameters are rejected. Changed slugs redirect canonically. A signed-in user\'s read charges one view per distinct returned record against the monthly entity or person view allowance; a repeat read of the same record in the month is free, and an exhausted cap answers 429 with Retry-After.","tags":["Entities"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"slug","required":false,"description":"Exact entity slug.","schema":{"description":"Canonical lowercase URL slug for the resource","type":"string"}},{"in":"query","name":"companySlug","required":false,"description":"Provider slug for Product/Service slug lookup; providerTypeRecord can narrow this to Company, Nonprofit, or Government routes.","schema":{"description":"Canonical lowercase URL slug for the resource","type":"string"}},{"in":"query","name":"providerTypeRecord","required":false,"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}`.","schema":{"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}`.","type":"string"}},{"in":"query","name":"url","required":false,"description":"aventure.vc profile URL (such as https://aventure.vc/companies/<slug>), or the entity\'s own website or domain URL, matched by host and path unless urlMatchMode=domain.","schema":{"description":"aventure.vc profile URL (such as https://aventure.vc/companies/<slug>), or the entity\'s own website or domain URL, matched by host and path unless urlMatchMode=domain.","type":"string"}},{"in":"query","name":"urlType","required":false,"description":"URL type qualifier. List the accepted tokens with GET /v1/url-types (CLI: url-types list).","schema":{"description":"URL type qualifier. List the accepted tokens with GET /v1/url-types (CLI: url-types list).","type":"string"}},{"in":"query","name":"urlMatchMode","required":false,"description":"URL matching mode: hostPath (default for url) or domain. Omit when urlDomain is supplied; urlDomain selects domain mode automatically.","schema":{"description":"URL matching mode: hostPath (default for url) or domain. Omit when urlDomain is supplied; urlDomain selects domain mode automatically.","type":"string"}},{"in":"query","name":"typeRecord","required":false,"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 types list).","schema":{"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 types list).","type":"string"}},{"in":"query","name":"name","required":false,"description":"Primary entity name candidate.","schema":{"description":"Primary entity name candidate.","type":"string"}},{"in":"query","name":"nameBrand","required":false,"description":"Brand name candidate.","schema":{"description":"Brand name candidate.","type":"string"}},{"in":"query","name":"nameLegal","required":false,"description":"Legal name candidate.","schema":{"description":"Legal name candidate.","type":"string"}},{"in":"query","name":"location","required":false,"description":"Location candidate: city, state, or country.","schema":{"description":"Location candidate: city, state, or country.","type":"string"}},{"in":"query","name":"urlDomain","required":false,"description":"Website domain candidate without protocol or path.","schema":{"description":"Website domain candidate without protocol or path.","type":"string"}},{"in":"query","name":"permitMonogram","required":false,"description":"Allow generated monogram logo fallback.","schema":{"description":"Allow generated monogram logo fallback.","type":"boolean"}}],"responses":{"200":{"description":"Entity detail as canonical JSON or the same data rendered as compact text/plain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetail"}},"text/plain":{"schema":{"type":"string"}}}},"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.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"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 — identify it by name and clues with GET /v1/lookup (CLI lookup --kind ENTITY). Retry this exact read only with a slug or URL copied from an aVenture page. An existing but filtered row instead reports its reason as the ProblemDetail title: Entity Exists but Is Not Public (the record exists but is not published), Product Not Public: Missing Provider Relationship, or Fund Not Public: No Public Manager Firm.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"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; read each returned id with GET /v1/entities/{entityId}. Resolve the Product/Service ambiguity with companySlug plus slug or a provider\'s productService relationship.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/lookup-matches":{"post":{"operationId":"lookupEntityMatches","summary":"Look Up Which Company Each Identifier Matches","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). A signed-in user\'s read charges one view per distinct returned record against the monthly entity or person view allowance; a repeat read of the same record in the month is free, and an exhausted cap answers 429 with Retry-After.","tags":["Entities"],"security":[{"bearerAuth":[]}],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetailBatch"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EntityResolution"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/entities/relationships/types":{"get":{"operationId":"listEntityRelationshipTypes","summary":"List Entity Relationship Types","description":"Returns canonical EntityRelationshipType values, aliases, and policy flags. Use joinable=true values with entities relationships create; 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.","tags":["Entity Relationships"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EntityRelationshipTypeOption"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/relationships/{relationshipId}":{"get":{"operationId":"getEntityRelationship","summary":"Get One Relationship by ID","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.","tags":["Entity Relationships"],"parameters":[{"in":"path","name":"relationshipId","required":true,"description":"Integer entity_relationship.id row id from EntityRelationship.id, not an entity UUID.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityRelationship"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/research-details/types":{"get":{"operationId":"listEntityResearchDetailTypes","summary":"List the Accepted Research Detail Types","description":"Returns research detail type tokens and their write metadata. The metadata includes 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.","tags":["Entity Research"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResearchDetailType"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/research-snippets/types":{"get":{"operationId":"listEntityResearchSnippetTypes","summary":"List the Accepted Research Snippet Types","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.","tags":["Entity Research"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResearchSnippetType"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/search":{"post":{"operationId":"searchEntities","summary":"Search Companies, Products, and Services","description":"Run keyword, semantic, or explicit structured entity filtering with a structured filter body; Organization expands to the canonical organization type group; semanticQuery ranks by stored content embeddings. For plain-English queries, use POST /v1/search/natural/entities. semanticQuery defines a bounded result set: the nearest rows at or above a relevance cutoff, capped in size and ordered by score; page numbers reach the whole set and totalElements counts it. Page 0 of a semantic set of 50 rows or fewer can emit a signed cursor; other pages continue by page number. To follow the cursor, reuse the same filters, sort, size, and visibility scope. countOnly is unsupported with cursor; count-only pages have no content; read totalElements.","tags":["Entities"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"page","required":false,"description":"Zero-based page index for offset paging; omit it for the first page. Ignored when cursor is sent: to continue a cursor traversal, send the X-Next-Cursor value as cursor and leave page out.","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"countOnly","required":false,"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.","schema":{"type":"boolean"}},{"in":"query","name":"permitMonogram","required":false,"description":"Allow generated monogram logos in results.","schema":{"type":"boolean"}},{"in":"query","name":"cursor","required":false,"description":"Opaque entity cursor; reuse filters and sort. Cursor is unsupported with countOnly; semanticQuery depends on the endpoint.","schema":{"type":"string"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":25}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}},{"in":"query","name":"includeFullDetail","description":"Set true to return each match as a company detail search record instead of the list row: the headquarters address, the first 5 people (most recently updated association first), and the first 5 news articles (newest first). Full lists: GET /v1/entities/{entityId}/addresses, GET /v1/entities/{entityId}/people, and GET /v1/news?owner.entityId=.","schema":{"type":"boolean"}},{"in":"header","name":"Prefer","description":"Send respond-async to receive a durable semantic-search job and poll its Location.","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityListFilter"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PageEntityList"},{"$ref":"#/components/schemas/PageEntityDetail"}]}}}},"202":{"description":"Semantic search accepted when Prefer: respond-async is sent; poll Location.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobEnqueue"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/entities/search/jobs/{jobId}":{"get":{"operationId":"getEntitySemanticSearchJob","summary":"Get an Async Semantic Entity Search","description":"Returns the page accepted by `Prefer: respond-async` on POST /v1/entities/search. Answers 202 with Location and Retry-After while the search is queued or running, 200 with the canonical entity page once complete, and 404 for an unknown job.","tags":["Entities"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"jobId","required":true,"description":"Entity semantic search job UUID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Search completed; the canonical entity page is returned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityList"}}}},"202":{"description":"Search is queued or running; poll after Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobEnqueue"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/sec":{"get":{"operationId":"lookupSecCompany","summary":"Get SEC EDGAR Facts for a Public Company","description":"Resolves a US SEC registrant by ticker (preferred) or company-name query. 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, plus the earliest EDGAR filing date and, when EDGAR holds it, the IPO prospectus (listingProspectus). SEC supplies no brand name, website, or summary text — those stay enrichment-owned and are absent here. A name query binds only the one registrant whose title equals it ignoring case and legal suffix, or the only registrant whose title contains it; several without one exact title return 409 with their tickers in resolution.acceptedValue to retry by ticker. A ticker missing from SEC\'s current listings binds the one registrant whose past filings carried it (a delisted filer, whose ticker list is then empty); several such registrants return 409. A 404 means this lookup matched no SEC registrant; it does not show the company is private. Read live and never persisted.","tags":["Entity Research"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"ticker","required":false,"description":"Trading ticker symbol (preferred resolver)","schema":{"type":"string"}},{"in":"query","name":"name","required":false,"description":"Company name query (used when no ticker is given)","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SecCompany"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/texts/types":{"get":{"operationId":"listEntityTextTypes","summary":"List the Accepted Company Text Types","description":"Returns text type values accepted by entity text rows.","tags":["Texts"],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TextTypeOption"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/types":{"get":{"operationId":"listEntityTypeRecords","summary":"List the Accepted typeRecord Values","description":"Returns each accepted typeRecord value with its aliases, meaning, and public page path.","tags":["Entity Maintenance"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EntityTypeAlias"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}":{"get":{"operationId":"getEntity","summary":"Get One Company, Product, or Service by ID","description":"Returns one company\'s full profile by exact UUID, the read for a company brief: identity, funding history with each round\'s lead investors, key people, news, and relationships. Use lookup for a slug, URL, or candidate signals. A signed-in user\'s read charges one view per distinct returned record against the monthly entity or person view allowance; a repeat read of the same record in the month is free, and an exhausted cap answers 429 with Retry-After.","tags":["Entities"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Exact entity UUID.","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"typeRecord","required":false,"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 types list).","schema":{"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 types list).","type":"string"}},{"in":"query","name":"permitMonogram","required":false,"description":"Allow generated monogram logo fallback.","schema":{"description":"Allow generated monogram logo fallback.","type":"boolean"}}],"responses":{"200":{"description":"Entity detail as canonical JSON or the same data rendered as compact text/plain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityDetail"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/acquisitions":{"get":{"operationId":"listEntityAcquisitions","summary":"List a Company\'s Acquisitions","description":"Returns a row only when both sides of the acquisition are published. A 404 for an acquisition that the entity relationships resource lists means the record exists but one side is not published. The acquired/acquirer roles in each row are always declared explicitly in the response via the acquiredEntity and acquirerEntity fields. The role query parameter selects which side of the acquisition the path entity is on: 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.","tags":["Entity Acquisitions"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID whose acquisition rows are being read or written.","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"role","required":false,"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.","schema":{"$ref":"#/components/schemas/EntityAcquisitionRole","default":"acquired"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":20}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityAcquisition"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/acquisitions/{relationshipId}":{"get":{"operationId":"getEntityAcquisition","summary":"Get One Company Acquisition","description":"Returns a row only when both sides of the acquisition are published. A 404 for an acquisition that the entity relationships resource lists means the record exists but one side is not published. 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 selects which side of the acquisition the path entity is on: 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.","tags":["Entity Acquisitions"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID whose acquisition rows are being read or written.","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"path","name":"relationshipId","required":true,"description":"Acquisition relationship row id (entity_relationship.id).","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"role","required":false,"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.","schema":{"$ref":"#/components/schemas/EntityAcquisitionRole","default":"acquired"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityAcquisition"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/addresses":{"get":{"operationId":"listEntityAddresses","summary":"List a Company\'s Locations","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). Set includeInactive=true as a signed-in user or with read credentials to include inactive/historical rows.","tags":["Entity Addresses"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"includeInactive","required":false,"description":"Include inactive rows","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Address"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/addresses/{addressJoinId}":{"get":{"operationId":"getEntityAddress","summary":"Get One Company Address","description":"Returns the physical address group containing the selected entity address association. Requires read auth.","tags":["Entity Addresses"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"path","name":"addressJoinId","required":true,"description":"Address join id parameter","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Address"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/blog-posts":{"get":{"operationId":"listEntityBlogPosts","summary":"List a Company\'s Blog Posts","description":"Returns active external blog post links. For news and press coverage, list news instead.","tags":["Research Blog Posts"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID owning the blog post rows","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":10}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","default":["publishedAt,desc"],"items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageBlogPost"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/blog-posts/{blogPostId}":{"get":{"operationId":"getEntityBlogPost","summary":"Get One Company Blog Post","description":"Returns one entity-owned external link by id. Any signed-in user may call this.","tags":["Research Blog Posts"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID owning the blog post row","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"path","name":"blogPostId","required":true,"description":"Blog post UUID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPost"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/classifications":{"get":{"operationId":"listEntityClassifications","summary":"List a Company\'s Classifications","description":"Returns the company\'s classifications grouped by bucket. The default view includes current classifications; includeInactive=true adds historical ones and requires sign-in. A company that is not public returns 404.","tags":["Entity Classifications"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"includeInactive","required":false,"description":"Include inactive/historical entity classification join rows; default false returns only current joins.","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityClassification"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/classifications/suggestions":{"get":{"operationId":"listEntityClassificationSuggestions","summary":"Suggest Classifications for a Company","description":"Returns ranked tag and standard industry code suggestions for the company, based on similar companies. mainProduct is never suggested, and an empty array means no similar company suggests anything. Requires sign-in; a company that is not public returns 404.","tags":["Entity Classifications"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"limit","required":false,"description":"Maximum suggestions to return; default 12, maximum 50.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EntityClassificationSuggestion"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/content":{"get":{"operationId":"listEntityContent","summary":"List a Company\'s Publications","description":"Returns news articles, blog posts, repositories, websites, and pages related to an entity. Any signed-in user may call this.","tags":["Publications"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID whose publications are listed.","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"topic","required":false,"description":"Topic key or source category.","schema":{"description":"Topic key or source category.","type":"string"}},{"in":"query","name":"contentType","required":false,"description":"Public content type filter.","schema":{"$ref":"#/components/schemas/PublicationType"}},{"in":"query","name":"relation","required":false,"description":"Owner relation filter.","schema":{"$ref":"#/components/schemas/PublicationRelation"}},{"in":"query","name":"year","required":false,"description":"Best-effort content year filter.","schema":{"description":"Best-effort content year filter.","type":"integer","format":"int32"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}},{"in":"query","name":"existenceProbe","required":false,"description":"Set true for first-page content-existence probes that do not need exact totals or stable ordering.","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePublication"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/content/facets":{"get":{"operationId":"listEntityContentFacets","summary":"Count a Company\'s Publications","description":"Counts one entity\'s content cards by topic and content type across the whole index, so filters show exact totals before every page loads. Any signed-in user may call this.","tags":["Publications"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID whose publications are counted.","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicationFacet"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/content/search":{"post":{"operationId":"searchEntityContent","summary":"Search a Company\'s Publications","description":"Translates plain-English constraints for one entity\'s content index. Any signed-in user may call this.","tags":["Publications"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID whose publications are searched.","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaturalSearch"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePublication"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/entities/{entityId}/employee-counts":{"get":{"operationId":"listEntityEmployeeCounts","summary":"List a Company\'s Headcount Over Time","description":"Returns employee-count time series for the entity at this address. Results are sorted newest first. This endpoint does not support custom sorting.","tags":["Entity Research"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity unique identifier (UUID)","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","format":"int32","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned; maximum 500.","schema":{"type":"integer","format":"int32","default":25}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEmployeeCount"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/enrichments":{"post":{"operationId":"enrichEntity","summary":"Enrich One Company, Product, or Service","description":"Queues a run that researches the addressed entity and updates its aVenture profile, owned by the authenticated caller. Take entityId from match.owner when POST /v1/lookup or POST /v1/entities/lookup returns MATCHED (CLI: lookup, entities lookup). To update an entity with facts read verbatim from an external source page (founding year, website or social URL, address, or funding round and investors), pass finding in the body (each with statement, sourceUrl, and verbatim quote; taskPresetKey defaults to apply-cited-findings). When an observed update comes from an indexed news article (newsArticle or GET /v1/news), a page not read verbatim, or covers other profile sections (team, products, descriptions), pass userPrompt in the body naming the observed detail and source URL (newsUrlOriginal or web URL). When a run for this entity is already queued or running, returns that run instead of queuing and charging another; a new run reserves one `company` research unit from the plan\'s research allowance, spent only once the run saves a research write and returned when it ends without one. After the run completes, read the updated profile with GET /v1/entities/{entityId} (CLI: entities get). Check the run\'s progress with GET /v1/research-runs/{runId} (CLI: research-runs get).","tags":["Research Runs"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID.","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"mode","required":false,"description":"COMPREHENSIVE (the default) researches the whole profile; INDIVIDUAL runs only the tasks named in taskPresetKey.","schema":{"$ref":"#/components/schemas/EnrichmentMode"}},{"in":"query","name":"model","required":false,"description":"Model id for the run\'s lead agent; omit to use aVenture\'s default model.","schema":{"type":"string"}},{"in":"query","name":"userPrompt","required":false,"description":"Deprecated: send userPrompt in the JSON body. Used only when the body carries no userPrompt; longer than 2000 characters is refused with 400.","schema":{"type":"string"}},{"in":"query","name":"taskPresetKey","required":false,"description":"Research presets that focus the run, listed by GET /v1/research-runs/presets; at least one is required when mode is INDIVIDUAL, and an unknown key is a 400.","schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichmentPrompt"}}}},"responses":{"200":{"description":"The queued enrichment run for the addressed entity.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarnessRun"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"402":{"description":"Needs a plan that includes research runs; a caller without one gets 402 with code subscription_required (subscription_canceled, subscription_past_due, or subscription_paused when a plan lapsed).","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/fundraise-investor-joins":{"get":{"operationId":"listEntityFundraiseInvestorJoins","summary":"List the Investors in a Funding Round","description":"Lists entity or person investors joined to a fundraise round, including join-level amountInvested attribution. Rows carry investor ids only. To name a round\'s investors and its lead in two reads, list GET /v1/entities/{entityId}/investors?compact=true for firms and GET /v1/entities/{entityId}/person-investors for angels, then keep the rows whose investorAttribution[].transactionId is the round id; leadInvestor is on that attribution. Public reads omit joins whose investor profile is hidden, and the round\'s investorCount is source-reported, so it can exceed the joins listed here. amountInvested is a plain decimal number in the fundraise transaction currency. Send a JSON number such as 220000 or 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 entityId 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 investorEntityId or investorEntitySlug. Use transactionId for the round id, or round plus dateAnnounced when transactionId is unknown. To list one investor\'s joins, find its entityId or personId by name with GET /v1/lookup (CLI lookup --kind ENTITY or --kind PERSON) and pass it as investorEntityId or investorPersonId.","tags":["Entity Fundraise"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity unique identifier (UUID).","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"joinId","required":false,"description":"Join identifier. When present, lookup ignores transaction and investor query parameters.","schema":{"description":"Join identifier. When present, lookup ignores transaction and investor query parameters.","type":"string","format":"uuid"}},{"in":"query","name":"transactionId","required":false,"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.","schema":{"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.","type":"string","format":"uuid"}},{"in":"query","name":"round","required":false,"description":"Raw fundraise round label used when transactionId is omitted","schema":{"description":"Raw fundraise round label used when transactionId is omitted","type":"string"}},{"in":"query","name":"dateAnnounced","required":false,"description":"Exact source-stated announced date or instant used to disambiguate same-label rounds","schema":{"description":"Exact source-stated announced date or instant used to disambiguate same-label rounds","type":"string"}},{"in":"query","name":"investorEntityId","required":false,"description":"Investor entity identifier. Find an investor\'s entityId by name with GET /v1/lookup (CLI lookup --kind ENTITY).","schema":{"description":"Investor entity identifier. Find an investor\'s entityId by name with GET /v1/lookup (CLI lookup --kind ENTITY).","type":"string","format":"uuid"}},{"in":"query","name":"investorEntitySlug","required":false,"description":"Investor entity slug when investorEntityId is omitted. Find it by name with GET /v1/lookup (CLI lookup --kind ENTITY).","schema":{"description":"Investor entity slug when investorEntityId is omitted. Find it by name with GET /v1/lookup (CLI lookup --kind ENTITY).","type":"string"}},{"in":"query","name":"investorPersonId","required":false,"description":"Investor person identifier. Find an investor\'s personId by name with GET /v1/lookup (CLI lookup --kind PERSON).","schema":{"description":"Investor person identifier. Find an investor\'s personId by name with GET /v1/lookup (CLI lookup --kind PERSON).","type":"string","format":"uuid"}},{"in":"query","name":"investorPersonSlug","required":false,"description":"Investor person slug when investorPersonId is omitted. Find it by name with GET /v1/lookup (CLI lookup --kind PERSON).","schema":{"description":"Investor person slug when investorPersonId is omitted. Find it by name with GET /v1/lookup (CLI lookup --kind PERSON).","type":"string"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","format":"int32","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","format":"int32","default":25}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityFundraiseInvestorJoin"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/fundraise-investor-joins/{joinId}":{"get":{"operationId":"getEntityFundraiseInvestorJoin","summary":"Get One Investor on a Funding Round","description":"Gets one entity or person investor join by join id.","tags":["Entity Fundraise"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity unique identifier (UUID).","schema":{"type":"string","format":"uuid"}},{"in":"path","name":"joinId","required":true,"description":"Fundraise investor join identifier","schema":{"description":"Type-safe identifier for fundraise investor joins","type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFundraiseInvestorJoin"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/fundraise-rounds":{"get":{"operationId":"listEntityFundraiseRounds","summary":"List a Company\'s Funding Rounds","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.","tags":["Entity Fundraise"],"parameters":[{"in":"query","name":"page","required":false,"description":"Zero-based page index for offset paging; omit it for the first page. Ignored when cursor is sent: to continue a cursor traversal, send the X-Next-Cursor value as cursor and leave page out.","schema":{"type":"integer","format":"int32"}},{"in":"path","name":"entityId","required":true,"description":"Entity unique identifier (UUID).","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"round","required":false,"description":"Round label contains filter","schema":{"type":"string"}},{"in":"query","name":"dateFrom","required":false,"description":"Inclusive minimum announced date","schema":{"type":"string","format":"date"}},{"in":"query","name":"dateTo","required":false,"description":"Inclusive maximum announced date","schema":{"type":"string","format":"date"}},{"in":"query","name":"minAmount","required":false,"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.","schema":{"type":"integer","format":"int64"}},{"in":"query","name":"maxAmount","required":false,"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.","schema":{"type":"integer","format":"int64"}},{"in":"query","name":"permitMonogram","required":false,"description":"Permit monogram fallback","schema":{"type":"boolean"}},{"in":"query","name":"cursor","required":false,"description":"Opaque URL-safe cursor token from X-Next-Cursor. Reuse the same filters and sort.","schema":{"type":"string"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityFundraiseTransaction"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/fundraise-rounds/{fundraiseRoundId}":{"get":{"operationId":"getEntityFundraiseRound","summary":"Get One Funding Round","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.","tags":["Entity Fundraise"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity unique identifier (UUID).","schema":{"type":"string","format":"uuid"}},{"in":"path","name":"fundraiseRoundId","required":true,"description":"Fundraise round id. Use this with the entityId path segment that owns the round.","schema":{"description":"Canonical fundraise transaction UUID","type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFundraiseTransaction"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/investments":{"get":{"operationId":"listEntityInvestments","summary":"List the Investments a Company Made","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; 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.","tags":["Entity Fundraise"],"parameters":[{"in":"query","name":"page","required":false,"description":"Zero-based page index for offset paging; omit it for the first page. Ignored when cursor is sent: to continue a cursor traversal, send the X-Next-Cursor value as cursor and leave page out.","schema":{"type":"integer","format":"int32"}},{"in":"path","name":"entityId","required":true,"description":"Entity unique identifier (UUID).","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"round","required":false,"description":"Round label contains filter","schema":{"type":"string"}},{"in":"query","name":"dateFrom","required":false,"description":"Inclusive minimum announced date","schema":{"type":"string","format":"date"}},{"in":"query","name":"dateTo","required":false,"description":"Inclusive maximum announced date","schema":{"type":"string","format":"date"}},{"in":"query","name":"minAmount","required":false,"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.","schema":{"type":"integer","format":"int64"}},{"in":"query","name":"maxAmount","required":false,"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.","schema":{"type":"integer","format":"int64"}},{"in":"query","name":"permitMonogram","required":false,"description":"Permit monogram fallback","schema":{"type":"boolean"}},{"in":"query","name":"latestPerEntity","required":false,"description":"Return latest transaction per entity","schema":{"type":"boolean"}},{"in":"query","name":"cursor","required":false,"description":"Opaque URL-safe cursor token from X-Next-Cursor. Reuse the same filters and sort.","schema":{"type":"string"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityFundraiseTransaction"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/investor-activity":{"get":{"operationId":"getEntityInvestorActivity","summary":"Get Investor Activity","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.","tags":["Entity Fundraise"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity unique identifier (UUID).","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFundraiseInvestorActivity"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/investors":{"get":{"operationId":"listEntityInvestors","summary":"List a Company\'s Investors","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; do not use investorAttribution.amountInvested, amount_invested, currency signs, currency codes, comma grouping, or abbreviated values. For more than a few investors, send compact=true: each row keeps the investor\'s own profile and returns its people, news, rounds, relationships, and research as empty lists.","tags":["Entity Fundraise"],"parameters":[{"in":"query","name":"page","required":false,"description":"Zero-based page index for offset paging; omit it for the first page. Ignored when cursor is sent: to continue a cursor traversal, send the X-Next-Cursor value as cursor and leave page out.","schema":{"type":"integer","format":"int32"}},{"in":"path","name":"entityId","required":true,"description":"Entity unique identifier (UUID).","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"permitMonogram","required":false,"description":"Permit generated monogram fallback","schema":{"type":"boolean"}},{"in":"query","name":"compact","required":false,"description":"Set true to return each investor\'s own profile with its people, news, funding rounds, relationships, and research as empty lists, not absent fields; the profile\'s sitemap flags still show which of them exist. Responses are much smaller.","schema":{"type":"boolean"}},{"in":"query","name":"cursor","required":false,"description":"Opaque URL-safe cursor token from X-Next-Cursor. Reuse the same filters and sort.","schema":{"type":"string"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityInvestorParticipation"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/logo":{"get":{"operationId":"getEntityLogo","summary":"Get a Company Logo","description":"Returns the selected square or standard logo with its stored provenance; an empty slot returns 404. A Product or Service\'s assembled `core.image` can show its provider\'s logo; this slot is the entity\'s own asset, and an offering with no own mark grades `entity.logo` by that displayed provider logo. This is the asset fetch, not the verification proof: the accuracy check against reference marks is the logo check operation.","tags":["Entity Logo"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"logoType","required":false,"description":"Logo slot: SQUARE (default; `core.image.logoSquare`) or STANDARD (`core.image.logo`).","schema":{"$ref":"#/components/schemas/EntityLogoType"}},{"in":"query","name":"validateSquareOriginal","required":false,"description":"Validate the entity SQUARE logo\'s stored original before returning metadata.","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaUpload"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/people":{"get":{"operationId":"listEntityPersonAssociations","summary":"List the People at a Company","description":"Lists who works at a company: its founders, executives, employees, and other associated people, with each person\'s title and whether the role is current.","tags":["Entity Person Associations"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"search","required":false,"description":"Search term filter","schema":{"type":"string"}},{"in":"query","name":"role","required":false,"description":"Match titleName containing this text as a whole-word phrase, ignoring case: founder matches Co-Founder, Founder & CEO, and CEO and Co-Founder, but not Founding Partner. Omit to include all titles; this does not filter titleFunction or titleLevel.","schema":{"type":"string"}},{"in":"query","name":"isCurrent","required":false,"description":"Current association filter","schema":{"type":"boolean"}},{"in":"query","name":"includeUrl","required":false,"description":"Include person URL records","schema":{"type":"boolean"}},{"in":"query","name":"includeAddress","required":false,"description":"Include person address records","schema":{"type":"boolean"}},{"in":"query","name":"personSlug","required":false,"description":"Writes only: the person\'s slug when the body omits personId. List reads ignore it; use search to narrow listed people.","schema":{"type":"string"}},{"in":"query","name":"countOnly","required":false,"description":"Return count metadata without full content","schema":{"type":"boolean"}},{"in":"query","name":"permitMonogram","required":false,"description":"Permit generated monogram fallback","schema":{"type":"boolean"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format property,(asc|desc), where property is one of: id, nameFirst, nameLast, nameFull, slug, createdAt, updatedAt, status, gender, amountInvested, totalInvestments. Default order is ascending; repeat sort for multiple criteria.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityPersonAssociation"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/people/{associationId}":{"get":{"operationId":"getEntityPersonAssociation","summary":"Get One Person\'s Role at a Company","description":"Returns one person\'s role at a company.","tags":["Entity Person Associations"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"path","name":"associationId","required":true,"description":"Association id","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"search","required":false,"description":"Search term filter","schema":{"type":"string"}},{"in":"query","name":"role","required":false,"description":"Match titleName containing this text as a whole-word phrase, ignoring case: founder matches Co-Founder, Founder & CEO, and CEO and Co-Founder, but not Founding Partner. Omit to include all titles; this does not filter titleFunction or titleLevel.","schema":{"type":"string"}},{"in":"query","name":"isCurrent","required":false,"description":"Current association filter","schema":{"type":"boolean"}},{"in":"query","name":"includeUrl","required":false,"description":"Include person URL records","schema":{"type":"boolean"}},{"in":"query","name":"includeAddress","required":false,"description":"Include person address records","schema":{"type":"boolean"}},{"in":"query","name":"personSlug","required":false,"description":"Writes only: the person\'s slug when the body omits personId. List reads ignore it; use search to narrow listed people.","schema":{"type":"string"}},{"in":"query","name":"countOnly","required":false,"description":"Return count metadata without full content","schema":{"type":"boolean"}},{"in":"query","name":"permitMonogram","required":false,"description":"Permit generated monogram fallback","schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityPersonAssociation"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/person-investors":{"get":{"operationId":"listEntityPersonInvestors","summary":"List Person Investors","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; do not use investorAttribution.amountInvested, amount_invested, currency signs, currency codes, comma grouping, or abbreviated values.","tags":["Entity Fundraise"],"parameters":[{"in":"query","name":"page","required":false,"description":"Zero-based page index for offset paging; omit it for the first page. Ignored when cursor is sent: to continue a cursor traversal, send the X-Next-Cursor value as cursor and leave page out.","schema":{"type":"integer","format":"int32"}},{"in":"path","name":"entityId","required":true,"description":"Entity unique identifier (UUID).","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"permitMonogram","required":false,"description":"Permit generated monogram fallback","schema":{"type":"boolean"}},{"in":"query","name":"cursor","required":false,"description":"Opaque URL-safe cursor token from X-Next-Cursor. Reuse the same filters and sort.","schema":{"type":"string"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePersonInvestorParticipation"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/relationships":{"get":{"operationId":"listEntityRelationships","summary":"List a Company\'s Relationships","description":"Returns relationship rows touching the path entity. Defaults to renderable-only rows where isCurrent=true and isPrimary=true. Set includeInactive=true to also return historic and non-primary rows; each row carries id, isCurrent, and isPrimary. Use entities relationships get to retrieve one row by id without an entity path.","tags":["Entity Relationships"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"type","required":false,"description":"Optional EntityRelationshipType filter, one of: acceleratorParticipant, acquirer, affinity, calculated, competingProductService, competitor, customer, fundManagerFirm, parent, productService, serviceProvider, similarCompany, spinOffFrom, successor. Use entities relationships types list for valid values.","schema":{"type":"string"}},{"in":"query","name":"includeInactive","required":false,"description":"Include historic or non-primary rows. Default false returns only rows where isCurrent=true and isPrimary=true.","schema":{"type":"boolean","default":false}},{"in":"query","name":"includeNonRenderable","required":false,"description":"Deprecated alias for includeInactive.","schema":{"type":"boolean","default":false}},{"in":"query","name":"cursor","required":false,"description":"Opaque URL-safe cursor token from X-Next-Cursor. Reuse the same filters and sort.","schema":{"type":"string"}},{"in":"query","name":"transitive","required":false,"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. With type=productService on a company, returns each of its Product/Service rows nesting those direct competitor rows, so one call covers every product line. Only supported for type=competingProductService or type=productService; the result is capped, so cursor and includeInactive are not accepted alongside transitive=true.","schema":{"type":"boolean","default":false}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityRelationship"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/repositories":{"get":{"operationId":"listEntityRepositories","summary":"List a Company\'s GitHub Repositories","description":"Returns the entity\'s synced GitHub repositories, paged. Default sort is stargazerCount desc, then name.","tags":["Repositories"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID owning the repositories","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":50}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageGithubRepo"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/research":{"get":{"operationId":"getEntityResearch","summary":"Get the Research Gathered About a Company","description":"Returns the consolidated research for a company.","tags":["Entity Research"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID.","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResearch"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/research-details":{"get":{"operationId":"listEntityResearchDetails","summary":"List Research Details","description":"Returns paginated research details for an entity. Optionally filter by detail type. Rows for timeSeries=true types are history, not stale current state.","tags":["Entity Research"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID.","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","format":"int32","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","format":"int32","default":25}},{"in":"query","name":"type","required":false,"description":"Research detail type token. Run GET /v1/entities/research-details/types (CLI: entities research-details types list) for the token inventory and each token\'s value shape.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityResearchDetail"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/research-details/{detailId}":{"get":{"operationId":"getEntityResearchDetail","summary":"Get Research Detail","description":"Returns one research detail for an entity.","tags":["Entity Research"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID.","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"path","name":"detailId","required":true,"description":"Research detail id.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResearchDetail"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/research-snippets":{"get":{"operationId":"listEntityResearchSnippets","summary":"List Research Snippets","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.","tags":["Entity Research"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID.","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","format":"int32","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","format":"int32","default":25}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityResearchSnippet"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/research-snippets/{snippetId}":{"get":{"operationId":"getEntityResearchSnippet","summary":"Get Research Snippet","description":"Returns one research snippet for an entity. Public reads omit private provenance fields.","tags":["Entity Research"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID.","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"path","name":"snippetId","required":true,"description":"Research snippet id.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityResearchSnippet"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/similar":{"get":{"operationId":"listEntitySimilarEntities","summary":"Get Similar Companies by ID","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. Any signed-in user may call this on every plan. The list is free: it never counts against the monthly record-view allowance, which charges only a separate full-detail view of one record.","tags":["Entity Similar"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity unique identifier (UUID)","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"relationshipType","required":false,"description":"Filter by stored relationship type, one of: acceleratorParticipant, acquirer, affinity, calculated, competingProductService, competitor, customer, fundManagerFirm, parent, productService, serviceProvider, similarCompany, spinOffFrom, successor.","schema":{"type":"string"}},{"in":"query","name":"typeRecord","required":false,"description":"Optional entity typeRecord filter. Repeat to allow multiple entity types.","schema":{"type":"array","items":{"type":"string"}}},{"in":"query","name":"permitMonogram","required":false,"description":"Permit monogram fallback","schema":{"type":"boolean"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","format":"int32","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntitySimilarityResult"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/similar/summary":{"get":{"operationId":"listEntitySimilarSummaries","summary":"Get Similar Company Summaries by ID","description":"Returns the same similar entities, order, and totals as GET /v1/entities/{entityId}/similar with lean rows: entity core, current URL links, and similarity provenance. Use it for rails and cards that do not render list enrichment. Custom sorting is unsupported. Any signed-in user may call this on every plan. The list is free: it never counts against the monthly record-view allowance, which charges only a separate full-detail view of one record.","tags":["Entity Similar"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity unique identifier (UUID)","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"relationshipType","required":false,"description":"Filter by stored relationship type, one of: acceleratorParticipant, acquirer, affinity, calculated, competingProductService, competitor, customer, fundManagerFirm, parent, productService, serviceProvider, similarCompany, spinOffFrom, successor.","schema":{"type":"string"}},{"in":"query","name":"typeRecord","required":false,"description":"Optional entity typeRecord filter. Repeat to allow multiple entity types.","schema":{"type":"array","items":{"type":"string"}}},{"in":"query","name":"permitMonogram","required":false,"description":"Permit monogram fallback","schema":{"type":"boolean"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","format":"int32","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntitySimilaritySummary"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/slug":{"get":{"operationId":"getEntitySlug","summary":"Get a Company\'s Slug","description":"Returns the current slug, canonical path, and public URL. Any signed-in user may call this.","tags":["Record Slugs"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlugLocation"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/texts":{"get":{"operationId":"listEntityTexts","summary":"List a Company\'s Text","description":"Returns paginated text rows owned by the entity. Inactive or private rows require read auth.","tags":["Texts"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID owning the text rows","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":25}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityText"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/texts/{textId}":{"get":{"operationId":"getEntityText","summary":"Get One Piece of Company Text","description":"Returns one entity-owned text row by id. Requires read auth.","tags":["Texts"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID owning the text row","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"path","name":"textId","required":true,"description":"Text row id","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityText"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/trending-news":{"get":{"operationId":"listEntityTrendingNews","summary":"List Trending News About a Company","description":"Returns trending news semantically related to the company named by the entity id path parameter.","tags":["Semantic Similarity"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID.","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","format":"int32","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageNews"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/unique-ids":{"get":{"operationId":"listEntityUniqueIds","summary":"List a Company\'s Identifiers","description":"Returns paginated external identifier mappings for one owner. Sort by id, idType, identifier, createdAt, or updatedAt; default is updatedAt descending.","tags":["Identifiers"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID.","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":50}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageUniqueId"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/unique-ids/{uniqueIdId}":{"get":{"operationId":"getEntityUniqueId","summary":"Get One Company Identifier","description":"Returns one external identifier mapping after verifying it belongs to the path owner.","tags":["Identifiers"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Canonical entity UUID.","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"path","name":"uniqueIdId","required":true,"description":"Unique-id row id.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniqueId"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/urls":{"get":{"operationId":"listEntityUrls","summary":"List a Company\'s URLs","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.","tags":["URL Links"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID owning the URL rows","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"includeInactive","required":false,"description":"Include secondary active and inactive/historical URL rows","schema":{"type":"boolean","default":false}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":25}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityUrlLink"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/urls/{urlId}":{"get":{"operationId":"getEntityUrl","summary":"Get One Company URL","description":"Returns one entity-owned URL row by id. Requires read auth.","tags":["URL Links"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity UUID owning the URL row","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"path","name":"urlId","required":true,"description":"URL link id","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityUrlLink"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/entities/{entityId}/valuations":{"get":{"operationId":"listEntityValuations","summary":"List a Company\'s Valuation Over Time","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.","tags":["Entity Fundraise"],"parameters":[{"in":"path","name":"entityId","required":true,"description":"Entity unique identifier (UUID).","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","format":"int32","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","format":"int32","default":25}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityValuationTimeSeriesPoint"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/help":{"post":{"operationId":"askHelpQuestion","summary":"Answer a Natural-Language Platform Help Question","description":"Answers a question about how to use aVenture, citing the operations it draws on. A question it cannot answer returns LOW confidence instead of a guessed command. With resolve, it returns a recommended operation or workflow, or a clarifying question, instead of a written answer, under its own per-account limit. Free for every signed-in account.","tags":["Agents"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentHelpQuestion"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentHelp"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/lookup":{"get":{"operationId":"getIdentification","summary":"Read a Company, Product, Service, or Person Identity","description":"Returns what aVenture knows about a subject: MATCHED, NO_MATCH, or NEEDS_REVIEW among the records you can see, honoring the requested type and provider. To identify a subject with every lookup option, use POST /v1/lookup. Send name, url, or both; neither answers 422. A NO_MATCH subject whose own site a web search finds, and whose live page names it, is added as a new unpublished record automatically and returned in created; that record is not queued for research. An exact id, handle, or slug answers without spending quota; past it, name-identification quota and live deadlines apply. A signed-in caller that sends Prefer: respond-async gets 202 with a Location status URL instead: a lookup job runs this same identification without the live deadline, and GET /v1/lookup-jobs/{jobId} returns it as identification once COMPLETED. A repeat of the same request returns the same job while it is still PENDING or RUNNING.","tags":["Search"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"name","required":false,"description":"Name exactly as the source writes it, such as Acme AI or Jane Doe. Send name, url, or both; a name that is an absolute http(s) URL is read as url.","schema":{"description":"Name exactly as the source writes it, such as Acme AI or Jane Doe. Send name, url, or both; a name that is an absolute http(s) URL is read as url.","type":"string"}},{"in":"query","name":"url","required":false,"description":"URLs the subject owns: its website, its LinkedIn company or person profile, an aVenture page, or a registry page. At most 10. Required when name is omitted. Put articles in sourceUrl.","schema":{"description":"URLs the subject owns: its website, its LinkedIn company or person profile, an aVenture page, or a registry page. At most 10. Required when name is omitted. Put articles in sourceUrl.","type":"array","items":{"description":"URLs the subject owns: its website, its LinkedIn company or person profile, an aVenture page, or a registry page. At most 10. Required when name is omitted. Put articles in sourceUrl.","type":"string"},"minItems":0,"maxItems":10}},{"in":"query","name":"location","required":false,"description":"City, region, or country, such as Austin, TX. Tells namesakes apart; not proof on its own.","schema":{"description":"City, region, or country, such as Austin, TX. Tells namesakes apart; not proof on its own.","type":"string"}},{"in":"query","name":"context","required":false,"description":"Specific facts in plain words: product, industry, employer and title, or founder names. Generic words like startup add nothing.","schema":{"description":"Specific facts in plain words: product, industry, employer and title, or founder names. Generic words like startup add nothing.","type":"string"}},{"in":"query","name":"sourceNewsId","required":false,"description":"aVenture news id of the article that mentions the subject; an unknown id is a 400.","schema":{"description":"aVenture news id of the article that mentions the subject; an unknown id is a 400.","type":"integer","format":"int32"}},{"in":"query","name":"sourceUrl","required":false,"description":"URL of the article that mentions the subject; read from aVenture news when stored there, otherwise fetched.","schema":{"description":"URL of the article that mentions the subject; read from aVenture news when stored there, otherwise fetched.","type":"string"}},{"in":"query","name":"typeRecord","required":false,"description":"Entity type to identify. A Product or Service never matches its provider organization, but a record stored under a neighboring type of the same family (Product or Service; Fund, Investment Firm, or Company) still matches, and a Business Line lookup sees both families. Invalid for a person lookup.","schema":{"$ref":"#/components/schemas/EntityType"}},{"in":"query","name":"providerId","required":false,"description":"Provider entity id for a Product or Service lookup. Omit it when the provider is unknown. With no typeRecord, searches both Product and Service. Invalid for a company type or a person lookup.","schema":{"description":"Provider entity id for a Product or Service lookup. Omit it when the provider is unknown. With no typeRecord, searches both Product and Service. Invalid for a company type or a person lookup.","type":"string","format":"uuid"}},{"in":"query","name":"kind","required":false,"description":"Kind of record to identify when you know it: ENTITY for companies, funds, and firms (and their products or services); PERSON for people. Only that kind is looked up; typeRecord or providerId implies ENTITY.","schema":{"description":"Which kind of record a lookup identifies: ENTITY for companies, funds, investment firms, products, and services; PERSON for people. No other value is accepted (send ENTITY, not company). Only that kind is looked up; omit it to compare both kinds.","type":"string","enum":["ENTITY","PERSON"]}},{"in":"query","name":"sourceIdentifier.idType","required":false,"description":"Identifier type token, for example ein, secCik, or ticker.","schema":{"description":"Identifier type token, for example ein, secCik, or ticker.","type":"string"}},{"in":"query","name":"sourceIdentifier.identifier","required":false,"description":"Identifier value as issued by the registry.","schema":{"description":"Identifier value as issued by the registry.","type":"string"}},{"in":"query","name":"sourceIdentifier.source","required":false,"description":"Optional attribution source label for the mapping.","schema":{"description":"Optional attribution source label for the mapping.","type":"string"}},{"in":"header","name":"Prefer","description":"Send respond-async to request a pollable lookup job; exact matches answer live.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Identification"}}}},"202":{"description":"Sent with Prefer: respond-async (and Preference-Applied: respond-async), or without it to a signed-in caller once its paid live attempt, past the free exact match, ran out of time or left a provider still running: a lookup job was filed and finishes the lookup, adding no record for a NO_MATCH; poll the Location status URL after Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobEnqueue"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"mutates":true}},"post":{"operationId":"lookupRecord","summary":"Identify a Company, Product, Service, or Person by Name, URL, or ID","description":"Identifies the company, Product, Service, or person that a name, URL, or id refers to among the records you can see. Send name, at least one url, or both; neither answers 422, and a name that is a URL is read as url. Optional clues narrow the answer: kind (ENTITY or PERSON) when you know which kind the subject is, typeRecord or providerId for a Product or Service from a known provider, and context such as an employer or title. A name that is exactly a record\'s id, public handle, registry id (ticker, LEI, EIN), or slug answers at once. status is MATCHED, NEEDS_REVIEW, or NO_MATCH. MATCHED: match.owner names one record, by entityId (match.record.typeRecord tells a company from a Product or Service; read it with GET /v1/entities/{entityId}) or by personId (read it with GET /v1/people/{personId}). NEEDS_REVIEW: more than one record fits, such as a company and a person sharing a name; candidate lists them, and resending with a URL the subject owns or its kind usually settles it. NO_MATCH: no record you can see was confirmed as this subject; a former, alternate, or legal name may still match through the entityName filter of GET /v1/entities. A NO_MATCH subject whose own site a web search finds, and whose live page names it, is added as a new unpublished record with its name, website, and logo, returned as created, and not queued for research; adding it spends no research unit. Queue research on an added record with POST /v1/entities/{entityId}/enrichments or POST /v1/people/{personId}/enrichments. Set scheduleEnrichment=true to queue research on an existing match. Accept: text/event-stream streams the same answer as server-sent events. With legacy=true, name is read only as an exact id, public handle, registry id, or slug: no model call, no web search, and 404 when nothing matches. Example body: {\\"name\\":\\"Acme AI\\",\\"url\\":[\\"https://acme.ai\\"]}. A signed-in caller that sends Prefer: respond-async gets 202 with a Location status URL instead: a lookup job runs this same identification without the live deadline, and GET /v1/lookup-jobs/{jobId} returns it as identification once COMPLETED. A repeat of the same request returns the same job while it is still PENDING or RUNNING.","tags":["Search"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"legacy","required":false,"description":"Treat name only as an exact id, public handle, registry id, or slug: no model call, no web search, and 404 when nothing matches. An exact match never spends the name-identification quota, with or without this flag.","schema":{"type":"boolean"}},{"in":"query","name":"scheduleEnrichment","required":false,"description":"For an existing match, true queues research; omitted or false does not. A record this lookup adds is not queued for research; queue it with the record\'s enrichments route.","schema":{"type":"boolean"}},{"in":"query","name":"verifyUrl","required":false,"description":"Probe submitted URLs and return fresh canonical host-form evidence; defaults to false.","schema":{"type":"boolean"}},{"in":"header","name":"Prefer","description":"Send respond-async to request a pollable lookup job, which adds no record; verifyUrl=true answers live.","schema":{"type":"string"}},{"in":"header","name":"Idempotency-Key","description":"Stable intake identity for requested status verification; reuse it to recover the accepted job.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentificationSubject"}}}},"responses":{"200":{"description":"The identification as canonical JSON or compact text/plain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Identification"}},"text/plain":{"schema":{"type":"string"}}}},"201":{"description":"A NO_MATCH subject with a proven own site, added as a new unpublished record and answered as JSON: the body carries it as created, and Location is that record\'s URL; a text/plain answer stays 200.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Identification"}}}},"202":{"description":"Sent with Prefer: respond-async (and Preference-Applied: respond-async), or without it to a signed-in caller once its paid live attempt, past the free exact match, ran out of time or left a provider still running: a lookup job was filed and finishes the lookup, adding no record for a NO_MATCH; poll the Location status URL after Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobEnqueue"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"402":{"description":"Without a paid aVenture plan a caller gets a free daily allowance of name identifications per UTC day; past it the lookup answers 402 with code subscription_required (subscription_canceled, subscription_past_due, or subscription_paused when a plan lapsed), carrying limit, used, remaining, resetAt, and a Retry-After header.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read","mutates":true}}},"/v1/lookup-jobs":{"post":{"operationId":"createLookupJob","summary":"Start an Article Lookup or a Bounded Lookup-Only Bulk Job","description":"Without maxNames, reads one article (sourceUrl or sourceNewsId), identifies up to the article limit, and creates a new unpublished record (with its logo and a research request) for a new name only when a second live page also names it. With maxNames, identifies up to that bound from an article or mention names alone, without creating records or requesting research. An article read spends one natural-search slot; accepting a new job spends name-identification slots for its limit. Poll GET /v1/lookup-jobs/{jobId}; the same request sent again soon reuses its paid job.","tags":["Search","Lookup Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"maxNames","required":false,"description":"Opt in to lookup-only bulk; cap is 1 through app.jobs.lookup-job.bulk-mention-limit. Accepts an article or mention names alone; no shells or enrichment are scheduled.","schema":{"type":"integer","format":"int32"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LookupJobMutation"}}}},"responses":{"202":{"description":"The lookup job was accepted; poll its status URL.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobEnqueue"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"402":{"description":"Without a paid aVenture plan a caller gets a free daily allowance of name identifications per UTC day; past it the lookup answers 402 with code subscription_required (subscription_canceled, subscription_past_due, or subscription_paused when a plan lapsed), carrying limit, used, remaining, resetAt, and a Retry-After header.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/lookup-jobs/{jobId}":{"get":{"operationId":"getLookupJob","summary":"Get a Lookup Job\'s State and the Records Its Article Names","description":"Returns the job state: 202 with Retry-After while PENDING or RUNNING, 200 once terminal. Once COMPLETED, it returns each identified name: MATCHED names the stored record, NEEDS_REVIEW lists candidates, and a failed name carries failureReason. Ordinary article jobs may include shell, enrichmentRunId, or shellDetail on NO_MATCH. Bulk jobs return maxNames and limitReached; reaching the bound means more names may remain. A single-subject job, filed by Prefer: respond-async on GET or POST /v1/lookup or POST /v1/entities/lookup, or by a signed-in live lookup on those routes that rolled over to a job, carries source.subject and, once COMPLETED, identification: the answer that route returns. Only the requesting caller can read the job.","tags":["Search","Lookup Jobs"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"jobId","required":true,"description":"Lookup job id from the create response.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"The job is terminal: COMPLETED, FAILED, or CANCELED.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LookupJob"}}}},"202":{"description":"The job is PENDING or RUNNING; poll the same URL again after Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LookupJob"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/lookup-mentions":{"post":{"operationId":"lookupMentions","summary":"Identify Every Company and Person a Page or Screenshot Names","description":"Reads a page (sourceUrl or sourceNewsId), a recorded document such as an email (sourceDocumentId, sent alone), a screenshot (multipart file part), or a page and screenshot, lists every company, organization, investor, and person it names, and identifies each one as POST /v1/lookup would, with the page as its source. A page fetched from sourceUrl first lists its own site\'s company, looked up by that site\'s URL, unless the site is a news outlet, a shared platform such as LinkedIn, or aVenture; when no record holds that site, it is added from the name the site declares, as POST /v1/lookup adds a URL. A caller that read the names itself sends them as mention instead, alone, so neither page nor screenshot leaves it. Answers within seconds: a name still identifying when the time is up carries failureReason instead of identification; send it alone to POST /v1/lookup. Each NO_MATCH name whose own site a web search finds, and whose live page names it, is added as a new unpublished record, queued for research unless scheduleEnrichment=false, and returned as shell; adding it spends no research unit, and a name not added carries shellDetail saying why. Needs a signed-in user. Each name spends one name-identification quota slot, as POST /v1/lookup does; reading a page or screenshot also spends one natural-search slot and the free daily lookup allowance (20 name lookups per UTC day), sending mention does neither. JSON body: {\\"sourceUrl\\":\\"https://techcrunch.com/2024/01/01/example\\"} or {\\"mention\\":[{\\"name\\":\\"Visa\\",\\"type\\":\\"COMPANY\\"}]}; multipart: a file part plus an optional JSON body part.","tags":["Search"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"scheduleEnrichment","required":false,"description":"Omitted or true queues research on each record this lookup adds; false adds it without queueing research. Its logo import starts either way, and a matched record is never queued here.","schema":{"type":"boolean"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LookupJobMutation"}},"multipart/form-data":{"schema":{"type":"object","properties":{"body":{"$ref":"#/components/schemas/LookupJobMutation"},"file":{"description":"Screenshot (PNG, JPEG, or WebP); CLI accepts a local path or URL.","type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Every mention as canonical JSON or complete compact text/plain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MentionLookup"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"402":{"description":"Without a paid aVenture plan a caller gets a free daily allowance of name identifications per UTC day; past it the lookup answers 402 with code subscription_required (subscription_canceled, subscription_past_due, or subscription_paused when a plan lapsed), carrying limit, used, remaining, resetAt, and a Retry-After header.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"mutates":true}}},"/v1/metrics":{"get":{"operationId":"getSystemGlobalMetrics","summary":"Get Platform Totals for Companies, Funding, and People","description":"Global metrics snapshot. Companies tracked (companies and investment firms combined), total funding, trailing 30-day funding, investors, people, countries, cities. Totals are a periodically refreshed snapshot, so they can trail recent changes.","tags":["System"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemGlobalMetrics"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"none"}}},"/v1/news":{"get":{"operationId":"listNews","summary":"List News Articles, Including a Company\'s or Person\'s News","description":"Browse recent news articles, newest published first unless sort says otherwise, with optional filtering. A company\'s news is this list filtered by owner.entityId (CLI --owner-entity-id); a person\'s by owner.personId (CLI --owner-person-id). This is the article list: the entities an article is about come from the semantic-similarity read, not here.","tags":["News"],"parameters":[{"in":"query","name":"size","required":false,"description":"The size of the page to be returned; default and maximum 25 for the standard list, where larger values are reduced to that maximum. Entity, person, author-initial, and thin-mode reads accept larger pages.","schema":{"type":"integer","default":25}},{"in":"query","name":"search","required":false,"description":"Full-text news search term.","schema":{"description":"Full-text news search term.","type":"string"}},{"in":"query","name":"category","required":false,"description":"News category slug to include or exclude.","schema":{"description":"News category slug to include or exclude.","type":"string"}},{"in":"query","name":"owner.entityId","required":false,"description":"Owning entity id; set only when personId is absent.","schema":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},{"in":"query","name":"owner.personId","required":false,"description":"Owning person id; set only when entityId is absent.","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"query","name":"excludeId","required":false,"description":"Exclude one news article by id.","schema":{"description":"Type-safe identifier for news articles","type":"integer","format":"int32"}},{"in":"query","name":"publishedAfter","required":false,"description":"Earliest publication date, inclusive.","schema":{"description":"Earliest publication date, inclusive.","type":"string","format":"date"}},{"in":"query","name":"publishedBefore","required":false,"description":"Latest publication date, inclusive.","schema":{"description":"Latest publication date, inclusive.","type":"string","format":"date"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageNews"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/news/feedback":{"post":{"operationId":"createNewsFeedback","summary":"Submit News Feedback","description":"Records feedback on a news article.","tags":["News"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsFeedback"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsFeedbackAcknowledgement"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/news/lookup":{"get":{"operationId":"lookupNews","summary":"Look Up One News Article","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.","tags":["News"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"slug","required":false,"description":"Exact news article slug (URL-friendly identifier). Mutually exclusive with id, externalId, url, and title.","schema":{"description":"Canonical lowercase URL slug for the resource","type":"string"}},{"in":"query","name":"externalId","required":false,"description":"External ID or RSS GUID for ingestion-key lookup. Mutually exclusive with id, slug, url, and title.","schema":{"description":"External ID or RSS GUID for ingestion-key lookup. Mutually exclusive with id, slug, url, and title.","type":"string"}},{"in":"query","name":"url","required":false,"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.","schema":{"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.","type":"string"}},{"in":"query","name":"title","required":false,"description":"Candidate lookup signal: article title. Mutually exclusive with id, slug, and externalId. Combine with publication, urlDomain, or url for bounded candidate search.","schema":{"description":"Candidate lookup signal: article title. Mutually exclusive with id, slug, and externalId. Combine with publication, urlDomain, or url for bounded candidate search.","type":"string"}},{"in":"query","name":"publication","required":false,"description":"Publication qualifier (e.g., \'TechCrunch\', \'Forbes\'). Narrows a title candidate search. Not an identifier on its own.","schema":{"description":"Publication qualifier (e.g., \'TechCrunch\', \'Forbes\'). Narrows a title candidate search. Not an identifier on its own.","type":"string"}},{"in":"query","name":"urlDomain","required":false,"description":"Candidate lookup URL domain qualifier (host only, no path). Narrows a title candidate search. Not an identifier on its own.","schema":{"description":"Candidate lookup URL domain qualifier (host only, no path). Narrows a title candidate search. Not an identifier on its own.","type":"string"}},{"in":"query","name":"urlMatchMode","required":false,"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.","schema":{"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.","type":"string"}}],"responses":{"200":{"description":"News detail as canonical JSON or compact text.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsDetail"}},"text/plain":{"schema":{"type":"string"}}}},"301":{"description":"Redirect to new slug location"},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"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.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/news/subscriptions":{"get":{"operationId":"listNewsSubscriptions","summary":"List Entity News Subscriptions","description":"The caller\'s news webhook subscriptions with each one\'s delivery state. The signing secret is never returned; each item\'s subscription is the unsubscribe body.","tags":["News"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NewsSubscriptionDetail"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}},"put":{"operationId":"subscribeNewsSubscription","summary":"Subscribe to Entity News","description":"Creates or refreshes a webhook subscription to news newly linked to one entity. A new endpoint must echo a signed verification challenge before the subscription exists.","tags":["News"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsSubscription"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsSubscriptionGrant"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}},"delete":{"operationId":"unsubscribeNewsSubscription","summary":"Unsubscribe From Entity News","description":"Removes the caller\'s webhook subscription with this event, entity, and url.","tags":["News"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsSubscriptionKey"}}}},"responses":{"204":{"description":"No Content"},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/news/subscriptions/{subscriptionId}/test-events":{"post":{"operationId":"sendNewsSubscriptionTestEvent","summary":"Send a Test News Event","description":"POSTs one signed sample entity.news.published event to the caller\'s subscription url and returns the receiver\'s HTTP status. The cursor and retry state do not change. An unanswered POST answers 422 with its callback_* code.","tags":["News"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"subscriptionId","required":true,"description":"Subscription id from subscribe or list.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsSubscriptionTestEvent"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/news/{newsId}":{"get":{"operationId":"getNews","summary":"Get One News Article","description":"Returns news detail by exact positive ID. Use lookup for a slug, external ID, URL, or title candidates.","tags":["News"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"newsId","required":true,"description":"Exact positive news article id.","schema":{"description":"Type-safe identifier for news articles","type":"integer","format":"int32"}}],"responses":{"200":{"description":"News detail as canonical JSON or compact text.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsDetail"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/news/{newsId}/related-entities":{"get":{"operationId":"listNewsRelatedEntities","summary":"List the Entities a News Article Is About","description":"Returns entities semantically related to a news article — the article\'s entity mentions, not a list of articles; the article list itself is the news list.","tags":["Semantic Similarity"],"parameters":[{"in":"path","name":"newsId","required":true,"description":"News article id whose semantic neighbors should be returned.","schema":{"type":"integer","format":"int32"},"x-aventure-legacy-name":{"name":"id"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","format":"int32","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntity"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/news/{newsId}/thumbnail":{"get":{"operationId":"getNewsThumbnail","summary":"Get News Thumbnail","description":"Returns the article\'s attached thumbnail with its stored provenance; an empty slot returns 404, so read presence from `core.newsImageThumbnail` on `news get`.","tags":["News Thumbnail"],"parameters":[{"in":"path","name":"newsId","required":true,"description":"Exact positive news article id","schema":{"description":"Type-safe identifier for news articles","type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaUpload"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people":{"get":{"operationId":"listPeople","summary":"List People","description":"List people with the same filters and sort as POST /v1/people/search, passed as query parameters. Use the POST search for semantic ranking or a JSON body, and POST /v1/search/natural/people for plain English.","tags":["People"],"parameters":[{"in":"query","name":"firstName","required":false,"description":"Person first name.","schema":{"description":"Person first name.","type":"string"}},{"in":"query","name":"lastName","required":false,"description":"Person last name.","schema":{"description":"Person last name.","type":"string"}},{"in":"query","name":"status","required":false,"description":"Person workflow status.","schema":{"description":"Person workflow status.","type":"string"}},{"in":"query","name":"arrayFilter.entityName","required":false,"description":"Associated entity names.","schema":{"description":"Associated entity names.","type":"array","items":{"description":"Associated entity names.","type":"string"}}},{"in":"query","name":"arrayFilter.typeRecord","required":false,"description":"Associated entity type scope. Omit or use [] for any associated type.","schema":{"description":"Associated entity type scope. Omit or use [] for any associated type.","type":"array","items":{"$ref":"#/components/schemas/EntityType"}}},{"in":"query","name":"arrayFilter.personTitle","required":false,"description":"Person titles.","schema":{"description":"Person titles.","type":"array","items":{"description":"Person titles.","type":"string"}}},{"in":"query","name":"arrayFilter.investedCompany","required":false,"description":"Invested company names.","schema":{"description":"Invested company names.","type":"array","items":{"description":"Invested company names.","type":"string"}}},{"in":"query","name":"arrayFilter.round","required":false,"description":"Fundraise round labels.","schema":{"description":"Fundraise round labels.","type":"array","items":{"description":"Fundraise round labels.","type":"string"}}},{"in":"query","name":"arrayFilter.amountRaisedRange","required":false,"schema":{"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.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"arrayFilter.amountInvestedRange","required":false,"schema":{"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.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"arrayFilter.totalInvestmentCount","required":false,"schema":{"description":"Selected total-investment-count ranges (inclusive integer bounds) used to filter people by the number of distinct fundraise deals they invested in.","type":"array","items":{"$ref":"#/components/schemas/IntRange"}}},{"in":"query","name":"search","required":false,"description":"Search keyword or phrase. Single characters valid; stop words rejected.","schema":{"description":"Search keyword or phrase. Single characters valid; stop words rejected.","type":"string"}},{"in":"query","name":"personName","required":false,"description":"Exact normalized match against a person\'s full name or slug.","schema":{"description":"Exact normalized match against a person\'s full name or slug.","type":"array","items":{"description":"Exact normalized match against a person\'s full name or slug.","type":"string"}}},{"in":"query","name":"personId","required":false,"description":"Restrict results to specific person IDs. Omit or use [] for no ID restriction.","schema":{"description":"Restrict results to specific person IDs. Omit or use [] for no ID restriction.","type":"array","items":{"description":"Canonical person UUID","type":"string","format":"uuid"},"minItems":0,"maxItems":200}},{"in":"query","name":"letter","required":false,"description":"First-name initial.","schema":{"description":"First-name initial.","type":"string"}},{"in":"query","name":"entityId","required":false,"description":"Associated entity UUID.","schema":{"description":"Associated entity UUID.","type":"string","format":"uuid"}},{"in":"query","name":"entitySlug","required":false,"description":"Associated entity slug.","schema":{"description":"Associated entity slug.","type":"string"}},{"in":"query","name":"role","required":false,"description":"Associated entity role or title.","schema":{"description":"Associated entity role or title.","type":"string"}},{"in":"query","name":"isCurrent","required":false,"description":"Filter current associations.","schema":{"description":"Filter current associations.","type":"boolean"}},{"in":"query","name":"includeUrl","required":false,"description":"Include URL links on each person","schema":{"description":"Include URL links on each person","type":"boolean"}},{"in":"query","name":"includeAddress","required":false,"description":"Include addresses on each person","schema":{"description":"Include addresses on each person","type":"boolean"}},{"in":"query","name":"investorActivity.totalInvestmentRange","required":false,"description":"Distinct fundraise-deal count ranges for an investor, with inclusive integer bounds.","schema":{"description":"Distinct fundraise-deal count ranges for an investor, with inclusive integer bounds.","type":"array","items":{"$ref":"#/components/schemas/IntRange"}}},{"in":"query","name":"investorActivity.totalAmountInvestedUsdRange","required":false,"description":"Total USD amount-invested ranges with inclusive bounds.","schema":{"description":"Total USD amount-invested ranges with inclusive bounds.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"investorActivity.averageAmountInvestedUsdRange","required":false,"description":"Average USD amount-invested ranges with inclusive bounds.","schema":{"description":"Average USD amount-invested ranges with inclusive bounds.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"investorActivity.largestAmountInvestedUsdRange","required":false,"description":"Largest USD amount-invested ranges with inclusive bounds.","schema":{"description":"Largest USD amount-invested ranges with inclusive bounds.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"investorActivity.smallestAmountInvestedUsdRange","required":false,"description":"Smallest USD amount-invested ranges with inclusive bounds.","schema":{"description":"Smallest USD amount-invested ranges with inclusive bounds.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}},{"in":"query","name":"countOnly","required":false,"description":"When true, return only the page total in the body and skip the content payload.","schema":{"type":"boolean"}},{"in":"query","name":"hasImageFirst","required":false,"description":"When true, sort people who have a photo before those who do not.","schema":{"type":"boolean"}},{"in":"query","name":"permitMonogram","required":false,"description":"When false, monogram fallback logos are stripped from the response. Defaults to true.","schema":{"type":"boolean"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":25}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePerson"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/filters":{"get":{"operationId":"listPersonFilters","summary":"List Person Filter Options","description":"Returns available people filter facets — the option inventory a filter can take (titles, statuses, and the like), not people; searching or listing people by title uses the people search and list operations with their filters.","tags":["Person Metadata"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterOptionSet"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/filters/search":{"get":{"operationId":"searchPersonFilters","summary":"Search People Filter Options","description":"Searches available people filter options.","tags":["Person Metadata"],"parameters":[{"in":"query","name":"filterKey","required":true,"description":"Filter key to search within","schema":{"type":"string"}},{"in":"query","name":"search","required":true,"description":"Search keyword or phrase. Single characters valid; stop words rejected.","schema":{"type":"string"}},{"in":"query","name":"page","required":false,"description":"Page index is fixed to 0 for filter search","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned; filter-search default 20, maximum 100.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFilterSearchResult"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/lookup":{"post":{"operationId":"lookupPerson","summary":"Deprecated: Find Which Person a Name Refers to, or Confirm They Are New","description":"Deprecated: send the same body to lookup-from-file (POST /v1/lookup) with kind PERSON. Identifies which person a name refers to among the records you can see, and returns status MATCHED, NO_MATCH, or NEEDS_REVIEW. MATCHED: match.owner.personId is the person; read them with GET /v1/people/{personId} or queue research on them with POST /v1/people/{personId}/enrichments. NO_MATCH: no record you can see is this person. NEEDS_REVIEW: several candidates fit; resend with the person\'s LinkedIn or personal URL, and employer and title as context, to settle it. stage names the step that settled the answer: DETERMINISTIC (URL proof, no model call), JUDGMENT (a model review), or WEB_EVIDENCE (added a web search). The same name at a different employer is a different person. For full detail by exact slug or URL use GET /v1/people/lookup-exact. Example body: {\\"name\\":\\"Jane Doe\\",\\"context\\":\\"CEO at Acme AI\\"}.","tags":["Search"],"deprecated":true,"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"scheduleEnrichment","required":false,"description":"For an existing match, true queues research; omitted or false does not. A record this lookup adds is not queued for research; queue it with the record\'s enrichments route.","schema":{"type":"boolean"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentificationSubject"}}}},"responses":{"200":{"description":"The identification as canonical JSON or compact text/plain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Identification"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"402":{"description":"Without a paid aVenture plan a caller gets a free daily allowance of name identifications per UTC day; past it the lookup answers 402 with code subscription_required (subscription_canceled, subscription_past_due, or subscription_paused when a plan lapsed), carrying limit, used, remaining, resetAt, and a Retry-After header.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/people/lookup-batch":{"post":{"operationId":"lookupPersonBatch","summary":"Look Up People in Bulk by ID or Slug","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. A signed-in user\'s read charges one view per distinct returned record against the monthly entity or person view allowance; a repeat read of the same record in the month is free, and an exhausted cap answers 429 with Retry-After.","tags":["People"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N); omit page and size for the full batch.","schema":{"description":"Zero-based page index (0..N); omit page and size for the full batch.","type":"integer","format":"int32"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned; omit page and size for the full batch.","schema":{"description":"The size of the page to be returned; omit page and size for the full batch.","type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonLookupBatch"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePersonDetail"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/people/lookup-exact":{"get":{"operationId":"getPersonLookup","summary":"Read One Person\'s Full Detail by aVenture Profile URL, Slug, or URL","description":"Start here for any aventure.vc person profile URL, slug, or personal profile URL. Exact read: returns the full PersonDetail (names, profile, company roles, and investments) of the one person a slug, URL, or candidate signals prove, so do not re-read it with getPerson or listPeople; it answers 404 or 409 instead of guessing. To identify a person by name and clues, use GET /v1/lookup (CLI lookup --kind PERSON). Use the UUID item route for an id; any id query is rejected. Canonical redirects are preserved. A signed-in user\'s read charges one view per distinct returned record against the monthly entity or person view allowance; a repeat read of the same record in the month is free, and an exhausted cap answers 429 with Retry-After.","tags":["People"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"slug","required":false,"description":"Group A — exact person slug (URL-friendly identifier). Mutually exclusive with id, url, and every candidate signal in group C.","schema":{"description":"Group A — exact person slug (URL-friendly identifier). Mutually exclusive with id, url, and every candidate signal in group C.","type":"string"}},{"in":"query","name":"url","required":false,"description":"Group B — aventure.vc person profile URL (such as https://aventure.vc/people/<slug>) or the person\'s current profile URL, resolved 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.","schema":{"description":"Group B — aventure.vc person profile URL (such as https://aventure.vc/people/<slug>) or the person\'s current profile URL, resolved 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.","type":"string"}},{"in":"query","name":"urlType","required":false,"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.","schema":{"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.","type":"string"}},{"in":"query","name":"urlMatchMode","required":false,"description":"URL match mode qualifier: \'hostPath\' (strict host + path match, default) or \'domain\' (host-only match). Not an identifier on its own.","schema":{"description":"URL match mode qualifier: \'hostPath\' (strict host + path match, default) or \'domain\' (host-only match). Not an identifier on its own.","type":"string"}},{"in":"query","name":"nameFull","required":false,"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.","schema":{"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.","type":"string"}},{"in":"query","name":"nameAny","required":false,"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.","schema":{"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.","type":"string"}},{"in":"query","name":"location","required":false,"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.","schema":{"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.","type":"string"}},{"in":"query","name":"urlDomain","required":false,"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.","schema":{"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.","type":"string"}},{"in":"query","name":"includeUrl","required":false,"description":"Projection qualifier — include URL link values in response (default: true). Set false to omit urlLink array.","schema":{"description":"Projection qualifier — include URL link values in response (default: true). Set false to omit urlLink array.","type":"boolean"}},{"in":"query","name":"includeAssociation","required":false,"description":"Projection qualifier — include association values (default: true). Set false to omit association array.","schema":{"description":"Projection qualifier — include association values (default: true). Set false to omit association array.","type":"boolean"}},{"in":"query","name":"includeAddress","required":false,"description":"Projection qualifier — include address values (default: true). Set false to omit address array.","schema":{"description":"Projection qualifier — include address values (default: true). Set false to omit address array.","type":"boolean"}},{"in":"query","name":"maxAssociations","required":false,"description":"Projection qualifier — max association values to return; bounded internally to the association limit. Default: 40.","schema":{"description":"Projection qualifier — max association values to return; bounded internally to the association limit. Default: 40.","type":"integer","format":"int32"}},{"in":"query","name":"permitMonogram","required":false,"description":"Permit generated monogram photo fallback (default: true). Set false to exclude monogram photos in response.","schema":{"description":"Permit generated monogram photo fallback (default: true). Set false to exclude monogram photos in response.","type":"boolean"}},{"in":"query","name":"include","required":false,"schema":{"description":"Projection qualifier — profile panels to embed in this one read (repeat or comma-separate). Each named panel answers the same rows as its own endpoint\'s first page; omitted panels stay absent.","type":"array","items":{"$ref":"#/components/schemas/PersonDetailInclude"}}}],"responses":{"200":{"description":"Person detail as canonical JSON or compact text.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonDetail"}},"text/plain":{"schema":{"type":"string"}}}},"301":{"description":"Canonical person URL redirect"},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"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 (the record exists but is not published).","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Ambiguous identity: URL ownership or candidate signals require review. ProblemDetail identifies candidate ids and the supported recovery. Verify the candidates against source evidence and read the matching person by personId or an evidenced full profile URL with urlMatchMode=hostPath. score and threshold rank review priority; they do not prove absence. Create only when reviewed candidates are distinct and source evidence supports the target.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/search":{"post":{"operationId":"searchPeople","summary":"Search People","description":"Browse, filter, and search person, people, and individual records in the people domain; returns a paginated people list matching a filter request body. semanticQuery uses the live priority embeddings tier and returns semanticMatch evidence. Without semanticQuery or search, a default-sorted page emits an X-Next-Cursor keyset continuation; send it back as cursor, without sort, to read the next page.","tags":["People"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"page","required":false,"description":"Zero-based page index for offset paging; omit it for the first page. Ignored when cursor is sent: to continue a cursor traversal, send the X-Next-Cursor value as cursor and leave page out.","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"countOnly","required":false,"description":"When true, return only the page total in the body and skip the content payload.","schema":{"type":"boolean"}},{"in":"query","name":"hasImageFirst","required":false,"description":"When true, sort people who have a photo before those who do not.","schema":{"type":"boolean"}},{"in":"query","name":"permitMonogram","required":false,"description":"When false, monogram fallback logos are stripped from the response. Defaults to true.","schema":{"type":"boolean"}},{"in":"query","name":"cursor","required":false,"description":"Opaque continuation from X-Next-Cursor. Repeat the same filters and size; a semantic cursor also repeats sort, a keyset cursor omits it.","schema":{"type":"string"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":25}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonFilter"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePerson"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/people/texts/types":{"get":{"operationId":"listPersonTextTypes","summary":"List the Accepted Person Text Types","description":"Returns text type values accepted by person text rows.","tags":["Texts"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TextTypeOption"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}":{"get":{"operationId":"getPerson","summary":"Get One Person by ID","description":"Returns person detail by exact UUID. Use lookup for a slug, URL, or candidate signals. A signed-in user\'s read charges one view per distinct returned record against the monthly entity or person view allowance; a repeat read of the same record in the month is free, and an exhausted cap answers 429 with Retry-After.","tags":["People"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"personId","required":true,"description":"Exact person UUID.","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"includeUrl","required":false,"description":"Projection qualifier — include URL link values in response (default: true). Set false to omit urlLink array.","schema":{"description":"Projection qualifier — include URL link values in response (default: true). Set false to omit urlLink array.","type":"boolean"}},{"in":"query","name":"includeAssociation","required":false,"description":"Projection qualifier — include association values (default: true). Set false to omit association array.","schema":{"description":"Projection qualifier — include association values (default: true). Set false to omit association array.","type":"boolean"}},{"in":"query","name":"includeAddress","required":false,"description":"Projection qualifier — include address values (default: true). Set false to omit address array.","schema":{"description":"Projection qualifier — include address values (default: true). Set false to omit address array.","type":"boolean"}},{"in":"query","name":"maxAssociations","required":false,"description":"Projection qualifier — max association values to return; bounded internally to the association limit. Default: 40.","schema":{"description":"Projection qualifier — max association values to return; bounded internally to the association limit. Default: 40.","type":"integer","format":"int32"}},{"in":"query","name":"permitMonogram","required":false,"description":"Permit generated monogram photo fallback (default: true). Set false to exclude monogram photos in response.","schema":{"description":"Permit generated monogram photo fallback (default: true). Set false to exclude monogram photos in response.","type":"boolean"}},{"in":"query","name":"include","required":false,"schema":{"description":"Projection qualifier — profile panels to embed in this one read (repeat or comma-separate). Each named panel answers the same rows as its own endpoint\'s first page; omitted panels stay absent.","type":"array","items":{"$ref":"#/components/schemas/PersonDetailInclude"}}}],"responses":{"200":{"description":"Person detail as canonical JSON or compact text.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonDetail"}},"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/addresses":{"get":{"operationId":"listPersonAddresses","summary":"List a Person\'s Addresses","description":"Returns physical addresses with all role-period associations for one person.","tags":["Person Addresses"],"parameters":[{"in":"path","name":"personId","required":true,"description":"Canonical person UUID","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Address"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/addresses/{addressJoinId}":{"get":{"operationId":"getPersonAddress","summary":"Get One Person\'s Address","description":"Returns the physical address group containing the selected person association.","tags":["Person Addresses"],"parameters":[{"in":"path","name":"personId","required":true,"description":"Canonical person UUID","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"path","name":"addressJoinId","required":true,"description":"Integer person-address association id","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Address"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/blog-posts":{"get":{"operationId":"listPersonBlogPosts","summary":"List a Person\'s Blog Posts","description":"Returns active external blog post links.","tags":["Research Blog Posts"],"parameters":[{"in":"path","name":"personId","required":true,"description":"Person UUID owning the blog post rows","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":10}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","default":["publishedAt,desc"],"items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageBlogPost"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/blog-posts/{blogPostId}":{"get":{"operationId":"getPersonBlogPost","summary":"Get One Person Blog Post","description":"Returns one person-owned external link by id. Any signed-in user may call this.","tags":["Research Blog Posts"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"personId","required":true,"description":"Person UUID owning the blog post row","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"path","name":"blogPostId","required":true,"description":"Blog post UUID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPost"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/content":{"get":{"operationId":"listPersonContent","summary":"List a Person\'s Publications","description":"Returns news articles, blog posts, repositories, websites, and pages related to a person. Any signed-in user may call this.","tags":["Publications"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"personId","required":true,"description":"Person UUID whose publications are listed.","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"query","name":"topic","required":false,"description":"Topic key or source category.","schema":{"description":"Topic key or source category.","type":"string"}},{"in":"query","name":"contentType","required":false,"description":"Public content type filter.","schema":{"$ref":"#/components/schemas/PublicationType"}},{"in":"query","name":"relation","required":false,"description":"Owner relation filter.","schema":{"$ref":"#/components/schemas/PublicationRelation"}},{"in":"query","name":"year","required":false,"description":"Best-effort content year filter.","schema":{"description":"Best-effort content year filter.","type":"integer","format":"int32"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}},{"in":"query","name":"existenceProbe","required":false,"description":"Set true for first-page content-existence probes that do not need exact totals or stable ordering.","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePublication"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/content/facets":{"get":{"operationId":"listPersonContentFacets","summary":"Count a Person\'s Publications","description":"Counts one person\'s content cards by topic and content type across the whole index, so filters show exact totals before every page loads. Any signed-in user may call this.","tags":["Publications"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"personId","required":true,"description":"Person UUID whose publications are counted.","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicationFacet"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/content/search":{"post":{"operationId":"searchPersonContent","summary":"Search a Person\'s Publications","description":"Translates plain-English constraints for one person\'s content index. Any signed-in user may call this.","tags":["Publications"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"personId","required":true,"description":"Person UUID whose publications are searched.","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaturalSearch"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePublication"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/people/{personId}/enrichments":{"post":{"operationId":"enrichPerson","summary":"Enrich One Person","description":"Queues a run that researches the addressed person and updates their aVenture profile, owned by the authenticated caller. Take personId from match.owner when POST /v1/lookup or POST /v1/people/lookup returns MATCHED (CLI: lookup, people lookup). To request an update from an indexed news article or web source, pass userPrompt in the body naming the observed detail and source URL (newsUrlOriginal or web URL). When a run for this person is already queued or running, returns that run instead of queuing and charging another; a new run reserves one `person` research unit from the plan\'s research allowance, spent only once the run saves a research write and returned when it ends without one. After the run completes, read the updated profile with GET /v1/people/{personId} (CLI: people get). Check the run\'s progress with GET /v1/research-runs/{runId} (CLI: research-runs get).","tags":["Research Runs"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"personId","required":true,"description":"Canonical person UUID.","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"mode","required":false,"description":"COMPREHENSIVE (the default) researches the whole profile; INDIVIDUAL runs only the tasks named in taskPresetKey.","schema":{"$ref":"#/components/schemas/EnrichmentMode"}},{"in":"query","name":"model","required":false,"description":"Model id for the run\'s lead agent; omit to use aVenture\'s default model.","schema":{"type":"string"}},{"in":"query","name":"userPrompt","required":false,"description":"Deprecated: send userPrompt in the JSON body. Used only when the body carries no userPrompt; longer than 2000 characters is refused with 400.","schema":{"type":"string"}},{"in":"query","name":"taskPresetKey","required":false,"description":"Research presets that focus the run, listed by GET /v1/research-runs/presets; at least one is required when mode is INDIVIDUAL, and an unknown key is a 400.","schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonEnrichmentPrompt"}}}},"responses":{"200":{"description":"The queued enrichment run for the addressed person.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarnessRun"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"402":{"description":"Needs a plan that includes research runs; a caller without one gets 402 with code subscription_required (subscription_canceled, subscription_past_due, or subscription_paused when a plan lapsed).","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/entities":{"get":{"operationId":"listPersonEntityAssociations","summary":"List a Person\'s Roles at Companies","description":"Returns entity associations for one person.","tags":["Entity Person Associations"],"parameters":[{"in":"query","name":"page","required":false,"description":"Zero-based page index for offset paging; omit it for the first page. Ignored when cursor is sent: to continue a cursor traversal, send the X-Next-Cursor value as cursor and leave page out.","schema":{"type":"integer","format":"int32"}},{"in":"path","name":"personId","required":true,"description":"Person UUID","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"query","name":"countOnly","required":false,"description":"Return count metadata without full content","schema":{"type":"boolean"}},{"in":"query","name":"includeUrl","required":false,"description":"Include entity URL records","schema":{"type":"boolean"}},{"in":"query","name":"includeAddress","required":false,"description":"Include entity address records (pass false to omit)","schema":{"type":"boolean"}},{"in":"query","name":"permitMonogram","required":false,"description":"Permit generated monogram logo fallback","schema":{"type":"boolean"}},{"in":"query","name":"cursor","required":false,"description":"Opaque URL-safe cursor token from X-Next-Cursor","schema":{"type":"string"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityPersonAssociation"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/entities/{associationId}":{"get":{"operationId":"getPersonEntityAssociation","summary":"Get One of a Person\'s Roles at a Company","description":"Returns one person-scoped association join row.","tags":["Entity Person Associations"],"parameters":[{"in":"path","name":"personId","required":true,"description":"Person UUID","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"path","name":"associationId","required":true,"description":"Association id","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"includeUrl","required":false,"description":"Include entity URL records","schema":{"type":"boolean"}},{"in":"query","name":"includeAddress","required":false,"description":"Include entity address records (pass false to omit)","schema":{"type":"boolean"}},{"in":"query","name":"permitMonogram","required":false,"description":"Permit generated monogram logo fallback","schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityPersonAssociation"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/graph":{"get":{"operationId":"getPersonGraph","summary":"Get Person Graph","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.","tags":["People"],"parameters":[{"in":"path","name":"personId","required":true,"description":"Canonical person UUID","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonGraph"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/investments":{"get":{"operationId":"listPersonInvestments","summary":"List a Person\'s Investments","description":"Returns a paginated investment portfolio for a person 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; do not use investorAttribution.amountInvested, amount_invested, currency signs, currency codes, comma grouping, or abbreviated values. joinId (the investor join id) is always the final tiebreak sort key, so rows tied on every requested key keep one order across pages.","tags":["Person Investments"],"parameters":[{"in":"path","name":"personId","required":true,"description":"Person unique identifier (UUID)","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"permitMonogram","required":false,"description":"Permit monogram fallback","schema":{"type":"boolean"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":50}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePersonInvestment"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/investor-activity":{"get":{"operationId":"getPersonInvestorActivity","summary":"Get Person Investor Activity","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 personId. personId identifies the individual who supplied the capital — an angel or individual investor, not the company that raised the round.","tags":["Person Investments"],"parameters":[{"in":"path","name":"personId","required":true,"description":"Person unique identifier (UUID)","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityFundraiseInvestorActivity"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/photo":{"get":{"operationId":"getPersonPhoto","summary":"Get Person Photo","description":"Returns the person\'s attached photo with its stored provenance; an empty slot returns 404, so read presence from `core.image.picture` and `core.image.isMonogram` on `people get`.","tags":["Person Photo"],"parameters":[{"in":"path","name":"personId","required":true,"description":"Canonical person UUID","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaUpload"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/repositories":{"get":{"operationId":"listPersonRepositories","summary":"List a Person\'s GitHub Repositories","description":"Returns the person\'s synced GitHub repositories, paged. Default sort is stargazerCount desc, then name.","tags":["Repositories"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"personId","required":true,"description":"Person UUID owning the repositories","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":50}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageGithubRepo"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/similar":{"get":{"operationId":"listPersonSimilarPeople","summary":"List People Similar to One Person","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. Any signed-in user may call this on every plan. The list is free: it never counts against the monthly record-view allowance, which charges only a separate full-detail view of one record.","tags":["Semantic Similarity"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"personId","required":true,"description":"Person unique identifier (UUID)","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"permitMonogram","required":false,"description":"Permit monogram fallback","schema":{"type":"boolean"}},{"in":"header","name":"X-Request-Origin","required":false,"description":"Attribution token identifying the requesting surface; metrics-only","schema":{"type":"string"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","format":"int32","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","format":"int32","default":10}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PagePersonSimilarityResult"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/texts":{"get":{"operationId":"listPersonTexts","summary":"List Text About a Person","description":"Returns paginated text rows owned by the person. Inactive rows require read auth.","tags":["Texts"],"parameters":[{"in":"path","name":"personId","required":true,"description":"Person UUID owning the text rows","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":25}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityText"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/texts/{textId}":{"get":{"operationId":"getPersonText","summary":"Get One Piece of Text About a Person","description":"Returns one person-owned text row by id. Requires read auth.","tags":["Texts"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"personId","required":true,"description":"Person UUID owning the text row","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"path","name":"textId","required":true,"description":"Text row id","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityText"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/unique-ids":{"get":{"operationId":"listPersonUniqueIds","summary":"List a Person\'s Identifiers","description":"Returns paginated external identifier mappings for one owner. Sort by id, idType, identifier, createdAt, or updatedAt; default is updatedAt descending.","tags":["Identifiers"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"personId","required":true,"description":"Canonical person UUID.","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":50}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageUniqueId"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/unique-ids/{uniqueIdId}":{"get":{"operationId":"getPersonUniqueId","summary":"Get One Person Identifier","description":"Returns one external identifier mapping after verifying it belongs to the path owner.","tags":["Identifiers"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"personId","required":true,"description":"Canonical person UUID.","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"path","name":"uniqueIdId","required":true,"description":"Unique-id row id.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UniqueId"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/urls":{"get":{"operationId":"listPersonUrls","summary":"List Person URLs","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.","tags":["URL Links"],"parameters":[{"in":"path","name":"personId","required":true,"description":"Person UUID owning the URL rows","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"query","name":"includeInactive","required":false,"description":"Include secondary active and inactive/historical URL rows","schema":{"type":"boolean","default":false}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":25}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageEntityUrlLink"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/people/{personId}/urls/{urlId}":{"get":{"operationId":"getPersonUrl","summary":"Get One Person URL","description":"Returns one person-owned URL row by id. Requires read auth.","tags":["URL Links"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"personId","required":true,"description":"Person UUID owning the URL row","schema":{"description":"Canonical person UUID","type":"string","format":"uuid"}},{"in":"path","name":"urlId","required":true,"description":"URL link id","schema":{"type":"integer","format":"int64"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityUrlLink"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/research-runs":{"post":{"operationId":"createResearchRun","summary":"Research a Company or Person by URL","description":"Files a research request for the company, Product, Service, or person at url and returns the run, owned by you. Send name when known. A url an existing profile owns refreshes that profile; any other url researches a new one, so this is how to add a subject that POST /v1/lookup answers NO_MATCH. To update an existing entity with facts read verbatim from an external source page, pass finding (taskPresetKey defaults to apply-cited-findings); when an observed update comes from an indexed news article (newsArticle or GET /v1/news) or a page not read verbatim, pass userPrompt naming the observed detail and source URL (newsUrlOriginal or web URL). A new run reserves one `company` or `person` research unit, named by the run\'s researchAllowanceType and spent only once the run saves research and returned when it ends without any. Sending the same url again, with the same mode and presets, while your run for it is queued or running returns that run, uncharged. A record is researched at most once per rolling 24 hours across all callers: a different spelling of a subject already being researched, or of one whose research completed inside that window, files and charges nothing and answers 429 whose detail says when to retry. A url that matches more than one record answers 409, and a spent allowance answers 429. A url that names someone other than the subject (a platform or publisher page, a parked or for-sale host, or an article) answers 422 before anything is filed or charged. You may set only url, name, model, mode, userPrompt, taskPresetKey, and finding; any other field is refused with 403, and a userPrompt longer than 2000 characters is refused with 400. Follow progress with GET /v1/research-runs/{runId}; you are notified when the run completes.","tags":["Research Runs"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarnessRunCreate"}}}},"responses":{"200":{"description":"The filed or reused run.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarnessRun"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"402":{"description":"Needs a plan that includes research runs; a caller without one gets 402 with code subscription_required (subscription_canceled, subscription_past_due, or subscription_paused when a plan lapsed).","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"The url is a platform, publisher, parking-host, or article page rather than the subject\'s own site or LinkedIn profile; nothing is filed or charged, and the problem detail names what to send instead.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/research-runs/presets":{"get":{"operationId":"listResearchRunPresets","summary":"List Research Presets","description":"Lists the presets you may send as taskPresetKey when you request research. Each preset\'s key is the value to send, and its name says what the run does. Every listed preset applies the facts you send in finding: the run checks each quote against its page and writes only the facts it confirms.","tags":["Research Runs"],"security":[{"bearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentTaskPresetCatalog"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/research-runs/{runId}":{"get":{"operationId":"getResearchRun","summary":"Get One Research Run","description":"Returns one of your research runs with its status, latest progress, and, once available, the resulting profile and its public URL.","tags":["Research Runs"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"runId","required":true,"description":"Research run id","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HarnessRunDetail"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/resolve/{token}":{"get":{"operationId":"getResolvedHandle","summary":"Deprecated: Resolve an Entity or Person by Identifier Token","description":"Deprecated: use POST /v1/lookup?legacy=true with body {\\"name\\":\\"<token>\\"}. 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. A name or website URL is not a token; resolve it with the entity or person lookup.","tags":["Search"],"deprecated":true,"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"token","required":true,"description":"Any identifier: a stable public handle (e.g. eV1StGXR8Z5a), a UUID, an external registry id (ticker, LEI, EIN, ...), or a slug.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolvedHandle"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/search":{"post":{"operationId":"searchFederated","summary":"Search Companies, People, and News Together","description":"Search companies, people, and news. auto blends exact names, full-text, planning, and similarity; keyword forces full-text. Other modes are rejected. Entity results supply ranked people; without entities, people are empty. provenance.modeUsed and scope interpretation report execution; unsearchable scopes carry provenance.rejection. entityFilter constrains entities; single-scope hard filters use /v1/search/natural/entities or /v1/search/natural/people. Page/size apply across scopes except personSize/newsSize; sort is unsupported. layer=synthesis adds a cited answer and relatedQuery. SSE opens with admitted after metering. settled contains all scopes; revised adds pendingWebQuery results and synthesis without moving settled rows; complete is terminal. Snapshot and admitted SSE ids use revision:request-uuid, starting at 0. For ten minutes, identical Last-Event-ID requests from the same caller replay durable state without new quota or records. Failed synthesis retries only its paid answer; disconnects never cancel admitted work. Incomplete snapshots replay as settled, then error. Terminal failures carry ProblemDetail.disposition=TERMINAL; resume ids never restart paid search. JSON with the web layer and a signed-in user waits within the search deadline for discovery, files newly found companies, and returns their queued enrichment runs.","tags":["Search"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"layer","required":false,"description":"Repeat to add layers. Synthesis cites this response\'s public entity records, passages, and news; other layers enrich entities while people and news run alongside.","schema":{"type":"array","items":{"$ref":"#/components/schemas/SearchLayer"}}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FederatedNaturalSearch"}}}},"responses":{"200":{"description":"Ranked matches across every federated record type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FederatedSearch"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"402":{"description":"This search needs a paid aVenture plan; a caller without one gets 402 with code subscription_required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/search/link":{"get":{"operationId":"searchLink","summary":"Search From a Page URL","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 a problem (503 only when a retry can succeed), never an empty result. For direct URL-to-record identity resolution use the entities lookup operation with the url instead. Send `Prefer: respond-async` to skip the live wait: the search is committed as a link search job and the read answers 202 with a Location status URL and Retry-After; poll it. A repeat of a search that completed in the last few minutes answers 200 from its stored result. A failed job commit answers 503; a caller already holding the maximum active link searches gets 429.","tags":["Search"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"url","required":true,"description":"Public article or page URL to search from","schema":{"type":"string"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","format":"int32"}},{"in":"header","name":"Prefer","description":"Send respond-async to request a pollable link search job.","schema":{"type":"string"}}],"responses":{"200":{"description":"Records reachable from the submitted link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkSearch"}}}},"202":{"description":"Only with `Prefer: respond-async`; poll Location after Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobEnqueue"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"402":{"description":"This search needs a paid aVenture plan; a caller without one gets 402 with code subscription_required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/search/link/jobs/{jobId}":{"get":{"operationId":"getLinkSearchJob","summary":"Get a Link Search Job","description":"Returns the result of a link search accepted with `Prefer: respond-async`. Answers 202 with Location and Retry-After while the job is pending or running, 200 with the search once it completes, the synchronous read\'s 404 or 422 when the page or URL was refused, and 503 when the job failed transiently; resubmit the search to retry. Runs and their stored results do not expire; an unknown job id returns 404.","tags":["Search"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"jobId","required":true,"description":"Link search job UUID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Records reachable from the submitted link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkSearch"}}}},"202":{"description":"Job still running; poll Location after Retry-After.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobEnqueue"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"402":{"description":"This search needs a paid aVenture plan; a caller without one gets 402 with code subscription_required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/search/natural/entities":{"post":{"operationId":"searchNaturalEntities","summary":"Find Companies, Startups, and Investors in Natural Language","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. A description or company discovery question belongs here; explicit filter fields are hard constraints: they override planner values, while the planner fills fields left unset. Example: search.query \'AI infrastructure companies founded since 2020\' with size=3. The query accepts plain English; size limits the page, page starts at 0, and filter.yearFoundedRange [{\\"min\\":2020}] imposes a hard founding-year constraint.","tags":["Natural Search"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"permitMonogram","required":false,"description":"When false, generated monogram logos are stripped from entity rows.","schema":{"type":"boolean"}},{"in":"query","name":"layer","required":false,"description":"Optional answer layers to add beside the entity records; repeat to add more. `passage` ranks public research snippets and linked news that answer the question; `synthesis` adds a cited written answer and implies `passage`; `judgment` ranks a competitor, market, or provider question\'s answer by judged probability; `web` adds web evidence and the companies it names, and implies `judgment`.","schema":{"type":"array","items":{"$ref":"#/components/schemas/SearchLayer"}}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntityNaturalSearch"}}}},"responses":{"200":{"description":"Ranked entity matches for the interpreted query.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NaturalSearchResult"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"402":{"description":"This search needs a paid aVenture plan; a caller without one gets 402 with code subscription_required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/search/natural/people":{"post":{"operationId":"searchNaturalPeople","summary":"Find People With Natural Language","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, employer, work-history, and profile requests use person semantic search. Explicit filter fields are hard constraints: they override planner values, while the planner fills fields left unset.","tags":["Natural Search"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"permitMonogram","required":false,"description":"When false, generated monogram pictures are stripped from person rows.","schema":{"type":"boolean"}},{"in":"query","name":"page","required":false,"description":"Zero-based page index (0..N)","schema":{"type":"integer","default":0}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonNaturalSearch"}}}},"responses":{"200":{"description":"Ranked person matches for the interpreted query.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PersonNaturalSearchResult"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"402":{"description":"This search needs a paid aVenture plan; a caller without one gets 402 with code subscription_required.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"read"}}},"/v1/search/shared":{"get":{"operationId":"listSharedSearch","summary":"List Shared Search Publications","description":"Returns publication metadata in UUID order with a bounded keyset cursor. Answer bodies and a total count are omitted to keep sitemap traversal independent of the total number or size of saved answers. Page must be zero; follow nextCursor.","tags":["Search"],"parameters":[{"in":"query","name":"page","required":false,"description":"Offset paging is not supported; omit page. Any value other than 0 returns 400. Send the previous response\'s nextCursor as cursor to read the next page.","schema":{"type":"integer","format":"int32"}},{"in":"query","name":"size","required":false,"description":"The size of the page to be returned","schema":{"type":"integer","default":40}},{"in":"query","name":"sort","required":false,"description":"Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported.","schema":{"type":"array","items":{"type":"string"}}},{"in":"query","name":"cursor","required":false,"description":"The previous page\'s nextCursor.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CursorSliceSharedSearchList"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}},"post":{"operationId":"createSharedSearch","summary":"Share a Search Answer","description":"Runs the query against public records and saves its answer under the supplied UUID. Reusing the UUID with the same query returns the original answer; a different query is rejected. The saved answer survives query-cache expiry and is readable without authentication. No result supplied by a caller is accepted.","tags":["Search"],"security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedSearchMutation"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedSearch"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/search/shared/slug/{slug}":{"get":{"operationId":"getSharedSearchBySlug","summary":"Read a Shared Search by Slug","description":"Resolves the saved query slug used by the public search page.","tags":["Search"],"parameters":[{"in":"path","name":"slug","required":true,"description":"Shared search slug.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedSearch"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/search/shared/{id}":{"get":{"operationId":"getSharedSearch","summary":"Read a Shared Search Answer","description":"Returns the persisted public answer without running the query again.","tags":["Search"],"parameters":[{"in":"path","name":"id","required":true,"description":"Shared search UUID.","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SharedSearch"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/status":{"get":{"operationId":"getSystemStatus","summary":"Get System Status","description":"Confirms the API is reachable; needs no credential.","tags":["System"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemStatus"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"none"}}},"/v1/unique-ids/lookup":{"get":{"operationId":"lookupUniqueId","summary":"Look Up an Identifier Owner","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.","tags":["Identifiers"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"idType","required":true,"description":"Identifier type token or alias, for example ein.","schema":{"type":"string"}},{"in":"query","name":"identifier","required":true,"description":"Identifier value to resolve.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UniqueId"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/unique-ids/types":{"get":{"operationId":"listUniqueIdTypes","summary":"List the Accepted Unique Identifier Types","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.","tags":["Identifiers"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UniqueIdTypeAlias"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/url-types":{"get":{"operationId":"listUrlTypes","summary":"List URL Types","description":"Read-only inventory: returns the canonical URL types and aliases accepted by entity and person URL rows. One catalog serves both owners; it writes nothing.","tags":["URL Links"],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UrlTypeAlias"}}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"},"x-aventure-tool":{"auth":"none"}}},"/v1/web/search":{"post":{"operationId":"searchWeb","summary":"Search the Live Web","description":"Runs a live web search and returns its results, or a stored result when the same query was searched recently. Use it for external facts a stored record lacks, such as a publication or release date, press coverage, or an app-store listing. Each successful search uses one web search from the signed-in account\'s monthly allowance. Past it, a subscriber with additional usage on pays 2.5 cents per search; otherwise the call answers 429 with a usage-limit message and upgrade links. A query naming too few distinct words (a bare brand, or a brand plus a number) is refused with 422 before any charge; name what you are looking for and a disambiguator such as the domain. Set `provider` to EXA for Exa\'s instant search or EXA_DEEP for its slower, broader deep search; both answer synchronously. When the default search is still running after aVenture\'s live wait, the call answers 503 with Retry-After; send `Prefer: respond-async` to receive 202 with a Location status URL instead, and poll it after Retry-After. Neither charges an allowance search.","tags":["Search"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"header","name":"Idempotency-Key","required":false,"description":"Replay key for this account\'s exact search request, up to 255 characters","schema":{"type":"string"}},{"in":"header","name":"Prefer","description":"Send respond-async to receive a pollable job when a live web search is still running; an Exa provider answers live.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Search"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebSearch"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"415":{"description":"Unsupported Media Type","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}},"/v1/web/searches/jobs/{jobId}":{"get":{"operationId":"getWebSearchJob","summary":"Get an Async Web Search Job","description":"Reads the web-search job a `Prefer: respond-async` search accepted. Answers 200 with the finished search (charged like a search), 202 with Retry-After while the search is queued or running, 503 search_provider_error when the job ended without a result (run the search again), and 404 for an unknown job. Never starts or resubmits a provider search.","tags":["Search"],"security":[{"bearerAuth":[]}],"parameters":[{"in":"path","name":"jobId","required":true,"description":"Web-search job UUID from the 202 response","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Finished web search; never cached by intermediaries","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebSearch"}}}},"202":{"description":"The search is queued or running; poll again after Retry-After","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobEnqueue"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"406":{"description":"Not Acceptable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"422":{"description":"Unprocessable Content","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}},"x-aventure-standard-response":true}},"x-aventure-visibility":{"scope":"public"}}}},"webhooks":{"entity.news.published":{"post":{"description":"One public news article newly linked to the subscribed entity, POSTed with Standard Webhooks webhook-id, webhook-timestamp, and webhook-signature headers plus X-MCP-Subscription-Id. Any 2xx acknowledges it.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsPublishedEvent"}}}}}}},"components":{"schemas":{"SystemBuild":{"description":"Build metadata exposed by the public info alias","type":"object","properties":{"build":{"$ref":"#/components/schemas/SystemBuildDetail","description":"Application build metadata"}},"required":["build"]},"ProblemDetail":{"description":"RFC 9457 problem response with aVenture extensions.","type":"object","properties":{"allowanceType":{"description":"Which monthly allowance a BILLING_ALLOWANCE refusal exhausted.","oneOf":[{"$ref":"#/components/schemas/ResearchAllowanceType"},{"type":"null"}]},"circuitBreaker":{"type":["string","null"]},"code":{"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 describe server-side conditions a caller cannot fix: surface the error and stop rather than retry.","type":["string","null"],"x-extensible-enum":["not_authorized","rateLimited","rate_limited","subscription_required","subscription_canceled","subscription_past_due","subscription_paused","billing_allowance_exhausted","billing_additional_usage_cap_reached","billing_credit_checkout_closed","account_exists","origin_detail_capacity","origin_detail_shutdown","query_deadline_shed","suspectedShellStrip","suspected_shell_strip","prose_rejected","source_grounding_at_capacity","url_surface_misclassification","JOBRUNR_DISABLED","jobrunr_disabled","task_plan_operation_unserved","JOBRUNR_STORAGE_UNAVAILABLE","jobrunr_storage_unavailable","rbac_lookup_unavailable","GEOCODE_PROVIDER_ERROR","geocode_provider_error","image_blocklist_match","image_monochrome","image_too_small","image_wrong_aspect","image_monogram","image_unreadable","image_processing_error","image_brand_mismatch","image_photographic","web_crawl_fetch_failed","source_document_fetch_busy","primary_website_missing","news_rss_feed_fetch_failed","news_rss_article_fetch_failed","callback_connection_refused","callback_timeout","callback_tls_error","callback_http_4xx","callback_http_5xx","callback_challenge_failed","news_subscription_limit","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","search_still_running","lookup_still_running","sec_edgar_fetch_failed","github_fetch_failed","INFERENCE_PROVIDER_ERROR","inference_provider_error","INFERENCE_PROVIDER_RESPONSE_EMPTY","inference_provider_response_empty","INFERENCE_PROVIDER_INVALID_JSON","inference_provider_invalid_json","INFERENCE_PROFILES_MISSING","inference_profiles_missing","INFERENCE_PROFILE_API_KEY_MISSING","inference_profile_api_key_missing"]},"conflictingRecord":{"oneOf":[{"$ref":"#/components/schemas/CurrentSlugOwner"},{"type":"null"}]},"detail":{"type":"string"},"details":{"description":"Structured conflict details. A possible duplicate or an ambiguous lookup returns its candidate records; score and threshold rank the candidates and do not prove that the requested record is absent.","oneOf":[{"$ref":"#/components/schemas/DomainConflictDetails"},{"type":"null"}]},"disposition":{"description":"Whether a service-unavailable failure can be retried.","type":["string","null"],"enum":["TRANSIENT","TERMINAL"]},"error":{"type":["object","null"],"additionalProperties":{"type":"string"}},"existingRecordId":{"description":"On a duplicate 409, the id of the stored record the request collided with; read or update that record instead of creating it again. Absent when the conflict names no single stored record.","type":["string","null"]},"existingRedirect":{"oneOf":[{"$ref":"#/components/schemas/RedirectSlugPath"},{"type":"null"}]},"feId":{"type":["string","null"]},"field":{"type":["string","null"]},"filedRunId":{"description":"Research request ids a batch filed or reused for its other records before returning this error; absent for every other error.","type":["array","null"],"items":{"type":"string","format":"uuid"}},"hammingDistance":{"type":["integer","null"],"format":"int64"},"hint":{"type":["string","null"]},"instance":{"type":"string","format":"uri"},"limit":{"description":"Cap the limitType meter allows for its current period.","type":["integer","null"],"format":"int64"},"limitType":{"description":"Which meter refused the request; names what limit/used/remaining count.","type":["string","null"],"x-extensible-enum":["FORM","GLOBAL","SUBNET","IP","UNKNOWN","WEB_SEARCH","AGENT_HELP","NATURAL_SEARCH","BILLING_ALLOWANCE","BILLING_ADDITIONAL_USAGE"]},"matchedBlocklistKey":{"type":["string","null"]},"mediaType":{"type":["string","null"]},"moderationReason":{"type":["string","null"]},"parseError":{"type":["string","null"]},"path":{"type":["string","null"]},"properties":{"type":"object","additionalProperties":{}},"proseViolation":{"description":"Every rejected passage of a PROSE_REJECTED write, once per problem it shows; absent for every other problem.","type":["array","null"],"items":{"$ref":"#/components/schemas/ProseViolation"}},"remaining":{"description":"Cap minus used for the limitType meter, never negative.","type":["integer","null"],"format":"int64"},"requiredRole":{"type":["string","null"]},"resetAt":{"description":"When the limitType meter refills and the request can succeed again.","type":["string","null"],"format":"date-time"},"resolution":{"oneOf":[{"$ref":"#/components/schemas/ProblemResolution"},{"type":"null"}]},"retryAfterSeconds":{"description":"Seconds to wait before the same request can succeed. A BILLING_ALLOWANCE meter resets at the UTC month boundary, so this reaches weeks: read limitType before treating it as a burst backoff.","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":[{"type":"string","format":"uri"},{"$ref":"#/components/schemas/ProblemType"}]},"unknownParameters":{"type":["array","null"],"items":{"type":"string"}},"used":{"description":"Requests already charged against the limitType meter this period.","type":["integer","null"],"format":"int64"},"validParameters":{"type":["array","null"],"items":{"type":"string"}},"value":{"type":["string","null"]},"windowSeconds":{"description":"Length of a rolling throttle window; absent for period meters.","type":["integer","null"],"format":"int64"}}},"CursorSliceAddressLink":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/AddressLink"}},"nextCursor":{"type":["string","null"]}},"required":["content"]},"AgentHelpQuestion":{"description":"A plain-English question about how to use aVenture, answered with references to the operations that do it.","type":"object","properties":{"model":{"description":"Optional supported model for the answer. Omit it to use the default; an unsupported model answers 422.","type":["string","null"]},"question":{"description":"The question to answer, in natural language.","type":"string"},"resolve":{"description":"True recommends the operation or workflow that does what the question asks, or asks a clarifying question, instead of writing an answer. It ignores model and has its own per-account limit.","type":"boolean"},"scope":{"description":"Optional scope restricting which operations the answer may recommend; null means all.","oneOf":[{"$ref":"#/components/schemas/HelpScope"},{"type":"null"}]}},"required":["question"]},"AgentHelp":{"description":"Help answer with citations to the operations it draws on. Unsupported questions abstain (LOW confidence) rather than guess.","type":"object","properties":{"answer":{"description":"Answer drawn only from the cited corpus; abstains when unsupported.","type":"string"},"citation":{"description":"Corpus evidence backing the answer; empty when the model abstains.","type":"array","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."},"resolution":{"description":"The task or operation resolution when the question asked to resolve; absent for a generated answer.","oneOf":[{"$ref":"#/components/schemas/HelpResolution"},{"type":"null"}]}},"required":["answer","citation","confidence"],"x-aventure-noun":{"one":"help answer","other":"help answers"}},"ApiKey":{"description":"API key metadata; never contains the key secret","type":"object","properties":{"createdAt":{"description":"Provider creation timestamp","type":"string","format":"date-time"},"description":{"description":"Optional user-visible key description","type":["string","null"]},"expiresAt":{"description":"Provider expiry timestamp","type":["string","null"],"format":"date-time"},"id":{"description":"API key identifier","type":"string"},"lastUsedAt":{"description":"Most recent provider-recorded use timestamp","type":["string","null"],"format":"date-time"},"name":{"description":"User-visible key name","type":"string"},"revocationReason":{"description":"Provider revocation explanation","type":["string","null"]},"scopes":{"description":"Scopes assigned to this key","type":"array","items":{"type":"string"}},"status":{"description":"Provider-derived current lifecycle state","type":"string","enum":["ACTIVE","REVOKED","EXPIRED"]},"subject":{"description":"Account that owns the key","type":"string"},"updatedAt":{"description":"Provider metadata update timestamp","type":"string","format":"date-time"}},"required":["createdAt","id","name","scopes","status","subject","updatedAt"]},"CliAuthorizationMutation":{"description":"Creates a short-lived CLI authorization request bound to an ephemeral key","type":"object","properties":{"clientLabel":{"description":"Label for this CLI installation","type":["string","null"]},"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":{"description":"Base64-encoded DER SubjectPublicKeyInfo for an ephemeral RSA public key","type":["string","null"]}}},"CliAuthorizationStart":{"description":"New CLI authorization handle and one-time poll credential","type":"object","properties":{"comparisonCode":{"description":"Human comparison code shown by both the CLI and browser","type":"string"},"expiresAt":{"description":"Authorization request expiry timestamp","type":"string","format":"date-time"},"id":{"description":"Public authorization request identifier","type":"string","format":"uuid"},"intervalSeconds":{"description":"Minimum poll interval in seconds","type":"integer","format":"int64"},"pollSecret":{"description":"One-time high-entropy credential required to poll and acknowledge delivery","type":"string","readOnly":true},"verificationUrl":{"description":"Browser verification URL","type":"string","format":"uri"}},"required":["comparisonCode","expiresAt","id","intervalSeconds","pollSecret","verificationUrl"]},"CliAuthorization":{"description":"Browser-approved CLI authorization metadata. Secret poll and encrypted-delivery material are exposed only by their dedicated one-time response contracts.","type":"object","properties":{"approvedAt":{"description":"Time the authenticated user approved this request","type":["string","null"],"format":"date-time"},"clientLabel":{"description":"User-supplied label for the requesting CLI installation","type":"string"},"clientPlatform":{"$ref":"#/components/schemas/CliAuthorizationClientPlatform","description":"Coarse client operating-system family"},"comparisonCode":{"description":"Human comparison code shown by both the CLI and browser","type":"string"},"consumedAt":{"description":"Time the CLI acknowledged durable local storage","type":["string","null"],"format":"date-time"},"createdAt":{"description":"Authorization request creation timestamp","type":"string","format":"date-time"},"expiresAt":{"description":"Time after which an unfinished request cannot be approved","type":"string","format":"date-time"},"id":{"description":"Public authorization request identifier","type":"string","format":"uuid"},"intervalSeconds":{"description":"Minimum server-directed poll interval in seconds","type":"integer","format":"int64"},"keyReadyAt":{"description":"Time encrypted key delivery became available","type":["string","null"],"format":"date-time"},"status":{"$ref":"#/components/schemas/CliAuthorizationStatus","description":"Current broker lifecycle state"},"terminalAt":{"description":"Time this request entered its terminal state","type":["string","null"],"format":"date-time"},"terminalReason":{"description":"Non-secret terminal-state explanation","oneOf":[{"$ref":"#/components/schemas/CliAuthorizationTerminalReason"},{"type":"null"}]},"updatedAt":{"description":"Most recent lifecycle update timestamp","type":"string","format":"date-time"}},"required":["clientLabel","clientPlatform","comparisonCode","createdAt","expiresAt","id","intervalSeconds","status","updatedAt"]},"CliAuthorizationPoll":{"description":"Current broker state and encrypted delivery when the key is ready","type":"object","properties":{"delivery":{"description":"Encrypted one-time delivery, present only for KEY_READY","oneOf":[{"$ref":"#/components/schemas/CliAuthorizationDelivery"},{"type":"null"}]},"expiresAt":{"description":"Authorization request expiry timestamp","type":"string","format":"date-time"},"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":{"description":"Auth permission grant","type":"object","properties":{"permission":{"type":"array","items":{"type":"string"}},"role":{"type":"array","items":{"type":"string"}}},"required":["permission","role"]},"AuthOperationFilter":{"description":"Bounded generated API operations to authorize for the current session.","type":"object","properties":{"operation":{"description":"Generated API operation candidates to authorize.","type":"array","items":{"$ref":"#/components/schemas/AuthOperation"},"minItems":0,"maxItems":1000}},"required":["operation"]},"AuthOperationAuthorization":{"description":"Current permission grant, access class, and supplied API operations admitted by the live request authorization policy.","type":"object","properties":{"operation":{"description":"Supplied operations admitted by the current session.","type":"array","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"]},"AuthProviderCatalog":{"type":"object","properties":{"clerkPublishableKey":{"description":"Publishable key for browser sign-in; absent when browser sign-in is unavailable","type":["string","null"]},"oauthClient":{"description":"OAuth PKCE client configuration for the CLI; absent until its client configuration is complete","oneOf":[{"$ref":"#/components/schemas/AuthClient"},{"type":"null"}]}}},"BillingAdditionalUsageMutation":{"description":"Merge patch of the additional-usage settings. Enabling requires funding; USAGE_INVOICE also requires spendCapCents and invoiceIncrementCents.","type":"object","properties":{"enabled":{"description":"Turn recording of usage past the monthly caps on or off.","type":["boolean","null"]},"funding":{"oneOf":[{"$ref":"#/components/schemas/BillingAdditionalUsageFundingType"},{"type":"null"}]},"invoiceIncrementCents":{"description":"Unbilled cents that trigger a USAGE_INVOICE invoice; one of the plan catalog\'s invoiceIncrementCents.","type":["integer","null"],"format":"int64"},"spendCapCents":{"description":"Monthly spend cap in cents; required for USAGE_INVOICE.","type":["integer","null"],"format":"int64"}}},"BillingAdditionalUsage":{"description":"Opt-in metered usage past the monthly allowance: settings, spend this UTC month, prepaid credit, and unbilled usage.","type":"object","properties":{"availableCreditCents":{"description":"Spendable prepaid credit after pending usage and invoice-line rounding reserves, in cents.","type":"number"},"blocked":{"description":"True while a failed threshold invoice blocks additional usage; paying it in Billing Portal clears the block.","type":"boolean"},"enabled":{"description":"Whether usage past the monthly caps is recorded and billed.","type":"boolean"},"funding":{"oneOf":[{"$ref":"#/components/schemas/BillingAdditionalUsageFundingType"},{"type":"null"}]},"invoiceIncrementCents":{"description":"USAGE_INVOICE bills an invoice once unbilled usage reaches this many cents; the invoice can exceed it by the usage recorded while it was being created.","type":["integer","null"],"format":"int64"},"meter":{"type":"array","items":{"$ref":"#/components/schemas/BillingAdditionalUsageMeter"}},"resetAt":{"description":"When spentCents returns to zero: the next UTC month.","type":"string","format":"date-time"},"spendCapCents":{"description":"Monthly spend cap in cents. Required for USAGE_INVOICE; absent for PREPAID_CREDIT means only the prepaid credit bounds usage.","type":["integer","null"],"format":"int64"},"spentCents":{"description":"Additional usage priced this UTC month, in cents.","type":"number"},"unbilledCents":{"description":"Priced usage not yet paid by credit or placed on an invoice, in cents; the next threshold or period invoice bills it.","type":"number"}},"required":["availableCreditCents","blocked","enabled","meter","resetAt","spentCents","unbilledCents"]},"ResearchAllowance":{"description":"Usage allowance for one meter in one billing period, the UTC month by default","type":"object","properties":{"access":{"description":"What filing one more research run on this meter does now, decided exactly as filing decides it; present only on the company and person research meters","oneOf":[{"$ref":"#/components/schemas/ResearchAccessType"},{"type":"null"}]},"limit":{"description":"Cap for the period; absent when the tier meters without a cap","type":["integer","null"],"format":"int32"},"remaining":{"description":"Cap minus used, never negative; absent when there is no cap","type":["integer","null"],"format":"int32"},"resetAt":{"description":"When used returns to zero and the next period starts","type":"string","format":"date-time"},"used":{"description":"Amount used so far in the period","type":"integer","format":"int32"}},"required":["resetAt","used"],"x-aventure-noun":{"one":"usage allowance","other":"usage allowances"}},"BillingCheckoutMutation":{"description":"Caller-selected plan and Checkout presentation for server-owned Checkout creation.","type":"object","properties":{"plan":{"$ref":"#/components/schemas/BillingPlanType","description":"AI Plus or AI Pro plan to start through Checkout"},"uiMode":{"$ref":"#/components/schemas/BillingCheckoutUiMode","description":"How the caller presents Checkout; HOSTED_PAGE when omitted"}},"required":["plan"]},"BillingCheckout":{"description":"Checkout Session destination or client secret and expiry without provider identifiers.","type":"object","properties":{"clientSecret":{"description":"Checkout Session client secret for Stripe.js initCheckout; set for ELEMENTS","type":["string","null"]},"expiresAt":{"description":"When the Checkout Session stops accepting payment","type":"string","format":"date-time"},"plan":{"$ref":"#/components/schemas/BillingPlanType"},"publishableKey":{"description":"Stripe publishable key that loads Stripe.js; set for ELEMENTS","type":["string","null"]},"url":{"description":"Hosted Checkout page to open in a browser; set for HOSTED_PAGE","type":["string","null"],"format":"uri"}},"required":["expiresAt","plan"]},"BillingCreditPurchaseMutation":{"description":"Prepaid credit pack to buy through hosted Checkout.","type":"object","properties":{"pack":{"$ref":"#/components/schemas/BillingCreditPackType","description":"Credit pack to buy; its amount becomes prepaid credit."}},"required":["pack"]},"BillingCreditPurchase":{"description":"Hosted Checkout destination and expiry for a prepaid credit pack.","type":"object","properties":{"expiresAt":{"type":"string","format":"date-time"},"id":{"type":["string","null"],"format":"uuid"},"pack":{"$ref":"#/components/schemas/BillingCreditPackType"},"url":{"type":"string","format":"uri"}},"required":["expiresAt","pack","url"]},"BillingCreditPurchaseConfirmation":{"description":"One account-owned purchase\'s confirmed credit grant or checkout closure.","type":"object","properties":{"amountCents":{"type":"integer","format":"int64"},"closedAt":{"type":["string","null"],"format":"date-time"},"grantedAt":{"type":["string","null"],"format":"date-time"},"id":{"type":"string","format":"uuid"}},"required":["amountCents","id"]},"BillingPlanChangeMutation":{"description":"Caller-selected plan for changing a continuing AI Plus or AI Pro subscription.","type":"object","properties":{"plan":{"$ref":"#/components/schemas/BillingPlanType","description":"AI Plus or AI Pro plan to move to; the current plan cancels a scheduled change"},"prorationDate":{"description":"Unix epoch-second timestamp from an upgrade preview that pins its prorated amount on confirmation; omit it when no upgrade preview applies","type":["integer","null"],"format":"int64"}},"required":["plan"]},"BillingPlanChangePreview":{"description":"Preview of POST /v1/billing/plan-changes for the same plan: the amount charged on confirmation, when the plan takes effect, the renewal price after it, and the card that pays.","type":"object","properties":{"amountDue":{"description":"Amount charged on confirmation in the currency\'s minor unit, after credit for unused time; 0 when the change waits for the period end","type":"integer","format":"int64"},"currency":{"description":"ISO 4217 currency code.","type":"string"},"effectiveAt":{"description":"When the plan would take effect: now, or the current period end","type":"string","format":"date-time"},"paymentMethod":{"description":"Card Stripe charges; absent when no card is on file","oneOf":[{"$ref":"#/components/schemas/BillingPaymentMethod"},{"type":"null"}]},"prorationDate":{"description":"Unix epoch-second timestamp to send on upgrade confirmation so Stripe charges this previewed proration; absent when the change does not prorate now","type":["integer","null"],"format":"int64"},"recurringPrice":{"$ref":"#/components/schemas/BillingRecurringPrice","description":"Recurring charge after the change"}},"required":["amountDue","currency","effectiveAt","recurringPrice"]},"BillingPlanChange":{"description":"Plan change outcome: an upgrade applies now with a prorated invoice, a downgrade waits for the current period end.","type":"object","properties":{"effectiveAt":{"description":"When the plan takes effect: now, or the current period end","type":"string","format":"date-time"},"paymentClientSecret":{"description":"PaymentIntent client secret of the same pending invoice, for Stripe.js to complete authentication or payment in the page; set exactly when paymentUrl is.","type":["string","null"]},"paymentUrl":{"description":"Hosted invoice to pay when the upgrade\'s prorated charge needs the customer; the upgrade applies only after it is paid. Absent when no payment is pending.","type":["string","null"],"format":"uri"},"plan":{"$ref":"#/components/schemas/BillingPlanType","description":"Plan the subscription moves to"},"publishableKey":{"description":"Stripe publishable key for Stripe.js; set with paymentClientSecret","type":["string","null"]}},"required":["effectiveAt","plan"]},"BillingCatalog":{"description":"Every self-serve subscription tier with its monthly allowance caps, every plan Checkout sells, and the prices of usage past those caps. The Unlimited tier is not sold through Checkout and is omitted.","type":"object","properties":{"additionalUsage":{"type":"array","items":{"$ref":"#/components/schemas/BillingCatalogAdditionalUsage"}},"creditPack":{"type":"array","items":{"$ref":"#/components/schemas/BillingCatalogCreditPack"}},"invoiceIncrementCents":{"description":"Invoice increments a USAGE_INVOICE subscriber may choose, in cents.","type":"array","items":{"type":"integer","format":"int64"}},"plan":{"type":"array","items":{"$ref":"#/components/schemas/BillingCatalogPlan"}},"tier":{"type":"array","items":{"$ref":"#/components/schemas/BillingCatalogTier"}}},"required":["additionalUsage","creditPack","invoiceIncrementCents","plan","tier"]},"BillingPortalMutation":{"description":"Where the hosted Billing Portal session opens.","type":"object","properties":{"flow":{"description":"PAYMENT_METHOD_UPDATE opens straight to adding or replacing the card and returns to subscription settings when done. Omit to open the portal home. Plan changes use POST /v1/billing/plan-changes and cancellation uses PATCH /v1/billing/subscription.","type":["string","null"],"enum":["PAYMENT_METHOD_UPDATE"]}}},"BillingPortal":{"description":"Hosted Billing Portal destination without provider identifiers.","type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},"BillingSubscription":{"description":"Current plan (Essential, AI Plus, AI Pro, or Unlimited), subscription status, and monthly usage.","type":"object","properties":{"additionalUsage":{"$ref":"#/components/schemas/BillingAdditionalUsage"},"allowance":{"$ref":"#/components/schemas/ResearchAllowanceUsage","description":"Used, cap, and reset time of each monthly allowance"},"cancelAtPeriodEnd":{"description":"True when the plan is cancelled and ends at periodEnd","type":"boolean"},"creditPurchasable":{"description":"True when POST /v1/billing/credit-purchases sells this account a prepaid credit pack; false for an operator, a plan the App Store bills, an Unlimited plan, or a continuing paid plan that is not entitled (INCOMPLETE, PAST_DUE, UNPAID, or PAUSED)","type":"boolean"},"entitled":{"description":"True while the subscription grants its paid tier","type":"boolean"},"originalStart":{"description":"Original start of the continuing paid subscription; absent when the provider did not supply it","type":["string","null"],"format":"date-time"},"pendingPlan":{"description":"Plan a scheduled change moves the subscription to at pendingPlanAt; absent when nothing is scheduled","oneOf":[{"$ref":"#/components/schemas/BillingPlanType"},{"type":"null"}]},"pendingPlanAt":{"description":"When pendingPlan takes effect; absent when nothing is scheduled","type":["string","null"],"format":"date-time"},"periodEnd":{"description":"When the plan renews, or when access ends if cancelAtPeriodEnd","type":["string","null"],"format":"date-time"},"periodStart":{"description":"Start of the current billing period","type":["string","null"],"format":"date-time"},"plan":{"description":"Paid plan and billing cycle; absent without a paid subscription","oneOf":[{"$ref":"#/components/schemas/BillingPlanType"},{"type":"null"}]},"provider":{"description":"Who bills the continuing paid subscription, including one past due or paused: STRIPE (managed on the web) or APP_STORE; absent without one","type":["string","null"],"enum":["STRIPE","APP_STORE"]},"recurringPrice":{"description":"Subscribed renewal price before discounts; absent without a known paid Price","oneOf":[{"$ref":"#/components/schemas/BillingRecurringPrice"},{"type":"null"}]},"status":{"type":"string","enum":["NONE","INCOMPLETE","INCOMPLETE_EXPIRED","TRIALING","ACTIVE","PAST_DUE","CANCELED","UNPAID","PAUSED"]},"tier":{"description":"Tier whose monthly allowances apply now","type":"string","enum":["ESSENTIAL","PLUS","PRO","UNLIMITED"]}},"required":["additionalUsage","allowance","cancelAtPeriodEnd","creditPurchasable","entitled","status","tier"],"x-aventure-noun":{"one":"subscription","other":"subscriptions"}},"BillingSubscriptionMutation":{"description":"Merge patch of a continuing AI Plus or AI Pro subscription: cancel it at the period end or resume it, including one Stripe paused.","type":"object","properties":{"cancelAtPeriodEnd":{"description":"true ends the subscription at the current period end and drops a scheduled plan change; false resumes it and restores the plan change scheduled before the cancellation. Omit to change nothing.","type":["boolean","null"]},"paused":{"description":"false resumes a subscription Stripe paused because its trial ended without a payment method; add one with POST /v1/billing/portal-sessions first. The resumption starts a new billing period now and charges the plan to that card; a declined or authentication-held charge answers 409. true, or cancelAtPeriodEnd in the same request, is refused. Omit to change nothing.","type":["boolean","null"]}}},"BillingNextCharge":{"description":"Next invoice of the caller\'s renewing Stripe subscription as Stripe previews it, after discounts and credits.","type":"object","properties":{"amountDue":{"description":"Amount the next invoice will charge in the currency\'s minor unit, after discounts, credits, and usage so far; 0 when a discount covers it","type":"integer","format":"int64"},"chargeAt":{"description":"When the next invoice is raised and charged","type":"string","format":"date-time"},"currency":{"description":"ISO 4217 currency code.","type":"string"},"discount":{"description":"Discounts applied to the next invoice; empty when none apply","type":"array","items":{"$ref":"#/components/schemas/BillingDiscount"}},"totalExcludingTax":{"description":"Next invoice total in the currency\'s minor unit after discounts, before tax and account credit; compare it, not amountDue, with the plan\'s price","type":"integer","format":"int64"}},"required":["amountDue","chargeAt","currency","discount","totalExcludingTax"]},"BillingPaymentProfile":{"description":"The caller\'s card on file and whether Checkout would charge each plan\'s introductoryAmount on the first payment, read live from Stripe.","type":"object","properties":{"introductoryOfferEligible":{"description":"True when the catalog offers introductoryAmount, the App Store does not bill the account, and it has no earlier subscription, payment, or unvoided invoice; false otherwise","type":"boolean"},"paymentMethod":{"description":"Card that pays the continuing Stripe subscription; absent without one or when it is paid by something other than a card","oneOf":[{"$ref":"#/components/schemas/BillingPaymentMethod"},{"type":"null"}]}},"required":["introductoryOfferEligible"]},"CursorSliceSharedDirectoryList":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/SharedDirectoryList"}},"nextCursor":{"type":["string","null"]}},"required":["content"]},"SharedDirectoryMutation":{"description":"Publish a directory view under a stable client UUID; retries and identical views return the same publication.","type":"object","properties":{"directory":{"description":"Directory page the view filters.","oneOf":[{"$ref":"#/components/schemas/SharedDirectoryType"},{"type":"null"}]},"entityFilter":{"description":"Body the companies or investors page sends to entity search.","oneOf":[{"$ref":"#/components/schemas/EntityListFilter"},{"type":"null"}]},"id":{"description":"Stable sharing UUID generated once and reused across retries.","type":["string","null"],"format":"uuid"},"personFilter":{"description":"Body the people page sends to person search.","oneOf":[{"$ref":"#/components/schemas/PersonFilter"},{"type":"null"}]},"sort":{"description":"Sort the page sends, as property,asc or property,desc.","type":["string","null"]}}},"SharedDirectory":{"description":"A saved public directory view and its page copy.","type":"object","properties":{"description":{"description":"Search-result description, at most 155 characters.","type":"string"},"entityFilter":{"description":"Entity filter of a companies or investors view.","oneOf":[{"$ref":"#/components/schemas/EntityListFilter"},{"type":"null"}]},"personFilter":{"description":"Person filter of a people view.","oneOf":[{"$ref":"#/components/schemas/PersonFilter"},{"type":"null"}]},"publication":{"$ref":"#/components/schemas/SharedDirectoryList"},"sort":{"description":"Sort as property,direction; absent uses the directory default.","type":["string","null"]},"title":{"description":"Search-result title, at most 60 characters.","type":"string"}},"required":["description","publication","title"],"x-aventure-noun":{"one":"shared directory view","other":"shared directory views"}},"EnrichmentBatch":{"description":"Existing records to enrich in one call, with the run options every run shares","type":"object","properties":{"entityId":{"description":"Canonical entity UUIDs to enrich, filed in order before any person","type":"array","items":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},"mode":{"$ref":"#/components/schemas/EnrichmentMode","description":"COMPREHENSIVE (the default) researches each whole profile; INDIVIDUAL runs only the tasks named in taskPresetKey"},"model":{"description":"Model id for each run\'s lead agent; omit to use aVenture\'s default model","type":["string","null"]},"personId":{"description":"Canonical person UUIDs to enrich, filed in order after every entity","type":"array","items":{"description":"Canonical person UUID","type":"string","format":"uuid"}},"taskPresetKey":{"description":"Task preset keys that scope or emphasize every run; at least one is required when mode is INDIVIDUAL, and an unknown key is a 400","type":["array","null"],"items":{"type":"string"}},"userPrompt":{"description":"Plain-language instruction for every run, such as which facts or sources to check first","type":["string","null"]}}},"Enrichment":{"description":"One requested record\'s batch enrichment outcome: the filed run or the refusal","type":"object","properties":{"record":{"$ref":"#/components/schemas/EntityPersonOwner","description":"The requested entity or person"},"refusal":{"description":"Why no run was filed; absent when run is set","oneOf":[{"$ref":"#/components/schemas/EnrichmentRefusalType"},{"type":"null"}]},"run":{"description":"The queued or reused run; absent when refusal is set","oneOf":[{"$ref":"#/components/schemas/HarnessRun"},{"type":"null"}]}},"required":["record"]},"EntityType":{"description":"Canonical entity classification for the organization, product, and service records stored in the entity domain.","type":"string","enum":["Company","Investment Firm","Fund","Nonprofit","Government","Organization","Business Line","Product","Service"],"x-aventure-parsed-enum":true,"x-aventure-noun":{"one":"entity type","other":"entity types"}},"IntRange":{"description":"Integer range for count-based filter criteria","type":"object","properties":{"max":{"description":"Inclusive maximum integer.","type":["integer","null"],"format":"int32"},"min":{"description":"Inclusive minimum integer.","type":["integer","null"],"format":"int32"}}},"EntityOperatingStatus":{"description":"Operating state accepted by entity filters and mutation endpoints. Acquired Subsidiary means the entity was acquired and still operates; Closed (Acquihire) means the entity was acquired for its team and is terminal, rendering like Closed everywhere; Acquired means the entity is terminal, folded into the buyer, or closed.","type":"string","enum":["Operating","Acquired","Acquired Subsidiary","Closed","Closed (Acquihire)","Inactive"],"x-aventure-parsed-enum":true},"EntityListQualityGate":{"description":"Named quality gates for entity list endpoints.","type":"string","enum":["NONE","COMPANY_LISTING_READY"],"x-aventure-parsed-enum":true},"EntityUrlType":{"description":"Canonical URL platform type such as website, linkedin, twitter, or github. Lifecycle facts belong on link flags such as isCurrent and isPrimary.","type":"string"},"UrlMatchMode":{"description":"URL matching mode for URL-backed filters and duplicate checks.","type":"string","enum":["hostPath","domain"],"x-aventure-parsed-enum":true},"DecimalRange":{"description":"Decimal range for monetary and numeric filter criteria","type":"object","properties":{"max":{"description":"Inclusive maximum decimal number, such as 220000 or 123456.78.","type":["number","null"]},"min":{"description":"Inclusive minimum decimal number, such as 220000 or 123456.78.","type":["number","null"]}}},"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"}}},"EntityBrand":{"description":"Thin company brand read: names and logos under core, current website and social URLs, and current classification tags.","type":"object","properties":{"classification":{"$ref":"#/components/schemas/EntityClassification","description":"Current classification tags, industries, and standardized classifications."},"core":{"$ref":"#/components/schemas/Entity","description":"Core identity: id, slug, nameBrand, nameLegal, nameAlias, type, status, and image (logo, logoSquare, isMonogram)."},"publicUrl":{"description":"Absolute canonical aVenture page URL, when the entity has one.","type":["string","null"]},"urlLink":{"description":"Current URL links: websites first, the primary one leading, then social and other profiles.","type":"array","items":{"$ref":"#/components/schemas/EntityUrlLink"}}},"required":["classification","core","urlLink"],"x-aventure-noun":{"one":"brand profile","other":"brand profiles"}},"ClassificationCatalog":{"description":"Full active entity classification taxonomy in one payload. Inactive tags are omitted.","type":"object","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"],"x-aventure-noun":{"one":"classification catalog","other":"classification catalogs"}},"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"}}},"EntityTypeGroup":{"description":"Canonical entity type groups for boundary-level scope selection.","type":"string","enum":["Organization","Investor"]},"EntityFilterOptionSet":{"description":"Available filter options for list endpoints","type":"object","properties":{"arrayFilterEntry":{"description":"Array filter entries","type":"array","items":{"$ref":"#/components/schemas/EntityFilterEntry"}},"filtersMeta":{"description":"Metadata for the generated filter option set","oneOf":[{"$ref":"#/components/schemas/EntityFilterOptionSetMeta"},{"type":"null"}]},"rangeFilterEntry":{"description":"Range filter entries","type":"array","items":{"$ref":"#/components/schemas/EntityFilterEntry"}}},"required":["arrayFilterEntry","rangeFilterEntry"],"x-aventure-noun":{"one":"filter set","other":"filter sets"}},"EntityFilter":{"description":"Entity list and search filters. GET flattens these fields as query parameters; POST accepts the same shape as JSON.","type":"object","additionalProperties":false,"properties":{"acceleratorBrand":{"description":"Accelerator brand or operator name.","type":"array","items":{"type":"string"}},"acceleratorCohort":{"description":"Accelerator batch or cohort label.","type":"array","items":{"type":"string"}},"acceleratorName":{"description":"Specific accelerator program name.","type":"array","items":{"type":"string"}},"acceleratorStatus":{"description":"Accelerator participation status.","type":"array","items":{"type":"string"}},"affinity":{"description":"Affinity provider organization names accepted by the companies list filter. Affinity rows are member -> provider; use provider names here, not member names.","type":"array","items":{"type":"string"}},"closedLast":{"description":"Rank closed entities (Closed, Closed (Acquihire), Inactive) after every other textSearch or semanticQuery match, ahead of relevance and sort; omitted means true. false ranks them by relevance alone. Filter them out with operatingStatus or suppressNonOperating.","type":"boolean"},"employeeCountRange":{"description":"Inclusive reported employee-count ranges, in employees.","type":"array","items":{"$ref":"#/components/schemas/IntRange"}},"entityId":{"description":"Restrict results to specific entity IDs.","type":"array","items":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},"entityName":{"description":"Exact normalized match against entity brand, legal, or alias names.","type":"array","items":{"type":"string"}},"featured":{"description":"Filter by featured status.","type":["boolean","null"]},"fundraiseActivity":{"$ref":"#/components/schemas/EntityFundraiseFilterCriteria","description":"Fundraise activity"},"hasFundraising":{"description":"Filter to entities with fundraise activity.","type":["boolean","null"]},"headquartersCity":{"description":"Headquarters city values.","type":"array","items":{"type":"string"}},"headquartersCountry":{"description":"Headquarters country values.","type":"array","items":{"type":"string"}},"headquartersState":{"description":"Headquarters state or region values.","type":"array","items":{"type":"string"}},"industry":{"description":"Industry classification values.","type":"array","items":{"type":"string"}},"letter":{"description":"First letter of the display name.","type":["string","null"]},"location":{"description":"Geographic classification values.","type":"array","items":{"type":"string"}},"logoOption":{"$ref":"#/components/schemas/EntityFilterLogoOption","description":"Logo sort priority."},"mainProduct":{"description":"Main product classification values.","type":"array","items":{"type":"string"}},"operatingStatus":{"description":"Operating states to include; omit to include every state.","type":"array","items":{"$ref":"#/components/schemas/EntityOperatingStatus"}},"originCountry":{"description":"Countries an entity is from: its headquarters country or the country of its current origin (founding) address, never a legal seat alone. What a nationality adjective (Colombian startups) means; headquartersCountry is only where it is based now.","type":"array","items":{"type":"string"}},"person":{"description":"Associated person, matched by name.","type":"array","items":{"type":"string"}},"portfolioHeadquartersCity":{"description":"Portfolio-company headquarters city values.","type":"array","items":{"type":"string"}},"portfolioHeadquartersCountry":{"description":"Portfolio-company headquarters country values.","type":"array","items":{"type":"string"}},"portfolioHeadquartersState":{"description":"Portfolio-company headquarters state or region values.","type":"array","items":{"type":"string"}},"qualityGate":{"$ref":"#/components/schemas/EntityListQualityGate","description":"Server-owned list quality gate."},"rankByProminence":{"description":"Rank most prominent first (funding, stage, headcount, momentum, recent news, investor breadth), ahead of sort: what best, top, or most promising mean.","type":["boolean","null"]},"slug":{"description":"Restrict results to entity slugs.","type":"array","items":{"description":"Canonical lowercase URL slug for the resource","type":"string"}},"stage":{"description":"Investment stage classification values.","type":"array","items":{"type":"string"}},"suppressLateStage":{"description":"Exclude public and acquired companies (including acquired subsidiaries); what startup means. Private companies at any round stay, as do companies without a recorded stage or operating status.","type":["boolean","null"]},"suppressNonOperating":{"description":"Suppress entities with terminal operating status.","type":["boolean","null"]},"suppressZeroTotalRaised":{"description":"Suppress entities with zero or unknown USD total raised.","type":["boolean","null"]},"tag":{"description":"General classification tag values.","type":"array","items":{"type":"string"}},"textSearch":{"description":"Non-blank keyword/full-text search term. Use natural-search for plain-English or multi-constraint company requests.","type":["string","null"]},"typeCustomer":{"description":"Customer-type classification values.","type":"array","items":{"type":"string"}},"typeModel":{"description":"Business-model classification values.","type":"array","items":{"type":"string"}},"typeOwnership":{"description":"Ownership-model classification values.","type":"array","items":{"type":"string"}},"typeRecord":{"description":"Entity type filter. Organization expands to Company, Investment Firm, Nonprofit, Government, and Business Line; omit to include every entity type.","type":"array","items":{"$ref":"#/components/schemas/EntityType"}},"typeRevenue":{"description":"Revenue-model classification values.","type":"array","items":{"type":"string"}},"typeTechnologyUsed":{"description":"Technology-used classification values.","type":"array","items":{"type":"string"}},"url":{"description":"Current URL to match by normalized host and path.","type":["string","null"]},"urlDomain":{"description":"Current root domain to match when urlMatchMode=domain.","type":["string","null"]},"urlMatchMode":{"description":"URL matching mode: hostPath uses host and path; domain uses the root domain. Omitted, it is domain when urlDomain is set, else hostPath.","oneOf":[{"$ref":"#/components/schemas/UrlMatchMode"},{"type":"null"}]},"urlType":{"description":"Restrict URL matching to one URL type.","oneOf":[{"$ref":"#/components/schemas/EntityUrlType"},{"type":"null"}]},"yearFoundedRange":{"description":"Inclusive founding-year ranges, in calendar years.","type":"array","items":{"$ref":"#/components/schemas/IntRange"}}}},"EntityFilterRefinedFilters":{"description":"Refined filters","type":"object","properties":{"filter":{"description":"Canonical filter entries for the active entity scope.","type":"array","items":{"$ref":"#/components/schemas/EntityFilterEntry"}},"meta":{"$ref":"#/components/schemas/RefinementMeta","description":"Pagination and degradation state for this refinement."}},"required":["filter","meta"],"x-aventure-noun":{"one":"refined filter set","other":"refined filter sets"}},"EntityFilterSearch":{"description":"Record representing a filter search request","type":"object","additionalProperties":false,"properties":{"filterKey":{"description":"Filter key","type":"string"},"limit":{"description":"Maximum number of search results; omit for 20, or the filter\'s own limit when that is smaller. A larger value returns the filter\'s limit.","type":"integer","format":"int32","default":20},"query":{"description":"Query","type":"string"},"scopeFilter":{"$ref":"#/components/schemas/EntityFilter","description":"Entity filter scope applied to the option search. Omit to search every eligible entity."}},"required":["filterKey","query"]},"EntityFilterSearchResult":{"description":"Typeahead search result pairing a filter key with matching option values","type":"object","properties":{"filterKey":{"description":"Canonical filter key searched","type":"string"},"result":{"description":"Matching option values","type":"array","items":{"type":"string"}}},"required":["filterKey","result"],"x-aventure-noun":{"one":"filter search","other":"filter searches"}},"IdentificationSubject":{"description":"The company, Product, Service, or person to identify. Send the name, a URL it owns, or both, plus every location and source you have; a website or profile URL usually settles the answer without any model call.","type":"object","properties":{"context":{"description":"Specific facts in plain words: product, industry, employer and title, or founder names. Generic words like startup add nothing.","type":["string","null"]},"kind":{"description":"Kind of record to identify when you know it: ENTITY for companies, funds, and firms (and their products or services); PERSON for people. Only that kind is looked up; typeRecord or providerId implies ENTITY.","type":["string","null"],"enum":["ENTITY","PERSON"]},"location":{"description":"City, region, or country, such as Austin, TX. Tells namesakes apart; not proof on its own.","type":["string","null"]},"name":{"description":"Name exactly as the source writes it, such as Acme AI or Jane Doe. Send name, url, or both; a name that is an absolute http(s) URL is read as url.","type":["string","null"]},"providerId":{"description":"Provider entity id for a Product or Service lookup. Omit it when the provider is unknown. With no typeRecord, searches both Product and Service. Invalid for a company type or a person lookup.","type":["string","null"],"format":"uuid"},"sourceIdentifier":{"description":"Internal permanent Folk source identity. Requires private visibility and resolves before names or URLs.","oneOf":[{"$ref":"#/components/schemas/UniqueIdMutation"},{"type":"null"}]},"sourceNewsId":{"description":"aVenture news id of the article that mentions the subject; an unknown id is a 400.","type":["integer","null"],"format":"int32"},"sourceUrl":{"description":"URL of the article that mentions the subject; read from aVenture news when stored there, otherwise fetched.","type":["string","null"]},"typeRecord":{"description":"Entity type to identify. A Product or Service never matches its provider organization, but a record stored under a neighboring type of the same family (Product or Service; Fund, Investment Firm, or Company) still matches, and a Business Line lookup sees both families. Invalid for a person lookup.","oneOf":[{"$ref":"#/components/schemas/EntityType"},{"type":"null"}]},"url":{"description":"URLs the subject owns: its website, its LinkedIn company or person profile, an aVenture page, or a registry page. At most 10. Required when name is omitted. Put articles in sourceUrl.","type":"array","items":{"type":"string"},"minItems":0,"maxItems":10}}},"Identification":{"description":"Which existing entity or person satisfies the requested identity, type, and provider scope, how that was settled, and the candidates considered, most probable first.","type":"object","properties":{"candidate":{"description":"Records considered, most probable first.","type":"array","items":{"$ref":"#/components/schemas/IdentificationCandidate"}},"created":{"description":"The new unpublished record a NO_MATCH subject with a proven own site was added as, or the existing one that already held its website. Absent otherwise.","oneOf":[{"$ref":"#/components/schemas/IdentificationCandidate"},{"type":"null"}]},"detail":{"description":"One sentence naming what settled the answer or what the user must decide.","type":"string"},"duplicate":{"description":"Other records that appear to describe the same subject as match. Empty when none were found.","type":"array","items":{"$ref":"#/components/schemas/IdentificationCandidate"}},"enrichmentRunId":{"description":"Research request filed for the created record; absent without created, when the lookup did not request research on it, and when the record is already public.","type":["string","null"],"format":"uuid"},"languageModelSettled":{"description":"true when the match was settled on a second, slower review; confirm it before relying on it. Absent otherwise.","type":["boolean","null"]},"match":{"description":"The matched record when status is MATCHED.","oneOf":[{"$ref":"#/components/schemas/IdentificationCandidate"},{"type":"null"}]},"officialUrl":{"description":"The subject\'s own website or profile page found in web search; it may be a profile page on another site rather than the subject\'s own domain.","type":["string","null"]},"status":{"description":"Use the scoped match, record scoped absence, or refine an ambiguous identity with evidence.","type":"string","enum":["MATCHED","NO_MATCH","NEEDS_REVIEW"]},"urlHostForm":{"description":"Fresh backend URL evidence gathered when verifyUrl=true; empty otherwise.","type":"array","items":{"$ref":"#/components/schemas/UrlHostFormResolution"}}},"required":["candidate","detail","duplicate","status","urlHostForm"],"x-aventure-noun":{"one":"identity lookup","other":"identity lookups"}},"JobEnqueue":{"description":"Accepted asynchronous app job enqueue response.","type":"object","properties":{"jobId":{"type":"string","format":"uuid"},"mode":{"type":"string"},"statusUrl":{"description":"Endpoint to poll for asynchronous job state and result.","type":"string"}},"required":["jobId","mode","statusUrl"]},"EntityDetailBatch":{"description":"Batch request for entity detail retrieval by id, slug, or current joined URL. Each identifier array accepts at most 200 values, and at most 200 identifiers may be submitted across entityId, slug, and url.","type":"object","additionalProperties":false,"properties":{"entityId":{"description":"Entity UUID values","type":"array","items":{"type":"string","format":"uuid"},"minItems":0,"maxItems":200},"permitMonogram":{"description":"Permit monogram fallbacks","type":["boolean","null"],"default":true},"slug":{"description":"Entity slug values","type":"array","items":{"type":"string"},"minItems":0,"maxItems":200},"url":{"description":"Current joined entity URL values","type":"array","items":{"type":"string"},"minItems":0,"maxItems":200}}},"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"}}},"EntityDetail":{"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 ","type":"object","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":{"description":"Fundraise rounds associated with this entity. When newsArticle or an external source reports a newer round not yet listed here, report both and ask the user whether to request a record update via POST /v1/entities/{entityId}/enrichments (CLI: entities enrichments enrich; MCP: aventure_job enrichEntity).","type":"array","items":{"$ref":"#/components/schemas/EntityFundraiseTransaction"}},"newsArticle":{"description":"News articles associated with this entity; full-detail search carries the first few, and GET /v1/news?owner.entityId={entityId} lists them all. When an indexed article reports a newer funding round, role, or milestone not yet reflected in structured fields, report both and offer to request an update on the record.","type":"array","items":{"$ref":"#/components/schemas/News"}},"person":{"description":"People associated with this entity; full-detail search carries the first few, and GET /v1/entities/{entityId}/people lists them all.","type":"array","items":{"$ref":"#/components/schemas/PersonDetail"}},"provider":{"description":"Fund manager firm or product/service provider; null otherwise.","oneOf":[{"$ref":"#/components/schemas/EntityProvider"},{"type":"null"}]},"publicUrl":{"description":"Absolute canonical public URL when this detail has a renderable public route.","type":["string","null"]},"relationship":{"description":"Entity relationships.","type":"array","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":{"description":"External registry identifiers associated with this entity.","type":"array","items":{"$ref":"#/components/schemas/UniqueId"}}},"required":["core","enrichment","fundraiseRound","newsArticle","person","relationship","research","sitemap","uniqueId"],"x-aventure-noun":{"one":"company","other":"companies"}},"EntityResolution":{"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.","type":"object","properties":{"candidateEntityId":{"description":"Entity ids that all currently own the queried URL when status is AMBIGUOUS; empty otherwise. Re-query a single id to disambiguate.","type":"array","items":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},"detail":{"description":"Full entity detail when status is MATCHED; absent otherwise.","oneOf":[{"$ref":"#/components/schemas/EntityDetail"},{"type":"null"}]},"input":{"description":"Raw identifier exactly as queried (UUID string, slug, or URL).","type":"string"},"inputType":{"description":"Which identifier kind this row was queried by.","type":"string","enum":["ID","SLUG","URL"]},"status":{"description":"Resolution outcome for this input.","type":"string","enum":["MATCHED","AMBIGUOUS","MISSING"]}},"required":["candidateEntityId","input","inputType","status"],"x-aventure-noun":{"one":"identifier resolution","other":"identifier resolutions"}},"EntityRelationshipTypeOption":{"description":"Published relationship catalog row. Directional values use sourceRole and targetRole to name sourceEntityId and targetEntityId.","type":"object","properties":{"acquisitionManaged":{"description":"Whether this type must be written through acquisition endpoints.","type":"boolean"},"alias":{"description":"Accepted aliases that normalize to canonical.","type":"array","items":{"type":"string"}},"canonical":{"description":"Canonical relationship type token used in reads and writes.","type":"string"},"description":{"description":"Human-readable catalog meaning and placement guidance.","type":"string"},"direction":{"$ref":"#/components/schemas/RelationshipDirection","description":"How to interpret sourceEntityId and targetEntityId. DIRECTIONAL means sourceRole and targetRole are authoritative."},"exclusiveRelationshipType":{"description":"Relationship types that cannot coexist for one unordered pair.","type":"array","items":{"type":"string"}},"joinable":{"description":"Whether generic relationship join/write endpoints accept this type.","type":"boolean"},"pairRule":{"description":"Entity type pairing rule enforced before persistence.","type":"string"},"readOnly":{"description":"Whether this type is emitted by reads only and rejected on writes.","type":"boolean"},"sourceRole":{"description":"Role of sourceEntityId for directional/type-oriented rows. For affinity this is member.","type":["string","null"]},"targetRole":{"description":"Role of targetEntityId for directional/type-oriented rows. For affinity this is provider.","type":["string","null"]}},"required":["acquisitionManaged","alias","canonical","description","direction","exclusiveRelationshipType","joinable","pairRule","readOnly"],"x-aventure-noun":{"one":"relationship type","other":"relationship types"}},"EntityRelationship":{"description":"Domain record for entity relationships - oriented from the requested entity to the joined entity","type":"object","properties":{"asOf":{"description":"Source-stated effective date, preserving stored precision","type":["string","null"]},"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":{"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.","type":["string","null"]},"entity":{"$ref":"#/components/schemas/Entity","description":"Joined entity on the other side of this relationship — read-only display projection. Writes name one endpoint in the URL path and the other in targetEntityId; the relationship type determines stored orientation."},"id":{"description":"Integer entity_relationship.id row id, not an entity UUID","type":["integer","null"],"format":"int32"},"isCurrent":{"description":"Whether this relationship is current. Default relationship reads return only rows where isCurrent=true and isPrimary=true.","type":["boolean","null"]},"isPrimary":{"description":"Whether this relationship is the primary one shown. isCurrent=false or isPrimary=false hides the row from default relationship reads.","type":["boolean","null"]},"publicSource":{"description":"Published page behind this relationship, read from the provenance event that wrote it; absent for internal sources.","oneOf":[{"$ref":"#/components/schemas/EntityResearchPublicSource"},{"type":"null"}]},"relationship":{"description":"Nested relationships for the joined entity","type":"array","items":{"$ref":"#/components/schemas/EntityRelationship"}},"relationshipType":{"description":"Canonical relationship type, one of: acceleratorParticipant, acquirer, affinity, calculated, competingProductService, competitor, customer, fundManagerFirm, parent, productService, serviceProvider, similarCompany, spinOffFrom, successor. Similarity endpoint rows use the stored relationship type when one exists and calculated when the row comes from similarity alone.","type":"string"},"sourceEntityId":{"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.","type":["string","null"],"format":"uuid"},"targetEntityId":{"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.","type":["string","null"],"format":"uuid"},"updatedAt":{"type":["string","null"],"format":"date-time"}},"required":["entity","relationship","relationshipType"],"x-aventure-noun":{"one":"relationship","other":"relationships"}},"ResearchDetailType":{"description":"Research detail type published for API, CLI, and MCP help","type":"object","properties":{"allowedToken":{"description":"Allowed valueResearchDetail tokens for enumeratedToken shapes.","type":["array","null"],"items":{"type":"string"}},"curated":{"type":"boolean"},"label":{"type":"string"},"range":{"description":"Inclusive numeric bounds for monetary and numericRatio, numericScore, and numericGrowthRate values. numericGrowthRate uses percentage points: 80 means 80%, not 0.8.","oneOf":[{"$ref":"#/components/schemas/ResearchValueRange"},{"type":"null"}]},"targetPath":{"type":"string"},"timeSeries":{"description":"Whether rows are dated history; true means add current observations and keep believable old rows.","type":"boolean"},"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."},"valueType":{"$ref":"#/components/schemas/EntityResearchValueType","description":"Read projection category; choose write fields from valueShape."},"writeHint":{"description":"How to encode a write for this valueShape: which of valueResearchDetail, discreteValue, textValue, and asOfDate to send, with an example.","type":"string"}},"required":["curated","label","targetPath","timeSeries","typeValue","valueShape","valueType","writeHint"],"x-aventure-noun":{"one":"research detail type","other":"research detail types"}},"ResearchSnippetType":{"description":"Canonical research snippet type with the governance rules write callers must satisfy.","type":"object","properties":{"analysisRenderable":{"description":"Whether curated rows of this snippet type can make the public company Analysis page eligible.","type":"boolean"},"analysisSectionLabel":{"description":"Ordered headings for the fixed paragraphs of a framework analysis. Empty means ordinary prose; preserve legacy prose when its paragraph count differs.","type":"array","items":{"type":"string"}},"appliesToType":{"description":"Entity types for which this snippet is meaningful; empty means every type.","type":"array","items":{"$ref":"#/components/schemas/EntityType"}},"curated":{"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.","type":"boolean"},"defaultVisible":{"description":"Default visible flag when a write omits visible; true for recognized snippet types even when curated=false.","type":"boolean"},"label":{"description":"Human-readable label.","type":"string"},"minLength":{"description":"Minimum total text length in characters; null = no minimum.","type":["integer","null"],"format":"int32"},"paragraphShape":{"description":"Per-paragraph shape rule that write requests must satisfy; null = no paragraph rule.","oneOf":[{"$ref":"#/components/schemas/ResearchParagraphShape"},{"type":"null"}]},"recognized":{"description":"Whether this textType is recognized by the research contract catalog; true for every row returned by this endpoint.","type":"boolean"},"targetPath":{"description":"Dotted research section path the snippet attaches to.","type":"string"},"typeValue":{"description":"Canonical snippet type token used on the wire.","type":"string"},"writeHint":{"description":"The strategic question this snippet type answers and how to shape it. Snippets are point-in-time strategic analysis of the company\'s position against its market and named alternatives: open with the judgment and cite dated, sourced details only as evidence for it, never as a fact list.","type":"string"}},"required":["analysisRenderable","appliesToType","curated","defaultVisible","label","recognized","targetPath","typeValue","writeHint"],"x-aventure-noun":{"one":"research snippet type","other":"research snippet types"}},"EntityListFilter":{"description":"Entity list filters and saved-view query state including semantic entity search. semanticQuery executes on GET /v1/entities and POST /v1/entities/search; saved views persist it for replay. Every other reused EntityFilter surface accepts the base EntityFilter, which omits semanticQuery. There is no query field: send free text describing the companies as semanticQuery, a keyword as textSearch, or a known company name as entityName.","type":"object","additionalProperties":false,"properties":{"acceleratorBrand":{"description":"Accelerator brand or operator name.","type":"array","items":{"type":"string"}},"acceleratorCohort":{"description":"Accelerator batch or cohort label.","type":"array","items":{"type":"string"}},"acceleratorName":{"description":"Specific accelerator program name.","type":"array","items":{"type":"string"}},"acceleratorStatus":{"description":"Accelerator participation status.","type":"array","items":{"type":"string"}},"affinity":{"description":"Affinity provider organization names accepted by the companies list filter. Affinity rows are member -> provider; use provider names here, not member names.","type":"array","items":{"type":"string"}},"closedLast":{"description":"Rank closed entities (Closed, Closed (Acquihire), Inactive) after every other textSearch or semanticQuery match, ahead of relevance and sort; omitted means true. false ranks them by relevance alone. Filter them out with operatingStatus or suppressNonOperating.","type":"boolean"},"employeeCountRange":{"description":"Inclusive reported employee-count ranges, in employees.","type":"array","items":{"$ref":"#/components/schemas/IntRange"}},"entityId":{"description":"Restrict results to specific entity IDs.","type":"array","items":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},"entityName":{"description":"Exact normalized match against entity brand, legal, or alias names.","type":"array","items":{"type":"string"}},"featured":{"description":"Filter by featured status.","type":["boolean","null"]},"fundraiseActivity":{"$ref":"#/components/schemas/EntityFundraiseFilterCriteria","description":"Fundraise activity"},"hasFundraising":{"description":"Filter to entities with fundraise activity.","type":["boolean","null"]},"headquartersCity":{"description":"Headquarters city values.","type":"array","items":{"type":"string"}},"headquartersCountry":{"description":"Headquarters country values.","type":"array","items":{"type":"string"}},"headquartersState":{"description":"Headquarters state or region values.","type":"array","items":{"type":"string"}},"industry":{"description":"Industry classification values.","type":"array","items":{"type":"string"}},"letter":{"description":"First letter of the display name.","type":["string","null"]},"location":{"description":"Geographic classification values.","type":"array","items":{"type":"string"}},"logoOption":{"$ref":"#/components/schemas/EntityFilterLogoOption","description":"Logo sort priority."},"mainProduct":{"description":"Main product classification values.","type":"array","items":{"type":"string"}},"operatingStatus":{"description":"Operating states to include; omit to include every state.","type":"array","items":{"$ref":"#/components/schemas/EntityOperatingStatus"}},"originCountry":{"description":"Countries an entity is from: its headquarters country or the country of its current origin (founding) address, never a legal seat alone. What a nationality adjective (Colombian startups) means; headquartersCountry is only where it is based now.","type":"array","items":{"type":"string"}},"person":{"description":"Associated person, matched by name.","type":"array","items":{"type":"string"}},"portfolioHeadquartersCity":{"description":"Portfolio-company headquarters city values.","type":"array","items":{"type":"string"}},"portfolioHeadquartersCountry":{"description":"Portfolio-company headquarters country values.","type":"array","items":{"type":"string"}},"portfolioHeadquartersState":{"description":"Portfolio-company headquarters state or region values.","type":"array","items":{"type":"string"}},"qualityGate":{"$ref":"#/components/schemas/EntityListQualityGate","description":"Server-owned list quality gate."},"rankByProminence":{"description":"Rank most prominent first (funding, stage, headcount, momentum, recent news, investor breadth), ahead of sort: what best, top, or most promising mean.","type":["boolean","null"]},"semanticQuery":{"description":"Free-text semantic search phrase, this body\'s query text (there is no query field), such as \\"AI tools for dental clinics\\". To find one company by name, send entityName instead. Executable on POST /v1/entities/search; saved views persist it for replay. A semantic page ranks a bounded nearest-neighbor window: totalElements counts the ranked candidates reachable through continuation, not every matching entity.","type":["string","null"]},"slug":{"description":"Restrict results to entity slugs.","type":"array","items":{"description":"Canonical lowercase URL slug for the resource","type":"string"}},"stage":{"description":"Investment stage classification values.","type":"array","items":{"type":"string"}},"suppressLateStage":{"description":"Exclude public and acquired companies (including acquired subsidiaries); what startup means. Private companies at any round stay, as do companies without a recorded stage or operating status.","type":["boolean","null"]},"suppressNonOperating":{"description":"Suppress entities with terminal operating status.","type":["boolean","null"]},"suppressZeroTotalRaised":{"description":"Suppress entities with zero or unknown USD total raised.","type":["boolean","null"]},"tag":{"description":"General classification tag values.","type":"array","items":{"type":"string"}},"textSearch":{"description":"Non-blank keyword/full-text search term. Use natural-search for plain-English or multi-constraint company requests.","type":["string","null"]},"typeCustomer":{"description":"Customer-type classification values.","type":"array","items":{"type":"string"}},"typeModel":{"description":"Business-model classification values.","type":"array","items":{"type":"string"}},"typeOwnership":{"description":"Ownership-model classification values.","type":"array","items":{"type":"string"}},"typeRecord":{"description":"Entity type filter. Organization expands to Company, Investment Firm, Nonprofit, Government, and Business Line; omit to include every entity type.","type":"array","items":{"$ref":"#/components/schemas/EntityType"}},"typeRevenue":{"description":"Revenue-model classification values.","type":"array","items":{"type":"string"}},"typeTechnologyUsed":{"description":"Technology-used classification values.","type":"array","items":{"type":"string"}},"url":{"description":"Current URL to match by normalized host and path.","type":["string","null"]},"urlDomain":{"description":"Current root domain to match when urlMatchMode=domain.","type":["string","null"]},"urlMatchMode":{"description":"URL matching mode: hostPath uses host and path; domain uses the root domain. Omitted, it is domain when urlDomain is set, else hostPath.","oneOf":[{"$ref":"#/components/schemas/UrlMatchMode"},{"type":"null"}]},"urlType":{"description":"Restrict URL matching to one URL type.","oneOf":[{"$ref":"#/components/schemas/EntityUrlType"},{"type":"null"}]},"yearFoundedRange":{"description":"Inclusive founding-year ranges, in calendar years.","type":"array","items":{"$ref":"#/components/schemas/IntRange"}}}},"SecCompany":{"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.","type":"object","properties":{"cik":{"description":"SEC Central Index Key, 10-digit zero-padded. The stable cross-sync join key.","type":"string"},"ein":{"description":"Employer Identification Number (tax id), when SEC supplies one.","type":["string","null"]},"entityType":{"description":"SEC entity type. `operating` marks a real operating company; `other` marks a SPAC, trust, holding, or shell filing vehicle.","type":["string","null"]},"exchange":{"description":"Listing exchange(s).","type":"array","items":{"type":"string"}},"filerCategory":{"description":"SEC filer size category.","type":["string","null"]},"filingHistoryStart":{"description":"Date of the registrant\'s earliest EDGAR filing. EDGAR filing became mandatory for all registrants in May 1996, so a listing before this date predates the electronic record.","type":["string","null"],"format":"date"},"fiscalYearEnd":{"description":"Fiscal year-end as MMDD.","type":["string","null"]},"headquartersCity":{"description":"Headquarters city from the SEC business address.","type":["string","null"]},"headquartersCountry":{"description":"Headquarters country code; often null for US filers.","type":["string","null"]},"headquartersPostalCode":{"description":"Headquarters postal/ZIP code.","type":["string","null"]},"headquartersState":{"description":"Headquarters state or country from the SEC business address.","type":["string","null"]},"headquartersStreet":{"description":"Headquarters street address from the SEC business address.","type":["string","null"]},"isOperating":{"description":"True when SEC classifies this registrant as an operating company, false for a SPAC/trust/holding/shell vehicle.","type":"boolean"},"listingProspectus":{"description":"The registrant\'s IPO prospectus: its first final prospectus (Form 424B4 or 424B1), reported only when an offering registration statement (S-1, F-1, SB-2, S-11) precedes it and no annual or quarterly report does. Null when EDGAR shows no such prospectus, including every company that listed before its EDGAR history starts and every follow-on offering.","oneOf":[{"$ref":"#/components/schemas/SecListingProspectus"},{"type":"null"}]},"matchedVia":{"description":"How the query resolved to this registrant. TICKER includes a delisted ticker that only the registrant\'s past filings carry.","type":"string","enum":["TICKER","NAME"]},"nameAlias":{"description":"Former registered legal names from SEC `formerNames`, most recent first.","type":"array","items":{"type":"string"}},"nameLegal":{"description":"Registered legal name from SEC filings.","type":"string"},"otherCandidate":{"description":"Other registrants whose title also contains the name query (legal names) beside the exact title match that bound. Empty for a ticker resolution.","type":"array","items":{"type":"string"}},"phone":{"description":"Business phone from SEC filings.","type":["string","null"]},"sicCode":{"description":"SIC industry code.","type":["string","null"]},"sicDescription":{"description":"SIC industry description.","type":["string","null"]},"stateOfIncorporation":{"description":"State or country of incorporation (SEC code).","type":["string","null"]},"ticker":{"description":"Trading ticker symbol(s).","type":"array","items":{"type":"string"}}},"required":["cik","exchange","isOperating","matchedVia","nameAlias","nameLegal","otherCandidate","ticker"],"x-aventure-noun":{"one":"SEC company record","other":"SEC company records"}},"TextTypeOption":{"description":"Canonical textType value accepted by text endpoints; entity rows include minWords, maxWords, rewriteHint, and paragraphShape when a governed text contract applies.","type":"object","properties":{"canonical":{"description":"Canonical textType value.","type":"string"},"maxWords":{"description":"Maximum words allowed by the governed text contract.","type":["integer","null"],"format":"int32"},"minWords":{"description":"Minimum words allowed by the governed text contract.","type":["integer","null"],"format":"int32"},"paragraphShape":{"description":"Paragraph-shape rule returned by the governed text contract.","oneOf":[{"$ref":"#/components/schemas/ResearchParagraphShape"},{"type":"null"}]},"privateType":{"description":"Whether the textType requires trusted read visibility.","type":"boolean"},"rewriteHint":{"description":"Rewrite guidance returned by the governed text contract.","type":["string","null"]}},"required":["canonical","privateType"],"x-aventure-noun":{"one":"text type","other":"text types"}},"EntityTypeAlias":{"description":"Canonical EntityType value, accepted aliases, and public routing metadata.","type":"object","properties":{"alias":{"description":"Alias tokens accepted by EntityType.fromRaw (case-insensitive).","type":"array","items":{"type":"string"}},"canOwnPublicProductServiceRoute":{"description":"Whether this EntityType can provide the parent route for a public Product/Service.","type":"boolean"},"canonical":{"description":"Canonical EntityType value (e.g. \\"Company\\", \\"Investment Firm\\").","type":"string"},"description":{"description":"Human-facing meaning of this EntityType.","type":"string"},"productServiceRouteSegment":{"description":"Nested public route segment shared by Product and Service records.","type":"string"},"publicPathPrefix":{"description":"Public website path prefix for this EntityType.","type":"string"}},"required":["alias","canOwnPublicProductServiceRoute","canonical","description","productServiceRouteSegment","publicPathPrefix"],"x-aventure-noun":{"one":"entity type","other":"entity types"}},"EntityAcquisitionRole":{"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.","type":"string","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":{"description":"Canonical acquisition event: scoped entity is acquired, acquirerEntity is buyer.","type":"object","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":{"description":"Acquisition announcement date or instant, retaining its stored precision.","type":["string","null"]},"asOf":{"description":"Effective acquisition date the server derives on write: announcedAt, else completedAt, else the submitted asOf, as a calendar day; it can differ from the asOf written.","type":["string","null"],"readOnly":true},"completedAt":{"description":"Acquisition completion date or instant, retaining its stored precision.","type":["string","null"]},"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":{"description":"Canonical fundraise transaction UUID","type":["string","null"],"format":"uuid"},"investorJoinId":{"description":"Type-safe identifier for fundraise investor joins","type":["string","null"],"format":"uuid"},"isCurrent":{"description":"Whether this acquisition relationship still represents current ownership.","type":["boolean","null"]},"publicSource":{"description":"Published page behind this acquisition, read from the provenance event that wrote it; absent for internal sources.","oneOf":[{"$ref":"#/components/schemas/EntityResearchPublicSource"},{"type":"null"}]},"relationshipId":{"type":"integer","format":"int32"},"status":{"$ref":"#/components/schemas/EntityAcquisitionStage","description":"Read stage of the acquired entity, not transactionStatus"},"transactionStatus":{"oneOf":[{"$ref":"#/components/schemas/FundraiseTransactionStatus"},{"type":"null"}]},"updatedAt":{"type":["string","null"],"format":"date-time"}},"required":["acquiredEntity","acquirerEntity","evidence","relationshipId","status"],"x-aventure-noun":{"one":"acquisition","other":"acquisitions"}},"Address":{"description":"Canonical address record for entity and person payloads","type":"object","properties":{"address":{"description":"Legacy address row identifier","type":["integer","null"],"format":"int32"},"addressLine1":{"description":"Canonical street address line.","type":["string","null"]},"addressLine2":{"description":"Canonical suite, floor, or secondary address line.","type":["string","null"]},"association":{"description":"Role-period associations for this physical address","type":"array","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":{"description":"Single-line formatted address","type":["string","null"]},"id":{"description":"Id of this listed row\'s first association; PATCH and DELETE address one association by its association[].id, so a row holding several roles needs one call each","type":["integer","null"],"format":"int32"},"isCurrent":{"description":"Deprecated aggregate compatibility flag; true when any association is current","type":["boolean","null"]},"isHq":{"description":"Deprecated legacy flag marking the current legal/registered seat (domicile), not the operating headquarters; read EntityEnrichment.headquartersAddressId for the headquarters","type":["boolean","null"]},"isPrimary":{"description":"Deprecated legacy flag marking the primary display address","type":["boolean","null"]},"latitude":{"type":["number","null"],"format":"double"},"longitude":{"type":["number","null"],"format":"double"},"postalCode":{"description":"Canonical postal or ZIP code.","type":["string","null"]},"state":{"description":"State or region reference","oneOf":[{"$ref":"#/components/schemas/AddressState"},{"type":"null"}]},"stateAbbrev":{"description":"Canonical state or region abbreviation.","type":["string","null"]},"street":{"type":["string","null"]},"updatedAt":{"type":["string","null"],"format":"date-time"}},"x-aventure-noun":{"one":"address","other":"addresses"}},"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":{"description":"External research-side blog post owned by exactly one entity or person. Unrelated to app.app_blog_article.","type":"object","properties":{"author":{"description":"Blog-post author when discovered by ingest","type":["string","null"]},"createdAt":{"type":"string","format":"date-time"},"externalId":{"description":"Stable external feed/item identifier when available","type":["string","null"]},"id":{"description":"Type-safe UUID identifier for research-side external blog article links","type":"string","format":"uuid"},"isCurrent":{"type":"boolean"},"lastFetchedAt":{"description":"Last time ingest fetched or summarized this blog-post URL","type":["string","null"],"format":"date-time"},"mentionedEntityId":{"description":"Entities mentioned in the blog-post body, excluding the owner","type":"array","items":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},"mentionedPersonId":{"description":"People mentioned in the blog-post body, excluding the owner","type":"array","items":{"description":"Canonical person UUID","type":"string","format":"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":{"description":"LLM-generated blog-post summary from blog-post-ingest","type":["string","null"]},"summaryGeneratedAt":{"description":"Timestamp when summary was last generated","type":["string","null"],"format":"date-time"},"title":{"type":["string","null"]},"topic":{"description":"Nullable Library topic key the article classifier assigned: funding, product, partnership, acquisition, leadership, legal, research, financials, careers, blog, or press. Rows classified before that classifier may still carry a web-crawl section key.","type":["string","null"]},"type":{"$ref":"#/components/schemas/BlogPostType"},"updatedAt":{"type":"string","format":"date-time"},"url":{"type":"string"}},"required":["createdAt","id","isCurrent","mentionedEntityId","mentionedPersonId","owner","type","updatedAt","url"],"x-aventure-noun":{"one":"blog post","other":"blog posts"}},"EntityClassification":{"description":"Entity classifications grouped by bucket. Reads return current classifications by default; includeInactive=true adds inactive and historical ones.","type":"object","properties":{"geoLocationExposure":{"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.","type":"array","default":"[]","items":{"$ref":"#/components/schemas/EntityTag"}},"industry":{"description":"Industry filter values","type":"array","default":"[]","items":{"$ref":"#/components/schemas/EntityTag"}},"mainProduct":{"description":"Main product filter values","type":"array","default":"[]","items":{"$ref":"#/components/schemas/EntityTag"}},"standardizedClassification":{"description":"Standardized taxonomy classifications such as NAICS, SIC, or ISIC codes, with category and code metadata.","type":"array","default":"[]","items":{"$ref":"#/components/schemas/StandardizedClassification"}},"tag":{"description":"Tag filter values","type":"array","default":"[]","items":{"$ref":"#/components/schemas/EntityTag"}},"typeCustomer":{"description":"Type customer filter values","type":"array","default":"[]","items":{"$ref":"#/components/schemas/EntityTag"}},"typeModel":{"description":"Type model filter values","type":"array","default":"[]","items":{"$ref":"#/components/schemas/EntityTag"}},"typeOwnership":{"description":"Type ownership filter values","type":"array","default":"[]","items":{"$ref":"#/components/schemas/EntityTag"}},"typeRevenue":{"description":"Type revenue filter values","type":"array","default":"[]","items":{"$ref":"#/components/schemas/EntityTag"}},"typeTechnologyUsed":{"description":"Type technology used filter values","type":"array","default":"[]","items":{"$ref":"#/components/schemas/EntityTag"}}},"x-aventure-noun":{"one":"classification set","other":"classification sets"}},"EntityClassificationSuggestion":{"description":"Ranked classification suggestion derived from the entity profile and classification embeddings.","type":"object","properties":{"alreadyJoined":{"description":"True when the entity already has this classification, current or historical.","type":"boolean"},"classification":{"description":"Suggested classification tag or standardized classification code.","oneOf":[{"$ref":"#/components/schemas/EntityTag"},{"$ref":"#/components/schemas/StandardizedClassification"}]},"rank":{"description":"One-based rank within this suggestion response.","type":"integer","format":"int32"},"score":{"description":"Composite embedding similarity score; larger values rank higher.","type":"number","format":"double"}},"required":["alreadyJoined","classification","rank","score"],"x-aventure-noun":{"one":"classification suggestion","other":"classification suggestions"}},"PublicationType":{"description":"Public source family for canonical content cards.","type":"string","enum":["newsArticle","blogPost","externalSocialPost","repositoryOwner","repository","webSite","webPage","researchPaper"]},"PublicationRelation":{"description":"How a content card relates to an entity or person owner.","type":"string","enum":["by","about"]},"PagePublication":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/Publication"}},"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"}}},"PublicationFacet":{"description":"Number of content cards sharing one topic and content type in an owner\'s index.","type":"object","properties":{"contentType":{"$ref":"#/components/schemas/PublicationType","description":"Public content source type."},"count":{"description":"Content cards with this topic and content type.","type":"integer","format":"int64"},"topic":{"description":"Topic key; null when the content carries no topic.","type":["string","null"]}},"required":["contentType","count"],"x-aventure-noun":{"one":"content topic","other":"content topics"}},"NaturalSearch":{"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.","type":"object","properties":{"answerModel":{"description":"Optional supported model for the written answer, which also supplies the page heading, title, and description. Omit it to use the default; an unsupported model answers 422.","type":["string","null"]},"cacheMode":{"$ref":"#/components/schemas/SearchCacheMode","description":"Cache policy. use reuses earlier search work; bypass and refresh compute fresh results and are honored only for accounts with private-data access.","default":"use"},"mode":{"$ref":"#/components/schemas/SearchMode","description":"Search strategy to run. Defaults to `auto`: the fast name layer runs first (a single-token query as keyword search, a multiword query as an exact normalized name) and the language-model planner runs only on a miss, so name lookups never pay for planning. Any other value forces exactly that strategy: `exact` and `keyword` skip planner model resolution and its rate limit. Entity and person natural-search take every value but `hybrid`; news and federated search accept only `auto` and `keyword`; content search accepts `auto`, `keyword`, `semantic`, and `hybrid` (`semantic` and `hybrid` only for one entity\'s or person\'s content).","default":"auto"},"model":{"description":"Optional supported model for planning the search. Omit it to use the default; an unsupported model answers 422.","type":["string","null"]},"modelCatalogRevision":{"description":"Model catalog revision this search uses for its model defaults and inference policy; null reads the current revision. Callers without private-data access always read the current revision. An unknown revision returns 404.","type":["integer","null"],"format":"int32"},"query":{"description":"Plain-English search request.","type":"string"},"reasoningEffort":{"description":"Optional reasoning effort for every model call this search makes: the query planner and the synthesis answer. Each call sends the nearest level its model supports, the lower one on a tie. Accounts without private-data access are capped at `medium`; higher values are lowered.","oneOf":[{"$ref":"#/components/schemas/ReasoningEffort"},{"type":"null"}]},"searchCatalogRevision":{"description":"Search catalog revision this search uses for its global search policy and vocabulary; null reads the current revision. Callers without private-data access always read the current revision. An unknown revision returns 404.","type":["integer","null"],"format":"int32"},"tenantPolicyRevision":{"description":"Runtime policy revision this search uses for the serving deployment\'s execution budgets; null reads that deployment\'s current revision. Callers without private-data access always read the current revision. An unknown revision returns 404.","type":["integer","null"],"format":"int32"}},"required":["query"]},"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"}}},"EnrichmentMode":{"description":"Whether the run performs comprehensive enrichment or only selected tasks","type":"string","enum":["COMPREHENSIVE","INDIVIDUAL"],"x-aventure-parsed-enum":true},"EnrichmentPrompt":{"description":"Optional steering prompt or cited findings for one company, product, or service enrichment run","type":"object","properties":{"finding":{"description":"Facts you already read verbatim on an external source page for an entity, each with statement, sourceUrl, and exact quote; omit taskPresetKey to default to apply-cited-findings","type":["array","null"],"items":{"$ref":"#/components/schemas/ResearchFinding"}},"userPrompt":{"description":"Plain-language instruction for this run, such as an observed update and its source URL (newsUrlOriginal or web URL) or which facts to check first","type":["string","null"]}}},"HarnessRun":{"description":"One research run on a company, Product, Service, or person","type":"object","properties":{"attempt":{"description":"Retry attempt counter","type":"integer","format":"int32"},"chassis":{"$ref":"#/components/schemas/HarnessChassis","description":"Agent loop this run executes on","x-aventure-detail":true},"chassisRouted":{"description":"True when the chassis router, not a caller, picked `chassis`","type":"boolean","x-aventure-detail":true},"createdAt":{"description":"Creation timestamp","type":"string","format":"date-time"},"entitySlug":{"description":"Slug of the profile the run produced","type":["string","null"]},"environment":{"$ref":"#/components/schemas/HarnessRunEnvironment","description":"API environment"},"error":{"description":"Why the run failed; null unless failed","type":["string","null"]},"failureClass":{"description":"Typed terminal-failure class from the harness retry classifier (e.g. runtime_cap, escalated, provider_capacity, context_overflow); null unless failed","type":["string","null"]},"finishedAt":{"description":"Run completion timestamp","type":["string","null"],"format":"date-time"},"followUpAdmission":{"$ref":"#/components/schemas/HarnessRunFollowUpAdmission","description":"Follow-up admission for the exact current terminal generation; old engine terminals remain PENDING"},"hasSourceDocument":{"description":"Whether this run consumes an immutable private source document","type":"boolean","x-aventure-detail":true},"id":{"description":"Run id","type":"string","format":"uuid"},"iteration":{"description":"Current loop iteration","type":"integer","format":"int32"},"lane":{"$ref":"#/components/schemas/HarnessRunLane","description":"Queue lane for admission priority","x-aventure-detail":true},"latestStatus":{"description":"Latest enrich-loop status as an opaque JSON string","type":["string","null"],"x-aventure-detail":true},"llmApi":{"$ref":"#/components/schemas/HarnessLlmApi","description":"Gateway wire API every LLM call of this run uses","x-aventure-detail":true},"maxIteration":{"description":"Loop iteration cap","type":"integer","format":"int32"},"maxScoutConcurrent":{"description":"Parallel read-only scout fan-out width N","type":"integer","format":"int32","x-aventure-detail":true},"mode":{"$ref":"#/components/schemas/EnrichmentMode","description":"Enrichment breadth selected for this run"},"model":{"description":"Model the run uses","type":"string"},"nextAttemptAt":{"description":"Earliest re-claim time when waiting on retry backoff","type":["string","null"],"format":"date-time","x-aventure-detail":true},"researchAllowanceType":{"description":"Research allowance this run reserved when it was filed: COMPANY or PERSON; null for a run filed without one","oneOf":[{"$ref":"#/components/schemas/ResearchAllowanceType"},{"type":"null"}],"x-aventure-detail":true},"resumeSafeUntil":{"description":"Instant past which a warm resume is no longer guaranteed; the harness writes it with session_resume from the model\'s cache window. Warm-resumable now iff failed/stopped and this is in the future. Null when there is no resume window.","type":["string","null"],"format":"date-time"},"startedAt":{"description":"Run start timestamp","type":["string","null"],"format":"date-time"},"status":{"$ref":"#/components/schemas/HarnessRunStatus","description":"Current lifecycle state"},"subagentModel":{"description":"Read-only research, cohort, and completion sub-agent model id","type":"string","x-aventure-detail":true},"taskPresetKey":{"description":"Research presets filed with the run","type":["array","null"],"items":{"type":"string"},"x-aventure-detail":true},"type":{"$ref":"#/components/schemas/HarnessRunType","description":"Run kind: ENRICHMENT for a research request a caller filed, TASK for a narrower run aVenture scheduled"},"updatedAt":{"description":"Last update timestamp","type":"string","format":"date-time","x-aventure-detail":true},"url":{"description":"URL of the company, Product, Service, or person under research","type":"string"},"userPrompt":{"description":"Optional instructions filed with the run","type":["string","null"]}},"required":["attempt","chassis","chassisRouted","createdAt","environment","hasSourceDocument","id","iteration","lane","llmApi","maxIteration","maxScoutConcurrent","mode","model","status","subagentModel","type","updatedAt","url"],"x-aventure-noun":{"one":"enrichment run","other":"enrichment runs"}},"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":{"description":"Canonical fundraise investor join row for API serialization","type":"object","properties":{"amountInvested":{"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.","type":["number","null"]},"createdAt":{"description":"Created timestamp","type":"string","format":"date-time"},"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":{"description":"Fundraise investor join identifier","type":"string","format":"uuid"},"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. To name every investor in a round, read GET /v1/entities/{entityId}/investors?compact=true (firms) and GET /v1/entities/{entityId}/person-investors (angels) once each and match investorAttribution[].transactionId; never read each id separately."},"leadInvestor":{"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.","type":"boolean"},"transactionId":{"description":"Fundraise transaction identifier","type":"string","format":"uuid"},"updatedAt":{"description":"Updated timestamp","type":"string","format":"date-time"}},"required":["createdAt","id","investor","leadInvestor","transactionId","updatedAt"],"x-aventure-noun":{"one":"round investor","other":"round investors"}},"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":{"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.","type":"object","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":{"description":"Occurrence date for the round when known; null when unknown. Use the announcement date, otherwise the earliest source publication date announcing the round, preserving source precision.","type":["string","null"]},"dateFundingComplete":{"description":"Source-stated funding completion date or instant, preserving source precision.","type":["string","null"]},"dateInvestorExit":{"type":["string","null"],"format":"date-time"},"entity":{"oneOf":[{"$ref":"#/components/schemas/EntityFundraiseTransactionEntity"},{"type":"null"}]},"id":{"description":"Canonical fundraise transaction UUID","type":"string","format":"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":{"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.","type":["integer","null"],"format":"int32"},"publicSource":{"description":"Published page supporting this round, from its latest economic value write.","readOnly":true,"oneOf":[{"$ref":"#/components/schemas/EntityResearchPublicSource"},{"type":"null"}]},"round":{"description":"Display round label derived from the stored round label, round type, and financial instrument type (an \'Initial Public Offering\' round of type IPO reads as IPO); it can differ from the round label written.","type":["string","null"],"readOnly":true},"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"],"x-aventure-noun":{"one":"funding round","other":"funding rounds"}},"EntityFundraiseInvestorActivity":{"description":"Investor-perspective activity aggregate for entity and person investors.","type":"object","properties":{"attributedInvestmentCount":{"description":"Count of participations with a USD-attributed investor-level amount — the coverage denominator behind totalAmountInvestedUsd, averageAmountInvestedUsd, largestAmountInvestedUsd, and smallestAmountInvestedUsd.","type":"integer","format":"int32"},"averageAmountInvestedUsd":{"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.","type":["number","null"]},"currentPortfolioCount":{"type":"integer","format":"int32"},"largestAmountInvestedUsd":{"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.","type":["number","null"]},"portfolioCompanyCount":{"description":"Distinct portfolio companies this investor has participated in, across all portfolio-company statuses. Counts companies, whereas totalInvestment counts distinct fundraise transactions.","type":"integer","format":"int32"},"smallestAmountInvestedUsd":{"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.","type":["number","null"]},"topInvestmentStage":{"type":"array","items":{"$ref":"#/components/schemas/StageFrequency"}},"totalAmountInvestedUsd":{"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.","type":["number","null"]},"totalInvestment":{"type":"integer","format":"int32"},"totalPortfolioExit":{"type":"integer","format":"int32"},"totalWriteOff":{"type":"integer","format":"int32"}},"required":["attributedInvestmentCount","currentPortfolioCount","portfolioCompanyCount","topInvestmentStage","totalInvestment","totalPortfolioExit","totalWriteOff"],"x-aventure-noun":{"one":"investor activity summary","other":"investor activity summaries"}},"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":{"description":"Entity logo slot: SQUARE is the square icon read back as `core.image.logoSquare`; STANDARD is the horizontal wordmark read back as `core.image.logo`.","type":"string","enum":["SQUARE","STANDARD"]},"MediaUpload":{"description":"Managed media asset reference with resolved CDN URL and target metadata","type":"object","properties":{"accuracy":{"description":"Entity logo writes only: the brand-match verdict the write\'s gate computed on these bytes, including the VISION MISMATCH a brand-match override admits; absent on reads, photos, and thumbnails.","oneOf":[{"$ref":"#/components/schemas/LogoAccuracy"},{"type":"null"}]},"cdnUrl":{"description":"Resolved API CDN URL","type":"string"},"firstUploadedAt":{"description":"Earliest time this company, person, or news item received an image in this slot.","type":["string","null"],"format":"date-time"},"mediaType":{"$ref":"#/components/schemas/MediaObjectType","description":"Target media domain"},"path":{"description":"Attached managed storage path; never an external image URL","type":"string"},"squareOriginalValidated":{"description":"True only when this read fetched and validated the stored entity SQUARE original; absent on ordinary metadata reads and other media slots.","type":["boolean","null"]},"targetId":{"description":"Attached entity/person/news target id, when known","type":["string","null"]}},"required":["cdnUrl","mediaType","path"],"x-aventure-noun":{"one":"image","other":"images"}},"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"}}},"EntityPersonAssociation":{"description":"One entity↔person association, naming both sides","type":"object","properties":{"associationId":{"description":"Integer person-entity association join row id, not a person or entity UUID","type":"integer","format":"int32"},"endDate":{"description":"Association period end, preserving source precision; any value means the association ended and isCurrent is false. Absent only while not terminated","type":["string","null"]},"entityAddress":{"description":"Entity addresses carried on the association projection. Person detail carries at most one: the entity\'s current headquarters, else its most recently updated current address; GET /v1/entities/{entityId}/addresses lists them all","type":"array","items":{"$ref":"#/components/schemas/Address"}},"entityId":{"description":"Associated entity id","type":"string","format":"uuid"},"entityLogo":{"$ref":"#/components/schemas/EntityImage","description":"Entity logo image projection"},"entityName":{"type":["string","null"]},"entityOperatingStatus":{"type":["string","null"]},"entitySlug":{"description":"Canonical lowercase URL slug for the resource","type":"string"},"entityType":{"description":"Entity type classification","oneOf":[{"$ref":"#/components/schemas/EntityType"},{"type":"null"}]},"entityUrlLink":{"description":"Entity URL links carried on the association projection","type":"array","items":{"$ref":"#/components/schemas/EntityUrlLink"}},"isCurrent":{"description":"True only while the association has no endDate; any endDate means it ended","type":["boolean","null"]},"personAddress":{"description":"Person addresses carried on the association projection","type":"array","items":{"$ref":"#/components/schemas/Address"}},"personId":{"description":"Associated person id","type":"string","format":"uuid"},"personImage":{"$ref":"#/components/schemas/PersonImage","description":"Person image projection"},"personName":{"type":"string"},"personSlug":{"description":"Canonical lowercase URL slug for the resource","type":"string"},"personUrlLink":{"description":"Person URL links carried on the association projection","type":"array","items":{"$ref":"#/components/schemas/EntityUrlLink"}},"score":{"type":["integer","null"],"format":"int32"},"startDate":{"description":"Association period start, preserving source precision","type":["string","null"]},"titleFunction":{"description":"Read-side corporate title function for the association row","type":["string","null"]},"titleId":{"description":"Corporate title id for the association row","type":["integer","null"],"format":"int32"},"titleLevel":{"description":"Read-side corporate title level for the association row","type":["string","null"]},"titleName":{"description":"Read-side corporate title text for the association row","type":["string","null"]}},"required":["associationId","entityAddress","entityId","entityLogo","entitySlug","entityUrlLink","personAddress","personId","personImage","personName","personSlug","personUrlLink"],"x-aventure-noun":{"one":"role","other":"roles"}},"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"}}},"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":{"description":"Combined entity research disclosure: governed detail rows, research text snippets, and joined accelerator participation.","type":"object","properties":{"acceleratorParticipation":{"description":"Joined accelerator participation derived from governed accelerator research rows","type":"array","items":{"$ref":"#/components/schemas/EntityAcceleratorParticipation"}},"detail":{"description":"Flat governed research detail rows filtered by visibility","type":"array","items":{"$ref":"#/components/schemas/EntityResearchDetail"}},"snippet":{"description":"Research text snippets for this entity","type":"array","items":{"$ref":"#/components/schemas/EntityResearchSnippet"}}},"required":["acceleratorParticipation","detail","snippet"],"x-aventure-noun":{"one":"research record","other":"research records"}},"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":{"description":"Research detail record for an entity.","type":"object","properties":{"asOfDate":{"description":"Date the research detail applies to, preserving the source\'s calendar or timestamp precision.","type":["string","null"]},"currentEligible":{"description":"Eligibility as a current fact at response time; multiple rows may be eligible. Select the first eligible row in the returned authoritative order.","type":["boolean","null"],"readOnly":true},"derivedRange":{"description":"Read-only range derived only for targetDateAbsolute detail rows","readOnly":true,"oneOf":[{"$ref":"#/components/schemas/ResearchDerivedRange"},{"type":"null"}]},"discreteValue":{"type":["number","null"],"format":"double"},"entityId":{"description":"Canonical entity UUID","type":"string","format":"uuid"},"id":{"type":"integer","format":"int32"},"publicSource":{"description":"Published page behind this value, read from the provenance event that wrote it; absent for internal sources.","oneOf":[{"$ref":"#/components/schemas/EntityResearchPublicSource"},{"type":"null"}]},"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"],"x-aventure-noun":{"one":"research detail","other":"research details"}},"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":{"description":"Persisted research snippet row for one entity.","type":"object","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"}]},"entityId":{"description":"Canonical entity UUID","type":"string","format":"uuid"},"id":{"type":"integer","format":"int32"},"publicSource":{"description":"Published page behind this value, read from the provenance event that wrote it; absent for internal sources.","oneOf":[{"$ref":"#/components/schemas/EntityResearchPublicSource"},{"type":"null"}]},"text":{"type":"string"},"textType":{"type":"string"},"updatedAt":{"type":["string","null"],"format":"date-time"}},"required":["entityId","id","text","textType"],"x-aventure-noun":{"one":"research snippet","other":"research snippets"}},"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"}}},"PageEntitySimilaritySummary":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/EntitySimilaritySummary"}},"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"}}},"SlugLocation":{"description":"Current slug location for a resource","type":"object","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"],"x-aventure-noun":{"one":"slug","other":"slugs"}},"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":{"description":"Canonical entity/person text read record","type":"object","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":{"description":"Type-safe identifier for text records","type":"integer","format":"int32"},"isCurrent":{"description":"Whether this is the owner\'s current text of its textType; setting it clears the flag on the owner\'s other texts of that type.","type":["boolean","null"]},"isPrimary":{"description":"Whether this is the owner\'s primary text of its textType; setting it clears the flag on the owner\'s other texts of that type.","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."},"text":{"type":"string"},"textName":{"type":["string","null"]},"textType":{"description":"Value object for text type classification","type":"string"},"updatedAt":{"type":["string","null"],"format":"date-time"}},"required":["id","owner","text","textType"],"x-aventure-noun":{"one":"text","other":"texts"}},"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"}}},"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":{"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.","type":"object","properties":{"createdAt":{"description":"Row creation timestamp.","type":"string","format":"date-time"},"id":{"description":"Unique-id row id.","type":"integer","format":"int32"},"idType":{"$ref":"#/components/schemas/UniqueIdType","description":"Identifier type."},"identifier":{"description":"Identifier value as issued by the registry (normalized per type).","type":"string"},"owner":{"$ref":"#/components/schemas/EntityPersonOwner","description":"Owning entity or person id; exactly one nested id is present."},"source":{"description":"Attribution source label for the mapping, when recorded.","type":["string","null"]},"updatedAt":{"description":"Row update timestamp.","type":"string","format":"date-time"}},"required":["createdAt","id","idType","identifier","owner","updatedAt"],"x-aventure-noun":{"one":"unique ID","other":"unique IDs"}},"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":{"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 write values come from GET /v1/url-types. Readers accept new platform roles as deployments evolve. To record a rebrand or domain migration, retain the prior URL with the same `urlType` (typically `website`) and set `isCurrent=false, isPrimary=false`; never encode lifecycle in the platform role.","type":"object","properties":{"crawlCdnProvider":{"description":"CDN provider from the latest URL probe.","oneOf":[{"$ref":"#/components/schemas/EntityUrlCrawlCdnProvider"},{"type":"null"}]},"crawlRenderMode":{"description":"Render mode from the latest URL probe.","oneOf":[{"$ref":"#/components/schemas/EntityUrlCrawlRenderMode"},{"type":"null"}]},"createdAt":{"type":["string","null"],"format":"date-time"},"id":{"type":["integer","null"],"format":"int32"},"isCurrent":{"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.","type":["boolean","null"]},"isPrimary":{"description":"`true` = canonical/primary URL of this `urlType` for this owner. Only one row per (owner, urlType) may be `isCurrent=true` AND `isPrimary=true`.","type":["boolean","null"]},"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":{"description":"Latest URL status observation; a later probe may replace the submitted status.","type":["string","null"]},"statusChecked":{"description":"Time of the latest URL status observation.","type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"url":{"description":"Canonical absolute HTTP URL value - validates scheme + host at construction","type":"string","format":"uri"},"urlType":{"$ref":"#/components/schemas/EntityUrlType"}},"required":["url","urlType"],"x-aventure-noun":{"one":"URL","other":"URLs"}},"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"}}},"LookupJobMutation":{"description":"The article whose companies and people a lookup identifies. Send sourceUrl, sourceNewsId, or both; POST /v1/lookup-mentions also reads a recorded sourceDocumentId alone; lookup-only bulk jobs and POST /v1/lookup-mentions also accept mention instead. A job filed by Prefer: respond-async on GET /v1/lookup or POST /v1/entities/lookup carries that request\'s subject instead.","type":"object","properties":{"mention":{"description":"Companies and people the caller already read, identified without sending the page or screenshot. Send them alone, without an article or file. On lookup jobs, maxNames is required and no records are created and no research is requested.","type":"array","items":{"$ref":"#/components/schemas/LookupMention"}},"omitRecords":{"description":"POST /v1/lookup-mentions only: true answers each name with only its name, mentionType, failureReason, and identification status, stage, match, officialUrl, and detail: no entity or person rows and empty candidate and duplicate lists. Defaults to false, the full answer.","type":"boolean"},"sourceDocumentId":{"description":"Id of a stored source document whose text is the article; send it alone. Only POST /v1/lookup-mentions reads it, and only for accounts with editing rights.","type":["string","null"],"format":"uuid"},"sourceNewsId":{"description":"aVenture news id of the article; an id that names no stored article is an error.","type":["integer","null"],"format":"int32"},"sourceUrl":{"description":"URL of the article; read from aVenture news when stored there, otherwise fetched.","type":["string","null"]},"subject":{"description":"Read-only: the subject of a GET or POST /v1/lookup or POST /v1/entities/lookup request sent with Prefer: respond-async, or rolled over from a signed-in live lookup, which this job identifies exactly as that route would. Requests to create a job or read mentions must omit it.","readOnly":true,"oneOf":[{"$ref":"#/components/schemas/IdentificationSubject"},{"type":"null"}]}}},"LookupJob":{"description":"An async lookup job\'s state and, once COMPLETED, identified companies and people from its article or supplied names, or the identification of its subject.","type":"object","properties":{"createdAt":{"description":"When the job was requested.","type":"string","format":"date-time"},"failureReason":{"description":"Why the job failed; absent unless state is FAILED.","type":["string","null"]},"identification":{"description":"Subject jobs only: once COMPLETED, the identification GET /v1/lookup or POST /v1/entities/lookup returns for source.subject; absent otherwise.","oneOf":[{"$ref":"#/components/schemas/Identification"},{"type":"null"}]},"jobId":{"description":"Lookup job id.","type":"string","format":"uuid"},"limitReached":{"description":"True when a bulk lookup returned its name bound; more names may remain. False does not prove that extraction found every name on a page.","type":"boolean"},"maxNames":{"description":"Bulk lookup name bound; absent for legacy article jobs.","type":["integer","null"],"format":"int32"},"mention":{"description":"Each identified company and person; bulk results are available while running.","type":"array","items":{"$ref":"#/components/schemas/LookupJobMention"}},"namesFound":{"description":"Distinct names found for a bulk lookup; absent on standard jobs.","type":["integer","null"],"format":"int32"},"namesProcessed":{"description":"Names processed so far, including per-name failures.","type":"integer","format":"int32"},"source":{"$ref":"#/components/schemas/LookupJobMutation","description":"The article the job reads or names supplied for a bulk lookup."},"state":{"$ref":"#/components/schemas/JobState","description":"Current job state."},"updatedAt":{"description":"When the job last changed state.","type":"string","format":"date-time"}},"required":["createdAt","jobId","limitReached","mention","namesProcessed","source","state","updatedAt"],"x-aventure-noun":{"one":"lookup job","other":"lookup jobs"}},"MentionLookup":{"description":"Every company, organization, investor, and person a page or screenshot names, each identified against stored records.","type":"object","properties":{"mention":{"description":"Each distinct name, in the order the source shows it.","type":"array","items":{"$ref":"#/components/schemas/LookupJobMention"}},"truncated":{"description":"True when the page names more than this answer holds: more names than one live lookup reads, or a body longer than the read limit. A lookup job with maxNames reads every name.","type":"boolean"}},"required":["mention"],"x-aventure-noun":{"one":"mention lookup","other":"mention lookups"}},"SystemGlobalMetrics":{"description":"Global platform metrics snapshot","type":"object","properties":{"cities":{"type":"integer","format":"int64"},"companies":{"type":"integer","format":"int64"},"countries":{"type":"integer","format":"int64"},"dataPoints":{"type":"integer","format":"int64"},"fundingLast30Days":{"description":"Total positive funding announced by visible companies in the trailing 30-day window.","type":"number"},"fundraiseRoundsLast30Days":{"description":"Count of positive funding rounds announced by visible companies in the trailing 30-day window.","type":"integer","format":"int64"},"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"],"x-aventure-noun":{"one":"metrics snapshot","other":"metrics snapshots"}},"NewsFeedback":{"description":"Feedback submission for a news article","type":"object","properties":{"comment":{"description":"Free-form feedback text","type":["string","null"]},"newsId":{"description":"News article ID","type":["integer","null"],"format":"int32"},"reaction":{"description":"Short reaction (like, dislike, etc.)","type":["string","null"]},"slug":{"description":"News article slug","type":["string","null"]}}},"NewsFeedbackAcknowledgement":{"description":"Feedback acknowledgment for news articles - non-mutating response","type":"object","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"]},"NewsDetail":{"description":"Canonical news detail owner","type":"object","properties":{"content":{"type":["string","null"]},"core":{"$ref":"#/components/schemas/News"},"entityMentionResolved":{"description":"Resolved entity mentions — read-only display projections. News mutations attach entities only via flat entityJoinId values, never these nested objects.","type":"array","items":{"$ref":"#/components/schemas/NewsResolvedEntityLink"}},"externalId":{"type":["string","null"]},"linkedContent":{"type":["string","null"]},"linkerCompleted":{"description":"Whether the entity linker completed, including an empty result.","type":"boolean"},"personMentionResolved":{"description":"Resolved person mentions — read-only display projections. News mutations attach people only via flat personId/personSlug values, never these nested objects.","type":"array","items":{"$ref":"#/components/schemas/NewsResolvedPersonLink"}}},"required":["core","entityMentionResolved","personMentionResolved"],"x-aventure-noun":{"one":"news article","other":"news articles"}},"NewsSubscriptionKey":{"description":"Identifies one subscription to remove by its event name, arguments, and url.","type":"object","properties":{"arguments":{"$ref":"#/components/schemas/NewsSubscriptionArguments"},"delivery":{"$ref":"#/components/schemas/NewsSubscriptionEndpoint"},"name":{"$ref":"#/components/schemas/NewsSubscriptionEvent"}},"required":["arguments","delivery","name"]},"NewsSubscriptionDetail":{"description":"One of the caller\'s news subscriptions and its delivery state.","type":"object","properties":{"consecutiveFailureCount":{"description":"Failed deliveries since the last acknowledged one or refresh.","type":"integer","format":"int32"},"createdAt":{"type":"string","format":"date-time"},"cursor":{"description":"Opaque watermark the next delivery resumes after.","type":"string"},"id":{"description":"Stable subscription id; sent as X-MCP-Subscription-Id.","type":"string"},"lastError":{"description":"Short cause of the latest failed delivery; null after a success.","type":["string","null"]},"nextAttemptAt":{"description":"Earliest time the next delivery attempt runs.","type":"string","format":"date-time"},"refreshBefore":{"description":"The subscription expires unless refreshed before this instant.","type":"string","format":"date-time"},"status":{"$ref":"#/components/schemas/NewsSubscriptionDeliveryStatus"},"subscription":{"$ref":"#/components/schemas/NewsSubscriptionKey","description":"Event, arguments, and url; the unsubscribe request body."},"updatedAt":{"description":"Latest subscribe, refresh, acknowledged, or failed delivery.","type":"string","format":"date-time"},"verifiedAt":{"description":"When the endpoint last answered the verification challenge.","type":"string","format":"date-time"}},"required":["consecutiveFailureCount","createdAt","cursor","id","nextAttemptAt","refreshBefore","status","subscription","updatedAt","verifiedAt"],"x-aventure-noun":{"one":"news subscription","other":"news subscriptions"}},"NewsSubscription":{"description":"Subscribe or refresh one webhook subscription to news newly linked to an entity. The same caller, delivery url, event name, and arguments always address the same subscription, so repeating the call refreshes it.","type":"object","properties":{"arguments":{"$ref":"#/components/schemas/NewsSubscriptionArguments"},"cursor":{"description":"Opaque watermark from an earlier grant or event to resume after; null starts a new subscription from now and keeps an existing subscription\'s position.","type":["string","null"]},"delivery":{"$ref":"#/components/schemas/NewsSubscriptionDelivery"},"name":{"$ref":"#/components/schemas/NewsSubscriptionEvent"},"ttlMs":{"description":"Requested subscription lifetime in milliseconds; the server caps it.","type":["integer","null"],"format":"int64"}},"required":["arguments","delivery","name"]},"NewsSubscriptionGrant":{"description":"Granted news subscription.","type":"object","properties":{"cursor":{"description":"Opaque watermark the subscription delivers after.","type":"string"},"id":{"description":"Stable subscription id; sent as X-MCP-Subscription-Id.","type":"string"},"refreshBefore":{"description":"The subscription expires unless refreshed before this instant.","type":"string","format":"date-time"},"truncated":{"description":"Whether events between the requested cursor and now were lost.","type":"boolean"}},"required":["cursor","id","refreshBefore","truncated"]},"NewsSubscriptionTestEvent":{"description":"The receiver\'s answer to one signed sample entity.news.published event.","type":"object","properties":{"acknowledged":{"description":"Whether the receiver answered 2xx.","type":"boolean"},"eventId":{"description":"The sample\'s event id, equal to its webhook-id header.","type":"string"},"status":{"description":"HTTP status the receiver answered.","type":"integer","format":"int32"}},"required":["acknowledged","eventId","status"]},"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"}}},"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"}}},"PersonLookupBatch":{"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.","type":"object","additionalProperties":false,"properties":{"hasImageFirst":{"description":"Sort results by image presence","type":"boolean","default":false},"includeAddress":{"description":"Include address values","type":"boolean","default":true},"includeAssociation":{"description":"Include association values","type":"boolean","default":true},"includeUrl":{"description":"Include URL links","type":"boolean","default":true},"maxAssociations":{"description":"Max association values per person","type":"integer","format":"int32","default":40},"permitMonogram":{"description":"Permit monogram fallbacks","type":"boolean","default":true},"personId":{"description":"Person UUID values","type":"array","items":{"type":"string","format":"uuid"},"minItems":0,"maxItems":200},"slug":{"description":"Person slug values","type":"array","items":{"type":"string"},"maxItems":200},"url":{"description":"Person URL values","type":"array","items":{"type":"string"},"minItems":0,"maxItems":200}}},"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"}}},"PersonDetailInclude":{"description":"Profile panel to embed in a person detail read: graph, investorActivity, similar, blogPost, or investment.","type":"string","enum":["graph","investorActivity","similar","blogPost","investment"]},"PersonDetail":{"description":"Composed person wrapper: core identity + enrichment + associations + investments. Access core fields via .core (for example .core.slug or .core.nameFull).","type":"object","properties":{"articleCount":{"type":["integer","null"],"format":"int32"},"association":{"description":"Entity associations for this person","type":"array","items":{"$ref":"#/components/schemas/EntityPersonAssociation"}},"blogPost":{"description":"Newest active blog posts first; present only when include names blogPost","type":["array","null"],"items":{"$ref":"#/components/schemas/BlogPost"}},"core":{"$ref":"#/components/schemas/Person"},"enrichment":{"$ref":"#/components/schemas/PersonEnrichment"},"graph":{"description":"Precomputed person graph; present only when include names graph","oneOf":[{"$ref":"#/components/schemas/PersonGraph"},{"type":"null"}]},"investment":{"description":"Investments associated with this person. When include names investment, these are newest first, the same rows as GET /v1/people/{personId}/investments?sort=date,desc&size=200 page 0: fewer than 200 rows is the whole list, otherwise continue at page=1 with the same sort and size.","type":"array","items":{"$ref":"#/components/schemas/PersonInvestment"}},"investorActivity":{"description":"Investor activity rollup; present only when include names investorActivity","oneOf":[{"$ref":"#/components/schemas/EntityFundraiseInvestorActivity"},{"type":"null"}]},"nameAlias":{"description":"Display and search aliases for this person","type":"array","items":{"$ref":"#/components/schemas/EntityNameAliasPersonAliasType"}},"similar":{"description":"Most similar people, highest score first; present only when include names similar","type":["array","null"],"items":{"$ref":"#/components/schemas/PersonSimilarityResult"}}},"required":["association","core","enrichment","investment","nameAlias"],"x-aventure-noun":{"one":"person","other":"people"}},"PersonFilter":{"description":"Canonical person criteria contract for GET/POST/batch endpoints","type":"object","properties":{"arrayFilter":{"$ref":"#/components/schemas/PersonListArrayFilter","description":"Array and range filters"},"entityFilter":{"$ref":"#/components/schemas/EntityFilter","description":"Constraints on the associated entity, as on POST /v1/search/natural/entities: a person matches when an association (current unless isCurrent=false) points at an entity matching every field and visible in entity listings, such as yearFoundedRange, hasFundraising, or fundraiseActivity.totalRaisedRange. Omit for no associated-entity constraint."},"entityId":{"description":"Associated entity UUID.","type":["string","null"],"format":"uuid"},"entitySlug":{"description":"Associated entity slug.","type":["string","null"]},"firstName":{"description":"Person first name.","type":["string","null"]},"includeAddress":{"description":"Include addresses on each person","type":["boolean","null"]},"includeUrl":{"description":"Include URL links on each person","type":["boolean","null"]},"investorActivity":{"$ref":"#/components/schemas/InvestorActivityFilter","description":"Aggregate investor activity filters."},"isCurrent":{"description":"Filter current associations.","type":["boolean","null"]},"lastName":{"description":"Person last name.","type":["string","null"]},"letter":{"description":"First-name initial.","type":["string","null"]},"personId":{"description":"Restrict results to specific person IDs. Omit or use [] for no ID restriction.","type":"array","items":{"description":"Canonical person UUID","type":"string","format":"uuid"},"minItems":0,"maxItems":200},"personName":{"description":"Exact normalized match against a person\'s full name or slug.","type":"array","items":{"type":"string"}},"role":{"description":"Associated entity role or title.","type":["string","null"]},"search":{"description":"Search keyword or phrase. Single characters valid; stop words rejected.","type":["string","null"]},"semanticQuery":{"description":"Semantic person search phrase. A semantic page ranks a bounded nearest-neighbor window: totalElements counts the ranked candidates reachable through continuation, not every matching person.","type":["string","null"]},"status":{"description":"Person workflow status.","type":["string","null"]}}},"PersonEnrichmentPrompt":{"description":"Optional steering prompt for one person enrichment run","type":"object","properties":{"userPrompt":{"description":"Plain-language instruction for this run, such as an observed update and its source URL (newsUrlOriginal or web URL) or which facts to check first","type":["string","null"]}}},"PersonGraph":{"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 ","type":"object","properties":{"careerContext":{"description":"One entry per entity the person holds or held an association with, current first","type":"array","items":{"$ref":"#/components/schemas/PersonGraphCareerContext"}},"coInvestor":{"description":"People who participated in the same fundraise transactions or invested in the same companies, ranked by overlap count and recency","type":"array","items":{"$ref":"#/components/schemas/PersonGraphCoInvestor"}},"computedAt":{"description":"Instant the document was materialized; null only when no document exists yet and an asynchronous recompute has been requested","type":["string","null"],"format":"date-time"}},"required":["careerContext","coInvestor"],"x-aventure-noun":{"one":"professional graph","other":"professional graphs"}},"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"}}},"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"}}},"HarnessRunCreate":{"description":"Request one research run","type":"object","properties":{"finding":{"description":"Facts you already read verbatim on an external source page for an entity, each citing the page and exact text that support it. Omit taskPresetKey to default to apply-cited-findings, or send a preset from GET /v1/research-runs/presets; the run checks each quote against its page and writes only the facts it confirms. When the detail comes from an indexed news article or a page not read verbatim, send userPrompt instead.","type":["array","null"],"items":{"$ref":"#/components/schemas/ResearchFinding"}},"mode":{"$ref":"#/components/schemas/EnrichmentMode","description":"How broadly the run researches the subject; omit it for COMPREHENSIVE"},"model":{"description":"Model id the run uses; omit it to use the default model","type":["string","null"]},"name":{"description":"Name of the subject at url, such as Clarity Health; the run verifies it and uses it to pick the right subject when the site names several","type":["string","null"]},"taskPresetKey":{"description":"Research presets that focus the run, listed by GET /v1/research-runs/presets; omit them for a full run","type":["array","null"],"items":{"type":"string"}},"url":{"description":"Official website or profile URL of the company, Product, Service, or person to research; a URL no current record owns researches a new one","type":"string"},"userPrompt":{"description":"Optional steering prompt, such as an observed update and its source URL (newsUrlOriginal or web URL) or which facts to check first","type":["string","null"]}},"required":["url"]},"AgentTaskPresetCatalog":{"description":"Research presets available to the caller.","type":"object","properties":{"taskPreset":{"description":"Available task presets. Field name is singular by repository convention even though the value is a collection.","type":"array","items":{"$ref":"#/components/schemas/AgentTaskPreset"}}},"required":["taskPreset"]},"HarnessRunDetail":{"description":"Research run with the profile it resolved to","type":"object","properties":{"entity":{"description":"Current public profile the run resolved to","oneOf":[{"$ref":"#/components/schemas/Entity"},{"type":"null"}]},"followUp":{"$ref":"#/components/schemas/HarnessRunFollowUp","description":"Follow-up admission and direct child run ids for this terminal generation"},"latestStatus":{"description":"Latest research progress; null when none is available","oneOf":[{"$ref":"#/components/schemas/HarnessRunProgress"},{"type":"null"}]},"provider":{"description":"Parent organization\'s core record when the resolved entity is a Product/Service; null for every other entity type","oneOf":[{"$ref":"#/components/schemas/Entity"},{"type":"null"}]},"publicUrl":{"description":"Exact renderable public profile URL for the resolved entity","type":["string","null"],"format":"uri"},"run":{"$ref":"#/components/schemas/HarnessRun","description":"The research run"}},"required":["run"],"x-aventure-noun":{"one":"enrichment run","other":"enrichment runs"}},"ResolvedHandle":{"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/{entityId} or GET /v1/people/{personId}.","type":"object","properties":{"matchedBy":{"description":"Which identifier kind matched the token.","type":"string","enum":["PUBLIC_ID","UUID","EXTERNAL_ID","SLUG"]},"owner":{"$ref":"#/components/schemas/EntityPersonOwner","description":"Canonical entity/person owner matched by the token."},"publicId":{"description":"Canonical stable public handle of the resolved subject; null on rows still awaiting handle backfill.","type":["string","null"]},"slug":{"description":"Canonical slug of the resolved subject.","type":["string","null"]}},"required":["matchedBy","owner"],"x-aventure-noun":{"one":"resolved handle","other":"resolved handles"}},"SearchLayer":{"description":"Optional answer layer for a natural-language entity search. `passage` adds the text passages, from public research snippets and linked news, that best answer the question about the subject entities, their peers, or the top results; `synthesis` adds a written answer grounded only in those records and passages, citing each, and implies `passage`. A competitor, market, or provider question (\\"who competes with X\\", \\"top X companies\\", \\"who provides X\\") is always ranked by the judged probability that each entity answers it, so `judgment` adds nothing beyond that; `web` adds web search evidence, and the companies those results name, before judging. Other questions ignore `judgment` and `web`.","type":"string","enum":["passage","synthesis","judgment","web"]},"FederatedNaturalSearch":{"description":"Plain-English search across companies, people, and news, plus optional per-scope entity constraints and page sizes.","type":"object","properties":{"answerModel":{"description":"Optional supported model for the written answer, which also supplies the page heading, title, and description. Omit it to use the default; an unsupported model answers 422.","type":["string","null"]},"cacheMode":{"$ref":"#/components/schemas/SearchCacheMode","description":"Cache policy. use reuses earlier search work; bypass and refresh compute fresh results and are honored only for accounts with private-data access.","default":"use"},"entityFilter":{"$ref":"#/components/schemas/EntityFilter","description":"Explicit entity constraints for the entity scope only, as on POST /v1/search/natural/entities: caller-supplied fields override planner values. The person and news scopes ignore it."},"mode":{"$ref":"#/components/schemas/SearchMode","description":"Search strategy to run. Defaults to `auto`: the fast name layer runs first (a single-token query as keyword search, a multiword query as an exact normalized name) and the language-model planner runs only on a miss, so name lookups never pay for planning. Any other value forces exactly that strategy: `exact` and `keyword` skip planner model resolution and its rate limit. Entity and person natural-search take every value but `hybrid`; news and federated search accept only `auto` and `keyword`; content search accepts `auto`, `keyword`, `semantic`, and `hybrid` (`semantic` and `hybrid` only for one entity\'s or person\'s content).","default":"auto"},"model":{"description":"Optional supported model for planning the search. Omit it to use the default; an unsupported model answers 422.","type":["string","null"]},"modelCatalogRevision":{"description":"Model catalog revision this search uses for its model defaults and inference policy; null reads the current revision. Callers without private-data access always read the current revision. An unknown revision returns 404.","type":["integer","null"],"format":"int32"},"newsSize":{"description":"News scope page size; omitted uses the size query parameter, under the same page-size cap.","type":["integer","null"],"format":"int32"},"personSize":{"description":"Person scope page size; omitted uses the size query parameter, under the same page-size cap.","type":["integer","null"],"format":"int32"},"query":{"description":"Plain-English search request.","type":"string"},"reasoningEffort":{"description":"Optional reasoning effort for every model call this search makes: the query planner and the synthesis answer. Each call sends the nearest level its model supports, the lower one on a tie. Accounts without private-data access are capped at `medium`; higher values are lowered.","oneOf":[{"$ref":"#/components/schemas/ReasoningEffort"},{"type":"null"}]},"searchCatalogRevision":{"description":"Search catalog revision this search uses for its global search policy and vocabulary; null reads the current revision. Callers without private-data access always read the current revision. An unknown revision returns 404.","type":["integer","null"],"format":"int32"},"tenantPolicyRevision":{"description":"Runtime policy revision this search uses for the serving deployment\'s execution budgets; null reads that deployment\'s current revision. Callers without private-data access always read the current revision. An unknown revision returns 404.","type":["integer","null"],"format":"int32"}},"required":["query"]},"FederatedSearch":{"description":"Federated entity, person, and news search result composed from each domain\'s canonical search result owner, with the strategy used for every scope.","type":"object","properties":{"entity":{"$ref":"#/components/schemas/NaturalSearchResult","description":"Canonical entity natural-search result."},"entityDetail":{"description":"Public detail for Product/Service rows on the entity result page, in search rank order. Other entity types are not hydrated.","type":"array","items":{"$ref":"#/components/schemas/EntityDetail"}},"news":{"$ref":"#/components/schemas/PageResultNews","description":"Canonical news page returned by the keyword list engine."},"newsEntityMention":{"description":"Public entities each news row on the page links to, in news page order; a row with no public entity link has no entry.","type":"array","items":{"$ref":"#/components/schemas/NewsEntityMention"}},"person":{"$ref":"#/components/schemas/PersonNaturalSearchResult","description":"Canonical person natural-search result."},"personDetail":{"description":"Public detail for people on the person result page, in search rank order, with at most two public entity associations per person; person address and URL enrichment is omitted.","type":"array","items":{"$ref":"#/components/schemas/PersonDetail"}},"provenance":{"$ref":"#/components/schemas/FederatedSearchProvenance","description":"Requested and executed strategy for each search scope."},"qualifier":{"description":"A prompt with rewritten queries offered beside a broad query\'s results, from the search catalog revision the search read; null when no qualifier rule matches.","oneOf":[{"$ref":"#/components/schemas/SearchQualifier"},{"type":"null"}]}},"required":["entity","entityDetail","news","newsEntityMention","person","personDetail","provenance"],"x-aventure-noun":{"one":"query","other":"queries"}},"LinkSearch":{"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.","type":"object","properties":{"query":{"description":"Search query synthesized from the page content.","type":"string"},"related":{"$ref":"#/components/schemas/FederatedSearch","description":"Federated entity, person, and news results for the synthesized query."},"url":{"description":"The fetched page URL after validation.","type":"string"}},"required":["query","related","url"],"x-aventure-noun":{"one":"link query","other":"link queries"}},"EntityNaturalSearch":{"description":"Plain-English entity search plus explicit hard constraints. The planner may fill only filter fields the caller leaves unset.","type":"object","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":{"description":"Natural-language entity search result: planner interpretation plus the canonical entity list page produced by EntityListService.","type":"object","properties":{"answer":{"description":"Written answer grounded in the subject, peer, and result records and the passages; null unless the request asks for the `synthesis` layer.","oneOf":[{"$ref":"#/components/schemas/SearchAnswer"},{"type":"null"}]},"filing":{"description":"Discovered companies this caller filed and their research runs.","type":["array","null"],"items":{"$ref":"#/components/schemas/SearchDiscoveryFiling"}},"interpretation":{"$ref":"#/components/schemas/SearchInterpretation","description":"Structured interpretation used to run the entity list query."},"investment":{"description":"Recorded investment participation supporting investor discovery. Each row keeps its entity or personal investor, portfolio company, transaction attribution, and query-matched offering evidence. Empty for other question intents.","type":"array","items":{"$ref":"#/components/schemas/SearchInvestment"}},"judgment":{"description":"Judged rows of the `result` page for a competitor, market, or provider question: the same entities in the same order, each with its judged probability. Empty for other questions.","type":"array","items":{"$ref":"#/components/schemas/SearchJudgment"}},"passage":{"description":"Passages that best answer the question, ranked by score; empty unless the request asks for the `passage` layer.","type":"array","items":{"$ref":"#/components/schemas/SearchPassage"}},"peer":{"description":"Curated competitors of the single subject entity for `peer` questions; semantic look-alikes are the result page. Empty otherwise.","type":"array","items":{"$ref":"#/components/schemas/EntitySimilarityResult"}},"pendingWebQuery":{"description":"Web searches for this question not yet stored; their evidence joins a later request. Empty without the `web` layer.","type":"array","items":{"type":"string"}},"result":{"$ref":"#/components/schemas/PageResultEntityList","description":"Entity list page returned by the canonical entity list engine."},"searchRequestId":{"description":"Id of this search\'s stored record. Null when the search was not recorded.","type":["string","null"],"format":"uuid"},"subject":{"description":"Entities the question is about, one per resolved subject name, in query order; empty when the question names none or none resolves.","type":"array","items":{"$ref":"#/components/schemas/EntityList"}}},"required":["interpretation","investment","judgment","passage","peer","pendingWebQuery","result","subject"],"x-aventure-noun":{"one":"company query","other":"company queries"}},"PersonNaturalSearch":{"description":"Plain-English people search plus explicit hard constraints. The planner may fill only filter fields the caller leaves unset.","type":"object","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":{"description":"Natural-language people search result: planner interpretation plus the canonical person page produced by the person list engine.","type":"object","properties":{"interpretation":{"$ref":"#/components/schemas/PersonSearchInterpretation","description":"Structured interpretation used to run the people query."},"investment":{"description":"Personal investment participation supporting the returned people. Firm portfolio activity is never attributed to employees. Empty for other question intents.","type":"array","items":{"$ref":"#/components/schemas/SearchInvestment"}},"result":{"$ref":"#/components/schemas/PageResultPerson","description":"Person page returned by the canonical person list engine."},"searchRequestId":{"description":"Id of this search\'s stored record. Null when the search was not recorded.","type":["string","null"],"format":"uuid"}},"required":["interpretation","investment","result"],"x-aventure-noun":{"one":"people query","other":"people queries"}},"CursorSliceSharedSearchList":{"type":"object","properties":{"content":{"type":"array","items":{"$ref":"#/components/schemas/SharedSearchList"}},"nextCursor":{"type":["string","null"]}},"required":["content"]},"SharedSearchMutation":{"description":"Publish a query under a stable client UUID; retries return the same saved answer.","type":"object","properties":{"id":{"description":"Stable sharing UUID generated once and reused across retries.","type":["string","null"],"format":"uuid"},"query":{"description":"Plain-English query to run against public records and publish.","type":["string","null"]},"searchRequestId":{"description":"entity.searchRequestId of the federated search response the sharing page showed. When that search was signed in, asked this query (ignoring case), and its shareable answer is still kept, the share publishes exactly that answer without searching again; otherwise it runs the default public search.","type":["string","null"],"format":"uuid"}}},"SharedSearch":{"description":"A saved public search query and answer.","type":"object","properties":{"canonicalSlug":{"description":"Slug of the canonical share of the same query, compared case-insensitively: the share named by the query\'s own slug, else the earliest share. Pages name it as their canonical URL; equals publication.slug on that share.","type":"string"},"publication":{"$ref":"#/components/schemas/SharedSearchList"},"result":{"$ref":"#/components/schemas/FederatedSearch"}},"required":["canonicalSlug","publication","result"],"x-aventure-noun":{"one":"shared search","other":"shared searches"}},"SystemStatus":{"description":"System status reported by the API","type":"object","properties":{"operationFingerprint":{"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.","type":"string"}},"required":["operationFingerprint"],"x-aventure-noun":{"one":"system status","other":"system statuses"}},"UniqueIdTypeAlias":{"description":"Canonical uniqueId type value plus its label, accepted aliases, owner scope, and format pattern.","type":"object","properties":{"alias":{"description":"Alias tokens accepted by the write boundary.","type":"array","items":{"type":"string"}},"canonical":{"description":"Canonical uniqueId type value persisted in id_type.","type":"string"},"label":{"description":"Human-readable label.","type":"string"},"ownerScope":{"description":"Owner kinds this identifier type may attach to.","type":"array","items":{"$ref":"#/components/schemas/UniqueIdOwnerScope"}},"pattern":{"description":"Regex the identifier value must match, when constrained.","type":["string","null"]}},"required":["alias","canonical","label","ownerScope"],"x-aventure-noun":{"one":"unique ID type","other":"unique ID types"}},"UrlTypeAlias":{"description":"Canonical urlType value plus accepted alias and platform host tokens.","type":"object","properties":{"alias":{"description":"Alias tokens accepted by UrlTypeCatalog.fromRaw.","type":"array","items":{"type":"string"}},"canonical":{"description":"Canonical urlType value.","type":"string"},"hostDomain":{"description":"Host domains used by URL inference for this urlType.","type":"array","items":{"type":"string"}}},"required":["alias","canonical","hostDomain"],"x-aventure-noun":{"one":"URL type","other":"URL types"}},"Search":{"description":"Live web search request with cache controls","type":"object","properties":{"allowSuspectedShellStrip":{"description":"Set true only when an unmarked amount in the search text is intentional.","type":["boolean","null"]},"bypassCache":{"description":"Skip cache lookup and refresh from the search provider","type":"boolean","default":false},"cacheKey":{"description":"Stable lookup text for cache keying when generated search text varies between runs","type":["string","null"]},"deep":{"description":"Deprecated alias for `provider: EXA_DEEP`; `true` with any other `provider` is refused with 400.","type":"boolean","default":false},"deferredAiOverview":{"description":"Wait in-request for Google\'s AI Overview when Google defers it to a follow-up request, as it does for most company and person lookups: one extra SerpAPI search per overview not already stored. An explicit `true` also reruns a stored search older than SerpAPI\'s one-hour cache to get a fresh token (its one-minute overview token expired and the cache would return it unchanged). Without it, no deferred overview is fetched; one an earlier fetch stored still comes back at no extra cost. A fetch that returns no overview is not retried for six hours. An overview Google returns inline always comes back in `aiOverview` at no extra cost. Exa results never carry one.","type":"boolean","default":false},"language":{"description":"Search language code","type":["string","null"]},"provider":{"description":"Provider to search; omitted keeps the default, SerpAPI. EXA runs Exa\'s instant search with highlights and never falls back to SerpAPI: an Exa failure answers 503. EXA_DEEP runs Exa\'s slower, broader deep search (higher recall for market and provider questions, about 3-6 s) and falls back to SerpAPI on an Exa failure. Both Exa providers answer synchronously (`Prefer: respond-async` does not apply), are stored apart from SerpAPI results, and are charged like any search.","oneOf":[{"$ref":"#/components/schemas/WebSearchProvider"},{"type":"null"}]},"region":{"description":"Search region code","type":["string","null"]},"resultLimit":{"description":"Maximum number of normalized results to keep","type":["integer","null"],"format":"int32"},"retrievedFor":{"description":"Company or person this search is about; the stored result is filed under that record on a fetch or a cache hit.","oneOf":[{"$ref":"#/components/schemas/EntityPersonOwner"},{"type":"null"}]},"search":{"description":"Search text sent to the upstream web search provider","type":"string"},"source":{"description":"Optional label for the calling application, up to 64 characters, stored with the search for attribution and abuse review.","type":["string","null"]}},"required":["search"]},"WebSearch":{"description":"Live web search result with its backing source-document row and normalized items","type":"object","properties":{"aiOverview":{"description":"Google\'s AI Overview: returned whenever Google answers inline or its deferred overview is stored (fetched by this or an earlier search that set `deferredAiOverview`); null when Google produced none or no such fetch stored its deferred overview","oneOf":[{"$ref":"#/components/schemas/SearchAiOverview"},{"type":"null"}]},"answerBox":{"description":"Google\'s direct answer box; null when the page shows none","oneOf":[{"$ref":"#/components/schemas/SearchAnswerBox"},{"type":"null"}],"x-aventure-detail":true},"document":{"$ref":"#/components/schemas/SourceDocumentList","description":"Source-document ledger row backing this result"},"knowledgeGraph":{"description":"Google\'s knowledge panel; null when the page shows none","oneOf":[{"$ref":"#/components/schemas/SearchKnowledgeGraph"},{"type":"null"}],"x-aventure-detail":true},"relatedQuestion":{"description":"Google\'s \\"People also ask\\" questions; null when the page shows none","type":["array","null"],"items":{"$ref":"#/components/schemas/SearchRelatedQuestion"},"x-aventure-detail":true},"relatedSearch":{"description":"Google\'s related searches; null when the page shows none","type":["array","null"],"items":{"type":"string"},"x-aventure-detail":true},"result":{"description":"Normalized result items in provider rank order","type":"array","items":{"$ref":"#/components/schemas/SearchHit"}},"search":{"$ref":"#/components/schemas/Search","description":"Web search request represented by this result"},"sportsResult":{"description":"Google\'s game spotlight; null when the page shows none","oneOf":[{"$ref":"#/components/schemas/SearchSportsResult"},{"type":"null"}],"x-aventure-detail":true}},"required":["document","result","search"],"x-aventure-noun":{"one":"web query","other":"web queries"}},"NewsPublishedEvent":{"description":"Webhook POST body for one news article newly linked to the subscribed entity.","type":"object","properties":{"cursor":{"description":"Opaque watermark to resume after this event.","type":"string"},"data":{"$ref":"#/components/schemas/News"},"eventId":{"description":"Deterministic event id, equal to the webhook-id header.","type":"string"},"name":{"$ref":"#/components/schemas/NewsSubscriptionEvent"},"timestamp":{"description":"When the article was linked to the entity.","type":"string","format":"date-time"}},"required":["cursor","data","eventId","name","timestamp"]},"News":{"description":"Canonical news owner for list and core semantics","type":"object","properties":{"author":{"type":["string","null"]},"category":{"type":["string","null"]},"createdAt":{"type":["string","null"],"format":"date-time"},"excerpt":{"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","type":["string","null"]},"externalNewsArticle":{"type":["boolean","null"]},"id":{"description":"Type-safe identifier for news articles","type":"integer","format":"int32"},"newsImageThumbnail":{"type":["string","null"]},"newsUrlOriginal":{"description":"Canonical article URL after host and tracking-parameter normalization.","type":["string","null"]},"publication":{"type":["string","null"]},"publishedAt":{"type":["string","null"],"format":"date-time"},"slug":{"description":"Canonical lowercase URL slug for the resource","type":["string","null"]},"title":{"description":"Article headline; the headline field is title","type":"string"},"updatedAt":{"type":["string","null"],"format":"date-time"}},"required":["id","title"],"x-aventure-noun":{"one":"news article","other":"news articles"}},"NewsSubscriptionEvent":{"description":"Subscribable event name","type":"string","enum":["entity.news.published"],"x-aventure-parsed-enum":true},"SearchAiOverview":{"description":"Google\'s AI Overview for a web search: its generated answer and the pages it cites","type":"object","properties":{"reference":{"description":"Pages the answer cites","type":"array","items":{"$ref":"#/components/schemas/SearchAiOverviewReference"}},"text":{"description":"Generated answer as Markdown in Google\'s block order; `[n]` cites the reference whose `index` is n","type":"string"}},"required":["reference","text"]},"SearchAnswerBox":{"description":"Google\'s direct answer shown above the results","type":"object","properties":{"answer":{"description":"Direct answer text; Google\'s snippet when the box states no separate answer","type":"string"},"snippet":{"description":"Supporting snippet the box shows","type":["string","null"]},"title":{"description":"Title of the page the answer comes from","type":["string","null"]},"type":{"description":"Google\'s answer-box kind","type":["string","null"]},"url":{"description":"URL of the page the answer comes from","type":["string","null"]}},"required":["answer"]},"SourceDocumentList":{"description":"Metadata-only ledger row for source-document lists","type":"object","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":{"description":"Document id","type":"string","format":"uuid"},"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":{"description":"Canonical fetch identity: canonical URL, query hash, or dataset + external id","type":"string"},"upstreamContentEncoding":{"type":["string","null"]}},"required":["cacheHitCount","createdAt","documentType","id","provider","sourceKey"]},"SearchKnowledgeGraph":{"description":"Google\'s knowledge panel for the entity the query names","type":"object","properties":{"attribute":{"description":"Facts the panel states, such as founding date, CEO, and headquarters","type":["array","null"],"items":{"$ref":"#/components/schemas/SearchKnowledgeGraphAttribute"}},"description":{"description":"Entity description the panel shows","type":["string","null"]},"title":{"description":"Entity name the panel shows","type":["string","null"]},"type":{"description":"Entity kind Google states","type":["string","null"]},"website":{"description":"Official website the panel links","type":["string","null"]}}},"SearchRelatedQuestion":{"description":"One \\"People also ask\\" question Google shows for the query","type":"object","properties":{"question":{"description":"Question text","type":"string"},"snippet":{"description":"Answer snippet; null when Google answers the question with an AI Overview","type":["string","null"]},"title":{"description":"Title of the page the snippet comes from","type":["string","null"]},"url":{"description":"URL of the page the snippet comes from","type":["string","null"]}},"required":["question"]},"SearchHit":{"description":"One normalized web-search hit with its title, URL, snippet, and relevance score","type":"object","properties":{"relevanceScore":{"type":"number","format":"double"},"snippet":{"type":"string"},"title":{"type":"string"},"url":{"type":"string"}},"required":["relevanceScore","snippet","title","url"]},"SearchSportsResult":{"description":"Google\'s spotlight for one game the query names","type":"object","properties":{"league":{"description":"League or tournament","type":["string","null"]},"stage":{"description":"Stage of the competition","type":["string","null"]},"team":{"description":"Teams in the game","type":["array","null"],"items":{"$ref":"#/components/schemas/SearchSportsTeam"}},"venue":{"description":"Venue or stadium","type":["string","null"]}}},"SearchSportsTeam":{"description":"One team in a spotlighted game","type":"object","properties":{"name":{"description":"Team name","type":"string"},"seeding":{"description":"Tournament seeding when Google states one","type":["integer","null"],"format":"int32"}},"required":["name"]},"SearchKnowledgeGraphAttribute":{"description":"One fact Google\'s knowledge panel states","type":"object","properties":{"name":{"$ref":"#/components/schemas/SearchKnowledgeGraphFact","description":"Fact the panel labels"},"value":{"description":"Value as the panel states it","type":"string"}},"required":["name","value"]},"SearchKnowledgeGraphFact":{"description":"Knowledge panel fact name","type":"string","x-extensible-enum":["founded","ceo","headquarters"]},"SearchAiOverviewReference":{"description":"One page Google\'s AI Overview cites","type":"object","properties":{"index":{"description":"Citation number the answer text uses as `[index]`","type":"integer","format":"int32"},"snippet":{"type":["string","null"]},"source":{"description":"Publisher name Google shows for the page","type":["string","null"]},"title":{"type":"string"},"url":{"type":"string"}},"required":["index","title","url"]},"WebSearchProvider":{"description":"Upstream web search provider: SERPAPI is Google results through SerpAPI, EXA is Exa\'s instant search with highlights, and EXA_DEEP is Exa\'s slower, broader deep search.","type":"string","x-extensible-enum":["SERPAPI","EXA","EXA_DEEP"]},"EntityPersonOwner":{"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/{personId}.","type":"object","properties":{"entityId":{"description":"Owning entity id; set only when personId is absent.","type":["string","null"],"format":"uuid"},"personId":{"description":"Owning person id; set only when entityId is absent.","type":["string","null"],"format":"uuid"}}},"UniqueIdOwnerScope":{"description":"Owner kind a unique-id type can attach to: entity or person.","type":"string","enum":["entity","person"]},"SharedSearchList":{"description":"Public search publication metadata.","type":"object","properties":{"createdAt":{"type":"string","format":"date-time"},"id":{"description":"Stable shared-search UUID","type":"string","format":"uuid"},"query":{"type":"string"},"slug":{"description":"Canonical lowercase URL slug for the resource","type":"string"}},"required":["createdAt","id","query","slug"]},"PersonSearchInterpretation":{"description":"Structured interpretation of a natural-language people search: canonical filter, sort, confidence, and any unsupported constraint the planner could not translate exactly.","type":"object","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":{"description":"True when the semantic fallback replaced an unconstrained planner result with a semantic search over the original query.","type":"boolean"},"filter":{"$ref":"#/components/schemas/PersonFilter","description":"Canonical person filter generated from the natural-language query."},"interpretation":{"description":"Human-readable summary of how the query was interpreted.","type":"string"},"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":{"description":"Constraint the planner could not translate into the canonical PersonFilter contract; null when every material constraint was supported.","type":["string","null"]}},"required":["confidence","execution","fallbackUsed","filter","interpretation","sort"]},"SearchInvestment":{"description":"Canonical investor participation and matched portfolio offering evidence.","type":"object","properties":{"evidence":{"$ref":"#/components/schemas/FundraiseInvestmentEvidence"},"investor":{"$ref":"#/components/schemas/EntityPersonOwner"},"semanticMatch":{"oneOf":[{"$ref":"#/components/schemas/ContentEmbeddingMatch"},{"type":"null"}]}},"required":["evidence","investor"]},"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","readOnly":true}},"required":["content","number","size","totalElements","totalPages"]},"Person":{"description":"Canonical person core record","type":"object","properties":{"bioUpdatedAt":{"description":"When the person\'s short text (bio) row was last edited; absent when the person has no short-text row.","type":["string","null"],"format":"date-time"},"createdAt":{"description":"Record creation timestamp","type":["string","null"],"format":"date-time"},"gender":{"type":["string","null"]},"id":{"description":"Canonical person UUID","type":"string","format":"uuid"},"image":{"$ref":"#/components/schemas/PersonImage"},"lastModifiedAt":{"description":"Provenance-grounded last-modified watermark (schema.org dateModified): the latest effective time across all writes attributed to this person.","type":["string","null"],"format":"date-time"},"nameAlias":{"description":"Display and search aliases for this person","type":"array","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":{"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.","type":["string","null"]},"semanticMatch":{"description":"Semantic embedding match evidence populated only for semantic people reads.","oneOf":[{"$ref":"#/components/schemas/ContentEmbeddingMatch"},{"type":"null"}]},"slug":{"description":"Canonical lowercase URL slug for the resource","type":"string"},"suffix":{"type":["string","null"]},"text":{"$ref":"#/components/schemas/EntityTextBundle","description":"Grouped person text content"},"updatedAt":{"description":"Last modification timestamp","type":["string","null"],"format":"date-time"}},"required":["id","image","nameAlias","nameFull","slug","text"],"x-aventure-noun":{"one":"person","other":"people"}},"PersonImage":{"description":"Read projection: person image fields for detail/list responses","type":"object","properties":{"isMonogram":{"description":"Whether person image monogram","type":"boolean"},"picture":{"type":["string","null"]}},"required":["isMonogram"]},"EntityNameAliasPersonAliasType":{"description":"Alternate name used for search and display","type":"object","properties":{"displayable":{"description":"Show this alias in public name displays.","type":["boolean","null"]},"name":{"description":"Alternate name text","type":"string"},"type":{"description":"Alias type classification","oneOf":[{"$ref":"#/components/schemas/PersonAliasType"},{"type":"null"}]}},"required":["name"]},"ContentEmbeddingMatch":{"description":"Nearest-neighbor content embedding match evidence.","type":"object","properties":{"computedAt":{"description":"Timestamp when the embedding row was computed.","type":"string","format":"date-time"},"cosineDistance":{"description":"pgvector cosine distance where lower is closer.","type":"number","format":"double"},"cosineScore":{"description":"Cosine similarity score where higher is closer.","type":"number","format":"double"},"modelVersion":{"description":"Embedding model/profile version for this row.","type":"string"},"rank":{"description":"One-based semantic rank within the returned ANN candidate set.","type":"integer","format":"int32"},"sourceHash":{"description":"SHA-256 hash of the source content.","type":"string"},"sourceId":{"description":"Content embedding source identifier.","type":"string"},"sourceType":{"$ref":"#/components/schemas/ContentSourceType","description":"Stored content embedding source partition."}},"required":["computedAt","cosineDistance","cosineScore","modelVersion","rank","sourceHash","sourceId","sourceType"]},"EntityTextBundle":{"description":"Grouped entity/person text content","type":"object","properties":{"expanded":{"description":"Expanded summary text","type":["string","null"]},"generatedDescription":{"description":"Generated SEO meta description text","type":["string","null"]},"short":{"description":"Short summary text","type":["string","null"]}}},"ContentSourceType":{"description":"Discriminator for unified content embedding source partitions","type":"string","x-extensible-enum":["entity","person","newsArticle","blogPost","text","classificationTag","classificationCode","product","service","agentHelpDoc","researchSnippet","sourceDocument"],"x-aventure-parsed-enum":true},"PersonAliasType":{"description":"Alias types for person NameAlias","type":"string","enum":["nickname","maidenName","formerName","stageName"]},"FundraiseInvestmentEvidence":{"description":"Canonical transaction, participation attribution, and their owning source metadata.","type":"object","properties":{"fundManagerRelationshipSource":{"description":"Source metadata of a managed-fund relationship, when used.","oneOf":[{"$ref":"#/components/schemas/DatasourceSourceMetadata"},{"type":"null"}]},"fundraiseTransaction":{"$ref":"#/components/schemas/EntityFundraiseTransaction","description":"Recorded round with investor-specific and source attribution."},"fundraiseTransactionSource":{"description":"Source metadata of the fundraise transaction.","oneOf":[{"$ref":"#/components/schemas/DatasourceSourceMetadata"},{"type":"null"}]},"investorJoinSource":{"description":"Source metadata of the selected investment participation.","oneOf":[{"$ref":"#/components/schemas/DatasourceSourceMetadata"},{"type":"null"}]}},"required":["fundraiseTransaction"]},"DatasourceSourceMetadata":{"description":"Grouped source/provenance metadata for private v1 response fields","type":"object","properties":{"changedAt":{"type":["string","null"],"format":"date-time"},"dataSourceUpdatedAt":{"type":["string","null"],"format":"date-time"},"pendingApproval":{"type":["integer","null"],"format":"int32"},"sourceId":{"type":["string","null"]},"status":{"type":["string","null"]}}},"Confidence":{"description":"Three-level confidence band for a classifier, model, or probe verdict. The carrying property states what is assessed and what each band licenses.","type":"string","enum":["HIGH","MEDIUM","LOW"]},"SearchModeExecution":{"description":"Search strategy requested by the caller and executed by the canonical engine.","type":"object","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"]},"SearchOrderingPersonSortField":{"description":"Ordering applied to a search result page: an optional relevance rank that precedes the sortable-column terms.","type":"object","properties":{"order":{"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.","type":"array","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":{"description":"Single sort term: which enumerated sort field to use and whether direction is descending.","type":"object","properties":{"descending":{"description":"true for descending (DESC), false for ascending (ASC)","type":"boolean"},"field":{"description":"Sort field for this resource (entity list uses EntityFilter.Sortable / published sort keys).","type":"string","enum":["ID","FIRST_NAME","LAST_NAME","FULL_NAME","SLUG","CREATED_AT","UPDATED_AT","STATUS","GENDER","AMOUNT_INVESTED","TOTAL_INVESTMENTS"]},"sortKey":{"description":"Request sort key for this field: pass `sort=<sortKey>,<asc|desc>` to the matching directory list endpoint to reproduce this term. Absent when the field has no request key.","type":["string","null"],"readOnly":true}},"required":["descending","field"]},"SearchRelevance":{"description":"Relevance rank that ordered a search page before any sortable column.","type":"string","enum":["keyword","semantic"]},"SearchMode":{"description":"Search strategy for a natural-language search request. `auto` keeps the server pipeline (exact-name shortcut first, planner otherwise); `exact` matches entity or person names exactly with no planner and no embedding; `keyword` runs full-text search; `semantic` runs vector similarity; `natural` always runs the language-model planner; `hybrid` fuses keyword and semantic rankings by reciprocal rank. Entity and person natural-search support every mode but `hybrid`; news and federated search accept only `auto` and `keyword`; content search accepts `auto` (topic, type, relation, and year words become filters and any other words rank by full text), `keyword` (the full text of articles, posts, and fetched pages), `semantic` (one entity\'s or person\'s library pages by vector similarity of their fetched bodies), and `hybrid` (that owner\'s keyword and semantic rankings fused; each ranking is cut at the largest page size, so a hybrid search returns at most twice that many items, and it orders by fused rank only, ignoring `sort`).","type":"string","x-extensible-enum":["auto","exact","keyword","semantic","natural","hybrid"]},"SearchAnswer":{"description":"Written answer to a natural-language question, grounded only in the response\'s entity records and passages. LOW confidence with no paragraph means the evidence does not answer the question.","type":"object","properties":{"citation":{"description":"Evidence the paragraphs cite, in first-use order.","type":"array","items":{"$ref":"#/components/schemas/SearchAnswerCitation"}},"confidence":{"$ref":"#/components/schemas/Confidence","description":"How fully the cited evidence answers the question."},"description":{"description":"One- or two-sentence summary of at most 155 characters for a search-result snippet; absent when the answer abstains.","type":["string","null"]},"heading":{"description":"The question as the answer page\'s heading: the asker\'s own words in title case, with record names in their stored casing; it never adds, drops, or corrects a word. Absent when the answer abstains.","type":["string","null"]},"paragraph":{"description":"The answer\'s paragraphs in reading order, each citing the evidence it rests on; empty when the answer abstains. A first paragraph without `topic` is the lead, written as a standalone answer of one or two sentences that reads complete when shown alone; later paragraphs expand it by topic without restating it.","type":"array","items":{"$ref":"#/components/schemas/SearchAnswerParagraph"}},"relatedQuery":{"description":"Up to five follow-up searches grounded in the cited evidence; empty when the answer abstains.","type":"array","items":{"type":"string"}},"shareable":{"description":"True when the answer has grounded paragraphs and the answer model did not judge the question advertising or promotion; only a shareable answer can be published as a public search page.","type":"boolean"},"text":{"description":"Every paragraph\'s text in reading order, separated by blank lines; read `paragraph` to place each citation beside the text it supports.","type":"string"},"title":{"description":"Page title of at most 60 characters naming the answer\'s subject, then the angle and scope its paragraphs cover, written by the same model call; pages show it as the subheading under `heading`. Absent when the answer abstains.","type":["string","null"]}},"required":["citation","confidence","paragraph","relatedQuery","shareable","text"]},"SearchDiscoveryFiling":{"description":"Company record filed from one search discovery result and its queued research.","type":"object","properties":{"enrichmentRunId":{"description":"Research run queued for that company by this filing; null when the record already existed or no run was available within the response deadline.","type":["string","null"],"format":"uuid"},"entityId":{"description":"Company record filed for the discovered site.","type":"string","format":"uuid"}},"required":["entityId"]},"SearchInterpretation":{"description":"Structured interpretation of a natural-language entity search: canonical filter, sort, confidence, and any unsupported constraint the planner could not translate.","type":"object","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":{"description":"True when the semantic fallback replaced an untranslatable planner result with a semantic search over the original query, or when a plan that matched no entity was relaxed into one that did.","type":"boolean"},"filter":{"$ref":"#/components/schemas/EntityListFilter","description":"Canonical entity filter generated from the natural-language query."},"intent":{"$ref":"#/components/schemas/SearchIntent","description":"Question shape the planner read from the query."},"interpretation":{"description":"Human-readable summary of how the query was interpreted.","type":"string"},"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."},"subjectEntityName":{"description":"Brand or legal names of the entities the question is about, as written in the query; empty for discovery questions.","type":"array","items":{"type":"string"}},"unsupported":{"description":"Constraint the planner could not translate into the canonical EntityFilter contract, and the planned constraints a zero-row search relaxed; null when every material constraint was supported and applied.","type":["string","null"]}},"required":["confidence","execution","fallbackUsed","filter","intent","interpretation","sort","subjectEntityName"]},"SearchJudgment":{"description":"An entity that answers a competitor, market, or provider question, with the judged probability that it does.","type":"object","properties":{"entityId":{"description":"Id of the answering entity; its row is in `result`.","type":"string","format":"uuid"},"matchedOffering":{"description":"Current public Product/Service that supports this answer.","oneOf":[{"$ref":"#/components/schemas/Entity"},{"type":"null"}]},"probability":{"description":"Judged probability, 0 to 1, that the entity answers the question.","type":"number","format":"double"},"webUrl":{"description":"Stored web search result pages that name the entity; empty without `web`.","type":"array","items":{"type":"string"}}},"required":["entityId","probability","webUrl"]},"SearchPassage":{"description":"Text passage ranked by semantic closeness to a natural-language question, read from its owning record.","type":"object","properties":{"entityId":{"description":"Entity the passage is about.","type":"string","format":"uuid"},"label":{"description":"Snippet type key for research snippets, or the article title for news articles.","type":"string"},"publishedAt":{"description":"Article publication time for news passages; null for snippets.","type":["string","null"],"format":"date-time"},"score":{"description":"Cosine similarity between the question and the passage; higher is closer. Compare scores only within one response.","type":"number","format":"double"},"source":{"$ref":"#/components/schemas/SearchEvidenceSource","description":"Record type that owns the passage text."},"sourceId":{"description":"Identifier of the owning snippet or news article.","type":"string"},"text":{"description":"Passage text: the snippet, or the article summary or excerpt.","type":"string"},"url":{"description":"Original article URL for news passages; null for snippets.","type":["string","null"]}},"required":["entityId","label","score","source","sourceId","text"]},"EntitySimilarityResult":{"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.","type":"object","properties":{"entity":{"$ref":"#/components/schemas/EntityList"},"similarity":{"$ref":"#/components/schemas/EntitySimilarityContext"}},"required":["entity","similarity"],"x-aventure-noun":{"one":"similar company","other":"similar companies"}},"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","readOnly":true}},"required":["content","number","size","totalElements","totalPages"]},"EntityList":{"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 ","type":"object","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":{"description":"Fundraise rounds associated with this entity","type":"array","items":{"$ref":"#/components/schemas/EntityFundraiseTransaction"}},"provider":{"description":"Fund manager firm or product/service provider; null otherwise.","oneOf":[{"$ref":"#/components/schemas/EntityProvider"},{"type":"null"}]},"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"],"x-aventure-noun":{"one":"company","other":"companies"}},"Entity":{"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. Nested as .core inside EntityList for default list reads and EntityDetail for detail reads.","type":"object","properties":{"defaultCurrency":{"description":"Default currency code (ISO 4217)","type":["string","null"]},"foundedYear":{"description":"Year the entity was founded","type":["integer","null"],"format":"int32"},"id":{"description":"Unique entity identifier","type":"string","format":"uuid"},"image":{"$ref":"#/components/schemas/EntityImage","description":"Logo and monogram image metadata"},"lastModifiedAt":{"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.","type":["string","null"],"format":"date-time"},"nameAlias":{"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.","type":"array","items":{"$ref":"#/components/schemas/EntityNameAliasEntityAliasType"}},"nameBrand":{"description":"Resolved display brand name","type":"string"},"nameLegal":{"description":"Registered legal name","type":["string","null"]},"operatingStatus":{"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.","type":["string","null"]},"publicId":{"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.","type":["string","null"]},"publicUrl":{"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.","type":["string","null"],"readOnly":true},"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":{"description":"URL-safe identifier","type":"string"},"typeRecord":{"$ref":"#/components/schemas/EntityType","description":"Entity type classification"},"updatedAt":{"description":"Last modification timestamp","type":["string","null"],"format":"date-time"}},"required":["id","image","nameAlias","nameBrand","slug","typeRecord"],"x-aventure-noun":{"one":"company","other":"companies"}},"EntityEnrichment":{"description":"Supplemental entity data — addresses, classification tags, funding, text content, and URL links","type":"object","properties":{"address":{"description":"Current addresses. Full-detail search carries only the headquarters row (headquartersAddressId); GET /v1/entities/{entityId}/addresses lists every row.","type":"array","items":{"$ref":"#/components/schemas/Address"}},"classification":{"$ref":"#/components/schemas/EntityClassification","description":"Entity classifications. Single-detail and full-detail batch reads include history; list, default batch, and similar-entity reads may return only current classifications. Use GET /v1/entities/{entityId}/classifications?includeInactive=true for the full history."},"fundingDetail":{"oneOf":[{"$ref":"#/components/schemas/EntityFundingDetail"},{"type":"null"}]},"headquartersAddressId":{"description":"Address id of the current headquarters: the current dominant (operating) address; absent when none is on record, even when a domicile (legal seat) exists. Read this instead of the deprecated isHq flag, which marks the legal seat.","type":["integer","null"],"format":"int32","readOnly":true},"headquartersRemoteAsOf":{"description":"When aVenture last verified that this entity runs no operating headquarters (a remote company); absent while a current operating headquarters is on record or no unexpired verification exists.","type":["string","null"],"format":"date-time"},"text":{"$ref":"#/components/schemas/EntityTextBundle"},"urlLink":{"description":"URL link filter values","type":"array","items":{"$ref":"#/components/schemas/EntityUrlLink"}}},"required":["address","classification","text","urlLink"]},"EntityProvider":{"description":"\\n The current entity a fund or product/service is offered by: a fund\'s manager firm, a\\n product/service\'s provider, through its current primary edge to a live, listed provider.\\n Null on every other entity type.\\n ","type":"object","properties":{"entity":{"$ref":"#/components/schemas/Entity","description":"Provider core. Its image is the provider\'s own logo, else the logo of the provider\'s current parent entity."},"headquarters":{"description":"The provider\'s current headquarters address.","oneOf":[{"$ref":"#/components/schemas/Address"},{"type":"null"}]},"relationshipType":{"description":"Relationship linking the subject to this provider.","type":"string","enum":["fundManagerFirm","productService"]}},"required":["entity","relationshipType"]},"EntityListResearch":{"description":"Nested research projection owned by EntityList rows, excluding snippet text.","type":"object","properties":{"acceleratorParticipation":{"description":"Joined accelerator participation derived from governed accelerator research rows","type":"array","items":{"$ref":"#/components/schemas/EntityAcceleratorParticipation"}},"detail":{"description":"Flat governed research detail rows filtered by visibility","type":"array","items":{"$ref":"#/components/schemas/EntityResearchDetail"}}},"required":["acceleratorParticipation","detail"]},"EntityAcceleratorParticipation":{"description":"Flattened accelerator participation derived from acceleratorParticipant relationship rows and joined to the canonical accelerator entity.","type":"object","properties":{"accelerator":{"$ref":"#/components/schemas/Entity","description":"Canonical thin accelerator entity from the acceleratorParticipant relationship"},"acceleratorName":{"description":"Full accelerator participation name, including program detail","type":"string"},"asOfDate":{"description":"Source-stated participation effective date or instant","type":"string"},"batch":{"description":"Accelerator batch or cohort","type":["string","null"]},"id":{"description":"Stable participation identifier anchored to the contributing acceleratorParticipant relationship","type":"string"},"program":{"description":"Accelerator program name, when the source distinguishes one","type":["string","null"]},"status":{"description":"Accelerator participation status","type":["string","null"]}},"required":["accelerator","acceleratorName","asOfDate","id"]},"EntityFundingDetail":{"description":"Aggregate view of an entity\'s fundraising activity","type":"object","properties":{"currency":{"description":"ISO 4217 currency of totalRaised, latestValuation, and mostRecentAmount: the one currency every round uses, else the entity\'s own currency when rounds carry none. Null when rounds use more than one currency or no fundraise rollup exists, so these amounts have no single currency.","type":["string","null"]},"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"},"totalRaisedUsd":{"description":"Sum of round amounts converted to USD at each round\'s announcement-date ECB/World Bank rate, excluding rounds with no amount or no rate (see unconvertedRoundCount); zero when no round converts. Null when no fundraise rollup exists. Use this, not totalRaised, to compare or rank entities whose rounds use different currencies.","type":["number","null"]},"unconvertedRoundCount":{"description":"Rounds with an amount but no USD rate for their announcement date, so totalRaisedUsd excludes them.","type":"integer","format":"int32"}},"required":["fundingRoundCount","investorCount","totalRaised","unconvertedRoundCount"]},"FundingStage":{"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.","type":"string","x-extensible-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","Late Stage Private","Investment Firm","Fund","Nonprofit","Government","Public","Acquired","Acquired Subsidiary"]},"EntityImage":{"description":"Grouped entity image fields for square, standard, and monogram logo state","type":"object","properties":{"isMonogram":{"description":"Whether entity image monogram","type":"boolean"},"logo":{"type":["string","null"]},"logoSquare":{"type":["string","null"]}},"required":["isMonogram"]},"EntityNameAliasEntityAliasType":{"description":"Alternate name used for search and display","type":"object","properties":{"displayable":{"description":"Show this alias in public name displays.","type":["boolean","null"]},"name":{"description":"Alternate name text","type":"string"},"type":{"description":"Alias type classification","oneOf":[{"$ref":"#/components/schemas/EntityAliasType"},{"type":"null"}]}},"required":["name"]},"EntitySitemap":{"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.","type":"object","properties":{"hasAcquisitions":{"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.","type":"boolean","default":false},"hasAnalysis":{"description":"Whether the profile Analysis sub-route should be emitted.","type":"boolean"},"hasEmployees":{"description":"Whether the profile Employees sub-route should be emitted.","type":"boolean"},"hasFundraising":{"description":"Whether the profile Fundraising sub-route should be emitted.","type":"boolean"},"hasNews":{"description":"Whether the profile News sub-route should be emitted.","type":"boolean"},"productServiceSlug":{"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.","type":"array","items":{"type":"string"}}},"required":["hasAnalysis","hasEmployees","hasFundraising","hasNews","productServiceSlug"]},"EntityAliasType":{"description":"Alias types for entity NameAlias","type":"string","enum":["alternativeDba","relatedLegal"],"x-aventure-parsed-enum":true},"EntitySimilarityContext":{"description":"Per-row provenance for a similar-entity result","type":"object","properties":{"compositeScore":{"description":"Composite (section-fusion) score. Populated only when origin=precomputed.","type":["number","null"],"format":"double"},"cosineScore":{"description":"Cosine similarity when origin=precomputed","type":["number","null"],"format":"double"},"curatedAsOf":{"description":"Curated source-stated as-of date when origin=curated","type":["string","null"]},"curatedRelationshipType":{"description":"Curated relationship type when origin=curated","type":["string","null"]},"curatedSource":{"description":"Curated source URL/note when origin=curated","type":["string","null"]},"derivedFromEntityId":{"description":"Curated peer id that produced this row when origin=derived","type":["string","null"],"format":"uuid"},"matchedSectionWeight":{"description":"Total normalized source-section weight matched when origin=precomputed","type":["number","null"],"format":"double"},"origin":{"$ref":"#/components/schemas/EntitySimilarityOrigin"},"rank":{"description":"1-based position in the merged result page","type":"integer","format":"int32"},"sharedSectionCount":{"description":"Number of source/target sections compared when origin=precomputed","type":["integer","null"],"format":"int32"}},"required":["origin","rank"]},"EntitySimilarityOrigin":{"description":"Provenance origin for a similar-entity result row.","type":"string","enum":["curated","semantic","precomputed","derived","computed"]},"SearchEvidenceSource":{"description":"Owner of search evidence: `entityRecord` is the entity\'s structured record, `researchSnippet` an entity research snippet, `newsArticle` a news article linked to the entity; `personRecord` a person linked to the entity; `fundraiseTransaction` a recorded investment round with investor attribution.","type":"string","x-extensible-enum":["entityRecord","researchSnippet","newsArticle","personRecord","fundraiseTransaction"]},"SearchIntent":{"description":"Question shape the planner read from a natural-language search. `discovery` lists entities matching a description; `profile` asks what a named entity does, offers, or how it stands; `peer` asks for a named entity\'s competitors or look-alikes; `comparison` asks how two or more named entities compare.","type":"string","enum":["discovery","profile","peer","comparison"]},"SearchOrderingEntityFilterSortable":{"description":"Ordering applied to a search result page: an optional relevance rank that precedes the sortable-column terms.","type":"object","properties":{"order":{"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.","type":"array","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":{"description":"Single sort term: which enumerated sort field to use and whether direction is descending.","type":"object","properties":{"descending":{"description":"true for descending (DESC), false for ascending (ASC)","type":"boolean"},"field":{"$ref":"#/components/schemas/EntityFilterSortable","description":"Sort field for this resource (entity list uses EntityFilter.Sortable / published sort keys)."},"sortKey":{"description":"Request sort key for this field: pass `sort=<sortKey>,<asc|desc>` to the matching directory list endpoint to reproduce this term. Absent when the field has no request key.","type":["string","null"],"readOnly":true}},"required":["descending","field"]},"EntityFilterSortable":{"description":"Entity filter sortable","type":"string","x-extensible-enum":["ID","NAME_BRAND","YEAR_FOUNDED","STATUS_OPERATING","UPDATED_AT","CREATED_AT","NEXT_DUE_AT","DATA_COMPLETION_COVERAGE","TOTAL_RAISED","AMOUNT_INVESTED","RECENT_INVESTMENT_AT","STAGE","MOST_RECENT_AMOUNT","LATEST_VALUATION","MOST_RECENT_DATE","ACCELERATOR_BRAND","ACCELERATOR_COHORT","HEADQUARTERS_COUNTRY","EMPLOYEE_COUNT"]},"SearchAnswerCitation":{"description":"One piece of evidence an answer cites, by its owning record.","type":"object","properties":{"entityId":{"description":"Entity the evidence is about.","type":"string","format":"uuid"},"source":{"$ref":"#/components/schemas/SearchEvidenceSource","description":"Record that owns the cited evidence."},"sourceId":{"description":"Entity id for `entityRecord`, snippet or news article id from `passage`, person id for `personRecord`, or the recorded round id for `fundraiseTransaction`.","type":"string"}},"required":["entityId","source","sourceId"]},"SearchAnswerParagraph":{"description":"One paragraph of an answer and the evidence it rests on.","type":"object","properties":{"citation":{"description":"Evidence this paragraph rests on, most important first.","type":"array","items":{"$ref":"#/components/schemas/SearchAnswerCitation"}},"text":{"description":"Paragraph text in plain prose.","type":"string"},"topic":{"description":"Short label naming the category, market, or segment this paragraph covers, such as \\"Smartphones · North America\\"; absent on the lead paragraph.","type":["string","null"]}},"required":["citation","text"]},"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","readOnly":true}},"required":["content","number","size","totalElements","totalPages"]},"NewsEntityMention":{"description":"Public entities one news article links to, in link order.","type":"object","properties":{"entity":{"description":"Public entities the article links to.","type":"array","items":{"$ref":"#/components/schemas/NewsResolvedEntityLink"}},"newsId":{"description":"News article id.","type":"integer","format":"int32"}},"required":["entity","newsId"]},"FederatedSearchProvenance":{"description":"Requested and executed search strategy for every federated scope.","type":"object","properties":{"answerUnavailable":{"description":"True when synthesis was requested but the answer model was temporarily unavailable (an upstream outage, open circuit, full concurrency limit, or expired deadline), so the entity scope carries no answer while every scope\'s rows returned. Retrying the same query may succeed.","type":"boolean"},"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."},"rejection":{"description":"Scopes that rejected the query as unsearchable and returned an empty page while the other scopes ran; empty when every scope ran.","type":"array","items":{"$ref":"#/components/schemas/FederatedSearchRejection"}},"unavailable":{"description":"Scopes whose search was temporarily unavailable (an upstream outage, open circuit, full concurrency limit, or expired deadline) and returned an empty page while the other scopes ran; empty when every scope ran. Retrying the same query may succeed, unlike a rejection.","type":"array","items":{"description":"Record type a federated search covers.","type":"string","enum":["entity","person","news"]}}},"required":["answerUnavailable","entity","news","person","rejection","unavailable"]},"SearchQualifier":{"description":"A prompt offered beside a broad query\'s results, with rewritten queries that narrow or widen it.","type":"object","properties":{"key":{"description":"Stable qualifier key.","type":"string"},"option":{"description":"Rewritten queries the reader can run instead, in display order.","type":"array","items":{"$ref":"#/components/schemas/SearchQualifierOption"}},"prompt":{"description":"Text shown above the options.","type":"string"}},"required":["key","option","prompt"]},"SearchQualifierOption":{"description":"One rewritten query a qualifier offers.","type":"object","properties":{"label":{"description":"Option label.","type":"string"},"query":{"description":"Search query the option runs.","type":"string"}},"required":["label","query"]},"FederatedSearchRejection":{"description":"One federated scope that rejected the query instead of searching.","type":"object","properties":{"detail":{"description":"Why the scope rejected the query.","type":"string"},"field":{"description":"Request field the scope rejected, such as search.","type":["string","null"]},"scope":{"description":"Scope that rejected the query.","type":"string","enum":["entity","person","news"]}},"required":["detail","scope"]},"NewsResolvedEntityLink":{"description":"Resolved entity mention in news content - hyperlink to an entity detected in article text","type":"object","properties":{"createdAt":{"type":"string","format":"date-time"},"entityId":{"description":"Canonical entity UUID","type":"string","format":"uuid"},"href":{"type":["string","null"]},"internal":{"description":"True when href links to this entity\'s aVenture page; false when the entity has no page to link to.","type":"boolean"},"matchStatus":{"oneOf":[{"$ref":"#/components/schemas/NewsMatchStatus"},{"type":"null"}]},"mention":{"type":["string","null"]},"slug":{"description":"Canonical lowercase URL slug for the resource","type":["string","null"]},"typeRecord":{"oneOf":[{"$ref":"#/components/schemas/EntityType"},{"type":"null"}]},"updatedAt":{"type":"string","format":"date-time"}},"required":["createdAt","entityId","internal","updatedAt"]},"NewsMatchStatus":{"description":"auto-match = linked by the matcher; needs-review = awaiting a reviewer; approved; rejected","type":"string","enum":["auto-match","needs-review","approved","rejected"],"x-aventure-parsed-enum":true},"SearchCacheMode":{"description":"Search-stage cache policy: use reuses completed and in-flight work; bypass computes independently without retaining search outputs; refresh computes independently and replaces the normal cache entry. Immutable query vectors and canonical record caches retain their own cache policy.","type":"string","enum":["use","bypass","refresh"]},"ReasoningEffort":{"description":"Reasoning effort level, lowest to highest: `minimal`, `low`, `medium`, `high`, `xhigh`, `max`. A model receives the nearest level it supports.","type":"string","x-extensible-enum":["minimal","low","medium","high","xhigh","max"],"x-aventure-parsed-enum":true},"HarnessRunFollowUp":{"description":"Durable completion barrier and direct child run ids","type":"object","properties":{"admission":{"$ref":"#/components/schemas/HarnessRunFollowUpAdmission","description":"PENDING until every follow-up admission is durable; REJECTED when the bounded redo is exhausted"},"hasMore":{"description":"More than the bounded child count exists; completion is unproven","type":"boolean"},"runId":{"description":"Direct appointed run ids; read each run\'s detail recursively","type":"array","items":{"type":"string","format":"uuid"}}},"required":["admission","hasMore","runId"]},"HarnessRunProgress":{"description":"Current public progress of a harness run","type":"object","properties":{"complete":{"description":"Whether the enrichment loop reports completion","type":"boolean"},"entitySlug":{"description":"Canonical entity slug currently reported by the loop","type":["string","null"]},"gateRemaining":{"description":"Profile sections the run has not finished yet","type":"array","items":{"type":"string"}},"note":{"description":"Optional progress note from the loop","type":["string","null"]},"whatElseRemaining":{"description":"Additional work the loop reports as remaining","type":"array","items":{"type":"string"}},"writeThisIteration":{"description":"Writes completed during the current loop iteration","type":"array","items":{"type":"string"}}},"required":["complete","entitySlug","gateRemaining","whatElseRemaining","writeThisIteration"]},"HarnessRunFollowUpAdmission":{"description":"Durable admission state for one terminal run generation\'s follow-up work","type":"string","enum":["UNTRACKED","PENDING","SETTLED","REJECTED"]},"AgentTaskPreset":{"description":"A research preset: one named topic a research run can focus on.","type":"object","properties":{"execution":{"description":"How the preset runs: FULL focuses a full research run on its topic; MICRO runs it as one bounded research task.","type":"string","enum":["FULL","MICRO"]},"key":{"description":"Stable key to send in taskPresetKey.","type":"string"},"name":{"description":"Display name of the topic the preset researches.","type":"string"},"phase":{"$ref":"#/components/schemas/AgentTaskPresetPhase","description":"Dispatch phase for intra-job ordering: PRIMARY presets run first; FINAL presets defer until the primary wave completes so they read the freshly-updated entity dossier."}},"required":["execution","key","name","phase"]},"AgentTaskPresetPhase":{"description":"Dispatch phase governing intra-job ordering when presets are multi-selected.","type":"string","enum":["PRIMARY","FINAL"]},"ResearchFinding":{"description":"One fact you researched, with the page and exact text that support it. The run checks the quote against the page before it writes the fact.","type":"object","properties":{"gateId":{"description":"Profile field the fact fills, when known; omit it and the run picks the field the fact belongs to.","type":["string","null"]},"quote":{"description":"The exact text on sourceUrl that states the fact, copied verbatim; a fragment short enough to appear on any page is refused.","type":"string"},"sourceUrl":{"description":"Absolute http or https URL of the page that supports the fact; aVenture pages are refused.","type":"string"},"statement":{"description":"The fact to write, in plain words.","type":"string"},"writerSurface":{"description":"Surface this sourced claim may enter: durable entity text, point-in-time research snippets, or both. New writer briefs must declare it.","oneOf":[{"$ref":"#/components/schemas/WriterClaimSurface"},{"type":"null"}]}},"required":["quote","sourceUrl","statement"]},"WriterClaimSurface":{"description":"Output surface selected for a sourced writer claim.","type":"string","x-extensible-enum":["ENTITY_TEXT","RESEARCH_SNIPPET","BOTH"]},"PersonSimilarityResult":{"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.","type":"object","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"],"x-aventure-noun":{"one":"similar person","other":"similar people"}},"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"}}},"PersonSimilarityContext":{"description":"Per-row provenance for a similar-person result.","type":"object","properties":{"compositeScore":{"description":"Composite section-fusion similarity score.","type":["number","null"],"format":"double"},"cosineScore":{"description":"Cosine similarity score where higher is closer.","type":["number","null"],"format":"double"},"matchedSectionWeight":{"description":"Total normalized source-section weight matched.","type":["number","null"],"format":"double"},"origin":{"$ref":"#/components/schemas/PersonSimilarityOrigin"},"rank":{"description":"1-based position in the merged result page","type":"integer","format":"int32"},"sharedSectionCount":{"description":"Number of source/target sections compared.","type":["integer","null"],"format":"int32"}},"required":["origin","rank"]},"PersonSimilarityOrigin":{"description":"Provenance origin for a similar-person result row.","type":"string","enum":["precomputed","live"]},"PersonInvestment":{"description":"Domain model for a person\'s investment in an entity (fundraise transaction)","type":"object","properties":{"amount":{"type":["number","null"]},"company":{"$ref":"#/components/schemas/PersonInvestedCompany"},"date":{"description":"Announced date of the fundraise round. Use this field for when the investment happened; null when the round date is unknown.","type":["string","null"]},"fundraiseTransaction":{"oneOf":[{"$ref":"#/components/schemas/EntityFundraise"},{"type":"null"}]},"fundraiseTransactionId":{"description":"Canonical fundraise transaction UUID","type":"string","format":"uuid"},"id":{"type":"string"},"investmentDate":{"description":"When aVenture recorded this person\'s participation in the round. It is not the investment date: imported portfolios share their import date. Use date for when the round happened.","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"],"x-aventure-noun":{"one":"investment","other":"investments"}},"PersonInvestedCompany":{"description":"Company metadata associated with a person investment","type":"object","properties":{"entity":{"$ref":"#/components/schemas/Entity"},"headquartersCity":{"description":"Headquarters city of the investee at read time, when known","type":["string","null"]},"headquartersCountry":{"description":"Headquarters country of the investee, when known","type":["string","null"]},"headquartersRegion":{"description":"Headquarters region (state or province) of the investee, when known","type":["string","null"]},"industry":{"description":"Primary industry classification of the investee, when known","type":["string","null"]}},"required":["entity"]},"EntityFundraise":{"description":"Fundraise transaction metadata linked to a person investment","type":"object","properties":{"amountRaised":{"type":["number","null"]},"dateAnnounced":{"description":"Announced date of the fundraise round; null when unknown. Preserves the source\'s calendar or timestamp precision.","type":["string","null"]},"id":{"description":"Canonical fundraise transaction UUID","type":"string","format":"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":{"description":"Investor-specific attribution for one fundraise participation row","type":"object","properties":{"amountInvested":{"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.","type":["number","null"]},"attributionType":{"$ref":"#/components/schemas/FundraiseInvestmentAttributionType","description":"How this attribution row participates in the investor view."},"beneficialEntityId":{"description":"Investment firm entity receiving the rollup attribution.","type":["string","null"],"format":"uuid"},"fundManagerRelationshipId":{"description":"Fund-manager relationship id when the attribution rolls up through a managed fund.","type":["integer","null"],"format":"int32"},"joinId":{"description":"Fundraise investor join identifier","type":"string","format":"uuid"},"leadInvestor":{"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.","type":"boolean"},"recordedEntityId":{"description":"Entity recorded directly on the fundraise investor join.","type":["string","null"],"format":"uuid"},"round":{"description":"Round label for the attributed participation","oneOf":[{"$ref":"#/components/schemas/RoundLabel"},{"type":"null"}]},"transactionId":{"description":"Fundraise transaction identifier","type":"string","format":"uuid"}},"required":["attributionType","joinId","leadInvestor","transactionId"]},"FundraiseInvestmentAttributionType":{"description":"How a fundraise investor attribution row was selected for an investor view.","type":"string","enum":["direct","managedFund"]},"RoundLabel":{"description":"Round participation label - shared by entity and person investor participation","type":"object","properties":{"round":{"type":"string"}},"required":["round"]},"PersonGraphCareerContext":{"description":"Entity facts, recent news, colleagues, and similar entities for one associated entity","type":"object","properties":{"colleague":{"description":"People associated with the same entity, excluding the subject person, ranked by currency and recency","type":"array","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":{"description":"Most recent news linked to the entity, newest first","type":"array","items":{"$ref":"#/components/schemas/News"}},"similarEntity":{"description":"Entities similar to this entity, from the entity similarity rails","type":"array","items":{"$ref":"#/components/schemas/PersonGraphSimilarEntity"}}},"required":["colleague","entity","recentNews","similarEntity"]},"PersonGraphCoInvestor":{"description":"Person who co-invested with the subject, with the shared context","type":"object","properties":{"overlapCount":{"description":"Number of shared fundraise transactions between the two people","type":"integer","format":"int32"},"person":{"$ref":"#/components/schemas/PersonGraphMember","description":"Co-investing person rail member"},"round":{"description":"Round label of the shared fundraise transaction","type":["string","null"]},"sharedEntity":{"description":"Entity whose fundraise both people participated in (association projection)","oneOf":[{"$ref":"#/components/schemas/Entity"},{"type":"null"}]},"transactionId":{"description":"Shared fundraise transaction id","type":["string","null"],"format":"uuid"}},"required":["overlapCount","person"]},"PersonGraphMember":{"description":"Lean person rail member with association title facts","type":"object","properties":{"isCurrent":{"type":["boolean","null"]},"personId":{"description":"Associated person id","type":"string","format":"uuid"},"personImage":{"$ref":"#/components/schemas/PersonImage","description":"Person image projection"},"personName":{"description":"Person display name","type":"string"},"personSlug":{"description":"Canonical lowercase URL slug for the resource","type":"string"},"titleName":{"description":"Read-side corporate title text for the association row","type":["string","null"]}},"required":["personId","personImage","personName","personSlug"]},"EmployeeCount":{"description":"Employee-count time-series point for an entity","type":"object","properties":{"asOfDate":{"description":"Date the employee count applies to, preserving the available calendar or timestamp precision.","type":["string","null"]},"fact":{"$ref":"#/components/schemas/EntityResearchFactValue"},"id":{"type":"string"}},"required":["fact","id"],"x-aventure-noun":{"one":"employee count","other":"employee counts"}},"EntityFundraiseTransactionEntity":{"description":"Entity projection used inside FundraiseTransaction responses","type":"object","properties":{"core":{"$ref":"#/components/schemas/Entity"},"fundingDetail":{"oneOf":[{"$ref":"#/components/schemas/EntityFundingDetail"},{"type":"null"}]}},"required":["core"]},"PersonGraphSimilarEntity":{"description":"Similar-entity card with its key people","type":"object","properties":{"entity":{"$ref":"#/components/schemas/EntityFundraiseTransactionEntity","description":"Entity card projection: core identity plus aggregate funding rollup"},"keyPerson":{"description":"Top-ranked current people at the similar entity","type":"array","items":{"$ref":"#/components/schemas/PersonGraphMember"}}},"required":["entity","keyPerson"]},"EntityResearchFactValue":{"description":"Canonical typed fact value nested under entity research fields","type":"object","properties":{"asOfDate":{"description":"Date the research fact applies to, preserving the source\'s calendar or timestamp precision.","type":["string","null"]},"currentEligible":{"description":"Current-fact eligibility projected from the canonical research detail row.","type":["boolean","null"],"readOnly":true},"dataConfidence":{"oneOf":[{"$ref":"#/components/schemas/EntityValuationDataConfidence"},{"type":"null"}]},"dateValue":{"description":"Date-valued research fact, preserving the source\'s year, month, day, or timestamp precision.","type":["string","null"]},"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":{"description":"Confidence tier for this data point.","type":"string","enum":["low","medium","high"],"x-aventure-parsed-enum":true},"EntityResearchValueType":{"description":"Output kind for governed research detail values","type":"string","enum":["text","numeric","monetary","percentage","date"]},"PersonListArrayFilter":{"description":"Array and range filters for person list endpoints","type":"object","properties":{"amountInvestedRange":{"type":["array","null"],"items":{"$ref":"#/components/schemas/DecimalRange"}},"amountRaisedRange":{"type":["array","null"],"items":{"$ref":"#/components/schemas/DecimalRange"}},"entityName":{"description":"Associated entity names.","type":["array","null"],"items":{"type":"string"}},"investedCompany":{"description":"Invested company names.","type":["array","null"],"items":{"type":"string"}},"personTitle":{"description":"Person titles.","type":["array","null"],"items":{"type":"string"}},"round":{"description":"Fundraise round labels.","type":["array","null"],"items":{"type":"string"}},"totalInvestmentCount":{"type":["array","null"],"items":{"$ref":"#/components/schemas/IntRange"}},"typeRecord":{"description":"Associated entity type scope. Omit or use [] for any associated type.","type":["array","null"],"items":{"$ref":"#/components/schemas/EntityType"}}}},"InvestorActivityFilter":{"description":"Aggregate investor activity filters from distinct fundraise deals and USD amounts.","type":"object","properties":{"averageAmountInvestedUsdRange":{"description":"Average USD amount-invested ranges with inclusive bounds.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}},"largestAmountInvestedUsdRange":{"description":"Largest USD amount-invested ranges with inclusive bounds.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}},"smallestAmountInvestedUsdRange":{"description":"Smallest USD amount-invested ranges with inclusive bounds.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}},"totalAmountInvestedUsdRange":{"description":"Total USD amount-invested ranges with inclusive bounds.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}},"totalInvestmentRange":{"description":"Distinct fundraise-deal count ranges for an investor, with inclusive integer bounds.","type":"array","items":{"$ref":"#/components/schemas/IntRange"}}}},"PersonEnrichment":{"description":"Supplemental person data — addresses and URL links","type":"object","properties":{"address":{"description":"Addresses associated with the person","type":"array","items":{"$ref":"#/components/schemas/Address"}},"urlLink":{"description":"External and social URL links associated with the person","type":"array","items":{"$ref":"#/components/schemas/EntityUrlLink"}}},"required":["address","urlLink"]},"NewsSubscriptionArguments":{"description":"Arguments of the entity.news.published event.","type":"object","properties":{"entityId":{"description":"Entity whose newly linked public news is delivered.","type":"string","format":"uuid"}},"required":["entityId"]},"NewsSubscriptionDelivery":{"description":"Webhook delivery target and secret.","type":"object","properties":{"mode":{"$ref":"#/components/schemas/NewsSubscriptionDeliveryMode"},"secret":{"description":"Standard Webhooks signing secret: whsec_ followed by base64 of 24 to 64 bytes. It is never returned. The CLI reads it only from --from-file, never a flag.","type":"string","format":"password"},"url":{"description":"Public https endpoint that receives signed event POSTs.","type":"string"}},"required":["mode","secret","url"]},"NewsSubscriptionDeliveryMode":{"description":"Event delivery mode","type":"string","enum":["webhook"],"x-aventure-parsed-enum":true},"NewsSubscriptionDeliveryStatus":{"description":"active delivers; retrying backs off after a failure; paused stopped after the maximum consecutive failures until the subscription is refreshed; expired passed refreshBefore and is about to be removed.","type":"string","enum":["active","retrying","paused","expired"]},"NewsSubscriptionEndpoint":{"description":"Webhook delivery target.","type":"object","properties":{"url":{"type":"string"}},"required":["url"]},"NewsResolvedPersonLink":{"description":"Resolved person mention in news content - hyperlink to a person detected in article text","type":"object","properties":{"createdAt":{"type":"string","format":"date-time"},"href":{"type":["string","null"]},"matchStatus":{"oneOf":[{"$ref":"#/components/schemas/NewsMatchStatus"},{"type":"null"}]},"mention":{"type":["string","null"]},"personId":{"description":"Canonical person UUID","type":"string","format":"uuid"},"slug":{"description":"Canonical lowercase URL slug for the resource","type":["string","null"]},"updatedAt":{"type":"string","format":"date-time"}},"required":["createdAt","personId","updatedAt"]},"LookupJobMention":{"description":"One company or person a source names, which stored record it is, and, from a standard article job or streaming lookup, the new unpublished record created when it is new. Bulk lookup only identifies names and creates no records.","type":"object","properties":{"enrichmentRunId":{"description":"Research request filed for this mention, if any.","type":["string","null"],"format":"uuid"},"entity":{"description":"POST /v1/lookup-mentions only: the candidate companies as search results show them, the match first, then by match probability and duplicate-check score.","type":"array","items":{"$ref":"#/components/schemas/EntityList"}},"failureReason":{"description":"One sentence on why this name could not be identified; absent otherwise.","type":["string","null"]},"identification":{"description":"The lookup of this name with the source as its context: MATCHED names the stored record, NEEDS_REVIEW lists the candidates, NO_MATCH means none is stored. Absent when failureReason is set.","oneOf":[{"$ref":"#/components/schemas/Identification"},{"type":"null"}]},"mentionType":{"description":"Whether the source names a company, a Product or Service, or a person.","type":"string","enum":["COMPANY","PERSON","PRODUCT_SERVICE"]},"name":{"description":"Name as the source writes it.","type":"string"},"person":{"description":"POST /v1/lookup-mentions only: the candidate people as search results show them, ranked like entity.","type":"array","items":{"$ref":"#/components/schemas/Person"}},"shell":{"description":"New unpublished record aVenture created, at no charge, for a NO_MATCH name whose own live site names it. enrichmentRunId names research filed for it, if any; to file research yourself, send its entityId to POST /v1/entities/{entityId}/enrichments or its personId to POST /v1/people/{personId}/enrichments.","oneOf":[{"$ref":"#/components/schemas/EntityPersonOwner"},{"type":"null"}]},"shellDetail":{"description":"Why no new record was created for this NO_MATCH name.","type":["string","null"]}},"required":["entity","mentionType","name","person"]},"JobState":{"description":"Shared lifecycle states for async jobs (duplicate-check, logo-audit, etc.)","type":"string","enum":["PENDING","RUNNING","COMPLETED","FAILED","CANCELED","UNKNOWN"]},"LookupMention":{"description":"One company, Product or Service, or person a caller read from a page or screenshot it did not send.","type":"object","properties":{"name":{"description":"Name as the source writes it.","type":"string"},"providerName":{"description":"PRODUCT_SERVICE only: the organization that offers it, as the source writes it. When the offering resolves among offerings and its provider settles on an organization record, the match is limited to that record\'s offerings.","type":["string","null"]},"searchQuery":{"description":"Ignored: the lookup searches by name. Still accepted so callers that send it keep working; omit it.","type":"string"},"type":{"description":"Whether the source names a company, a Product or Service (PRODUCT_SERVICE), or a person. A Product or Service resolves like a company first, then among Product and Service records when that finds no match, and never creates a new record.","type":"string","enum":["COMPANY","PERSON","PRODUCT_SERVICE"]}},"required":["name","type"]},"EntityValuationTimeSeriesPoint":{"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.","type":"object","properties":{"amountRaised":{"description":"Amount raised in the same currency, only for fundraise rows.","type":["integer","null"],"format":"int64"},"asOfDate":{"description":"Source-stated effective date for this valuation datapoint.","type":"string"},"confidence":{"$ref":"#/components/schemas/EntityValuationDataConfidence","description":"Confidence tier for this datapoint."},"currency":{"description":"ISO 4217 currency code.","type":"string"},"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":{"description":"Research detail id for stated valuation rows. Null for fundraise-derived rows, which cannot be updated or deleted on this valuation surface.","type":["integer","null"],"format":"int32"},"label":{"description":"Fundraise round label or legacy detail display text, when present.","type":["string","null"]},"source":{"$ref":"#/components/schemas/EntityValuationSource","description":"Canonical store that supplied the point."},"sourceRef":{"description":"`detail-<id>` or `fundraise-<transactionId>` display reference.","type":"string"},"valuationPostMoney":{"description":"Post-money valuation in full currency units, when known.","type":["integer","null"],"format":"int64"},"valuationPreMoney":{"description":"Pre-money valuation in full currency units, when known.","type":["integer","null"],"format":"int64"}},"required":["asOfDate","confidence","currency","declaredBasis","derivation","source","sourceRef"],"x-aventure-noun":{"one":"valuation","other":"valuations"}},"ValuationType":{"description":"Which side of the pre/post relationship the source declared.","type":"string","enum":["preMoney","postMoney","reported"],"x-aventure-parsed-enum":true},"EntityValuationDerivation":{"description":"How the point\'s valuationPostMoney and valuationPreMoney were obtained.","type":"string","enum":["stored","derivedFromPreAndRaised","derivedFromPostMinusRaised","reportedAssumedPost"]},"EntityValuationSource":{"description":"Which canonical store the point came from.","type":"string","enum":["fundraiseRound","researchDetail"]},"EntityUrlCrawlCdnProvider":{"description":"CDN or hosting provider fronting a web URL.","type":"string","enum":["cloudflare","akamai","fastly","awsCloudfront","vercel","netlify","sucuri","incapsula","bunny","keycdn","cdn77","gcore","cdnetworks","azureCdn","leaseweb","digitalocean","stackpath","googlecloudCdn","none","unknown"],"x-aventure-parsed-enum":true},"EntityUrlCrawlRenderMode":{"description":"JavaScript rendering requirement for crawl checks.","type":"string","enum":["static","jsRequired","jsEnhanced"],"x-aventure-parsed-enum":true},"UniqueIdType":{"description":"External identifier type that maps an owner to a registry id: ein, secCik, ticker, lei, duns, isin, cusip, crd, orcid, or folk.","type":"string","x-extensible-enum":["ein","secCik","ticker","lei","duns","isin","cusip","crd","orcid","folk"]},"ContentCompliance":{"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.","type":"object","properties":{"characterCount":{"description":"Character count of the row text (UTF-16 units).","type":"integer","format":"int32"},"meetsRequirements":{"description":"Whether the text satisfies every governed contract rule.","type":"boolean"},"violation":{"description":"One human-readable reason per unmet rule; empty when compliant.","type":"array","items":{"type":"string"}},"wordCount":{"description":"Word count of the row text (whitespace-separated tokens).","type":"integer","format":"int32"}},"required":["characterCount","meetsRequirements","violation","wordCount"]},"SlugResource":{"description":"Resource type whose slug is being changed","type":"string","enum":["entity","person","news","blog","content"]},"EntitySimilaritySummary":{"description":"Lean similar-entity rail row: core identity, current URL links, funding totals, and similarity provenance. Use EntitySimilarityResult for full EntityList rows.","type":"object","properties":{"core":{"$ref":"#/components/schemas/Entity"},"fundingDetail":{"description":"Funding totals, so similar companies compare without one read each","oneOf":[{"$ref":"#/components/schemas/EntityFundingDetail"},{"type":"null"}]},"similarity":{"$ref":"#/components/schemas/EntitySimilarityContext"},"urlLink":{"description":"Current primary URL links, one per URL type","type":"array","items":{"$ref":"#/components/schemas/EntityUrlLink"}}},"required":["core","similarity","urlLink"],"x-aventure-noun":{"one":"similar company","other":"similar companies"}},"EntityResearchPublicSource":{"description":"Published page behind a research value, read from the provenance event that wrote the value. Absent for internal sources and for privacy, terms, or other legal pages.","type":"object","properties":{"lastFetchedAt":{"description":"When aVenture last fetched this page; absent when no stored capture of it exists.","type":["string","null"],"format":"date-time"},"publishedAt":{"description":"When the page was published, from aVenture\'s news record for the same URL; absent when the page is not a known news article.","type":["string","null"],"format":"date-time"},"recordedAt":{"description":"When aVenture recorded the value from this page.","type":"string","format":"date-time"},"sourceDetail":{"description":"URL of the published page supporting the value.","type":"string","format":"uri"}},"required":["recordedAt","sourceDetail"]},"ResearchDerivedRange":{"description":"Read-only derived range projection for targetDateAbsolute detail rows","type":"object","properties":{"asOfDate":{"description":"Observation date from the source detail row","type":"string"},"bucket":{"$ref":"#/components/schemas/ResearchDerivedBucket","description":"Derived bucket using inclusive 0, 3, 6, 12, and 24 month boundaries"},"monthsFromNow":{"description":"Whole months from now() to targetDate","type":"integer","format":"int32"},"targetDate":{"description":"Absolute target date stored for a targetDateAbsolute detail row","type":"string","format":"date-time"}},"required":["asOfDate","bucket","monthsFromNow","targetDate"]},"ResearchDerivedBucket":{"description":"Bucket computed from now() to the target date with inclusive boundaries at 0, 3, 6, 12, and 24 months","type":"string","enum":["pastDue","withinThreeMonths","threeToSixMonths","sixToTwelveMonths","twelveToTwentyFourMonths","beyondTwoYears"]},"GithubRepo":{"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.","type":"object","properties":{"createdAt":{"type":["string","null"],"format":"date-time"},"description":{"type":["string","null"]},"forkCount":{"type":"integer","format":"int32"},"githubId":{"description":"GitHub\'s stable numeric repository id; sync upsert key per owner","type":"integer","format":"int64"},"homepageUrl":{"description":"Project homepage URL declared on the repository","type":["string","null"]},"id":{"type":"integer","format":"int64"},"isArchived":{"description":"True when the repository is archived on GitHub","type":"boolean"},"isFork":{"description":"True when the repository is a fork of another repository","type":"boolean"},"language":{"description":"Primary language reported by GitHub","type":["string","null"]},"license":{"description":"SPDX license id reported by GitHub","type":["string","null"]},"name":{"description":"Repository name (slug segment after the login)","type":"string"},"ownerLogin":{"description":"GitHub account login (org or user) the repository belongs to","type":"string"},"repoCreatedAt":{"description":"GitHub created_at of the repository","type":["string","null"],"format":"date-time"},"repoPushedAt":{"description":"GitHub pushed_at of the repository at last sync","type":["string","null"],"format":"date-time"},"stargazerCount":{"type":"integer","format":"int32"},"topic":{"description":"Repository topics reported by GitHub","type":"array","items":{"type":"string"}},"updatedAt":{"type":["string","null"],"format":"date-time"},"url":{"description":"Canonical https GitHub repository page URL","type":"string"}},"required":["forkCount","githubId","id","isArchived","isFork","name","ownerLogin","stargazerCount","topic","url"],"x-aventure-noun":{"one":"repository","other":"repositories"}},"PersonInvestorParticipation":{"description":"Person investor with round participation labels and count","type":"object","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"],"x-aventure-noun":{"one":"investor","other":"investors"}},"LogoAccuracy":{"description":"Read-only assessment of whether a stored logo/photo depicts the target\'s own brand, decided from visible features of the stored mark versus the target\'s own reference marks","type":"object","properties":{"candidateObserved":{"description":"Literal visible description of the candidate mark, when assessed by vision","type":["string","null"]},"confidence":{"$ref":"#/components/schemas/Confidence","description":"Confidence in the outcome"},"method":{"description":"How the outcome was reached","type":"string","enum":["PERCEPTUAL_HASH","VISION","OPERATOR_REVIEW","REFERENCE_UNAVAILABLE"]},"outcome":{"description":"Whether the candidate mark matches the target\'s own brand","type":"string","enum":["MATCH","MISMATCH","INSUFFICIENT"]},"reference":{"description":"Reference marks fetched from the target\'s own surfaces, each with its perceptual-hash distance to the candidate. The deciding deterministic distance is the smallest entry","type":"array","items":{"$ref":"#/components/schemas/LogoAccuracyReference"}},"referenceObserved":{"description":"Literal visible description of the reference mark, when assessed by vision","type":["string","null"]},"sharedFeature":{"description":"The specific visible feature shared by candidate and reference that supports a match (shared name text, symbol, or distinctive palette); null when not a match","type":["string","null"]}},"required":["confidence","method","outcome","reference"]},"MediaObjectType":{"description":"Target domain for media operations (logos, pictures, thumbnails)","type":"string","enum":["ENTITY","PERSON","NEWS","BLOG"]},"LogoAccuracyReference":{"description":"A reference mark from the target\'s own surface and its distance to the candidate","type":"object","properties":{"hammingDistance":{"description":"Perceptual-hash distance between the candidate and this reference","type":"integer","format":"int32"},"url":{"description":"Direct URL of the reference mark fetched from the target\'s surface","type":"string"}},"required":["hammingDistance","url"]},"EntityInvestorParticipation":{"description":"Entity investor with round participation and enrichment data (addresses, URLs)","type":"object","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"],"x-aventure-noun":{"one":"investor","other":"investors"}},"StageFrequency":{"description":"Canonical equity stage derived from a transaction calculatedRoundLabel, with deal frequency ranked by count descending.","type":"object","properties":{"count":{"type":"integer","format":"int32"},"stage":{"type":"string"}},"required":["count","stage"]},"FundraiseDataConfidence":{"description":"Fundraise data confidence label","type":"string","enum":["High","Medium","Low","Verified"],"x-aventure-parsed-enum":true},"FundraiseFinancialInstrumentType":{"description":"Fundraise financial instrument type — the vehicle a round or investor join used","type":"string","enum":["SAFE","Convertible Note","Preferred Stock","Common Stock","Other Equity","Bond","Loan","Other Debt","Grant","Token"],"x-aventure-parsed-enum":true},"HarnessChassis":{"description":"Agent loop a harness run executes on: the Claude Agent SDK or the Pi agent SDK","type":"string","enum":["claude-agent-sdk","pi-agent-sdk"],"x-aventure-parsed-enum":true},"HarnessRunEnvironment":{"description":"Owning API environment","type":"string","enum":["unassigned","development","staging","production"],"x-aventure-parsed-enum":true},"HarnessRunLane":{"description":"Queue lane for admission priority: interactive client work vs background backlog","type":"string","enum":["interactive","background"],"x-aventure-parsed-enum":true},"HarnessLlmApi":{"description":"Gateway wire API for a run\'s LLM calls: Anthropic Messages, OpenAI Chat Completions, or OpenAI Responses","type":"string","enum":["anthropic","openai-chat","openai-responses"],"x-aventure-parsed-enum":true},"ResearchAllowanceType":{"description":"Metered allowance. `COMPANY` and `PERSON` meter research runs on company and person-profile targets; `ENTITY_VIEW`, `ENTITY_BRAND`, and `PERSON_VIEW` meter profile and brand reads; `WEB_SEARCH` meters web searches.","type":"string","x-extensible-enum":["COMPANY","PERSON","ENTITY_VIEW","ENTITY_BRAND","PERSON_VIEW","WEB_SEARCH"]},"HarnessRunStatus":{"description":"Research run lifecycle state","type":"string","enum":["queued","running","completed","failed","stopped"]},"HarnessRunType":{"description":"Research run kind: a caller-filed research request or a narrower scheduled run","type":"string","enum":["ENRICHMENT","TASK"]},"Publication":{"description":"Canonical public content card across news, blog posts, social posts, repositories, websites, pages, and research papers.","type":"object","properties":{"canonicalUrl":{"description":"Canonical URL when known.","type":["string","null"]},"contentId":{"description":"Stable content id scoped by contentType.","type":"string"},"contentType":{"$ref":"#/components/schemas/PublicationType","description":"Public content source type."},"createdAt":{"description":"Publication row creation instant when known.","type":["string","null"],"format":"date-time"},"publishedAt":{"description":"Publication or source activity instant when known.","type":["string","null"],"format":"date-time"},"relation":{"description":"How this content relates to the requested owner.","oneOf":[{"$ref":"#/components/schemas/PublicationRelation"},{"type":"null"}]},"sourceDomain":{"description":"Registrable source domain when known.","type":["string","null"]},"sourceName":{"description":"Publication, platform owner, or source label.","type":["string","null"]},"summary":{"description":"Short summary or excerpt when known.","type":["string","null"]},"title":{"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.","type":"string"},"topic":{"description":"Single canonical topic key (web-crawl section or news-event topic) or source category (repository language, or GitHub for a profile or a repository without one); null while the source awaits classification.","type":["string","null"]},"updatedAt":{"description":"Publication row update instant when known.","type":["string","null"],"format":"date-time"},"url":{"description":"Primary URL for this content card.","type":["string","null"]},"year":{"description":"Best-effort content year used by the year filter.","type":["integer","null"],"format":"int32"}},"required":["contentId","contentType","title"],"x-aventure-noun":{"one":"content item","other":"content items"}},"EntityTag":{"description":"Classification tag. Catalog and search responses describe the tag itself; entity classification responses also carry classificationId and the entity\'s current and primary flags.","allOf":[{"$ref":"#/components/schemas/Classification"},{"type":"object","properties":{"bucket":{"description":"Canonical classification bucket key; `type` is the value tag search and the catalog accept.","type":["string","null"]},"classificationId":{"description":"Id of this classification on the entity; null in catalog and search results.","type":["integer","null"],"format":"int32"},"createdAt":{"description":"Tag creation timestamp, not the time the entity received this tag.","type":["string","null"],"format":"date-time"},"id":{"description":"Classification tag id.","type":"integer","format":"int32"},"isCurrent":{"description":"In catalog and search results, whether the tag is active; in entity classification responses, whether the classification is current for the entity.","type":["boolean","null"]},"isPrimary":{"description":"Whether this is the entity\'s primary classification in its bucket; null in catalog and search results.","type":["boolean","null"]},"name":{"description":"Name","type":"string"},"slug":{"description":"Slug","type":["string","null"]},"type":{"description":"Canonical tag classification type","type":"string"},"updatedAt":{"description":"Tag update timestamp, not the time the entity\'s classification changed.","type":["string","null"],"format":"date-time"}}}],"required":["id","name","registry","type"],"x-aventure-noun":{"one":"classification","other":"classifications"}},"StandardizedClassification":{"description":"Industry or ownership classification from a standard taxonomy such as NAICS, SIC, or ISIC, with its category, code, and hierarchy level.","type":"object","properties":{"category":{"description":"Standardized category token.","type":"string"},"classificationId":{"description":"Id of this classification on the entity; null in catalog and search results.","type":["integer","null"],"format":"int32"},"code":{"description":"Standardized classification code when present.","type":["integer","null"],"format":"int32"},"createdAt":{"description":"Registry row creation timestamp.","type":["string","null"],"format":"date-time"},"id":{"description":"Standardized classification id.","type":"integer","format":"int32"},"isCurrent":{"description":"Standardized reference rows are current by definition.","type":["boolean","null"]},"isPrimary":{"description":"Whether this is the entity\'s primary classification in this category.","type":["boolean","null"]},"level":{"description":"Hierarchy level when present.","type":["integer","null"],"format":"int32"},"name":{"description":"Name","type":"string"},"registry":{"$ref":"#/components/schemas/ClassificationJoinRegistry","description":"Join registry this classification belongs to; pass it as registry when reading or changing the join by classificationId."},"updatedAt":{"description":"Registry row update timestamp.","type":["string","null"],"format":"date-time"}},"required":["category","id","name","registry"],"x-aventure-noun":{"one":"classification","other":"classifications"}},"ClassificationJoinRegistry":{"description":"Entity classification join registry discriminator for paths where editorial and standardized join row ids may collide.","type":"string","x-extensible-enum":["editorial","standardized"]},"Classification":{"type":"object","properties":{"isCurrent":{"type":["boolean","null"]},"isPrimary":{"type":["boolean","null"]},"name":{"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.","type":"string"},"registry":{"$ref":"#/components/schemas/ClassificationJoinRegistry","description":"Join registry this classification belongs to; pass it as registry when reading or changing the join by classificationId."}},"required":["name","registry"]},"BlogPostType":{"description":"External research-side blog-post source classification","type":"string","enum":["aventureBlog","personalBlog","employerBlog","linkedin","xTwitter","medium","substack","other"],"x-aventure-parsed-enum":true},"AddressAssociation":{"description":"One role and effective period for a physical address association","type":"object","properties":{"endDate":{"description":"Last known day this role applied","type":["string","null"],"format":"date"},"id":{"description":"Address association row identifier","type":"integer","format":"int32"},"isCurrent":{"description":"Whether this role is currently relevant","type":"boolean"},"role":{"description":"Address association role; null means unclassified","oneOf":[{"$ref":"#/components/schemas/AddressAssociationRole"},{"type":"null"}]},"startDate":{"description":"First known day this role applied","type":["string","null"],"format":"date"}},"required":["id","isCurrent"]},"AddressCity":{"description":"City reference used inside an address","type":"object","properties":{"id":{"type":["integer","null"],"format":"int32"},"name":{"description":"City name","type":"string"}},"required":["name"]},"AddressCountry":{"description":"Country reference used inside an address","type":"object","properties":{"countryCodeChar2":{"description":"Two-letter country code","type":["string","null"]},"countryCodeChar3":{"description":"Three-letter country code","type":["string","null"]},"id":{"type":["integer","null"],"format":"int32"},"name":{"description":"Country name","type":"string"},"unRegion":{"type":["string","null"]},"unSubregion":{"type":["string","null"]}},"required":["name"]},"AddressState":{"description":"State or region reference used inside an address","type":"object","properties":{"id":{"type":["integer","null"],"format":"int32"},"name":{"description":"State or region name","type":"string"},"stateAbbrev":{"description":"State or region abbreviation","type":["string","null"]}},"required":["name"]},"AddressAssociationRole":{"description":"Meaning of an entity or person address association. Dominant is the operating headquarters; domicile is the legal or registered seat and is not evidence of operational presence; origin is the founding or historical location.","type":"string","enum":["domicile","dominant","origin"],"x-aventure-parsed-enum":true},"EntityAcquisitionEvidence":{"description":"Booleans confirming each managed row written by the acquisition endpoint.","type":"object","properties":{"fundraiseInvestorJoin":{"type":"boolean"},"fundraiseTransaction":{"type":"boolean"},"operatingStatus":{"type":"boolean"},"relationship":{"type":"boolean"}},"required":["fundraiseInvestorJoin","fundraiseTransaction","operatingStatus","relationship"]},"EntityAcquisitionStage":{"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).","type":"string","enum":["Acquisition","Acquired","Acquired Subsidiary"]},"FundraiseTransactionStatus":{"description":"Fundraise transaction status label","type":"string","enum":["Announced","Announced; subject to approvals and closing conditions","Active","Closed","Completed","In Progress","Open"],"x-aventure-parsed-enum":true},"ResearchParagraphShape":{"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. Each paragraph ends in terminal punctuation (. ! ? or the CJK full stop, exclamation, and question marks), optionally followed by a closing quote, parenthesis, bracket, or guillemet.","type":"object","properties":{"maxChars":{"description":"Maximum characters per paragraph (inclusive).","type":"integer","format":"int32"},"maxParagraphs":{"description":"Maximum paragraph count (inclusive); null means unbounded.","type":["integer","null"],"format":"int32"},"maxSentences":{"description":"Maximum sentences per paragraph (inclusive).","type":"integer","format":"int32"},"minChars":{"description":"Minimum characters per paragraph (inclusive).","type":"integer","format":"int32"},"minParagraphs":{"description":"Minimum paragraph count (inclusive).","type":"integer","format":"int32"},"minSentences":{"description":"Minimum sentences per paragraph (inclusive).","type":"integer","format":"int32"}},"required":["maxChars","maxSentences","minChars","minParagraphs","minSentences"]},"SecListingProspectus":{"description":"The final IPO prospectus a registrant filed on SEC EDGAR.","type":"object","properties":{"accessionNumber":{"description":"SEC accession number.","type":"string"},"documentUrl":{"description":"SEC EDGAR Archives URL of the prospectus document.","type":"string"},"filingDate":{"description":"Date SEC received the prospectus.","type":"string","format":"date"},"form":{"description":"SEC form type of the prospectus.","type":"string"}},"required":["accessionNumber","documentUrl","filingDate","form"]},"EntityFundraiseFilterCriteria":{"description":"Fundraise and investment filters for entity search","type":"object","properties":{"amountInvestedRange":{"description":"Investor-level amount-invested ranges in the transaction currency. Use plain JSON numbers.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}},"amountRaisedRange":{"description":"Per-round amount-raised ranges in USD. Use plain JSON numbers.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}},"dateAnnouncedRange":{"description":"Inclusive announcement timestamp bounds on the same fundraise transaction as round and amountRaisedRange. Announcement dates do not establish funding completion dates.","oneOf":[{"$ref":"#/components/schemas/DateRange"},{"type":"null"}]},"investedCompanyName":{"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.","type":"array","items":{"type":"string"}},"investedCountry":{"description":"Countries of the companies an investor backed, as country names or ids; a deal matches when its company\'s current headquarters is in one of them. Restricts returned entities to investors with such a deal inside the investment-activity horizon; with investedRound or investedIndustry, the same deal must match each.","type":"array","items":{"type":"string"}},"investedIndustry":{"description":"Industry terms for the companies an investor backed, such as Software, Artificial Intelligence, or Fintech; a term matches a portfolio company whose industry or industry classification name contains it as whole words, case-insensitively. Restricts returned entities to investors with such a deal inside the investment-activity horizon; with investedRound, the same deal must match both.","type":"array","items":{"type":"string"}},"investedRound":{"description":"Round labels of the deals an investor joined, such as Seed, Pre-Seed, or Series A; restricts returned entities to investors with such a deal inside the investment-activity horizon.","type":"array","items":{"type":"string"}},"investorActivity":{"$ref":"#/components/schemas/InvestorActivityFilter","description":"Aggregate investor activity filters."},"investorName":{"description":"Investor names. Each matches an investor entity whose brand, legal name, or alias equals it ignoring case and punctuation, or an individual investor\'s exact full name; a name that begins public entities\' brands as whole words (\\"Sequoia\\") also matches the one holding many times the recorded investments of every other such entity (Sequoia Capital). Restricts returned entities to companies with a fundraise that investor joined.","type":"array","items":{"type":"string"}},"lastRoundYearRange":{"description":"Last-round-year ranges for each entity\'s most recent fundraise round.","type":"array","items":{"$ref":"#/components/schemas/IntRange"}},"rankByInvestmentActivity":{"description":"True ranks returned investors by recent deal activity ahead of any sort: each deal inside investedRound, investedIndustry, and investedCountry (every deal when all are empty) adds a weight that decays to zero over the investment-activity horizon, nudged by the investor\'s known USD check. Restricts returned entities to investors with such a deal.","type":["boolean","null"]},"round":{"description":"Fundraise round labels, such as Seed or Series A.","type":"array","items":{"type":"string"}},"totalRaisedRange":{"description":"Total-raised ranges across all rounds in USD. Use plain JSON numbers.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}},"valuationRange":{"description":"Post-money valuation ranges in USD.","type":"array","items":{"$ref":"#/components/schemas/DecimalRange"}}}},"EntityFilterLogoOption":{"description":"Logo sort priority for entity search","type":"object","properties":{"sortPriority":{"description":"Logo sort priority.","type":"string","enum":["NONE","ANY_LOGO_FIRST","REAL_LOGO_FIRST"]}}},"DateRange":{"description":"ISO-8601 timestamp range for temporal filters.","type":"object","properties":{"max":{"description":"Inclusive latest timestamp.","type":["string","null"],"format":"date-time"},"min":{"description":"Inclusive earliest timestamp.","type":["string","null"],"format":"date-time"}}},"ResearchValueRange":{"type":"object","properties":{"max":{"type":"number","format":"double"},"min":{"type":"number","format":"double"}},"required":["max","min"]},"ResearchValueShapeType":{"description":"Closed write-time value shape token. Shape, not valueType, selects which write fields and validation rules apply.","type":"string","enum":["acceleratorParticipation","enumeratedToken","freeText","isoCurrencyCode","monetaryFlow","monetaryFlowOverPeriod","monetaryStock","numericCount","numericCountOrRange","numericGrowthRate","numericRatio","numericScore","targetDateAbsolute"]},"EntityComparisonSignals":{"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.","type":"object","properties":{"fundingStage":{"description":"Latest funding stage when known","oneOf":[{"$ref":"#/components/schemas/FundingStage"},{"type":"null"}]},"ownership":{"description":"Provider ownership structure (current typeOwnership tags)","type":"array","items":{"type":"string"}},"pricingModel":{"description":"Provider pricing/revenue model (current typeRevenue tags)","type":"array","items":{"type":"string"}},"sellsTo":{"description":"Customer types the provider sells to (current typeCustomer tags)","type":"array","items":{"type":"string"}},"totalRaised":{"description":"Total capital raised in USD, each round converted at its announcement-date rate; null when no round converts to USD or no funding is known","type":["number","null"]},"website":{"description":"Provider website URL when known","type":["string","null"],"format":"uri"}},"required":["ownership","pricingModel","sellsTo"]},"RelationshipDirection":{"description":"How entities relationships create interprets sourceEntityId and targetEntityId.","type":"string","enum":["symmetric","typeOriented","directional"]},"IdentificationCandidate":{"description":"One existing record considered as the subject.","type":"object","properties":{"createdAt":{"description":"When the record was created. A record created moments before the lookup is newly added and not yet researched.","type":["string","null"],"format":"date-time"},"dataCompletionCoverage":{"description":"Percentage, 0 to 100, of this company\'s core profile facts that aVenture holds, as last computed. It measures how complete the record is, not how likely it is the subject. Absent for people and for companies not yet computed.","type":["integer","null"],"format":"int32"},"domainAgreement":{"description":"Whether this record\'s stored website agrees with a url the subject supplied; see IdentificationDomainAgreement.","type":["string","null"],"enum":["MATCH","CONFLICT","UNKNOWN"]},"duplicateBasis":{"description":"How this record was checked as the picked record stored again; absent when it was not checked.","type":["string","null"],"enum":["STUB","SHARED_FACT","JUDGED"]},"duplicateProbability":{"description":"Probability, 0 to 1, that this record is the picked record stored again; present only when duplicateBasis is JUDGED.","type":["number","null"],"format":"double"},"foundedYear":{"description":"The year the entity was founded, when stored; absent for people and records without one.","type":["integer","null"],"format":"int32"},"owner":{"$ref":"#/components/schemas/EntityPersonOwner","description":"Entity identity (entityId) or person identity (personId). record.typeRecord distinguishes a company, product, or service; read it with GET /v1/entities/{entityId} or GET /v1/people/{personId}."},"probability":{"description":"Confidence, 0 to 1, that this record is the subject: the one confidence to act on. Absent when an exact id, URL, slug, or registry-id match settled the answer, which needs no confidence, or when this record was not compared.","type":["number","null"],"format":"double"},"record":{"$ref":"#/components/schemas/SearchDuplicateCandidateScore","description":"The record with its duplicate-check score and reasons; score 0 with no reason means only vector similarity proposed it."},"updatedAt":{"description":"When the stored record was last updated.","type":["string","null"],"format":"date-time"},"website":{"description":"The record\'s current primary website URL as stored. Compare it to the subject\'s own url before trusting a same-name match; domainAgreement already does.","type":["string","null"]}},"required":["owner","record"]},"UrlHostFormResolution":{"description":"Fresh HTTP evidence and the preferred same-site host form of a submitted URL.","type":"object","properties":{"concluded":{"description":"True only when live evidence landed on the submitted apex/www host pair, or the exact submitted host for URLs without that pair.","type":"boolean"},"crawlCdnProvider":{"description":"Edge provider observed by this probe.","oneOf":[{"$ref":"#/components/schemas/EntityUrlCrawlCdnProvider"},{"type":"null"}]},"crawlRenderMode":{"description":"Render requirement established from static and rendered readings of the same page.","oneOf":[{"$ref":"#/components/schemas/EntityUrlCrawlRenderMode"},{"type":"null"}]},"landingHost":{"description":"Host the live answer landed on after redirects; absent for other outcomes.","type":["string","null"]},"outcome":{"description":"Typed outcome from the fresh probe; absent when no probe ran.","type":["string","null"],"enum":["success","refusal","rejection","noResponse","transient"]},"status":{"description":"Fresh HTTP status or classified probe result; absent for cached write normalization.","type":["string","null"]},"submittedUrl":{"description":"The URL submitted for this probe.","type":"string"},"url":{"description":"Preferred same-site URL; submittedUrl when evidence is inconclusive.","type":"string"}},"required":["concluded","submittedUrl","url"]},"SearchDuplicateCandidateScore":{"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.","type":"object","properties":{"externalId":{"description":"Matched external identifier when duplicate scoring used one.","type":["string","null"]},"id":{"description":"Candidate id to read or update when this candidate is the requested record.","type":"string","format":"uuid"},"name":{"description":"Candidate display name from the existing record.","type":["string","null"]},"operatingStatus":{"description":"Current operating status for entity candidates.","type":["string","null"]},"publicPath":{"description":"Public API/UI path for the candidate when available.","type":["string","null"]},"reason":{"description":"Match reasons such as name-exact, slug-exact, url-match, url-current, url-type, or precomputed-similarity. url-match proves the supplied URL/domain matched; url-current additionally proves the candidate still holds that address today, so a candidate with url-match but no url-current matched only through a URL it no longer uses, such as an acquisition redirect. url-type only means the candidate has the same URL category and is review context, not URL identity evidence.","type":"array","items":{"type":"string"}},"score":{"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.","type":"integer","format":"int32"},"slug":{"description":"Candidate slug from the existing record.","type":["string","null"]},"typeRecord":{"description":"Candidate entity type from the existing record.","oneOf":[{"$ref":"#/components/schemas/EntityType"},{"type":"null"}]}},"required":["id","reason"]},"UniqueIdMutation":{"description":"Create or update payload for attaching an external identifier to an owner. For PATCH, omitted fields preserve their existing values and source may be explicitly cleared with null.","type":"object","properties":{"idType":{"description":"Identifier type token, for example ein, secCik, or ticker.","type":["string","null"]},"identifier":{"description":"Identifier value as issued by the registry.","type":["string","null"]},"source":{"description":"Optional attribution source label for the mapping.","type":["string","null"]}}},"EntityFilterEntry":{"description":"Filter entry payload served by list filter endpoints","type":"object","properties":{"chart":{"description":"Chart filter values","type":"array","items":{"$ref":"#/components/schemas/ChartBucket"}},"choiceOption":{"description":"Choice option filter values","type":"array","items":{"$ref":"#/components/schemas/EntityFilterChoice"}},"choiceOptionTotal":{"description":"Total eligible choice option values for this filter","type":["integer","null"],"format":"int32"},"choiceOptionTruncated":{"description":"Whether additional eligible choices exist beyond choiceOption","type":["boolean","null"]},"controlType":{"$ref":"#/components/schemas/EntityFilterControlType","description":"Control type used to render the filter"},"filterKey":{"description":"Canonical filter key","type":"string"},"filterMeta":{"description":"Optional entity-specific filter metadata","oneOf":[{"$ref":"#/components/schemas/EntityFilterMeta"},{"type":"null"}]},"label":{"description":"Display label for the filter","type":"string"},"scope":{"description":"Optional numeric scope for the filter","oneOf":[{"$ref":"#/components/schemas/EntityFilterScope"},{"type":"null"}]}},"required":["chart","choiceOption","controlType","filterKey","label"]},"RefinementMeta":{"description":"Meta","type":"object","properties":{"degraded":{"description":"Whether retrying may improve scoped choice totals","type":"boolean"},"limit":{"description":"Maximum entities sampled for displayed choices.","type":"integer","format":"int32"},"page":{"description":"Zero-based result page used to build the refinement.","type":"integer","format":"int32"},"total":{"description":"Total entities matching the active filter; null when unavailable.","type":["integer","null"],"format":"int32"}},"required":["degraded","limit","page"]},"ChartBucket":{"description":"Typed bucket for range histogram charts","type":"object","properties":{"amount":{"description":"Amount","type":"integer","format":"int64"},"end":{"description":"Exclusive bucket end value","type":"integer","format":"int64"},"start":{"description":"Inclusive bucket start value","type":"integer","format":"int64"}},"required":["amount","end","start"]},"EntityFilterChoice":{"description":"Filter choice payload served by filter endpoints","type":"object","properties":{"label":{"description":"Display label for the option","type":"string"},"scope":{"description":"Optional numeric scope for the option","oneOf":[{"$ref":"#/components/schemas/EntityFilterScope"},{"type":"null"}]},"value":{"description":"Canonical option value","type":"string"}},"required":["label","value"]},"EntityFilterControlType":{"description":"Render control discriminator for filter UI components","type":"string","enum":["checkbox","range","currencyRange","dateRange"]},"EntityFilterMeta":{"description":"API response fragment for entity filter metadata","type":"object","properties":{"ui":{"description":"UI metadata for rendering entity filter controls","oneOf":[{"$ref":"#/components/schemas/EntityFilterUiMeta"},{"type":"null"}]}}},"EntityFilterScope":{"description":"Numeric min/max bounds for range filter values","type":"object","additionalProperties":false,"properties":{"max":{"description":"Maximum scope value","type":["integer","null"],"format":"int64"},"min":{"description":"Minimum scope value","type":["integer","null"],"format":"int64"}}},"EntityFilterUiMeta":{"description":"UI-only metadata used for rendering entity filter panels","type":"object","properties":{"headquartersOption":{"oneOf":[{"$ref":"#/components/schemas/EntityFilterHeadquartersOptionSet"},{"type":"null"}]}}},"EntityFilterHeadquartersOptionSet":{"description":"Headquarters option hierarchy","type":"object","properties":{"country":{"description":"Countries with their states and cities","type":"array","items":{"$ref":"#/components/schemas/EntityFilterHeadquartersCountry"}}},"required":["country"]},"EntityFilterHeadquartersCountry":{"description":"Country with its states (and optionally cities)","type":"object","properties":{"country":{"description":"Country name","type":"string"},"state":{"description":"States within the country","type":"array","items":{"$ref":"#/components/schemas/EntityFilterHeadquartersStateCity"}}},"required":["country","state"]},"EntityFilterHeadquartersStateCity":{"description":"City within a state","type":"object","properties":{"city":{"description":"Cities within the state; empty when only states were requested","type":"array","items":{"type":"string"}},"state":{"description":"State name","type":"string"}},"required":["city","state"]},"EntityFilterOptionSetMeta":{"description":"Generator metadata for a filter payload","type":"object","properties":{"defaultOptionLimit":{"description":"Default maximum option count","type":"integer","format":"int32"},"defaultTypeGroup":{"$ref":"#/components/schemas/EntityTypeGroup","description":"Default type group"},"distributionKey":{"description":"Filter keys that include distribution data","type":"array","items":{"type":"string"}},"generatedAt":{"description":"Generation timestamp","type":"string","format":"date-time"},"includeDistribution":{"description":"Whether distribution data is included","type":"boolean"},"includePrivate":{"description":"Whether private filter options are included","type":"boolean"},"includedTypeRecord":{"description":"Entity type records included in the filter payload","type":"array","items":{"type":"string"}},"optionMode":{"$ref":"#/components/schemas/EntityFilterOptionMode","description":"Option mode used to generate option lists"},"requestedTypeGroup":{"description":"Requested entity type group","type":"string"},"typeGroupMembership":{"description":"Type group membership filter values","type":"array","items":{"$ref":"#/components/schemas/EntityTypeGroupMembership"}}},"required":["defaultOptionLimit","distributionKey","generatedAt","includeDistribution","includePrivate","includedTypeRecord","optionMode","requestedTypeGroup"]},"EntityFilterOptionMode":{"description":"Filter option mode","type":"string","enum":["TOP_RESULTS","FULL_RESULTS"]},"EntityTypeGroupMembership":{"description":"Canonical concrete entity types included by one entity type group.","type":"object","properties":{"typeGroup":{"$ref":"#/components/schemas/EntityTypeGroup"},"typeRecord":{"type":"array","items":{"$ref":"#/components/schemas/EntityType"}}},"required":["typeGroup","typeRecord"]},"ClassificationCatalogBucket":{"description":"Classification bucket with active registry tags and accepted-spelling aliases.","type":"object","properties":{"alias":{"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.","type":"array","items":{"type":"string"}},"bucket":{"description":"Canonical classification bucket key.","type":["string","null"]},"hierarchical":{"description":"Whether the bucket has hierarchy semantics.","type":"boolean"},"label":{"description":"Human-readable bucket label (e.g. \'Revenue Model\').","type":"string"},"tag":{"description":"Active tags only. Empty when includeTags=false.","type":"array","items":{"$ref":"#/components/schemas/EntityTag"}},"tagCount":{"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":"integer","format":"int32"},"type":{"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[].","type":"string"}},"required":["alias","hierarchical","label","tag","tagCount","type"]},"ClassificationCatalogCategory":{"description":"Standardized classification category with accepted spellings and registry rows.","type":"object","properties":{"alias":{"description":"Accepted spellings for this category.","type":"array","items":{"type":"string"}},"category":{"description":"Canonical standardized category key.","type":"string"},"classification":{"description":"Standardized classifications. Empty when includeTags=false.","type":"array","items":{"$ref":"#/components/schemas/StandardizedClassification"}},"classificationCount":{"description":"Total standardized classifications in this category.","type":"integer","format":"int32"},"hierarchical":{"description":"Whether the category has hierarchy semantics.","type":"boolean"},"label":{"description":"Human-readable category label.","type":"string"}},"required":["alias","category","classification","classificationCount","hierarchical","label"]},"EnrichmentRefusalType":{"description":"Why a batch enrichment filed no run: NOT_FOUND for an unknown record; ALLOWANCE_EXHAUSTED when the record\'s company or person research allowance is spent and additional usage is off or at its spend cap or prepaid credit; AMBIGUOUS when the record\'s profile matches more than one current record; SUBSCRIPTION_REQUIRED when the subscription stopped covering research mid-batch, such as additional usage while past due. Readers accept members they do not yet know","type":"string","x-extensible-enum":["NOT_FOUND","ALLOWANCE_EXHAUSTED","AMBIGUOUS","SUBSCRIPTION_REQUIRED"]},"SharedDirectoryList":{"description":"Public directory publication metadata.","type":"object","properties":{"createdAt":{"type":"string","format":"date-time"},"directory":{"$ref":"#/components/schemas/SharedDirectoryType"},"heading":{"description":"Page heading the model wrote for the view.","type":"string"},"id":{"description":"Stable shared-directory UUID","type":"string","format":"uuid"},"slug":{"description":"Canonical lowercase URL slug for the resource","type":"string"}},"required":["createdAt","directory","heading","id","slug"]},"SharedDirectoryType":{"description":"Public directory page whose filtered view is shared.","type":"string","enum":["companies","investors","people"]},"BillingPaymentMethod":{"description":"Card on file that pays the subscription.","type":"object","properties":{"brand":{"description":"Card brand as Stripe reports it","type":"string"},"expiryMonth":{"description":"Expiry month, 1 through 12","type":"integer","format":"int32"},"expiryYear":{"description":"Four-digit expiry year","type":"integer","format":"int32"},"last4":{"description":"Last four digits of the card number","type":"string"}},"required":["brand","expiryMonth","expiryYear","last4"]},"BillingDiscount":{"description":"A coupon applied to the next invoice.","type":"object","properties":{"amountOff":{"description":"Fixed amount taken off in the minor unit; absent for a percentage coupon","type":["integer","null"],"format":"int64"},"discountedAmount":{"description":"Amount this discount takes off the next invoice, minor unit","type":"integer","format":"int64"},"endsAt":{"description":"When the discount stops applying; absent when it never ends","type":["string","null"],"format":"date-time"},"name":{"description":"Coupon name shown to the customer; absent when it has none","type":["string","null"]},"percentOff":{"description":"Percentage taken off; absent for a fixed-amount coupon","type":["number","null"]}},"required":["discountedAmount"]},"ResearchAllowanceUsage":{"type":"object","properties":{"company":{"$ref":"#/components/schemas/ResearchAllowance","description":"Research runs on company targets, new or existing"},"entityBrand":{"$ref":"#/components/schemas/ResearchAllowance","description":"Thin company brand reads (names, logos, links, tags)"},"entityView":{"$ref":"#/components/schemas/ResearchAllowance"},"newCompany":{"$ref":"#/components/schemas/ResearchAllowance","description":"Deprecated: replaced by company, which it mirrors."},"newPerson":{"$ref":"#/components/schemas/ResearchAllowance","description":"Deprecated: replaced by person, which it mirrors."},"person":{"$ref":"#/components/schemas/ResearchAllowance","description":"Research runs on person-profile targets, new or existing"},"personView":{"$ref":"#/components/schemas/ResearchAllowance"},"update":{"$ref":"#/components/schemas/ResearchAllowance","description":"Deprecated: replaced by company, which it mirrors."},"updatePerson":{"$ref":"#/components/schemas/ResearchAllowance","description":"Deprecated: replaced by person, which it mirrors."},"webSearch":{"$ref":"#/components/schemas/ResearchAllowance"}},"required":["company","entityBrand","entityView","newCompany","newPerson","person","personView","update","updatePerson","webSearch"]},"BillingPlanType":{"description":"Canonical paid billing plan offered by aVenture.","type":"string","x-extensible-enum":["PLUS_MONTHLY","PLUS_YEARLY","PRO_MONTHLY","PRO_YEARLY","PRO_YEARLY_PROMOTION","UNLIMITED_MONTHLY"],"x-aventure-parsed-enum":true},"BillingRecurringPrice":{"type":"object","properties":{"cadence":{"description":"ISO 8601 billing period.","type":"string"},"currency":{"description":"ISO 4217 currency code.","type":"string"},"unitAmount":{"description":"Recurring charge in the currency\'s minor unit, before discounts","type":"integer","format":"int64"}},"required":["cadence","currency","unitAmount"]},"BillingCatalogAdditionalUsage":{"description":"Price of one unit of usage past a paid tier\'s monthly cap.","type":"object","properties":{"type":{"$ref":"#/components/schemas/BillingAdditionalUsageType"},"unitAmount":{"description":"US cents per unit; may be fractional, such as 2.5.","type":"number"}},"required":["type","unitAmount"]},"BillingCatalogCreditPack":{"description":"One prepaid credit pack.","type":"object","properties":{"amountCents":{"description":"Credit granted and price charged, in US cents.","type":"integer","format":"int64"},"pack":{"$ref":"#/components/schemas/BillingCreditPackType"}},"required":["amountCents","pack"]},"BillingCatalogPlan":{"description":"One Checkout plan and its recurring price.","type":"object","properties":{"appStoreProductId":{"description":"App Store product id that sells this plan in the iOS and Mac apps; absent when the plan sells only on the web.","type":["string","null"]},"cadence":{"description":"ISO 8601 billing period.","type":"string"},"currency":{"description":"ISO 4217 currency code.","type":"string"},"displayName":{"type":"string"},"introductoryAmount":{"description":"First invoice amount when an automatic, one-time Checkout offer is available; absent otherwise. Renewals use unitAmount.","type":["integer","null"],"format":"int64"},"plan":{"$ref":"#/components/schemas/BillingPlanType"},"tier":{"type":"string","enum":["ESSENTIAL","PLUS","PRO","UNLIMITED"]},"unitAmount":{"description":"Price per cadence in the currency\'s minor unit, such as cents.","type":"integer","format":"int64"}},"required":["cadence","currency","displayName","plan","tier","unitAmount"]},"BillingCatalogTier":{"description":"One subscription tier and its monthly caps.","type":"object","properties":{"aiCreditLimit":{"description":"Researchly AI credits per Researchly billing period; 0 withholds them and absent means uncapped.","type":["integer","null"],"format":"int32"},"allowance":{"type":"array","items":{"$ref":"#/components/schemas/BillingCatalogAllowance"}},"description":{"description":"Who the tier is for, in one or two sentences; it states no caps or prices, which allowance and plan carry.","type":"string"},"displayName":{"type":"string"},"tier":{"type":"string","enum":["ESSENTIAL","PLUS","PRO","UNLIMITED"]}},"required":["allowance","description","displayName","tier"]},"BillingCatalogAllowance":{"description":"A tier\'s monthly cap for one allowance.","type":"object","properties":{"limit":{"description":"Monthly cap; 0 withholds the allowance and absent means uncapped.","type":["integer","null"],"format":"int32"},"type":{"$ref":"#/components/schemas/ResearchAllowanceType"}},"required":["type"]},"BillingCreditPackType":{"description":"Prepaid additional-usage credit pack.","type":"string","enum":["USD_25","USD_50","USD_100","USD_250"]},"BillingAdditionalUsageType":{"description":"One metered allowance a paid subscriber may use past its monthly cap.","type":"string","enum":["COMPANY","PERSON","ENTITY_VIEW","ENTITY_BRAND","PERSON_VIEW","WEB_SEARCH","AI_CREDIT"]},"BillingCheckoutUiMode":{"description":"HOSTED_PAGE redirects the browser to Stripe\'s page at url. ELEMENTS renders the Payment Element in the caller\'s page with Stripe.js initCheckout using clientSecret and publishableKey, then confirms there.","type":"string","enum":["HOSTED_PAGE","ELEMENTS"]},"ResearchAccessType":{"description":"What filing one more research run does now. `INCLUDED`: the plan\'s monthly allowance covers it. `ADDITIONAL_USAGE`: the allowance is spent or withheld, and the run is billed as additional usage (prepaid credit or invoice). `EXHAUSTED`: the plan\'s allowance is spent and no additional usage can pay for it (off, spend cap reached, or prepaid credit below the unit price); filing answers 429. `PLAN_REQUIRED`: the plan includes no research and no additional usage can pay for it; filing answers 402 or 429. `BILLING_BLOCKED`: a paid plan is past due, unpaid, incomplete, or paused, or an additional-usage invoice is unpaid; filing answers 402.","type":"string","x-extensible-enum":["INCLUDED","ADDITIONAL_USAGE","EXHAUSTED","PLAN_REQUIRED","BILLING_BLOCKED"]},"BillingAdditionalUsageFundingType":{"description":"PREPAID_CREDIT spends purchased credit packs and stops when they run out. USAGE_INVOICE bills an invoice each time unbilled usage reaches invoiceIncrementCents, up to spendCapCents per month.","type":"string","enum":["PREPAID_CREDIT","USAGE_INVOICE"]},"BillingAdditionalUsageMeter":{"description":"One meter\'s additional usage this UTC month.","type":"object","properties":{"amountCents":{"description":"Price of those units in cents.","type":"number"},"quantity":{"type":"integer","format":"int32"},"type":{"$ref":"#/components/schemas/BillingAdditionalUsageType"}},"required":["amountCents","quantity","type"]},"AuthClient":{"type":"object","properties":{"authorizationServer":{"description":"OAuth authorization server URI","type":"string","format":"uri"},"clientId":{"description":"Public OAuth client identifier","type":"string"},"mcpResource":{"description":"OAuth resource indicator accepted for this environment\'s MCP server","type":["string","null"],"format":"uri"},"redirectUri":{"description":"Registered loopback callback URI template","type":"string","format":"uri"},"resource":{"description":"OAuth resource indicator accepted by the API","type":"string","format":"uri"},"scope":{"description":"OAuth scope requested by the CLI","type":"array","items":{"type":"string"}}},"required":["authorizationServer","clientId","redirectUri","resource","scope"]},"AuthOperation":{"description":"Generated API operation candidate identified by operation id, method, and path.","type":"object","properties":{"authorizationPath":{"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.","type":"string"},"method":{"$ref":"#/components/schemas/AuthOperationMethod","description":"HTTP method of the operation."},"operationId":{"description":"Generated OpenAPI operation id.","type":"string"},"path":{"description":"Absolute API path. A whole path segment may be an OpenAPI placeholder such as {entityId}.","type":"string"}},"required":["authorizationPath","method","operationId","path"]},"AuthOperationAccess":{"description":"Current session access class: ordinary reads, explicit permissions, or admin.","type":"string","enum":["READ","PERMISSION","ADMIN"]},"AuthOperationMethod":{"description":"HTTP method of a generated aVenture API operation.","type":"string","enum":["GET","POST","PUT","PATCH","DELETE"]},"CliAuthorizationDelivery":{"description":"RSA-wrapped AES-256-GCM delivery of one API-key secret","type":"object","properties":{"algorithm":{"$ref":"#/components/schemas/CliAuthorizationEncryptionAlgorithm","description":"Hybrid encryption suite used for this delivery"},"authenticationTag":{"description":"Base64-encoded 16-byte AES-GCM authentication tag","type":"string"},"ciphertext":{"description":"Base64-encoded encrypted UTF-8 API-key secret bytes","type":"string"},"nonce":{"description":"Base64-encoded 12-byte AES-GCM nonce","type":"string"},"wrappedKey":{"description":"Base64-encoded RSA-OAEP-wrapped AES key","type":"string"}},"required":["algorithm","authenticationTag","ciphertext","nonce","wrappedKey"]},"CliAuthorizationStatus":{"description":"CLI authorization broker lifecycle state","type":"string","enum":["PENDING","ISSUING","KEY_READY","REVOKING","CONSUMED","REVOKED","DENIED","EXPIRED","FAILED"]},"CliAuthorizationTerminalReason":{"description":"CLI authorization terminal explanation","type":"string","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","API-key quota reached","Credential issuance lost its database claim","Credential delivery encryption failed","Credential issuance finalization was lost"]},"CliAuthorizationEncryptionAlgorithm":{"description":"Versioned hybrid encryption suite for one-time CLI credential delivery","type":"string","enum":["RSA_OAEP_256_A256_GCM_V1"]},"CliAuthorizationClientPlatform":{"description":"Coarse operating-system family reported by the CLI","type":"string","enum":["MACOS","LINUX","WINDOWS","OTHER"]},"HelpCitation":{"description":"A single corpus document the help answer is grounded in.","type":"object","properties":{"excerpt":{"description":"Verbatim excerpt from the cited document supporting the answer.","type":"string"},"sourceId":{"description":"Stable id within the source type: an operationId, a skill/prompt name, a completion gate id, or a research detail type targetPath.","type":"string"},"sourceType":{"$ref":"#/components/schemas/HelpSourceType","description":"Which part of the platform corpus this citation comes from."},"sourceVersion":{"description":"Immutable version of the cited document when one exists (skill/prompt content version); null for catalog-derived sources.","type":["string","null"]}},"required":["excerpt","sourceId","sourceType"]},"HelpResolution":{"description":"Resolution of a request to a catalog task or an operation, clarification between candidates, or an abstention.","type":"object","properties":{"candidate":{"description":"Candidate operations best first; the options to choose between when the outcome is CLARIFY.","type":"array","items":{"$ref":"#/components/schemas/HelpCitation"}},"operationId":{"description":"The advised operation for OPERATION_ADVICE, or the write whose missing inputs a CLARIFY asks for.","type":["string","null"]},"outcome":{"$ref":"#/components/schemas/HelpResolutionOutcome","description":"Which of the mutually exclusive resolve outcomes was reached."},"probability":{"description":"Confidence, 0 to 1, in the chosen option (an operation, a catalog task, several, or none). A low-confidence choice becomes CLARIFY, listing the candidates.","type":["number","null"],"format":"double"},"taskKey":{"description":"The chosen catalog task for TASK_PLAN, or the task leading a CLARIFY.","type":["string","null"]},"taskPlan":{"description":"The chosen task\'s plan for TASK_PLAN when the caller may read catalog task plans; absent otherwise.","oneOf":[{"$ref":"#/components/schemas/HarnessTaskPlan"},{"type":"null"}]}},"required":["candidate","outcome"]},"HelpResolutionOutcome":{"description":"Outcome of a resolve request.","type":"string","enum":["TASK_PLAN","OPERATION_ADVICE","CLARIFY","ABSTAIN"]},"HarnessTaskPlan":{"description":"One catalog task\'s typed inputs and ordered steps with derived CLI commands and MCP tools, read from the stated catalog revision.","type":"object","properties":{"catalogRevision":{"description":"Stored catalog revision this plan was read from.","type":"integer","format":"int32"},"gateId":{"description":"Canonical completion gate ids this task is responsible for; the ids resolve through the completion contract catalog.","type":"array","items":{"type":"string"}},"input":{"description":"Typed task inputs; required inputs must be bound before it runs.","type":"array","items":{"$ref":"#/components/schemas/HarnessTaskInput"}},"step":{"description":"Steps in run order; an empty list means this catalog task is unplanned.","type":"array","items":{"$ref":"#/components/schemas/HarnessTaskPlanStep"}},"taskKey":{"description":"Agent-task catalog key.","type":"string"}},"required":["input","step"]},"HarnessTaskInput":{"description":"One typed task input, required unless explicitly marked optional.","type":"object","properties":{"allowedValue":{"description":"Optional exact literal accepted for a TEXT input; when present, the run and its mutation guard require this value instead of accepting an arbitrary string.","type":["string","null"]},"description":{"description":"What the value is, written for the caller that supplies it.","type":"string"},"key":{"description":"Input key, unique within its task.","type":"string"},"required":{"description":"Whether this input must be bound before admission. Defaults to true; an omitted optional input stays unbound and is never inferred from the prompt.","type":"boolean","default":true},"type":{"$ref":"#/components/schemas/HarnessTaskInputType","description":"How the value is bound."}},"required":["description","key","type"]},"HarnessTaskPlanStep":{"description":"One task step with the CLI command and MCP tool that run its operation.","type":"object","properties":{"cliCommand":{"description":"CLI command path that runs the step\'s operation; the caller supplies required flags.","type":"string"},"mcpTool":{"description":"MCP tool that runs the step\'s operation; null for CLI-only operations. Supply arguments matching the tool\'s schema.","type":["string","null"]},"step":{"$ref":"#/components/schemas/HarnessTaskStep","description":"The stored step."},"writeGuidance":{"description":"What the server expects of the prose this step writes, derived from the operation\'s judged prose type when the plan is read; null when the step writes no judged prose.","oneOf":[{"$ref":"#/components/schemas/HarnessTaskWriteGuidance"},{"type":"null"}]}},"required":["cliCommand","step"]},"HarnessTaskStep":{"description":"One ordered task step: its key, instruction, the operation that runs it, and the delegated plans it follows.","type":"object","properties":{"instruction":{"description":"What this step does, written for the agent that runs it.","type":"string"},"operationId":{"description":"OpenAPI operationId this step calls; it must be in the task\'s operation list.","type":"string"},"planTaskKey":{"description":"Agent-task keys whose plans this step follows instead of restating their steps: the task then owns each named plan\'s steps, so a write one of them commits counts for this task too. Each must name another planned task; a key may appear once per task and delegations must not loop.","type":"array","items":{"type":"string"}},"stepKey":{"description":"Step key, unique within its task.","type":"string"}},"required":["instruction","operationId"]},"HarnessTaskWriteGuidance":{"description":"The expectation, body, type hints, rejections, override, and method for one judged prose write.","type":"object","properties":{"body":{"description":"The request body keys, the key that carries the prose, and a minimal JSON example.","type":"string"},"expectation":{"description":"The one sentence the prose aims for.","type":"string"},"method":{"description":"Help sections that teach this prose, each with the command that retrieves it.","type":"array","items":{"type":"string"}},"override":{"description":"The override field, the problems it may waive, and its terms.","type":"string"},"reject":{"description":"Each problem that rejects this prose: what fails it and the fix.","type":"array","items":{"type":"string"}},"typeCatalog":{"description":"The read that serves this write\'s per-type hints; read it before writing.","type":"string"}},"required":["body","expectation","method","override","reject","typeCatalog"]},"HarnessTaskInputType":{"description":"ENTITY binds a target entity to its canonical id through entity identification; TEXT is a literal value the request states; WRITER_BRIEF is the typed research analysis a prose writer composes from (claim ledger, positioning frame, paragraph plan).","type":"string","x-extensible-enum":["ENTITY","TEXT","WRITER_BRIEF"]},"HelpSourceType":{"description":"Corpus partition a help citation is drawn from.","type":"string","x-extensible-enum":["OPERATION","SKILL","PROMPT","COMPLETION_GATE","RESEARCH_DETAIL_TYPE","RESEARCH_SNIPPET_TYPE","TEXT_TYPE"]},"HelpScope":{"description":"Operation scope a help answer may recommend: read-only, write, or all.","type":"string","enum":["READ","WRITE","ALL"]},"AddressLink":{"description":"One current or historical owner association to an address","type":"object","properties":{"id":{"description":"Association join id, scoped to the entity or person owner kind","type":"integer","format":"int32"},"owner":{"$ref":"#/components/schemas/EntityPersonOwner"},"role":{"description":"Association role; null means unclassified","oneOf":[{"$ref":"#/components/schemas/AddressAssociationRole"},{"type":"null"}]}},"required":["id","owner"]},"CurrentSlugOwner":{"description":"Current slug owner","type":"object","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":"Details of an HTTP 409 conflict. conflictType names the shape: URL_DUPLICATE when the URL is already a current URL on another record; STRICT_URL_LOOKUP when an exact URL lookup matches more than one record; DUPLICATE_CREATE_REVIEW when a create or lookup returns candidate records to review; CLASSIFICATION_INACTIVE_TAG when a classification value exists but is inactive; NEWS_SOURCE_URL when another article already has the same publication and URL.","type":"object","oneOf":[{"$ref":"#/components/schemas/UrlDuplicateConflict"},{"$ref":"#/components/schemas/StrictUrlLookupConflict"},{"$ref":"#/components/schemas/DuplicateCreateReview"},{"$ref":"#/components/schemas/ClassificationInactiveTagDetails"},{"$ref":"#/components/schemas/NewsSourceUrlConflict"}],"properties":{"conflictType":{"$ref":"#/components/schemas/DomainConflictType","description":"Conflict kind that identifies this details shape."}}},"RedirectSlugPath":{"description":"Redirect slug path","type":"object","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"]},"ProseViolation":{"description":"One rejected passage and one problem it shows; a passage with several problems appears once per problem.","type":"object","properties":{"overridable":{"description":"Whether proseOverrideReason can accept this problem; ProblemDetail.hint says when an override is allowed.","type":"boolean"},"passage":{"description":"The rejected sentence, the whole text for a text-contract violation, or the source URL for a legal-page source.","type":"string"},"problem":{"$ref":"#/components/schemas/ProseProblem","description":"The problem this passage shows."},"reason":{"description":"Why the passage was rejected and how to fix it.","type":"string"}},"required":["overridable","passage","problem","reason"]},"ProblemResolution":{"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.","type":"object","properties":{"acceptedValue":{"description":"Accepted values for the field or parameter, when enumerable.","type":["array","null"],"items":{"type":"string"}},"action":{"description":"Next action category for the client or agent.","type":"string","enum":["setField","setParameter","removeParameter","useEndpoint","reviewCandidates","authenticate"]},"endpoint":{"description":"Endpoint to call for the next action, when applicable.","type":["string","null"]},"fieldPath":{"description":"Request-body field path that needs attention, when applicable.","type":["string","null"]},"parameter":{"description":"Query or path parameter that needs attention, when applicable.","type":["string","null"]},"retryable":{"description":"Whether the same logical request can be retried after the next action.","type":["boolean","null"]}},"required":["action"]},"ProblemType":{"description":"Known RFC 9457 error type URIs.","type":"string","format":"uri","x-extensible-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/malformed-token","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/access-denied","https://api.aventure.vc/errors/not-found","https://api.aventure.vc/errors/endpoint-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/billing-additional-usage-cap-reached","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/target-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"]},"ProseProblem":{"description":"Why a sentence or paragraph of entity text or a research snippet was rejected.","type":"string","x-extensible-enum":["source","record","disclaimer","voice","marketing","chained","structured","tense","temporal","factList","mojibake","unsupported","legalSource","textContract"]},"UrlDuplicateConflict":{"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; inspect its identity before changing ownership. An offering sharing its provider\'s homepage uses the provider relationship without a duplicate URL row.","type":"object","properties":{"conflictType":{"$ref":"#/components/schemas/DomainConflictType","description":"Conflict kind that identifies this details shape.","enum":["URL_DUPLICATE"]},"existingJoin":{"description":"Every current owner that already holds the normalized URL with this urlType. Non-empty when this conflict is emitted.","type":"array","items":{"$ref":"#/components/schemas/UrlDuplicateJoin"}},"fragmentIgnored":{"description":"True when URL fragment differences were ignored during duplicate matching (i.e., the conflict ignores everything after \'#\').","type":"boolean"},"guidance":{"description":"Human-readable guidance on how to resolve the conflict. Defaults to the standard identity and URL ownership checks.","type":"string"},"normalizedUrl":{"description":"Normalized URL match key used for duplicate detection. Null when normalization could not produce a stable key (e.g., malformed input).","type":["string","null"]},"requestedOwner":{"$ref":"#/components/schemas/EntityPersonOwner","description":"Owner the caller attempted to attach the URL to."},"url":{"description":"Raw URL as submitted by the caller (pre-normalization).","type":"string"},"urlType":{"description":"URL type submitted by the caller (e.g., \'website\', \'twitter\'). The conflict applies only within this urlType.","type":"string"}},"required":["conflictType","existingJoin","fragmentIgnored","guidance","requestedOwner","url","urlType"]},"StrictUrlLookupConflict":{"description":"Typed extension on ProblemDetail.details for HTTP 409 when a strict URL lookup (GET /v1/entities/lookup-exact?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.","type":"object","properties":{"candidateEntityId":{"description":"Every entity id that currently owns the normalized URL. May be empty when the conflict is between persons; combined with candidatePersonId always > 1.","type":"array","items":{"description":"Canonical entity UUID","type":"string","format":"uuid"}},"candidatePersonId":{"description":"Every person id that currently owns the normalized URL. May be empty when the conflict is between entities; combined with candidateEntityId always > 1.","type":"array","items":{"description":"Canonical person UUID","type":"string","format":"uuid"}},"conflictType":{"$ref":"#/components/schemas/DomainConflictType","description":"Conflict kind that identifies this details shape.","enum":["STRICT_URL_LOOKUP"]},"hint":{"description":"Human-readable hint describing which disambiguating query parameters to add.","type":"string"},"normalizedUrl":{"description":"Normalized URL match key the lookup resolved against. Null when normalization could not produce a stable key.","type":["string","null"]},"url":{"description":"Raw URL the caller queried.","type":"string"},"urlType":{"description":"URL type the caller specified, or null if the lookup did not constrain by urlType.","type":["string","null"]}},"required":["candidateEntityId","candidatePersonId","conflictType","hint","url"]},"DuplicateCreateReview":{"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.","type":"object","properties":{"candidate":{"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.","type":["array","null"],"items":{"$ref":"#/components/schemas/SearchDuplicateCandidateScore"}},"conflictType":{"$ref":"#/components/schemas/DomainConflictType","description":"Conflict kind that identifies this details shape.","enum":["DUPLICATE_CREATE_REVIEW"]},"newsCandidate":{"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.","type":["array","null"],"items":{"$ref":"#/components/schemas/NewsCandidateScore"}},"overridePath":{"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.","type":["string","null"]},"threshold":{"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.","type":"integer","format":"int32"}},"required":["conflictType","threshold"]},"ClassificationInactiveTagDetails":{"description":"ProblemDetail.details for HTTP 409 when a classification value exists but is inactive.","type":"object","properties":{"availableOverrides":{"description":"Allowed inactiveTagOverride values for this conflict","type":"array","items":{"$ref":"#/components/schemas/EntityClassificationInactiveTagOverride"}},"conflictType":{"$ref":"#/components/schemas/DomainConflictType","description":"Conflict kind that identifies this details shape.","enum":["CLASSIFICATION_INACTIVE_TAG"]},"slug":{"description":"Existing dormant value slug or lookup key","type":"string"},"tagId":{"description":"Existing tag id","type":"integer","format":"int32"}},"required":["availableOverrides","conflictType","slug","tagId"]},"NewsSourceUrlConflict":{"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.","type":"object","properties":{"conflictType":{"$ref":"#/components/schemas/DomainConflictType","description":"Conflict kind that identifies this details shape.","enum":["NEWS_SOURCE_URL"]},"conflictingArticleId":{"description":"Existing article id (NewsId.value) that already owns this publication + URL pair.","type":"integer","format":"int32"},"conflictingArticleSlug":{"description":"Existing article slug, or empty string when the existing article has no slug. Use with GET /v1/news/lookup?slug= to fetch the conflicting article.","type":"string"},"conflictingArticleTitle":{"description":"Existing article title for human-readable diagnostics.","type":"string"}},"required":["conflictType","conflictingArticleId","conflictingArticleSlug","conflictingArticleTitle"]},"DomainConflictType":{"description":"Conflict kind that identifies which details shape a 409 response carries.","type":"string","x-extensible-enum":["URL_DUPLICATE","STRICT_URL_LOOKUP","DUPLICATE_CREATE_REVIEW","CLASSIFICATION_INACTIVE_TAG","NEWS_SOURCE_URL"]},"EntityClassificationInactiveTagOverride":{"description":"Caller-chosen handling when the canonical classification value exists but is dormant.","type":"string","enum":["REACTIVATE","ATTACH_INACTIVE"]},"NewsCandidateScore":{"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.","type":"object","properties":{"externalId":{"description":"Matched external article identifier when duplicate scoring used one.","type":["string","null"]},"id":{"description":"News article id to read or update when this candidate is the requested article.","type":"integer","format":"int32"},"publicationScore":{"description":"Portion of score contributed by the publication match alone; 0 when the publication did not match. A candidate whose score minus publicationScore falls below the review threshold matched only on its outlet, not its story.","type":"integer","format":"int32"},"reason":{"description":"Match reasons for reviewing the candidate. Exact reasons are decision signals regardless of whether score crosses the review threshold.","type":"array","items":{"type":"string"}},"score":{"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.","type":"integer","format":"int32"},"slug":{"description":"Candidate article slug from the existing record.","type":["string","null"]}},"required":["id","publicationScore","reason","score"]},"UrlDuplicateJoin":{"description":"Entity or person that currently owns a normalized URL.","type":"object","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":{"description":"Identifier of the existing URL record that already holds this address.","type":"integer","format":"int32"}},"required":["owner","urlId"]},"SystemBuildDetail":{"description":"Application build metadata","type":"object","properties":{"artifact":{"description":"Artifact identifier","type":["string","null"]},"group":{"description":"Group identifier","type":["string","null"]},"name":{"description":"Project name","type":["string","null"]},"revision":{"description":"Deployed Git commit revision","type":["string","null"]},"time":{"description":"Build timestamp","type":["string","null"],"format":"date-time"},"version":{"description":"Project version","type":["string","null"]}}}}}}',ar;function or(){return ar??=JSON.parse(ir),ar}function sr(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 J(`${e.operationId} does not declare header '${i}'.`);if(Object.hasOwn(r,t.name))return J(`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?se(`OpenAPI request headers validated`,r):J(`${e.operationId} requires header '${i.name}'.`)}function cr(e){let t=f(or().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}var lr=16e3,ur=(e,t=lr)=>e.length<=120&&ve.byteLength(`${e.join(`
|
|
97
|
+
`)}\n`,`utf8`)<=t,dr=(e,t=!1,n=!1,r=1)=>{let i=_e(e),a=t||i.endsWith(`
|
|
98
|
+
`),o=i.endsWith(`
|
|
99
|
+
`)?i.slice(0,-1):i,s=o.length===0?[]:o.split(`
|
|
100
|
+
`),c=ve.byteLength(`${s.join(`
|
|
101
|
+
`)}\n`,`utf8`);if(s.length<=120&&c<=16e3)return`${s.join(`
|
|
102
|
+
`)}${a?`
|
|
103
|
+
`:``}`;let l=n?Math.min(Math.max(1,r),118):0,u=l>0?s.slice(-l):[],d=u.length===0?s:s.slice(0,-u.length),f=[s.length>120?`120 physical lines`:``,c>16e3?`${lr} UTF-8 bytes`:``].filter(Boolean).join(` and `),p=e=>_e(`... output truncated: ${e} more lines omitted to stay within ${f}; recover omitted response content with --data --to-file <path>, narrower server-side filters, or the relevant sub-resource operation (aventure_help names it); MCP structuredContent carries the full envelope up to 50KB.`),m=(e,t)=>[...e,...u,t].join(`
|
|
104
|
+
`),h=120-u.length-1,g=d.slice(0,h),_=p(s.length-g.length-u.length);for(;ve.byteLength(`${m(g,_)}\n`,`utf8`)>lr;){if(g.length>0)g=g.slice(0,-1);else if(u.length>0)u=u.slice(1);else break;_=p(s.length-g.length-u.length)}return`${m(g,_)}${a?`
|
|
105
|
+
`:``}`},fr=e=>dr(hr(e.trimEnd().split(`
|
|
106
|
+
`),120).join(`
|
|
107
|
+
`),e.endsWith(`
|
|
108
|
+
`)),pr=new Set([`core`,`nameFull`,`nameBrand`,`name`,`title`,`fundingDetail`,`round`,`dateAnnounced`,`amountRaised`,`person`,`fundraiseRound`]),mr=5;function hr(e,t,n=lr){let r=e=>e.length<=t&&ur(e,n);if(r(e))return e;let i=gr(e),a=e=>[...Or(i,e-1),`... output folded to fit 120 lines and ${lr} UTF-8 bytes; "(+N lines)" and "N more" mark hidden content; read it whole with --data --to-file <path> or the section's sub-resource operation; MCP structuredContent carries the full envelope up to 50KB.`],o=2,s=t,c=a(o);for(;o<=s;){let e=Math.floor((o+s)/2),t=a(e);r(t)?(c=t,o=e+1):s=e-1}return c}function gr(e){let t={line:``,child:[]},n=[{node:t,indent:-1}];for(let t of e){let e=yr(t);for(;n.length>1&&(n.at(-1)?.indent??-1)>=e;)n.pop();let r={line:t,child:[]};n.at(-1)?.node.child.push(r),n.push({node:r,indent:e})}return t.child}var _r=new WeakMap,vr=e=>{let t=_r.get(e);if(t!==void 0)return t;let n=e.child.reduce((e,t)=>e+vr(t),1);return _r.set(e,n),n},yr=e=>e.length-e.trimStart().length,br=/^(?:- ?|\d+\.(?: |$))/u,xr=e=>(e.line.trimStart().replace(br,``).split(/[:= ]/u)[0]??``).split(`.`).at(-1)?.replace(/\[\d+\]$/u,``)??``,Sr=e=>pr.has(xr(e)),Cr=e=>Sr(e)||!Tr(e)&&e.child.some(Cr),wr=e=>Sr(e)?vr(e):Cr(e)?e.child.reduce((e,t)=>e+wr(t),1):1,Tr=e=>br.test(e.line.trimStart()),Er=e=>e.line.trimStart().startsWith(`... `),Dr=e=>[e.line,...e.child.flatMap(Dr)];function Or(e,t){if(e.reduce((e,t)=>e+vr(t),0)<=t)return e.flatMap(Dr);if(!e.some(Tr)||!e.every(e=>Tr(e)||Er(e)))return jr(e,t);let n=e.filter(Er).map(({line:e})=>e);return[...Ar(e.filter(Tr),t-n.length),...n]}function kr(e,t){return t>=vr(e)?Dr(e):t<=1?[`${e.line} (+${vr(e)-1} lines)`]:[e.line,...Or(e.child,t-1)]}function Ar(e,t){let n=Math.max(1,Math.floor((t-1)/Math.min(e.length,mr))),r=[],i=0;for(let a of e){let e=Math.min(n,vr(a));if(r.length+e>t-1)break;r.push(...kr(a,e)),i+=1}let a=` `.repeat(yr(e[0]?.line??``));return i===e.length?r:[...r,`${a}... ${e.length-i} more`]}function jr(e,t){let n=e=>e.reduce((e,t)=>e+wr(t),0);if(e.length>t||n(e)>t&&e.some(e=>wr(e)===1)){let r=e.toSorted((e,t)=>Number(Cr(t))-Number(Cr(e))||vr(e)-vr(t)).slice(0,Math.max(0,t-1));for(;r.length>1&&wr(r.at(-1)??e[0]??{line:``,child:[]})===1&&n(r)>t-1;)r.pop();let i=` `.repeat(yr(e[0]?.line??``)),a=jr(e.filter(e=>r.includes(e)),t-1),o=e.filter(e=>!r.includes(e)).map(xr),s=o.slice(0,10).join(`, `),c=o.length>10?`, ...`:``;return[...a,`${i}... ${o.length} more fields: ${s}${c}`]}let r=e.map(e=>({node:e,allotted:1})),i=t-e.length,a=(e,t)=>e.forEach((n,r)=>{let a=Math.min(t(n.node)-n.allotted,Math.floor(i/(e.length-r)));n.allotted+=a,i-=a});return a(r.filter(({node:e})=>wr(e)>1).toSorted((e,t)=>wr(e.node)-wr(t.node)),wr),a(r.toSorted((e,t)=>vr(e.node)-e.allotted-(vr(t.node)-t.allotted)),vr),r.flatMap(({node:e,allotted:t})=>kr(e,t))}var Mr=ne([`READ`,`PERMISSION`,`ADMIN`]),Nr=ne([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`]),Pr=q({authorizationPath:G().max(2048),method:Nr,operationId:G().max(128),path:G().max(2048)}),Fr=q({permission:V(G()),role:V(G())}),Ir=q({operation:V(Pr),operationAccess:Mr,permissionGrant:Fr});new TextEncoder;var Lr=new TextDecoder,Rr=new TextDecoder(`utf-8`,{fatal:!0});function zr(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 Br=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)}},Vr=class extends Br{static code=`ERR_JWT_INVALID`;code=`ERR_JWT_INVALID`},Hr=`The input to be decoded is not correctly encoded.`;function Ur(e){try{return zr(typeof e==`string`?e:Lr.decode(e),!0)}catch(e){throw TypeError(Hr,{cause:e})}}function Wr(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 Gr(e,t,n){let r;try{r=JSON.parse(Rr.decode(Ur(e)))}catch{throw new t(n)}if(!Wr(r))throw new t(n);return r}function Kr(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 Gr(t,TypeError,n)}function qr(e){if(typeof e!=`string`)throw new Vr(`JWTs must use Compact JWS serialization, JWT must be a string`);let{1:t,length:n}=e.split(`.`);if(n===5)throw new Vr(`Only JWTs using Compact JWS serialization can be decoded`);if(n!==3)throw new Vr(`Invalid JWT`);if(!t)throw new Vr(`JWTs must contain a payload`);let r;try{r=Ur(t)}catch{throw new Vr(`Failed to base64url decode the payload`)}let i;try{i=JSON.parse(Rr.decode(r))}catch{throw new Vr(`Failed to parse the decoded payload as JSON`)}if(!Wr(i))throw new Vr(`Invalid JWT Claims Set`);return i}function Jr(e,t,n,r,i){let a=r(Yr(e,t,n,!1));return ie(a,i)?a:r(Yr(e,t,n,!0))}function Yr(e,t,n,r){let i=n.redirect?void 0:n.rolloverJob;if(i?.running===!0)return{ids:i.jobId===void 0?[]:[i.jobId],references:[`${e}${i.statusUrl}`]};let{data:a}=n,o=[`${e}${t}`],s=Qr(a)?a.sourceDocumentId:void 0;return typeof s==`string`?{ids:[s],references:[...o,`${e}/v1/research/source-documents/${s}/body`]}:{ids:r?Zr(a):[],references:o}}var Xr=2;function Zr(e,t=0){let n=t===0&&Array.isArray(e)?e:Qr(e)&&Array.isArray(e.content)?e.content:void 0;return n===void 0?!Qr(e)||t>=Xr?[]:Object.values(e).flatMap(e=>Zr(e,t+1)):n.flatMap(e=>{if(!Qr(e))return[];let t=Qr(e.entity)?e.entity:e.person,n=Qr(t)&&Qr(t.core)?t.core.id:void 0,r=Qr(e.core)?e.core.id:e.id??n;return typeof r==`string`||typeof r==`number`?[String(r)]:[]})}var Qr=e=>typeof e==`object`&&!!e&&!Array.isArray(e),$r=`actorType`,ei=`agentChassis`,ti=`agentModel`,ni=[$r,ei,ti],ri=`AVENTURE_AGENT_CHASSIS`,ii=`AVENTURE_AGENT_MODEL`,ai=[{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`]},{chassis:`opencode`,envNames:[`OPENCODE_TERMINAL`]}],oi=[{chassis:`kimi-cli`,envNames:[`KIMI_MODEL`]},{chassis:`grok-build-cli`,envNames:[`GROK_MODEL`,`XAI_MODEL`]},{chassis:`pi-cli`,envNames:[`PI_MODEL`]}],si=[`OLLAMA_MODEL`,`OLLAMA_LAUNCH_MODEL`],ci=[`claude-code`,`claude-agent-sdk`],li=`codex-cli`,ui=`opencode`;function di(e){let t=xi(e);return t.has($r)||t.has(ei)&&t.has(ti)}function fi({operation:e,searchParams:t,env:n=process.env,clientInfo:r}){if(!di(e)){if(ni.some(e=>t?.[e]!==void 0)){let e={...t};for(let t of ni)delete e[t];return se(`Agent provenance not applicable`,e)}return se(`Agent provenance unchanged`,t)}let i=Ti(t?.[$r]),a=i?.toLowerCase();if(i&&a!==`agent`&&a!==`employee`)return J(`${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=Ti(t?.[ei]),s=Ti(t?.[ti]),c=gi(n,r);if(a===`employee`)return o||s||c.status!==`missing`?J(`${e.operationId} has mixed employee and agent provenance.`,[`An agent runtime cannot claim employee attribution; use the runtime's agent provenance carrier.`]):se(`Employee provenance explicit`,{...t,actorType:`employee`});let l=wi(n,ri),u=wi(n,ii);if(o&&l&&o!==l)return J(mi(e,`chassis`),[hi({param:ei,flag:`--agent-chassis`,envName:ri,envValue:l,explicitValue:o})]);if(s&&u&&s!==u)return J(mi(e,`model`),[hi({param:ti,flag:`--agent-model`,envName:ii,envValue:u,explicitValue:s})]);if(o&&s){if(c.status===`partial`){let i=_i(n,r);return o!==bi(r?.name)&&o===li?J(`${e.operationId} rejected: ${li} binds its pair through its PreToolUse hook.`,[c.warning,`Run the CLI directly without --agent-chassis or --agent-model.`]):l===void 0&&u===void 0&&i.includes(o)?se(`Agent provenance explicit`,{...t,actorType:`agent`}):J(`${e.operationId} rejected: --agent-chassis ${o} is not this runtime.`,[c.warning,i.length===0?`Set ${ri} and ${ii} together.`:`This shell shows ${i.join(` and `)}. If that is you, pass --agent-chassis ${i.join(` or `)} --agent-model <your current model>; a different runtime launched from it sets ${ri} and ${ii} to its own pair.`])}let i=l===void 0&&o!==li&&_i(n,r).includes(o);return c.status===`complete`&&!i&&(o!==c.pair.agentChassis||s!==c.pair.agentModel)?J(`${e.operationId} rejected: explicit agent provenance disagrees with the runtime environment.`,[`Detected ${c.pair.agentChassis}/${c.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.`]):se(`Agent provenance explicit`,{...t,actorType:`agent`})}return o||s?J(pi(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.`]):c.status===`missing`?a===`agent`?J(pi(e),[`actorType=agent requires agentChassis and agentModel before the API can build the enforced domain actor.`]):se(`Provenance left for API-boundary actor inference`,t):c.status===`partial`?J(pi(e),[c.warning,`Pass agentChassis and agentModel together, or neither.`]):se(`Agent provenance auto-filled`,{...t,actorType:`agent`,agentChassis:c.pair.agentChassis,agentModel:c.pair.agentModel})}function pi(e){return`${e.operationId} requires complete agent provenance.`}function mi(e,t){return`${e.operationId} rejected: explicit agent ${t} disagrees with the runtime environment.`}function hi(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 ${ii} for the model). LLM agents hallucinate provenance frequently; stop providing false parameters.`].join(` `)}function gi(e,t){let n=wi(e,ri),r=wi(e,ii);if(n&&r)return{status:`complete`,pair:{agentChassis:n,agentModel:r}};if(n||r)return{status:`partial`,warning:`${ri} and ${ii} must be set together.`};let i=_i(e,t),a=i.flatMap(t=>{let n=vi(e,t);return n?[{agentChassis:t,agentModel:n}]:[]});if(a[0])return{status:`complete`,pair:a[0]};let o=i.filter(e=>e!==ui),s=o.length===1?o[0]:i.length===1?i[0]:void 0,c=s===ui||o.some(e=>e===`codex-cli`||yi(e))?void 0:Si(e,...si);return s&&c?{status:`complete`,pair:{agentChassis:s,agentModel:c}}:i.length>0?{status:`partial`,warning:`${i.join(` and `)} ${i.length===1?`was`:`were`} detected, but no verified model source was present.`}:c?{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 _i(e,t){let n=bi(t?.name);return n?[n]:ai.filter(t=>t.envNames.some(t=>Ci(e,t))).map(e=>e.chassis)}function vi(e,t){let n=oi.find(e=>e.chassis===t);return n?Si(e,...n.envNames):void 0}function yi(e){return e!==void 0&&ci.some(t=>t===e)}function bi(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 xi=e=>new Set((e.parameters??[]).filter(e=>e.in===`query`).map(e=>e.name)),Si=(e,...t)=>t.map(t=>wi(e,t)).find(e=>e!==void 0);function Ci(e,t){let n=wi(e,t)?.toLowerCase();return n!==void 0&&n!==`0`&&n!==`false`&&n!==`no`}function wi(e,t){return e[t]?.trim()||void 0}function Ti(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}function Ei(e,t,n){return Pi(t?.includePrivate)||Pi(Mi(n))?`required`:Ni(e,Oi)?`preferred`:`none`}function Di(e,t,n,r){return t?.scheduleEnrichment===void 0&&Ni(e,ki)?{...t,scheduleEnrichment:!1}:t}var Oi=`includePrivate`,ki=`scheduleEnrichment`,Ai=`This client sends false when omitted; pass true to queue research.`;function ji(e,t){let n=t.hasParseDefault||t.location!==`query`?void 0:t.optionKey===ki?Ai:void 0;return n===void 0||e.endsWith(n)?e:`${e} ${n}`}var Mi=e=>typeof e==`object`&&e&&!Array.isArray(e)?e.includePrivate:void 0,Ni=(e,t)=>(e.parameters??[]).some(e=>e.in===`query`&&e.name===t);function Pi(e){return e===null||typeof e==`object`?Array.isArray(e)&&e.some(Pi):e===!0||e===1||typeof e==`string`&&/^(true|on|yes|1)$/i.test(e.trim())}function Fi(e,t,n,r){let i=e.responses[String(t)]?.content;return n===void 0?n:Ii(n,i?.[`application/json`]?.schema,r).value}function Ii(e,t,n){let r=Wi(t,n);if(r===void 0||typeof e!=`object`||!e)return{value:e,dropped:0};let i=[...r.oneOf??[],...r.anyOf??[]].filter(t=>Ri(Wi(t,n),e));if(r.properties===void 0&&i.length>0)return i.map(t=>Ii(e,t,n)).reduce((e,t)=>t.dropped<e.dropped?t:e);if(Array.isArray(e))return Li(e,r,n);let a=zi(r,n);if(a===void 0)return{value:e,dropped:0};let o=0,s=Object.entries(e).flatMap(([e,t])=>{if(t===void 0)return[];let r=a.properties.get(e)??a.additionalProperties;if(r===void 0)return o+=1,[];let i=r===!0?{value:t,dropped:0}:Ii(t,r,n);return o+=i.dropped,[[e,i.value]]});return{value:Object.fromEntries(s),dropped:o}}function Li(e,t,n){let r=t.items??(t.allOf??[]).find(e=>e.items!==void 0)?.items,i=e.map(e=>Ii(e,r,n));return{value:i.map(e=>e.value),dropped:i.reduce((e,t)=>e+t.dropped,0)}}function Ri(e,t){return e===void 0?!1:Array.isArray(t)?e.items!==void 0||Hi(e).includes(`array`):e.type===void 0&&e.properties===void 0||Ui(e)||Vi(e).length>0}function zi(e,t){let n=new Map,r;return Bi(e,t,n,new Set,e=>{r??=e})&&n.size>0?{properties:n,additionalProperties:r}:void 0}function Bi(e,t,n,r,i){let a=e.$ref;if(a!==void 0){if(r.has(a))return!0;r.add(a)}let o=Wi(e,t);if(o===void 0)return!1;(o.additionalProperties===!0||typeof o.additionalProperties==`object`)&&i(o.additionalProperties);for(let[e,t]of Object.entries(o.properties??{}))n.has(e)||n.set(e,t);let s=Vi(o);return o.properties===void 0&&s.length===0?o.type!==void 0&&!Ui(o):s.every(e=>Bi(e,t,n,r,i))}function Vi(e){return[...e.allOf??[],...e.oneOf??[],...e.anyOf??[]]}function Hi(e){return e.type===void 0?[]:[e.type].flat()}function Ui(e){return e.properties!==void 0||Hi(e).includes(`object`)}function Wi(e,t){let n=p(e);return n===void 0?e:t[n]}var Gi=class extends Error{problem;constructor(e){let{status:t,title:n,detail:r,code:i,retryAfterSeconds:a}=e;super(`OAuth bearer verification ${t===429?`was rate limited`:`is unavailable`}: ${t} ${n}${r?` — ${r}`:``}`+(typeof i==`string`?` [code: ${i}]`:``)+(typeof a==`number`?` [retry after ${a} seconds]`:``)),this.problem=e,this.name=`BearerVerificationUnavailableError`}};async function Ki(e,t,n=[],r){let i=`authorizeOperations`,a=await Yn(ta(l()),{method:`POST`,path:Zi(i,{}),headers:{Authorization:`Bearer ${e}`,"Content-Type":`application/json`},body:{operation:[...n]},operationId:i,idempotent:!0,timeoutMs:r},Ir);if(a.ok&&a.redirect)throw new Gi(Y(a.status,`Unexpected authorization redirect`));if(!a.ok&&a.status!==401&&a.status!==403)throw new Gi(a.problem);if(!a.ok)return a.status===403?`forbidden`:null;if(!e.includes(`.`))return a.data;try{let{typ:t}=Kr(e);if(t!==`at+jwt`&&t!==`application/at+jwt`)return a.data}catch{return a.data}let{aud:o}=qr(e);if(o===void 0)return a.data;if(t===void 0)throw Error(`OAuth bearer verification is unavailable`);let s=Array.isArray(o)?o:[o];return s.length===1&&s[0]===t.href?a.data:null}var qi=`X-Job-Name`,Ji=`AVENTURE_JOB_NAME`,Yi=/^[A-Za-z0-9._:-]{1,120}$/,Xi=`MCP transport credential is read-only; refused an authenticated upstream call.`;function Zi(e,t){let n=f(or().paths,e);if(!n)throw Error(`OpenAPI operationId not found: ${e}`);return D(n.template,g(n.operation,t,e),e)}function Qi(e){let t=e.pathParams??{};try{if(e.operationId!==void 0){let n=f(or().paths,e.operationId);if(n===null)return J(`OpenAPI operationId not found: ${e.operationId}`);let r=D(n.template,g(n.operation,t,e.operationId),e.operationId);return se(`Resolved ${e.operationId}`,{...n,path:r})}if(e.method===void 0||e.path===void 0)return J(`Pass operationId or method+path.`);let n=E(e.method),r=e.path;or().paths[r]?.[n]===void 0&&r.includes(`{`)&&(r=Object.entries(or().paths).find(([t,r])=>{let i=r[n];return i!==void 0&&(i.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})?.[0]??e.path);let i=or().paths[r]?.[n],a=D(r,i===void 0?t:g(i,t,e.path),e.path),o=m(or().paths,n,a);return o===null?J(`OpenAPI operation not found for ${e.method} ${O(a)}`):(i===void 0&&g(o.operation,t,e.path),se(`Resolved ${o.operation.operationId}`,{...o,path:a}))}catch(e){return J(e instanceof Error?e.message:String(e))}}async function $i(e){let t=m(or().paths,E(e.method),e.path);if(!t)return J(`OpenAPI operation not found for ${e.method} ${O(e.path)}`,[`Use a path in this package's OpenAPI contract; undocumented routes are not supported.`]);let n=t.operation,r=b(n.requestBody?.content),o=T(r,e.contentType);if(!o.ok||o.data===null)return J(o.summary,o.warnings);let s=sr(n,e.headers);if(!s.ok||s.data===null)return J(s.summary,s.warnings);let c=e.requesterScope??`write`,l=e.auth===`auto`?(n.security?.length??0)>0?`bearer`:`none`:e.auth,f=d();if(c===`read`&&f===void 0&&(l===`write`||l===`bearer`))return J(Xi,[`Resolved upstream auth=${l} for ${e.method} ${e.path}.`,`Pass auth='read' explicitly for POST read endpoints, or sign in with an account that permits the call.`]);let p=C(e.body);if(!p.ok)return J(p.summary,p.warnings);if(v(o.data,or().components.schemas)&&p.data!==void 0&&!Array.isArray(p.data))return J(`${n.operationId} requires a JSON array body.`);let h=n.operationId,g=e.responseBytes===!0&&w(n),S=g?`*/*`:ra(e.responseFormat??`auto`,n),D=e.preparedAuth===void 0?f===void 0?na(l,n,{searchParams:e.searchParams,body:p.data}):u(`none`):se(`reused prepared auth`,e.preparedAuth);if(!D.ok||!D.data)return J(D.summary,D.warnings);let k=e.preparedAuth??(f===void 0?D.data:{...D.data,credential:a.authToken,headers:{Authorization:`Bearer ${f}`}});e.onAuthPrepared?.(k);let A=fi({operation:n,searchParams:Di(n,e.searchParams,p.data,`Authorization`in k.headers),clientInfo:e.clientInfo});if(!A.ok)return J(A.summary,A.warnings);let j=A.data??void 0,M=ia(e.path,j),N=Re(n)&&e.method===`GET`&&O(M)===`/v1/web/page`&&!M.includes(`include=anchors`),P=ta(D.data.env),F=ta({...P,host:i()}).host,I={method:e.method,endpoint:M,operationId:h},L=await x(n,p.data,e.contentType,e.method===`PATCH`?`application/merge-patch+json`:e.method===`POST`||e.method===`PUT`?`application/json`:void 0);if(!L.ok||L.data===null)return J(L.summary,L.warnings);let R=process.env[Ji]?.trim(),z=y({method:e.method,path:t.template,operation:n,includeBinary:!0}),ee={method:e.method,path:M,headers:{...s.data,...k.headers,...N?{Prefer:`respond-async`}:{},...R&&Yi.test(R)?{[qi]:R}:{},Accept:S},body:L.data.body,contentType:L.data.contentType,operationId:h,readbackOperationId:n[`x-aventure-mutation-readback`]?.readOperationId,idempotent:e.method===`POST`&&z?.scope===`read`&&z.mutates!==!0&&n[`x-aventure-mutation-readback`]===void 0,followRollover:Re(n),signal:e.signal},B=g?await Yn(P,{...ee,responseBytes:!0}):await Yn(P,ee,oe),te=h??e.method;if(!B.ok)return pe(`${te} failed`,B.problem,[`endpoint=${M}`]);if(B.data instanceof Uint8Array)return ge(se(`${te} succeeded`,B.data));let V=Ue(te,B,ee.followRollover);if(V!==void 0)return V;let H={...I,httpStatus:B.status},ne=ce(B.data),re=S===`text/plain`&&typeof B.data==`string`?B.data:{...H,...r.length>1&&o.data!==void 0?{contentType:o.data.contentType}:{},...B.redirect?{location:B.location}:{},summary:n.summary,...B.headers[`x-next-cursor`]?{nextCursor:B.headers[`x-next-cursor`]}:{},response:Fi(ea(n,B.redirect?void 0:B.rolloverJob?.answeredPath),B.status,B.data,or().components.schemas)};return Jr(F,M,B,e=>se(We(te,B),re,{...H,format:B.redirect||B.rolloverJob||S!==`text/plain`?`json`:`text`,count:ae(B.data,ne),page:ne,filters:_(n,j),...X(B.headers),...e}),e.responseFormat===`json`?lr:void 0)}function ea(e,t){if(t===void 0)return e;let n=m(or().paths,`get`,t);if(n===null)throw Error(`No bundled operation serves the polled job route GET ${t}`);return n.operation}function ta(e){let t=e.host.trim();return/^https?:\/\//i.test(t)?t===e.host?e:{...e,host:t}:{...e,host:`${n(t)?`http`:`https`}://${t}`}}function na(e,t,n){if(e!==`none`)return u(e);let r=u(`none`);return!r.ok||!r.data?r:Ei(t,n.searchParams,n.body)===`required`||r.data.env.userBearerToken?u(`bearer`):r}function ra(e,t){return e===`json`?`application/json`:Object.entries(t.responses).some(([e,t])=>e.startsWith(`2`)&&`text/plain`in(t.content??{}))?`text/plain`:`application/json`}function ia(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 aa=`2025-11-25`,oa=`2025-03-26`,sa=[aa,`2025-06-18`,`2025-03-26`,`2024-11-05`,`2024-10-07`],ca=`io.modelcontextprotocol/related-task`,la=`io.modelcontextprotocol/protocolVersion`,ua=`io.modelcontextprotocol/clientInfo`,da=`io.modelcontextprotocol/serverInfo`,fa=`io.modelcontextprotocol/clientCapabilities`,pa=`io.modelcontextprotocol/subscriptionId`,ma=`io.modelcontextprotocol/logLevel`,ha=`traceparent`,ga=ee(()=>N([G(),W(),U(),re(),M(G(),ga),V(ga)])),_a=M(G(),ga),va=V(ga),ya=N([G(),W().int()]),ba=G(),xa=q({ttl:W().optional()}),Sa=q({taskId:G()}),Ca=P({progressToken:ya.optional(),[ca]:Sa.optional()}),wa=q({_meta:Ca.optional()}),Ta=wa.extend({task:xa.optional()}),Ea=q({method:G(),params:wa.loose().optional()}),Da=q({_meta:Ca.optional()}),Oa=q({method:G(),params:Da.loose().optional()}),ka=P({get[da](){return Wa.optional().catch(void 0)}}),Aa=P({_meta:ka.optional()}),ja=N([G(),W().int()]),Ma=q({jsonrpc:z(`2.0`),id:ja,...Ea.shape}).strict(),Na=q({jsonrpc:z(`2.0`),...Oa.shape}).strict(),Pa=q({jsonrpc:z(`2.0`),id:ja,result:Aa}).strict(),Fa=q({jsonrpc:z(`2.0`),id:ja.optional(),error:q({code:W().int(),message:G(),data:A().optional()})}).strict(),Ia=N([Ma,Na,Pa,Fa]),La=N([Pa,Fa]),Ra=Aa.strict(),za=Da.extend({requestId:ja.optional(),reason:G().optional()}),Ba=Oa.extend({method:z(`notifications/cancelled`),params:za}),Va=q({src:G(),mimeType:G().optional(),sizes:V(G()).optional(),theme:ne([`light`,`dark`]).optional()}),Ha=q({icons:V(Va).optional()}),Ua=q({name:G(),title:G().optional()}),Wa=Ua.extend({...Ua.shape,...Ha.shape,version:G(),websiteUrl:G().optional(),description:G().optional()}),Ga=H(q({applyDefaults:U().optional()}),_a),Ka=K(e=>e&&typeof e==`object`&&!Array.isArray(e)&&Object.keys(e).length===0?{form:{}}:e,H(q({form:Ga.optional(),url:_a.optional()}),_a.optional())),qa=P({list:_a.optional(),cancel:_a.optional(),requests:P({sampling:P({createMessage:_a.optional()}).optional(),elicitation:P({create:_a.optional()}).optional()}).optional()}),Ja=P({list:_a.optional(),cancel:_a.optional(),requests:P({tools:P({call:_a.optional()}).optional()}).optional()}),Ya=q({experimental:M(G(),_a).optional(),sampling:q({context:_a.optional(),tools:_a.optional()}).optional(),elicitation:Ka.optional(),roots:q({listChanged:U().optional()}).optional(),tasks:qa.optional(),extensions:M(G(),_a).optional()}),Xa=wa.extend({protocolVersion:G(),capabilities:Ya,clientInfo:Wa}),Za=Ea.extend({method:z(`initialize`),params:Xa}),Qa=q({experimental:M(G(),_a).optional(),logging:_a.optional(),completions:_a.optional(),prompts:q({listChanged:U().optional()}).optional(),resources:q({subscribe:U().optional(),listChanged:U().optional()}).optional(),tools:q({listChanged:U().optional()}).optional(),tasks:Ja.optional(),extensions:M(G(),_a).optional()}),$a=Aa.extend({protocolVersion:G(),capabilities:Qa,serverInfo:Wa,instructions:G().optional()}),eo=Oa.extend({method:z(`notifications/initialized`),params:Da.optional()}),to=Ea.extend({method:z(`server/discover`),params:wa.optional()}),no=Aa.extend({supportedVersions:V(G()),capabilities:Qa,instructions:G().optional()}),ro=Ea.extend({method:z(`ping`),params:wa.optional()}),io=q({progress:W(),total:I(W()),message:I(G())}),ao=q({...Da.shape,...io.shape,progressToken:ya}),oo=Oa.extend({method:z(`notifications/progress`),params:ao}),so=wa.extend({cursor:ba.optional()}),co=Ea.extend({params:so.optional()}),lo=Aa.extend({nextCursor:ba.optional()}),uo=q({uri:G(),mimeType:I(G()),_meta:M(G(),A()).optional()}),fo=uo.extend({text:G()}),po=G().refine(e=>{try{return atob(e),!0}catch{return!1}},{message:`Invalid Base64 string`}),mo=uo.extend({blob:po}),ho=ne([`user`,`assistant`]),go=q({audience:V(ho).optional(),priority:W().min(0).max(1).optional(),lastModified:B({offset:!0}).optional()}),_o=q({...Ua.shape,...Ha.shape,uri:G(),description:I(G()),mimeType:I(G()),size:I(W()),annotations:go.optional(),_meta:I(P({}))}),vo=q({...Ua.shape,...Ha.shape,uriTemplate:G(),description:I(G()),mimeType:I(G()),annotations:go.optional(),_meta:I(P({}))}),yo=co.extend({method:z(`resources/list`)}),bo=lo.extend({resources:V(_o)}),xo=co.extend({method:z(`resources/templates/list`)}),So=lo.extend({resourceTemplates:V(vo)}),Co=wa.extend({uri:G()}),wo=Co,To=Ea.extend({method:z(`resources/read`),params:wo}),Eo=Aa.extend({contents:V(N([fo,mo]))}),Do=Oa.extend({method:z(`notifications/resources/list_changed`),params:Da.optional()}),Oo=Co,ko=Ea.extend({method:z(`resources/subscribe`),params:Oo}),Ao=Co,jo=Ea.extend({method:z(`resources/unsubscribe`),params:Ao}),Mo=q({toolsListChanged:U().optional(),promptsListChanged:U().optional(),resourcesListChanged:U().optional(),resourceSubscriptions:V(G()).optional()}),No=wa.extend({notifications:Mo}),Po=Ea.extend({method:z(`subscriptions/listen`),params:No}),Fo=Da.extend({notifications:Mo}),Io=Oa.extend({method:z(`notifications/subscriptions/acknowledged`),params:Fo}),Lo=ka.extend({[pa]:ja}),Ro=Aa.extend({_meta:Lo}),zo=Da.extend({uri:G()}),Bo=Oa.extend({method:z(`notifications/resources/updated`),params:zo}),Vo=q({name:G(),description:I(G()),required:I(U())}),Ho=q({...Ua.shape,...Ha.shape,description:I(G()),arguments:I(V(Vo)),_meta:I(P({}))}),Uo=co.extend({method:z(`prompts/list`)}),Wo=lo.extend({prompts:V(Ho)}),Go=wa.extend({name:G(),arguments:M(G(),G()).optional()}),Ko=Ea.extend({method:z(`prompts/get`),params:Go}),qo=q({type:z(`text`),text:G(),annotations:go.optional(),_meta:M(G(),A()).optional()}),Jo=q({type:z(`image`),data:po,mimeType:G(),annotations:go.optional(),_meta:M(G(),A()).optional()}),Yo=q({type:z(`audio`),data:po,mimeType:G(),annotations:go.optional(),_meta:M(G(),A()).optional()}),Xo=q({type:z(`tool_use`),name:G(),id:G(),input:M(G(),A()),_meta:M(G(),A()).optional()}),Zo=q({type:z(`resource`),resource:N([fo,mo]),annotations:go.optional(),_meta:M(G(),A()).optional()}),Qo=_o.extend({type:z(`resource_link`)}),$o=N([qo,Jo,Yo,Qo,Zo]),es=q({role:ho,content:$o}),ts=Aa.extend({description:G().optional(),messages:V(es)}),ns=Oa.extend({method:z(`notifications/prompts/list_changed`),params:Da.optional()}),rs=q({title:G().optional(),readOnlyHint:U().optional(),destructiveHint:U().optional(),idempotentHint:U().optional(),openWorldHint:U().optional()}),is=q({taskSupport:ne([`required`,`optional`,`forbidden`]).optional()}),as=q({...Ua.shape,...Ha.shape,description:G().optional(),inputSchema:q({type:z(`object`),properties:M(G(),ga).optional(),required:V(G()).optional()}).catchall(A()),outputSchema:P({$schema:G().optional()}).optional(),annotations:rs.optional(),execution:is.optional(),_meta:M(G(),A()).optional()}),os=co.extend({method:z(`tools/list`)}),ss=lo.extend({tools:V(as)}),cs=Aa.extend({content:V($o).default([]),structuredContent:A().optional(),isError:U().optional()}),ls=cs.or(Aa.extend({toolResult:A()})),us=Ta.extend({name:G(),arguments:M(G(),A()).optional()}),ds=Ea.extend({method:z(`tools/call`),params:us}),fs=Oa.extend({method:z(`notifications/tools/list_changed`),params:Da.optional()}),ps=q({autoRefresh:U().default(!0),debounceMs:W().int().nonnegative().default(300)}),ms=ne([`debug`,`info`,`notice`,`warning`,`error`,`critical`,`alert`,`emergency`]),hs=wa.extend({level:ms}),gs=Ea.extend({method:z(`logging/setLevel`),params:hs}),_s=Da.extend({level:ms,logger:G().optional(),data:A()}),vs=Oa.extend({method:z(`notifications/message`),params:_s}),ys=q({name:G().optional()}),bs=q({hints:V(ys).optional(),costPriority:W().min(0).max(1).optional(),speedPriority:W().min(0).max(1).optional(),intelligencePriority:W().min(0).max(1).optional()}),xs=q({mode:ne([`auto`,`required`,`none`]).optional()}),Ss=q({type:z(`tool_result`),toolUseId:G().describe(`The unique identifier for the corresponding tool call.`),content:V($o),structuredContent:A().optional(),isError:U().optional(),_meta:M(G(),A()).optional()}),Cs=R(`type`,[qo,Jo,Yo]),ws=R(`type`,[qo,Jo,Yo,Xo,Ss]),Ts=q({role:ho,content:N([ws,V(ws)]),_meta:M(G(),A()).optional()}),Es=Ta.extend({messages:V(Ts),modelPreferences:bs.optional(),systemPrompt:G().optional(),includeContext:ne([`none`,`thisServer`,`allServers`]).optional(),temperature:W().optional(),maxTokens:W().int(),stopSequences:V(G()).optional(),metadata:_a.optional(),tools:V(as).optional(),toolChoice:xs.optional()}),Ds=Ea.extend({method:z(`sampling/createMessage`),params:Es}),Os=Aa.extend({model:G(),stopReason:I(ne([`endTurn`,`stopSequence`,`maxTokens`]).or(G())),role:ho,content:Cs}),ks=Aa.extend({model:G(),stopReason:I(ne([`endTurn`,`stopSequence`,`maxTokens`,`toolUse`]).or(G())),role:ho,content:N([ws,V(ws)])}),As=q({type:z(`boolean`),title:G().optional(),description:G().optional(),default:U().optional()}),js=q({type:z(`string`),title:G().optional(),description:G().optional(),minLength:W().optional(),maxLength:W().optional(),format:ne([`email`,`uri`,`date`,`date-time`]).optional(),default:G().optional()}),Ms=q({type:ne([`number`,`integer`]),title:G().optional(),description:G().optional(),minimum:W().optional(),maximum:W().optional(),default:W().optional()}),Ns=q({type:z(`string`),title:G().optional(),description:G().optional(),enum:V(G()),default:G().optional()}),Ps=q({type:z(`string`),title:G().optional(),description:G().optional(),oneOf:V(q({const:G(),title:G()})),default:G().optional()}),Fs=q({type:z(`string`),title:G().optional(),description:G().optional(),enum:V(G()),enumNames:V(G()).optional(),default:G().optional()}),Is=N([Ns,Ps]),Ls=q({type:z(`array`),title:G().optional(),description:G().optional(),minItems:W().optional(),maxItems:W().optional(),items:q({type:z(`string`),enum:V(G())}),default:V(G()).optional()}),Rs=q({type:z(`array`),title:G().optional(),description:G().optional(),minItems:W().optional(),maxItems:W().optional(),items:q({anyOf:V(q({const:G(),title:G()}))}),default:V(G()).optional()}),zs=N([Ls,Rs]),Bs=N([Fs,Is,zs]),Vs=N([Bs,As,js,Ms]),Hs=Ta.extend({mode:z(`form`).optional(),message:G(),requestedSchema:q({type:z(`object`),properties:M(G(),Vs),required:V(G()).optional()}).catchall(A())}),Us=Ta.extend({mode:z(`url`),message:G(),elicitationId:G(),url:G().url()}),Ws=N([Hs,Us]),Gs=Ea.extend({method:z(`elicitation/create`),params:Ws}),Ks=Da.extend({elicitationId:G()}),qs=Oa.extend({method:z(`notifications/elicitation/complete`),params:Ks}),Js=Aa.extend({action:ne([`accept`,`decline`,`cancel`]),content:K(e=>e===null?void 0:e,M(G(),N([G(),W(),U(),V(G())])).optional())}),Ys=q({type:z(`ref/resource`),uri:G()}),Xs=q({type:z(`ref/prompt`),name:G()}),Zs=wa.extend({ref:N([Xs,Ys]),argument:q({name:G(),value:G()}),context:q({arguments:M(G(),G()).optional()}).optional()}),Qs=Ea.extend({method:z(`completion/complete`),params:Zs}),$s=Aa.extend({completion:P({values:V(G()).max(100),total:I(W().int()),hasMore:I(U())})}),ec=q({uri:G().startsWith(`file://`),name:G().optional(),_meta:M(G(),A()).optional()}),tc=Ea.extend({method:z(`roots/list`),params:wa.optional()}),nc=Aa.extend({roots:V(ec)}),rc=Oa.extend({method:z(`notifications/roots/list_changed`),params:Da.optional()}),ic=P({ttl:W().optional(),pollInterval:W().optional()}),ac=ne([`working`,`input_required`,`completed`,`failed`,`cancelled`]),oc=q({taskId:G(),status:ac,ttl:N([W(),re()]),createdAt:G(),lastUpdatedAt:G(),pollInterval:I(W()),statusMessage:I(G())}),sc=Aa.extend({task:oc}),cc=Da.merge(oc),lc=Oa.extend({method:z(`notifications/tasks/status`),params:cc}),uc=Ea.extend({method:z(`tasks/get`),params:wa.extend({taskId:G()})}),dc=Aa.merge(oc),fc=Ea.extend({method:z(`tasks/result`),params:wa.extend({taskId:G()})}),pc=Aa.loose(),mc=co.extend({method:z(`tasks/list`)}),hc=lo.extend({tasks:V(oc)}),gc=Ea.extend({method:z(`tasks/cancel`),params:wa.extend({taskId:G()})}),_c=Aa.merge(oc),vc=N([ro,Za,to,Qs,gs,Ko,Uo,yo,xo,To,ko,jo,Po,ds,os]),yc=N([Ba,oo,eo,rc]),bc=N([Ra,Os,ks,Js,nc]),xc=N([ro,Ds,Gs,tc]),Sc=N([Ba,oo,vs,Bo,Do,fs,ns,Io,qs]),Cc=N([Ra,$a,no,$s,ts,Wo,bo,So,Eo,cs,ss,Ro]),wc=k().superRefine((e,t)=>{if(!URL.canParse(e))return t.addIssue({code:be.custom,message:`URL must be parseable`,fatal:!0}),j}).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`}),Tc=P({resource:G().url(),authorization_servers:V(wc).optional(),jwks_uri:G().url().optional(),scopes_supported:V(G()).optional(),bearer_methods_supported:V(G()).optional(),resource_signing_alg_values_supported:V(G()).optional(),resource_name:G().optional(),resource_documentation:G().optional(),resource_policy_uri:G().url().optional(),resource_tos_uri:G().url().optional(),tls_client_certificate_bound_access_tokens:U().optional(),authorization_details_types_supported:V(G()).optional(),dpop_signing_alg_values_supported:V(G()).optional(),dpop_bound_access_tokens_required:U().optional()}),Ec=P({issuer:G(),authorization_endpoint:wc,token_endpoint:wc,registration_endpoint:wc.optional(),scopes_supported:V(G()).optional(),response_types_supported:V(G()),response_modes_supported:V(G()).optional(),grant_types_supported:V(G()).optional(),token_endpoint_auth_methods_supported:V(G()).optional(),token_endpoint_auth_signing_alg_values_supported:V(G()).optional(),service_documentation:wc.optional(),revocation_endpoint:wc.optional(),revocation_endpoint_auth_methods_supported:V(G()).optional(),revocation_endpoint_auth_signing_alg_values_supported:V(G()).optional(),introspection_endpoint:G().optional(),introspection_endpoint_auth_methods_supported:V(G()).optional(),introspection_endpoint_auth_signing_alg_values_supported:V(G()).optional(),code_challenge_methods_supported:V(G()).optional(),client_id_metadata_document_supported:U().optional(),authorization_response_iss_parameter_supported:U().optional().catch(void 0),dpop_signing_alg_values_supported:V(G()).optional()}),Dc=P({issuer:G(),authorization_endpoint:wc,token_endpoint:wc,userinfo_endpoint:wc.optional(),jwks_uri:wc,registration_endpoint:wc.optional(),scopes_supported:V(G()).optional(),response_types_supported:V(G()),response_modes_supported:V(G()).optional(),grant_types_supported:V(G()).optional(),acr_values_supported:V(G()).optional(),subject_types_supported:V(G()),id_token_signing_alg_values_supported:V(G()),id_token_encryption_alg_values_supported:V(G()).optional(),id_token_encryption_enc_values_supported:V(G()).optional(),userinfo_signing_alg_values_supported:V(G()).optional(),userinfo_encryption_alg_values_supported:V(G()).optional(),userinfo_encryption_enc_values_supported:V(G()).optional(),request_object_signing_alg_values_supported:V(G()).optional(),request_object_encryption_alg_values_supported:V(G()).optional(),request_object_encryption_enc_values_supported:V(G()).optional(),token_endpoint_auth_methods_supported:V(G()).optional(),token_endpoint_auth_signing_alg_values_supported:V(G()).optional(),display_values_supported:V(G()).optional(),claim_types_supported:V(G()).optional(),claims_supported:V(G()).optional(),service_documentation:G().optional(),claims_locales_supported:V(G()).optional(),ui_locales_supported:V(G()).optional(),claims_parameter_supported:U().optional(),request_parameter_supported:U().optional(),request_uri_parameter_supported:U().optional(),require_request_uri_registration:U().optional(),op_policy_uri:wc.optional(),op_tos_uri:wc.optional(),client_id_metadata_document_supported:U().optional(),authorization_response_iss_parameter_supported:U().optional().catch(void 0)}),Oc=q({...Dc.shape,...Ec.pick({code_challenge_methods_supported:!0}).shape}),kc=q({access_token:G(),id_token:G().optional(),token_type:G(),expires_in:Se().optional(),scope:G().optional(),refresh_token:G().optional(),issuer:G().optional().catch(void 0)}).strip(),Ac=q({issued_token_type:z(`urn:ietf:params:oauth:token-type:id-jag`),access_token:G(),token_type:G().optional(),expires_in:W().optional(),scope:G().optional()}).strip(),jc=q({error:G(),error_description:G().optional(),error_uri:G().optional()}),Mc=wc.optional().or(z(``).transform(()=>void 0)),Nc=q({redirect_uris:V(wc),token_endpoint_auth_method:G().optional(),grant_types:V(G()).optional(),response_types:V(G()).optional(),application_type:G().optional(),client_name:G().optional(),client_uri:wc.optional(),logo_uri:Mc,scope:G().optional(),contacts:V(G()).optional(),tos_uri:Mc,policy_uri:G().optional(),jwks_uri:wc.optional(),jwks:L().optional(),software_id:G().optional(),software_version:G().optional(),software_statement:G().optional()}).strip(),Pc=q({client_id:G(),client_secret:G().optional(),client_id_issued_at:W().optional(),client_secret_expires_at:W().optional(),issuer:G().optional().catch(void 0)}).strip(),Fc=Nc.merge(Pc),Ic=q({error:G(),error_description:G().optional()}).strip(),Lc=q({token:G(),token_type_hint:G().optional()}).strip(),Rc=`bearer `,zc=4096;function Bc(e){if(e===void 0||e.length>zc||e.slice(0,7).toLowerCase()!==Rc)return;let t=e.slice(7).trim();return t.length>0?t:void 0}var Vc=9e5;export{dc as $,Mo as $n,Dc as $t,Os as A,Bo as An,Zi as Ar,mc as At,Us as B,ws as Bn,dr as Br,Oa as Bt,ls as C,Qo as Cn,as as Cr,Wo as Ct,$o as D,Ys as Dn,Ls as Dr,bo as Dt,$s as E,_o as En,jo as Er,yo as Et,to as F,rc as Fn,ni as Fr,_s as Ft,Ra as G,Cc as Gn,or as Gr,Nc as Gt,Ks as H,Qa as Hn,hr as Hr,Ms as Ht,no as I,da as In,qr as Ir,vs as It,Ko as J,gs as Jn,Oe as Jr,Ec as Jt,Bs as K,Ja as Kn,Yn as Kr,Ic as Kt,Hs as L,pa as Ln,Vr as Lr,ys as Lt,sc as M,Aa as Mn,$i as Mr,os as Mt,ba as N,ho as Nn,Ki as Nr,ss as Nt,Es as O,vo as On,Ns as Or,tc as Ot,oa as P,ec as Pn,ji as Pr,ms as Pt,uc as Q,ko as Qn,Oc as Qt,Ws as R,sa as Rn,Ir as Rr,bs as Rt,qa as S,uo as Sn,Ss as Sr,Uo as St,Qs as T,Co as Tn,Ao as Tr,So as Tt,qs as U,Sc as Un,fr as Ur,Fc as Ut,Js as V,Ts as Vn,ur as Vr,Da as Vt,Zo as W,xc as Wn,cr as Wr,Pc as Wt,fc as X,js as Xn,Lc as Xt,ts as Y,Is as Yn,Ce as Yr,Tc as Yt,pc as Z,Oo as Zn,kc as Zt,Ba as _,Eo as _n,Ps as _r,ga as _t,Ua as a,Vs as an,Ro as ar,Xa as at,vc as b,Ca as bn,is as br,Fs as bt,As as c,io as cn,ic as cr,eo as ct,us as d,ns as dn,cc as dr,Fa as dt,la as en,Fo as er,Va as et,ds as f,es as fn,lc as fr,Ia as ft,za as g,To as gn,Rs as gr,Pa as gt,_c as h,wo as hn,fo as hr,La as ht,Yo as i,ro as in,Lo as ir,Wa as it,ks as j,ka as jn,Qi as jr,hc as jt,Ds as k,zo as kn,Gi as kr,nc as kt,fa as l,ya as ln,xa as lr,va as lt,gc as m,Ho as mn,qo as mr,Ma as mt,Bc as n,co as nn,No as nr,Ac as nt,wa as o,ao as on,ha as or,Za as ot,cs as p,Xs as pn,ac as pr,Na as pt,Go as q,hs as qn,De as qr,jc as qt,go as r,lo as rn,Po as rr,Jo as rt,mo as s,oo as sn,Ta as sr,$a as st,Vc as t,so as tn,Io as tr,Ha as tt,ua as u,Vo as un,oc as ur,_a as ut,Ya as v,Sa as vn,rs as vr,aa as vt,Zs as w,Do as wn,Xo as wr,xo as wt,bc as x,Ea as xn,fs as xr,ps as xt,yc as y,ja as yn,xs as yr,ma as yt,Gs as z,Cs as zn,lr as zr,zs as zt};
|