EvoScientist 0.0.1.dev1__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.
Files changed (107) hide show
  1. EvoScientist/EvoScientist.py +157 -0
  2. EvoScientist/__init__.py +24 -0
  3. EvoScientist/__main__.py +4 -0
  4. EvoScientist/backends.py +392 -0
  5. EvoScientist/cli.py +1553 -0
  6. EvoScientist/middleware.py +35 -0
  7. EvoScientist/prompts.py +277 -0
  8. EvoScientist/skills/accelerate/SKILL.md +332 -0
  9. EvoScientist/skills/accelerate/references/custom-plugins.md +453 -0
  10. EvoScientist/skills/accelerate/references/megatron-integration.md +489 -0
  11. EvoScientist/skills/accelerate/references/performance.md +525 -0
  12. EvoScientist/skills/bitsandbytes/SKILL.md +411 -0
  13. EvoScientist/skills/bitsandbytes/references/memory-optimization.md +521 -0
  14. EvoScientist/skills/bitsandbytes/references/qlora-training.md +521 -0
  15. EvoScientist/skills/bitsandbytes/references/quantization-formats.md +447 -0
  16. EvoScientist/skills/find-skills/SKILL.md +133 -0
  17. EvoScientist/skills/find-skills/scripts/install_skill.py +211 -0
  18. EvoScientist/skills/flash-attention/SKILL.md +367 -0
  19. EvoScientist/skills/flash-attention/references/benchmarks.md +215 -0
  20. EvoScientist/skills/flash-attention/references/transformers-integration.md +293 -0
  21. EvoScientist/skills/llama-cpp/SKILL.md +258 -0
  22. EvoScientist/skills/llama-cpp/references/optimization.md +89 -0
  23. EvoScientist/skills/llama-cpp/references/quantization.md +213 -0
  24. EvoScientist/skills/llama-cpp/references/server.md +125 -0
  25. EvoScientist/skills/lm-evaluation-harness/SKILL.md +490 -0
  26. EvoScientist/skills/lm-evaluation-harness/references/api-evaluation.md +490 -0
  27. EvoScientist/skills/lm-evaluation-harness/references/benchmark-guide.md +488 -0
  28. EvoScientist/skills/lm-evaluation-harness/references/custom-tasks.md +602 -0
  29. EvoScientist/skills/lm-evaluation-harness/references/distributed-eval.md +519 -0
  30. EvoScientist/skills/ml-paper-writing/SKILL.md +937 -0
  31. EvoScientist/skills/ml-paper-writing/references/checklists.md +361 -0
  32. EvoScientist/skills/ml-paper-writing/references/citation-workflow.md +562 -0
  33. EvoScientist/skills/ml-paper-writing/references/reviewer-guidelines.md +367 -0
  34. EvoScientist/skills/ml-paper-writing/references/sources.md +159 -0
  35. EvoScientist/skills/ml-paper-writing/references/writing-guide.md +476 -0
  36. EvoScientist/skills/ml-paper-writing/templates/README.md +251 -0
  37. EvoScientist/skills/ml-paper-writing/templates/aaai2026/README.md +534 -0
  38. EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026-unified-supp.tex +144 -0
  39. EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026-unified-template.tex +952 -0
  40. EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.bib +111 -0
  41. EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.bst +1493 -0
  42. EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.sty +315 -0
  43. EvoScientist/skills/ml-paper-writing/templates/acl/README.md +50 -0
  44. EvoScientist/skills/ml-paper-writing/templates/acl/acl.sty +312 -0
  45. EvoScientist/skills/ml-paper-writing/templates/acl/acl_latex.tex +377 -0
  46. EvoScientist/skills/ml-paper-writing/templates/acl/acl_lualatex.tex +101 -0
  47. EvoScientist/skills/ml-paper-writing/templates/acl/acl_natbib.bst +1940 -0
  48. EvoScientist/skills/ml-paper-writing/templates/acl/anthology.bib.txt +26 -0
  49. EvoScientist/skills/ml-paper-writing/templates/acl/custom.bib +70 -0
  50. EvoScientist/skills/ml-paper-writing/templates/acl/formatting.md +326 -0
  51. EvoScientist/skills/ml-paper-writing/templates/colm2025/README.md +3 -0
  52. EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.bib +11 -0
  53. EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.bst +1440 -0
  54. EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.pdf +0 -0
  55. EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.sty +218 -0
  56. EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.tex +305 -0
  57. EvoScientist/skills/ml-paper-writing/templates/colm2025/fancyhdr.sty +485 -0
  58. EvoScientist/skills/ml-paper-writing/templates/colm2025/math_commands.tex +508 -0
  59. EvoScientist/skills/ml-paper-writing/templates/colm2025/natbib.sty +1246 -0
  60. EvoScientist/skills/ml-paper-writing/templates/iclr2026/fancyhdr.sty +485 -0
  61. EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.bib +24 -0
  62. EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.bst +1440 -0
  63. EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.pdf +0 -0
  64. EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.sty +246 -0
  65. EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.tex +414 -0
  66. EvoScientist/skills/ml-paper-writing/templates/iclr2026/math_commands.tex +508 -0
  67. EvoScientist/skills/ml-paper-writing/templates/iclr2026/natbib.sty +1246 -0
  68. EvoScientist/skills/ml-paper-writing/templates/icml2026/algorithm.sty +79 -0
  69. EvoScientist/skills/ml-paper-writing/templates/icml2026/algorithmic.sty +201 -0
  70. EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.bib +75 -0
  71. EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.pdf +0 -0
  72. EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.tex +662 -0
  73. EvoScientist/skills/ml-paper-writing/templates/icml2026/fancyhdr.sty +864 -0
  74. EvoScientist/skills/ml-paper-writing/templates/icml2026/icml2026.bst +1443 -0
  75. EvoScientist/skills/ml-paper-writing/templates/icml2026/icml2026.sty +767 -0
  76. EvoScientist/skills/ml-paper-writing/templates/icml2026/icml_numpapers.pdf +0 -0
  77. EvoScientist/skills/ml-paper-writing/templates/neurips2025/Makefile +36 -0
  78. EvoScientist/skills/ml-paper-writing/templates/neurips2025/extra_pkgs.tex +53 -0
  79. EvoScientist/skills/ml-paper-writing/templates/neurips2025/main.tex +38 -0
  80. EvoScientist/skills/ml-paper-writing/templates/neurips2025/neurips.sty +382 -0
  81. EvoScientist/skills/peft/SKILL.md +431 -0
  82. EvoScientist/skills/peft/references/advanced-usage.md +514 -0
  83. EvoScientist/skills/peft/references/troubleshooting.md +480 -0
  84. EvoScientist/skills/ray-data/SKILL.md +326 -0
  85. EvoScientist/skills/ray-data/references/integration.md +82 -0
  86. EvoScientist/skills/ray-data/references/transformations.md +83 -0
  87. EvoScientist/skills/skill-creator/LICENSE.txt +202 -0
  88. EvoScientist/skills/skill-creator/SKILL.md +356 -0
  89. EvoScientist/skills/skill-creator/references/output-patterns.md +82 -0
  90. EvoScientist/skills/skill-creator/references/workflows.md +28 -0
  91. EvoScientist/skills/skill-creator/scripts/init_skill.py +303 -0
  92. EvoScientist/skills/skill-creator/scripts/package_skill.py +110 -0
  93. EvoScientist/skills/skill-creator/scripts/quick_validate.py +95 -0
  94. EvoScientist/stream/__init__.py +53 -0
  95. EvoScientist/stream/emitter.py +94 -0
  96. EvoScientist/stream/formatter.py +168 -0
  97. EvoScientist/stream/tracker.py +115 -0
  98. EvoScientist/stream/utils.py +255 -0
  99. EvoScientist/subagent.yaml +147 -0
  100. EvoScientist/tools.py +135 -0
  101. EvoScientist/utils.py +207 -0
  102. evoscientist-0.0.1.dev1.dist-info/METADATA +222 -0
  103. evoscientist-0.0.1.dev1.dist-info/RECORD +107 -0
  104. evoscientist-0.0.1.dev1.dist-info/WHEEL +5 -0
  105. evoscientist-0.0.1.dev1.dist-info/entry_points.txt +2 -0
  106. evoscientist-0.0.1.dev1.dist-info/licenses/LICENSE +21 -0
  107. evoscientist-0.0.1.dev1.dist-info/top_level.txt +1 -0
