reasonix 0.30.5 → 0.32.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 CHANGED
@@ -98,6 +98,20 @@ npx reasonix code # paste a DeepSeek API key on first run; persists after
98
98
 
99
99
  Requires Node ≥ 22. Tested on macOS · Linux · Windows (PowerShell · Git Bash · Windows Terminal). Get a [DeepSeek API key →](https://platform.deepseek.com/api_keys) · `reasonix code --help` for flags.
100
100
 
101
+ `npx` is the recommended path — no global install, always picks up the latest version. If you'll use Reasonix daily and want `reasonix` on your `PATH`, run `reasonix update` once and it'll do the `npm install -g` for you.
102
+
103
+ ### Subcommand cheatsheet
104
+
105
+ | Command | When to use |
106
+ |---|---|
107
+ | `reasonix code [dir]` | Coding agent rooted at a project. **Start here.** |
108
+ | `reasonix chat` | Plain chat — no filesystem tools, just a conversation with persisted history. |
109
+ | `reasonix run "task"` | One-shot, streams the answer to stdout. Good for shell pipes. |
110
+ | `reasonix doctor` | Environment health check (Node version, API key, MCP wiring). |
111
+ | `reasonix update` | Upgrade Reasonix itself. |
112
+
113
+ Other subcommands (`replay` · `diff` · `events` · `stats` · `index` · `mcp` · `prune-sessions`) are listed in `reasonix --help` and on the [CLI reference](https://esengine.github.io/DeepSeek-Reasonix/#cli).
114
+
101
115
  **Working in a different folder:** Reasonix scopes filesystem tools to the launch directory. To work elsewhere, pass `--dir`:
102
116
 
103
117
  ```bash
@@ -119,15 +133,11 @@ Edit the file (`description:` frontmatter + body), then `/skill list` to see it.
119
133
 
120
134
  ## What makes Reasonix different
121
135
 
122
- The loop is organized around four pillars. Each one solves a problem generic agent frameworks don't even see — because they were designed for a different cache mechanic.
123
-
124
- <p align="center">
125
- <a href="./docs/ARCHITECTURE.md"><img src="docs/assets/pillars.svg" alt="Reasonix four pillars — Cache-first loop, R1 thought harvesting, Tool-call repair, Cost control" width="880"/></a>
126
- </p>
136
+ The loop is organized around three pillars. Each one solves a problem generic agent frameworks don't even see — because they were designed for a different cache mechanic.
127
137
 
128
138
  <sub align="center">
129
139
 
130
- Click any card to read the full architecture writeup → [Pillar 1](./docs/ARCHITECTURE.md#pillar-1--cache-first-loop) · [Pillar 2](./docs/ARCHITECTURE.md#pillar-2--r1-thought-harvesting-opt-in) · [Pillar 3](./docs/ARCHITECTURE.md#pillar-3--tool-call-repair) · [Pillar 4](./docs/ARCHITECTURE.md#pillar-4--cost-control-v06)
140
+ Click through to the full architecture writeup → [Pillar 1 — Cache-first loop](./docs/ARCHITECTURE.md#pillar-1--cache-first-loop) · [Pillar 2 Tool-call repair](./docs/ARCHITECTURE.md#pillar-2--tool-call-repair) · [Pillar 3 — Cost control](./docs/ARCHITECTURE.md#pillar-3--cost-control-v06)
131
141
 
132
142
  </sub>
133
143
 
@@ -162,7 +172,7 @@ For live cache-hit rates, costs, and methodology, see [`benchmarks/`](./benchmar
162
172
 
163
173
  ## Documentation
164
174
 
165
- - [**Architecture**](./docs/ARCHITECTURE.md) — the four pillars, cache-first loop, harvesting, scaffolds
175
+ - [**Architecture**](./docs/ARCHITECTURE.md) — three pillars: cache-first loop, tool-call repair, cost control
166
176
  - [**Benchmarks**](./benchmarks/) — τ-bench-lite harness, transcripts, cost methodology
167
177
  - [**Website**](https://esengine.github.io/DeepSeek-Reasonix/) — getting started, dashboard mockup, TUI mockup
168
178
  - [**Contributing**](./CONTRIBUTING.md) — comment policy, error-handling rules, library-over-hand-rolled
package/README.zh-CN.md CHANGED
@@ -52,6 +52,20 @@ npx reasonix code # 首次运行粘贴 DeepSeek API Key,之后会记住
52
52
 
53
53
  要求 Node ≥ 22。已在 macOS · Linux · Windows(PowerShell · Git Bash · Windows Terminal)测过。[去拿 DeepSeek API Key →](https://platform.deepseek.com/api_keys) · 完整 flag 看 `reasonix code --help`。
54
54
 
55
+ `npx` 是推荐路径 —— 不用全局安装,每次都拿到最新版本。如果你天天用、想把 `reasonix` 装到 `PATH` 上,跑一次 `reasonix update` 就行,它会替你跑 `npm install -g`。
56
+
57
+ ### 子命令速查
58
+
59
+ | 命令 | 适用场景 |
60
+ |---|---|
61
+ | `reasonix code [dir]` | 锁在某个项目根目录的编码 agent。**先用这个。** |
62
+ | `reasonix chat` | 纯聊天 —— 不挂文件系统工具,只是带历史的对话。 |
63
+ | `reasonix run "task"` | 一次性,把答案直接流到 stdout。适合 shell 管道。 |
64
+ | `reasonix doctor` | 环境体检(Node 版本、API Key、MCP 接线)。 |
65
+ | `reasonix update` | 升级 Reasonix 本身。 |
66
+
67
+ 其他子命令(`replay` · `diff` · `events` · `stats` · `index` · `mcp` · `prune-sessions`)见 `reasonix --help` 和 [CLI 参考](https://esengine.github.io/DeepSeek-Reasonix/#cli)。
68
+
55
69
  **在其他目录工作:** Reasonix 把文件系统工具作用域绑定在启动目录。要在别的目录工作,传 `--dir`:
56
70
 
57
71
  ```bash
@@ -73,15 +87,11 @@ npx reasonix code --dir /path/to/project # 也可以用相对路径
73
87
 
74
88
  ## Reasonix 的不同之处
75
89
 
76
- 整个循环围绕四根支柱组织。每一根解决的都是通用 agent 框架根本看不见的问题 —— 因为它们是为另一种缓存机制设计的。
77
-
78
- <p align="center">
79
- <a href="./docs/ARCHITECTURE.md"><img src="docs/assets/pillars.zh-CN.svg" alt="Reasonix 四大支柱 — 缓存优先循环、R1 思维提取、工具调用修复、成本控制" width="880"/></a>
80
- </p>
90
+ 整个循环围绕三根支柱组织。每一根解决的都是通用 agent 框架根本看不见的问题 —— 因为它们是为另一种缓存机制设计的。
81
91
 
82
92
  <sub align="center">
83
93
 
84
- 各支柱完整说明 → [Pillar 1](./docs/ARCHITECTURE.md#pillar-1--cache-first-loop) · [Pillar 2](./docs/ARCHITECTURE.md#pillar-2--r1-thought-harvesting-opt-in) · [Pillar 3](./docs/ARCHITECTURE.md#pillar-3--tool-call-repair) · [Pillar 4](./docs/ARCHITECTURE.md#pillar-4--cost-control-v06)
94
+ 各支柱完整说明 → [Pillar 1 — 缓存优先循环](./docs/ARCHITECTURE.md#pillar-1--cache-first-loop) · [Pillar 2 工具调用修复](./docs/ARCHITECTURE.md#pillar-2--tool-call-repair) · [Pillar 3 — 成本控制](./docs/ARCHITECTURE.md#pillar-3--cost-control-v06)
85
95
 
86
96
  </sub>
87
97
 
package/dashboard/app.css CHANGED
@@ -2019,6 +2019,155 @@ input:focus, textarea:focus, select:focus { border-color: var(--c-brand); }
2019
2019
  max-height: 200px;
2020
2020
  }
2021
2021
 
2022
+ .modal-picker-search {
2023
+ width: 100%;
2024
+ background: var(--bg-elev-2);
2025
+ border: 1px solid var(--bd);
2026
+ border-radius: var(--r);
2027
+ color: var(--fg-1);
2028
+ padding: 6px 10px;
2029
+ font-size: 13px;
2030
+ margin-bottom: 8px;
2031
+ }
2032
+
2033
+ .modal-picker-list {
2034
+ display: flex;
2035
+ flex-direction: column;
2036
+ gap: 2px;
2037
+ max-height: 320px;
2038
+ overflow-y: auto;
2039
+ border: 1px solid var(--bd);
2040
+ border-radius: var(--r);
2041
+ background: var(--bg-elev-2);
2042
+ padding: 4px;
2043
+ margin-bottom: 8px;
2044
+ }
2045
+
2046
+ .modal-picker-row {
2047
+ display: grid;
2048
+ grid-template-columns: 1fr auto;
2049
+ gap: 4px 8px;
2050
+ align-items: baseline;
2051
+ padding: 6px 8px;
2052
+ background: transparent;
2053
+ border: 1px solid transparent;
2054
+ border-radius: var(--r-sm, 4px);
2055
+ color: var(--fg-1);
2056
+ text-align: left;
2057
+ cursor: pointer;
2058
+ }
2059
+
2060
+ .modal-picker-row:hover {
2061
+ background: var(--bg-elev-3, var(--bg-elev-2));
2062
+ }
2063
+
2064
+ .modal-picker-row.selected {
2065
+ border-color: var(--accent, #fcd34d);
2066
+ background: var(--bg-elev-3, var(--bg-elev-2));
2067
+ }
2068
+
2069
+ .modal-picker-title {
2070
+ grid-column: 1;
2071
+ font-weight: 500;
2072
+ }
2073
+
2074
+ .modal-picker-badge {
2075
+ grid-column: 2;
2076
+ font-size: 11px;
2077
+ color: var(--fg-2);
2078
+ padding: 1px 6px;
2079
+ border-radius: 999px;
2080
+ background: var(--bg-elev-1, var(--bg-elev-2));
2081
+ }
2082
+
2083
+ .modal-picker-subtitle {
2084
+ grid-column: 1 / 3;
2085
+ font-size: 12px;
2086
+ color: var(--fg-2);
2087
+ }
2088
+
2089
+ .modal-picker-meta {
2090
+ grid-column: 1 / 3;
2091
+ font-size: 11px;
2092
+ color: var(--fg-3, var(--fg-2));
2093
+ }
2094
+
2095
+ .modal-picker-empty {
2096
+ padding: 16px;
2097
+ text-align: center;
2098
+ color: var(--fg-2);
2099
+ font-size: 12px;
2100
+ }
2101
+
2102
+ .modal-picker-more {
2103
+ align-self: center;
2104
+ margin: 0 auto 8px;
2105
+ font-size: 12px;
2106
+ }
2107
+
2108
+ .modal-picker-form {
2109
+ display: flex;
2110
+ flex-direction: column;
2111
+ gap: 8px;
2112
+ margin-bottom: 8px;
2113
+ }
2114
+
2115
+ .modal-picker-form input {
2116
+ width: 100%;
2117
+ background: var(--bg-elev-2);
2118
+ border: 1px solid var(--bd);
2119
+ border-radius: var(--r);
2120
+ color: var(--fg-1);
2121
+ padding: 6px 10px;
2122
+ font-size: 13px;
2123
+ }
2124
+
2125
+ .modal-viewer-steps {
2126
+ list-style: none;
2127
+ padding: 0;
2128
+ margin: 0 0 8px;
2129
+ display: flex;
2130
+ flex-direction: column;
2131
+ gap: 4px;
2132
+ }
2133
+
2134
+ .modal-viewer-step {
2135
+ display: grid;
2136
+ grid-template-columns: 18px 1fr;
2137
+ gap: 6px;
2138
+ padding: 4px 8px;
2139
+ border-radius: var(--r-sm, 4px);
2140
+ background: var(--bg-elev-2);
2141
+ align-items: baseline;
2142
+ }
2143
+
2144
+ .modal-viewer-step-mark {
2145
+ text-align: center;
2146
+ font-weight: 600;
2147
+ color: var(--fg-2);
2148
+ }
2149
+
2150
+ .modal-viewer-step-done .modal-viewer-step-mark {
2151
+ color: #86efac;
2152
+ }
2153
+
2154
+ .modal-viewer-step-title {
2155
+ color: var(--fg-1);
2156
+ font-size: 13px;
2157
+ }
2158
+
2159
+ .modal-viewer-step-done .modal-viewer-step-title {
2160
+ color: var(--fg-2);
2161
+ }
2162
+
2163
+ .modal-viewer-body {
2164
+ margin-top: 4px;
2165
+ font-size: 13px;
2166
+ color: var(--fg-1);
2167
+ max-height: 360px;
2168
+ overflow-y: auto;
2169
+ }
2170
+
2022
2171
  /* Side-by-side diff for the edit-review modal — left is "before" (red
2023
2172
  * tint), right is "after" (green tint), context rows render unchanged.
2024
2173
  * Lines hljs-highlight per the file's language. */