arize-phoenix 8.26.3__py3-none-any.whl → 8.27.0__py3-none-any.whl

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.

Potentially problematic release.


This version of arize-phoenix might be problematic. Click here for more details.

@@ -1,4 +1,4 @@
1
- import{r as t,j as o,bp as z,l as c,P as w,R as P,E as b,cx as k,ei as S,ej as F,ek as L,bF as C,el as l,w as E,em as R}from"./vendor-C77BEnnR.js";import{c as I,x as j,D as A,K as T,M as _}from"./vendor-arizeai-CMLBpPBs.js";import{L as D,r as O,d as G,e as M,F as N,f as V,P as q,h as K,M as m,g as U,D as W,i as B,E as H,j as J,k as Y,p as $,l as X,n as p,o as Z,q as Q,s as oo,S as lo,t as ao,v as ro,w as co,x as go,y as eo,z as bo,A as u,B as f,C as y,G as no,H as io,I as so,J as to,K as mo,N as po,O as uo,Q as fo,U as yo,V as vo,W as ho,X as xo,Y as zo,Z as wo,_ as Po,$ as ko,a0 as So,a1 as Fo,a2 as Lo,a3 as Co,a4 as Eo,a5 as Ro,a6 as Io,a7 as jo,a8 as Ao,a9 as To,aa as _o,ab as Do,ac as Oo,ad as Go,ae as Mo,af as No,ag as Vo,ah as qo}from"./pages-CNkfmPS4.js";import{z as Ko,dX as Uo,bH as Wo,R as Bo,dY as Ho,dZ as Jo}from"./components-BpgLJxZt.js";import"./vendor-three-C5WAXd5r.js";import"./vendor-codemirror-DT1ReytN.js";import"./vendor-shiki-DEgpVt4G.js";import"./vendor-recharts-ByEcbiML.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const g of r)if(g.type==="childList")for(const n of g.addedNodes)n.tagName==="LINK"&&n.rel==="modulepreload"&&s(n)}).observe(document,{childList:!0,subtree:!0});function i(r){const g={};return r.integrity&&(g.integrity=r.integrity),r.referrerPolicy&&(g.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?g.credentials="include":r.crossOrigin==="anonymous"?g.credentials="omit":g.credentials="same-origin",g}function s(r){if(r.ep)return;r.ep=!0;const g=i(r);fetch(r.href,g)}})();const v="arize-phoenix-feature-flags",d={__RESET__:!1};function Yo(){const a=localStorage.getItem(v);if(!a)return d;try{const e=JSON.parse(a);return Object.assign({},d,e)}catch{return d}}const h=t.createContext(null);function $o(){const a=P.useContext(h);if(a===null)throw new Error("useFeatureFlags must be used within a FeatureFlagsProvider");return a}function Xo(a){const[e,i]=t.useState(Yo()),s=r=>{localStorage.setItem(v,JSON.stringify(r)),i(r)};return o(h.Provider,{value:{featureFlags:e,setFeatureFlags:s},children:o(Zo,{children:a.children})})}function Zo(a){const{children:e}=a,{featureFlags:i,setFeatureFlags:s}=$o(),[r,g]=t.useState(!1);return z("ctrl+shift+f",()=>g(!0)),c(w,{children:[e,o(A,{type:"modal",isDismissable:!0,onDismiss:()=>g(!1),children:r&&o(I,{title:"Feature Flags",children:o(Ko,{height:"size-1000",padding:"size-100",children:Object.keys(i).map(n=>o(j,{isSelected:i[n],onChange:x=>s({...i,[n]:x}),children:n},n))})})})]})}const Qo=b`
1
+ import{r as t,j as o,bp as z,l as c,P as w,R as P,E as b,cx as k,ei as S,ej as F,ek as L,bF as C,el as l,w as E,em as R}from"./vendor-C77BEnnR.js";import{c as I,x as j,D as A,K as T,M as _}from"./vendor-arizeai-CMLBpPBs.js";import{L as D,r as O,d as G,e as M,F as N,f as V,P as q,h as K,M as m,g as U,D as W,i as B,E as H,j as J,k as Y,p as $,l as X,n as p,o as Z,q as Q,s as oo,S as lo,t as ao,v as ro,w as co,x as go,y as eo,z as bo,A as u,B as f,C as y,G as no,H as io,I as so,J as to,K as mo,N as po,O as uo,Q as fo,U as yo,V as vo,W as ho,X as xo,Y as zo,Z as wo,_ as Po,$ as ko,a0 as So,a1 as Fo,a2 as Lo,a3 as Co,a4 as Eo,a5 as Ro,a6 as Io,a7 as jo,a8 as Ao,a9 as To,aa as _o,ab as Do,ac as Oo,ad as Go,ae as Mo,af as No,ag as Vo,ah as qo}from"./pages-DnCVNcjp.js";import{z as Ko,dX as Uo,bH as Wo,R as Bo,dY as Ho,dZ as Jo}from"./components-5gUEIUXK.js";import"./vendor-three-C5WAXd5r.js";import"./vendor-codemirror-DT1ReytN.js";import"./vendor-shiki-DEgpVt4G.js";import"./vendor-recharts-ByEcbiML.js";(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const g of r)if(g.type==="childList")for(const n of g.addedNodes)n.tagName==="LINK"&&n.rel==="modulepreload"&&s(n)}).observe(document,{childList:!0,subtree:!0});function i(r){const g={};return r.integrity&&(g.integrity=r.integrity),r.referrerPolicy&&(g.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?g.credentials="include":r.crossOrigin==="anonymous"?g.credentials="omit":g.credentials="same-origin",g}function s(r){if(r.ep)return;r.ep=!0;const g=i(r);fetch(r.href,g)}})();const v="arize-phoenix-feature-flags",d={__RESET__:!1};function Yo(){const a=localStorage.getItem(v);if(!a)return d;try{const e=JSON.parse(a);return Object.assign({},d,e)}catch{return d}}const h=t.createContext(null);function $o(){const a=P.useContext(h);if(a===null)throw new Error("useFeatureFlags must be used within a FeatureFlagsProvider");return a}function Xo(a){const[e,i]=t.useState(Yo()),s=r=>{localStorage.setItem(v,JSON.stringify(r)),i(r)};return o(h.Provider,{value:{featureFlags:e,setFeatureFlags:s},children:o(Zo,{children:a.children})})}function Zo(a){const{children:e}=a,{featureFlags:i,setFeatureFlags:s}=$o(),[r,g]=t.useState(!1);return z("ctrl+shift+f",()=>g(!0)),c(w,{children:[e,o(A,{type:"modal",isDismissable:!0,onDismiss:()=>g(!1),children:r&&o(I,{title:"Feature Flags",children:o(Ko,{height:"size-1000",padding:"size-100",children:Object.keys(i).map(n=>o(j,{isSelected:i[n],onChange:x=>s({...i,[n]:x}),children:n},n))})})})]})}const Qo=b`
2
2
  :root {
3
3
  --ac-global-dimension-scale-factor: 1;
4
4
  --ac-global-dimension-size-0: 0px;
@@ -1,4 +1,4 @@
1
- import{A as w,b5 as fe,b6 as Ae,b7 as ze,b8 as Tt,B as Dt,r as u,j as e,R as he,u as ut,w as I,l as s,aA as Le,aB as In,aD as we,aE as J,S as W,T as re,b9 as qe,ba as Je,ad as Dl,bb as Ki,ac as Qe,ah as ln,ag as G,U as xe,P as U,ax as ie,E as F,bc as Te,aI as ue,bd as Be,be as hm,a8 as _t,ay as Ca,a9 as Lt,bf as gn,bg as km,aJ as bm,bh as Sm,H as Ti,bi as mt,aP as _e,aO as Cn,bj as yn,bk as xn,m as yr,$ as vm,F as Pi,K as Cm,bl as Fm,bm as dl,bn as cl,bo as Ga,o as pt,bp as Km,aU as fr,bq as Tm,br as Ii,bs as Pm,bt as Im,bu as xm,bv as Dm,bw as _m,bx as Lm,by as wm,bz as Em,bA as Rm,bB as it,D as Mm,bC as Vm,bD as bt,g as hr,bE as Am,aF as _l,bF as kr,bG as br,bH as zm,ai as Nm,bI as $m,ae as Om,af as Qm,bJ as jm,n as qm}from"./vendor-C77BEnnR.js";import{c as Z,D as ae,C as B,t as Ll,h as Dn,b as wt,L as Et,v as Rt,w as Sr,o as wl,P as Va,f as Oe,g as la,T as ve,E as Mt,q as ia,r as Aa,a as $e,d as ra,x as Fa,s as Vt,y as Bm,i as At,z as Um,A as Hm,B as Gm,G as El,H as Rl,u as Wm,J as Jm}from"./vendor-arizeai-CMLBpPBs.js";import{s as Zm,l as Xm,j as Ml,a as Ve,i as Vl,b as Ym,c as ep,d as ea,e as Fn,f as vr,D as Cr,g as Zn,h as tt,k as np,m as Ce,T as nn,n as ap,o as Al,p as xi,q as tp,r as Di,t as lp,u as ip,v as rp,G as zt,_ as h,w as v,x as V,I as _,E as gt,y as dn,z as C,A as X,R as Ke,B as Ie,C as ke,F as De,H as Ee,J as Re,K as cn,L as un,M as mn,N as zl,O as Fe,P as _n,Q as Fr,S as He,U as ne,V as ce,W as Ge,X as Kr,Y as It,Z as Ne,$ as zn,a0 as sp,a1 as Ye,a2 as Tr,a3 as Fl,a4 as Nl,a5 as $l,a6 as op,a7 as dp,a8 as Kl,a9 as St,aa as oe,ab as Pr,ac as cp,ad as up,ae as pn,af as mp,ag as En,ah as pp,ai as Ir,aj as Nt,ak as Ka,al as Ol,am as Ql,an as xr,ao as gp,ap as yp,aq as fp,ar as hp,as as kp,at as bp,au as Sp,av as rt,aw as vp,ax as me,ay as Tl,az as pe,aA as ge,aB as an,aC as Cp,aD as Fp,aE as Kp,aF as rn,aG as se,aH as Dr,aI as Tp,aJ as Pp,aK as Ip,aL as $t,aM as Ot,aN as _r,aO as xp,aP as Dp,aQ as _p,aR as Qt,aS as Lp,aT as Lr,aU as La,aV as st,aW as Ze,aX as wp,aY as jl,aZ as fn,a_ as Ep,a$ as Rp,b0 as Mp,b1 as Mn,b2 as Se,b3 as Ue,b4 as We,b5 as wr,b6 as sa,b7 as Me,b8 as za,b9 as Nn,ba as Vn,bb as jt,bc as Na,bd as Ta,be as Er,bf as sn,bg as Rr,bh as Vp,bi as ql,bj as fa,bk as Ap,bl as Gn,bm as zp,bn as Np,bo as Bl,bp as qt,bq as $n,br as oa,bs as _i,bt as Li,bu as $p,bv as Op,bw as Qp,bx as $a,by as jp,bz as qp,bA as ot,bB as Bp,bC as lt,bD as Kn,bE as Xn,bF as Bt,bG as Ut,bH as On,bI as Up,bJ as Hp,bK as on,bL as Tn,bM as ka,bN as Ul,bO as Mr,bP as Hl,bQ as Gp,bR as Wp,bS as Jp,bT as Gl,bU as Vr,bV as Ar,bW as zr,bX as Xe,bY as Nr,bZ as $r,b_ as Pl,b$ as Zp,c0 as Wl,c1 as Jl,c2 as Or,c3 as Xp,c4 as Yp,c5 as eg,c6 as Zl,c7 as ng,c8 as ag,c9 as Xl,ca as tg,cb as Qr,cc as lg,cd as ig,ce as rg,cf as sg,cg as og,ch as dg,ci as cg,cj as Ht,ck as ug,cl as mg,cm as jr,cn as qr,co as wi,cp as pg,cq as Ln,cr as Qn,cs as Yl,ct as Br,cu as Ur,cv as Ei,cw as Ri,cx as gg,cy as yg,cz as H,cA as Hr,cB as Gt,cC as Wt,cD as Oa,cE as Gr,cF as Qa,cG as ja,cH as Wr,cI as jn,cJ as Jt,cK as fg,cL as hg,cM as kg,cN as bg,cO as Sg,cP as vg,cQ as Cg,cR as ba,cS as Jr,cT as Fg,cU as Kg,cV as Mi,cW as Tg,cX as Pg,cY as Ig,cZ as xg,c_ as Dg,c$ as _g,d0 as Zr,d1 as Lg,d2 as wg,d3 as Eg,d4 as Rg,d5 as Sa,d6 as ei,d7 as Xr,d8 as _a,d9 as Zt,da as Yr,db as es,dc as ul,dd as Mg,de as ns,df as Vg,dg as ni,dh as Xt,di as kn,dj as Ag,dk as as,dl as zg,dm as Ng,dn as ts,dp as ls,dq as $g,dr as Og,ds as is,dt as Qg,du as na,dv as jg,dw as qg,dx as Vi,dy as Bg,dz as Ug,dA as Hg,dB as Gg,dC as Wg,dD as ml,dE as Jg,dF as wa,dG as Zg,dH as Xg,dI as Yg,dJ as ey,dK as Yt,dL as rs,dM as Ai,dN as ny,dO as ay,dP as ty,dQ as ly,dR as ss,dS as iy,dT as ry,dU as sy,dV as zi,dW as Ni}from"./components-BpgLJxZt.js";import{g as da,i as ca,d as oy,E as os,R as ua,k as ai,b as dy,p as yt,n as ds}from"./vendor-codemirror-DT1ReytN.js";import{P as cs,C as us,T as qn,a as ms,R as Bn,b as ft,X as ma,Y as Pn,c as pa,B as Ra,A as dt,d as ps,e as ti,L as gs,f as cy}from"./vendor-recharts-ByEcbiML.js";const uy=4,my={user:["user","human"],ai:["assistant","bot","ai"],system:["system"],tool:["tool"]},py="Unable to parse span input messages, expected messages which include a role and content.",gy="Unable to parse span output messages, expected messages which include a role and content.",yy="Unable to parse span output expected output.value to be present.",fy="Unable to parse span attributes, attributes must be valid JSON.",hy="Unable to parse model config, expected llm.model_name to be present.",ky="Unable to parse model config, expected llm.invocation_parameters JSON string to be present.",by="Unable to parse invocation parameters response_format, expected llm.invocation_parameters.response_format to be a well formed json object or undefined.",Sy="Unable to parse tools, expected tools to be an array of valid tools.",vy="Unable to parse prompt template variables, expected prompt template variables to be a valid JSON object string.",$i={AZURE_OPENAI:[],ANTHROPIC:["claude"],OPENAI:["gpt","o1"],GOOGLE:["gemini"]},Yn="TOOL_CHOICE",Ea="tool_choice",vn="RESPONSE_FORMAT",bn="response_format",Cy=[Yn,vn],Fy=w.object({tool_call:w.object({id:w.string().optional(),function:w.object({name:w.string(),arguments:w.string()}).partial()}).partial()}).partial(),ys=w.object({[fe.message]:w.object({[Ae.role]:w.string(),[Ae.content]:w.union([w.string(),w.array(w.record(w.string(),w.unknown()))]).default(""),[Ae.tool_calls]:w.array(Fy).optional(),[Ae.tool_call_id]:w.string().optional()})}),Ky=w.object({[fe.llm]:w.object({[ze.input_messages]:w.array(ys)})}),Ty=w.object({[fe.llm]:w.object({[ze.output_messages]:w.array(ys)})}),Py=w.object({[fe.output]:w.object({value:w.string()})}),fs=Zm()(w.enum(["user","ai","system","tool"])),Iy=w.object({id:w.number(),role:fs,content:w.string().optional(),toolCallId:w.string().optional(),toolCalls:w.array(Xm).optional()}),xy=w.array(Iy),hs=w.lazy(()=>w.record(Ml)),Dy=hs,ks=w.string().transform((n,a)=>{const{json:t}=Ve(n);if(!Vl(t))return a.addIssue({code:w.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),w.NEVER;const{success:l,data:i}=Dy.safeParse(t);return l?i:(a.addIssue({code:w.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),w.NEVER)}).default("{}"),_y=w.object({[fe.llm]:w.object({[ze.provider]:w.string().optional(),[ze.model_name]:w.string()})}),bs=w.object({[fe.llm]:w.object({[ze.invocation_parameters]:ks})}),Ly=w.object({[fe.llm]:w.object({[ze.invocation_parameters]:ks.pipe(w.object({response_format:hs.optional()}))})}),wy=w.object({url:w.object({full:w.string(),path:w.string().optional()})}),Ey=w.string().transform((n,a)=>{const{json:t}=Ve(n);return t==null||!Vl(t)?(a.addIssue({code:w.ZodIssueCode.custom,message:"The tool JSON schema must be a valid JSON object"}),w.NEVER):t}).transform((n,a)=>{const{data:t,success:l}=Ym.safeParse(n);return l?t:(a.addIssue({code:w.ZodIssueCode.custom,message:"The tool JSON schema must be a valid tool schema"}),w.NEVER)}),Ry=w.object({[fe.llm]:w.object({[ze.tools]:w.array(w.object({[fe.tool]:w.object({[Tt.json_schema]:Ey})}).optional()).optional()}).optional()}).optional(),My=w.lazy(()=>w.object({type:w.literal("json_schema"),json_schema:w.object({name:w.string().describe("The name of the schema"),schema:ep.describe("The schema itself in JSON schema format"),strict:w.literal(!0).describe("The schema must be strict")})})),Vy=Dt(My,{removeAdditionalStrategy:"passthrough"}),Ay=w.string().transform((n,a)=>{const{json:t}=Ve(n);return ea(t)?Object.entries(t).reduce((i,[r,o])=>{if(typeof o=="string")i[r]=o;else{const{json:d}=Fn(o);d!=null&&(i[r]=d)}return i},{}):(a.addIssue({code:w.ZodIssueCode.custom,message:"The prompt template variables must be a valid JSON object"}),w.NEVER)}),zy=w.object({[fe.llm]:w.object({[ze.prompt_template]:w.object({variables:Ay}).optional()}).optional()}).optional();function Ss(n){return fs.safeParse(n).success}function Wn(n){const a=n.toLowerCase();if(Ss(a))return a;for(const[t,l]of Object.entries(my))if(l.includes(a))return t;return np}function Ny({toolCalls:n,provider:a}){if(n!=null)return n.map(({tool_call:t})=>{var i,r,o,d;if(t==null)return null;let l={};if(((i=t.function)==null?void 0:i.arguments)!=null){const{json:c}=Ve(t.function.arguments);ea(c)&&(l=c)}switch(a){case"OPENAI":case"AZURE_OPENAI":return{id:t.id??"",type:"function",function:{name:((r=t.function)==null?void 0:r.name)??"",arguments:l}};case"ANTHROPIC":return{id:t.id??"",type:"tool_use",name:((o=t.function)==null?void 0:o.name)??"",input:l};case"GOOGLE":return{id:t.id??"",function:{name:((d=t.function)==null?void 0:d.name)??"",arguments:l}};default:Ce()}}).filter(t=>t!=null)}function vs({messages:n,provider:a}){return n.map(({message:t})=>({id:Zn(),role:t.tool_call_id!=null?Wn("tool"):Wn(t.role),content:typeof t.content=="string"?t.content:void 0,toolCalls:Ny({provider:a,toolCalls:t.tool_calls}),toolCallId:t.tool_call_id}))}function $y({provider:n,parsedAttributes:a}){var l;const t=Ky.safeParse(a);if(!t.success)return{messageParsingErrors:[py],messages:null};if(n==="ANTHROPIC"){const{success:i,data:r}=bs.safeParse(a);if(i){const o=t.data.llm.input_messages,d=(l=r.llm.invocation_parameters)==null?void 0:l.system;typeof d=="string"&&d&&(!o||o[0].message.role!=="system")&&t.data.llm.input_messages.unshift({message:{role:"system",content:d}})}}return{messageParsingErrors:[],messages:vs({provider:n,messages:t.data.llm.input_messages})}}function Oy({provider:n,parsedAttributes:a}){const t=[],l=Ty.safeParse(a);if(l.success)return{output:vs({provider:n,messages:l.data.llm.output_messages}),outputParsingErrors:t};t.push(gy);const i=Py.safeParse(a);return i.success?{output:i.data.output.value,outputParsingErrors:t}:(t.push(yy),{output:void 0,outputParsingErrors:t})}function Cs(n){if(n==null)return null;switch(n.toLowerCase()){case"openai":return"OPENAI";case"anthropic":return"ANTHROPIC";case"google":return"GOOGLE";case"azure":return"AZURE_OPENAI";default:return null}}function Qy(n){for(const a of Object.keys($i))if($i[a].some(l=>n.includes(l)))return a;return Cr}function jy(n){const{success:a,data:t}=_y.safeParse(n);if(a){const l=Cs(t.llm.provider)||Qy(t.llm.model_name),i=qy(n);return{modelConfig:{...Object.fromEntries(Object.entries(i).filter(([r,o])=>o!==null)),modelName:t.llm.model_name,provider:l,invocationParameters:[],supportedInvocationParameters:[]},parsingErrors:[]}}return{modelConfig:null,parsingErrors:[hy]}}function qy(n){const{success:a,data:t}=wy.safeParse(n);if(a)try{const l=new URL(t.url.full);let i=l;if(t.url.path)try{i=new URL(t.url.full.split(t.url.path)[0])}catch{}return{baseUrl:`${i.origin}${i.pathname}`,endpoint:l.origin,apiVersion:l.searchParams.get("api-version")||null}}catch{}return{baseUrl:null,apiVersion:null,endpoint:null}}function By(n,a=[]){const{success:t,data:l}=bs.safeParse(n),i=[];return t||i.push(ky),{invocationParameters:ef((l==null?void 0:l.llm.invocation_parameters)??{},a),parsingErrors:i}}function Uy(n){const{success:a,data:t}=Ly.safeParse(n);return a?{responseFormat:t.llm.invocation_parameters.response_format,parsingErrors:[]}:{responseFormat:void 0,parsingErrors:[by]}}function Hy(n){var a;return(((a=n==null?void 0:n.llm)==null?void 0:a.tools)??[]).map(t=>(t==null?void 0:t.tool)==null?null:{id:tt(),definition:t.tool.json_schema}).filter(t=>t!=null)}function Gy(n){var l;const{data:a,success:t}=Ry.safeParse(n);return t?((l=a==null?void 0:a.llm)==null?void 0:l.tools)==null?{tools:null,parsingErrors:[]}:{tools:Hy(a),parsingErrors:[]}:{tools:null,parsingErrors:[Sy]}}function Wy(n){var l;const{success:a,data:t}=zy.safeParse(n);return a?((l=t==null?void 0:t.llm)==null?void 0:l.prompt_template)==null?{variables:null,parsingErrors:[]}:{variables:t.llm.prompt_template.variables,parsingErrors:[]}:{variables:null,parsingErrors:[vy]}}function Jy(n){const{instance:a,instanceMessages:t}=vr(),l={...a,template:{__type:"chat",messages:Object.values(t)}},{json:i,parseError:r}=Ve(n.attributes);if(r)return{playgroundInstance:{...l,spanId:(n==null?void 0:n.id)??null},parsingErrors:[fy]};const o=n.invocationParameters,d=jy(i);let{modelConfig:c}=d;const{parsingErrors:p}=d,{messages:f,messageParsingErrors:m}=$y({provider:(c==null?void 0:c.provider)??l.model.provider,parsedAttributes:i}),{output:g,outputParsingErrors:y}=Oy({provider:(c==null?void 0:c.provider)??l.model.provider,parsedAttributes:i}),{invocationParameters:k,parsingErrors:b}=By(i,o),{variables:S,parsingErrors:K}=Wy(i),{parsingErrors:T}=Uy(i);c=c!=null?{...c,invocationParameters:T.length>0?k.filter(D=>D.invocationName!==bn&&D.canonicalName!==vn):k}:null;const{tools:x,parsingErrors:L}=Gy(i),P=f==null?void 0:f.map(D=>({...D,content:D.role==="tool"?li(D.content):D.content}));return{playgroundInstance:{...l,model:c??l.model,template:P!=null?{__type:"chat",messages:P}:l.template,output:g,spanId:n.id,tools:x??l.tools},playgroundInput:S!=null?{variablesValueCache:S}:void 0,parsingErrors:[...m,...y,...p,...L,...b,...T,...K]}}const Zy=n=>xy.safeParse(n).success,Fs=({instance:n,templateFormat:a})=>{if(a==nn.NONE)return[];const t=new Set,l=n.template.__type,i=ap(a);switch(l){case"chat":{n.template.messages.forEach(r=>{(r.content==null?[]:i.extractVariables(r.content)).forEach(d=>{t.add(d)})});break}case"text_completion":{i.extractVariables(n.template.prompt).forEach(o=>{t.add(o)});break}default:Ce()}return Array.from(t)},Xy=({instances:n,templateFormat:a})=>a==nn.NONE?[]:Array.from(new Set(n.flatMap(t=>Fs({instance:t,templateFormat:a})))),Ks=({instances:n,templateFormat:a,input:t})=>{if(a==nn.NONE)return{variablesMap:{},variableKeys:[]};const l=Xy({instances:n,templateFormat:a}),i=t.variablesValueCache??{};return{variablesMap:l.reduce((o,d)=>(o[d]=i[d]||"",o),{}),variableKeys:l}};function aa(n,a){return n.invocationName===a.invocationName||n.canonicalName!=null&&a.canonicalName!=null&&n.canonicalName===a.canonicalName}const Yy=(n,a)=>n.filter(t=>a.some(l=>aa(l,t))).map(t=>{var l;return{...t,invocationName:((l=a.find(i=>aa(i,t)))==null?void 0:l.invocationName)??t.invocationName}}),qa=n=>n.replace(/_([a-z])/g,(a,t)=>t.toUpperCase()),ef=(n,a)=>Object.entries(n).map(([t,l])=>{const i=a.find(r=>r.canonicalName&&r.canonicalName.toLowerCase()===t.toLowerCase()||r.invocationName&&r.invocationName.toLowerCase()===t.toLowerCase());return i==null||i.invocationInputField==null||i.invocationName==null?null:{canonicalName:i.canonicalName,invocationName:i.invocationName,[qa(i.invocationInputField)]:l}}).filter(t=>t!=null),Ts=n=>{const{provider:a,validatedToolDefinition:t}=ip(n.definition);switch(a){case"OPENAI":case"AZURE_OPENAI":return t.function.name;case"ANTHROPIC":return t.name;case"UNKNOWN":return null;default:Ce()}},nf=({provider:n,toolNumber:a})=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return{id:tt(),definition:Di(a)};case"ANTHROPIC":return{id:tt(),definition:lp(a)};case"GOOGLE":return{id:tt(),definition:Di(a)};default:Ce()}},af=n=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return xi();case"ANTHROPIC":return tp();case"GOOGLE":return xi();default:Ce()}};function tf(n){return{content:n.content,role:lf(n.role),toolCalls:n.toolCalls,toolCallId:n.toolCallId}}function lf(n){switch(n){case"system":return"SYSTEM";case"user":return"USER";case"tool":return"TOOL";case"ai":return"AI";default:Ce()}}const Ps=({playgroundStore:n,instanceId:a,credentials:t})=>{var m;const{instances:l,allInstanceMessages:i}=n.getState(),r=l.find(g=>g.id===a);if(!r)throw new Error(`No instance found for id ${a}`);if(r.template.__type!=="chat")throw new Error("We only support chat templates for now");const o=r.template.messageIds.map(g=>i[g]).filter(g=>g!=null),d=r.model.supportedInvocationParameters;let c=[...r.model.invocationParameters];const p=Al({toolChoice:r.toolChoice,targetProvider:r.model.provider});r.tools.length>0?(c=c.filter(g=>g.invocationName!==Ea&&g.canonicalName!==Yn),c.push({canonicalName:Yn,invocationName:Ea,valueJson:p})):c=c.filter(g=>g.invocationName!==Ea&&g.canonicalName!==Yn),c=d.length?Yy(c,d):c;const f=r.model.provider==="AZURE_OPENAI"?{endpoint:r.model.endpoint,apiVersion:r.model.apiVersion}:{};return{messages:o.map(tf),model:{providerKey:r.model.provider,name:r.model.modelName||"",baseUrl:r.model.baseUrl,...f},invocationParameters:xs(c,r.model.provider,r.model.modelName),tools:r.tools.length?r.tools.map(g=>g.definition):void 0,apiKey:t[r.model.provider]||null,promptName:(m=r.prompt)==null?void 0:m.name}},el=(n,a)=>{if(n.template.__type==="chat"){const{messageIds:t,...l}=n.template;return{...n,template:{...l,messages:n.template.messageIds.map(i=>a[i])}}}return n},rf=({playgroundStore:n,instanceId:a,credentials:t})=>{const l=Ps({playgroundStore:n,instanceId:a,credentials:t}),{instances:i,templateFormat:r,input:o,allInstanceMessages:d}=n.getState(),c=i.map(f=>el(f,d)),{variablesMap:p}=Ks({instances:c,input:o,templateFormat:r});return{...l,template:{variables:p,format:r}}},Oi=({playgroundStore:n,instanceId:a,credentials:t,datasetId:l})=>({...Ps({playgroundStore:n,instanceId:a,credentials:t}),templateFormat:n.getState().templateFormat,datasetId:l});function li(n){if(typeof n=="string"){const a=n.startsWith('"{')||n.startsWith('"[')||n.startsWith('"\\"');try{if(a){const l=JSON.parse(n),i=typeof l=="string"?JSON.parse(l):l;return JSON.stringify(i,null,2)}}catch{}if(/^\s*[0-9{[]|true|false|null/.test(n))return n}return JSON.stringify(n,null,2)}function Is(n,a){return a.filter(t=>t.required).every(t=>n.some(l=>aa(l,t)))}const sf=n=>{for(const[a,t]of Object.entries(n))if(a.endsWith("DefaultValue")&&t!=null)return n[a]};function WC(n,a){const t=new Map(n.map(l=>[l.invocationName,l]));return a.forEach(l=>{var c;const i=l.invocationName,r=sf(l),o=qa(l.invocationInputField||"");if(!l.invocationName||!l.invocationInputField||!i||r==null||((c=t.get(i))==null?void 0:c[o])!=null)return;const d={canonicalName:l.canonicalName,invocationName:l.invocationName,[o]:r};t.set(i,d)}),Array.from(t.values())}const of=w.object({type:w.literal("enabled")}).passthrough(),df=w.object({type:w.enum(["any","tool"])}).passthrough(),cf=(n,a)=>{if(!a)return n;const t=n.some(l=>l.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&l.valueJson&&of.safeParse(l.valueJson).success);return n.filter(l=>{if(l.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&!l.valueJson)return!1;if(t){if(l.canonicalName==="TEMPERATURE"||l.canonicalName==="TOP_P")return!1;if(l.canonicalName===Yn)return!df.safeParse(l.valueJson).success}return!0})},xs=(n,a,t)=>a==="ANTHROPIC"?cf(n,t):n,Ds=u.createContext(null);function JC({children:n,...a}){const[t]=u.useState(()=>rp(a));return e(Ds.Provider,{value:t,children:n})}function Ma(n,a){const t=he.useContext(Ds);if(!t)throw new Error("Missing CredentialsContext.Provider in the tree");return ut(t,n,a)}const _s=u.createContext(null);function uf(){const n=u.useContext(_s);if(n===null)throw new Error("useFunctionality must be used within a FunctionalityProvider");return n}function ZC(n){return e(_s.Provider,{value:{authenticationEnabled:window.Config.authenticationEnabled},children:n.children})}const Ls={argumentDefinitions:[],kind:"Fragment",metadata:null,name:"GenerativeProvidersCard_data",selections:[{alias:null,args:null,concreteType:"GenerativeProvider",kind:"LinkedField",name:"modelProviders",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"name",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"key",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependenciesInstalled",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependencies",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeyEnvVar",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeySet",storageKey:null}],storageKey:null}],type:"Query",abstractKey:null};Ls.hash="0168d590171b96e7a2e41449a41754be";function mf({query:n}){const[a,t]=u.useState(null),l=Ma(f=>f),i=Ma(f=>f.setCredential),r=I.useFragment(Ls,n),o=u.useMemo(()=>[...r.modelProviders],[r]),d=u.useMemo(()=>[{header:"Name",accessorKey:"name",cell:({row:f})=>s(h,{direction:"row",alignItems:"center",gap:"size-100",children:[e(zt,{provider:f.original.key,height:18}),f.original.name]})},{header:"Environment Variable",accessorKey:"apiKeyEnvVar",cell:({row:f})=>e(v,{children:f.original.apiKeyEnvVar})},{header:"configuration",accessorKey:"apiKeySet",cell:({row:f})=>f.original.dependenciesInstalled?l[f.original.key]?e(v,{color:"success",children:"local"}):f.original.apiKeySet?e(v,{color:"success",children:"configured on the server"}):e(v,{color:"text-700",children:"not configured"}):e(v,{color:"warning",children:"missing dependencies"})},{header:"",accessorKey:"id",cell:({row:f})=>e(h,{direction:"row",justifyContent:"end",gap:"size-100",width:"100%",children:e(V,{size:"S",leadingVisual:e(_,{svg:e(gt,{})}),onPress:()=>{t(f.original)}})})}],[l]),c=Le({columns:d,data:o,getCoreRowModel:we(),getSortedRowModel:In()}),p=c.getRowModel().rows;return s(B,{title:"AI Providers",bodyStyle:{padding:0},variant:"compact",children:[s("table",{css:dn,children:[e("thead",{children:c.getHeaderGroups().map(f=>e("tr",{children:f.headers.map(m=>e("th",{colSpan:m.colSpan,children:m.isPlaceholder?null:e("div",{children:J(m.column.columnDef.header,m.getContext())})},m.id))},f.id))}),e("tbody",{children:p.map(f=>e("tr",{children:f.getVisibleCells().map(m=>e("td",{children:J(m.column.columnDef.cell,m.getContext())},m.id))},f.id))})]}),e(ae,{type:"modal",isDismissable:!0,onDismiss:()=>t(null),children:a&&s(Z,{title:`Set ${a.name} API Key`,size:"S",children:[s(C,{padding:"size-200",children:[e(C,{paddingBottom:"size-100",children:s(v,{size:"XS",children:["Set the credentials for the ",a.name," API. These credentials will be stored entirely in your browser and will only be sent to the server during API requests."]})}),s(X,{onChange:f=>{i({provider:a.key,value:f})},value:l[a.key],type:"password",children:[e(W,{children:`${a.name} API Key`}),e(re,{placeholder:`e.g. ${a.apiKeyEnvVar}`}),e(v,{slot:"description",children:"The API key will be stored locally in your browser"})]})]}),e(C,{paddingX:"size-200",paddingY:"size-100",borderTopWidth:"thin",borderColor:"light",children:e(h,{direction:"row",justifyContent:"end",gap:"size-100",children:e(V,{variant:"primary",size:"S",onPress:()=>{t(null)},children:"Set API Key"})})})]})})]})}function XC(){const n=qe();return Je(n),e(mf,{query:n})}const ws={fragment:{argumentDefinitions:[],kind:"Fragment",metadata:null,name:"settingsAIProvidersPageLoaderQuery",selections:[{args:null,kind:"FragmentSpread",name:"GenerativeProvidersCard_data"}],type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:[],kind:"Operation",name:"settingsAIProvidersPageLoaderQuery",selections:[{alias:null,args:null,concreteType:"GenerativeProvider",kind:"LinkedField",name:"modelProviders",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"name",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"key",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependenciesInstalled",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependencies",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeyEnvVar",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeySet",storageKey:null}],storageKey:null}]},params:{cacheID:"cc6e19e54ea894e905970362ee382e43",id:null,metadata:{},name:"settingsAIProvidersPageLoaderQuery",operationKind:"query",text:`query settingsAIProvidersPageLoaderQuery {
1
+ import{A as w,b5 as fe,b6 as Ae,b7 as ze,b8 as Tt,B as Dt,r as u,j as e,R as he,u as ut,w as I,l as s,aA as Le,aB as In,aD as we,aE as J,S as W,T as re,b9 as qe,ba as Je,ad as Dl,bb as Ki,ac as Qe,ah as ln,ag as G,U as xe,P as U,ax as ie,E as F,bc as Te,aI as ue,bd as Be,be as hm,a8 as _t,ay as Ca,a9 as Lt,bf as gn,bg as km,aJ as bm,bh as Sm,H as Ti,bi as mt,aP as _e,aO as Cn,bj as yn,bk as xn,m as yr,$ as vm,F as Pi,K as Cm,bl as Fm,bm as dl,bn as cl,bo as Ga,o as pt,bp as Km,aU as fr,bq as Tm,br as Ii,bs as Pm,bt as Im,bu as xm,bv as Dm,bw as _m,bx as Lm,by as wm,bz as Em,bA as Rm,bB as it,D as Mm,bC as Vm,bD as bt,g as hr,bE as Am,aF as _l,bF as kr,bG as br,bH as zm,ai as Nm,bI as $m,ae as Om,af as Qm,bJ as jm,n as qm}from"./vendor-C77BEnnR.js";import{c as Z,D as ae,C as B,t as Ll,h as Dn,b as wt,L as Et,v as Rt,w as Sr,o as wl,P as Va,f as Oe,g as la,T as ve,E as Mt,q as ia,r as Aa,a as $e,d as ra,x as Fa,s as Vt,y as Bm,i as At,z as Um,A as Hm,B as Gm,G as El,H as Rl,u as Wm,J as Jm}from"./vendor-arizeai-CMLBpPBs.js";import{s as Zm,l as Xm,j as Ml,a as Ve,i as Vl,b as Ym,c as ep,d as ea,e as Fn,f as vr,D as Cr,g as Zn,h as tt,k as np,m as Ce,T as nn,n as ap,o as Al,p as xi,q as tp,r as Di,t as lp,u as ip,v as rp,G as zt,_ as h,w as v,x as V,I as _,E as gt,y as dn,z as C,A as X,R as Ke,B as Ie,C as ke,F as De,H as Ee,J as Re,K as cn,L as un,M as mn,N as zl,O as Fe,P as _n,Q as Fr,S as He,U as ne,V as ce,W as Ge,X as Kr,Y as It,Z as Ne,$ as zn,a0 as sp,a1 as Ye,a2 as Tr,a3 as Fl,a4 as Nl,a5 as $l,a6 as op,a7 as dp,a8 as Kl,a9 as St,aa as oe,ab as Pr,ac as cp,ad as up,ae as pn,af as mp,ag as En,ah as pp,ai as Ir,aj as Nt,ak as Ka,al as Ol,am as Ql,an as xr,ao as gp,ap as yp,aq as fp,ar as hp,as as kp,at as bp,au as Sp,av as rt,aw as vp,ax as me,ay as Tl,az as pe,aA as ge,aB as an,aC as Cp,aD as Fp,aE as Kp,aF as rn,aG as se,aH as Dr,aI as Tp,aJ as Pp,aK as Ip,aL as $t,aM as Ot,aN as _r,aO as xp,aP as Dp,aQ as _p,aR as Qt,aS as Lp,aT as Lr,aU as La,aV as st,aW as Ze,aX as wp,aY as jl,aZ as fn,a_ as Ep,a$ as Rp,b0 as Mp,b1 as Mn,b2 as Se,b3 as Ue,b4 as We,b5 as wr,b6 as sa,b7 as Me,b8 as za,b9 as Nn,ba as Vn,bb as jt,bc as Na,bd as Ta,be as Er,bf as sn,bg as Rr,bh as Vp,bi as ql,bj as fa,bk as Ap,bl as Gn,bm as zp,bn as Np,bo as Bl,bp as qt,bq as $n,br as oa,bs as _i,bt as Li,bu as $p,bv as Op,bw as Qp,bx as $a,by as jp,bz as qp,bA as ot,bB as Bp,bC as lt,bD as Kn,bE as Xn,bF as Bt,bG as Ut,bH as On,bI as Up,bJ as Hp,bK as on,bL as Tn,bM as ka,bN as Ul,bO as Mr,bP as Hl,bQ as Gp,bR as Wp,bS as Jp,bT as Gl,bU as Vr,bV as Ar,bW as zr,bX as Xe,bY as Nr,bZ as $r,b_ as Pl,b$ as Zp,c0 as Wl,c1 as Jl,c2 as Or,c3 as Xp,c4 as Yp,c5 as eg,c6 as Zl,c7 as ng,c8 as ag,c9 as Xl,ca as tg,cb as Qr,cc as lg,cd as ig,ce as rg,cf as sg,cg as og,ch as dg,ci as cg,cj as Ht,ck as ug,cl as mg,cm as jr,cn as qr,co as wi,cp as pg,cq as Ln,cr as Qn,cs as Yl,ct as Br,cu as Ur,cv as Ei,cw as Ri,cx as gg,cy as yg,cz as H,cA as Hr,cB as Gt,cC as Wt,cD as Oa,cE as Gr,cF as Qa,cG as ja,cH as Wr,cI as jn,cJ as Jt,cK as fg,cL as hg,cM as kg,cN as bg,cO as Sg,cP as vg,cQ as Cg,cR as ba,cS as Jr,cT as Fg,cU as Kg,cV as Mi,cW as Tg,cX as Pg,cY as Ig,cZ as xg,c_ as Dg,c$ as _g,d0 as Zr,d1 as Lg,d2 as wg,d3 as Eg,d4 as Rg,d5 as Sa,d6 as ei,d7 as Xr,d8 as _a,d9 as Zt,da as Yr,db as es,dc as ul,dd as Mg,de as ns,df as Vg,dg as ni,dh as Xt,di as kn,dj as Ag,dk as as,dl as zg,dm as Ng,dn as ts,dp as ls,dq as $g,dr as Og,ds as is,dt as Qg,du as na,dv as jg,dw as qg,dx as Vi,dy as Bg,dz as Ug,dA as Hg,dB as Gg,dC as Wg,dD as ml,dE as Jg,dF as wa,dG as Zg,dH as Xg,dI as Yg,dJ as ey,dK as Yt,dL as rs,dM as Ai,dN as ny,dO as ay,dP as ty,dQ as ly,dR as ss,dS as iy,dT as ry,dU as sy,dV as zi,dW as Ni}from"./components-5gUEIUXK.js";import{g as da,i as ca,d as oy,E as os,R as ua,k as ai,b as dy,p as yt,n as ds}from"./vendor-codemirror-DT1ReytN.js";import{P as cs,C as us,T as qn,a as ms,R as Bn,b as ft,X as ma,Y as Pn,c as pa,B as Ra,A as dt,d as ps,e as ti,L as gs,f as cy}from"./vendor-recharts-ByEcbiML.js";const uy=4,my={user:["user","human"],ai:["assistant","bot","ai"],system:["system"],tool:["tool"]},py="Unable to parse span input messages, expected messages which include a role and content.",gy="Unable to parse span output messages, expected messages which include a role and content.",yy="Unable to parse span output expected output.value to be present.",fy="Unable to parse span attributes, attributes must be valid JSON.",hy="Unable to parse model config, expected llm.model_name to be present.",ky="Unable to parse model config, expected llm.invocation_parameters JSON string to be present.",by="Unable to parse invocation parameters response_format, expected llm.invocation_parameters.response_format to be a well formed json object or undefined.",Sy="Unable to parse tools, expected tools to be an array of valid tools.",vy="Unable to parse prompt template variables, expected prompt template variables to be a valid JSON object string.",$i={AZURE_OPENAI:[],ANTHROPIC:["claude"],OPENAI:["gpt","o1"],GOOGLE:["gemini"]},Yn="TOOL_CHOICE",Ea="tool_choice",vn="RESPONSE_FORMAT",bn="response_format",Cy=[Yn,vn],Fy=w.object({tool_call:w.object({id:w.string().optional(),function:w.object({name:w.string(),arguments:w.string()}).partial()}).partial()}).partial(),ys=w.object({[fe.message]:w.object({[Ae.role]:w.string(),[Ae.content]:w.union([w.string(),w.array(w.record(w.string(),w.unknown()))]).default(""),[Ae.tool_calls]:w.array(Fy).optional(),[Ae.tool_call_id]:w.string().optional()})}),Ky=w.object({[fe.llm]:w.object({[ze.input_messages]:w.array(ys)})}),Ty=w.object({[fe.llm]:w.object({[ze.output_messages]:w.array(ys)})}),Py=w.object({[fe.output]:w.object({value:w.string()})}),fs=Zm()(w.enum(["user","ai","system","tool"])),Iy=w.object({id:w.number(),role:fs,content:w.string().optional(),toolCallId:w.string().optional(),toolCalls:w.array(Xm).optional()}),xy=w.array(Iy),hs=w.lazy(()=>w.record(Ml)),Dy=hs,ks=w.string().transform((n,a)=>{const{json:t}=Ve(n);if(!Vl(t))return a.addIssue({code:w.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),w.NEVER;const{success:l,data:i}=Dy.safeParse(t);return l?i:(a.addIssue({code:w.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),w.NEVER)}).default("{}"),_y=w.object({[fe.llm]:w.object({[ze.provider]:w.string().optional(),[ze.model_name]:w.string()})}),bs=w.object({[fe.llm]:w.object({[ze.invocation_parameters]:ks})}),Ly=w.object({[fe.llm]:w.object({[ze.invocation_parameters]:ks.pipe(w.object({response_format:hs.optional()}))})}),wy=w.object({url:w.object({full:w.string(),path:w.string().optional()})}),Ey=w.string().transform((n,a)=>{const{json:t}=Ve(n);return t==null||!Vl(t)?(a.addIssue({code:w.ZodIssueCode.custom,message:"The tool JSON schema must be a valid JSON object"}),w.NEVER):t}).transform((n,a)=>{const{data:t,success:l}=Ym.safeParse(n);return l?t:(a.addIssue({code:w.ZodIssueCode.custom,message:"The tool JSON schema must be a valid tool schema"}),w.NEVER)}),Ry=w.object({[fe.llm]:w.object({[ze.tools]:w.array(w.object({[fe.tool]:w.object({[Tt.json_schema]:Ey})}).optional()).optional()}).optional()}).optional(),My=w.lazy(()=>w.object({type:w.literal("json_schema"),json_schema:w.object({name:w.string().describe("The name of the schema"),schema:ep.describe("The schema itself in JSON schema format"),strict:w.literal(!0).describe("The schema must be strict")})})),Vy=Dt(My,{removeAdditionalStrategy:"passthrough"}),Ay=w.string().transform((n,a)=>{const{json:t}=Ve(n);return ea(t)?Object.entries(t).reduce((i,[r,o])=>{if(typeof o=="string")i[r]=o;else{const{json:d}=Fn(o);d!=null&&(i[r]=d)}return i},{}):(a.addIssue({code:w.ZodIssueCode.custom,message:"The prompt template variables must be a valid JSON object"}),w.NEVER)}),zy=w.object({[fe.llm]:w.object({[ze.prompt_template]:w.object({variables:Ay}).optional()}).optional()}).optional();function Ss(n){return fs.safeParse(n).success}function Wn(n){const a=n.toLowerCase();if(Ss(a))return a;for(const[t,l]of Object.entries(my))if(l.includes(a))return t;return np}function Ny({toolCalls:n,provider:a}){if(n!=null)return n.map(({tool_call:t})=>{var i,r,o,d;if(t==null)return null;let l={};if(((i=t.function)==null?void 0:i.arguments)!=null){const{json:c}=Ve(t.function.arguments);ea(c)&&(l=c)}switch(a){case"OPENAI":case"AZURE_OPENAI":return{id:t.id??"",type:"function",function:{name:((r=t.function)==null?void 0:r.name)??"",arguments:l}};case"ANTHROPIC":return{id:t.id??"",type:"tool_use",name:((o=t.function)==null?void 0:o.name)??"",input:l};case"GOOGLE":return{id:t.id??"",function:{name:((d=t.function)==null?void 0:d.name)??"",arguments:l}};default:Ce()}}).filter(t=>t!=null)}function vs({messages:n,provider:a}){return n.map(({message:t})=>({id:Zn(),role:t.tool_call_id!=null?Wn("tool"):Wn(t.role),content:typeof t.content=="string"?t.content:void 0,toolCalls:Ny({provider:a,toolCalls:t.tool_calls}),toolCallId:t.tool_call_id}))}function $y({provider:n,parsedAttributes:a}){var l;const t=Ky.safeParse(a);if(!t.success)return{messageParsingErrors:[py],messages:null};if(n==="ANTHROPIC"){const{success:i,data:r}=bs.safeParse(a);if(i){const o=t.data.llm.input_messages,d=(l=r.llm.invocation_parameters)==null?void 0:l.system;typeof d=="string"&&d&&(!o||o[0].message.role!=="system")&&t.data.llm.input_messages.unshift({message:{role:"system",content:d}})}}return{messageParsingErrors:[],messages:vs({provider:n,messages:t.data.llm.input_messages})}}function Oy({provider:n,parsedAttributes:a}){const t=[],l=Ty.safeParse(a);if(l.success)return{output:vs({provider:n,messages:l.data.llm.output_messages}),outputParsingErrors:t};t.push(gy);const i=Py.safeParse(a);return i.success?{output:i.data.output.value,outputParsingErrors:t}:(t.push(yy),{output:void 0,outputParsingErrors:t})}function Cs(n){if(n==null)return null;switch(n.toLowerCase()){case"openai":return"OPENAI";case"anthropic":return"ANTHROPIC";case"google":return"GOOGLE";case"azure":return"AZURE_OPENAI";default:return null}}function Qy(n){for(const a of Object.keys($i))if($i[a].some(l=>n.includes(l)))return a;return Cr}function jy(n){const{success:a,data:t}=_y.safeParse(n);if(a){const l=Cs(t.llm.provider)||Qy(t.llm.model_name),i=qy(n);return{modelConfig:{...Object.fromEntries(Object.entries(i).filter(([r,o])=>o!==null)),modelName:t.llm.model_name,provider:l,invocationParameters:[],supportedInvocationParameters:[]},parsingErrors:[]}}return{modelConfig:null,parsingErrors:[hy]}}function qy(n){const{success:a,data:t}=wy.safeParse(n);if(a)try{const l=new URL(t.url.full);let i=l;if(t.url.path)try{i=new URL(t.url.full.split(t.url.path)[0])}catch{}return{baseUrl:`${i.origin}${i.pathname}`,endpoint:l.origin,apiVersion:l.searchParams.get("api-version")||null}}catch{}return{baseUrl:null,apiVersion:null,endpoint:null}}function By(n,a=[]){const{success:t,data:l}=bs.safeParse(n),i=[];return t||i.push(ky),{invocationParameters:ef((l==null?void 0:l.llm.invocation_parameters)??{},a),parsingErrors:i}}function Uy(n){const{success:a,data:t}=Ly.safeParse(n);return a?{responseFormat:t.llm.invocation_parameters.response_format,parsingErrors:[]}:{responseFormat:void 0,parsingErrors:[by]}}function Hy(n){var a;return(((a=n==null?void 0:n.llm)==null?void 0:a.tools)??[]).map(t=>(t==null?void 0:t.tool)==null?null:{id:tt(),definition:t.tool.json_schema}).filter(t=>t!=null)}function Gy(n){var l;const{data:a,success:t}=Ry.safeParse(n);return t?((l=a==null?void 0:a.llm)==null?void 0:l.tools)==null?{tools:null,parsingErrors:[]}:{tools:Hy(a),parsingErrors:[]}:{tools:null,parsingErrors:[Sy]}}function Wy(n){var l;const{success:a,data:t}=zy.safeParse(n);return a?((l=t==null?void 0:t.llm)==null?void 0:l.prompt_template)==null?{variables:null,parsingErrors:[]}:{variables:t.llm.prompt_template.variables,parsingErrors:[]}:{variables:null,parsingErrors:[vy]}}function Jy(n){const{instance:a,instanceMessages:t}=vr(),l={...a,template:{__type:"chat",messages:Object.values(t)}},{json:i,parseError:r}=Ve(n.attributes);if(r)return{playgroundInstance:{...l,spanId:(n==null?void 0:n.id)??null},parsingErrors:[fy]};const o=n.invocationParameters,d=jy(i);let{modelConfig:c}=d;const{parsingErrors:p}=d,{messages:f,messageParsingErrors:m}=$y({provider:(c==null?void 0:c.provider)??l.model.provider,parsedAttributes:i}),{output:g,outputParsingErrors:y}=Oy({provider:(c==null?void 0:c.provider)??l.model.provider,parsedAttributes:i}),{invocationParameters:k,parsingErrors:b}=By(i,o),{variables:S,parsingErrors:K}=Wy(i),{parsingErrors:T}=Uy(i);c=c!=null?{...c,invocationParameters:T.length>0?k.filter(D=>D.invocationName!==bn&&D.canonicalName!==vn):k}:null;const{tools:x,parsingErrors:L}=Gy(i),P=f==null?void 0:f.map(D=>({...D,content:D.role==="tool"?li(D.content):D.content}));return{playgroundInstance:{...l,model:c??l.model,template:P!=null?{__type:"chat",messages:P}:l.template,output:g,spanId:n.id,tools:x??l.tools},playgroundInput:S!=null?{variablesValueCache:S}:void 0,parsingErrors:[...m,...y,...p,...L,...b,...T,...K]}}const Zy=n=>xy.safeParse(n).success,Fs=({instance:n,templateFormat:a})=>{if(a==nn.NONE)return[];const t=new Set,l=n.template.__type,i=ap(a);switch(l){case"chat":{n.template.messages.forEach(r=>{(r.content==null?[]:i.extractVariables(r.content)).forEach(d=>{t.add(d)})});break}case"text_completion":{i.extractVariables(n.template.prompt).forEach(o=>{t.add(o)});break}default:Ce()}return Array.from(t)},Xy=({instances:n,templateFormat:a})=>a==nn.NONE?[]:Array.from(new Set(n.flatMap(t=>Fs({instance:t,templateFormat:a})))),Ks=({instances:n,templateFormat:a,input:t})=>{if(a==nn.NONE)return{variablesMap:{},variableKeys:[]};const l=Xy({instances:n,templateFormat:a}),i=t.variablesValueCache??{};return{variablesMap:l.reduce((o,d)=>(o[d]=i[d]||"",o),{}),variableKeys:l}};function aa(n,a){return n.invocationName===a.invocationName||n.canonicalName!=null&&a.canonicalName!=null&&n.canonicalName===a.canonicalName}const Yy=(n,a)=>n.filter(t=>a.some(l=>aa(l,t))).map(t=>{var l;return{...t,invocationName:((l=a.find(i=>aa(i,t)))==null?void 0:l.invocationName)??t.invocationName}}),qa=n=>n.replace(/_([a-z])/g,(a,t)=>t.toUpperCase()),ef=(n,a)=>Object.entries(n).map(([t,l])=>{const i=a.find(r=>r.canonicalName&&r.canonicalName.toLowerCase()===t.toLowerCase()||r.invocationName&&r.invocationName.toLowerCase()===t.toLowerCase());return i==null||i.invocationInputField==null||i.invocationName==null?null:{canonicalName:i.canonicalName,invocationName:i.invocationName,[qa(i.invocationInputField)]:l}}).filter(t=>t!=null),Ts=n=>{const{provider:a,validatedToolDefinition:t}=ip(n.definition);switch(a){case"OPENAI":case"AZURE_OPENAI":return t.function.name;case"ANTHROPIC":return t.name;case"UNKNOWN":return null;default:Ce()}},nf=({provider:n,toolNumber:a})=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return{id:tt(),definition:Di(a)};case"ANTHROPIC":return{id:tt(),definition:lp(a)};case"GOOGLE":return{id:tt(),definition:Di(a)};default:Ce()}},af=n=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return xi();case"ANTHROPIC":return tp();case"GOOGLE":return xi();default:Ce()}};function tf(n){return{content:n.content,role:lf(n.role),toolCalls:n.toolCalls,toolCallId:n.toolCallId}}function lf(n){switch(n){case"system":return"SYSTEM";case"user":return"USER";case"tool":return"TOOL";case"ai":return"AI";default:Ce()}}const Ps=({playgroundStore:n,instanceId:a,credentials:t})=>{var m;const{instances:l,allInstanceMessages:i}=n.getState(),r=l.find(g=>g.id===a);if(!r)throw new Error(`No instance found for id ${a}`);if(r.template.__type!=="chat")throw new Error("We only support chat templates for now");const o=r.template.messageIds.map(g=>i[g]).filter(g=>g!=null),d=r.model.supportedInvocationParameters;let c=[...r.model.invocationParameters];const p=Al({toolChoice:r.toolChoice,targetProvider:r.model.provider});r.tools.length>0?(c=c.filter(g=>g.invocationName!==Ea&&g.canonicalName!==Yn),c.push({canonicalName:Yn,invocationName:Ea,valueJson:p})):c=c.filter(g=>g.invocationName!==Ea&&g.canonicalName!==Yn),c=d.length?Yy(c,d):c;const f=r.model.provider==="AZURE_OPENAI"?{endpoint:r.model.endpoint,apiVersion:r.model.apiVersion}:{};return{messages:o.map(tf),model:{providerKey:r.model.provider,name:r.model.modelName||"",baseUrl:r.model.baseUrl,...f},invocationParameters:xs(c,r.model.provider,r.model.modelName),tools:r.tools.length?r.tools.map(g=>g.definition):void 0,apiKey:t[r.model.provider]||null,promptName:(m=r.prompt)==null?void 0:m.name}},el=(n,a)=>{if(n.template.__type==="chat"){const{messageIds:t,...l}=n.template;return{...n,template:{...l,messages:n.template.messageIds.map(i=>a[i])}}}return n},rf=({playgroundStore:n,instanceId:a,credentials:t})=>{const l=Ps({playgroundStore:n,instanceId:a,credentials:t}),{instances:i,templateFormat:r,input:o,allInstanceMessages:d}=n.getState(),c=i.map(f=>el(f,d)),{variablesMap:p}=Ks({instances:c,input:o,templateFormat:r});return{...l,template:{variables:p,format:r}}},Oi=({playgroundStore:n,instanceId:a,credentials:t,datasetId:l})=>({...Ps({playgroundStore:n,instanceId:a,credentials:t}),templateFormat:n.getState().templateFormat,datasetId:l});function li(n){if(typeof n=="string"){const a=n.startsWith('"{')||n.startsWith('"[')||n.startsWith('"\\"');try{if(a){const l=JSON.parse(n),i=typeof l=="string"?JSON.parse(l):l;return JSON.stringify(i,null,2)}}catch{}if(/^\s*[0-9{[]|true|false|null/.test(n))return n}return JSON.stringify(n,null,2)}function Is(n,a){return a.filter(t=>t.required).every(t=>n.some(l=>aa(l,t)))}const sf=n=>{for(const[a,t]of Object.entries(n))if(a.endsWith("DefaultValue")&&t!=null)return n[a]};function WC(n,a){const t=new Map(n.map(l=>[l.invocationName,l]));return a.forEach(l=>{var c;const i=l.invocationName,r=sf(l),o=qa(l.invocationInputField||"");if(!l.invocationName||!l.invocationInputField||!i||r==null||((c=t.get(i))==null?void 0:c[o])!=null)return;const d={canonicalName:l.canonicalName,invocationName:l.invocationName,[o]:r};t.set(i,d)}),Array.from(t.values())}const of=w.object({type:w.literal("enabled")}).passthrough(),df=w.object({type:w.enum(["any","tool"])}).passthrough(),cf=(n,a)=>{if(!a)return n;const t=n.some(l=>l.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&l.valueJson&&of.safeParse(l.valueJson).success);return n.filter(l=>{if(l.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&!l.valueJson)return!1;if(t){if(l.canonicalName==="TEMPERATURE"||l.canonicalName==="TOP_P")return!1;if(l.canonicalName===Yn)return!df.safeParse(l.valueJson).success}return!0})},xs=(n,a,t)=>a==="ANTHROPIC"?cf(n,t):n,Ds=u.createContext(null);function JC({children:n,...a}){const[t]=u.useState(()=>rp(a));return e(Ds.Provider,{value:t,children:n})}function Ma(n,a){const t=he.useContext(Ds);if(!t)throw new Error("Missing CredentialsContext.Provider in the tree");return ut(t,n,a)}const _s=u.createContext(null);function uf(){const n=u.useContext(_s);if(n===null)throw new Error("useFunctionality must be used within a FunctionalityProvider");return n}function ZC(n){return e(_s.Provider,{value:{authenticationEnabled:window.Config.authenticationEnabled},children:n.children})}const Ls={argumentDefinitions:[],kind:"Fragment",metadata:null,name:"GenerativeProvidersCard_data",selections:[{alias:null,args:null,concreteType:"GenerativeProvider",kind:"LinkedField",name:"modelProviders",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"name",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"key",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependenciesInstalled",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependencies",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeyEnvVar",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeySet",storageKey:null}],storageKey:null}],type:"Query",abstractKey:null};Ls.hash="0168d590171b96e7a2e41449a41754be";function mf({query:n}){const[a,t]=u.useState(null),l=Ma(f=>f),i=Ma(f=>f.setCredential),r=I.useFragment(Ls,n),o=u.useMemo(()=>[...r.modelProviders],[r]),d=u.useMemo(()=>[{header:"Name",accessorKey:"name",cell:({row:f})=>s(h,{direction:"row",alignItems:"center",gap:"size-100",children:[e(zt,{provider:f.original.key,height:18}),f.original.name]})},{header:"Environment Variable",accessorKey:"apiKeyEnvVar",cell:({row:f})=>e(v,{children:f.original.apiKeyEnvVar})},{header:"configuration",accessorKey:"apiKeySet",cell:({row:f})=>f.original.dependenciesInstalled?l[f.original.key]?e(v,{color:"success",children:"local"}):f.original.apiKeySet?e(v,{color:"success",children:"configured on the server"}):e(v,{color:"text-700",children:"not configured"}):e(v,{color:"warning",children:"missing dependencies"})},{header:"",accessorKey:"id",cell:({row:f})=>e(h,{direction:"row",justifyContent:"end",gap:"size-100",width:"100%",children:e(V,{size:"S",leadingVisual:e(_,{svg:e(gt,{})}),onPress:()=>{t(f.original)}})})}],[l]),c=Le({columns:d,data:o,getCoreRowModel:we(),getSortedRowModel:In()}),p=c.getRowModel().rows;return s(B,{title:"AI Providers",bodyStyle:{padding:0},variant:"compact",children:[s("table",{css:dn,children:[e("thead",{children:c.getHeaderGroups().map(f=>e("tr",{children:f.headers.map(m=>e("th",{colSpan:m.colSpan,children:m.isPlaceholder?null:e("div",{children:J(m.column.columnDef.header,m.getContext())})},m.id))},f.id))}),e("tbody",{children:p.map(f=>e("tr",{children:f.getVisibleCells().map(m=>e("td",{children:J(m.column.columnDef.cell,m.getContext())},m.id))},f.id))})]}),e(ae,{type:"modal",isDismissable:!0,onDismiss:()=>t(null),children:a&&s(Z,{title:`Set ${a.name} API Key`,size:"S",children:[s(C,{padding:"size-200",children:[e(C,{paddingBottom:"size-100",children:s(v,{size:"XS",children:["Set the credentials for the ",a.name," API. These credentials will be stored entirely in your browser and will only be sent to the server during API requests."]})}),s(X,{onChange:f=>{i({provider:a.key,value:f})},value:l[a.key],type:"password",children:[e(W,{children:`${a.name} API Key`}),e(re,{placeholder:`e.g. ${a.apiKeyEnvVar}`}),e(v,{slot:"description",children:"The API key will be stored locally in your browser"})]})]}),e(C,{paddingX:"size-200",paddingY:"size-100",borderTopWidth:"thin",borderColor:"light",children:e(h,{direction:"row",justifyContent:"end",gap:"size-100",children:e(V,{variant:"primary",size:"S",onPress:()=>{t(null)},children:"Set API Key"})})})]})})]})}function XC(){const n=qe();return Je(n),e(mf,{query:n})}const ws={fragment:{argumentDefinitions:[],kind:"Fragment",metadata:null,name:"settingsAIProvidersPageLoaderQuery",selections:[{args:null,kind:"FragmentSpread",name:"GenerativeProvidersCard_data"}],type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:[],kind:"Operation",name:"settingsAIProvidersPageLoaderQuery",selections:[{alias:null,args:null,concreteType:"GenerativeProvider",kind:"LinkedField",name:"modelProviders",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"name",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"key",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependenciesInstalled",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"dependencies",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeyEnvVar",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"apiKeySet",storageKey:null}],storageKey:null}]},params:{cacheID:"cc6e19e54ea894e905970362ee382e43",id:null,metadata:{},name:"settingsAIProvidersPageLoaderQuery",operationKind:"query",text:`query settingsAIProvidersPageLoaderQuery {
2
2
  ...GenerativeProvidersCard_data
3
3
  }
4
4
 
phoenix/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "8.26.3"
1
+ __version__ = "8.27.0"