EvoScientist/tools.py ADDED
@@ -0,0 +1,135 @@
1
+ """Tools.
2
+
3
+ This module provides search and reflection tools for the research agent,
4
+ using Tavily for URL discovery and fetching full webpage content.
5
+ """
6
+
7
+ import asyncio
8
+ from typing import Literal
9
+
10
+ import httpx
11
+ from dotenv import load_dotenv
12
+ from langchain_core.tools import InjectedToolArg, tool
13
+ from markdownify import markdownify
14
+ from tavily import TavilyClient
15
+ from typing_extensions import Annotated
16
+
17
+ load_dotenv(override=True)
18
+
19
+ tavily_client = TavilyClient()
20
+
21
+
22
+ async def fetch_webpage_content(url: str, timeout: float = 10.0) -> str:
23
+ """Fetch and convert webpage content to markdown.
24
+
25
+ Args:
26
+ url: URL to fetch
27
+ timeout: Request timeout in seconds
28
+
29
+ Returns:
30
+ Webpage content as markdown
31
+ """
32
+ headers = {
33
+ "User-Agent": (
34
+ "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
35
+ "AppleWebKit/537.36 (KHTML, like Gecko) "
36
+ "Chrome/91.0.4472.124 Safari/537.36"
37
+ )
38
+ }
39
+
40
+ try:
41
+ async with httpx.AsyncClient() as client:
42
+ response = await client.get(url, headers=headers, timeout=timeout)
43
+ response.raise_for_status()
44
+ return markdownify(response.text)
45
+ except Exception as e:
46
+ return f"Error fetching content from {url}: {str(e)}"
47
+
48
+
49
+ @tool(parse_docstring=True)
50
+ async def tavily_search(
51
+ query: str,
52
+ max_results: Annotated[int, InjectedToolArg] = 3,
53
+ topic: Annotated[
54
+ Literal["general", "news", "finance"], InjectedToolArg
55
+ ] = "general",
56
+ ) -> str:
57
+ """Search the web for information on a given query.
58
+
59
+ Uses Tavily to discover relevant URLs, then fetches and returns
60
+ full webpage content as markdown for comprehensive research.
61
+
62
+ Args:
63
+ query: Search query to execute
64
+
65
+ Returns:
66
+ Formatted search results with full webpage content in markdown
67
+ """
68
+
69
+ def _sync_search() -> dict:
70
+ return tavily_client.search(
71
+ query,
72
+ max_results=max_results,
73
+ topic=topic,
74
+ )
75
+
76
+ try:
77
+ # Run Tavily search asynchronously
78
+ search_results = await asyncio.to_thread(_sync_search)
79
+
80
+ # Fetch full content for each URL concurrently
81
+ results = search_results.get("results", [])
82
+ if not results:
83
+ return f"No results found for '{query}'"
84
+
85
+ # Fetch all webpages concurrently
86
+ fetch_tasks = [fetch_webpage_content(r["url"]) for r in results]
87
+ contents = await asyncio.gather(*fetch_tasks)
88
+
89
+ # Format results
90
+ result_texts = []
91
+ for result, content in zip(results, contents):
92
+ result_text = f"""## {result["title"]}
93
+ **URL:** {result["url"]}
94
+
95
+ {content}
96
+
97
+ ---
98
+ """
99
+ result_texts.append(result_text)
100
+
101
+ return f"""Found {len(result_texts)} result(s) for '{query}':
102
+
103
+ {"".join(result_texts)}"""
104
+
105
+ except Exception as e:
106
+ return f"Search failed: {str(e)}"
107
+
108
+
109
+ @tool(parse_docstring=True)
110
+ def think_tool(reflection: str) -> str:
111
+ """Tool for strategic reflection on research progress and decision-making.
112
+
113
+ Use this tool after each search to analyze results and plan next steps systematically.
114
+ This creates a deliberate pause in the research workflow for quality decision-making.
115
+
116
+ When to use:
117
+ - After receiving search results: What key information did I find?
118
+ - Before deciding next steps: Do I have enough to answer comprehensively?
119
+ - When assessing research gaps: What specific information am I still missing?
120
+ - Before concluding research: Can I provide a complete answer now?
121
+
122
+ Reflection should address:
123
+ 1. Analysis of current findings - What concrete information have I gathered?
124
+ 2. Gap assessment - What crucial information is still missing?
125
+ 3. Quality evaluation - Do I have sufficient evidence/examples for a good answer?
126
+ 4. Strategic decision - Should I continue searching or provide my answer?
127
+ 5. Skill leverage - Is there a relevant local skill to load that can accelerate this work?
128
+
129
+ Args:
130
+ reflection: Your detailed reflection on research progress, findings, gaps, and next steps
131
+
132
+ Returns:
133
+ Confirmation that reflection was recorded for decision-making
134
+ """
135
+ return f"Reflection recorded: {reflection}"
EvoScientist/utils.py ADDED
@@ -0,0 +1,207 @@
1
+ """Utility functions for EvoScientist.
2
+
3
+ This module primarily contains helpers for displaying messages and prompts in
4
+ notebooks, and lightweight configuration loaders used by the agent runtime.
5
+ """
6
+
7
+ import json
8
+ from pathlib import Path
9
+ from typing import Any
10
+
11
+ import yaml
12
+ from rich.console import Console
13
+ from rich.panel import Panel
14
+ from rich.text import Text
15
+
16
+ console = Console()
17
+
18
+
19
+ def format_message_content(message):
20
+ """Convert message content to displayable string."""
21
+ parts = []
22
+ tool_calls_processed = False
23
+
24
+ # Handle main content
25
+ if isinstance(message.content, str):
26
+ parts.append(message.content)
27
+ elif isinstance(message.content, list):
28
+ # Handle complex content like tool calls (Anthropic format)
29
+ for item in message.content:
30
+ if item.get("type") == "text":
31
+ parts.append(item["text"])
32
+ elif item.get("type") == "tool_use":
33
+ parts.append(f"\n🔧 Tool Call: {item['name']}")
34
+ parts.append(f" Args: {json.dumps(item['input'], indent=2)}")
35
+ parts.append(f" ID: {item.get('id', 'N/A')}")
36
+ tool_calls_processed = True
37
+ else:
38
+ parts.append(str(message.content))
39
+
40
+ # Handle tool calls attached to the message (OpenAI format) - only if not already processed
41
+ if (
42
+ not tool_calls_processed
43
+ and hasattr(message, "tool_calls")
44
+ and message.tool_calls
45
+ ):
46
+ for tool_call in message.tool_calls:
47
+ parts.append(f"\n🔧 Tool Call: {tool_call['name']}")
48
+ parts.append(f" Args: {json.dumps(tool_call['args'], indent=2)}")
49
+ parts.append(f" ID: {tool_call['id']}")
50
+
51
+ return "\n".join(parts)
52
+
53
+
54
+ def format_messages(messages):
55
+ """Format and display a list of messages with Rich formatting."""
56
+ for m in messages:
57
+ msg_type = m.__class__.__name__.replace("Message", "")
58
+ content = format_message_content(m)
59
+
60
+ if msg_type == "Human":
61
+ console.print(Panel(content, title="🧑 Human", border_style="blue"))
62
+ elif msg_type == "Ai":
63
+ console.print(Panel(content, title="🤖 Assistant", border_style="green"))
64
+ elif msg_type == "Tool":
65
+ console.print(Panel(content, title="🔧 Tool Output", border_style="yellow"))
66
+ else:
67
+ console.print(Panel(content, title=f"📝 {msg_type}", border_style="white"))
68
+
69
+
70
+ def format_message(messages):
71
+ """Alias for format_messages for backward compatibility."""
72
+ return format_messages(messages)
73
+
74
+
75
+ def show_prompt(prompt_text: str, title: str = "Prompt", border_style: str = "blue"):
76
+ """Display a prompt with rich formatting and XML tag highlighting.
77
+
78
+ Args:
79
+ prompt_text: The prompt string to display
80
+ title: Title for the panel (default: "Prompt")
81
+ border_style: Border color style (default: "blue")
82
+ """
83
+ # Create a formatted display of the prompt
84
+ formatted_text = Text(prompt_text)
85
+ formatted_text.highlight_regex(r"<[^>]+>", style="bold blue") # Highlight XML tags
86
+ formatted_text.highlight_regex(
87
+ r"##[^#\n]+", style="bold magenta"
88
+ ) # Highlight headers
89
+ formatted_text.highlight_regex(
90
+ r"###[^#\n]+", style="bold cyan"
91
+ ) # Highlight sub-headers
92
+
93
+ # Display in a panel for better presentation
94
+ console.print(
95
+ Panel(
96
+ formatted_text,
97
+ title=f"[bold green]{title}[/bold green]",
98
+ border_style=border_style,
99
+ padding=(1, 2),
100
+ )
101
+ )
102
+
103
+
104
+ def load_subagents(
105
+ config_path: Path,
106
+ *,
107
+ tool_registry: dict[str, Any],
108
+ prompt_refs: dict[str, str] | None = None,
109
+ ) -> list[dict[str, Any]]:
110
+ """Load subagent definitions from YAML and wire up tools.
111
+
112
+ NOTE: This is a custom utility. deepagents does not natively load subagents
113
+ from files - they're normally defined inline in the create_deep_agent() call.
114
+ We externalize to YAML here to keep configuration separate from code.
115
+
116
+ Supported YAML schemas:
117
+
118
+ 1) Mapping style (recommended):
119
+ planner-agent:
120
+ description: "..."
121
+ tools: [think_tool]
122
+ system_prompt: |
123
+ ...
124
+ research-agent:
125
+ description: "..."
126
+ tools: [tavily_search, think_tool]
127
+ system_prompt_ref: RESEARCHER_INSTRUCTIONS
128
+
129
+ 2) List style (legacy):
130
+ subagents:
131
+ - name: planner-agent
132
+ description: "..."
133
+ tools: [think_tool]
134
+ system_prompt: |
135
+ ...
136
+ """
137
+ prompt_refs = prompt_refs or {}
138
+
139
+ with config_path.open(encoding="utf-8") as f:
140
+ config = yaml.safe_load(f) or {}
141
+
142
+ if not isinstance(config, dict) or not config:
143
+ raise ValueError("subagent.yaml must be a mapping or contain 'subagents:'")
144
+
145
+ subagents: list[dict[str, Any]] = []
146
+
147
+ def _build_one(name: str, spec: dict[str, Any]) -> dict[str, Any]:
148
+ subagent: dict[str, Any] = {
149
+ "name": name,
150
+ "description": spec.get("description", ""),
151
+ }
152
+
153
+ if "system_prompt_ref" in spec:
154
+ ref = spec["system_prompt_ref"]
155
+ if ref not in prompt_refs:
156
+ raise ValueError(f"Unknown system_prompt_ref '{ref}' for subagent '{name}'")
157
+ subagent["system_prompt"] = prompt_refs[ref]
158
+ else:
159
+ subagent["system_prompt"] = spec.get("system_prompt", "")
160
+
161
+ if "model" in spec:
162
+ subagent["model"] = spec["model"]
163
+
164
+ if "tools" in spec:
165
+ subagent["tools"] = [tool_registry[t] for t in spec["tools"]]
166
+
167
+ return subagent
168
+
169
+ # Legacy list style
170
+ if "subagents" in config:
171
+ items = config.get("subagents")
172
+ if not isinstance(items, list) or not items:
173
+ raise ValueError("subagent.yaml must contain a non-empty 'subagents:' list")
174
+ for item in items:
175
+ if not isinstance(item, dict):
176
+ continue
177
+ name = item.get("name")
178
+ if not name:
179
+ raise ValueError("Each subagent entry must have a 'name'")
180
+ subagents.append(_build_one(name, item))
181
+ return subagents
182
+
183
+ # Mapping style: {<name>: <spec>}
184
+ for name, spec in config.items():
185
+ if not isinstance(spec, dict):
186
+ continue
187
+ subagents.append(_build_one(name, spec))
188
+
189
+ return subagents
190
+
191
+
192
+ def load_subagent(
193
+ config_path: Path,
194
+ name: str,
195
+ *,
196
+ tool_registry: dict[str, Any],
197
+ prompt_refs: dict[str, str] | None = None,
198
+ ) -> dict[str, Any]:
199
+ """Load a single sub-agent by name from YAML."""
200
+ for agent in load_subagents(
201
+ config_path,
202
+ tool_registry=tool_registry,
203
+ prompt_refs=prompt_refs,
204
+ ):
205
+ if agent.get("name") == name:
206
+ return agent
207
+ raise KeyError(f"Sub-agent not found: {name}")
@@ -0,0 +1,222 @@
1
+ Metadata-Version: 2.4
2
+ Name: EvoScientist
3
+ Version: 0.0.1.dev1
4
+ Summary: EvoScientist: Towards Self-Evolving AI Scientists for End-to-End Scientific Discovery
5
+ Author: Xi Zhang
6
+ Maintainer: Xi Zhang
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://github.com/EvoScientist/EvoScientist
9
+ Project-URL: Bug Tracker, https://github.com/EvoScientist/EvoScientist/issues
10
+ Project-URL: Documentation, https://github.com/EvoScientist/EvoScientist#readme
11
+ Keywords: ai-scientific,scientific-discovery,self-evolving,ai-scientists,end-to-end
12
+ Classifier: Programming Language :: Python :: 3
13
+ Requires-Python: >=3.11
14
+ Description-Content-Type: text/markdown
15
+ License-File: LICENSE
16
+ Requires-Dist: deepagents>=0.3.6
17
+ Requires-Dist: langchain>=1.2
18
+ Requires-Dist: langchain-anthropic>=1.3
19
+ Requires-Dist: anthropic>=0.76
20
+ Requires-Dist: tavily-python>=0.7
21
+ Requires-Dist: pyyaml>=6.0
22
+ Requires-Dist: rich>=14.0
23
+ Requires-Dist: prompt-toolkit>=3.0
24
+ Requires-Dist: python-dotenv>=1.0
25
+ Requires-Dist: langgraph-cli[inmem]>=0.4
26
+ Requires-Dist: httpx>=0.27
27
+ Requires-Dist: markdownify>=0.14
28
+ Provides-Extra: dev
29
+ Requires-Dist: pytest>=8.0; extra == "dev"
30
+ Requires-Dist: pytest-cov>=5.0; extra == "dev"
31
+ Dynamic: license-file
32
+
33
+ <!-- Add logo here -->
34
+ <h1 align="center">
35
+ <!-- <img src="./assets/CCD_icon_logo.png" alt="CCD Logo" height="27" style="position: relative; top: -2px;"/> -->
36
+ <strong>EvoScientist</strong>
37
+ </h1>
38
+
39
+
40
+ <div align="center">
41
+
42
+ <a href="https://git.io/typing-svg"><img src="https://readme-typing-svg.demolab.com?font=Fira+Code&pause=1000&width=435&lines=Towards+Self-Evolving+AI+Scientists+for+End-to-End+Scientific+Discovery" alt="Typing SVG" /></a>
43
+
44
+ [![Project Page](https://img.shields.io/badge/Project-Page-4285F4?style=for-the-badge&logo=googlelens&logoColor=4285F4)]()
45
+ [![arXiv](https://img.shields.io/badge/arXiv-xxxx.xxxx-b31b1b?style=for-the-badge&logo=arxiv&logoColor=b31b1b)]()
46
+ [![Gradio Demo](https://img.shields.io/badge/Gradio-Online_Demo-FFCC00?style=for-the-badge&logo=gradio&logoColor=yellow&labelColor=grey)]()
47
+ [![Evaluation Split](https://img.shields.io/badge/HF-Test_Dataset-AECBFA?style=for-the-badge&logo=huggingface&logoColor=FFCC00&labelColor=grey)]()
48
+ [![License](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)]()
49
+
50
+ </div>
51
+
52
+ ## 🔥 News
53
+ > TODO
54
+ - **[27 Sep 2025]** ⛳ Our preprint is now live on [arXiv] — check it out for details.
55
+
56
+
57
+ ## Overview
58
+ > TODO
59
+
60
+
61
+ ## 📖 Contents
62
+ - [⛏️ Installation](#️-installation)
63
+ - [⚡ Quick Start](#-quick-start)
64
+ - [CLI Inference](#cli-inference)
65
+ - [Script Inference](#script-inference)
66
+ - [Web Interface](#web-interface)
67
+ - [📊 Evaluation](#-evaluation)
68
+ - [📝 Citation](#-citation)
69
+ - [📚 Acknowledgments](#-acknowledgments)
70
+ - [📦 Codebase Contributors](#-codebase-contributors)
71
+ - [📜 License](#-license)
72
+
73
+ ## ⛏️ Installation
74
+
75
+ > [!TIP]
76
+ > Use [`uv`](https://pypi.org/project/uv) for installation — it's faster and more reliable than `pip`.
77
+ ### For Development
78
+
79
+ ```Shell
80
+ # Create and activate a conda environment
81
+ conda create -n EvoSci python=3.11 -y
82
+ conda activate EvoSci
83
+
84
+ # Install in development (editable) mode
85
+ pip install EvoScientist
86
+ # or
87
+ pip install -e .
88
+ ```
89
+
90
+ ### Option 1:
91
+ Install the latest version directly from GitHub for quick setup:
92
+ > TODO
93
+ ### Option 2:
94
+ If you plan to modify the code or contribute to the project, you can clone the repository and install it in editable mode:
95
+
96
+ > TODO
97
+
98
+ <details>
99
+ <summary> 🔄 Upgrade to the latest code base </summary>
100
+
101
+ ```Shell
102
+ git pull
103
+ uv pip install -e .
104
+ ```
105
+
106
+ </details>
107
+
108
+ ## ⚡ Quick Start
109
+
110
+ ### CLI Inference
111
+ You can perform inference directly from the command line using our CLI tool:
112
+
113
+ ![demo](./assets/EvoScientist_cli.png)
114
+
115
+ ```Shell
116
+ python -m EvoScientist
117
+ ```
118
+ **Optional arguments:**
119
+
120
+ > TODO
121
+
122
+ ### Script Inference
123
+ ```python
124
+ from EvoScientist import EvoScientist_agent
125
+ from langchain_core.messages import HumanMessage
126
+ from EvoScientist.utils import format_messages
127
+
128
+ thread = {"configurable": {"thread_id": "1"}}
129
+ question = "Hi?"
130
+ last_len = 0
131
+
132
+ for state in EvoScientist_agent.stream(
133
+ {"messages": [HumanMessage(content=question)]},
134
+ config=thread,
135
+ stream_mode="values",
136
+ ):
137
+ msgs = state["messages"]
138
+ if len(msgs) > last_len:
139
+ format_messages(msgs[last_len:])
140
+ last_len = len(msgs)
141
+ ```
142
+
143
+ <details>
144
+ <summary> Output </summary>
145
+
146
+ ```json
147
+
148
+ ╭─────────────────────────────────────────────────── 🧑 Human ────────────────────────────────────────────────────╮
149
+ │ Hi? │
150
+ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
151
+ ╭───────────────────────────────────────────────────── 📝 AI ─────────────────────────────────────────────────────╮
152
+ │ Hi! I'm here to help you with experimental research tasks. I can assist with: │
153
+ │ │
154
+ │ - **Planning experiments** - designing stages, success criteria, and workflows │
155
+ │ - **Running experiments** - implementing baselines, training models, analyzing results │
156
+ │ - **Research** - finding papers, methods, datasets, and baselines │
157
+ │ - **Analysis** - computing metrics, creating visualizations, interpreting results │
158
+ │ - **Writing** - drafting experimental reports and documentation │
159
+ │ │
160
+ │ What would you like to work on today? │
161
+ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
162
+ ```
163
+
164
+ </details>
165
+
166
+ ### Web Interface
167
+
168
+ > TODO
169
+
170
+
171
+ ## 📊 Evaluation
172
+
173
+ > TODO
174
+
175
+ ## 📝 Citation
176
+
177
+ If you find our paper and code useful in your research and applications, please cite using this BibTeX:
178
+
179
+ > TODO
180
+
181
+ ## 📚 Acknowledgments
182
+
183
+ This project builds upon the following outstanding open-source works:
184
+
185
+ - [**Deep Agents**](https://github.com/langchain-ai/deepagents) — A framework for building AI agents that can interact with various tools and environments.
186
+ - [**Deep Agents UI**](https://github.com/langchain-ai/deep-agents-ui) — A user interface for visualising and managing Deep Agents.
187
+
188
+ We thank the authors for their valuable contributions to the open-source community.
189
+
190
+
191
+ ## 📦 Codebase Contributors
192
+
193
+ <table>
194
+ <tbody>
195
+ <tr>
196
+ <td align="center">
197
+ <a href="https://youganglyu.github.io/">
198
+ <img src="https://youganglyu.github.io/images/profile.png"
199
+ width="100" height="100"
200
+ style="object-fit: cover; border-radius: 20%;" alt="Yougang Lyu"/>
201
+ <br />
202
+ <sub><b>Yougang Lyu</b></sub>
203
+ </a>
204
+ </td>
205
+ <td align="center">
206
+ <a href="https://x-izhang.github.io/">
207
+ <img src="https://x-izhang.github.io/author/xi-zhang/avatar_hu13660783057866068725.jpg"
208
+ width="100" height="100"
209
+ style="object-fit: cover; border-radius: 20%;" alt="Xi Zhang"/>
210
+ <br />
211
+ <sub><b>Xi Zhang</b></sub>
212
+ </a>
213
+ </td>
214
+ </tr>
215
+ </tbody>
216
+ </table>
217
+
218
+ For any enquiries or collaboration opportunities, please contact: [**youganglyu@gmail.com**](mailto:youganglyu@gmail.com)
219
+
220
+ ## 📜 License
221
+
222
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
@@ -0,0 +1,107 @@
1
+ EvoScientist/EvoScientist.py,sha256=k7iMQUDR6AB37k8z6n84hRQunLbWAwr43e8VJhG-hpI,4806
2
+ EvoScientist/__init__.py,sha256=yj4YJUPldtq4xx8geadIoZ1n-BmgsM2Z_S2W8ld9S1k,702
3
+ EvoScientist/__main__.py,sha256=P5USQ_BiiY0TBhtajGMuX5AMXlQ5joz1kvljHeacqmA,91
4
+ EvoScientist/backends.py,sha256=3fIYRdOecL-KZx2hSNolsLO-2_rMzey-NpVMDMN701U,13355
5
+ EvoScientist/cli.py,sha256=-7iL6NUjW5CmLKx1BLd0d-Y2DtcXPcoMOCdOgA6X-_E,59946
6
+ EvoScientist/middleware.py,sha256=xHpqmru32osSBeQ43ZCn-8obgnheWekaTgE3TGa_1nQ,1044
7
+ EvoScientist/prompts.py,sha256=ni-qHoEoM703xtfD4J3IlvwAWPcW8gcNiCBVjRJoy3g,10692
8
+ EvoScientist/subagent.yaml,sha256=yoFlMJWitLlYuOe4_44EPG6vjpNP_txHBlqr-kNX2GM,6130
9
+ EvoScientist/tools.py,sha256=oYaJN8tl_NCw6PLFFNRZbjPB9-VriVcpVb6Zp-d_xVQ,4223
10
+ EvoScientist/utils.py,sha256=GuWMRMkPHYgUOtoPZA0ErIt4FUBE4NMkz_OZluxYyRo,6801
11
+ EvoScientist/skills/accelerate/SKILL.md,sha256=Ju_xLlGW3bZBWQO_8FWThkP155jE2atq9Ww0Zn8XwEs,8328
12
+ EvoScientist/skills/accelerate/references/custom-plugins.md,sha256=Gy8c9dcKFV93ksrRKkZr5DFbeH_iHgGzbTK_N0aTwCA,11781
13
+ EvoScientist/skills/accelerate/references/megatron-integration.md,sha256=ad7cw8eMGX3vqGUxQSVBuWpiQJDAr9eHqWfPhlEXJz0,11252
14
+ EvoScientist/skills/accelerate/references/performance.md,sha256=VZ6gUcI3c9OnInYQAYQpoOEuSXlZSabprfqRswUYKjc,12569
15
+ EvoScientist/skills/bitsandbytes/SKILL.md,sha256=3VM2RakwcfyTM6Yul6MwgDnUqHPV-3FbTPa8-LpGo74,10108
16
+ EvoScientist/skills/bitsandbytes/references/memory-optimization.md,sha256=a8y1Mt5qkEeFylaRRPuGSKGnBXIL2JT6xFDdW-qBBWc,12642
17
+ EvoScientist/skills/bitsandbytes/references/qlora-training.md,sha256=E2Nrxy-_gLz6nEgA30MQ_RQ4mdRX3w-aJO7f16RJriQ,12015
18
+ EvoScientist/skills/bitsandbytes/references/quantization-formats.md,sha256=U1nvDKjlg305DaYvlyJW2SS5NMNVI2XHD__m1YEErH4,10258
19
+ EvoScientist/skills/find-skills/SKILL.md,sha256=fvjNEIEVsOauW_LuEKshYkbvd19pRdVV-rXcQqfFeKo,4169
20
+ EvoScientist/skills/find-skills/scripts/install_skill.py,sha256=sbLrZeY887LeiKcvA7f3AuxJI98PwGeAVyttVXxs_eA,6332
21
+ EvoScientist/skills/flash-attention/SKILL.md,sha256=3GL1xP6jFkjZhs9ZcE-61FbkB5d4p7NvVXm9MvxTG58,10190
22
+ EvoScientist/skills/flash-attention/references/benchmarks.md,sha256=Jk_zBgr4JMMvem48DgIIw4ZGxyiyKS-zXt6SOjjWC2s,7129
23
+ EvoScientist/skills/flash-attention/references/transformers-integration.md,sha256=ievo4gdW7iGBA6EUTUaC6WCg-qB4cMJYhTC8jSbEQaE,7427
24
+ EvoScientist/skills/llama-cpp/SKILL.md,sha256=10yqRUg_Wzxr1iZ-ObREYnmJ_5D9uEtsLnw9pN3xQ-8,5912
25
+ EvoScientist/skills/llama-cpp/references/optimization.md,sha256=TomBHAgn9eud65_GCc1EHrGX-w-oXnndjB8nKxSmaf0,1659
26
+ EvoScientist/skills/llama-cpp/references/quantization.md,sha256=x2hqhok9Tg4FLMczti6hvA5dro8bF0Q2zCk6RqSGiT0,4956
27
+ EvoScientist/skills/llama-cpp/references/server.md,sha256=GBqErhd_MFIFzDDQUwX8QjeqJV8__ykpk2LLHgy222Q,2259
28
+ EvoScientist/skills/lm-evaluation-harness/SKILL.md,sha256=PO6Ky_6Pkd0I8MAK0WeV4YTtWdWCD0rRSbCFbEhB63Q,11893
29
+ EvoScientist/skills/lm-evaluation-harness/references/api-evaluation.md,sha256=QzNy2EuLvWwo5blxwarnxdLQMqrp_yPdfXpHpRJ33Hg,11114
30
+ EvoScientist/skills/lm-evaluation-harness/references/benchmark-guide.md,sha256=bz5tr3jO4hRTzrwcRojuEm-_DUVmeCSW3VhB3Waa4pU,10769
31
+ EvoScientist/skills/lm-evaluation-harness/references/custom-tasks.md,sha256=xrVZHHfBZXC0P6X0l0BaZfNe9z0XAqOHHMDIolfHaus,13125
32
+ EvoScientist/skills/lm-evaluation-harness/references/distributed-eval.md,sha256=PdxFUfJc4NPLCflx8nGRMx-2W1tMiC79Spvee9-4I1M,11426
33
+ EvoScientist/skills/ml-paper-writing/SKILL.md,sha256=f6mlckj8UCXM9AjZ7Cgyn7r3FPF6S-K5n-3rV8RxvNk,35573
34
+ EvoScientist/skills/ml-paper-writing/references/checklists.md,sha256=Azqosw47finMHIK-GFdkNRSNVzC8KArPWRrU7_-yXqA,10774
35
+ EvoScientist/skills/ml-paper-writing/references/citation-workflow.md,sha256=Bno7AtqotNDzI45k009HG7NZuW513c6PqWKq9eQx5-0,15167
36
+ EvoScientist/skills/ml-paper-writing/references/reviewer-guidelines.md,sha256=PHC-X7hWi2SZGqeLYc9H02EQgnxILiSSvn_fu4OKEOA,10451
37
+ EvoScientist/skills/ml-paper-writing/references/sources.md,sha256=e68aVk_r_SRnezFs9HPs3w3IbSjgsc23e3ogvdDqCqY,7310
38
+ EvoScientist/skills/ml-paper-writing/references/writing-guide.md,sha256=7V_2lgoEvThbaihXeiZCgFbjWSAAGxkWJApOtWP1Rwk,16297
39
+ EvoScientist/skills/ml-paper-writing/templates/README.md,sha256=5l3BoiyxUNoSTb1N-wjsOktol4Q2kYqIDoWB1vdOOeU,6707
40
+ EvoScientist/skills/ml-paper-writing/templates/aaai2026/README.md,sha256=7ixhqLBuFHHA33x3QHTS_xvoJOY3ep449q3KXGjdu2A,17987
41
+ EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026-unified-supp.tex,sha256=Na3P9BnvwloDIUDFINQFINDQ_GkSPp2OOK0WHECtB7c,4548
42
+ EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026-unified-template.tex,sha256=vtEsULXgJ_2ICX0jjsTn6_Gue0UMsG1t98iuEmpiCuo,63140
43
+ EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.bib,sha256=2Pzz3Am51Imu_xNjEXTFmYpIyw0IAKyKAKL3vbxAKVs,4766
44
+ EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.bst,sha256=rCbixmBHQ1wO0l8hrjatQtcxzz15TEqLXwWmIUGicpQ,30207
45
+ EvoScientist/skills/ml-paper-writing/templates/aaai2026/aaai2026.sty,sha256=o58YZqBN0eJgNhPIdvpEaq6iwvPjTQK-ho_SFSC_reU,11802
46
+ EvoScientist/skills/ml-paper-writing/templates/acl/README.md,sha256=5VYI-bwLVk9Y2GTUMZdUd4XvAhw-wcXwptIFeqYVaB4,2126
47
+ EvoScientist/skills/ml-paper-writing/templates/acl/acl.sty,sha256=Gd_t3CwORI85JqC-8Eip2z82EbRiZbdgyqvXraTzYd4,11615
48
+ EvoScientist/skills/ml-paper-writing/templates/acl/acl_latex.tex,sha256=M5ye6XBcF2fUTvJLhTZcC7hhnsw_z2YXK_E1YpI4lhQ,14533
49
+ EvoScientist/skills/ml-paper-writing/templates/acl/acl_lualatex.tex,sha256=DZmHuoMzMamW-avNGgPuu6fXrjMRRXk-fdtrWujbJ7M,3050
50
+ EvoScientist/skills/ml-paper-writing/templates/acl/acl_natbib.bst,sha256=4zL9UdzqSOKoqJdUiSw8uZZ0oc1wtSe2Yemq_8I16Dw,45186
51
+ EvoScientist/skills/ml-paper-writing/templates/acl/anthology.bib.txt,sha256=K3jS2a7aYuFMTkYJnoIltfwRY4fY4KVKrXdkheJJzv8,1169
52
+ EvoScientist/skills/ml-paper-writing/templates/acl/custom.bib,sha256=12zLMN3OtwyeGtC-P0Pf4wGtV2Wqsslg_IMO9nv4Iyo,2071
53
+ EvoScientist/skills/ml-paper-writing/templates/acl/formatting.md,sha256=ngBKE2xd1DMA2X5b716zp30OKi01AvDyQ27AEdHEnpw,17923
54
+ EvoScientist/skills/ml-paper-writing/templates/colm2025/README.md,sha256=fCxYXVZUgjV9_99Jm1Z5KeB6nwlhlgjBnOnrKYRpfqE,51
55
+ EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.bib,sha256=xfq_Rsx9em5Se4KGC5qdZY6wf2Orqvqbe-tjHYq7kb0,496
56
+ EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.bst,sha256=LWdVLbftOMz8y1lXtS-VZW4lwklyR2HTz195Iq0YRMU,26973
57
+ EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.pdf,sha256=2LPXS8ga7Jup1rc5tJIq3JOuAC18glIrnGBkAUvsHRY,122635
58
+ EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.sty,sha256=ed-LKhsULfsySgp-h_q82dXcKjRwDhxsCDqbu55dqo4,7727
59
+ EvoScientist/skills/ml-paper-writing/templates/colm2025/colm2025_conference.tex,sha256=uvAc0FbM0bNRZdGQAZQUlGIX3haD-K493GaxHjxlPbw,12830
60
+ EvoScientist/skills/ml-paper-writing/templates/colm2025/fancyhdr.sty,sha256=tW7EQ0ufRgdSmksj3GitjUuU8fYxyM3a99p4FA1Tpeo,20521
61
+ EvoScientist/skills/ml-paper-writing/templates/colm2025/math_commands.tex,sha256=kEc8TQVCBw2yRM6nPvli1s3cWyp0Z1fmpA3fX9-5C6k,12284
62
+ EvoScientist/skills/ml-paper-writing/templates/colm2025/natbib.sty,sha256=iLxwwOSEYZNMq1sqzO8Gt0qLOsRa0DzNPyprfg1tUw0,45154
63
+ EvoScientist/skills/ml-paper-writing/templates/iclr2026/fancyhdr.sty,sha256=tW7EQ0ufRgdSmksj3GitjUuU8fYxyM3a99p4FA1Tpeo,20521
64
+ EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.bib,sha256=zdhufUwxhU3PIUWHFlfJRFiKbUTDty4WD_S6qN8aUvs,629
65
+ EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.bst,sha256=LWdVLbftOMz8y1lXtS-VZW4lwklyR2HTz195Iq0YRMU,26973
66
+ EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.pdf,sha256=yz1BTPpHAtUt6U3hyBI8NLLPRrelUQ30ncwQFKbCZs8,200508
67
+ EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.sty,sha256=pIUvaOCA1sUkUFfKIDkQC0CeMXJ4mKqTwD143bhDdKM,9025
68
+ EvoScientist/skills/ml-paper-writing/templates/iclr2026/iclr2026_conference.tex,sha256=lBtY3m5S9VON4Ov-LSBCWnnhdoyycdRTt0NpBLUVmFk,16899
69
+ EvoScientist/skills/ml-paper-writing/templates/iclr2026/math_commands.tex,sha256=kEc8TQVCBw2yRM6nPvli1s3cWyp0Z1fmpA3fX9-5C6k,12284
70
+ EvoScientist/skills/ml-paper-writing/templates/iclr2026/natbib.sty,sha256=iLxwwOSEYZNMq1sqzO8Gt0qLOsRa0DzNPyprfg1tUw0,45154
71
+ EvoScientist/skills/ml-paper-writing/templates/icml2026/algorithm.sty,sha256=k_0OsxwRLrQFgz248df10jjH5pGxwFaA1yduaPNtVko,2223
72
+ EvoScientist/skills/ml-paper-writing/templates/icml2026/algorithmic.sty,sha256=SNGHlKXZfAR5pYjMLqwJF5kv652oOsxGMbj1V1fYD5s,7414
73
+ EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.bib,sha256=35UBA9OPnPyBsfQNhMm-KjUl0EbSmRppc6REaSLAa9E,2051
74
+ EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.pdf,sha256=Po_g6VLehwLKRpfboJylLoO9ZJdnuSqDQNNKWRyqTRs,193509
75
+ EvoScientist/skills/ml-paper-writing/templates/icml2026/example_paper.tex,sha256=wsqBQL8lXR_3fRJ46z7v7UAYtLHnEGW44cy8aLdMis8,29714
76
+ EvoScientist/skills/ml-paper-writing/templates/icml2026/fancyhdr.sty,sha256=kTDFL5EIerxtIjFk_6WH4gfjJX_LzQae8J7LU5EEPxQ,31715
77
+ EvoScientist/skills/ml-paper-writing/templates/icml2026/icml2026.bst,sha256=DsPV65sC77fgtEoy83dYgvQqdD0L3GGPNOaTYwm5h2Q,27147
78
+ EvoScientist/skills/ml-paper-writing/templates/icml2026/icml2026.sty,sha256=fNz5D2pZxSGefxXIj37Qn8r1mNrZHmzd3E3Dyw45epU,27344
79
+ EvoScientist/skills/ml-paper-writing/templates/icml2026/icml_numpapers.pdf,sha256=006NqYIpY2NieZbm4YhQwR-9YW5pRgYSNwUeeo9wgLs,2823
80
+ EvoScientist/skills/ml-paper-writing/templates/neurips2025/Makefile,sha256=CYNCXXTnafJFf2_wZUz3b8DJX40Vj8jq7GbFaXugWU8,1054
81
+ EvoScientist/skills/ml-paper-writing/templates/neurips2025/extra_pkgs.tex,sha256=_NawkVb6GTw0f2rNgYjUMPoo92n7biwlFMu9IVw5AUo,2837
82
+ EvoScientist/skills/ml-paper-writing/templates/neurips2025/main.tex,sha256=NmwJP7wwGMRt4o8_4OywY7SroQoImv4DeDe79nOpxNY,574
83
+ EvoScientist/skills/ml-paper-writing/templates/neurips2025/neurips.sty,sha256=73pV8KfJ2hL-o5r3mQpqMUpyG3SiOxVE8lLlX8upQM0,11625
84
+ EvoScientist/skills/peft/SKILL.md,sha256=5QUOUtNXQaGPRP3bIMEJ1FZ6mWslSPD59-wrxiE0pnI,12198
85
+ EvoScientist/skills/peft/references/advanced-usage.md,sha256=hmPPda-i4QSIMvaAyFlLJwnAIFYDEzq16BVhaXyEdlk,12541
86
+ EvoScientist/skills/peft/references/troubleshooting.md,sha256=BmRb5Zua0EYeg3_OWhsKcSGxmhNTY1wE_fnfWhNXhzg,10344
87
+ EvoScientist/skills/ray-data/SKILL.md,sha256=vMc7M0HcoYxZytCSy23tt6wL8L3oBGegOZIawMAiVsM,7328
88
+ EvoScientist/skills/ray-data/references/integration.md,sha256=0YLgJbA5Z3lELxa2RhwL8UCjN2NQUc-4RyaYoY9Amco,1851
89
+ EvoScientist/skills/ray-data/references/transformations.md,sha256=r8Aa3lO8ld5t7G3mFLUsb5LrSgsUF0DZN7XdGFXeOA0,1664
90
+ EvoScientist/skills/skill-creator/LICENSE.txt,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
91
+ EvoScientist/skills/skill-creator/SKILL.md,sha256=suPYP2BCXC0LnUFi77j5qjIrRYQ0lzQPIon0K-QigBw,17837
92
+ EvoScientist/skills/skill-creator/references/output-patterns.md,sha256=1gJ4ALnYwmWJ7bqFtCkBpBrDbXU7Tpzrx_TLsDzc8KQ,1813
93
+ EvoScientist/skills/skill-creator/references/workflows.md,sha256=70hGh31dq0dRGgGmzzFHatZPW8WUVjVFkpV5RXUziYA,818
94
+ EvoScientist/skills/skill-creator/scripts/init_skill.py,sha256=C7olC5TKpMsrKLFdrSb9zzca7aTJeXuBIOVcLjPgxzw,10863
95
+ EvoScientist/skills/skill-creator/scripts/package_skill.py,sha256=sx-8s-Ni1cUwjpklX_joPN46UT4GNpU5ZKZISUyhCTE,3288
96
+ EvoScientist/skills/skill-creator/scripts/quick_validate.py,sha256=OBqy09H9XsMjcQFkEwY-_5nQ1IxBV0cIXGFRfpZ9u4c,3523
97
+ EvoScientist/stream/__init__.py,sha256=cO30Ujs7mVB1pZjI0AXgaggmPeV6jXgBjt6AKYH42kQ,1219
98
+ EvoScientist/stream/emitter.py,sha256=zmdn8vIXNgkgoWRtanrMtPN2GlsHmZtdFmoqCry3o_o,2978
99
+ EvoScientist/stream/formatter.py,sha256=vyv89NGoTzxjsWt0teBXX38MZzFLhzMDBUcIH6-slDo,5532
100
+ EvoScientist/stream/tracker.py,sha256=cVWmiTCiwzOh84I7sAXXfgr_HXxOCCCzTvli-XJhthQ,3670
101
+ EvoScientist/stream/utils.py,sha256=36e5aaEZVpwTZnqO1qlVs2QTr04JbmWuvHMSbor49xM,7278
102
+ evoscientist-0.0.1.dev1.dist-info/licenses/LICENSE,sha256=NsYFy5JSm90lmXcPNQuthVTCVaVcbT4XZ9h5HpAoGIo,1069
103
+ evoscientist-0.0.1.dev1.dist-info/METADATA,sha256=I2RA4m5-rR_eu_h_hwkJJHe3EAg5DCP2y9FxpysI4DQ,8583
104
+ evoscientist-0.0.1.dev1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
105
+ evoscientist-0.0.1.dev1.dist-info/entry_points.txt,sha256=AQTfRSD-9-fgD1ViOdbGcvhsNeaUNgvmNqLkNY7o7Zw,55
106
+ evoscientist-0.0.1.dev1.dist-info/top_level.txt,sha256=XBZouSd9lQfNn0Fus6jQb9nqdXzAbKyzh987Jt3A2-A,13
107
+ evoscientist-0.0.1.dev1.dist-info/RECORD,,