pushary 1.9.65 → 1.9.67
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/CHANGELOG.md +18 -0
- package/data/SKILL.md +1 -1
- package/data/cursor-plugin/skills/pushary/SKILL.md +1 -1
- package/data/vscode-plugin/skills/pushary/SKILL.md +1 -1
- package/dist/{api-32B3XLJR.js → api-3WIPD5GC.js} +12 -10
- package/dist/bin/pushary-bell-hook.js +25 -27
- package/dist/bin/pushary-bell.js +10 -10
- package/dist/bin/pushary-claude.js +26 -28
- package/dist/bin/pushary-clean.js +74 -77
- package/dist/bin/pushary-codex-bridge.js +21 -22
- package/dist/bin/pushary-codex-hook.js +30 -32
- package/dist/bin/pushary-codex-session.js +8 -8
- package/dist/bin/pushary-codex.js +13 -13
- package/dist/bin/pushary-connect.js +28 -28
- package/dist/bin/pushary-cowork.js +5 -5
- package/dist/bin/pushary-daemon.js +40 -41
- package/dist/bin/pushary-disconnect.js +25 -26
- package/dist/bin/pushary-doctor.js +118 -76
- package/dist/bin/pushary-elicitation-hook.js +25 -27
- package/dist/bin/pushary-gemini-bridge.js +15 -16
- package/dist/bin/pushary-gemini-hook.js +27 -29
- package/dist/bin/pushary-hook.js +29 -31
- package/dist/bin/pushary-login.js +20 -19
- package/dist/bin/pushary-logout.js +26 -28
- package/dist/bin/pushary-mcp.js +11 -11
- package/dist/bin/pushary-mode.js +16 -15
- package/dist/bin/pushary-notification-hook.js +24 -26
- package/dist/bin/pushary-opencode-hook.js +26 -28
- package/dist/bin/pushary-permission-denied-hook.js +29 -31
- package/dist/bin/pushary-permission-hook.js +32 -31
- package/dist/bin/pushary-post-hook.js +24 -26
- package/dist/bin/pushary-prompt-hook.js +24 -26
- package/dist/bin/pushary-session-end-hook.js +26 -28
- package/dist/bin/pushary-session-start-hook.js +34 -35
- package/dist/bin/pushary-setup.js +111 -99
- package/dist/bin/pushary-stats.js +5 -5
- package/dist/bin/pushary-status.js +37 -36
- package/dist/bin/pushary-stop-hook.js +24 -26
- package/dist/bin/pushary-stopfailure-hook.js +24 -26
- package/dist/bin/pushary-suggestions.js +15 -14
- package/dist/bin/pushary-transcript-register.js +16 -18
- package/dist/bin/pushary-transcripts.js +18 -17
- package/dist/bin/pushary-upgrade.js +45 -39
- package/dist/bin/pushary-wait.js +26 -20
- package/dist/bin/pushary.js +7 -7
- package/dist/{chunk-Y64JGYTB.js → chunk-32OSSYGZ.js} +1 -1
- package/dist/{chunk-UHS5MMAI.js → chunk-3THDNNVL.js} +3 -3
- package/dist/{chunk-OA6EADFT.js → chunk-564IPPBL.js} +3 -3
- package/dist/chunk-5MOJCOCF.js +25 -0
- package/dist/{chunk-RRHHWYPX.js → chunk-6H4E5UBA.js} +6 -6
- package/dist/{chunk-UM2X7HL6.js → chunk-6LXXKMV6.js} +42 -16
- package/dist/chunk-76SWHCAR.js +299 -0
- package/dist/{chunk-AN7C3CHH.js → chunk-77L2TNJW.js} +1 -1
- package/dist/{chunk-XJIIU36L.js → chunk-7YJSDXLM.js} +1 -1
- package/dist/{chunk-XZCJC3QO.js → chunk-B3V2WOJX.js} +285 -50
- package/dist/{chunk-RABLE5R6.js → chunk-BBFGDYYI.js} +1 -1
- package/dist/{chunk-GTBWWCCM.js → chunk-BFF3ABFV.js} +115 -9
- package/dist/{chunk-NOH3EJFH.js → chunk-C4EDAHXI.js} +1 -1
- package/dist/{chunk-ITYKN2K3.js → chunk-CHYBOTQN.js} +2 -2
- package/dist/{chunk-FFSIYBBU.js → chunk-CJZLIAJF.js} +27 -10
- package/dist/{chunk-UMTMFDL2.js → chunk-CPLQ5OHX.js} +1 -1
- package/dist/{chunk-DTVHZDYM.js → chunk-D3U6CN7T.js} +26 -12
- package/dist/{chunk-ICFHMJTW.js → chunk-D7Z4USSB.js} +27 -8
- package/dist/{chunk-DXMUJTYF.js → chunk-DP6LU6BB.js} +2 -2
- package/dist/{chunk-GA257T2E.js → chunk-DXCHIKAN.js} +8 -8
- package/dist/{chunk-PP7FC3Y7.js → chunk-EQR6JSFE.js} +9 -7
- package/dist/{chunk-Z3M627TQ.js → chunk-FONWVVDD.js} +1 -1
- package/dist/{chunk-3KXBRSL3.js → chunk-GMHQYX3D.js} +1 -1
- package/dist/{chunk-WY6YAMZW.js → chunk-ICQCQAUO.js} +5 -4
- package/dist/{chunk-CZ65D6Q5.js → chunk-IPG3RS23.js} +2 -2
- package/dist/{chunk-JCWHOB36.js → chunk-IRV2MNMA.js} +53 -3
- package/dist/{chunk-HIYLAC3C.js → chunk-IVB5O6NY.js} +3 -3
- package/dist/{chunk-DM24VZOI.js → chunk-IXTVUINH.js} +3 -3
- package/dist/{chunk-BEQ3MEE3.js → chunk-JBRMIADM.js} +2 -2
- package/dist/{chunk-CU2PXLZ6.js → chunk-JHB5SR5B.js} +4 -4
- package/dist/{chunk-ED2SWTPC.js → chunk-JOBSKQ2Z.js} +4 -4
- package/dist/{chunk-W5L2ZLHE.js → chunk-JOD2325S.js} +3 -3
- package/dist/{chunk-CSKABVSH.js → chunk-JSPCGPSH.js} +3 -3
- package/dist/{chunk-R4FL5JHK.js → chunk-KE4TSJUD.js} +4 -4
- package/dist/{chunk-3LF7T3NW.js → chunk-KIXRHNCW.js} +6 -6
- package/dist/{chunk-BKCI53W6.js → chunk-KNUYUQBP.js} +4 -4
- package/dist/{chunk-4LUWNBGD.js → chunk-KTLE7NIK.js} +23 -8
- package/dist/{chunk-ADXHPGBZ.js → chunk-LJHDUKBB.js} +6 -6
- package/dist/{chunk-U2P2LQ5B.js → chunk-LS42NV6E.js} +15 -6
- package/dist/{chunk-QNZ6G3LY.js → chunk-LYTWK5TF.js} +5 -5
- package/dist/{chunk-2VADJ6JH.js → chunk-METUT7V4.js} +2 -2
- package/dist/{chunk-P5HZEGT7.js → chunk-NSS2AIGI.js} +6 -6
- package/dist/{chunk-QSW3HAKI.js → chunk-NWN6GGJL.js} +61 -2
- package/dist/{chunk-7ILQX47W.js → chunk-P4RXSZDT.js} +3 -3
- package/dist/{chunk-FWS2KLV2.js → chunk-PIBWX3EF.js} +2 -2
- package/dist/{chunk-F56GTJFG.js → chunk-PO2P3XDC.js} +5 -5
- package/dist/{chunk-EEVE7H5Z.js → chunk-R2BZH2NK.js} +4 -4
- package/dist/{chunk-I2UBF2SS.js → chunk-RO2B4YBF.js} +1 -1
- package/dist/{chunk-MNKIR2ZB.js → chunk-RQOT6QL3.js} +67 -6
- package/dist/{chunk-Q2BD4IBX.js → chunk-SB6TYV4M.js} +11 -13
- package/dist/{chunk-ATPJGHUP.js → chunk-TI4JYPGQ.js} +7 -3
- package/dist/{chunk-LMC5UPL7.js → chunk-UC2J5RR4.js} +1 -1
- package/dist/{chunk-IZVEBBDH.js → chunk-UQIPWXBL.js} +3 -3
- package/dist/{chunk-VHKK3US3.js → chunk-UXN73YAE.js} +3 -3
- package/dist/{chunk-WOHP7EL6.js → chunk-VEYFXRZ6.js} +7 -6
- package/dist/{chunk-2Z7I7DHT.js → chunk-VHMZPN3N.js} +1 -1
- package/dist/{chunk-HVOQUPSO.js → chunk-VKZ3RJ5U.js} +1 -1
- package/dist/chunk-VVIQWGS7.js +2298 -0
- package/dist/{chunk-SCMEVDAR.js → chunk-WJLHZ6E6.js} +3 -3
- package/dist/{chunk-BAGBCSXA.js → chunk-X2MTVD4W.js} +1 -1
- package/dist/{chunk-3UNAPXED.js → chunk-XFDWLDHG.js} +9 -9
- package/dist/{chunk-6CZX6YOE.js → chunk-XNUWKKGS.js} +3 -3
- package/dist/{chunk-NUEPJ5W6.js → chunk-XZKSUJ55.js} +3 -5
- package/dist/{chunk-HDGB6SQ4.js → chunk-Y4MRHAE5.js} +2 -2
- package/dist/{chunk-SZBMTOUZ.js → chunk-Y6ZN454E.js} +1 -1
- package/dist/{chunk-TK4JU2F7.js → chunk-YSD4SMHE.js} +1 -1
- package/dist/{chunk-SROWUG5W.js → chunk-ZK5WYAMI.js} +1 -1
- package/dist/{chunk-JFKMPLNF.js → chunk-ZPIYJLQ3.js} +2 -2
- package/dist/{codex-app-cards-switch-HK4RMOBI.js → codex-app-cards-switch-25TDTMUZ.js} +11 -11
- package/dist/{codex-desktop-launch-OCO6N7SA.js → codex-desktop-launch-JDKUCD2Y.js} +1 -1
- package/dist/{codex-session-launch-ETZQTVFS.js → codex-session-launch-6N35AAEO.js} +18 -19
- package/dist/{config-YY54G3CC.js → config-OBGYURFX.js} +3 -3
- package/dist/{global-upgrade-5DN5G3ZQ.js → global-upgrade-2QNQD5OM.js} +10 -10
- package/dist/{identity-EGL6HAWG.js → identity-CUPX2U7Q.js} +4 -4
- package/dist/{live-capabilities-WU3FYJJG.js → live-capabilities-CUEIWMSM.js} +5 -5
- package/dist/{paths-ZG6KDM6Y.js → paths-BHLBZ6FY.js} +7 -3
- package/dist/{reapply-AQLNCCTE.js → reapply-4GXLWZ5M.js} +27 -27
- package/dist/src/index.js +30 -20
- package/dist/{upgrade-lock-BIRXIKHJ.js → upgrade-lock-RDKTAHWR.js} +4 -4
- package/dist/{usage-43C2DHDU.js → usage-KX2HN47E.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-ANP3DIST.js +0 -118
- package/dist/chunk-ONBL2GCU.js +0 -615
- package/dist/chunk-TJUJAK5L.js +0 -62
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.9.67
|
|
4
|
+
|
|
5
|
+
- Hermes: setup installs the Pushary plugin as a folder in `~/.hermes/plugins/pushary`, where Hermes keeps your own plugins, instead of pip-installing it into Hermes's old virtualenv. Hermes v0.21.6 and later run from a Python they manage and rebuild on every `hermes update`, which left the pip copy behind and silently unloaded Pushary. The folder survives updates. Setup turns the plugin on with `hermes plugins enable pushary` and `hermes config set`, and never restarts Hermes for you.
|
|
6
|
+
- `pushary upgrade` moves a Hermes setup from before this release over to the folder, removes the old pip copy Hermes would otherwise load, and tells you to run `hermes gateway restart`.
|
|
7
|
+
- Setup no longer turns off Hermes's `clarify` tool. While the plugin is loaded it sends Hermes's questions to your phone through `pushary_ask`; without the plugin Hermes asks in its own prompt. Setups from before this release get `clarify` back.
|
|
8
|
+
- `pushary doctor` reports Hermes as connected only when the running Hermes loaded the plugin, and says when Hermes needs a restart, runs an older copy, or has the plugin switched off. It no longer asks for the global package when Pushary for Mac saved the key.
|
|
9
|
+
- Setup finds the `hermes` command in `~/.local/bin` and Homebrew when it is not on your PATH, and follows Hermes profiles (`HERMES_HOME` and `active_profile`).
|
|
10
|
+
- `pushary clean` removes the plugin folder only if Pushary installed it, and leaves a Hermes that Pushary for Mac connected, and the key the app saved for it, to the app. Neither setup nor the Mac app writes an older plugin over a newer one.
|
|
11
|
+
|
|
12
|
+
## 1.9.66
|
|
13
|
+
|
|
14
|
+
- In Claude Code, an approval stays answerable from your phone and from the terminal at the same time, and whichever answers first wins. Before, Pushary held the call for its window (60 seconds by default) while the terminal showed only a spinner, then withdrew the phone question and left only the terminal. Now Claude Code shows its own prompt straight away, Pushary sends the same question to your phone, and the phone keeps it for up to 10 minutes. Answer at the terminal and Pushary withdraws the phone question. This applies in an interactive Claude Code session in default or accept-edits mode, when only Pushary's defaults ask about the call. In bypass mode, and in `claude -p` and other headless runs, there is no prompt to answer, so Pushary still holds the call as before.
|
|
15
|
+
- Claude Code always shows its prompt for these calls, even where its own allow rules, a "don't ask again" choice or accept-edits would have run them without asking.
|
|
16
|
+
- A phone-only rule that approves or denies after a set time still does that when nobody answers in time. Other rules, including the built-in ones, never decide a call nobody answered: the prompt stays open. If Pushary cannot reach your phone, the terminal prompt stays and you answer there.
|
|
17
|
+
- A rule you wrote, a preset you picked or a mode you switched to for now keeps the old behaviour, as you set it up. So does a Team approval route, which its approver answers, not the terminal.
|
|
18
|
+
- Setup, upgrade and the daily update add a proof of the 10 minute hold to the Claude Code permission hook. Until then, an older registration keeps the window your rule had before, with the terminal answerable from the start.
|
|
19
|
+
- With Pushary for Mac, approvals work as before for now.
|
|
20
|
+
|
|
3
21
|
## 1.9.65
|
|
4
22
|
|
|
5
23
|
- OpenCode now asks before shell commands, edits and web fetches, so those approvals reach Pushary. Out of the box OpenCode runs all three without asking anybody, and Pushary's plugin can only answer what OpenCode asks, so until now an OpenCode set up by Pushary approved nothing. Setup sets `bash`, `edit` and `webfetch` to `ask` under `permission` in `opencode.json`, but only for a tool no rule of yours names. A rule for every tool (`"*"`), another name for the same tool (`shell`, `write`, `patch`), a switch under `tools`, a list of patterns and a single `permission` value all count as yours and stay as they are. Pushary's rules go before yours, and OpenCode follows the last rule that matches, so yours still decide.
|
package/data/SKILL.md
CHANGED
|
@@ -272,7 +272,7 @@ brew install --cask pushary/tap/pushary
|
|
|
272
272
|
|
|
273
273
|
They can also download it from https://pushary.com/download. It needs macOS 14 or later. It is not in the App Store.
|
|
274
274
|
|
|
275
|
-
The command line works on macOS too. Offer it if the user prefers the terminal
|
|
275
|
+
The command line works on macOS too. Offer it if the user prefers the terminal. The app connects Hermes as well.
|
|
276
276
|
|
|
277
277
|
### Branch 3. `Linux` or `Windows_NT`
|
|
278
278
|
|
|
@@ -265,7 +265,7 @@ brew install --cask pushary/tap/pushary
|
|
|
265
265
|
|
|
266
266
|
They can also download it from https://pushary.com/download. It needs macOS 14 or later. It is not in the App Store.
|
|
267
267
|
|
|
268
|
-
The command line works on macOS too. Offer it if the user prefers the terminal
|
|
268
|
+
The command line works on macOS too. Offer it if the user prefers the terminal. The app connects Hermes as well.
|
|
269
269
|
|
|
270
270
|
### Branch 3. `Linux` or `Windows_NT`
|
|
271
271
|
|
|
@@ -265,7 +265,7 @@ brew install --cask pushary/tap/pushary
|
|
|
265
265
|
|
|
266
266
|
They can also download it from https://pushary.com/download. It needs macOS 14 or later. It is not in the App Store.
|
|
267
267
|
|
|
268
|
-
The command line works on macOS too. Offer it if the user prefers the terminal
|
|
268
|
+
The command line works on macOS too. Offer it if the user prefers the terminal. The app connects Hermes as well.
|
|
269
269
|
|
|
270
270
|
### Branch 3. `Linux` or `Windows_NT`
|
|
271
271
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
ABANDONED_WAIT,
|
|
2
3
|
WAIT_RESPONSE_GRACE_MS,
|
|
3
4
|
askUser,
|
|
4
5
|
cancelQuestion,
|
|
@@ -16,25 +17,26 @@ import {
|
|
|
16
17
|
waitForQuestion,
|
|
17
18
|
waitsForThePhone,
|
|
18
19
|
withdrawQuestion
|
|
19
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-D3U6CN7T.js";
|
|
20
21
|
import "./chunk-POFBE6ZY.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-KNUYUQBP.js";
|
|
23
|
+
import "./chunk-3THDNNVL.js";
|
|
24
|
+
import "./chunk-P4RXSZDT.js";
|
|
25
|
+
import "./chunk-PIBWX3EF.js";
|
|
25
26
|
import "./chunk-PPY5N2E6.js";
|
|
26
27
|
import "./chunk-KZERVKTD.js";
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-TI4JYPGQ.js";
|
|
29
|
+
import "./chunk-WJLHZ6E6.js";
|
|
30
|
+
import "./chunk-32OSSYGZ.js";
|
|
31
|
+
import "./chunk-X2MTVD4W.js";
|
|
31
32
|
import "./chunk-QTOLNRET.js";
|
|
32
33
|
import {
|
|
33
34
|
DECISION_STOP_REASON,
|
|
34
35
|
UNVERIFIABLE_APPROVAL_REASON
|
|
35
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-RQOT6QL3.js";
|
|
36
37
|
import "./chunk-MLKGABMK.js";
|
|
37
38
|
export {
|
|
39
|
+
ABANDONED_WAIT,
|
|
38
40
|
DECISION_STOP_REASON,
|
|
39
41
|
UNVERIFIABLE_APPROVAL_REASON,
|
|
40
42
|
WAIT_RESPONSE_GRACE_MS,
|
|
@@ -1,41 +1,39 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
handleBell
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-RO2B4YBF.js";
|
|
5
5
|
import {
|
|
6
6
|
readHookInput
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-Z3M627TQ.js";
|
|
7
|
+
} from "../chunk-EQR6JSFE.js";
|
|
8
|
+
import "../chunk-SB6TYV4M.js";
|
|
9
|
+
import "../chunk-Y6ZN454E.js";
|
|
10
|
+
import "../chunk-ICQCQAUO.js";
|
|
11
|
+
import "../chunk-LJHDUKBB.js";
|
|
12
|
+
import "../chunk-BFF3ABFV.js";
|
|
13
|
+
import "../chunk-ZK5WYAMI.js";
|
|
14
|
+
import "../chunk-FONWVVDD.js";
|
|
16
15
|
import "../chunk-NMUI3ZWG.js";
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-TK4JU2F7.js";
|
|
16
|
+
import "../chunk-NWN6GGJL.js";
|
|
17
|
+
import "../chunk-YSD4SMHE.js";
|
|
20
18
|
import "../chunk-XHKBHWLX.js";
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
19
|
+
import "../chunk-JOBSKQ2Z.js";
|
|
20
|
+
import "../chunk-XFDWLDHG.js";
|
|
21
|
+
import "../chunk-GMHQYX3D.js";
|
|
22
|
+
import "../chunk-D3U6CN7T.js";
|
|
25
23
|
import "../chunk-POFBE6ZY.js";
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
29
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-KNUYUQBP.js";
|
|
25
|
+
import "../chunk-3THDNNVL.js";
|
|
26
|
+
import "../chunk-P4RXSZDT.js";
|
|
27
|
+
import "../chunk-PIBWX3EF.js";
|
|
30
28
|
import "../chunk-PPY5N2E6.js";
|
|
31
29
|
import "../chunk-KZERVKTD.js";
|
|
32
|
-
import "../chunk-
|
|
33
|
-
import "../chunk-
|
|
34
|
-
import "../chunk-
|
|
35
|
-
import "../chunk-
|
|
36
|
-
import "../chunk-
|
|
30
|
+
import "../chunk-METUT7V4.js";
|
|
31
|
+
import "../chunk-TI4JYPGQ.js";
|
|
32
|
+
import "../chunk-WJLHZ6E6.js";
|
|
33
|
+
import "../chunk-32OSSYGZ.js";
|
|
34
|
+
import "../chunk-X2MTVD4W.js";
|
|
37
35
|
import "../chunk-QTOLNRET.js";
|
|
38
|
-
import "../chunk-
|
|
36
|
+
import "../chunk-RQOT6QL3.js";
|
|
39
37
|
import "../chunk-MLKGABMK.js";
|
|
40
38
|
|
|
41
39
|
// bin/pushary-bell-hook.ts
|
package/dist/bin/pushary-bell.js
CHANGED
|
@@ -5,40 +5,40 @@ import {
|
|
|
5
5
|
liveAgentCount,
|
|
6
6
|
ring,
|
|
7
7
|
upgradeThreshold
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-RO2B4YBF.js";
|
|
9
9
|
import {
|
|
10
10
|
createIo
|
|
11
11
|
} from "../chunk-FO3MDD26.js";
|
|
12
12
|
import {
|
|
13
13
|
exitOnHelpFlag
|
|
14
|
-
} from "../chunk-
|
|
14
|
+
} from "../chunk-77L2TNJW.js";
|
|
15
15
|
import {
|
|
16
16
|
addBellHooks,
|
|
17
17
|
bellInstalled,
|
|
18
18
|
removeBellHooks
|
|
19
|
-
} from "../chunk-
|
|
19
|
+
} from "../chunk-FONWVVDD.js";
|
|
20
20
|
import {
|
|
21
21
|
parseFlags
|
|
22
22
|
} from "../chunk-NMUI3ZWG.js";
|
|
23
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-JOBSKQ2Z.js";
|
|
24
24
|
import "../chunk-PPY5N2E6.js";
|
|
25
25
|
import {
|
|
26
26
|
EXIT
|
|
27
27
|
} from "../chunk-KZERVKTD.js";
|
|
28
|
-
import "../chunk-
|
|
28
|
+
import "../chunk-METUT7V4.js";
|
|
29
29
|
import {
|
|
30
30
|
claudeSettings
|
|
31
|
-
} from "../chunk-
|
|
31
|
+
} from "../chunk-TI4JYPGQ.js";
|
|
32
32
|
import {
|
|
33
33
|
readJsonSafe,
|
|
34
34
|
writeJsonAtomic
|
|
35
|
-
} from "../chunk-
|
|
36
|
-
import "../chunk-
|
|
37
|
-
import "../chunk-
|
|
35
|
+
} from "../chunk-WJLHZ6E6.js";
|
|
36
|
+
import "../chunk-32OSSYGZ.js";
|
|
37
|
+
import "../chunk-X2MTVD4W.js";
|
|
38
38
|
import "../chunk-QTOLNRET.js";
|
|
39
39
|
import {
|
|
40
40
|
isRecord
|
|
41
|
-
} from "../chunk-
|
|
41
|
+
} from "../chunk-RQOT6QL3.js";
|
|
42
42
|
import "../chunk-MLKGABMK.js";
|
|
43
43
|
|
|
44
44
|
// bin/pushary-bell.ts
|
|
@@ -2,45 +2,43 @@
|
|
|
2
2
|
import {
|
|
3
3
|
WRAPPER_ACTIVE_ENV,
|
|
4
4
|
findClaudeBinary
|
|
5
|
-
} from "../chunk-
|
|
5
|
+
} from "../chunk-IPG3RS23.js";
|
|
6
6
|
import {
|
|
7
7
|
SESSION_IDLE_TIMEOUT_MS,
|
|
8
8
|
describeIdleWindow,
|
|
9
9
|
startProcessOwnership,
|
|
10
10
|
withSpawnProcessOwnership
|
|
11
|
-
} from "../chunk-
|
|
12
|
-
import "../chunk-
|
|
11
|
+
} from "../chunk-XNUWKKGS.js";
|
|
12
|
+
import "../chunk-BBFGDYYI.js";
|
|
13
13
|
import {
|
|
14
14
|
announceSubscriptionRequired,
|
|
15
15
|
isDeferAnswer
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-CPLQ5OHX.js";
|
|
17
17
|
import {
|
|
18
18
|
claudeTranscriptPath,
|
|
19
19
|
loadSessionKey,
|
|
20
20
|
registerTranscript,
|
|
21
21
|
registeredTranscriptEnabled
|
|
22
|
-
} from "../chunk-
|
|
23
|
-
import "../chunk-
|
|
22
|
+
} from "../chunk-SB6TYV4M.js";
|
|
23
|
+
import "../chunk-Y6ZN454E.js";
|
|
24
24
|
import {
|
|
25
25
|
ensureDaemonRunning
|
|
26
|
-
} from "../chunk-
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-Z3M627TQ.js";
|
|
26
|
+
} from "../chunk-LJHDUKBB.js";
|
|
27
|
+
import "../chunk-BFF3ABFV.js";
|
|
28
|
+
import "../chunk-ZK5WYAMI.js";
|
|
29
|
+
import "../chunk-FONWVVDD.js";
|
|
31
30
|
import "../chunk-NMUI3ZWG.js";
|
|
32
31
|
import {
|
|
33
32
|
encryptRecord
|
|
34
|
-
} from "../chunk-
|
|
35
|
-
import "../chunk-TJUJAK5L.js";
|
|
33
|
+
} from "../chunk-NWN6GGJL.js";
|
|
36
34
|
import {
|
|
37
35
|
transcriptsEnabled
|
|
38
|
-
} from "../chunk-
|
|
36
|
+
} from "../chunk-YSD4SMHE.js";
|
|
39
37
|
import {
|
|
40
38
|
needsShell,
|
|
41
39
|
spawnClaude
|
|
42
40
|
} from "../chunk-XHKBHWLX.js";
|
|
43
|
-
import "../chunk-
|
|
41
|
+
import "../chunk-JOBSKQ2Z.js";
|
|
44
42
|
import {
|
|
45
43
|
DEFAULT_SESSION,
|
|
46
44
|
UNNAMED_ACTION,
|
|
@@ -57,10 +55,10 @@ import {
|
|
|
57
55
|
reportEvent,
|
|
58
56
|
savePendingCommand,
|
|
59
57
|
scopePathFor
|
|
60
|
-
} from "../chunk-
|
|
58
|
+
} from "../chunk-XFDWLDHG.js";
|
|
61
59
|
import {
|
|
62
60
|
repoKeyFor
|
|
63
|
-
} from "../chunk-
|
|
61
|
+
} from "../chunk-GMHQYX3D.js";
|
|
64
62
|
import {
|
|
65
63
|
askUser,
|
|
66
64
|
cancelQuestion,
|
|
@@ -72,30 +70,30 @@ import {
|
|
|
72
70
|
waitForAnswer,
|
|
73
71
|
waitsForThePhone,
|
|
74
72
|
withdrawQuestion
|
|
75
|
-
} from "../chunk-
|
|
73
|
+
} from "../chunk-D3U6CN7T.js";
|
|
76
74
|
import "../chunk-POFBE6ZY.js";
|
|
77
75
|
import {
|
|
78
76
|
SubscriptionRequiredError
|
|
79
|
-
} from "../chunk-
|
|
80
|
-
import "../chunk-
|
|
81
|
-
import "../chunk-
|
|
77
|
+
} from "../chunk-KNUYUQBP.js";
|
|
78
|
+
import "../chunk-3THDNNVL.js";
|
|
79
|
+
import "../chunk-P4RXSZDT.js";
|
|
82
80
|
import {
|
|
83
81
|
getMachineId
|
|
84
|
-
} from "../chunk-
|
|
82
|
+
} from "../chunk-PIBWX3EF.js";
|
|
85
83
|
import "../chunk-PPY5N2E6.js";
|
|
86
84
|
import "../chunk-KZERVKTD.js";
|
|
87
|
-
import "../chunk-
|
|
85
|
+
import "../chunk-METUT7V4.js";
|
|
88
86
|
import {
|
|
89
87
|
claudeConfigDir
|
|
90
|
-
} from "../chunk-
|
|
91
|
-
import "../chunk-
|
|
88
|
+
} from "../chunk-TI4JYPGQ.js";
|
|
89
|
+
import "../chunk-WJLHZ6E6.js";
|
|
92
90
|
import {
|
|
93
91
|
getApiKey,
|
|
94
92
|
getBaseUrl
|
|
95
|
-
} from "../chunk-
|
|
93
|
+
} from "../chunk-32OSSYGZ.js";
|
|
96
94
|
import {
|
|
97
95
|
NPX_LATEST_COMMAND
|
|
98
|
-
} from "../chunk-
|
|
96
|
+
} from "../chunk-X2MTVD4W.js";
|
|
99
97
|
import "../chunk-QTOLNRET.js";
|
|
100
98
|
import {
|
|
101
99
|
DECISION_STOP_REASON,
|
|
@@ -108,7 +106,7 @@ import {
|
|
|
108
106
|
refusesWhenUnanswered,
|
|
109
107
|
resolveGate,
|
|
110
108
|
timeoutActionWithoutLocalPrompt
|
|
111
|
-
} from "../chunk-
|
|
109
|
+
} from "../chunk-RQOT6QL3.js";
|
|
112
110
|
import "../chunk-MLKGABMK.js";
|
|
113
111
|
|
|
114
112
|
// src/wrapper/localPassthrough.ts
|
|
@@ -15,51 +15,53 @@ import {
|
|
|
15
15
|
storedMacAppState,
|
|
16
16
|
storedPusharyKeychainServices,
|
|
17
17
|
waitForMacAppExit
|
|
18
|
-
} from "../chunk-
|
|
18
|
+
} from "../chunk-564IPPBL.js";
|
|
19
19
|
import {
|
|
20
20
|
PUSHARY_SKILL_NAME,
|
|
21
21
|
PUSHARY_SKILL_SOURCE,
|
|
22
22
|
createGuards
|
|
23
23
|
} from "../chunk-EUW7JL2K.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-ZPIYJLQ3.js";
|
|
25
25
|
import "../chunk-XCEN33UP.js";
|
|
26
26
|
import {
|
|
27
27
|
describeCliKeyRevocation,
|
|
28
28
|
planCliKeyRevocations,
|
|
29
29
|
readCliHeldKeys,
|
|
30
30
|
revokeCliKeys
|
|
31
|
-
} from "../chunk-
|
|
32
|
-
import "../chunk-FFSIYBBU.js";
|
|
31
|
+
} from "../chunk-DXCHIKAN.js";
|
|
33
32
|
import {
|
|
34
33
|
isCursorPluginLeftover,
|
|
35
34
|
releaseSoleGate,
|
|
36
35
|
withoutPusharyCursorHooks
|
|
37
|
-
} from "../chunk-
|
|
36
|
+
} from "../chunk-JHB5SR5B.js";
|
|
38
37
|
import {
|
|
39
|
-
HERMES_PIP_PACKAGE,
|
|
40
|
-
readHermesStatus,
|
|
41
|
-
resolveHermesPython,
|
|
42
|
-
runHermesConfigScript,
|
|
43
38
|
shortenHome,
|
|
44
39
|
unregisterPluginLocation,
|
|
45
40
|
vscodeSettingsTargets
|
|
46
|
-
} from "../chunk-
|
|
41
|
+
} from "../chunk-76SWHCAR.js";
|
|
47
42
|
import {
|
|
43
|
+
configFileHoldsMacAppKey,
|
|
48
44
|
macAppKeepsMcpEntry,
|
|
49
45
|
mcpServerBearer,
|
|
50
46
|
pusharyKey,
|
|
51
47
|
readMacAppAgentKey,
|
|
52
48
|
setupReceiptKey
|
|
53
|
-
} from "../chunk-
|
|
49
|
+
} from "../chunk-LS42NV6E.js";
|
|
50
|
+
import "../chunk-5MOJCOCF.js";
|
|
51
|
+
import {
|
|
52
|
+
HERMES_CONFIG_FILE,
|
|
53
|
+
defaultHermesHome,
|
|
54
|
+
hermesReceiptPaths,
|
|
55
|
+
removeHermesWiring
|
|
56
|
+
} from "../chunk-VVIQWGS7.js";
|
|
54
57
|
import "../chunk-QCGNGEGE.js";
|
|
55
|
-
import "../chunk-ITYKN2K3.js";
|
|
56
58
|
import {
|
|
57
59
|
planClineRemoval,
|
|
58
60
|
planFxRemoval,
|
|
59
61
|
removeClineServer
|
|
60
|
-
} from "../chunk-
|
|
61
|
-
import "../chunk-
|
|
62
|
-
import "../chunk-
|
|
62
|
+
} from "../chunk-LYTWK5TF.js";
|
|
63
|
+
import "../chunk-JOD2325S.js";
|
|
64
|
+
import "../chunk-JBRMIADM.js";
|
|
63
65
|
import {
|
|
64
66
|
OPENCODE_ASKED_PERMISSIONS,
|
|
65
67
|
OPENCODE_PLUGIN_SIBLING,
|
|
@@ -73,15 +75,15 @@ import {
|
|
|
73
75
|
openCodePluginDir,
|
|
74
76
|
openCodePluginFile,
|
|
75
77
|
removeOpenCodeMcpServer
|
|
76
|
-
} from "../chunk-
|
|
78
|
+
} from "../chunk-NSS2AIGI.js";
|
|
77
79
|
import {
|
|
78
80
|
ansiPainter,
|
|
79
81
|
useColor
|
|
80
82
|
} from "../chunk-FO3MDD26.js";
|
|
81
83
|
import {
|
|
82
84
|
exitOnHelpFlag
|
|
83
|
-
} from "../chunk-
|
|
84
|
-
import "../chunk-
|
|
85
|
+
} from "../chunk-77L2TNJW.js";
|
|
86
|
+
import "../chunk-BBFGDYYI.js";
|
|
85
87
|
import {
|
|
86
88
|
compatibleConfigFile,
|
|
87
89
|
compatibleDocuments,
|
|
@@ -93,23 +95,21 @@ import {
|
|
|
93
95
|
removeCompatibleHooks,
|
|
94
96
|
removeCompatibleMcpServer,
|
|
95
97
|
serializeConfigDocument
|
|
96
|
-
} from "../chunk-
|
|
98
|
+
} from "../chunk-ICQCQAUO.js";
|
|
97
99
|
import {
|
|
98
100
|
disableDaemonService
|
|
99
|
-
} from "../chunk-
|
|
101
|
+
} from "../chunk-LJHDUKBB.js";
|
|
100
102
|
import {
|
|
101
103
|
hookOwnerOf,
|
|
102
104
|
isHookTakeoverReceipt,
|
|
103
105
|
liveBridgeProbe,
|
|
106
|
+
removeGeminiSettings,
|
|
104
107
|
resolveBridgeStub,
|
|
105
108
|
restoreHookTakeover,
|
|
106
109
|
restoreMcpServer
|
|
107
|
-
} from "../chunk-
|
|
108
|
-
import
|
|
109
|
-
|
|
110
|
-
} from "../chunk-ANP3DIST.js";
|
|
111
|
-
import "../chunk-SROWUG5W.js";
|
|
112
|
-
import "../chunk-Z3M627TQ.js";
|
|
110
|
+
} from "../chunk-BFF3ABFV.js";
|
|
111
|
+
import "../chunk-ZK5WYAMI.js";
|
|
112
|
+
import "../chunk-FONWVVDD.js";
|
|
113
113
|
import {
|
|
114
114
|
parseFlags
|
|
115
115
|
} from "../chunk-NMUI3ZWG.js";
|
|
@@ -119,21 +119,21 @@ import {
|
|
|
119
119
|
isDisabledExport,
|
|
120
120
|
removeClaudeAlias,
|
|
121
121
|
shellProfileCandidates
|
|
122
|
-
} from "../chunk-
|
|
122
|
+
} from "../chunk-JOBSKQ2Z.js";
|
|
123
123
|
import "../chunk-E46NE7FB.js";
|
|
124
|
-
import "../chunk-
|
|
125
|
-
import "../chunk-
|
|
126
|
-
import "../chunk-
|
|
124
|
+
import "../chunk-XFDWLDHG.js";
|
|
125
|
+
import "../chunk-GMHQYX3D.js";
|
|
126
|
+
import "../chunk-D3U6CN7T.js";
|
|
127
127
|
import "../chunk-POFBE6ZY.js";
|
|
128
|
-
import "../chunk-
|
|
129
|
-
import "../chunk-
|
|
130
|
-
import "../chunk-
|
|
131
|
-
import "../chunk-
|
|
128
|
+
import "../chunk-KNUYUQBP.js";
|
|
129
|
+
import "../chunk-3THDNNVL.js";
|
|
130
|
+
import "../chunk-P4RXSZDT.js";
|
|
131
|
+
import "../chunk-PIBWX3EF.js";
|
|
132
132
|
import "../chunk-PPY5N2E6.js";
|
|
133
133
|
import {
|
|
134
134
|
EXIT
|
|
135
135
|
} from "../chunk-KZERVKTD.js";
|
|
136
|
-
import "../chunk-
|
|
136
|
+
import "../chunk-METUT7V4.js";
|
|
137
137
|
import {
|
|
138
138
|
claudeConfigDir,
|
|
139
139
|
claudeJson,
|
|
@@ -160,10 +160,10 @@ import {
|
|
|
160
160
|
fxSettings,
|
|
161
161
|
geminiMd,
|
|
162
162
|
geminiSettings,
|
|
163
|
-
|
|
164
|
-
hermesConfigReceipt,
|
|
163
|
+
hermesAppWiringRecord,
|
|
165
164
|
hookTakeoverReceipt,
|
|
166
165
|
isClaudeMcpSnapshot,
|
|
166
|
+
pusharyConfigFile,
|
|
167
167
|
pusharyDir,
|
|
168
168
|
readCodexMcpAuth,
|
|
169
169
|
removeClaudeMcpServers,
|
|
@@ -176,20 +176,20 @@ import {
|
|
|
176
176
|
restoreCodexHookTrust,
|
|
177
177
|
vscodePluginDir,
|
|
178
178
|
vscodePluginMcp
|
|
179
|
-
} from "../chunk-
|
|
179
|
+
} from "../chunk-TI4JYPGQ.js";
|
|
180
180
|
import {
|
|
181
181
|
cleanNpmEnv,
|
|
182
182
|
globalPackageState,
|
|
183
183
|
npmIsOnPath,
|
|
184
184
|
readGlobalFolder,
|
|
185
185
|
readGlobalPrefix
|
|
186
|
-
} from "../chunk-
|
|
186
|
+
} from "../chunk-WJLHZ6E6.js";
|
|
187
187
|
import {
|
|
188
188
|
getBaseUrl
|
|
189
|
-
} from "../chunk-
|
|
189
|
+
} from "../chunk-32OSSYGZ.js";
|
|
190
190
|
import {
|
|
191
191
|
NPX_LATEST_COMMAND
|
|
192
|
-
} from "../chunk-
|
|
192
|
+
} from "../chunk-X2MTVD4W.js";
|
|
193
193
|
import {
|
|
194
194
|
CLI_PACKAGE_NAMES,
|
|
195
195
|
globalPackageFolder,
|
|
@@ -203,12 +203,12 @@ import {
|
|
|
203
203
|
SUPPORT_EMAIL,
|
|
204
204
|
isValidApiKey,
|
|
205
205
|
redactSecrets
|
|
206
|
-
} from "../chunk-
|
|
206
|
+
} from "../chunk-RQOT6QL3.js";
|
|
207
207
|
import "../chunk-MLKGABMK.js";
|
|
208
208
|
|
|
209
209
|
// bin/pushary-clean.ts
|
|
210
210
|
import { existsSync as existsSync5, readFileSync as readFileSync4, copyFileSync, readdirSync as readdirSync4 } from "fs";
|
|
211
|
-
import { dirname as dirname2, join as join5 } from "path";
|
|
211
|
+
import { basename, dirname as dirname2, join as join5 } from "path";
|
|
212
212
|
import { homedir as homedir4, tmpdir } from "os";
|
|
213
213
|
import { confirm } from "@inquirer/prompts";
|
|
214
214
|
import { parse as parseTOML, stringify as stringifyTOML } from "smol-toml";
|
|
@@ -533,8 +533,6 @@ var CLAUDE_SETTINGS = claudeSettings();
|
|
|
533
533
|
var CLAUDE_SETTINGS_LOCAL = claudeSettingsLocal();
|
|
534
534
|
var CLAUDE_JSON = claudeJson();
|
|
535
535
|
var CLAUDE_MCP_RECEIPT = claudeMcpReceipt();
|
|
536
|
-
var HERMES_CONFIG_RECEIPT = hermesConfigReceipt();
|
|
537
|
-
var HERMES_CONFIG_FILE = hermesConfig();
|
|
538
536
|
var SKILL_DIR = claudeSkillDir();
|
|
539
537
|
var CURSOR_MCP = cursorUserMcp();
|
|
540
538
|
var CURSOR_PLUGIN_DIR = cursorPluginDir();
|
|
@@ -573,6 +571,33 @@ var readJson = (path) => {
|
|
|
573
571
|
};
|
|
574
572
|
var dryRun = false;
|
|
575
573
|
var did = (past) => dryRun ? `(would ${past === "cleaned" ? "clean" : past === "removed" ? "remove" : past === "uninstalled" ? "uninstall" : past})` : `(${past})`;
|
|
574
|
+
var HERMES_REMOVAL_FAILURES = {
|
|
575
|
+
receipt_invalid: "setup receipt is unreadable; left unchanged",
|
|
576
|
+
home_unknown: "Hermes would not report its settings; left unchanged",
|
|
577
|
+
plugin: "could not remove the plugin; setup receipt kept for retry",
|
|
578
|
+
settings: "could not restore config.yaml; setup receipt kept for retry"
|
|
579
|
+
};
|
|
580
|
+
var reportHermesRemoval = (outcome) => {
|
|
581
|
+
switch (outcome.kind) {
|
|
582
|
+
case "not_found":
|
|
583
|
+
console.log(` ${skip} Hermes ${dim("(not found)")}`);
|
|
584
|
+
return false;
|
|
585
|
+
case "kept_for_mac_app":
|
|
586
|
+
console.log(` ${skip} Hermes ${dim("(kept: the Mac app connected it)")}`);
|
|
587
|
+
return false;
|
|
588
|
+
case "runtime_missing":
|
|
589
|
+
console.log(` ${skip} Hermes ${dim("(hermes command not found; setup receipt kept for retry)")}`);
|
|
590
|
+
return true;
|
|
591
|
+
case "failed":
|
|
592
|
+
console.log(` ${skip} Hermes ${dim(`(${HERMES_REMOVAL_FAILURES[outcome.step]})`)}`);
|
|
593
|
+
return true;
|
|
594
|
+
case "removed":
|
|
595
|
+
if (outcome.pluginRemoved) console.log(` ${check} Hermes plugin ${dim(did("removed"))}`);
|
|
596
|
+
if (outcome.dryRun) wouldNote("rewrite", join5(defaultHermesHome(), HERMES_CONFIG_FILE));
|
|
597
|
+
console.log(` ${check} Hermes config ${dim(outcome.dryRun ? "(would restore)" : "(restored)")} ${dim("(Pushary settings)")}`);
|
|
598
|
+
return false;
|
|
599
|
+
}
|
|
600
|
+
};
|
|
576
601
|
var wouldNote = (action, path) => {
|
|
577
602
|
console.log(` ${dim("would")} ${action} ${path}`);
|
|
578
603
|
};
|
|
@@ -1151,37 +1176,8 @@ var main = async () => {
|
|
|
1151
1176
|
removeFxConfiguration();
|
|
1152
1177
|
removeFxInstructions();
|
|
1153
1178
|
removeClineConfiguration();
|
|
1154
|
-
const
|
|
1155
|
-
if (
|
|
1156
|
-
const configRun = runHermesConfigScript(hermesPython, dryRun ? "clean-preview" : "clean", HERMES_CONFIG_RECEIPT);
|
|
1157
|
-
if (configRun === "failed") {
|
|
1158
|
-
incompleteClean = true;
|
|
1159
|
-
console.log(` ${skip} Hermes config ${dim("(could not update config.yaml)")}`);
|
|
1160
|
-
} else {
|
|
1161
|
-
if (configRun === "changed") {
|
|
1162
|
-
if (dryRun) wouldNote("rewrite", HERMES_CONFIG_FILE);
|
|
1163
|
-
console.log(` ${check} Hermes config ${dim(did("removed"))} ${dim("(Pushary settings)")}`);
|
|
1164
|
-
} else {
|
|
1165
|
-
console.log(` ${skip} Hermes config ${dim("(no Pushary settings)")}`);
|
|
1166
|
-
}
|
|
1167
|
-
if (readHermesStatus(hermesPython)?.pluginInstalled === false) {
|
|
1168
|
-
console.log(` ${skip} Hermes plugin ${dim("(not installed)")}`);
|
|
1169
|
-
} else {
|
|
1170
|
-
try {
|
|
1171
|
-
guards.execFile(hermesPython, ["-m", "pip", "uninstall", "-y", HERMES_PIP_PACKAGE], { stdio: "pipe", timeout: 6e4 }, `pip uninstall ${HERMES_PIP_PACKAGE}`);
|
|
1172
|
-
console.log(` ${check} Hermes plugin ${dim(did("uninstalled"))}`);
|
|
1173
|
-
} catch {
|
|
1174
|
-
incompleteClean = true;
|
|
1175
|
-
console.log(` ${skip} Hermes plugin ${dim("(could not uninstall; setup receipt kept for retry)")}`);
|
|
1176
|
-
}
|
|
1177
|
-
}
|
|
1178
|
-
}
|
|
1179
|
-
} else if (existsSync5(HERMES_CONFIG_RECEIPT)) {
|
|
1180
|
-
incompleteClean = true;
|
|
1181
|
-
console.log(` ${skip} Hermes ${dim("(runtime not found; setup receipt kept for retry)")}`);
|
|
1182
|
-
} else {
|
|
1183
|
-
console.log(` ${skip} Hermes ${dim("(not found)")}`);
|
|
1184
|
-
}
|
|
1179
|
+
const hermesRemoval = removeHermesWiring({ dryRun, receipts: hermesReceiptPaths(), keepMacAppWiring: keepShared, macAppWiringRecord: hermesAppWiringRecord() });
|
|
1180
|
+
if (reportHermesRemoval(hermesRemoval)) incompleteClean = true;
|
|
1185
1181
|
for (const shellFile of SHELL_FILES) {
|
|
1186
1182
|
try {
|
|
1187
1183
|
const content = readFileSync4(shellFile, "utf-8");
|
|
@@ -1228,10 +1224,11 @@ var main = async () => {
|
|
|
1228
1224
|
if (existsSync5(PUSHARY_DIR)) {
|
|
1229
1225
|
let removed = 0;
|
|
1230
1226
|
const kept = [];
|
|
1227
|
+
const macAppsHermesKey = hermesRemoval.kind === "kept_for_mac_app" && configFileHoldsMacAppKey(pusharyConfigFile()) ? basename(pusharyConfigFile()) : null;
|
|
1231
1228
|
for (const entry of readdirSync4(PUSHARY_DIR)) {
|
|
1232
1229
|
const appCardsFolder = entry === CODEX_APP_CARDS_DIRECTORY ? codexAppCardsFolderInTheLastSweep(appCardsCleanUp) : "swept_with_the_rest";
|
|
1233
1230
|
if (appCardsFolder === "left_to_the_switch") continue;
|
|
1234
|
-
if (keepShared && isAppOwned(entry) || entry === "setup" && (keepShared || incompleteClean) || appCardsFolder === "kept") {
|
|
1231
|
+
if (keepShared && isAppOwned(entry) || entry === "setup" && (keepShared || incompleteClean) || entry === macAppsHermesKey || appCardsFolder === "kept") {
|
|
1235
1232
|
kept.push(entry);
|
|
1236
1233
|
continue;
|
|
1237
1234
|
}
|