arize-phoenix 11.26.0__py3-none-any.whl → 11.28.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,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: arize-phoenix
3
- Version: 11.26.0
3
+ Version: 11.28.0
4
4
  Summary: AI Observability and Evaluation
5
5
  Project-URL: Documentation, https://arize.com/docs/phoenix/
6
6
  Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
@@ -1,12 +1,12 @@
1
1
  phoenix/__init__.py,sha256=Sgb4r2MLoY2BbC9Caky5C0bwnOyiVOMHly2sRItmg3Q,5555
2
2
  phoenix/auth.py,sha256=9rscOefuxy5VPcb6MlOYenuy3gDd5l7RxknONovGslE,11342
3
- phoenix/config.py,sha256=oz-7FW2Pixzgp3Xvs5RM-M7J7mES8_yWdVGo_Tzde9s,63133
3
+ phoenix/config.py,sha256=iZ0KE4Yc7msAwx3MykjhCx79_wSYBL6KTpLA9KuXD9I,63432
4
4
  phoenix/datetime_utils.py,sha256=pRD-nzxXYKlMWNtd3r2tKGKfPFhwuJhfOAtlGLVAO60,8784
5
5
  phoenix/exceptions.py,sha256=n2L2KKuecrdflB9MsCdAYCiSEvGJptIsfRkXMoJle7A,169
6
6
  phoenix/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
7
7
  phoenix/services.py,sha256=ngkyKGVatX3cO2WJdo2hKdaVKP-xJCMvqthvga6kJss,5196
8
8
  phoenix/settings.py,sha256=2kHfT3BNOVd4dAO1bq-syEQbHSG8oX2-7NhOwK2QREk,896
9
- phoenix/version.py,sha256=33MeCwATMNgyC4sHJu1Hkcz_RJlu_tRYr7sUaatU7Cw,24
9
+ phoenix/version.py,sha256=9BbsyqXMqD5D5cPHbfNkmPeW-WTp3yZaVegN3LRUWSU,24
10
10
  phoenix/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  phoenix/core/embedding_dimension.py,sha256=zKGbcvwOXgLf-yrJBpQyKtd-LEOPRKHnUToyAU8Owis,87
12
12
  phoenix/core/model.py,sha256=qBFraOtmwCCnWJltKNP18DDG0mULXigytlFsa6YOz6k,4837
@@ -27,13 +27,13 @@ phoenix/db/pg_config.py,sha256=h6mB7qF7t4Zk6VGvAiyefHGVu74o-yJynaWzeE39k9Y,6001
27
27
  phoenix/db/insertion/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  phoenix/db/insertion/constants.py,sha256=8wifm7X-1XvroZ__R2Gc96NsgLhTDn0zXl4lehlXtcA,70
29
29
  phoenix/db/insertion/dataset.py,sha256=KeUtfSnznmkDDlGs6KM5URduZtIo8I951tybamwoLsc,7216
30
- phoenix/db/insertion/document_annotation.py,sha256=rLL35nxcBXh2O1RaY-R_nucER6wVPZBVJ3XkQQnmiQE,6498
30
+ phoenix/db/insertion/document_annotation.py,sha256=Lo6pPEUNNBYFjN_PPKqX9aZdchyIOgX3wPZe7vPVwHA,6540
31
31
  phoenix/db/insertion/evaluation.py,sha256=XIlDQMx9FFu_hO1TEao8_ScgKETw61AoeGezsmngXrY,6876
32
32
  phoenix/db/insertion/helpers.py,sha256=wA4f_B8DI1pfNvX7R5luG1MklwX6rtCrvv_SOcjtJGo,4106
33
33
  phoenix/db/insertion/span.py,sha256=UB4UR8QlkJdVzbJ7_-S6FXIHYjyKZSOEVzCOvwGw7cY,8414
34
- phoenix/db/insertion/span_annotation.py,sha256=EqjT7OcCUO69PAw3shkOSQunxWtLNpToO7gtqlK8dbY,5682
35
- phoenix/db/insertion/trace_annotation.py,sha256=0wIrAEDMYDvwRbd7zYAGIcnZtdjoPEINP51m28Wk1VI,5722
36
- phoenix/db/insertion/types.py,sha256=hOwtuYeKA7rjRXT2bfsD_SwYnkrIpxdVirQ50jq1fws,8253
34
+ phoenix/db/insertion/span_annotation.py,sha256=WA9538nPNIgRucRkd2S1zCC2TUMlJPvgMm1cCnH50Y4,5724
35
+ phoenix/db/insertion/trace_annotation.py,sha256=UKmAsSRd1mAwdGWu-i2aEGC3Yu16tqfbpzqMGtJnkVU,5764
36
+ phoenix/db/insertion/types.py,sha256=nIdqq-9vqciHMP4UrX0pmKnVUSfxfnO8l0ECPz0kiSs,8694
37
37
  phoenix/db/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
38
  phoenix/db/migrations/env.py,sha256=tFO3ceuCx9Es5_2w_BXclaQMmNQKNX21b1UEV5mYdeo,3387
39
39
  phoenix/db/migrations/script.py.mako,sha256=MEqL-2qATlST9TAOeYgscMn1uy6HUS9NFvDgl93dMj8,635
@@ -111,7 +111,7 @@ phoenix/server/api/README.md,sha256=Pyq1PLPgTzXAswrfIhGXrjI3Skq8it2jTVnanT6Ba4Q,
111
111
  phoenix/server/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
112
  phoenix/server/api/auth.py,sha256=AyYhnZIbY9ALVjg2K6aC2UXSa3Pva5GVDBXyaZ3nD3o,2749
113
113
  phoenix/server/api/context.py,sha256=mqsq_8Ru50e-PxKWNTzh9zptb1PFjYFUf58uW59UYL0,8996
114
- phoenix/server/api/exceptions.py,sha256=E2W0x63CBzc0CoQPptrLr9nZxPF9zIP8MCJ3RuJMddw,1322
114
+ phoenix/server/api/exceptions.py,sha256=9gB4nBRNX6k4_fsQZ12yxw6Tw53h_915l06DYK-qkPQ,1442
115
115
  phoenix/server/api/interceptor.py,sha256=ykDnoC_apUd-llVli3m1CW18kNSIgjz2qZ6m5JmPDu8,1294
