diff --git a/.github/assets/badge-pypi-dark.svg b/.github/assets/badge-pypi-dark.svg index 8e2b2a6..be392d5 100644 --- a/.github/assets/badge-pypi-dark.svg +++ b/.github/assets/badge-pypi-dark.svg @@ -5,5 +5,5 @@ v0.1.4 + font-size="13" font-weight="700" fill="#ffffff">v0.1.5 \ No newline at end of file diff --git a/.github/assets/badge-pypi-light.svg b/.github/assets/badge-pypi-light.svg index 90962be..31a3ac5 100644 --- a/.github/assets/badge-pypi-light.svg +++ b/.github/assets/badge-pypi-light.svg @@ -5,5 +5,5 @@ v0.1.4 + font-size="13" font-weight="700" fill="#ffffff">v0.1.5 \ No newline at end of file diff --git a/EvoScientist/config/onboard/steps.py b/EvoScientist/config/onboard/steps.py index c77cadd..9ef7738 100644 --- a/EvoScientist/config/onboard/steps.py +++ b/EvoScientist/config/onboard/steps.py @@ -52,7 +52,7 @@ def _step_ui_backend(config: EvoScientistConfig) -> str: Selected backend name ("tui", "cli", or "webui"). """ choices = [ - Choice(title="WebUI (desktop interface, beta)", value="webui"), + Choice(title="WebUI (desktop interface, modern)", value="webui"), Choice(title="TUI (full-screen interface, recommended)", value="tui"), Choice(title="CLI (classic terminal, lightweight)", value="cli"), ] @@ -222,7 +222,7 @@ def _step_webui_port(config: EvoScientistConfig) -> int: port = int(raw) if raw else current_port console.print(f" [green]✓ WebUI will open at http://localhost:{port}[/green]") console.print( - " [yellow]⚠️ Beta: the WebUI won't show your CLI/TUI chat history " + " [yellow]⚠️ Note: the WebUI won't show your CLI/TUI chat history " "yet.[/yellow]" ) return port diff --git a/README.md b/README.md index 9c18bd8..680e1a9 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ - PyPI v0.1.4 + PyPI v0.1.5 @@ -125,7 +125,7 @@ Moving beyond traditional human-in-the-loop systems, EvoScientist adopts a human - **🧠 Self-Evolving Memory** — User profile and observations auto-distilled each turn, growing across sessions. - **🌐 Multi-Provider** — Anthropic, OpenAI, Google, MiniMax, NVIDIA — one config to switch. - **📱 Multi-Channel** — CLI as the hub; Telegram, Slack, Feishu, WeChat, and more — one agent session. -- **🖥️ Desktop WebUI (beta)** — Workspace-panel web app, one terminal via `--ui webui`. +- **🖥️ Desktop WebUI** — Workspace-panel web app, one terminal via `--ui webui`. - **🔬 Scientific Workflow** — Intake → plan → execute → evaluate → write → verify. - **🔄 Code Generation Modes** — More Effort (iterative refinement), continuously improving code quality. - **⚡ Adaptive Tools** — Per-turn tool selection keeps only relevant tools visible, reducing noise. @@ -149,9 +149,10 @@ Moving beyond traditional human-in-the-loop systems, EvoScientist adopts a human
📦 Release Highlights — version changelog +- **[10 Jun 2026]** **[v0.1.5](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.5)** — Dangerous mode (real-filesystem access with safety checks), LangGraph streaming v3 pipeline, opt-in Anthropic prompt caching via OpenRouter, claude-fable-5, free-scrolling TUI, Windows CI support. - **[07 Jun 2026]** **[v0.1.4](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.4)** — Auxiliary model for background tasks & tool selection, observation-memory lifecycle, Qwen3.7-Max/Plus (DashScope), UI-backend selection, plus an OpenRouter multi-turn reasoning fix. - **[03 Jun 2026]** **[v0.1.3](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.3)** — Multimodal handling (image + PDF/doc flatten/hoisting, text-only model fallback), runtime-context middleware, memory middleware → profile files with stream timeline narration, textual CJK-input fix. -- **[02 Jun 2026]** **[v0.1.2](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.2)** — Browser WebUI mode (beta), `EvoSci deploy` standalone LangGraph server, default model → claude-sonnet-4-6, MiniMax M3, plus sandbox-timeout and async-notifier channel-routing fixes. +- **[02 Jun 2026]** **[v0.1.2](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.2)** — Browser WebUI mode, `EvoSci deploy` standalone LangGraph server, default model → claude-sonnet-4-6, MiniMax M3, plus sandbox-timeout and async-notifier channel-routing fixes. - **[19 May 2026]** **[v0.1.1](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.1)** — deepagents 0.6.2 DeltaChannel upgrade, tier-aware skill mounts, status & elapsed-time bar, QQ inline buttons. - **[08 May 2026]** **[v0.1.0](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.0)** — Async sub-agents (langgraph dev), official Docker image, personal WeChat, sessions-DB compaction. - **[26 Apr 2026]** **[v0.0.9](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.0.9)** — Faster startup, in-session model switching, unified slash commands, DeepSeek V4 thinking fix. @@ -406,7 +407,7 @@ EvoSci # or EvoScientist — interactive mode (TUI by default) ![cli help](https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/EvoScientist_cli_help.png) > [!TIP] -> Prefer a browser? Run `EvoSci --ui webui` for the web workspace UI (beta). Need to copy long outputs? Use `--ui cli` for classic mode where native terminal copy works freely. On macOS, [iTerm2](https://iterm2.com/) users can also hold `⌥ Option` while dragging to select, then `⌘+C`. +> Prefer a browser? Run `EvoSci --ui webui` for the web workspace UI. Need to copy long outputs? Use `--ui cli` for classic mode where native terminal copy works freely. On macOS, [iTerm2](https://iterm2.com/) users can also hold `⌥ Option` while dragging to select, then `⌘+C`.
Common examples @@ -417,7 +418,7 @@ EvoSci -p "your question" # single-shot mode EvoSci --workdir /path/to/project # open in a specific directory EvoSci -m run # isolated per-session workspace EvoSci --ui cli # classic CLI (lightweight) -EvoSci --ui webui # browser workspace UI (beta, needs Node/npx) +EvoSci --ui webui # browser workspace UI (needs Node/npx) EvoSci serve # headless mode — channels only, no interactive prompt EvoSci deploy # standalone LangGraph server for external UIs / SDK clients ``` @@ -425,7 +426,7 @@ EvoSci deploy # standalone LangGraph server for external UIs
-Desktop WebUI (beta) +Desktop WebUI Set the UI backend to `webui` and a fresh `EvoSci` session launches a deploy-style LangGraph server **and** the [`@evoscientist/webui`](https://www.npmjs.com/package/@evoscientist/webui) front-end in one terminal — no second process to manage: @@ -435,7 +436,7 @@ EvoSci # opens http://localhost:4716 EvoSci config set webui_port 4800 # change the front-end port (must differ from the langgraph dev port) ``` -Requires **Node.js 24 LTS** (for `npx`); the first launch downloads `@evoscientist/webui` and needs network. Beta: the WebUI does not show your CLI/TUI chat history, and `-p` / `--resume` fall back to the classic CLI. +Requires **Node.js 24 LTS** (for `npx`); the first launch downloads `@evoscientist/webui` and needs network. Note: the WebUI does not show your CLI/TUI chat history, and `-p` / `--resume` fall back to the classic CLI.
@@ -458,6 +459,14 @@ EvoSci config set shell_allow_list "python,pip,pytest,ruff,git" During a session you can also reply **3** (Approve all) at any approval prompt to auto-approve for the rest of that session. +> [!CAUTION] +> **Dangerous mode** lifts the workspace sandbox entirely — the agent can read, write, and delete files **anywhere on the real filesystem** (privileged commands like `sudo`/`rm -rf /` are still blocked). It implies `--auto-approve` (no prompts). Use only when you fully trust the task. +> +> ```bash +> EvoSci --dangerous # per-session +> EvoSci config set dangerous_mode true # persistent +> ``` +
@@ -594,7 +603,7 @@ Coming soon: - [x] 🦾 Agent-initiated human clarification - [x] 📑 Technical report on the way - [x] 🔐 OAuth sign-in (CLI coding agent subscribers) -- [x] 📺 Web app with workspace UI (beta) +- [x] 📺 Web app with workspace UI - [ ] 📹 Demo and tutorial in the works - [ ] 📊 Benchmark suite to be released - [ ] ⏰ Scheduled tasks for the core system planned diff --git a/README.zh-CN.md b/README.zh-CN.md index 019a9b1..ba31bf4 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -15,7 +15,7 @@ - PyPI v0.1.4 + PyPI v0.1.5 @@ -133,7 +133,7 @@ EvoScientist 超越了传统的人在回路(Human-in-the-Loop)模式,采 - **🧠 自进化记忆** — 用户画像与观察记录每轮自动提炼,跨会话持续进化。 - **🌐 多模型供应商** — Anthropic、OpenAI、Google、MiniMax、NVIDIA——一处配置,随时切换。 - **📱 多渠道接入** — CLI 为中心;Telegram、Slack、飞书、微信等——共享同一智能体会话。 -- **🖥️ Desktop WebUI(beta)** — 单终端 `--ui webui` 启动带工作区面板的 Web 应用。 +- **🖥️ Desktop WebUI** — 单终端 `--ui webui` 启动带工作区面板的 Web 应用。 - **🔬 科学工作流** — 需求采集 → 规划 → 执行 → 评估 → 撰写 → 验证。 - **🔄 代码生成模式** — More Effort(迭代精修),持续迭代提升代码生成质量。 - **⚡ 自适应工具** — 每轮对话智能筛选相关工具,减少干扰提升效率。 @@ -158,6 +158,7 @@ EvoScientist 超越了传统的人在回路(Human-in-the-Loop)模式,采
📦 版本更新摘要(changelog) +- **[2026 年 6 月 10 日]** **[v0.1.5](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.5)** — Dangerous 模式(带安全检查的真实文件系统访问)、LangGraph streaming v3 流水线、OpenRouter Anthropic prompt caching(可选启用)、claude-fable-5、TUI 自由滚动,以及 Windows CI 支持。 - **[2026 年 6 月 7 日]** **[v0.1.4](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.4)** — 辅助模型(后台任务与工具选择)、observation 记忆生命周期、Qwen3.7-Max/Plus(DashScope)、UI 后端选择,以及 OpenRouter 多轮推理修复。 - **[2026 年 6 月 3 日]** **[v0.1.3](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.3)** — 多模态处理(图片 + PDF/文档 flatten/hoisting、纯文本模型回退)、runtime-context 中间件、memory 中间件迁移至 profile 文件 + stream 时间线叙述、textual 中文输入修复。 - **[2026 年 6 月 2 日]** **[v0.1.2](https://github.com/EvoScientist/EvoScientist/releases/tag/v0.1.2)** — 浏览器 WebUI 模式(beta)、`EvoSci deploy` 独立 LangGraph 服务器、默认模型 → claude-sonnet-4-6、MiniMax M3,以及 sandbox 超时与 async-notifier 渠道路由修复。 @@ -415,7 +416,7 @@ EvoSci # 或 EvoScientist — 交互模式(默认 TUI) ![cli help](https://raw.githubusercontent.com/EvoScientist/EvoScientist/main/.github/assets/EvoScientist_cli_help.png) > [!TIP] -> 想用浏览器?运行 `EvoSci --ui webui` 打开 Web 工作区界面(beta)。需要复制长输出?使用 `--ui cli` 切换到经典模式,即可使用终端原生复制。macOS [iTerm2](https://iterm2.com/) 用户也可以按住 `⌥ Option` 拖选文字,再 `⌘+C` 复制。 +> 想用浏览器?运行 `EvoSci --ui webui` 打开 Web 工作区界面。需要复制长输出?使用 `--ui cli` 切换到经典模式,即可使用终端原生复制。macOS [iTerm2](https://iterm2.com/) 用户也可以按住 `⌥ Option` 拖选文字,再 `⌘+C` 复制。
常用示例 @@ -426,7 +427,7 @@ EvoSci -p "你的问题" # 单次查询模式 EvoSci --workdir /path/to/project # 在指定目录下启动 EvoSci -m run # 隔离的会话级工作区 EvoSci --ui cli # 经典 CLI(轻量) -EvoSci --ui webui # 浏览器工作区界面(beta,需 Node/npx) +EvoSci --ui webui # 浏览器工作区界面(需 Node/npx) EvoSci serve # 无头模式——仅渠道,无交互提示符 EvoSci deploy # 独立 LangGraph 服务器——供外部 UI / SDK 客户端使用 ``` @@ -434,7 +435,7 @@ EvoSci deploy # 独立 LangGraph 服务器——供外部 UI
-Desktop WebUI(beta) +Desktop WebUI 将 UI 后端设为 `webui`,全新的 `EvoSci` 会话便会在单个终端里同时启动 deploy 式 LangGraph 服务器**和** [`@evoscientist/webui`](https://www.npmjs.com/package/@evoscientist/webui) 前端,无需管理第二个进程: @@ -444,7 +445,7 @@ EvoSci # 打开 http://localhost:4716 EvoSci config set webui_port 4800 # 修改前端端口(须与 langgraph dev 端口不同) ``` -需要 **Node.js 24 LTS**(提供 `npx`);首次启动会下载 `@evoscientist/webui`,需要联网。Beta:WebUI 不会显示 CLI/TUI 的历史会话,且 `-p` / `--resume` 会回退到经典 CLI。 +需要 **Node.js 24 LTS**(提供 `npx`);首次启动会下载 `@evoscientist/webui`,需要联网。注意:WebUI 不会显示 CLI/TUI 的历史会话,且 `-p` / `--resume` 会回退到经典 CLI。
@@ -467,6 +468,14 @@ EvoSci config set shell_allow_list "python,pip,pytest,ruff,git" 会话中也可以在审批提示时回复 **3**(Approve all),仅对当次会话自动审批后续所有操作。 +> [!CAUTION] +> **危险模式(Dangerous mode)** 会完全解除工作区沙箱——智能体可以读写、删除**真实文件系统上任意位置**的文件(`sudo`/`rm -rf /` 等高危命令仍被拦截)。它隐含 `--auto-approve`(不再提示审批)。请仅在你完全信任该任务时使用。 +> +> ```bash +> EvoSci --dangerous # 单次会话 +> EvoSci config set dangerous_mode true # 持久化 +> ``` +
diff --git a/pyproject.toml b/pyproject.toml index b3bf063..09f4261 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "EvoScientist" -version = "0.1.4" +version = "0.1.5" description = "EvoScientist: Towards Self-Evolving AI Scientists for End-to-End Scientific Discovery" readme = "README.md" requires-python = ">=3.11"