@gavinc-cn/touchstone-dsh 0.1.1 → 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 +21 -1
- package/README.zh.md +11 -1
- package/auth.py +0 -0
- package/board.py +775 -71
- 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 +62 -11
- package/dsh-plugin/cordis.patch.yml +7 -3
- package/dsh-plugin/install.sh +8 -5
- package/dsh-plugin/lib/agent-driver.js +710 -89
- package/dsh-plugin/lib/client.bundle.js +94 -9
- package/dsh-plugin/lib/index.js +242 -22
- 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 +65 -3
- 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 +1197 -34
- 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 +1 -1
- package/platcompat.py +0 -0
- package/prompts.py +0 -0
- package/rag.py +0 -0
- package/requirements.txt +2 -1
- package/server.py +218 -26
- package/sessparse.py +150 -44
- package/touchstone.py +6 -3
- 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 +0 -0
- package/webui/dist-plugin/assets/index-B0WoP1Qy.css +0 -1
- package/webui/dist-plugin/assets/index-DtwKoi1T.js +0 -473
package/LICENSE
CHANGED
|
File without changes
|
package/README.md
CHANGED
|
@@ -165,6 +165,14 @@ grep '一次性初始口令' .run/server.log # or: ./touchstone.sh status
|
|
|
165
165
|
You will be asked to change it on first login. Set `TS_ADMIN_PASSWORD=<your-password>` before the first
|
|
166
166
|
start to skip the one-time password (and the forced change).
|
|
167
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
|
+
|
|
168
176
|
> Standalone mode gives you the full site — projects, case library, bug reports, board, queue, monitoring —
|
|
169
177
|
> but **agent execution needs plugin mode** (below), because the agent runs inside the `dsh` host process.
|
|
170
178
|
|
|
@@ -188,6 +196,17 @@ The platform's own Python dependencies are installed with pip, not npm:
|
|
|
188
196
|
|
|
189
197
|
```bash
|
|
190
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 }
|
|
191
210
|
```
|
|
192
211
|
|
|
193
212
|
No `repoDir` is needed: the package carries `server.py` and `webui/dist-plugin`, so the plugin falls back to
|
|
@@ -204,7 +223,7 @@ The installer prints the optional profile patch for pointing the plugin at your
|
|
|
204
223
|
specific interpreter); skip it to use the package's own directory:
|
|
205
224
|
|
|
206
225
|
```yaml
|
|
207
|
-
- id: touchstone
|
|
226
|
+
- id: touchstone-dsh
|
|
208
227
|
config: { repoDir: /path/to/touchstone-dsh, pythonPath: /path/to/python3 }
|
|
209
228
|
```
|
|
210
229
|
|
|
@@ -236,6 +255,7 @@ python touchstone.py start | stop | restart | status | build | test
|
|
|
236
255
|
| `TS_PYTHON` | `python3` | Interpreter used by the launcher (must have the runtime dependencies) |
|
|
237
256
|
| `TOUCHSTONE_DB` | `~/.touchstone/touchstone.db` | SQLite database. Must live on a local disk — file locking does not work on CIFS/network shares |
|
|
238
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 |
|
|
239
259
|
| `TS_WEB_DIR` | `webui/dist` | Static front-end directory the server serves |
|
|
240
260
|
| `TOUCHSTONE_RUN_DIR` | `.run/` in the repository | PID / log / port files |
|
|
241
261
|
| `TS_EXT_DIR` | `extensions` | Root of the built-in asset manifests |
|
package/README.zh.md
CHANGED
|
@@ -178,6 +178,16 @@ node ~/.dsh/profiles/web/node_modules/@gavinc-cn/touchstone-dsh/dsh-plugin/scrip
|
|
|
178
178
|
|
|
179
179
|
```bash
|
|
180
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 }
|
|
181
191
|
```
|
|
182
192
|
|
|
183
193
|
**不需要配 `repoDir`**:包里带着 `server.py` 与 `webui/dist-plugin`,插件缺省就用包自身目录。
|
|
@@ -192,7 +202,7 @@ cd touchstone-dsh
|
|
|
192
202
|
安装脚本会打印**可选**的 profile 覆盖(指向本机工作副本、或指定解释器);不写就用包自身目录:
|
|
193
203
|
|
|
194
204
|
```yaml
|
|
195
|
-
- id: touchstone
|
|
205
|
+
- id: touchstone-dsh
|
|
196
206
|
config: { repoDir: /path/to/touchstone-dsh, pythonPath: /path/to/python3 }
|
|
197
207
|
```
|
|
198
208
|
|
package/auth.py
CHANGED
|
File without changes
|