116
116
  phoenix/server/api/queries.py,sha256=oA6UWvd7Ff26JZp0gFujV7F6yZoEbUwdOdZOROWG4nM,64654
117
117
  phoenix/server/api/schema.py,sha256=fcs36xQwFF_Qe41_5cWR8wYpDvOrnbcyTeo5WNMbDsA,1702
@@ -259,15 +259,15 @@ phoenix/server/api/routers/v1/__init__.py,sha256=ngLMPjC7lgZxgKy_Is33KxTRnMzSqy2
259
259
  phoenix/server/api/routers/v1/annotation_configs.py,sha256=xp5lJmKYlRsINCUrRD9-lTAElw2v4hdFndS5BWrxICA,16048
260
260
  phoenix/server/api/routers/v1/annotations.py,sha256=fVl2qeh_ZbWXGvFBTZgeL7aGkkINIScdjuyxnOoSzNM,6817
261
261
  phoenix/server/api/routers/v1/datasets.py,sha256=9iPORLmbOrPKgUUcRDMs6ZczSIz7hvc6bngJy3IbdR0,38331
262
- phoenix/server/api/routers/v1/evaluations.py,sha256=_I0X01J8EZmTlfAGkvMkZ05IB3x691xzUmHV05ov26Y,12914
262
+ phoenix/server/api/routers/v1/evaluations.py,sha256=aBrPO-xCAWyTxydaHq7W2wQFm65k89uVR-H3VWsd6WQ,13062
263
263
  phoenix/server/api/routers/v1/experiment_evaluations.py,sha256=DZ3UK9OoYKElpRcEER7559-KiAqWr-1IXpZ27FbfP3k,5249
264
264
  phoenix/server/api/routers/v1/experiment_runs.py,sha256=LZeCQWQIEOZ9jK5Gp_C4JbiYY6AmnnWe85cVcvdkCLE,7107
265
265
  phoenix/server/api/routers/v1/experiments.py,sha256=hIBecGACzGZEgl93ap_JV52pUv-Ij03QJMRxQhBlktI,20611
266
266
  phoenix/server/api/routers/v1/models.py,sha256=p3gJN-9SWiUYTUTft4bZMsZVCBNTb4nN1Foy68eRZzQ,1997
267
267
  phoenix/server/api/routers/v1/projects.py,sha256=XR6uJxHXXtC1q8LNyS9W6iaj440sv1OKCu-OSBfxEys,12824
268
268
  phoenix/server/api/routers/v1/prompts.py,sha256=chRYcLkOYDJdJfVZVukVTUyIRnLPvsJCg41CuPxOIU8,26695
269
- phoenix/server/api/routers/v1/spans.py,sha256=la_bfxrVPGY-N8qvk9o9ICrGiwl1B6-jbZ0uDjR5QXc,49345
270
- phoenix/server/api/routers/v1/traces.py,sha256=Skn0N_L4ZjoJ7x76PBrqvbKPFiAk8xSe1yxfiOaQ0Gc,11285
269
+ phoenix/server/api/routers/v1/spans.py,sha256=roDDE0RDBGSCircPgzwYWhwwyK33IaW7YliWN-lwxWw,49385
270
+ phoenix/server/api/routers/v1/traces.py,sha256=ho6SXJ0R3g1ROxgtd7hNPo8QSZnA85oG0dgWDokHM2w,11365
271
271
  phoenix/server/api/routers/v1/users.py,sha256=eO8zMtGU33Td2_G1l9D7Z0a4CG1CwBUCj_Z9z2uk7wg,12089
272
272
  phoenix/server/api/routers/v1/utils.py,sha256=oXIOGPzPTkE0ZWUTRCoRIQQ7wTzoSwtWFaUSjlGBqts,4960
273
273
  phoenix/server/api/types/Annotation.py,sha256=gsl8CwjIbDUbZRj4d9USwZ_w_Tkz4i7zuZh9ftV80jA,1132
@@ -392,10 +392,10 @@ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQ
392
392
  phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
393
393
  phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
394
394
  phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_wcU9c,2564
395
- phoenix/server/static/.vite/manifest.json,sha256=f81ZT-s_X796lx4IwpiRFFg00JHq2_CI-G-1_tXxmSE,2328
396
- phoenix/server/static/assets/components-BC-SDWO9.js,sha256=_i4WPHkV2y5M3u6arDbZrRwF-qa9oWlXsK5q5CpvKsY,664485
397
- phoenix/server/static/assets/index-CjTh13rR.js,sha256=SSBxvFh8I1jiscNFNZzK69sDapeHOrhjRjhg11cF45Y,63396
398
- phoenix/server/static/assets/pages-D19Jzk-2.js,sha256=KEIJNicB4MfHx29SVywYIktUZBnVmeP3mLMM31uVpxM,1265049
395
+ phoenix/server/static/.vite/manifest.json,sha256=YLmkhNaP8CIb58FZA_WbstLTHmeLxO7Bf95-j2o1iwg,2328
396
+ phoenix/server/static/assets/components-C3HQDu_r.js,sha256=KTCwdIg8fU5Xo3nRecbeh-LQqPr3s_T9LIEzYVbz8LE,664499
397
+ phoenix/server/static/assets/index-C-sjZRYC.js,sha256=Y51REgta4DEkMYGcas1FLL1as0OyUOyEM1fFtRTxazc,63396
398
+ phoenix/server/static/assets/pages-DvrxSPg3.js,sha256=LNxKvwIv55HqiVUdtSyiFcnS3qMSHUf0bBXOR0whd0k,1266943
399
399
  phoenix/server/static/assets/vendor-CqDb5u4o.css,sha256=zIyFiNJKxMaQk8AvtLgt1rR01oO10d1MFndSDKH9Clw,5517
400
400
  phoenix/server/static/assets/vendor-RdRDaQiR.js,sha256=oTxLetZZXJ20yoKNAYExto9V73y8X5zjddWV46K9CWM,2595492
401
401
  phoenix/server/static/assets/vendor-arizeai-DsYDNOqt.js,sha256=0HIkPJXbKTh85nqphdAXYeStRzdaim0IQxRXiXxa21U,121514
