EvoScientist 0.0.1.dev4__tar.gz → 0.1.0rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist/EvoScientist.py +26 -62
  2. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist/__init__.py +0 -19
  3. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist/backends.py +0 -26
  4. evoscientist-0.1.0rc1/EvoScientist/cli.py +1281 -0
  5. evoscientist-0.1.0rc1/EvoScientist/middleware.py +27 -0
  6. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist/stream/__init__.py +0 -25
  7. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist/stream/utils.py +16 -23
  8. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist/tools.py +2 -75
  9. evoscientist-0.1.0rc1/EvoScientist.egg-info/PKG-INFO +199 -0
  10. evoscientist-0.1.0rc1/EvoScientist.egg-info/SOURCES.txt +32 -0
  11. evoscientist-0.1.0rc1/EvoScientist.egg-info/entry_points.txt +2 -0
  12. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist.egg-info/requires.txt +1 -6
  13. evoscientist-0.1.0rc1/PKG-INFO +199 -0
  14. evoscientist-0.1.0rc1/README.md +167 -0
  15. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/pyproject.toml +4 -21
  16. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/tests/test_backends.py +3 -0
  17. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/tests/test_imports.py +12 -4
  18. evoscientist-0.1.0rc1/tests/test_stream_state.py +285 -0
  19. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/tests/test_stream_tracker.py +1 -1
  20. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/tests/test_stream_utils.py +2 -19
  21. evoscientist-0.0.1.dev4/EvoScientist/cli.py +0 -668
  22. evoscientist-0.0.1.dev4/EvoScientist/config.py +0 -274
  23. evoscientist-0.0.1.dev4/EvoScientist/llm/__init__.py +0 -21
  24. evoscientist-0.0.1.dev4/EvoScientist/llm/models.py +0 -99
  25. evoscientist-0.0.1.dev4/EvoScientist/memory.py +0 -715
  26. evoscientist-0.0.1.dev4/EvoScientist/middleware.py +0 -80
  27. evoscientist-0.0.1.dev4/EvoScientist/onboard.py +0 -725
  28. evoscientist-0.0.1.dev4/EvoScientist/paths.py +0 -44
  29. evoscientist-0.0.1.dev4/EvoScientist/skills/accelerate/SKILL.md +0 -332
  30. evoscientist-0.0.1.dev4/EvoScientist/skills/accelerate/references/custom-plugins.md +0 -453
  31. evoscientist-0.0.1.dev4/EvoScientist/skills/accelerate/references/megatron-integration.md +0 -489
  32. evoscientist-0.0.1.dev4/EvoScientist/skills/accelerate/references/performance.md +0 -525
  33. evoscientist-0.0.1.dev4/EvoScientist/skills/bitsandbytes/SKILL.md +0 -411
  34. evoscientist-0.0.1.dev4/EvoScientist/skills/bitsandbytes/references/memory-optimization.md +0 -521
  35. evoscientist-0.0.1.dev4/EvoScientist/skills/bitsandbytes/references/qlora-training.md +0 -521
  36. evoscientist-0.0.1.dev4/EvoScientist/skills/bitsandbytes/references/quantization-formats.md +0 -447
  37. evoscientist-0.0.1.dev4/EvoScientist/skills/find-skills/SKILL.md +0 -133
  38. evoscientist-0.0.1.dev4/EvoScientist/skills/find-skills/scripts/install_skill.py +0 -211
  39. evoscientist-0.0.1.dev4/EvoScientist/skills/flash-attention/SKILL.md +0 -367
  40. evoscientist-0.0.1.dev4/EvoScientist/skills/flash-attention/references/benchmarks.md +0 -215
  41. evoscientist-0.0.1.dev4/EvoScientist/skills/flash-attention/references/transformers-integration.md +0 -293
  42. evoscientist-0.0.1.dev4/EvoScientist/skills/llama-cpp/SKILL.md +0 -258
  43. evoscientist-0.0.1.dev4/EvoScientist/skills/llama-cpp/references/optimization.md +0 -89
  44. evoscientist-0.0.1.dev4/EvoScientist/skills/llama-cpp/references/quantization.md +0 -213
  45. evoscientist-0.0.1.dev4/EvoScientist/skills/llama-cpp/references/server.md +0 -125
  46. evoscientist-0.0.1.dev4/EvoScientist/skills/lm-evaluation-harness/SKILL.md +0 -490
  47. evoscientist-0.0.1.dev4/EvoScientist/skills/lm-evaluation-harness/references/api-evaluation.md +0 -490
  48. evoscientist-0.0.1.dev4/EvoScientist/skills/lm-evaluation-harness/references/benchmark-guide.md +0 -488
  49. evoscientist-0.0.1.dev4/EvoScientist/skills/lm-evaluation-harness/references/custom-tasks.md +0 -602
  50. evoscientist-0.0.1.dev4/EvoScientist/skills/lm-evaluation-harness/references/distributed-eval.md +0 -519
  51. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/SKILL.md +0 -937
  52. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/references/checklists.md +0 -361
  53. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/references/citation-workflow.md +0 -562
  54. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/references/reviewer-guidelines.md +0 -367
  55. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/references/sources.md +0 -159
  56. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/references/writing-guide.md +0 -476
  57. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/README.md +0 -251
  58. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/aaai2026/README.md +0 -534
  59. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026-unified-supp.tex +0 -144
  60. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026-unified-template.tex +0 -952
  61. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.bib +0 -111
  62. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.bst +0 -1493
  63. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.sty +0 -315
  64. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/acl/README.md +0 -50
  65. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/acl/acl.sty +0 -312
  66. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/acl/acl_latex.tex +0 -377
  67. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/acl/acl_lualatex.tex +0 -101
  68. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/acl/acl_natbib.bst +0 -1940
  69. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/acl/anthology.bib.txt +0 -26
  70. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/acl/custom.bib +0 -70
  71. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/acl/formatting.md +0 -326
  72. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/colm2025/README.md +0 -3
  73. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.bib +0 -11
  74. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.bst +0 -1440
  75. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.pdf +0 -0
  76. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.sty +0 -218
  77. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.tex +0 -305
  78. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/colm2025/fancyhdr.sty +0 -485
  79. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/colm2025/math_commands.tex +0 -508
  80. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/colm2025/natbib.sty +0 -1246
  81. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/iclr2026/fancyhdr.sty +0 -485
  82. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.bib +0 -24
  83. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.bst +0 -1440
  84. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.pdf +0 -0
  85. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.sty +0 -246
  86. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.tex +0 -414
  87. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/iclr2026/math_commands.tex +0 -508
  88. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/iclr2026/natbib.sty +0 -1246
  89. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/icml2026/algorithm.sty +0 -79
  90. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/icml2026/algorithmic.sty +0 -201
  91. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.bib +0 -75
  92. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.pdf +0 -0
  93. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.tex +0 -662
  94. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/icml2026/fancyhdr.sty +0 -864
  95. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/icml2026/icml2026.bst +0 -1443
  96. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/icml2026/icml2026.sty +0 -767
  97. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/icml2026/icml_numpapers.pdf +0 -0
  98. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/neurips2025/Makefile +0 -36
  99. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/neurips2025/extra_pkgs.tex +0 -53
  100. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/neurips2025/main.tex +0 -38
  101. evoscientist-0.0.1.dev4/EvoScientist/skills/ml-paper-writing/templates/neurips2025/neurips.sty +0 -382
  102. evoscientist-0.0.1.dev4/EvoScientist/skills/peft/SKILL.md +0 -431
  103. evoscientist-0.0.1.dev4/EvoScientist/skills/peft/references/advanced-usage.md +0 -514
  104. evoscientist-0.0.1.dev4/EvoScientist/skills/peft/references/troubleshooting.md +0 -480
  105. evoscientist-0.0.1.dev4/EvoScientist/skills/ray-data/SKILL.md +0 -326
  106. evoscientist-0.0.1.dev4/EvoScientist/skills/ray-data/references/integration.md +0 -82
  107. evoscientist-0.0.1.dev4/EvoScientist/skills/ray-data/references/transformations.md +0 -83
  108. evoscientist-0.0.1.dev4/EvoScientist/skills/skill-creator/LICENSE.txt +0 -202
  109. evoscientist-0.0.1.dev4/EvoScientist/skills/skill-creator/SKILL.md +0 -356
  110. evoscientist-0.0.1.dev4/EvoScientist/skills/skill-creator/references/output-patterns.md +0 -82
  111. evoscientist-0.0.1.dev4/EvoScientist/skills/skill-creator/references/workflows.md +0 -28
  112. evoscientist-0.0.1.dev4/EvoScientist/skills/skill-creator/scripts/init_skill.py +0 -303
  113. evoscientist-0.0.1.dev4/EvoScientist/skills/skill-creator/scripts/package_skill.py +0 -110
  114. evoscientist-0.0.1.dev4/EvoScientist/skills/skill-creator/scripts/quick_validate.py +0 -95
  115. evoscientist-0.0.1.dev4/EvoScientist/skills_manager.py +0 -391
  116. evoscientist-0.0.1.dev4/EvoScientist/stream/display.py +0 -604
  117. evoscientist-0.0.1.dev4/EvoScientist/stream/events.py +0 -415
  118. evoscientist-0.0.1.dev4/EvoScientist/stream/state.py +0 -343
  119. evoscientist-0.0.1.dev4/EvoScientist.egg-info/PKG-INFO +0 -367
  120. evoscientist-0.0.1.dev4/EvoScientist.egg-info/SOURCES.txt +0 -132
  121. evoscientist-0.0.1.dev4/EvoScientist.egg-info/entry_points.txt +0 -5
  122. evoscientist-0.0.1.dev4/PKG-INFO +0 -367
  123. evoscientist-0.0.1.dev4/README.md +0 -330
  124. evoscientist-0.0.1.dev4/tests/test_config.py +0 -345
  125. evoscientist-0.0.1.dev4/tests/test_llm.py +0 -226
  126. evoscientist-0.0.1.dev4/tests/test_onboard.py +0 -408
  127. evoscientist-0.0.1.dev4/tests/test_skills_manager.py +0 -341
  128. evoscientist-0.0.1.dev4/tests/test_stream_state.py +0 -541
  129. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist/__main__.py +0 -0
  130. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist/prompts.py +0 -0
  131. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist/stream/emitter.py +0 -0
  132. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist/stream/formatter.py +0 -0
  133. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist/stream/tracker.py +0 -0
  134. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist/subagent.yaml +0 -0
  135. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist/utils.py +0 -0
  136. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist.egg-info/dependency_links.txt +0 -0
  137. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/EvoScientist.egg-info/top_level.txt +0 -0
  138. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/LICENSE +0 -0
  139. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/setup.cfg +0 -0
  140. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/tests/test_prompts.py +0 -0
  141. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/tests/test_stream_emitter.py +0 -0
  142. {evoscientist-0.0.1.dev4 → evoscientist-0.1.0rc1}/tests/test_tools.py +0 -0
