arize-phoenix 10.15.0__py3-none-any.whl → 11.0.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.

Files changed (79) hide show
  1. {arize_phoenix-10.15.0.dist-info → arize_phoenix-11.0.0.dist-info}/METADATA +2 -2
  2. {arize_phoenix-10.15.0.dist-info → arize_phoenix-11.0.0.dist-info}/RECORD +77 -46
  3. phoenix/config.py +5 -2
  4. phoenix/datetime_utils.py +8 -1
  5. phoenix/db/bulk_inserter.py +40 -1
  6. phoenix/db/facilitator.py +263 -4
  7. phoenix/db/insertion/helpers.py +15 -0
  8. phoenix/db/insertion/span.py +3 -1
  9. phoenix/db/migrations/versions/a20694b15f82_cost.py +196 -0
  10. phoenix/db/models.py +267 -9
  11. phoenix/db/types/token_price_customization.py +29 -0
  12. phoenix/server/api/context.py +38 -4
  13. phoenix/server/api/dataloaders/__init__.py +41 -5
  14. phoenix/server/api/dataloaders/last_used_times_by_generative_model_id.py +35 -0
  15. phoenix/server/api/dataloaders/span_cost_by_span.py +24 -0
  16. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_generative_model.py +56 -0
  17. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_project_session.py +57 -0
  18. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_span.py +43 -0
  19. phoenix/server/api/dataloaders/span_cost_detail_summary_entries_by_trace.py +56 -0
  20. phoenix/server/api/dataloaders/span_cost_details_by_span_cost.py +27 -0
  21. phoenix/server/api/dataloaders/span_cost_summary_by_experiment.py +58 -0
  22. phoenix/server/api/dataloaders/span_cost_summary_by_experiment_run.py +58 -0
  23. phoenix/server/api/dataloaders/span_cost_summary_by_generative_model.py +55 -0
  24. phoenix/server/api/dataloaders/span_cost_summary_by_project.py +140 -0
  25. phoenix/server/api/dataloaders/span_cost_summary_by_project_session.py +56 -0
  26. phoenix/server/api/dataloaders/span_cost_summary_by_trace.py +55 -0
  27. phoenix/server/api/dataloaders/span_costs.py +35 -0
  28. phoenix/server/api/dataloaders/types.py +29 -0
  29. phoenix/server/api/helpers/playground_clients.py +103 -12
  30. phoenix/server/api/input_types/ProjectSessionSort.py +3 -0
  31. phoenix/server/api/input_types/SpanSort.py +17 -0
  32. phoenix/server/api/mutations/__init__.py +2 -0
  33. phoenix/server/api/mutations/chat_mutations.py +17 -0
  34. phoenix/server/api/mutations/model_mutations.py +208 -0
  35. phoenix/server/api/queries.py +82 -41
  36. phoenix/server/api/routers/v1/traces.py +11 -4
  37. phoenix/server/api/subscriptions.py +36 -2
  38. phoenix/server/api/types/CostBreakdown.py +15 -0
  39. phoenix/server/api/types/Experiment.py +59 -1
  40. phoenix/server/api/types/ExperimentRun.py +58 -4
  41. phoenix/server/api/types/GenerativeModel.py +143 -2
  42. phoenix/server/api/types/{Model.py → InferenceModel.py} +1 -1
  43. phoenix/server/api/types/ModelInterface.py +11 -0
  44. phoenix/server/api/types/PlaygroundModel.py +10 -0
  45. phoenix/server/api/types/Project.py +42 -0
  46. phoenix/server/api/types/ProjectSession.py +44 -0
  47. phoenix/server/api/types/Span.py +137 -0
  48. phoenix/server/api/types/SpanCostDetailSummaryEntry.py +10 -0
  49. phoenix/server/api/types/SpanCostSummary.py +10 -0
  50. phoenix/server/api/types/TokenPrice.py +16 -0
  51. phoenix/server/api/types/TokenUsage.py +3 -3
  52. phoenix/server/api/types/Trace.py +41 -0
  53. phoenix/server/app.py +59 -0
  54. phoenix/server/cost_tracking/cost_details_calculator.py +190 -0
  55. phoenix/server/cost_tracking/cost_model_lookup.py +151 -0
  56. phoenix/server/cost_tracking/helpers.py +68 -0
  57. phoenix/server/cost_tracking/model_cost_manifest.json +59 -329
  58. phoenix/server/cost_tracking/regex_specificity.py +397 -0
  59. phoenix/server/cost_tracking/token_cost_calculator.py +57 -0
  60. phoenix/server/daemons/__init__.py +0 -0
  61. phoenix/server/daemons/generative_model_store.py +51 -0
  62. phoenix/server/daemons/span_cost_calculator.py +103 -0
  63. phoenix/server/dml_event_handler.py +1 -0
  64. phoenix/server/static/.vite/manifest.json +36 -36
  65. phoenix/server/static/assets/components-BnK9kodr.js +5055 -0
  66. phoenix/server/static/assets/{index-DIlhmbjB.js → index-S3YKLmbo.js} +13 -13
  67. phoenix/server/static/assets/{pages-YX47cEoQ.js → pages-BW6PBHZb.js} +811 -419
  68. phoenix/server/static/assets/{vendor-DCZoBorz.js → vendor-DqQvHbPa.js} +147 -147
  69. phoenix/server/static/assets/{vendor-arizeai-Ckci3irT.js → vendor-arizeai-CLX44PFA.js} +1 -1
  70. phoenix/server/static/assets/{vendor-codemirror-BODM513D.js → vendor-codemirror-Du3XyJnB.js} +1 -1
  71. phoenix/server/static/assets/{vendor-recharts-C9O2a-N3.js → vendor-recharts-B2PJDrnX.js} +25 -25
  72. phoenix/server/static/assets/{vendor-shiki-Dq54rRC7.js → vendor-shiki-CNbrFjf9.js} +1 -1
  73. phoenix/version.py +1 -1
  74. phoenix/server/cost_tracking/cost_lookup.py +0 -255
  75. phoenix/server/static/assets/components-SpUMF1qV.js +0 -4509
  76. {arize_phoenix-10.15.0.dist-info → arize_phoenix-11.0.0.dist-info}/WHEEL +0 -0
  77. {arize_phoenix-10.15.0.dist-info → arize_phoenix-11.0.0.dist-info}/entry_points.txt +0 -0
  78. {arize_phoenix-10.15.0.dist-info → arize_phoenix-11.0.0.dist-info}/licenses/IP_NOTICE +0 -0
  79. {arize_phoenix-10.15.0.dist-info → arize_phoenix-11.0.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,4 @@
1
- import{F as e,j as o,cA as f,ew as v,ex as y,ey as h,l as r,bY as x,ez as a,r as z,o as w,eA as P}from"./vendor-DCZoBorz.js";import{G as k,H as S}from"./vendor-arizeai-Ckci3irT.js";import{L,g as j,r as C,h as R,i as I,F as E,j as A,P as D,k as T,M as s,l as F,D as G,n as O,E as M,o as N,p as q,q as V,s as _,t,v as W,w as B,x as $,y as H,z as K,B as Q,C as U,G as Y,H as J,I as X,J as Z,K as oo,N as ao,O as lo,Q as ro,U as co,V as d,W as m,X as p,Y as go,Z as eo,_ as bo,$ as no,a0 as io,a1 as so,a2 as to,a3 as mo,a4 as po,a5 as uo,a6 as fo,a7 as vo,a8 as yo,a9 as ho,aa as xo,ab as zo,ac as wo,ad as Po,ae as ko,af as So,ag as Lo,ah as jo,ai as Co,aj as Ro,ak as Io,al as Eo,am as Ao,an as Do,ao as To,ap as Fo,aq as Go,ar as Oo,as as Mo,at as No,au as qo,av as Vo,aw as _o,ax as Wo,ay as Bo}from"./pages-YX47cEoQ.js";import{eP as $o,ct as Ho,S as Ko,eQ as Qo,eR as Uo}from"./components-SpUMF1qV.js";import"./vendor-three-C5WAXd5r.js";import"./vendor-codemirror-BODM513D.js";import"./vendor-shiki-Dq54rRC7.js";import"./vendor-recharts-C9O2a-N3.js";(function(){const b=document.createElement("link").relList;if(b&&b.supports&&b.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))i(c);new MutationObserver(c=>{for(const g of c)if(g.type==="childList")for(const n of g.addedNodes)n.tagName==="LINK"&&n.rel==="modulepreload"&&i(n)}).observe(document,{childList:!0,subtree:!0});function u(c){const g={};return c.integrity&&(g.integrity=c.integrity),c.referrerPolicy&&(g.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?g.credentials="include":c.crossOrigin==="anonymous"?g.credentials="omit":g.credentials="same-origin",g}function i(c){if(c.ep)return;c.ep=!0;const g=u(c);fetch(c.href,g)}})();const Yo=e`
1
+ import{G as e,j as o,cD as f,ez as v,eA as y,eB as h,l as r,b$ as x,eC as a,r as z,o as w,eD as P}from"./vendor-DqQvHbPa.js";import{G as k,H as S}from"./vendor-arizeai-CLX44PFA.js";import{L,g as j,r as C,h as I,i as R,F as E,j as D,P as A,k as T,M as s,l as F,D as G,n as M,E as O,o as N,p as q,q as B,s as V,t,v as _,w as W,x as $,y as H,z as K,B as U,C as J,G as Q,H as X,I as Y,J as Z,K as oo,N as ao,O as lo,Q as ro,U as co,V as go,W as d,X as m,Y as p,Z as eo,_ as bo,$ as no,a0 as io,a1 as so,a2 as to,a3 as mo,a4 as po,a5 as uo,a6 as fo,a7 as vo,a8 as yo,a9 as ho,aa as xo,ab as zo,ac as wo,ad as Po,ae as ko,af as So,ag as Lo,ah as jo,ai as Co,aj as Io,ak as Ro,al as Eo,am as Do,an as Ao,ao as To,ap as Fo,aq as Go,ar as Mo,as as Oo,at as No,au as qo,av as Bo,aw as Vo,ax as _o,ay as Wo,az as $o,aA as Ho,aB as Ko}from"./pages-BW6PBHZb.js";import{f7 as Uo,cH as Jo,S as Qo,f8 as Xo,f9 as Yo}from"./components-BnK9kodr.js";import"./vendor-three-C5WAXd5r.js";import"./vendor-codemirror-Du3XyJnB.js";import"./vendor-shiki-CNbrFjf9.js";import"./vendor-recharts-B2PJDrnX.js";(function(){const b=document.createElement("link").relList;if(b&&b.supports&&b.supports("modulepreload"))return;for(const c of document.querySelectorAll('link[rel="modulepreload"]'))i(c);new MutationObserver(c=>{for(const g of c)if(g.type==="childList")for(const n of g.addedNodes)n.tagName==="LINK"&&n.rel==="modulepreload"&&i(n)}).observe(document,{childList:!0,subtree:!0});function u(c){const g={};return c.integrity&&(g.integrity=c.integrity),c.referrerPolicy&&(g.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?g.credentials="include":c.crossOrigin==="anonymous"?g.credentials="omit":g.credentials="same-origin",g}function i(c){if(c.ep)return;c.ep=!0;const g=u(c);fetch(c.href,g)}})();const Zo=e`
2
2
  :root {
3
3
  --ac-global-dimension-scale-factor: 1;
4
4
  --ac-global-dimension-size-0: 0px;
@@ -53,7 +53,7 @@ import{F as e,j as o,cA as f,ew as v,ex as y,ey as h,l as r,bY as x,ez as a,r as
53
53
  --ac-global-dimension-size-5000: 400px;
54
54
  --ac-global-dimension-size-6000: 480px;
55
55
  }
56
- `,Jo=e`
56
+ `,oa=e`
57
57
  :root {
58
58
  // static colors
59
59
  --ac-global-static-color-white-900: rgba(255, 255, 255, 0.9);
@@ -63,7 +63,7 @@ import{F as e,j as o,cA as f,ew as v,ex as y,ey as h,l as r,bY as x,ez as a,r as
63
63
  --ac-global-static-color-black-700: rgba(0, 0, 0, 0.7);
64
64
  --ac-global-static-color-black-300: rgba(0, 0, 0, 0.3);
65
65
  }
66
- `,Xo=e`
66
+ `,aa=e`
67
67
  :root {
68
68
  --ac-global-dimension-static-size-0: 0px;
69
69
  --ac-global-dimension-static-size-10: 1px;
@@ -143,7 +143,7 @@ import{F as e,j as o,cA as f,ew as v,ex as y,ey as h,l as r,bY as x,ez as a,r as
143
143
  --ac-global-dimension-font-size-1200: 50px;
144
144
  --ac-global-dimension-font-size-1300: 60px;
145
145
  }
146
- `,Zo=e`
146
+ `,la=e`
147
147
  :root,
148
148
  .ac-theme--dark {
149
149
  /* Colors */
@@ -653,7 +653,7 @@ import{F as e,j as o,cA as f,ew as v,ex as y,ey as h,l as r,bY as x,ez as a,r as
653
653
  --ac-global-link-color: rgb(114, 217, 255);
654
654
  --ac-global-link-color-visited: var(--ac-global-color-purple-900);
655
655
  }
656
- `,oa=e`
656
+ `,ra=e`
657
657
  :root,
658
658
  .ac-theme--light {
659
659
  /* Colors */
@@ -898,7 +898,7 @@ import{F as e,j as o,cA as f,ew as v,ex as y,ey as h,l as r,bY as x,ez as a,r as
898
898
  --ac-global-link-color: rgb(9, 105, 218);
899
899
  --ac-global-link-color-visited: var(--ac-global-color-purple-900);
900
900
  }
901
- `,aa=l=>e`
901
+ `,ca=l=>e`
902
902
  :root,
903
903
  .ac-theme--${l} {
904
904
  // The primary color tint for the apps
@@ -956,7 +956,7 @@ import{F as e,j as o,cA as f,ew as v,ex as y,ey as h,l as r,bY as x,ez as a,r as
956
956
 
957
957
  --ac-highlight-foreground: var(--ac-global-text-color-900);
958
958
  --ac-highlight-background: var(--ac-global-color-primary-100);
959
- --ac-hover-background: var(--ac-global-color-primary-50);
959
+ --ac-hover-background: var(--ac-global-color-primary-100);
960
960
  --ac-focus-ring-color: var(--ac-global-color-primary-500);
961
961
 
962
962
  // Text
@@ -1011,7 +1011,7 @@ import{F as e,j as o,cA as f,ew as v,ex as y,ey as h,l as r,bY as x,ez as a,r as
1011
1011
  );
1012
1012
 
1013
1013
  // Style for tooltips
1014
- --ac-global-tooltip-background-color: var(--ac-global-color-grey-100);
1014
+ --ac-global-tooltip-background-color: var(--ac-global-color-grey-50);
1015
1015
  --ac-global-tooltip-border-color: var(--ac-global-color-grey-300);
1016
1016
 
1017
1017
  --ac-global-rounding-xsmall: var(--ac-global-dimension-static-size-25);
@@ -1049,11 +1049,11 @@ import{F as e,j as o,cA as f,ew as v,ex as y,ey as h,l as r,bY as x,ez as a,r as
1049
1049
  --ac-alias-single-line-height: var(--ac-global-dimension-size-400);
1050
1050
  --ac-alias-single-line-width: var(--ac-global-dimension-size-2400);
1051
1051
  }
1052
- `,la=e`
1052
+ `,ga=e`
1053
1053
  :root {
1054
1054
  --ac-opacity-disabled: 0.6;
1055
1055
  }
1056
- `,ra=e`
1056
+ `,ea=e`
1057
1057
  body {
1058
1058
  background-color: var(--ac-global-color-grey-75);
1059
1059
  color: var(--ac-global-text-color-900);
@@ -1173,7 +1173,7 @@ import{F as e,j as o,cA as f,ew as v,ex as y,ey as h,l as r,bY as x,ez as a,r as
1173
1173
  --px-corpus-color: #92969c;
1174
1174
  --px-corpus-color--transparent: #92969c63;
1175
1175
  }
1176
- `,ca=e`
1176
+ `,ba=e`
1177
1177
  .ac-theme--light {
1178
1178
  .cm-editor {
1179
1179
  background-color: rgba(255, 255, 255, 0.5) !important;
@@ -1190,7 +1190,7 @@ import{F as e,j as o,cA as f,ew as v,ex as y,ey as h,l as r,bY as x,ez as a,r as
1190
1190
  background-color: rgba(0, 0, 0, 0.2) !important;
1191
1191
  }
1192
1192
  }
1193
- `,ga=e`
1193
+ `,na=e`
1194
1194
  .react-grid-item.react-grid-placeholder {
1195
1195
  // the placeholder doesn't look good
1196
1196
  background: var(--ac-global-color-blue-500);
@@ -1199,4 +1199,4 @@ import{F as e,j as o,cA as f,ew as v,ex as y,ey as h,l as r,bY as x,ez as a,r as
1199
1199
  .ac-theme--dark .react-resizable-handle {
1200
1200
  filter: invert(1);
1201
1201
  }
1202
- `;function ea(){const{theme:l="dark"}=k();return o(f,{styles:e(Xo,Jo,l==="dark"?Zo:oa,aa(l),Yo,la,ra,ca,ga)})}const ba=v(y(r(a,{path:"/",errorElement:o(Vo,{}),children:[o(a,{path:"/v1/*",element:o(x,{to:"/",replace:!0})}),o(a,{path:"/login",element:o(L,{})}),o(a,{path:"/logout",element:o(j,{})}),o(a,{path:"/reset-password",element:o(R,{}),loader:C}),o(a,{path:"/reset-password-with-token",element:o(I,{})}),o(a,{path:"/forgot-password",element:o(E,{})}),o(a,{element:o(qo,{}),loader:A,children:r(a,{element:o(No,{}),children:[o(a,{path:"/profile",handle:{crumb:()=>"profile"},element:o(D,{})}),o(a,{index:!0,loader:T}),r(a,{path:"/model",handle:{crumb:()=>"model"},element:o(N,{}),children:[o(a,{index:!0,element:o(s,{})}),o(a,{element:o(s,{}),children:o(a,{path:"dimensions",children:o(a,{path:":dimensionId",element:o(G,{}),loader:F})})}),o(a,{path:"embeddings",children:o(a,{path:":embeddingDimensionId",element:o(M,{}),loader:O,handle:{crumb:l=>l.embedding.name}})})]}),r(a,{path:"/projects",handle:{crumb:()=>"projects"},element:o(J,{}),children:[o(a,{index:!0,element:o(q,{})}),r(a,{path:":projectId",loader:V,handle:{crumb:l=>l.project.name},element:o(Y,{}),children:[o(a,{index:!0,element:o(_,{})}),r(a,{element:o(U,{}),children:[o(a,{path:"traces",element:o(W,{}),children:o(a,{path:":traceId",element:o(t,{})})}),o(a,{path:"spans",element:o(B,{}),children:o(a,{path:":traceId",element:o(t,{})})}),o(a,{path:"sessions",element:o(K,{}),children:o(a,{path:":sessionId",element:o(H,{}),loader:$})}),o(a,{path:"config",element:o(Q,{})})]})]})]}),r(a,{path:"/dashboards",handle:{crumb:()=>"dashboards"},element:o(ro,{}),children:[o(a,{index:!0,element:o(Z,{}),loader:X}),o(a,{path:"projects/:projectId",element:o(ao,{}),loader:oo,handle:{crumb:l=>l.project.name}}),o(a,{path:":dashboardId",handle:{crumb:()=>"dashboard"},element:o(lo,{})})]}),r(a,{path:"/datasets",handle:{crumb:()=>"datasets"},children:[o(a,{index:!0,element:o(co,{})}),r(a,{path:":datasetId",loader:d,handle:{crumb:l=>l.dataset.name},children:[r(a,{element:o(no,{}),loader:d,children:[o(a,{index:!0,element:o(p,{}),loader:m}),o(a,{path:"experiments",element:o(p,{}),loader:m}),o(a,{path:"examples",element:o(bo,{}),loader:go,children:o(a,{path:":exampleId",element:o(eo,{})})})]}),o(a,{path:"compare",handle:{crumb:()=>"compare"},loader:io,element:o(so,{})})]})]}),r(a,{path:"/playground",handle:{crumb:()=>"Playground"},children:[o(a,{index:!0,element:o(to,{})}),o(a,{path:"spans/:spanId",element:o(po,{}),loader:mo,handle:{crumb:l=>l.span.__typename==="Span"?`span ${l.span.spanId}`:"span unknown"}})]}),r(a,{path:"/prompts",handle:{crumb:()=>"prompts"},children:[o(a,{index:!0,element:o(fo,{}),loader:uo}),r(a,{path:":promptId",loader:vo,shouldRevalidate:()=>!0,handle:{crumb:l=>l.prompt.__typename==="Prompt"?l.prompt.name:"unknown"},children:[r(a,{element:o(So,{}),children:[o(a,{index:!0,element:o(yo,{})}),o(a,{path:"versions",loader:ho,element:o(wo,{}),children:o(a,{path:":versionId",loader:xo,element:o(zo,{})})}),o(a,{path:"config",element:o(ko,{}),loader:Po})]}),o(a,{path:"playground",element:o(jo,{}),loader:Lo,handle:{crumb:()=>"playground"}})]})]}),o(a,{path:"/apis",element:o(Co,{}),handle:{crumb:()=>"APIs"}}),o(a,{path:"/support",element:o(Ro,{}),handle:{crumb:()=>"support"}}),r(a,{path:"/settings",element:o(Mo,{}),handle:{crumb:()=>"settings"},children:[o(a,{path:"general",loader:Io,element:o(Eo,{}),handle:{crumb:()=>"general"}}),o(a,{path:"providers",loader:Ao,element:o(Do,{}),handle:{crumb:()=>"providers"}}),o(a,{path:"annotations",loader:To,element:o(Fo,{}),handle:{crumb:()=>"annotations"}}),o(a,{path:"data",element:o(Oo,{}),handle:{crumb:()=>"data retention"},loader:Go})]})]})})]})),{basename:window.Config.basename});function na(){return o(h,{router:ba})}function ia(){return o(_o,{children:o($o,{children:o(sa,{})})})}function sa(){const{theme:l}=Ho();return o(S,{theme:l,mountGlobalStyles:!1,children:r(w.RelayEnvironmentProvider,{environment:Ko,children:[o(ea,{}),o(Wo,{children:o(Qo,{children:o(Bo,{children:o(z.Suspense,{children:o(Uo,{children:o(na,{})})})})})})]})})}const ta=document.getElementById("root"),da=P.createRoot(ta);da.render(o(ia,{}));
1202
+ `;function ia(){const{theme:l="dark"}=k();return o(f,{styles:e(aa,oa,l==="dark"?la:ra,ca(l),Zo,ga,ea,ba,na)})}const sa=v(y(r(a,{path:"/",errorElement:o(Wo,{}),children:[o(a,{path:"/v1/*",element:o(x,{to:"/",replace:!0})}),o(a,{path:"/login",element:o(L,{})}),o(a,{path:"/logout",element:o(j,{})}),o(a,{path:"/reset-password",element:o(I,{}),loader:C}),o(a,{path:"/reset-password-with-token",element:o(R,{})}),o(a,{path:"/forgot-password",element:o(E,{})}),o(a,{element:o(_o,{}),loader:D,children:r(a,{element:o(Vo,{}),children:[o(a,{path:"/profile",handle:{crumb:()=>"profile"},element:o(A,{})}),o(a,{index:!0,loader:T}),r(a,{path:"/model",handle:{crumb:()=>"model"},element:o(N,{}),children:[o(a,{index:!0,element:o(s,{})}),o(a,{element:o(s,{}),children:o(a,{path:"dimensions",children:o(a,{path:":dimensionId",element:o(G,{}),loader:F})})}),o(a,{path:"embeddings",children:o(a,{path:":embeddingDimensionId",element:o(O,{}),loader:M,handle:{crumb:l=>l.embedding.name}})})]}),r(a,{path:"/projects",handle:{crumb:()=>"projects"},element:o(Y,{}),children:[o(a,{index:!0,element:o(q,{})}),r(a,{path:":projectId",loader:B,handle:{crumb:l=>l.project.name},element:o(X,{}),children:[o(a,{index:!0,element:o(V,{})}),r(a,{element:o(Q,{}),children:[o(a,{path:"traces",element:o(_,{}),children:o(a,{path:":traceId",element:o(t,{})})}),o(a,{path:"spans",element:o(W,{}),children:o(a,{path:":traceId",element:o(t,{})})}),o(a,{path:"sessions",element:o(K,{}),children:o(a,{path:":sessionId",element:o(H,{}),loader:$})}),o(a,{path:"config",element:o(U,{})}),o(a,{path:"metrics",element:o(J,{})})]})]})]}),r(a,{path:"/dashboards",handle:{crumb:()=>"dashboards"},element:o(co,{}),children:[o(a,{index:!0,element:o(oo,{}),loader:Z}),o(a,{path:"projects/:projectId",element:o(lo,{}),loader:ao,handle:{crumb:l=>l.project.name}}),o(a,{path:":dashboardId",handle:{crumb:()=>"dashboard"},element:o(ro,{})})]}),r(a,{path:"/datasets",handle:{crumb:()=>"datasets"},children:[o(a,{index:!0,element:o(go,{})}),r(a,{path:":datasetId",loader:d,handle:{crumb:l=>l.dataset.name},children:[r(a,{element:o(io,{}),loader:d,children:[o(a,{index:!0,element:o(p,{}),loader:m}),o(a,{path:"experiments",element:o(p,{}),loader:m}),o(a,{path:"examples",element:o(no,{}),loader:eo,children:o(a,{path:":exampleId",element:o(bo,{})})})]}),o(a,{path:"compare",handle:{crumb:()=>"compare"},loader:so,element:o(to,{})})]})]}),r(a,{path:"/playground",handle:{crumb:()=>"Playground"},children:[o(a,{index:!0,element:o(mo,{})}),o(a,{path:"spans/:spanId",element:o(uo,{}),loader:po,handle:{crumb:l=>l.span.__typename==="Span"?`span ${l.span.spanId}`:"span unknown"}})]}),r(a,{path:"/prompts",handle:{crumb:()=>"prompts"},children:[o(a,{index:!0,element:o(vo,{}),loader:fo}),r(a,{path:":promptId",loader:yo,shouldRevalidate:()=>!0,handle:{crumb:l=>l.prompt.__typename==="Prompt"?l.prompt.name:"unknown"},children:[r(a,{element:o(Lo,{}),children:[o(a,{index:!0,element:o(ho,{})}),o(a,{path:"versions",loader:xo,element:o(Po,{}),children:o(a,{path:":versionId",loader:zo,element:o(wo,{})})}),o(a,{path:"config",element:o(So,{}),loader:ko})]}),o(a,{path:"playground",element:o(Co,{}),loader:jo,handle:{crumb:()=>"playground"}})]})]}),o(a,{path:"/apis",element:o(Io,{}),handle:{crumb:()=>"APIs"}}),o(a,{path:"/support",element:o(Ro,{}),handle:{crumb:()=>"support"}}),r(a,{path:"/settings",element:o(Bo,{}),handle:{crumb:()=>"settings"},children:[o(a,{path:"general",loader:Eo,element:o(Do,{}),handle:{crumb:()=>"general"}}),o(a,{path:"providers",loader:Ao,element:o(To,{}),handle:{crumb:()=>"providers"}}),o(a,{path:"models",loader:Fo,element:o(Go,{}),handle:{crumb:()=>"models"}}),o(a,{path:"annotations",loader:Mo,element:o(Oo,{}),handle:{crumb:()=>"annotations"}}),o(a,{path:"data",element:o(qo,{}),handle:{crumb:()=>"data retention"},loader:No})]})]})})]})),{basename:window.Config.basename});function ta(){return o(h,{router:sa})}function da(){return o($o,{children:o(Uo,{children:o(ma,{})})})}function ma(){const{theme:l}=Jo();return o(S,{theme:l,mountGlobalStyles:!1,children:r(w.RelayEnvironmentProvider,{environment:Qo,children:[o(ia,{}),o(Ho,{children:o(Xo,{children:o(Ko,{children:o(z.Suspense,{children:o(Yo,{children:o(ta,{})})})})})})]})})}const pa=document.getElementById("root"),ua=P.createRoot(pa);ua.render(o(da,{}));