[project] name = "tim-contas-agent-framework" version = "1.0.0" description = "TIM Contas framework-native agent on agent_framework_oci" readme = "README.md" requires-python = ">=3.13,<3.14" authors = [ {name = "Time de Desenvolvimento", email = "dev@1sti.com.br"}, ] dependencies = [ "agent-framework", "requests>=2.31", "fastapi>=0.109.0", "uvicorn[standard]>=0.27", "python-dotenv>=1.2.2", "pydantic>=2.0", "pydantic-settings>=2.11.0", "pyyaml>=6.0.3", "langgraph>=0.6.0", "langgraph-checkpoint-postgres>=2.0.0", "psycopg[binary]>=3.2.10", "langfuse>=3.14.2", "langchain-oci>=0.1.0", "pdfplumber>=0.11.4", "pandas>=2.2.3", "oracledb>=2.0.0", "sqlalchemy>=2.0.0", "pymongo==4.16.0", "google-cloud-pubsub>=2.20.0", "opentelemetry-api>=1.42.1", "opentelemetry-sdk>=1.42.1", "opentelemetry-exporter-otlp>=1.42.1", "openpyxl>=3.1.0", "slowapi", "limits", "num2words>=0.5.14", "cryptography>=46.0.7", ] [dependency-groups] dev = [ "pytest>=9.0.2", "pytest-mock>=3.15.1", "pytest-cov>=4.1", "pytest-asyncio>=1.2.0", "httpx>=0.27,<0.28", "tiktoken>=0.13.0", # medir tamanho do prompt (regra de tamanho dos testes LLM) ] [tool.pytest.ini_options] testpaths = ["tests"] asyncio_mode = "auto" markers = [ "llm: testes que batem no LLM real (rede + OCI + custo). Pulados por padrão; rode com RUN_LLM_TESTS=1 ou `make llm-test`.", "guardrails: casos declarativos de guardrails do gate ativo (tests/llm_tests/cases/guardrails).", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.metadata] allow-direct-references = true [tool.hatch.build.targets.wheel] # Runtime Python distribuído por este projeto. Declarar explicitamente evita # a heurística do Hatchling baseada no nome tim_contas_agent_framework. packages = ["app", "contas_mcp"] [tool.uv] override-dependencies = [ "fastapi>=0.110.0", ] #environments = [ # "sys_platform == 'linux' and platform_machine == 'x86_64'", #] [tool.uv.sources] agent-framework = { path = "agent_framework_oci/libs/agent_framework", editable = true }