lookatstudy-mobile 0.14.0 → 0.16.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.
Files changed (70) hide show
  1. package/install-termux.sh +41 -17
  2. package/package.json +1 -1
  3. package/server.cjs +45429 -10115
  4. package/web/assets/{abnfDiagram-N423BO3Z-DgtY7GDo.js → abnfDiagram-N423BO3Z-uVyZuC2D.js} +1 -1
  5. package/web/assets/api-web-BydHmVA4.js +1 -0
  6. package/web/assets/{arc-BFja7Mgl.js → arc-Bj7Boh6s.js} +1 -1
  7. package/web/assets/{architectureDiagram-T3A2C74G-DldSQeNu.js → architectureDiagram-T3A2C74G-CrbkXNQp.js} +1 -1
  8. package/web/assets/{blockDiagram-VBNYF7ZC-COFgyocp.js → blockDiagram-VBNYF7ZC-DAzIMkNI.js} +1 -1
  9. package/web/assets/{c4Diagram-5PPSVZJV-GmE0XgdV.js → c4Diagram-5PPSVZJV-NlYvtXbZ.js} +1 -1
  10. package/web/assets/channel-JNlIjRLZ.js +1 -0
  11. package/web/assets/{chunk-2GRJ4B5K-C-faEZaU.js → chunk-2GRJ4B5K-Cy2RZsUk.js} +1 -1
  12. package/web/assets/{chunk-2Q5K7J3B-BWgLp_F9.js → chunk-2Q5K7J3B-DtK3xo3Z.js} +1 -1
  13. package/web/assets/{chunk-5RXB4S5H-vHcAw0te.js → chunk-5RXB4S5H-CmVGejcd.js} +1 -1
  14. package/web/assets/{chunk-5VM5RSS4-BCDOzlTk.js → chunk-5VM5RSS4-EO_k0Crh.js} +1 -1
  15. package/web/assets/{chunk-6Q2QTUOP-Dursv_dJ.js → chunk-6Q2QTUOP-TBVy-R-c.js} +1 -1
  16. package/web/assets/{chunk-GF5L2VYU-D4V-7P-V.js → chunk-GF5L2VYU-_N0jD1tE.js} +1 -1
  17. package/web/assets/{chunk-JWPE2WC7-TwBqtNYu.js → chunk-JWPE2WC7-BIAuolFx.js} +1 -1
  18. package/web/assets/{chunk-KBJHAD2P-CBdoagw5.js → chunk-KBJHAD2P-DqcnXfI8.js} +1 -1
  19. package/web/assets/{chunk-RYQCIY6F-CvxRMinP.js → chunk-RYQCIY6F-D5RQKqlg.js} +1 -1
  20. package/web/assets/{chunk-XXDRQBXY-BpesQiqp.js → chunk-XXDRQBXY-1Ksx_dPa.js} +1 -1
  21. package/web/assets/classDiagram-JCYQIIEL-C-12RKGI.js +1 -0
  22. package/web/assets/classDiagram-v2-OCEON4UE-C-12RKGI.js +1 -0
  23. package/web/assets/{cose-bilkent-JH36ORCC-gCstzBiF.js → cose-bilkent-JH36ORCC-DAUofPwo.js} +1 -1
  24. package/web/assets/{cynefin-VYW2F7L2-eq0Le49d.js → cynefin-VYW2F7L2-CAYbjl57.js} +1 -1
  25. package/web/assets/{cynefinDiagram-MW4NZA55-xxlmYE_G.js → cynefinDiagram-MW4NZA55-UaEI49aN.js} +1 -1
  26. package/web/assets/{dagre-VZM6K2ZE-CWyDRsXC.js → dagre-VZM6K2ZE-CKP3kBHM.js} +1 -1
  27. package/web/assets/{diagram-7IWD3JNH-BD4KOl1t.js → diagram-7IWD3JNH-CLfr8NaW.js} +1 -1
  28. package/web/assets/{diagram-B4RE2ZJO-CXijC7V1.js → diagram-B4RE2ZJO-h051w7zn.js} +1 -1
  29. package/web/assets/{diagram-LBJQPF4R-DjfmPFKV.js → diagram-LBJQPF4R-CUOsO4df.js} +1 -1
  30. package/web/assets/{diagram-Q27KOJAE-DbvF3QXB.js → diagram-Q27KOJAE-BXbJxAlu.js} +1 -1
  31. package/web/assets/{diagram-UB23O5K3-Ctcq65GD.js → diagram-UB23O5K3-BHV6tpU9.js} +1 -1
  32. package/web/assets/{ebnfDiagram-BXEA7PRR-DCYFsDbf.js → ebnfDiagram-BXEA7PRR-CAahAB9-.js} +1 -1
  33. package/web/assets/{erDiagram-JOGREHBK-CQewgYqy.js → erDiagram-JOGREHBK-Bz30kI2B.js} +1 -1
  34. package/web/assets/{flowDiagram-UKHOOZJN-lB12og4l.js → flowDiagram-UKHOOZJN-CsFP_-KD.js} +1 -1
  35. package/web/assets/{ganttDiagram-PKOTCBZU-D7qHLjvT.js → ganttDiagram-PKOTCBZU-Cm5qe_5U.js} +1 -1
  36. package/web/assets/{gitGraphDiagram-DS77QQ5N-DawhnSu7.js → gitGraphDiagram-DS77QQ5N-DNktj2Kq.js} +1 -1
  37. package/web/assets/index-BC_sP79K.js +563 -0
  38. package/web/assets/index-BSTI-ywB.css +1 -0
  39. package/web/assets/{infoDiagram-6WML65LV-C4YDlp9J.js → infoDiagram-6WML65LV-vZK5e7Xx.js} +1 -1
  40. package/web/assets/{ishikawaDiagram-WSZJBQD7-qHmIFIFS.js → ishikawaDiagram-WSZJBQD7-Bt6EfUkc.js} +1 -1
  41. package/web/assets/{journeyDiagram-NVQOT4AX-BgXFOkh4.js → journeyDiagram-NVQOT4AX-DmVq_JOG.js} +1 -1
  42. package/web/assets/{kanban-definition-27J2QSJJ-Cb_2GmBW.js → kanban-definition-27J2QSJJ-tE00W58E.js} +1 -1
  43. package/web/assets/{linear-C6JxbU0K.js → linear-CAqnKu9J.js} +1 -1
  44. package/web/assets/{mermaid.core-BD6oeZlV.js → mermaid.core-uJSxER2x.js} +4 -4
  45. package/web/assets/{mindmap-definition-FAOFIHXS-BxBTsWEo.js → mindmap-definition-FAOFIHXS-D5S_P9_s.js} +1 -1
  46. package/web/assets/{pegDiagram-VL7TDLO6-BBAVQiSc.js → pegDiagram-VL7TDLO6-BZkaiQ_9.js} +1 -1
  47. package/web/assets/{pieDiagram-7S7Q4E2Y-CAPgb23U.js → pieDiagram-7S7Q4E2Y-DYpiHnao.js} +1 -1
  48. package/web/assets/{quadrantDiagram-CIZ2JOQS-j1RV2NlH.js → quadrantDiagram-CIZ2JOQS-BqycGz7D.js} +1 -1
  49. package/web/assets/{railroadDiagram-AXF67PYL-BDs1LoGd.js → railroadDiagram-AXF67PYL-DEoY1V9D.js} +1 -1
  50. package/web/assets/{requirementDiagram-LRYGKXZP-DDwz3C7i.js → requirementDiagram-LRYGKXZP-CH-xotLo.js} +1 -1
  51. package/web/assets/{sankeyDiagram-W5VNT64P-CT4bV-jV.js → sankeyDiagram-W5VNT64P-BCLFObl1.js} +1 -1
  52. package/web/assets/{sequenceDiagram-SI44F4Z6-yQc563EG.js → sequenceDiagram-SI44F4Z6-CE1T-Oar.js} +1 -1
  53. package/web/assets/{sizeCapture-X5ZJPWSS-BY_Fo4Vk.js → sizeCapture-X5ZJPWSS-uf4-mQAU.js} +1 -1
  54. package/web/assets/{stateDiagram-OKZ733FA-BprQJdqp.js → stateDiagram-OKZ733FA-Dt2wQF9A.js} +1 -1
  55. package/web/assets/stateDiagram-v2-UEYNNEHI-BbJD6fMT.js +1 -0
  56. package/web/assets/{swimlanes-SLNWSIFB-Cw1Bh8uO.js → swimlanes-SLNWSIFB-jLXDXtjZ.js} +2 -2
  57. package/web/assets/swimlanesDiagram-ULZ7WXOC-BTdV0I38.js +8 -0
  58. package/web/assets/{timeline-definition-Z64GVDOM-D-3MRDsn.js → timeline-definition-Z64GVDOM-CPajwTED.js} +1 -1
  59. package/web/assets/{vennDiagram-T6HMQDX7-D6GEH7ZD.js → vennDiagram-T6HMQDX7-DKkB137-.js} +1 -1
  60. package/web/assets/{wardleyDiagram-T6FBY63Y-C-6u22Ga.js → wardleyDiagram-T6FBY63Y-CHD6tq1V.js} +1 -1
  61. package/web/assets/{xychartDiagram-ELKLHX3M-DhJCg-k0.js → xychartDiagram-ELKLHX3M-DIO9Q6BD.js} +1 -1
  62. package/web/index.html +2 -2
  63. package/web/assets/api-web-CfrRrKkd.js +0 -1
  64. package/web/assets/channel-iM9iC2OH.js +0 -1
  65. package/web/assets/classDiagram-JCYQIIEL-Cm2EHo2w.js +0 -1
  66. package/web/assets/classDiagram-v2-OCEON4UE-Cm2EHo2w.js +0 -1
  67. package/web/assets/index-CPlDOqRv.js +0 -563
  68. package/web/assets/index-CUlT9__2.css +0 -1
  69. package/web/assets/stateDiagram-v2-UEYNNEHI-AF2jxans.js +0 -1
  70. package/web/assets/swimlanesDiagram-ULZ7WXOC-DtBbpGaG.js +0 -8
