brosh 0.1.7 → 0.1.9
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/package.json +1 -1
- package/packages/desktop-electron/build/entitlements.mac.inherit.plist +2 -0
- package/packages/desktop-electron/build/entitlements.mac.plist +2 -0
- package/packages/desktop-electron/package.json +10 -4
- package/packages/desktop-electron/scripts/fix-dev-entitlements.js +56 -0
- package/website/install.sh.asc +13 -13
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "brosh-desktop",
|
|
3
3
|
"productName": "brosh",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.9",
|
|
5
5
|
"description": "Desktop GUI for brosh - A terminal emulator with MCP support",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Ellery Familia",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"postpackage": "rm -rf node_modules/brosh && npm install",
|
|
32
32
|
"download-models": "node scripts/download-models.js",
|
|
33
33
|
"prepare-sandbox-bins": "node scripts/prepare-sandbox-bins.js",
|
|
34
|
-
"postinstall": "node scripts/download-models.js",
|
|
34
|
+
"postinstall": "node scripts/download-models.js && node scripts/fix-dev-entitlements.js",
|
|
35
35
|
"test": "vitest run",
|
|
36
36
|
"test:watch": "vitest",
|
|
37
37
|
"test:coverage": "vitest run --coverage"
|
|
@@ -172,7 +172,8 @@
|
|
|
172
172
|
"notarize": true,
|
|
173
173
|
"extendInfo": {
|
|
174
174
|
"NSSupportsAutomaticTermination": false,
|
|
175
|
-
"NSSupportsSuddenTermination": false
|
|
175
|
+
"NSSupportsSuddenTermination": false,
|
|
176
|
+
"NSMicrophoneUsageDescription": "brosh needs microphone access for voice input features."
|
|
176
177
|
}
|
|
177
178
|
},
|
|
178
179
|
"win": {
|
|
@@ -188,7 +189,12 @@
|
|
|
188
189
|
"executableName": "brosh"
|
|
189
190
|
},
|
|
190
191
|
"deb": {
|
|
191
|
-
"afterInstall": "build/afterInstall-linux.sh"
|
|
192
|
+
"afterInstall": "build/afterInstall-linux.sh",
|
|
193
|
+
"recommends": [
|
|
194
|
+
"bubblewrap",
|
|
195
|
+
"socat",
|
|
196
|
+
"ripgrep"
|
|
197
|
+
]
|
|
192
198
|
}
|
|
193
199
|
}
|
|
194
200
|
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-sign the dev Electron binary with microphone entitlement.
|
|
3
|
+
*
|
|
4
|
+
* The stock Electron.app ships with a broken signature on macOS, so
|
|
5
|
+
* systemPreferences.askForMediaAccess("microphone") silently returns
|
|
6
|
+
* "denied" instead of showing the TCC prompt. Re-signing with ad-hoc
|
|
7
|
+
* identity + the audio-input entitlement fixes this.
|
|
8
|
+
*
|
|
9
|
+
* Runs automatically via postinstall; safe to re-run at any time.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { execFileSync } from "child_process";
|
|
13
|
+
import { writeFileSync, unlinkSync, existsSync } from "fs";
|
|
14
|
+
import { join, dirname } from "path";
|
|
15
|
+
import { fileURLToPath } from "url";
|
|
16
|
+
|
|
17
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
18
|
+
|
|
19
|
+
if (process.platform !== "darwin") {
|
|
20
|
+
process.exit(0);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const electronApp = join(
|
|
24
|
+
__dirname,
|
|
25
|
+
"../node_modules/electron/dist/Electron.app"
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
if (!existsSync(electronApp)) {
|
|
29
|
+
// electron not installed yet (possible during CI)
|
|
30
|
+
process.exit(0);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const entitlements = `<?xml version="1.0" encoding="UTF-8"?>
|
|
34
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
35
|
+
<plist version="1.0">
|
|
36
|
+
<dict>
|
|
37
|
+
<key>com.apple.security.device.audio-input</key>
|
|
38
|
+
<true/>
|
|
39
|
+
</dict>
|
|
40
|
+
</plist>`;
|
|
41
|
+
|
|
42
|
+
const tmpPlist = join(__dirname, "_dev-entitlements.plist");
|
|
43
|
+
|
|
44
|
+
try {
|
|
45
|
+
writeFileSync(tmpPlist, entitlements);
|
|
46
|
+
execFileSync("codesign", [
|
|
47
|
+
"--force", "--deep", "--sign", "-",
|
|
48
|
+
"--entitlements", tmpPlist,
|
|
49
|
+
electronApp,
|
|
50
|
+
], { stdio: "inherit" });
|
|
51
|
+
console.log("[fix-dev-entitlements] Electron.app re-signed with microphone entitlement");
|
|
52
|
+
} catch (err) {
|
|
53
|
+
console.warn("[fix-dev-entitlements] Failed to re-sign Electron.app:", err.message);
|
|
54
|
+
} finally {
|
|
55
|
+
try { unlinkSync(tmpPlist); } catch {}
|
|
56
|
+
}
|
package/website/install.sh.asc
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
-----BEGIN PGP SIGNATURE-----
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
+
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
=
|
|
3
|
+
iQIzBAABCgAdFiEEX8WeGtXPO7P8xoFftW8bjWv2UfkFAmmq97gACgkQtW8bjWv2
|
|
4
|
+
UfkJiA//bYA7MM65S+WgNMgxUgJIvwoewGF7VfCC+BpnA+JoadB2DEhDXd4NN2Mb
|
|
5
|
+
qBvjwAfu+ys++5DWUaiYtWJIBFGx0Z1eiN3Yd8GQH+00WLQIhQ2iLLgPkWfa6iP6
|
|
6
|
+
omXRImvdszWk7fdTdnj6MJjWDeTq7i1cFcTbnJww9Pr0xLvqGueCmu/OCeCynYD9
|
|
7
|
+
GLI/ZXzNkXTAK3YQCJMuj1RQJ2mt5e5DNGh0IjEpfvSM8YpBpQL02ZoJmnKOj9td
|
|
8
|
+
lvyndZKkyz8PD6Fxzc7CYvwuEVIDZ97Nr+xCQjbX29DrgmLwSDjqGFL6/GmbDkIW
|
|
9
|
+
rVShn305Pxzc+mT+d03oMsSsAgOniqtqxIGXyM6bp/PV3uOqUOFa3dRCZXFQVQ5k
|
|
10
|
+
+YNdrlTBPjk8DxTrzXuOAwGudT3kjF34AfG2N/x4tcwEq49/2oIlb7K3FJ+xfCO6
|
|
11
|
+
NexMGyzr58O48SRvgbciBbNL9uMbN3oOmmijweWEMw8WQrxCBB+k/0vco822uhCA
|
|
12
|
+
27e4vKcwIDSZy29sEIFXvcUh7eYDw3jtClZmQgpw8M+kJukjH+oCOGhpOVi4UiP2
|
|
13
|
+
7reYeG32dz18+lzDoiVMO8992EhFEKlr70XHVr4ZqX4Eo4MjZiJrRi48DFfAu/WU
|
|
14
|
+
rIuavdTRGNZCvPN1Ftqi0XSZsdChLOiuVd2lBt/idzje10bhKj8=
|
|
15
|
+
=vyg/
|
|
16
16
|
-----END PGP SIGNATURE-----
|