File size: 2,187 Bytes
522a08c
0545e40
522a08c
 
 
73882d9
522a08c
4501765
fa4ba99
522a08c
bc84cfe
4501765
0bdb50e
 
4e4cabf
6131fc8
0bdb50e
71477da
e6cbfb2
577ec48
bb3e0eb
 
7c7cb7b
67b16c6
 
 
 
 
2a2e170
d9d9785
2b4c539
a35ac53
 
4501765
 
a35ac53
 
 
 
 
 
 
 
 
 
 
6155b26
754345f
a35ac53
 
4501765
a35ac53
0545e40
522a08c
73882d9
275319a
ae4a534
275319a
73882d9
 
 
 
 
f893532
 
 
 
 
 
 
 
 
 
 
 
 
 
73882d9
 
 
3eec386
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
[project]
name = "ml-intern"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
    # Core dependencies
    "datasets>=4.4.1",
    "pydantic>=2.12.3",
    "python-dotenv>=1.2.1",
    # Agent runtime dependencies
    "requests>=2.33.0",
    "litellm>=1.83.0",
    "boto3>=1.35.0",
    "huggingface-hub>=1.12.0",
    "fastmcp>=3.2.0",
    "prompt-toolkit>=3.0.0",
    "thefuzz>=0.22.1",
    "rich>=13.0.0",
    "nbconvert>=7.16.6",
    "nbformat>=5.10.4",
    "whoosh>=2.7.4",
    # Web backend dependencies
    "fastapi>=0.115.0",
    "uvicorn[standard]>=0.32.0",
    "httpx>=0.27.0",
    "websockets>=13.0",
    "apscheduler>=3.10,<4",
    "pymongo>=4.17.0",
    "python-multipart>=0.0.20",
]

[project.optional-dependencies]

# Evaluation/benchmarking dependencies
eval = [
    "inspect-ai>=0.3.149",
    "pandas>=2.3.3",
    "datasets>=4.3.0",
    "tenacity>=8.0.0",
]

# Development and testing dependencies
dev = [
    "pytest>=9.0.2",
    "pytest-asyncio>=1.2.0",
    "ruff>=0.15.12",
]

# All dependencies (eval + dev)
all = [
    "ml-intern[eval,dev]",
]

[project.scripts]
ml-intern = "agent.main:cli"

[build-system]
requires = ["setuptools>=64"]
build-backend = "setuptools.build_meta"

[tool.setuptools.packages.find]
# `configs` ships the JSON files loaded by agent.main.CLI_CONFIG_PATH at
# runtime (resolves to <site-packages>/configs/cli_agent_config.json).
# Without it, `uv tool install` / `pip install` produce a broken install
# that imports fine but crashes at startup with FileNotFoundError.
include = ["agent*", "configs"]

[tool.setuptools.package-data]
configs = ["*.json"]
# Agent data files: system prompts loaded by ContextManager._load_system_prompt
# at runtime (`<site-packages>/agent/prompts/system_prompt_v3.yaml`), plus the
# package README. Without these, headless_main hangs forever — submission_loop
# crashes with FileNotFoundError but headless_main doesn't check agent_task.done()
# and just keeps awaiting the "ready" event_queue item that will never come.
agent = ["README.md", "prompts/*.yaml"]

[tool.uv]
package = true

[tool.pytest.ini_options]
asyncio_mode = "auto"