openai-agents 0.0.16__py3-none-any.whl → 0.0.18__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 openai-agents might be problematic. Click here for more details.

agents/tool.py CHANGED
@@ -4,7 +4,7 @@ import inspect
4
4
  import json
5
5
  from collections.abc import Awaitable
6
6
  from dataclasses import dataclass
7
- from typing import Any, Callable, Literal, Union, overload
7
+ from typing import TYPE_CHECKING, Any, Callable, Literal, Union, overload
8
8
 
9
9
  from openai.types.responses.file_search_tool_param import Filters, RankingOptions
10
10
  from openai.types.responses.response_output_item import LocalShellCall, McpApprovalRequest
@@ -20,16 +20,25 @@ from .function_schema import DocstringStyle, function_schema
20
20
  from .items import RunItem
21
21
  from .logger import logger
22
22
  from .run_context import RunContextWrapper
23
+ from .tool_context import ToolContext
23
24
  from .tracing import SpanError
24
25
  from .util import _error_tracing
25
26
  from .util._types import MaybeAwaitable
26
27
 
28
+ if TYPE_CHECKING:
29
+ from .agent import Agent
30
+
27
31
  ToolParams = ParamSpec("ToolParams")
28
32
 
29
33
  ToolFunctionWithoutContext = Callable[ToolParams, Any]
30
34
  ToolFunctionWithContext = Callable[Concatenate[RunContextWrapper[Any], ToolParams], Any]
35
+ ToolFunctionWithToolContext = Callable[Concatenate[ToolContext, ToolParams], Any]
31
36
 
32
- ToolFunction = Union[ToolFunctionWithoutContext[ToolParams], ToolFunctionWithContext[ToolParams]]
37
+ ToolFunction = Union[
38
+ ToolFunctionWithoutContext[ToolParams],
39
+ ToolFunctionWithContext[ToolParams],
40
+ ToolFunctionWithToolContext[ToolParams],
41
+ ]
33
42
 
34
43
 
35
44
  @dataclass
@@ -59,7 +68,7 @@ class FunctionTool:
59
68
  params_json_schema: dict[str, Any]
60
69
  """The JSON schema for the tool's parameters."""
61
70
 
62
- on_invoke_tool: Callable[[RunContextWrapper[Any], str], Awaitable[Any]]
71
+ on_invoke_tool: Callable[[ToolContext[Any], str], Awaitable[Any]]
63
72
  """A function that invokes the tool with the given context and parameters. The params passed
64
73
  are:
65
74
  1. The tool run context.
@@ -74,6 +83,11 @@ class FunctionTool:
74
83
  """Whether the JSON schema is in strict mode. We **strongly** recommend setting this to True,
75
84
  as it increases the likelihood of correct JSON input."""
76
85
 
86
+ is_enabled: bool | Callable[[RunContextWrapper[Any], Agent[Any]], MaybeAwaitable[bool]] = True
87
+ """Whether the tool is enabled. Either a bool or a Callable that takes the run context and agent
88
+ and returns whether the tool is enabled. You can use this to dynamically enable/disable a tool
89
+ based on your context/state."""
90
+
77
91
 
78
92
  @dataclass
79
93
  class FileSearchTool:
@@ -262,6 +276,7 @@ def function_tool(
262
276
  use_docstring_info: bool = True,
263
277
  failure_error_function: ToolErrorFunction | None = None,
264
278
  strict_mode: bool = True,
279
+ is_enabled: bool | Callable[[RunContextWrapper[Any], Agent[Any]], MaybeAwaitable[bool]] = True,
265
280
  ) -> FunctionTool:
266
281
  """Overload for usage as @function_tool (no parentheses)."""
267
282
  ...
@@ -276,6 +291,7 @@ def function_tool(
276
291
  use_docstring_info: bool = True,
277
292
  failure_error_function: ToolErrorFunction | None = None,
278
293
  strict_mode: bool = True,
294
+ is_enabled: bool | Callable[[RunContextWrapper[Any], Agent[Any]], MaybeAwaitable[bool]] = True,
279
295
  ) -> Callable[[ToolFunction[...]], FunctionTool]:
280
296
  """Overload for usage as @function_tool(...)."""
281
297
  ...
@@ -290,6 +306,7 @@ def function_tool(
290
306
  use_docstring_info: bool = True,
291
307
  failure_error_function: ToolErrorFunction | None = default_tool_error_function,
292
308
  strict_mode: bool = True,
309
+ is_enabled: bool | Callable[[RunContextWrapper[Any], Agent[Any]], MaybeAwaitable[bool]] = True,
293
310
  ) -> FunctionTool | Callable[[ToolFunction[...]], FunctionTool]:
294
311
  """
