diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..b94b077ba6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,47 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so + +# Distribution / packaging +dist/ +build/ +*.egg-info/ +*.egg + +# Virtual environments +.venv/ +venv/ +env/ + +# Type checking / linting / testing caches +.mypy_cache/ +.ruff_cache/ +.pytest_cache/ + +# Coverage +htmlcov/ +coverage.xml +.coverage +.coverage.* + +# Environment variables +.env +.env.local +.env.*.local + +# Databases +*.db +*.sqlite3 + +# IDE +.idea/ +.vscode/ + +# OS +Thumbs.db +.DS_Store + +# uv +.python-version diff --git a/README.md b/README.md index 5a71fa962f..d421e86038 100644 --- a/README.md +++ b/README.md @@ -21,16 +21,17 @@ AI Company lets you spin up a virtual organization staffed entirely by AI agents ## Status -**Design phase.** See [DESIGN_SPEC.md](DESIGN_SPEC.md) for the full high-level specification. +**M0: Tooling & Infrastructure** in progress. See [DESIGN_SPEC.md](DESIGN_SPEC.md) for the full high-level specification. -## Tech Stack (Planned) +## Tech Stack -- **Python 3.12+** with FastAPI, Pydantic, Typer -- **LiteLLM** for multi-provider LLM abstraction -- **Mem0** for agent memory -- **MCP** for tool integration -- **Vue 3** for web dashboard -- **SQLite** → PostgreSQL for data persistence +- **Python 3.14+** with FastAPI, Pydantic, Typer (planned) +- **uv** as package manager, **Hatchling** as build backend +- **LiteLLM** for multi-provider LLM abstraction (planned) +- **Mem0** for agent memory (planned) +- **MCP** for tool integration (planned) +- **Vue 3** for web dashboard (planned) +- **SQLite** → PostgreSQL for data persistence (planned) ## Documentation diff --git a/config/.gitkeep b/config/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/docs/.gitkeep b/docs/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000..f6b62e25f5 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,25 @@ +[project] +name = "ai-company" +dynamic = ["version"] +description = "Framework for orchestrating autonomous AI agents within a virtual company structure" +readme = "README.md" +license = "BUSL-1.1" +requires-python = ">=3.14" +authors = [{ name = "Aurelio" }] +keywords = ["ai", "agents", "llm", "orchestration", "company"] +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Programming Language :: Python :: 3.14", + "Typing :: Typed", +] +dependencies = [] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.version] +path = "src/ai_company/__init__.py" + +[tool.hatch.build.targets.wheel] +packages = ["src/ai_company"] diff --git a/src/ai_company/__init__.py b/src/ai_company/__init__.py new file mode 100644 index 0000000000..8b849aab68 --- /dev/null +++ b/src/ai_company/__init__.py @@ -0,0 +1,3 @@ +"""AI Company - Framework for orchestrating autonomous AI agents.""" + +__version__ = "0.1.0" diff --git a/src/ai_company/api/__init__.py b/src/ai_company/api/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/ai_company/api/routes/__init__.py b/src/ai_company/api/routes/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/ai_company/budget/__init__.py b/src/ai_company/budget/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/ai_company/cli/__init__.py b/src/ai_company/cli/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/ai_company/cli/commands/__init__.py b/src/ai_company/cli/commands/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/ai_company/communication/__init__.py b/src/ai_company/communication/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/ai_company/config/__init__.py b/src/ai_company/config/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/ai_company/core/__init__.py b/src/ai_company/core/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/ai_company/engine/__init__.py b/src/ai_company/engine/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/ai_company/memory/__init__.py b/src/ai_company/memory/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/ai_company/providers/__init__.py b/src/ai_company/providers/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/ai_company/py.typed b/src/ai_company/py.typed new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/ai_company/security/__init__.py b/src/ai_company/security/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/ai_company/templates/__init__.py b/src/ai_company/templates/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/ai_company/tools/__init__.py b/src/ai_company/tools/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/e2e/__init__.py b/tests/e2e/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/integration/__init__.py b/tests/integration/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/unit/__init__.py b/tests/unit/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000000..1673c08925 --- /dev/null +++ b/uv.lock @@ -0,0 +1,7 @@ +version = 1 +revision = 3 +requires-python = ">=3.14" + +[[package]] +name = "ai-company" +source = { editable = "." }