@@ -196,42 +196,51 @@ def query(
196196 query : "QueryInput" ,
197197 * ,
198198 limit : Optional [int ] = None ,
199+ trace_ids : Optional [Sequence [str ]] = None ,
199200 session_ids : Optional [Sequence [str ]] = None ,
200201 ) -> "JqlQueryResponse" :
201- """Run JQL for this project, optionally narrowed by session IDs."""
202+ """Run JQL for this project, optionally narrowed by trace or session IDs."""
202203 from judgeval .jql import to_json
203204
204205 return cast (
205206 "JqlQueryResponse" ,
206- self ._run_jql ("query" , to_json (query ), limit , session_ids ),
207+ self ._run_jql ("query" , to_json (query ), limit , trace_ids , session_ids ),
207208 )
208209
209210 def present (
210211 self ,
211212 query : "QueryInput" ,
212213 * ,
213214 limit : Optional [int ] = None ,
215+ trace_ids : Optional [Sequence [str ]] = None ,
214216 session_ids : Optional [Sequence [str ]] = None ,
215217 ) -> "JqlPresentationResponse" :
216- """Run a chart or table JQL query, optionally narrowed by session."""
218+ """Run a chart or table JQL query, optionally narrowed by trace or session IDs ."""
217219 from judgeval .jql import to_json
218220
219221 return cast (
220222 "JqlPresentationResponse" ,
221- self ._run_jql ("query/presentation" , to_json (query ), limit , session_ids ),
223+ self ._run_jql (
224+ "query/presentation" , to_json (query ), limit , trace_ids , session_ids
225+ ),
222226 )
223227
224228 def _run_jql (
225229 self ,
226230 path : str ,
227231 query : Dict [str , Any ],
228232 limit : Optional [int ],
233+ trace_ids : Optional [Sequence [str ]],
229234 session_ids : Optional [Sequence [str ]],
230235 ) -> Any :
236+ if trace_ids is not None and session_ids is not None :
237+ raise ValueError ("trace_ids and session_ids are mutually exclusive" )
231238 project_id = self ._require_jql_project_id ()
232239 payload : Dict [str , Any ] = {"query" : query }
233240 if limit is not None :
234241 payload ["limit" ] = limit
242+ if trace_ids is not None :
243+ payload ["trace_ids" ] = list (trace_ids )
235244 if session_ids is not None :
236245 payload ["session_ids" ] = list (session_ids )
237246 try :
@@ -251,14 +260,18 @@ def discover(
251260 kind : "DiscoveryKind" ,
252261 * ,
253262 limit : Optional [int ] = None ,
263+ trace_ids : Optional [Sequence [str ]] = None ,
254264 session_ids : Optional [Sequence [str ]] = None ,
255265 ** options : Any ,
256266 ) -> "JqlQueryResponse" :
257267 """Discover project-scoped judges, fields, models, and related values."""
258268 from judgeval .jql import discovery
259269
260270 return self .query (
261- discovery (kind , ** options ), limit = limit , session_ids = session_ids
271+ discovery (kind , ** options ),
272+ limit = limit ,
273+ trace_ids = trace_ids ,
274+ session_ids = session_ids ,
262275 )
263276
264277 def _require_jql_project_id (self ) -> str :
0 commit comments