295
312
  Decorator to create a FunctionTool from a function. By default, we will:
@@ -318,6 +335,9 @@ def function_tool(
318
335
  If False, it allows non-strict JSON schemas. For example, if a parameter has a default
319
336
  value, it will be optional, additional properties are allowed, etc. See here for more:
320
337
  https://platform.openai.com/docs/guides/structured-outputs?api-mode=responses#supported-schemas
338
+ is_enabled: Whether the tool is enabled. Can be a bool or a callable that takes the run
339
+ context and agent and returns whether the tool is enabled. Disabled tools are hidden
340
+ from the LLM at runtime.
321
341
  """
322
342
 
323
343
  def _create_function_tool(the_func: ToolFunction[...]) -> FunctionTool:
@@ -330,7 +350,7 @@ def function_tool(
330
350
  strict_json_schema=strict_mode,
331
351
  )
332
352
 
333
- async def _on_invoke_tool_impl(ctx: RunContextWrapper[Any], input: str) -> Any:
353
+ async def _on_invoke_tool_impl(ctx: ToolContext[Any], input: str) -> Any:
334
354
  try:
335
355
  json_data: dict[str, Any] = json.loads(input) if input else {}
336
356
  except Exception as e:
@@ -379,7 +399,7 @@ def function_tool(
379
399
 
380
400
  return result
381
401
 
382
- async def _on_invoke_tool(ctx: RunContextWrapper[Any], input: str) -> Any:
402
+ async def _on_invoke_tool(ctx: ToolContext[Any], input: str) -> Any:
383
403
  try:
384
404
  return await _on_invoke_tool_impl(ctx, input)
385
405
  except Exception as e:
@@ -407,6 +427,7 @@ def function_tool(
407
427
  params_json_schema=schema.params_json_schema,
408
428
  on_invoke_tool=_on_invoke_tool,
409
429
  strict_json_schema=strict_mode,
430
+ is_enabled=is_enabled,
410
431
  )
411
432
 
412
433
  # If func is actually a callable, we were used as @function_tool with no parentheses
agents/tool_context.py ADDED
@@ -0,0 +1,29 @@
1
+ from dataclasses import dataclass, field, fields
2
+ from typing import Any
3
+
4
+ from .run_context import RunContextWrapper, TContext
5
+
6
+
7
+ def _assert_must_pass_tool_call_id() -> str:
8
+ raise ValueError("tool_call_id must be passed to ToolContext")
9
+
10
+
11
+ @dataclass
12
+ class ToolContext(RunContextWrapper[TContext]):
13
+ """The context of a tool call."""
14
+
15
+ tool_call_id: str = field(default_factory=_assert_must_pass_tool_call_id)
16
+ """The ID of the tool call."""
17
+
18
+ @classmethod
19
+ def from_agent_context(
20
+ cls, context: RunContextWrapper[TContext], tool_call_id: str
21
+ ) -> "ToolContext":
22
+ """
23
+ Create a ToolContext from a RunContextWrapper.
24
+ """
25
+ # Grab the names of the RunContextWrapper's init=True fields
26
+ base_values: dict[str, Any] = {
27
+ f.name: getattr(context, f.name) for f in fields(RunContextWrapper) if f.init
28
+ }
29
+ return cls(tool_call_id=tool_call_id, **base_values)
@@ -188,10 +188,27 @@ class BatchTraceProcessor(TracingProcessor):
188
188
  # Track when we next *must* perform a scheduled export
189
189
  self._next_export_time = time.time() + self._schedule_delay
190
190
 
191
- self._worker_thread = threading.Thread(target=self._run, daemon=True)
192
- self._worker_thread.start()
191
+ # We lazily start the background worker thread the first time a span/trace is queued.
192
+ self._worker_thread: threading.Thread | None = None
193
+ self._thread_start_lock = threading.Lock()
194
+
195
+ def _ensure_thread_started(self) -> None:
196
+ # Fast path without holding the lock
197
+ if self._worker_thread and self._worker_thread.is_alive():
198
+ return
199
+
200
+ # Double-checked locking to avoid starting multiple threads
201
+ with self._thread_start_lock:
202
+ if self._worker_thread and self._worker_thread.is_alive():
203
+ return
204
+
205
+ self._worker_thread = threading.Thread(target=self._run, daemon=True)
206
+ self._worker_thread.start()
193
207
 
194
208
  def on_trace_start(self, trace: Trace) -> None:
209
+ # Ensure the background worker is running before we enqueue anything.
210
+ self._ensure_thread_started()
211
+
195
212
  try:
196
213
  self._queue.put_nowait(trace)
197
214
  except queue.Full:
@@ -206,6 +223,9 @@ class BatchTraceProcessor(TracingProcessor):
206
223
  pass
207
224
 
208
225
  def on_span_end(self, span: Span[Any]) -> None:
226
+ # Ensure the background worker is running before we enqueue anything.
227
+ self._ensure_thread_started()
228
+
209
229
  try:
210
230
  self._queue.put_nowait(span)
211
231
  except queue.Full:
@@ -216,7 +236,13 @@ class BatchTraceProcessor(TracingProcessor):
216
236
  Called when the application stops. We signal our thread to stop, then join it.
217
237
  """
218
238
  self._shutdown_event.set()
219
- self._worker_thread.join(timeout=timeout)
239
+
240
+ # Only join if we ever started the background thread; otherwise flush synchronously.
241
+ if self._worker_thread and self._worker_thread.is_alive():
242
+ self._worker_thread.join(timeout=timeout)
243
+ else:
244
+ # No background thread: process any remaining items synchronously.
245
+ self._export_batches(force=True)
220
246
 
221
247
  def force_flush(self):
222
248
  """
@@ -3,6 +3,7 @@ from typing import TYPE_CHECKING
3
3
  from pydantic import BaseModel
4
4
 
5
5
  if TYPE_CHECKING:
6
+ from ..exceptions import RunErrorDetails
6
7
  from ..result import RunResult, RunResultBase, RunResultStreaming
7
8
 
8
9
 
@@ -38,6 +39,17 @@ def pretty_print_result(result: "RunResult") -> str:
38
39
  return output
39
40
 
40
41
 
42
+ def pretty_print_run_error_details(result: "RunErrorDetails") -> str:
43
+ output = "RunErrorDetails:"
44
+ output += f'\n- Last agent: Agent(name="{result.last_agent.name}", ...)'
45
+ output += f"\n- {len(result.new_items)} new item(s)"
46
+ output += f"\n- {len(result.raw_responses)} raw response(s)"
47
+ output += f"\n- {len(result.input_guardrail_results)} input guardrail result(s)"
48
+ output += "\n(See `RunErrorDetails` for more details)"
49
+
50
+ return output
51
+
52
+
41
53
  def pretty_print_run_result_streaming(result: "RunResultStreaming") -> str:
42
54
  output = "RunResultStreaming:"
43
55
  output += f'\n- Current agent: Agent(name="{result.current_agent.name}", ...)'
agents/voice/model.py CHANGED
@@ -17,9 +17,11 @@ DEFAULT_TTS_BUFFER_SIZE = 120
17
17
  TTSVoice = Literal["alloy", "ash", "coral", "echo", "fable", "onyx", "nova", "sage", "shimmer"]
18
18
  """Exportable type for the TTSModelSettings voice enum"""
19
19
 
20
+
20
21
  @dataclass
21
22
  class TTSModelSettings:
22
23
  """Settings for a TTS model."""
24
+
23
25
  voice: TTSVoice | None = None
24
26
  """
25
27
  The voice to use for the TTS model. If not provided, the default voice for the respective model
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openai-agents
3
- Version: 0.0.16
3
+ Version: 0.0.18
4
4
  Summary: OpenAI Agents SDK
5
5
  Project-URL: Homepage, https://github.com/openai/openai-agents-python
6
6
  Project-URL: Repository, https://github.com/openai/openai-agents-python
@@ -19,8 +19,8 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
19
19
  Classifier: Typing :: Typed
20
20
  Requires-Python: >=3.9
21
21
  Requires-Dist: griffe<2,>=1.5.6
22
- Requires-Dist: mcp<2,>=1.8.0; python_version >= '3.10'
23
- Requires-Dist: openai>=1.81.0
22
+ Requires-Dist: mcp<2,>=1.9.4; python_version >= '3.10'
23
+ Requires-Dist: openai>=1.87.0
24
24
  Requires-Dist: pydantic<3,>=2.10
25
25
  Requires-Dist: requests<3,>=2.0
26
26
  Requires-Dist: types-requests<3,>=2.0
@@ -40,6 +40,9 @@ The OpenAI Agents SDK is a lightweight yet powerful framework for building multi
40
40
 
41
41
  <img src="https://cdn.openai.com/API/docs/images/orchestration.png" alt="Image of the Agents Tracing UI" style="max-height: 803px;">
42
42
 
43
+ > [!NOTE]
44
+ > Looking for the JavaScript/TypeScript version? Check out [Agents SDK JS/TS](https://github.com/openai/openai-agents-js).
45
+
43
46
  ### Core concepts:
44
47
 
45
48
  1. [**Agents**](https://openai.github.io/openai-agents-python/agents): LLMs configured with instructions, tools, guardrails, and handoffs
@@ -1,53 +1,56 @@
1
- agents/__init__.py,sha256=VXDkkC21o3n0JbKx8YIDwHBzTqwsTJ2JsDmL2p7THuU,7394
1
+ agents/__init__.py,sha256=PakDxML3ApH6jRLlq9wvHqvV8xGoONi4sH-z_iuV6tQ,7645
2
2
  agents/_config.py,sha256=ANrM7GP2VSQehDkMc9qocxkUlPwqU-i5sieMJyEwxpM,796
3
3
  agents/_debug.py,sha256=7OKys2lDjeCtGggTkM53m_8vw0WIr3yt-_JPBDAnsw0,608
4
- agents/_run_impl.py,sha256=1aowNDgxwqPeFsxEQ6P2a7hrlniM_U3lRuKujUoyhuo,42569
5
- agents/agent.py,sha256=aTC49v9sQJm0gv5a3hW8xCgtMhk2TfjycBP8JyeOJ84,10571
6
- agents/agent_output.py,sha256=fEK1Yn0XfMrLXZRsBcSig-YDZZ0kZpCgATdwZ-eHYqQ,7127
4
+ agents/_run_impl.py,sha256=_3XbxIKNLXJHvjCQgnQTosT0CWCS9F7qFtW_wOdDeNQ,42863
5
+ agents/agent.py,sha256=bK4mD3BB5FGadX4d3elz-CM6OXC_IUPXGYLmLT0WKTA,11889
6
+ agents/agent_output.py,sha256=cVIVwpsgOfloCHL0BD9DSCBCzW_s3T4LesDhvJRu2Uc,7127
7
7
  agents/computer.py,sha256=XD44UgiUWSfniv-xKwwDP6wFKVwBiZkpaL1hO-0-7ZA,2516
8
- agents/exceptions.py,sha256=F3AltRt27PGdhbFqKBhRJL9eHqoN4SQx7oxBn0GWmhs,1856
9
- agents/function_schema.py,sha256=k4GTdxf5bvcisVr9b4xSdTGzkB5oP3XZnJMdouABCsw,12909
8
+ agents/exceptions.py,sha256=NHMdHE0cZ6AdA6UgUylTzVHAX05Ol1CkO814a0FdZcs,2862
9
+ agents/function_schema.py,sha256=XoZVE1dnrDYFhHIIv8SmK3CJEsesC0a2Kj0AYEec9Ok,13106
10
10
  agents/guardrail.py,sha256=vWWcApo9s_6aHapQ5AMko08MqC8Jrlk-J5iqIRctCDQ,9291
11
- agents/handoffs.py,sha256=wRg-HBGKBZev88mOg_mfv6CR8T2kewZM8eX3tb71l1g,9043
11
+ agents/handoffs.py,sha256=ZcSPM4lrAg4zs3GXwiCzKd3WefgkXlb1JJrmXUTAhQ8,9040
12
12
  agents/items.py,sha256=lXFc_gKLEqwXIcyMKk4Q-6Rjry0MWD93xlvk4Y1W970,9695
13
13
  agents/lifecycle.py,sha256=wYFG6PLSKQ7bICKVbB8oGtdoJNINGq9obh2RSKlAkDE,2938
14
14
  agents/logger.py,sha256=p_ef7vWKpBev5FFybPJjhrCCQizK08Yy1A2EDO1SNNg,60
15
- agents/model_settings.py,sha256=7s9YjfHBVz1f1a-V3dd-8eMe-IAgfDXhQgChI27Kz00,3326
15
+ agents/model_settings.py,sha256=bPeBKdKY3O8NLT70uQU6HKOISwscVOD70RRrW4YpwnY,4021
16
+ agents/prompts.py,sha256=Ss5y_7s2HFcRAOAKu4WTxQszs5ybI8TfbxgEYdnj9sg,2231
16
17
  agents/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
17
- agents/result.py,sha256=dhtOaLIoOp5PYC4qcsgoU5qg2yvdI_VKdCy6i2qth7k,9305
18
- agents/run.py,sha256=5E3hx0mc3Gs3QcCCuNIddlRt4TJ9e_3629X5MSeOGX0,40454
18
+ agents/repl.py,sha256=v06JyiZnHfqWZHpHEUj9CSH4RTfIVKQ9NJYwN_YiwT0,2578
19
+ agents/result.py,sha256=YCGYHoc5X1_vLKu5QiK6F8C1ZXI3tTfLXaZoqbYgUMA,10753
20
+ agents/run.py,sha256=lthR3iUER16gRgSP5aSnaDmNCKQ-wdHwymZbfTQUmNk,42250
19
21
  agents/run_context.py,sha256=vuSUQM8O4CLensQY27-22fOqECnw7yvwL9U3WO8b_bk,851
20
- agents/stream_events.py,sha256=2zDCbJvUKnDfaogGltL6Yh9WvHxtTJf_z_IS0nvKjf0,1607
22
+ agents/stream_events.py,sha256=VFyTu-DT3ZMnHLtMbg-X_lxec0doQxNfx-hVxLB0BpI,1700
21
23
  agents/strict_schema.py,sha256=_KuEJkglmq-Fj3HSeYP4WqTvqrxbSKu6gezfz5Brhh0,5775
22
- agents/tool.py,sha256=CnGYyvDDYjIqGDSpDqUtbQtzeQrXdWJONMsFFmCpWHk,14711
24
+ agents/tool.py,sha256=CdylnBeM9s6b8qc3yWwtQ-4ZV4FesnMYUsRrmJ2ix08,15833
25
+ agents/tool_context.py,sha256=JAo3hyk5nvUe81IKF71f30Im9vql664zfu5mQJj7jas,941
23
26
  agents/usage.py,sha256=GB83eElU-DVkdutGObGDSX5vJNy8ssu3Xbpp5LlHfwU,1643
24
27
  agents/version.py,sha256=_1knUwzSK-HUeZTpRUkk6Z-CIcurqXuEplbV5TLJ08E,230
25
28
  agents/extensions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
29
  agents/extensions/handoff_filters.py,sha256=2cXxu1JROez96CpTiGuT9PIuaIrIE8ksP01fX83krKM,1977
27
30
  agents/extensions/handoff_prompt.py,sha256=oGWN0uNh3Z1L7E-Ev2up8W084fFrDNOsLDy7P6bcmic,1006
28
- agents/extensions/visualization.py,sha256=AQFC7kQlZqTI6QVkyDHrF_DodCytrrhcLg35nfRd_JA,4256
31
+ agents/extensions/visualization.py,sha256=g2eEwW22qe3A4WtH37LwaHhK3QZE9FYHVw9IcOVpwbk,4699
29
32
  agents/extensions/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- agents/extensions/models/litellm_model.py,sha256=lLWLXmq5pUXAElyPSUKSmRbHPAiKjbG9aWvUSgTcS9s,14402
33
+ agents/extensions/models/litellm_model.py,sha256=S6PJ8fcsjTJ_QZEuU0zLxHMMxtXixkCeNvs9STjkUuU,14850
31
34
  agents/extensions/models/litellm_provider.py,sha256=wTm00Anq8YoNb9AnyT0JOunDG-HCDm_98ORNy7aNJdw,928
32
35
  agents/mcp/__init__.py,sha256=_aDpMTvYCe1IezOEasZ0vmombBM8r7BD8lpXiKi-UlM,499
33
- agents/mcp/server.py,sha256=kIpQktrsNQUF0pNkERyfEcu-oYDvseBbsye_PzRmHnM,15910
34
- agents/mcp/util.py,sha256=dIEdYDMc7Sjp-DFQnvoc4VWU-B7Heyx0I41bcW7RlEg,5232
36
+ agents/mcp/server.py,sha256=98L7Fn4r5taSueL84taBZlP9mhVJZcok39GJ3IG6kPQ,15892
37
+ agents/mcp/util.py,sha256=qXbAo9O-yv0JfmZBxDJIQ8ieHMTNWTEX5lnSVBv637k,5243
35
38
  agents/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
39
  agents/models/_openai_shared.py,sha256=4Ngwo2Fv2RXY61Pqck1cYPkSln2tDnb8Ai-ao4QG-iE,836
37
40
  agents/models/chatcmpl_converter.py,sha256=Sae-ITlhQz8_SiFiSat7Z-lavqIuczduOXR_PF_f6cs,18126
38
41
  agents/models/chatcmpl_helpers.py,sha256=eIWySobaH7I0AQijAz5i-_rtsXrSvmEHD567s_8Zw1o,1318
39
42
  agents/models/chatcmpl_stream_handler.py,sha256=sDl8O7AKxpWxAq7-bgCUClD5JySUnbQ8RTPc0HeDElM,13713
40
43
  agents/models/fake_id.py,sha256=lbXjUUSMeAQ8eFx4V5QLUnBClHE6adJlYYav55RlG5w,268
41
- agents/models/interface.py,sha256=eEpiIBn9MxsmXUK1HPpn3c7TYPduBYC7tsWnDHSYJHo,3553
44
+ agents/models/interface.py,sha256=TpY_GEk3LLMozCcYAEcC-Y_VRpI3pwE7A7ZM317mk7M,3839
42
45
  agents/models/multi_provider.py,sha256=aiDbls5G4YomPfN6qH1pGlj41WS5jlDp2T82zm6qcnM,5578
43
- agents/models/openai_chatcompletions.py,sha256=obO209PFcf-qXDXmpoIagRmiLMVqsCoG1Amtvu9JfX0,11034
46
+ agents/models/openai_chatcompletions.py,sha256=brGc48JXbNJYKFD6Fz6HmC_-p8FfwvpFd8_cQtJdEAk,11877
44
47
  agents/models/openai_provider.py,sha256=NMxTNaoTa329GrA7jj51LC02pb_e2eFh-PCvWADJrkY,3478
45
- agents/models/openai_responses.py,sha256=JFajISS-sYYxKhb66tZ5cYPEqIYOj6ap762Z-87c7fE,15368
48
+ agents/models/openai_responses.py,sha256=9XtVlZbzch0g96E8lT4wbvTHN_12W1re-U4r4h4VPSY,15875
46
49
  agents/tracing/__init__.py,sha256=-hJeEiNvgyQdEXpFTrr_qu_XYREvIrF5KyePDtovSak,2804
47
50
  agents/tracing/create.py,sha256=kkMf2pp5Te20YkiSvf3Xj3J9qMibQCjEAxZs1Lr_kTE,18124
48
51
  agents/tracing/logger.py,sha256=J4KUDRSGa7x5UVfUwWe-gbKwoaq8AeETRqkPt3QvtGg,68
49
52
  agents/tracing/processor_interface.py,sha256=wNyZCwNJko5CrUIWD_lMou5ppQ67CFYwvWRsJRM3up8,1659
50
- agents/tracing/processors.py,sha256=UVrP1UjhPoJKV-CDDVzxmw19miYK-W8T_-0sx40erZM,10259
53
+ agents/tracing/processors.py,sha256=lOdZHwo0rQAflVkKWOZinnWyLtS0stALyydiFOC0gss,11389
51
54
  agents/tracing/scope.py,sha256=u17_m8RPpGvbHrTkaO_kDi5ROBWhfOAIgBe7suiaRD4,1445
52
55
  agents/tracing/setup.py,sha256=YnEDTaRG_b510vtsXbOaCUZ0nf7MOr1ULvOpQOHtdBs,6776
53
56
  agents/tracing/span_data.py,sha256=nI2Fbu1ORE8ybE6m6RuddTJF5E5xFmEj8Mq5bSFv4bE,9017
@@ -58,7 +61,7 @@ agents/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
61
  agents/util/_coro.py,sha256=S38XUYFC7bqTELSgMUBsAX1GoRlIrV7coupcUAWH__4,45
59
62
  agents/util/_error_tracing.py,sha256=hdkYNx180b18lP0PSB1toE5atNHsMg_Bm9Osw812vLo,421
60
63
  agents/util/_json.py,sha256=eKeQeMlQkBXRFeL3ilNZFmszGyfhtzZdW_GW_As6dcg,972
61
- agents/util/_pretty_print.py,sha256=rRVp24UmTgzCm-W4ritWBOxxnPRinzFdrZlOhTi1KVQ,2227
64
+ agents/util/_pretty_print.py,sha256=pnrM81KRG4G21jZnYrYBCkPgtUeP8qcnJm-9tpAV1WA,2738
62
65
  agents/util/_transforms.py,sha256=CZe74NOHkHneyo4fHYfFWksCSTn-kXtEyejL9P0_xlA,270
63
66
  agents/util/_types.py,sha256=8KxYfCw0gYSMWcQmacJoc3Q7Lc46LmT-AWvhF10KJ-E,160
64
67
  agents/voice/__init__.py,sha256=4VWBUjyoXC6dGFuk-oZQGg8T32bFxVwy371c-zDK-EU,1537
@@ -66,7 +69,7 @@ agents/voice/events.py,sha256=4aPAZC0__ocgmg_mcX4c1zv9Go-YdKIVItQ2kYgtye0,1216
66
69
  agents/voice/exceptions.py,sha256=QcyfvaUTBe4gxbFP82oDSa_puzZ4Z4O4k01B8pAHnK0,233
67
70
  agents/voice/imports.py,sha256=VaE5I8aJTP9Zl_0-y9dx1UcAP7KPRDMaikFK2jFnn8s,348
68
71
  agents/voice/input.py,sha256=FSbdHMIdLVKX4vYcmf3WBJ5dAlh5zMDjCAuGfXOZTQs,2910
69
- agents/voice/model.py,sha256=haVPgL3xlzkUyMeVaDphB74TlcZpruagMsx6CQxpx5g,5954
72
+ agents/voice/model.py,sha256=LWnIWEwU0-aFkff3kbTKkxejnYqzS2XHG5Qm2YcrzFI,5956
70
73
  agents/voice/pipeline.py,sha256=5LKTTDytQt4QlZzVKgbB9x3X2zA-TeR94FTi15vIUc0,6259
71
74
  agents/voice/pipeline_config.py,sha256=_cynbnzxvQijxkGrMYHJzIV54F9bRvDsPV24qexVO8c,1759
72
75
  agents/voice/result.py,sha256=Yx9JCMGCE9OfXacaBFfFLQJRwkNo5-h4Nqm9OPnemU4,11107
@@ -76,7 +79,7 @@ agents/voice/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
76
79
  agents/voice/models/openai_model_provider.py,sha256=Khn0uT-VhsEbe7_OhBMGFQzXNwL80gcWZyTHl3CaBII,3587
77
80
  agents/voice/models/openai_stt.py,sha256=rRsldkvkPhH4T0waX1dhccEqIwmPYh-teK_LRvBgiNI,16882
78
81
  agents/voice/models/openai_tts.py,sha256=4KoLQuFDHKu5a1VTJlu9Nj3MHwMlrn9wfT_liJDJ2dw,1477
79
- openai_agents-0.0.16.dist-info/METADATA,sha256=EVGuugo_KTS-mZ0Luqa-wXEsgu8loIFS2lXwfzdJyR8,8163
80
- openai_agents-0.0.16.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
81
- openai_agents-0.0.16.dist-info/licenses/LICENSE,sha256=E994EspT7Krhy0qGiES7WYNzBHrh1YDk3r--8d1baRU,1063
82
- openai_agents-0.0.16.dist-info/RECORD,,
82
+ openai_agents-0.0.18.dist-info/METADATA,sha256=qLzQQNCJ2wbS3C_BTGg4GRcmBp7IIgQi98z_wL3RrVw,8297
83
+ openai_agents-0.0.18.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
84
+ openai_agents-0.0.18.dist-info/licenses/LICENSE,sha256=E994EspT7Krhy0qGiES7WYNzBHrh1YDk3r--8d1baRU,1063
85
+ openai_agents-0.0.18.dist-info/RECORD,,