package/install-termux.sh CHANGED
@@ -5,7 +5,7 @@
5
5
  # bash ~/lookatstudy/stop.sh # 停止
6
6
  # bash ~/lookatstudy/status.sh # 状态 + 访问链接
7
7
  # bash ~/lookatstudy/update.sh # 更新便携包并重启
8
- # npm 依赖:便携包(server.cjs 单文件) GitHub Release 下载,中国网络走 ghproxy 回退链。
8
+ # 不在本机跑 npm:便携包与语音引擎包的 tarball 主源 npmmirror(自动同步 npmjs),未同步/失败回退 GitHub Release 直连+代理链。
9
9
  set -euo pipefail
10
10
 
11
11
  PORT="${LOOKATSTUDY_PORT:-17890}"
@@ -16,9 +16,41 @@ GH_VOICE="https://github.com/Kaiji-Z/LookatStudy/releases/latest/download/lookat
16
16
  # 直连优先,失败再走代理前缀(镜像只做回退:KaijiBot 教训是镜像同步延迟会坏事,大头收益在 apt 的 TUNA)
17
17
  DL_PREFIXES=("" "https://gh-proxy.com/" "https://ghproxy.net/" "https://ghfast.top/")
18
18
 
19
- # npmmirror(阿里,自动同步 npm)解析包的 latest tarball 地址;空输出=未同步/网络失败
19
+ # npmmirror(阿里,自动同步 npm)解析包的 latest tarball 地址;空输出=未同步/网络失败。
20
+ # 同步滞后守卫:刚发版的头几分钟镜像 latest 可能还指向上一个版本,静默拿到旧包
21
+ # —— 版本落后于 GitHub 最新 release 时按"未命中"处理,走 GitHub 回退链(GitHub 的
22
+ # releases/latest/download 永远指向最新版)。GitHub 版本探测失败(网络)则信任镜像,
23
+ # 不因 GitHub 不可达惩罚国内直连的镜像主源。
20
24
  npm_tarball() {
21
- curl -sfL --connect-timeout 8 --max-time 20 "https://registry.npmmirror.com/$1/latest" | sed -n 's/.*"tarball":"\([^"]*\)".*//p'
25
+ local json ver gh
26
+ json=$(curl -sfL --connect-timeout 8 --max-time 20 "https://registry.npmmirror.com/$1/latest" || true)
27
+ [ -n "$json" ] || return 1
28
+ ver=$(printf '%s' "$json" | sed -n 's/.*"version":"\([^"]*\)".*/\1/p')
29
+ if [ -n "$ver" ]; then
30
+ gh=$(gh_latest_version)
31
+ if [ -n "$gh" ] && ! ver_ge "$ver" "$gh"; then
32
+ info "npm 镜像同步滞后(镜像 v${ver} < GitHub v${gh}),走 GitHub 链…"
33
+ return 1
34
+ fi
35
+ fi
36
+ printf '%s' "$json" | sed -n 's/.*"tarball":"\([^"]*\)".*/\1/p'
37
+ }
38
+
39
+ # GitHub 最新 release 版本号(仅数字串;空=探测失败)。releases/latest/download 会 302 到
40
+ # 带 tag 的最终资产 URL,HEAD 一次读 url_effective 即得,不用碰 api.github.com。
41
+ gh_latest_version() {
42
+ local final
43
+ final=$(curl -sIL --connect-timeout 8 --max-time 20 -o /dev/null -w '%{url_effective}' \
44
+ "https://github.com/Kaiji-Z/LookatStudy/releases/latest/download/probe" 2>/dev/null || true)
45
+ printf '%s' "$final" | sed -n 's#.*/download/v\([0-9][0-9.]*\)/.*#\1#p'
46
+ }
47
+
48
+ # 语义版本比较:ver_ge A B = A >= B(空段按 0 补齐;非数字/空返回失败)
49
+ ver_ge() {
50
+ local a b
51
+ a=$(printf '%s' "$1" | tr -d 'v' | awk -F. '{printf "%02d%02d%02d", $1, $2, $3}')
52
+ b=$(printf '%s' "$2" | tr -d 'v' | awk -F. '{printf "%02d%02d%02d", $1, $2, $3}')
53
+ [ -n "$a" ] && [ -n "$b" ] && [ "$a" -ge "$b" 2>/dev/null ]
22
54
  }
