EvoScientist 0.0.1.dev3__py3-none-any.whl → 0.1.0rc1__py3-none-any.whl
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.
- EvoScientist/EvoScientist.py +17 -49
- EvoScientist/backends.py +0 -26
- EvoScientist/cli.py +1109 -255
- EvoScientist/middleware.py +8 -61
- EvoScientist/stream/__init__.py +0 -25
- EvoScientist/stream/utils.py +16 -23
- EvoScientist/tools.py +0 -64
- evoscientist-0.1.0rc1.dist-info/METADATA +199 -0
- evoscientist-0.1.0rc1.dist-info/RECORD +21 -0
- evoscientist-0.1.0rc1.dist-info/entry_points.txt +2 -0
- EvoScientist/memory.py +0 -715
- EvoScientist/paths.py +0 -45
- EvoScientist/skills/accelerate/SKILL.md +0 -332
- EvoScientist/skills/accelerate/references/custom-plugins.md +0 -453
- EvoScientist/skills/accelerate/references/megatron-integration.md +0 -489
- EvoScientist/skills/accelerate/references/performance.md +0 -525
- EvoScientist/skills/bitsandbytes/SKILL.md +0 -411
- EvoScientist/skills/bitsandbytes/references/memory-optimization.md +0 -521
- EvoScientist/skills/bitsandbytes/references/qlora-training.md +0 -521
- EvoScientist/skills/bitsandbytes/references/quantization-formats.md +0 -447
- EvoScientist/skills/find-skills/SKILL.md +0 -133
- EvoScientist/skills/find-skills/scripts/install_skill.py +0 -211
- EvoScientist/skills/flash-attention/SKILL.md +0 -367
- EvoScientist/skills/flash-attention/references/benchmarks.md +0 -215
- EvoScientist/skills/flash-attention/references/transformers-integration.md +0 -293
- EvoScientist/skills/llama-cpp/SKILL.md +0 -258
- EvoScientist/skills/llama-cpp/references/optimization.md +0 -89
- EvoScientist/skills/llama-cpp/references/quantization.md +0 -213
- EvoScientist/skills/llama-cpp/references/server.md +0 -125
- EvoScientist/skills/lm-evaluation-harness/SKILL.md +0 -490
- EvoScientist/skills/lm-evaluation-harness/references/api-evaluation.md +0 -490
- EvoScientist/skills/lm-evaluation-harness/references/benchmark-guide.md +0 -488
- EvoScientist/skills/lm-evaluation-harness/references/custom-tasks.md +0 -602
- EvoScientist/skills/lm-evaluation-harness/references/distributed-eval.md +0 -519
- EvoScientist/skills/ml-paper-writing/SKILL.md +0 -937
- EvoScientist/skills/ml-paper-writing/references/checklists.md +0 -361
- EvoScientist/skills/ml-paper-writing/references/citation-workflow.md +0 -562
- EvoScientist/skills/ml-paper-writing/references/reviewer-guidelines.md +0 -367
- EvoScientist/skills/ml-paper-writing/references/sources.md +0 -159
- EvoScientist/skills/ml-paper-writing/references/writing-guide.md +0 -476
- EvoScientist/skills/ml-paper-writing/templates/README.md +0 -251
- EvoScientist/skills/ml-paper-writing/templates/aaai2026/README.md +0 -534
- EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026-unified-supp.tex +0 -144
- EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026-unified-template.tex +0 -952
- EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.bib +0 -111
- EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.bst +0 -1493
- EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.sty +0 -315
- EvoScientist/skills/ml-paper-writing/templates/acl/README.md +0 -50
- EvoScientist/skills/ml-paper-writing/templates/acl/acl.sty +0 -312
- EvoScientist/skills/ml-paper-writing/templates/acl/acl_latex.tex +0 -377
- EvoScientist/skills/ml-paper-writing/templates/acl/acl_lualatex.tex +0 -101
- EvoScientist/skills/ml-paper-writing/templates/acl/acl_natbib.bst +0 -1940
- EvoScientist/skills/ml-paper-writing/templates/acl/anthology.bib.txt +0 -26
- EvoScientist/skills/ml-paper-writing/templates/acl/custom.bib +0 -70
- EvoScientist/skills/ml-paper-writing/templates/acl/formatting.md +0 -326
- EvoScientist/skills/ml-paper-writing/templates/colm2025/README.md +0 -3
- EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.bib +0 -11
- EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.bst +0 -1440
- EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.pdf +0 -0
- EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.sty +0 -218
- EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.tex +0 -305
- EvoScientist/skills/ml-paper-writing/templates/colm2025/fancyhdr.sty +0 -485
- EvoScientist/skills/ml-paper-writing/templates/colm2025/math_commands.tex +0 -508
- EvoScientist/skills/ml-paper-writing/templates/colm2025/natbib.sty +0 -1246
- EvoScientist/skills/ml-paper-writing/templates/iclr2026/fancyhdr.sty +0 -485
- EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.bib +0 -24
- EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.bst +0 -1440
- EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.pdf +0 -0
- EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.sty +0 -246
- EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.tex +0 -414
- EvoScientist/skills/ml-paper-writing/templates/iclr2026/math_commands.tex +0 -508
- EvoScientist/skills/ml-paper-writing/templates/iclr2026/natbib.sty +0 -1246
- EvoScientist/skills/ml-paper-writing/templates/icml2026/algorithm.sty +0 -79
- EvoScientist/skills/ml-paper-writing/templates/icml2026/algorithmic.sty +0 -201
- EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.bib +0 -75
- EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.pdf +0 -0
- EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.tex +0 -662
- EvoScientist/skills/ml-paper-writing/templates/icml2026/fancyhdr.sty +0 -864
- EvoScientist/skills/ml-paper-writing/templates/icml2026/icml2026.bst +0 -1443
- EvoScientist/skills/ml-paper-writing/templates/icml2026/icml2026.sty +0 -767
- EvoScientist/skills/ml-paper-writing/templates/icml2026/icml_numpapers.pdf +0 -0
- EvoScientist/skills/ml-paper-writing/templates/neurips2025/Makefile +0 -36
- EvoScientist/skills/ml-paper-writing/templates/neurips2025/extra_pkgs.tex +0 -53
- EvoScientist/skills/ml-paper-writing/templates/neurips2025/main.tex +0 -38
- EvoScientist/skills/ml-paper-writing/templates/neurips2025/neurips.sty +0 -382
- EvoScientist/skills/peft/SKILL.md +0 -431
- EvoScientist/skills/peft/references/advanced-usage.md +0 -514
- EvoScientist/skills/peft/references/troubleshooting.md +0 -480
- EvoScientist/skills/ray-data/SKILL.md +0 -326
- EvoScientist/skills/ray-data/references/integration.md +0 -82
- EvoScientist/skills/ray-data/references/transformations.md +0 -83
- EvoScientist/skills/skill-creator/LICENSE.txt +0 -202
- EvoScientist/skills/skill-creator/SKILL.md +0 -356
- EvoScientist/skills/skill-creator/references/output-patterns.md +0 -82
- EvoScientist/skills/skill-creator/references/workflows.md +0 -28
- EvoScientist/skills/skill-creator/scripts/init_skill.py +0 -303
- EvoScientist/skills/skill-creator/scripts/package_skill.py +0 -110
- EvoScientist/skills/skill-creator/scripts/quick_validate.py +0 -95
- EvoScientist/skills_manager.py +0 -392
- EvoScientist/stream/display.py +0 -604
- EvoScientist/stream/events.py +0 -415
- EvoScientist/stream/state.py +0 -343
- evoscientist-0.0.1.dev3.dist-info/METADATA +0 -321
- evoscientist-0.0.1.dev3.dist-info/RECORD +0 -113
- evoscientist-0.0.1.dev3.dist-info/entry_points.txt +0 -5
- {evoscientist-0.0.1.dev3.dist-info → evoscientist-0.1.0rc1.dist-info}/WHEEL +0 -0
- {evoscientist-0.0.1.dev3.dist-info → evoscientist-0.1.0rc1.dist-info}/licenses/LICENSE +0 -0
- {evoscientist-0.0.1.dev3.dist-info → evoscientist-0.1.0rc1.dist-info}/top_level.txt +0 -0
EvoScientist/EvoScientist.py
CHANGED
|
@@ -21,17 +21,11 @@ from deepagents import create_deep_agent
|
|
|
21
21
|
from deepagents.backends import FilesystemBackend, CompositeBackend
|
|
22
22
|
from langchain.chat_models import init_chat_model
|
|
23
23
|
|
|
24
|
-
from .backends import CustomSandboxBackend,
|
|
25
|
-
from .middleware import create_skills_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
|
|
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
|
|
@@ -45,11 +39,8 @@ MAX_CONCURRENT = 3 # Max parallel sub-agents
|
|
|
45
39
|
MAX_ITERATIONS = 3 # Max delegation rounds
|
|
46
40
|
|
|
47
41
|
# Workspace settings
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
MEMORY_DIR = str(_MEMORY_DIR_PATH) # Shared across sessions (not per-session)
|
|
51
|
-
SKILLS_DIR = str(Path(__file__).parent / "skills")
|
|
52
|
-
USER_SKILLS_DIR = str(_USER_SKILLS_DIR_PATH)
|
|
42
|
+
WORKSPACE_DIR = "./workspace/"
|
|
43
|
+
SKILLS_DIR = "./skills/"
|
|
53
44
|
SUBAGENTS_CONFIG = Path(__file__).parent / "subagent.yaml"
|
|
54
45
|
|
|
55
46
|
# =============================================================================
|
|
@@ -85,25 +76,16 @@ else:
|
|
|
85
76
|
virtual_mode=True,
|
|
86
77
|
)
|
|
87
78
|
|
|
88
|
-
# Skills backend:
|
|
89
|
-
_skills_backend =
|
|
90
|
-
|
|
91
|
-
secondary_dir=SKILLS_DIR, # package built-in, fallback
|
|
92
|
-
)
|
|
93
|
-
|
|
94
|
-
# Memory backend: persistent filesystem for long-term memory (shared across sessions)
|
|
95
|
-
_memory_backend = FilesystemBackend(
|
|
96
|
-
root_dir=MEMORY_DIR,
|
|
79
|
+
# Skills backend: read-only access to ./skills/
|
|
80
|
+
_skills_backend = ReadOnlyFilesystemBackend(
|
|
81
|
+
root_dir=SKILLS_DIR,
|
|
97
82
|
virtual_mode=True,
|
|
98
83
|
)
|
|
99
84
|
|
|
100
|
-
# Composite backend: workspace as default, skills
|
|
85
|
+
# Composite backend: workspace as default, skills mounted at /skills/
|
|
101
86
|
backend = CompositeBackend(
|
|
102
87
|
default=_workspace_backend,
|
|
103
|
-
routes={
|
|
104
|
-
"/skills/": _skills_backend,
|
|
105
|
-
"/memory/": _memory_backend,
|
|
106
|
-
},
|
|
88
|
+
routes={"/skills/": _skills_backend},
|
|
107
89
|
)
|
|
108
90
|
|
|
109
91
|
tool_registry = {
|
|
@@ -125,13 +107,10 @@ subagents = load_subagents(
|
|
|
125
107
|
_AGENT_KWARGS = dict(
|
|
126
108
|
name="EvoScientist",
|
|
127
109
|
model=chat_model,
|
|
128
|
-
tools=[think_tool
|
|
110
|
+
tools=[think_tool],
|
|
129
111
|
backend=backend,
|
|
130
112
|
subagents=subagents,
|
|
131
|
-
middleware=[
|
|
132
|
-
create_memory_middleware(MEMORY_DIR, extraction_model=chat_model),
|
|
133
|
-
create_skills_middleware(SKILLS_DIR, user_skills_dir=USER_SKILLS_DIR),
|
|
134
|
-
],
|
|
113
|
+
middleware=[create_skills_middleware(SKILLS_DIR, WORKSPACE_DIR)],
|
|
135
114
|
system_prompt=SYSTEM_PROMPT,
|
|
136
115
|
)
|
|
137
116
|
|
|
@@ -145,7 +124,7 @@ def create_cli_agent(workspace_dir: str | None = None):
|
|
|
145
124
|
Args:
|
|
146
125
|
workspace_dir: Optional per-session workspace directory. If provided,
|
|
147
126
|
creates a fresh backend rooted at this path. If None, uses the
|
|
148
|
-
module-level default backend (./workspace).
|
|
127
|
+
module-level default backend (./workspace/).
|
|
149
128
|
"""
|
|
150
129
|
from langgraph.checkpoint.memory import InMemorySaver # type: ignore[import-untyped]
|
|
151
130
|
|
|
@@ -155,26 +134,15 @@ def create_cli_agent(workspace_dir: str | None = None):
|
|
|
155
134
|
virtual_mode=True,
|
|
156
135
|
timeout=300,
|
|
157
136
|
)
|
|
158
|
-
sk_backend =
|
|
159
|
-
|
|
160
|
-
secondary_dir=SKILLS_DIR,
|
|
161
|
-
)
|
|
162
|
-
# Memory always uses SHARED directory (not per-session) for cross-session persistence
|
|
163
|
-
mem_backend = FilesystemBackend(
|
|
164
|
-
root_dir=MEMORY_DIR,
|
|
137
|
+
sk_backend = ReadOnlyFilesystemBackend(
|
|
138
|
+
root_dir=SKILLS_DIR,
|
|
165
139
|
virtual_mode=True,
|
|
166
140
|
)
|
|
167
141
|
be = CompositeBackend(
|
|
168
142
|
default=ws_backend,
|
|
169
|
-
routes={
|
|
170
|
-
"/skills/": sk_backend,
|
|
171
|
-
"/memory/": mem_backend,
|
|
172
|
-
},
|
|
143
|
+
routes={"/skills/": sk_backend},
|
|
173
144
|
)
|
|
174
|
-
mw = [
|
|
175
|
-
create_memory_middleware(MEMORY_DIR, extraction_model=chat_model),
|
|
176
|
-
create_skills_middleware(SKILLS_DIR, user_skills_dir=USER_SKILLS_DIR),
|
|
177
|
-
]
|
|
145
|
+
mw = [create_skills_middleware(SKILLS_DIR, workspace_dir)]
|
|
178
146
|
kwargs = dict(
|
|
179
147
|
_AGENT_KWARGS,
|
|
180
148
|
backend=be,
|
EvoScientist/backends.py
CHANGED
|
@@ -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
|
"""
|