@minimalcorp/tsunagi 0.1.28 → 0.1.30

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 (47) hide show
  1. package/.next/standalone/apps/web/.next/BUILD_ID +1 -1
  2. package/.next/standalone/apps/web/.next/build-manifest.json +3 -3
  3. package/.next/standalone/apps/web/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -1
  5. package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +1 -1
  6. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  9. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  10. package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  11. package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
  12. package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +1 -1
  13. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  14. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  15. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  16. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  17. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  18. package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  19. package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
  20. package/.next/standalone/apps/web/.next/server/app/index.rsc +1 -1
  21. package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  22. package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +1 -1
  23. package/.next/standalone/apps/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
  24. package/.next/standalone/apps/web/.next/server/app/index.segments/_index.segment.rsc +1 -1
  25. package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  26. package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
  27. package/.next/standalone/apps/web/.next/server/app/settings.rsc +1 -1
  28. package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +1 -1
  29. package/.next/standalone/apps/web/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  30. package/.next/standalone/apps/web/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  31. package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  32. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  33. package/.next/standalone/apps/web/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  34. package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +3 -3
  35. package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
  36. package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
  37. package/.next/standalone/apps/web/.next/server/server-reference-manifest.js +1 -1
  38. package/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
  39. package/llm-server/requirements.txt +2 -1
  40. package/llm-server/run.sh +35 -2
  41. package/npm-shrinkwrap.json +32 -14
  42. package/package.json +1 -1
  43. package/whisper-server/requirements.txt +2 -1
  44. package/whisper-server/run.sh +35 -2
  45. /package/.next/standalone/apps/web/.next/static/{ryH59GWZw_ooyW3FOb1yO → TsUWkgyKReTsFW3SydDNd}/_buildManifest.js +0 -0
  46. /package/.next/standalone/apps/web/.next/static/{ryH59GWZw_ooyW3FOb1yO → TsUWkgyKReTsFW3SydDNd}/_clientMiddlewareManifest.js +0 -0
  47. /package/.next/standalone/apps/web/.next/static/{ryH59GWZw_ooyW3FOb1yO → TsUWkgyKReTsFW3SydDNd}/_ssgManifest.js +0 -0
@@ -1 +1,2 @@
1
- mlx-lm
1
+ mlx-lm==0.31.3
2
+ mlx==0.32.0
package/llm-server/run.sh CHANGED
@@ -12,10 +12,43 @@ export HF_HUB_DISABLE_XET=1
12
12
 
13
13
  MODEL="mlx-community/Qwen3-30B-A3B-Instruct-2507-4bit"
14
14
 
15
- if [ ! -d "$VENV_DIR" ]; then
15
+ # requirements.txtでpinしているmlxがrequires-python >=3.10のため、venv作成に使うpython3自体も
16
+ # 3.10以上でなければpip installがそもそも失敗する。`python3`という名前がPATH上のどのバージョンを
17
+ # 指すかは環境依存(古いmacOS付属Python等)なため、候補を新しい順に探して最初に見つかった
18
+ # 3.10以上を使う。
19
+ MIN_PYTHON_VERSION="3.10"
20
+
21
+ find_python() {
22
+ for cand in python3.14 python3.13 python3.12 python3.11 python3.10 python3; do
23
+ if command -v "$cand" >/dev/null 2>&1; then
24
+ ver="$("$cand" -c 'import sys; print("%d.%d" % sys.version_info[:2])' 2>/dev/null || true)"
25
+ [ -z "$ver" ] && continue
26
+ if [ "$(printf '%s\n%s\n' "$MIN_PYTHON_VERSION" "$ver" | sort -V | head -n1)" = "$MIN_PYTHON_VERSION" ]; then
27
+ echo "$cand"
28
+ return 0
29
+ fi
30
+ fi
31
+ done
32
+ return 1
33
+ }
34
+
35
+ if ! PYTHON_BIN="$(find_python)"; then
36
+ echo "音声整形(LLM整形)サーバーの起動に失敗: Python ${MIN_PYTHON_VERSION}以上が見つかりません。" >&2
37
+ echo "'brew install python@3.12' 等でインストールしてください。" >&2
38
+ exit 1
39
+ fi
40
+
41
+ # requirements.txtの内容、または使用するpython3のバージョンが変わった場合は既存venvごと作り直す。
42
+ # venvは作成時のpythonバイナリに紐づくため、pip installだけでは古いバージョンのまま更新できない。
43
+ REQUIREMENTS_HASH_FILE="${VENV_DIR}/.requirements.sha256"
44
+ CURRENT_HASH="$( { cat requirements.txt; "$PYTHON_BIN" --version; } | shasum -a 256 | awk '{print $1}')"
45
+
46
+ if [ ! -d "$VENV_DIR" ] || [ "$(cat "$REQUIREMENTS_HASH_FILE" 2>/dev/null)" != "$CURRENT_HASH" ]; then
16
47
  mkdir -p "$TSUNAGI_LLM_DIR"
