From 5eaf2790598567b68e5d0b79ccbe02ca5a4bdff9 Mon Sep 17 00:00:00 2001 From: Ankur Goyal Date: Sat, 25 Apr 2026 10:20:49 -0700 Subject: [PATCH 1/2] rm eval status page --- generated_types.json | 201 +++++++------------------- py/src/braintrust/_generated_types.py | 149 +++++++------------ py/src/braintrust/generated_types.py | 8 +- 3 files changed, 107 insertions(+), 251 deletions(-) diff --git a/generated_types.json b/generated_types.json index 22a11633..82ea308d 100644 --- a/generated_types.json +++ b/generated_types.json @@ -2343,150 +2343,6 @@ "name" ] }, - "EvalStatusPage": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid", - "description": "Unique identifier for the eval status page" - }, - "project_id": { - "type": "string", - "format": "uuid", - "description": "Unique identifier for the project that the eval status page belongs under" - }, - "user_id": { - "type": [ - "string", - "null" - ], - "format": "uuid", - "description": "Identifies the user who created the eval status page" - }, - "created": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "Date of eval status page creation" - }, - "deleted_at": { - "type": [ - "string", - "null" - ], - "format": "date-time", - "description": "Date of eval status page deletion, or null if the eval status page is still active" - }, - "name": { - "type": "string", - "description": "Name of the eval status page" - }, - "description": { - "type": [ - "string", - "null" - ], - "description": "Textual description of the eval status page" - }, - "logo_url": { - "type": [ - "string", - "null" - ], - "description": "URL of the logo to display on the page" - }, - "theme": { - "$ref": "#/components/schemas/EvalStatusPageTheme" - }, - "config": { - "$ref": "#/components/schemas/EvalStatusPageConfig" - } - }, - "required": [ - "id", - "project_id", - "name", - "theme", - "config" - ], - "description": "A public eval status page that displays aggregate experiment results" - }, - "EvalStatusPageConfig": { - "type": "object", - "properties": { - "score_columns": { - "type": [ - "array", - "null" - ], - "items": { - "type": "string" - }, - "description": "The score columns to display on the page" - }, - "metric_columns": { - "type": [ - "array", - "null" - ], - "items": { - "type": "string" - }, - "description": "The metric columns to display on the page" - }, - "grouping_field": { - "type": [ - "string", - "null" - ], - "description": "The metadata field to use for grouping experiments (model)" - }, - "filter": { - "type": [ - "string", - "null" - ], - "description": "BTQL filter to apply to experiment data" - }, - "sort_by": { - "type": [ - "string", - "null" - ], - "description": "Field to sort results by (format: 'score:' or 'metric:')" - }, - "sort_order": { - "type": [ - "string", - "null" - ], - "enum": [ - "asc", - "desc" - ], - "description": "Sort order (ascending or descending)" - }, - "api_key": { - "type": [ - "string", - "null" - ], - "description": "The API key used for fetching experiment data" - } - }, - "description": "Configuration for what data to display" - }, - "EvalStatusPageTheme": { - "type": "string", - "enum": [ - "light", - "dark" - ], - "description": "The theme for the page" - }, "Experiment": { "type": "object", "properties": { @@ -2560,6 +2416,24 @@ ], "description": "Version number of the linked dataset the experiment was run against. This can be used to reproduce the experiment after the dataset has been modified." }, + "internal_metadata": { + "type": [ + "object", + "null" + ], + "properties": { + "dataset_filter": { + "type": [ + "object", + "null" + ], + "additionalProperties": {}, + "description": "BTQL filter payload used to evaluate a subset of a linked dataset." + } + }, + "additionalProperties": {}, + "description": "Braintrust-controlled metadata about the experiment." + }, "parameters_id": { "type": [ "string", @@ -5373,6 +5247,23 @@ ], "description": "The definition of what to export" }, + "scope": { + "anyOf": [ + { + "$ref": "#/components/schemas/SpanScope" + }, + { + "$ref": "#/components/schemas/TraceScope" + }, + { + "$ref": "#/components/schemas/GroupScope" + }, + { + "type": "null" + } + ], + "description": "Execution scope for export automation. Defaults to span-level execution." + }, "export_path": { "type": "string", "description": "The path to export the results to. It should include the storage protocol and prefix, e.g. s3://bucket-name/path/to/export" @@ -5416,6 +5307,25 @@ "role_arn", "external_id" ] + }, + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "gcp_service_account" + ] + }, + "service_account_email": { + "type": "string", + "description": "The GCP service account email to impersonate" + } + }, + "required": [ + "type", + "service_account_email" + ] } ] }, @@ -8650,7 +8560,8 @@ ], "enum": [ "traces", - "spans" + "spans", + "topics" ] }, "cluster": { diff --git a/py/src/braintrust/_generated_types.py b/py/src/braintrust/_generated_types.py index 8f60eb9a..25c428d8 100644 --- a/py/src/braintrust/_generated_types.py +++ b/py/src/braintrust/_generated_types.py @@ -617,43 +617,13 @@ class EnvVar(TypedDict): """ -class EvalStatusPageConfig(TypedDict): - score_columns: NotRequired[Sequence[str] | None] +class ExperimentInternalMetadata(TypedDict): + dataset_filter: NotRequired[Mapping[str, Any] | None] """ - The score columns to display on the page - """ - metric_columns: NotRequired[Sequence[str] | None] - """ - The metric columns to display on the page - """ - grouping_field: NotRequired[str | None] - """ - The metadata field to use for grouping experiments (model) - """ - filter: NotRequired[str | None] - """ - BTQL filter to apply to experiment data - """ - sort_by: NotRequired[str | None] - """ - Field to sort results by (format: 'score:' or 'metric:') - """ - sort_order: NotRequired[Literal['asc', 'desc'] | None] - """ - Sort order (ascending or descending) - """ - api_key: NotRequired[str | None] - """ - The API key used for fetching experiment data + BTQL filter payload used to evaluate a subset of a linked dataset. """ -EvalStatusPageTheme: TypeAlias = Literal['light', 'dark'] -""" -The theme for the page -""" - - class ExperimentEventMetadata(TypedDict): model: NotRequired[str | None] """ @@ -1636,35 +1606,11 @@ class ProjectAutomationConfig1Credentials(TypedDict): """ -class ProjectAutomationConfig1(TypedDict): - event_type: Literal['btql_export'] +class ProjectAutomationConfig1Credentials1(TypedDict): + type: Literal['gcp_service_account'] + service_account_email: str """ - The type of automation. - """ - export_definition: ( - ProjectAutomationConfig1ExportDefinition - | ProjectAutomationConfig1ExportDefinition1 - | ProjectAutomationConfig1ExportDefinition2 - ) - """ - The definition of what to export - """ - export_path: str - """ - The path to export the results to. It should include the storage protocol and prefix, e.g. s3://bucket-name/path/to/export - """ - format: Literal['jsonl', 'parquet'] - """ - The format to export the results in - """ - interval_seconds: float - """ - Perform the triggered action at most once in this interval of seconds - """ - credentials: ProjectAutomationConfig1Credentials - batch_size: NotRequired[float | None] - """ - The number of rows to export in each batch + The GCP service account email to impersonate """ @@ -2654,7 +2600,7 @@ class ViewOptionsViewOptions1(TypedDict): """ chartAnnotations: NotRequired[Sequence[ViewOptionsViewOptions1ChartAnnotation] | None] timeRangeFilter: NotRequired[str | ViewOptionsViewOptions1TimeRangeFilter | None] - queryShape: NotRequired[Literal['traces', 'spans'] | None] + queryShape: NotRequired[Literal['traces', 'spans', 'topics'] | None] cluster: NotRequired[str | None] freezeColumns: NotRequired[bool | None] @@ -2902,43 +2848,6 @@ class DatasetEvent(TypedDict): """ -class EvalStatusPage(TypedDict): - id: str - """ - Unique identifier for the eval status page - """ - project_id: str - """ - Unique identifier for the project that the eval status page belongs under - """ - user_id: NotRequired[str | None] - """ - Identifies the user who created the eval status page - """ - created: NotRequired[str | None] - """ - Date of eval status page creation - """ - deleted_at: NotRequired[str | None] - """ - Date of eval status page deletion, or null if the eval status page is still active - """ - name: str - """ - Name of the eval status page - """ - description: NotRequired[str | None] - """ - Textual description of the eval status page - """ - logo_url: NotRequired[str | None] - """ - URL of the logo to display on the page - """ - theme: EvalStatusPageTheme - config: EvalStatusPageConfig - - class Experiment(TypedDict): id: str """ @@ -2981,6 +2890,10 @@ class Experiment(TypedDict): """ Version number of the linked dataset the experiment was run against. This can be used to reproduce the experiment after the dataset has been modified. """ + internal_metadata: NotRequired[ExperimentInternalMetadata | None] + """ + Braintrust-controlled metadata about the experiment. + """ parameters_id: NotRequired[str | None] """ Identifier of the linked saved parameters object, or null if the experiment is not linked to saved parameters @@ -3259,6 +3172,44 @@ class Project(TypedDict): settings: NotRequired[ProjectSettings | None] +class ProjectAutomationConfig1(TypedDict): + event_type: Literal['btql_export'] + """ + The type of automation. + """ + export_definition: ( + ProjectAutomationConfig1ExportDefinition + | ProjectAutomationConfig1ExportDefinition1 + | ProjectAutomationConfig1ExportDefinition2 + ) + """ + The definition of what to export + """ + scope: NotRequired[SpanScope | TraceScope | GroupScope | None] + """ + Execution scope for export automation. Defaults to span-level execution. + """ + export_path: str + """ + The path to export the results to. It should include the storage protocol and prefix, e.g. s3://bucket-name/path/to/export + """ + format: Literal['jsonl', 'parquet'] + """ + The format to export the results in + """ + interval_seconds: float + """ + Perform the triggered action at most once in this interval of seconds + """ + credentials: ( + ProjectAutomationConfig1Credentials | ProjectAutomationConfig1Credentials1 + ) + batch_size: NotRequired[float | None] + """ + The number of rows to export in each batch + """ + + class ProjectAutomationConfig2(TypedDict): event_type: Literal['retention'] """ diff --git a/py/src/braintrust/generated_types.py b/py/src/braintrust/generated_types.py index b1f7d486..ed6c3c99 100644 --- a/py/src/braintrust/generated_types.py +++ b/py/src/braintrust/generated_types.py @@ -1,4 +1,4 @@ -"""Auto-generated file (content hash 0a2373633d8deec4) -- do not modify""" +"""Auto-generated file (content hash 0f1f3f6a1bd64d86) -- do not modify""" from ._generated_types import ( Acl, @@ -30,9 +30,6 @@ DatasetEvent, DatasetSnapshot, EnvVar, - EvalStatusPage, - EvalStatusPageConfig, - EvalStatusPageTheme, Experiment, ExperimentEvent, ExtendedSavedFunctionId, @@ -148,9 +145,6 @@ "DatasetEvent", "DatasetSnapshot", "EnvVar", - "EvalStatusPage", - "EvalStatusPageConfig", - "EvalStatusPageTheme", "Experiment", "ExperimentEvent", "ExtendedSavedFunctionId", From 5f2ddeee5e515a5f66d2729a4c5e1d0e5570202c Mon Sep 17 00:00:00 2001 From: Ankur Goyal Date: Sat, 25 Apr 2026 10:22:07 -0700 Subject: [PATCH 2/2] fix --- py/src/braintrust/_generated_types.py | 7 ------- py/src/braintrust/generated_types.py | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/py/src/braintrust/_generated_types.py b/py/src/braintrust/_generated_types.py index 3adf7ca7..25c428d8 100644 --- a/py/src/braintrust/_generated_types.py +++ b/py/src/braintrust/_generated_types.py @@ -624,13 +624,6 @@ class ExperimentInternalMetadata(TypedDict): """ -class ExperimentInternalMetadata(TypedDict): - dataset_filter: NotRequired[Mapping[str, Any] | None] - """ - BTQL filter payload used to evaluate a subset of a linked dataset. - """ - - class ExperimentEventMetadata(TypedDict): model: NotRequired[str | None] """ diff --git a/py/src/braintrust/generated_types.py b/py/src/braintrust/generated_types.py index 450561b1..ed6c3c99 100644 --- a/py/src/braintrust/generated_types.py +++ b/py/src/braintrust/generated_types.py @@ -1,4 +1,4 @@ -"""Auto-generated file (content hash 3e31519da74cfdbd) -- do not modify""" +"""Auto-generated file (content hash 0f1f3f6a1bd64d86) -- do not modify""" from ._generated_types import ( Acl,