@aventurevc/mcp-server 0.8.50 → 0.8.52
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/chunks/client-DTfkNUKH.js +114 -0
- package/dist/chunks/provider-catalog-Bv7Z3JU2.js +1 -0
- package/dist/chunks/text-field-BpYhtCBA.js +1 -0
- package/dist/chunks/{text-response-CGcFPo_4.js → text-response-CgT7_Y0E.js} +1 -1
- package/dist/mcp-server/index.js +3 -3
- package/package.json +3 -3
- package/dist/chunks/client-CcjLYAaT.js +0 -114
- package/dist/chunks/provider-catalog-Dgyf764K.js +0 -1
- package/dist/chunks/text-field-CNn6lG8Y.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{C as e,Di as t,x as n,y as r}from"./client-CcjLYAaT.js";import{l as i,o as a,w as o,y as s}from"./person-owner-BJgNYLKX.js";import{a as c,i as l,n as u,t as d}from"./text-field-CNn6lG8Y.js";function f(e,t,n=t.inputName){if(t.in===`body`)return n;let r=re.find(t=>n===t.name&&e.path.includes(t.path));return r===void 0?y(v(n!==`id`&&n!==`slug`?n:`${h(e.path)}${_(n)}`),t):r.inputName}function p(e,t,n=ee(e)){return m(g(e,t),new Set(n))}function m(e,t){if(!t.has(e))return e;let n=`body${_(e)}`,r=n;for(let e=2;t.has(r);e+=1)r=`${n}${e}`;return r}function h(e){return ie.find(([,t])=>t.test(e))?.[0]??`record`}function g(e,t){if(t.name===`id`&&e.path===`/v1/app/url-slug-redirects`)return`recordId`;let n=te(t);return y(e.intent===`search`&&(t.name.startsWith(`filter.`)||t.name.startsWith(`search.`))?v(n.replace(/^(?:filter|search)/u,``).replace(/^./u,e=>e.toLowerCase())):n,t)}function ee(e){return new Set(e.parameter.filter(e=>e.in===`path`||e.in===`query`||e.in===`header`).map(t=>f(e,t)))}function _(e){return e.replace(/^./u,e=>e.toUpperCase())}function v(e){return e.replace(/^addressAddress/u,`address`).replace(/^arrayFilterAmountInvestedRange/u,`fundraiseAmountInvestedRange`).replace(/^arrayFilterAmountRaisedRange/u,`fundraiseAmountRaisedRange`).replace(/^arrayFilterEntityName$/u,`entityName`).replace(/^arrayFilterInvestedCompany$/u,`fundraiseInvestedCompanyName`).replace(/^arrayFilterPersonTitle$/u,`personTitle`).replace(/^arrayFilterRound$/u,`fundraiseRound`).replace(/^arrayFilterTotalInvestmentCount/u,`totalInvestmentCount`).replace(/^arrayFilterTypeRecord$/u,`typeRecord`).replace(/^createEntity/u,`entity`).replace(/^createUrlLink/u,`urlLink`).replace(/^fundraiseActivity/u,`fundraise`).replace(/FundraiseActivity/gu,`Fundraise`).replace(/^logoOption/u,`logo`).replace(/LogoOption/gu,`Logo`).replace(/^researchDetailTypeResearchDetail$/u,`researchDetailType`).replace(/^researchDetailValueResearchDetail$/u,`researchDetailValue`).replace(/^textText$/u,`text`).replace(/^textTextName$/u,`textName`).replace(/^textTextType$/u,`textType`)}function te(e){let t=v(e.inputName);return/(?:^|\.)nameAlias\[\]\./u.test(e.name)?t.replace(/^entityNameAlias/u,`alias`):/(?:^|\.)urlLink\[\]\./u.test(e.name)?ne(t):/(?:^|\.)manualLogo\./u.test(e.name)?t.replace(/^manualLogo/u,`logo`):t}function ne(e){return e===`urlLinkUrl`?`url`:e===`urlLinkUrlType`?`urlType`:e.replace(/^urlLink/u,`url`)}function y(e,t){return e===`text`?/(?:^|\.)text(?:\[\])?\.text$/u.test(t.name)?`textBody`:`inputText`:e}var re=[{name:`detailId`,path:`/research-details/{detailId}`,inputName:`researchDetailId`},{name:`version`,path:`/instructions/`,inputName:`instructionVersion`},{name:`detailId`,path:`/financial/valuation/{detailId}`,inputName:`valuationDetailId`},{name:`joinId`,path:`/fundraise-investor-joins`,inputName:`fundraiseInvestorJoinId`}],ie=[[`entity`,/^\/v1\/entities(?:$|\/detail|\/lookup|\/summary|\/duplicate-check)/u],[`person`,/^\/v1\/people(?:\/detail|\/lookup|\/duplicate-check|\/\{slug\})/u],[`news`,/^\/v1\/(?:news\/|jobs\/news\/)/u],[`screenshot`,/^\/v1\/media\/screenshots\//u],[`media`,/^\/v1\/media/u],[`article`,/^\/v1\/app\/blog\/articles/u],[`page`,/^\/v1\/app\/pages/u],[`contact`,/^\/v1\/contacts\//u],[`provenance`,/^\/v1\/provenance\//u],[`location`,/^\/v1\/addresses\/locations\//u]];function ae(e){let t=e.requestBody?.[0],n=e.parameter.map(t=>b(t,f(e,t))),r=(t?.parameter??[]).map(t=>b(t,p(e,t)));return{selector:n.filter(e=>e.location===`path`||x(e)),pagination:n.filter(S),filter:[...n.filter(C),...r.filter(C)],body:r.filter(e=>!C(e))}}function b(e,t){return{name:e.in===`body`?t:e.name,flag:n(t),required:e.required,location:e.in,description:e.description||`${e.name} ${e.in} parameter`}}function x(e){return/(^|[A-Z])(id|slug)$/u.test(e.name)}function S(e){return[`page`,`size`,`sort`,`cursor`,`mode`,`projection`].includes(e.name)}function C(e){return e.location!==`path`&&!x(e)&&!S(e)}var w=`aventure`,oe={high:60,medium:30},se={high:20,medium:10};function ce(t){let{contract:n,guidance:r,enumQueryFlag:i}=t,a=n.requestBody?.[0],o=i?.inputName??null,s=D(n.parameter,o),c=D(a?.parameter??[],null),l=s.map(e=>fe(n,e)),u=c.map(e=>pe(n,e)),d=a?.requiredPath??[],f=new Set((a?.parameter??[]).map(({name:e})=>e)),m=d.filter(e=>!f.has(e)&&!c.some(({name:t})=>t.startsWith(`${e}.`)||t.startsWith(`${e}[].`))),h=a?.required===!0&&a.kind===`json`&&(u.length===0||m.length>0),g=[w,...n.projection.cliPath,...i===null?[]:[i.flag],...l,...u,...h?[`--from-file "<path>"`]:[]];return{intent:n.intent,operationId:n.operationId,recommendedCommand:g.join(` `),useFor:r.useFor,...r.notFor===``?{}:{notFor:r.notFor},apiRoute:`${n.method} ${n.path}`,mcpTool:e(n.intent),missingInputs:[...s.map(e=>e.name),...c.map(e=>p(n,e)),...m,...h?[`fromFile`]:[]],pathInput:E(n.parameter,`path`),queryInput:E(n.parameter,`query`),bodyInput:(a?.parameter??[]).map(e=>e.name),operationDescription:n.description,bodySchemaName:a?.schemaName??null,bodyKind:a?.kind??null,bodyRequired:a?.required??!1,requiredBodyPath:d,confidence:t.confidence,alternatives:t.alternatives}}function le(e){let t=T(e.description);return{useFor:t.useFor||e.summary||e.description||`${e.method} ${e.path}`,notFor:t.notFor}}function T(e){let t=e.match(/USE FOR:\s*([\s\S]*?)(?:NOT FOR:|$)/iu),n=e.match(/NOT FOR:\s*([\s\S]*?)$/iu);return{useFor:t?.[1]?.trim()??``,notFor:n?.[1]?.trim()??``}}function ue(e,t){if(e===0)return`low`;let n=e-t;return e>=oe.high&&n>=se.high?`high`:e>=oe.medium&&n>=se.medium?`medium`:`low`}function de(e,t,n=[]){return{intent:`unknown`,operationId:``,recommendedCommand:``,useFor:e,notFor:t,apiRoute:``,mcpTool:``,missingInputs:n,pathInput:[],queryInput:[],bodyInput:[],operationDescription:``,bodySchemaName:null,bodyKind:null,bodyRequired:!1,requiredBodyPath:[],confidence:`low`,alternatives:[]}}function E(e,t){return e.flatMap(e=>e.in===t?(e.itemProperty??[e]).map(e=>e.name):[])}function D(e,t){return e.filter(e=>e.required&&e.schemaDefault===void 0&&(t===null||e.inputName!==t))}function fe(e,t){let i=f(e,t),a=`${i}${t.schemaType===`array`?`...`:``}`;return`${n(i)} ${r(`<${a}>`)}`}function pe(e,t){let i=p(e,t),a=`${i}${t.schemaType===`array`?`...`:``}`;return`${n(i)} ${r(`<${a}>`)}`}var O=2,me=new Set(`a.an.the.and.or.for.to.of.in.on.at.by.with.from.into.is.are.be.do.does.how.what.which.that.this.these.those.i.me.my.we.our.you.your.it.its.please.want.need.can.could.should.would`.split(`.`)),he=new Set([`delete`,`remove`,`destroy`,`purge`,`erase`,`drop`,`detach`,`unlink`]),ge=new Set([`create`,`add`,`update`,`edit`,`set`,`change`,`modify`,`upload`,`attach`,`merge`,`link`,`join`,`write`,`import`,`publish`,`verify`]),_e=new Set([`list`,`get`,`show`,`view`,`browse`,`fetch`,`read`,`lookup`,`find`,`count`,`inspect`]);function ve(e){let t=t=>[...e].some(e=>t.has(e));return t(he)?`delete`:t(ge)?`write`:t(_e)?`read`:`neutral`}function k(e,t){let n=N(t);n.length!==0&&(e.add(n),(n===`individual`||n===`individuals`)&&k(e,`person`),A(e,ye(n),n),A(e,be(n),n))}function ye(e){if(e===`people`)return`person`;let t=e.endsWith(`ies`)?e.slice(0,-3):``;if(t.length>=O&&!t.endsWith(`v`)&&/[^aeiou]$/u.test(t))return`${e.slice(0,-3)}y`;if(e.length>O&&e.endsWith(`s`)&&!e.endsWith(`ss`)&&!e.endsWith(`us`)&&e!==`news`)return e.slice(0,-1)}function be(e){return e===`person`?`people`:e.length>=O&&e.endsWith(`y`)&&/[^aeiou]y$/u.test(e)?`${e.slice(0,-1)}ies`:e.endsWith(`s`)?void 0:`${e}s`}function A(e,t,n){t!==void 0&&t!==n&&t.length>=O&&/^[a-z]+$/u.test(t)&&e.add(t)}function j(e){let t=new Set(M(e)),n=Array.from(t);for(let e of n)k(t,e);return t}function xe(e){return M(e).map(j)}function Se(e,t){if(e.length===0)return!1;let n=j(t.join(` `));return e.every(e=>[...e].some(e=>n.has(e)))}function M(e){return N(e).split(/[^a-z0-9]+/u).filter(e=>e.length>0&&!me.has(e))}function N(e){return e.trim().replace(/([a-z0-9])([A-Z])/gu,`$1 $2`).replace(/[_-]/gu,` `).replace(/\s+/gu,` `).toLowerCase().replace(/\blook up\b/gu,`lookup`)}var Ce=20,we=15,Te=30,Ee=2;function P(e,t,n){let r=N(e.trim());if(r.length===0)return t.map(e=>({item:e,score:1}));let i=j(r),a=xe(r);return t.map(e=>{let t=n(e);return{item:e,fields:t,score:je(r,i,a,t)}}).filter(({score:e})=>e>0).toSorted((e,t)=>Number(e.fields.deprecated===!0)-Number(t.fields.deprecated===!0)||t.score-e.score||e.fields.cliPath.length-t.fields.cliPath.length||e.fields.cliPath.join(` `).localeCompare(t.fields.cliPath.join(` `))||e.fields.operationId.localeCompare(t.fields.operationId)).map(({item:e,score:t})=>({item:e,score:t}))}function De(e){return{...e,cliPath:e.projection.cliPath,enumParameter:e.parameter.map(e=>({values:e.itemSchemaEnum??e.schemaEnum??[],direct:e.name===e.inputName})),parameterName:e.parameter.flatMap(e=>[e.name,e.inputName]),parameterDescription:[...e.parameter,...e.requestBody??[],...(e.requestBody??[]).flatMap(e=>e.parameter)].map(({description:e})=>e)}}function Oe(e,t){let n=e.q?.trim()??``,r=P(n,t.filter(t=>ke(e,t)),De).map(({item:e,score:t})=>({contract:e,score:t})),i=r.map(({contract:e})=>e),a=e.limit===void 0||!Number.isFinite(e.limit)?Ce:e.limit,o=Math.min(i.length,Math.max(0,Math.trunc(a)));if(e.resolve!==!0){let e=r.slice(0,o).map(({contract:e})=>Ae(e));return{summary:`Operation catalog matches`,data:e,counts:{totalOperations:t.length,matched:i.length,returned:e.length}}}if(n.length===0)return F(t.length,i.length,`Provide q to get a generated command recommendation`,`Catalog listing; omit resolve to browse operations`,[`q`]);let s=j(N(n)),c=ve(s),l=r.filter(({contract:e})=>c===`delete`?!0:e.intent===`delete`||e.projection.destructive?!1:c!==`read`||e.projection.scope!==`write`).toSorted((e,t)=>t.score-e.score||Number(e.contract.projection.scope===`write`)-Number(t.contract.projection.scope===`write`)||e.contract.path.length-t.contract.path.length||e.contract.operationId.localeCompare(t.contract.operationId)),u=l[0];if(u===void 0)return F(t.length,i.length,`No generated operation matched this query`,`See generated operation descriptions`);let d=l.slice(1).map(({contract:e})=>`${w} ${e.projection.cliPath.join(` `)}`).filter((e,t,n)=>n.indexOf(e)===t).slice(0,2),f=u.contract;return{summary:`How-to command recommendation`,data:ce({contract:f,guidance:le(f),confidence:ue(u.score,l[1]?.score??0),alternatives:d,enumQueryFlag:Ie(s,f)}),counts:{totalOperations:t.length,matched:i.length,returned:1}}}function F(e,t,n,r,i=[]){return{summary:`How-to command recommendation`,data:de(n,r,i),counts:{totalOperations:e,matched:t,returned:0}}}function ke(e,t){let n=e.root?.trim().toLowerCase();return!(e.method!==void 0&&t.method!==e.method||e.scope!==void 0&&t.projection.scope!==e.scope||n&&t.resource!==n&&t.projection.cliPath[0]!==n)}function Ae(e){let t=e.requestBody?.[0];return{operationId:e.operationId,method:e.method,path:e.path,cli:e.projection.cliPath.join(` `),resource:e.resource,intent:e.intent,scope:e.projection.scope,bodySchemaName:t?.schemaName??null,bodyKind:t?.kind??null,bodyRequired:t?.required??!1,requiredBodyPath:t?.requiredPath??[],argument:ae(e)}}function je(e,t,n,r){let i=Pe(r),a=Me(r),o=0;i.some(t=>t===e)&&(o+=100),i.some(t=>t.includes(e))&&(o+=40),o+=Ne(e,i);let s=new Set(i.flatMap(M));for(let e of t)i.some(t=>t===e)?o+=20:s.has(e)&&(o+=8);for(let e of r.cliPath){let n=new Set;k(n,e),[...n].some(e=>t.has(e))&&(o+=we)}Se(n,a)&&(o+=200),r.parameterName.some(t=>N(t)===e)&&(o+=Te);let c=new Set(r.parameterDescription.flatMap(M));for(let e of t)c.has(e)&&(o+=Ee);return o+=Re(t,r.enumParameter),[`list`,`search`,`find`,`browse`].some(e=>t.has(e))&&/^(?:list|search)[A-Z]/u.test(r.operationId)&&(o+=30),o-=Fe(e,t,r.description),o}function Me(e){return[e.operationId,e.cliPath.join(` `),e.summary].map(N).filter(e=>e.length>0)}function Ne(e,t){let n=M(e),r=0;for(let e=0;e<n.length-1;e+=1){let i=n.slice(e,e+2).join(` `);t.some(e=>e.includes(i))&&(r+=24)}return r}function Pe(e){return[...new Set([e.operationId,e.method,e.path,e.resource,e.intent,e.cliPath.join(` `),e.summary,T(e.description).useFor||e.description].map(N).filter(e=>e.length>0))]}function Fe(e,t,n){let r=N(T(n).notFor);if(r.length===0)return 0;let i=r.includes(e)?40:0,a=new Set(M(r));for(let e of t)r===e?i+=20:a.has(e)&&(i+=8);return i}function Ie(e,t){for(let i of t.parameter){if(i.in!==`query`)continue;let a=Le(e,i);if(a!==null){let e=f(t,i);return{inputName:i.inputName,flag:`${n(e)} ${r(a,i.schemaType,i.itemSchemaType)}`}}}return null}function Le(e,t){return(t.itemSchemaEnum??t.schemaEnum??[]).find(t=>ze(e,t))??null}function Re(e,t){let n=0;for(let{values:r,direct:i}of t)r.some(t=>ze(e,t))&&(n+=i?40:10);return n}function ze(e,t){let n=M(t);return n.length>0&&n.every(t=>e.has(t))}var Be=a([`HIGH`,`MEDIUM`,`LOW`]),Ve=a([`OPERATION`,`SKILL`,`PROMPT`,`COMPLETION_GATE`,`RESEARCH_DETAIL_TYPE`]),He=s({excerpt:o(),sourceId:o(),sourceType:Ve,sourceVersion:o().nullish()}),Ue=s({answer:o(),citation:i(He),confidence:Be}),We=a([`auto`,`exact`,`keyword`,`semantic`,`natural`]),Ge=s({modeRequested:We,modeUsed:We}),I=120,L=30,R=8,z=10,Ke=2,qe=[`id`,`association.associationId`,`slug`,`name`,`nameBrand`,`nameFull`,`core.nameBrand`,`core.nameFull`,`core.slug`,`core.typeRecord`,`entity.core.nameBrand`,`entity.core.slug`,`title`,`sourceName`,`publishedAt`,`round`,`dateAnnounced`,`amountRaised`,`investorAttribution.amountInvested`,`stage`,`updatedAt`,`createdAt`],Je=new Set([`page`,`size`,`sort`,`cursor`,`mode`,`projection`]),B=[`interpretation`,`confidence`,`unsupported`,`execution`,`fallbackUsed`],Ye=new Map(c.map(({operationId:e,projection:t})=>[e,`${w} ${t.cliPath.join(` `)}`]));function Xe(e,t){if(typeof e==`string`)return e;let n=U(e);if(n===null)return null;let{response:r,hiddenNote:i}=l(n.operationId,n.response),a={...n,response:r},o=at(a.response);if(o!==null)return`${ft(o).join(`
|
|
1
|
+
import{C as e,Di as t,x as n,y as r}from"./client-DTfkNUKH.js";import{l as i,o as a,w as o,y as s}from"./person-owner-BJgNYLKX.js";import{a as c,i as l,n as u,t as d}from"./text-field-BpYhtCBA.js";function f(e,t,n=t.inputName){if(t.in===`body`)return n;let r=re.find(t=>n===t.name&&e.path.includes(t.path));return r===void 0?y(v(n!==`id`&&n!==`slug`?n:`${h(e.path)}${_(n)}`),t):r.inputName}function p(e,t,n=ee(e)){return m(g(e,t),new Set(n))}function m(e,t){if(!t.has(e))return e;let n=`body${_(e)}`,r=n;for(let e=2;t.has(r);e+=1)r=`${n}${e}`;return r}function h(e){return ie.find(([,t])=>t.test(e))?.[0]??`record`}function g(e,t){if(t.name===`id`&&e.path===`/v1/app/url-slug-redirects`)return`recordId`;let n=te(t);return y(e.intent===`search`&&(t.name.startsWith(`filter.`)||t.name.startsWith(`search.`))?v(n.replace(/^(?:filter|search)/u,``).replace(/^./u,e=>e.toLowerCase())):n,t)}function ee(e){return new Set(e.parameter.filter(e=>e.in===`path`||e.in===`query`||e.in===`header`).map(t=>f(e,t)))}function _(e){return e.replace(/^./u,e=>e.toUpperCase())}function v(e){return e.replace(/^addressAddress/u,`address`).replace(/^arrayFilterAmountInvestedRange/u,`fundraiseAmountInvestedRange`).replace(/^arrayFilterAmountRaisedRange/u,`fundraiseAmountRaisedRange`).replace(/^arrayFilterEntityName$/u,`entityName`).replace(/^arrayFilterInvestedCompany$/u,`fundraiseInvestedCompanyName`).replace(/^arrayFilterPersonTitle$/u,`personTitle`).replace(/^arrayFilterRound$/u,`fundraiseRound`).replace(/^arrayFilterTotalInvestmentCount/u,`totalInvestmentCount`).replace(/^arrayFilterTypeRecord$/u,`typeRecord`).replace(/^createEntity/u,`entity`).replace(/^createUrlLink/u,`urlLink`).replace(/^fundraiseActivity/u,`fundraise`).replace(/FundraiseActivity/gu,`Fundraise`).replace(/^logoOption/u,`logo`).replace(/LogoOption/gu,`Logo`).replace(/^researchDetailTypeResearchDetail$/u,`researchDetailType`).replace(/^researchDetailValueResearchDetail$/u,`researchDetailValue`).replace(/^textText$/u,`text`).replace(/^textTextName$/u,`textName`).replace(/^textTextType$/u,`textType`)}function te(e){let t=v(e.inputName);return/(?:^|\.)nameAlias\[\]\./u.test(e.name)?t.replace(/^entityNameAlias/u,`alias`):/(?:^|\.)urlLink\[\]\./u.test(e.name)?ne(t):/(?:^|\.)manualLogo\./u.test(e.name)?t.replace(/^manualLogo/u,`logo`):t}function ne(e){return e===`urlLinkUrl`?`url`:e===`urlLinkUrlType`?`urlType`:e.replace(/^urlLink/u,`url`)}function y(e,t){return e===`text`?/(?:^|\.)text(?:\[\])?\.text$/u.test(t.name)?`textBody`:`inputText`:e}var re=[{name:`detailId`,path:`/research-details/{detailId}`,inputName:`researchDetailId`},{name:`version`,path:`/instructions/`,inputName:`instructionVersion`},{name:`detailId`,path:`/financial/valuation/{detailId}`,inputName:`valuationDetailId`},{name:`joinId`,path:`/fundraise-investor-joins`,inputName:`fundraiseInvestorJoinId`}],ie=[[`entity`,/^\/v1\/entities(?:$|\/detail|\/lookup|\/summary|\/duplicate-check)/u],[`person`,/^\/v1\/people(?:\/detail|\/lookup|\/duplicate-check|\/\{slug\})/u],[`news`,/^\/v1\/(?:news\/|jobs\/news\/)/u],[`screenshot`,/^\/v1\/media\/screenshots\//u],[`media`,/^\/v1\/media/u],[`article`,/^\/v1\/app\/blog\/articles/u],[`page`,/^\/v1\/app\/pages/u],[`contact`,/^\/v1\/contacts\//u],[`provenance`,/^\/v1\/provenance\//u],[`location`,/^\/v1\/addresses\/locations\//u]];function ae(e){let t=e.requestBody?.[0],n=e.parameter.map(t=>b(t,f(e,t))),r=(t?.parameter??[]).map(t=>b(t,p(e,t)));return{selector:n.filter(e=>e.location===`path`||x(e)),pagination:n.filter(S),filter:[...n.filter(C),...r.filter(C)],body:r.filter(e=>!C(e))}}function b(e,t){return{name:e.in===`body`?t:e.name,flag:n(t),required:e.required,location:e.in,description:e.description||`${e.name} ${e.in} parameter`}}function x(e){return/(^|[A-Z])(id|slug)$/u.test(e.name)}function S(e){return[`page`,`size`,`sort`,`cursor`,`mode`,`projection`].includes(e.name)}function C(e){return e.location!==`path`&&!x(e)&&!S(e)}var w=`aventure`,oe={high:60,medium:30},se={high:20,medium:10};function ce(t){let{contract:n,guidance:r,enumQueryFlag:i}=t,a=n.requestBody?.[0],o=i?.inputName??null,s=D(n.parameter,o),c=D(a?.parameter??[],null),l=s.map(e=>fe(n,e)),u=c.map(e=>pe(n,e)),d=a?.requiredPath??[],f=new Set((a?.parameter??[]).map(({name:e})=>e)),m=d.filter(e=>!f.has(e)&&!c.some(({name:t})=>t.startsWith(`${e}.`)||t.startsWith(`${e}[].`))),h=a?.required===!0&&a.kind===`json`&&(u.length===0||m.length>0),g=[w,...n.projection.cliPath,...i===null?[]:[i.flag],...l,...u,...h?[`--from-file "<path>"`]:[]];return{intent:n.intent,operationId:n.operationId,recommendedCommand:g.join(` `),useFor:r.useFor,...r.notFor===``?{}:{notFor:r.notFor},apiRoute:`${n.method} ${n.path}`,mcpTool:e(n.intent),missingInputs:[...s.map(e=>e.name),...c.map(e=>p(n,e)),...m,...h?[`fromFile`]:[]],pathInput:E(n.parameter,`path`),queryInput:E(n.parameter,`query`),bodyInput:(a?.parameter??[]).map(e=>e.name),operationDescription:n.description,bodySchemaName:a?.schemaName??null,bodyKind:a?.kind??null,bodyRequired:a?.required??!1,requiredBodyPath:d,confidence:t.confidence,alternatives:t.alternatives}}function le(e){let t=T(e.description);return{useFor:t.useFor||e.summary||e.description||`${e.method} ${e.path}`,notFor:t.notFor}}function T(e){let t=e.match(/USE FOR:\s*([\s\S]*?)(?:NOT FOR:|$)/iu),n=e.match(/NOT FOR:\s*([\s\S]*?)$/iu);return{useFor:t?.[1]?.trim()??``,notFor:n?.[1]?.trim()??``}}function ue(e,t){if(e===0)return`low`;let n=e-t;return e>=oe.high&&n>=se.high?`high`:e>=oe.medium&&n>=se.medium?`medium`:`low`}function de(e,t,n=[]){return{intent:`unknown`,operationId:``,recommendedCommand:``,useFor:e,notFor:t,apiRoute:``,mcpTool:``,missingInputs:n,pathInput:[],queryInput:[],bodyInput:[],operationDescription:``,bodySchemaName:null,bodyKind:null,bodyRequired:!1,requiredBodyPath:[],confidence:`low`,alternatives:[]}}function E(e,t){return e.flatMap(e=>e.in===t?(e.itemProperty??[e]).map(e=>e.name):[])}function D(e,t){return e.filter(e=>e.required&&e.schemaDefault===void 0&&(t===null||e.inputName!==t))}function fe(e,t){let i=f(e,t),a=`${i}${t.schemaType===`array`?`...`:``}`;return`${n(i)} ${r(`<${a}>`)}`}function pe(e,t){let i=p(e,t),a=`${i}${t.schemaType===`array`?`...`:``}`;return`${n(i)} ${r(`<${a}>`)}`}var O=2,me=new Set(`a.an.the.and.or.for.to.of.in.on.at.by.with.from.into.is.are.be.do.does.how.what.which.that.this.these.those.i.me.my.we.our.you.your.it.its.please.want.need.can.could.should.would`.split(`.`)),he=new Set([`delete`,`remove`,`destroy`,`purge`,`erase`,`drop`,`detach`,`unlink`]),ge=new Set([`create`,`add`,`update`,`edit`,`set`,`change`,`modify`,`upload`,`attach`,`merge`,`link`,`join`,`write`,`import`,`publish`,`verify`]),_e=new Set([`list`,`get`,`show`,`view`,`browse`,`fetch`,`read`,`lookup`,`find`,`count`,`inspect`]);function ve(e){let t=t=>[...e].some(e=>t.has(e));return t(he)?`delete`:t(ge)?`write`:t(_e)?`read`:`neutral`}function k(e,t){let n=N(t);n.length!==0&&(e.add(n),(n===`individual`||n===`individuals`)&&k(e,`person`),A(e,ye(n),n),A(e,be(n),n))}function ye(e){if(e===`people`)return`person`;let t=e.endsWith(`ies`)?e.slice(0,-3):``;if(t.length>=O&&!t.endsWith(`v`)&&/[^aeiou]$/u.test(t))return`${e.slice(0,-3)}y`;if(e.length>O&&e.endsWith(`s`)&&!e.endsWith(`ss`)&&!e.endsWith(`us`)&&e!==`news`)return e.slice(0,-1)}function be(e){return e===`person`?`people`:e.length>=O&&e.endsWith(`y`)&&/[^aeiou]y$/u.test(e)?`${e.slice(0,-1)}ies`:e.endsWith(`s`)?void 0:`${e}s`}function A(e,t,n){t!==void 0&&t!==n&&t.length>=O&&/^[a-z]+$/u.test(t)&&e.add(t)}function j(e){let t=new Set(M(e)),n=Array.from(t);for(let e of n)k(t,e);return t}function xe(e){return M(e).map(j)}function Se(e,t){if(e.length===0)return!1;let n=j(t.join(` `));return e.every(e=>[...e].some(e=>n.has(e)))}function M(e){return N(e).split(/[^a-z0-9]+/u).filter(e=>e.length>0&&!me.has(e))}function N(e){return e.trim().replace(/([a-z0-9])([A-Z])/gu,`$1 $2`).replace(/[_-]/gu,` `).replace(/\s+/gu,` `).toLowerCase().replace(/\blook up\b/gu,`lookup`)}var Ce=20,we=15,Te=30,Ee=2;function P(e,t,n){let r=N(e.trim());if(r.length===0)return t.map(e=>({item:e,score:1}));let i=j(r),a=xe(r);return t.map(e=>{let t=n(e);return{item:e,fields:t,score:je(r,i,a,t)}}).filter(({score:e})=>e>0).toSorted((e,t)=>Number(e.fields.deprecated===!0)-Number(t.fields.deprecated===!0)||t.score-e.score||e.fields.cliPath.length-t.fields.cliPath.length||e.fields.cliPath.join(` `).localeCompare(t.fields.cliPath.join(` `))||e.fields.operationId.localeCompare(t.fields.operationId)).map(({item:e,score:t})=>({item:e,score:t}))}function De(e){return{...e,cliPath:e.projection.cliPath,enumParameter:e.parameter.map(e=>({values:e.itemSchemaEnum??e.schemaEnum??[],direct:e.name===e.inputName})),parameterName:e.parameter.flatMap(e=>[e.name,e.inputName]),parameterDescription:[...e.parameter,...e.requestBody??[],...(e.requestBody??[]).flatMap(e=>e.parameter)].map(({description:e})=>e)}}function Oe(e,t){let n=e.q?.trim()??``,r=P(n,t.filter(t=>ke(e,t)),De).map(({item:e,score:t})=>({contract:e,score:t})),i=r.map(({contract:e})=>e),a=e.limit===void 0||!Number.isFinite(e.limit)?Ce:e.limit,o=Math.min(i.length,Math.max(0,Math.trunc(a)));if(e.resolve!==!0){let e=r.slice(0,o).map(({contract:e})=>Ae(e));return{summary:`Operation catalog matches`,data:e,counts:{totalOperations:t.length,matched:i.length,returned:e.length}}}if(n.length===0)return F(t.length,i.length,`Provide q to get a generated command recommendation`,`Catalog listing; omit resolve to browse operations`,[`q`]);let s=j(N(n)),c=ve(s),l=r.filter(({contract:e})=>c===`delete`?!0:e.intent===`delete`||e.projection.destructive?!1:c!==`read`||e.projection.scope!==`write`).toSorted((e,t)=>t.score-e.score||Number(e.contract.projection.scope===`write`)-Number(t.contract.projection.scope===`write`)||e.contract.path.length-t.contract.path.length||e.contract.operationId.localeCompare(t.contract.operationId)),u=l[0];if(u===void 0)return F(t.length,i.length,`No generated operation matched this query`,`See generated operation descriptions`);let d=l.slice(1).map(({contract:e})=>`${w} ${e.projection.cliPath.join(` `)}`).filter((e,t,n)=>n.indexOf(e)===t).slice(0,2),f=u.contract;return{summary:`How-to command recommendation`,data:ce({contract:f,guidance:le(f),confidence:ue(u.score,l[1]?.score??0),alternatives:d,enumQueryFlag:Ie(s,f)}),counts:{totalOperations:t.length,matched:i.length,returned:1}}}function F(e,t,n,r,i=[]){return{summary:`How-to command recommendation`,data:de(n,r,i),counts:{totalOperations:e,matched:t,returned:0}}}function ke(e,t){let n=e.root?.trim().toLowerCase();return!(e.method!==void 0&&t.method!==e.method||e.scope!==void 0&&t.projection.scope!==e.scope||n&&t.resource!==n&&t.projection.cliPath[0]!==n)}function Ae(e){let t=e.requestBody?.[0];return{operationId:e.operationId,method:e.method,path:e.path,cli:e.projection.cliPath.join(` `),resource:e.resource,intent:e.intent,scope:e.projection.scope,bodySchemaName:t?.schemaName??null,bodyKind:t?.kind??null,bodyRequired:t?.required??!1,requiredBodyPath:t?.requiredPath??[],argument:ae(e)}}function je(e,t,n,r){let i=Pe(r),a=Me(r),o=0;i.some(t=>t===e)&&(o+=100),i.some(t=>t.includes(e))&&(o+=40),o+=Ne(e,i);let s=new Set(i.flatMap(M));for(let e of t)i.some(t=>t===e)?o+=20:s.has(e)&&(o+=8);for(let e of r.cliPath){let n=new Set;k(n,e),[...n].some(e=>t.has(e))&&(o+=we)}Se(n,a)&&(o+=200),r.parameterName.some(t=>N(t)===e)&&(o+=Te);let c=new Set(r.parameterDescription.flatMap(M));for(let e of t)c.has(e)&&(o+=Ee);return o+=Re(t,r.enumParameter),[`list`,`search`,`find`,`browse`].some(e=>t.has(e))&&/^(?:list|search)[A-Z]/u.test(r.operationId)&&(o+=30),o-=Fe(e,t,r.description),o}function Me(e){return[e.operationId,e.cliPath.join(` `),e.summary].map(N).filter(e=>e.length>0)}function Ne(e,t){let n=M(e),r=0;for(let e=0;e<n.length-1;e+=1){let i=n.slice(e,e+2).join(` `);t.some(e=>e.includes(i))&&(r+=24)}return r}function Pe(e){return[...new Set([e.operationId,e.method,e.path,e.resource,e.intent,e.cliPath.join(` `),e.summary,T(e.description).useFor||e.description].map(N).filter(e=>e.length>0))]}function Fe(e,t,n){let r=N(T(n).notFor);if(r.length===0)return 0;let i=r.includes(e)?40:0,a=new Set(M(r));for(let e of t)r===e?i+=20:a.has(e)&&(i+=8);return i}function Ie(e,t){for(let i of t.parameter){if(i.in!==`query`)continue;let a=Le(e,i);if(a!==null){let e=f(t,i);return{inputName:i.inputName,flag:`${n(e)} ${r(a,i.schemaType,i.itemSchemaType)}`}}}return null}function Le(e,t){return(t.itemSchemaEnum??t.schemaEnum??[]).find(t=>ze(e,t))??null}function Re(e,t){let n=0;for(let{values:r,direct:i}of t)r.some(t=>ze(e,t))&&(n+=i?40:10);return n}function ze(e,t){let n=M(t);return n.length>0&&n.every(t=>e.has(t))}var Be=a([`HIGH`,`MEDIUM`,`LOW`]),Ve=a([`OPERATION`,`SKILL`,`PROMPT`,`COMPLETION_GATE`,`RESEARCH_DETAIL_TYPE`]),He=s({excerpt:o(),sourceId:o(),sourceType:Ve,sourceVersion:o().nullish()}),Ue=s({answer:o(),citation:i(He),confidence:Be}),We=a([`auto`,`exact`,`keyword`,`semantic`,`natural`]),Ge=s({modeRequested:We,modeUsed:We}),I=120,L=30,R=8,z=10,Ke=2,qe=[`id`,`association.associationId`,`slug`,`name`,`nameBrand`,`nameFull`,`core.nameBrand`,`core.nameFull`,`core.slug`,`core.typeRecord`,`entity.core.nameBrand`,`entity.core.slug`,`title`,`sourceName`,`publishedAt`,`round`,`dateAnnounced`,`amountRaised`,`investorAttribution.amountInvested`,`stage`,`updatedAt`,`createdAt`],Je=new Set([`page`,`size`,`sort`,`cursor`,`mode`,`projection`]),B=[`interpretation`,`confidence`,`unsupported`,`execution`,`fallbackUsed`],Ye=new Map(c.map(({operationId:e,projection:t})=>[e,`${w} ${t.cliPath.join(` `)}`]));function Xe(e,t){if(typeof e==`string`)return e;let n=U(e);if(n===null)return null;let{response:r,hiddenNote:i}=l(n.operationId,n.response),a={...n,response:r},o=at(a.response);if(o!==null)return`${ft(o).join(`
|
|
2
2
|
`)}\n`;let s=a.summary??t??a.operationId??`OpenAPI call succeeded`,c=$e(a);return`${[...ft([s,`${a.method} ${a.endpoint}`,...c].filter(e=>e.length>0)),...i].join(`
|
|
3
3
|
`)}\n`}function Ze(e){let t=U(e)?.response,n=t!==void 0&&X(t)?t.interpretation:void 0;if(n===void 0||!X(n))return null;let r=Ge.safeParse(n.execution);if(!r.success)return null;let{modeRequested:i,modeUsed:a}=r.data,o=K(n.filter??null),{unsupported:s,fallbackUsed:c}=n;return`${[`strategy: requested=${i} used=${a}`,...o!==void 0&&X(o)?[`constraints:`,...Object.entries(o).map(([e,t])=>` ${e}: ${Qe(t)}`)]:[],typeof s==`string`&&s.trim().length>0?`unsupported: ${s}`:``,c===!0?`fallback: semantic search over the original query`:``].filter(Boolean).join(`
|
|
4
4
|
`)}\n`}var Qe=e=>Z(e)?u(e):Array.isArray(e)&&e.every(Z)?e.map(e=>u(e)).join(`, `):JSON.stringify(e);function $e(e){let{response:t,method:n,endpoint:r,nextCursor:i,httpStatus:a,location:o}=e;if(t===void 0)return o!==void 0&&a!==void 0?[`status=${a} redirect=${o}`]:a===void 0?[]:[`status=${a} no response body`];let s=a===void 0||n===`GET`?``:`status=${a}`,c=X(t)&&!J(t)?ot(t):null,l=c===null?void 0:it(c.context)?K(c.context):c.context;return[s,...J(t)?V(t,r,i):c===null?ct(t)?H(t.filter,t.meta):lt(t)?H([...t.arrayFilterEntry,...t.rangeFilterEntry],t.filtersMeta):ut(t)?nt(t):W(t,``):[...V(c.page,r,i),...l===void 0?[]:W(l,``)]].filter(Boolean)}function V(e,t,n){let r=rt(t);return[`rows=${e.numberOfElements??e.content.length}${e.number===void 0?``:` page=${e.number}`}${e.size===void 0?``:` size=${e.size}`}${e.totalElements===void 0?``:` total=${e.totalElements}`}${e.totalPages===void 0?``:` totalPages=${e.totalPages}`}`,r.length>0?`filters: ${r.join(` `)}`:``,n===void 0?``:`next: --cursor ${$(n)}`,...et(e.content)].filter(Boolean)}function et(e){let t=e.filter(X);if(t.length===0)return e.length===0?[`(empty)`]:G(e,``);let n=tt(t);if(n.length===0)return G(e.slice(0,L),``);let r=t.slice(0,L).map(e=>{let t=q(e);return n.map(e=>t[e]??``)}),i=n.map(e=>e.split(`.`).at(-1)??e),a=i.map((e,t)=>{let n=r.map(e=>e[t]??``),i=Math.max(e.length,...n.map(e=>e.length));return e===`id`||e.endsWith(`Id`)?i:Math.min(32,i)}),o=e=>e.map((e,t)=>dt(e,a[t]??12).padEnd(a[t]??12)).join(` `),s=[o(i),o(a.map(e=>`-`.repeat(e)))];return r.forEach(e=>s.push(o(e))),t.length>L&&s.push(`... ${t.length-L} more rows`),s}function tt(e){let t=new Set(e.flatMap(e=>Object.keys(q(e)))),n=qe.filter(e=>t.has(e)),r=[...t].filter(e=>!n.includes(e)).filter(e=>!e.toLowerCase().includes(`logo`)).slice(0,R-n.length);return[...n,...r].slice(0,R)}function H(e,t){let n=t!==void 0&&X(t)?t:{},r=[`total`,`limit`].flatMap(e=>typeof n[e]==`number`?[` ${e}=${n[e]}`]:[]).join(``),i=[`filters=${e.length}${r}`];for(let t of e){let e=t.choiceOption.length,n=t.choiceOptionTotal===null?`unknown (degraded)`:t.choiceOptionTotal??e,r=t.choiceOptionTruncated===!0?` truncated`:``;i.push(`- ${t.filterKey} (${t.label}): choices ${e}/${n}${r}`),t.choiceOption.slice(0,z).forEach(e=>{i.push(` ${Q(t.filterKey)} ${$(e.value)}`)}),e>z&&i.push(` ... ${e-z} more shown`)}return i}function nt(e){let t=Q(e.filterKey);return[`${e.filterKey}: ${e.result.length} matches`,...e.result.slice(0,z).map(e=>`${t} ${$(e)}`),e.result.length>z?`... ${e.result.length-z} more matches`:``].filter(Boolean)}function rt(e){let t=e.indexOf(`?`);return t<0?[]:[...new URLSearchParams(e.slice(t+1)).entries()].filter(([e,t])=>!Je.has(e)&&t.length>0).map(([e,t])=>`${Q(e)} ${$(t)}`)}function U(e){if(typeof e!=`object`||!e||Array.isArray(e))return null;let n=Reflect.get(e,`method`),r=Reflect.get(e,`endpoint`);if(typeof n!=`string`||typeof r!=`string`)return null;let i=Reflect.get(e,`operationId`),a=Reflect.get(e,`summary`),o=Reflect.get(e,`httpStatus`),s=Reflect.get(e,`location`),c=Reflect.get(e,`nextCursor`),l=Reflect.get(e,`response`),u=l===void 0?void 0:t.safeParse(l);return u!==void 0&&!u.success?null:{method:n,endpoint:r,httpStatus:typeof o==`number`?o:void 0,location:typeof s==`string`?s:void 0,operationId:typeof i==`string`?i:void 0,summary:typeof a==`string`?a:void 0,nextCursor:typeof c==`string`&&c.length>0?c:void 0,response:u?.data}}function W(e,t,n){if(e===void 0)return[];if(Z(e))return[`${t}${d(e,n)}`];if(Array.isArray(e))return G(e,t,n);let r=[];for(let[n,i]of Object.entries(e)){if(Z(i)){r.push(`${t}${n}: ${d(i,n)}`);continue}r.push(`${t}${n}:`);for(let e of W(i,`${t} `,n))r.push(e)}return r.length===0?[`${t}(empty)`]:r}function G(e,t,n){if(e.length===0)return[`${t}(empty)`];let r=[];for(let i of e){if(Z(i)){r.push(`${t}- ${d(i,n)}`);continue}r.push(`${t}-`);for(let e of W(i,`${t} `))r.push(e)}return r}function it(e){let t=e.interpretation;return t!==void 0&&X(t)}function K(e){if(Z(e))return e===null||typeof e==`string`&&e.trim().length===0?void 0:e;if(Array.isArray(e)){let t=e.flatMap(e=>{let t=K(e);return t===void 0?[]:[t]});return t.length===0?void 0:t}let t=Object.entries(e).flatMap(([e,t])=>{let n=K(t);return n===void 0?[]:[[e,n]]});if(t.length!==0)return Object.fromEntries([...B.flatMap(e=>t.filter(([t])=>t===e)),...t.filter(([e])=>!B.includes(e))])}function at(e){let t=Ue.safeParse(e);if(!t.success)return null;let{answer:n,citation:r,confidence:i}=t.data,a=n.trimEnd().split(`
|
package/dist/mcp-server/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{A as e,M as t,N as n,O as r,_ as i,c as a,d as o,j as s,k as c,l,n as u,t as d,y as f}from"../chunks/esm-kgyHmk-Q.js";import{$ as p,$n as m,$r as h,$t as g,A as _,Ai as v,An as y,Ar as b,At as x,B as S,Bi as C,Bn as w,Br as T,Bt as E,Cn as D,Cr as O,Ct as k,D as A,Di as j,Dn as ee,Dr as te,Dt as M,E as N,Ei as ne,En as re,Er as ie,Et as ae,F as oe,Fi as se,Fn as ce,Fr as le,Ft as ue,G as de,Gi as fe,Gn as pe,Gr as me,Gt as he,H as ge,Hi as _e,Hn as ve,Hr as ye,Ht as be,I as xe,Ii as Se,In as Ce,Ir as we,It as Te,J as Ee,Jn as De,Jr as Oe,Jt as ke,K as Ae,Ki as je,Kn as Me,Kr as Ne,L as Pe,Ln as Fe,Lr as Ie,Lt as Le,M as Re,Mi as ze,Mn as Be,Mr as Ve,Mt as He,N as Ue,Ni as We,Nn as Ge,Nr as Ke,Nt as qe,O as Je,Oi as Ye,On as Xe,Or as Ze,Ot as Qe,P as $e,Pi as et,Pn as tt,Pr as nt,Pt as rt,Q as it,Qi as at,Qn as ot,Qr as st,Qt as ct,R as lt,Ri as ut,Rn as dt,Rr as ft,Rt as pt,Si as mt,Sn as ht,Sr as gt,St as _t,T as vt,Ti as yt,Tn as bt,Tr as xt,Tt as St,U as Ct,Un as wt,Ur as Tt,Ut as Et,V as Dt,Vi as Ot,Vn as kt,Vr as At,Vt as jt,W as Mt,Wi as Nt,Wn as Pt,Wr as Ft,Wt as It,X as Lt,Xi as Rt,Xn as zt,Xr as Bt,Xt as Vt,Y as Ht,Yi as Ut,Yn as Wt,Yr as Gt,Yt as Kt,Z as qt,Zi as Jt,Zn as Yt,Zr as Xt,Zt,_i as Qt,_n as $t,_r as en,_t as tn,a as nn,ai as rn,an,ar as on,at as sn,bn as cn,br as ln,bt as un,cn as dn,cr as fn,dn as pn,dr as mn,dt as hn,ea as gn,ei as _n,en as vn,er as yn,et as bn,fn as xn,fr as Sn,ft as Cn,g as wn,gi as Tn,gn as En,gr as Dn,gt as On,h as kn,hn as An,hr as jn,ht as Mn,ii as Nn,in as Pn,ir as Fn,it as In,j as Ln,ji as Rn,jn as zn,jr as Bn,jt as Vn,ki as Hn,kn as Un,kr as Wn,kt as Gn,l as Kn,li as qn,ln as Jn,lr as Yn,lt as Xn,m as Zn,mi as Qn,mn as $n,mr as er,mt as tr,n as nr,na as rr,ni as ir,nn as ar,nr as or,nt as sr,o as cr,oi as lr,on as ur,or as dr,ot as fr,p as pr,pn as mr,pr as hr,pt as gr,q as _r,qi as vr,qn as yr,qr as br,qt as xr,r as Sr,ra as Cr,rn as wr,rr as Tr,rt as Er,s as Dr,si as Or,sn as kr,sr as Ar,st as jr,ti as Mr,tn as Nr,tr as Pr,tt as Fr,ui as Ir,un as Lr,ur as Rr,ut as zr,vn as Br,vr as Vr,vt as Hr,w as Ur,wi as Wr,wn as Gr,wr as Kr,wt as qr,xn as Jr,xr as Yr,xt as Xr,yn as Zr,yr as Qr,yt as $r,z as ei,zi as ti,zn as ni,zr as ri,zt as ii}from"../chunks/client-CcjLYAaT.js";import{A as ai,D as oi,E as P,S as F,T as I,_ as L,b as R,c as si,d as ci,f as li,g as z,h as ui,i as di,k as fi,l as B,m as pi,o as V,p as mi,r as hi,s as gi,u as H,v as U,w as W,x as _i,y as G}from"../chunks/person-owner-BJgNYLKX.js";import{a as vi}from"../chunks/text-field-CNn6lG8Y.js";import{t as yi}from"../chunks/provider-catalog-Dgyf764K.js";import{i as bi,t as xi}from"../chunks/text-response-CGcFPo_4.js";import Si from"crypto";import{Readable as Ci}from"stream";import{Buffer as wi}from"node:buffer";import{fileURLToPath as Ti}from"node:url";import{isIP as Ei,isIPv4 as Di,isIPv6 as Oi}from"node:net";import{createHash as ki,randomUUID as Ai,timingSafeEqual as ji}from"node:crypto";import{hostname as Mi}from"node:os";var Ni={name:`metric_data_point`,countItems:e=>{let t=0;for(let n of e.scopeMetrics)for(let e of n.metrics)t+=e.dataPoints.length;return t}},Pi,Fi=c((()=>{(function(e){e[e.DELTA=0]=`DELTA`,e[e.CUMULATIVE=1]=`CUMULATIVE`})(Pi||={})})),K,Ii,Li=c((()=>{(function(e){e.COUNTER=`COUNTER`,e.GAUGE=`GAUGE`,e.HISTOGRAM=`HISTOGRAM`,e.UP_DOWN_COUNTER=`UP_DOWN_COUNTER`,e.OBSERVABLE_COUNTER=`OBSERVABLE_COUNTER`,e.OBSERVABLE_GAUGE=`OBSERVABLE_GAUGE`,e.OBSERVABLE_UP_DOWN_COUNTER=`OBSERVABLE_UP_DOWN_COUNTER`})(K||={}),(function(e){e[e.HISTOGRAM=0]=`HISTOGRAM`,e[e.EXPONENTIAL_HISTOGRAM=1]=`EXPONENTIAL_HISTOGRAM`,e[e.GAUGE=2]=`GAUGE`,e[e.SUM=3]=`SUM`})(Ii||={})}));function Ri(e){let t=Object.keys(e);return t.length===0?``:(t=t.sort(),JSON.stringify(t.map(t=>[t,e[t]])))}function zi(e){return`${e.name}:${e.version??``}:${e.schemaUrl??``}`}function Bi(e,t){let n,r=new Promise(function(e,r){n=setTimeout(function(){r(new Wi(`Operation timed out.`))},t)});return Promise.race([e,r]).then(e=>(clearTimeout(n),e),e=>{throw clearTimeout(n),e})}function Vi(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Hi(e,t){let n=0,r=e.length-1,i=e.length;for(;r>=n;){let a=n+Math.trunc((r-n)/2);e[a]<t?n=a+1:(i=a,r=a-1)}return i}function Ui(e,t){return e.toLowerCase()===t.toLowerCase()}var Wi,Gi=c((()=>{Wi=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}}})),Ki,qi=c((()=>{(function(e){e[e.DROP=0]=`DROP`,e[e.SUM=1]=`SUM`,e[e.LAST_VALUE=2]=`LAST_VALUE`,e[e.HISTOGRAM=3]=`HISTOGRAM`,e[e.EXPONENTIAL_HISTOGRAM=4]=`EXPONENTIAL_HISTOGRAM`})(Ki||={})})),Ji,Yi=c((()=>{qi(),Ji=class{kind=Ki.DROP;createAccumulation(){}merge(e,t){}diff(e,t){}toMetricData(e,t,n,r){}}}));function Xi(e){let t=e.map(()=>0);return t.push(0),{buckets:{boundaries:e,counts:t},sum:0,count:0,hasMinMax:!1,min:1/0,max:-1/0}}var Zi,Qi,$i=c((()=>{qi(),Li(),Gi(),Zi=class{startTime;_boundaries;_recordMinMax;_current;constructor(e,t,n=!0,r=Xi(t)){this.startTime=e,this._boundaries=t,this._recordMinMax=n,this._current=r}record(e){if(Number.isNaN(e))return;this._current.count+=1,this._current.sum+=e,this._recordMinMax&&(this._current.min=Math.min(e,this._current.min),this._current.max=Math.max(e,this._current.max),this._current.hasMinMax=!0);let t=Hi(this._boundaries,e);this._current.buckets.counts[t]+=1}setStartTime(e){this.startTime=e}toPointValue(){return this._current}},Qi=class{kind=Ki.HISTOGRAM;_boundaries;_recordMinMax;constructor(e,t){this._boundaries=e,this._recordMinMax=t}createAccumulation(e){return new Zi(e,this._boundaries,this._recordMinMax)}merge(e,t){let n=e.toPointValue(),r=t.toPointValue(),i=n.buckets.counts,a=r.buckets.counts,o=Array(i.length);for(let e=0;e<i.length;e++)o[e]=i[e]+a[e];let s=1/0,c=-1/0;return this._recordMinMax&&(n.hasMinMax&&r.hasMinMax?(s=Math.min(n.min,r.min),c=Math.max(n.max,r.max)):n.hasMinMax?(s=n.min,c=n.max):r.hasMinMax&&(s=r.min,c=r.max)),new Zi(e.startTime,n.buckets.boundaries,this._recordMinMax,{buckets:{boundaries:n.buckets.boundaries,counts:o},count:n.count+r.count,sum:n.sum+r.sum,hasMinMax:this._recordMinMax&&(n.hasMinMax||r.hasMinMax),min:s,max:c})}diff(e,t){let n=e.toPointValue(),r=t.toPointValue(),i=n.buckets.counts,a=r.buckets.counts,o=Array(i.length);for(let e=0;e<i.length;e++)o[e]=a[e]-i[e];return new Zi(t.startTime,n.buckets.boundaries,this._recordMinMax,{buckets:{boundaries:n.buckets.boundaries,counts:o},count:r.count-n.count,sum:r.sum-n.sum,hasMinMax:!1,min:1/0,max:-1/0})}toMetricData(e,t,n,r){return{descriptor:e,aggregationTemporality:t,dataPointType:Ii.HISTOGRAM,dataPoints:n.map(([t,n])=>{let i=n.toPointValue(),a=e.type===K.GAUGE||e.type===K.UP_DOWN_COUNTER||e.type===K.OBSERVABLE_GAUGE||e.type===K.OBSERVABLE_UP_DOWN_COUNTER;return{attributes:t,startTime:n.startTime,endTime:r,value:{min:i.hasMinMax?i.min:void 0,max:i.hasMinMax?i.max:void 0,sum:a?void 0:i.sum,buckets:i.buckets,count:i.count}}})}}}})),ea,ta,na=c((()=>{ea=class e{backing;indexBase;indexStart;indexEnd;constructor(e=new ta,t=0,n=0,r=0){this.backing=e,this.indexBase=t,this.indexStart=n,this.indexEnd=r}get offset(){return this.indexStart}get length(){return this.backing.length===0||this.indexEnd===this.indexStart&&this.at(0)===0?0:this.indexEnd-this.indexStart+1}counts(){return Array.from({length:this.length},(e,t)=>this.at(t))}at(e){let t=this.indexBase-this.indexStart;return e<t&&(e+=this.backing.length),e-=t,this.backing.countAt(e)}incrementBucket(e,t){this.backing.increment(e,t)}decrementBucket(e,t){this.backing.decrement(e,t)}trim(){for(let e=0;e<this.length;e++)if(this.at(e)!==0){this.indexStart+=e;break}else if(e===this.length-1){this.indexStart=this.indexEnd=this.indexBase=0;return}for(let e=this.length-1;e>=0;e--)if(this.at(e)!==0){this.indexEnd-=this.length-e-1;break}this._rotate()}downscale(e){this._rotate();let t=1+this.indexEnd-this.indexStart,n=1<<e,r=0,i=0;for(let e=this.indexStart;e<=this.indexEnd;){let a=e%n;a<0&&(a+=n);for(let o=a;o<n&&r<t;o++)this._relocateBucket(i,r),r++,e++;i++}this.indexStart>>=e,this.indexEnd>>=e,this.indexBase=this.indexStart}clone(){return new e(this.backing.clone(),this.indexBase,this.indexStart,this.indexEnd)}_rotate(){let e=this.indexBase-this.indexStart;e!==0&&(e>0?(this.backing.reverse(0,this.backing.length),this.backing.reverse(0,e),this.backing.reverse(e,this.backing.length)):(this.backing.reverse(0,this.backing.length),this.backing.reverse(0,this.backing.length+e)),this.indexBase=this.indexStart)}_relocateBucket(e,t){e!==t&&this.incrementBucket(e,this.backing.emptyBucket(t))}},ta=class e{_counts;constructor(e=[0]){this._counts=e}get length(){return this._counts.length}countAt(e){return this._counts[e]}growTo(e,t,n){let r=Array(e).fill(0);r.splice(n,this._counts.length-t,...this._counts.slice(t)),r.splice(0,t,...this._counts.slice(0,t)),this._counts=r}reverse(e,t){let n=Math.floor((e+t)/2)-e;for(let r=0;r<n;r++){let n=this._counts[e+r];this._counts[e+r]=this._counts[t-r-1],this._counts[t-r-1]=n}}emptyBucket(e){let t=this._counts[e];return this._counts[e]=0,t}increment(e,t){this._counts[e]+=t}decrement(e,t){this._counts[e]>=t?this._counts[e]-=t:this._counts[e]=0}clone(){return new e([...this._counts])}}}));function ra(e){return fa.setFloat64(0,e),{hi:fa.getUint32(0),lo:fa.getUint32(4)}}function ia(e){let{hi:t}=ra(e);return((t&oa)>>20)-ca}function aa(e){let{hi:t,lo:n}=ra(e);return(t&sa)===0&&n===0}var oa,sa,ca,la,ua,da,fa,pa=c((()=>{oa=2146435072,sa=1048575,ca=1023,la=-1022,ua=ca,da=2**-1022,fa=new DataView(new ArrayBuffer(8))}));function ma(e,t){return e===0||e===1/0||e===-1/0||Number.isNaN(e)?e:e*2**t}function ha(e){return e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e++,e}var ga=c((()=>{})),_a,va=c((()=>{_a=class extends Error{}})),ya,ba=c((()=>{pa(),ga(),va(),ya=class{_shift;constructor(e){this._shift=-e}mapToIndex(e){return e<da?this._minNormalLowerBoundaryIndex():ia(e)+(aa(e)?-1:0)>>this._shift}lowerBoundary(e){let t=this._minNormalLowerBoundaryIndex();if(e<t)throw new _a(`underflow: ${e} is < minimum lower boundary: ${t}`);let n=this._maxNormalLowerBoundaryIndex();if(e>n)throw new _a(`overflow: ${e} is > maximum lower boundary: ${n}`);return ma(1,e<<this._shift)}get scale(){return this._shift===0?0:-this._shift}_minNormalLowerBoundaryIndex(){let e=la>>this._shift;return this._shift<2&&e--,e}_maxNormalLowerBoundaryIndex(){return ua>>this._shift}}})),xa,Sa=c((()=>{pa(),ga(),va(),xa=class{_scale;_scaleFactor;_inverseFactor;constructor(e){this._scale=e,this._scaleFactor=ma(Math.LOG2E,e),this._inverseFactor=ma(Math.LN2,-e)}mapToIndex(e){if(e<=da)return this._minNormalLowerBoundaryIndex()-1;if(aa(e))return(ia(e)<<this._scale)-1;let t=Math.floor(Math.log(e)*this._scaleFactor),n=this._maxNormalLowerBoundaryIndex();return t>=n?n:t}lowerBoundary(e){let t=this._maxNormalLowerBoundaryIndex();if(e>=t){if(e===t)return 2*Math.exp((e-(1<<this._scale))/this._scaleFactor);throw new _a(`overflow: ${e} is > maximum lower boundary: ${t}`)}let n=this._minNormalLowerBoundaryIndex();if(e<=n){if(e===n)return da;if(e===n-1)return Math.exp((e+(1<<this._scale))/this._scaleFactor)/2;throw new _a(`overflow: ${e} is < minimum lower boundary: ${n}`)}return Math.exp(e*this._inverseFactor)}get scale(){return this._scale}_minNormalLowerBoundaryIndex(){return la<<this._scale}_maxNormalLowerBoundaryIndex(){return(ua+1<<this._scale)-1}}}));function Ca(e){if(e>Ta||e<wa)throw new _a(`expected scale >= ${wa} && <= ${Ta}, got: ${e}`);return Ea[e+10]}var wa,Ta,Ea,Da=c((()=>{ba(),Sa(),va(),wa=-10,Ta=20,Ea=Array.from({length:31},(e,t)=>t>10?new xa(t-10):new ya(t-10))})),Oa,ka,Aa,ja,Ma,Na,Pa=c((()=>{qi(),Li(),u(),na(),Da(),ga(),Oa=class e{static combine(t,n){return new e(Math.min(t.low,n.low),Math.max(t.high,n.high))}low;high;constructor(e,t){this.low=e,this.high=t}},ka=20,Aa=160,ja=2,Ma=class e{startTime;_maxSize;_recordMinMax;_sum;_count;_zeroCount;_min;_max;_positive;_negative;_mapping;constructor(e,t=Aa,n=!0,r=0,i=0,a=0,o=1/0,s=-1/0,c=new ea,u=new ea,d=Ca(ka)){this.startTime=e,this._maxSize=t,this._recordMinMax=n,this._sum=r,this._count=i,this._zeroCount=a,this._min=o,this._max=s,this._positive=c,this._negative=u,this._mapping=d,this._maxSize<ja&&(l.warn(`Exponential Histogram Max Size set to ${this._maxSize}, \
|
|
2
|
+
import{A as e,M as t,N as n,O as r,_ as i,c as a,d as o,j as s,k as c,l,n as u,t as d,y as f}from"../chunks/esm-kgyHmk-Q.js";import{$ as p,$n as m,$r as h,$t as g,A as _,Ai as v,An as y,Ar as b,At as x,B as S,Bi as C,Bn as w,Br as T,Bt as E,Cn as D,Cr as O,Ct as k,D as A,Di as j,Dn as ee,Dr as te,Dt as M,E as N,Ei as ne,En as re,Er as ie,Et as ae,F as oe,Fi as se,Fn as ce,Fr as le,Ft as ue,G as de,Gi as fe,Gn as pe,Gr as me,Gt as he,H as ge,Hi as _e,Hn as ve,Hr as ye,Ht as be,I as xe,Ii as Se,In as Ce,Ir as we,It as Te,J as Ee,Jn as De,Jr as Oe,Jt as ke,K as Ae,Ki as je,Kn as Me,Kr as Ne,L as Pe,Ln as Fe,Lr as Ie,Lt as Le,M as Re,Mi as ze,Mn as Be,Mr as Ve,Mt as He,N as Ue,Ni as We,Nn as Ge,Nr as Ke,Nt as qe,O as Je,Oi as Ye,On as Xe,Or as Ze,Ot as Qe,P as $e,Pi as et,Pn as tt,Pr as nt,Pt as rt,Q as it,Qi as at,Qn as ot,Qr as st,Qt as ct,R as lt,Ri as ut,Rn as dt,Rr as ft,Rt as pt,Si as mt,Sn as ht,Sr as gt,St as _t,T as vt,Ti as yt,Tn as bt,Tr as xt,Tt as St,U as Ct,Un as wt,Ur as Tt,Ut as Et,V as Dt,Vi as Ot,Vn as kt,Vr as At,Vt as jt,W as Mt,Wi as Nt,Wn as Pt,Wr as Ft,Wt as It,X as Lt,Xi as Rt,Xn as zt,Xr as Bt,Xt as Vt,Y as Ht,Yi as Ut,Yn as Wt,Yr as Gt,Yt as Kt,Z as qt,Zi as Jt,Zn as Yt,Zr as Xt,Zt,_i as Qt,_n as $t,_r as en,_t as tn,a as nn,ai as rn,an,ar as on,at as sn,bn as cn,br as ln,bt as un,cn as dn,cr as fn,dn as pn,dr as mn,dt as hn,ea as gn,ei as _n,en as vn,er as yn,et as bn,fn as xn,fr as Sn,ft as Cn,g as wn,gi as Tn,gn as En,gr as Dn,gt as On,h as kn,hn as An,hr as jn,ht as Mn,ii as Nn,in as Pn,ir as Fn,it as In,j as Ln,ji as Rn,jn as zn,jr as Bn,jt as Vn,ki as Hn,kn as Un,kr as Wn,kt as Gn,l as Kn,li as qn,ln as Jn,lr as Yn,lt as Xn,m as Zn,mi as Qn,mn as $n,mr as er,mt as tr,n as nr,na as rr,ni as ir,nn as ar,nr as or,nt as sr,o as cr,oi as lr,on as ur,or as dr,ot as fr,p as pr,pn as mr,pr as hr,pt as gr,q as _r,qi as vr,qn as yr,qr as br,qt as xr,r as Sr,ra as Cr,rn as wr,rr as Tr,rt as Er,s as Dr,si as Or,sn as kr,sr as Ar,st as jr,ti as Mr,tn as Nr,tr as Pr,tt as Fr,ui as Ir,un as Lr,ur as Rr,ut as zr,vn as Br,vr as Vr,vt as Hr,w as Ur,wi as Wr,wn as Gr,wr as Kr,wt as qr,xn as Jr,xr as Yr,xt as Xr,yn as Zr,yr as Qr,yt as $r,z as ei,zi as ti,zn as ni,zr as ri,zt as ii}from"../chunks/client-DTfkNUKH.js";import{A as ai,D as oi,E as P,S as F,T as I,_ as L,b as R,c as si,d as ci,f as li,g as z,h as ui,i as di,k as fi,l as B,m as pi,o as V,p as mi,r as hi,s as gi,u as H,v as U,w as W,x as _i,y as G}from"../chunks/person-owner-BJgNYLKX.js";import{a as vi}from"../chunks/text-field-BpYhtCBA.js";import{t as yi}from"../chunks/provider-catalog-Bv7Z3JU2.js";import{i as bi,t as xi}from"../chunks/text-response-CgT7_Y0E.js";import Si from"crypto";import{Readable as Ci}from"stream";import{Buffer as wi}from"node:buffer";import{fileURLToPath as Ti}from"node:url";import{isIP as Ei,isIPv4 as Di,isIPv6 as Oi}from"node:net";import{createHash as ki,randomUUID as Ai,timingSafeEqual as ji}from"node:crypto";import{hostname as Mi}from"node:os";var Ni={name:`metric_data_point`,countItems:e=>{let t=0;for(let n of e.scopeMetrics)for(let e of n.metrics)t+=e.dataPoints.length;return t}},Pi,Fi=c((()=>{(function(e){e[e.DELTA=0]=`DELTA`,e[e.CUMULATIVE=1]=`CUMULATIVE`})(Pi||={})})),K,Ii,Li=c((()=>{(function(e){e.COUNTER=`COUNTER`,e.GAUGE=`GAUGE`,e.HISTOGRAM=`HISTOGRAM`,e.UP_DOWN_COUNTER=`UP_DOWN_COUNTER`,e.OBSERVABLE_COUNTER=`OBSERVABLE_COUNTER`,e.OBSERVABLE_GAUGE=`OBSERVABLE_GAUGE`,e.OBSERVABLE_UP_DOWN_COUNTER=`OBSERVABLE_UP_DOWN_COUNTER`})(K||={}),(function(e){e[e.HISTOGRAM=0]=`HISTOGRAM`,e[e.EXPONENTIAL_HISTOGRAM=1]=`EXPONENTIAL_HISTOGRAM`,e[e.GAUGE=2]=`GAUGE`,e[e.SUM=3]=`SUM`})(Ii||={})}));function Ri(e){let t=Object.keys(e);return t.length===0?``:(t=t.sort(),JSON.stringify(t.map(t=>[t,e[t]])))}function zi(e){return`${e.name}:${e.version??``}:${e.schemaUrl??``}`}function Bi(e,t){let n,r=new Promise(function(e,r){n=setTimeout(function(){r(new Wi(`Operation timed out.`))},t)});return Promise.race([e,r]).then(e=>(clearTimeout(n),e),e=>{throw clearTimeout(n),e})}function Vi(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function Hi(e,t){let n=0,r=e.length-1,i=e.length;for(;r>=n;){let a=n+Math.trunc((r-n)/2);e[a]<t?n=a+1:(i=a,r=a-1)}return i}function Ui(e,t){return e.toLowerCase()===t.toLowerCase()}var Wi,Gi=c((()=>{Wi=class e extends Error{constructor(t){super(t),Object.setPrototypeOf(this,e.prototype)}}})),Ki,qi=c((()=>{(function(e){e[e.DROP=0]=`DROP`,e[e.SUM=1]=`SUM`,e[e.LAST_VALUE=2]=`LAST_VALUE`,e[e.HISTOGRAM=3]=`HISTOGRAM`,e[e.EXPONENTIAL_HISTOGRAM=4]=`EXPONENTIAL_HISTOGRAM`})(Ki||={})})),Ji,Yi=c((()=>{qi(),Ji=class{kind=Ki.DROP;createAccumulation(){}merge(e,t){}diff(e,t){}toMetricData(e,t,n,r){}}}));function Xi(e){let t=e.map(()=>0);return t.push(0),{buckets:{boundaries:e,counts:t},sum:0,count:0,hasMinMax:!1,min:1/0,max:-1/0}}var Zi,Qi,$i=c((()=>{qi(),Li(),Gi(),Zi=class{startTime;_boundaries;_recordMinMax;_current;constructor(e,t,n=!0,r=Xi(t)){this.startTime=e,this._boundaries=t,this._recordMinMax=n,this._current=r}record(e){if(Number.isNaN(e))return;this._current.count+=1,this._current.sum+=e,this._recordMinMax&&(this._current.min=Math.min(e,this._current.min),this._current.max=Math.max(e,this._current.max),this._current.hasMinMax=!0);let t=Hi(this._boundaries,e);this._current.buckets.counts[t]+=1}setStartTime(e){this.startTime=e}toPointValue(){return this._current}},Qi=class{kind=Ki.HISTOGRAM;_boundaries;_recordMinMax;constructor(e,t){this._boundaries=e,this._recordMinMax=t}createAccumulation(e){return new Zi(e,this._boundaries,this._recordMinMax)}merge(e,t){let n=e.toPointValue(),r=t.toPointValue(),i=n.buckets.counts,a=r.buckets.counts,o=Array(i.length);for(let e=0;e<i.length;e++)o[e]=i[e]+a[e];let s=1/0,c=-1/0;return this._recordMinMax&&(n.hasMinMax&&r.hasMinMax?(s=Math.min(n.min,r.min),c=Math.max(n.max,r.max)):n.hasMinMax?(s=n.min,c=n.max):r.hasMinMax&&(s=r.min,c=r.max)),new Zi(e.startTime,n.buckets.boundaries,this._recordMinMax,{buckets:{boundaries:n.buckets.boundaries,counts:o},count:n.count+r.count,sum:n.sum+r.sum,hasMinMax:this._recordMinMax&&(n.hasMinMax||r.hasMinMax),min:s,max:c})}diff(e,t){let n=e.toPointValue(),r=t.toPointValue(),i=n.buckets.counts,a=r.buckets.counts,o=Array(i.length);for(let e=0;e<i.length;e++)o[e]=a[e]-i[e];return new Zi(t.startTime,n.buckets.boundaries,this._recordMinMax,{buckets:{boundaries:n.buckets.boundaries,counts:o},count:r.count-n.count,sum:r.sum-n.sum,hasMinMax:!1,min:1/0,max:-1/0})}toMetricData(e,t,n,r){return{descriptor:e,aggregationTemporality:t,dataPointType:Ii.HISTOGRAM,dataPoints:n.map(([t,n])=>{let i=n.toPointValue(),a=e.type===K.GAUGE||e.type===K.UP_DOWN_COUNTER||e.type===K.OBSERVABLE_GAUGE||e.type===K.OBSERVABLE_UP_DOWN_COUNTER;return{attributes:t,startTime:n.startTime,endTime:r,value:{min:i.hasMinMax?i.min:void 0,max:i.hasMinMax?i.max:void 0,sum:a?void 0:i.sum,buckets:i.buckets,count:i.count}}})}}}})),ea,ta,na=c((()=>{ea=class e{backing;indexBase;indexStart;indexEnd;constructor(e=new ta,t=0,n=0,r=0){this.backing=e,this.indexBase=t,this.indexStart=n,this.indexEnd=r}get offset(){return this.indexStart}get length(){return this.backing.length===0||this.indexEnd===this.indexStart&&this.at(0)===0?0:this.indexEnd-this.indexStart+1}counts(){return Array.from({length:this.length},(e,t)=>this.at(t))}at(e){let t=this.indexBase-this.indexStart;return e<t&&(e+=this.backing.length),e-=t,this.backing.countAt(e)}incrementBucket(e,t){this.backing.increment(e,t)}decrementBucket(e,t){this.backing.decrement(e,t)}trim(){for(let e=0;e<this.length;e++)if(this.at(e)!==0){this.indexStart+=e;break}else if(e===this.length-1){this.indexStart=this.indexEnd=this.indexBase=0;return}for(let e=this.length-1;e>=0;e--)if(this.at(e)!==0){this.indexEnd-=this.length-e-1;break}this._rotate()}downscale(e){this._rotate();let t=1+this.indexEnd-this.indexStart,n=1<<e,r=0,i=0;for(let e=this.indexStart;e<=this.indexEnd;){let a=e%n;a<0&&(a+=n);for(let o=a;o<n&&r<t;o++)this._relocateBucket(i,r),r++,e++;i++}this.indexStart>>=e,this.indexEnd>>=e,this.indexBase=this.indexStart}clone(){return new e(this.backing.clone(),this.indexBase,this.indexStart,this.indexEnd)}_rotate(){let e=this.indexBase-this.indexStart;e!==0&&(e>0?(this.backing.reverse(0,this.backing.length),this.backing.reverse(0,e),this.backing.reverse(e,this.backing.length)):(this.backing.reverse(0,this.backing.length),this.backing.reverse(0,this.backing.length+e)),this.indexBase=this.indexStart)}_relocateBucket(e,t){e!==t&&this.incrementBucket(e,this.backing.emptyBucket(t))}},ta=class e{_counts;constructor(e=[0]){this._counts=e}get length(){return this._counts.length}countAt(e){return this._counts[e]}growTo(e,t,n){let r=Array(e).fill(0);r.splice(n,this._counts.length-t,...this._counts.slice(t)),r.splice(0,t,...this._counts.slice(0,t)),this._counts=r}reverse(e,t){let n=Math.floor((e+t)/2)-e;for(let r=0;r<n;r++){let n=this._counts[e+r];this._counts[e+r]=this._counts[t-r-1],this._counts[t-r-1]=n}}emptyBucket(e){let t=this._counts[e];return this._counts[e]=0,t}increment(e,t){this._counts[e]+=t}decrement(e,t){this._counts[e]>=t?this._counts[e]-=t:this._counts[e]=0}clone(){return new e([...this._counts])}}}));function ra(e){return fa.setFloat64(0,e),{hi:fa.getUint32(0),lo:fa.getUint32(4)}}function ia(e){let{hi:t}=ra(e);return((t&oa)>>20)-ca}function aa(e){let{hi:t,lo:n}=ra(e);return(t&sa)===0&&n===0}var oa,sa,ca,la,ua,da,fa,pa=c((()=>{oa=2146435072,sa=1048575,ca=1023,la=-1022,ua=ca,da=2**-1022,fa=new DataView(new ArrayBuffer(8))}));function ma(e,t){return e===0||e===1/0||e===-1/0||Number.isNaN(e)?e:e*2**t}function ha(e){return e--,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e++,e}var ga=c((()=>{})),_a,va=c((()=>{_a=class extends Error{}})),ya,ba=c((()=>{pa(),ga(),va(),ya=class{_shift;constructor(e){this._shift=-e}mapToIndex(e){return e<da?this._minNormalLowerBoundaryIndex():ia(e)+(aa(e)?-1:0)>>this._shift}lowerBoundary(e){let t=this._minNormalLowerBoundaryIndex();if(e<t)throw new _a(`underflow: ${e} is < minimum lower boundary: ${t}`);let n=this._maxNormalLowerBoundaryIndex();if(e>n)throw new _a(`overflow: ${e} is > maximum lower boundary: ${n}`);return ma(1,e<<this._shift)}get scale(){return this._shift===0?0:-this._shift}_minNormalLowerBoundaryIndex(){let e=la>>this._shift;return this._shift<2&&e--,e}_maxNormalLowerBoundaryIndex(){return ua>>this._shift}}})),xa,Sa=c((()=>{pa(),ga(),va(),xa=class{_scale;_scaleFactor;_inverseFactor;constructor(e){this._scale=e,this._scaleFactor=ma(Math.LOG2E,e),this._inverseFactor=ma(Math.LN2,-e)}mapToIndex(e){if(e<=da)return this._minNormalLowerBoundaryIndex()-1;if(aa(e))return(ia(e)<<this._scale)-1;let t=Math.floor(Math.log(e)*this._scaleFactor),n=this._maxNormalLowerBoundaryIndex();return t>=n?n:t}lowerBoundary(e){let t=this._maxNormalLowerBoundaryIndex();if(e>=t){if(e===t)return 2*Math.exp((e-(1<<this._scale))/this._scaleFactor);throw new _a(`overflow: ${e} is > maximum lower boundary: ${t}`)}let n=this._minNormalLowerBoundaryIndex();if(e<=n){if(e===n)return da;if(e===n-1)return Math.exp((e+(1<<this._scale))/this._scaleFactor)/2;throw new _a(`overflow: ${e} is < minimum lower boundary: ${n}`)}return Math.exp(e*this._inverseFactor)}get scale(){return this._scale}_minNormalLowerBoundaryIndex(){return la<<this._scale}_maxNormalLowerBoundaryIndex(){return(ua+1<<this._scale)-1}}}));function Ca(e){if(e>Ta||e<wa)throw new _a(`expected scale >= ${wa} && <= ${Ta}, got: ${e}`);return Ea[e+10]}var wa,Ta,Ea,Da=c((()=>{ba(),Sa(),va(),wa=-10,Ta=20,Ea=Array.from({length:31},(e,t)=>t>10?new xa(t-10):new ya(t-10))})),Oa,ka,Aa,ja,Ma,Na,Pa=c((()=>{qi(),Li(),u(),na(),Da(),ga(),Oa=class e{static combine(t,n){return new e(Math.min(t.low,n.low),Math.max(t.high,n.high))}low;high;constructor(e,t){this.low=e,this.high=t}},ka=20,Aa=160,ja=2,Ma=class e{startTime;_maxSize;_recordMinMax;_sum;_count;_zeroCount;_min;_max;_positive;_negative;_mapping;constructor(e,t=Aa,n=!0,r=0,i=0,a=0,o=1/0,s=-1/0,c=new ea,u=new ea,d=Ca(ka)){this.startTime=e,this._maxSize=t,this._recordMinMax=n,this._sum=r,this._count=i,this._zeroCount=a,this._min=o,this._max=s,this._positive=c,this._negative=u,this._mapping=d,this._maxSize<ja&&(l.warn(`Exponential Histogram Max Size set to ${this._maxSize}, \
|
|
3
3
|
changing to the minimum size of: ${ja}`),this._maxSize=ja)}record(e){this.updateByIncrement(e,1)}setStartTime(e){this.startTime=e}toPointValue(){return{hasMinMax:this._recordMinMax,min:this.min,max:this.max,sum:this.sum,positive:{offset:this.positive.offset,bucketCounts:this.positive.counts()},negative:{offset:this.negative.offset,bucketCounts:this.negative.counts()},count:this.count,scale:this.scale,zeroCount:this.zeroCount}}get sum(){return this._sum}get min(){return this._min}get max(){return this._max}get count(){return this._count}get zeroCount(){return this._zeroCount}get scale(){return this._count===this._zeroCount?0:this._mapping.scale}get positive(){return this._positive}get negative(){return this._negative}updateByIncrement(e,t){if(Number.isFinite(e)){if(e>this._max&&(this._max=e),e<this._min&&(this._min=e),this._count+=t,e===0){this._zeroCount+=t;return}this._sum+=e*t,e>0?this._updateBuckets(this._positive,e,t):this._updateBuckets(this._negative,-e,t)}}merge(e){this._count===0?(this._min=e.min,this._max=e.max):e.count!==0&&(e.min<this.min&&(this._min=e.min),e.max>this.max&&(this._max=e.max)),this.startTime=e.startTime,this._sum+=e.sum,this._count+=e.count,this._zeroCount+=e.zeroCount;let t=this._minScale(e);this._downscale(this.scale-t),this._mergeBuckets(this.positive,e,e.positive,t),this._mergeBuckets(this.negative,e,e.negative,t)}diff(e){this._min=1/0,this._max=-1/0,this._sum-=e.sum,this._count-=e.count,this._zeroCount-=e.zeroCount;let t=this._minScale(e);this._downscale(this.scale-t),this._diffBuckets(this.positive,e,e.positive,t),this._diffBuckets(this.negative,e,e.negative,t)}clone(){return new e(this.startTime,this._maxSize,this._recordMinMax,this._sum,this._count,this._zeroCount,this._min,this._max,this.positive.clone(),this.negative.clone(),this._mapping)}_updateBuckets(e,t,n){let r=this._mapping.mapToIndex(t),i=!1,a=0,o=0;if(e.length===0?(e.indexStart=r,e.indexEnd=e.indexStart,e.indexBase=e.indexStart):r<e.indexStart&&e.indexEnd-r>=this._maxSize?(i=!0,o=r,a=e.indexEnd):r>e.indexEnd&&r-e.indexStart>=this._maxSize&&(i=!0,o=e.indexStart,a=r),i){let e=this._changeScale(a,o);this._downscale(e),r=this._mapping.mapToIndex(t)}this._incrementIndexBy(e,r,n)}_incrementIndexBy(e,t,n){if(n===0)return;if(e.length===0&&(e.indexStart=e.indexEnd=e.indexBase=t),t<e.indexStart){let n=e.indexEnd-t;n>=e.backing.length&&this._grow(e,n+1),e.indexStart=t}else if(t>e.indexEnd){let n=t-e.indexStart;n>=e.backing.length&&this._grow(e,n+1),e.indexEnd=t}let r=t-e.indexBase;r<0&&(r+=e.backing.length),e.incrementBucket(r,n)}_grow(e,t){let n=e.backing.length,r=e.indexBase-e.indexStart,i=n-r,a=ha(t);a>this._maxSize&&(a=this._maxSize);let o=a-r;e.backing.growTo(a,i,o)}_changeScale(e,t){let n=0;for(;e-t>=this._maxSize;)e>>=1,t>>=1,n++;return n}_downscale(e){if(e===0)return;if(e<0)throw Error(`impossible change of scale: ${this.scale}`);let t=this._mapping.scale-e;this._positive.downscale(e),this._negative.downscale(e),this._mapping=Ca(t)}_minScale(e){let t=Math.min(this.scale,e.scale),n=Oa.combine(this._highLowAtScale(this.positive,this.scale,t),this._highLowAtScale(e.positive,e.scale,t)),r=Oa.combine(this._highLowAtScale(this.negative,this.scale,t),this._highLowAtScale(e.negative,e.scale,t));return Math.min(t-this._changeScale(n.high,n.low),t-this._changeScale(r.high,r.low))}_highLowAtScale(e,t,n){if(e.length===0)return new Oa(0,-1);let r=t-n;return new Oa(e.indexStart>>r,e.indexEnd>>r)}_mergeBuckets(e,t,n,r){let i=n.offset,a=t.scale-r;for(let t=0;t<n.length;t++)this._incrementIndexBy(e,i+t>>a,n.at(t))}_diffBuckets(e,t,n,r){let i=n.offset,a=t.scale-r;for(let t=0;t<n.length;t++){let r=(i+t>>a)-e.indexBase;r<0&&(r+=e.backing.length),e.decrementBucket(r,n.at(t))}e.trim()}},Na=class{kind=Ki.EXPONENTIAL_HISTOGRAM;_maxSize;_recordMinMax;constructor(e,t){this._maxSize=e,this._recordMinMax=t}createAccumulation(e){return new Ma(e,this._maxSize,this._recordMinMax)}merge(e,t){let n=t.clone();return n.merge(e),n}diff(e,t){let n=t.clone();return n.diff(e),n}toMetricData(e,t,n,r){return{descriptor:e,aggregationTemporality:t,dataPointType:Ii.EXPONENTIAL_HISTOGRAM,dataPoints:n.map(([t,n])=>{let i=n.toPointValue(),a=e.type===K.GAUGE||e.type===K.UP_DOWN_COUNTER||e.type===K.OBSERVABLE_GAUGE||e.type===K.OBSERVABLE_UP_DOWN_COUNTER;return{attributes:t,startTime:n.startTime,endTime:r,value:{min:i.hasMinMax?i.min:void 0,max:i.hasMinMax?i.max:void 0,sum:a?void 0:i.sum,positive:{offset:i.positive.offset,bucketCounts:i.positive.bucketCounts},negative:{offset:i.negative.offset,bucketCounts:i.negative.bucketCounts},count:i.count,scale:i.scale,zeroCount:i.zeroCount}}})}}}})),Fa,Ia,La=c((()=>{qi(),C(),Li(),Fa=class{startTime;_current;sampleTime;constructor(e,t=0,n=[0,0]){this.startTime=e,this._current=t,this.sampleTime=n}record(e){this._current=e,this.sampleTime=Ut(Date.now())}setStartTime(e){this.startTime=e}toPointValue(){return this._current}},Ia=class{kind=Ki.LAST_VALUE;createAccumulation(e){return new Fa(e)}merge(e,t){let n=je(t.sampleTime)>=je(e.sampleTime)?t:e;return new Fa(e.startTime,n.toPointValue(),n.sampleTime)}diff(e,t){let n=je(t.sampleTime)>=je(e.sampleTime)?t:e;return new Fa(t.startTime,n.toPointValue(),n.sampleTime)}toMetricData(e,t,n,r){return{descriptor:e,aggregationTemporality:t,dataPointType:Ii.GAUGE,dataPoints:n.map(([e,t])=>({attributes:e,startTime:t.startTime,endTime:r,value:t.toPointValue()}))}}}})),Ra,za,Ba=c((()=>{qi(),Li(),Ra=class{startTime;monotonic;_current;reset;constructor(e,t,n=0,r=!1){this.startTime=e,this.monotonic=t,this._current=n,this.reset=r}record(e){this.monotonic&&e<0||(this._current+=e)}setStartTime(e){this.startTime=e}toPointValue(){return this._current}},za=class{kind=Ki.SUM;monotonic;constructor(e){this.monotonic=e}createAccumulation(e){return new Ra(e,this.monotonic)}merge(e,t){let n=e.toPointValue(),r=t.toPointValue();return t.reset?new Ra(t.startTime,this.monotonic,r,t.reset):new Ra(e.startTime,this.monotonic,n+r)}diff(e,t){let n=e.toPointValue(),r=t.toPointValue();return this.monotonic&&n>r?new Ra(t.startTime,this.monotonic,r,!0):new Ra(t.startTime,this.monotonic,r-n)}toMetricData(e,t,n,r){return{descriptor:e,aggregationTemporality:t,dataPointType:Ii.SUM,dataPoints:n.map(([e,t])=>({attributes:e,startTime:t.startTime,endTime:r,value:t.toPointValue()})),isMonotonic:this.monotonic}}}})),Va=c((()=>{Yi(),$i(),Pa(),La(),Ba()})),Ha,Ua,Wa,Ga,Ka,qa,Ja,Ya,Xa,Za,Qa,$a,eo=c((()=>{u(),Va(),Li(),Ha=class e{static DEFAULT_INSTANCE=new Ji;createAggregator(t){return e.DEFAULT_INSTANCE}},Ua=class e{static MONOTONIC_INSTANCE=new za(!0);static NON_MONOTONIC_INSTANCE=new za(!1);createAggregator(t){switch(t.type){case K.COUNTER:case K.OBSERVABLE_COUNTER:case K.HISTOGRAM:return e.MONOTONIC_INSTANCE;default:return e.NON_MONOTONIC_INSTANCE}}},Wa=class e{static DEFAULT_INSTANCE=new Ia;createAggregator(t){return e.DEFAULT_INSTANCE}},Ga=class e{static DEFAULT_INSTANCE=new Qi([0,5,10,25,50,75,100,250,500,750,1e3,2500,5e3,7500,1e4],!0);createAggregator(t){return e.DEFAULT_INSTANCE}},Ka=class{_boundaries;_recordMinMax;constructor(e,t=!0){if(e==null)throw Error(`ExplicitBucketHistogramAggregation should be created with explicit boundaries, if a single bucket histogram is required, please pass an empty array`);e=e.concat(),e=e.sort((e,t)=>e-t);let n=e.lastIndexOf(-1/0),r=e.indexOf(1/0);r===-1&&(r=void 0),this._boundaries=e.slice(n+1,r),this._recordMinMax=t}createAggregator(e){return new Qi(this._boundaries,this._recordMinMax)}},qa=class{_maxSize;_recordMinMax;constructor(e=160,t=!0){this._maxSize=e,this._recordMinMax=t}createAggregator(e){return new Na(this._maxSize,this._recordMinMax)}},Ja=class{_resolve(e){switch(e.type){case K.COUNTER:case K.UP_DOWN_COUNTER:case K.OBSERVABLE_COUNTER:case K.OBSERVABLE_UP_DOWN_COUNTER:return Xa;case K.GAUGE:case K.OBSERVABLE_GAUGE:return Za;case K.HISTOGRAM:return e.advice.explicitBucketBoundaries?new Ka(e.advice.explicitBucketBoundaries):Qa}return l.warn(`Unable to recognize instrument type: ${e.type}`),Ya}createAggregator(e){return this._resolve(e).createAggregator(e)}},Ya=new Ha,Xa=new Ua,Za=new Wa,Qa=new Ga,new qa,$a=new Ja}));function to(e){switch(e.type){case no.DEFAULT:return $a;case no.DROP:return Ya;case no.SUM:return Xa;case no.LAST_VALUE:return Za;case no.EXPONENTIAL_HISTOGRAM:{let t=e;return new qa(t.options?.maxSize,t.options?.recordMinMax)}case no.EXPLICIT_BUCKET_HISTOGRAM:{let t=e;return t.options==null?Qa:new Ka(t.options?.boundaries,t.options?.recordMinMax)}default:throw Error(`Unsupported Aggregation`)}}var no,ro=c((()=>{eo(),(function(e){e[e.DEFAULT=0]=`DEFAULT`,e[e.DROP=1]=`DROP`,e[e.SUM=2]=`SUM`,e[e.LAST_VALUE=3]=`LAST_VALUE`,e[e.EXPLICIT_BUCKET_HISTOGRAM=4]=`EXPLICIT_BUCKET_HISTOGRAM`,e[e.EXPONENTIAL_HISTOGRAM=5]=`EXPONENTIAL_HISTOGRAM`})(no||={})})),io,ao,oo=c((()=>{Fi(),ro(),io=e=>({type:no.DEFAULT}),ao=e=>Pi.CUMULATIVE})),so,co,lo,uo,fo,po=c((()=>{so=`otel.component.name`,co=`otel.component.type`,lo=`periodic_metric_reader`,uo=`otel.sdk.metric_reader.collection.duration`,fo=`error.type`})),mo,ho,go=c((()=>{po(),mo=new Map,ho=class{collectionDuration;standardAttrs;constructor(e,t){let n=mo.get(e)??0;mo.set(e,n+1),this.standardAttrs={[co]:e,[so]:`${e}/${n}`},this.collectionDuration=t.createHistogram(uo,{unit:`s`,description:`The duration of the collect operation of the metric reader.`,advice:{explicitBucketBoundaries:[]}})}recordCollection(e,t){let n=t?{...this.standardAttrs,[fo]:t}:this.standardAttrs;this.collectionDuration.record(e,n)}}})),_o,vo=c((()=>{_o=`2.11.0`})),yo,bo=c((()=>{u(),Gi(),oo(),go(),vo(),C(),yo=class{_shutdown=!1;_metricProducers;_sdkMetricProducer;_selfObsMetrics;_aggregationTemporalitySelector;_aggregationSelector;_cardinalitySelector;_otelComponentType;constructor(e){this._aggregationSelector=e?.aggregationSelector??io,this._aggregationTemporalitySelector=e?.aggregationTemporalitySelector??ao,this._metricProducers=e?.metricProducers??[],this._cardinalitySelector=e?.cardinalitySelector,this._otelComponentType=e?.otelComponentType??this.constructor.name,this._selfObsMetrics=new ho(this._otelComponentType,f())}setMetricProducer(e){if(this._sdkMetricProducer)throw Error(`MetricReader can not be bound to a MeterProvider again.`);this._sdkMetricProducer=e,this.onInitialized()}_setSelfObsMeterProvider(e){let t=e.getMeter(`@opentelemetry/sdk-metrics`,_o);this._selfObsMetrics=new ho(this._otelComponentType,t)}selectAggregation(e){return this._aggregationSelector(e)}selectAggregationTemporality(e){return this._aggregationTemporalitySelector(e)}selectCardinalityLimit(e){return this._cardinalitySelector?this._cardinalitySelector(e):2e3}onInitialized(){}async collect(e){if(this._sdkMetricProducer===void 0)throw Error(`MetricReader is not bound to a MetricProducer`);if(this._shutdown)throw Error(`MetricReader is shutdown`);let t=Nt(),[n,...r]=await Promise.all([this._sdkMetricProducer.collect({timeoutMillis:e?.timeoutMillis}),...this._metricProducers.map(t=>t.collect({timeoutMillis:e?.timeoutMillis}))]),i=Nt(),a=n.errors.concat(r.flatMap(e=>e.errors)),o=vr(fe(t,i));return this._selfObsMetrics.recordCollection(o,a.length>0?a[0].name??`collect_error`:void 0),{resourceMetrics:{resource:n.resourceMetrics.resource,scopeMetrics:n.resourceMetrics.scopeMetrics.concat(r.flatMap(e=>e.resourceMetrics.scopeMetrics))},errors:a}}async shutdown(e){if(this._shutdown){l.error(`Cannot call shutdown twice.`);return}e?.timeoutMillis==null?await this.onShutdown():await Bi(this.onShutdown(),e.timeoutMillis),this._shutdown=!0}async forceFlush(e){if(this._shutdown){l.warn(`Cannot forceFlush on already shutdown MetricReader.`);return}if(e?.timeoutMillis==null){await this.onForceFlush();return}await Bi(this.onForceFlush(),e.timeoutMillis)}}}));function xo(e,t){if(!Number.isInteger(t)||t<=0)throw Error(`maxExportBatchSize must be a positive integer`);let n=[],r=0,i=[];function a(){i.length>0&&(n.push({resource:e.resource,scopeMetrics:i}),i=[],r=0)}for(let n of e.scopeMetrics){let e=null;for(let o of n.metrics){let s=o.dataPoints;if(s.length===0){e||(e={scope:n.scope,metrics:[]},i.push(e)),e.metrics.push(o);continue}let c=0;for(;c<s.length;){let l=t-r,u=Math.min(l,s.length-c);e||(e={scope:n.scope,metrics:[]},i.push(e));let d={...o,dataPoints:s.slice(c,c+u)};e.metrics.push(d),c+=u,r+=u,r===t&&(a(),e=null)}}}return a(),n}var So=c((()=>{})),Co,wo=c((()=>{u(),C(),bo(),Gi(),Li(),So(),po(),Co=class extends yo{_interval;_exporter;_exportInterval;_exportTimeout;_maxExportBatchSize;_ongoingExportPromise=null;constructor(e){let{exporter:t,exportIntervalMillis:n=6e4,metricProducers:r,cardinalityLimits:i,maxExportBatchSize:a}=e,{exportTimeoutMillis:o=3e4}=e;if(super({aggregationSelector:t.selectAggregation?.bind(t),aggregationTemporalitySelector:t.selectAggregationTemporality?.bind(t),otelComponentType:lo,metricProducers:r,cardinalitySelector:e=>{let t={default:2e3,...i};switch(e){case K.COUNTER:return t.counter??t.default;case K.GAUGE:return t.gauge??t.default;case K.HISTOGRAM:return t.histogram??t.default;case K.OBSERVABLE_COUNTER:return t.observableCounter??t.default;case K.OBSERVABLE_UP_DOWN_COUNTER:return t.observableUpDownCounter??t.default;case K.OBSERVABLE_GAUGE:return t.observableGauge??t.default;case K.UP_DOWN_COUNTER:return t.upDownCounter??t.default;default:return t.default}}}),n<=0)throw Error(`exportIntervalMillis must be greater than 0`);if(o<=0)throw Error(`exportTimeoutMillis must be greater than 0`);if(a!==void 0&&(!Number.isInteger(a)||a<=0))throw Error(`maxExportBatchSize must be a positive integer`);if(n<o){if(`exportIntervalMillis`in e&&`exportTimeoutMillis`in e)throw Error(`exportIntervalMillis must be greater than or equal to exportTimeoutMillis`);l.info(`Timeout of ${o} exceeds the interval of ${n}. Clamping timeout to interval duration.`),o=n}this._exportInterval=n,this._exportTimeout=o,this._exporter=t,this._maxExportBatchSize=a}async _runOnce(){try{await this._doRun()}catch(e){gn(e)}}async _doRun(){if(this._ongoingExportPromise){l.debug(`PeriodicExportingMetricReader: export already in progress, skipping`);return}let e=async()=>{let{resourceMetrics:e,errors:t}=await this.collect({timeoutMillis:this._exportTimeout});if(t.length>0&&l.error(`PeriodicExportingMetricReader: metrics collection errors`,...t),e.resource.asyncAttributesPending)try{await e.resource.waitForAsyncAttributes?.()}catch(e){l.debug(`Error while resolving async portion of resource: `,e),gn(e)}if(e.scopeMetrics.length===0)return;let n=this._maxExportBatchSize?xo(e,this._maxExportBatchSize):[e],r=null;for(let e of n)try{let t=await Bi(Ot._export(this._exporter,e),this._exportTimeout);t.code!==_e.SUCCESS&&(r=Error(`PeriodicExportingMetricReader: metrics export failed (error ${t.error})`))}catch(e){if(e instanceof Wi){l.error(`PeriodicExportingMetricReader: metrics export timed out after ${this._exportTimeout}ms`);break}l.error(`PeriodicExportingMetricReader: metrics export threw error`,e),r=e instanceof Error?e:Error(String(e))}if(r)throw r};this._ongoingExportPromise=e();try{await this._ongoingExportPromise}finally{this._ongoingExportPromise=null}}onInitialized(){this._interval=setInterval(()=>{this._runOnce()},this._exportInterval),typeof this._interval!=`number`&&this._interval.unref()}async onForceFlush(){await this._awaitOngoingExport(),this._ongoingExportPromise?await this._awaitOngoingExport():await this._runOnce(),await this._exporter.forceFlush()}async _awaitOngoingExport(){if(this._ongoingExportPromise){l.debug(`PeriodicExportingMetricReader: export already in progress, awaiting ongoing export`);try{await this._ongoingExportPromise}catch{}}}async onShutdown(){this._interval&&clearInterval(this._interval),await this.onForceFlush(),await this._exporter.shutdown()}}})),To,Eo=c((()=>{C(),To=class{_shutdown=!1;_aggregationTemporality;_metrics=[];constructor(e){this._aggregationTemporality=e}export(e,t){if(this._shutdown){setTimeout(()=>t({code:_e.FAILED}),0);return}this._metrics.push(e),setTimeout(()=>t({code:_e.SUCCESS}),0)}getMetrics(){return this._metrics}forceFlush(){return Promise.resolve()}reset(){this._metrics=[]}selectAggregationTemporality(e){return this._aggregationTemporality}shutdown(){return this._shutdown=!0,Promise.resolve()}}})),Do,Oo=c((()=>{C(),oo(),Do=class e{_shutdown=!1;_temporalitySelector;constructor(e){this._temporalitySelector=e?.temporalitySelector??ao}export(t,n){if(this._shutdown){n({code:_e.FAILED});return}return e._sendMetrics(t,n)}forceFlush(){return Promise.resolve()}selectAggregationTemporality(e){return this._temporalitySelector(e)}shutdown(){return this._shutdown=!0,Promise.resolve()}static _sendMetrics(e,t){for(let t of e.scopeMetrics)for(let e of t.metrics)console.dir({descriptor:e.descriptor,dataPointType:e.dataPointType,dataPoints:e.dataPoints},{depth:null});t({code:_e.SUCCESS})}}})),ko,Ao=c((()=>{ko=class{_registeredViews=[];addView(e){this._registeredViews.push(e)}findViews(e,t){return this._registeredViews.filter(n=>this._matchInstrument(n.instrumentSelector,e)&&this._matchMeter(n.meterSelector,t))}_matchInstrument(e,t){return(e.getType()===void 0||t.type===e.getType())&&e.getNameFilter().match(t.name)&&e.getUnitFilter().match(t.unit)}_matchMeter(e,t){return e.getNameFilter().match(t.name)&&(t.version===void 0||e.getVersionFilter().match(t.version))&&(t.schemaUrl===void 0||e.getSchemaUrlFilter().match(t.schemaUrl))}}}));function jo(e,t,n){return Po(e)||l.warn(`Invalid metric name: "${e}". The metric name should be a ASCII string with a length no greater than 255 characters.`),{name:e,type:t,description:n?.description??``,unit:n?.unit??``,valueType:n?.valueType??i.DOUBLE,advice:n?.advice??{}}}function Mo(e,t){return{name:e.name??t.name,description:e.description??t.description,type:t.type,unit:t.unit,valueType:t.valueType,advice:t.advice}}function No(e,t){return Ui(e.name,t.name)&&e.unit===t.unit&&e.type===t.type&&e.valueType===t.valueType}function Po(e){return Fo.test(e)}var Fo,Io=c((()=>{u(),Gi(),Fo=/^[a-z][a-z0-9_.\-/]{0,254}$/i}));function Lo(e){return e instanceof Uo}var Ro,zo,Bo,Vo,Ho,Uo,Wo,Go,Ko,qo=c((()=>{u(),Ro=class{_writableMetricStorage;_descriptor;constructor(e,t){this._writableMetricStorage=e,this._descriptor=t}_record(e,t={},n){if(typeof e!=`number`){l.warn(`non-number value provided to metric ${this._descriptor.name}: ${e}`);return}this._descriptor.valueType===i.INT&&!Number.isInteger(e)&&(l.warn(`INT value type cannot accept a floating-point value for ${this._descriptor.name}, ignoring the fractional digits.`),e=Math.trunc(e),!Number.isInteger(e))||this._writableMetricStorage.record(e,t,n,Date.now())}},zo=class extends Ro{add(e,t,n){this._record(e,t,n)}},Bo=class extends Ro{add(e,t,n){if(e<0){l.warn(`negative value provided to counter ${this._descriptor.name}: ${e}`);return}this._record(e,t,n)}},Vo=class extends Ro{record(e,t,n){this._record(e,t,n)}},Ho=class extends Ro{record(e,t,n){if(e<0){l.warn(`negative value provided to histogram ${this._descriptor.name}: ${e}`);return}this._record(e,t,n)}},Uo=class{_metricStorages;_descriptor;_observableRegistry;constructor(e,t,n){this._descriptor=e,this._metricStorages=t,this._observableRegistry=n}addCallback(e){this._observableRegistry.addCallback(e,this)}removeCallback(e){this._observableRegistry.removeCallback(e,this)}},Wo=class extends Uo{},Go=class extends Uo{},Ko=class extends Uo{}})),Jo,Yo=c((()=>{Io(),qo(),Li(),Jo=class{_meterSharedState;constructor(e){this._meterSharedState=e}createGauge(e,t){let n=jo(e,K.GAUGE,t),r=this._meterSharedState.registerMetricStorage(n);return new Vo(r,n)}createHistogram(e,t){let n=jo(e,K.HISTOGRAM,t),r=this._meterSharedState.registerMetricStorage(n);return new Ho(r,n)}createCounter(e,t){let n=jo(e,K.COUNTER,t),r=this._meterSharedState.registerMetricStorage(n);return new Bo(r,n)}createUpDownCounter(e,t){let n=jo(e,K.UP_DOWN_COUNTER,t),r=this._meterSharedState.registerMetricStorage(n);return new zo(r,n)}createObservableGauge(e,t){let n=jo(e,K.OBSERVABLE_GAUGE,t),r=this._meterSharedState.registerAsyncMetricStorage(n);return new Go(n,r,this._meterSharedState.observableRegistry)}createObservableCounter(e,t){let n=jo(e,K.OBSERVABLE_COUNTER,t),r=this._meterSharedState.registerAsyncMetricStorage(n);return new Wo(n,r,this._meterSharedState.observableRegistry)}createObservableUpDownCounter(e,t){let n=jo(e,K.OBSERVABLE_UP_DOWN_COUNTER,t),r=this._meterSharedState.registerAsyncMetricStorage(n);return new Ko(n,r,this._meterSharedState.observableRegistry)}addBatchObservableCallback(e,t){this._meterSharedState.observableRegistry.addBatchCallback(e,t)}removeBatchObservableCallback(e,t){this._meterSharedState.observableRegistry.removeBatchCallback(e,t)}}})),Xo,Zo=c((()=>{Io(),Xo=class{_instrumentDescriptor;constructor(e){this._instrumentDescriptor=e}getInstrumentDescriptor(){return this._instrumentDescriptor}updateDescription(e){this._instrumentDescriptor=jo(this._instrumentDescriptor.name,this._instrumentDescriptor.type,{description:e,valueType:this._instrumentDescriptor.valueType,unit:this._instrumentDescriptor.unit,advice:this._instrumentDescriptor.advice})}}})),Qo,$o,es=c((()=>{Gi(),Qo=class{_valueMap=new Map;_keyMap=new Map;_hash;constructor(e){this._hash=e}get(e,t){return t??=this._hash(e),this._valueMap.get(t)}getOrDefault(e,t){let n=this._hash(e);if(this._valueMap.has(n))return this._valueMap.get(n);let r=t();return this._keyMap.has(n)||this._keyMap.set(n,e),this._valueMap.set(n,r),r}set(e,t,n){n??=this._hash(e),this._keyMap.has(n)||this._keyMap.set(n,e),this._valueMap.set(n,t)}has(e,t){return t??=this._hash(e),this._valueMap.has(t)}*keys(){let e=this._keyMap.entries(),t=e.next();for(;t.done!==!0;)yield[t.value[1],t.value[0]],t=e.next()}*entries(){let e=this._valueMap.entries(),t=e.next();for(;t.done!==!0;)yield[this._keyMap.get(t.value[0]),t.value[1],t.value[0]],t=e.next()}get size(){return this._valueMap.size}},$o=class extends Qo{constructor(){super(Ri)}}})),ts,ns=c((()=>{C(),Gi(),es(),ts=class{_activeCollectionStorage=new $o;_cumulativeMemoStorage=new $o;_cardinalityLimit;_overflowAttributes={"otel.metric.overflow":!0};_overflowHashCode;_aggregator;constructor(e,t){this._aggregator=e,this._cardinalityLimit=(t??2e3)-1,this._overflowHashCode=Ri(this._overflowAttributes)}record(e,t,n){let r=this._activeCollectionStorage.get(t);if(!r){let i=Ut(n);if(this._activeCollectionStorage.size>=this._cardinalityLimit){this._activeCollectionStorage.getOrDefault(this._overflowAttributes,()=>this._aggregator.createAccumulation(i))?.record(e);return}r=this._aggregator.createAccumulation(i),this._activeCollectionStorage.set(t,r)}r?.record(e)}batchCumulate(e,t){for(let[n,r,i]of e.entries()){let e=n,a=i,o=this._aggregator.createAccumulation(t);o?.record(r);let s=o;if(this._cumulativeMemoStorage.has(e,a)){let t=this._cumulativeMemoStorage.get(e,a);s=this._aggregator.diff(t,o)}else if(this._cumulativeMemoStorage.size>=this._cardinalityLimit&&(e=this._overflowAttributes,a=this._overflowHashCode,this._cumulativeMemoStorage.has(e,a))){let t=this._cumulativeMemoStorage.get(e,a);s=this._aggregator.diff(t,o)}if(this._activeCollectionStorage.has(e,a)){let t=this._activeCollectionStorage.get(e,a);s=this._aggregator.merge(t,s)}this._cumulativeMemoStorage.set(e,o,a),this._activeCollectionStorage.set(e,s,a)}}collect(){let e=this._activeCollectionStorage;return this._activeCollectionStorage=new $o,e}}}));function rs(e){return Array.from(e.entries())}var is,as=c((()=>{Fi(),es(),is=class e{_aggregator;_unreportedAccumulations=new Map;_reportHistory=new Map;constructor(e,t){this._aggregator=e,t.forEach(e=>{this._unreportedAccumulations.set(e,[])})}buildMetrics(t,n,r,i){this._stashAccumulations(r);let a=this._getMergedUnreportedAccumulations(t),o=a,s;if(this._reportHistory.has(t)){let n=this._reportHistory.get(t),r=n.collectionTime;s=n.aggregationTemporality,o=s===Pi.CUMULATIVE?e.merge(n.accumulations,a,this._aggregator):e.calibrateStartTime(n.accumulations,a,r)}else s=t.selectAggregationTemporality(n.type);this._reportHistory.set(t,{accumulations:o,collectionTime:i,aggregationTemporality:s});let c=rs(o);if(c.length!==0)return this._aggregator.toMetricData(n,s,c,i)}_stashAccumulations(e){let t=this._unreportedAccumulations.keys();for(let n of t){let t=this._unreportedAccumulations.get(n);t===void 0&&(t=[],this._unreportedAccumulations.set(n,t)),t.push(e)}}_getMergedUnreportedAccumulations(t){let n=new $o,r=this._unreportedAccumulations.get(t);if(this._unreportedAccumulations.set(t,[]),r===void 0)return n;for(let t of r)n=e.merge(n,t,this._aggregator);return n}static merge(e,t,n){let r=e,i=t.entries(),a=i.next();for(;a.done!==!0;){let[t,o,s]=a.value;if(e.has(t,s)){let i=e.get(t,s),a=n.merge(i,o);r.set(t,a,s)}else r.set(t,o,s);a=i.next()}return r}static calibrateStartTime(e,t,n){for(let[r,i]of e.keys())t.get(r,i)?.setStartTime(n);return t}}})),os,ss=c((()=>{Zo(),ns(),as(),es(),os=class extends Xo{_aggregationCardinalityLimit;_deltaMetricStorage;_temporalMetricStorage;_attributesProcessor;constructor(e,t,n,r,i){super(e),this._aggregationCardinalityLimit=i,this._deltaMetricStorage=new ts(t,this._aggregationCardinalityLimit),this._temporalMetricStorage=new is(t,r),this._attributesProcessor=n}record(e,t){if(this._attributesProcessor===void 0){this._deltaMetricStorage.batchCumulate(e,t);return}let n=new $o;for(let[t,r]of e.entries())n.set(this._attributesProcessor.process(t),r);this._deltaMetricStorage.batchCumulate(n,t)}collect(e,t){let n=this._deltaMetricStorage.collect();return this._temporalMetricStorage.buildMetrics(e,this._instrumentDescriptor,n,t)}}}));function cs(e,t){let n=``;return e.unit!==t.unit&&(n+=`\t- Unit '${e.unit}' does not match '${t.unit}'\n`),e.type!==t.type&&(n+=`\t- Type '${e.type}' does not match '${t.type}'\n`),e.valueType!==t.valueType&&(n+=`\t- Value Type '${e.valueType}' does not match '${t.valueType}'\n`),e.description!==t.description&&(n+=`\t- Description '${e.description}' does not match '${t.description}'\n`),n}function ls(e,t){return`\t- use valueType '${e.valueType}' on instrument creation or use an instrument name other than '${t.name}'`}function us(e,t){return`\t- use unit '${e.unit}' on instrument creation or use an instrument name other than '${t.name}'`}function ds(e,t){let n={name:t.name,type:t.type,unit:t.unit},r=JSON.stringify(n);return`\t- create a new view with a name other than '${e.name}' and InstrumentSelector '${r}'`}function fs(e,t){let n={name:t.name,type:t.type,unit:t.unit},r=JSON.stringify(n);return`\t- create a new view with a name other than '${e.name}' and InstrumentSelector '${r}'
|
|
4
4
|
\t- OR - create a new view with the name ${e.name} and description '${e.description}' and InstrumentSelector ${r}
|
|
5
5
|
\t- OR - create a new view with the name ${t.name} and description '${e.description}' and InstrumentSelector ${r}`}function ps(e,t){return e.valueType===t.valueType?e.unit===t.unit?e.type===t.type?e.description===t.description?``:fs(e,t):ds(e,t):us(e,t):ls(e,t)}var ms=c((()=>{})),hs,gs=c((()=>{Io(),u(),ms(),hs=class e{_sharedRegistry=new Map;_perCollectorRegistry=new Map;static create(){return new e}getStorages(e){let t=[];for(let e of this._sharedRegistry.values())t=t.concat(e);let n=this._perCollectorRegistry.get(e);if(n!=null)for(let e of n.values())t=t.concat(e);return t}register(e){this._registerStorage(e,this._sharedRegistry)}registerForCollector(e,t){let n=this._perCollectorRegistry.get(e);n??(n=new Map,this._perCollectorRegistry.set(e,n)),this._registerStorage(t,n)}findOrUpdateCompatibleStorage(e){let t=this._sharedRegistry.get(e.name);return t===void 0?null:this._findOrUpdateCompatibleStorage(e,t)}findOrUpdateCompatibleCollectorStorage(e,t){let n=this._perCollectorRegistry.get(e);if(n===void 0)return null;let r=n.get(t.name);return r===void 0?null:this._findOrUpdateCompatibleStorage(t,r)}_registerStorage(e,t){let n=e.getInstrumentDescriptor(),r=t.get(n.name);if(r===void 0){t.set(n.name,[e]);return}r.push(e)}_findOrUpdateCompatibleStorage(e,t){let n=null;for(let r of t){let t=r.getInstrumentDescriptor();No(t,e)?(t.description!==e.description&&(e.description.length>t.description.length&&r.updateDescription(e.description),l.warn(`A view or instrument with the name `,e.name,` has already been registered, but has a different description and is incompatible with another registered view.
|
|
@@ -141,7 +141,7 @@ Profile on interface`)}catch(e){return e.status===1&&e.stdout.includes(`AutoConf
|
|
|
141
141
|
`),a=(t&&t[0]?t[0]:``).split(` via `);a&&a[1]&&(a=a[1].split(` `),i=a[0]),e&&e(i),r(i)}})}catch{e&&e(i),r(i)}if(d){let t=`route -n get default`;try{n(t,{maxBuffer:104857600},(a,o)=>{if(!a){let e=o.toString().split(`
|
|
142
142
|
`).map(e=>e.trim());i=c.getValue(e,`gateway`)}i?(e&&e(i),r(i)):(t=`netstat -rn | awk '/default/ {print $2}'`,n(t,{maxBuffer:104857600},(t,n)=>{i=n.toString().split(`
|
|
143
143
|
`).map(e=>e.trim()).find(e=>/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(e)),e&&e(i),r(i)}))})}catch{e&&e(i),r(i)}}if(f)try{n(`netstat -r`,c.execOptsWin,(n,a)=>{a.toString().split(t.EOL).forEach(e=>{if(e=e.replace(/\s+/g,` `).trim(),e.indexOf(`0.0.0.0 0.0.0.0`)>-1&&!/[a-zA-Z]/.test(e)){let t=e.split(` `);t.length>=5&&t[t.length-3].indexOf(`.`)>-1&&(i=t[t.length-3])}}),i?(e&&e(i),r(i)):c.powerShell(`Get-CimInstance -ClassName Win32_IP4RouteTable | Where-Object { $_.Destination -eq '0.0.0.0' -and $_.Mask -eq '0.0.0.0' }`).then(t=>{let n=t.toString().split(`\r
|
|
144
|
-
`);n.length>1&&!i&&(i=c.getValue(n,`NextHop`),e&&e(i),r(i))})})}catch{e&&e(i),r(i)}})})}e.networkGatewayDefault=ye})),Mb=r((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getNetworkData=void 0;var t=jb();function n(){return new Promise(e=>{(0,t.networkStats)().then(e).catch(()=>{e([])})})}e.getNetworkData=n})),Nb=r((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.HostMetrics=void 0;var t=Db(),n=Ob(),r=kb(),i=Mb();e.HostMetrics=class extends t.BaseMetrics{_batchUpdateCpuUsages(e,t){for(let r=0,i=t.length;r<i;r++){let i=t[r];e.observe(this._cpuTime,i.user,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_USER,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuTime,i.system,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_SYSTEM,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuTime,i.idle,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_IDLE,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuTime,i.interrupt,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_INTERRUPT,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuTime,i.nice,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_NICE,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuUtilization,i.userP,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_USER,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuUtilization,i.systemP,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_SYSTEM,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuUtilization,i.idleP,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_IDLE,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuUtilization,i.interruptP,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_INTERRUPT,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuUtilization,i.niceP,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_NICE,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber})}}_batchUpdateProcessCpuUsages(e,t){e.observe(this._processCpuTime,t.user,{[n.ATTR_PROCESS_CPU_STATE]:n.PROCESS_CPU_STATE_VALUE_USER}),e.observe(this._processCpuTime,t.system,{[n.ATTR_PROCESS_CPU_STATE]:n.PROCESS_CPU_STATE_VALUE_SYSTEM}),e.observe(this._processCpuUtilization,t.userP,{[n.ATTR_PROCESS_CPU_STATE]:n.PROCESS_CPU_STATE_VALUE_USER}),e.observe(this._processCpuUtilization,t.systemP,{[n.ATTR_PROCESS_CPU_STATE]:n.PROCESS_CPU_STATE_VALUE_SYSTEM})}_batchUpdateMemUsages(e,t){e.observe(this._memoryUsage,t.used,{[n.ATTR_SYSTEM_MEMORY_STATE]:n.SYSTEM_MEMORY_STATE_VALUE_USED}),e.observe(this._memoryUsage,t.free,{[n.ATTR_SYSTEM_MEMORY_STATE]:n.SYSTEM_MEMORY_STATE_VALUE_FREE}),e.observe(this._memoryUtilization,t.usedP,{[n.ATTR_SYSTEM_MEMORY_STATE]:n.SYSTEM_MEMORY_STATE_VALUE_USED}),e.observe(this._memoryUtilization,t.freeP,{[n.ATTR_SYSTEM_MEMORY_STATE]:n.SYSTEM_MEMORY_STATE_VALUE_FREE})}_batchUpdateProcessMemUsage(e,t){e.observe(this._processMemoryUsage,t)}_batchUpdateNetworkData(e,t){for(let r=0,i=t.length;r<i;r++){let i=t[r];e.observe(this._networkDropped,i.rx_dropped,{[n.ATTR_SYSTEM_DEVICE]:i.iface,[n.ATTR_NETWORK_IO_DIRECTION]:n.NETWORK_IO_DIRECTION_VALUE_RECEIVE}),e.observe(this._networkDropped,i.tx_dropped,{[n.ATTR_SYSTEM_DEVICE]:i.iface,[n.ATTR_NETWORK_IO_DIRECTION]:n.NETWORK_IO_DIRECTION_VALUE_TRANSMIT}),e.observe(this._networkErrors,i.rx_errors,{[n.ATTR_SYSTEM_DEVICE]:i.iface,[n.ATTR_NETWORK_IO_DIRECTION]:n.NETWORK_IO_DIRECTION_VALUE_RECEIVE}),e.observe(this._networkErrors,i.tx_errors,{[n.ATTR_SYSTEM_DEVICE]:i.iface,[n.ATTR_NETWORK_IO_DIRECTION]:n.NETWORK_IO_DIRECTION_VALUE_TRANSMIT}),e.observe(this._networkIo,i.rx_bytes,{[n.ATTR_SYSTEM_DEVICE]:i.iface,[n.ATTR_NETWORK_IO_DIRECTION]:n.NETWORK_IO_DIRECTION_VALUE_RECEIVE}),e.observe(this._networkIo,i.tx_bytes,{[n.ATTR_SYSTEM_DEVICE]:i.iface,[n.ATTR_NETWORK_IO_DIRECTION]:n.NETWORK_IO_DIRECTION_VALUE_TRANSMIT})}}_createMetrics(){let e=[],t=!this._metricGroups||this._metricGroups.includes(`system.cpu`),a=!this._metricGroups||this._metricGroups.includes(`system.memory`),o=!this._metricGroups||this._metricGroups.includes(`system.network`),s=!this._metricGroups||this._metricGroups.includes(`process.cpu`),c=!this._metricGroups||this._metricGroups.includes(`process.memory`);t&&(this._cpuTime=this._meter.createObservableCounter(n.METRIC_SYSTEM_CPU_TIME,{description:`Cpu time in seconds`,unit:`s`}),e.push(this._cpuTime),this._cpuUtilization=this._meter.createObservableGauge(n.METRIC_SYSTEM_CPU_UTILIZATION,{description:`Cpu usage time 0-1`}),e.push(this._cpuUtilization)),a&&(this._memoryUsage=this._meter.createObservableGauge(n.METRIC_SYSTEM_MEMORY_USAGE,{description:`Memory usage in bytes`}),e.push(this._memoryUsage),this._memoryUtilization=this._meter.createObservableGauge(n.METRIC_SYSTEM_MEMORY_UTILIZATION,{description:`Memory usage 0-1`}),e.push(this._memoryUtilization)),o&&(this._networkDropped=this._meter.createObservableCounter(`system.network.dropped`,{description:`Network dropped packets`}),e.push(this._networkDropped),this._networkErrors=this._meter.createObservableCounter(n.METRIC_SYSTEM_NETWORK_ERRORS,{description:`Network errors counter`}),e.push(this._networkErrors),this._networkIo=this._meter.createObservableCounter(n.METRIC_SYSTEM_NETWORK_IO,{description:`Network transmit and received bytes`}),e.push(this._networkIo)),s&&(this._processCpuTime=this._meter.createObservableCounter(n.METRIC_PROCESS_CPU_TIME,{description:`Process Cpu time in seconds`,unit:`s`}),e.push(this._processCpuTime),this._processCpuUtilization=this._meter.createObservableGauge(n.METRIC_PROCESS_CPU_UTILIZATION,{description:`Process Cpu usage time 0-1`}),e.push(this._processCpuUtilization)),c&&(this._processMemoryUsage=this._meter.createObservableGauge(n.METRIC_PROCESS_MEMORY_USAGE,{description:`Process Memory usage in bytes`}),e.push(this._processMemoryUsage)),this._meter.addBatchObservableCallback(async e=>{if(t){let t=(0,r.getCpuUsageData)();this._batchUpdateCpuUsages(e,t)}if(a){let t=(0,r.getMemoryData)();this._batchUpdateMemUsages(e,t)}if(s){let t=(0,r.getProcessCpuUsageData)();this._batchUpdateProcessCpuUsages(e,t)}if(c){let t=(0,r.getProcessMemoryData)();this._batchUpdateProcessMemUsage(e,t)}if(o){let t=await(0,i.getNetworkData)();this._batchUpdateNetworkData(e,t)}},e)}start(){this._createMetrics()}_cpuTime;_cpuUtilization;_memoryUsage;_memoryUtilization;_processCpuTime;_processCpuUtilization;_processMemoryUsage;_networkDropped;_networkErrors;_networkIo}})),Pb=r((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.HostMetrics=e.BaseMetrics=void 0;var t=Db();Object.defineProperty(e,"BaseMetrics",{enumerable:!0,get:function(){return t.BaseMetrics}});var n=Nb();Object.defineProperty(e,"HostMetrics",{enumerable:!0,get:function(){return n.HostMetrics}})})),Fb=mb(),Ib=Pb(),Lb=`bearer `,Rb=4096;function zb(e){if(e===void 0||e.length>Rb||e.slice(0,7).toLowerCase()!==Lb)return;let t=e.slice(7).trim();return t.length>0?t:void 0}u(),se(),rc();var Bb=`aventure-mcp-server`,Vb=`http_server_requests_seconds`,Hb=[.005,.01,.025,.05,.1,.25,.5,1,2.5,5,10],Ub,Wb,Gb,Kb,qb;function Jb(e,t){if(Wb!==void 0)return;let n=e?new Fb.PrometheusExporter({preventServerStart:!0}):void 0,r=new ec({resource:ut({...Or(),"service.instance.id":Mi(),"service.version":process.env.GIT_SHA??process.env.SENTRY_RELEASE??Qn().version}),readers:[...n===void 0?[]:[n],...t===void 0?[]:[new Co({exporter:new Tb({url:t}),exportIntervalMillis:1e4,exportTimeoutMillis:5e3})]]});a.setGlobalMeterProvider(r),Wb=r,Ub=n;let i=new Ib.HostMetrics({meterProvider:r,name:Bb});i.start(),qb=i}function Yb(){return Gb===void 0&&(Gb=Wb?.getMeter(Bb)),Gb}function Xb(e,t,n,r){let i=Yb();i!==void 0&&(Kb===void 0&&(Kb=i.createHistogram(Vb,{description:`HTTP server request latency in seconds, partitioned by method/route/status.`,unit:`s`,advice:{explicitBucketBoundaries:Hb}})),Kb.record(r/1e3,{method:e.toUpperCase(),route:t,status:String(n)}))}function Zb(e,t){let n=Qn().registry===``&&!!t,r=process.env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT?.trim()||void 0;if(!n&&r===void 0)return;Jb(n,r);let i=Ub;if(!n||t===void 0||i===void 0)return;let a=ki(`sha256`).update(t).digest();e.get(`/metrics`,(e,t,n)=>{if(!$b(e.headers.authorization,a)){t.status(401).type(`text/plain`).send(`Unauthorized`);return}n()},(e,t)=>{i.getMetricsRequestHandler(e,t)})}async function Qb(){let e=Wb;qb!==void 0&&(qb=void 0),Wb=void 0,Ub=void 0,Gb=void 0,Kb=void 0,e!==void 0&&await e.shutdown()}function $b(e,t){let n=zb(e);if(n===void 0)return!1;let r=ki(`sha256`).update(n).digest();return r.length===t.length&&ji(r,t)}var ex=`#/components/schemas/`,tx=/"#\/components\/schemas\/([^"]+)"/g,nx=-32011,rx=-32012,ix=-32013,ax=-32015,ox=pr.safeParse(kn);if(!ox.success)throw Error(`OpenAPI snapshot drifted from spec subset: ${ox.error.message}`);var sx=ox.data;function cx(e){let t=sx.components.schemas[e];if(t===void 0)throw Error(`OpenAPI has no component ${e}`);return t}function lx(e){let t=Ur(e?.content?.[`application/json`]?.schema);return t===void 0?void 0:cx(t)}function ux(e){let t=Object.keys(e).length===1?Ur(e):void 0,n=t===void 0?e:cx(t),r={},i=e=>{for(let[,t]of JSON.stringify(e).matchAll(tx))t===void 0||t in r||(r[t]=cx(t),i(r[t]))};i(n);let a=Object.keys(r).length===0?n:{...n,$defs:r},o=j.safeParse(JSON.parse(JSON.stringify(a).replaceAll(`"${ex}`,`"#/$defs/`)));if(!o.success)throw Error(`Event schema is not JSON: ${o.error}`);return o.data}function dx(e,t){let n=Object.entries(sx.paths).find(([,n])=>lx(n[e]?.requestBody)?.properties?.name?.$ref===t);if(n===void 0)throw Error(`OpenAPI has no ${e} operation for ${t}`);return n[0]}var fx=new Map(Object.entries(sx.webhooks??{}).map(([e,t])=>{let n=lx(t.post.requestBody),r=n?.properties?.name?.$ref,i=n?.properties?.data;if(r===void 0||i===void 0)throw Error(`Webhook ${e} body must carry a name enum $ref and a data schema`);let a=dx(`put`,r),o=lx(sx.paths[a]?.put?.requestBody)?.properties?.arguments;if(o===void 0)throw Error(`Subscribe body for ${e} must carry an arguments schema`);return[e,{descriptor:{name:e,description:t.post.description,delivery:[`webhook`],inputSchema:ux(o),payloadSchema:ux(i)},subscribePath:a,unsubscribePath:dx(`delete`,r)}]})),px=G({name:W()}).catchall(j),mx=F(W(),j);function hx(e){let t=fx.get(e);if(t===void 0)throw new Z(nx,`Unknown event ${e}`);return t}async function gx(e,t,n){let{_meta:r,...i}=n,a=await cr({method:e,path:t,body:i,auth:`auto`});if(a.ok){let e=mx.safeParse(a.data!==null&&typeof a.data==`object`&&`response`in a.data?a.data.response??{}:{});if(e.success)return e.data;throw new Z(X.InternalError,`${t} answered a non-object body`)}let o=_x(a.problem?.code);throw o===void 0?a.problem?.code===`news_subscription_limit`?new Z(ix,a.summary,{limit:`subscriptions`}):new Z(vx(a.httpStatus),a.summary,a.problem):new Z(ax,`CallbackEndpointError`,{reason:o})}function _x(e){switch(e){case`callback_connection_refused`:return`connection_refused`;case`callback_timeout`:return`timeout`;case`callback_tls_error`:return`tls_error`;case`callback_http_4xx`:return`http_4xx`;case`callback_http_5xx`:return`http_5xx`;case`callback_challenge_failed`:return`challenge_failed`;default:return}}function vx(e){switch(e){case 400:case 422:return X.InvalidParams;case 401:case 403:return rx;case 404:return nx;default:return X.InternalError}}function yx(e){if(fx.size===0)return;let t=[...fx.values()].map(e=>e.descriptor);e.server.setRequestHandler(`events/list`,{params:G({})},()=>({events:t})),e.server.setRequestHandler(`events/subscribe`,{params:px},e=>gx(`PUT`,hx(e.name).subscribePath,e)),e.server.setRequestHandler(`events/unsubscribe`,{params:px},e=>gx(`DELETE`,hx(e.name).unsubscribePath,e))}async function bx(e){try{return await cr(e)}catch(t){return Nn({component:`aventure-mcp-server`,event:`tool_request_failed`,fields:{requestId:N(),method:e.method},error:t}),yt(ir(t))}}function xx(e,t){return t?e:e.map(Sx)}function Sx(e){let t=e.parameter.flatMap(wx),n=Cx(e.requestBody);return Ex(t,e.parameter)&&n===e.requestBody?e:{...e,parameter:t,...n===void 0?{}:{requestBody:n}}}function Cx(e){if(e===void 0)return;let t=e.map(e=>{let t=e.parameter.flatMap(wx);return Ex(t,e.parameter)?e:{...e,parameter:t}});return t.every((t,n)=>t===e[n])?e:t}function wx(e){if(!Tx(e))return[];let t=e.itemProperty?.filter(Tx);return Ex(t,e.itemProperty)?[e]:[{...e,...t===void 0||t.length===0?{}:{itemProperty:t}}]}var Tx=e=>e.visibility!==`private`;function Ex(e,t){return e===t?!0:e?.length!==t?.length||e===void 0||t===void 0?!1:e.every((e,n)=>e===t[n])}new RegExp(Qt.join(`|`),`i`);function Dx(e){let t=Wr(e),n=xi(t.data,t.summary)??JSON.stringify(t);return{isError:!t.ok,structuredContent:{...t},content:[{type:`text`,text:n}]}}var Ox=`aventure_status`,kx=`aventure_help`,Ax=`aventure_read`,jx=`aventure_lookup`,Mx=`aventure_search`,Nx=`aventure_write`,Px=`aventure_delete`,Fx=I([W(),U(),H()]),Ix=F(W(),I([W(),U()])).optional(),Lx=F(W(),I([Fx,B(Fx)])).optional(),Rx=F(W(),W()).optional(),zx=V([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`]),Bx=I([Fx,gi(),B(si()),F(W(),si())]).optional().describe(`JSON request body. For multipart/form-data operations, pass an object keyed by form part name; binary part values are http(s) URLs.`),Vx=G({operationId:W().optional().describe(`Exact OpenAPI operationId, as listed by aventure_help. Takes precedence over method and path.`),method:zx.optional().describe(`HTTP method when resolving by method+path.`),path:W().optional().describe(`OpenAPI route template or concrete API path.`),pathParams:Ix.describe(`Values for route template parameters.`),query:Lx.describe(`Query parameters.`),headers:Rx.describe(`Headers declared by the selected OpenAPI operation.`),contentType:W().optional().describe(`Declared request media type; omit for the first supported descriptor.`),responseFormat:V([`auto`,`json`,`text`]).optional().describe(`Response format for endpoints that offer both JSON and text/plain.`)}),Hx=G({q:W().optional().describe(`Plain-English task text, ranked against operationId, path, CLI command, summary, description, and query-parameter enum values. This tool reads no argument named query. Omitting q returns the catalog head unranked.`),root:W().optional().describe(`Filter by resource or first CLI segment.`),method:zx.optional().describe(`Filter by HTTP method.`),scope:V([`read`,`write`]).optional().describe(`Filter by required MCP auth scope.`),limit:mi().min(1).max(100).default(20).describe(`Maximum rows to return.`),resolve:H().default(!1).describe(`Return one deterministic CLI recommendation for q.`)}),Ux=Vx.extend({body:Bx});async function Wx(e,t){let n=vi.find(e=>e.intent===`status`&&e.resource===`status`);if(n===void 0)return yt(`No system status operation exists in the generated catalog.`);let r;try{r=mt().host}catch(e){return yt(e.message)}let i=await bx({method:n.method,path:n.path,auth:n.projection.auth,requesterScope:e});return{...i,data:{transportScope:e,permissionGrant:t?.permissionGrant,host:r,status:i.data}}}var Gx=(e,t)=>xx(vi,t?.operationAccess===`ADMIN`||t===void 0&&e===`write`).filter(n=>(t===void 0?e===`write`||n.projection.scope===`read`&&(n.projection.auth===`read`||n.projection.auth===`none`):t.operationAccess!==`READ`||n.projection.scope===`read`)&&(t===void 0||t.operation.some(e=>e.operationId===n.operationId&&e.method===n.method&&e.path===n.path)));async function Kx(e,t,n,r,i){let a=nn(e);if(!a.ok)return yt(a.summary,a.warnings);if(a.data===null)return yt(`OpenAPI operation resolution returned no data.`);let{method:o,operation:s,path:c,template:l}=a.data,u=s.operationId,d=r.find(e=>e.operationId===u&&e.method.toLowerCase()===o&&e.path===l);if(d===void 0)return yt(`Operation `+u+` is not in the MCP catalog.`);if(!t.includes(d.intent))return yt(`Operation `+u+` has intent=`+d.intent+`; use aventure_`+d.intent+`.`);let f=vt(d.requestBody??[],e.contentType);if(!f.ok||f.data===null)return yt(f.summary,f.warnings);let p=f.data;return d.intent===`delete`&&p===void 0&&e.body!==void 0?yt(u+` does not accept a request body.`):await bx({method:d.method,path:c,searchParams:e.query,headers:e.headers,body:e.body,contentType:e.contentType,auth:d.projection.auth,requesterScope:n,responseFormat:e.responseFormat,clientInfo:i})}function qx(e,t,n){let r=Gx(t,n);e.registerTool(Ox,{title:`aVenture status`,annotations:{readOnlyHint:!0},description:`Return API status, host, MCP auth scope, and your role and permission grant. Scope write means some write is callable, not every write; aventure_help with scope write lists the writes this grant allows.`,inputSchema:G({})},async()=>Dx(await Wx(t,n))),e.registerTool(kx,{title:`aVenture help`,annotations:{readOnlyHint:!0},description:`Lists the aVenture API operations this connection may call. Each row gives operationId, method, path, CLI command, intent (the aventure_<intent> tool that runs it), required scope, request body shape, and arguments. q ranks rows against a plain-English task; resolve returns one recommended operation for q. It describes operations only and calls no API.`,inputSchema:Hx},async e=>{let{summary:t,data:n,counts:i}=bi(e,r);return Dx(ne(t,n,{counts:i}))});let i=()=>e.server.getClientVersion();e.registerTool(Ax,{title:`aVenture read`,annotations:{readOnlyHint:!0},description:`Runs one catalog operation whose intent is read: fetch a record by id or slug, list the records attached to it, or list a collection. Put route values in pathParams and URL query values in query. Select the operation by operationId from aventure_help, or by method plus path; operationId wins when both are given. An operation with a different intent is refused with the name of the tool that runs it.`,inputSchema:Ux},async e=>Dx(await Kx(e,[`read`],t,r,i()))),e.registerTool(jx,{title:`aVenture lookup`,annotations:{readOnlyHint:!1},description:`Runs one catalog operation whose intent is lookup: resolve a name, URL, domain, slug, ticker, or other identifier to the record that owns it, or run a batch, preview, or duplicate check. Most lookups are POST operations that take a JSON body. Select the operation by operationId from aventure_help, or by method plus path; operationId wins when both are given. An operation with a different intent is refused with the name of the tool that runs it.`,inputSchema:Ux},async e=>Dx(await Kx(e,[`lookup`],t,r,i()))),e.registerTool(Mx,{title:`aVenture search`,annotations:{readOnlyHint:!1,destructiveHint:!1},description:`Runs one catalog operation whose intent is search: search or filter companies, people, news, publications, content, links, or the web, or answer a question. It has no free-text argument of its own: pass search text and filters where the chosen operation declares them, in query or body. Select the operation by operationId from aventure_help, or by method plus path; operationId wins when both are given. An operation with a different intent is refused with the name of the tool that runs it.`,inputSchema:Ux},async e=>Dx(await Kx(e,[`search`],t,r,i()))),r.some(e=>e.intent===`write`)&&e.registerTool(Nx,{title:`aVenture write`,annotations:{readOnlyHint:!1,destructiveHint:!0},description:`Runs one catalog operation whose intent is write: create or change records in the shared aVenture corpus, or start an account or enrichment action such as a billing checkout, plan change, or portal session, or an entity or person enrichment; the write takes effect immediately. Pass the body the operation declares. Select the operation by operationId from aventure_help, or by method plus path; operationId wins when both are given. An operation with a different intent is refused with the name of the tool that runs it.`,inputSchema:Ux},async e=>Dx(await Kx(e,[`write`],t,r,i()))),r.some(e=>e.intent===`delete`)&&e.registerTool(Px,{title:`aVenture delete`,annotations:{readOnlyHint:!1,destructiveHint:!0},description:`Runs one catalog operation whose intent is delete: remove one record, or one link between records, from the shared aVenture corpus. A body sent to an operation that declares none is refused. Select the operation by operationId from aventure_help, or by method plus path; operationId wins when both are given. An operation with a different intent is refused with the name of the tool that runs it.`,inputSchema:Ux},async e=>Dx(await Kx(e,[`delete`],t,r,i())))}var Jx=Qn().version,Yx={tools:{},events:{}};function Xx(e,t){let n=new fy({name:`aventure-mcp-server`,title:`aVenture MCP Server`,version:Jx},{capabilities:Yx,instructions:kn.info.description});return qx(n,e,t),yx(n),n}var Zx=vi.map(({operationId:e,method:t,path:n,parameter:r})=>({operationId:e,method:t,path:n,authorizationPath:Zn(n,Object.fromEntries(r.filter(e=>e.in===`path`).map(e=>e.schemaEnum?.[0]===void 0?e.schemaFormat===`uuid`?[e.name,Ai()]:e.schemaType===`integer`||e.schemaType===`number`?[e.name,1]:[e.name,`authorization-probe`]:[e.name,e.schemaEnum[0]])),e)}));async function Qx(e,t){let n=zb(e.header(`authorization`));if(n===void 0)return{ok:!1,reason:`missing_credential`,hasAuthorization:!1};try{let e=await Dr(n,t,Zx);if(e===`forbidden`)return{ok:!1,reason:`forbidden`,hasAuthorization:!0};if(e!==null)return{ok:!0,scope:e.operationAccess===`READ`?`read`:`write`,userBearerToken:n,authorization:e}}catch(e){if(!(e instanceof _))throw e;lr({component:`aventure-mcp-server`,event:`invalid_bearer_jwt`,fields:{requestId:N()},error:e})}return{ok:!1,reason:`credential_mismatch`,hasAuthorization:!0}}function $x(e,t){let n=`an API key from https://aventure.vc/settings/api-keys as Authorization: Bearer <key>`,r=t?`Sign in with OAuth through the authorization server in this server's resource metadata; a client that cannot register itself needs the OAuth client ID at https://docs.aventure.vc/mcp. Or send ${n}.`:`Send ${n}. This server advertises no OAuth authorization server.`;return e===`forbidden`?`The supplied credential is valid, but its account may not use this MCP server.`:e===`missing_credential`?r:`The supplied credential was rejected or expired; reconnect this server in the MCP client to sign in again. ${r}`}var eS=1024,tS=eS*eS,nS=1,rS=2,iS=`b`,aS=`kb`,oS=`mb`,sS=/^(\d+(?:\.\d+)?)\s*(b|kb|mb)?$/u;function cS(e){let t=uS(e.limit),n=lS(e.path);return(r,i,a)=>{if(t===void 0||r.method!==`POST`||lS(r.path)!==n){a();return}let o=dS(r.header(`content-length`));if(o===void 0||o<=t){a();return}i.setHeader(`Connection`,`close`),e.reject(i)}}function lS(e){let t=e.endsWith(`/`)?e.slice(0,-1):e;return t===``?`/`:t}function uS(e){if(typeof e==`number`)return Number.isFinite(e)&&e>=0?e:void 0;let t=sS.exec(e.trim().toLowerCase());if(t===null)return;let n=Number(t[nS]);if(Number.isFinite(n))switch(t[rS]??iS){case oS:return Math.floor(n*tS);case aS:return Math.floor(n*eS);case iS:return Math.floor(n)}}function dS(e){if(e===void 0)return;let t=Number(e);return Number.isInteger(t)&&t>=0?t:void 0}var fS=400,pS=400,mS=413,hS=`10mb`,gS=`127.0.0.1`,_S=`0.0.0.0`;async function vS(e){let t=e.jsonBodyLimit??hS,n=e.host??gS,r=n!==_S,i=(t,n)=>{let r=`${t.protocol}://${t.host}`;return URL.canParse(e.path,r)&&new URL(e.path,r).href===n?.resourceUrl.href?n:void 0},a=(0,Rd.default)();a.disable(`x-powered-by`),a.set(`trust proxy`,1),a.use((e,t,n)=>{let r=Ai(),i=performance.now(),a={requestId:r,method:e.method,path:e.path,host:e.hostname,userAgent:e.get(`user-agent`)},o=xS(e);o||rn({component:`aventure-mcp-server`,event:`http_request`,fields:a}),t.on(`finish`,()=>{let n=Math.round(performance.now()-i),r=e.route;Xb(e.method,typeof r==`object`&&r&&`path`in r&&typeof r.path==`string`?r.path:`unmatched`,t.statusCode,n),(t.statusCode>=fS&&!o?lr:rn)({component:`aventure-mcp-server`,event:`http_response`,fields:{...a,status:t.statusCode,durationMs:n}})}),A(r,()=>n())}),a.use(r?(0,Ld.default)({origin:bS}):(0,Ld.default)()),a.use(cS({path:e.path,limit:t,reject:e=>SS(e,mS,`Payload Too Large`,`Request JSON body exceeds the MCP transport size limit.`)})),a.use(Rd.json({limit:t})),a.get(`/health`,(...e)=>{let t=e[1],n=process.env.GIT_SHA?.trim();t.setHeader(`X-Aventure-Revision`,n&&/^[0-9a-f]{40}$/i.test(n)?n.slice(0,7):`unknown`),t.status(200).json({status:`UP`})}),a.get([`/.well-known/oauth-protected-resource`,`/.well-known/oauth-protected-resource${e.path}`],(0,Ld.default)(),async(t,n,r)=>{let a=await e.resolveOAuthDiscovery();if(a===void 0){SS(n,503,`Service Unavailable`,`OAuth discovery is unavailable: the API published no OAuth resource indicator for this server.`);return}let o=i(t,a);if(o===void 0){r();return}n.status(200).json({resource:o.resourceUrl.href,authorization_servers:[o.client.authorizationServer],scopes_supported:o.client.scope})}),Zb(a,e.metricsScrapeSecret),a.get(`/`,(...t)=>{t[1].status(200).json({name:`aventure-mcp-server`,mcp:e.path,health:`/health`,transport:`streamable-http`,method:`POST`})}),a.get(`/favicon.ico`,(...e)=>{e[1].status(204).end()});let o=pf({windowMs:6e4,limit:120});return a.post(e.path,o,async(t,n)=>{let a=N(),o=t.header(`origin`);if(r&&!yS(o)){lr({component:`aventure-mcp-server`,event:`foreign_origin_rejected`,fields:{requestId:a,method:t.method,path:t.path,origin:o}}),SS(n,403,`Forbidden`,`A self-hosted MCP transport accepts loopback browser origins only.`);return}let s,c;try{let n=await e.resolveOAuthDiscovery();c=i(t,n),s=await Qx(t,n?.resourceUrl)}catch(e){Nn({component:`aventure-mcp-server`,event:`authentication_unavailable`,fields:{requestId:a,method:t.method,path:t.path},error:e});let r=e instanceof nr&&(e.problem.status===429||wn(e.problem.status))?e.problem:void 0;r===void 0?SS(n,503,`Service Unavailable`,`Authentication service is temporarily unavailable.`):(typeof r.retryAfterSeconds==`number`&&n.set(`Retry-After`,String(r.retryAfterSeconds)),CS(n,r));return}if(!s.ok){lr({component:`aventure-mcp-server`,event:`unauthorized_request`,fields:{requestId:a,method:t.method,path:t.path,reason:s.reason,hasAuthorization:s.hasAuthorization}});let e=[c===void 0?void 0:`resource_metadata="${zv(c.resourceUrl)}"`,c===void 0?void 0:`scope="${c.client.scope.join(` `)}"`,s.reason===`credential_mismatch`?`error="invalid_token"`:void 0,s.reason===`credential_mismatch`?`error_description="The bearer token is invalid or expired"`:void 0,s.reason===`forbidden`?`error="insufficient_scope"`:void 0].filter(e=>e!==void 0);n.set(`WWW-Authenticate`,e.length===0?`Bearer`:`Bearer ${e.join(`, `)}`),s.reason===`forbidden`?SS(n,403,`Forbidden`,$x(s.reason,c!==void 0)):SS(n,401,`Unauthorized`,$x(s.reason,c!==void 0));return}let l=t.header(`accept`)??`*/*`;if(!l.includes(`*/*`)&&(!l.includes(`application/json`)||!l.includes(`text/event-stream`))){SS(n,406,`Not Acceptable`,`MCP Streamable HTTP requires Accept: application/json, text/event-stream.`);return}rn({component:`aventure-mcp-server`,event:`mcp_request_authorized`,fields:{requestId:a,method:t.method,path:t.path,scope:s.scope}});let u=[],d=e=>{xc(e,`transport_error`),Nn({component:`aventure-mcp-server`,event:`transport_error`,message:ir(e),fields:{requestId:a,method:t.method,path:t.path},error:e})},f=By(()=>Xx(s.scope,s.authorization),{onerror:e=>u.push(e),maxSubscriptions:0}),p=async()=>{await ob(f,{onerror:d})(t,n,t.body);for(let e of u)wn(n.statusCode)?d(e):lr({component:`aventure-mcp-server`,event:`mcp_request_rejected`,message:ir(e),fields:{requestId:a,method:t.method,path:t.path,status:n.statusCode}})};s.userBearerToken===void 0?await p():await Je(s.userBearerToken,p)}),a.all(e.path,(...e)=>{let t=e[1];SS(t,405,`Method Not Allowed`,`MCP transport accepts POST requests only.`)}),a.use((e,t,n,r)=>{if(n.headersSent){r(e);return}let i=wS(e);if(i===void 0){r(e);return}lr({component:`aventure-mcp-server`,event:`json_body_rejected`,message:i.message,fields:{requestId:N(),method:t.method,path:t.path,status:i.status}}),SS(n,i.status,i.status===mS?`Payload Too Large`:`Bad Request`,i.status===mS?`Request JSON body exceeds the MCP transport size limit.`:`Request body must be valid JSON.`)}),await new Promise((t,r)=>{let i;i=a.listen(e.port,n,()=>{t({server:i,close:async()=>{await new Promise((e,t)=>{i.close(n=>n?t(n):e()),i.closeIdleConnections()}),await Qb()}})}),i.on(`error`,r)})}function yS(e){if(e===void 0)return!0;if(!URL.canParse(e))return!1;let{hostname:t}=new URL(e);return t===`localhost`?!0:t.startsWith(`[`)?t===`[::1]`:Di(t)&&t.startsWith(`127.`)}var bS=(e,t)=>t(null,yS(e)),xS=e=>e.method===`GET`&&/^\/robots\.txt\/?$/iu.test(e.path);function SS(e,t,n,r){CS(e,{type:`about:blank`,title:n,status:t,detail:r})}function CS(e,t){e.status(t.status).type(`application/problem+json`).json(t)}function wS(e){if(typeof e!=`object`||!e||!(`type`in e)||!(`status`in e))return;let t=e.type===`entity.too.large`?mS:e.type===`entity.parse.failed`?pS:e.status===mS||e.status===pS?e.status:void 0;return t===void 0?void 0:{status:t,message:`message`in e&&typeof e.message==`string`?e.message:`JSON body rejected`}}var TS=65535,ES=55e3,DS=Qn(Ti(import.meta.url)),{host:OS}=(await new Cr().name(DS.bin[0]).description(`Serve aVenture tools over MCP Streamable HTTP.`).version(DS.version).option(`--host <address>`,`Bind this address instead of 127.0.0.1; 0.0.0.0 exposes the server to the network.`).addHelpText(`after`,`
|
|
144
|
+
`);n.length>1&&!i&&(i=c.getValue(n,`NextHop`),e&&e(i),r(i))})})}catch{e&&e(i),r(i)}})})}e.networkGatewayDefault=ye})),Mb=r((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.getNetworkData=void 0;var t=jb();function n(){return new Promise(e=>{(0,t.networkStats)().then(e).catch(()=>{e([])})})}e.getNetworkData=n})),Nb=r((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.HostMetrics=void 0;var t=Db(),n=Ob(),r=kb(),i=Mb();e.HostMetrics=class extends t.BaseMetrics{_batchUpdateCpuUsages(e,t){for(let r=0,i=t.length;r<i;r++){let i=t[r];e.observe(this._cpuTime,i.user,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_USER,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuTime,i.system,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_SYSTEM,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuTime,i.idle,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_IDLE,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuTime,i.interrupt,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_INTERRUPT,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuTime,i.nice,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_NICE,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuUtilization,i.userP,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_USER,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuUtilization,i.systemP,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_SYSTEM,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuUtilization,i.idleP,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_IDLE,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuUtilization,i.interruptP,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_INTERRUPT,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber}),e.observe(this._cpuUtilization,i.niceP,{[n.ATTR_SYSTEM_CPU_STATE]:n.SYSTEM_CPU_STATE_VALUE_NICE,[n.ATTR_SYSTEM_CPU_LOGICAL_NUMBER]:i.cpuNumber})}}_batchUpdateProcessCpuUsages(e,t){e.observe(this._processCpuTime,t.user,{[n.ATTR_PROCESS_CPU_STATE]:n.PROCESS_CPU_STATE_VALUE_USER}),e.observe(this._processCpuTime,t.system,{[n.ATTR_PROCESS_CPU_STATE]:n.PROCESS_CPU_STATE_VALUE_SYSTEM}),e.observe(this._processCpuUtilization,t.userP,{[n.ATTR_PROCESS_CPU_STATE]:n.PROCESS_CPU_STATE_VALUE_USER}),e.observe(this._processCpuUtilization,t.systemP,{[n.ATTR_PROCESS_CPU_STATE]:n.PROCESS_CPU_STATE_VALUE_SYSTEM})}_batchUpdateMemUsages(e,t){e.observe(this._memoryUsage,t.used,{[n.ATTR_SYSTEM_MEMORY_STATE]:n.SYSTEM_MEMORY_STATE_VALUE_USED}),e.observe(this._memoryUsage,t.free,{[n.ATTR_SYSTEM_MEMORY_STATE]:n.SYSTEM_MEMORY_STATE_VALUE_FREE}),e.observe(this._memoryUtilization,t.usedP,{[n.ATTR_SYSTEM_MEMORY_STATE]:n.SYSTEM_MEMORY_STATE_VALUE_USED}),e.observe(this._memoryUtilization,t.freeP,{[n.ATTR_SYSTEM_MEMORY_STATE]:n.SYSTEM_MEMORY_STATE_VALUE_FREE})}_batchUpdateProcessMemUsage(e,t){e.observe(this._processMemoryUsage,t)}_batchUpdateNetworkData(e,t){for(let r=0,i=t.length;r<i;r++){let i=t[r];e.observe(this._networkDropped,i.rx_dropped,{[n.ATTR_SYSTEM_DEVICE]:i.iface,[n.ATTR_NETWORK_IO_DIRECTION]:n.NETWORK_IO_DIRECTION_VALUE_RECEIVE}),e.observe(this._networkDropped,i.tx_dropped,{[n.ATTR_SYSTEM_DEVICE]:i.iface,[n.ATTR_NETWORK_IO_DIRECTION]:n.NETWORK_IO_DIRECTION_VALUE_TRANSMIT}),e.observe(this._networkErrors,i.rx_errors,{[n.ATTR_SYSTEM_DEVICE]:i.iface,[n.ATTR_NETWORK_IO_DIRECTION]:n.NETWORK_IO_DIRECTION_VALUE_RECEIVE}),e.observe(this._networkErrors,i.tx_errors,{[n.ATTR_SYSTEM_DEVICE]:i.iface,[n.ATTR_NETWORK_IO_DIRECTION]:n.NETWORK_IO_DIRECTION_VALUE_TRANSMIT}),e.observe(this._networkIo,i.rx_bytes,{[n.ATTR_SYSTEM_DEVICE]:i.iface,[n.ATTR_NETWORK_IO_DIRECTION]:n.NETWORK_IO_DIRECTION_VALUE_RECEIVE}),e.observe(this._networkIo,i.tx_bytes,{[n.ATTR_SYSTEM_DEVICE]:i.iface,[n.ATTR_NETWORK_IO_DIRECTION]:n.NETWORK_IO_DIRECTION_VALUE_TRANSMIT})}}_createMetrics(){let e=[],t=!this._metricGroups||this._metricGroups.includes(`system.cpu`),a=!this._metricGroups||this._metricGroups.includes(`system.memory`),o=!this._metricGroups||this._metricGroups.includes(`system.network`),s=!this._metricGroups||this._metricGroups.includes(`process.cpu`),c=!this._metricGroups||this._metricGroups.includes(`process.memory`);t&&(this._cpuTime=this._meter.createObservableCounter(n.METRIC_SYSTEM_CPU_TIME,{description:`Cpu time in seconds`,unit:`s`}),e.push(this._cpuTime),this._cpuUtilization=this._meter.createObservableGauge(n.METRIC_SYSTEM_CPU_UTILIZATION,{description:`Cpu usage time 0-1`}),e.push(this._cpuUtilization)),a&&(this._memoryUsage=this._meter.createObservableGauge(n.METRIC_SYSTEM_MEMORY_USAGE,{description:`Memory usage in bytes`}),e.push(this._memoryUsage),this._memoryUtilization=this._meter.createObservableGauge(n.METRIC_SYSTEM_MEMORY_UTILIZATION,{description:`Memory usage 0-1`}),e.push(this._memoryUtilization)),o&&(this._networkDropped=this._meter.createObservableCounter(`system.network.dropped`,{description:`Network dropped packets`}),e.push(this._networkDropped),this._networkErrors=this._meter.createObservableCounter(n.METRIC_SYSTEM_NETWORK_ERRORS,{description:`Network errors counter`}),e.push(this._networkErrors),this._networkIo=this._meter.createObservableCounter(n.METRIC_SYSTEM_NETWORK_IO,{description:`Network transmit and received bytes`}),e.push(this._networkIo)),s&&(this._processCpuTime=this._meter.createObservableCounter(n.METRIC_PROCESS_CPU_TIME,{description:`Process Cpu time in seconds`,unit:`s`}),e.push(this._processCpuTime),this._processCpuUtilization=this._meter.createObservableGauge(n.METRIC_PROCESS_CPU_UTILIZATION,{description:`Process Cpu usage time 0-1`}),e.push(this._processCpuUtilization)),c&&(this._processMemoryUsage=this._meter.createObservableGauge(n.METRIC_PROCESS_MEMORY_USAGE,{description:`Process Memory usage in bytes`}),e.push(this._processMemoryUsage)),this._meter.addBatchObservableCallback(async e=>{if(t){let t=(0,r.getCpuUsageData)();this._batchUpdateCpuUsages(e,t)}if(a){let t=(0,r.getMemoryData)();this._batchUpdateMemUsages(e,t)}if(s){let t=(0,r.getProcessCpuUsageData)();this._batchUpdateProcessCpuUsages(e,t)}if(c){let t=(0,r.getProcessMemoryData)();this._batchUpdateProcessMemUsage(e,t)}if(o){let t=await(0,i.getNetworkData)();this._batchUpdateNetworkData(e,t)}},e)}start(){this._createMetrics()}_cpuTime;_cpuUtilization;_memoryUsage;_memoryUtilization;_processCpuTime;_processCpuUtilization;_processMemoryUsage;_networkDropped;_networkErrors;_networkIo}})),Pb=r((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.HostMetrics=e.BaseMetrics=void 0;var t=Db();Object.defineProperty(e,"BaseMetrics",{enumerable:!0,get:function(){return t.BaseMetrics}});var n=Nb();Object.defineProperty(e,"HostMetrics",{enumerable:!0,get:function(){return n.HostMetrics}})})),Fb=mb(),Ib=Pb(),Lb=`bearer `,Rb=4096;function zb(e){if(e===void 0||e.length>Rb||e.slice(0,7).toLowerCase()!==Lb)return;let t=e.slice(7).trim();return t.length>0?t:void 0}u(),se(),rc();var Bb=`aventure-mcp-server`,Vb=`http_server_requests_seconds`,Hb=[.005,.01,.025,.05,.1,.25,.5,1,2.5,5,10],Ub,Wb,Gb,Kb,qb;function Jb(e,t){if(Wb!==void 0)return;let n=e?new Fb.PrometheusExporter({preventServerStart:!0}):void 0,r=new ec({resource:ut({...Or(),"service.instance.id":Mi(),"service.version":process.env.GIT_SHA??process.env.SENTRY_RELEASE??Qn().version}),readers:[...n===void 0?[]:[n],...t===void 0?[]:[new Co({exporter:new Tb({url:t}),exportIntervalMillis:1e4,exportTimeoutMillis:5e3})]]});a.setGlobalMeterProvider(r),Wb=r,Ub=n;let i=new Ib.HostMetrics({meterProvider:r,name:Bb});i.start(),qb=i}function Yb(){return Gb===void 0&&(Gb=Wb?.getMeter(Bb)),Gb}function Xb(e,t,n,r){let i=Yb();i!==void 0&&(Kb===void 0&&(Kb=i.createHistogram(Vb,{description:`HTTP server request latency in seconds, partitioned by method/route/status.`,unit:`s`,advice:{explicitBucketBoundaries:Hb}})),Kb.record(r/1e3,{method:e.toUpperCase(),route:t,status:String(n)}))}function Zb(e,t){let n=Qn().registry===``&&!!t,r=process.env.OTEL_EXPORTER_OTLP_METRICS_ENDPOINT?.trim()||void 0;if(!n&&r===void 0)return;Jb(n,r);let i=Ub;if(!n||t===void 0||i===void 0)return;let a=ki(`sha256`).update(t).digest();e.get(`/metrics`,(e,t,n)=>{if(!$b(e.headers.authorization,a)){t.status(401).type(`text/plain`).send(`Unauthorized`);return}n()},(e,t)=>{i.getMetricsRequestHandler(e,t)})}async function Qb(){let e=Wb;qb!==void 0&&(qb=void 0),Wb=void 0,Ub=void 0,Gb=void 0,Kb=void 0,e!==void 0&&await e.shutdown()}function $b(e,t){let n=zb(e);if(n===void 0)return!1;let r=ki(`sha256`).update(n).digest();return r.length===t.length&&ji(r,t)}var ex=`#/components/schemas/`,tx=/"#\/components\/schemas\/([^"]+)"/g,nx=-32011,rx=-32012,ix=-32013,ax=-32015,ox=Zn(kn);function sx(e){let t=ox.components.schemas[e];if(t===void 0)throw Error(`OpenAPI has no component ${e}`);return t}function cx(e){let t=Ur(e?.content?.[`application/json`]?.schema);return t===void 0?void 0:sx(t)}function lx(e){let t=Object.keys(e).length===1?Ur(e):void 0,n=t===void 0?e:sx(t),r={},i=e=>{for(let[,t]of JSON.stringify(e).matchAll(tx))t===void 0||t in r||(r[t]=sx(t),i(r[t]))};i(n);let a=Object.keys(r).length===0?n:{...n,$defs:r},o=j.safeParse(JSON.parse(JSON.stringify(a).replaceAll(`"${ex}`,`"#/$defs/`)));if(!o.success)throw Error(`Event schema is not JSON: ${o.error}`);return o.data}function ux(e,t){let n=Object.entries(ox.paths).find(([,n])=>cx(n[e]?.requestBody)?.properties?.name?.$ref===t);if(n===void 0)throw Error(`OpenAPI has no ${e} operation for ${t}`);return n[0]}var dx=new Map(Object.entries(ox.webhooks??{}).map(([e,t])=>{let n=cx(t.post.requestBody),r=n?.properties?.name?.$ref,i=n?.properties?.data;if(r===void 0||i===void 0)throw Error(`Webhook ${e} body must carry a name enum $ref and a data schema`);let a=ux(`put`,r),o=cx(ox.paths[a]?.put?.requestBody)?.properties?.arguments;if(o===void 0)throw Error(`Subscribe body for ${e} must carry an arguments schema`);return[e,{descriptor:{name:e,description:t.post.description,delivery:[`webhook`],inputSchema:lx(o),payloadSchema:lx(i)},subscribePath:a,unsubscribePath:ux(`delete`,r)}]})),fx=G({name:W()}).catchall(j),px=F(W(),j);function mx(e){let t=dx.get(e);if(t===void 0)throw new Z(nx,`Unknown event ${e}`);return t}async function hx(e,t,n){let{_meta:r,...i}=n,a=await cr({method:e,path:t,body:i,auth:`auto`});if(a.ok){let e=px.safeParse(a.data!==null&&typeof a.data==`object`&&`response`in a.data?a.data.response??{}:{});if(e.success)return e.data;throw new Z(X.InternalError,`${t} answered a non-object body`)}let o=gx(a.problem?.code);throw o===void 0?a.problem?.code===`news_subscription_limit`?new Z(ix,a.summary,{limit:`subscriptions`}):new Z(_x(a.httpStatus),a.summary,a.problem):new Z(ax,`CallbackEndpointError`,{reason:o})}function gx(e){switch(e){case`callback_connection_refused`:return`connection_refused`;case`callback_timeout`:return`timeout`;case`callback_tls_error`:return`tls_error`;case`callback_http_4xx`:return`http_4xx`;case`callback_http_5xx`:return`http_5xx`;case`callback_challenge_failed`:return`challenge_failed`;default:return}}function _x(e){switch(e){case 400:case 422:return X.InvalidParams;case 401:case 403:return rx;case 404:return nx;default:return X.InternalError}}function vx(e){if(dx.size===0)return;let t=[...dx.values()].map(e=>e.descriptor);e.server.setRequestHandler(`events/list`,{params:G({})},()=>({events:t})),e.server.setRequestHandler(`events/subscribe`,{params:fx},e=>hx(`PUT`,mx(e.name).subscribePath,e)),e.server.setRequestHandler(`events/unsubscribe`,{params:fx},e=>hx(`DELETE`,mx(e.name).unsubscribePath,e))}async function yx(e){try{return await cr(e)}catch(t){return Nn({component:`aventure-mcp-server`,event:`tool_request_failed`,fields:{requestId:N(),method:e.method},error:t}),yt(ir(t))}}function bx(e,t){return t?e:e.map(xx)}function xx(e){let t=e.parameter.flatMap(Cx),n=Sx(e.requestBody);return Tx(t,e.parameter)&&n===e.requestBody?e:{...e,parameter:t,...n===void 0?{}:{requestBody:n}}}function Sx(e){if(e===void 0)return;let t=e.map(e=>{let t=e.parameter.flatMap(Cx);return Tx(t,e.parameter)?e:{...e,parameter:t}});return t.every((t,n)=>t===e[n])?e:t}function Cx(e){if(!wx(e))return[];let t=e.itemProperty?.filter(wx);return Tx(t,e.itemProperty)?[e]:[{...e,...t===void 0||t.length===0?{}:{itemProperty:t}}]}var wx=e=>e.visibility!==`private`;function Tx(e,t){return e===t?!0:e?.length!==t?.length||e===void 0||t===void 0?!1:e.every((e,n)=>e===t[n])}new RegExp(Qt.join(`|`),`i`);function Ex(e){let t=Wr(e),n=xi(t.data,t.summary)??JSON.stringify(t);return{isError:!t.ok,structuredContent:{...t},content:[{type:`text`,text:n}]}}var Dx=`aventure_status`,Ox=`aventure_help`,kx=`aventure_read`,Ax=`aventure_lookup`,jx=`aventure_search`,Mx=`aventure_write`,Nx=`aventure_delete`,Px=I([W(),U(),H()]),Fx=F(W(),I([W(),U()])).optional(),Ix=F(W(),I([Px,B(Px)])).optional(),Lx=F(W(),W()).optional(),Rx=V([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`]),zx=I([Px,gi(),B(si()),F(W(),si())]).optional().describe(`JSON request body. For multipart/form-data operations, pass an object keyed by form part name; binary part values are http(s) URLs.`),Bx=G({operationId:W().optional().describe(`Exact OpenAPI operationId, as listed by aventure_help. Takes precedence over method and path.`),method:Rx.optional().describe(`HTTP method when resolving by method+path.`),path:W().optional().describe(`OpenAPI route template or concrete API path.`),pathParams:Fx.describe(`Values for route template parameters.`),query:Ix.describe(`Query parameters.`),headers:Lx.describe(`Headers declared by the selected OpenAPI operation.`),contentType:W().optional().describe(`Declared request media type; omit for the first supported descriptor.`),responseFormat:V([`auto`,`json`,`text`]).optional().describe(`Response format for endpoints that offer both JSON and text/plain.`)}),Vx=G({q:W().optional().describe(`Plain-English task text, ranked against operationId, path, CLI command, summary, description, and query-parameter enum values. This tool reads no argument named query. Omitting q returns the catalog head unranked.`),root:W().optional().describe(`Filter by resource or first CLI segment.`),method:Rx.optional().describe(`Filter by HTTP method.`),scope:V([`read`,`write`]).optional().describe(`Filter by required MCP auth scope.`),limit:mi().min(1).max(100).default(20).describe(`Maximum rows to return.`),resolve:H().default(!1).describe(`Return one deterministic CLI recommendation for q.`)}),Hx=Bx.extend({body:zx});async function Ux(e,t){let n=vi.find(e=>e.intent===`status`&&e.resource===`status`);if(n===void 0)return yt(`No system status operation exists in the generated catalog.`);let r;try{r=mt().host}catch(e){return yt(e.message)}let i=await yx({method:n.method,path:n.path,auth:n.projection.auth,requesterScope:e});return{...i,data:{transportScope:e,permissionGrant:t?.permissionGrant,host:r,status:i.data}}}var Wx=(e,t)=>bx(vi,t?.operationAccess===`ADMIN`||t===void 0&&e===`write`).filter(n=>(t===void 0?e===`write`||n.projection.scope===`read`&&(n.projection.auth===`read`||n.projection.auth===`none`):t.operationAccess!==`READ`||n.projection.scope===`read`)&&(t===void 0||t.operation.some(e=>e.operationId===n.operationId&&e.method===n.method&&e.path===n.path)));async function Gx(e,t,n,r,i){let a=nn(e);if(!a.ok)return yt(a.summary,a.warnings);if(a.data===null)return yt(`OpenAPI operation resolution returned no data.`);let{method:o,operation:s,path:c,template:l}=a.data,u=s.operationId,d=r.find(e=>e.operationId===u&&e.method.toLowerCase()===o&&e.path===l);if(d===void 0)return yt(`Operation `+u+` is not in the MCP catalog.`);if(!t.includes(d.intent))return yt(`Operation `+u+` has intent=`+d.intent+`; use aventure_`+d.intent+`.`);let f=vt(d.requestBody??[],e.contentType);if(!f.ok||f.data===null)return yt(f.summary,f.warnings);let p=f.data;return d.intent===`delete`&&p===void 0&&e.body!==void 0?yt(u+` does not accept a request body.`):await yx({method:d.method,path:c,searchParams:e.query,headers:e.headers,body:e.body,contentType:e.contentType,auth:d.projection.auth,requesterScope:n,responseFormat:e.responseFormat,clientInfo:i})}function Kx(e,t,n){let r=Wx(t,n);e.registerTool(Dx,{title:`aVenture status`,annotations:{readOnlyHint:!0},description:`Return API status, host, MCP auth scope, and your role and permission grant. Scope write means some write is callable, not every write; aventure_help with scope write lists the writes this grant allows.`,inputSchema:G({})},async()=>Ex(await Ux(t,n))),e.registerTool(Ox,{title:`aVenture help`,annotations:{readOnlyHint:!0},description:`Lists the aVenture API operations this connection may call. Each row gives operationId, method, path, CLI command, intent (the aventure_<intent> tool that runs it), required scope, request body shape, and arguments. q ranks rows against a plain-English task; resolve returns one recommended operation for q. It describes operations only and calls no API.`,inputSchema:Vx},async e=>{let{summary:t,data:n,counts:i}=bi(e,r);return Ex(ne(t,n,{counts:i}))});let i=()=>e.server.getClientVersion();e.registerTool(kx,{title:`aVenture read`,annotations:{readOnlyHint:!0},description:`Runs one catalog operation whose intent is read: fetch a record by id or slug, list the records attached to it, or list a collection. Put route values in pathParams and URL query values in query. Select the operation by operationId from aventure_help, or by method plus path; operationId wins when both are given. An operation with a different intent is refused with the name of the tool that runs it.`,inputSchema:Hx},async e=>Ex(await Gx(e,[`read`],t,r,i()))),e.registerTool(Ax,{title:`aVenture lookup`,annotations:{readOnlyHint:!1},description:`Runs one catalog operation whose intent is lookup: resolve a name, URL, domain, slug, ticker, or other identifier to the record that owns it, or run a batch, preview, or duplicate check. Most lookups are POST operations that take a JSON body. Select the operation by operationId from aventure_help, or by method plus path; operationId wins when both are given. An operation with a different intent is refused with the name of the tool that runs it.`,inputSchema:Hx},async e=>Ex(await Gx(e,[`lookup`],t,r,i()))),e.registerTool(jx,{title:`aVenture search`,annotations:{readOnlyHint:!1,destructiveHint:!1},description:`Runs one catalog operation whose intent is search: search or filter companies, people, news, publications, content, links, or the web, or answer a question. It has no free-text argument of its own: pass search text and filters where the chosen operation declares them, in query or body. Select the operation by operationId from aventure_help, or by method plus path; operationId wins when both are given. An operation with a different intent is refused with the name of the tool that runs it.`,inputSchema:Hx},async e=>Ex(await Gx(e,[`search`],t,r,i()))),r.some(e=>e.intent===`write`)&&e.registerTool(Mx,{title:`aVenture write`,annotations:{readOnlyHint:!1,destructiveHint:!0},description:`Runs one catalog operation whose intent is write: create or change records in the shared aVenture corpus, or start an account or enrichment action such as a billing checkout, plan change, or portal session, or an entity or person enrichment; the write takes effect immediately. Pass the body the operation declares. Select the operation by operationId from aventure_help, or by method plus path; operationId wins when both are given. An operation with a different intent is refused with the name of the tool that runs it.`,inputSchema:Hx},async e=>Ex(await Gx(e,[`write`],t,r,i()))),r.some(e=>e.intent===`delete`)&&e.registerTool(Nx,{title:`aVenture delete`,annotations:{readOnlyHint:!1,destructiveHint:!0},description:`Runs one catalog operation whose intent is delete: remove one record, or one link between records, from the shared aVenture corpus. A body sent to an operation that declares none is refused. Select the operation by operationId from aventure_help, or by method plus path; operationId wins when both are given. An operation with a different intent is refused with the name of the tool that runs it.`,inputSchema:Hx},async e=>Ex(await Gx(e,[`delete`],t,r,i())))}var qx=Qn().version,Jx={tools:{},events:{}};function Yx(e,t){let n=new fy({name:`aventure-mcp-server`,title:`aVenture MCP Server`,version:qx},{capabilities:Jx,instructions:kn.info.description});return Kx(n,e,t),vx(n),n}var Xx=vi.map(({operationId:e,method:t,path:n,parameter:r})=>({operationId:e,method:t,path:n,authorizationPath:pr(n,Object.fromEntries(r.filter(e=>e.in===`path`).map(e=>e.schemaEnum?.[0]===void 0?e.schemaFormat===`uuid`?[e.name,Ai()]:e.schemaType===`integer`||e.schemaType===`number`?[e.name,1]:[e.name,`authorization-probe`]:[e.name,e.schemaEnum[0]])),e)}));async function Zx(e,t){let n=zb(e.header(`authorization`));if(n===void 0)return{ok:!1,reason:`missing_credential`,hasAuthorization:!1};try{let e=await Dr(n,t,Xx);if(e===`forbidden`)return{ok:!1,reason:`forbidden`,hasAuthorization:!0};if(e!==null)return{ok:!0,scope:e.operationAccess===`READ`?`read`:`write`,userBearerToken:n,authorization:e}}catch(e){if(!(e instanceof _))throw e;lr({component:`aventure-mcp-server`,event:`invalid_bearer_jwt`,fields:{requestId:N()},error:e})}return{ok:!1,reason:`credential_mismatch`,hasAuthorization:!0}}function Qx(e,t){let n=`an API key from https://aventure.vc/settings/api-keys as Authorization: Bearer <key>`,r=t?`Sign in with OAuth through the authorization server in this server's resource metadata; a client that cannot register itself needs the OAuth client ID at https://docs.aventure.vc/mcp. Or send ${n}.`:`Send ${n}. This server advertises no OAuth authorization server.`;return e===`forbidden`?`The supplied credential is valid, but its account may not use this MCP server.`:e===`missing_credential`?r:`The supplied credential was rejected or expired; reconnect this server in the MCP client to sign in again. ${r}`}var $x=1024,eS=$x*$x,tS=1,nS=2,rS=`b`,iS=`kb`,aS=`mb`,oS=/^(\d+(?:\.\d+)?)\s*(b|kb|mb)?$/u;function sS(e){let t=lS(e.limit),n=cS(e.path);return(r,i,a)=>{if(t===void 0||r.method!==`POST`||cS(r.path)!==n){a();return}let o=uS(r.header(`content-length`));if(o===void 0||o<=t){a();return}i.setHeader(`Connection`,`close`),e.reject(i)}}function cS(e){let t=e.endsWith(`/`)?e.slice(0,-1):e;return t===``?`/`:t}function lS(e){if(typeof e==`number`)return Number.isFinite(e)&&e>=0?e:void 0;let t=oS.exec(e.trim().toLowerCase());if(t===null)return;let n=Number(t[tS]);if(Number.isFinite(n))switch(t[nS]??rS){case aS:return Math.floor(n*eS);case iS:return Math.floor(n*$x);case rS:return Math.floor(n)}}function uS(e){if(e===void 0)return;let t=Number(e);return Number.isInteger(t)&&t>=0?t:void 0}var dS=400,fS=400,pS=413,mS=`10mb`,hS=`127.0.0.1`,gS=`0.0.0.0`;async function _S(e){let t=e.jsonBodyLimit??mS,n=e.host??hS,r=n!==gS,i=(t,n)=>{let r=`${t.protocol}://${t.host}`;return URL.canParse(e.path,r)&&new URL(e.path,r).href===n?.resourceUrl.href?n:void 0},a=(0,Rd.default)();a.disable(`x-powered-by`),a.set(`trust proxy`,1),a.use((e,t,n)=>{let r=Ai(),i=performance.now(),a={requestId:r,method:e.method,path:e.path,host:e.hostname,userAgent:e.get(`user-agent`)},o=bS(e);o||rn({component:`aventure-mcp-server`,event:`http_request`,fields:a}),t.on(`finish`,()=>{let n=Math.round(performance.now()-i),r=e.route;Xb(e.method,typeof r==`object`&&r&&`path`in r&&typeof r.path==`string`?r.path:`unmatched`,t.statusCode,n),(t.statusCode>=dS&&!o?lr:rn)({component:`aventure-mcp-server`,event:`http_response`,fields:{...a,status:t.statusCode,durationMs:n}})}),A(r,()=>n())}),a.use(r?(0,Ld.default)({origin:yS}):(0,Ld.default)()),a.use(sS({path:e.path,limit:t,reject:e=>xS(e,pS,`Payload Too Large`,`Request JSON body exceeds the MCP transport size limit.`)})),a.use(Rd.json({limit:t})),a.get(`/health`,(...e)=>{let t=e[1],n=process.env.GIT_SHA?.trim();t.setHeader(`X-Aventure-Revision`,n&&/^[0-9a-f]{40}$/i.test(n)?n.slice(0,7):`unknown`),t.status(200).json({status:`UP`})}),a.get([`/.well-known/oauth-protected-resource`,`/.well-known/oauth-protected-resource${e.path}`],(0,Ld.default)(),async(t,n,r)=>{let a=await e.resolveOAuthDiscovery();if(a===void 0){xS(n,503,`Service Unavailable`,`OAuth discovery is unavailable: the API published no OAuth resource indicator for this server.`);return}let o=i(t,a);if(o===void 0){r();return}n.status(200).json({resource:o.resourceUrl.href,authorization_servers:[o.client.authorizationServer],scopes_supported:o.client.scope})}),Zb(a,e.metricsScrapeSecret),a.get(`/`,(...t)=>{t[1].status(200).json({name:`aventure-mcp-server`,mcp:e.path,health:`/health`,transport:`streamable-http`,method:`POST`})}),a.get(`/favicon.ico`,(...e)=>{e[1].status(204).end()});let o=pf({windowMs:6e4,limit:120});return a.post(e.path,o,async(t,n)=>{let a=N(),o=t.header(`origin`);if(r&&!vS(o)){lr({component:`aventure-mcp-server`,event:`foreign_origin_rejected`,fields:{requestId:a,method:t.method,path:t.path,origin:o}}),xS(n,403,`Forbidden`,`A self-hosted MCP transport accepts loopback browser origins only.`);return}let s,c;try{let n=await e.resolveOAuthDiscovery();c=i(t,n),s=await Zx(t,n?.resourceUrl)}catch(e){Nn({component:`aventure-mcp-server`,event:`authentication_unavailable`,fields:{requestId:a,method:t.method,path:t.path},error:e});let r=e instanceof nr&&(e.problem.status===429||wn(e.problem.status))?e.problem:void 0;r===void 0?xS(n,503,`Service Unavailable`,`Authentication service is temporarily unavailable.`):(typeof r.retryAfterSeconds==`number`&&n.set(`Retry-After`,String(r.retryAfterSeconds)),SS(n,r));return}if(!s.ok){lr({component:`aventure-mcp-server`,event:`unauthorized_request`,fields:{requestId:a,method:t.method,path:t.path,reason:s.reason,hasAuthorization:s.hasAuthorization}});let e=[c===void 0?void 0:`resource_metadata="${zv(c.resourceUrl)}"`,c===void 0?void 0:`scope="${c.client.scope.join(` `)}"`,s.reason===`credential_mismatch`?`error="invalid_token"`:void 0,s.reason===`credential_mismatch`?`error_description="The bearer token is invalid or expired"`:void 0,s.reason===`forbidden`?`error="insufficient_scope"`:void 0].filter(e=>e!==void 0);n.set(`WWW-Authenticate`,e.length===0?`Bearer`:`Bearer ${e.join(`, `)}`),s.reason===`forbidden`?xS(n,403,`Forbidden`,Qx(s.reason,c!==void 0)):xS(n,401,`Unauthorized`,Qx(s.reason,c!==void 0));return}let l=t.header(`accept`)??`*/*`;if(!l.includes(`*/*`)&&(!l.includes(`application/json`)||!l.includes(`text/event-stream`))){xS(n,406,`Not Acceptable`,`MCP Streamable HTTP requires Accept: application/json, text/event-stream.`);return}rn({component:`aventure-mcp-server`,event:`mcp_request_authorized`,fields:{requestId:a,method:t.method,path:t.path,scope:s.scope}});let u=[],d=e=>{xc(e,`transport_error`),Nn({component:`aventure-mcp-server`,event:`transport_error`,message:ir(e),fields:{requestId:a,method:t.method,path:t.path},error:e})},f=By(()=>Yx(s.scope,s.authorization),{onerror:e=>u.push(e),maxSubscriptions:0}),p=async()=>{await ob(f,{onerror:d})(t,n,t.body);for(let e of u)wn(n.statusCode)?d(e):lr({component:`aventure-mcp-server`,event:`mcp_request_rejected`,message:ir(e),fields:{requestId:a,method:t.method,path:t.path,status:n.statusCode}})};s.userBearerToken===void 0?await p():await Je(s.userBearerToken,p)}),a.all(e.path,(...e)=>{let t=e[1];xS(t,405,`Method Not Allowed`,`MCP transport accepts POST requests only.`)}),a.use((e,t,n,r)=>{if(n.headersSent){r(e);return}let i=CS(e);if(i===void 0){r(e);return}lr({component:`aventure-mcp-server`,event:`json_body_rejected`,message:i.message,fields:{requestId:N(),method:t.method,path:t.path,status:i.status}}),xS(n,i.status,i.status===pS?`Payload Too Large`:`Bad Request`,i.status===pS?`Request JSON body exceeds the MCP transport size limit.`:`Request body must be valid JSON.`)}),await new Promise((t,r)=>{let i;i=a.listen(e.port,n,()=>{t({server:i,close:async()=>{await new Promise((e,t)=>{i.close(n=>n?t(n):e()),i.closeIdleConnections()}),await Qb()}})}),i.on(`error`,r)})}function vS(e){if(e===void 0)return!0;if(!URL.canParse(e))return!1;let{hostname:t}=new URL(e);return t===`localhost`?!0:t.startsWith(`[`)?t===`[::1]`:Di(t)&&t.startsWith(`127.`)}var yS=(e,t)=>t(null,vS(e)),bS=e=>e.method===`GET`&&/^\/robots\.txt\/?$/iu.test(e.path);function xS(e,t,n,r){SS(e,{type:`about:blank`,title:n,status:t,detail:r})}function SS(e,t){e.status(t.status).type(`application/problem+json`).json(t)}function CS(e){if(typeof e!=`object`||!e||!(`type`in e)||!(`status`in e))return;let t=e.type===`entity.too.large`?pS:e.type===`entity.parse.failed`?fS:e.status===pS||e.status===fS?e.status:void 0;return t===void 0?void 0:{status:t,message:`message`in e&&typeof e.message==`string`?e.message:`JSON body rejected`}}var wS=65535,TS=55e3,ES=Qn(Ti(import.meta.url)),{host:DS}=(await new Cr().name(ES.bin[0]).description(`Serve aVenture tools over MCP Streamable HTTP.`).version(ES.version).option(`--host <address>`,`Bind this address instead of 127.0.0.1; 0.0.0.0 exposes the server to the network.`).addHelpText(`after`,`
|
|
145
145
|
Connect an MCP client to the server's /mcp URL and send
|
|
146
146
|
Authorization: Bearer <api-key> using a key from aventure.vc. The hosted
|
|
147
147
|
mcp.aventure.vc also advertises an authorization server, so a client there can
|
|
@@ -152,4 +152,4 @@ Environment:
|
|
|
152
152
|
AVENTURE_MCP_PORT Select the HTTP listening port.
|
|
153
153
|
AVENTURE_MCP_PATH Select the MCP route.
|
|
154
154
|
AVENTURE_MCP_JSON_LIMIT Limit request body size.
|
|
155
|
-
`).parseAsync()).opts();await bc(),delete process.env[Tn.authToken];var
|
|
155
|
+
`).parseAsync()).opts();await bc(),delete process.env[Tn.authToken];var OS=PS(),kS=process.env.AVENTURE_MCP_PATH??`/mcp`,AS=process.env.AVENTURE_MCP_JSON_LIMIT??`10mb`,jS=Ir()||void 0,MS=!1;function NS(e){Promise.allSettled([qn(),Sc()]).then(e=>{for(let t of e){if(t.status!==`rejected`)continue;let e=ir(t.reason);process.stderr.write(`${ES.bin[0]} telemetry shutdown failed: ${e}\n`)}}).catch(e=>{let t=ir(e);process.stderr.write(`${ES.bin[0]} telemetry shutdown failed: ${t}\n`)}).finally(()=>process.exit(e))}_S({port:OS,host:DS,path:kS,resolveOAuthDiscovery:hc(),jsonBodyLimit:AS,metricsScrapeSecret:jS}).then(e=>{rn({component:`aventure-mcp-server`,event:`server_listening`,fields:{port:OS,path:kS}}),process.stdout.write(`${ES.bin[0]} listening at http://localhost:${OS}${kS}\n`);let t=t=>{if(MS)return;MS=!0,rn({component:`aventure-mcp-server`,event:`server_shutdown_started`,fields:{signal:t}});let n=setTimeout(()=>{Nn({component:`aventure-mcp-server`,event:`server_shutdown_timeout`,message:`MCP server did not drain before the platform forced-shutdown window`,fields:{signal:t,forceExitMs:TS}}),NS(1)},TS);n.unref(),e.close().then(()=>{clearTimeout(n),rn({component:`aventure-mcp-server`,event:`server_shutdown_completed`,fields:{signal:t}}),NS(0)}).catch(e=>{let r=ir(e);clearTimeout(n),Nn({component:`aventure-mcp-server`,event:`server_shutdown_failed`,message:r,fields:{signal:t},error:e}),NS(1)})};for(let e of[`SIGTERM`,`SIGINT`])process.on(e,t)},async e=>{let t=ir(e);xc(e,`server_start_failed`),Nn({component:`aventure-mcp-server`,event:`server_start_failed`,message:t,error:e}),process.stderr.write(`${ES.bin[0]} failed to start: ${t}\n`),NS(1)});function PS(){let e=process.env.AVENTURE_MCP_PORT??process.env.PORT??`3333`,t=Number(e);if(!Number.isInteger(t)||t<1||t>wS)throw Error(`Invalid MCP server port: ${e}`);return t}export{};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aventurevc/mcp-server",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.52",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "MCP server that gives AI assistants access to aVenture research data on companies, people, funding, and news.",
|
|
6
6
|
"homepage": "https://docs.aventure.vc/mcp",
|
|
@@ -28,9 +28,9 @@
|
|
|
28
28
|
},
|
|
29
29
|
"aventurePublicApi": {
|
|
30
30
|
"repository": "aventurevc/aventure-docs",
|
|
31
|
-
"commit": "
|
|
31
|
+
"commit": "17e0d8c909088a843148d867bb1c4a966d09a615",
|
|
32
32
|
"openapiPath": "openapi/openapi.json",
|
|
33
|
-
"openapiSha256": "
|
|
33
|
+
"openapiSha256": "096f084cf9d9fc93f979d182aceef8b6f930f5567301ad365a078bd745cf495a"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {}
|
|
36
36
|
}
|