@gavinc-cn/touchstone-dsh 0.1.0 → 0.2.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/LICENSE +0 -0
- package/README.md +22 -1
- package/README.zh.md +12 -1
- package/agents.py +0 -0
- package/auth.py +0 -0
- package/board.py +1119 -93
- package/builtin_assets.py +0 -0
- package/builtin_prompts/free_style/flow.md +0 -0
- package/builtin_prompts/free_style/load_test.md +0 -0
- package/builtin_prompts/free_style/templates/bug_report_template.md +0 -0
- package/builtin_prompts/free_style/templates/case_template.md +0 -0
- package/builtin_prompts/free_style/templates/index_template.md +0 -0
- package/builtin_prompts/free_style/templates/load_charts_template.md +0 -0
- package/builtin_prompts/free_style/templates/load_index_template.md +0 -0
- package/builtin_prompts/free_style/templates/load_plan_template.md +0 -0
- package/builtin_prompts/free_style/templates/load_scenario_template.md +0 -0
- package/builtin_prompts/free_style/templates/status_template.md +0 -0
- package/chat.py +590 -17
- package/db.py +63 -12
- package/dsh-plugin/cordis.patch.yml +7 -3
- package/dsh-plugin/install.sh +8 -5
- package/dsh-plugin/lib/agent-driver.js +895 -126
- package/dsh-plugin/lib/client.bundle.js +94 -9
- package/dsh-plugin/lib/index.js +399 -20
- package/dsh-plugin/scripts/build.mjs +0 -0
- package/dsh-plugin/scripts/prepack-check.mjs +0 -0
- package/dsh-plugin/scripts/select-bundle.mjs +0 -0
- package/dsh-plugin/src/client.js +94 -9
- package/dshdriver.py +74 -5
- package/dshevents.py +100 -6
- package/export_cases.py +0 -0
- package/extensions/dsh-autocommit/asset.json +0 -0
- package/extensions/dsh-autocommit/pkg/lib/index.mjs +0 -0
- package/extensions/dsh-autocommit/pkg/package.json +0 -0
- package/feishu.py +1226 -42
- package/feishu_conv.py +920 -0
- package/lib.py +0 -0
- package/lifecycle.py +0 -0
- package/loadcase.py +0 -0
- package/loadgen.py +0 -0
- package/localbus.py +0 -0
- package/migrate_p7b.py +0 -0
- package/package.json +8 -3
- package/platcompat.py +0 -0
- package/prompts.py +0 -0
- package/rag.py +0 -0
- package/requirements.txt +2 -1
- package/runner.py +11 -0
- package/server.py +264 -30
- package/sessparse.py +244 -44
- package/touchstone.py +8 -4
- package/waitq.py +23 -0
- package/webui/dist-plugin/assets/index-JLwyZZxC.js +484 -0
- package/webui/dist-plugin/assets/index-tJ0TlvQ3.css +1 -0
- package/webui/dist-plugin/index.html +2 -2
- package/worktree.py +100 -0
- package/webui/dist-plugin/assets/index-B0WoP1Qy.css +0 -1
- package/webui/dist-plugin/assets/index-eHpxBfP6.js +0 -473
package/LICENSE
CHANGED
|
File without changes
|
package/README.md
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
**An AI-agent-driven automated testing platform.** Point it at a repository; it explores the code, writes and runs test cases, files what breaks, fixes it, and re-verifies the fix.
|
|
6
6
|
|
|
7
7
|
[](LICENSE)
|
|
8
|
+
[](https://www.npmjs.com/package/@gavinc-cn/touchstone-dsh)
|
|
8
9
|
[](https://www.python.org/)
|
|
9
10
|
[](https://nodejs.org/)
|
|
10
11
|
[](https://github.com/deepseek-ai/deepseek-harness)
|
|
@@ -164,6 +165,14 @@ grep '一次性初始口令' .run/server.log # or: ./touchstone.sh status
|
|
|
164
165
|
You will be asked to change it on first login. Set `TS_ADMIN_PASSWORD=<your-password>` before the first
|
|
165
166
|
start to skip the one-time password (and the forced change).
|
|
166
167
|
|
|
168
|
+
> **Plugin mode (`dsh`) is password-free by default** (2026-10-08): the shell passes
|
|
169
|
+
> `TS_ADMIN_PASSWORDLESS=1`, so the seeded `admin` has an **empty password** and no forced change — the
|
|
170
|
+
> panel is auto-logged-in as `admin` anyway. Set a password in **Settings → Change password** whenever you
|
|
171
|
+
> want one (it then becomes the password used for direct/standalone logins). The plugin also writes the
|
|
172
|
+
> backend's stdout/stderr line by line to `<db dir>/plugin-backend.log` (next to
|
|
173
|
+
> `~/.touchstone/touchstone.db`) — that is where the plugin-mode startup banner and the
|
|
174
|
+
> `[board]`/`[waitq]`/`[runner]` diagnostics can be read.
|
|
175
|
+
|
|
167
176
|
> Standalone mode gives you the full site — projects, case library, bug reports, board, queue, monitoring —
|
|
168
177
|
> but **agent execution needs plugin mode** (below), because the agent runs inside the `dsh` host process.
|
|
169
178
|
|
|
@@ -187,6 +196,17 @@ The platform's own Python dependencies are installed with pip, not npm:
|
|
|
187
196
|
|
|
188
197
|
```bash
|
|
189
198
|
pip install -r ~/.dsh/profiles/web/node_modules/@gavinc-cn/touchstone-dsh/requirements.txt
|
|
199
|
+
# Windows: python -m pip install ... (the official installer ships python.exe, not python3)
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
The plugin resolves the interpreter itself when you do not configure one: it probes `python` first, then
|
|
203
|
+
`python3` (the same order as `touchstone.cmd`), and uses the first one that actually runs. If that is not the
|
|
204
|
+
interpreter where you installed the dependencies, the missing-dependency page prints the exact command for the
|
|
205
|
+
interpreter it picked; to pin another one, set `pythonPath` in the profile patch:
|
|
206
|
+
|
|
207
|
+
```yaml
|
|
208
|
+
- id: touchstone-dsh
|
|
209
|
+
config: { pythonPath: /path/to/python }
|
|
190
210
|
```
|
|
191
211
|
|
|
192
212
|
No `repoDir` is needed: the package carries `server.py` and `webui/dist-plugin`, so the plugin falls back to
|
|
@@ -203,7 +223,7 @@ The installer prints the optional profile patch for pointing the plugin at your
|
|
|
203
223
|
specific interpreter); skip it to use the package's own directory:
|
|
204
224
|
|
|
205
225
|
```yaml
|
|
206
|
-
- id: touchstone
|
|
226
|
+
- id: touchstone-dsh
|
|
207
227
|
config: { repoDir: /path/to/touchstone-dsh, pythonPath: /path/to/python3 }
|
|
208
228
|
```
|
|
209
229
|
|
|
@@ -235,6 +255,7 @@ python touchstone.py start | stop | restart | status | build | test
|
|
|
235
255
|
| `TS_PYTHON` | `python3` | Interpreter used by the launcher (must have the runtime dependencies) |
|
|
236
256
|
| `TOUCHSTONE_DB` | `~/.touchstone/touchstone.db` | SQLite database. Must live on a local disk — file locking does not work on CIFS/network shares |
|
|
237
257
|
| `TS_ADMIN_PASSWORD` | *(random, printed once)* | Initial `admin` password; setting it skips the forced change |
|
|
258
|
+
| `TS_ADMIN_PASSWORDLESS` | `1` in plugin mode | Seed `admin` with an empty password and no forced change (the plugin shell sets this); ignored when `TS_ADMIN_PASSWORD` is set |
|
|
238
259
|
| `TS_WEB_DIR` | `webui/dist` | Static front-end directory the server serves |
|
|
239
260
|
| `TOUCHSTONE_RUN_DIR` | `.run/` in the repository | PID / log / port files |
|
|
240
261
|
| `TS_EXT_DIR` | `extensions` | Root of the built-in asset manifests |
|
package/README.zh.md
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
把失败沉淀成 bug 报告,修完再复测一遍。
|
|
7
7
|
|
|
8
8
|
[](LICENSE)
|
|
9
|
+
[](https://www.npmjs.com/package/@gavinc-cn/touchstone-dsh)
|
|
9
10
|
[](https://www.python.org/)
|
|
10
11
|
[](https://nodejs.org/)
|
|
11
12
|
[](https://github.com/deepseek-ai/deepseek-harness)
|
|
@@ -177,6 +178,16 @@ node ~/.dsh/profiles/web/node_modules/@gavinc-cn/touchstone-dsh/dsh-plugin/scrip
|
|
|
177
178
|
|
|
178
179
|
```bash
|
|
179
180
|
pip install -r ~/.dsh/profiles/web/node_modules/@gavinc-cn/touchstone-dsh/requirements.txt
|
|
181
|
+
# Windows 用 python -m pip install ...(官方安装器只装 python.exe,没有 python3)
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
解释器不用配也行:插件自己探——先试 `python`、再试 `python3`(与 `touchstone.cmd` 同序),
|
|
185
|
+
用第一个真能跑起来的那个。如果探到的不是你装依赖的那支,缺依赖提示页里给的就是**它探到的那支**
|
|
186
|
+
的解释器命令;想指定别支,在 profile patch 里写 `pythonPath`:
|
|
187
|
+
|
|
188
|
+
```yaml
|
|
189
|
+
- id: touchstone-dsh
|
|
190
|
+
config: { pythonPath: /path/to/python }
|
|
180
191
|
```
|
|
181
192
|
|
|
182
193
|
**不需要配 `repoDir`**:包里带着 `server.py` 与 `webui/dist-plugin`,插件缺省就用包自身目录。
|
|
@@ -191,7 +202,7 @@ cd touchstone-dsh
|
|
|
191
202
|
安装脚本会打印**可选**的 profile 覆盖(指向本机工作副本、或指定解释器);不写就用包自身目录:
|
|
192
203
|
|
|
193
204
|
```yaml
|
|
194
|
-
- id: touchstone
|
|
205
|
+
- id: touchstone-dsh
|
|
195
206
|
config: { repoDir: /path/to/touchstone-dsh, pythonPath: /path/to/python3 }
|
|
196
207
|
```
|
|
197
208
|
|
package/agents.py
CHANGED
|
File without changes
|
package/auth.py
CHANGED
|
File without changes
|