1import{O as I,t as b}from"./otel-DPAPTPw4.js";import{g as P}from"./index-DriwicRq.js";import"./annotorious-D_cpshEu.js";import"./clover-Bls2629Y.js";var M={};const E="MISTRAL_SDK_TELEMETRY",S="https://api.mistral.ai",C="/telemetry/v1/traces",D=R(S),O="MISTRAL_OTLP_TRACES_ENDPOINT",a="dedicated",s="global",x="false";class c extends Error{constructor(r){super(r),this.name="TelemetryConfigurationError"}}async function K(e,r=a){const t=g(e);if(typeof r=="string"){const n=N(r);return n===s?L(t,{replaceExisting:!0}):z(t,{baseURL:e._baseURL,options:e._options},{telemetry:n,replaceExisting:!0})}return d(t),await J(t,r),!0}async function re(e,r){return K(e,r)}function te(e,r,t,n){const i=g(e),o=A();return B(i,o===s).getTracer(r,t,n)}async function z(e,r,t={}){const n=t.telemetry,i=n!=null,o=t.replaceExisting===!0;if(!i&&q(e))return!0;if(!i&&e._telemetryAutoDisabled)return!1;const l=i?w(n):A();if(e._telemetryInitialization!==void 0){if(!o&&l===a)return e._telemetryInitialization;try{await e._telemetryInitialization}catch{}}if(l==null)return d(e),await f(e),F(e),!1;if(l===s)return L(e,{replaceExisting:o||i});if(e._autoTelemetryProvider!==void 0)return!0;if(e.tracerProvider!==void 0){if(!o)return!1;e.tracerProvider=void 0}if(P()!==void 0&&!o)return!1;const y=d(e),u=U(e,r,t,y);e._telemetryInitialization=u;try{return await u}finally{e._telemetryInitialization===u&&(e._telemetryInitialization=void 0)}}async function U(e,r,t,n){const o=await(t.createTelemetryTracerProvider??V)({apiKey:await Y(r),baseURL:r.baseURL??r.options?.serverURL});return e._telemetryConfigurationVersion!==n?(await o.shutdown?.(),!1):(await $(e,o),!0)}async function V(e){if(e.apiKey==null||e.apiKey==="")throw new c("Mistral telemetry requires an API key. Pass apiKey to the client or set MISTRAL_API_KEY.");const r=e.moduleLoader??W;let t,n,i;try{[t,n,i]=await Promise.all([r("@opentelemetry/sdk-trace-base"),r("@opentelemetry/exporter-trace-otlp-http"),r("@opentelemetry/resources")])}catch{throw new c("Mistral telemetry requires optional OpenTelemetry SDK/exporter dependencies. Install @opentelemetry/sdk-trace-base, @opentelemetry/exporter-trace-otlp-http, and @opentelemetry/resources with your package manager.")}const o=T(t,"BasicTracerProvider","@opentelemetry/sdk-trace-base"),l=T(t,"BatchSpanProcessor","@opentelemetry/sdk-trace-base"),y=T(n,"OTLPTraceExporter","@opentelemetry/exporter-trace-otlp-http"),u=new y({url:G(e.baseURL),headers:{Authorization:j(e.apiKey)}}),p=new l(u),_=Q(i,{"service.name":I}),m=new o({resource:_});return typeof m.addSpanProcessor=="function"?(m.addSpanProcessor(p),m):new o({resource:_,spanProcessors:[p]})}function g(e){const t=e._options?.hooks?.beforeRequestHooks;if(!Array.isArray(t))throw new Error("Cannot configure telemetry: SDK hooks not initialised.");const n=t.find(h);if(n===void 0)throw new Error("Cannot configure telemetry: TracingHook not found in the client's hooks.");return n}function h(e){return!!(e&&typeof e=="object"&&e._mistralTracingHook===!0)}function B(e,r){if(e.tracerProvider!==void 0)return e.tracerProvider;if(!r&&!e._telemetryUseGlobalProvider){const t=P();if(t!==void 0)return t}return b.getTracerProvider()}function w(e){if(typeof e=="boolean")return e?a:null;switch(e.trim().toLowerCase()){case a:return a;case s:return s;case x:return null}throw new c(`Invalid telemetry setting ${JSON.stringify(e)}. Expected one of: dedicated, false, global.`)}function N(e){switch(e.trim().toLowerCase()){case a:return a;case s:return s}throw new c(`Invalid telemetry provider ${JSON.stringify(e)}. Expected one of: dedicated, global.`)}function A(){const e=v(E);if(e==null||e==="")return null;try{return w(e)}catch{throw new c(`Invalid ${E}=${JSON.stringify(e)}. Expected one of: dedicated, false, global.`)}}async function Y(e){const r=e.resolvedSecurity?.headers?.Authorization;if(r)return r;const t=await H(e.options?.apiKey);if(t)return t;const n=v("MISTRAL_API_KEY");if(n)return n;throw new c("Mistral telemetry requires an API key. Pass apiKey to the client or set MISTRAL_API_KEY.")}async function H(e){if(e!=null)return typeof e=="function"?e():e}function G(e){const r=v(O)?.trim();return r||(e!=null&&`${e}`.trim()!==""?R(e):D)}function R(e){return new URL(C,e).toString()}async function $(e,r){await f(e),e.tracerProvider=r,e._autoTelemetryProvider=r,e._telemetryUseGlobalProvider=!1,e._telemetryAutoDisabled=!1}function q(e){return e._autoTelemetryProvider!==void 0||e._telemetryUseGlobalProvider}function F(e){e._telemetryUseGlobalProvider=!1,e._telemetryAutoDisabled=!0}function d(e){return e._telemetryConfigurationVersion+=1,e._telemetryConfigurationVersion}async function J(e,r){await f(e),e.tracerProvider=r,e._telemetryUseGlobalProvider=!1,e._telemetryAutoDisabled=!1}async function L(e,r){return e.tracerProvider!==void 0&&e._autoTelemetryProvider===void 0&&!r.replaceExisting?!1:(d(e),await f(e),e.tracerProvider=void 0,e._telemetryUseGlobalProvider=!0,e._telemetryAutoDisabled=!0,!0)}async function f(e){const r=e._autoTelemetryProvider;r!==void 0&&(e._autoTelemetryProvider=void 0,e.tracerProvider===r&&(e.tracerProvider=void 0),await r.shutdown?.())}function j(e){return e.toLowerCase().startsWith("bearer ")?e:`Bearer ${e}`}function v(e){try{const t=globalThis.Deno?.env?.get?.(e);if(t!==void 0)return t}catch{}try{return M?.[e]}catch{return}}async function W(e){return await import(e)}function T(e,r,t){const n=e[r];if(typeof n!="function")throw new c(`Mistral telemetry expected ${t} to export ${r}.`);return n}function Q(e,r){const t=e.resourceFromAttributes;if(typeof t=="function")return t(r);const n=e.Resource;if(typeof n!="function")return{attributes:r};const i=new n(r);return n.default?.()?.merge?.(i)??i}export{O as MISTRAL_OTLP_TRACES_ENDPOINT_ENV,E as MISTRAL_SDK_TELEMETRY_ENV,S as MISTRAL_TELEMETRY_BASE_URL,D as MISTRAL_TELEMETRY_ENDPOINT,C as MISTRAL_TELEMETRY_TRACES_PATH,a as TELEMETRY_PROVIDER_DEDICATED,s as TELEMETRY_PROVIDER_GLOBAL,c as TelemetryConfigurationError,V as _createTelemetryTracerProvider,K as configureTelemetry,z as configureTelemetryForHook,te as getTelemetryTracer,re as setTracerProvider};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.