arize-phoenix 8.16.0__py3-none-any.whl → 8.17.1__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.16.0.dist-info → arize_phoenix-8.17.1.dist-info}/METADATA +2 -1
- {arize_phoenix-8.16.0.dist-info → arize_phoenix-8.17.1.dist-info}/RECORD +14 -14
- phoenix/config.py +58 -0
- phoenix/db/facilitator.py +50 -8
- phoenix/server/api/types/Project.py +4 -2
- phoenix/server/static/.vite/manifest.json +9 -9
- phoenix/server/static/assets/{components-DYW3PtZk.js → components-CV-CKm8I.js} +6 -5
- phoenix/server/static/assets/{index-DtECKZJO.js → index-DZ8xGEMv.js} +1 -1
- phoenix/server/static/assets/{pages-DDiYyoa9.js → pages-OfCFR5QY.js} +365 -355
- phoenix/version.py +1 -1
- {arize_phoenix-8.16.0.dist-info → arize_phoenix-8.17.1.dist-info}/WHEEL +0 -0
- {arize_phoenix-8.16.0.dist-info → arize_phoenix-8.17.1.dist-info}/entry_points.txt +0 -0
- {arize_phoenix-8.16.0.dist-info → arize_phoenix-8.17.1.dist-info}/licenses/IP_NOTICE +0 -0
- {arize_phoenix-8.16.0.dist-info → arize_phoenix-8.17.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: arize-phoenix
|
|
3
|
-
Version: 8.
|
|
3
|
+
Version: 8.17.1
|
|
4
4
|
Summary: AI Observability and Evaluation
|
|
5
5
|
Project-URL: Documentation, https://docs.arize.com/phoenix/
|
|
6
6
|
Project-URL: Issues, https://github.com/Arize-ai/phoenix/issues
|
|
@@ -25,6 +25,7 @@ Requires-Dist: arize-phoenix-evals>=0.13.1
|
|
|
25
25
|
Requires-Dist: arize-phoenix-otel>=0.5.1
|
|
26
26
|
Requires-Dist: authlib
|
|
27
27
|
Requires-Dist: cachetools
|
|
28
|
+
Requires-Dist: email-validator
|
|
28
29
|
Requires-Dist: fastapi
|
|
29
30
|
Requires-Dist: grpc-interceptor
|
|
30
31
|
Requires-Dist: grpcio
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
phoenix/__init__.py,sha256=X3eUEwd2rG8KKWWYVNNDJoqo08ihfjgHhlP29dcdNJE,5481
|
|
2
2
|
phoenix/auth.py,sha256=VVMHrWN31tln3Zo4z6ofecrV4daiqJjLd8r85mqlxek,10939
|
|
3
|
-
phoenix/config.py,sha256=
|
|
3
|
+
phoenix/config.py,sha256=6er2AyJyE_yS1TWAq2f24ey602LxKvFtjN7EiQO135I,31986
|
|
4
4
|
phoenix/datetime_utils.py,sha256=iJzNG6YJ6V7_u8B2iA7P2Z26FyxYbOPtx0dhJ7kNDHA,3398
|
|
5
5
|
phoenix/exceptions.py,sha256=n2L2KKuecrdflB9MsCdAYCiSEvGJptIsfRkXMoJle7A,169
|
|
6
6
|
phoenix/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
7
7
|
phoenix/services.py,sha256=kpW1WL0kiB8XJsO6XycvZVJ-lBkNoenhQ7atCvBoSe8,5365
|
|
8
8
|
phoenix/settings.py,sha256=ht-0oN-sMV6SPXrk7Tu1EZlngpAYkGNLYPhO8DyrdQI,661
|
|
9
|
-
phoenix/version.py,sha256=
|
|
9
|
+
phoenix/version.py,sha256=0Cz5q8-4T9L-uFIXnQFIqQvbJ8A1m50EC1c6qYXHWuI,23
|
|
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
|
|
@@ -18,7 +18,7 @@ phoenix/db/alembic.ini,sha256=GIS6HpHaKaJbbuahZg1Rc1D2_QqyCkV9r58wdARGf6w,3262
|
|
|
18
18
|
phoenix/db/bulk_inserter.py,sha256=faNjuwLqqsw4ky8sa4D0h9u5TvEDTOjrccUW89L008E,12725
|
|
19
19
|
phoenix/db/engines.py,sha256=esKGo_cqQLKKXNlfK7iQ7BtkOYY2xNsLdjvW2DddGjU,7321
|
|
20
20
|
phoenix/db/enums.py,sha256=tt7iovXLhVTLZ3_LbHNGgcI44SnNjXfkKtLAZG57T54,428
|
|
21
|
-
phoenix/db/facilitator.py,sha256=
|
|
21
|
+
phoenix/db/facilitator.py,sha256=nteTD8XQSQ7a6aZBOw7ZKiJ72-_1TZXKVF4HS3fHdas,5675
|
|
22
22
|
phoenix/db/helpers.py,sha256=daKbpY2QhTPo9a_T1xNHKI4WzWHkMmmrGIws7Hw-RZ4,4884
|
|
23
23
|
phoenix/db/migrate.py,sha256=oUrXH8yEbcpL4eh09aSCuUiSrhFli0eT5D_j4ZmYChY,2797
|
|
24
24
|
phoenix/db/models.py,sha256=TbHgtT7WWdkQK-OtLsUqp3MwP23HGV1IaSAWTqCf5ac,45707
|
|
@@ -267,7 +267,7 @@ phoenix/server/api/types/MimeType.py,sha256=Zpi6zCalkSFgsvhzvOs-O1gYA04usAi9H__Q
|
|
|
267
267
|
phoenix/server/api/types/Model.py,sha256=8UIFqMe1q-2ufBNg-gxHusV8wM1h-KbfLUeJjyVcMvQ,8081
|
|
268
268
|
phoenix/server/api/types/NumericRange.py,sha256=afEjgF97Go_OvmjMggbPBt-zGM8IONewAyEiKEHRds0,192
|
|
269
269
|
phoenix/server/api/types/PerformanceMetric.py,sha256=KFkmJDqP43eDUtARQOUqR7NYcxvL6Vh2uisHWU6H3ko,387
|
|
270
|
-
phoenix/server/api/types/Project.py,sha256=
|
|
270
|
+
phoenix/server/api/types/Project.py,sha256=16G8f87uq8AtTT2TrfzCuuxoEm39R97woE6-F8QVrJA,20004
|
|
271
271
|
phoenix/server/api/types/ProjectSession.py,sha256=fyfVtpUpFOTnBx8DFnH3dr7WXAssN0ooAgrQSSi7kEI,4677
|
|
272
272
|
phoenix/server/api/types/Prompt.py,sha256=ccP4eq1e38xbF0afclGWLOuDpBVpNbJ3AOSRClF8yFQ,4955
|
|
273
273
|
phoenix/server/api/types/PromptLabel.py,sha256=g3IDSPYRZwb0qpMAk93R6J96jgYULUYGOciTnpeh3sI,1321
|
|
@@ -314,10 +314,10 @@ phoenix/server/static/apple-touch-icon-76x76.png,sha256=CT_xT12I0u2i0WU8JzBZBuOQ
|
|
|
314
314
|
phoenix/server/static/apple-touch-icon.png,sha256=fOfpjqGpWYbJ0eAurKsyoZP1EAs6ZVooBJ_SGk2ZkDs,3801
|
|
315
315
|
phoenix/server/static/favicon.ico,sha256=bY0vvCKRftemZfPShwZtE93DiiQdaYaozkPGwNFr6H8,34494
|
|
316
316
|
phoenix/server/static/modernizr.js,sha256=mvK-XtkNqjOral-QvzoqsyOMECXIMu5BQwSVN_wcU9c,2564
|
|
317
|
-
phoenix/server/static/.vite/manifest.json,sha256=
|
|
318
|
-
phoenix/server/static/assets/components-
|
|
319
|
-
phoenix/server/static/assets/index-
|
|
320
|
-
phoenix/server/static/assets/pages-
|
|
317
|
+
phoenix/server/static/.vite/manifest.json,sha256=9pPJnvEaTaagK4SDbrJFUZMo6HlGO8moFJE_Rs9ucM8,2165
|
|
318
|
+
phoenix/server/static/assets/components-CV-CKm8I.js,sha256=W0qumYd1LUg334W7iyoeH1yR6z8egqwZTfPtPEolad4,444471
|
|
319
|
+
phoenix/server/static/assets/index-DZ8xGEMv.js,sha256=e4gX_yBOgOufGByk7BD6H_ye9AX4E99JafM_IKZAKZg,60085
|
|
320
|
+
phoenix/server/static/assets/pages-OfCFR5QY.js,sha256=UKPngIXhAdrJQFYlT8xg-Rp7KQabxb8x4tiH1y1LORk,853893
|
|
321
321
|
phoenix/server/static/assets/vendor-BT2CVKel.js,sha256=LIV-43bFP85LEFu5QFr5WFcpwKYVMqop0ofrf0RzAVY,2492285
|
|
322
322
|
phoenix/server/static/assets/vendor-Cg6lcjUC.css,sha256=nZrkr0u6NNElFGvpWHk9GTHeGoibCXCli1bE7mXZGZg,1816
|
|
323
323
|
phoenix/server/static/assets/vendor-arizeai-Dzsaenki.js,sha256=NIKV6W5-cOcwg_FI772zlcl6kInoGOsiZyUbQczUxsU,194761
|
|
@@ -364,9 +364,9 @@ phoenix/utilities/project.py,sha256=auVpARXkDb-JgeX5f2aStyFIkeKvGwN9l7qrFeJMVxI,
|
|
|
364
364
|
phoenix/utilities/re.py,sha256=6YyUWIkv0zc2SigsxfOWIHzdpjKA_TZo2iqKq7zJKvw,2081
|
|
365
365
|
phoenix/utilities/span_store.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
366
366
|
phoenix/utilities/template_formatters.py,sha256=gh9PJD6WEGw7TEYXfSst1UR4pWWwmjxMLrDVQ_CkpkQ,2779
|
|
367
|
-
arize_phoenix-8.
|
|
368
|
-
arize_phoenix-8.
|
|
369
|
-
arize_phoenix-8.
|
|
370
|
-
arize_phoenix-8.
|
|
371
|
-
arize_phoenix-8.
|
|
372
|
-
arize_phoenix-8.
|
|
367
|
+
arize_phoenix-8.17.1.dist-info/METADATA,sha256=GJ172cHY5jRlytEIJ9TTWR8Y9zEzcIQqQPjc5FaRM5I,21378
|
|
368
|
+
arize_phoenix-8.17.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
369
|
+
arize_phoenix-8.17.1.dist-info/entry_points.txt,sha256=Pgpn8Upxx9P8z8joPXZWl2LlnAlGc3gcQoVchb06X1Q,94
|
|
370
|
+
arize_phoenix-8.17.1.dist-info/licenses/IP_NOTICE,sha256=JBqyyCYYxGDfzQ0TtsQgjts41IJoa-hiwDrBjCb9gHM,469
|
|
371
|
+
arize_phoenix-8.17.1.dist-info/licenses/LICENSE,sha256=HFkW9REuMOkvKRACuwLPT0hRydHb3zNg-fdFt94td18,3794
|
|
372
|
+
arize_phoenix-8.17.1.dist-info/RECORD,,
|
phoenix/config.py
CHANGED
|
@@ -10,6 +10,8 @@ from pathlib import Path
|
|
|
10
10
|
from typing import Optional, cast, overload
|
|
11
11
|
from urllib.parse import quote_plus, urlparse
|
|
12
12
|
|
|
13
|
+
from email_validator import EmailNotValidError, validate_email
|
|
14
|
+
|
|
13
15
|
from phoenix.utilities.logging import log_a_list
|
|
14
16
|
|
|
15
17
|
from .utilities.re import parse_env_headers
|
|
@@ -161,6 +163,17 @@ password reset emails. If this variable is left unspecified or contains no origi
|
|
|
161
163
|
protection will not be enabled. In such cases, when a request includes `origin` or `referer`
|
|
162
164
|
headers, those values will not be validated.
|
|
163
165
|
"""
|
|
166
|
+
ENV_PHOENIX_ADMINS = "PHOENIX_ADMINS"
|
|
167
|
+
"""
|
|
168
|
+
A semicolon-separated list of username and email address pairs to create as admin users on startup.
|
|
169
|
+
The format is `username=email`, e.g., `John Doe=john@example.com;Doe, Jane=jane@example.com`.
|
|
170
|
+
The password for each user will be randomly generated and will need to be reset. The application
|
|
171
|
+
will not start if this environment variable is set but cannot be parsed or contains invalid emails.
|
|
172
|
+
If the username or email address already exists in the database, the user record will not be
|
|
173
|
+
modified, e.g., changed from non-admin to admin. Changing this environment variable for the next
|
|
174
|
+
startup will not undo any records created in previous startups.
|
|
175
|
+
"""
|
|
176
|
+
|
|
164
177
|
|
|
165
178
|
# SMTP settings
|
|
166
179
|
ENV_PHOENIX_SMTP_HOSTNAME = "PHOENIX_SMTP_HOSTNAME"
|
|
@@ -429,6 +442,51 @@ def get_env_csrf_trusted_origins() -> list[str]:
|
|
|
429
442
|
return sorted(set(origins))
|
|
430
443
|
|
|
431
444
|
|
|
445
|
+
def get_env_admins() -> dict[str, str]:
|
|
446
|
+
"""
|
|
447
|
+
Parse the PHOENIX_ADMINS environment variable to extract the comma separated pairs of
|
|
448
|
+
username and email. The last equal sign (=) in each pair is used to separate the username from
|
|
449
|
+
the email.
|
|
450
|
+
|
|
451
|
+
Returns:
|
|
452
|
+
dict: A dictionary mapping email addresses to usernames
|
|
453
|
+
|
|
454
|
+
Raises:
|
|
455
|
+
ValueError: If the environment variable cannot be parsed or contains invalid email addresses
|
|
456
|
+
"""
|
|
457
|
+
if not (env_value := getenv(ENV_PHOENIX_ADMINS)):
|
|
458
|
+
return {}
|
|
459
|
+
usernames = set()
|
|
460
|
+
emails = set()
|
|
461
|
+
ans = {}
|
|
462
|
+
for pair in env_value.split(";"):
|
|
463
|
+
pair = pair.strip()
|
|
464
|
+
if not pair:
|
|
465
|
+
continue
|
|
466
|
+
# Find the last equals sign to separate username from email
|
|
467
|
+
# This allows usernames to contain equals signs
|
|
468
|
+
last_equals_pos = pair.rfind("=")
|
|
469
|
+
if last_equals_pos == -1:
|
|
470
|
+
raise ValueError(
|
|
471
|
+
f"Invalid format in {ENV_PHOENIX_ADMINS}: '{pair}'. "
|
|
472
|
+
f"Expected format: 'username=email'"
|
|
473
|
+
)
|
|
474
|
+
username = pair[:last_equals_pos].strip()
|
|
475
|
+
email_addr = pair[last_equals_pos + 1 :].strip()
|
|
476
|
+
try:
|
|
477
|
+
email_addr = validate_email(email_addr, check_deliverability=False).normalized
|
|
478
|
+
except EmailNotValidError:
|
|
479
|
+
raise ValueError(f"Invalid email in {ENV_PHOENIX_ADMINS}: '{email_addr}'")
|
|
480
|
+
if username in usernames:
|
|
481
|
+
raise ValueError(f"Duplicate username in {ENV_PHOENIX_ADMINS}: '{username}'")
|
|
482
|
+
if email_addr in emails:
|
|
483
|
+
raise ValueError(f"Duplicate email in {ENV_PHOENIX_ADMINS}: '{email_addr}'")
|
|
484
|
+
usernames.add(username)
|
|
485
|
+
emails.add(email_addr)
|
|
486
|
+
ans[email_addr] = username
|
|
487
|
+
return ans
|
|
488
|
+
|
|
489
|
+
|
|
432
490
|
def get_env_smtp_username() -> str:
|
|
433
491
|
return getenv(ENV_PHOENIX_SMTP_USERNAME, "")
|
|
434
492
|
|
phoenix/db/facilitator.py
CHANGED
|
@@ -19,7 +19,10 @@ from phoenix.auth import (
|
|
|
19
19
|
DEFAULT_SYSTEM_USERNAME,
|
|
20
20
|
compute_password_hash,
|
|
21
21
|
)
|
|
22
|
-
from phoenix.config import
|
|
22
|
+
from phoenix.config import (
|
|
23
|
+
get_env_admins,
|
|
24
|
+
get_env_default_admin_initial_password,
|
|
25
|
+
)
|
|
23
26
|
from phoenix.db import models
|
|
24
27
|
from phoenix.db.enums import COLUMN_ENUMS, UserRole
|
|
25
28
|
from phoenix.server.types import DbSessionFactory
|
|
@@ -37,13 +40,13 @@ class Facilitator:
|
|
|
37
40
|
self._db = db
|
|
38
41
|
|
|
39
42
|
async def __call__(self) -> None:
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
43
|
+
for fn in (
|
|
44
|
+
_ensure_enums,
|
|
45
|
+
_ensure_user_roles,
|
|
46
|
+
_ensure_admins,
|
|
47
|
+
):
|
|
48
|
+
async with self._db() as session:
|
|
49
|
+
await fn(session)
|
|
47
50
|
|
|
48
51
|
|
|
49
52
|
async def _ensure_enums(session: AsyncSession) -> None:
|
|
@@ -111,3 +114,42 @@ async def _ensure_user_roles(session: AsyncSession) -> None:
|
|
|
111
114
|
)
|
|
112
115
|
session.add(admin_user)
|
|
113
116
|
await session.flush()
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
async def _ensure_admins(session: AsyncSession) -> None:
|
|
120
|
+
"""
|
|
121
|
+
Ensure that all startup admin users are present in the database. If any are missing, they will
|
|
122
|
+
be added. Existing records will not be modified.
|
|
123
|
+
"""
|
|
124
|
+
if not (admins := get_env_admins()):
|
|
125
|
+
return
|
|
126
|
+
existing_emails = set(
|
|
127
|
+
await session.scalars(select(models.User.email).where(models.User.email.in_(admins.keys())))
|
|
128
|
+
)
|
|
129
|
+
admins = {email: username for email, username in admins.items() if email not in existing_emails}
|
|
130
|
+
if not admins:
|
|
131
|
+
return
|
|
132
|
+
existing_usernames = set(
|
|
133
|
+
await session.scalars(
|
|
134
|
+
select(models.User.username).where(models.User.username.in_(admins.values()))
|
|
135
|
+
)
|
|
136
|
+
)
|
|
137
|
+
admins = {
|
|
138
|
+
email: username for email, username in admins.items() if username not in existing_usernames
|
|
139
|
+
}
|
|
140
|
+
if not admins:
|
|
141
|
+
return
|
|
142
|
+
admin_role_id = await session.scalar(
|
|
143
|
+
select(models.UserRole.id).filter_by(name=UserRole.ADMIN.value)
|
|
144
|
+
)
|
|
145
|
+
assert admin_role_id is not None, "Admin role not found in database"
|
|
146
|
+
for email, username in admins.items():
|
|
147
|
+
values = dict(
|
|
148
|
+
user_role_id=admin_role_id,
|
|
149
|
+
username=username,
|
|
150
|
+
email=email,
|
|
151
|
+
password_salt=secrets.token_bytes(DEFAULT_SECRET_LENGTH),
|
|
152
|
+
password_hash=secrets.token_bytes(DEFAULT_SECRET_LENGTH),
|
|
153
|
+
reset_password=True,
|
|
154
|
+
)
|
|
155
|
+
await session.execute(insert(models.User).values(values))
|
|
@@ -37,6 +37,8 @@ from phoenix.server.api.types.Trace import Trace
|
|
|
37
37
|
from phoenix.server.api.types.ValidationResult import ValidationResult
|
|
38
38
|
from phoenix.trace.dsl import SpanFilter
|
|
39
39
|
|
|
40
|
+
DEFAULT_PAGE_SIZE = 30
|
|
41
|
+
|
|
40
42
|
|
|
41
43
|
@strawberry.type
|
|
42
44
|
class Project(Node):
|
|
@@ -215,7 +217,7 @@ class Project(Node):
|
|
|
215
217
|
self,
|
|
216
218
|
info: Info[Context, None],
|
|
217
219
|
time_range: Optional[TimeRange] = UNSET,
|
|
218
|
-
first: Optional[int] =
|
|
220
|
+
first: Optional[int] = DEFAULT_PAGE_SIZE,
|
|
219
221
|
last: Optional[int] = UNSET,
|
|
220
222
|
after: Optional[CursorString] = UNSET,
|
|
221
223
|
before: Optional[CursorString] = UNSET,
|
|
@@ -299,7 +301,7 @@ class Project(Node):
|
|
|
299
301
|
self,
|
|
300
302
|
info: Info[Context, None],
|
|
301
303
|
time_range: Optional[TimeRange] = UNSET,
|
|
302
|
-
first: Optional[int] =
|
|
304
|
+
first: Optional[int] = DEFAULT_PAGE_SIZE,
|
|
303
305
|
after: Optional[CursorString] = UNSET,
|
|
304
306
|
sort: Optional[ProjectSessionSort] = UNSET,
|
|
305
307
|
filter_io_substring: Optional[str] = UNSET,
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
|
-
"_components-
|
|
3
|
-
"file": "assets/components-
|
|
2
|
+
"_components-CV-CKm8I.js": {
|
|
3
|
+
"file": "assets/components-CV-CKm8I.js",
|
|
4
4
|
"name": "components",
|
|
5
5
|
"imports": [
|
|
6
6
|
"_vendor-BT2CVKel.js",
|
|
7
|
-
"_pages-
|
|
7
|
+
"_pages-OfCFR5QY.js",
|
|
8
8
|
"_vendor-arizeai-Dzsaenki.js",
|
|
9
9
|
"_vendor-codemirror-D2R3PB3i.js",
|
|
10
10
|
"_vendor-three-C5WAXd5r.js"
|
|
11
11
|
]
|
|
12
12
|
},
|
|
13
|
-
"_pages-
|
|
14
|
-
"file": "assets/pages-
|
|
13
|
+
"_pages-OfCFR5QY.js": {
|
|
14
|
+
"file": "assets/pages-OfCFR5QY.js",
|
|
15
15
|
"name": "pages",
|
|
16
16
|
"imports": [
|
|
17
17
|
"_vendor-BT2CVKel.js",
|
|
18
18
|
"_vendor-arizeai-Dzsaenki.js",
|
|
19
|
-
"_components-
|
|
19
|
+
"_components-CV-CKm8I.js",
|
|
20
20
|
"_vendor-codemirror-D2R3PB3i.js",
|
|
21
21
|
"_vendor-recharts-DetvdWCF.js"
|
|
22
22
|
]
|
|
@@ -69,15 +69,15 @@
|
|
|
69
69
|
"name": "vendor-three"
|
|
70
70
|
},
|
|
71
71
|
"index.tsx": {
|
|
72
|
-
"file": "assets/index-
|
|
72
|
+
"file": "assets/index-DZ8xGEMv.js",
|
|
73
73
|
"name": "index",
|
|
74
74
|
"src": "index.tsx",
|
|
75
75
|
"isEntry": true,
|
|
76
76
|
"imports": [
|
|
77
77
|
"_vendor-BT2CVKel.js",
|
|
78
78
|
"_vendor-arizeai-Dzsaenki.js",
|
|
79
|
-
"_pages-
|
|
80
|
-
"_components-
|
|
79
|
+
"_pages-OfCFR5QY.js",
|
|
80
|
+
"_components-CV-CKm8I.js",
|
|
81
81
|
"_vendor-three-C5WAXd5r.js",
|
|
82
82
|
"_vendor-codemirror-D2R3PB3i.js",
|
|
83
83
|
"_vendor-shiki-dzrzjP7E.js",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as p,R as U,j as e,u as ya,a as Te,e as i1,s as D1,b as V1,c as Ke,d as Q1,f as fi,g as ve,h as bi,i as Ci,k as q1,l as s,m as vi,n as ze,C as s1,o as Qe,p as qe,q as yi,t as Li,v as N,w as cn,L as La,x as wa,y as xa,z as de,A as v,B as h1,D as dn,E as g,F as ka,$ as wi,G as Sa,H as Ma,I as q,J as xi,K as un,M as ki,N as Si,O as B,P as X1,Q as O,S as H,T as R,U as Ta,V as za,W as Mi,X as f1,Y as Ia,Z as Ti,_ as zi,a0 as Ii,a1 as Ai,a2 as Ei,a3 as Di,a4 as Vi,a5 as Pi,a6 as Oi,a7 as b1,a8 as _i,a9 as Fi,aa as Ni,ab as Ri,ac as Se,ad as Y1,ae as J1,af as en,ag as F,ah as _e,ai as Nn,aj as $i,ak as Hi,al as Aa,am as Ki,an as Bi,ao as Zi,ap as ji,aq as Gi,ar as Ui,as as Wi,at as Qi,au as qi,av as Xi,aw as _,ax as mn,ay as Yi,az as Ji,aA as er,aB as nr,aC as ar,aD as Rn,aE as Ee,aF as Ea,aG as tr,aH as ir,aI as Da,aJ as rr,aK as or,aL as gn,aM as lr,aN as sr,aO as cr,aP as dr,aQ as ur,aR as $n,aS as mr,aT as gr,aU as pr,aV as P1,aW as hr,aX as fr,aY as br,aZ as Cr,a_ as vr,a$ as yr,b0 as Lr,b1 as wr,b2 as xr}from"./vendor-BT2CVKel.js";import{a as Hn,R as kr,b as Sr,c as Mr,m as Tr,T as zr,u as Ir}from"./pages-
|
|
1
|
+
import{r as p,R as U,j as e,u as ya,a as Te,e as i1,s as D1,b as V1,c as Ke,d as Q1,f as fi,g as ve,h as bi,i as Ci,k as q1,l as s,m as vi,n as ze,C as s1,o as Qe,p as qe,q as yi,t as Li,v as N,w as cn,L as La,x as wa,y as xa,z as de,A as v,B as h1,D as dn,E as g,F as ka,$ as wi,G as Sa,H as Ma,I as q,J as xi,K as un,M as ki,N as Si,O as B,P as X1,Q as O,S as H,T as R,U as Ta,V as za,W as Mi,X as f1,Y as Ia,Z as Ti,_ as zi,a0 as Ii,a1 as Ai,a2 as Ei,a3 as Di,a4 as Vi,a5 as Pi,a6 as Oi,a7 as b1,a8 as _i,a9 as Fi,aa as Ni,ab as Ri,ac as Se,ad as Y1,ae as J1,af as en,ag as F,ah as _e,ai as Nn,aj as $i,ak as Hi,al as Aa,am as Ki,an as Bi,ao as Zi,ap as ji,aq as Gi,ar as Ui,as as Wi,at as Qi,au as qi,av as Xi,aw as _,ax as mn,ay as Yi,az as Ji,aA as er,aB as nr,aC as ar,aD as Rn,aE as Ee,aF as Ea,aG as tr,aH as ir,aI as Da,aJ as rr,aK as or,aL as gn,aM as lr,aN as sr,aO as cr,aP as dr,aQ as ur,aR as $n,aS as mr,aT as gr,aU as pr,aV as P1,aW as hr,aX as fr,aY as br,aZ as Cr,a_ as vr,a$ as yr,b0 as Lr,b1 as wr,b2 as xr}from"./vendor-BT2CVKel.js";import{a as Hn,R as kr,b as Sr,c as Mr,m as Tr,T as zr,u as Ir}from"./pages-OfCFR5QY.js";import{u as Ar,_ as Va,a as ge,T as re,E as Pa,b as Fe,c as pe,d as Er,A as Xe,D as C1,e as Dr,f as ce,g as Vr,C as v1,P as pn,h as Oa,i as Pr,F as _a,I as Or,j as _r,k as Fr,l as Nr,m as Rr,n as $r,o as Hr,p as Kr,q as Fa,r as Na,s as Br,t as Zr}from"./vendor-arizeai-Dzsaenki.js";import{L as Ra,a as $a,d as je,E as hn,k as Ha,b as Ka,l as nn,h as jr,j as Gr,c as Ur,e as Wr,f as Qr,s as qr,g as Ye,i as Je,R as e1,p as Xr,m as Yr}from"./vendor-codemirror-D2R3PB3i.js";import{V as Jr}from"./vendor-three-C5WAXd5r.js";const Ba=function(){var n={defaultValue:null,kind:"LocalArgument",name:"clusters"},a={defaultValue:null,kind:"LocalArgument",name:"dataQualityMetricColumnName"},t={defaultValue:null,kind:"LocalArgument",name:"fetchDataQualityMetric"},i={defaultValue:null,kind:"LocalArgument",name:"fetchPerformanceMetric"},r={defaultValue:null,kind:"LocalArgument",name:"performanceMetric"},o=[{alias:null,args:null,kind:"ScalarField",name:"primaryValue",storageKey:null},{alias:null,args:null,kind:"ScalarField",name:"referenceValue",storageKey:null}],l=[{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:o,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:o,storageKey:null}]}],storageKey:null}];return{fragment:{argumentDefinitions:[n,a,t,i,r],kind:"Fragment",metadata:null,name:"pointCloudStore_clusterMetricsQuery",selections:l,type:"Query",abstractKey:null},kind:"Request",operation:{argumentDefinitions:[n,t,a,i,r],kind:"Operation",name:"pointCloudStore_clusterMetricsQuery",selections:l},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
|
|
@@ -174,7 +174,7 @@ import{r as p,R as U,j as e,u as ya,a as Te,e as i1,s as D1,b as V1,c as Ke,d as
|
|
|
174
174
|
justify-content: center;
|
|
175
175
|
align-items: center;
|
|
176
176
|
background-color: rgba(0, 0, 0, 0.2);
|
|
177
|
-
`,children:e(Va,{isIndeterminate:!0,"aria-label":"loading"})}),Tl=({message:n,size:a})=>s("div",{css:g`
|
|
177
|
+
`,children:e(Va,{isIndeterminate:!0,"aria-label":"loading"})}),Tl=({message:n,size:a,className:t})=>s("div",{className:t,css:g`
|
|
178
178
|
display: flex;
|
|
179
179
|
flex-direction: column;
|
|
180
180
|
justify-content: center;
|
|
@@ -901,7 +901,7 @@ import{r as p,R as U,j as e,u as ya,a as Te,e as i1,s as D1,b as V1,c as Ke,d as
|
|
|
901
901
|
`;function j2(n,a){const{size:t="M",...i}=n;return e(Pi,{...i,"data-size":t,ref:a,css:Z2})}const t4=U.forwardRef(j2),G2=n=>{const a=t=>({markdownDisplayMode:"text",setMarkdownDisplayMode:i=>{t({markdownDisplayMode:i})},traceStreamingEnabled:!0,setTraceStreamingEnabled:i=>{t({traceStreamingEnabled:i})},lastNTimeRangeKey:"7d",setLastNTimeRangeKey:i=>{t({lastNTimeRangeKey:i})},projectsAutoRefreshEnabled:!0,setProjectAutoRefreshEnabled:i=>{t({projectsAutoRefreshEnabled:i})},showSpanAside:!0,setShowSpanAside:i=>{t({showSpanAside:i})},showMetricsInTraceTree:!0,setShowMetricsInTraceTree:i=>{t({showMetricsInTraceTree:i})},modelConfigByProvider:{},setModelConfigForProvider:({provider:i,modelConfig:r})=>{t(o=>({modelConfigByProvider:{...o.modelConfigByProvider,[i]:r}}))},playgroundStreamingEnabled:!0,setPlaygroundStreamingEnabled:i=>{t({playgroundStreamingEnabled:i})},...n});return Qe()(cn(qe(a),{name:"arize-phoenix-preferences"}))},kt=p.createContext(null);function i4({children:n,...a}){const[t]=p.useState(()=>G2(a));return e(kt.Provider,{value:t,children:n})}function xe(n,a){const t=U.useContext(kt);if(!t)throw new Error("Missing PreferencesContext.Provider in the tree");return ya(t,n,a)}const z1=[{key:"15m",label:"Last 15 Min"},{key:"1h",label:"Last Hour"},{key:"12h",label:"Last 12 Hours"},{key:"1d",label:"Last Day"},{key:"7d",label:"Last 7 Days"},{key:"30d",label:"Last Month"}];z1.reduce((n,a)=>({...n,[a.key]:a}),{});function an(n){const a=Date.now();switch(n){case"15m":return{start:Q1(Oi(a))};case"1h":return{start:Q1(q1(a,1))};case"12h":return{start:Ke(q1(a,12))};case"1d":return{start:Ke(ve(a,1))};case"7d":return{start:Ke(ve(a,7))};case"30d":return{start:Ke(ve(a,30))};default:I()}}function tn(n){return z1.some(a=>a.key===n)}function U2(n){return tn(n)||n==="custom"}const St=p.createContext(null);function W2(){const n=U.useContext(St);if(n===null)throw new Error("useTimeRange must be used within a TimeRangeContextProvider");return n}function r4({children:n}){const a=xe(l=>l.lastNTimeRangeKey),t=xe(l=>l.setLastNTimeRangeKey),[i,r]=p.useState(()=>tn(a)?{timeRangeKey:a,...an(a)}:{timeRangeKey:"7d",...an("7d")}),o=p.useCallback(l=>{r(l),tn(l.timeRangeKey)&&t(l.timeRangeKey)},[t]);return e(St.Provider,{value:{timeRange:i,setTimeRange:o},children:n})}const ye=b1("%x %H:%M:%S %p");b1("%H:%M %p");const Q2=n=>n.start&&n.end?`${ye(n.start)} - ${ye(n.end)}`:n.start?`From ${ye(n.start)}`:n.end?`Until ${ye(n.end)}`:"All Time";function o4(n){return new Intl.DateTimeFormat(n,{day:"2-digit",month:"2-digit",year:"numeric"}).formatToParts(new Date).map(i=>{switch(i.type){case"day":return"dd";case"month":return"mm";case"year":return"yyyy";case"literal":return i.value;default:return""}}).join("")}const q2=g`
|
|
902
902
|
width: 120px;
|
|
903
903
|
padding: var(--ac-global-dimension-size-50);
|
|
904
|
-
`;function X2({timeRangeKey:n,start:a,end:t}){if(n==="custom")return Q2({start:a,end:t});const i=z1.find(r=>r.key===n);return i?i.label:"invalid"}function Y2(n){const{value:a,isDisabled:t,onChange:i}=n,{timeRangeKey:r,start:o,end:l}=a,[c,d]=p.useState(!1);return s(Fi,{children:[e(V,{size:"S",leadingVisual:e(T,{svg:e(r2,{})}),isDisabled:t,onPress:()=>d(!0),children:X2(a)}),e(K2,{placement:"bottom end",isOpen:c,children:s(_i,{children:[e(R2,{}),s(k,{direction:"row",children:[e(J2,{visible:r==="custom",children:r==="custom"&&s(k,{direction:"column",gap:"size-100",justifyContent:"end",height:"100%",children:[e(K,{level:4,weight:"heavy",children:"Time Range"}),e(l0,{initialValue:{start:o,end:l},onSubmit:m=>{i&&i({timeRangeKey:"custom",...m}),d(!1)}})]})}),s(m0,{"aria-label":"time range preset selection",selectionMode:"single",selectedKeys:[r],css:q2,onSelectionChange:m=>{if(m==="all"||m.size===0)return
|
|
904
|
+
`;function X2({timeRangeKey:n,start:a,end:t}){if(n==="custom")return Q2({start:a,end:t});const i=z1.find(r=>r.key===n);return i?i.label:"invalid"}function Y2(n){const{value:a,isDisabled:t,onChange:i}=n,{timeRangeKey:r,start:o,end:l}=a,[c,d]=p.useState(!1);return s(Fi,{children:[e(V,{size:"S",leadingVisual:e(T,{svg:e(r2,{})}),isDisabled:t,onPress:()=>d(!0),children:X2(a)}),e(K2,{placement:"bottom end",isOpen:c,children:s(_i,{children:[e(R2,{}),s(k,{direction:"row",children:[e(J2,{visible:r==="custom",children:r==="custom"&&s(k,{direction:"column",gap:"size-100",justifyContent:"end",height:"100%",children:[e(K,{level:4,weight:"heavy",children:"Time Range"}),e(l0,{initialValue:{start:o,end:l},onSubmit:m=>{i&&i({timeRangeKey:"custom",...m}),d(!1)}})]})}),s(m0,{"aria-label":"time range preset selection",selectionMode:"single",selectedKeys:[r],css:q2,onSelectionChange:m=>{if(m==="all"||m.size===0){d(!1);return}const u=m.keys().next().value;U2(u)&&(u!=="custom"?(i({timeRangeKey:u,...an(u)}),d(!1)):i({timeRangeKey:u,start:o,end:l}))},children:[z1.map(({key:m,label:u})=>e(X1,{id:m,children:u},m)),e(X1,{id:"custom",children:"Custom"},"custom")]})]})]})})]})}function J2({children:n,visible:a}){return e("div",{css:g`
|
|
905
905
|
display: ${a?"block":"none"};
|
|
906
906
|
`,children:e(w,{borderEndWidth:"thin",borderColor:"light",padding:"size-100",height:"100%",children:n})})}function l4(){const{timeRange:n,setTimeRange:a}=W2(),t=p.useCallback(i=>{p.startTransition(()=>{a(i)})},[a]);return e(Y2,{value:n,onChange:t})}const e0=g`
|
|
907
907
|
--date-field-vertical-padding: 6px;
|
|
@@ -1756,7 +1756,8 @@ fragment ViewerContext_viewer on Query {
|
|
|
1756
1756
|
word-wrap: break-word;
|
|
1757
1757
|
`;function ma(n,a){return n.length>a?`${n.slice(0,a)}...`:n}function Q0({json:n,maxLength:a,space:t=0,disableTitle:i=!1,collapseSingleKey:r=!0}){const o=typeof a=="number",l=p.useMemo(()=>JSON.stringify(n,null,t),[n,t]),c=p.useMemo(()=>JSON.stringify(n,null,2),[n]),d=i?void 0:c;if(!J(n))return console.warn("JSONText component received a non-object value",n),e("span",{title:d,children:String(n)});const m=n;if(Object.keys(m).length===0)return e("span",{title:d,children:"--"});if(Object.keys(m).length===1&&r){const b=Object.keys(m)[0],C=m[b];if(typeof C=="string"){const L=o?ma(C,a):C;return e("span",{title:d,children:L})}}const u=o?ma(l,a):l;return e(o?"span":"pre",{title:d,css:o?void 0:W0,children:u})}const q0=100;function k4({getValue:n}){const a=n();return e(Q0,{json:a,maxLength:q0})}const X0=g`
|
|
1758
1758
|
position: relative;
|
|
1759
|
-
|
|
1759
|
+
height: 100%;
|
|
1760
|
+
min-height: 100%;
|
|
1760
1761
|
.controls {
|
|
1761
1762
|
transition: opacity 0.2s ease-in-out;
|
|
1762
1763
|
opacity: 0;
|
|
@@ -3110,4 +3111,4 @@ resource: new Resource({
|
|
|
3110
3111
|
__typename
|
|
3111
3112
|
}
|
|
3112
3113
|
}
|
|
3113
|
-
`}}}();pi.hash="c7f4f68f0256356c77264cc16b83e638";function F9(n){const[a,t]=N.useMutation(pi),{projectId:i,isQuiet:r=!1}=n,o=Da(),[l,c]=p.useState(null),d=L1(),m=po(),u=n.onExperimentDeleted,h=p.useCallback(C=>{a({variables:{input:{experimentIds:[C]}},onCompleted:()=>{d({title:"Experiment deleted",message:"The experiment has been deleted."})},onError:L=>{const S=Ft(L);m({title:"An error occurred",message:`Failed to delete experiment: ${(S==null?void 0:S[0])??L.message}`})}}),u==null||u()},[a,d,m,u]),f=p.useCallback(C=>{c(s(pe,{size:"S",title:"Delete Experiment",isDismissable:!0,onDismiss:()=>c(null),children:[e(w,{padding:"size-200",children:e(y,{color:"danger",children:"Are you sure you want to delete this experiment and its annotations and traces?"})}),e(w,{paddingEnd:"size-200",paddingTop:"size-100",paddingBottom:"size-100",borderTopColor:"light",borderTopWidth:"thin",children:e(k,{direction:"row",justifyContent:"end",children:e(V,{variant:"danger",onPress:()=>{h(C),c(null)},children:"Delete Experiment"})})})]}))},[h]),b=[e(_,{children:s(k,{direction:"row",gap:"size-75",justifyContent:"start",alignItems:"center",children:[e(T,{svg:e(k2,{})}),e(y,{children:"View run traces"})]})},"GO_TO_EXPERIMENT_RUN_TRACES"),e(_,{children:s(k,{direction:"row",gap:"size-75",justifyContent:"start",alignItems:"center",children:[e(T,{svg:e(wt,{})}),e(y,{children:"View metadata"})]})},"VIEW_METADATA"),e(_,{children:s(k,{direction:"row",gap:"size-75",justifyContent:"start",alignItems:"center",children:[e(T,{svg:e(Lt,{})}),e(y,{children:"Copy experiment ID"})]})},"COPY_EXPERIMENT_ID")];return n.canDeleteExperiment&&b.push(e(_,{children:s(k,{direction:"row",gap:"size-75",justifyContent:"start",alignItems:"center",children:[e(T,{svg:e(Vn,{})}),e(y,{children:t?"Deleting...":"Delete"})]})},"DELETE_EXPERIMENT")),s("div",{onClick:C=>{C.preventDefault(),C.stopPropagation()},children:[e(Oa,{buttonSize:"compact",align:"end",isQuiet:r,disabledKeys:i?[]:["GO_TO_EXPERIMENT_RUN_TRACES"],onAction:C=>{switch(C){case"GO_TO_EXPERIMENT_RUN_TRACES":return o(`/projects/${i}`);case"VIEW_METADATA":{c(e(pe,{title:"Metadata",onDismiss:()=>c(null),children:e(Tt,{value:JSON.stringify(n.metadata,null,2)})}));break}case"COPY_EXPERIMENT_ID":{ka(n.experimentId),d({title:"Copied",message:"The experiment ID has been copied to your clipboard"});break}case"DELETE_EXPERIMENT":{f(n.experimentId);break}default:I()}},children:b}),e(C1,{type:"modal",isDismissable:!0,onDismiss:()=>{c(null)},children:l})]})}export{z4 as $,$ as A,po as B,L1 as C,ot as D,V5 as E,Ft as F,p4 as G,w4 as H,T as I,M4 as J,w5 as K,L5 as L,$0 as M,y4 as N,Tl as O,xt as P,v4 as Q,a1 as R,L0 as S,me as T,oa as U,u4 as V,v0 as W,b4 as X,B0 as Y,I4 as Z,k as _,k1 as a,D0 as a$,H4 as a0,Vn as a1,na as a2,ss as a3,K4 as a4,cs as a5,gs as a6,n1 as a7,T3 as a8,zn as a9,K3 as aA,c5 as aB,m5 as aC,K as aD,t4 as aE,Y3 as aF,J3 as aG,e5 as aH,Y4 as aI,X4 as aJ,Q3 as aK,S1 as aL,M1 as aM,ol as aN,C4 as aO,P0 as aP,V0 as aQ,we as aR,J4 as aS,ht as aT,D5 as aU,P5 as aV,d4 as aW,kl as aX,$o as aY,t5 as aZ,al as a_,Vt as aa,q4 as ab,G4 as ac,z3 as ad,j4 as ae,W4 as af,T5 as ag,R5 as ah,A5 as ai,U5 as aj,Z5 as ak,M5 as al,Y5 as am,B4 as an,H5 as ao,Z4 as ap,G5 as aq,Q4 as ar,B5 as as,U4 as at,h5 as au,O3 as av,p5 as aw,g5 as ax,Tt as ay,B3 as az,dt as b,U3 as b$,K5 as b0,q5 as b1,f4 as b2,zs as b3,r9 as b4,i9 as b5,wt as b6,k2 as b7,n9 as b8,C5 as b9,
|
|
3114
|
+
`}}}();pi.hash="c7f4f68f0256356c77264cc16b83e638";function F9(n){const[a,t]=N.useMutation(pi),{projectId:i,isQuiet:r=!1}=n,o=Da(),[l,c]=p.useState(null),d=L1(),m=po(),u=n.onExperimentDeleted,h=p.useCallback(C=>{a({variables:{input:{experimentIds:[C]}},onCompleted:()=>{d({title:"Experiment deleted",message:"The experiment has been deleted."})},onError:L=>{const S=Ft(L);m({title:"An error occurred",message:`Failed to delete experiment: ${(S==null?void 0:S[0])??L.message}`})}}),u==null||u()},[a,d,m,u]),f=p.useCallback(C=>{c(s(pe,{size:"S",title:"Delete Experiment",isDismissable:!0,onDismiss:()=>c(null),children:[e(w,{padding:"size-200",children:e(y,{color:"danger",children:"Are you sure you want to delete this experiment and its annotations and traces?"})}),e(w,{paddingEnd:"size-200",paddingTop:"size-100",paddingBottom:"size-100",borderTopColor:"light",borderTopWidth:"thin",children:e(k,{direction:"row",justifyContent:"end",children:e(V,{variant:"danger",onPress:()=>{h(C),c(null)},children:"Delete Experiment"})})})]}))},[h]),b=[e(_,{children:s(k,{direction:"row",gap:"size-75",justifyContent:"start",alignItems:"center",children:[e(T,{svg:e(k2,{})}),e(y,{children:"View run traces"})]})},"GO_TO_EXPERIMENT_RUN_TRACES"),e(_,{children:s(k,{direction:"row",gap:"size-75",justifyContent:"start",alignItems:"center",children:[e(T,{svg:e(wt,{})}),e(y,{children:"View metadata"})]})},"VIEW_METADATA"),e(_,{children:s(k,{direction:"row",gap:"size-75",justifyContent:"start",alignItems:"center",children:[e(T,{svg:e(Lt,{})}),e(y,{children:"Copy experiment ID"})]})},"COPY_EXPERIMENT_ID")];return n.canDeleteExperiment&&b.push(e(_,{children:s(k,{direction:"row",gap:"size-75",justifyContent:"start",alignItems:"center",children:[e(T,{svg:e(Vn,{})}),e(y,{children:t?"Deleting...":"Delete"})]})},"DELETE_EXPERIMENT")),s("div",{onClick:C=>{C.preventDefault(),C.stopPropagation()},children:[e(Oa,{buttonSize:"compact",align:"end",isQuiet:r,disabledKeys:i?[]:["GO_TO_EXPERIMENT_RUN_TRACES"],onAction:C=>{switch(C){case"GO_TO_EXPERIMENT_RUN_TRACES":return o(`/projects/${i}`);case"VIEW_METADATA":{c(e(pe,{title:"Metadata",onDismiss:()=>c(null),children:e(Tt,{value:JSON.stringify(n.metadata,null,2)})}));break}case"COPY_EXPERIMENT_ID":{ka(n.experimentId),d({title:"Copied",message:"The experiment ID has been copied to your clipboard"});break}case"DELETE_EXPERIMENT":{f(n.experimentId);break}default:I()}},children:b}),e(C1,{type:"modal",isDismissable:!0,onDismiss:()=>{c(null)},children:l})]})}export{z4 as $,$ as A,po as B,L1 as C,ot as D,V5 as E,Ft as F,p4 as G,w4 as H,T as I,M4 as J,w5 as K,L5 as L,$0 as M,y4 as N,Tl as O,xt as P,v4 as Q,a1 as R,L0 as S,me as T,oa as U,u4 as V,v0 as W,b4 as X,B0 as Y,I4 as Z,k as _,k1 as a,D0 as a$,H4 as a0,Vn as a1,na as a2,ss as a3,K4 as a4,cs as a5,gs as a6,n1 as a7,T3 as a8,zn as a9,K3 as aA,c5 as aB,m5 as aC,K as aD,t4 as aE,Y3 as aF,J3 as aG,e5 as aH,Y4 as aI,X4 as aJ,Q3 as aK,S1 as aL,M1 as aM,ol as aN,C4 as aO,P0 as aP,V0 as aQ,we as aR,J4 as aS,ht as aT,D5 as aU,P5 as aV,d4 as aW,kl as aX,$o as aY,t5 as aZ,al as a_,Vt as aa,q4 as ab,G4 as ac,z3 as ad,j4 as ae,W4 as af,T5 as ag,R5 as ah,A5 as ai,U5 as aj,Z5 as ak,M5 as al,Y5 as am,B4 as an,H5 as ao,Z4 as ap,G5 as aq,Q4 as ar,B5 as as,U4 as at,h5 as au,O3 as av,p5 as aw,g5 as ax,Tt as ay,B3 as az,dt as b,U3 as b$,K5 as b0,q5 as b1,f4 as b2,zs as b3,r9 as b4,i9 as b5,wt as b6,k2 as b7,n9 as b8,C5 as b9,x5 as bA,y3 as bB,u9 as bC,g9 as bD,m9 as bE,da as bF,F5 as bG,ec as bH,d9 as bI,a9 as bJ,Ds as bK,sl as bL,c9 as bM,h4 as bN,T4 as bO,_5 as bP,Y as bQ,bl as bR,s5 as bS,l5 as bT,b5 as bU,f5 as bV,D2 as bW,c4 as bX,s4 as bY,_3 as bZ,W3 as b_,jl as ba,G as bb,l9 as bc,yt as bd,vt as be,o5 as bf,ke as bg,Ms as bh,ks as bi,p9 as bj,Vs as bk,ye as bl,Es as bm,h9 as bn,Lt as bo,x4 as bp,Q0 as bq,I5 as br,O5 as bs,s9 as bt,W5 as bu,xe as bv,n4 as bw,e4 as bx,d5 as by,X as bz,ct as c,V4 as c$,G3 as c0,ie as c1,t1 as c2,a5 as c3,b9 as c4,R3 as c5,N3 as c6,hl as c7,m4 as c8,g4 as c9,D4 as cA,F4 as cB,A4 as cC,Gc as cD,Uc as cE,at as cF,Jc as cG,Ze as cH,Le as cI,ci as cJ,on as cK,Ve as cL,E9 as cM,T9 as cN,Ln as cO,z9 as cP,A9 as cQ,D3 as cR,E3 as cS,V3 as cT,x3 as cU,k9 as cV,r5 as cW,M9 as cX,I9 as cY,S9 as cZ,K0 as c_,f9 as ca,C9 as cb,t9 as cc,e9 as cd,Q5 as ce,K2 as cf,R2 as cg,$4 as ch,Dn as ci,y1 as cj,mo as ck,v9 as cl,y9 as cm,L9 as cn,x9 as co,w9 as cp,so as cq,lo as cr,x as cs,Qa as ct,E5 as cu,Ac as cv,P4 as cw,O4 as cx,_4 as cy,E4 as cz,L3 as d,N4 as d0,_t as d1,W2 as d2,Nt as d3,H0 as d4,Ot as d5,u5 as d6,l4 as d7,P3 as d8,X5 as d9,Ss as dA,_9 as dB,F9 as dC,S4 as dD,ea as dE,m2 as dF,$5 as dG,A3 as dH,I3 as dI,Dt as dJ,v5 as dK,L4 as dL,k5 as dM,N5 as dN,J5 as dO,M3 as dP,i4 as dQ,S3 as dR,z5 as da,ae as db,Vd as dc,j0 as dd,j3 as de,V9 as df,P9 as dg,S5 as dh,a4 as di,Is as dj,D9 as dk,ac as dl,j5 as dm,O9 as dn,k3 as dp,w3 as dq,r4 as dr,o4 as ds,R4 as dt,rn as du,o9 as dv,k4 as dw,s2 as dx,R0 as dy,y5 as dz,Z3 as e,Sl as f,u1 as g,n5 as h,J as i,d1 as j,Ho as k,ll as l,I as m,F3 as n,pl as o,q3 as p,X3 as q,$3 as r,uo as s,H3 as t,Jo as u,i5 as v,y as w,V as x,Mt as y,w as z};
|
|
@@ -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 D,d as O,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 Do,ad as Oo,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 D,d as O,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 Do,ad as Oo,ae as Go,af as Mo}from"./pages-OfCFR5QY.js";import{z as No,dP as Vo,bz as qo,R as Uo,dQ as Wo,dR as Bo}from"./components-CV-CKm8I.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;
|