@@ -13,47 +13,34 @@ Usage:
13
13
  ...
14
14
  """
15
15
 
16
+ import os
16
17
  from datetime import datetime
17
18
  from pathlib import Path
18
19
 
19
20
  from deepagents import create_deep_agent
20
21
  from deepagents.backends import FilesystemBackend, CompositeBackend
22
+ from langchain.chat_models import init_chat_model
21
23
 
22
- from .backends import CustomSandboxBackend, MergedReadOnlyBackend
23
- from .config import get_effective_config, apply_config_to_env
24
- from .llm import get_chat_model
25
- from .middleware import create_skills_middleware, create_memory_middleware
24
+ from .backends import CustomSandboxBackend, ReadOnlyFilesystemBackend
25
+ from .middleware import create_skills_middleware
26
26
  from .prompts import RESEARCHER_INSTRUCTIONS, get_system_prompt
27
27
  from .utils import load_subagents
28
- from .tools import tavily_search, think_tool, skill_manager
29
- from .paths import (
30
- ensure_dirs,
31
- default_workspace_dir,
32
- MEMORY_DIR as _MEMORY_DIR_PATH,
33
- USER_SKILLS_DIR as _USER_SKILLS_DIR_PATH,
34
- )
28
+ from .tools import tavily_search, think_tool
35
29
 
36
30
  # =============================================================================
37
31
  # Configuration
38
32
  # =============================================================================
39
33
 
40
- # Load configuration from file/env/defaults
41
- _config = get_effective_config()
42
- apply_config_to_env(_config)
43
-
44
34
  # Backend mode: "sandbox" (with execute) or "filesystem" (read/write only)
45
35
  BACKEND_MODE = "sandbox"
46
36
 
47
- # Research limits (from config)
48
- MAX_CONCURRENT = _config.max_concurrent
49
- MAX_ITERATIONS = _config.max_iterations
37
+ # Research limits
38
+ MAX_CONCURRENT = 3 # Max parallel sub-agents
39
+ MAX_ITERATIONS = 3 # Max delegation rounds
50
40
 
51
41
  # Workspace settings
52
- ensure_dirs()
53
- WORKSPACE_DIR = str(default_workspace_dir())
54
- MEMORY_DIR = str(_MEMORY_DIR_PATH) # Shared across sessions (not per-session)
55
- SKILLS_DIR = str(Path(__file__).parent / "skills")
56
- USER_SKILLS_DIR = str(_USER_SKILLS_DIR_PATH)
42
+ WORKSPACE_DIR = "./workspace/"
43
+ SKILLS_DIR = "./skills/"
57
44
  SUBAGENTS_CONFIG = Path(__file__).parent / "subagent.yaml"
58
45
 
59
46
  # =============================================================================
@@ -69,10 +56,10 @@ SYSTEM_PROMPT = get_system_prompt(
69
56
  max_iterations=MAX_ITERATIONS,
70
57
  )
71
58
 
72
- # Initialize chat model using the LLM module (respects config settings)
73
- chat_model = get_chat_model(
74
- model=_config.model,
75
- provider=_config.provider,
59
+ # Initialize chat model
60
+ chat_model = init_chat_model(
61
+ model="claude-sonnet-4-5-20250929",
62
+ model_provider="anthropic",
76
63
  # thinking={"type": "enabled", "budget_tokens": 2000},
77
64
  )
78
65
 
@@ -89,25 +76,16 @@ else:
89
76
  virtual_mode=True,
90
77
  )
91
78
 
92
- # Skills backend: merge user-installed (./skills/) and system (package) skills
93
- _skills_backend = MergedReadOnlyBackend(
94
- primary_dir=USER_SKILLS_DIR, # user-installed, takes priority
95
- secondary_dir=SKILLS_DIR, # package built-in, fallback
96
- )
97
-
98
- # Memory backend: persistent filesystem for long-term memory (shared across sessions)
99
- _memory_backend = FilesystemBackend(
100
- root_dir=MEMORY_DIR,
79
+ # Skills backend: read-only access to ./skills/
80
+ _skills_backend = ReadOnlyFilesystemBackend(
81
+ root_dir=SKILLS_DIR,
101
82
  virtual_mode=True,
102
83
  )
103
84
 
104
- # Composite backend: workspace as default, skills and memory mounted
85
+ # Composite backend: workspace as default, skills mounted at /skills/
105
86
  backend = CompositeBackend(
106
87
  default=_workspace_backend,
107
- routes={
108
- "/skills/": _skills_backend,
109
- "/memory/": _memory_backend,
110
- },
88
+ routes={"/skills/": _skills_backend},
111
89
  )
112
90
 
113
91
  tool_registry = {
@@ -129,13 +107,10 @@ subagents = load_subagents(
129
107
  _AGENT_KWARGS = dict(
130
108
  name="EvoScientist",
131
109
  model=chat_model,
132
- tools=[think_tool, skill_manager],
110
+ tools=[think_tool],
133
111
  backend=backend,
134
112
  subagents=subagents,
135
- middleware=[
136
- create_memory_middleware(MEMORY_DIR, extraction_model=chat_model),
137
- create_skills_middleware(SKILLS_DIR, user_skills_dir=USER_SKILLS_DIR),
138
- ],
113
+ middleware=[create_skills_middleware(SKILLS_DIR, WORKSPACE_DIR)],
139
114
  system_prompt=SYSTEM_PROMPT,
140
115
  )
141
116
 
@@ -149,7 +124,7 @@ def create_cli_agent(workspace_dir: str | None = None):
149
124
  Args:
150
125
  workspace_dir: Optional per-session workspace directory. If provided,
151
126
  creates a fresh backend rooted at this path. If None, uses the
152
- module-level default backend (./workspace).
127
+ module-level default backend (./workspace/).
153
128
  """
