Files
fxhnt/pyproject.toml
jgrusewski e628daba52 feat: agentic research layer — LangGraph agent + LLM port + compute tools
application/agent: ResearchAgent (LangGraph create_react_agent) + build_tools (list_strategies,
evaluate_candidate, evaluate_book wrapping the services) | adapters/llm.build_chat_model (config-
swappable: local Ollama now, cluster/API later) | AgentSettings | CLI agent. The LLM proposes; the
deterministic gauntlet inside the tools disposes. Verified: tools work + the model emits tool-calls
(architecture correct). Local qwen2.5:3b is too weak for the reliable multi-step loop (model bottleneck,
swappable via config). Also fixed flaky test seeds (hash()->deterministic). 14/14 tests. Bonus: tools
surfaced GC+NQ+ES trend book = Sharpe 1.06 OOS 1.47 DSR 0.949.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 16:22:59 +02:00

45 lines
1019 B
TOML

[project]
name = "fxhnt"
version = "0.1.0"
description = "Agentic strategy-research & multi-strategy execution platform — discover, backtest, OOS-validate at scale"
requires-python = ">=3.11"
dependencies = [
"numpy>=1.26",
"pydantic>=2.6",
"pydantic-settings>=2.2",
"sqlalchemy>=2.0",
"duckdb>=1.0",
"typer>=0.12",
]
[project.optional-dependencies]
dev = ["pytest>=8.0", "hypothesis>=6.100", "ruff>=0.5", "mypy>=1.10"]
ibkr = ["ib-async>=2.0"]
agent = ["langgraph>=0.2", "langchain-core>=0.3", "langchain-ollama>=0.2"]
data = ["databento>=0.50"]
[project.scripts]
fxhnt = "fxhnt.cli:app"
[build-system]
requires = ["setuptools>=68"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["src"]
[tool.ruff]
line-length = 120
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "SIM"]
[tool.mypy]
python_version = "3.11"
strict = true
ignore_missing_imports = true
[tool.pytest.ini_options]
pythonpath = ["src"]
testpaths = ["tests"]