From 147fc8142e4f4cc55e43beb2f7be1d8552615cec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Mayoral=20Vilches?= Date: Mon, 24 Mar 2025 19:46:34 +0100 Subject: [PATCH] Initial re-structuring towards CAI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Víctor Mayoral Vilches --- LICENSE | 36 +-- LICENSE-MIT | 21 ++ .../__init__.py => examples/cai/.gitkeep | 0 mkdocs.yml | 142 ++++++------ pyproject.toml | 14 +- src/{agents/models => cai}/__init__.py | 0 src/{ => cai}/agents/__init__.py | 0 src/{ => cai}/agents/_config.py | 0 src/{ => cai}/agents/_debug.py | 0 src/{ => cai}/agents/_run_impl.py | 0 src/{ => cai}/agents/agent.py | 0 src/{ => cai}/agents/agent_output.py | 0 src/{ => cai}/agents/computer.py | 0 src/{ => cai}/agents/exceptions.py | 0 .../agents/extensions}/__init__.py | 0 .../agents/extensions/handoff_filters.py | 0 .../agents/extensions/handoff_prompt.py | 0 src/{ => cai}/agents/function_schema.py | 0 src/{ => cai}/agents/guardrail.py | 0 src/{ => cai}/agents/handoffs.py | 0 src/{ => cai}/agents/items.py | 0 src/{ => cai}/agents/lifecycle.py | 0 src/{ => cai}/agents/logger.py | 0 src/{ => cai}/agents/model_settings.py | 0 .../voice => cai/agents}/models/__init__.py | 0 src/{ => cai}/agents/models/_openai_shared.py | 0 src/{ => cai}/agents/models/fake_id.py | 0 src/{ => cai}/agents/models/interface.py | 0 .../agents/models/openai_chatcompletions.py | 8 +- .../agents/models/openai_provider.py | 0 .../agents/models/openai_responses.py | 0 src/{ => cai}/agents/py.typed | 0 src/{ => cai}/agents/result.py | 0 src/{ => cai}/agents/run.py | 0 src/{ => cai}/agents/run_context.py | 0 src/{ => cai}/agents/stream_events.py | 0 src/{ => cai}/agents/strict_schema.py | 0 src/{ => cai}/agents/tool.py | 0 src/{ => cai}/agents/tracing/__init__.py | 0 src/{ => cai}/agents/tracing/create.py | 0 src/{ => cai}/agents/tracing/logger.py | 0 .../agents/tracing/processor_interface.py | 0 src/{ => cai}/agents/tracing/processors.py | 0 src/{ => cai}/agents/tracing/scope.py | 0 src/{ => cai}/agents/tracing/setup.py | 0 src/{ => cai}/agents/tracing/span_data.py | 0 src/{ => cai}/agents/tracing/spans.py | 0 src/{ => cai}/agents/tracing/traces.py | 0 src/{ => cai}/agents/tracing/util.py | 0 src/{ => cai}/agents/usage.py | 0 src/cai/agents/util/__init__.py | 0 src/{ => cai}/agents/util/_coro.py | 0 src/{ => cai}/agents/util/_error_tracing.py | 0 src/{ => cai}/agents/util/_json.py | 0 src/{ => cai}/agents/util/_pretty_print.py | 0 src/{ => cai}/agents/util/_transforms.py | 0 src/{ => cai}/agents/util/_types.py | 0 src/{ => cai}/agents/version.py | 0 src/{ => cai}/agents/voice/__init__.py | 0 src/{ => cai}/agents/voice/events.py | 0 src/{ => cai}/agents/voice/exceptions.py | 0 src/{ => cai}/agents/voice/imports.py | 0 src/{ => cai}/agents/voice/input.py | 0 src/{ => cai}/agents/voice/model.py | 0 src/cai/agents/voice/models/__init__.py | 0 .../voice/models/openai_model_provider.py | 0 .../agents/voice/models/openai_stt.py | 0 .../agents/voice/models/openai_tts.py | 0 src/{ => cai}/agents/voice/pipeline.py | 0 src/{ => cai}/agents/voice/pipeline_config.py | 0 src/{ => cai}/agents/voice/result.py | 0 src/{ => cai}/agents/voice/utils.py | 0 src/{ => cai}/agents/voice/workflow.py | 0 uv.lock | 215 +++++++----------- 74 files changed, 203 insertions(+), 233 deletions(-) create mode 100644 LICENSE-MIT rename src/agents/extensions/__init__.py => examples/cai/.gitkeep (100%) rename src/{agents/models => cai}/__init__.py (100%) rename src/{ => cai}/agents/__init__.py (100%) rename src/{ => cai}/agents/_config.py (100%) rename src/{ => cai}/agents/_debug.py (100%) rename src/{ => cai}/agents/_run_impl.py (100%) rename src/{ => cai}/agents/agent.py (100%) rename src/{ => cai}/agents/agent_output.py (100%) rename src/{ => cai}/agents/computer.py (100%) rename src/{ => cai}/agents/exceptions.py (100%) rename src/{agents/util => cai/agents/extensions}/__init__.py (100%) rename src/{ => cai}/agents/extensions/handoff_filters.py (100%) rename src/{ => cai}/agents/extensions/handoff_prompt.py (100%) rename src/{ => cai}/agents/function_schema.py (100%) rename src/{ => cai}/agents/guardrail.py (100%) rename src/{ => cai}/agents/handoffs.py (100%) rename src/{ => cai}/agents/items.py (100%) rename src/{ => cai}/agents/lifecycle.py (100%) rename src/{ => cai}/agents/logger.py (100%) rename src/{ => cai}/agents/model_settings.py (100%) rename src/{agents/voice => cai/agents}/models/__init__.py (100%) rename src/{ => cai}/agents/models/_openai_shared.py (100%) rename src/{ => cai}/agents/models/fake_id.py (100%) rename src/{ => cai}/agents/models/interface.py (100%) rename src/{ => cai}/agents/models/openai_chatcompletions.py (99%) rename src/{ => cai}/agents/models/openai_provider.py (100%) rename src/{ => cai}/agents/models/openai_responses.py (100%) rename src/{ => cai}/agents/py.typed (100%) rename src/{ => cai}/agents/result.py (100%) rename src/{ => cai}/agents/run.py (100%) rename src/{ => cai}/agents/run_context.py (100%) rename src/{ => cai}/agents/stream_events.py (100%) rename src/{ => cai}/agents/strict_schema.py (100%) rename src/{ => cai}/agents/tool.py (100%) rename src/{ => cai}/agents/tracing/__init__.py (100%) rename src/{ => cai}/agents/tracing/create.py (100%) rename src/{ => cai}/agents/tracing/logger.py (100%) rename src/{ => cai}/agents/tracing/processor_interface.py (100%) rename src/{ => cai}/agents/tracing/processors.py (100%) rename src/{ => cai}/agents/tracing/scope.py (100%) rename src/{ => cai}/agents/tracing/setup.py (100%) rename src/{ => cai}/agents/tracing/span_data.py (100%) rename src/{ => cai}/agents/tracing/spans.py (100%) rename src/{ => cai}/agents/tracing/traces.py (100%) rename src/{ => cai}/agents/tracing/util.py (100%) rename src/{ => cai}/agents/usage.py (100%) create mode 100644 src/cai/agents/util/__init__.py rename src/{ => cai}/agents/util/_coro.py (100%) rename src/{ => cai}/agents/util/_error_tracing.py (100%) rename src/{ => cai}/agents/util/_json.py (100%) rename src/{ => cai}/agents/util/_pretty_print.py (100%) rename src/{ => cai}/agents/util/_transforms.py (100%) rename src/{ => cai}/agents/util/_types.py (100%) rename src/{ => cai}/agents/version.py (100%) rename src/{ => cai}/agents/voice/__init__.py (100%) rename src/{ => cai}/agents/voice/events.py (100%) rename src/{ => cai}/agents/voice/exceptions.py (100%) rename src/{ => cai}/agents/voice/imports.py (100%) rename src/{ => cai}/agents/voice/input.py (100%) rename src/{ => cai}/agents/voice/model.py (100%) create mode 100644 src/cai/agents/voice/models/__init__.py rename src/{ => cai}/agents/voice/models/openai_model_provider.py (100%) rename src/{ => cai}/agents/voice/models/openai_stt.py (100%) rename src/{ => cai}/agents/voice/models/openai_tts.py (100%) rename src/{ => cai}/agents/voice/pipeline.py (100%) rename src/{ => cai}/agents/voice/pipeline_config.py (100%) rename src/{ => cai}/agents/voice/result.py (100%) rename src/{ => cai}/agents/voice/utils.py (100%) rename src/{ => cai}/agents/voice/workflow.py (100%) diff --git a/LICENSE b/LICENSE index e5ad2c5a..4c578b2c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,23 @@ -MIT License +# LICENSE -Copyright (c) 2025 OpenAI +This project is a combination of open-source components under the MIT License and proprietary additions licensed for research purposes only. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +## 1. MIT-Licensed Components -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +Portions of this project are derived from openai/openai-agents-python, available under the MIT License. The original MIT-licensed code can be found in the `src/cai/agents` directory. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +Full MIT License included in the separate file `LICENSE-MIT`. + +--- + +## 2. Proprietary Additions + +All additions, modifications, and new components authored by Alias Robotics S.L. — found in the `src/cai` — are licensed as follows: + +### Research-Use License + +Copyright (c) [2025] Alias Robotics S.L. + +Permission is granted to use, copy, and modify these components solely for **non-commercial research and academic purposes**, provided that this copyright notice and license are retained in all copies. + +**Commercial, professional, or production use of these components is strictly prohibited without a commercial license.** To obtain a commercial license, please contact: https://aliasrobotics.com \ No newline at end of file diff --git a/LICENSE-MIT b/LICENSE-MIT new file mode 100644 index 00000000..e5ad2c5a --- /dev/null +++ b/LICENSE-MIT @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 OpenAI + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/src/agents/extensions/__init__.py b/examples/cai/.gitkeep similarity index 100% rename from src/agents/extensions/__init__.py rename to examples/cai/.gitkeep diff --git a/mkdocs.yml b/mkdocs.yml index 941f29ed..51c77026 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,4 +1,4 @@ -site_name: OpenAI Agents SDK +site_name: CAI theme: name: material features: @@ -20,80 +20,82 @@ theme: favicon: images/favicon-platform.svg nav: - Intro: index.md - - Quickstart: quickstart.md - - Examples: examples.md - - Documentation: - - agents.md - - running_agents.md - - results.md - - streaming.md - - tools.md - - handoffs.md - - tracing.md - - context.md - - guardrails.md - - multi_agent.md - - models.md - - config.md - - Voice agents: - - voice/quickstart.md - - voice/pipeline.md - - voice/tracing.md - - API Reference: - - Agents: - - ref/index.md - - ref/agent.md - - ref/run.md - - ref/tool.md - - ref/result.md - - ref/stream_events.md - - ref/handoffs.md - - ref/lifecycle.md - - ref/items.md - - ref/run_context.md - - ref/usage.md - - ref/exceptions.md - - ref/guardrail.md - - ref/model_settings.md - - ref/agent_output.md - - ref/function_schema.md - - ref/models/interface.md - - ref/models/openai_chatcompletions.md - - ref/models/openai_responses.md - - Tracing: - - ref/tracing/index.md - - ref/tracing/create.md - - ref/tracing/traces.md - - ref/tracing/spans.md - - ref/tracing/processor_interface.md - - ref/tracing/processors.md - - ref/tracing/scope.md - - ref/tracing/setup.md - - ref/tracing/span_data.md - - ref/tracing/util.md - - Voice: - - ref/voice/pipeline.md - - ref/voice/workflow.md - - ref/voice/input.md - - ref/voice/result.md - - ref/voice/pipeline_config.md - - ref/voice/events.md - - ref/voice/exceptions.md - - ref/voice/model.md - - ref/voice/utils.md - - ref/voice/models/openai_provider.md - - ref/voice/models/openai_stt.md - - ref/voice/models/openai_tts.md - - Extensions: - - ref/extensions/handoff_filters.md - - ref/extensions/handoff_prompt.md + - Agents SDK v0.0.6: + - Intro: index.md + - Quickstart: quickstart.md + - Examples: examples.md + - Documentation: + - agents.md + - running_agents.md + - results.md + - streaming.md + - tools.md + - handoffs.md + - tracing.md + - context.md + - guardrails.md + - multi_agent.md + - models.md + - config.md + - Voice agents: + - voice/quickstart.md + - voice/pipeline.md + - voice/tracing.md + - API Reference: + - Agents: + - ref/index.md + - ref/agent.md + - ref/run.md + - ref/tool.md + - ref/result.md + - ref/stream_events.md + - ref/handoffs.md + - ref/lifecycle.md + - ref/items.md + - ref/run_context.md + - ref/usage.md + - ref/exceptions.md + - ref/guardrail.md + - ref/model_settings.md + - ref/agent_output.md + - ref/function_schema.md + - ref/models/interface.md + - ref/models/openai_chatcompletions.md + - ref/models/openai_responses.md + - Tracing: + - ref/tracing/index.md + - ref/tracing/create.md + - ref/tracing/traces.md + - ref/tracing/spans.md + - ref/tracing/processor_interface.md + - ref/tracing/processors.md + - ref/tracing/scope.md + - ref/tracing/setup.md + - ref/tracing/span_data.md + - ref/tracing/util.md + - Voice: + - ref/voice/pipeline.md + - ref/voice/workflow.md + - ref/voice/input.md + - ref/voice/result.md + - ref/voice/pipeline_config.md + - ref/voice/events.md + - ref/voice/exceptions.md + - ref/voice/model.md + - ref/voice/utils.md + - ref/voice/models/openai_provider.md + - ref/voice/models/openai_stt.md + - ref/voice/models/openai_tts.md + - Extensions: + - ref/extensions/handoff_filters.md + - ref/extensions/handoff_prompt.md plugins: - search - mkdocstrings: handlers: python: - paths: ["src/agents"] + paths: ["src/cai/agents"] selection: docstring_style: google options: @@ -140,4 +142,4 @@ extra_css: - stylesheets/extra.css watch: - - "src/agents" + - "src/cai/agents" diff --git a/pyproject.toml b/pyproject.toml index 17cf1366..b4317555 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,11 +1,11 @@ [project] -name = "openai-agents" -version = "0.0.6" -description = "OpenAI Agents SDK" +name = "cai-framework" +version = "0.4.0" +description = "Cybersecurity AI Framework" readme = "README.md" requires-python = ">=3.9" -license = "MIT" -authors = [{ name = "OpenAI", email = "support@openai.com" }] +license = {text = "Dual-licensed MIT and Proprietary"} +authors = [{ name = "Alias Robotics", email = "research@aliasrobotics.com" }] dependencies = [ "openai>=1.68.2", "pydantic>=2.10, <3", @@ -67,7 +67,7 @@ requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] -packages = ["src/agents"] +packages = ["src/cai"] [tool.ruff] @@ -103,7 +103,7 @@ module = "sounddevice.*" ignore_missing_imports = true [tool.coverage.run] -source = ["tests", "src/agents"] +source = ["tests", "src/cai/agents"] [tool.coverage.report] show_missing = true diff --git a/src/agents/models/__init__.py b/src/cai/__init__.py similarity index 100% rename from src/agents/models/__init__.py rename to src/cai/__init__.py diff --git a/src/agents/__init__.py b/src/cai/agents/__init__.py similarity index 100% rename from src/agents/__init__.py rename to src/cai/agents/__init__.py diff --git a/src/agents/_config.py b/src/cai/agents/_config.py similarity index 100% rename from src/agents/_config.py rename to src/cai/agents/_config.py diff --git a/src/agents/_debug.py b/src/cai/agents/_debug.py similarity index 100% rename from src/agents/_debug.py rename to src/cai/agents/_debug.py diff --git a/src/agents/_run_impl.py b/src/cai/agents/_run_impl.py similarity index 100% rename from src/agents/_run_impl.py rename to src/cai/agents/_run_impl.py diff --git a/src/agents/agent.py b/src/cai/agents/agent.py similarity index 100% rename from src/agents/agent.py rename to src/cai/agents/agent.py diff --git a/src/agents/agent_output.py b/src/cai/agents/agent_output.py similarity index 100% rename from src/agents/agent_output.py rename to src/cai/agents/agent_output.py diff --git a/src/agents/computer.py b/src/cai/agents/computer.py similarity index 100% rename from src/agents/computer.py rename to src/cai/agents/computer.py diff --git a/src/agents/exceptions.py b/src/cai/agents/exceptions.py similarity index 100% rename from src/agents/exceptions.py rename to src/cai/agents/exceptions.py diff --git a/src/agents/util/__init__.py b/src/cai/agents/extensions/__init__.py similarity index 100% rename from src/agents/util/__init__.py rename to src/cai/agents/extensions/__init__.py diff --git a/src/agents/extensions/handoff_filters.py b/src/cai/agents/extensions/handoff_filters.py similarity index 100% rename from src/agents/extensions/handoff_filters.py rename to src/cai/agents/extensions/handoff_filters.py diff --git a/src/agents/extensions/handoff_prompt.py b/src/cai/agents/extensions/handoff_prompt.py similarity index 100% rename from src/agents/extensions/handoff_prompt.py rename to src/cai/agents/extensions/handoff_prompt.py diff --git a/src/agents/function_schema.py b/src/cai/agents/function_schema.py similarity index 100% rename from src/agents/function_schema.py rename to src/cai/agents/function_schema.py diff --git a/src/agents/guardrail.py b/src/cai/agents/guardrail.py similarity index 100% rename from src/agents/guardrail.py rename to src/cai/agents/guardrail.py diff --git a/src/agents/handoffs.py b/src/cai/agents/handoffs.py similarity index 100% rename from src/agents/handoffs.py rename to src/cai/agents/handoffs.py diff --git a/src/agents/items.py b/src/cai/agents/items.py similarity index 100% rename from src/agents/items.py rename to src/cai/agents/items.py diff --git a/src/agents/lifecycle.py b/src/cai/agents/lifecycle.py similarity index 100% rename from src/agents/lifecycle.py rename to src/cai/agents/lifecycle.py diff --git a/src/agents/logger.py b/src/cai/agents/logger.py similarity index 100% rename from src/agents/logger.py rename to src/cai/agents/logger.py diff --git a/src/agents/model_settings.py b/src/cai/agents/model_settings.py similarity index 100% rename from src/agents/model_settings.py rename to src/cai/agents/model_settings.py diff --git a/src/agents/voice/models/__init__.py b/src/cai/agents/models/__init__.py similarity index 100% rename from src/agents/voice/models/__init__.py rename to src/cai/agents/models/__init__.py diff --git a/src/agents/models/_openai_shared.py b/src/cai/agents/models/_openai_shared.py similarity index 100% rename from src/agents/models/_openai_shared.py rename to src/cai/agents/models/_openai_shared.py diff --git a/src/agents/models/fake_id.py b/src/cai/agents/models/fake_id.py similarity index 100% rename from src/agents/models/fake_id.py rename to src/cai/agents/models/fake_id.py diff --git a/src/agents/models/interface.py b/src/cai/agents/models/interface.py similarity index 100% rename from src/agents/models/interface.py rename to src/cai/agents/models/interface.py diff --git a/src/agents/models/openai_chatcompletions.py b/src/cai/agents/models/openai_chatcompletions.py similarity index 99% rename from src/agents/models/openai_chatcompletions.py rename to src/cai/agents/models/openai_chatcompletions.py index 8c649813..c37ad1db 100644 --- a/src/agents/models/openai_chatcompletions.py +++ b/src/cai/agents/models/openai_chatcompletions.py @@ -54,7 +54,13 @@ from openai.types.responses import ( ResponseUsage, ) from openai.types.responses.response_input_param import FunctionCallOutput, ItemReference, Message -from openai.types.responses.response_usage import InputTokensDetails, OutputTokensDetails +from openai.types.responses.response_usage import OutputTokensDetails + +# Create custom InputTokensDetails class since it's not available in current OpenAI version +from openai._models import BaseModel +class InputTokensDetails(BaseModel): + prompt_tokens: int + """The number of prompt tokens.""" from .. import _debug from ..agent_output import AgentOutputSchema diff --git a/src/agents/models/openai_provider.py b/src/cai/agents/models/openai_provider.py similarity index 100% rename from src/agents/models/openai_provider.py rename to src/cai/agents/models/openai_provider.py diff --git a/src/agents/models/openai_responses.py b/src/cai/agents/models/openai_responses.py similarity index 100% rename from src/agents/models/openai_responses.py rename to src/cai/agents/models/openai_responses.py diff --git a/src/agents/py.typed b/src/cai/agents/py.typed similarity index 100% rename from src/agents/py.typed rename to src/cai/agents/py.typed diff --git a/src/agents/result.py b/src/cai/agents/result.py similarity index 100% rename from src/agents/result.py rename to src/cai/agents/result.py diff --git a/src/agents/run.py b/src/cai/agents/run.py similarity index 100% rename from src/agents/run.py rename to src/cai/agents/run.py diff --git a/src/agents/run_context.py b/src/cai/agents/run_context.py similarity index 100% rename from src/agents/run_context.py rename to src/cai/agents/run_context.py diff --git a/src/agents/stream_events.py b/src/cai/agents/stream_events.py similarity index 100% rename from src/agents/stream_events.py rename to src/cai/agents/stream_events.py diff --git a/src/agents/strict_schema.py b/src/cai/agents/strict_schema.py similarity index 100% rename from src/agents/strict_schema.py rename to src/cai/agents/strict_schema.py diff --git a/src/agents/tool.py b/src/cai/agents/tool.py similarity index 100% rename from src/agents/tool.py rename to src/cai/agents/tool.py diff --git a/src/agents/tracing/__init__.py b/src/cai/agents/tracing/__init__.py similarity index 100% rename from src/agents/tracing/__init__.py rename to src/cai/agents/tracing/__init__.py diff --git a/src/agents/tracing/create.py b/src/cai/agents/tracing/create.py similarity index 100% rename from src/agents/tracing/create.py rename to src/cai/agents/tracing/create.py diff --git a/src/agents/tracing/logger.py b/src/cai/agents/tracing/logger.py similarity index 100% rename from src/agents/tracing/logger.py rename to src/cai/agents/tracing/logger.py diff --git a/src/agents/tracing/processor_interface.py b/src/cai/agents/tracing/processor_interface.py similarity index 100% rename from src/agents/tracing/processor_interface.py rename to src/cai/agents/tracing/processor_interface.py diff --git a/src/agents/tracing/processors.py b/src/cai/agents/tracing/processors.py similarity index 100% rename from src/agents/tracing/processors.py rename to src/cai/agents/tracing/processors.py diff --git a/src/agents/tracing/scope.py b/src/cai/agents/tracing/scope.py similarity index 100% rename from src/agents/tracing/scope.py rename to src/cai/agents/tracing/scope.py diff --git a/src/agents/tracing/setup.py b/src/cai/agents/tracing/setup.py similarity index 100% rename from src/agents/tracing/setup.py rename to src/cai/agents/tracing/setup.py diff --git a/src/agents/tracing/span_data.py b/src/cai/agents/tracing/span_data.py similarity index 100% rename from src/agents/tracing/span_data.py rename to src/cai/agents/tracing/span_data.py diff --git a/src/agents/tracing/spans.py b/src/cai/agents/tracing/spans.py similarity index 100% rename from src/agents/tracing/spans.py rename to src/cai/agents/tracing/spans.py diff --git a/src/agents/tracing/traces.py b/src/cai/agents/tracing/traces.py similarity index 100% rename from src/agents/tracing/traces.py rename to src/cai/agents/tracing/traces.py diff --git a/src/agents/tracing/util.py b/src/cai/agents/tracing/util.py similarity index 100% rename from src/agents/tracing/util.py rename to src/cai/agents/tracing/util.py diff --git a/src/agents/usage.py b/src/cai/agents/usage.py similarity index 100% rename from src/agents/usage.py rename to src/cai/agents/usage.py diff --git a/src/cai/agents/util/__init__.py b/src/cai/agents/util/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/agents/util/_coro.py b/src/cai/agents/util/_coro.py similarity index 100% rename from src/agents/util/_coro.py rename to src/cai/agents/util/_coro.py diff --git a/src/agents/util/_error_tracing.py b/src/cai/agents/util/_error_tracing.py similarity index 100% rename from src/agents/util/_error_tracing.py rename to src/cai/agents/util/_error_tracing.py diff --git a/src/agents/util/_json.py b/src/cai/agents/util/_json.py similarity index 100% rename from src/agents/util/_json.py rename to src/cai/agents/util/_json.py diff --git a/src/agents/util/_pretty_print.py b/src/cai/agents/util/_pretty_print.py similarity index 100% rename from src/agents/util/_pretty_print.py rename to src/cai/agents/util/_pretty_print.py diff --git a/src/agents/util/_transforms.py b/src/cai/agents/util/_transforms.py similarity index 100% rename from src/agents/util/_transforms.py rename to src/cai/agents/util/_transforms.py diff --git a/src/agents/util/_types.py b/src/cai/agents/util/_types.py similarity index 100% rename from src/agents/util/_types.py rename to src/cai/agents/util/_types.py diff --git a/src/agents/version.py b/src/cai/agents/version.py similarity index 100% rename from src/agents/version.py rename to src/cai/agents/version.py diff --git a/src/agents/voice/__init__.py b/src/cai/agents/voice/__init__.py similarity index 100% rename from src/agents/voice/__init__.py rename to src/cai/agents/voice/__init__.py diff --git a/src/agents/voice/events.py b/src/cai/agents/voice/events.py similarity index 100% rename from src/agents/voice/events.py rename to src/cai/agents/voice/events.py diff --git a/src/agents/voice/exceptions.py b/src/cai/agents/voice/exceptions.py similarity index 100% rename from src/agents/voice/exceptions.py rename to src/cai/agents/voice/exceptions.py diff --git a/src/agents/voice/imports.py b/src/cai/agents/voice/imports.py similarity index 100% rename from src/agents/voice/imports.py rename to src/cai/agents/voice/imports.py diff --git a/src/agents/voice/input.py b/src/cai/agents/voice/input.py similarity index 100% rename from src/agents/voice/input.py rename to src/cai/agents/voice/input.py diff --git a/src/agents/voice/model.py b/src/cai/agents/voice/model.py similarity index 100% rename from src/agents/voice/model.py rename to src/cai/agents/voice/model.py diff --git a/src/cai/agents/voice/models/__init__.py b/src/cai/agents/voice/models/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/agents/voice/models/openai_model_provider.py b/src/cai/agents/voice/models/openai_model_provider.py similarity index 100% rename from src/agents/voice/models/openai_model_provider.py rename to src/cai/agents/voice/models/openai_model_provider.py diff --git a/src/agents/voice/models/openai_stt.py b/src/cai/agents/voice/models/openai_stt.py similarity index 100% rename from src/agents/voice/models/openai_stt.py rename to src/cai/agents/voice/models/openai_stt.py diff --git a/src/agents/voice/models/openai_tts.py b/src/cai/agents/voice/models/openai_tts.py similarity index 100% rename from src/agents/voice/models/openai_tts.py rename to src/cai/agents/voice/models/openai_tts.py diff --git a/src/agents/voice/pipeline.py b/src/cai/agents/voice/pipeline.py similarity index 100% rename from src/agents/voice/pipeline.py rename to src/cai/agents/voice/pipeline.py diff --git a/src/agents/voice/pipeline_config.py b/src/cai/agents/voice/pipeline_config.py similarity index 100% rename from src/agents/voice/pipeline_config.py rename to src/cai/agents/voice/pipeline_config.py diff --git a/src/agents/voice/result.py b/src/cai/agents/voice/result.py similarity index 100% rename from src/agents/voice/result.py rename to src/cai/agents/voice/result.py diff --git a/src/agents/voice/utils.py b/src/cai/agents/voice/utils.py similarity index 100% rename from src/agents/voice/utils.py rename to src/cai/agents/voice/utils.py diff --git a/src/agents/voice/workflow.py b/src/cai/agents/voice/workflow.py similarity index 100% rename from src/agents/voice/workflow.py rename to src/cai/agents/voice/workflow.py diff --git a/uv.lock b/uv.lock index a9c79e21..3984256b 100644 --- a/uv.lock +++ b/uv.lock @@ -61,6 +61,80 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0c/37/fb6973edeb700f6e3d6ff222400602ab1830446c25c7b4676d8de93e65b8/backrefs-5.8-py39-none-any.whl", hash = "sha256:a66851e4533fb5b371aa0628e1fee1af05135616b86140c9d787a2ffdf4b8fdc", size = 380336 }, ] +[[package]] +name = "cai-framework" +version = "0.4.0" +source = { editable = "." } +dependencies = [ + { name = "griffe" }, + { name = "openai" }, + { name = "pydantic" }, + { name = "requests" }, + { name = "types-requests" }, + { name = "typing-extensions" }, +] + +[package.optional-dependencies] +voice = [ + { name = "numpy", marker = "python_full_version >= '3.10'" }, + { name = "websockets" }, +] + +[package.dev-dependencies] +dev = [ + { name = "coverage" }, + { name = "inline-snapshot" }, + { name = "mkdocs" }, + { name = "mkdocs-material" }, + { name = "mkdocstrings", extra = ["python"] }, + { name = "mypy" }, + { name = "playwright" }, + { name = "pynput" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-mock" }, + { name = "rich" }, + { name = "ruff" }, + { name = "sounddevice" }, + { name = "textual" }, + { name = "types-pynput" }, + { name = "websockets" }, +] + +[package.metadata] +requires-dist = [ + { name = "griffe", specifier = ">=1.5.6,<2" }, + { name = "numpy", marker = "python_full_version >= '3.10' and extra == 'voice'", specifier = ">=2.2.0,<3" }, + { name = "openai", specifier = ">=1.68.2" }, + { name = "pydantic", specifier = ">=2.10,<3" }, + { name = "requests", specifier = ">=2.0,<3" }, + { name = "types-requests", specifier = ">=2.0,<3" }, + { name = "typing-extensions", specifier = ">=4.12.2,<5" }, + { name = "websockets", marker = "extra == 'voice'", specifier = ">=15.0,<16" }, +] +provides-extras = ["voice"] + +[package.metadata.requires-dev] +dev = [ + { name = "coverage", specifier = ">=7.6.12" }, + { name = "inline-snapshot", specifier = ">=0.20.7" }, + { name = "mkdocs", specifier = ">=1.6.0" }, + { name = "mkdocs-material", specifier = ">=9.6.0" }, + { name = "mkdocstrings", extras = ["python"], specifier = ">=0.28.0" }, + { name = "mypy" }, + { name = "playwright", specifier = "==1.50.0" }, + { name = "pynput" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-mock", specifier = ">=3.14.0" }, + { name = "rich" }, + { name = "ruff", specifier = "==0.9.2" }, + { name = "sounddevice" }, + { name = "textual" }, + { name = "types-pynput" }, + { name = "websockets" }, +] + [[package]] name = "certifi" version = "2025.1.31" @@ -906,68 +980,10 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2a/e2/5d3f6ada4297caebe1a2add3b126fe800c96f56dbe5d1988a2cbe0b267aa/mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d", size = 4695 }, ] -[[package]] -name = "numpy" -version = "2.0.2" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] -sdist = { url = "https://files.pythonhosted.org/packages/a9/75/10dd1f8116a8b796cb2c737b674e02d02e80454bda953fa7e65d8c12b016/numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78", size = 18902015 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/21/91/3495b3237510f79f5d81f2508f9f13fea78ebfdf07538fc7444badda173d/numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece", size = 21165245 }, - { url = "https://files.pythonhosted.org/packages/05/33/26178c7d437a87082d11019292dce6d3fe6f0e9026b7b2309cbf3e489b1d/numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04", size = 13738540 }, - { url = "https://files.pythonhosted.org/packages/ec/31/cc46e13bf07644efc7a4bf68df2df5fb2a1a88d0cd0da9ddc84dc0033e51/numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66", size = 5300623 }, - { url = "https://files.pythonhosted.org/packages/6e/16/7bfcebf27bb4f9d7ec67332ffebee4d1bf085c84246552d52dbb548600e7/numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b", size = 6901774 }, - { url = "https://files.pythonhosted.org/packages/f9/a3/561c531c0e8bf082c5bef509d00d56f82e0ea7e1e3e3a7fc8fa78742a6e5/numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd", size = 13907081 }, - { url = "https://files.pythonhosted.org/packages/fa/66/f7177ab331876200ac7563a580140643d1179c8b4b6a6b0fc9838de2a9b8/numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318", size = 19523451 }, - { url = "https://files.pythonhosted.org/packages/25/7f/0b209498009ad6453e4efc2c65bcdf0ae08a182b2b7877d7ab38a92dc542/numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8", size = 19927572 }, - { url = "https://files.pythonhosted.org/packages/3e/df/2619393b1e1b565cd2d4c4403bdd979621e2c4dea1f8532754b2598ed63b/numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326", size = 14400722 }, - { url = "https://files.pythonhosted.org/packages/22/ad/77e921b9f256d5da36424ffb711ae79ca3f451ff8489eeca544d0701d74a/numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97", size = 6472170 }, - { url = "https://files.pythonhosted.org/packages/10/05/3442317535028bc29cf0c0dd4c191a4481e8376e9f0db6bcf29703cadae6/numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131", size = 15905558 }, - { url = "https://files.pythonhosted.org/packages/8b/cf/034500fb83041aa0286e0fb16e7c76e5c8b67c0711bb6e9e9737a717d5fe/numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448", size = 21169137 }, - { url = "https://files.pythonhosted.org/packages/4a/d9/32de45561811a4b87fbdee23b5797394e3d1504b4a7cf40c10199848893e/numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195", size = 13703552 }, - { url = "https://files.pythonhosted.org/packages/c1/ca/2f384720020c7b244d22508cb7ab23d95f179fcfff33c31a6eeba8d6c512/numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57", size = 5298957 }, - { url = "https://files.pythonhosted.org/packages/0e/78/a3e4f9fb6aa4e6fdca0c5428e8ba039408514388cf62d89651aade838269/numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a", size = 6905573 }, - { url = "https://files.pythonhosted.org/packages/a0/72/cfc3a1beb2caf4efc9d0b38a15fe34025230da27e1c08cc2eb9bfb1c7231/numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669", size = 13914330 }, - { url = "https://files.pythonhosted.org/packages/ba/a8/c17acf65a931ce551fee11b72e8de63bf7e8a6f0e21add4c937c83563538/numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951", size = 19534895 }, - { url = "https://files.pythonhosted.org/packages/ba/86/8767f3d54f6ae0165749f84648da9dcc8cd78ab65d415494962c86fac80f/numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9", size = 19937253 }, - { url = "https://files.pythonhosted.org/packages/df/87/f76450e6e1c14e5bb1eae6836478b1028e096fd02e85c1c37674606ab752/numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15", size = 14414074 }, - { url = "https://files.pythonhosted.org/packages/5c/ca/0f0f328e1e59f73754f06e1adfb909de43726d4f24c6a3f8805f34f2b0fa/numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4", size = 6470640 }, - { url = "https://files.pythonhosted.org/packages/eb/57/3a3f14d3a759dcf9bf6e9eda905794726b758819df4663f217d658a58695/numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc", size = 15910230 }, - { url = "https://files.pythonhosted.org/packages/45/40/2e117be60ec50d98fa08c2f8c48e09b3edea93cfcabd5a9ff6925d54b1c2/numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b", size = 20895803 }, - { url = "https://files.pythonhosted.org/packages/46/92/1b8b8dee833f53cef3e0a3f69b2374467789e0bb7399689582314df02651/numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e", size = 13471835 }, - { url = "https://files.pythonhosted.org/packages/7f/19/e2793bde475f1edaea6945be141aef6c8b4c669b90c90a300a8954d08f0a/numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c", size = 5038499 }, - { url = "https://files.pythonhosted.org/packages/e3/ff/ddf6dac2ff0dd50a7327bcdba45cb0264d0e96bb44d33324853f781a8f3c/numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c", size = 6633497 }, - { url = "https://files.pythonhosted.org/packages/72/21/67f36eac8e2d2cd652a2e69595a54128297cdcb1ff3931cfc87838874bd4/numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692", size = 13621158 }, - { url = "https://files.pythonhosted.org/packages/39/68/e9f1126d757653496dbc096cb429014347a36b228f5a991dae2c6b6cfd40/numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a", size = 19236173 }, - { url = "https://files.pythonhosted.org/packages/d1/e9/1f5333281e4ebf483ba1c888b1d61ba7e78d7e910fdd8e6499667041cc35/numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c", size = 19634174 }, - { url = "https://files.pythonhosted.org/packages/71/af/a469674070c8d8408384e3012e064299f7a2de540738a8e414dcfd639996/numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded", size = 14099701 }, - { url = "https://files.pythonhosted.org/packages/d0/3d/08ea9f239d0e0e939b6ca52ad403c84a2bce1bde301a8eb4888c1c1543f1/numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5", size = 6174313 }, - { url = "https://files.pythonhosted.org/packages/b2/b5/4ac39baebf1fdb2e72585c8352c56d063b6126be9fc95bd2bb5ef5770c20/numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a", size = 15606179 }, - { url = "https://files.pythonhosted.org/packages/43/c1/41c8f6df3162b0c6ffd4437d729115704bd43363de0090c7f913cfbc2d89/numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c", size = 21169942 }, - { url = "https://files.pythonhosted.org/packages/39/bc/fd298f308dcd232b56a4031fd6ddf11c43f9917fbc937e53762f7b5a3bb1/numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd", size = 13711512 }, - { url = "https://files.pythonhosted.org/packages/96/ff/06d1aa3eeb1c614eda245c1ba4fb88c483bee6520d361641331872ac4b82/numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b", size = 5306976 }, - { url = "https://files.pythonhosted.org/packages/2d/98/121996dcfb10a6087a05e54453e28e58694a7db62c5a5a29cee14c6e047b/numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729", size = 6906494 }, - { url = "https://files.pythonhosted.org/packages/15/31/9dffc70da6b9bbf7968f6551967fc21156207366272c2a40b4ed6008dc9b/numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1", size = 13912596 }, - { url = "https://files.pythonhosted.org/packages/b9/14/78635daab4b07c0930c919d451b8bf8c164774e6a3413aed04a6d95758ce/numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd", size = 19526099 }, - { url = "https://files.pythonhosted.org/packages/26/4c/0eeca4614003077f68bfe7aac8b7496f04221865b3a5e7cb230c9d055afd/numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d", size = 19932823 }, - { url = "https://files.pythonhosted.org/packages/f1/46/ea25b98b13dccaebddf1a803f8c748680d972e00507cd9bc6dcdb5aa2ac1/numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d", size = 14404424 }, - { url = "https://files.pythonhosted.org/packages/c8/a6/177dd88d95ecf07e722d21008b1b40e681a929eb9e329684d449c36586b2/numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa", size = 6476809 }, - { url = "https://files.pythonhosted.org/packages/ea/2b/7fc9f4e7ae5b507c1a3a21f0f15ed03e794c1242ea8a242ac158beb56034/numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73", size = 15911314 }, - { url = "https://files.pythonhosted.org/packages/8f/3b/df5a870ac6a3be3a86856ce195ef42eec7ae50d2a202be1f5a4b3b340e14/numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8", size = 21025288 }, - { url = "https://files.pythonhosted.org/packages/2c/97/51af92f18d6f6f2d9ad8b482a99fb74e142d71372da5d834b3a2747a446e/numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4", size = 6762793 }, - { url = "https://files.pythonhosted.org/packages/12/46/de1fbd0c1b5ccaa7f9a005b66761533e2f6a3e560096682683a223631fe9/numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c", size = 19334885 }, - { url = "https://files.pythonhosted.org/packages/cc/dc/d330a6faefd92b446ec0f0dfea4c3207bb1fef3c4771d19cf4543efd2c78/numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385", size = 15828784 }, -] - [[package]] name = "numpy" version = "2.2.4" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.10'", -] sdist = { url = "https://files.pythonhosted.org/packages/e1/78/31103410a57bc2c2b93a3597340a8119588571f6a4539067546cb9a0bfac/numpy-2.2.4.tar.gz", hash = "sha256:9ba03692a45d3eef66559efe1d1096c4b9b75c0986b5dff5530c378fb8331d4f", size = 20270701 } wheels = [ { url = "https://files.pythonhosted.org/packages/04/89/a79e86e5c1433926ed7d60cb267fb64aa578b6101ab645800fd43b4801de/numpy-2.2.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8146f3550d627252269ac42ae660281d673eb6f8b32f113538e0cc2a9aed42b9", size = 21250661 }, @@ -1028,98 +1044,21 @@ wheels = [ [[package]] name = "openai" -version = "1.68.0" +version = "1.68.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, { name = "distro" }, { name = "httpx" }, { name = "jiter" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, { name = "pydantic" }, { name = "sniffio" }, - { name = "sounddevice" }, { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/58/ea/58102e9bfda09edc963e6e877e39cca12706b46ebf35d5fc9da7b8af10f2/openai-1.68.0.tar.gz", hash = "sha256:c570c06c9ba10f98b891ac30a3dd7b5c89ed48094c711c7a3f35fb5ade6c0757", size = 413039 } +sdist = { url = "https://files.pythonhosted.org/packages/3f/6b/6b002d5d38794645437ae3ddb42083059d556558493408d39a0fcea608bc/openai-1.68.2.tar.gz", hash = "sha256:b720f0a95a1dbe1429c0d9bb62096a0d98057bcda82516f6e8af10284bdd5b19", size = 413429 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a5/b6/bd67b7031572cba7d8451d82ac4a990b3a96bbd3b037634726b48ac972c8/openai-1.68.0-py3-none-any.whl", hash = "sha256:20e279b0f3a78cb4a95f3eab2a180f3ee30c6a196aeebd6bf642a4f88ab85ee1", size = 605645 }, -] - -[[package]] -name = "openai-agents" -version = "0.0.6" -source = { editable = "." } -dependencies = [ - { name = "griffe" }, - { name = "openai" }, - { name = "pydantic" }, - { name = "requests" }, - { name = "types-requests" }, - { name = "typing-extensions" }, -] - -[package.optional-dependencies] -voice = [ - { name = "numpy", version = "2.2.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "websockets" }, -] - -[package.dev-dependencies] -dev = [ - { name = "coverage" }, - { name = "inline-snapshot" }, - { name = "mkdocs" }, - { name = "mkdocs-material" }, - { name = "mkdocstrings", extra = ["python"] }, - { name = "mypy" }, - { name = "playwright" }, - { name = "pynput" }, - { name = "pytest" }, - { name = "pytest-asyncio" }, - { name = "pytest-mock" }, - { name = "rich" }, - { name = "ruff" }, - { name = "sounddevice" }, - { name = "textual" }, - { name = "types-pynput" }, - { name = "websockets" }, -] - -[package.metadata] -requires-dist = [ - { name = "griffe", specifier = ">=1.5.6,<2" }, - { name = "numpy", marker = "python_full_version >= '3.10' and extra == 'voice'", specifier = ">=2.2.0,<3" }, - { name = "openai", specifier = ">=1.66.5" }, - { name = "pydantic", specifier = ">=2.10,<3" }, - { name = "requests", specifier = ">=2.0,<3" }, - { name = "types-requests", specifier = ">=2.0,<3" }, - { name = "typing-extensions", specifier = ">=4.12.2,<5" }, - { name = "websockets", marker = "extra == 'voice'", specifier = ">=15.0,<16" }, -] -provides-extras = ["voice"] - -[package.metadata.requires-dev] -dev = [ - { name = "coverage", specifier = ">=7.6.12" }, - { name = "inline-snapshot", specifier = ">=0.20.7" }, - { name = "mkdocs", specifier = ">=1.6.0" }, - { name = "mkdocs-material", specifier = ">=9.6.0" }, - { name = "mkdocstrings", extras = ["python"], specifier = ">=0.28.0" }, - { name = "mypy" }, - { name = "playwright", specifier = "==1.50.0" }, - { name = "pynput" }, - { name = "pytest" }, - { name = "pytest-asyncio" }, - { name = "pytest-mock", specifier = ">=3.14.0" }, - { name = "rich" }, - { name = "ruff", specifier = "==0.9.2" }, - { name = "sounddevice" }, - { name = "textual" }, - { name = "types-pynput" }, - { name = "websockets" }, + { url = "https://files.pythonhosted.org/packages/fd/34/cebce15f64eb4a3d609a83ac3568d43005cc9a1cba9d7fde5590fd415423/openai-1.68.2-py3-none-any.whl", hash = "sha256:24484cb5c9a33b58576fdc5acf0e5f92603024a4e39d0b99793dfa1eb14c2b36", size = 606073 }, ] [[package]]