arize-phoenix 8.14.1__py3-none-any.whl → 8.15.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.
- {arize_phoenix-8.14.1.dist-info → arize_phoenix-8.15.0.dist-info}/METADATA +1 -1
- {arize_phoenix-8.14.1.dist-info → arize_phoenix-8.15.0.dist-info}/RECORD +12 -12
- phoenix/server/api/queries.py +12 -8
- phoenix/server/static/.vite/manifest.json +9 -9
- phoenix/server/static/assets/{components-BugmFXye.js → components-B1h2vIB3.js} +182 -171
- phoenix/server/static/assets/{index-CsMfMrpZ.js → index-D27y64mn.js} +1 -1
- phoenix/server/static/assets/{pages-CEf35SdW.js → pages-DV4OMLyH.js} +3 -3
- phoenix/version.py +1 -1
- {arize_phoenix-8.14.1.dist-info → arize_phoenix-8.15.0.dist-info}/WHEEL +0 -0
- {arize_phoenix-8.14.1.dist-info → arize_phoenix-8.15.0.dist-info}/entry_points.txt +0 -0
- {arize_phoenix-8.14.1.dist-info → arize_phoenix-8.15.0.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-8.14.1.dist-info → arize_phoenix-8.15.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as t,j as o,bo as z,l as c,O as w,R as P,E as b,cx as k,ei as S,ej as F,ek as L,el as l,v as C,em as E}from"./vendor-BT2CVKel.js";import{c as R,x as I,D as j,M as A,N as T}from"./vendor-arizeai-Dzsaenki.js";import{L as _,r as O,d as D,e as G,F as M,f as N,P as V,h as q,M as m,g as U,D as W,i as B,E as J,j as K,k as $,p as H,l as Q,n as p,o as Y,q as X,s as Z,S as oo,t as lo,v as ao,w as ro,x as co,y as u,z as f,A as y,B as go,C as eo,G as bo,H as no,I as io,J as so,K as to,N as mo,O as po,Q as uo,U as fo,V as yo,W as vo,X as ho,Y as xo,Z as zo,_ as wo,$ as Po,a0 as ko,a1 as So,a2 as Fo,a3 as Lo,a4 as Co,a5 as Eo,a6 as Ro,a7 as Io,a8 as jo,a9 as Ao,aa as To,ab as _o,ac as Oo,ad as Do,ae as Go,af as Mo}from"./pages-
|
|
1
|
+
import{r as t,j as o,bo as z,l as c,O as w,R as P,E as b,cx as k,ei as S,ej as F,ek as L,el as l,v as C,em as E}from"./vendor-BT2CVKel.js";import{c as R,x as I,D as j,M as A,N as T}from"./vendor-arizeai-Dzsaenki.js";import{L as _,r as O,d as D,e as G,F as M,f as N,P as V,h as q,M as m,g as U,D as W,i as B,E as J,j as K,k as $,p as H,l as Q,n as p,o as Y,q as X,s as Z,S as oo,t as lo,v as ao,w as ro,x as co,y as u,z as f,A as y,B as go,C as eo,G as bo,H as no,I as io,J as so,K as to,N as mo,O as po,Q as uo,U as fo,V as yo,W as vo,X as ho,Y as xo,Z as zo,_ as wo,$ as Po,a0 as ko,a1 as So,a2 as Fo,a3 as Lo,a4 as Co,a5 as Eo,a6 as Ro,a7 as Io,a8 as jo,a9 as Ao,aa as To,ab as _o,ac as Oo,ad as Do,ae as Go,af as Mo}from"./pages-DV4OMLyH.js";import{z as No,dO as Vo,by as qo,R as Uo,dP as Wo,dQ as Bo}from"./components-B1h2vIB3.js";import"./vendor-three-C5WAXd5r.js";import"./vendor-codemirror-D2R3PB3i.js";import"./vendor-shiki-dzrzjP7E.js";import"./vendor-recharts-DetvdWCF.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 Jo(){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 Ko(){const a=P.useContext(h);if(a===null)throw new Error("useFeatureFlags must be used within a FeatureFlagsProvider");return a}function $o(a){const[e,i]=t.useState(Jo()),s=r=>{localStorage.setItem(v,JSON.stringify(r)),i(r)};return o(h.Provider,{value:{featureFlags:e,setFeatureFlags:s},children:o(Ho,{children:a.children})})}function Ho(a){const{children:e}=a,{featureFlags:i,setFeatureFlags:s}=Ko(),[r,g]=t.useState(!1);return z("ctrl+shift+f",()=>g(!0)),c(w,{children:[e,o(j,{type:"modal",isDismissable:!0,onDismiss:()=>g(!1),children:r&&o(R,{title:"Feature Flags",children:o(No,{height:"size-1000",padding:"size-100",children:Object.keys(i).map(n=>o(I,{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,b3 as ye,b4 as Qe,b5 as Ne,b6 as kt,B as Ct,r as m,j as e,R as fe,u as st,v as D,l as s,az as _e,aA as Sn,aC as Le,aD as J,Q as Z,S as se,b7 as qe,ad as hl,b8 as yi,ac as Oe,ah as tn,ag as W,T as Pe,O as U,aw as oe,E as K,b9 as Ie,aI as de,ba as rm,a8 as kl,ax as va,a9 as bl,bb as pn,bc as sm,aJ as om,bd as dm,H as fi,be as Ft,bf as Ee,bg as _n,bh as Ln,bi as vn,o as sr,F as hi,I as cm,bj as um,bk as el,bl as nl,bm as Ba,bn as We,n as ot,bo as mm,aS as or,bp as pm,bq as ki,br as gm,bs as ym,bt as fm,bu as hm,bv as km,bw as bm,bx as Sm,by as vm,bz as Cm,bA as at,D as Fm,bB as Km,bC as gt,g as dr,bD as Tm,aE as Sl,bE as cr,bF as ur,bG as mr,bH as Pm,ai as Im,bI as xm,ae as Dm,af as _m,bJ as Lm,p as wm}from"./vendor-BT2CVKel.js";import{c as X,D as ne,C as B,t as vl,h as Cn,L as Kt,v as Tt,A as be,w as pr,o as Cl,P as Ra,f as $e,g as aa,T as he,E as Pt,a as Re,q as ta,r as Va,d as la,x as Ca,b as Fl,s as It,y as Em,i as xt,z as Mm,B as Rm,G as Vm,H as Kl,J as Tl,u as Am,K as Nm}from"./vendor-arizeai-Dzsaenki.js";import{s as zm,l as $m,j as Pl,a as Me,i as Il,b as gr,c as Om,d as Xn,e as wn,f as yr,D as fr,g as Jn,h as et,k as Qm,m as Se,T as en,n as jm,o as xl,p as bi,q as qm,r as Si,t as Bm,u as Um,v as Hm,G as Dt,_ as h,w as v,x as R,I as _,E as _t,y as on,z as C,A as ee,R as Ce,B as De,C as Fe,F as xe,H as we,J as Ve,K as dn,L as cn,M as un,N as Dl,O as ve,P as Fn,Q as hr,S as Ue,U as te,V as ce,W as He,X as kr,Y as St,Z as ze,$ as Vn,a0 as Gm,a1 as Ye,a2 as br,a3 as ml,a4 as _l,a5 as Wm,a6 as Jm,a7 as pl,a8 as yt,a9 as ue,aa as Sr,ab as Zm,ac as Xm,ad as mn,ae as Ym,af as Pn,ag as ep,ah as vr,ai as Lt,aj as Fa,ak as Ll,al as wl,am as Cr,an as np,ao as ap,ap as tp,aq as lp,ar as ip,as as rp,at as sp,au as me,av as gl,aw as pe,ax as ge,ay as nn,az as op,aA as dp,aB as cp,aC as ln,aD as re,aE as Fr,aF as up,aG as mp,aH as pp,aI as wt,aJ as Et,aK as Kr,aL as gp,aM as yp,aN as fp,aO as Mt,aP as hp,aQ as Tr,aR as _a,aS as tt,aT as Je,aU as kp,aV as El,aW as gn,aX as bp,aY as Sp,aZ as vp,a_ as xn,a$ as Be,b0 as Ge,b1 as Pr,b2 as ia,b3 as Ae,b4 as Aa,b5 as An,b6 as En,b7 as Rt,b8 as Na,b9 as Ka,ba as Ir,bb as rn,bc as xr,bd as Cp,be as Ml,bf as ya,bg as Hn,bh as Fp,bi as Kp,bj as Rl,bk as Vt,bl as Nn,bm as ra,bn as Dr,bo as vi,bp as Tp,bq as Pp,br as lt,bs as Ip,bt as nt,bu as Xe,bv as xp,bw as Dp,bx as At,by as zn,bz as _p,bA as Lp,bB as sn,bC as kn,bD as za,bE as Vl,bF as _r,bG as Al,bH as wp,bI as Nl,bJ as Ep,bK as Mp,bL as zl,bM as dt,bN as Lr,bO as wr,bP as Er,bQ as Ze,bR as Mr,bS as yl,bT as Rp,bU as $l,bV as Ol,bW as Rr,bX as Vp,bY as Ap,bZ as Np,b_ as zp,b$ as $p,c0 as Op,c1 as fa,c2 as Ql,c3 as Qp,c4 as Vr,c5 as jp,c6 as qp,c7 as Bp,c8 as Up,c9 as Hp,ca as Gp,cb as Wp,cc as Nt,cd as Jp,ce as Zp,cf as Xp,cg as Yp,ch as Ci,ci as eg,cj as Kn,ck as $n,cl as jl,cm as Ar,cn as Nr,co as Fi,cp as Ki,cq as ng,cr as ag,cs as H,ct as zr,cu as zt,cv as $t,cw as $a,cx as $r,cy as Oa,cz as Qa,cA as Or,cB as On,cC as Ot,cD as tg,cE as lg,cF as ig,cG as rg,cH as sg,cI as og,cJ as dg,cK as ka,cL as Qr,cM as cg,cN as ug,cO as Ti,cP as mg,cQ as pg,cR as gg,cS as yg,cT as fg,cU as hg,cV as jr,cW as kg,cX as bg,cY as Sg,cZ as vg,c_ as ba,c$ as ql,d0 as qr,d1 as Da,d2 as Qt,d3 as Br,d4 as Ur,d5 as al,d6 as Cg,d7 as Hr,d8 as Fg,d9 as Bl,da as jt,db as fn,dc as Kg,dd as Gr,de as Tg,df as Wr,dg as Jr,dh as Pg,di as Ig,dj as Zr,dk as Yn,dl as xg,dm as Dg,dn as Pi,dp as _g,dq as Lg,dr as wg,ds as Eg,dt as Mg,du as Rg,dv as La,dw as Vg,dx as Ag,dy as Ng,dz as zg,dA as qt,dB as Xr,dC as Ii,dD as $g,dE as Og,dF as Qg,dG as jg,dH as Yr,dI as es,dJ as qg,dK as Bg,dL as Ug,dM as xi,dN as Di}from"./components-BugmFXye.js";import{g as sa,i as oa,d as Hg,E as ns,R as da,k as Ul,b as Gg,p as ct,n as as}from"./vendor-codemirror-D2R3PB3i.js";import{P as ts,C as ls,T as Qn,a as is,R as jn,b as ut,X as ca,Y as bn,c as ua,B as Ea,A as it,d as rs,e as Hl,L as ss,f as Wg}from"./vendor-recharts-DetvdWCF.js";const Jg=4,Zg={user:["user","human"],ai:["assistant","bot","ai"],system:["system"],tool:["tool"]},Xg="Unable to parse span input messages, expected messages which include a role and content.",Yg="Unable to parse span output messages, expected messages which include a role and content.",ey="Unable to parse span output expected output.value to be present.",ny="Unable to parse span attributes, attributes must be valid JSON.",ay="Unable to parse model config, expected llm.model_name to be present.",ty="Unable to parse model config, expected llm.invocation_parameters JSON string to be present.",ly="Unable to parse invocation parameters response_format, expected llm.invocation_parameters.response_format to be a well formed json object or undefined.",iy="Unable to parse tools, expected tools to be an array of valid tools.",ry="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"]},Zn="TOOL_CHOICE",wa="tool_choice",Mn="RESPONSE_FORMAT",Dn="response_format",sy=[Zn,Mn],oy=w.object({tool_call:w.object({id:w.string().optional(),function:w.object({name:w.string(),arguments:w.string()}).partial()}).partial()}).partial(),os=w.object({[ye.message]:w.object({[Qe.role]:w.string(),[Qe.content]:w.union([w.string(),w.array(w.record(w.string(),w.unknown()))]).default(""),[Qe.tool_calls]:w.array(oy).optional(),[Qe.tool_call_id]:w.string().optional()})}),dy=w.object({[ye.llm]:w.object({[Ne.input_messages]:w.array(os)})}),cy=w.object({[ye.llm]:w.object({[Ne.output_messages]:w.array(os)})}),uy=w.object({[ye.output]:w.object({value:w.string()})}),ds=zm()(w.enum(["user","ai","system","tool"])),my=w.object({id:w.number(),role:ds,content:w.string().optional(),toolCallId:w.string().optional(),toolCalls:w.array($m).optional()}),py=w.array(my),Gl=w.lazy(()=>w.record(Pl)),gy=Gl,cs=w.string().transform((n,a)=>{const{json:t}=Me(n);if(!Il(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}=gy.safeParse(t);return l?i:(a.addIssue({code:w.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),w.NEVER)}).default("{}"),yy=w.object({[ye.llm]:w.object({[Ne.provider]:w.string().optional(),[Ne.model_name]:w.string()})}),us=w.object({[ye.llm]:w.object({[Ne.invocation_parameters]:cs})}),fy=w.object({[ye.llm]:w.object({[Ne.invocation_parameters]:cs.pipe(w.object({response_format:Gl.optional()}))})}),hy=w.object({url:w.object({full:w.string(),path:w.string().optional()})}),ky=w.string().transform((n,a)=>{const{json:t}=Me(n);return t==null||!Il(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}=gr.safeParse(n);return l?t:(a.addIssue({code:w.ZodIssueCode.custom,message:"The tool JSON schema must be a valid tool schema"}),w.NEVER)}),by=w.object({[ye.llm]:w.object({[Ne.tools]:w.array(w.object({[ye.tool]:w.object({[kt.json_schema]:ky})}).optional()).optional()}).optional()}).optional(),Sy=w.lazy(()=>w.object({type:w.literal("json_schema"),json_schema:w.object({name:w.string().describe("The name of the schema"),schema:Om.describe("The schema itself in JSON schema format"),strict:w.literal(!0).describe("The schema must be strict")})})),vy=Ct(Sy,{removeAdditionalStrategy:"passthrough"}),Cy=w.string().transform((n,a)=>{const{json:t}=Me(n);return Xn(t)?Object.entries(t).reduce((i,[r,o])=>{if(typeof o=="string")i[r]=o;else{const{json:d}=wn(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)}),Fy=w.object({[ye.llm]:w.object({[Ne.prompt_template]:w.object({variables:Cy}).optional()}).optional()}).optional();function ms(n){return ds.safeParse(n).success}function Gn(n){const a=n.toLowerCase();if(ms(a))return a;for(const[t,l]of Object.entries(Zg))if(l.includes(a))return t;return Qm}function Ky({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}=Me(t.function.arguments);Xn(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:Se()}}).filter(t=>t!=null)}function ps({messages:n,provider:a}){return n.map(({message:t})=>({id:Jn(),role:t.tool_call_id!=null?Gn("tool"):Gn(t.role),content:typeof t.content=="string"?t.content:void 0,toolCalls:Ky({provider:a,toolCalls:t.tool_calls}),toolCallId:t.tool_call_id}))}function Ty({provider:n,parsedAttributes:a}){var l;const t=dy.safeParse(a);if(!t.success)return{messageParsingErrors:[Xg],messages:null};if(n==="ANTHROPIC"){const{success:i,data:r}=us.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:ps({provider:n,messages:t.data.llm.input_messages})}}function Py({provider:n,parsedAttributes:a}){const t=[],l=cy.safeParse(a);if(l.success)return{output:ps({provider:n,messages:l.data.llm.output_messages}),outputParsingErrors:t};t.push(Yg);const i=uy.safeParse(a);return i.success?{output:i.data.output.value,outputParsingErrors:t}:(t.push(ey),{output:void 0,outputParsingErrors:t})}function gs(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 Iy(n){for(const a of Object.keys(_i))if(_i[a].some(l=>n.includes(l)))return a;return fr}function xy(n){const{success:a,data:t}=yy.safeParse(n);if(a){const l=gs(t.llm.provider)||Iy(t.llm.model_name),i=Dy(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:[ay]}}function Dy(n){const{success:a,data:t}=hy.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 _y(n,a=[]){const{success:t,data:l}=us.safeParse(n),i=[];return t||i.push(ty),{invocationParameters:zy((l==null?void 0:l.llm.invocation_parameters)??{},a),parsingErrors:i}}function Ly(n){const{success:a,data:t}=fy.safeParse(n);return a?{responseFormat:t.llm.invocation_parameters.response_format,parsingErrors:[]}:{responseFormat:void 0,parsingErrors:[ly]}}function wy(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:et(),definition:t.tool.json_schema}).filter(t=>t!=null)}function Ey(n){var l;const{data:a,success:t}=by.safeParse(n);return t?((l=a==null?void 0:a.llm)==null?void 0:l.tools)==null?{tools:null,parsingErrors:[]}:{tools:wy(a),parsingErrors:[]}:{tools:null,parsingErrors:[iy]}}function My(n){var l;const{success:a,data:t}=Fy.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:[ry]}}function Ry(n){const{instance:a,instanceMessages:t}=yr(),l={...a,template:{__type:"chat",messages:Object.values(t)}},{json:i,parseError:r}=Me(n.attributes);if(r)return{playgroundInstance:{...l,spanId:(n==null?void 0:n.id)??null},parsingErrors:[ny]};const o=n.invocationParameters,d=xy(i);let{modelConfig:c}=d;const{parsingErrors:p}=d,{messages:f,messageParsingErrors:u}=Ty({provider:(c==null?void 0:c.provider)??l.model.provider,parsedAttributes:i}),{output:g,outputParsingErrors:y}=Py({provider:(c==null?void 0:c.provider)??l.model.provider,parsedAttributes:i}),{invocationParameters:k,parsingErrors:b}=_y(i,o),{variables:S,parsingErrors:F}=My(i),{parsingErrors:T}=Ly(i);c=c!=null?{...c,invocationParameters:T.length>0?k.filter(P=>P.invocationName!==Dn&&P.canonicalName!==Mn):k}:null;const{tools:x,parsingErrors:L}=Ey(i);return{playgroundInstance:{...l,model:c??l.model,template:f!=null?{__type:"chat",messages:f}:l.template,output:g,spanId:n.id,tools:x??l.tools},playgroundInput:S!=null?{variablesValueCache:S}:void 0,parsingErrors:[...u,...y,...p,...L,...b,...T,...F]}}const Vy=n=>py.safeParse(n).success,ys=({instance:n,templateFormat:a})=>{if(a==en.NONE)return[];const t=new Set,l=n.template.__type,i=jm(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:Se()}return Array.from(t)},Ay=({instances:n,templateFormat:a})=>a==en.NONE?[]:Array.from(new Set(n.flatMap(t=>ys({instance:t,templateFormat:a})))),fs=({instances:n,templateFormat:a,input:t})=>{if(a==en.NONE)return{variablesMap:{},variableKeys:[]};const l=Ay({instances:n,templateFormat:a}),i=t.variablesValueCache??{};return{variablesMap:l.reduce((o,d)=>(o[d]=i[d]||"",o),{}),variableKeys:l}};function ea(n,a){return n.invocationName===a.invocationName||n.canonicalName!=null&&a.canonicalName!=null&&n.canonicalName===a.canonicalName}const Ny=(n,a)=>n.filter(t=>a.some(l=>ea(l,t))).map(t=>{var l;return{...t,invocationName:((l=a.find(i=>ea(i,t)))==null?void 0:l.invocationName)??t.invocationName}}),ja=n=>n.replace(/_([a-z])/g,(a,t)=>t.toUpperCase()),zy=(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,[ja(i.invocationInputField)]:l}}).filter(t=>t!=null),hs=n=>{const{provider:a,validatedToolDefinition:t}=Um(n.definition);switch(a){case"OPENAI":case"AZURE_OPENAI":return t.function.name;case"ANTHROPIC":return t.name;case"UNKNOWN":return null;default:Se()}},$y=({provider:n,toolNumber:a})=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return{id:et(),definition:Si(a)};case"ANTHROPIC":return{id:et(),definition:Bm(a)};case"GOOGLE":return{id:et(),definition:Si(a)};default:Se()}},Oy=n=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return bi();case"ANTHROPIC":return qm();case"GOOGLE":return bi();default:Se()}};function Qy(n){return{content:n.content,role:jy(n.role),toolCalls:n.toolCalls,toolCallId:n.toolCallId}}function jy(n){switch(n){case"system":return"SYSTEM";case"user":return"USER";case"tool":return"TOOL";case"ai":return"AI";default:Se()}}const ks=({playgroundStore:n,instanceId:a,credentials:t})=>{var u;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=xl({toolChoice:r.toolChoice,targetProvider:r.model.provider});r.tools.length>0?(c=c.filter(g=>g.invocationName!==wa&&g.canonicalName!==Zn),c.push({canonicalName:Zn,invocationName:wa,valueJson:p})):c=c.filter(g=>g.invocationName!==wa&&g.canonicalName!==Zn),c=d.length?Ny(c,d):c;const f=r.model.provider==="AZURE_OPENAI"?{endpoint:r.model.endpoint,apiVersion:r.model.apiVersion}:{};return{messages:o.map(Qy),model:{providerKey:r.model.provider,name:r.model.modelName||"",baseUrl:r.model.baseUrl,...f},invocationParameters:Ss(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:(u=r.prompt)==null?void 0:u.name}},Bt=(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},qy=({playgroundStore:n,instanceId:a,credentials:t})=>{const l=ks({playgroundStore:n,instanceId:a,credentials:t}),{instances:i,templateFormat:r,input:o,allInstanceMessages:d}=n.getState(),c=i.map(f=>Bt(f,d)),{variablesMap:p}=fs({instances:c,input:o,templateFormat:r});return{...l,template:{variables:p,format:r}}},Li=({playgroundStore:n,instanceId:a,credentials:t,datasetId:l})=>({...ks({playgroundStore:n,instanceId:a,credentials:t}),templateFormat:n.getState().templateFormat,datasetId:l});function Ut(n){if(n===""||typeof n>"u")return"{}";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 bs(n,a){return a.filter(t=>t.required).every(t=>n.some(l=>ea(l,t)))}const By=n=>{for(const[a,t]of Object.entries(n))if(a.endsWith("DefaultValue")&&t!=null)return n[a]};function v2(n,a){const t=new Map(n.map(l=>[l.invocationName,l]));return a.forEach(l=>{var c;const i=l.invocationName,r=By(l),o=ja(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 Uy=w.object({type:w.literal("enabled")}).passthrough(),Hy=w.object({type:w.enum(["any","tool"])}).passthrough(),Gy=(n,a)=>{if(!a)return n;const t=n.some(l=>l.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&l.valueJson&&Uy.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===Zn)return!Hy.safeParse(l.valueJson).success}return!0})},Ss=(n,a,t)=>a==="ANTHROPIC"?Gy(n,t):n,vs=m.createContext(null);function C2({children:n,...a}){const[t]=m.useState(()=>Hm(a));return e(vs.Provider,{value:t,children:n})}function Ma(n,a){const t=fe.useContext(vs);if(!t)throw new Error("Missing CredentialsContext.Provider in the tree");return st(t,n,a)}const Cs=m.createContext(null);function Wy(){const n=m.useContext(Cs);if(n===null)throw new Error("useFunctionality must be used within a FunctionalityProvider");return n}function F2(n){return e(Cs.Provider,{value:{authenticationEnabled:window.Config.authenticationEnabled},children:n.children})}const Fs={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};Fs.hash="0168d590171b96e7a2e41449a41754be";function Jy({query:n}){const[a,t]=m.useState(null),l=Ma(f=>f),i=Ma(f=>f.setCredential),r=D.useFragment(Fs,n),o=m.useMemo(()=>[...r.modelProviders],[r]),d=m.useMemo(()=>[{header:"Name",accessorKey:"name",cell:({row:f})=>s(h,{direction:"row",alignItems:"center",gap:"size-100",children:[e(Dt,{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(R,{size:"S",leadingVisual:e(_,{svg:e(_t,{})}),onPress:()=>{t(f.original)}})})}],[l]),c=_e({columns:d,data:o,getCoreRowModel:Le(),getSortedRowModel:Sn()}),p=c.getRowModel().rows;return s(B,{title:"AI Providers",bodyStyle:{padding:0},variant:"compact",children:[s("table",{css:on,children:[e("thead",{children:c.getHeaderGroups().map(f=>e("tr",{children:f.headers.map(u=>e("th",{colSpan:u.colSpan,children:u.isPlaceholder?null:e("div",{children:J(u.column.columnDef.header,u.getContext())})},u.id))},f.id))}),e("tbody",{children:p.map(f=>e("tr",{children:f.getVisibleCells().map(u=>e("td",{children:J(u.column.columnDef.cell,u.getContext())},u.id))},f.id))})]}),e(ne,{type:"modal",isDismissable:!0,onDismiss:()=>t(null),children:a&&s(X,{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(ee,{onChange:f=>{i({provider:a.key,value:f})},value:l[a.key],type:"password",children:[e(Z,{children:`${a.name} API Key`}),e(se,{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(R,{variant:"primary",size:"S",onPress:()=>{t(null)},children:"Set API Key"})})})]})})]})}function K2(){const n=qe();return e(Jy,{query:n})}const Ks={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,b3 as ye,b4 as Qe,b5 as Ne,b6 as kt,B as Ct,r as m,j as e,R as fe,u as st,v as D,l as s,az as _e,aA as Sn,aC as Le,aD as J,Q as Z,S as se,b7 as qe,ad as hl,b8 as yi,ac as Oe,ah as tn,ag as W,T as Pe,O as U,aw as oe,E as K,b9 as Ie,aI as de,ba as rm,a8 as kl,ax as va,a9 as bl,bb as pn,bc as sm,aJ as om,bd as dm,H as fi,be as Ft,bf as Ee,bg as _n,bh as Ln,bi as vn,o as sr,F as hi,I as cm,bj as um,bk as el,bl as nl,bm as Ba,bn as We,n as ot,bo as mm,aS as or,bp as pm,bq as ki,br as gm,bs as ym,bt as fm,bu as hm,bv as km,bw as bm,bx as Sm,by as vm,bz as Cm,bA as at,D as Fm,bB as Km,bC as gt,g as dr,bD as Tm,aE as Sl,bE as cr,bF as ur,bG as mr,bH as Pm,ai as Im,bI as xm,ae as Dm,af as _m,bJ as Lm,p as wm}from"./vendor-BT2CVKel.js";import{c as X,D as ne,C as B,t as vl,h as Cn,L as Kt,v as Tt,A as be,w as pr,o as Cl,P as Ra,f as $e,g as aa,T as he,E as Pt,a as Re,q as ta,r as Va,d as la,x as Ca,b as Fl,s as It,y as Em,i as xt,z as Mm,B as Rm,G as Vm,H as Kl,J as Tl,u as Am,K as Nm}from"./vendor-arizeai-Dzsaenki.js";import{s as zm,l as $m,j as Pl,a as Me,i as Il,b as gr,c as Om,d as Xn,e as wn,f as yr,D as fr,g as Jn,h as et,k as Qm,m as Se,T as en,n as jm,o as xl,p as bi,q as qm,r as Si,t as Bm,u as Um,v as Hm,G as Dt,_ as h,w as v,x as R,I as _,E as _t,y as on,z as C,A as ee,R as Ce,B as De,C as Fe,F as xe,H as we,J as Ve,K as dn,L as cn,M as un,N as Dl,O as ve,P as Fn,Q as hr,S as Ue,U as te,V as ce,W as He,X as kr,Y as St,Z as ze,$ as Vn,a0 as Gm,a1 as Ye,a2 as br,a3 as ml,a4 as _l,a5 as Wm,a6 as Jm,a7 as pl,a8 as yt,a9 as ue,aa as Sr,ab as Zm,ac as Xm,ad as mn,ae as Ym,af as Pn,ag as ep,ah as vr,ai as Lt,aj as Fa,ak as Ll,al as wl,am as Cr,an as np,ao as ap,ap as tp,aq as lp,ar as ip,as as rp,at as sp,au as me,av as gl,aw as pe,ax as ge,ay as nn,az as op,aA as dp,aB as cp,aC as ln,aD as re,aE as Fr,aF as up,aG as mp,aH as pp,aI as wt,aJ as Et,aK as Kr,aL as gp,aM as yp,aN as fp,aO as Mt,aP as hp,aQ as Tr,aR as _a,aS as tt,aT as Je,aU as kp,aV as El,aW as gn,aX as bp,aY as Sp,aZ as vp,a_ as xn,a$ as Be,b0 as Ge,b1 as Pr,b2 as ia,b3 as Ae,b4 as Aa,b5 as An,b6 as En,b7 as Rt,b8 as Na,b9 as Ka,ba as Ir,bb as rn,bc as xr,bd as Cp,be as Ml,bf as ya,bg as Hn,bh as Fp,bi as Kp,bj as Rl,bk as Vt,bl as Nn,bm as ra,bn as Dr,bo as vi,bp as Tp,bq as Pp,br as lt,bs as Ip,bt as nt,bu as Xe,bv as xp,bw as Dp,bx as At,by as zn,bz as _p,bA as Lp,bB as sn,bC as kn,bD as za,bE as Vl,bF as _r,bG as Al,bH as wp,bI as Nl,bJ as Ep,bK as Mp,bL as zl,bM as dt,bN as Lr,bO as wr,bP as Er,bQ as Ze,bR as Mr,bS as yl,bT as Rp,bU as $l,bV as Ol,bW as Rr,bX as Vp,bY as Ap,bZ as Np,b_ as zp,b$ as $p,c0 as Op,c1 as fa,c2 as Ql,c3 as Qp,c4 as Vr,c5 as jp,c6 as qp,c7 as Bp,c8 as Up,c9 as Hp,ca as Gp,cb as Wp,cc as Nt,cd as Jp,ce as Zp,cf as Xp,cg as Yp,ch as Ci,ci as eg,cj as Kn,ck as $n,cl as jl,cm as Ar,cn as Nr,co as Fi,cp as Ki,cq as ng,cr as ag,cs as H,ct as zr,cu as zt,cv as $t,cw as $a,cx as $r,cy as Oa,cz as Qa,cA as Or,cB as On,cC as Ot,cD as tg,cE as lg,cF as ig,cG as rg,cH as sg,cI as og,cJ as dg,cK as ka,cL as Qr,cM as cg,cN as ug,cO as Ti,cP as mg,cQ as pg,cR as gg,cS as yg,cT as fg,cU as hg,cV as jr,cW as kg,cX as bg,cY as Sg,cZ as vg,c_ as ba,c$ as ql,d0 as qr,d1 as Da,d2 as Qt,d3 as Br,d4 as Ur,d5 as al,d6 as Cg,d7 as Hr,d8 as Fg,d9 as Bl,da as jt,db as fn,dc as Kg,dd as Gr,de as Tg,df as Wr,dg as Jr,dh as Pg,di as Ig,dj as Zr,dk as Yn,dl as xg,dm as Dg,dn as Pi,dp as _g,dq as Lg,dr as wg,ds as Eg,dt as Mg,du as Rg,dv as La,dw as Vg,dx as Ag,dy as Ng,dz as zg,dA as qt,dB as Xr,dC as Ii,dD as $g,dE as Og,dF as Qg,dG as jg,dH as Yr,dI as es,dJ as qg,dK as Bg,dL as Ug,dM as xi,dN as Di}from"./components-B1h2vIB3.js";import{g as sa,i as oa,d as Hg,E as ns,R as da,k as Ul,b as Gg,p as ct,n as as}from"./vendor-codemirror-D2R3PB3i.js";import{P as ts,C as ls,T as Qn,a as is,R as jn,b as ut,X as ca,Y as bn,c as ua,B as Ea,A as it,d as rs,e as Hl,L as ss,f as Wg}from"./vendor-recharts-DetvdWCF.js";const Jg=4,Zg={user:["user","human"],ai:["assistant","bot","ai"],system:["system"],tool:["tool"]},Xg="Unable to parse span input messages, expected messages which include a role and content.",Yg="Unable to parse span output messages, expected messages which include a role and content.",ey="Unable to parse span output expected output.value to be present.",ny="Unable to parse span attributes, attributes must be valid JSON.",ay="Unable to parse model config, expected llm.model_name to be present.",ty="Unable to parse model config, expected llm.invocation_parameters JSON string to be present.",ly="Unable to parse invocation parameters response_format, expected llm.invocation_parameters.response_format to be a well formed json object or undefined.",iy="Unable to parse tools, expected tools to be an array of valid tools.",ry="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"]},Zn="TOOL_CHOICE",wa="tool_choice",Mn="RESPONSE_FORMAT",Dn="response_format",sy=[Zn,Mn],oy=w.object({tool_call:w.object({id:w.string().optional(),function:w.object({name:w.string(),arguments:w.string()}).partial()}).partial()}).partial(),os=w.object({[ye.message]:w.object({[Qe.role]:w.string(),[Qe.content]:w.union([w.string(),w.array(w.record(w.string(),w.unknown()))]).default(""),[Qe.tool_calls]:w.array(oy).optional(),[Qe.tool_call_id]:w.string().optional()})}),dy=w.object({[ye.llm]:w.object({[Ne.input_messages]:w.array(os)})}),cy=w.object({[ye.llm]:w.object({[Ne.output_messages]:w.array(os)})}),uy=w.object({[ye.output]:w.object({value:w.string()})}),ds=zm()(w.enum(["user","ai","system","tool"])),my=w.object({id:w.number(),role:ds,content:w.string().optional(),toolCallId:w.string().optional(),toolCalls:w.array($m).optional()}),py=w.array(my),Gl=w.lazy(()=>w.record(Pl)),gy=Gl,cs=w.string().transform((n,a)=>{const{json:t}=Me(n);if(!Il(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}=gy.safeParse(t);return l?i:(a.addIssue({code:w.ZodIssueCode.custom,message:"The invocation parameters must be a valid JSON object"}),w.NEVER)}).default("{}"),yy=w.object({[ye.llm]:w.object({[Ne.provider]:w.string().optional(),[Ne.model_name]:w.string()})}),us=w.object({[ye.llm]:w.object({[Ne.invocation_parameters]:cs})}),fy=w.object({[ye.llm]:w.object({[Ne.invocation_parameters]:cs.pipe(w.object({response_format:Gl.optional()}))})}),hy=w.object({url:w.object({full:w.string(),path:w.string().optional()})}),ky=w.string().transform((n,a)=>{const{json:t}=Me(n);return t==null||!Il(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}=gr.safeParse(n);return l?t:(a.addIssue({code:w.ZodIssueCode.custom,message:"The tool JSON schema must be a valid tool schema"}),w.NEVER)}),by=w.object({[ye.llm]:w.object({[Ne.tools]:w.array(w.object({[ye.tool]:w.object({[kt.json_schema]:ky})}).optional()).optional()}).optional()}).optional(),Sy=w.lazy(()=>w.object({type:w.literal("json_schema"),json_schema:w.object({name:w.string().describe("The name of the schema"),schema:Om.describe("The schema itself in JSON schema format"),strict:w.literal(!0).describe("The schema must be strict")})})),vy=Ct(Sy,{removeAdditionalStrategy:"passthrough"}),Cy=w.string().transform((n,a)=>{const{json:t}=Me(n);return Xn(t)?Object.entries(t).reduce((i,[r,o])=>{if(typeof o=="string")i[r]=o;else{const{json:d}=wn(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)}),Fy=w.object({[ye.llm]:w.object({[Ne.prompt_template]:w.object({variables:Cy}).optional()}).optional()}).optional();function ms(n){return ds.safeParse(n).success}function Gn(n){const a=n.toLowerCase();if(ms(a))return a;for(const[t,l]of Object.entries(Zg))if(l.includes(a))return t;return Qm}function Ky({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}=Me(t.function.arguments);Xn(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:Se()}}).filter(t=>t!=null)}function ps({messages:n,provider:a}){return n.map(({message:t})=>({id:Jn(),role:t.tool_call_id!=null?Gn("tool"):Gn(t.role),content:typeof t.content=="string"?t.content:void 0,toolCalls:Ky({provider:a,toolCalls:t.tool_calls}),toolCallId:t.tool_call_id}))}function Ty({provider:n,parsedAttributes:a}){var l;const t=dy.safeParse(a);if(!t.success)return{messageParsingErrors:[Xg],messages:null};if(n==="ANTHROPIC"){const{success:i,data:r}=us.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:ps({provider:n,messages:t.data.llm.input_messages})}}function Py({provider:n,parsedAttributes:a}){const t=[],l=cy.safeParse(a);if(l.success)return{output:ps({provider:n,messages:l.data.llm.output_messages}),outputParsingErrors:t};t.push(Yg);const i=uy.safeParse(a);return i.success?{output:i.data.output.value,outputParsingErrors:t}:(t.push(ey),{output:void 0,outputParsingErrors:t})}function gs(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 Iy(n){for(const a of Object.keys(_i))if(_i[a].some(l=>n.includes(l)))return a;return fr}function xy(n){const{success:a,data:t}=yy.safeParse(n);if(a){const l=gs(t.llm.provider)||Iy(t.llm.model_name),i=Dy(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:[ay]}}function Dy(n){const{success:a,data:t}=hy.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 _y(n,a=[]){const{success:t,data:l}=us.safeParse(n),i=[];return t||i.push(ty),{invocationParameters:zy((l==null?void 0:l.llm.invocation_parameters)??{},a),parsingErrors:i}}function Ly(n){const{success:a,data:t}=fy.safeParse(n);return a?{responseFormat:t.llm.invocation_parameters.response_format,parsingErrors:[]}:{responseFormat:void 0,parsingErrors:[ly]}}function wy(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:et(),definition:t.tool.json_schema}).filter(t=>t!=null)}function Ey(n){var l;const{data:a,success:t}=by.safeParse(n);return t?((l=a==null?void 0:a.llm)==null?void 0:l.tools)==null?{tools:null,parsingErrors:[]}:{tools:wy(a),parsingErrors:[]}:{tools:null,parsingErrors:[iy]}}function My(n){var l;const{success:a,data:t}=Fy.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:[ry]}}function Ry(n){const{instance:a,instanceMessages:t}=yr(),l={...a,template:{__type:"chat",messages:Object.values(t)}},{json:i,parseError:r}=Me(n.attributes);if(r)return{playgroundInstance:{...l,spanId:(n==null?void 0:n.id)??null},parsingErrors:[ny]};const o=n.invocationParameters,d=xy(i);let{modelConfig:c}=d;const{parsingErrors:p}=d,{messages:f,messageParsingErrors:u}=Ty({provider:(c==null?void 0:c.provider)??l.model.provider,parsedAttributes:i}),{output:g,outputParsingErrors:y}=Py({provider:(c==null?void 0:c.provider)??l.model.provider,parsedAttributes:i}),{invocationParameters:k,parsingErrors:b}=_y(i,o),{variables:S,parsingErrors:F}=My(i),{parsingErrors:T}=Ly(i);c=c!=null?{...c,invocationParameters:T.length>0?k.filter(P=>P.invocationName!==Dn&&P.canonicalName!==Mn):k}:null;const{tools:x,parsingErrors:L}=Ey(i);return{playgroundInstance:{...l,model:c??l.model,template:f!=null?{__type:"chat",messages:f}:l.template,output:g,spanId:n.id,tools:x??l.tools},playgroundInput:S!=null?{variablesValueCache:S}:void 0,parsingErrors:[...u,...y,...p,...L,...b,...T,...F]}}const Vy=n=>py.safeParse(n).success,ys=({instance:n,templateFormat:a})=>{if(a==en.NONE)return[];const t=new Set,l=n.template.__type,i=jm(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:Se()}return Array.from(t)},Ay=({instances:n,templateFormat:a})=>a==en.NONE?[]:Array.from(new Set(n.flatMap(t=>ys({instance:t,templateFormat:a})))),fs=({instances:n,templateFormat:a,input:t})=>{if(a==en.NONE)return{variablesMap:{},variableKeys:[]};const l=Ay({instances:n,templateFormat:a}),i=t.variablesValueCache??{};return{variablesMap:l.reduce((o,d)=>(o[d]=i[d]||"",o),{}),variableKeys:l}};function ea(n,a){return n.invocationName===a.invocationName||n.canonicalName!=null&&a.canonicalName!=null&&n.canonicalName===a.canonicalName}const Ny=(n,a)=>n.filter(t=>a.some(l=>ea(l,t))).map(t=>{var l;return{...t,invocationName:((l=a.find(i=>ea(i,t)))==null?void 0:l.invocationName)??t.invocationName}}),ja=n=>n.replace(/_([a-z])/g,(a,t)=>t.toUpperCase()),zy=(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,[ja(i.invocationInputField)]:l}}).filter(t=>t!=null),hs=n=>{const{provider:a,validatedToolDefinition:t}=Um(n.definition);switch(a){case"OPENAI":case"AZURE_OPENAI":return t.function.name;case"ANTHROPIC":return t.name;case"UNKNOWN":return null;default:Se()}},$y=({provider:n,toolNumber:a})=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return{id:et(),definition:Si(a)};case"ANTHROPIC":return{id:et(),definition:Bm(a)};case"GOOGLE":return{id:et(),definition:Si(a)};default:Se()}},Oy=n=>{switch(n){case"OPENAI":case"AZURE_OPENAI":return bi();case"ANTHROPIC":return qm();case"GOOGLE":return bi();default:Se()}};function Qy(n){return{content:n.content,role:jy(n.role),toolCalls:n.toolCalls,toolCallId:n.toolCallId}}function jy(n){switch(n){case"system":return"SYSTEM";case"user":return"USER";case"tool":return"TOOL";case"ai":return"AI";default:Se()}}const ks=({playgroundStore:n,instanceId:a,credentials:t})=>{var u;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=xl({toolChoice:r.toolChoice,targetProvider:r.model.provider});r.tools.length>0?(c=c.filter(g=>g.invocationName!==wa&&g.canonicalName!==Zn),c.push({canonicalName:Zn,invocationName:wa,valueJson:p})):c=c.filter(g=>g.invocationName!==wa&&g.canonicalName!==Zn),c=d.length?Ny(c,d):c;const f=r.model.provider==="AZURE_OPENAI"?{endpoint:r.model.endpoint,apiVersion:r.model.apiVersion}:{};return{messages:o.map(Qy),model:{providerKey:r.model.provider,name:r.model.modelName||"",baseUrl:r.model.baseUrl,...f},invocationParameters:Ss(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:(u=r.prompt)==null?void 0:u.name}},Bt=(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},qy=({playgroundStore:n,instanceId:a,credentials:t})=>{const l=ks({playgroundStore:n,instanceId:a,credentials:t}),{instances:i,templateFormat:r,input:o,allInstanceMessages:d}=n.getState(),c=i.map(f=>Bt(f,d)),{variablesMap:p}=fs({instances:c,input:o,templateFormat:r});return{...l,template:{variables:p,format:r}}},Li=({playgroundStore:n,instanceId:a,credentials:t,datasetId:l})=>({...ks({playgroundStore:n,instanceId:a,credentials:t}),templateFormat:n.getState().templateFormat,datasetId:l});function Ut(n){if(n===""||typeof n>"u")return"{}";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 bs(n,a){return a.filter(t=>t.required).every(t=>n.some(l=>ea(l,t)))}const By=n=>{for(const[a,t]of Object.entries(n))if(a.endsWith("DefaultValue")&&t!=null)return n[a]};function v2(n,a){const t=new Map(n.map(l=>[l.invocationName,l]));return a.forEach(l=>{var c;const i=l.invocationName,r=By(l),o=ja(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 Uy=w.object({type:w.literal("enabled")}).passthrough(),Hy=w.object({type:w.enum(["any","tool"])}).passthrough(),Gy=(n,a)=>{if(!a)return n;const t=n.some(l=>l.canonicalName==="ANTHROPIC_EXTENDED_THINKING"&&l.valueJson&&Uy.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===Zn)return!Hy.safeParse(l.valueJson).success}return!0})},Ss=(n,a,t)=>a==="ANTHROPIC"?Gy(n,t):n,vs=m.createContext(null);function C2({children:n,...a}){const[t]=m.useState(()=>Hm(a));return e(vs.Provider,{value:t,children:n})}function Ma(n,a){const t=fe.useContext(vs);if(!t)throw new Error("Missing CredentialsContext.Provider in the tree");return st(t,n,a)}const Cs=m.createContext(null);function Wy(){const n=m.useContext(Cs);if(n===null)throw new Error("useFunctionality must be used within a FunctionalityProvider");return n}function F2(n){return e(Cs.Provider,{value:{authenticationEnabled:window.Config.authenticationEnabled},children:n.children})}const Fs={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};Fs.hash="0168d590171b96e7a2e41449a41754be";function Jy({query:n}){const[a,t]=m.useState(null),l=Ma(f=>f),i=Ma(f=>f.setCredential),r=D.useFragment(Fs,n),o=m.useMemo(()=>[...r.modelProviders],[r]),d=m.useMemo(()=>[{header:"Name",accessorKey:"name",cell:({row:f})=>s(h,{direction:"row",alignItems:"center",gap:"size-100",children:[e(Dt,{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(R,{size:"S",leadingVisual:e(_,{svg:e(_t,{})}),onPress:()=>{t(f.original)}})})}],[l]),c=_e({columns:d,data:o,getCoreRowModel:Le(),getSortedRowModel:Sn()}),p=c.getRowModel().rows;return s(B,{title:"AI Providers",bodyStyle:{padding:0},variant:"compact",children:[s("table",{css:on,children:[e("thead",{children:c.getHeaderGroups().map(f=>e("tr",{children:f.headers.map(u=>e("th",{colSpan:u.colSpan,children:u.isPlaceholder?null:e("div",{children:J(u.column.columnDef.header,u.getContext())})},u.id))},f.id))}),e("tbody",{children:p.map(f=>e("tr",{children:f.getVisibleCells().map(u=>e("td",{children:J(u.column.columnDef.cell,u.getContext())},u.id))},f.id))})]}),e(ne,{type:"modal",isDismissable:!0,onDismiss:()=>t(null),children:a&&s(X,{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(ee,{onChange:f=>{i({provider:a.key,value:f})},value:l[a.key],type:"password",children:[e(Z,{children:`${a.name} API Key`}),e(se,{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(R,{variant:"primary",size:"S",onPress:()=>{t(null)},children:"Set API Key"})})})]})})]})}function K2(){const n=qe();return e(Jy,{query:n})}const Ks={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
|
|
|
@@ -1417,7 +1417,7 @@ fragment SpanAside_span on Span {
|
|
|
1417
1417
|
flex-direction: column;
|
|
1418
1418
|
gap: var(--ac-global-dimension-static-size-200);
|
|
1419
1419
|
padding: var(--ac-global-dimension-static-size-200);
|
|
1420
|
-
`,children:r.map((u,g)=>e("li",{children:e(fl,{document:u,documentEvaluations:o[g],borderColor:"seafoam-700",backgroundColor:"seafoam-100",tokenColor:"var(--ac-global-color-seafoam-1000)"})},g))})})}):null]})}function g0(n){const{spanAttributes:a}=n,t=m.useMemo(()=>a[ye.reranker]||null,[a]),l=m.useMemo(()=>t==null?null:t[el.query]||null,[t]),i=m.useMemo(()=>{var c;return t==null?[]:((c=t[el.input_documents])==null?void 0:c.map(p=>p[ye.document]).filter(Boolean))||[]},[t]),r=m.useMemo(()=>{var c;return t==null?[]:((c=t[el.output_documents])==null?void 0:c.map(p=>p[ye.document]).filter(Boolean))||[]},[t]),o=i.length,d=r.length;return s(h,{direction:"column",gap:"size-200",children:[e(sn,{children:l&&e(B,{title:"Query",...Ke,children:e(za,{children:l})})}),e(B,{title:"Input Documents",titleExtra:e(gn,{children:o}),...Ke,defaultOpen:!1,bodyStyle:{padding:0},children:e("ul",{css:K`
|
|
1420
|
+
`,children:r.map((u,g)=>e("li",{children:e(fl,{document:u,documentEvaluations:o[g],borderColor:"seafoam-700",backgroundColor:"seafoam-100",tokenColor:"var(--ac-global-color-seafoam-1000)"})},g))})})}):null]})}function g0(n){const{spanAttributes:a}=n,t=m.useMemo(()=>a[ye.reranker]||null,[a]),l=m.useMemo(()=>t==null?null:t[el.query]||null,[t]),i=m.useMemo(()=>{var c;return t==null?[]:((c=t[el.input_documents])==null?void 0:c.map(p=>p[ye.document]).filter(Boolean))||[]},[t]),r=m.useMemo(()=>{var c;return t==null?[]:((c=t[el.output_documents])==null?void 0:c.map(p=>p[ye.document]).filter(Boolean))||[]},[t]),o=i.length,d=r.length;return s(h,{direction:"column",gap:"size-200",children:[e(sn,{children:l&&e(B,{title:"Query",...Ke,children:e(C,{padding:"size-200",children:e(za,{children:l})})})}),e(B,{title:"Input Documents",titleExtra:e(gn,{children:o}),...Ke,defaultOpen:!1,bodyStyle:{padding:0},children:e("ul",{css:K`
|
|
1421
1421
|
padding: var(--ac-global-dimension-static-size-200);
|
|
1422
1422
|
display: flex;
|
|
1423
1423
|
flex-direction: column;
|
|
@@ -4350,7 +4350,7 @@ fragment ProjectsPageProjectsFragment on Query {
|
|
|
4350
4350
|
.react-aria-DateInput {
|
|
4351
4351
|
width: 100%;
|
|
4352
4352
|
}
|
|
4353
|
-
`,children:[e(Z,{children:"End Date"}),e(Dm,{children:S=>e(_m,{segment:S})}),b?e(Pe,{children:b.message}):e(v,{slot:"description",children:"The date up to which you want to remove data"})]})})]}),e(C,{paddingEnd:"size-200",paddingTop:"size-100",paddingBottom:"size-100",borderTopColor:"light",borderTopWidth:"thin",children:e(h,{direction:"row",justifyContent:"end",children:e(R,{type:"submit",variant:"danger",isDisabled:!c||i,size:"S",leadingVisual:i?e(_,{svg:e(Ge,{})}):void 0,onPress:()=>{var f;(f=t.current)==null||f.requestSubmit()},children:i?"Removing...":"Remove Data"})})})]})}function NS({projectId:n,projectName:a,onProjectDelete:t,onProjectClear:l,onProjectRemoveData:i}){const[r,o]=m.useState(null),d=a!=="default",[c]=D.useMutation(du),[p]=D.useMutation(ou),f=m.useCallback(()=>{m.startTransition(()=>{c({variables:{projectId:n}}),t()})},[c,n,t]),u=m.useCallback(()=>{m.startTransition(()=>{p({variables:{input:{id:n}},onCompleted:()=>{l()},onError:b=>{alert("Failed to clear project: "+b)}})})},[p,n,l]),g=m.useCallback(()=>{o(s(X,{size:"S",title:"Delete Project",children:[e(C,{padding:"size-200",children:e(v,{color:"danger",children:`Are you sure you want to delete project ${a}? This cannot be undone.`})}),e(C,{paddingEnd:"size-200",paddingTop:"size-100",paddingBottom:"size-100",borderTopColor:"light",borderTopWidth:"thin",children:e(h,{direction:"row",justifyContent:"end",children:e(R,{variant:"danger",onPress:()=>{f(),o(null)},children:"Delete Project"})})})]}))},[f,a]),y=m.useCallback(()=>{o(s(X,{size:"S",title:"Clear Project",children:[e(C,{padding:"size-200",children:e(v,{color:"danger",children:`Are you sure you want to clear project ${a}? All traces and evaluations for this project will be deleted. This cannot be undone.`})}),e(C,{paddingEnd:"size-200",paddingTop:"size-100",paddingBottom:"size-100",borderTopColor:"light",borderTopWidth:"thin",children:e(h,{direction:"row",justifyContent:"end",children:e(R,{variant:"danger",onPress:()=>{u(),o(null)},children:"Clear"})})})]}))},[u,a]),k=m.useCallback(()=>{o(e(X,{size:"S",title:"Remove Data",children:e(AS,{projectId:n,onComplete:()=>{i(),o(null)}})}))},[i,n]);return s("div",{onClick:b=>{b.preventDefault(),b.stopPropagation()},children:[s(Cn,{buttonVariant:"quiet",buttonSize:"compact",align:"end",onAction:b=>{switch(b){case"deleteProject":return g();case"clearProject":return y();case"removeProjectData":return k()}},disabledKeys:d?[]:["deleteProject"],children:[e(oe,{textValue:"Clear Traces",children:s(h,{direction:"row",gap:"size-75",justifyContent:"start",alignItems:"center",children:[e(_,{svg:e(br,{})}),e(v,{children:"Clear Data"})]})},"clearProject"),e(oe,{textValue:"Remove Data",children:s(h,{direction:"row",gap:"size-75",justifyContent:"start",alignItems:"center",children:[e(_,{svg:e(jt,{})}),e(v,{children:"Remove Data"})]})},"removeProjectData"),d?e(oe,{children:s(h,{direction:"row",gap:"size-75",justifyContent:"start",alignItems:"center",children:[e(_,{svg:e(Ye,{})}),e(v,{children:"Delete"})]})},"deleteProject"):null]}),e(ne,{type:"modal",isDismissable:!0,onDismiss:()=>o(null),children:r})]})}function zS(){const n=Xe(t=>t.projectsAutoRefreshEnabled),a=Xe(t=>t.setProjectAutoRefreshEnabled);return e(Ca,{labelPlacement:"start",isSelected:n,onChange:()=>{a(!n)},children:"Auto-Refresh"})}const $S=1e4,OS=50;function nC(){const{timeRange:n}=Qt();return e(m.Suspense,{fallback:e(ve,{}),children:e(QS,{timeRange:n})})}function QS({timeRange:n}){const a=Xe(F=>F.projectsAutoRefreshEnabled),[t,l]=Am(),i=m.useMemo(()=>{var F,T;return{start:(F=n==null?void 0:n.start)==null?void 0:F.toISOString(),end:(T=n==null?void 0:n.end)==null?void 0:T.toISOString()}},[n]),r=D.useLazyLoadQuery(su,{timeRange:i}),{data:o,loadNext:d,hasNext:c,isLoadingNext:p,refetch:f}=D.usePaginationFragment(ru,r),u=o.projects.edges.map(F=>F.project),g=m.useRef(null),y=m.useCallback(F=>{if(F){const{scrollHeight:T,scrollTop:x,clientHeight:L}=F;T-x-L<300&&!p&&c&&d(OS)}},[c,p,d]);Kc(()=>{m.startTransition(()=>{f({},{fetchPolicy:"store-and-network"})})},a?$S:null);const k=m.useCallback(F=>{m.startTransition(()=>{f({},{fetchPolicy:"store-and-network"}),t({variant:"success",title:"Project Deleted",message:`Project ${F} has been deleted.`})})},[t,f]),b=m.useCallback(F=>{m.startTransition(()=>{f({},{fetchPolicy:"store-and-network"}),t({variant:"success",title:"Project Cleared",message:`Project ${F} has been cleared of traces.`})})},[t,f]),S=m.useCallback(F=>{m.startTransition(()=>{f({},{fetchPolicy:"store-and-network"}),t({variant:"success",title:"Project Data Removed",message:`Old data from project ${F} have been removed.`})})},[t,f]);return s("div",{css:K`
|
|
4353
|
+
`,children:[e(Z,{children:"End Date"}),e(Dm,{children:S=>e(_m,{segment:S})}),b?e(Pe,{children:b.message}):e(v,{slot:"description",children:"The date up to which you want to remove data"})]})})]}),e(C,{paddingEnd:"size-200",paddingTop:"size-100",paddingBottom:"size-100",borderTopColor:"light",borderTopWidth:"thin",children:e(h,{direction:"row",justifyContent:"end",children:e(R,{type:"submit",variant:"danger",isDisabled:!c||i,size:"S",leadingVisual:i?e(_,{svg:e(Ge,{})}):void 0,onPress:()=>{var f;(f=t.current)==null||f.requestSubmit()},children:i?"Removing...":"Remove Data"})})})]})}function NS({projectId:n,projectName:a,onProjectDelete:t,onProjectClear:l,onProjectRemoveData:i}){const[r,o]=m.useState(null),d=a!=="default",[c]=D.useMutation(du),[p]=D.useMutation(ou),f=m.useCallback(()=>{m.startTransition(()=>{c({variables:{projectId:n}}),t()})},[c,n,t]),u=m.useCallback(()=>{m.startTransition(()=>{p({variables:{input:{id:n}},onCompleted:()=>{l()},onError:b=>{alert("Failed to clear project: "+b)}})})},[p,n,l]),g=m.useCallback(()=>{o(s(X,{size:"S",title:"Delete Project",children:[e(C,{padding:"size-200",children:e(v,{color:"danger",children:`Are you sure you want to delete project ${a}? This cannot be undone.`})}),e(C,{paddingEnd:"size-200",paddingTop:"size-100",paddingBottom:"size-100",borderTopColor:"light",borderTopWidth:"thin",children:e(h,{direction:"row",justifyContent:"end",children:e(R,{variant:"danger",onPress:()=>{f(),o(null)},children:"Delete Project"})})})]}))},[f,a]),y=m.useCallback(()=>{o(s(X,{size:"S",title:"Clear Project",children:[e(C,{padding:"size-200",children:e(v,{color:"danger",children:`Are you sure you want to clear project ${a}? All traces and evaluations for this project will be deleted. This cannot be undone.`})}),e(C,{paddingEnd:"size-200",paddingTop:"size-100",paddingBottom:"size-100",borderTopColor:"light",borderTopWidth:"thin",children:e(h,{direction:"row",justifyContent:"end",children:e(R,{variant:"danger",onPress:()=>{u(),o(null)},children:"Clear"})})})]}))},[u,a]),k=m.useCallback(()=>{o(e(X,{size:"S",title:"Remove Data",children:e(AS,{projectId:n,onComplete:()=>{i(),o(null)}})}))},[i,n]);return s("div",{onClick:b=>{b.preventDefault(),b.stopPropagation()},children:[s(Cn,{buttonVariant:"quiet",buttonSize:"compact",align:"end",onAction:b=>{switch(b){case"deleteProject":return g();case"clearProject":return y();case"removeProjectData":return k()}},disabledKeys:d?[]:["deleteProject"],children:[e(oe,{textValue:"Clear All Traces",children:s(h,{direction:"row",gap:"size-75",justifyContent:"start",alignItems:"center",children:[e(_,{svg:e(br,{})}),e(v,{children:"Clear All Data"})]})},"clearProject"),e(oe,{textValue:"Remove Data",children:s(h,{direction:"row",gap:"size-75",justifyContent:"start",alignItems:"center",children:[e(_,{svg:e(jt,{})}),e(v,{children:"Remove Data"})]})},"removeProjectData"),d?e(oe,{children:s(h,{direction:"row",gap:"size-75",justifyContent:"start",alignItems:"center",children:[e(_,{svg:e(Ye,{})}),e(v,{children:"Delete"})]})},"deleteProject"):null]}),e(ne,{type:"modal",isDismissable:!0,onDismiss:()=>o(null),children:r})]})}function zS(){const n=Xe(t=>t.projectsAutoRefreshEnabled),a=Xe(t=>t.setProjectAutoRefreshEnabled);return e(Ca,{labelPlacement:"start",isSelected:n,onChange:()=>{a(!n)},children:"Auto-Refresh"})}const $S=1e4,OS=50;function nC(){const{timeRange:n}=Qt();return e(m.Suspense,{fallback:e(ve,{}),children:e(QS,{timeRange:n})})}function QS({timeRange:n}){const a=Xe(F=>F.projectsAutoRefreshEnabled),[t,l]=Am(),i=m.useMemo(()=>{var F,T;return{start:(F=n==null?void 0:n.start)==null?void 0:F.toISOString(),end:(T=n==null?void 0:n.end)==null?void 0:T.toISOString()}},[n]),r=D.useLazyLoadQuery(su,{timeRange:i}),{data:o,loadNext:d,hasNext:c,isLoadingNext:p,refetch:f}=D.usePaginationFragment(ru,r),u=o.projects.edges.map(F=>F.project),g=m.useRef(null),y=m.useCallback(F=>{if(F){const{scrollHeight:T,scrollTop:x,clientHeight:L}=F;T-x-L<300&&!p&&c&&d(OS)}},[c,p,d]);Kc(()=>{m.startTransition(()=>{f({},{fetchPolicy:"store-and-network"})})},a?$S:null);const k=m.useCallback(F=>{m.startTransition(()=>{f({},{fetchPolicy:"store-and-network"}),t({variant:"success",title:"Project Deleted",message:`Project ${F} has been deleted.`})})},[t,f]),b=m.useCallback(F=>{m.startTransition(()=>{f({},{fetchPolicy:"store-and-network"}),t({variant:"success",title:"Project Cleared",message:`Project ${F} has been cleared of traces.`})})},[t,f]),S=m.useCallback(F=>{m.startTransition(()=>{f({},{fetchPolicy:"store-and-network"}),t({variant:"success",title:"Project Data Removed",message:`Old data from project ${F} have been removed.`})})},[t,f]);return s("div",{css:K`
|
|
4354
4354
|
flex: 1 1 auto;
|
|
4355
4355
|
overflow-y: auto;
|
|
4356
4356
|
overflow-x: hidden;
|
phoenix/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "8.
|
|
1
|
+
__version__ = "8.15.0"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|