@quolu/aishell 0.4.4 → 0.4.5
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.ja.md +4 -5
- package/README.md +4 -6
- package/dist/AIShell.app/Contents/Helpers/aishell-mcp +0 -0
- package/dist/AIShell.app/Contents/Helpers/aishell-run-supervisor +0 -0
- package/dist/AIShell.app/Contents/Info.plist +2 -2
- package/dist/AIShell.app/Contents/MacOS/AIShell +0 -0
- package/dist/AIShell.app/Contents/_CodeSignature/CodeResources +4 -4
- package/package.json +1 -3
- package/scripts/check-running-instances.mjs +0 -61
package/README.ja.md
CHANGED
|
@@ -90,12 +90,11 @@ flowchart LR
|
|
|
90
90
|
|
|
91
91
|
## npmからinstall
|
|
92
92
|
|
|
93
|
-
global packageは`aishell-mcp`と`aishell-open`を`PATH`へ追加する。`aishell-open`は同梱された管理アプリをLaunchServicesで開く。
|
|
93
|
+
global packageは`aishell-mcp`と`aishell-open`を`PATH`へ追加する。`aishell-open`は同梱された管理アプリをLaunchServicesで開く。install scriptは実行しない。
|
|
94
94
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
installを失敗させない。窓を開き直せば新版に移る。窓自身も置換を検知して表示する。
|
|
95
|
+
upgradeは開いたままの管理アプリの足元でapp bundleを置き換えるため、その窓は壊れる。削除済みbundleを
|
|
96
|
+
掴み続け、ファイル選択を伴う操作を無言で失う。窓自身がこれを検知してbannerで示すので、開き直せば
|
|
97
|
+
新版へ移る。
|
|
99
98
|
|
|
100
99
|
```sh
|
|
101
100
|
npm install -g @quolu/aishell
|
package/README.md
CHANGED
|
@@ -88,13 +88,11 @@ flowchart LR
|
|
|
88
88
|
|
|
89
89
|
## Install from npm
|
|
90
90
|
|
|
91
|
-
The global package adds `aishell-mcp` and `aishell-open` to `PATH`. `aishell-open` opens the bundled manager app through LaunchServices.
|
|
91
|
+
The global package adds `aishell-mcp` and `aishell-open` to `PATH`. `aishell-open` opens the bundled manager app through LaunchServices. The package runs no install script.
|
|
92
92
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
affected pids, writes nothing, and never fails the install. Reopen the window to pick up the new
|
|
97
|
-
version; the window itself also detects the replacement and says so.
|
|
93
|
+
Upgrading replaces the app bundle underneath any manager window left open, which breaks that window —
|
|
94
|
+
it keeps holding a deleted bundle and silently loses every operation that opens a file panel. The
|
|
95
|
+
window detects this itself and says so with a banner; reopen it to pick up the new version.
|
|
98
96
|
|
|
99
97
|
```sh
|
|
100
98
|
npm install -g @quolu/aishell
|
|
Binary file
|
|
Binary file
|
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
<key>CFBundlePackageType</key>
|
|
18
18
|
<string>APPL</string>
|
|
19
19
|
<key>CFBundleShortVersionString</key>
|
|
20
|
-
<string>0.4.
|
|
20
|
+
<string>0.4.5</string>
|
|
21
21
|
<key>CFBundleVersion</key>
|
|
22
|
-
<string>
|
|
22
|
+
<string>16</string>
|
|
23
23
|
<key>LSApplicationCategoryType</key>
|
|
24
24
|
<string>public.app-category.utilities</string>
|
|
25
25
|
<key>LSMinimumSystemVersion</key>
|
|
Binary file
|
|
@@ -10,19 +10,19 @@
|
|
|
10
10
|
<dict>
|
|
11
11
|
<key>cdhash</key>
|
|
12
12
|
<data>
|
|
13
|
-
|
|
13
|
+
GEGLZHkdBbt8yddasYejQf7FSL8=
|
|
14
14
|
</data>
|
|
15
15
|
<key>requirement</key>
|
|
16
|
-
<string>cdhash H"
|
|
16
|
+
<string>cdhash H"18418b64791d05bb7cc9d75ab187a341fec548bf"</string>
|
|
17
17
|
</dict>
|
|
18
18
|
<key>Helpers/aishell-run-supervisor</key>
|
|
19
19
|
<dict>
|
|
20
20
|
<key>cdhash</key>
|
|
21
21
|
<data>
|
|
22
|
-
|
|
22
|
+
UsUJmoJ+k5ckLoHZA3RWjN52eNc=
|
|
23
23
|
</data>
|
|
24
24
|
<key>requirement</key>
|
|
25
|
-
<string>cdhash H"
|
|
25
|
+
<string>cdhash H"52c5099a827e9397242e81d90374568cde7678d7"</string>
|
|
26
26
|
</dict>
|
|
27
27
|
</dict>
|
|
28
28
|
<key>rules</key>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quolu/aishell",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.5",
|
|
4
4
|
"description": "A native macOS state runtime with high-density MCP tools for AI development",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "quolu",
|
|
@@ -32,13 +32,11 @@
|
|
|
32
32
|
"files": [
|
|
33
33
|
"dist/AIShell.app",
|
|
34
34
|
"scripts/aishell-open.mjs",
|
|
35
|
-
"scripts/check-running-instances.mjs",
|
|
36
35
|
"README.md"
|
|
37
36
|
],
|
|
38
37
|
"scripts": {
|
|
39
38
|
"build:npm": "node scripts/prepare-npm-release.mjs",
|
|
40
39
|
"prepack": "npm run build:npm",
|
|
41
|
-
"postinstall": "node scripts/check-running-instances.mjs",
|
|
42
40
|
"test": "swift test",
|
|
43
41
|
"test:package": "npm run build:npm && node scripts/verify-npm-package.mjs",
|
|
44
42
|
"verify:release-commit": "node scripts/verify-release-commit.mjs",
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// npm global upgradeは既存packageを`@quolu/.aishell-XXXX`へrenameしてから削除する。窓を開いたまま
|
|
4
|
-
// upgradeすると、そのprocessは消えた実体を掴み続け、UIは動くのにbundle resourceを要求するAPI
|
|
5
|
-
// (NSOpenPanelなど)だけが無反応になる。errorも出ないため「rootを追加できない」と見える。
|
|
6
|
-
// install時点でその窓を見つけて再起動を促す。app側の自己検知(AIShellCore/InstallationIntegrity)
|
|
7
|
-
// と二重の網であり、どちらもinstall自体は止めない。
|
|
8
|
-
|
|
9
|
-
import { spawnSync } from "node:child_process";
|
|
10
|
-
import { existsSync } from "node:fs";
|
|
11
|
-
import path from "node:path";
|
|
12
|
-
import { fileURLToPath } from "node:url";
|
|
13
|
-
|
|
14
|
-
const executablePattern = /^(\d+)\s+(\/.*\/AIShell\.app\/Contents\/MacOS\/AIShell)$/;
|
|
15
|
-
// renameで退避された旧installのpath。実体が残っていてもそのbundleは削除される途中にある。
|
|
16
|
-
const stagingPathPattern = /\/\.aishell-[^/]+\//;
|
|
17
|
-
|
|
18
|
-
/// `ps -axo pid=,comm=`の出力から、置換済みの実体を掴んだ窓だけを選ぶ。
|
|
19
|
-
/// 生きているinstallのpathから動いている窓は対象にしない(localのnpm installで誤警告しないため)。
|
|
20
|
-
export function selectStaleWindows(processListing, { exists = existsSync } = {}) {
|
|
21
|
-
return processListing
|
|
22
|
-
.split("\n")
|
|
23
|
-
.flatMap((line) => {
|
|
24
|
-
const matched = line.trim().match(executablePattern);
|
|
25
|
-
return matched ? [{ pid: Number(matched[1]), executable: matched[2] }] : [];
|
|
26
|
-
})
|
|
27
|
-
.filter(({ executable }) => !exists(executable) || stagingPathPattern.test(executable));
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export function staleWindowWarning(stale) {
|
|
31
|
-
const pidList = stale.map(({ pid }) => `pid ${pid}`).join(", ");
|
|
32
|
-
return [
|
|
33
|
-
"",
|
|
34
|
-
`[AIShell] 起動中の窓(${pidList})が、このinstallで置き換えられた実体を掴んでいます。`,
|
|
35
|
-
" そのままではrootの追加などファイル選択を伴う操作が無反応になります。",
|
|
36
|
-
" 窓を終了して `aishell-open` で開き直してください。",
|
|
37
|
-
""
|
|
38
|
-
].join("\n");
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function main() {
|
|
42
|
-
const listing = spawnSync("/bin/ps", ["-axo", "pid=,comm="], { encoding: "utf8" });
|
|
43
|
-
|
|
44
|
-
if (listing.error || listing.status !== 0) {
|
|
45
|
-
// 確認できなかったことを「問題なし」へ言い換えない。
|
|
46
|
-
console.warn(
|
|
47
|
-
"[AIShell] 起動中の窓を確認できませんでした(psが利用できません)。" +
|
|
48
|
-
"AIShellを開いたままupgradeした場合は、窓を開き直してください。"
|
|
49
|
-
);
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const stale = selectStaleWindows(listing.stdout);
|
|
54
|
-
if (stale.length > 0) {
|
|
55
|
-
console.warn(staleWindowWarning(stale));
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
if (process.argv[1] && path.resolve(process.argv[1]) === fileURLToPath(import.meta.url)) {
|
|
60
|
-
main();
|
|
61
|
-
}
|