Skip to content

Commit df0523d

Browse files
authored
Merge branch 'agentscope-ai:main' into main
2 parents ee1bff1 + 8005e79 commit df0523d

104 files changed

Lines changed: 6238 additions & 1756 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.bat text eol=crlf

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,26 @@
2828

2929
## Checklist
3030

31-
- [ ] Pre-commit hooks pass (`pre-commit run --all-files` or CI)
32-
- [ ] Tests pass locally (`pytest` or as relevant)
31+
- [ ] I ran `pre-commit run --all-files` locally and it passes
32+
- [ ] If pre-commit auto-fixed files, I committed those changes and reran checks
33+
- [ ] I ran tests locally (`pytest` or as relevant) and they pass
3334
- [ ] Documentation updated (if needed)
3435
- [ ] Ready for review
3536

3637
## Testing
3738

3839
[How to test these changes]
3940

41+
## Local Verification Evidence
42+
43+
```bash
44+
pre-commit run --all-files
45+
# paste summary result
46+
47+
pytest
48+
# paste summary result
49+
```
50+
4051
## Additional Notes
4152

4253
[Optional: any other context]

.github/workflows/pr-label.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: PR Labeler
2+
3+
on:
4+
pull_request_target:
5+
types: [opened]
6+
7+
jobs:
8+
first-time-contributor:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
contents: read
12+
pull-requests: write
13+
steps:
14+
- name: Check if first-time contributor
15+
uses: actions/github-script@v7
16+
with:
17+
script: |
18+
const author = context.payload.pull_request.user.login;
19+
20+
const { data: searchResult } = await github.rest.search.issuesAndPullRequests({
21+
q: `repo:${context.repo.owner}/${context.repo.repo} type:pr author:${author} is:closed`,
22+
});
23+
24+
const isFirstTime = searchResult.total_count === 0;
25+
26+
if (isFirstTime) {
27+
await github.rest.issues.addLabels({
28+
owner: context.repo.owner,
29+
repo: context.repo.repo,
30+
issue_number: context.payload.pull_request.number,
31+
labels: ['first-time-contributor'],
32+
});
33+
core.info(`Labeled PR #${context.payload.pull_request.number} as first-time-contributor`);
34+
} else {
35+
core.info(`${author} has ${searchResult.total_count} PRs, skipping label`);
36+
}

.github/workflows/pre-commit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
pre-commit run --all-files > pre-commit.log 2>&1 || true
3636
cat pre-commit.log
3737
if grep -q Failed pre-commit.log; then
38-
echo -e "\e[41m [**FAIL**] Please install pre-commit and format your code first. \e[0m"
38+
echo -e "\e[41m [**FAIL**] pre-commit checks failed. Run 'pre-commit run --all-files' locally, commit any auto-fixes, then push again. \e[0m"
3939
exit 1
4040
fi
4141
echo -e "\e[46m ********************************Passed******************************** \e[0m"

CONTRIBUTING.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,16 +67,16 @@ docs(skills): document Skills Hub import
6767

6868
### 4. Code and Quality
6969

70-
- **Pre-commit:** Install and run pre-commit for consistent style and checks:
70+
- **Required local gate (must pass before push/PR):**
7171
```bash
7272
pip install -e ".[dev]"
7373
pre-commit install
7474
pre-commit run --all-files
75-
```
76-
- **Tests:** Run tests before submitting:
77-
```bash
7875
pytest
7976
```
77+
- **If pre-commit modifies files:** Commit those changes, then rerun
78+
`pre-commit run --all-files` until it passes cleanly.
79+
- **CI policy:** Pull requests with failing pre-commit checks are not merge-ready.
8080
- **Frontend formatting:** If your changes involve the `console` or `website` directories, run the formatter before committing:
8181
```bash
8282
cd console && npm run format

CONTRIBUTING_zh.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,16 +67,16 @@ docs(skills): document Skills Hub import
6767

6868
### 4. 代码和质量
6969

70-
- **Pre-commit:** 安装并运行 pre-commit 以保持一致的风格和检查:
70+
- **本地必跑门禁(push/提 PR 前必须通过):**
7171
```bash
7272
pip install -e ".[dev]"
7373
pre-commit install
7474
pre-commit run --all-files
75-
```
76-
- **测试:** 提交前运行测试:
77-
```bash
7875
pytest
7976
```
77+
- **如果 pre-commit 自动修改了文件:** 先提交这些修改,再重复执行
78+
`pre-commit run --all-files`,直到无修改且通过。
79+
- **CI 策略:** pre-commit 检查失败的 PR 视为未就绪(not merge-ready)。
8080
- **前端代码格式化:** 如果你的修改涉及到 `console``website` 目录,请在提交前运行格式化:
8181
```bash
8282
cd console && npm run format

