@gavinc-cn/touchstone-dsh 0.1.1 → 0.3.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 +39 -11
- package/README.zh.md +25 -10
- package/backend/lib/access.js +44 -0
- package/backend/lib/agents.js +341 -0
- package/backend/lib/args.js +94 -0
- package/backend/lib/auth.js +195 -0
- package/backend/lib/board.js +6154 -0
- package/backend/lib/builtin-assets.js +1177 -0
- package/backend/lib/casescan.js +456 -0
- package/backend/lib/chat.js +2053 -0
- package/backend/lib/cookie.js +76 -0
- package/backend/lib/db.js +2260 -0
- package/backend/lib/dshdriver.js +1148 -0
- package/backend/lib/dshevents.js +851 -0
- package/backend/lib/export-cases.js +261 -0
- package/backend/lib/feishu.js +1738 -0
- package/backend/lib/feishu_cfg.js +228 -0
- package/backend/lib/feishu_conv.js +1484 -0
- package/backend/lib/feishu_device.js +428 -0
- package/backend/lib/feishu_inbound.js +1674 -0
- package/backend/lib/feishu_provision.js +855 -0
- package/backend/lib/feishu_rest.js +398 -0
- package/backend/lib/feishu_slash.js +568 -0
- package/backend/lib/feishu_ws.js +950 -0
- package/backend/lib/http.js +312 -0
- package/backend/lib/lib.js +973 -0
- package/backend/lib/loadcase.js +749 -0
- package/backend/lib/loadgen.js +1407 -0
- package/backend/lib/localbus.js +164 -0
- package/backend/lib/lock.js +405 -0
- package/backend/lib/proc.js +278 -0
- package/backend/lib/prompts.js +1021 -0
- package/backend/lib/pybase64.js +114 -0
- package/backend/lib/pyjson.js +214 -0
- package/backend/lib/query.js +125 -0
- package/backend/lib/rag.js +1310 -0
- package/backend/lib/runner.js +4520 -0
- package/backend/lib/servercaps.js +182 -0
- package/backend/lib/serverstate.js +237 -0
- package/backend/lib/sessparse.js +1176 -0
- package/backend/lib/sse.js +207 -0
- package/backend/lib/static.js +84 -0
- package/backend/lib/taskjson.js +302 -0
- package/backend/lib/waitq.js +2114 -0
- package/backend/lib/worktree.js +588 -0
- package/backend/lib/zstd-frames.js +218 -0
- package/backend/routes/admin.js +553 -0
- package/backend/routes/agents.js +149 -0
- package/backend/routes/assets.js +145 -0
- package/backend/routes/board.js +1220 -0
- package/backend/routes/feishu.js +269 -0
- package/backend/routes/feishu_app.js +215 -0
- package/backend/routes/feishu_hook.js +358 -0
- package/backend/routes/index.js +297 -0
- package/backend/routes/projects.js +1059 -0
- package/backend/routes/sessions.js +946 -0
- package/backend/routes/tasks.js +1530 -0
- package/backend/schema/fixtures/ancient.sql +189 -0
- package/backend/schema/fixtures/pre_alter.sql +177 -0
- package/backend/schema/migrations.json +154 -0
- package/backend/schema/schema.json +1451 -0
- package/backend/schema/schema.sql +216 -0
- package/backend/server.js +498 -0
- package/board.py +805 -72
- package/chat.py +590 -17
- package/db.py +356 -140
- package/dsh-plugin/cordis.patch.yml +7 -3
- package/dsh-plugin/install.sh +28 -11
- package/dsh-plugin/lib/agent-driver.js +710 -89
- package/dsh-plugin/lib/client.bundle.js +94 -9
- package/dsh-plugin/lib/index.js +529 -39
- package/dsh-plugin/lib/pack-closure.mjs +291 -0
- package/dsh-plugin/scripts/prepack-check.mjs +30 -2
- package/dsh-plugin/src/client.js +94 -9
- package/dshdriver.py +74 -5
- package/dshevents.py +65 -3
- package/feishu.py +1197 -34
- package/feishu_conv.py +920 -0
- package/lifecycle.py +116 -13
- package/package.json +6 -1
- 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-ChP3sg6y.css +1 -0
- package/webui/dist-plugin/assets/index-UrMyeAXF.js +484 -0
- package/webui/dist-plugin/index.html +2 -2
- package/webui/dist-plugin/assets/index-B0WoP1Qy.css +0 -1
- package/webui/dist-plugin/assets/index-DtwKoi1T.js +0 -473
package/dsh-plugin/install.sh
CHANGED
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
#
|
|
16
16
|
# 机器相关配置(repoDir / pythonPath)**可省**(2026-10-07 自包含包起): 缺省 repoDir = 包自身目录,
|
|
17
17
|
# 包里就有 server.py 与 webui/dist-plugin; 只有要指向别的检出、或指定解释器时才在 profile 覆盖:
|
|
18
|
-
# - id: touchstone
|
|
19
|
-
# config: { pythonPath: <解释器> } # 条目 id
|
|
18
|
+
# - id: touchstone-dsh
|
|
19
|
+
# config: { pythonPath: <解释器> } # 条目 id 是 touchstone-dsh(= 包名去掉 scope)
|
|
20
20
|
# 环境变量: TS_DSH_PROFILE(默认 web) / TS_DSH_PYTHON(显式指定解释器, 优先)
|
|
21
21
|
set -euo pipefail
|
|
22
22
|
|
|
@@ -27,9 +27,11 @@ PROFILE_DIR="$HOME/.dsh/profiles/$PROFILE"
|
|
|
27
27
|
PKG_NAME="$(node -p "require('$REPO_DIR/package.json').name")"
|
|
28
28
|
|
|
29
29
|
# 解释器探测链(2026-10-02 去硬编码,原写死某个 conda 环境的解释器绝对路径):
|
|
30
|
-
# TS_DSH_PYTHON / TS_PYTHON 显式指定 → 常见 conda 环境 → PATH 上的 python3 → 报错;
|
|
30
|
+
# TS_DSH_PYTHON / TS_PYTHON 显式指定 → 常见 conda 环境 → PATH 上的 python → python3 → 报错;
|
|
31
31
|
# conda/PATH 候选里优先「能导入运行依赖(zstandard/requests)」的那个, 避免选中
|
|
32
32
|
# 同机其他缺依赖的环境; 全都不满足时回落到首个存在的解释器。
|
|
33
|
+
# PATH 档的顺序 2026-10-11 改为 python 优先(用户口径「兜底应该用 python」), 与插件薄壳
|
|
34
|
+
# lib/index.js 的 PYTHON_CANDIDATES 同序; Linux 上两者通常都在, 改序不改变命中结果。
|
|
33
35
|
_depline() { "$1" -c 'import zstandard, requests' >/dev/null 2>&1; }
|
|
34
36
|
|
|
35
37
|
pick_python() {
|
|
@@ -39,6 +41,7 @@ pick_python() {
|
|
|
39
41
|
done
|
|
40
42
|
for cand in "$HOME"/{mini,ana}conda3/envs/*/bin/python3 \
|
|
41
43
|
/opt/{mini,ana}conda3/envs/*/bin/python3 \
|
|
44
|
+
"$(command -v python || true)" \
|
|
42
45
|
"$(command -v python3 || true)"; do
|
|
43
46
|
[[ -n "$cand" && -x "$cand" ]] || continue
|
|
44
47
|
[[ -n "$fallback" ]] || fallback="$cand"
|
|
@@ -47,10 +50,17 @@ pick_python() {
|
|
|
47
50
|
[[ -n "$fallback" ]] && { echo "$fallback"; return 0; }
|
|
48
51
|
return 1
|
|
49
52
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
# **Python 现在是可选的**(2026-10-15 M8:插件缺省后端由 python 翻成 node):
|
|
54
|
+
# 缺省后端=包内的 `backend/server.js`(要求宿主 Node ≥ 22.19,靠 node:sqlite),
|
|
55
|
+
# 所以「不再要求用户机器上有 Python 与 pip」正是翻缺省的全部收益 —— 装插件不该再被
|
|
56
|
+
# 解释器卡住。解释器只在两种情况下需要:① profile 里显式 `backend: python`(回滚/排障);
|
|
57
|
+
# ② 独立形态(`start.sh` / `touchstone.sh`)仍走 `server.py`。
|
|
58
|
+
# 探不到就只提示一句、**不再**往配置里塞 pythonPath(旧行为是硬报错 exit 1)。
|
|
59
|
+
PYTHON_PATH="$(pick_python || true)"
|
|
60
|
+
if [[ -z "$PYTHON_PATH" ]]; then
|
|
61
|
+
echo "提示: 未找到 Python 解释器(依次试过 python、python3)—— 不影响安装:本插件缺省后端是 Node。"
|
|
62
|
+
echo " 只有要回滚到 Python 后端(profile 里显式写 backend: python)或跑独立形态时才需要它。"
|
|
63
|
+
fi
|
|
54
64
|
|
|
55
65
|
[[ -d "$PROFILE_DIR" ]] || { echo "错误: profile 不存在: $PROFILE_DIR(先用 dsh web 初始化)"; exit 1; }
|
|
56
66
|
if [[ ! -f "$REPO_DIR/webui/dist-plugin/index.html" ]]; then
|
|
@@ -73,7 +83,14 @@ node "$REPO_DIR/dsh-plugin/scripts/select-bundle.mjs" "$PROFILE_DIR/package.json
|
|
|
73
83
|
|
|
74
84
|
echo "完成(包名 $PKG_NAME)。重启 dsh web 生效(package.json 变更 dsh-hmr 也会热重载);"
|
|
75
85
|
echo "之后侧栏 Plugins 面板里会出现 Touchstone 卡片与该行开关。"
|
|
76
|
-
echo "
|
|
77
|
-
echo "
|
|
78
|
-
echo "
|
|
79
|
-
|
|
86
|
+
echo "后端缺省=包内 Node 实现(backend/server.js,要求宿主 Node ≥ 22.19);"
|
|
87
|
+
echo "repoDir 不再必填(缺省 = 包自身目录, 包里自带 Node/Python 平台与预构建前端);"
|
|
88
|
+
echo "只有要指向本机开发检出、或指定解释器(回滚到 Python 后端)时才在 $PROFILE_DIR/cordis.patch.yml 里加:"
|
|
89
|
+
if [[ -n "$PYTHON_PATH" ]]; then
|
|
90
|
+
echo " - id: touchstone-dsh"
|
|
91
|
+
echo " config: { repoDir: $REPO_DIR, pythonPath: $PYTHON_PATH }"
|
|
92
|
+
echo " (要回滚到 Python 后端再加一项 backend: python;注意删掉 backend 键等于 node)"
|
|
93
|
+
else
|
|
94
|
+
echo " - id: touchstone-dsh"
|
|
95
|
+
echo " config: { repoDir: $REPO_DIR } # 本机无 Python:缺省 Node 后端直接可用"
|
|
96
|
+
fi
|