diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 62ac3cd..51913d2 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -12,7 +12,15 @@ "Bash(\"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\\cmake.exe\" --build . --config Debug)", "Bash(git fetch:*)", "Bash(git describe:*)", - "Bash(git checkout:*)" + "Bash(git checkout:*)", + "Bash(dir:*)", + "Bash(python -m pytest:*)", + "Bash(python -m venv:*)", + "Bash(python -m pip install:*)", + "Bash(git add:*)", + "Bash(git commit:*)", + "Bash(git push:*)", + "Bash(gh pr create:*)" ], "deny": [], "ask": [] diff --git a/.github/workflows/python-tests.yml b/.github/workflows/python-tests.yml index a80c8c7..9d8b705 100644 --- a/.github/workflows/python-tests.yml +++ b/.github/workflows/python-tests.yml @@ -35,18 +35,16 @@ jobs: - name: Install dependencies run: | python -m pip install --upgrade pip - pip install -r python/requirements.txt - pip install pytest pytest-cov pytest-asyncio + pip install -e .[dev] - name: Run tests run: | - cd tests - pytest -v --cov=../python --cov-report=xml --cov-report=term + pytest -v --cov-report=xml --cov-report=term - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 with: - file: ./tests/coverage.xml + file: ./coverage.xml flags: unittests name: codecov-${{ matrix.os }}-py${{ matrix.python-version }} @@ -60,22 +58,19 @@ jobs: with: python-version: '3.11' - - name: Install linting tools + - name: Install package and linting tools run: | - pip install black ruff mypy + pip install -e .[dev] - name: Run black (format check) run: | - cd python - black --check . + black --check python - name: Run ruff (lint) run: | - cd python - ruff check . + ruff check python - name: Run mypy (type check) run: | - cd python - mypy --ignore-missing-imports agent_runtime backends tools + mypy --ignore-missing-imports python/agent_runtime python/backends python/tools continue-on-error: true # Don't fail on type errors initially diff --git a/AUTHORS b/AUTHORS index 4dc927d..b332a73 100644 --- a/AUTHORS +++ b/AUTHORS @@ -8,7 +8,7 @@ Agent Arena is maintained by **JustInternetAI** (https://github.com/JustInternet Agent Arena was founded in 2025 by: -- **Andrew Madison** - Co-Founder (https://github.com/andrewmadison) +- **Andrew Madison** - Co-Founder (https://github.com/andrewbmadison) - **Justin Madison** - Co-Founder (https://github.com/justinmadison) ## Core Contributors diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..d94fc4a --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,113 @@ +[build-system] +requires = ["setuptools>=61.0", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "agent-arena" +version = "0.1.0" +description = "LLM-driven autonomous agent benchmarking framework" +readme = "README.md" +requires-python = ">=3.11" +license = {text = "Apache-2.0"} +authors = [ + {name = "Andrew Madison"}, + {name = "Justin Madison"}, +] +keywords = ["ai", "agents", "llm", "benchmark", "simulation"] +classifiers = [ + "Development Status :: 3 - Alpha", + "Intended Audience :: Developers", + "Intended Audience :: Science/Research", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Topic :: Scientific/Engineering :: Artificial Intelligence", +] + +dependencies = [ + "numpy>=1.24.0", + "pydantic>=2.0.0", + "msgpack>=1.0.5", + "hydra-core>=1.3.0", + "omegaconf>=2.3.0", + "requests>=2.31.0", + "python-dotenv>=1.0.0", + "tenacity>=8.2.0", + "aiohttp>=3.9.0", + "tqdm>=4.66.0", + "rich>=13.7.0", + "structlog>=23.2.0", + "python-json-logger>=2.0.7", + "pandas>=2.0.0", +] + +[project.optional-dependencies] +llm = [ + "llama-cpp-python>=0.2.0", + "openai>=1.0.0", + "torch>=2.0.0", + "transformers>=4.35.0", +] + +vector = [ + "faiss-cpu>=1.7.4", + "sentence-transformers>=2.2.0", + "chromadb>=0.5.0", +] + +full = [ + "agent-arena[llm,vector]", + "pillow>=10.0.0", +] + +dev = [ + "pytest>=7.4.0", + "pytest-asyncio>=0.21.0", + "pytest-cov>=4.1.0", + "black>=23.0.0", + "ruff>=0.1.0", + "mypy>=1.5.0", +] + +[project.urls] +Homepage = "https://github.com/JustInternetAI/AgentArena" +Repository = "https://github.com/JustInternetAI/AgentArena" +Issues = "https://github.com/JustInternetAI/AgentArena/issues" + +[tool.setuptools] +package-dir = {"" = "python"} + +[tool.setuptools.packages.find] +where = ["python"] + +[tool.pytest.ini_options] +testpaths = ["tests"] +python_files = ["test_*.py"] +python_classes = ["Test*"] +python_functions = ["test_*"] +addopts = [ + "-v", + "--strict-markers", + "--cov=agent_runtime", + "--cov=backends", + "--cov=tools", +] + +[tool.black] +line-length = 100 +target-version = ["py311", "py312"] +include = '\.pyi?$' + +[tool.ruff] +line-length = 100 +target-version = "py311" +select = ["E", "F", "I", "N", "W", "UP"] +ignore = ["E501"] # Line too long (handled by black) + +[tool.mypy] +python_version = "3.11" +warn_return_any = true +warn_unused_configs = true +disallow_untyped_defs = false +ignore_missing_imports = true diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..ee5f16b --- /dev/null +++ b/tests/__init__.py @@ -0,0 +1 @@ +"""Tests for Agent Arena."""