@@ -442,9 +442,9 @@ phoenix/utilities/project.py,sha256=auVpARXkDb-JgeX5f2aStyFIkeKvGwN9l7qrFeJMVxI,
442
442
  phoenix/utilities/re.py,sha256=6YyUWIkv0zc2SigsxfOWIHzdpjKA_TZo2iqKq7zJKvw,2081
443
443
  phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
444
444
  phoenix/utilities/template_formatters.py,sha256=gh9PJD6WEGw7TEYXfSst1UR4pWWwmjxMLrDVQ_CkpkQ,2779
445
- arize_phoenix-11.26.0.dist-info/METADATA,sha256=bCJdEUSImkT_uKY1K_4vpyilZxDUCYArf2NlStaHvcY,31634
446
- arize_phoenix-11.26.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
447
- arize_phoenix-11.26.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
448
- arize_phoenix-11.26.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
449
- arize_phoenix-11.26.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
450
- arize_phoenix-11.26.0.dist-info/RECORD,,
445
+ arize_phoenix-11.28.0.dist-info/METADATA,sha256=13C-DWFlaybHe2koaiC7DFxTwuJ93qLXMo9pxK8nkXM,31634
446
+ arize_phoenix-11.28.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
447
+ arize_phoenix-11.28.0.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
448
+ arize_phoenix-11.28.0.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
449
+ arize_phoenix-11.28.0.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
450
+ arize_phoenix-11.28.0.dist-info/RECORD,,
phoenix/config.py CHANGED
@@ -172,6 +172,11 @@ ENV_PHOENIX_SERVER_INSTRUMENTATION_OTLP_TRACE_COLLECTOR_GRPC_ENDPOINT = (
172
172
  "PHOENIX_SERVER_INSTRUMENTATION_OTLP_TRACE_COLLECTOR_GRPC_ENDPOINT"
173
173
  )
174
174
 
175
+ ENV_PHOENIX_MASK_INTERNAL_SERVER_ERRORS = "PHOENIX_MASK_INTERNAL_SERVER_ERRORS"
176
+ """
177
+ Whether to mask internal server errors from the GraphQL and REST APIs. Defaults to true.
178
+ """
179
+
175
180
  # Authentication settings
176
181
  ENV_PHOENIX_ENABLE_AUTH = "PHOENIX_ENABLE_AUTH"
177
182
  ENV_PHOENIX_DISABLE_BASIC_AUTH = "PHOENIX_DISABLE_BASIC_AUTH"
@@ -1610,6 +1615,10 @@ def get_env_disable_migrations() -> bool:
1610
1615
  return _bool_val(ENV_PHOENIX_DANGEROUSLY_DISABLE_MIGRATIONS, False)
1611
1616
 
1612
1617
 
1618
+ def get_env_mask_internal_server_errors() -> bool:
1619
+ return _bool_val(ENV_PHOENIX_MASK_INTERNAL_SERVER_ERRORS, True)
1620
+
1621
+
1613
1622
  DEFAULT_PROJECT_NAME = "default"
1614
1623
  _KUBERNETES_PHOENIX_PORT_PATTERN = re.compile(r"^tcp://\d{1,3}[.]\d{1,3}[.]\d{1,3}[.]\d{1,3}:\d+$")
1615
1624
 
@@ -63,7 +63,7 @@ class DocumentAnnotationQueueInserter(
63
63
  session: AsyncSession,
64
64
  *insertions: Insertables.DocumentAnnotation,
65
65
  ) -> list[DocumentAnnotationDmlEvent]:
66
- records = [dict(as_kv(ins.row)) for ins in insertions]
66
+ records = [{**dict(as_kv(ins.row)), "updated_at": ins.row.updated_at} for ins in insertions]
67
67
  stmt = self._insert_on_conflict(*records).returning(self.table.id)
68
68
  ids = tuple([_ async for _ in await session.stream_scalars(stmt)])
69
69
  return [DocumentAnnotationDmlEvent(ids)]