154
129
  from langgraph.checkpoint.memory import InMemorySaver # type: ignore[import-untyped]
155
130
 
@@ -159,26 +134,15 @@ def create_cli_agent(workspace_dir: str | None = None):
159
134
  virtual_mode=True,
160
135
  timeout=300,
161
136
  )
162
- sk_backend = MergedReadOnlyBackend(
163
- primary_dir=USER_SKILLS_DIR,
164
- secondary_dir=SKILLS_DIR,
165
- )
166
- # Memory always uses SHARED directory (not per-session) for cross-session persistence
167
- mem_backend = FilesystemBackend(
168
- root_dir=MEMORY_DIR,
137
+ sk_backend = ReadOnlyFilesystemBackend(
138
+ root_dir=SKILLS_DIR,
169
139
  virtual_mode=True,
170
140
  )
171
141
  be = CompositeBackend(
172
142
  default=ws_backend,
173
- routes={
174
- "/skills/": sk_backend,
175
- "/memory/": mem_backend,
176
- },
143
+ routes={"/skills/": sk_backend},
177
144
  )
178
- mw = [
179
- create_memory_middleware(MEMORY_DIR, extraction_model=chat_model),
180
- create_skills_middleware(SKILLS_DIR, user_skills_dir=USER_SKILLS_DIR),
181
- ]
145
+ mw = [create_skills_middleware(SKILLS_DIR, workspace_dir)]
182
146
  kwargs = dict(
183
147
  _AGENT_KWARGS,
184
148
  backend=be,
@@ -1,14 +1,6 @@
1
1
  """EvoScientist Agent — AI-powered research & code execution."""
2
2
 
3
3
  from .backends import CustomSandboxBackend, ReadOnlyFilesystemBackend
4
- from .config import (
5
- EvoScientistConfig,
6
- load_config,
7
- save_config,
8
- get_effective_config,
9
- get_config_path,
10
- )
11
- from .llm import get_chat_model, MODELS, list_models, DEFAULT_MODEL
12
4
  from .middleware import create_skills_middleware
13
5
  from .prompts import get_system_prompt, RESEARCHER_INSTRUCTIONS
14
6
  from .tools import tavily_search, think_tool
@@ -21,17 +13,6 @@ __all__ = [
21
13
  # Backends
22
14
  "CustomSandboxBackend",
23
15
  "ReadOnlyFilesystemBackend",
24
- # Configuration
25
- "EvoScientistConfig",
26
- "load_config",
27
- "save_config",
28
- "get_effective_config",
29
- "get_config_path",
30
- # LLM
31
- "get_chat_model",
32
- "MODELS",
33
- "list_models",
34
- "DEFAULT_MODEL",
35
16
  # Middleware
36
17
  "create_skills_middleware",
37
18
  # Prompts
@@ -9,8 +9,6 @@ from deepagents.backends import FilesystemBackend
9
9
  from deepagents.backends.filesystem import WriteResult, EditResult
10
10
  from deepagents.backends.protocol import (
11
11
  ExecuteResponse,
12
- FileDownloadResponse,
13
- FileUploadResponse,
14
12
  SandboxBackendProtocol,
15
13
  )
16
14
 
@@ -225,30 +223,6 @@ class MergedReadOnlyBackend:
225
223
  async def aedit(self, file_path: str, old_string: str, new_string: str, replace_all: bool = False) -> EditResult:
226
224
  return self.edit(file_path, old_string, new_string, replace_all)
227
225
 
228
- # -- download / upload (required by BackendProtocol) --
229
-
230
- def download_files(self, paths: list[str]) -> list[FileDownloadResponse]:
231
- """Download files, trying primary then secondary."""
232
- responses: list[FileDownloadResponse] = []
233
- for path in paths:
234
- resp = self._primary.download_files([path])[0]
235
- if resp.error is not None:
236
- resp = self._secondary.download_files([path])[0]
237
- responses.append(resp)
238
- return responses
239
-
240
- async def adownload_files(self, paths: list[str]) -> list[FileDownloadResponse]:
241
- return self.download_files(paths)
242
-
243
- def upload_files(self, files: list[tuple[str, bytes]]) -> list[FileUploadResponse]:
244
- return [
245
- FileUploadResponse(path=path, error="permission_denied")
246
- for path, _ in files
247
- ]
248
-
249
- async def aupload_files(self, files: list[tuple[str, bytes]]) -> list[FileUploadResponse]:
250
- return self.upload_files(files)
251
-
252
226
 
253
227
  class CustomSandboxBackend(FilesystemBackend, SandboxBackendProtocol):
254
228
  """