17
- python3 -m venv "$VENV_DIR"
48
+ rm -rf "$VENV_DIR"
49
+ "$PYTHON_BIN" -m venv "$VENV_DIR"
18
50
  "$VENV_DIR/bin/python3" -m pip install -r requirements.txt
51
+ echo "$CURRENT_HASH" > "$REQUIREMENTS_HASH_FILE"
19
52
  fi
20
53
 
21
54
  # サーバー起動前にモデルを予めダウンロードしておく(初回チャットで待たされないように)。
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@minimalcorp/tsunagi",
3
- "version": "0.1.28",
3
+ "version": "0.1.30",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@minimalcorp/tsunagi",
9
- "version": "0.1.28",
9
+ "version": "0.1.30",
10
10
  "license": "SEE LICENSE IN LICENSE",
11
11
  "os": [
12
12
  "darwin",
@@ -286,9 +286,9 @@
286
286
  }
287
287
  },
288
288
  "node_modules/@hono/node-server": {
289
- "version": "1.19.14",
290
- "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.14.tgz",
291
- "integrity": "sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==",
289
+ "version": "1.19.15",
290
+ "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.15.tgz",
291
+ "integrity": "sha512-Za2ai6TLdKjUvnur+eenO6nuYYipVAEhyCAdaV8IRvmU9kK8crOZUSYvIXn72E4f8fJqyAbpcJuTsYYmZp9Deg==",
292
292
  "license": "MIT",
293
293
  "engines": {
294
294
  "node": ">=18.14.1"
@@ -771,6 +771,20 @@
771
771
  "zeptomatch": "2.1.0"
772
772
  }
773
773
  },
774
+ "node_modules/@prisma/dev/node_modules/find-my-way": {
775
+ "version": "9.6.0",
776
+ "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-9.6.0.tgz",
777
+ "integrity": "sha512-Zf4Xve4RymLl7NgaavNebZ01joJ8MfVerOG43wy7SHLO+r+K0C6d/SE0BiR7AV5V1VOCFlOP7ecdo+I4qmiHrQ==",
778
+ "license": "MIT",
779
+ "dependencies": {
780
+ "fast-deep-equal": "^3.1.3",
781
+ "fast-querystring": "^1.0.0",
782
+ "safe-regex2": "^5.0.0"
783
+ },
784
+ "engines": {
785
+ "node": ">=20"
786
+ }
787
+ },
774
788
  "node_modules/@prisma/driver-adapter-utils": {
775
789
  "version": "7.9.0",
776
790
  "resolved": "https://registry.npmjs.org/@prisma/driver-adapter-utils/-/driver-adapter-utils-7.9.0.tgz",
@@ -2378,9 +2392,9 @@
2378
2392
  }
2379
2393
  },
2380
2394
  "node_modules/find-my-way": {
2381
- "version": "9.6.0",
2382
- "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-9.6.0.tgz",
2383
- "integrity": "sha512-Zf4Xve4RymLl7NgaavNebZ01joJ8MfVerOG43wy7SHLO+r+K0C6d/SE0BiR7AV5V1VOCFlOP7ecdo+I4qmiHrQ==",
2395
+ "version": "9.7.0",
2396
+ "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-9.7.0.tgz",
2397
+ "integrity": "sha512-f2JHn75x2JlwUwLenZypgczR7YWMb/uO9BvUXtus+JMgkbIkLADd38cI4EiV+OQqrGo1Zlq6V8wnqMJ8e62wUQ==",
2384
2398
  "license": "MIT",
2385
2399
  "dependencies": {
2386
2400
  "fast-deep-equal": "^3.1.3",
@@ -2667,9 +2681,9 @@
2667
2681
  }
2668
2682
  },
2669
2683
  "node_modules/jose": {
2670
- "version": "6.2.3",
2671
- "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.3.tgz",
2672
- "integrity": "sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==",
2684
+ "version": "6.2.4",
2685
+ "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.4.tgz",
2686
+ "integrity": "sha512-N8acGzVsQy6M/fjFcxtysNc4Q379TcM5dM/qKkNtsHFji88yANnXTr7BLeP75iPnFwBfQzM/jg2BZ9+HZrHCZA==",
2673
2687
  "license": "MIT",
2674
2688
  "funding": {
2675
2689
  "url": "https://github.com/sponsors/panva"
@@ -2829,12 +2843,16 @@
2829
2843
  }
2830
2844
  },