README.md

Lines changed: 95 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
[![Discord](https://img.shields.io/badge/Discord-Join_Us-blueviolet.svg?logo=discord)](https://discord.gg/eYMpfnkG8h)
1616
[![DingTalk](https://img.shields.io/badge/DingTalk-Join_Us-orange.svg)](https://qr.dingtalk.com/action/joingroup?code=v1,k1,OmDlBXpjW+I2vWjKDsjvI9dhcXjGZi3bQiojOq3dlDw=&_dt_no_comment=1&origin=11)
1717

18-
[[Documentation](https://copaw.agentscope.io/)] [[中文 README](README_zh.md)]
18+
[[Documentation](https://copaw.agentscope.io/)] [[中文 README](README_zh.md)] [[日本語](README_ja.md)]
1919

2020
<p align="center">
2121
<img src="https://img.alicdn.com/imgextra/i1/O1CN01tvT5rg1JHQNRP8tXR_!!6000000001003-2-tps-1632-384.png" alt="CoPaw Logo" width="120">
@@ -51,6 +51,18 @@ Your Personal AI Assistant; easy to install, deploy on your own machine or on th
5151
5252
---
5353

54+
## News
55+
56+
[2026-03-02] We released v0.0.4! See the [v0.0.4 Release Notes](https://github.com/agentscope-ai/CoPaw/releases/tag/v0.0.4) for the full changelog.
57+
58+
- **[v0.0.4]** **FEAT:** Telegram channel; OpenAI & Azure OpenAI providers; Ollama SDK; coding-plan provider; model connection testing; heartbeat monitoring panel; CORS configuration; audio file support for DingTalk & Feishu.
59+
- **[v0.0.4]** **FEAT:** Token-based memory compaction; file block processing; embedding configuration; normalized tool_choice behavior.
60+
- **[v0.0.4]** **BUGFIX:** Windows file paths; empty tool calls; console workspace UI; Ollama URL & connectivity; MCP transport; browser resource leak; static asset MIME types; API headers; Playwright Docker; heartbeat parsing; media message queuing.
61+
- **[v0.0.4]** **RELS:** Installation scripts with PowerShell; Docker guide; channel CLI docs; Feishu SOCKS proxy; MCP & runtime docs; FAQ (EN/ZH); skill-writing guide; CONTRIBUTING; console docs; website improvements.
62+
- **[v0.0.4]** **COMM:** Special thanks to all new contributors: [@ekzhu](https://github.com/ekzhu), [@fancyboi999](https://github.com/fancyboi999), [@zhaozhuang521](https://github.com/zhaozhuang521), [@hobostay](https://github.com/hobostay), [@dhbxs](https://github.com/dhbxs), [@longway-code](https://github.com/longway-code), [@ydlstartx](https://github.com/ydlstartx), [@LudovicoYIN](https://github.com/LudovicoYIN), [@fenixc9](https://github.com/fenixc9), [@dittotang](https://github.com/dittotang), [@forestxieCode](https://github.com/forestxieCode), [@yongtenglei](https://github.com/yongtenglei), [@kerwin612](https://github.com/kerwin612), [@luixiao0](https://github.com/luixiao0), [@gongpx20069](https://github.com/gongpx20069).
63+
64+
---
65+
5466
## Table of Contents
5567

5668
> **Recommended reading:**
@@ -59,10 +71,14 @@ Your Personal AI Assistant; easy to install, deploy on your own machine or on th
5971
> - **I want to chat in DingTalk / Feishu / QQ**: [Quick Start](#quick-start)[Channels](https://copaw.agentscope.io/docs/channels).
6072
> - **I don’t want to install Python**: [One-line install](#one-line-install-beta-continuously-improving) handles Python automatically, or use [ModelScope one-click](https://modelscope.cn/studios/fork?target=AgentScope/CoPaw) for cloud.
6173
74+
- [News](#news)
6275
- [Quick Start](#quick-start)
6376
- [API Key](#api-key)
6477
- [Local Models](#local-models)
6578
- [Documentation](#documentation)
79+
- [FAQ](#faq)
80+
- [Roadmap](#roadmap)
81+
- [Contributing](#get-involved)
6682
- [Install from source](#install-from-source)
6783
- [Why CoPaw?](#why-copaw)
6884
- [Built by](#built-by)
@@ -108,13 +124,44 @@ To install with multiple extras (e.g., Ollama + llama.cpp):
108124
curl -fsSL https://copaw.agentscope.io/install.sh | bash -s -- --extras ollama,llamacpp
109125
```
110126

127+
**Windows (CMD):**
128+
129+
```CMD
130+
curl -fsSL https://copaw.agentscope.io/install.bat -o install.bat && install.bat
131+
```
132+
111133
**Windows (PowerShell):**
112134

113135
```powershell
114136
irm https://copaw.agentscope.io/install.ps1 | iex
115137
```
116138

117-
Then open a new terminal and run:
139+
> **Note**: The installer will automatically check the status of uv. If it is not installed, it will attempt to download and configure it automatically. If the automatic installation fails, please follow the on-screen prompts or execute `python -m pip install -U uv`, then rerun the installer.
140+
141+
> **⚠️ Special Notice for Windows Enterprise LTSC Users**
142+
>
143+
> If you are using Windows LTSC or an enterprise environment governed by strict security policies, PowerShell may run in **Constrained Language Mode**, potentially causing the following issue:
144+
> 1. **If using CMD (.bat): Script executes successfully but fails to write to `Path`**
145+
>
146+
> The script completes file installation. Due to **Constrained Language Mode**, it cannot automatically update environment variables. Manually configure as follows:
147+
> - **Locate the installation directory**:
148+
> - Check if `uv` is available: Enter `uv --version` in CMD. If a version number appears, **only configure the CoPaw path**. If you receive the prompt `'uv' is not recognized as an internal or external command, operable program or batch file,` configure both paths.
149+
> - uv path (choose one based on installation location; use if `uv` fails): Typically `%USERPROFILE%\.local\bin`, `%USERPROFILE%\AppData\Local\uv`, or the `Scripts` folder within your Python installation directory
150+
> - CoPaw path: Typically located at `%USERPROFILE%\.copaw\bin`.
151+
> - **Manually add to the system's Path environment variable**:
152+
> - Press `Win + R`, type `sysdm.cpl` and press Enter to open System Properties.
153+
> - Click “Advanced” -> “Environment Variables”.
154+
> - Under “System variables”, locate and select `Path`, then click “Edit”.
155+
> - Click “New”, enter both directory paths sequentially, then click OK to save.
156+
> 2. **If using PowerShell (.ps1): Script execution interrupted**
157+
>
158+
> Due to **Constrained Language Mode**, the script may fail to automatically download `uv`.
159+
> - **Manually install uv**: Refer to the [GitHub Release](https://github.com/astral-sh/uv/releases) to download `uv.exe` and place it in `%USERPROFILE%\.local\bin` or `%USERPROFILE%\AppData\Local\uv`; or ensure Python is installed and run `python -m pip install -U uv`.
160+
> - **Configure `uv` environment variables**: Add the `uv` directory and `%USERPROFILE%\.copaw\bin` to your system's `Path` variable.
161+
> - **Re-run the installation**: Open a new terminal and execute the installation script again to complete the `CoPaw` installation.
162+
> - **Configure the `CoPaw` environment variable**: Add `%USERPROFILE%\.copaw\bin` to your system's `Path` variable.
163+
164+
Once installed, open a new terminal and run:
118165

119166
```bash
120167
copaw init --defaults # or: copaw init (interactive)
@@ -251,6 +298,52 @@ Full docs in this repo: [website/public/docs/](website/public/docs/).
251298

252299
---
253300

301+
## FAQ
302+
303+
For common questions, troubleshooting tips, and known issues, please visit the **[FAQ page](https://copaw.agentscope.io/docs/faq)**.
304+
305+
---
306+
307+
## Roadmap
308+
309+
| Area | Item | Status |
310+
| --- | --- | --- |
311+
| Horizontal Expansion | More channels, models, skills, MCPs — **community contributions welcome** | Seeking Contributors |
312+
| Existing Feature Extension | Display optimization, download hints, Windows path compatibility, etc. — **community contributions welcome** | Seeking Contributors |
313+
| Compatibility & Ease of Use | App-level packaging (DMG, EXE) | In Progress |
314+
| | One-click deployment: built-in deps, dev extras, install/upgrade tutorials | In Progress |
315+
| Release & Contributing | Contributing docs and test framework | In Progress |
316+
| | Responsive handling of community contributions | In Progress |
317+
| | Contributing guidance for vibe coding agents | Planned |
318+
| Bugfixes & Enhancements | Message collapse/hide in UI | Planned |
319+
| | Skills and MCP runtime install, hot-reload improvements | Planned |
320+
| | Context management and compression (long tool outputs, lower token usage) | Planned |
321+
| | Multimodal support | In Progress |
322+
| Security | Shell execution confirmation | Planned |
323+
| | Tool/skills security | Planned |
324+
| | Configurable security levels (user-configurable) | Planned |
325+
| Multimodal | Voice/video calls and real-time interaction | Long-term Planning |
326+
| Multi-agent | Built on [AgentScope](https://github.com/agentscope-ai/agentscope), native multi-agent workflows | Long-term Planning |
327+
| Sandbox | Deeper integration with AgentScope Runtime sandboxes | Long-term Planning |
328+
| Self-healing | Daemon agent for automated recovery and health monitoring | Long-term Planning |
329+
| CoPaw-optimized local models | LLMs tuned for CoPaw's native skills and common tasks; better local personal-assistant usability | Long-term Planning |
330+
| Small + large model collaboration | Local LLMs for sensitive data; cloud LLMs for planning and coding; balance of privacy, performance, and capability | Long-term Planning |
331+
| Cloud-native | Deeper integration with AgentScope Runtime; leverage cloud compute, storage, and tooling | Long-term Planning |
332+
| Skills Hub | Enrich the [AgentScope Skills](https://github.com/agentscope-ai/agentscope-skills) repository and improve discoverability of high-quality skills | Long-term Planning |
333+
334+
*Status:* *In Progress* — actively being worked on; *Planned* — queued or under design, also **welcome contributions**; *Seeking Contributors* — we **strongly encourage community contributions**; *Long-term Planning* — longer-horizon roadmap.
335+
336+
### Get involved
337+
338+
We are building CoPaw in the open and welcome contributions of all kinds! Check the [Roadmap](#roadmap) above (especially items marked **Seeking Contributors**) to find areas that interest you, and read [CONTRIBUTING](https://github.com/agentscope-ai/CoPaw/blob/main/CONTRIBUTING.md) to get started. We particularly welcome:
339+
340+
- **Horizontal expansion** — new channels, model providers, skills, MCPs.
341+
- **Existing feature extension** — display and UX improvements, download hints, Windows path compatibility, and the like.
342+
343+
Join the conversation on [GitHub Discussions](https://github.com/agentscope-ai/CoPaw/discussions) to suggest or pick up work.
344+
345+
---
346+
254347
## Install from source
255348

256349
```bash

0 commit comments

Comments
 (0)