diff --git a/apps/ai_api/eda_ai_api/api/routes/supervisor.py b/apps/ai_api/eda_ai_api/api/routes/supervisor.py index e83ed3e..37902ca 100644 --- a/apps/ai_api/eda_ai_api/api/routes/supervisor.py +++ b/apps/ai_api/eda_ai_api/api/routes/supervisor.py @@ -1,7 +1,7 @@ from fastapi import APIRouter from eda_ai_api.models.supervisor import SupervisorRequest, SupervisorResponse +from supervisor.crew import SupervisorCrew from opportunity_finder.crew import OpportunityFinderCrew -from plugins.supervisor.crew import SupervisorCrew router = APIRouter() diff --git a/plugins/supervisor/.env.example b/plugins/supervisor/.env.example deleted file mode 100644 index 4f08651..0000000 --- a/plugins/supervisor/.env.example +++ /dev/null @@ -1,6 +0,0 @@ -OPENAI_API_KEY=sk-xxxx -# GROQ_API_KEY=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 -CEREBRAS_API_KEY=csk-xxxx -SERPER_API_KEY=xxxx -LANGTRACE_API_KEY=xxxx -LANGTRACE_API_HOST=http://localhost:3000/api/trace \ No newline at end of file diff --git a/plugins/supervisor/README.md b/plugins/supervisor/README.md index 1a54063..d6f1c0f 100644 --- a/plugins/supervisor/README.md +++ b/plugins/supervisor/README.md @@ -1,6 +1,6 @@ -# OpportunityFinder Crew +# Supervisor Crew -Welcome to the OpportunityFinder Crew project, powered by [crewAI](https://crewai.com). This template is designed to help you set up a multi-agent AI system with ease, leveraging the powerful and flexible framework provided by crewAI. Our goal is to enable your agents to collaborate effectively on complex tasks, maximizing their collective intelligence and capabilities. +Welcome to the Supervisor Crew project, powered by [crewAI](https://crewai.com). This template is designed to help you set up a multi-agent AI system with ease, leveraging the powerful and flexible framework provided by crewAI. Our goal is to enable your agents to collaborate effectively on complex tasks, maximizing their collective intelligence and capabilities. ## Installation @@ -22,10 +22,10 @@ crewai install **Add your `OPENAI_API_KEY` into the `.env` file** -- Modify `src/opportunity_finder/config/agents.yaml` to define your agents -- Modify `src/opportunity_finder/config/tasks.yaml` to define your tasks -- Modify `src/opportunity_finder/crew.py` to add your own logic, tools and specific args -- Modify `src/opportunity_finder/main.py` to add custom inputs for your agents and tasks +- Modify `src/supervisor/config/agents.yaml` to define your agents +- Modify `src/supervisor/config/tasks.yaml` to define your tasks +- Modify `src/supervisor/crew.py` to add your own logic, tools and specific args +- Modify `src/supervisor/main.py` to add custom inputs for your agents and tasks ## Running the Project @@ -35,17 +35,17 @@ To kickstart your crew of AI agents and begin task execution, run this from the $ crewai run ``` -This command initializes the opportunity-finder Crew, assembling the agents and assigning them tasks as defined in your configuration. +This command initializes the supervisor Crew, assembling the agents and assigning them tasks as defined in your configuration. This example, unmodified, will run the create a `report.md` file with the output of a research on LLMs in the root folder. ## Understanding Your Crew -The opportunity-finder Crew is composed of multiple AI agents, each with unique roles, goals, and tools. These agents collaborate on a series of tasks, defined in `config/tasks.yaml`, leveraging their collective skills to achieve complex objectives. The `config/agents.yaml` file outlines the capabilities and configurations of each agent in your crew. +The supervisor Crew is composed of multiple AI agents, each with unique roles, goals, and tools. These agents collaborate on a series of tasks, defined in `config/tasks.yaml`, leveraging their collective skills to achieve complex objectives. The `config/agents.yaml` file outlines the capabilities and configurations of each agent in your crew. ## Support -For support, questions, or feedback regarding the OpportunityFinder Crew or crewAI. +For support, questions, or feedback regarding the Supervisor Crew or crewAI. - Visit our [documentation](https://docs.crewai.com) - Reach out to us through our [GitHub repository](https://github.com/joaomdmoura/crewai) - [Join our Discord](https://discord.com/invite/X4JWnZnxPb) diff --git a/plugins/supervisor/pyproject.toml b/plugins/supervisor/pyproject.toml index 0b877aa..408b321 100644 --- a/plugins/supervisor/pyproject.toml +++ b/plugins/supervisor/pyproject.toml @@ -1,20 +1,20 @@ [project] name = "supervisor" version = "0.1.0" -description = "Supervisor crew using crewAI" +description = "supervisor using crewAI" authors = [{ name = "Your Name", email = "you@example.com" }] requires-python = ">=3.10,<=3.13" dependencies = [ - "crewai[agentops,tools]>=0.76.2,<1.0.0", + "crewai[tools]>=0.79.4,<1.0.0" ] [project.scripts] supervisor = "supervisor.main:run" run_crew = "supervisor.main:run" - -[tool.hatch.build.targets.wheel] -packages = ["src/supervisor"] +train = "supervisor.main:train" +replay = "supervisor.main:replay" +test = "supervisor.main:test" [build-system] requires = ["hatchling"] -build-backend = "hatchling.build" \ No newline at end of file +build-backend = "hatchling.build" diff --git a/plugins/supervisor/src/supervisor/crew.py b/plugins/supervisor/src/supervisor/crew.py index 4248ff9..bbc932b 100644 --- a/plugins/supervisor/src/supervisor/crew.py +++ b/plugins/supervisor/src/supervisor/crew.py @@ -1,5 +1,5 @@ -import os import datetime +import os from crewai import Agent, Crew, Process, Task, LLM from crewai.project import CrewBase, agent, crew, task @@ -10,10 +10,11 @@ temperature=0.5, ) - @CrewBase class SupervisorCrew: """Supervisor crew""" + agents_config = "config/agents.yaml" + tasks_config = "config/tasks.yaml" @agent def decision_maker(self) -> Agent: @@ -24,20 +25,19 @@ def decision_maker(self) -> Agent: llm=cerebras_llm, ) - @task - def route_decision_task(self, message: str) -> Task: - return Task( - config=self.tasks_config["route_decision_task"], - context={"message": message}, - ) + @task + def route_decision_task(self) -> Task: + return Task(config=self.tasks_config["route_decision_task"]) @crew def crew(self) -> Crew: """Creates the Supervisor crew""" return Crew( agents=[self.decision_maker], - tasks=[self.route_decision_task], + tasks=[self.route_decision_task], process=Process.sequential, verbose=True, - output_log_file=f'SupervisorCrew_{datetime.datetime.now().strftime("%Y%m%d_%H%M%S")}.log', + output_log_file=f'SupervisorCrew_{datetime.datetime.now().strftime("%Y%m%d_%H%M%S")}.log' ) + +__all__ = ["SupervisorCrew"] \ No newline at end of file diff --git a/plugins/supervisor/src/supervisor/main.py b/plugins/supervisor/src/supervisor/main.py index f1d2402..ea4ab83 100644 --- a/plugins/supervisor/src/supervisor/main.py +++ b/plugins/supervisor/src/supervisor/main.py @@ -1,13 +1,28 @@ -from supervisor.crew import SupervisorCrew +#!/usr/bin/env python +import sys +from supervisor.crew import Supervisor def run(): - """Run the supervisor crew""" - crew = SupervisorCrew() - result = crew.crew().kickoff( - inputs={"message": "Find grant opportunities for AI projects"} - ) - print(f"Decision: {result}") + """ + Run the crew for routing decision. + """ + inputs = {"message": "I need to find grant opportunities for my research"} + result = Supervisor().crew().kickoff(inputs=inputs) + return result + + +def test(): + """ + Test the crew execution and returns the results. + """ + inputs = {"message": "I need to find grant opportunities for my research"} + try: + Supervisor().crew().test( + n_iterations=int(sys.argv[1]), openai_model_name=sys.argv[2], inputs=inputs + ) + except Exception as e: + raise Exception(f"An error occurred while testing the crew: {e}") if __name__ == "__main__": diff --git a/plugins/supervisor/src/supervisor/tools/custom_tool.py b/plugins/supervisor/src/supervisor/tools/custom_tool.py index b125293..50bffa5 100644 --- a/plugins/supervisor/src/supervisor/tools/custom_tool.py +++ b/plugins/supervisor/src/supervisor/tools/custom_tool.py @@ -1,11 +1,18 @@ -from crewai_tools import BaseTool +from crewai.tools import BaseTool +from typing import Type +from pydantic import BaseModel, Field +class MyCustomToolInput(BaseModel): + """Input schema for MyCustomTool.""" + argument: str = Field(..., description="Description of the argument.") + class MyCustomTool(BaseTool): name: str = "Name of my tool" description: str = ( "Clear description for what this tool is useful for, you agent will need this information to use it." ) + args_schema: Type[BaseModel] = MyCustomToolInput def _run(self, argument: str) -> str: # Implementation goes here diff --git a/plugins/supervisor/uv.lock b/plugins/supervisor/uv.lock index 8c322ca..e9b62c9 100644 --- a/plugins/supervisor/uv.lock +++ b/plugins/supervisor/uv.lock @@ -8,22 +8,6 @@ resolution-markers = [ "python_full_version >= '3.13'", ] -[[package]] -name = "agentops" -version = "0.3.17" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "packaging" }, - { name = "psutil" }, - { name = "pyyaml" }, - { name = "requests" }, - { name = "termcolor" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/21/31/d9a3747df04b7915ee1cffaa4a5636f8ed0e1385e5236b0da085ccce936a/agentops-0.3.17.tar.gz", hash = "sha256:a893cc7c37eda720ab59e8facaa2774cc23d125648aa00539ae485ff592e8b77", size = 51469 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6c/30/38a659671eec20fcae759bd69655ec45b08c4e875627b33e3b05bd46f299/agentops-0.3.17-py3-none-any.whl", hash = "sha256:0d24dd082270a76c98ad0391101d5b5c3d01e389c5032389ecd551285e4b0662", size = 55503 }, -] - [[package]] name = "aiohappyeyeballs" version = "2.4.3" @@ -591,9 +575,6 @@ wheels = [ ] [package.optional-dependencies] -agentops = [ - { name = "agentops" }, -] tools = [ { name = "crewai-tools" }, ] @@ -801,16 +782,16 @@ wheels = [ [[package]] name = "fastapi" -version = "0.115.4" +version = "0.115.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "pydantic" }, { name = "starlette" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a9/db/5781f19bd30745885e0737ff3fdd4e63e7bc691710f9da691128bb0dc73b/fastapi-0.115.4.tar.gz", hash = "sha256:db653475586b091cb8b2fec2ac54a680ac6a158e07406e1abae31679e8826349", size = 300737 } +sdist = { url = "https://files.pythonhosted.org/packages/ae/29/f71316b9273b6552a263748e49cd7b83898dc9499a663d30c7b9cb853cb8/fastapi-0.115.5.tar.gz", hash = "sha256:0e7a4d0dc0d01c68df21887cce0945e72d3c48b9f4f79dfe7a7d53aa08fbb289", size = 301047 } wheels = [ - { url = "https://files.pythonhosted.org/packages/99/f6/af0d1f58f86002be0cf1e2665cdd6f7a4a71cdc8a7a9438cdc9e3b5375fe/fastapi-0.115.4-py3-none-any.whl", hash = "sha256:0b504a063ffb3cf96a5e27dc1bc32c80ca743a2528574f9cdc77daa2d31b4742", size = 94732 }, + { url = "https://files.pythonhosted.org/packages/54/c4/148d5046a96c428464557264877ae5a9338a83bbe0df045088749ec89820/fastapi-0.115.5-py3-none-any.whl", hash = "sha256:596b95adbe1474da47049e802f9a65ab2ffa9c2b07e7efee70eb8a66c9f2f796", size = 94866 }, ] [[package]] @@ -973,7 +954,7 @@ wheels = [ [[package]] name = "google-cloud-aiplatform" -version = "1.71.1" +version = "1.72.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "docstring-parser" }, @@ -988,9 +969,9 @@ dependencies = [ { name = "pydantic" }, { name = "shapely" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/ed/d6/3fbc064701c93c0bb76a54f8348e3389e6b9115aaffaae316f39d01e92bb/google-cloud-aiplatform-1.71.1.tar.gz", hash = "sha256:0013527e06853382ff0885898195bb7f3cf4a70eb7e5d53e4b1a28c8bd1775e2", size = 7491661 } +sdist = { url = "https://files.pythonhosted.org/packages/d1/ac/806125ed4a56d513204486afaf451159cd8aaa5c1564434894d17c0a0b5b/google_cloud_aiplatform-1.72.0.tar.gz", hash = "sha256:50611d3d51ff92d80f866e5e0f145daac9d943499c6d715250a9947eca4774f2", size = 7479114 } wheels = [ - { url = "https://files.pythonhosted.org/packages/c8/37/c87b883be064b6c015b91a26cc454d667c797e0d01a85c47ac73e8aa565e/google_cloud_aiplatform-1.71.1-py2.py3-none-any.whl", hash = "sha256:4cd49bbc7f8ad88b92029a090b834ebacf9efadc844226f1e74d015d68f69ef5", size = 6189637 }, + { url = "https://files.pythonhosted.org/packages/7d/c7/276023cb0f2b2e9bea17df73894113b3ce25b5742198e1a3e2175ade5b90/google_cloud_aiplatform-1.72.0-py2.py3-none-any.whl", hash = "sha256:a75dbeda47eaecb7bb2b1801b9c8dfe72a14f76a649525cdff496646214a7afb", size = 6205621 }, ] [[package]] @@ -1097,14 +1078,14 @@ wheels = [ [[package]] name = "googleapis-common-protos" -version = "1.65.0" +version = "1.66.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "protobuf" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/53/3b/1599ceafa875ffb951480c8c74f4b77646a6b80e80970698f2aa93c216ce/googleapis_common_protos-1.65.0.tar.gz", hash = "sha256:334a29d07cddc3aa01dee4988f9afd9b2916ee2ff49d6b757155dc0d197852c0", size = 113657 } +sdist = { url = "https://files.pythonhosted.org/packages/ff/a7/8e9cccdb1c49870de6faea2a2764fa23f627dd290633103540209f03524c/googleapis_common_protos-1.66.0.tar.gz", hash = "sha256:c3e7b33d15fdca5374cc0a7346dd92ffa847425cc4ea941d970f13680052ec8c", size = 114376 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/08/49bfe7cf737952cc1a9c43e80cc258ed45dad7f183c5b8276fc94cb3862d/googleapis_common_protos-1.65.0-py2.py3-none-any.whl", hash = "sha256:2972e6c496f435b92590fd54045060867f3fe9be2c82ab148fc8885035479a63", size = 220890 }, + { url = "https://files.pythonhosted.org/packages/a0/0f/c0713fb2b3d28af4b2fded3291df1c4d4f79a00d15c2374a9e010870016c/googleapis_common_protos-1.66.0-py2.py3-none-any.whl", hash = "sha256:d7abcd75fabb2e0ec9f74466401f6c119a0b498e27370e9be4c94cb7e382b8ed", size = 221682 }, ] [package.optional-dependencies] @@ -1782,7 +1763,7 @@ wheels = [ [[package]] name = "langchain-core" -version = "0.3.15" +version = "0.3.17" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "jsonpatch" }, @@ -1793,9 +1774,9 @@ dependencies = [ { name = "tenacity" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/44/c5/88b55a6000e816864753dbdc12b19f77a366102959ef71869b40287cb082/langchain_core-0.3.15.tar.gz", hash = "sha256:b1a29787a4ffb7ec2103b4e97d435287201da7809b369740dd1e32f176325aba", size = 327855 } +sdist = { url = "https://files.pythonhosted.org/packages/eb/30/b69df3abf4b48adaa0e44ba19853da07412bfc7b025311adfcc789a6288a/langchain_core-0.3.17.tar.gz", hash = "sha256:9e992e8f9f783af78d652a84ee5c99186a35c503812535c86528fb6796134d62", size = 328326 } wheels = [ - { url = "https://files.pythonhosted.org/packages/cf/0e/9b0c2214a371e99d26586c7a61f8c8af5b1150d46c8fa10d9b58e3c5bfa2/langchain_core-0.3.15-py3-none-any.whl", hash = "sha256:3d4ca6dbb8ed396a6ee061063832a2451b0ce8c345570f7b086ffa7288e4fa29", size = 408721 }, + { url = "https://files.pythonhosted.org/packages/96/62/e2c2c65d115bbd5ccc90f25662b38ca041f1c16bc60fef3d4fa80e733142/langchain_core-0.3.17-py3-none-any.whl", hash = "sha256:40e60343c35ffae681b9e4f2b0ac17c44229287566e743e2d26ccb932ab0100e", size = 409300 }, ] [[package]] @@ -1813,16 +1794,16 @@ wheels = [ [[package]] name = "langchain-openai" -version = "0.2.6" +version = "0.2.8" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "langchain-core" }, { name = "openai" }, { name = "tiktoken" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/93/67/91e89373c8d6c670bd092d04078086b8e15028caae11708a162f80ae5201/langchain_openai-0.2.6.tar.gz", hash = "sha256:7054e5f64498ad8e59d77cdc210103f5ea4f67258997edc48ae237298adeb316", size = 43166 } +sdist = { url = "https://files.pythonhosted.org/packages/58/65/f6f7e36840a0ed7bea281a0f2fff11190a1a708125cee6f49750e2acdfac/langchain_openai-0.2.8.tar.gz", hash = "sha256:48d22fa05bb8f7b371be47d05c7a3f42a68ff0e704647b86cc1bfc44e140f01b", size = 43217 } wheels = [ - { url = "https://files.pythonhosted.org/packages/a2/71/789e9a66d3af707928b1bb42a67b1e93798c80a4b6a064bad32803cd1b79/langchain_openai-0.2.6-py3-none-any.whl", hash = "sha256:d56e4d9183bdd1a5fb5f3ed9d287f15108e01d631ded170dd330a566f2927b95", size = 50366 }, + { url = "https://files.pythonhosted.org/packages/69/08/305828ff8f7e9b9c9cbc389aa708bb001bb55a503c52b47a9c01272af4b5/langchain_openai-0.2.8-py3-none-any.whl", hash = "sha256:0116b104d203377d2f4f61095e1d3ce1ba50e446d1a75397eaf0d1fcdf2c0d7b", size = 50416 }, ] [[package]] @@ -1855,7 +1836,7 @@ wheels = [ [[package]] name = "litellm" -version = "1.52.4" +version = "1.52.5" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, @@ -1870,9 +1851,9 @@ dependencies = [ { name = "tiktoken" }, { name = "tokenizers" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4b/08/4aed0c5b4020077c4e2fccb6079303b7fc963064c9107c687bc57fef1a30/litellm-1.52.4.tar.gz", hash = "sha256:aaf5de4da0fad31f8e3cb90d026660638adfb9d97fe7c2a63ac9e072d1690900", size = 6135163 } +sdist = { url = "https://files.pythonhosted.org/packages/05/4c/8da449a2504fb7464ee2edc99193d9be95252c0be0436e80db3d18cb49a2/litellm-1.52.5.tar.gz", hash = "sha256:9708c02983c7ed22fc18c96e167bf1c4ed9672de397d413e7957c216dfc911e6", size = 6123805 } wheels = [ - { url = "https://files.pythonhosted.org/packages/86/66/bbb22e9088003c1fc160a1f1398aeb1ca9bcec508a615e9403f0c34cf2ec/litellm-1.52.4-py3-none-any.whl", hash = "sha256:bfb208c2fc2c960bea6db34dbb77cd3c8a63e76d13a4d9163815df982d7e2764", size = 6370761 }, + { url = "https://files.pythonhosted.org/packages/37/a8/cf8ff7f698734c01f9a6670fa5db5a5b6ed6a5040818df89c60bea54b650/litellm-1.52.5-py3-none-any.whl", hash = "sha256:38c0f30a849b80c99cfc56f96c4c7563d5ced83f08fd7fc2129011ddc4414ac5", size = 6360231 }, ] [[package]] @@ -2275,7 +2256,7 @@ wheels = [ [[package]] name = "openai" -version = "1.54.3" +version = "1.54.4" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, @@ -2287,9 +2268,9 @@ dependencies = [ { name = "tqdm" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4b/d8/ff02ef5255bf1b0c75f6badced772b4fd5c29a517d2a0be6f4e0a65a3227/openai-1.54.3.tar.gz", hash = "sha256:7511b74eeb894ac0b0253dc71f087a15d2e4d71d22d0088767205143d880cca6", size = 313963 } +sdist = { url = "https://files.pythonhosted.org/packages/7e/95/83845be5ddd46ce0a35fd602a3366ec2d7fd6b2be6fb760ca553e2488ea1/openai-1.54.4.tar.gz", hash = "sha256:50f3656e45401c54e973fa05dc29f3f0b0d19348d685b2f7ddb4d92bf7b1b6bf", size = 314159 } wheels = [ - { url = "https://files.pythonhosted.org/packages/77/85/e7adeee84edd24c6cc119b2ccaaacd9579c6a2c7f72d05e936ea6b33594e/openai-1.54.3-py3-none-any.whl", hash = "sha256:f18dbaf09c50d70c4185b892a2a553f80681d1d866323a2da7f7be2f688615d5", size = 389619 }, + { url = "https://files.pythonhosted.org/packages/c7/d8/3e4cf8a5f544bef575d3502fedd81a15e317f591022de940647bdd0cc017/openai-1.54.4-py3-none-any.whl", hash = "sha256:0d95cef99346bf9b6d7fbf57faf61a673924c3e34fa8af84c9ffe04660673a7e", size = 389581 }, ] [[package]] @@ -2516,11 +2497,11 @@ wheels = [ [[package]] name = "packaging" -version = "23.2" +version = "24.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/fb/2b/9b9c33ffed44ee921d0967086d653047286054117d584f1b1a7c22ceaf7b/packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5", size = 146714 } +sdist = { url = "https://files.pythonhosted.org/packages/d0/63/68dbb6eb2de9cb10ee4c9c14a0148804425e13c4fb20d61cce69f53106da/packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f", size = 163950 } wheels = [ - { url = "https://files.pythonhosted.org/packages/ec/1a/610693ac4ee14fcdf2d9bf3c493370e4f2ef7ae2e19217d7a237ff42367d/packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7", size = 53011 }, + { url = "https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759", size = 65451 }, ] [[package]] @@ -2749,20 +2730,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ad/c3/2377c159e28ea89a91cf1ca223f827ae8deccb2c9c401e5ca233cd73002f/protobuf-5.28.3-py3-none-any.whl", hash = "sha256:cee1757663fa32a1ee673434fcf3bf24dd54763c79690201208bafec62f19eed", size = 169511 }, ] -[[package]] -name = "psutil" -version = "5.9.8" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/90/c7/6dc0a455d111f68ee43f27793971cf03fe29b6ef972042549db29eec39a2/psutil-5.9.8.tar.gz", hash = "sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c", size = 503247 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/e3/07ae864a636d70a8a6f58da27cb1179192f1140d5d1da10886ade9405797/psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81", size = 248702 }, - { url = "https://files.pythonhosted.org/packages/b3/bd/28c5f553667116b2598b9cc55908ec435cb7f77a34f2bff3e3ca765b0f78/psutil-5.9.8-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421", size = 285242 }, - { url = "https://files.pythonhosted.org/packages/c5/4f/0e22aaa246f96d6ac87fe5ebb9c5a693fbe8877f537a1022527c47ca43c5/psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4", size = 288191 }, - { url = "https://files.pythonhosted.org/packages/6e/f5/2aa3a4acdc1e5940b59d421742356f133185667dd190b166dbcfcf5d7b43/psutil-5.9.8-cp37-abi3-win32.whl", hash = "sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0", size = 251252 }, - { url = "https://files.pythonhosted.org/packages/93/52/3e39d26feae7df0aa0fd510b14012c3678b36ed068f7d78b8d8784d61f0e/psutil-5.9.8-cp37-abi3-win_amd64.whl", hash = "sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf", size = 255090 }, - { url = "https://files.pythonhosted.org/packages/05/33/2d74d588408caedd065c2497bdb5ef83ce6082db01289a1e1147f6639802/psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8", size = 249898 }, -] - [[package]] name = "ptyprocess" version = "0.7.0" @@ -3610,11 +3577,11 @@ name = "supervisor" version = "0.1.0" source = { editable = "." } dependencies = [ - { name = "crewai", extra = ["agentops", "tools"] }, + { name = "crewai", extra = ["tools"] }, ] [package.metadata] -requires-dist = [{ name = "crewai", extras = ["agentops", "tools"], specifier = ">=0.76.2,<1.0.0" }] +requires-dist = [{ name = "crewai", extras = ["tools"], specifier = ">=0.79.4,<1.0.0" }] [[package]] name = "sympy" @@ -3646,15 +3613,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b6/cb/b86984bed139586d01532a587464b5805f12e397594f19f931c4c2fbfa61/tenacity-9.0.0-py3-none-any.whl", hash = "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539", size = 28169 }, ] -[[package]] -name = "termcolor" -version = "2.5.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/37/72/88311445fd44c455c7d553e61f95412cf89054308a1aa2434ab835075fc5/termcolor-2.5.0.tar.gz", hash = "sha256:998d8d27da6d48442e8e1f016119076b690d962507531df4890fcd2db2ef8a6f", size = 13057 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/be/df630c387a0a054815d60be6a97eb4e8f17385d5d6fe660e1c02750062b4/termcolor-2.5.0-py3-none-any.whl", hash = "sha256:37b17b5fc1e604945c2642c872a3764b5d547a48009871aea3edd3afa180afb8", size = 7755 }, -] - [[package]] name = "tiktoken" version = "0.7.0"