judgeval 0.7.1 → 0.7.2

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/index.cjs CHANGED
@@ -1,5 +1,5 @@
1
- var{defineProperty:$,getOwnPropertyNames:se,getOwnPropertyDescriptor:oe}=Object,ie=Object.prototype.hasOwnProperty;var q=new WeakMap,ne=(e)=>{var t=q.get(e),r;if(t)return t;if(t=$({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")se(e).map((o)=>!ie.call(t,o)&&$(t,o,{get:()=>e[o],enumerable:!(r=oe(e,o))||r.enumerable}));return q.set(e,t),t};var ae=(e,t)=>{for(var r in t)$(e,r,{get:t[r],enumerable:!0,configurable:!0,set:(o)=>t[r]=()=>o})};var ce={};ae(ce,{ScoringResult:()=>k,ScorersFactory:()=>b,ScorerData:()=>L,PromptScorerFactory:()=>p,PromptScorer:()=>P,NodeTracerFactory:()=>D,NodeTracer:()=>A,NoOpSpanExporter:()=>R,JudgmentSpanExporter:()=>N,Judgeval:()=>F,FaithfulnessScorer:()=>f,Example:()=>g,EvaluationFactory:()=>y,Evaluation:()=>C,CustomScorerFactory:()=>I,CustomScorer:()=>O,BuiltInScorersFactory:()=>v,BrowserTracerFactory:()=>x,BrowserTracer:()=>M,BaseTracer:()=>h,BaseScorer:()=>_,AnswerRelevancyScorer:()=>T,AnswerCorrectnessScorer:()=>S,APIScorer:()=>u});module.exports=ne(ce);function l(e,t){let r=process.env[e];if(!r)return t??null;return r}var Y=l("JUDGMENT_API_KEY"),z=l("JUDGMENT_ORG_ID"),B=l("JUDGMENT_API_URL","https://api.judgmentlabs.ai"),me=l("JUDGMENT_LLM_PROXY_URL","https://api.judgmentlabs.ai/llm/proxy/v1"),W=l("JUDGMENT_DEFAULT_GPT_MODEL","gpt-4.1"),pe=l("JUDGMENT_ENABLE_MONITORING","true"),he=l("JUDGMENT_ENABLE_EVALUATIONS","true"),_e=l("JUDGMENT_NO_COLOR"),V=l("JUDGMENT_LOG_LEVEL","warn"),Ee=l("OPENAI_API_KEY"),Se=l("ANTHROPIC_API_KEY"),Te=l("GOOGLE_API_KEY"),fe=l("GEMINI_API_KEY");class H{baseUrl;apiKey;organizationId;constructor(e,t,r){this.baseUrl=e,this.apiKey=t,this.organizationId=r}getBaseUrl(){return this.baseUrl}getApiKey(){return this.apiKey}getOrganizationId(){return this.organizationId}buildUrl(e){return this.baseUrl+e}buildHeaders(){if(!this.apiKey||!this.organizationId)throw Error("API key and organization ID cannot be null");return{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`,"X-Organization-Id":this.organizationId}}async addToRunEvalQueueExamples(e){let t=this.buildUrl("/add_to_run_eval_queue/examples"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return}async addToRunEvalQueueTraces(e){let t=this.buildUrl("/add_to_run_eval_queue/traces"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return}async logEvalResults(e){let t=this.buildUrl("/log_eval_results/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async fetchExperimentRun(e){let t=this.buildUrl("/fetch_experiment_run/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async scorerExists(e){let t=this.buildUrl("/scorer_exists/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async saveScorer(e){let t=this.buildUrl("/save_scorer/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async fetchScorers(e){let t=this.buildUrl("/fetch_scorers/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async projectsResolve(e){let t=this.buildUrl("/projects/resolve/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}}class C{client;constructor(e){this.client=e.client}}class y{client;constructor(e){this.client=e}create(e={}){return new C({...e,client:this.client})}}var m={PROMPT_SCORER:"Prompt Scorer",TRACE_PROMPT_SCORER:"Trace Prompt Scorer",FAITHFULNESS:"Faithfulness",ANSWER_RELEVANCY:"Answer Relevancy",ANSWER_CORRECTNESS:"Answer Correctness",CUSTOM:"Custom"};class _{}class u extends _{scoreType;requiredParams;_threshold;_name;_strictMode;_model;additionalProperties;constructor(e){super();this.scoreType=e,this._name=e,this._threshold=0.5,this._strictMode=!1,this.requiredParams=[],this.additionalProperties={}}getName(){return this._name}getScoreType(){return this.scoreType}getThreshold(){return this._threshold}getStrictMode(){return this._strictMode}getModel(){return this._model}getRequiredParams(){return[...this.requiredParams]}setThreshold(e){if(e<0||e>1)throw Error(`Threshold must be between 0 and 1, got: ${e}`);if(this._threshold=e,this._strictMode)this._threshold=1}setName(e){this._name=e}setStrictMode(e){if(this._strictMode=e,e)this._threshold=1}setModel(e){this._model=e}setRequiredParams(e){this.requiredParams=[...e]}setAdditionalProperty(e,t){this.additionalProperties[e]=t}getAdditionalProperties(){return{...this.additionalProperties}}getScorerConfig(){let e={...this.additionalProperties};return{score_type:this.scoreType,threshold:this._threshold,name:this._name,strict_mode:this._strictMode,required_params:this.requiredParams,kwargs:e}}static builder(e){return new Q(this,e)}}class Q{scorer;constructor(e,t){this.scorer=new e(t)}threshold(e){return this.scorer.setThreshold(e),this}name(e){return this.scorer.setName(e),this}strictMode(e){return this.scorer.setStrictMode(e),this}requiredParams(e){return this.scorer.setRequiredParams(e),this}model(e){return this.scorer.setModel(e),this}additionalProperty(e,t){return this.scorer.setAdditionalProperty(e,t),this}build(){return this.scorer}}class S extends u{constructor(e={}){super(m.ANSWER_CORRECTNESS);if(this.setRequiredParams(["input","actual_output","expected_output"]),e.threshold!==void 0)this.setThreshold(e.threshold);if(e.name)this.setName(e.name);if(e.strictMode!==void 0)this.setStrictMode(e.strictMode);if(e.model)this.setModel(e.model)}}class T extends u{constructor(e={}){super(m.ANSWER_RELEVANCY);if(this.setRequiredParams(["input","actual_output"]),e.threshold!==void 0)this.setThreshold(e.threshold);if(e.name)this.setName(e.name);if(e.strictMode!==void 0)this.setStrictMode(e.strictMode);if(e.model)this.setModel(e.model)}}class f extends u{constructor(e={}){super(m.FAITHFULNESS);if(this.setRequiredParams(["context","actual_output"]),e.threshold!==void 0)this.setThreshold(e.threshold);if(e.name)this.setName(e.name);if(e.strictMode!==void 0)this.setStrictMode(e.strictMode);if(e.model)this.setModel(e.model)}}class v{answerCorrectness(e={}){return new S(e)}answerRelevancy(e={}){return new T(e)}faithfulness(e={}){return new f(e)}}class O extends u{_className;_serverHosted;constructor(e){super(m.CUSTOM);if(this.setName(e.name),e.className)this._className=e.className,this.setAdditionalProperty("class_name",e.className);this._serverHosted=e.serverHosted??!0,this.setAdditionalProperty("server_hosted",this._serverHosted)}getClassName(){return this._className}isServerHosted(){return this._serverHosted}getScorerConfig(){throw Error("CustomScorer does not use ScorerConfig")}}class I{get(e,t){return new O({name:e,className:t??e,serverHosted:!0})}}class P extends _{_name;_prompt;_threshold;_options;_model;_description;isTrace;constructor(e){super();this._name=e.name,this._prompt=e.prompt,this._threshold=e.threshold,this._options={...e.options},this._model=e.model,this._description=e.description,this.isTrace=e.isTrace??!1}getName(){return this._name}getPrompt(){return this._prompt}getThreshold(){return this._threshold}getOptions(){return this._options?{...this._options}:void 0}getModel(){return this._model}getDescription(){return this._description}setThreshold(e){this._threshold=e}setPrompt(e){this._prompt=e}setModel(e){this._model=e}setOptions(e){this._options={...e}}setDescription(e){this._description=e}appendToPrompt(e){this._prompt=this._prompt+e}getScorerConfig(){let e=this.isTrace?m.TRACE_PROMPT_SCORER:m.PROMPT_SCORER,t={prompt:this._prompt};if(this._options)t.options=this._options;if(this._model)t.model=this._model;if(this._description)t.description=this._description;return{score_type:e,threshold:this._threshold,name:this._name,kwargs:t}}}class p{client;isTrace;static cache=new Map;constructor(e,t){this.client=e,this.isTrace=t}async get(e){let t=this.getCacheKey(e),r=p.cache.get(t);if(r)return this.createFromModel(r,e);try{let o={names:[e]},i=await this.client.fetchScorers(o);if(i.scorers.length===0)throw Error(`Failed to fetch prompt scorer '${e}': not found`);let a=i.scorers[0],n=a.is_trace===!0;if(n!==this.isTrace){let E=this.isTrace?"TracePromptScorer":"PromptScorer";throw Error(`Scorer with name ${e} is a ${n?"TracePromptScorer":"PromptScorer"}, not a ${E}`)}return p.cache.set(t,a),this.createFromModel(a,e)}catch(o){if(o instanceof Error)throw o;throw Error(`Failed to fetch prompt scorer '${e}': ${o}`)}}create(e){if(!e.name)throw Error("Name is required");if(!e.prompt)throw Error("Prompt is required");return new P({...e,isTrace:this.isTrace})}createFromModel(e,t){let r;if(e.options&&typeof e.options==="object"){r={};for(let[o,i]of Object.entries(e.options))if(typeof i==="number")r[o]=i}return new P({name:t,prompt:e.prompt,threshold:e.threshold,options:r??{},model:e.model??W,description:e.description??"",isTrace:this.isTrace})}getCacheKey(e){return`${e}:${this.client.getApiKey()}:${this.client.getOrganizationId()}`}}class b{client;constructor(e){this.client=e}get promptScorer(){return new p(this.client,!1)}get tracePromptScorer(){return new p(this.client,!0)}get customScorer(){return new I}get builtIn(){return new v}}var K=require("@opentelemetry/resources"),j=require("@opentelemetry/sdk-trace-web");class s{static RESET="\x1B[0m";static RED="\x1B[31m";static YELLOW="\x1B[33m";static GRAY="\x1B[90m";static Level={DEBUG:0,INFO:1,WARNING:2,ERROR:3,CRITICAL:4};static initialized=!1;static currentLevel=s.Level.WARNING;static useColor=!0;static initialize(){if(!s.initialized){let e=process.env.JUDGMENT_NO_COLOR;s.useColor=!e&&process.stdout.isTTY;let t=V.toLowerCase();if(t){let r={debug:s.Level.DEBUG,info:s.Level.INFO,warning:s.Level.WARNING,warn:s.Level.WARNING,error:s.Level.ERROR,critical:s.Level.CRITICAL};s.currentLevel=r[t]??s.Level.WARNING}s.initialized=!0}}static setLevel(e){s.currentLevel=e}static setUseColor(e){s.useColor=e}static log(e,t){if(s.initialize(),e<s.currentLevel)return;let r=new Date().toISOString().replace("T"," ").substring(0,19),o=Object.keys(s.Level).find((n)=>s.Level[n]===e)??"UNKNOWN",i=`${r} - judgeval - ${o} - ${t}`;if(s.useColor)i=`${e===s.Level.DEBUG||e===s.Level.INFO?s.GRAY:e===s.Level.WARNING?s.YELLOW:s.RED}${i}${s.RESET}`;(e>=s.Level.ERROR?process.stderr:process.stdout).write(i+`
2
- `)}static debug(e){s.log(s.Level.DEBUG,e)}static info(e){s.log(s.Level.INFO,e)}static warning(e){s.log(s.Level.WARNING,e)}static warn(e){s.log(s.Level.WARNING,e)}static error(e){s.log(s.Level.ERROR,e)}static critical(e){s.log(s.Level.CRITICAL,e)}}var X="0.7.1";var J=X;var d=require("@opentelemetry/api");var Z=require("@opentelemetry/exporter-trace-otlp-http");class N{delegate;constructor(e,t,r,o){this.delegate=new Z.OTLPTraceExporter({url:e,headers:{Authorization:`Bearer ${t}`,"X-Organization-Id":r,"X-Project-Id":o}})}export(e,t){s.info(`JudgmentSpanExporter: exporting ${e.length} spans`),this.delegate.export(e,t)}shutdown(){return this.delegate.shutdown()}forceFlush(){return this.delegate.forceFlush?.()??Promise.resolve()}}class R{export(e,t){t({code:0})}shutdown(){return Promise.resolve()}}class h{static TRACER_NAME="judgeval";projectName;enableEvaluation;apiClient;serializer;jsonEncoder;projectId;constructor(e,t,r,o,i=JSON.stringify){this.projectName=e,this.enableEvaluation=t,this.apiClient=r,this.serializer=o,this.jsonEncoder=i,this.projectId=null}async resolveAndSetProjectId(){try{this.projectId=await this.resolveProjectId(this.projectName),s.info(`Successfully resolved project ID: ${this.projectId}`)}catch{s.error(`Failed to resolve project ${this.projectName}, please create it first at https://app.judgmentlabs.ai/org/${this.apiClient.getOrganizationId()}/projects. Skipping Judgment export.`),this.projectId=null}}getSpanExporter(){if(this.projectId!==null)return this.createJudgmentSpanExporter(this.projectId);return s.error("Project not resolved; cannot create exporter, returning NoOpSpanExporter"),new R}getTracer(){return d.trace.getTracer(h.TRACER_NAME)}setSpanKind(e){if(!e)return;let t=d.trace.getActiveSpan();if(t)t.setAttribute("judgment.span_kind",e)}setAttribute(e,t){if(!this.isValidKey(e))return;if(t===null||t===void 0)return;let r=d.trace.getActiveSpan();if(r){let o=typeof t==="string"||typeof t==="number"||typeof t==="boolean"?t:this.serializer(t);r.setAttribute(e,o)}}setAttributes(e){for(let[t,r]of Object.entries(e))this.setAttribute(t,r)}setLLMSpan(){this.setSpanKind("llm")}setToolSpan(){this.setSpanKind("tool")}setGeneralSpan(){this.setSpanKind("span")}setInput(e){this.setAttribute("judgment.input",e)}setOutput(e){this.setAttribute("judgment.output",e)}asyncEvaluate(e,t){this.safeExecute("evaluate scorer",()=>{if(!this.enableEvaluation)return;let r=this.getSampledSpanContext();if(!r)return;let{traceId:o,spanId:i}=r;this.logEvaluationInfo("asyncEvaluate",o,i,e.getName());let a=this.createEvaluationRun(e,t,o,i);this.enqueueEvaluation(a).catch((n)=>{s.error(`Failed to enqueue evaluation run: ${n}`)})})}asyncTraceEvaluate(e){this.safeExecute("evaluate trace scorer",()=>{if(!this.enableEvaluation)return;let t=this.getSampledSpan();if(!t)return;let r=t.spanContext(),o=r.traceId,i=r.spanId;this.logEvaluationInfo("asyncTraceEvaluate",o,i,e.getName());let a=this.createTraceEvaluationRun(e,o,i);try{let n=JSON.stringify(a);t.setAttribute("judgment.pending_trace_eval",n)}catch(n){s.error(`Failed to serialize trace evaluation: ${n}`)}})}span(e,t,r,o){return this.getTracer().startActiveSpan(e,r??{},o??d.context.active(),(a)=>{try{return t()}catch(n){throw a.setStatus({code:d.SpanStatusCode.ERROR}),a.recordException(n),n}finally{a.end()}})}observe(e,t="span",r,o,i){let a=this.getTracer(),n=r??e.name;return(...E)=>{return a.startActiveSpan(n,o??{},i??d.context.active(),(c)=>{if(t)c.setAttribute("judgment.span_kind",t);try{let U=this.formatInputs(e,E);c.setAttribute("judgment.input",this.serializer(U));let G=e(...E);if(G instanceof Promise)return G.then((w)=>{return c.setAttribute("judgment.output",this.serializer(w)),w}).catch((w)=>{throw c.recordException(w),c.setStatus({code:d.SpanStatusCode.ERROR,message:String(w)}),w}).finally(()=>{c.end()});return c.setAttribute("judgment.output",this.serializer(G)),c.end(),G}catch(U){throw c.recordException(U),c.setStatus({code:d.SpanStatusCode.ERROR,message:String(U)}),c.end(),U}})}}async resolveProjectId(e){try{s.info(`Resolving project ID for project: ${e}`);let t={project_name:e},o=(await this.apiClient.projectsResolve(t)).project_id;if(!o)throw Error(`Project ID not found for project: ${e}`);return s.info(`Resolved project ID: ${o}`),o}catch(t){throw Error(`Failed to resolve project ID: ${t instanceof Error?t.message:String(t)}`)}}buildEndpoint(e){return e.endsWith("/")?e+"otel/v1/traces":e+"/otel/v1/traces"}createJudgmentSpanExporter(e){return new N(this.buildEndpoint(this.apiClient.getBaseUrl()),this.apiClient.getApiKey(),this.apiClient.getOrganizationId(),e)}generateRunId(e,t){return e+(t??Date.now().toString())}createEvaluationRun(e,t,r,o){let i=this.generateRunId("async_evaluate_",o);return{project_name:this.projectName,eval_name:i,trace_id:r,trace_span_id:o,examples:[t.toModel()],judgment_scorers:[e.getScorerConfig()],custom_scorers:[]}}createTraceEvaluationRun(e,t,r){let o=this.generateRunId("async_trace_evaluate_",r);return{project_name:this.projectName,eval_name:o,trace_and_span_ids:[[t,r]],judgment_scorers:[e.getScorerConfig()],custom_scorers:[],is_offline:!1}}async enqueueEvaluation(e){try{await this.apiClient.addToRunEvalQueueExamples(e)}catch(t){s.error(`Failed to enqueue evaluation run: ${t}`)}}getSampledSpanContext(){let e=d.trace.getActiveSpan();if(!e)return null;let t=e.spanContext();if(!t.traceFlags||!(t.traceFlags&1))return null;return t}getSampledSpan(){let e=d.trace.getActiveSpan();if(!e)return null;let t=e.spanContext();if(!t.traceFlags||!(t.traceFlags&1))return null;return e}logEvaluationInfo(e,t,r,o){s.info(`${e}: project=${this.projectName}, traceId=${t}, spanId=${r}, scorer=${o}`)}safeExecute(e,t){try{t()}catch(r){s.error(`Failed to ${e}: ${r}`)}}isValidKey(e){return e.length>0}formatInputs(e,t){try{let r=e.toString(),o=/\(([^)]*)\)/.exec(r),i=o?o[1].split(",").map((n)=>n.trim().split("=")[0].trim()).filter((n)=>n.length>0):[],a={};return i.forEach((n,E)=>{if(E<t.length)a[n]=t[E]}),a}catch{return{}}}}class M extends h{webTracerProvider=null;resourceAttributes;constructor(e,t,r,o,i){super(e,t,r,o);this.resourceAttributes=i}static async create(e,t){let r=new M(e.projectName,e.enableEvaluation,t,e.serializer,e.resourceAttributes);if(await r.resolveAndSetProjectId(),e.initialize)await r.initialize();return r}async initialize(){if(this.webTracerProvider!==null){s.warn("BrowserTracer already initialized");return}try{let e={"service.name":this.projectName,"telemetry.sdk.version":J,...this.resourceAttributes},t=this.getSpanExporter();this.webTracerProvider=new j.WebTracerProvider({resource:K.resourceFromAttributes(e),spanProcessors:[new j.BatchSpanProcessor(t)]}),this.webTracerProvider.register(),s.info("BrowserTracer initialized successfully")}catch(e){throw Error(`Failed to initialize BrowserTracer: ${e instanceof Error?e.message:String(e)}`)}}async shutdown(){if(!this.webTracerProvider){s.warn("BrowserTracer not initialized, skipping shutdown");return}try{await this.webTracerProvider.shutdown(),this.webTracerProvider=null,s.info("BrowserTracer shut down successfully")}catch(e){s.error(`Failed to shutdown BrowserTracer: ${e}`)}}}class x{client;constructor(e){this.client=e}async create(e){if(!e.projectName)throw Error("Project name is required");return M.create({projectName:e.projectName,enableEvaluation:e.enableEvaluation??!0,enableMonitoring:e.enableMonitoring??!1,serializer:e.serializer??JSON.stringify,resourceAttributes:e.resourceAttributes??{},initialize:e.initialize??!0},this.client)}}var ee=require("@opentelemetry/resources"),te=require("@opentelemetry/sdk-node");class A extends h{nodeSDK=null;resourceAttributes;instrumentations;constructor(e,t,r,o,i,a){super(e,t,r,o);this.resourceAttributes=i,this.instrumentations=a}static async create(e,t){let r=new A(e.projectName,e.enableEvaluation,t,e.serializer,e.resourceAttributes,e.instrumentations);if(await r.resolveAndSetProjectId(),e.initialize)await r.initialize();return r}async initialize(){if(this.nodeSDK!==null){s.warn("NodeTracer already initialized");return}try{let e={"service.name":this.projectName,"telemetry.sdk.version":J,...this.resourceAttributes},t=this.getSpanExporter();this.nodeSDK=new te.NodeSDK({resource:ee.resourceFromAttributes(e),traceExporter:t,instrumentations:this.instrumentations}),this.nodeSDK.start(),s.info("NodeTracer initialized successfully")}catch(e){throw Error(`Failed to initialize NodeTracer: ${e instanceof Error?e.message:String(e)}`)}}async shutdown(){if(!this.nodeSDK){s.warn("NodeTracer not initialized, skipping shutdown");return}try{await this.nodeSDK.shutdown(),this.nodeSDK=null,s.info("NodeTracer shut down successfully")}catch(e){s.error(`Failed to shutdown NodeTracer: ${e}`)}}}class D{client;constructor(e){this.client=e}async create(e){if(!e.projectName)throw Error("Project name is required");return A.create({projectName:e.projectName,enableEvaluation:e.enableEvaluation??!0,enableMonitoring:e.enableMonitoring??!1,serializer:e.serializer??JSON.stringify,resourceAttributes:e.resourceAttributes??{},instrumentations:e.instrumentations??[],initialize:e.initialize??!0},this.client)}}class F{internalClient;constructor(e={}){let t=e.apiKey??Y,r=e.organizationId??z,o=e.apiUrl??B;if(!t)throw Error("API key is required");if(!r)throw Error("Organization ID is required");if(!o)throw Error("API URL is required");this.internalClient=new H(o,t,r)}static create(e={}){return new F(e)}get nodeTracer(){return new D(this.internalClient)}get browserTracer(){return new x(this.internalClient)}get scorers(){return new b(this.internalClient)}get evaluation(){return new y(this.internalClient)}}var re=require("crypto");class g{exampleId;createdAt;name;properties;constructor(e={}){this.exampleId=e.exampleId??re.randomUUID(),this.createdAt=e.createdAt??new Date().toISOString(),this.name=e.name??null,this.properties=e.properties??{}}static create(e){return new g({properties:e})}setProperty(e,t){return this.properties[e]=t,this}getProperty(e){return this.properties[e]}getProperties(){return{...this.properties}}toModel(){return{example_id:this.exampleId,created_at:this.createdAt,name:this.name??void 0,...this.properties}}}class L{name;threshold;success;score;reason;strictMode;evaluationModel;error;additionalMetadata;id;constructor(e={}){this.name=e.name??null,this.threshold=e.threshold??null,this.success=e.success??null,this.score=e.score??null,this.reason=e.reason??null,this.strictMode=e.strictMode??null,this.evaluationModel=e.evaluationModel??null,this.error=e.error??null,this.additionalMetadata=e.additionalMetadata??{},this.id=e.id??null}toModel(){let e={name:this.name??"",threshold:this.threshold??0,success:this.success??!1};if(this.score!==void 0&&this.score!==null)e.score=this.score;if(this.reason!==void 0&&this.reason!==null)e.reason=this.reason;if(this.strictMode!==void 0&&this.strictMode!==null)e.strict_mode=this.strictMode;if(this.evaluationModel!==void 0&&this.evaluationModel!==null)e.evaluation_model=this.evaluationModel;if(this.error!==void 0&&this.error!==null)e.error=this.error;if(this.additionalMetadata&&Object.keys(this.additionalMetadata).length>0)e.additional_metadata=this.additionalMetadata;if(this.id!==void 0&&this.id!==null)e.id=this.id;return e}}class k{success;scorersData;name;dataObject;traceId;runDuration;evaluationCost;constructor(e={}){this.success=e.success??null,this.scorersData=e.scorersData??[],this.name=e.name??null,this.dataObject=e.dataObject??null,this.traceId=e.traceId??null,this.runDuration=e.runDuration??null,this.evaluationCost=e.evaluationCost??null}toModel(){let e={success:this.success??!1,scorers_data:(this.scorersData??[]).map((t)=>t.toModel())};if(this.name!==void 0&&this.name!==null)e.name=this.name;if(this.dataObject!==void 0&&this.dataObject!==null)if(this.dataObject instanceof g)e.data_object=this.dataObject.toModel();else e.data_object=this.dataObject;if(this.traceId!==void 0&&this.traceId!==null)e.trace_id=this.traceId;if(this.runDuration!==void 0&&this.runDuration!==null)e.run_duration=this.runDuration;if(this.evaluationCost!==void 0&&this.evaluationCost!==null)e.evaluation_cost=this.evaluationCost;return e}}
1
+ var{defineProperty:$,getOwnPropertyNames:se,getOwnPropertyDescriptor:oe}=Object,ie=Object.prototype.hasOwnProperty;var q=new WeakMap,ne=(e)=>{var t=q.get(e),r;if(t)return t;if(t=$({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")se(e).map((o)=>!ie.call(t,o)&&$(t,o,{get:()=>e[o],enumerable:!(r=oe(e,o))||r.enumerable}));return q.set(e,t),t};var ae=(e,t)=>{for(var r in t)$(e,r,{get:t[r],enumerable:!0,configurable:!0,set:(o)=>t[r]=()=>o})};var ce={};ae(ce,{ScoringResult:()=>k,ScorersFactory:()=>x,ScorerData:()=>L,PromptScorerFactory:()=>p,PromptScorer:()=>P,NodeTracerFactory:()=>U,NodeTracer:()=>A,NoOpSpanExporter:()=>R,JudgmentSpanExporter:()=>N,Judgeval:()=>j,FaithfulnessScorer:()=>f,Example:()=>g,EvaluationFactory:()=>y,Evaluation:()=>C,CustomScorerFactory:()=>I,CustomScorer:()=>O,BuiltInScorersFactory:()=>v,BrowserTracerFactory:()=>D,BrowserTracer:()=>M,BaseTracer:()=>h,BaseScorer:()=>_,AnswerRelevancyScorer:()=>T,AnswerCorrectnessScorer:()=>S,APIScorer:()=>u});module.exports=ne(ce);function l(e,t){let r=process.env[e];if(!r)return t??null;return r}var Y=l("JUDGMENT_API_KEY"),z=l("JUDGMENT_ORG_ID"),B=l("JUDGMENT_API_URL","https://api.judgmentlabs.ai"),me=l("JUDGMENT_LLM_PROXY_URL","https://api.judgmentlabs.ai/llm/proxy/v1"),W=l("JUDGMENT_DEFAULT_GPT_MODEL","gpt-4.1"),pe=l("JUDGMENT_ENABLE_MONITORING","true"),he=l("JUDGMENT_ENABLE_EVALUATIONS","true"),_e=l("JUDGMENT_NO_COLOR"),V=l("JUDGMENT_LOG_LEVEL","warn"),Ee=l("OPENAI_API_KEY"),Se=l("ANTHROPIC_API_KEY"),Te=l("GOOGLE_API_KEY"),fe=l("GEMINI_API_KEY");class H{baseUrl;apiKey;organizationId;constructor(e,t,r){this.baseUrl=e,this.apiKey=t,this.organizationId=r}getBaseUrl(){return this.baseUrl}getApiKey(){return this.apiKey}getOrganizationId(){return this.organizationId}buildUrl(e){return this.baseUrl+e}buildHeaders(){if(!this.apiKey||!this.organizationId)throw Error("API key and organization ID cannot be null");return{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`,"X-Organization-Id":this.organizationId}}async addToRunEvalQueueExamples(e){let t=this.buildUrl("/add_to_run_eval_queue/examples"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return}async addToRunEvalQueueTraces(e){let t=this.buildUrl("/add_to_run_eval_queue/traces"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return}async logEvalResults(e){let t=this.buildUrl("/log_eval_results/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async fetchExperimentRun(e){let t=this.buildUrl("/fetch_experiment_run/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async scorerExists(e){let t=this.buildUrl("/scorer_exists/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async saveScorer(e){let t=this.buildUrl("/save_scorer/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async fetchScorers(e){let t=this.buildUrl("/fetch_scorers/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async projectsResolve(e){let t=this.buildUrl("/projects/resolve/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}}class C{client;constructor(e){this.client=e.client}}class y{client;constructor(e){this.client=e}create(e={}){return new C({...e,client:this.client})}}var m={PROMPT_SCORER:"Prompt Scorer",TRACE_PROMPT_SCORER:"Trace Prompt Scorer",FAITHFULNESS:"Faithfulness",ANSWER_RELEVANCY:"Answer Relevancy",ANSWER_CORRECTNESS:"Answer Correctness",CUSTOM:"Custom"};class _{}class u extends _{scoreType;requiredParams;_threshold;_name;_strictMode;_model;additionalProperties;constructor(e){super();this.scoreType=e,this._name=e,this._threshold=0.5,this._strictMode=!1,this.requiredParams=[],this.additionalProperties={}}getName(){return this._name}getScoreType(){return this.scoreType}getThreshold(){return this._threshold}getStrictMode(){return this._strictMode}getModel(){return this._model}getRequiredParams(){return[...this.requiredParams]}setThreshold(e){if(e<0||e>1)throw Error(`Threshold must be between 0 and 1, got: ${e}`);if(this._threshold=e,this._strictMode)this._threshold=1}setName(e){this._name=e}setStrictMode(e){if(this._strictMode=e,e)this._threshold=1}setModel(e){this._model=e}setRequiredParams(e){this.requiredParams=[...e]}setAdditionalProperty(e,t){this.additionalProperties[e]=t}getAdditionalProperties(){return{...this.additionalProperties}}getScorerConfig(){let e={...this.additionalProperties};return{score_type:this.scoreType,threshold:this._threshold,name:this._name,strict_mode:this._strictMode,required_params:this.requiredParams,kwargs:e}}static builder(e){return new Q(this,e)}}class Q{scorer;constructor(e,t){this.scorer=new e(t)}threshold(e){return this.scorer.setThreshold(e),this}name(e){return this.scorer.setName(e),this}strictMode(e){return this.scorer.setStrictMode(e),this}requiredParams(e){return this.scorer.setRequiredParams(e),this}model(e){return this.scorer.setModel(e),this}additionalProperty(e,t){return this.scorer.setAdditionalProperty(e,t),this}build(){return this.scorer}}class S extends u{constructor(e={}){super(m.ANSWER_CORRECTNESS);if(this.setRequiredParams(["input","actual_output","expected_output"]),e.threshold!==void 0)this.setThreshold(e.threshold);if(e.name)this.setName(e.name);if(e.strictMode!==void 0)this.setStrictMode(e.strictMode);if(e.model)this.setModel(e.model)}}class T extends u{constructor(e={}){super(m.ANSWER_RELEVANCY);if(this.setRequiredParams(["input","actual_output"]),e.threshold!==void 0)this.setThreshold(e.threshold);if(e.name)this.setName(e.name);if(e.strictMode!==void 0)this.setStrictMode(e.strictMode);if(e.model)this.setModel(e.model)}}class f extends u{constructor(e={}){super(m.FAITHFULNESS);if(this.setRequiredParams(["context","actual_output"]),e.threshold!==void 0)this.setThreshold(e.threshold);if(e.name)this.setName(e.name);if(e.strictMode!==void 0)this.setStrictMode(e.strictMode);if(e.model)this.setModel(e.model)}}class v{answerCorrectness(e={}){return new S(e)}answerRelevancy(e={}){return new T(e)}faithfulness(e={}){return new f(e)}}class O extends u{_className;_serverHosted;constructor(e){super(m.CUSTOM);if(this.setName(e.name),e.className)this._className=e.className,this.setAdditionalProperty("class_name",e.className);this._serverHosted=e.serverHosted??!0,this.setAdditionalProperty("server_hosted",this._serverHosted)}getClassName(){return this._className}isServerHosted(){return this._serverHosted}getScorerConfig(){throw Error("CustomScorer does not use ScorerConfig")}}class I{get(e,t){return new O({name:e,className:t??e,serverHosted:!0})}}class P extends _{_name;_prompt;_threshold;_options;_model;_description;isTrace;constructor(e){super();this._name=e.name,this._prompt=e.prompt,this._threshold=e.threshold,this._options={...e.options},this._model=e.model,this._description=e.description,this.isTrace=e.isTrace??!1}getName(){return this._name}getPrompt(){return this._prompt}getThreshold(){return this._threshold}getOptions(){return this._options?{...this._options}:void 0}getModel(){return this._model}getDescription(){return this._description}setThreshold(e){this._threshold=e}setPrompt(e){this._prompt=e}setModel(e){this._model=e}setOptions(e){this._options={...e}}setDescription(e){this._description=e}appendToPrompt(e){this._prompt=this._prompt+e}getScorerConfig(){let e=this.isTrace?m.TRACE_PROMPT_SCORER:m.PROMPT_SCORER,t={prompt:this._prompt};if(this._options)t.options=this._options;if(this._model)t.model=this._model;if(this._description)t.description=this._description;return{score_type:e,threshold:this._threshold,name:this._name,kwargs:t}}}class p{client;isTrace;static cache=new Map;constructor(e,t){this.client=e,this.isTrace=t}async get(e){let t=this.getCacheKey(e),r=p.cache.get(t);if(r)return this.createFromModel(r,e);try{let o={names:[e]},i=await this.client.fetchScorers(o);if(i.scorers.length===0)throw Error(`Failed to fetch prompt scorer '${e}': not found`);let a=i.scorers[0],n=a.is_trace===!0;if(n!==this.isTrace){let E=this.isTrace?"TracePromptScorer":"PromptScorer";throw Error(`Scorer with name ${e} is a ${n?"TracePromptScorer":"PromptScorer"}, not a ${E}`)}return p.cache.set(t,a),this.createFromModel(a,e)}catch(o){if(o instanceof Error)throw o;throw Error(`Failed to fetch prompt scorer '${e}': ${o}`)}}create(e){if(!e.name)throw Error("Name is required");if(!e.prompt)throw Error("Prompt is required");return new P({...e,isTrace:this.isTrace})}createFromModel(e,t){let r;if(e.options&&typeof e.options==="object"){r={};for(let[o,i]of Object.entries(e.options))if(typeof i==="number")r[o]=i}return new P({name:t,prompt:e.prompt,threshold:e.threshold,options:r??{},model:e.model??W,description:e.description??"",isTrace:this.isTrace})}getCacheKey(e){return`${e}:${this.client.getApiKey()}:${this.client.getOrganizationId()}`}}class x{client;constructor(e){this.client=e}get promptScorer(){return new p(this.client,!1)}get tracePromptScorer(){return new p(this.client,!0)}get customScorer(){return new I}get builtIn(){return new v}}var K=require("@opentelemetry/resources"),F=require("@opentelemetry/sdk-trace-web");class s{static RESET="\x1B[0m";static RED="\x1B[31m";static YELLOW="\x1B[33m";static GRAY="\x1B[90m";static Level={DEBUG:0,INFO:1,WARNING:2,ERROR:3,CRITICAL:4};static initialized=!1;static currentLevel=s.Level.WARNING;static useColor=!0;static initialize(){if(!s.initialized){let e=process.env.JUDGMENT_NO_COLOR;s.useColor=!e&&process.stdout.isTTY;let t=V.toLowerCase();if(t){let r={debug:s.Level.DEBUG,info:s.Level.INFO,warning:s.Level.WARNING,warn:s.Level.WARNING,error:s.Level.ERROR,critical:s.Level.CRITICAL};s.currentLevel=r[t]??s.Level.WARNING}s.initialized=!0}}static setLevel(e){s.currentLevel=e}static setUseColor(e){s.useColor=e}static log(e,t){if(s.initialize(),e<s.currentLevel)return;let r=new Date().toISOString().replace("T"," ").substring(0,19),o=Object.keys(s.Level).find((n)=>s.Level[n]===e)??"UNKNOWN",i=`${r} - judgeval - ${o} - ${t}`;if(s.useColor)i=`${e===s.Level.DEBUG||e===s.Level.INFO?s.GRAY:e===s.Level.WARNING?s.YELLOW:s.RED}${i}${s.RESET}`;(e>=s.Level.ERROR?process.stderr:process.stdout).write(i+`
2
+ `)}static debug(e){s.log(s.Level.DEBUG,e)}static info(e){s.log(s.Level.INFO,e)}static warning(e){s.log(s.Level.WARNING,e)}static warn(e){s.log(s.Level.WARNING,e)}static error(e){s.log(s.Level.ERROR,e)}static critical(e){s.log(s.Level.CRITICAL,e)}}var X="0.7.2";var J=X;var d=require("@opentelemetry/api");var Z=require("@opentelemetry/exporter-trace-otlp-http");class N{delegate;constructor(e,t,r,o){this.delegate=new Z.OTLPTraceExporter({url:e,headers:{Authorization:`Bearer ${t}`,"X-Organization-Id":r,"X-Project-Id":o}})}export(e,t){s.info(`JudgmentSpanExporter: exporting ${e.length} spans`),this.delegate.export(e,t)}shutdown(){return this.delegate.shutdown()}forceFlush(){return this.delegate.forceFlush?.()??Promise.resolve()}}class R{export(e,t){t({code:0})}shutdown(){return Promise.resolve()}}class h{static TRACER_NAME="judgeval";projectName;enableEvaluation;apiClient;serializer;jsonEncoder;projectId;constructor(e,t,r,o,i=JSON.stringify){this.projectName=e,this.enableEvaluation=t,this.apiClient=r,this.serializer=o,this.jsonEncoder=i,this.projectId=null}async resolveAndSetProjectId(){try{this.projectId=await this.resolveProjectId(this.projectName),s.info(`Successfully resolved project ID: ${this.projectId}`)}catch{s.error(`Failed to resolve project ${this.projectName}, please create it first at https://app.judgmentlabs.ai/org/${this.apiClient.getOrganizationId()}/projects. Skipping Judgment export.`),this.projectId=null}}getSpanExporter(){if(this.projectId!==null)return this.createJudgmentSpanExporter(this.projectId);return s.error("Project not resolved; cannot create exporter, returning NoOpSpanExporter"),new R}getTracer(){return d.trace.getTracer(h.TRACER_NAME)}setSpanKind(e){if(!e)return;let t=d.trace.getActiveSpan();if(t)t.setAttribute("judgment.span_kind",e)}setAttribute(e,t){if(!this.isValidKey(e))return;if(t===null||t===void 0)return;let r=d.trace.getActiveSpan();if(r){let o=typeof t==="string"||typeof t==="number"||typeof t==="boolean"?t:this.serializer(t);r.setAttribute(e,o)}}setAttributes(e){for(let[t,r]of Object.entries(e))this.setAttribute(t,r)}setLLMSpan(){this.setSpanKind("llm")}setToolSpan(){this.setSpanKind("tool")}setGeneralSpan(){this.setSpanKind("span")}setInput(e){this.setAttribute("judgment.input",e)}setOutput(e){this.setAttribute("judgment.output",e)}asyncEvaluate(e,t){this.safeExecute("evaluate scorer",()=>{if(!this.enableEvaluation)return;let r=this.getSampledSpanContext();if(!r)return;let{traceId:o,spanId:i}=r;this.logEvaluationInfo("asyncEvaluate",o,i,e.getName());let a=this.createEvaluationRun(e,t,o,i);this.enqueueEvaluation(a).catch((n)=>{s.error(`Failed to enqueue evaluation run: ${n}`)})})}asyncTraceEvaluate(e){this.safeExecute("evaluate trace scorer",()=>{if(!this.enableEvaluation)return;let t=this.getSampledSpan();if(!t)return;let r=t.spanContext(),o=r.traceId,i=r.spanId;this.logEvaluationInfo("asyncTraceEvaluate",o,i,e.getName());let a=this.createTraceEvaluationRun(e,o,i);try{let n=JSON.stringify(a);t.setAttribute("judgment.pending_trace_eval",n)}catch(n){s.error(`Failed to serialize trace evaluation: ${n}`)}})}span(e,t,r,o){return this.getTracer().startActiveSpan(e,r??{},o??d.context.active(),(a)=>{try{return t()}catch(n){throw a.setStatus({code:d.SpanStatusCode.ERROR}),a.recordException(n),n}finally{a.end()}})}observe(e,t="span",r,o,i){let a=this.getTracer(),n=r??e.name;return(...E)=>{return a.startActiveSpan(n,o??{},i??d.context.active(),(c)=>{if(t)c.setAttribute("judgment.span_kind",t);try{let G=this.formatInputs(e,E);c.setAttribute("judgment.input",this.serializer(G));let b=e(...E);if(b instanceof Promise)return b.then((w)=>{return c.setAttribute("judgment.output",this.serializer(w)),w}).catch((w)=>{throw c.recordException(w),c.setStatus({code:d.SpanStatusCode.ERROR,message:String(w)}),w}).finally(()=>{c.end()});return c.setAttribute("judgment.output",this.serializer(b)),c.end(),b}catch(G){throw c.recordException(G),c.setStatus({code:d.SpanStatusCode.ERROR,message:String(G)}),c.end(),G}})}}async resolveProjectId(e){try{s.info(`Resolving project ID for project: ${e}`);let t={project_name:e},o=(await this.apiClient.projectsResolve(t)).project_id;if(!o)throw Error(`Project ID not found for project: ${e}`);return s.info(`Resolved project ID: ${o}`),o}catch(t){throw Error(`Failed to resolve project ID: ${t instanceof Error?t.message:String(t)}`)}}buildEndpoint(e){return e.endsWith("/")?e+"otel/v1/traces":e+"/otel/v1/traces"}createJudgmentSpanExporter(e){return new N(this.buildEndpoint(this.apiClient.getBaseUrl()),this.apiClient.getApiKey(),this.apiClient.getOrganizationId(),e)}generateRunId(e,t){return e+(t??Date.now().toString())}createEvaluationRun(e,t,r,o){let i=this.generateRunId("async_evaluate_",o);return{project_name:this.projectName,eval_name:i,trace_id:r,trace_span_id:o,examples:[t.toModel()],judgment_scorers:[e.getScorerConfig()],custom_scorers:[]}}createTraceEvaluationRun(e,t,r){let o=this.generateRunId("async_trace_evaluate_",r);return{project_name:this.projectName,eval_name:o,trace_and_span_ids:[[t,r]],judgment_scorers:[e.getScorerConfig()],custom_scorers:[],is_offline:!1}}async enqueueEvaluation(e){try{await this.apiClient.addToRunEvalQueueExamples(e)}catch(t){s.error(`Failed to enqueue evaluation run: ${t}`)}}getSampledSpanContext(){let e=d.trace.getActiveSpan();if(!e)return null;let t=e.spanContext();if(!t.traceFlags||!(t.traceFlags&1))return null;return t}getSampledSpan(){let e=d.trace.getActiveSpan();if(!e)return null;let t=e.spanContext();if(!t.traceFlags||!(t.traceFlags&1))return null;return e}logEvaluationInfo(e,t,r,o){s.info(`${e}: project=${this.projectName}, traceId=${t}, spanId=${r}, scorer=${o}`)}safeExecute(e,t){try{t()}catch(r){s.error(`Failed to ${e}: ${r}`)}}isValidKey(e){return e.length>0}formatInputs(e,t){try{let r=e.toString(),o=/\(([^)]*)\)/.exec(r),i=o?o[1].split(",").map((n)=>n.trim().split("=")[0].trim()).filter((n)=>n.length>0):[],a={};return i.forEach((n,E)=>{if(E<t.length)a[n]=t[E]}),a}catch{return{}}}}class M extends h{webTracerProvider=null;resourceAttributes;constructor(e,t,r,o,i){super(e,t,r,o);this.resourceAttributes=i}static async create(e,t){let r=new M(e.projectName,e.enableEvaluation,t,e.serializer,e.resourceAttributes);if(await r.resolveAndSetProjectId(),e.initialize)await r.initialize();return r}async initialize(){if(this.webTracerProvider!==null){s.warn("BrowserTracer already initialized");return}try{let e={"service.name":this.projectName,"telemetry.sdk.version":J,...this.resourceAttributes},t=this.getSpanExporter();this.webTracerProvider=new F.WebTracerProvider({resource:K.resourceFromAttributes(e),spanProcessors:[new F.BatchSpanProcessor(t)]}),this.webTracerProvider.register(),s.info("BrowserTracer initialized successfully")}catch(e){throw Error(`Failed to initialize BrowserTracer: ${e instanceof Error?e.message:String(e)}`)}}async shutdown(){if(!this.webTracerProvider){s.warn("BrowserTracer not initialized, skipping shutdown");return}try{await this.webTracerProvider.shutdown(),this.webTracerProvider=null,s.info("BrowserTracer shut down successfully")}catch(e){s.error(`Failed to shutdown BrowserTracer: ${e}`)}}}class D{client;constructor(e){this.client=e}async create(e){if(!e.projectName)throw Error("Project name is required");return M.create({projectName:e.projectName,enableEvaluation:e.enableEvaluation??!0,enableMonitoring:e.enableMonitoring??!1,serializer:e.serializer??JSON.stringify,resourceAttributes:e.resourceAttributes??{},initialize:e.initialize??!0},this.client)}}var ee=require("@opentelemetry/resources"),te=require("@opentelemetry/sdk-node");class A extends h{nodeSDK=null;resourceAttributes;instrumentations;constructor(e,t,r,o,i,a){super(e,t,r,o);this.resourceAttributes=i,this.instrumentations=a}static async create(e,t){let r=new A(e.projectName,e.enableEvaluation,t,e.serializer,e.resourceAttributes,e.instrumentations);if(await r.resolveAndSetProjectId(),e.initialize)await r.initialize();return r}async initialize(){if(this.nodeSDK!==null){s.warn("NodeTracer already initialized");return}try{let e={"service.name":this.projectName,"telemetry.sdk.version":J,...this.resourceAttributes},t=this.getSpanExporter();this.nodeSDK=new te.NodeSDK({resource:ee.resourceFromAttributes(e),traceExporter:t,instrumentations:this.instrumentations}),this.nodeSDK.start(),s.info("NodeTracer initialized successfully")}catch(e){throw Error(`Failed to initialize NodeTracer: ${e instanceof Error?e.message:String(e)}`)}}async shutdown(){if(!this.nodeSDK){s.warn("NodeTracer not initialized, skipping shutdown");return}try{await this.nodeSDK.shutdown(),this.nodeSDK=null,s.info("NodeTracer shut down successfully")}catch(e){s.error(`Failed to shutdown NodeTracer: ${e}`)}}}class U{client;constructor(e){this.client=e}async create(e){if(!e.projectName)throw Error("Project name is required");return A.create({projectName:e.projectName,enableEvaluation:e.enableEvaluation??!0,enableMonitoring:e.enableMonitoring??!1,serializer:e.serializer??JSON.stringify,resourceAttributes:e.resourceAttributes??{},instrumentations:e.instrumentations??[],initialize:e.initialize??!0},this.client)}}class j{internalClient;constructor(e={}){let t=e.apiKey??Y,r=e.organizationId??z,o=e.apiUrl??B;if(!t)throw Error("API key is required");if(!r)throw Error("Organization ID is required");if(!o)throw Error("API URL is required");this.internalClient=new H(o,t,r)}static create(e={}){return new j(e)}get nodeTracer(){return new U(this.internalClient)}get browserTracer(){return new D(this.internalClient)}get scorers(){return new x(this.internalClient)}get evaluation(){return new y(this.internalClient)}}var re=require("crypto");class g{exampleId;createdAt;name;properties;constructor(e={}){this.exampleId=e.exampleId??re.randomUUID(),this.createdAt=e.createdAt??new Date().toISOString(),this.name=e.name??null,this.properties=e.properties??{}}static create(e){return new g({properties:e})}setProperty(e,t){return this.properties[e]=t,this}getProperty(e){return this.properties[e]}getProperties(){return{...this.properties}}toModel(){return{example_id:this.exampleId,created_at:this.createdAt,name:this.name??void 0,...this.properties}}}class L{name;threshold;success;score;reason;strictMode;evaluationModel;error;additionalMetadata;id;constructor(e={}){this.name=e.name??null,this.threshold=e.threshold??null,this.success=e.success??null,this.score=e.score??null,this.reason=e.reason??null,this.strictMode=e.strictMode??null,this.evaluationModel=e.evaluationModel??null,this.error=e.error??null,this.additionalMetadata=e.additionalMetadata??{},this.id=e.id??null}toModel(){let e={name:this.name??"",threshold:this.threshold??0,success:this.success??!1};if(this.score!==void 0&&this.score!==null)e.score=this.score;if(this.reason!==void 0&&this.reason!==null)e.reason=this.reason;if(this.strictMode!==void 0&&this.strictMode!==null)e.strict_mode=this.strictMode;if(this.evaluationModel!==void 0&&this.evaluationModel!==null)e.evaluation_model=this.evaluationModel;if(this.error!==void 0&&this.error!==null)e.error=this.error;if(this.additionalMetadata&&Object.keys(this.additionalMetadata).length>0)e.additional_metadata=this.additionalMetadata;if(this.id!==void 0&&this.id!==null)e.id=this.id;return e}}class k{success;scorersData;name;dataObject;traceId;runDuration;evaluationCost;constructor(e={}){this.success=e.success??null,this.scorersData=e.scorersData??[],this.name=e.name??null,this.dataObject=e.dataObject??null,this.traceId=e.traceId??null,this.runDuration=e.runDuration??null,this.evaluationCost=e.evaluationCost??null}toModel(){let e={success:this.success??!1,scorers_data:(this.scorersData??[]).map((t)=>t.toModel())};if(this.name!==void 0&&this.name!==null)e.name=this.name;if(this.dataObject!==void 0&&this.dataObject!==null)if(this.dataObject instanceof g)e.data_object=this.dataObject.toModel();else e.data_object=this.dataObject;if(this.traceId!==void 0&&this.traceId!==null)e.trace_id=this.traceId;if(this.runDuration!==void 0&&this.runDuration!==null)e.run_duration=this.runDuration;if(this.evaluationCost!==void 0&&this.evaluationCost!==null)e.evaluation_cost=this.evaluationCost;return e}}
3
3
 
4
- //# debugId=63157B1EE1DB60BE64756E2164756E21
4
+ //# debugId=2188B4CC461E0AD764756E2164756E21
5
5
  //# sourceMappingURL=index.cjs.map
@@ -33,6 +33,6 @@
33
33
  "import type {\n ScoringResult as APIScoringResult,\n OtelTraceSpan,\n} from \"../internal/api/models\";\nimport { Example } from \"./Example\";\nimport { ScorerData } from \"./ScorerData\";\n\nexport interface ScoringResultConfig {\n success?: boolean;\n scorersData?: ScorerData[];\n name?: string;\n dataObject?: OtelTraceSpan | Example;\n traceId?: string;\n runDuration?: number;\n evaluationCost?: number;\n}\n\nexport class ScoringResult {\n success?: boolean | null;\n scorersData?: ScorerData[];\n name?: string | null;\n dataObject?: OtelTraceSpan | Example | null;\n traceId?: string | null;\n runDuration?: number | null;\n evaluationCost?: number | null;\n\n constructor(config: ScoringResultConfig = {}) {\n this.success = config.success ?? null;\n this.scorersData = config.scorersData ?? [];\n this.name = config.name ?? null;\n this.dataObject = config.dataObject ?? null;\n this.traceId = config.traceId ?? null;\n this.runDuration = config.runDuration ?? null;\n this.evaluationCost = config.evaluationCost ?? null;\n }\n\n toModel(): APIScoringResult {\n const result: APIScoringResult = {\n success: this.success ?? false,\n scorers_data: (this.scorersData ?? []).map((s) => s.toModel()),\n };\n\n if (this.name !== undefined && this.name !== null) {\n result.name = this.name;\n }\n if (this.dataObject !== undefined && this.dataObject !== null) {\n if (this.dataObject instanceof Example) {\n result.data_object = this.dataObject.toModel();\n } else {\n result.data_object = this.dataObject;\n }\n }\n if (this.traceId !== undefined && this.traceId !== null) {\n result.trace_id = this.traceId;\n }\n if (this.runDuration !== undefined && this.runDuration !== null) {\n result.run_duration = this.runDuration;\n }\n if (this.evaluationCost !== undefined && this.evaluationCost !== null) {\n result.evaluation_cost = this.evaluationCost;\n }\n\n return result;\n }\n}\n"
34
34
  ],
35
35
  "mappings": "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",
36
- "debugId": "63157B1EE1DB60BE64756E2164756E21",
36
+ "debugId": "2188B4CC461E0AD764756E2164756E21",
37
37
  "names": []
38
38
  }
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- function l(e,t){let r=process.env[e];if(!r)return t??null;return r}var H=l("JUDGMENT_API_KEY"),q=l("JUDGMENT_ORG_ID"),Y=l("JUDGMENT_API_URL","https://api.judgmentlabs.ai"),ne=l("JUDGMENT_LLM_PROXY_URL","https://api.judgmentlabs.ai/llm/proxy/v1"),z=l("JUDGMENT_DEFAULT_GPT_MODEL","gpt-4.1"),ae=l("JUDGMENT_ENABLE_MONITORING","true"),le=l("JUDGMENT_ENABLE_EVALUATIONS","true"),de=l("JUDGMENT_NO_COLOR"),B=l("JUDGMENT_LOG_LEVEL","warn"),ce=l("OPENAI_API_KEY"),ue=l("ANTHROPIC_API_KEY"),me=l("GOOGLE_API_KEY"),pe=l("GEMINI_API_KEY");class j{baseUrl;apiKey;organizationId;constructor(e,t,r){this.baseUrl=e,this.apiKey=t,this.organizationId=r}getBaseUrl(){return this.baseUrl}getApiKey(){return this.apiKey}getOrganizationId(){return this.organizationId}buildUrl(e){return this.baseUrl+e}buildHeaders(){if(!this.apiKey||!this.organizationId)throw Error("API key and organization ID cannot be null");return{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`,"X-Organization-Id":this.organizationId}}async addToRunEvalQueueExamples(e){let t=this.buildUrl("/add_to_run_eval_queue/examples"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return}async addToRunEvalQueueTraces(e){let t=this.buildUrl("/add_to_run_eval_queue/traces"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return}async logEvalResults(e){let t=this.buildUrl("/log_eval_results/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async fetchExperimentRun(e){let t=this.buildUrl("/fetch_experiment_run/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async scorerExists(e){let t=this.buildUrl("/scorer_exists/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async saveScorer(e){let t=this.buildUrl("/save_scorer/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async fetchScorers(e){let t=this.buildUrl("/fetch_scorers/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async projectsResolve(e){let t=this.buildUrl("/projects/resolve/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}}class C{client;constructor(e){this.client=e.client}}class y{client;constructor(e){this.client=e}create(e={}){return new C({...e,client:this.client})}}var c={PROMPT_SCORER:"Prompt Scorer",TRACE_PROMPT_SCORER:"Trace Prompt Scorer",FAITHFULNESS:"Faithfulness",ANSWER_RELEVANCY:"Answer Relevancy",ANSWER_CORRECTNESS:"Answer Correctness",CUSTOM:"Custom"};class _{}class u extends _{scoreType;requiredParams;_threshold;_name;_strictMode;_model;additionalProperties;constructor(e){super();this.scoreType=e,this._name=e,this._threshold=0.5,this._strictMode=!1,this.requiredParams=[],this.additionalProperties={}}getName(){return this._name}getScoreType(){return this.scoreType}getThreshold(){return this._threshold}getStrictMode(){return this._strictMode}getModel(){return this._model}getRequiredParams(){return[...this.requiredParams]}setThreshold(e){if(e<0||e>1)throw Error(`Threshold must be between 0 and 1, got: ${e}`);if(this._threshold=e,this._strictMode)this._threshold=1}setName(e){this._name=e}setStrictMode(e){if(this._strictMode=e,e)this._threshold=1}setModel(e){this._model=e}setRequiredParams(e){this.requiredParams=[...e]}setAdditionalProperty(e,t){this.additionalProperties[e]=t}getAdditionalProperties(){return{...this.additionalProperties}}getScorerConfig(){let e={...this.additionalProperties};return{score_type:this.scoreType,threshold:this._threshold,name:this._name,strict_mode:this._strictMode,required_params:this.requiredParams,kwargs:e}}static builder(e){return new W(this,e)}}class W{scorer;constructor(e,t){this.scorer=new e(t)}threshold(e){return this.scorer.setThreshold(e),this}name(e){return this.scorer.setName(e),this}strictMode(e){return this.scorer.setStrictMode(e),this}requiredParams(e){return this.scorer.setRequiredParams(e),this}model(e){return this.scorer.setModel(e),this}additionalProperty(e,t){return this.scorer.setAdditionalProperty(e,t),this}build(){return this.scorer}}class S extends u{constructor(e={}){super(c.ANSWER_CORRECTNESS);if(this.setRequiredParams(["input","actual_output","expected_output"]),e.threshold!==void 0)this.setThreshold(e.threshold);if(e.name)this.setName(e.name);if(e.strictMode!==void 0)this.setStrictMode(e.strictMode);if(e.model)this.setModel(e.model)}}class T extends u{constructor(e={}){super(c.ANSWER_RELEVANCY);if(this.setRequiredParams(["input","actual_output"]),e.threshold!==void 0)this.setThreshold(e.threshold);if(e.name)this.setName(e.name);if(e.strictMode!==void 0)this.setStrictMode(e.strictMode);if(e.model)this.setModel(e.model)}}class f extends u{constructor(e={}){super(c.FAITHFULNESS);if(this.setRequiredParams(["context","actual_output"]),e.threshold!==void 0)this.setThreshold(e.threshold);if(e.name)this.setName(e.name);if(e.strictMode!==void 0)this.setStrictMode(e.strictMode);if(e.model)this.setModel(e.model)}}class v{answerCorrectness(e={}){return new S(e)}answerRelevancy(e={}){return new T(e)}faithfulness(e={}){return new f(e)}}class O extends u{_className;_serverHosted;constructor(e){super(c.CUSTOM);if(this.setName(e.name),e.className)this._className=e.className,this.setAdditionalProperty("class_name",e.className);this._serverHosted=e.serverHosted??!0,this.setAdditionalProperty("server_hosted",this._serverHosted)}getClassName(){return this._className}isServerHosted(){return this._serverHosted}getScorerConfig(){throw Error("CustomScorer does not use ScorerConfig")}}class I{get(e,t){return new O({name:e,className:t??e,serverHosted:!0})}}class P extends _{_name;_prompt;_threshold;_options;_model;_description;isTrace;constructor(e){super();this._name=e.name,this._prompt=e.prompt,this._threshold=e.threshold,this._options={...e.options},this._model=e.model,this._description=e.description,this.isTrace=e.isTrace??!1}getName(){return this._name}getPrompt(){return this._prompt}getThreshold(){return this._threshold}getOptions(){return this._options?{...this._options}:void 0}getModel(){return this._model}getDescription(){return this._description}setThreshold(e){this._threshold=e}setPrompt(e){this._prompt=e}setModel(e){this._model=e}setOptions(e){this._options={...e}}setDescription(e){this._description=e}appendToPrompt(e){this._prompt=this._prompt+e}getScorerConfig(){let e=this.isTrace?c.TRACE_PROMPT_SCORER:c.PROMPT_SCORER,t={prompt:this._prompt};if(this._options)t.options=this._options;if(this._model)t.model=this._model;if(this._description)t.description=this._description;return{score_type:e,threshold:this._threshold,name:this._name,kwargs:t}}}class m{client;isTrace;static cache=new Map;constructor(e,t){this.client=e,this.isTrace=t}async get(e){let t=this.getCacheKey(e),r=m.cache.get(t);if(r)return this.createFromModel(r,e);try{let o={names:[e]},i=await this.client.fetchScorers(o);if(i.scorers.length===0)throw Error(`Failed to fetch prompt scorer '${e}': not found`);let a=i.scorers[0],n=a.is_trace===!0;if(n!==this.isTrace){let h=this.isTrace?"TracePromptScorer":"PromptScorer";throw Error(`Scorer with name ${e} is a ${n?"TracePromptScorer":"PromptScorer"}, not a ${h}`)}return m.cache.set(t,a),this.createFromModel(a,e)}catch(o){if(o instanceof Error)throw o;throw Error(`Failed to fetch prompt scorer '${e}': ${o}`)}}create(e){if(!e.name)throw Error("Name is required");if(!e.prompt)throw Error("Prompt is required");return new P({...e,isTrace:this.isTrace})}createFromModel(e,t){let r;if(e.options&&typeof e.options==="object"){r={};for(let[o,i]of Object.entries(e.options))if(typeof i==="number")r[o]=i}return new P({name:t,prompt:e.prompt,threshold:e.threshold,options:r??{},model:e.model??z,description:e.description??"",isTrace:this.isTrace})}getCacheKey(e){return`${e}:${this.client.getApiKey()}:${this.client.getOrganizationId()}`}}class b{client;constructor(e){this.client=e}get promptScorer(){return new m(this.client,!1)}get tracePromptScorer(){return new m(this.client,!0)}get customScorer(){return new I}get builtIn(){return new v}}import{resourceFromAttributes as ee}from"@opentelemetry/resources";import{BatchSpanProcessor as te,WebTracerProvider as re}from"@opentelemetry/sdk-trace-web";class s{static RESET="\x1B[0m";static RED="\x1B[31m";static YELLOW="\x1B[33m";static GRAY="\x1B[90m";static Level={DEBUG:0,INFO:1,WARNING:2,ERROR:3,CRITICAL:4};static initialized=!1;static currentLevel=s.Level.WARNING;static useColor=!0;static initialize(){if(!s.initialized){let e=process.env.JUDGMENT_NO_COLOR;s.useColor=!e&&process.stdout.isTTY;let t=B.toLowerCase();if(t){let r={debug:s.Level.DEBUG,info:s.Level.INFO,warning:s.Level.WARNING,warn:s.Level.WARNING,error:s.Level.ERROR,critical:s.Level.CRITICAL};s.currentLevel=r[t]??s.Level.WARNING}s.initialized=!0}}static setLevel(e){s.currentLevel=e}static setUseColor(e){s.useColor=e}static log(e,t){if(s.initialize(),e<s.currentLevel)return;let r=new Date().toISOString().replace("T"," ").substring(0,19),o=Object.keys(s.Level).find((n)=>s.Level[n]===e)??"UNKNOWN",i=`${r} - judgeval - ${o} - ${t}`;if(s.useColor)i=`${e===s.Level.DEBUG||e===s.Level.INFO?s.GRAY:e===s.Level.WARNING?s.YELLOW:s.RED}${i}${s.RESET}`;(e>=s.Level.ERROR?process.stderr:process.stdout).write(i+`
2
- `)}static debug(e){s.log(s.Level.DEBUG,e)}static info(e){s.log(s.Level.INFO,e)}static warning(e){s.log(s.Level.WARNING,e)}static warn(e){s.log(s.Level.WARNING,e)}static error(e){s.log(s.Level.ERROR,e)}static critical(e){s.log(s.Level.CRITICAL,e)}}var V="0.7.1";var J=V;import{context as Q,SpanStatusCode as F,trace as x}from"@opentelemetry/api";import{OTLPTraceExporter as Z}from"@opentelemetry/exporter-trace-otlp-http";class N{delegate;constructor(e,t,r,o){this.delegate=new Z({url:e,headers:{Authorization:`Bearer ${t}`,"X-Organization-Id":r,"X-Project-Id":o}})}export(e,t){s.info(`JudgmentSpanExporter: exporting ${e.length} spans`),this.delegate.export(e,t)}shutdown(){return this.delegate.shutdown()}forceFlush(){return this.delegate.forceFlush?.()??Promise.resolve()}}class R{export(e,t){t({code:0})}shutdown(){return Promise.resolve()}}class p{static TRACER_NAME="judgeval";projectName;enableEvaluation;apiClient;serializer;jsonEncoder;projectId;constructor(e,t,r,o,i=JSON.stringify){this.projectName=e,this.enableEvaluation=t,this.apiClient=r,this.serializer=o,this.jsonEncoder=i,this.projectId=null}async resolveAndSetProjectId(){try{this.projectId=await this.resolveProjectId(this.projectName),s.info(`Successfully resolved project ID: ${this.projectId}`)}catch{s.error(`Failed to resolve project ${this.projectName}, please create it first at https://app.judgmentlabs.ai/org/${this.apiClient.getOrganizationId()}/projects. Skipping Judgment export.`),this.projectId=null}}getSpanExporter(){if(this.projectId!==null)return this.createJudgmentSpanExporter(this.projectId);return s.error("Project not resolved; cannot create exporter, returning NoOpSpanExporter"),new R}getTracer(){return x.getTracer(p.TRACER_NAME)}setSpanKind(e){if(!e)return;let t=x.getActiveSpan();if(t)t.setAttribute("judgment.span_kind",e)}setAttribute(e,t){if(!this.isValidKey(e))return;if(t===null||t===void 0)return;let r=x.getActiveSpan();if(r){let o=typeof t==="string"||typeof t==="number"||typeof t==="boolean"?t:this.serializer(t);r.setAttribute(e,o)}}setAttributes(e){for(let[t,r]of Object.entries(e))this.setAttribute(t,r)}setLLMSpan(){this.setSpanKind("llm")}setToolSpan(){this.setSpanKind("tool")}setGeneralSpan(){this.setSpanKind("span")}setInput(e){this.setAttribute("judgment.input",e)}setOutput(e){this.setAttribute("judgment.output",e)}asyncEvaluate(e,t){this.safeExecute("evaluate scorer",()=>{if(!this.enableEvaluation)return;let r=this.getSampledSpanContext();if(!r)return;let{traceId:o,spanId:i}=r;this.logEvaluationInfo("asyncEvaluate",o,i,e.getName());let a=this.createEvaluationRun(e,t,o,i);this.enqueueEvaluation(a).catch((n)=>{s.error(`Failed to enqueue evaluation run: ${n}`)})})}asyncTraceEvaluate(e){this.safeExecute("evaluate trace scorer",()=>{if(!this.enableEvaluation)return;let t=this.getSampledSpan();if(!t)return;let r=t.spanContext(),o=r.traceId,i=r.spanId;this.logEvaluationInfo("asyncTraceEvaluate",o,i,e.getName());let a=this.createTraceEvaluationRun(e,o,i);try{let n=JSON.stringify(a);t.setAttribute("judgment.pending_trace_eval",n)}catch(n){s.error(`Failed to serialize trace evaluation: ${n}`)}})}span(e,t,r,o){return this.getTracer().startActiveSpan(e,r??{},o??Q.active(),(a)=>{try{return t()}catch(n){throw a.setStatus({code:F.ERROR}),a.recordException(n),n}finally{a.end()}})}observe(e,t="span",r,o,i){let a=this.getTracer(),n=r??e.name;return(...h)=>{return a.startActiveSpan(n,o??{},i??Q.active(),(d)=>{if(t)d.setAttribute("judgment.span_kind",t);try{let w=this.formatInputs(e,h);d.setAttribute("judgment.input",this.serializer(w));let G=e(...h);if(G instanceof Promise)return G.then((E)=>{return d.setAttribute("judgment.output",this.serializer(E)),E}).catch((E)=>{throw d.recordException(E),d.setStatus({code:F.ERROR,message:String(E)}),E}).finally(()=>{d.end()});return d.setAttribute("judgment.output",this.serializer(G)),d.end(),G}catch(w){throw d.recordException(w),d.setStatus({code:F.ERROR,message:String(w)}),d.end(),w}})}}async resolveProjectId(e){try{s.info(`Resolving project ID for project: ${e}`);let t={project_name:e},o=(await this.apiClient.projectsResolve(t)).project_id;if(!o)throw Error(`Project ID not found for project: ${e}`);return s.info(`Resolved project ID: ${o}`),o}catch(t){throw Error(`Failed to resolve project ID: ${t instanceof Error?t.message:String(t)}`)}}buildEndpoint(e){return e.endsWith("/")?e+"otel/v1/traces":e+"/otel/v1/traces"}createJudgmentSpanExporter(e){return new N(this.buildEndpoint(this.apiClient.getBaseUrl()),this.apiClient.getApiKey(),this.apiClient.getOrganizationId(),e)}generateRunId(e,t){return e+(t??Date.now().toString())}createEvaluationRun(e,t,r,o){let i=this.generateRunId("async_evaluate_",o);return{project_name:this.projectName,eval_name:i,trace_id:r,trace_span_id:o,examples:[t.toModel()],judgment_scorers:[e.getScorerConfig()],custom_scorers:[]}}createTraceEvaluationRun(e,t,r){let o=this.generateRunId("async_trace_evaluate_",r);return{project_name:this.projectName,eval_name:o,trace_and_span_ids:[[t,r]],judgment_scorers:[e.getScorerConfig()],custom_scorers:[],is_offline:!1}}async enqueueEvaluation(e){try{await this.apiClient.addToRunEvalQueueExamples(e)}catch(t){s.error(`Failed to enqueue evaluation run: ${t}`)}}getSampledSpanContext(){let e=x.getActiveSpan();if(!e)return null;let t=e.spanContext();if(!t.traceFlags||!(t.traceFlags&1))return null;return t}getSampledSpan(){let e=x.getActiveSpan();if(!e)return null;let t=e.spanContext();if(!t.traceFlags||!(t.traceFlags&1))return null;return e}logEvaluationInfo(e,t,r,o){s.info(`${e}: project=${this.projectName}, traceId=${t}, spanId=${r}, scorer=${o}`)}safeExecute(e,t){try{t()}catch(r){s.error(`Failed to ${e}: ${r}`)}}isValidKey(e){return e.length>0}formatInputs(e,t){try{let r=e.toString(),o=/\(([^)]*)\)/.exec(r),i=o?o[1].split(",").map((n)=>n.trim().split("=")[0].trim()).filter((n)=>n.length>0):[],a={};return i.forEach((n,h)=>{if(h<t.length)a[n]=t[h]}),a}catch{return{}}}}class M extends p{webTracerProvider=null;resourceAttributes;constructor(e,t,r,o,i){super(e,t,r,o);this.resourceAttributes=i}static async create(e,t){let r=new M(e.projectName,e.enableEvaluation,t,e.serializer,e.resourceAttributes);if(await r.resolveAndSetProjectId(),e.initialize)await r.initialize();return r}async initialize(){if(this.webTracerProvider!==null){s.warn("BrowserTracer already initialized");return}try{let e={"service.name":this.projectName,"telemetry.sdk.version":J,...this.resourceAttributes},t=this.getSpanExporter();this.webTracerProvider=new re({resource:ee(e),spanProcessors:[new te(t)]}),this.webTracerProvider.register(),s.info("BrowserTracer initialized successfully")}catch(e){throw Error(`Failed to initialize BrowserTracer: ${e instanceof Error?e.message:String(e)}`)}}async shutdown(){if(!this.webTracerProvider){s.warn("BrowserTracer not initialized, skipping shutdown");return}try{await this.webTracerProvider.shutdown(),this.webTracerProvider=null,s.info("BrowserTracer shut down successfully")}catch(e){s.error(`Failed to shutdown BrowserTracer: ${e}`)}}}class D{client;constructor(e){this.client=e}async create(e){if(!e.projectName)throw Error("Project name is required");return M.create({projectName:e.projectName,enableEvaluation:e.enableEvaluation??!0,enableMonitoring:e.enableMonitoring??!1,serializer:e.serializer??JSON.stringify,resourceAttributes:e.resourceAttributes??{},initialize:e.initialize??!0},this.client)}}import{resourceFromAttributes as se}from"@opentelemetry/resources";import{NodeSDK as oe}from"@opentelemetry/sdk-node";class A extends p{nodeSDK=null;resourceAttributes;instrumentations;constructor(e,t,r,o,i,a){super(e,t,r,o);this.resourceAttributes=i,this.instrumentations=a}static async create(e,t){let r=new A(e.projectName,e.enableEvaluation,t,e.serializer,e.resourceAttributes,e.instrumentations);if(await r.resolveAndSetProjectId(),e.initialize)await r.initialize();return r}async initialize(){if(this.nodeSDK!==null){s.warn("NodeTracer already initialized");return}try{let e={"service.name":this.projectName,"telemetry.sdk.version":J,...this.resourceAttributes},t=this.getSpanExporter();this.nodeSDK=new oe({resource:se(e),traceExporter:t,instrumentations:this.instrumentations}),this.nodeSDK.start(),s.info("NodeTracer initialized successfully")}catch(e){throw Error(`Failed to initialize NodeTracer: ${e instanceof Error?e.message:String(e)}`)}}async shutdown(){if(!this.nodeSDK){s.warn("NodeTracer not initialized, skipping shutdown");return}try{await this.nodeSDK.shutdown(),this.nodeSDK=null,s.info("NodeTracer shut down successfully")}catch(e){s.error(`Failed to shutdown NodeTracer: ${e}`)}}}class U{client;constructor(e){this.client=e}async create(e){if(!e.projectName)throw Error("Project name is required");return A.create({projectName:e.projectName,enableEvaluation:e.enableEvaluation??!0,enableMonitoring:e.enableMonitoring??!1,serializer:e.serializer??JSON.stringify,resourceAttributes:e.resourceAttributes??{},instrumentations:e.instrumentations??[],initialize:e.initialize??!0},this.client)}}class L{internalClient;constructor(e={}){let t=e.apiKey??H,r=e.organizationId??q,o=e.apiUrl??Y;if(!t)throw Error("API key is required");if(!r)throw Error("Organization ID is required");if(!o)throw Error("API URL is required");this.internalClient=new j(o,t,r)}static create(e={}){return new L(e)}get nodeTracer(){return new U(this.internalClient)}get browserTracer(){return new D(this.internalClient)}get scorers(){return new b(this.internalClient)}get evaluation(){return new y(this.internalClient)}}import{randomUUID as ie}from"crypto";class g{exampleId;createdAt;name;properties;constructor(e={}){this.exampleId=e.exampleId??ie(),this.createdAt=e.createdAt??new Date().toISOString(),this.name=e.name??null,this.properties=e.properties??{}}static create(e){return new g({properties:e})}setProperty(e,t){return this.properties[e]=t,this}getProperty(e){return this.properties[e]}getProperties(){return{...this.properties}}toModel(){return{example_id:this.exampleId,created_at:this.createdAt,name:this.name??void 0,...this.properties}}}class k{name;threshold;success;score;reason;strictMode;evaluationModel;error;additionalMetadata;id;constructor(e={}){this.name=e.name??null,this.threshold=e.threshold??null,this.success=e.success??null,this.score=e.score??null,this.reason=e.reason??null,this.strictMode=e.strictMode??null,this.evaluationModel=e.evaluationModel??null,this.error=e.error??null,this.additionalMetadata=e.additionalMetadata??{},this.id=e.id??null}toModel(){let e={name:this.name??"",threshold:this.threshold??0,success:this.success??!1};if(this.score!==void 0&&this.score!==null)e.score=this.score;if(this.reason!==void 0&&this.reason!==null)e.reason=this.reason;if(this.strictMode!==void 0&&this.strictMode!==null)e.strict_mode=this.strictMode;if(this.evaluationModel!==void 0&&this.evaluationModel!==null)e.evaluation_model=this.evaluationModel;if(this.error!==void 0&&this.error!==null)e.error=this.error;if(this.additionalMetadata&&Object.keys(this.additionalMetadata).length>0)e.additional_metadata=this.additionalMetadata;if(this.id!==void 0&&this.id!==null)e.id=this.id;return e}}class ${success;scorersData;name;dataObject;traceId;runDuration;evaluationCost;constructor(e={}){this.success=e.success??null,this.scorersData=e.scorersData??[],this.name=e.name??null,this.dataObject=e.dataObject??null,this.traceId=e.traceId??null,this.runDuration=e.runDuration??null,this.evaluationCost=e.evaluationCost??null}toModel(){let e={success:this.success??!1,scorers_data:(this.scorersData??[]).map((t)=>t.toModel())};if(this.name!==void 0&&this.name!==null)e.name=this.name;if(this.dataObject!==void 0&&this.dataObject!==null)if(this.dataObject instanceof g)e.data_object=this.dataObject.toModel();else e.data_object=this.dataObject;if(this.traceId!==void 0&&this.traceId!==null)e.trace_id=this.traceId;if(this.runDuration!==void 0&&this.runDuration!==null)e.run_duration=this.runDuration;if(this.evaluationCost!==void 0&&this.evaluationCost!==null)e.evaluation_cost=this.evaluationCost;return e}}export{$ as ScoringResult,b as ScorersFactory,k as ScorerData,m as PromptScorerFactory,P as PromptScorer,U as NodeTracerFactory,A as NodeTracer,R as NoOpSpanExporter,N as JudgmentSpanExporter,L as Judgeval,f as FaithfulnessScorer,g as Example,y as EvaluationFactory,C as Evaluation,I as CustomScorerFactory,O as CustomScorer,v as BuiltInScorersFactory,D as BrowserTracerFactory,M as BrowserTracer,p as BaseTracer,_ as BaseScorer,T as AnswerRelevancyScorer,S as AnswerCorrectnessScorer,u as APIScorer};
1
+ function l(e,t){let r=process.env[e];if(!r)return t??null;return r}var H=l("JUDGMENT_API_KEY"),q=l("JUDGMENT_ORG_ID"),Y=l("JUDGMENT_API_URL","https://api.judgmentlabs.ai"),ne=l("JUDGMENT_LLM_PROXY_URL","https://api.judgmentlabs.ai/llm/proxy/v1"),z=l("JUDGMENT_DEFAULT_GPT_MODEL","gpt-4.1"),ae=l("JUDGMENT_ENABLE_MONITORING","true"),le=l("JUDGMENT_ENABLE_EVALUATIONS","true"),de=l("JUDGMENT_NO_COLOR"),B=l("JUDGMENT_LOG_LEVEL","warn"),ce=l("OPENAI_API_KEY"),ue=l("ANTHROPIC_API_KEY"),me=l("GOOGLE_API_KEY"),pe=l("GEMINI_API_KEY");class F{baseUrl;apiKey;organizationId;constructor(e,t,r){this.baseUrl=e,this.apiKey=t,this.organizationId=r}getBaseUrl(){return this.baseUrl}getApiKey(){return this.apiKey}getOrganizationId(){return this.organizationId}buildUrl(e){return this.baseUrl+e}buildHeaders(){if(!this.apiKey||!this.organizationId)throw Error("API key and organization ID cannot be null");return{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`,"X-Organization-Id":this.organizationId}}async addToRunEvalQueueExamples(e){let t=this.buildUrl("/add_to_run_eval_queue/examples"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return}async addToRunEvalQueueTraces(e){let t=this.buildUrl("/add_to_run_eval_queue/traces"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return}async logEvalResults(e){let t=this.buildUrl("/log_eval_results/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async fetchExperimentRun(e){let t=this.buildUrl("/fetch_experiment_run/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async scorerExists(e){let t=this.buildUrl("/scorer_exists/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async saveScorer(e){let t=this.buildUrl("/save_scorer/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async fetchScorers(e){let t=this.buildUrl("/fetch_scorers/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}async projectsResolve(e){let t=this.buildUrl("/projects/resolve/"),r=await fetch(t,{method:"POST",headers:this.buildHeaders(),body:JSON.stringify(e)});if(!r.ok)throw Error(`HTTP Error: ${r.status} - ${await r.text()}`);return await r.json()}}class C{client;constructor(e){this.client=e.client}}class y{client;constructor(e){this.client=e}create(e={}){return new C({...e,client:this.client})}}var c={PROMPT_SCORER:"Prompt Scorer",TRACE_PROMPT_SCORER:"Trace Prompt Scorer",FAITHFULNESS:"Faithfulness",ANSWER_RELEVANCY:"Answer Relevancy",ANSWER_CORRECTNESS:"Answer Correctness",CUSTOM:"Custom"};class _{}class u extends _{scoreType;requiredParams;_threshold;_name;_strictMode;_model;additionalProperties;constructor(e){super();this.scoreType=e,this._name=e,this._threshold=0.5,this._strictMode=!1,this.requiredParams=[],this.additionalProperties={}}getName(){return this._name}getScoreType(){return this.scoreType}getThreshold(){return this._threshold}getStrictMode(){return this._strictMode}getModel(){return this._model}getRequiredParams(){return[...this.requiredParams]}setThreshold(e){if(e<0||e>1)throw Error(`Threshold must be between 0 and 1, got: ${e}`);if(this._threshold=e,this._strictMode)this._threshold=1}setName(e){this._name=e}setStrictMode(e){if(this._strictMode=e,e)this._threshold=1}setModel(e){this._model=e}setRequiredParams(e){this.requiredParams=[...e]}setAdditionalProperty(e,t){this.additionalProperties[e]=t}getAdditionalProperties(){return{...this.additionalProperties}}getScorerConfig(){let e={...this.additionalProperties};return{score_type:this.scoreType,threshold:this._threshold,name:this._name,strict_mode:this._strictMode,required_params:this.requiredParams,kwargs:e}}static builder(e){return new W(this,e)}}class W{scorer;constructor(e,t){this.scorer=new e(t)}threshold(e){return this.scorer.setThreshold(e),this}name(e){return this.scorer.setName(e),this}strictMode(e){return this.scorer.setStrictMode(e),this}requiredParams(e){return this.scorer.setRequiredParams(e),this}model(e){return this.scorer.setModel(e),this}additionalProperty(e,t){return this.scorer.setAdditionalProperty(e,t),this}build(){return this.scorer}}class S extends u{constructor(e={}){super(c.ANSWER_CORRECTNESS);if(this.setRequiredParams(["input","actual_output","expected_output"]),e.threshold!==void 0)this.setThreshold(e.threshold);if(e.name)this.setName(e.name);if(e.strictMode!==void 0)this.setStrictMode(e.strictMode);if(e.model)this.setModel(e.model)}}class T extends u{constructor(e={}){super(c.ANSWER_RELEVANCY);if(this.setRequiredParams(["input","actual_output"]),e.threshold!==void 0)this.setThreshold(e.threshold);if(e.name)this.setName(e.name);if(e.strictMode!==void 0)this.setStrictMode(e.strictMode);if(e.model)this.setModel(e.model)}}class f extends u{constructor(e={}){super(c.FAITHFULNESS);if(this.setRequiredParams(["context","actual_output"]),e.threshold!==void 0)this.setThreshold(e.threshold);if(e.name)this.setName(e.name);if(e.strictMode!==void 0)this.setStrictMode(e.strictMode);if(e.model)this.setModel(e.model)}}class v{answerCorrectness(e={}){return new S(e)}answerRelevancy(e={}){return new T(e)}faithfulness(e={}){return new f(e)}}class O extends u{_className;_serverHosted;constructor(e){super(c.CUSTOM);if(this.setName(e.name),e.className)this._className=e.className,this.setAdditionalProperty("class_name",e.className);this._serverHosted=e.serverHosted??!0,this.setAdditionalProperty("server_hosted",this._serverHosted)}getClassName(){return this._className}isServerHosted(){return this._serverHosted}getScorerConfig(){throw Error("CustomScorer does not use ScorerConfig")}}class I{get(e,t){return new O({name:e,className:t??e,serverHosted:!0})}}class P extends _{_name;_prompt;_threshold;_options;_model;_description;isTrace;constructor(e){super();this._name=e.name,this._prompt=e.prompt,this._threshold=e.threshold,this._options={...e.options},this._model=e.model,this._description=e.description,this.isTrace=e.isTrace??!1}getName(){return this._name}getPrompt(){return this._prompt}getThreshold(){return this._threshold}getOptions(){return this._options?{...this._options}:void 0}getModel(){return this._model}getDescription(){return this._description}setThreshold(e){this._threshold=e}setPrompt(e){this._prompt=e}setModel(e){this._model=e}setOptions(e){this._options={...e}}setDescription(e){this._description=e}appendToPrompt(e){this._prompt=this._prompt+e}getScorerConfig(){let e=this.isTrace?c.TRACE_PROMPT_SCORER:c.PROMPT_SCORER,t={prompt:this._prompt};if(this._options)t.options=this._options;if(this._model)t.model=this._model;if(this._description)t.description=this._description;return{score_type:e,threshold:this._threshold,name:this._name,kwargs:t}}}class m{client;isTrace;static cache=new Map;constructor(e,t){this.client=e,this.isTrace=t}async get(e){let t=this.getCacheKey(e),r=m.cache.get(t);if(r)return this.createFromModel(r,e);try{let o={names:[e]},i=await this.client.fetchScorers(o);if(i.scorers.length===0)throw Error(`Failed to fetch prompt scorer '${e}': not found`);let a=i.scorers[0],n=a.is_trace===!0;if(n!==this.isTrace){let h=this.isTrace?"TracePromptScorer":"PromptScorer";throw Error(`Scorer with name ${e} is a ${n?"TracePromptScorer":"PromptScorer"}, not a ${h}`)}return m.cache.set(t,a),this.createFromModel(a,e)}catch(o){if(o instanceof Error)throw o;throw Error(`Failed to fetch prompt scorer '${e}': ${o}`)}}create(e){if(!e.name)throw Error("Name is required");if(!e.prompt)throw Error("Prompt is required");return new P({...e,isTrace:this.isTrace})}createFromModel(e,t){let r;if(e.options&&typeof e.options==="object"){r={};for(let[o,i]of Object.entries(e.options))if(typeof i==="number")r[o]=i}return new P({name:t,prompt:e.prompt,threshold:e.threshold,options:r??{},model:e.model??z,description:e.description??"",isTrace:this.isTrace})}getCacheKey(e){return`${e}:${this.client.getApiKey()}:${this.client.getOrganizationId()}`}}class x{client;constructor(e){this.client=e}get promptScorer(){return new m(this.client,!1)}get tracePromptScorer(){return new m(this.client,!0)}get customScorer(){return new I}get builtIn(){return new v}}import{resourceFromAttributes as ee}from"@opentelemetry/resources";import{BatchSpanProcessor as te,WebTracerProvider as re}from"@opentelemetry/sdk-trace-web";class s{static RESET="\x1B[0m";static RED="\x1B[31m";static YELLOW="\x1B[33m";static GRAY="\x1B[90m";static Level={DEBUG:0,INFO:1,WARNING:2,ERROR:3,CRITICAL:4};static initialized=!1;static currentLevel=s.Level.WARNING;static useColor=!0;static initialize(){if(!s.initialized){let e=process.env.JUDGMENT_NO_COLOR;s.useColor=!e&&process.stdout.isTTY;let t=B.toLowerCase();if(t){let r={debug:s.Level.DEBUG,info:s.Level.INFO,warning:s.Level.WARNING,warn:s.Level.WARNING,error:s.Level.ERROR,critical:s.Level.CRITICAL};s.currentLevel=r[t]??s.Level.WARNING}s.initialized=!0}}static setLevel(e){s.currentLevel=e}static setUseColor(e){s.useColor=e}static log(e,t){if(s.initialize(),e<s.currentLevel)return;let r=new Date().toISOString().replace("T"," ").substring(0,19),o=Object.keys(s.Level).find((n)=>s.Level[n]===e)??"UNKNOWN",i=`${r} - judgeval - ${o} - ${t}`;if(s.useColor)i=`${e===s.Level.DEBUG||e===s.Level.INFO?s.GRAY:e===s.Level.WARNING?s.YELLOW:s.RED}${i}${s.RESET}`;(e>=s.Level.ERROR?process.stderr:process.stdout).write(i+`
2
+ `)}static debug(e){s.log(s.Level.DEBUG,e)}static info(e){s.log(s.Level.INFO,e)}static warning(e){s.log(s.Level.WARNING,e)}static warn(e){s.log(s.Level.WARNING,e)}static error(e){s.log(s.Level.ERROR,e)}static critical(e){s.log(s.Level.CRITICAL,e)}}var V="0.7.2";var J=V;import{context as Q,SpanStatusCode as j,trace as D}from"@opentelemetry/api";import{OTLPTraceExporter as Z}from"@opentelemetry/exporter-trace-otlp-http";class N{delegate;constructor(e,t,r,o){this.delegate=new Z({url:e,headers:{Authorization:`Bearer ${t}`,"X-Organization-Id":r,"X-Project-Id":o}})}export(e,t){s.info(`JudgmentSpanExporter: exporting ${e.length} spans`),this.delegate.export(e,t)}shutdown(){return this.delegate.shutdown()}forceFlush(){return this.delegate.forceFlush?.()??Promise.resolve()}}class R{export(e,t){t({code:0})}shutdown(){return Promise.resolve()}}class p{static TRACER_NAME="judgeval";projectName;enableEvaluation;apiClient;serializer;jsonEncoder;projectId;constructor(e,t,r,o,i=JSON.stringify){this.projectName=e,this.enableEvaluation=t,this.apiClient=r,this.serializer=o,this.jsonEncoder=i,this.projectId=null}async resolveAndSetProjectId(){try{this.projectId=await this.resolveProjectId(this.projectName),s.info(`Successfully resolved project ID: ${this.projectId}`)}catch{s.error(`Failed to resolve project ${this.projectName}, please create it first at https://app.judgmentlabs.ai/org/${this.apiClient.getOrganizationId()}/projects. Skipping Judgment export.`),this.projectId=null}}getSpanExporter(){if(this.projectId!==null)return this.createJudgmentSpanExporter(this.projectId);return s.error("Project not resolved; cannot create exporter, returning NoOpSpanExporter"),new R}getTracer(){return D.getTracer(p.TRACER_NAME)}setSpanKind(e){if(!e)return;let t=D.getActiveSpan();if(t)t.setAttribute("judgment.span_kind",e)}setAttribute(e,t){if(!this.isValidKey(e))return;if(t===null||t===void 0)return;let r=D.getActiveSpan();if(r){let o=typeof t==="string"||typeof t==="number"||typeof t==="boolean"?t:this.serializer(t);r.setAttribute(e,o)}}setAttributes(e){for(let[t,r]of Object.entries(e))this.setAttribute(t,r)}setLLMSpan(){this.setSpanKind("llm")}setToolSpan(){this.setSpanKind("tool")}setGeneralSpan(){this.setSpanKind("span")}setInput(e){this.setAttribute("judgment.input",e)}setOutput(e){this.setAttribute("judgment.output",e)}asyncEvaluate(e,t){this.safeExecute("evaluate scorer",()=>{if(!this.enableEvaluation)return;let r=this.getSampledSpanContext();if(!r)return;let{traceId:o,spanId:i}=r;this.logEvaluationInfo("asyncEvaluate",o,i,e.getName());let a=this.createEvaluationRun(e,t,o,i);this.enqueueEvaluation(a).catch((n)=>{s.error(`Failed to enqueue evaluation run: ${n}`)})})}asyncTraceEvaluate(e){this.safeExecute("evaluate trace scorer",()=>{if(!this.enableEvaluation)return;let t=this.getSampledSpan();if(!t)return;let r=t.spanContext(),o=r.traceId,i=r.spanId;this.logEvaluationInfo("asyncTraceEvaluate",o,i,e.getName());let a=this.createTraceEvaluationRun(e,o,i);try{let n=JSON.stringify(a);t.setAttribute("judgment.pending_trace_eval",n)}catch(n){s.error(`Failed to serialize trace evaluation: ${n}`)}})}span(e,t,r,o){return this.getTracer().startActiveSpan(e,r??{},o??Q.active(),(a)=>{try{return t()}catch(n){throw a.setStatus({code:j.ERROR}),a.recordException(n),n}finally{a.end()}})}observe(e,t="span",r,o,i){let a=this.getTracer(),n=r??e.name;return(...h)=>{return a.startActiveSpan(n,o??{},i??Q.active(),(d)=>{if(t)d.setAttribute("judgment.span_kind",t);try{let w=this.formatInputs(e,h);d.setAttribute("judgment.input",this.serializer(w));let b=e(...h);if(b instanceof Promise)return b.then((E)=>{return d.setAttribute("judgment.output",this.serializer(E)),E}).catch((E)=>{throw d.recordException(E),d.setStatus({code:j.ERROR,message:String(E)}),E}).finally(()=>{d.end()});return d.setAttribute("judgment.output",this.serializer(b)),d.end(),b}catch(w){throw d.recordException(w),d.setStatus({code:j.ERROR,message:String(w)}),d.end(),w}})}}async resolveProjectId(e){try{s.info(`Resolving project ID for project: ${e}`);let t={project_name:e},o=(await this.apiClient.projectsResolve(t)).project_id;if(!o)throw Error(`Project ID not found for project: ${e}`);return s.info(`Resolved project ID: ${o}`),o}catch(t){throw Error(`Failed to resolve project ID: ${t instanceof Error?t.message:String(t)}`)}}buildEndpoint(e){return e.endsWith("/")?e+"otel/v1/traces":e+"/otel/v1/traces"}createJudgmentSpanExporter(e){return new N(this.buildEndpoint(this.apiClient.getBaseUrl()),this.apiClient.getApiKey(),this.apiClient.getOrganizationId(),e)}generateRunId(e,t){return e+(t??Date.now().toString())}createEvaluationRun(e,t,r,o){let i=this.generateRunId("async_evaluate_",o);return{project_name:this.projectName,eval_name:i,trace_id:r,trace_span_id:o,examples:[t.toModel()],judgment_scorers:[e.getScorerConfig()],custom_scorers:[]}}createTraceEvaluationRun(e,t,r){let o=this.generateRunId("async_trace_evaluate_",r);return{project_name:this.projectName,eval_name:o,trace_and_span_ids:[[t,r]],judgment_scorers:[e.getScorerConfig()],custom_scorers:[],is_offline:!1}}async enqueueEvaluation(e){try{await this.apiClient.addToRunEvalQueueExamples(e)}catch(t){s.error(`Failed to enqueue evaluation run: ${t}`)}}getSampledSpanContext(){let e=D.getActiveSpan();if(!e)return null;let t=e.spanContext();if(!t.traceFlags||!(t.traceFlags&1))return null;return t}getSampledSpan(){let e=D.getActiveSpan();if(!e)return null;let t=e.spanContext();if(!t.traceFlags||!(t.traceFlags&1))return null;return e}logEvaluationInfo(e,t,r,o){s.info(`${e}: project=${this.projectName}, traceId=${t}, spanId=${r}, scorer=${o}`)}safeExecute(e,t){try{t()}catch(r){s.error(`Failed to ${e}: ${r}`)}}isValidKey(e){return e.length>0}formatInputs(e,t){try{let r=e.toString(),o=/\(([^)]*)\)/.exec(r),i=o?o[1].split(",").map((n)=>n.trim().split("=")[0].trim()).filter((n)=>n.length>0):[],a={};return i.forEach((n,h)=>{if(h<t.length)a[n]=t[h]}),a}catch{return{}}}}class M extends p{webTracerProvider=null;resourceAttributes;constructor(e,t,r,o,i){super(e,t,r,o);this.resourceAttributes=i}static async create(e,t){let r=new M(e.projectName,e.enableEvaluation,t,e.serializer,e.resourceAttributes);if(await r.resolveAndSetProjectId(),e.initialize)await r.initialize();return r}async initialize(){if(this.webTracerProvider!==null){s.warn("BrowserTracer already initialized");return}try{let e={"service.name":this.projectName,"telemetry.sdk.version":J,...this.resourceAttributes},t=this.getSpanExporter();this.webTracerProvider=new re({resource:ee(e),spanProcessors:[new te(t)]}),this.webTracerProvider.register(),s.info("BrowserTracer initialized successfully")}catch(e){throw Error(`Failed to initialize BrowserTracer: ${e instanceof Error?e.message:String(e)}`)}}async shutdown(){if(!this.webTracerProvider){s.warn("BrowserTracer not initialized, skipping shutdown");return}try{await this.webTracerProvider.shutdown(),this.webTracerProvider=null,s.info("BrowserTracer shut down successfully")}catch(e){s.error(`Failed to shutdown BrowserTracer: ${e}`)}}}class U{client;constructor(e){this.client=e}async create(e){if(!e.projectName)throw Error("Project name is required");return M.create({projectName:e.projectName,enableEvaluation:e.enableEvaluation??!0,enableMonitoring:e.enableMonitoring??!1,serializer:e.serializer??JSON.stringify,resourceAttributes:e.resourceAttributes??{},initialize:e.initialize??!0},this.client)}}import{resourceFromAttributes as se}from"@opentelemetry/resources";import{NodeSDK as oe}from"@opentelemetry/sdk-node";class A extends p{nodeSDK=null;resourceAttributes;instrumentations;constructor(e,t,r,o,i,a){super(e,t,r,o);this.resourceAttributes=i,this.instrumentations=a}static async create(e,t){let r=new A(e.projectName,e.enableEvaluation,t,e.serializer,e.resourceAttributes,e.instrumentations);if(await r.resolveAndSetProjectId(),e.initialize)await r.initialize();return r}async initialize(){if(this.nodeSDK!==null){s.warn("NodeTracer already initialized");return}try{let e={"service.name":this.projectName,"telemetry.sdk.version":J,...this.resourceAttributes},t=this.getSpanExporter();this.nodeSDK=new oe({resource:se(e),traceExporter:t,instrumentations:this.instrumentations}),this.nodeSDK.start(),s.info("NodeTracer initialized successfully")}catch(e){throw Error(`Failed to initialize NodeTracer: ${e instanceof Error?e.message:String(e)}`)}}async shutdown(){if(!this.nodeSDK){s.warn("NodeTracer not initialized, skipping shutdown");return}try{await this.nodeSDK.shutdown(),this.nodeSDK=null,s.info("NodeTracer shut down successfully")}catch(e){s.error(`Failed to shutdown NodeTracer: ${e}`)}}}class G{client;constructor(e){this.client=e}async create(e){if(!e.projectName)throw Error("Project name is required");return A.create({projectName:e.projectName,enableEvaluation:e.enableEvaluation??!0,enableMonitoring:e.enableMonitoring??!1,serializer:e.serializer??JSON.stringify,resourceAttributes:e.resourceAttributes??{},instrumentations:e.instrumentations??[],initialize:e.initialize??!0},this.client)}}class L{internalClient;constructor(e={}){let t=e.apiKey??H,r=e.organizationId??q,o=e.apiUrl??Y;if(!t)throw Error("API key is required");if(!r)throw Error("Organization ID is required");if(!o)throw Error("API URL is required");this.internalClient=new F(o,t,r)}static create(e={}){return new L(e)}get nodeTracer(){return new G(this.internalClient)}get browserTracer(){return new U(this.internalClient)}get scorers(){return new x(this.internalClient)}get evaluation(){return new y(this.internalClient)}}import{randomUUID as ie}from"crypto";class g{exampleId;createdAt;name;properties;constructor(e={}){this.exampleId=e.exampleId??ie(),this.createdAt=e.createdAt??new Date().toISOString(),this.name=e.name??null,this.properties=e.properties??{}}static create(e){return new g({properties:e})}setProperty(e,t){return this.properties[e]=t,this}getProperty(e){return this.properties[e]}getProperties(){return{...this.properties}}toModel(){return{example_id:this.exampleId,created_at:this.createdAt,name:this.name??void 0,...this.properties}}}class k{name;threshold;success;score;reason;strictMode;evaluationModel;error;additionalMetadata;id;constructor(e={}){this.name=e.name??null,this.threshold=e.threshold??null,this.success=e.success??null,this.score=e.score??null,this.reason=e.reason??null,this.strictMode=e.strictMode??null,this.evaluationModel=e.evaluationModel??null,this.error=e.error??null,this.additionalMetadata=e.additionalMetadata??{},this.id=e.id??null}toModel(){let e={name:this.name??"",threshold:this.threshold??0,success:this.success??!1};if(this.score!==void 0&&this.score!==null)e.score=this.score;if(this.reason!==void 0&&this.reason!==null)e.reason=this.reason;if(this.strictMode!==void 0&&this.strictMode!==null)e.strict_mode=this.strictMode;if(this.evaluationModel!==void 0&&this.evaluationModel!==null)e.evaluation_model=this.evaluationModel;if(this.error!==void 0&&this.error!==null)e.error=this.error;if(this.additionalMetadata&&Object.keys(this.additionalMetadata).length>0)e.additional_metadata=this.additionalMetadata;if(this.id!==void 0&&this.id!==null)e.id=this.id;return e}}class ${success;scorersData;name;dataObject;traceId;runDuration;evaluationCost;constructor(e={}){this.success=e.success??null,this.scorersData=e.scorersData??[],this.name=e.name??null,this.dataObject=e.dataObject??null,this.traceId=e.traceId??null,this.runDuration=e.runDuration??null,this.evaluationCost=e.evaluationCost??null}toModel(){let e={success:this.success??!1,scorers_data:(this.scorersData??[]).map((t)=>t.toModel())};if(this.name!==void 0&&this.name!==null)e.name=this.name;if(this.dataObject!==void 0&&this.dataObject!==null)if(this.dataObject instanceof g)e.data_object=this.dataObject.toModel();else e.data_object=this.dataObject;if(this.traceId!==void 0&&this.traceId!==null)e.trace_id=this.traceId;if(this.runDuration!==void 0&&this.runDuration!==null)e.run_duration=this.runDuration;if(this.evaluationCost!==void 0&&this.evaluationCost!==null)e.evaluation_cost=this.evaluationCost;return e}}export{$ as ScoringResult,x as ScorersFactory,k as ScorerData,m as PromptScorerFactory,P as PromptScorer,G as NodeTracerFactory,A as NodeTracer,R as NoOpSpanExporter,N as JudgmentSpanExporter,L as Judgeval,f as FaithfulnessScorer,g as Example,y as EvaluationFactory,C as Evaluation,I as CustomScorerFactory,O as CustomScorer,v as BuiltInScorersFactory,U as BrowserTracerFactory,M as BrowserTracer,p as BaseTracer,_ as BaseScorer,T as AnswerRelevancyScorer,S as AnswerCorrectnessScorer,u as APIScorer};
3
3
 
4
- //# debugId=20461143BC89B85864756E2164756E21
4
+ //# debugId=6C5BED485B31A5A164756E2164756E21
5
5
  //# sourceMappingURL=index.mjs.map
@@ -33,6 +33,6 @@
33
33
  "import type {\n ScoringResult as APIScoringResult,\n OtelTraceSpan,\n} from \"../internal/api/models\";\nimport { Example } from \"./Example\";\nimport { ScorerData } from \"./ScorerData\";\n\nexport interface ScoringResultConfig {\n success?: boolean;\n scorersData?: ScorerData[];\n name?: string;\n dataObject?: OtelTraceSpan | Example;\n traceId?: string;\n runDuration?: number;\n evaluationCost?: number;\n}\n\nexport class ScoringResult {\n success?: boolean | null;\n scorersData?: ScorerData[];\n name?: string | null;\n dataObject?: OtelTraceSpan | Example | null;\n traceId?: string | null;\n runDuration?: number | null;\n evaluationCost?: number | null;\n\n constructor(config: ScoringResultConfig = {}) {\n this.success = config.success ?? null;\n this.scorersData = config.scorersData ?? [];\n this.name = config.name ?? null;\n this.dataObject = config.dataObject ?? null;\n this.traceId = config.traceId ?? null;\n this.runDuration = config.runDuration ?? null;\n this.evaluationCost = config.evaluationCost ?? null;\n }\n\n toModel(): APIScoringResult {\n const result: APIScoringResult = {\n success: this.success ?? false,\n scorers_data: (this.scorersData ?? []).map((s) => s.toModel()),\n };\n\n if (this.name !== undefined && this.name !== null) {\n result.name = this.name;\n }\n if (this.dataObject !== undefined && this.dataObject !== null) {\n if (this.dataObject instanceof Example) {\n result.data_object = this.dataObject.toModel();\n } else {\n result.data_object = this.dataObject;\n }\n }\n if (this.traceId !== undefined && this.traceId !== null) {\n result.trace_id = this.traceId;\n }\n if (this.runDuration !== undefined && this.runDuration !== null) {\n result.run_duration = this.runDuration;\n }\n if (this.evaluationCost !== undefined && this.evaluationCost !== null) {\n result.evaluation_cost = this.evaluationCost;\n }\n\n return result;\n }\n}\n"
34
34
  ],
35
35
  "mappings": "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",
36
- "debugId": "20461143BC89B85864756E2164756E21",
36
+ "debugId": "6C5BED485B31A5A164756E2164756E21",
37
37
  "names": []
38
38
  }
package/package.json CHANGED
@@ -1,17 +1,16 @@
1
1
  {
2
2
  "name": "judgeval",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "description": "JavaScript/TypeScript client for Judgment evaluation platform",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
7
7
  "types": "./dist/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
+ "types": "./dist/index.d.ts",
10
11
  "import": "./dist/index.mjs",
11
- "require": "./dist/index.cjs",
12
- "types": "./dist/index.d.ts"
12
+ "require": "./dist/index.cjs"
13
13
  },
14
- "./umd": "./dist/index.umd.js",
15
14
  "./package.json": "./package.json"
16
15
  },
17
16
  "files": [
@@ -20,12 +19,8 @@
20
19
  "LICENSE"
21
20
  ],
22
21
  "scripts": {
23
- "build": "bun run check && bun run build:types && bun scripts/build.ts lib cjs umd",
24
- "build:types": "tsc -p tsconfig.build.json",
25
- "build:lib": "bun scripts/build.ts lib",
26
- "build:cjs": "bun scripts/build.ts cjs",
27
- "build:umd": "bun scripts/build.ts umd",
28
- "build:dev": "bun run build:types && bun scripts/build.ts lib --dev",
22
+ "build": "bun run check && bun scripts/build.ts",
23
+ "build:dev": "bun scripts/build.ts --dev",
29
24
  "check": "tsc --noEmit && eslint src/**/*.ts --no-warn-ignored",
30
25
  "lint": "eslint src/**/*.ts --no-warn-ignored",
31
26
  "lint:fix": "eslint src/**/*.ts --fix --no-warn-ignored",