reasonix 0.19.0 → 0.21.0
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.
- package/README.md +42 -88
- package/README.zh-CN.md +42 -88
- package/dashboard/app.css +1 -1
- package/dashboard/dist/app.js.map +1 -1
- package/dist/cli/{chunk-RTVI2CLX.js → chunk-R2L5YEEF.js} +23 -11
- package/dist/cli/chunk-R2L5YEEF.js.map +1 -0
- package/dist/cli/index.js +745 -496
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/{prompt-P54FIQAH.js → prompt-YUL7CYKY.js} +2 -2
- package/dist/index.d.ts +22 -1
- package/dist/index.js +60 -11
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/cli/chunk-RTVI2CLX.js.map +0 -1
- /package/dist/cli/{prompt-P54FIQAH.js.map → prompt-YUL7CYKY.js.map} +0 -0
package/README.md
CHANGED
|
@@ -3,22 +3,26 @@
|
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
|
-
<
|
|
6
|
+
<strong>English</strong> · <a href="./README.zh-CN.md">简体中文</a> · <a href="https://esengine.github.io/reasonix/">Website</a>
|
|
7
7
|
</p>
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
|
-
<
|
|
10
|
+
<a href="https://www.npmjs.com/package/reasonix"><img src="https://img.shields.io/npm/v/reasonix.svg" alt="npm version"/></a>
|
|
11
|
+
<a href="https://github.com/esengine/reasonix/actions/workflows/ci.yml"><img src="https://github.com/esengine/reasonix/actions/workflows/ci.yml/badge.svg" alt="CI"/></a>
|
|
12
|
+
<a href="./LICENSE"><img src="https://img.shields.io/npm/l/reasonix.svg" alt="license"/></a>
|
|
13
|
+
<a href="https://www.npmjs.com/package/reasonix"><img src="https://img.shields.io/npm/dm/reasonix.svg" alt="downloads"/></a>
|
|
14
|
+
<a href="./package.json"><img src="https://img.shields.io/node/v/reasonix.svg" alt="node"/></a>
|
|
15
|
+
<a href="https://github.com/esengine/reasonix/stargazers"><img src="https://img.shields.io/github/stars/esengine/reasonix.svg?style=flat&logo=github&label=stars" alt="GitHub stars"/></a>
|
|
16
|
+
<a href="https://github.com/esengine/reasonix/discussions"><img src="https://img.shields.io/github/discussions/esengine/reasonix.svg?logo=github&label=discussions" alt="Discussions"/></a>
|
|
11
17
|
</p>
|
|
12
18
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
[](https://github.com/esengine/reasonix/actions/workflows/ci.yml)
|
|
17
|
-
[](./LICENSE)
|
|
18
|
-
[](https://www.npmjs.com/package/reasonix)
|
|
19
|
-
[](./package.json)
|
|
19
|
+
<p align="center">
|
|
20
|
+
<strong>A DeepSeek-native AI coding agent for your terminal.</strong> Engineered around DeepSeek's prefix-cache, so the savings are real and the loop stays cheap enough to leave on.
|
|
21
|
+
</p>
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
<p align="center">
|
|
24
|
+
<img src="docs/assets/hero-stats.svg" alt="94% live prefix-cache hit · ~30× cheaper per task vs Claude Code · MIT terminal-native" width="860"/>
|
|
25
|
+
</p>
|
|
22
26
|
|
|
23
27
|
---
|
|
24
28
|
|
|
@@ -26,50 +30,29 @@
|
|
|
26
30
|
|
|
27
31
|
```bash
|
|
28
32
|
cd my-project
|
|
29
|
-
npx reasonix code
|
|
33
|
+
npx reasonix code # paste a DeepSeek API key on first run; persists after
|
|
30
34
|
```
|
|
31
35
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
reasonix code › fix the case-sensitivity bug in findByEmail
|
|
36
|
-
|
|
37
|
-
assistant
|
|
38
|
-
▸ tool<search_files> → src/users.ts, src/users.test.ts
|
|
39
|
-
▸ tool<read_file> → src/users.ts (412 chars)
|
|
40
|
-
|
|
41
|
-
src/users.ts
|
|
42
|
-
<<<<<<< SEARCH
|
|
43
|
-
return users.find(u => u.email === email);
|
|
44
|
-
=======
|
|
45
|
-
const needle = email.toLowerCase();
|
|
46
|
-
return users.find(u => u.email.toLowerCase() === needle);
|
|
47
|
-
>>>>>>> REPLACE
|
|
48
|
-
|
|
49
|
-
▸ 1 pending edit · /apply to write, /discard to drop
|
|
50
|
-
```
|
|
36
|
+
<p align="center">
|
|
37
|
+
<img src="docs/assets/hero-terminal.svg" alt="Reasonix code mode — assistant proposes a SEARCH/REPLACE edit; nothing on disk until /apply" width="860"/>
|
|
38
|
+
</p>
|
|
51
39
|
|
|
52
|
-
|
|
40
|
+
Requires Node ≥ 22. Tested on macOS, Linux, and Windows (PowerShell, Git Bash, Windows Terminal). Get a [DeepSeek API key →](https://platform.deepseek.com/api_keys) · `reasonix code --help` for flags.
|
|
53
41
|
|
|
54
42
|
---
|
|
55
43
|
|
|
56
44
|
## How it compares
|
|
57
45
|
|
|
58
|
-
|
|
|
59
|
-
|
|
60
|
-
| Backend
|
|
61
|
-
| **Cost / typical task**
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
|
|
|
65
|
-
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
| User-authored skills | yes | yes | — | — |
|
|
69
|
-
| Embedded web dashboard | yes | — | n/a (IDE) | — |
|
|
70
|
-
| Hooks (`PreToolUse`, etc.) | yes | yes | — | — |
|
|
71
|
-
| Sandbox boundary | strict | yes | partial | yes |
|
|
72
|
-
| Persistent per-workspace sessions | yes | partial | n/a | — |
|
|
46
|
+
| | Reasonix | Claude Code | Cursor | Aider |
|
|
47
|
+
|-----------------------------------|------------------|-----------------|--------------------|------------------|
|
|
48
|
+
| Backend | DeepSeek V4 | Anthropic | OpenAI / Anthropic | any (OpenRouter) |
|
|
49
|
+
| **Cost / typical task** | **~¥0.01–0.04** | ~¥0.40–4 | ¥150/mo + usage | varies |
|
|
50
|
+
| License | **MIT** | closed | closed | Apache 2 |
|
|
51
|
+
| **DeepSeek prefix-cache hit** | **94%** (live) | n/a | n/a | ~33% (baseline) |
|
|
52
|
+
| Embedded web dashboard | yes | — | n/a (IDE) | — |
|
|
53
|
+
| Persistent per-workspace sessions | yes | partial | n/a | — |
|
|
54
|
+
|
|
55
|
+
Plan mode, edit review, MCP, skills, hooks, and sandboxing are all `yes` for Reasonix and most peers — see the feature grid below for what they actually do here.
|
|
73
56
|
|
|
74
57
|
Numbers from `benchmarks/tau-bench-lite` (8 multi-turn tasks × 3 repeats, live `deepseek-chat`). [Committed transcripts →](./benchmarks/)
|
|
75
58
|
|
|
@@ -99,59 +82,30 @@ Cache stability isn't a feature you turn on; it's an invariant the loop is desig
|
|
|
99
82
|
|
|
100
83
|
## What's in the box
|
|
101
84
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
### Tool registry
|
|
106
|
-
Native: `read_file`, `write_file`, `edit_file` (SEARCH/REPLACE), `list_directory`, `search_files`, `grep_files`, `run_command`, `run_background`, `web_search`, `web_fetch`. All sandboxed to the launch directory. **MCP first-class** — `--mcp 'name=cmd args'` adds external servers (stdio / Streamable HTTP / SSE), tools merge into the registry under a prefix.
|
|
107
|
-
|
|
108
|
-
### Plan mode + edit review
|
|
109
|
-
`/plan` enters a read-only audit gate where the model can't dispatch edits until you approve a written plan. Edits emerge as SEARCH/REPLACE blocks; nothing hits disk until `/apply`. `/walk` steps through pending edits one at a time. `/discard` drops them all.
|
|
110
|
-
|
|
111
|
-
### Sessions, scoped per workspace
|
|
112
|
-
Sessions persist in `~/.reasonix/sessions/` and are filtered by launch directory. `--new` preserves the previous session under a timestamped name; `--resume` finds the latest. `/sessions` switches mid-chat without quitting.
|
|
113
|
-
|
|
114
|
-
### Embedded web dashboard
|
|
115
|
-
`/dashboard` opens a localhost SPA mirroring the running TUI — chat (with full composer fallback when the TUI's renderer breaks down on legacy PowerShell), editor (file tree + CodeMirror), Sessions / Plans / Usage / Tools / MCP / Memory / Hooks / Settings. Token-gated, CSRF-checked, ephemeral. [Design mockup →](./design/agent-dashboard.html)
|
|
116
|
-
|
|
117
|
-
### Hooks
|
|
118
|
-
Configurable shell scripts that fire on `PreToolUse`, `PostToolUse`, `UserPromptSubmit`, `Stop`, `Notification`, `SessionEnd`. Lives in `.reasonix/settings.json` (per-project) or `~/.reasonix/settings.json` (per-user). The harness executes them — not the model.
|
|
119
|
-
|
|
120
|
-
### Memory + skills
|
|
121
|
-
Two layers: project-scoped `REASONIX.md` (committed, repo conventions) and user-scoped `~/.reasonix/memory/` (per-user, the model can write to it via the `remember` tool). Skills are user-authored prompt packs with optional sub-agent execution.
|
|
122
|
-
|
|
123
|
-
### Permissions
|
|
124
|
-
`allow` / `ask` / `deny` patterns on commands and tools. `npm publish` defaults to `ask`; `rm -rf *` and `git push --force *` default to `deny`. Approved-once decisions can be remembered for a prefix.
|
|
85
|
+
<p align="center">
|
|
86
|
+
<img src="docs/assets/feature-grid.svg" alt="Feature grid — cache-first loop, plan mode, MCP first-class, sessions and dashboard, hooks, memory and skills" width="860"/>
|
|
87
|
+
</p>
|
|
125
88
|
|
|
126
|
-
|
|
89
|
+
Permissions (`allow` / `ask` / `deny`), tool-call repair (flatten · scavenge · truncation · storm), and `/effort` for cheap turns round out the loop. [Architecture →](./docs/ARCHITECTURE.md) · [Dashboard mockup →](https://esengine.github.io/reasonix/design/agent-dashboard.html) · [TUI mockup →](https://esengine.github.io/reasonix/design/agent-tui-terminal.html) · [Website →](https://esengine.github.io/reasonix/)
|
|
127
90
|
|
|
128
91
|
---
|
|
129
92
|
|
|
130
93
|
## Contributing
|
|
131
94
|
|
|
132
|
-
Reasonix is solo-maintained but designed to grow. Scoped starter
|
|
133
|
-
|
|
134
|
-
- [#15 — `reasonix doctor --json` flag](https://github.com/esengine/reasonix/issues/15) · CLI · 2-3h
|
|
135
|
-
- [#16 — `web_search` / `web_fetch` actionable error messages](https://github.com/esengine/reasonix/issues/16) · tools · 2-3h
|
|
136
|
-
- [#17 — Slash command "did you mean?" suggestion](https://github.com/esengine/reasonix/issues/17) · TUI · 2-3h
|
|
137
|
-
- [#18 — Unit tests for `clipboard.ts`](https://github.com/esengine/reasonix/issues/18) · tests · 2-3h
|
|
138
|
-
|
|
139
|
-
Each has background, code pointers, acceptance criteria, hints. Browse all [`good first issue`](https://github.com/esengine/reasonix/labels/good%20first%20issue)s.
|
|
95
|
+
Reasonix is solo-maintained but designed to grow. Scoped starter tickets — each with background, code pointers, acceptance criteria, and hints — live under the [`good first issue`](https://github.com/esengine/reasonix/labels/good%20first%20issue) label. Pick anything open.
|
|
140
96
|
|
|
141
97
|
**Open Discussions** — opinions wanted:
|
|
142
98
|
- [#20 · CLI / TUI design](https://github.com/esengine/reasonix/discussions/20) — what's broken, what's missing, what would you change?
|
|
143
|
-
- [#21 · Dashboard design](https://github.com/esengine/reasonix/discussions/21) — react against the [proposed mockup](
|
|
99
|
+
- [#21 · Dashboard design](https://github.com/esengine/reasonix/discussions/21) — react against the [proposed mockup](https://esengine.github.io/reasonix/design/agent-dashboard.html)
|
|
144
100
|
- [#22 · Future feature wishlist](https://github.com/esengine/reasonix/discussions/22) — what would you build into Reasonix next?
|
|
145
101
|
|
|
146
|
-
**Before your first PR**: read [`CONTRIBUTING.md`](./CONTRIBUTING.md)
|
|
102
|
+
**Before your first PR**: read [`CONTRIBUTING.md`](./CONTRIBUTING.md) — short, strict project rules (comments, errors, libraries-over-hand-rolled). `tests/comment-policy.test.ts` enforces the comment ones; `npm run verify` is the pre-push gate. By participating you agree to the [Code of Conduct](./CODE_OF_CONDUCT.md). Security issues → [SECURITY.md](./SECURITY.md).
|
|
147
103
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
npm run verify # lint + typecheck + 1665 tests
|
|
154
|
-
```
|
|
104
|
+
### Contributors
|
|
105
|
+
|
|
106
|
+
<a href="https://github.com/esengine/reasonix/graphs/contributors">
|
|
107
|
+
<img src="https://contrib.rocks/image?repo=esengine/reasonix" alt="Contributors to esengine/reasonix"/>
|
|
108
|
+
</a>
|
|
155
109
|
|
|
156
110
|
---
|
|
157
111
|
|
|
@@ -160,7 +114,7 @@ npm run verify # lint + typecheck + 1665 tests
|
|
|
160
114
|
- **Multi-provider flexibility.** DeepSeek-only on purpose — every layer is tuned around DeepSeek's specific cache mechanic and pricing. Coupling to one backend is the feature.
|
|
161
115
|
- **IDE integration.** Terminal-first; the diff lives in `git diff`, the file tree in `ls`. The dashboard is a companion, not a Cursor replacement.
|
|
162
116
|
- **Hardest-leaderboard reasoning.** Claude Opus still wins some benchmarks. DeepSeek V4 is competitive on coding; if your work is "solve this PhD proof" rather than "fix this auth bug," start with Claude.
|
|
163
|
-
- **Air-gapped / fully-free.**
|
|
117
|
+
- **Air-gapped / fully-free.** Reasonix needs a paid DeepSeek API key. For air-gapped or zero-cost runs see Aider + Ollama or [Continue](https://continue.dev).
|
|
164
118
|
|
|
165
119
|
---
|
|
166
120
|
|
package/README.zh-CN.md
CHANGED
|
@@ -3,22 +3,26 @@
|
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
|
-
<
|
|
6
|
+
<a href="./README.md">English</a> · <strong>简体中文</strong> · <a href="https://esengine.github.io/reasonix/">官方网站</a>
|
|
7
7
|
</p>
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
10
|
-
<a href="
|
|
10
|
+
<a href="https://www.npmjs.com/package/reasonix"><img src="https://img.shields.io/npm/v/reasonix.svg" alt="npm version"/></a>
|
|
11
|
+
<a href="https://github.com/esengine/reasonix/actions/workflows/ci.yml"><img src="https://github.com/esengine/reasonix/actions/workflows/ci.yml/badge.svg" alt="CI"/></a>
|
|
12
|
+
<a href="./LICENSE"><img src="https://img.shields.io/npm/l/reasonix.svg" alt="license"/></a>
|
|
13
|
+
<a href="https://www.npmjs.com/package/reasonix"><img src="https://img.shields.io/npm/dm/reasonix.svg" alt="downloads"/></a>
|
|
14
|
+
<a href="./package.json"><img src="https://img.shields.io/node/v/reasonix.svg" alt="node"/></a>
|
|
15
|
+
<a href="https://github.com/esengine/reasonix/stargazers"><img src="https://img.shields.io/github/stars/esengine/reasonix.svg?style=flat&logo=github&label=stars" alt="GitHub stars"/></a>
|
|
16
|
+
<a href="https://github.com/esengine/reasonix/discussions"><img src="https://img.shields.io/github/discussions/esengine/reasonix.svg?logo=github&label=discussions" alt="Discussions"/></a>
|
|
11
17
|
</p>
|
|
12
18
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
[](https://github.com/esengine/reasonix/actions/workflows/ci.yml)
|
|
17
|
-
[](./LICENSE)
|
|
18
|
-
[](https://www.npmjs.com/package/reasonix)
|
|
19
|
-
[](./package.json)
|
|
19
|
+
<p align="center">
|
|
20
|
+
<strong>DeepSeek 原生的终端 AI 编程代理。</strong> 围绕 DeepSeek 的前缀缓存机制打造——省钱是真省,loop 便宜到可以一直开着。
|
|
21
|
+
</p>
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
<p align="center">
|
|
24
|
+
<img src="docs/assets/hero-stats.zh-CN.svg" alt="94% 实测前缀缓存命中 · 单任务比 Claude Code 便宜 ~30 倍 · MIT 终端原生" width="860"/>
|
|
25
|
+
</p>
|
|
22
26
|
|
|
23
27
|
---
|
|
24
28
|
|
|
@@ -26,50 +30,29 @@
|
|
|
26
30
|
|
|
27
31
|
```bash
|
|
28
32
|
cd my-project
|
|
29
|
-
npx reasonix code
|
|
33
|
+
npx reasonix code # 首次运行粘贴 DeepSeek API Key,之后会记住
|
|
30
34
|
```
|
|
31
35
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
reasonix code › 修一下 findByEmail 对大小写敏感的登录 bug
|
|
36
|
-
|
|
37
|
-
assistant
|
|
38
|
-
▸ tool<search_files> → src/users.ts, src/users.test.ts
|
|
39
|
-
▸ tool<read_file> → src/users.ts (412 chars)
|
|
40
|
-
|
|
41
|
-
src/users.ts
|
|
42
|
-
<<<<<<< SEARCH
|
|
43
|
-
return users.find(u => u.email === email);
|
|
44
|
-
=======
|
|
45
|
-
const needle = email.toLowerCase();
|
|
46
|
-
return users.find(u => u.email.toLowerCase() === needle);
|
|
47
|
-
>>>>>>> REPLACE
|
|
48
|
-
|
|
49
|
-
▸ 1 处待应用编辑 · /apply 写入 · /discard 丢弃
|
|
50
|
-
```
|
|
36
|
+
<p align="center">
|
|
37
|
+
<img src="docs/assets/hero-terminal.zh-CN.svg" alt="Reasonix code 模式预览 — 助手提出 SEARCH/REPLACE 编辑,未 /apply 不落盘" width="860"/>
|
|
38
|
+
</p>
|
|
51
39
|
|
|
52
|
-
|
|
40
|
+
要求 Node ≥ 22。已在 macOS、Linux、Windows(PowerShell · Git Bash · Windows Terminal)测过。[去拿 DeepSeek API Key →](https://platform.deepseek.com/api_keys) · 完整 flag 看 `reasonix code --help`。
|
|
53
41
|
|
|
54
42
|
---
|
|
55
43
|
|
|
56
44
|
## 横向对比
|
|
57
45
|
|
|
58
|
-
|
|
|
59
|
-
|
|
60
|
-
| 后端
|
|
61
|
-
| **单任务成本**
|
|
62
|
-
|
|
|
63
|
-
|
|
|
64
|
-
|
|
|
65
|
-
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
| 用户自定义 skill | 支持 | 支持 | — | — |
|
|
69
|
-
| 内嵌 web 仪表盘 | 支持 | — | 不适用 (IDE) | — |
|
|
70
|
-
| Hooks(`PreToolUse` 等) | 支持 | 支持 | — | — |
|
|
71
|
-
| 沙箱边界 | 严格 | 支持 | 部分 | 支持 |
|
|
72
|
-
| 持久化的工作区会话 | 支持 | 部分 | 不适用 | — |
|
|
46
|
+
| | Reasonix | Claude Code | Cursor | Aider |
|
|
47
|
+
|----------------------------|-------------------|-----------------|--------------------|-------------------|
|
|
48
|
+
| 后端 | DeepSeek V4 | Anthropic | OpenAI / Anthropic | 任意(OpenRouter)|
|
|
49
|
+
| **单任务成本** | **~¥0.01–0.04** | ~¥0.40–4 | ¥150/月 + 用量 | 不一 |
|
|
50
|
+
| 协议 | **MIT** | 闭源 | 闭源 | Apache 2 |
|
|
51
|
+
| **DeepSeek 前缀缓存命中** | **94%**(实测) | 不适用 | 不适用 | ~33%(基线) |
|
|
52
|
+
| 内嵌 web 仪表盘 | 支持 | — | 不适用 (IDE) | — |
|
|
53
|
+
| 持久化的工作区会话 | 支持 | 部分 | 不适用 | — |
|
|
54
|
+
|
|
55
|
+
计划模式、编辑审查、MCP、skill、Hooks、沙箱在 Reasonix 和大多数同类里都是"支持"——具体怎么做的看下面的功能一览。
|
|
73
56
|
|
|
74
57
|
数据来自 `benchmarks/tau-bench-lite`(8 个多轮任务 × 3 次重放,真实 `deepseek-chat`)。[完整 transcript →](./benchmarks/)
|
|
75
58
|
|
|
@@ -99,59 +82,30 @@ src/users.ts
|
|
|
99
82
|
|
|
100
83
|
## 功能一览
|
|
101
84
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
### 工具注册表
|
|
106
|
-
原生:`read_file`、`write_file`、`edit_file`(SEARCH/REPLACE)、`list_directory`、`search_files`、`grep_files`、`run_command`、`run_background`、`web_search`、`web_fetch`。全部沙箱在启动目录内。**MCP 一等公民** —— `--mcp 'name=cmd args'` 加外部服务器(stdio / Streamable HTTP / SSE),工具按前缀合入注册表。
|
|
107
|
-
|
|
108
|
-
### 计划模式 + 编辑审查
|
|
109
|
-
`/plan` 进只读审计闸,模型在你批准书面计划之前不能下发编辑。编辑以 SEARCH/REPLACE 块的形式出现;不 `/apply` 不落盘。`/walk` 一次过一处编辑。`/discard` 全部丢弃。
|
|
110
|
-
|
|
111
|
-
### 工作区作用域的会话
|
|
112
|
-
会话存在 `~/.reasonix/sessions/`,按启动目录过滤。`--new` 会用时间戳保留旧会话;`--resume` 找最新的。会话中途用 `/sessions` 切换,不必退出。
|
|
113
|
-
|
|
114
|
-
### 内嵌 web 仪表盘
|
|
115
|
-
`/dashboard` 打开一个本地 SPA,镜像运行中的 TUI —— chat(在老 PowerShell 上 TUI 渲染崩了时也能完整接管)、editor(文件树 + CodeMirror)、Sessions / Plans / Usage / Tools / MCP / Memory / Hooks / Settings。token 鉴权、CSRF 校验、临时端口。[设计稿 →](./design/agent-dashboard.html)
|
|
116
|
-
|
|
117
|
-
### Hooks
|
|
118
|
-
可配置的 shell 脚本,在 `PreToolUse`、`PostToolUse`、`UserPromptSubmit`、`Stop`、`Notification`、`SessionEnd` 触发。配置在 `.reasonix/settings.json`(项目级)或 `~/.reasonix/settings.json`(用户级)。harness 来执行,不是模型。
|
|
119
|
-
|
|
120
|
-
### Memory + Skills
|
|
121
|
-
两层:项目作用域的 `REASONIX.md`(提交进 git,写仓库约定),和用户作用域的 `~/.reasonix/memory/`(私有,模型可以通过 `remember` 工具自己写)。Skills 是用户编写的 prompt 包,可选用 sub-agent 执行。
|
|
122
|
-
|
|
123
|
-
### 权限
|
|
124
|
-
`allow` / `ask` / `deny` 模式匹配命令和工具。`npm publish` 默认 `ask`;`rm -rf *` 和 `git push --force *` 默认 `deny`。"批准一次"的决定可以按前缀记住。
|
|
85
|
+
<p align="center">
|
|
86
|
+
<img src="docs/assets/feature-grid.zh-CN.svg" alt="功能一览 — 缓存优先循环、计划模式、MCP 一等公民、会话与仪表盘、Hooks、Memory 与 Skills" width="860"/>
|
|
87
|
+
</p>
|
|
125
88
|
|
|
126
|
-
|
|
89
|
+
权限系统(`allow` / `ask` / `deny`)、tool-call repair(flatten · scavenge · truncation · storm)、`/effort` 给便宜回合降档——一起把整个 loop 兜起来。[架构文档 →](./docs/ARCHITECTURE.md) · [Dashboard 设计稿 →](https://esengine.github.io/reasonix/design/agent-dashboard.html) · [TUI 设计稿 →](https://esengine.github.io/reasonix/design/agent-tui-terminal.html) · [官网 →](https://esengine.github.io/reasonix/)
|
|
127
90
|
|
|
128
91
|
---
|
|
129
92
|
|
|
130
93
|
## 参与贡献
|
|
131
94
|
|
|
132
|
-
Reasonix
|
|
133
|
-
|
|
134
|
-
- [#15 — 给 `reasonix doctor` 加 `--json` flag](https://github.com/esengine/reasonix/issues/15) · CLI · 2-3 小时
|
|
135
|
-
- [#16 — 让 `web_search` / `web_fetch` 的错误信息可执行](https://github.com/esengine/reasonix/issues/16) · tools · 2-3 小时
|
|
136
|
-
- [#17 — Slash 命令的 "did you mean?" 建议](https://github.com/esengine/reasonix/issues/17) · TUI · 2-3 小时
|
|
137
|
-
- [#18 — `clipboard.ts` 的单元测试](https://github.com/esengine/reasonix/issues/18) · 测试 · 2-3 小时
|
|
138
|
-
|
|
139
|
-
每个 issue 都有背景说明、代码定位、验收标准、提示。所有 [`good first issue`](https://github.com/esengine/reasonix/labels/good%20first%20issue) 在这。
|
|
95
|
+
Reasonix 现在主要是单人维护,但是为协作设计的。给新手准备的入门 issue —— 每个都带背景说明、代码定位、验收标准、提示 —— 全部挂在 [`good first issue`](https://github.com/esengine/reasonix/labels/good%20first%20issue) 标签下。挑任意一个还没人认领的就行。
|
|
140
96
|
|
|
141
97
|
**正在征集意见的 Discussions:**
|
|
142
98
|
- [#20 · CLI / TUI 设计](https://github.com/esengine/reasonix/discussions/20) — 哪里坏了、哪里少东西、哪里你会怎么改?
|
|
143
|
-
- [#21 · Dashboard 设计](https://github.com/esengine/reasonix/discussions/21) — 对着[设计稿](
|
|
99
|
+
- [#21 · Dashboard 设计](https://github.com/esengine/reasonix/discussions/21) — 对着[设计稿](https://esengine.github.io/reasonix/design/agent-dashboard.html)拍砖
|
|
144
100
|
- [#22 · 未来功能愿望单](https://github.com/esengine/reasonix/discussions/22) — 你希望 Reasonix 长出什么功能?
|
|
145
101
|
|
|
146
|
-
**第一次提 PR 之前**:先读 [`CONTRIBUTING.md`](./CONTRIBUTING.md)
|
|
102
|
+
**第一次提 PR 之前**:先读 [`CONTRIBUTING.md`](./CONTRIBUTING.md) —— 短小、严格的项目规则(注释、错误处理、用现成库不手写)。`tests/comment-policy.test.ts` 静态强制执行注释那部分,`npm run verify` 是 push 前的闸。参与本项目即同意 [行为准则](./CODE_OF_CONDUCT.md)。安全相关问题请走 [SECURITY.md](./SECURITY.md)。
|
|
147
103
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
npm run verify # lint + typecheck + 1665 个测试
|
|
154
|
-
```
|
|
104
|
+
### 贡献者
|
|
105
|
+
|
|
106
|
+
<a href="https://github.com/esengine/reasonix/graphs/contributors">
|
|
107
|
+
<img src="https://contrib.rocks/image?repo=esengine/reasonix" alt="esengine/reasonix 贡献者"/>
|
|
108
|
+
</a>
|
|
155
109
|
|
|
156
110
|
---
|
|
157
111
|
|
|
@@ -160,7 +114,7 @@ npm run verify # lint + typecheck + 1665 个测试
|
|
|
160
114
|
- **多供应商灵活性。** 故意只做 DeepSeek —— 每一层都为 DeepSeek 特定的缓存机制和定价调过。绑死一个后端是 feature,不是要克服的限制。
|
|
161
115
|
- **IDE 集成。** 终端优先;diff 在 `git diff`,文件树在 `ls`。仪表盘是 TUI 的伴生,不是 Cursor 的替代。
|
|
162
116
|
- **追最难的 reasoning 榜单。** Claude Opus 在某些榜单上还是赢家。DeepSeek V4 在编程任务上有竞争力;如果你的工作是"解一个 PhD 级证明"而不是"修个 auth bug",先用 Claude。
|
|
163
|
-
- **完全离线 / 永远免费。** DeepSeek API
|
|
117
|
+
- **完全离线 / 永远免费。** Reasonix 需要付费的 DeepSeek API Key。要离线 / 零成本,看 Aider + Ollama 或 [Continue](https://continue.dev)。
|
|
164
118
|
|
|
165
119
|
---
|
|
166
120
|
|
package/dashboard/app.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* Reasonix dashboard styles — anchored to design/agent-dashboard.html.
|
|
1
|
+
/* Reasonix dashboard styles — anchored to docs/design/agent-dashboard.html.
|
|
2
2
|
* Re-import: extract the <style> block from the design mockup verbatim.
|
|
3
3
|
* Doc-chrome selectors (.page / .toc / .section / .subsec / .mock) are
|
|
4
4
|
* unused in the live dashboard but kept so the CSS stays in lockstep
|