2831
2845
  "node_modules/media-typer": {
2832
- "version": "1.1.0",
2833
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
2834
- "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==",
2846
+ "version": "1.1.1",
2847
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.1.tgz",
2848
+ "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==",
2835
2849
  "license": "MIT",
2836
2850
  "engines": {
2837
2851
  "node": ">= 0.8"
2852
+ },
2853
+ "funding": {
2854
+ "type": "opencollective",
2855
+ "url": "https://opencollective.com/express"
2838
2856
  }
2839
2857
  },
2840
2858
  "node_modules/merge-descriptors": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minimalcorp/tsunagi",
3
- "version": "0.1.28",
3
+ "version": "0.1.30",
4
4
  "description": "Multi-repo GitHub project management with Claude AI integration, designed for visualizing and controlling AI-driven development locally.",
5
5
  "keywords": [
6
6
  "tsunagi",
@@ -1,4 +1,5 @@
1
- mlx-whisper
1
+ mlx-whisper==0.4.3
2
+ mlx==0.32.0
2
3
  fastapi
3
4
  uvicorn[standard]
4
5
  python-multipart
@@ -10,10 +10,43 @@ export HF_HOME="${TSUNAGI_WHISPER_DIR}/cache"
10
10
  # xet転送は進捗の観測が難しい独自プロトコルのため無効化し、素直なHTTPダウンロードに固定する。
11
11
  export HF_HUB_DISABLE_XET=1
12
12
 
13
- if [ ! -d "$VENV_DIR" ]; then
13
+ # requirements.txtでpinしているmlxがrequires-python >=3.10のため、venv作成に使うpython3自体も
14
+ # 3.10以上でなければpip installがそもそも失敗する。`python3`という名前がPATH上のどのバージョンを
15
+ # 指すかは環境依存(古いmacOS付属Python等)なため、候補を新しい順に探して最初に見つかった
16
+ # 3.10以上を使う。
17
+ MIN_PYTHON_VERSION="3.10"
18
+
19
+ find_python() {
20
+ for cand in python3.14 python3.13 python3.12 python3.11 python3.10 python3; do
21
+ if command -v "$cand" >/dev/null 2>&1; then
22
+ ver="$("$cand" -c 'import sys; print("%d.%d" % sys.version_info[:2])' 2>/dev/null || true)"
23
+ [ -z "$ver" ] && continue
24
+ if [ "$(printf '%s\n%s\n' "$MIN_PYTHON_VERSION" "$ver" | sort -V | head -n1)" = "$MIN_PYTHON_VERSION" ]; then
25
+ echo "$cand"
26
+ return 0
27
+ fi
28
+ fi
29
+ done
30
+ return 1
31
+ }
32
+
33
+ if ! PYTHON_BIN="$(find_python)"; then
34
+ echo "音声入力(Whisper)サーバーの起動に失敗: Python ${MIN_PYTHON_VERSION}以上が見つかりません。" >&2
35
+ echo "'brew install python@3.12' 等でインストールしてください。" >&2
36
+ exit 1
37
+ fi
38
+
39
+ # requirements.txtの内容、または使用するpython3のバージョンが変わった場合は既存venvごと作り直す。
40
+ # venvは作成時のpythonバイナリに紐づくため、pip installだけでは古いバージョンのまま更新できない。
41
+ REQUIREMENTS_HASH_FILE="${VENV_DIR}/.requirements.sha256"
42
+ CURRENT_HASH="$( { cat requirements.txt; "$PYTHON_BIN" --version; } | shasum -a 256 | awk '{print $1}')"
43
+
44
+ if [ ! -d "$VENV_DIR" ] || [ "$(cat "$REQUIREMENTS_HASH_FILE" 2>/dev/null)" != "$CURRENT_HASH" ]; then
14
45
  mkdir -p "$TSUNAGI_WHISPER_DIR"
15
- python3 -m venv "$VENV_DIR"
46
+ rm -rf "$VENV_DIR"
47
+ "$PYTHON_BIN" -m venv "$VENV_DIR"
16
48
  "$VENV_DIR/bin/python3" -m pip install -r requirements.txt
49
+ echo "$CURRENT_HASH" > "$REQUIREMENTS_HASH_FILE"
17
50
  fi
18
51
 
19
52
  # サーバー起動前にモデルを予めダウンロードしておく(初回文字起こしで待たされないように)。