[project] name = "portfolio-optimiser" version = "0.1.0" description = "Generic framework on Microsoft Agent Framework for per-project cost-savings optimization" readme = "README.md" requires-python = ">=3.10" dependencies = [ # MAF — GA-pakker, IKKE meta-pakken `agent-framework`. Metaen drar `agent-framework-core[all]`, # og `[all]` trekker inn de fortsatt-beta integrasjonene (azure-ai-search/cosmos/ollama/…) som # tvinger pre-releases og drar med en ALPHA pydantic. Offisiell guide: installer kun det du trenger. # Beta-integrasjoner legges til per-fase (med snevert pre-release-scope) når de faktisk trengs. "agent-framework-core>=1.9.0", # kjerne (GA) "agent-framework-foundry>=1.8.2", # Azure/Foundry-profil: FoundryChatClient (GA) "agent-framework-openai>=1.8.2", # OpenAI + OpenAI-kompatible lokale endpoints (GA) → lokal profil "pydantic>=2.11,<3", # IR/validering (B1) — eksplisitt pin til STABIL 2.x, aldri alpha ] [project.optional-dependencies] dev = [ "pytest>=8", "ruff>=0.6", "mypy>=1.11", # Fase 1 throwaway de-risk spikes (dev-only — NEVER shipped in the wheel; safe to delete). "agent-framework-orchestrations>=1.0.0", # GA orchestration builders (GroupChat/Concurrent/Magentic); resolves with core 1.9.0 "pulp>=2.8", # Spike C solver — PuLP bundles a CBC binary in its wheel (R2) "pytest-asyncio>=0.24", # MAF orchestrations are async (await workflow.run(...)) ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/portfolio_optimiser"] [tool.ruff] line-length = 100 src = ["src", "tests", "spikes"] [tool.pytest.ini_options] pythonpath = ["src", "."] testpaths = ["tests"] asyncio_mode = "auto"