23
55
 
24
56
  info() { printf '\033[1m[*]\033[0m %s\n' "$*"; }
@@ -111,7 +143,7 @@ install_voice() {
111
143
  tar -xzf voice.tgz --strip-components=1 -C "$APP_DIR/node_modules"
112
144
  rm -f voice.tgz
113
145
  ok "语音引擎就位(npm 镜像): $APP_DIR/node_modules/sherpa-onnx-node"
114
- info "语音模型(朗读约 430MB + 听写约 200MB)在应用内下载: 设置 语音能力"
146
+ info "语音模型在应用内按需下载(设置 语音能力):朗读本地档约 430MB;听写建议云档(Groq/Azure),本地 Whisper 360MB~1GB"
115
147
  info "装完模型重启服务生效: bash ~/lookatstudy/start.sh"
116
148
  return 0
117
149
  fi
@@ -304,19 +336,11 @@ case "$(getprop ro.product.manufacturer 2>/dev/null | tr '[:upper:]' '[:lower:]'
304
336
  ;;
305
337
  esac
306
338
 
307
- # ── 6.5 语音引擎(Termux 专属交叉编译包,可选) ────────────────
308
- # 引擎包 ~12MB 一次性下载;语音模型( 630MB)由用户在应用内按需下载。
309
- if [ "$1" = "--voice" ] || [ -d "$APP_DIR/node_modules/sherpa-onnx-node" ]; then
310
- install_voice || true
311
- else
312
- echo ''
313
- info "可选:Termux 语音朗读/听写(引擎包约 12MB,语音模型在应用内另下)。"
314
- read -r -p "[*] 现在安装吗?[y/N] " ans </dev/tty 2>/dev/null || ans="n"
315
- case "$ans" in
316
- y|Y) install_voice || true ;;
317
- *) info "跳过(以后可: bash install-termux.sh --voice)" ;;
318
- esac
319
- fi
339
+ # ── 6.5 语音引擎(Termux 专属交叉编译包,默认安装) ────────────
340
+ # 引擎包 ~12MB 一次到位(相对 Node+系统升级的体量可忽略;语音朗读/听写默认能力)
341
+ # 全程零交互:失败不阻断安装(朗读在线档/听写云档不依赖本地引擎),重跑安装命令即补装。
342
+ # 兼容旧写法:--voice 参数仍被接受(现为默认,传不传一样)。
343
+ install_voice || true
320
344
 
321
345
  # ── 7. 启动 + 打印访问链接 ───────────────────────────────────
322
346
  info "启动 LookatStudy..."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lookatstudy-mobile",
3
- "version": "0.14.0",
3
+ "version": "0.16.0",
4
4
  "description": "LookatStudy Termux portable bundle (server.cjs + web frontend)",
5
5
  "repository": {
6
6
  "type": "git",