@@ -99,7 +99,7 @@ class DocumentAnnotationQueueInserter(
99
99
 
100
100
  for p in parcels:
101
101
  if (anno := existing_annos.get(_key(p))) is not None:
102
- if p.received_at <= anno.updated_at:
102
+ if p.item.updated_at <= anno.updated_at:
103
103
  to_discard.append(p)
104
104
  else:
105
105
  to_insert.append(
@@ -57,7 +57,7 @@ class SpanAnnotationQueueInserter(
57
57
  session: AsyncSession,
58
58
  *insertions: Insertables.SpanAnnotation,
59
59
  ) -> list[SpanAnnotationDmlEvent]:
60
- records = [dict(as_kv(ins.row)) for ins in insertions]
60
+ records = [{**dict(as_kv(ins.row)), "updated_at": ins.row.updated_at} for ins in insertions]
61
61
  stmt = self._insert_on_conflict(*records).returning(self.table.id)
62
62
  ids = tuple([_ async for _ in await session.stream_scalars(stmt)])
63
63
  return [SpanAnnotationDmlEvent(ids)]
@@ -92,7 +92,7 @@ class SpanAnnotationQueueInserter(
92
92
 
93
93
  for p in parcels:
94
94
  if (anno := existing_annos.get(_key(p))) is not None:
95
- if p.received_at <= anno.updated_at:
95
+ if p.item.updated_at <= anno.updated_at:
96
96
  to_discard.append(p)
97
97
  else:
98
98
  to_insert.append(
@@ -56,7 +56,7 @@ class TraceAnnotationQueueInserter(
56
56
  session: AsyncSession,
57
57
  *insertions: Insertables.TraceAnnotation,
58
58
  ) -> list[TraceAnnotationDmlEvent]:
59
- records = [dict(as_kv(ins.row)) for ins in insertions]
59
+ records = [{**dict(as_kv(ins.row)), "updated_at": ins.row.updated_at} for ins in insertions]
60
60
  stmt = self._insert_on_conflict(*records).returning(self.table.id)
61
61
  ids = tuple([_ async for _ in await session.stream_scalars(stmt)])
62
62
  return [TraceAnnotationDmlEvent(ids)]
@@ -91,7 +91,7 @@ class TraceAnnotationQueueInserter(
91
91
 
92
92
  for p in parcels:
93
93
  if (anno := existing_annos.get(_key(p))) is not None:
94
- if p.received_at <= anno.updated_at:
94
+ if p.item.updated_at <= anno.updated_at:
95
95
  to_discard.append(p)
96
96
  else:
97
97
  to_insert.append(
@@ -174,6 +174,7 @@ class QueueInserter(ABC, Generic[_PrecursorT, _InsertableT, _RowT, _DmlEventT]):
174
174
  class Precursors(ABC):
175
175
  @dataclass(frozen=True)
176
176
  class SpanAnnotation:
177
+ updated_at: datetime
177
178
  span_id: str
178
179
  obj: models.SpanAnnotation
179
180
 
@@ -182,6 +183,7 @@ class Precursors(ABC):
182
183
  span_rowid: int,
183
184
  ) -> Insertables.SpanAnnotation:
184
185
  return Insertables.SpanAnnotation(
186
+ updated_at=self.updated_at,
185
187
  span_id=self.span_id,
186
188
  obj=self.obj,
187
189
  span_rowid=span_rowid,
@@ -189,6 +191,7 @@ class Precursors(ABC):
189
191
 
190
192
  @dataclass(frozen=True)
191
193
  class TraceAnnotation:
194
+ updated_at: datetime
192
195
  trace_id: str
193
196
  obj: models.TraceAnnotation
194
197
 
@@ -197,6 +200,7 @@ class Precursors(ABC):
197
200
  trace_rowid: int,
198
201
  ) -> Insertables.TraceAnnotation:
199
202
  return Insertables.TraceAnnotation(
203
+ updated_at=self.updated_at,
200
204
  trace_id=self.trace_id,
201
205
  obj=self.obj,
202
206
  trace_rowid=trace_rowid,
@@ -204,6 +208,7 @@ class Precursors(ABC):
204
208
 
205
209
  @dataclass(frozen=True)
206
210
  class DocumentAnnotation:
211
+ updated_at: datetime
207
212
  span_id: str
208
213
  document_position: int
209
214
  obj: models.DocumentAnnotation
@@ -213,6 +218,7 @@ class Precursors(ABC):
213
218
  span_rowid: int,
214
219
  ) -> Insertables.DocumentAnnotation:
215
220
  return Insertables.DocumentAnnotation(
221
+ updated_at=self.updated_at,
216
222
  span_id=self.span_id,
217
223
  document_position=self.document_position,
218
224
  obj=self.obj,
@@ -223,6 +229,7 @@ class Precursors(ABC):
223
229
  class Insertables(ABC):
224
230
  @dataclass(frozen=True)
225
231
  class SpanAnnotation(Precursors.SpanAnnotation):
232
+ updated_at: datetime
226
233
  span_rowid: int
227
234
  identifier: str = ""
228
235
 
@@ -230,10 +237,12 @@ class Insertables(ABC):
230
237
  def row(self) -> models.SpanAnnotation:
231
238
  obj = copy(self.obj)
232
239
  obj.span_rowid = self.span_rowid
240
+ obj.updated_at = self.updated_at
233
241
  return obj
234
242
 
235
243
  @dataclass(frozen=True)
236
244
  class TraceAnnotation(Precursors.TraceAnnotation):
245
+ updated_at: datetime
237
246
  trace_rowid: int
238
247
  identifier: str = ""
239
248
 
@@ -241,10 +250,12 @@ class Insertables(ABC):
241
250
  def row(self) -> models.TraceAnnotation:
242
251
  obj = copy(self.obj)
243
252
  obj.trace_rowid = self.trace_rowid
253
+ obj.updated_at = self.updated_at
244
254
  return obj
245
255
 
246
256
  @dataclass(frozen=True)
247
257
  class DocumentAnnotation(Precursors.DocumentAnnotation):
258
+ updated_at: datetime
248
259
  span_rowid: int
249
260
  identifier: str = ""
250
261
 
@@ -252,4 +263,5 @@ class Insertables(ABC):
252
263
  def row(self) -> models.DocumentAnnotation:
253
264
  obj = copy(self.obj)
254
265
  obj.span_rowid = self.span_rowid
266
+ obj.updated_at = self.updated_at
255
267
  return obj
@@ -1,6 +1,8 @@
1
1
  from graphql.error import GraphQLError
2
2
  from strawberry.extensions import MaskErrors
3
3
 
4
+ from phoenix.config import get_env_mask_internal_server_errors
5
+
4
6
 
5
7
  class CustomGraphQLError(Exception):
6
8
  """
@@ -51,4 +53,6 @@ def _should_mask_error(error: GraphQLError) -> bool:
51
53
  """
52
54
  Masks unexpected errors raised from GraphQL resolvers.
53
55
  """
54
- return not isinstance(error.original_error, CustomGraphQLError)
56
+ return get_env_mask_internal_server_errors() and not isinstance(
57
+ error.original_error, CustomGraphQLError
58
+ )
@@ -1,5 +1,6 @@
1
1
  import gzip
2
2
  from collections.abc import Callable
3
+ from datetime import datetime, timezone
3
4
  from itertools import chain
4
5
  from typing import Any, Iterator, Optional, Union, cast
5
6
 
@@ -269,6 +270,7 @@ def _document_annotation_factory(
269
270
  Callable[..., Precursors.DocumentAnnotation],
270
271
  ]:
271
272
  return lambda index: lambda **kwargs: Precursors.DocumentAnnotation(
273
+ datetime.now(timezone.utc),
272
274
  span_id=str(index[span_id_idx]),
273
275
  document_position=int(index[document_position_idx]),
274
276
  obj=models.DocumentAnnotation(
@@ -280,6 +282,7 @@ def _document_annotation_factory(
280
282
 
281
283
  def _span_annotation_factory(span_id: str) -> Callable[..., Precursors.SpanAnnotation]:
282
284
  return lambda **kwargs: Precursors.SpanAnnotation(
285
+ datetime.now(timezone.utc),
283
286
  span_id=str(span_id),
284
287
  obj=models.SpanAnnotation(**kwargs),
285
288
  )
@@ -287,6 +290,7 @@ def _span_annotation_factory(span_id: str) -> Callable[..., Precursors.SpanAnnot
287
290
 
288
291
  def _trace_annotation_factory(trace_id: str) -> Callable[..., Precursors.TraceAnnotation]:
289
292
  return lambda **kwargs: Precursors.TraceAnnotation(
293
+ datetime.now(timezone.utc),
290
294
  trace_id=str(trace_id),
291
295
  obj=models.TraceAnnotation(**kwargs),
292
296
  )
@@ -880,6 +880,7 @@ class SpanAnnotationData(V1RoutesBaseModel):
880
880
 
881
881
  def as_precursor(self, *, user_id: Optional[int] = None) -> Precursors.SpanAnnotation:
882
882
  return Precursors.SpanAnnotation(
883
+ datetime.now(timezone.utc),
883
884
  self.span_id,
884
885
  models.SpanAnnotation(
885
886
  name=self.name,
@@ -1,5 +1,6 @@
1
1
  import gzip
2
2
  import zlib
3
+ from datetime import datetime, timezone
3
4
  from typing import Any, Literal, Optional
4
5
 
5
6
  from fastapi import APIRouter, BackgroundTasks, Depends, Header, HTTPException, Path, Query
@@ -134,6 +135,7 @@ class TraceAnnotation(V1RoutesBaseModel):
134
135
 
135
136
  def as_precursor(self, *, user_id: Optional[int] = None) -> Precursors.TraceAnnotation:
136
137
  return Precursors.TraceAnnotation(
138
+ datetime.now(timezone.utc),
137
139
  self.trace_id,
138
140
  models.TraceAnnotation(
139
141
  name=self.name,
@@ -1,22 +1,22 @@
1
1
  {
2
- "_components-BC-SDWO9.js": {
3
- "file": "assets/components-BC-SDWO9.js",
2
+ "_components-C3HQDu_r.js": {
3
+ "file": "assets/components-C3HQDu_r.js",
4
4
  "name": "components",
5
5
  "imports": [
6
6
  "_vendor-RdRDaQiR.js",
7
- "_pages-D19Jzk-2.js",
7
+ "_pages-DvrxSPg3.js",
8
8
  "_vendor-arizeai-DsYDNOqt.js",
9
9
  "_vendor-codemirror-BzJDUbEx.js",
10
10
  "_vendor-three-BLWp5bic.js"
11
11
  ]
12
12
  },
13
- "_pages-D19Jzk-2.js": {
14
- "file": "assets/pages-D19Jzk-2.js",
13
+ "_pages-DvrxSPg3.js": {
14
+ "file": "assets/pages-DvrxSPg3.js",
15
15
  "name": "pages",
16
16
  "imports": [
17
17
  "_vendor-RdRDaQiR.js",
18
18
  "_vendor-arizeai-DsYDNOqt.js",
19
- "_components-BC-SDWO9.js",
19
+ "_components-C3HQDu_r.js",
20
20
  "_vendor-codemirror-BzJDUbEx.js",
21
21
  "_vendor-recharts-BTHn5Y2R.js"
22
22
  ]
@@ -75,15 +75,15 @@
75
75
  "name": "vendor-three"
76
76
  },
77
77
  "index.tsx": {
78
- "file": "assets/index-CjTh13rR.js",
78
+ "file": "assets/index-C-sjZRYC.js",
79
79
  "name": "index",
80
80
  "src": "index.tsx",
81
81
  "isEntry": true,
82
82
  "imports": [
83
83
  "_vendor-RdRDaQiR.js",
84
84
  "_vendor-arizeai-DsYDNOqt.js",
85
- "_pages-D19Jzk-2.js",
86
- "_components-BC-SDWO9.js",
85
+ "_pages-DvrxSPg3.js",
86
+ "_components-C3HQDu_r.js",
87
87
  "_vendor-three-BLWp5bic.js",
88
88
  "_vendor-codemirror-BzJDUbEx.js",
89
89
  "_vendor-shiki-BAcocHFl.js",
@@ -1,4 +1,4 @@
1
- import{r as p,j as e,u as st,a as rn,e as qn,s as xa,b as Ta,c as zn,d as Za,f as So,g as Xe,h as xo,i as To,k as Ua,l as s,m as bn,p as ca,n as Nn,R as Ge,o as E,q as ct,t as Fn,v as Ao,C as na,w as Io,x as Mo,L as _l,y as Dl,z as Kl,A as Oe,B as tn,D as W,E as zo,F as cn,G as Fo,H as Eo,I as $e,J as an,K as j,M as _o,N as oe,O as yn,P as Dn,Q as Pl,S as xn,T as da,U as m,V as Vl,$ as N,W as Do,X as V,Y as Ol,Z as Rl,_ as Ae,a0 as Ko,a1 as Po,a2 as vn,a3 as Vo,a4 as B,a5 as gn,a6 as P,a7 as G,a8 as ee,a9 as Nl,aa as $l,ab as Oo,ac as Bl,ad as Ro,ae as Hl,af as No,ag as $o,ah as jl,ai as Bo,aj as Ho,ak as jo,al as Zl,am as Zo,an as Uo,ao as Go,ap as Te,aq as Ul,ar as Be,as as Qo,at as Wo,au as Qe,av as Ga,aw as Qa,ax as Wa,ay as U,az as Cn,aA as Ut,aB as Gl,aC as Ql,aD as qo,aE as Xo,aF as Yo,aG as Jo,aH as e1,aI as n1,aJ as Wl,aK as a1,aL as t1,aM as l1,aN as i1,aO as r1,aP as o1,aQ as s1,aR as dt,aS as te,aT as c1,aU as d1,aV as ql,aW as u1,aX as g1,aY as Xl,aZ as Ke,a_ as Yl,a$ as Gt,b0 as m1,b1 as Jl,b2 as pe,b3 as p1,b4 as ut,b5 as h1,b6 as f1,b7 as b1,b8 as y1,b9 as Qt,ba as ei,bb as v1,bc as C1,bd as k1,be as gt,bf as L1,bg as w1,bh as ua,bi as S1,bj as x1,bk as T1,bl as ni,bm as A1,bn as I1,bo as M1,bp as z1,bq as F1,br as E1,bs as _1,bt as Wt,bu as D1,bv as Aa,bw as K1,bx as P1,by as V1,bz as O1,bA as R1,bB as N1,bC as $1,bD as B1,bE as H1,bF as Xn}from"./vendor-RdRDaQiR.js";import{a as qt,R as j1,b as Z1,c as U1,m as G1,T as Q1,A as W1,S as q1,d as X1,e as Y1,f as J1,u as es}from"./pages-D19Jzk-2.js";import{u as ns,_ as as,a as ts,F as ai,I as ls,b as is,c as rs,d as os,e as ss,f as cs,g as ds,P as us,h as gs,i as ms,j as ps,T as hs,k as fs}from"./vendor-arizeai-DsYDNOqt.js";import{L as ti,a as li,j as ii,E as mt,k as ri,d as oi,l as qa,b as si,h as bs,c as ys,e as vs,f as Cs,g as ks,i as Ls,s as ws,m as $n,n as Bn,R as Hn,p as Ss,o as xs}from"./vendor-codemirror-BzJDUbEx.js";import{V as Ts}from"./vendor-three-BLWp5bic.js";const ci=function(){var n={defaultValue:null,kind:"LocalArgument",name:"clusters"},a={defaultValue:null,kind:"LocalArgument",name:"dataQualityMetricColumnName"},t={defaultValue:null,kind:"LocalArgument",name:"fetchDataQualityMetric"},l={defaultValue:null,kind:"LocalArgument",name:"fetchPerformanceMetric"},i={defaultValue:null,kind:"LocalArgument",name:"performanceMetric"},r=[{alias:null,args:null,kind:"ScalarField",name:"primaryValue",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"referenceValue",storageKey:null}],o=[{alias:null,args:[{kind:"Variable",name:"clusters",variableName:"clusters"}],concreteType:"Cluster",kind:"LinkedField",name:"clusters",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"id",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"eventIds",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"driftRatio",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"primaryToCorpusRatio",storageKey:null},{condition:"fetchDataQualityMetric",kind:"Condition",passingValue:!0,selections:[{alias:null,args:[{fields:[{kind:"Variable",name:"columnName",variableName:"dataQualityMetricColumnName"},{kind:"Literal",name:"metric",value:"mean"}],kind:"ObjectValue",name:"metric"}],concreteType:"DatasetValues",kind:"LinkedField",name:"dataQualityMetric",plural:!1,selections:r,storageKey:null}]},{condition:"fetchPerformanceMetric",kind:"Condition",passingValue:!0,selections:[{alias:null,args:[{fields:[{kind:"Variable",name:"metric",variableName:"performanceMetric"}],kind:"ObjectValue",name:"metric"}],concreteType:"DatasetValues",kind:"LinkedField",name:"performanceMetric",plural:!1,selections:r,storageKey:null}]}],storageKey:null}];return{fragment:{argumentDefinitions:[n,a,t,l,i],kind:"Fragment",metadata:null,name:"pointCloudStore_clusterMetricsQuery",selections:o,type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:[n,t,a,l,i],kind:"Operation",name:"pointCloudStore_clusterMetricsQuery",selections:o},params:{cacheID:"86666967012812887ac0a0149d2d2535",id:null,metadata:{},name:"pointCloudStore_clusterMetricsQuery",operationKind:"query",text:`query pointCloudStore_clusterMetricsQuery(
1
+ import{r as p,j as e,u as st,a as rn,e as qn,s as xa,b as Ta,c as zn,d as Za,f as So,g as Xe,h as xo,i as To,k as Ua,l as s,m as bn,p as ca,n as Nn,R as Ge,o as E,q as ct,t as Fn,v as Ao,C as na,w as Io,x as Mo,L as _l,y as Dl,z as Kl,A as Oe,B as tn,D as W,E as zo,F as cn,G as Fo,H as Eo,I as $e,J as an,K as j,M as _o,N as oe,O as yn,P as Dn,Q as Pl,S as xn,T as da,U as m,V as Vl,$ as N,W as Do,X as V,Y as Ol,Z as Rl,_ as Ae,a0 as Ko,a1 as Po,a2 as vn,a3 as Vo,a4 as B,a5 as gn,a6 as P,a7 as G,a8 as ee,a9 as Nl,aa as $l,ab as Oo,ac as Bl,ad as Ro,ae as Hl,af as No,ag as $o,ah as jl,ai as Bo,aj as Ho,ak as jo,al as Zl,am as Zo,an as Uo,ao as Go,ap as Te,aq as Ul,ar as Be,as as Qo,at as Wo,au as Qe,av as Ga,aw as Qa,ax as Wa,ay as U,az as Cn,aA as Ut,aB as Gl,aC as Ql,aD as qo,aE as Xo,aF as Yo,aG as Jo,aH as e1,aI as n1,aJ as Wl,aK as a1,aL as t1,aM as l1,aN as i1,aO as r1,aP as o1,aQ as s1,aR as dt,aS as te,aT as c1,aU as d1,aV as ql,aW as u1,aX as g1,aY as Xl,aZ as Ke,a_ as Yl,a$ as Gt,b0 as m1,b1 as Jl,b2 as pe,b3 as p1,b4 as ut,b5 as h1,b6 as f1,b7 as b1,b8 as y1,b9 as Qt,ba as ei,bb as v1,bc as C1,bd as k1,be as gt,bf as L1,bg as w1,bh as ua,bi as S1,bj as x1,bk as T1,bl as ni,bm as A1,bn as I1,bo as M1,bp as z1,bq as F1,br as E1,bs as _1,bt as Wt,bu as D1,bv as Aa,bw as K1,bx as P1,by as V1,bz as O1,bA as R1,bB as N1,bC as $1,bD as B1,bE as H1,bF as Xn}from"./vendor-RdRDaQiR.js";import{a as qt,R as j1,b as Z1,c as U1,m as G1,T as Q1,A as W1,S as q1,d as X1,e as Y1,f as J1,u as es}from"./pages-DvrxSPg3.js";import{u as ns,_ as as,a as ts,F as ai,I as ls,b as is,c as rs,d as os,e as ss,f as cs,g as ds,P as us,h as gs,i as ms,j as ps,T as hs,k as fs}from"./vendor-arizeai-DsYDNOqt.js";import{L as ti,a as li,j as ii,E as mt,k as ri,d as oi,l as qa,b as si,h as bs,c as ys,e as vs,f as Cs,g as ks,i as Ls,s as ws,m as $n,n as Bn,R as Hn,p as Ss,o as xs}from"./vendor-codemirror-BzJDUbEx.js";import{V as Ts}from"./vendor-three-BLWp5bic.js";const ci=function(){var n={defaultValue:null,kind:"LocalArgument",name:"clusters"},a={defaultValue:null,kind:"LocalArgument",name:"dataQualityMetricColumnName"},t={defaultValue:null,kind:"LocalArgument",name:"fetchDataQualityMetric"},l={defaultValue:null,kind:"LocalArgument",name:"fetchPerformanceMetric"},i={defaultValue:null,kind:"LocalArgument",name:"performanceMetric"},r=[{alias:null,args:null,kind:"ScalarField",name:"primaryValue",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"referenceValue",storageKey:null}],o=[{alias:null,args:[{kind:"Variable",name:"clusters",variableName:"clusters"}],concreteType:"Cluster",kind:"LinkedField",name:"clusters",plural:!0,selections:[{alias:null,args:null,kind:"ScalarField",name:"id",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"eventIds",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"driftRatio",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"primaryToCorpusRatio",storageKey:null},{condition:"fetchDataQualityMetric",kind:"Condition",passingValue:!0,selections:[{alias:null,args:[{fields:[{kind:"Variable",name:"columnName",variableName:"dataQualityMetricColumnName"},{kind:"Literal",name:"metric",value:"mean"}],kind:"ObjectValue",name:"metric"}],concreteType:"DatasetValues",kind:"LinkedField",name:"dataQualityMetric",plural:!1,selections:r,storageKey:null}]},{condition:"fetchPerformanceMetric",kind:"Condition",passingValue:!0,selections:[{alias:null,args:[{fields:[{kind:"Variable",name:"metric",variableName:"performanceMetric"}],kind:"ObjectValue",name:"metric"}],concreteType:"DatasetValues",kind:"LinkedField",name:"performanceMetric",plural:!1,selections:r,storageKey:null}]}],storageKey:null}];return{fragment:{argumentDefinitions:[n,a,t,l,i],kind:"Fragment",metadata:null,name:"pointCloudStore_clusterMetricsQuery",selections:o,type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:[n,t,a,l,i],kind:"Operation",name:"pointCloudStore_clusterMetricsQuery",selections:o},params:{cacheID:"86666967012812887ac0a0149d2d2535",id:null,metadata:{},name:"pointCloudStore_clusterMetricsQuery",operationKind:"query",text:`query pointCloudStore_clusterMetricsQuery(
2
2
  $clusters: [ClusterInput!]!
3
3
  $fetchDataQualityMetric: Boolean!
4
4
  $dataQualityMetricColumnName: String
@@ -5543,7 +5543,7 @@ resource: new Resource({
5543
5543
  outline: 1px solid var(--ac-global-color-primary);
5544
5544
  outline-offset: var(--ac-global-dimension-size-50);
5545
5545
  }
5546
- `;function vp({css:n,className:a,direction:t="row",...l}){return e(Gl,{"data-direction":t,className:V("gradient-circle-radio-group",a),css:m(xe,U6,n),...l})}function Cp({sequenceNumber:n}){return s(nn,{color:"var(--ac-global-color-yellow-500)",size:"S",children:["#",n]})}function kp(){const n=ju(),a=Object.values(n),t=a.length;function l(i){return a[i%t]}return{getExperimentColor:l,baseExperimentColor:"var(--ac-global-color-grey-500)"}}const bo=function(){var n=[{defaultValue:null,kind:"LocalArgument",name:"nodeId"}],a=[{kind:"Variable",name:"id",variableName:"nodeId"}],t={alias:null,args:null,kind:"ScalarField",name:"__typename",storageKey:null},l=[{alias:null,args:null,kind:"ScalarField",name:"tokens",storageKey:null}],i={kind:"InlineFragment",selections:[{alias:null,args:null,concreteType:"SpanCostSummary",kind:"LinkedField",name:"costSummary",plural:!1,selections:[{alias:null,args:null,concreteType:"CostBreakdown",kind:"LinkedField",name:"total",plural:!1,selections:l,storageKey:null},{alias:null,args:null,concreteType:"CostBreakdown",kind:"LinkedField",name:"prompt",plural:!1,selections:l,storageKey:null},{alias:null,args:null,concreteType:"CostBreakdown",kind:"LinkedField",name:"completion",plural:!1,selections:l,storageKey:null}],storageKey:null}],type:"ExperimentRun",abstractKey:null};return{fragment:{argumentDefinitions:n,kind:"Fragment",metadata:null,name:"ExperimentRunTokenCountDetailsQuery",selections:[{alias:null,args:a,concreteType:null,kind:"LinkedField",name:"node",plural:!1,selections:[t,i],storageKey:null}],type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:n,kind:"Operation",name:"ExperimentRunTokenCountDetailsQuery",selections:[{alias:null,args:a,concreteType:null,kind:"LinkedField",name:"node",plural:!1,selections:[t,i,{alias:null,args:null,kind:"ScalarField",name:"id",storageKey:null}],storageKey:null}]},params:{cacheID:"bb25f38a892f4b257794b8e43b04f835",id:null,metadata:{},name:"ExperimentRunTokenCountDetailsQuery",operationKind:"query",text:`query ExperimentRunTokenCountDetailsQuery(
5546
+ `;function vp({css:n,className:a,direction:t="row",...l}){return e(Gl,{"data-direction":t,className:V("gradient-circle-radio-group",a),css:m(xe,U6,n),...l})}function Cp({sequenceNumber:n}){return s(nn,{color:"var(--ac-global-color-yellow-500)",size:"S",children:["#",n]})}function kp(){const n=ju();return{getExperimentColor:p.useCallback(t=>{const l=Object.values(n),i=l.length;return l[t%i]},[n]),baseExperimentColor:"var(--ac-global-color-grey-500)"}}const bo=function(){var n=[{defaultValue:null,kind:"LocalArgument",name:"nodeId"}],a=[{kind:"Variable",name:"id",variableName:"nodeId"}],t={alias:null,args:null,kind:"ScalarField",name:"__typename",storageKey:null},l=[{alias:null,args:null,kind:"ScalarField",name:"tokens",storageKey:null}],i={kind:"InlineFragment",selections:[{alias:null,args:null,concreteType:"SpanCostSummary",kind:"LinkedField",name:"costSummary",plural:!1,selections:[{alias:null,args:null,concreteType:"CostBreakdown",kind:"LinkedField",name:"total",plural:!1,selections:l,storageKey:null},{alias:null,args:null,concreteType:"CostBreakdown",kind:"LinkedField",name:"prompt",plural:!1,selections:l,storageKey:null},{alias:null,args:null,concreteType:"CostBreakdown",kind:"LinkedField",name:"completion",plural:!1,selections:l,storageKey:null}],storageKey:null}],type:"ExperimentRun",abstractKey:null};return{fragment:{argumentDefinitions:n,kind:"Fragment",metadata:null,name:"ExperimentRunTokenCountDetailsQuery",selections:[{alias:null,args:a,concreteType:null,kind:"LinkedField",name:"node",plural:!1,selections:[t,i],storageKey:null}],type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:n,kind:"Operation",name:"ExperimentRunTokenCountDetailsQuery",selections:[{alias:null,args:a,concreteType:null,kind:"LinkedField",name:"node",plural:!1,selections:[t,i,{alias:null,args:null,kind:"ScalarField",name:"id",storageKey:null}],storageKey:null}]},params:{cacheID:"bb25f38a892f4b257794b8e43b04f835",id:null,metadata:{},name:"ExperimentRunTokenCountDetailsQuery",operationKind:"query",text:`query ExperimentRunTokenCountDetailsQuery(
5547
5547
  $nodeId: ID!
5548
5548
  ) {
5549
5549
  node(id: $nodeId) {
@@ -1,4 +1,4 @@
1
- import{U as g,j as o,c_ as f,eD as h,eE as v,eF as y,l as r,cl as x,eG as a,r as z,o as w,eH as P}from"./vendor-RdRDaQiR.js";import{r as k,s as S}from"./vendor-arizeai-DsYDNOqt.js";import{L,g as C,r as R,h as j,i as E,F as I,j as D,P as A,k as F,M as t,l as T,D as G,n as M,E as _,o as O,p as N,q as V,s as q,t as d,v as U,w as W,x as B,y as $,z as H,B as K,C as Y,G as J,H as Q,I as X,J as Z,K as oo,N as ao,O as lo,Q as ro,U as co,V as go,W as m,X as p,Y as eo,Z as bo,_ as no,$ as io,a0 as so,a1 as to,a2 as mo,a3 as po,a4 as uo,a5 as fo,a6 as ho,a7 as vo,a8 as yo,a9 as xo,aa as zo,ab as wo,ac as Po,ad as ko,ae as So,af as Lo,ag as Co,ah as Ro,ai as jo,aj as Eo,ak as Io,al as Do,am as Ao,an as Fo,ao as To,ap as Go,aq as Mo,ar as _o,as as Oo,at as No,au as Vo,av as qo,aw as Uo,ax as Wo,ay as n,az as Bo,aA as $o,aB as Ho,aC as Ko,aD as Yo,aE as Jo}from"./pages-D19Jzk-2.js";import{fR as Qo,cY as Xo,U as Zo,fS as oa,fT as aa,fU as la}from"./components-BC-SDWO9.js";import"./vendor-three-BLWp5bic.js";import"./vendor-codemirror-BzJDUbEx.js";import"./vendor-shiki-BAcocHFl.js";import"./vendor-recharts-BTHn5Y2R.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"]'))s(c);new MutationObserver(c=>{for(const e of c)if(e.type==="childList")for(const i of e.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function u(c){const e={};return c.integrity&&(e.integrity=c.integrity),c.referrerPolicy&&(e.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?e.credentials="include":c.crossOrigin==="anonymous"?e.credentials="omit":e.credentials="same-origin",e}function s(c){if(c.ep)return;c.ep=!0;const e=u(c);fetch(c.href,e)}})();const ra=g`
1
+ import{U as g,j as o,c_ as f,eD as h,eE as v,eF as y,l as r,cl as x,eG as a,r as z,o as w,eH as P}from"./vendor-RdRDaQiR.js";import{r as k,s as S}from"./vendor-arizeai-DsYDNOqt.js";import{L,g as C,r as R,h as j,i as E,F as I,j as D,P as A,k as F,M as t,l as T,D as G,n as M,E as _,o as O,p as N,q as V,s as q,t as d,v as U,w as W,x as B,y as $,z as H,B as K,C as Y,G as J,H as Q,I as X,J as Z,K as oo,N as ao,O as lo,Q as ro,U as co,V as go,W as m,X as p,Y as eo,Z as bo,_ as no,$ as io,a0 as so,a1 as to,a2 as mo,a3 as po,a4 as uo,a5 as fo,a6 as ho,a7 as vo,a8 as yo,a9 as xo,aa as zo,ab as wo,ac as Po,ad as ko,ae as So,af as Lo,ag as Co,ah as Ro,ai as jo,aj as Eo,ak as Io,al as Do,am as Ao,an as Fo,ao as To,ap as Go,aq as Mo,ar as _o,as as Oo,at as No,au as Vo,av as qo,aw as Uo,ax as Wo,ay as n,az as Bo,aA as $o,aB as Ho,aC as Ko,aD as Yo,aE as Jo}from"./pages-DvrxSPg3.js";import{fR as Qo,cY as Xo,U as Zo,fS as oa,fT as aa,fU as la}from"./components-C3HQDu_r.js";import"./vendor-three-BLWp5bic.js";import"./vendor-codemirror-BzJDUbEx.js";import"./vendor-shiki-BAcocHFl.js";import"./vendor-recharts-BTHn5Y2R.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"]'))s(c);new MutationObserver(c=>{for(const e of c)if(e.type==="childList")for(const i of e.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function u(c){const e={};return c.integrity&&(e.integrity=c.integrity),c.referrerPolicy&&(e.referrerPolicy=c.referrerPolicy),c.crossOrigin==="use-credentials"?e.credentials="include":c.crossOrigin==="anonymous"?e.credentials="omit":e.credentials="same-origin",e}function s(c){if(c.ep)return;c.ep=!0;const e=u(c);fetch(c.href,e)}})();const ra=g`
2
2
  :root,
3
3
  .ac-theme {
4
4
  --ac-global-dimension-scale-factor: 1;