@pushary/agent-hooks 1.9.59 → 1.9.61
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 +13 -0
- package/README.md +6 -0
- package/data/cursor-plugin/.cursor-plugin/plugin.json +5 -1
- package/data/cursor-plugin/CHANGELOG.md +4 -0
- package/dist/{api-UVJGNZIF.js → api-LW3PJQYY.js} +12 -11
- package/dist/bin/pushary-bell-hook.js +30 -29
- package/dist/bin/pushary-bell.js +13 -12
- package/dist/bin/pushary-claude.js +32 -30
- package/dist/bin/pushary-clean.js +61 -54
- package/dist/bin/pushary-codex-bridge.js +23 -22
- package/dist/bin/pushary-codex-hook.js +35 -34
- package/dist/bin/pushary-codex-session.js +9 -8
- package/dist/bin/pushary-codex.js +16 -15
- package/dist/bin/pushary-connect.js +30 -29
- package/dist/bin/pushary-cowork.js +8 -7
- package/dist/bin/pushary-daemon.js +40 -39
- package/dist/bin/pushary-disconnect.js +43 -29
- package/dist/bin/pushary-doctor.js +52 -47
- package/dist/bin/pushary-elicitation-hook.js +30 -29
- package/dist/bin/pushary-gemini-bridge.js +16 -15
- package/dist/bin/pushary-gemini-hook.js +32 -31
- package/dist/bin/pushary-hook.js +34 -33
- package/dist/bin/pushary-login.js +23 -19
- package/dist/bin/pushary-logout.js +37 -31
- package/dist/bin/pushary-mcp.js +13 -12
- package/dist/bin/pushary-mode.js +42 -55
- package/dist/bin/pushary-notification-hook.js +29 -28
- package/dist/bin/pushary-opencode-hook.js +31 -30
- package/dist/bin/pushary-permission-denied-hook.js +34 -33
- package/dist/bin/pushary-permission-hook.js +33 -32
- package/dist/bin/pushary-post-hook.js +29 -28
- package/dist/bin/pushary-prompt-hook.js +29 -28
- package/dist/bin/pushary-session-end-hook.js +29 -28
- package/dist/bin/pushary-session-start-hook.js +36 -35
- package/dist/bin/pushary-setup.js +4397 -292
- package/dist/bin/pushary-stats.js +6 -5
- package/dist/bin/pushary-status.js +42 -36
- package/dist/bin/pushary-stop-hook.js +29 -28
- package/dist/bin/pushary-stopfailure-hook.js +29 -28
- package/dist/bin/pushary-suggestions.js +34 -39
- package/dist/bin/pushary-transcript-register.js +21 -20
- package/dist/bin/pushary-transcripts.js +34 -20
- package/dist/bin/pushary-upgrade.js +77 -50
- package/dist/bin/pushary-wait.js +37 -42
- package/dist/bin/pushary.js +9 -8
- package/dist/{chunk-PVANKDWM.js → chunk-2AELPDMT.js} +1 -1
- package/dist/{chunk-W47WL6JY.js → chunk-33OOEVPG.js} +1 -1
- package/dist/{chunk-BRUHVTFB.js → chunk-4N5E4JNF.js} +2 -2
- package/dist/{chunk-6ONSTCDJ.js → chunk-4VRTSDGP.js} +5 -5
- package/dist/{chunk-DS7X36Z3.js → chunk-64S5PQBQ.js} +4 -4
- package/dist/{chunk-KQHY6L3X.js → chunk-6FJ6CK32.js} +4 -4
- package/dist/{chunk-EBQTWH5O.js → chunk-6T5Z64KS.js} +39 -31
- package/dist/{chunk-JAKBCKEB.js → chunk-7BAO42UV.js} +8 -7
- package/dist/chunk-7BHI3PZN.js +41 -0
- package/dist/{chunk-5BNXJTOZ.js → chunk-7HDGH3Z2.js} +3 -12
- package/dist/{chunk-D6CXQIXO.js → chunk-7JXJJNQ5.js} +1 -1
- package/dist/{chunk-KHDD74MK.js → chunk-7MCCXE5Y.js} +5 -5
- package/dist/{chunk-AY32RSUC.js → chunk-ADR3KHOC.js} +2 -2
- package/dist/{chunk-MMLIQDTG.js → chunk-ATKN4BJT.js} +1 -1
- package/dist/{chunk-762CDAJJ.js → chunk-AXJLJJ3M.js} +7 -0
- package/dist/{chunk-4XXZUFWN.js → chunk-BG4Y64FW.js} +1 -1
- package/dist/{chunk-X4ES7QBT.js → chunk-BJTSKOH3.js} +9 -7
- package/dist/{chunk-TCH5UCPR.js → chunk-BQ2VV7LY.js} +2 -2
- package/dist/{chunk-IBXHVYN2.js → chunk-BUZIEL7Y.js} +2 -2
- package/dist/{chunk-UFJS4RR7.js → chunk-CICLXLQN.js} +3 -3
- package/dist/{chunk-US3IT6ZC.js → chunk-CJ5TCFD4.js} +11 -4
- package/dist/{chunk-5JWCWALO.js → chunk-DQLCFGHK.js} +12 -10
- package/dist/{chunk-V3PDUDPB.js → chunk-ELLJPP6O.js} +2 -2
- package/dist/{chunk-BMPZ5HVJ.js → chunk-ERK24P76.js} +11 -1
- package/dist/{chunk-2WMZDKPM.js → chunk-EUIPTDLX.js} +13 -13
- package/dist/{chunk-RQDP2SJY.js → chunk-FUZ5VYWD.js} +1 -1
- package/dist/{chunk-5PP4455M.js → chunk-G36T5LAP.js} +3 -3
- package/dist/{chunk-3N2ZTHZZ.js → chunk-GAMVAORR.js} +1 -1
- package/dist/{chunk-YQVKG5MC.js → chunk-GDKQUB52.js} +7 -6
- package/dist/{chunk-KQWN7C5C.js → chunk-GKFO5JLN.js} +4 -4
- package/dist/{chunk-MYU5D5VH.js → chunk-GZCSWDAS.js} +4 -4
- package/dist/{chunk-2FVP7WRP.js → chunk-HUI4OE43.js} +3 -3
- package/dist/{chunk-AS4Z6KS4.js → chunk-IFPOHFDJ.js} +1 -1
- package/dist/{chunk-L3NVHPBU.js → chunk-JGQV4MDQ.js} +6 -6
- package/dist/{chunk-UVZK5LIK.js → chunk-K4MBKXAE.js} +1 -1
- package/dist/{chunk-EHCIQA5D.js → chunk-KPNZ7JUL.js} +4 -4
- package/dist/{chunk-4QF2YLYK.js → chunk-LBHJJEKT.js} +6 -6
- package/dist/{chunk-5O6D4J2K.js → chunk-LN7DE5LY.js} +2 -2
- package/dist/chunk-MLKGABMK.js +9 -0
- package/dist/{chunk-KZCYHWDF.js → chunk-MWLTTLPK.js} +107 -50
- package/dist/{chunk-WWAVHLGS.js → chunk-NKLNU577.js} +5 -5
- package/dist/{chunk-GMXKITVA.js → chunk-NMUI3ZWG.js} +1 -1
- package/dist/{chunk-SIU6OWA6.js → chunk-O65F2IIN.js} +6 -6
- package/dist/{chunk-T65RIQK2.js → chunk-ORX5BTV4.js} +6 -6
- package/dist/{chunk-VAJHDTJX.js → chunk-P3VQH65N.js} +28 -17
- package/dist/{chunk-CPRA7IEK.js → chunk-PITQ5ZIQ.js} +2 -2
- package/dist/chunk-PPY5N2E6.js +58 -0
- package/dist/{chunk-UTJ5465F.js → chunk-QER5R7Z6.js} +2 -2
- package/dist/{chunk-TDOKDCFH.js → chunk-RGSW36XH.js} +3 -3
- package/dist/{chunk-WW24SG27.js → chunk-RJHX66EY.js} +21 -11
- package/dist/{chunk-M46WDK64.js → chunk-SFAP4AJY.js} +1 -1
- package/dist/{chunk-MSU3VKGJ.js → chunk-SHJVFW22.js} +2 -2
- package/dist/{chunk-RAMQBSVZ.js → chunk-SVQWHV65.js} +1 -1
- package/dist/{chunk-3NROUNIS.js → chunk-UADSXJZ4.js} +2 -2
- package/dist/{chunk-M6MOQBR5.js → chunk-USE5IEEW.js} +1 -1
- package/dist/{chunk-KW3DED2A.js → chunk-VX2MJ4X7.js} +4 -4
- package/dist/{chunk-OZIXBN3O.js → chunk-WFSGCFXQ.js} +2 -2
- package/dist/{chunk-KAJDKYUM.js → chunk-WN3RACVD.js} +3 -3
- package/dist/chunk-X3YKQJCZ.js +36 -0
- package/dist/{chunk-5EFNBL6V.js → chunk-XAO6EYGM.js} +3 -3
- package/dist/{chunk-BKVX53QR.js → chunk-XEJOPVCG.js} +1 -1
- package/dist/{chunk-75UYYIFJ.js → chunk-XV6S5PWW.js} +3 -3
- package/dist/{chunk-3RKIJM26.js → chunk-Y5VKZNFN.js} +2 -2
- package/dist/{chunk-DK35M4TH.js → chunk-Y6Z7DA5Y.js} +5 -5
- package/dist/{chunk-MA37WNVS.js → chunk-YDR4BQ7R.js} +4 -4
- package/dist/{chunk-XGP5VSQG.js → chunk-YPD3MTFU.js} +1 -1
- package/dist/{chunk-LAEW5QQD.js → chunk-ZEWIMY63.js} +1 -1
- package/dist/{chunk-JBCMXSBO.js → chunk-ZGU3NXL2.js} +77 -18
- package/dist/{codex-app-cards-switch-N77RWKCO.js → codex-app-cards-switch-BD7LCI2I.js} +12 -11
- package/dist/{codex-desktop-launch-KIX7OMTL.js → codex-desktop-launch-V5CASSBB.js} +2 -1
- package/dist/{codex-session-launch-XV7SIIWP.js → codex-session-launch-5PKFKUFD.js} +20 -19
- package/dist/{config-HH4DYYNX.js → config-AEKH7HGC.js} +4 -3
- package/dist/{global-upgrade-YWIVJIUR.js → global-upgrade-IUXJJDWF.js} +10 -9
- package/dist/{identity-4J7Y2MW3.js → identity-YJIV2XTY.js} +5 -4
- package/dist/{live-capabilities-LHZBCI5U.js → live-capabilities-QYFW5QAW.js} +5 -4
- package/dist/{paths-ES3V7BWQ.js → paths-A5GAR5PL.js} +4 -3
- package/dist/reapply-BKJGICRJ.js +63 -0
- package/dist/src/index.js +23 -22
- package/dist/{upgrade-lock-TJPKU5HL.js → upgrade-lock-DDB7WEWC.js} +5 -4
- package/dist/usage-HBDNFZ3O.js +11 -0
- package/package.json +1 -1
- package/dist/chunk-7QLSKOSU.js +0 -19
- package/dist/chunk-EO23EUOK.js +0 -14
- package/dist/reapply-KA5SIYWX.js +0 -62
- package/dist/usage-7ALXBJVJ.js +0 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.9.61
|
|
4
|
+
|
|
5
|
+
- Pushary for Mac can connect Codex through its own helper, so Codex follows the account signed in to the app instead of a copied key that sign-out revokes. Setup, upgrade and doctor now recognize that entry. When setup or upgrade handles Codex's hooks itself, with `--take-over-hooks` or because the app is gone, it moves Codex's MCP to this CLI's account too, instead of leaving Codex on the Mac's account or on a helper that cannot start.
|
|
6
|
+
- That move also replaces a Codex configuration an older CLI could leave behind, where the Pushary entry held both the Mac helper's `command` and a `url`. Codex refuses to load any configuration with that mix, so Codex would not start at all. Any other Pushary entry with a `command`, including the helper with `args`, `env` or extra settings, is now left unchanged instead of getting a `url` beside it. An upgrade that has a key to write then leaves Codex's hooks unchanged too.
|
|
7
|
+
- When setup or a manual `pushary upgrade` moves an enabled Codex entry off the Mac helper, it asks you to fully quit and reopen Codex, because a running Codex keeps the connection it started with.
|
|
8
|
+
|
|
9
|
+
## 1.9.60
|
|
10
|
+
|
|
11
|
+
- Ships the CLI audit fixes merged after 1.9.59. `pushary mode terminal_only --for=30m` now expires after 30 minutes, just like `--for 30m`, instead of making the mode permanent.
|
|
12
|
+
- Setup, repair and disconnect respect the active Claude configuration directory. Hook commands safely quote paths containing apostrophes, dollar signs or shell substitutions.
|
|
13
|
+
- Commands reject unsupported preview flags and conflicting or surplus arguments before changing configuration. Transcript recovery works through both command entrypoints, and settings requests have a 15-second deadline with validated responses.
|
|
14
|
+
- JSON failures carry the same exit code as the process. Unexpected hook failures report a stable error code while preserving native fallback, and transient error reports get one bounded retry. Network errors and support bundles redact proxy credentials.
|
|
15
|
+
|
|
3
16
|
## 1.9.59
|
|
4
17
|
|
|
5
18
|
- Codex app cards now also carry three questions from Codex's browser: access to a site, a download and an upload. They used to show only in Codex, because the browser raises them itself and no hook sees them. With the switch on, each reaches Pushary as a yes or no question that names the site, and the first answer wins. A download or upload question carries the address up to the end of its path. Nothing after a `?` or `#` is in that question, and the address ends in … when something was left out; the path itself is sent.
|
package/README.md
CHANGED
|
@@ -345,3 +345,9 @@ Run `pushary cowork` (or `npx pushary@latest cowork`) for connector setup. `push
|
|
|
345
345
|
Use `pushary cowork --instructions` for standing instructions or `pushary cowork --skill > SKILL.md` to export the bundled skill for upload. `--json` reports `manual_setup_required`; printing a link does not prove a connection. Ask a test question in Claude, answer it in Pushary, and verify Claude receives it.
|
|
346
346
|
|
|
347
347
|
This connector is cooperative. Cowork supports plugin hooks on supported versions, but this setup does not install or verify native permission hooks. Use the normal setup command for Claude Code CLI hooks.
|
|
348
|
+
|
|
349
|
+
### OpenCode versions
|
|
350
|
+
|
|
351
|
+
The generated plugin supports OpenCode V2 and V1 from 1.18.29. Run setup again after updating Pushary to replace the plugin. V2 still reads the earlier MCP configuration format.
|
|
352
|
+
|
|
353
|
+
In V2, Pushary answers native permission requests for shell commands in the active directory, single-file reads/writes/edits, and web fetches. Outside-directory access, another shell working directory, multi-file edits, renames with two paths, custom permissions and native questions stay in OpenCode. An approval applies once to the matching request.
|
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
"name": "pushary",
|
|
3
3
|
"displayName": "Pushary — Control Panel for AI Agents",
|
|
4
4
|
"description": "Push notifications, human-in-the-loop questions, and permission gating for your AI coding agent. Get a push when a task finishes, answer the agent from your phone, and approve risky commands before they run.",
|
|
5
|
-
"version": "0.2.
|
|
5
|
+
"version": "0.2.8",
|
|
6
|
+
"minClientVersions": {
|
|
7
|
+
"grokbot": "never",
|
|
8
|
+
"sand": "never"
|
|
9
|
+
},
|
|
6
10
|
"author": { "name": "Pushary", "email": "business@pushary.com" },
|
|
7
11
|
"homepage": "https://pushary.com",
|
|
8
12
|
"repository": "https://github.com/Pushary/cursor-plugin",
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.2.8
|
|
4
|
+
|
|
5
|
+
- Hidden from Grok Bot. This plugin needs an API key and command hooks on your own computer, which a Bot's cloud computer does not have. Grok Bot users install [Pushary for Grok Bot](https://github.com/Pushary/grok-bot-plugin) instead.
|
|
6
|
+
|
|
3
7
|
## 0.2.6
|
|
4
8
|
|
|
5
9
|
- Under When I'm out, a file change nobody answers is refused, even when your rule approves on timeout. Cursor's file hooks have no prompt of their own, so the change used to run once the wait ended. Under Every time a rule that approves on timeout still runs the change, as before.
|
|
@@ -15,24 +15,25 @@ import {
|
|
|
15
15
|
waitForQuestion,
|
|
16
16
|
waitsForThePhone,
|
|
17
17
|
withdrawQuestion
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-RJHX66EY.js";
|
|
19
|
+
import "./chunk-XAO6EYGM.js";
|
|
20
20
|
import "./chunk-POFBE6ZY.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-YDR4BQ7R.js";
|
|
22
|
+
import "./chunk-7BAO42UV.js";
|
|
23
|
+
import "./chunk-SFAP4AJY.js";
|
|
24
|
+
import "./chunk-PPY5N2E6.js";
|
|
25
25
|
import "./chunk-KZERVKTD.js";
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-MWLTTLPK.js";
|
|
27
|
+
import "./chunk-CJ5TCFD4.js";
|
|
28
28
|
import "./chunk-QENTGE75.js";
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-BG4Y64FW.js";
|
|
30
|
+
import "./chunk-ERK24P76.js";
|
|
31
31
|
import "./chunk-QTOLNRET.js";
|
|
32
32
|
import {
|
|
33
33
|
DECISION_STOP_REASON,
|
|
34
34
|
UNVERIFIABLE_APPROVAL_REASON
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-AXJLJJ3M.js";
|
|
36
|
+
import "./chunk-MLKGABMK.js";
|
|
36
37
|
export {
|
|
37
38
|
DECISION_STOP_REASON,
|
|
38
39
|
UNVERIFIABLE_APPROVAL_REASON,
|
|
@@ -1,44 +1,45 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
handleBell
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-ATKN4BJT.js";
|
|
5
5
|
import {
|
|
6
6
|
readHookInput
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-6FJ6CK32.js";
|
|
8
|
+
import "../chunk-EUIPTDLX.js";
|
|
9
9
|
import "../chunk-QW3FRUFB.js";
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-GKFO5JLN.js";
|
|
11
|
+
import "../chunk-LBHJJEKT.js";
|
|
12
|
+
import "../chunk-BJTSKOH3.js";
|
|
13
|
+
import "../chunk-RGSW36XH.js";
|
|
14
|
+
import "../chunk-XV6S5PWW.js";
|
|
15
|
+
import "../chunk-IFPOHFDJ.js";
|
|
16
|
+
import "../chunk-NMUI3ZWG.js";
|
|
17
|
+
import "../chunk-2AELPDMT.js";
|
|
18
|
+
import "../chunk-GAMVAORR.js";
|
|
19
|
+
import "../chunk-7JXJJNQ5.js";
|
|
20
20
|
import "../chunk-XHKBHWLX.js";
|
|
21
21
|
import "../chunk-6ICPEJY5.js";
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
25
|
-
import "../chunk-
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-WN3RACVD.js";
|
|
23
|
+
import "../chunk-DQLCFGHK.js";
|
|
24
|
+
import "../chunk-33OOEVPG.js";
|
|
25
|
+
import "../chunk-YPD3MTFU.js";
|
|
26
|
+
import "../chunk-RJHX66EY.js";
|
|
27
|
+
import "../chunk-XAO6EYGM.js";
|
|
28
28
|
import "../chunk-POFBE6ZY.js";
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
31
|
-
import "../chunk-
|
|
32
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-YDR4BQ7R.js";
|
|
30
|
+
import "../chunk-7BAO42UV.js";
|
|
31
|
+
import "../chunk-SFAP4AJY.js";
|
|
32
|
+
import "../chunk-PPY5N2E6.js";
|
|
33
33
|
import "../chunk-KZERVKTD.js";
|
|
34
|
-
import "../chunk-
|
|
35
|
-
import "../chunk-
|
|
36
|
-
import "../chunk-
|
|
34
|
+
import "../chunk-Y5VKZNFN.js";
|
|
35
|
+
import "../chunk-MWLTTLPK.js";
|
|
36
|
+
import "../chunk-CJ5TCFD4.js";
|
|
37
37
|
import "../chunk-QENTGE75.js";
|
|
38
|
-
import "../chunk-
|
|
39
|
-
import "../chunk-
|
|
38
|
+
import "../chunk-BG4Y64FW.js";
|
|
39
|
+
import "../chunk-ERK24P76.js";
|
|
40
40
|
import "../chunk-QTOLNRET.js";
|
|
41
|
-
import "../chunk-
|
|
41
|
+
import "../chunk-AXJLJJ3M.js";
|
|
42
|
+
import "../chunk-MLKGABMK.js";
|
|
42
43
|
|
|
43
44
|
// bin/pushary-bell-hook.ts
|
|
44
45
|
var main = async () => {
|
package/dist/bin/pushary-bell.js
CHANGED
|
@@ -5,41 +5,42 @@ import {
|
|
|
5
5
|
liveAgentCount,
|
|
6
6
|
ring,
|
|
7
7
|
upgradeThreshold
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-ATKN4BJT.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-K4MBKXAE.js";
|
|
15
15
|
import {
|
|
16
16
|
addBellHooks,
|
|
17
17
|
bellInstalled,
|
|
18
18
|
removeBellHooks
|
|
19
|
-
} from "../chunk-
|
|
19
|
+
} from "../chunk-IFPOHFDJ.js";
|
|
20
20
|
import {
|
|
21
21
|
parseFlags
|
|
22
|
-
} from "../chunk-
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
22
|
+
} from "../chunk-NMUI3ZWG.js";
|
|
23
|
+
import "../chunk-WN3RACVD.js";
|
|
24
|
+
import "../chunk-PPY5N2E6.js";
|
|
25
25
|
import {
|
|
26
26
|
EXIT
|
|
27
27
|
} from "../chunk-KZERVKTD.js";
|
|
28
|
-
import "../chunk-
|
|
28
|
+
import "../chunk-Y5VKZNFN.js";
|
|
29
29
|
import {
|
|
30
30
|
claudeSettings
|
|
31
|
-
} from "../chunk-
|
|
32
|
-
import "../chunk-
|
|
31
|
+
} from "../chunk-MWLTTLPK.js";
|
|
32
|
+
import "../chunk-CJ5TCFD4.js";
|
|
33
33
|
import {
|
|
34
34
|
readJsonSafe,
|
|
35
35
|
writeJsonAtomic
|
|
36
36
|
} from "../chunk-QENTGE75.js";
|
|
37
|
-
import "../chunk-
|
|
38
|
-
import "../chunk-
|
|
37
|
+
import "../chunk-BG4Y64FW.js";
|
|
38
|
+
import "../chunk-ERK24P76.js";
|
|
39
39
|
import "../chunk-QTOLNRET.js";
|
|
40
40
|
import {
|
|
41
41
|
isRecord
|
|
42
|
-
} from "../chunk-
|
|
42
|
+
} from "../chunk-AXJLJJ3M.js";
|
|
43
|
+
import "../chunk-MLKGABMK.js";
|
|
43
44
|
|
|
44
45
|
// bin/pushary-bell.ts
|
|
45
46
|
exitOnHelpFlag("bell");
|
|
@@ -8,40 +8,40 @@ import {
|
|
|
8
8
|
describeIdleWindow,
|
|
9
9
|
startProcessOwnership,
|
|
10
10
|
withSpawnProcessOwnership
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-SHJVFW22.js";
|
|
12
12
|
import "../chunk-VUFHYMSP.js";
|
|
13
13
|
import {
|
|
14
14
|
announceSubscriptionRequired,
|
|
15
15
|
isDeferAnswer
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-ZEWIMY63.js";
|
|
17
17
|
import {
|
|
18
18
|
claudeTranscriptPath,
|
|
19
19
|
loadSessionKey,
|
|
20
20
|
registerTranscript,
|
|
21
21
|
registeredTranscriptEnabled
|
|
22
|
-
} from "../chunk-
|
|
22
|
+
} from "../chunk-EUIPTDLX.js";
|
|
23
23
|
import "../chunk-QW3FRUFB.js";
|
|
24
24
|
import {
|
|
25
25
|
ensureDaemonRunning
|
|
26
|
-
} from "../chunk-
|
|
27
|
-
import "../chunk-
|
|
28
|
-
import "../chunk-
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
31
|
-
import "../chunk-
|
|
26
|
+
} from "../chunk-LBHJJEKT.js";
|
|
27
|
+
import "../chunk-BJTSKOH3.js";
|
|
28
|
+
import "../chunk-RGSW36XH.js";
|
|
29
|
+
import "../chunk-XV6S5PWW.js";
|
|
30
|
+
import "../chunk-IFPOHFDJ.js";
|
|
31
|
+
import "../chunk-NMUI3ZWG.js";
|
|
32
32
|
import {
|
|
33
33
|
encryptRecord
|
|
34
|
-
} from "../chunk-
|
|
35
|
-
import "../chunk-
|
|
34
|
+
} from "../chunk-2AELPDMT.js";
|
|
35
|
+
import "../chunk-GAMVAORR.js";
|
|
36
36
|
import {
|
|
37
37
|
transcriptsEnabled
|
|
38
|
-
} from "../chunk-
|
|
38
|
+
} from "../chunk-7JXJJNQ5.js";
|
|
39
39
|
import {
|
|
40
40
|
needsShell,
|
|
41
41
|
spawnClaude
|
|
42
42
|
} from "../chunk-XHKBHWLX.js";
|
|
43
43
|
import "../chunk-6ICPEJY5.js";
|
|
44
|
-
import "../chunk-
|
|
44
|
+
import "../chunk-WN3RACVD.js";
|
|
45
45
|
import {
|
|
46
46
|
DEFAULT_SESSION,
|
|
47
47
|
UNNAMED_ACTION,
|
|
@@ -58,11 +58,11 @@ import {
|
|
|
58
58
|
reportEvent,
|
|
59
59
|
savePendingCommand,
|
|
60
60
|
scopePathFor
|
|
61
|
-
} from "../chunk-
|
|
62
|
-
import "../chunk-
|
|
61
|
+
} from "../chunk-DQLCFGHK.js";
|
|
62
|
+
import "../chunk-33OOEVPG.js";
|
|
63
63
|
import {
|
|
64
64
|
repoKeyFor
|
|
65
|
-
} from "../chunk-
|
|
65
|
+
} from "../chunk-YPD3MTFU.js";
|
|
66
66
|
import {
|
|
67
67
|
askUser,
|
|
68
68
|
cancelQuestion,
|
|
@@ -73,29 +73,31 @@ import {
|
|
|
73
73
|
waitForAnswer,
|
|
74
74
|
waitsForThePhone,
|
|
75
75
|
withdrawQuestion
|
|
76
|
-
} from "../chunk-
|
|
76
|
+
} from "../chunk-RJHX66EY.js";
|
|
77
77
|
import {
|
|
78
78
|
SubscriptionRequiredError
|
|
79
|
-
} from "../chunk-
|
|
79
|
+
} from "../chunk-XAO6EYGM.js";
|
|
80
80
|
import "../chunk-POFBE6ZY.js";
|
|
81
|
-
import "../chunk-
|
|
82
|
-
import "../chunk-
|
|
81
|
+
import "../chunk-YDR4BQ7R.js";
|
|
82
|
+
import "../chunk-7BAO42UV.js";
|
|
83
83
|
import {
|
|
84
84
|
getMachineId
|
|
85
|
-
} from "../chunk-
|
|
86
|
-
import "../chunk-
|
|
85
|
+
} from "../chunk-SFAP4AJY.js";
|
|
86
|
+
import "../chunk-PPY5N2E6.js";
|
|
87
87
|
import "../chunk-KZERVKTD.js";
|
|
88
|
-
import "../chunk-
|
|
89
|
-
import
|
|
90
|
-
|
|
88
|
+
import "../chunk-Y5VKZNFN.js";
|
|
89
|
+
import {
|
|
90
|
+
claudeConfigDir
|
|
91
|
+
} from "../chunk-MWLTTLPK.js";
|
|
92
|
+
import "../chunk-CJ5TCFD4.js";
|
|
91
93
|
import "../chunk-QENTGE75.js";
|
|
92
94
|
import {
|
|
93
95
|
getApiKey,
|
|
94
96
|
getBaseUrl
|
|
95
|
-
} from "../chunk-
|
|
97
|
+
} from "../chunk-BG4Y64FW.js";
|
|
96
98
|
import {
|
|
97
99
|
NPX_LATEST_COMMAND
|
|
98
|
-
} from "../chunk-
|
|
100
|
+
} from "../chunk-ERK24P76.js";
|
|
99
101
|
import "../chunk-QTOLNRET.js";
|
|
100
102
|
import {
|
|
101
103
|
DECISION_STOP_REASON,
|
|
@@ -106,7 +108,8 @@ import {
|
|
|
106
108
|
redactSecretsFromContent,
|
|
107
109
|
resolveGate,
|
|
108
110
|
timeoutActionWithoutLocalPrompt
|
|
109
|
-
} from "../chunk-
|
|
111
|
+
} from "../chunk-AXJLJJ3M.js";
|
|
112
|
+
import "../chunk-MLKGABMK.js";
|
|
110
113
|
|
|
111
114
|
// src/wrapper/localPassthrough.ts
|
|
112
115
|
var SIGNAL_NUMBERS = {
|
|
@@ -1228,7 +1231,6 @@ var remoteCompatibilityIssue = (args2) => {
|
|
|
1228
1231
|
|
|
1229
1232
|
// src/wrapper/localLeg.ts
|
|
1230
1233
|
import { readFileSync } from "fs";
|
|
1231
|
-
import { homedir as homedir2 } from "os";
|
|
1232
1234
|
import { join as join2 } from "path";
|
|
1233
1235
|
var SIGNAL_EXIT_BASE = 128;
|
|
1234
1236
|
var SIGNAL_NUMBERS2 = { SIGHUP: 1, SIGINT: 2, SIGTERM: 15 };
|
|
@@ -1299,7 +1301,7 @@ var runLocalLeg = (session, deps = {}) => {
|
|
|
1299
1301
|
const readIdentity = () => {
|
|
1300
1302
|
if (!child.pid) return;
|
|
1301
1303
|
try {
|
|
1302
|
-
const root =
|
|
1304
|
+
const root = claudeConfigDir();
|
|
1303
1305
|
const record = JSON.parse(readFileSync(join2(root, "sessions", `${child.pid}.json`), "utf8"));
|
|
1304
1306
|
if (record.pid !== child.pid || record.cwd !== process.cwd() || record.startedAt < spawnedAt - 5e3 || typeof record.startedAt !== "number" || !/^[a-f0-9-]{36}$/i.test(record.sessionId)) return;
|
|
1305
1307
|
if (record.sessionId !== session.getSessionId()) session.setSessionId(record.sessionId);
|
|
@@ -15,26 +15,26 @@ import {
|
|
|
15
15
|
storedMacAppState,
|
|
16
16
|
storedPusharyKeychainServices,
|
|
17
17
|
waitForMacAppExit
|
|
18
|
-
} from "../chunk-
|
|
18
|
+
} from "../chunk-BQ2VV7LY.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-PITQ5ZIQ.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-
|
|
31
|
+
} from "../chunk-Y6Z7DA5Y.js";
|
|
32
|
+
import "../chunk-64S5PQBQ.js";
|
|
33
33
|
import {
|
|
34
34
|
isCursorPluginLeftover,
|
|
35
35
|
releaseSoleGate,
|
|
36
36
|
withoutPusharyCursorHooks
|
|
37
|
-
} from "../chunk-
|
|
37
|
+
} from "../chunk-GZCSWDAS.js";
|
|
38
38
|
import {
|
|
39
39
|
HERMES_PIP_PACKAGE,
|
|
40
40
|
readHermesStatus,
|
|
@@ -43,21 +43,21 @@ import {
|
|
|
43
43
|
shortenHome,
|
|
44
44
|
unregisterPluginLocation,
|
|
45
45
|
vscodeSettingsTargets
|
|
46
|
-
} from "../chunk-
|
|
46
|
+
} from "../chunk-GDKQUB52.js";
|
|
47
47
|
import {
|
|
48
48
|
macAppKeepsMcpEntry,
|
|
49
49
|
mcpServerBearer,
|
|
50
50
|
pusharyKey,
|
|
51
51
|
readMacAppAgentKey,
|
|
52
52
|
setupReceiptKey
|
|
53
|
-
} from "../chunk-
|
|
53
|
+
} from "../chunk-KPNZ7JUL.js";
|
|
54
54
|
import "../chunk-QCGNGEGE.js";
|
|
55
|
-
import "../chunk-
|
|
55
|
+
import "../chunk-ADR3KHOC.js";
|
|
56
56
|
import {
|
|
57
57
|
planFxRemoval,
|
|
58
58
|
removeInstructionBlock
|
|
59
|
-
} from "../chunk-
|
|
60
|
-
import "../chunk-
|
|
59
|
+
} from "../chunk-4VRTSDGP.js";
|
|
60
|
+
import "../chunk-UADSXJZ4.js";
|
|
61
61
|
import {
|
|
62
62
|
OPENCODE_PLUGIN_SIBLING,
|
|
63
63
|
OPENCODE_PLUGIN_SIBLING_CONTENTS,
|
|
@@ -69,14 +69,14 @@ import {
|
|
|
69
69
|
openCodePluginDir,
|
|
70
70
|
openCodePluginFile,
|
|
71
71
|
removeOpenCodeMcpServer
|
|
72
|
-
} from "../chunk-
|
|
72
|
+
} from "../chunk-ZGU3NXL2.js";
|
|
73
73
|
import {
|
|
74
74
|
ansiPainter,
|
|
75
75
|
useColor
|
|
76
76
|
} from "../chunk-FO3MDD26.js";
|
|
77
77
|
import {
|
|
78
78
|
exitOnHelpFlag
|
|
79
|
-
} from "../chunk-
|
|
79
|
+
} from "../chunk-K4MBKXAE.js";
|
|
80
80
|
import "../chunk-VUFHYMSP.js";
|
|
81
81
|
import {
|
|
82
82
|
compatibleConfigFile,
|
|
@@ -94,10 +94,10 @@ import {
|
|
|
94
94
|
removePusharyToolPermissions,
|
|
95
95
|
restoreClaudeMcpServer,
|
|
96
96
|
serializeConfigDocument
|
|
97
|
-
} from "../chunk-
|
|
97
|
+
} from "../chunk-GKFO5JLN.js";
|
|
98
98
|
import {
|
|
99
99
|
disableDaemonService
|
|
100
|
-
} from "../chunk-
|
|
100
|
+
} from "../chunk-LBHJJEKT.js";
|
|
101
101
|
import {
|
|
102
102
|
hookOwnerOf,
|
|
103
103
|
isHookTakeoverReceipt,
|
|
@@ -105,15 +105,15 @@ import {
|
|
|
105
105
|
resolveBridgeStub,
|
|
106
106
|
restoreHookTakeover,
|
|
107
107
|
restoreMcpServer
|
|
108
|
-
} from "../chunk-
|
|
108
|
+
} from "../chunk-BJTSKOH3.js";
|
|
109
109
|
import {
|
|
110
110
|
removeGeminiSettings
|
|
111
|
-
} from "../chunk-
|
|
112
|
-
import "../chunk-
|
|
113
|
-
import "../chunk-
|
|
111
|
+
} from "../chunk-RGSW36XH.js";
|
|
112
|
+
import "../chunk-XV6S5PWW.js";
|
|
113
|
+
import "../chunk-IFPOHFDJ.js";
|
|
114
114
|
import {
|
|
115
|
-
|
|
116
|
-
} from "../chunk-
|
|
115
|
+
parseFlags
|
|
116
|
+
} from "../chunk-NMUI3ZWG.js";
|
|
117
117
|
import "../chunk-XHKBHWLX.js";
|
|
118
118
|
import "../chunk-6ICPEJY5.js";
|
|
119
119
|
import {
|
|
@@ -121,32 +121,35 @@ import {
|
|
|
121
121
|
isDisabledExport,
|
|
122
122
|
removeClaudeAlias,
|
|
123
123
|
shellProfileCandidates
|
|
124
|
-
} from "../chunk-
|
|
124
|
+
} from "../chunk-WN3RACVD.js";
|
|
125
125
|
import "../chunk-E46NE7FB.js";
|
|
126
|
-
import "../chunk-
|
|
127
|
-
import "../chunk-
|
|
128
|
-
import "../chunk-
|
|
129
|
-
import "../chunk-
|
|
130
|
-
import "../chunk-
|
|
126
|
+
import "../chunk-DQLCFGHK.js";
|
|
127
|
+
import "../chunk-33OOEVPG.js";
|
|
128
|
+
import "../chunk-YPD3MTFU.js";
|
|
129
|
+
import "../chunk-RJHX66EY.js";
|
|
130
|
+
import "../chunk-XAO6EYGM.js";
|
|
131
131
|
import "../chunk-POFBE6ZY.js";
|
|
132
|
-
import "../chunk-
|
|
133
|
-
import "../chunk-
|
|
134
|
-
import "../chunk-
|
|
135
|
-
import "../chunk-
|
|
132
|
+
import "../chunk-YDR4BQ7R.js";
|
|
133
|
+
import "../chunk-7BAO42UV.js";
|
|
134
|
+
import "../chunk-SFAP4AJY.js";
|
|
135
|
+
import "../chunk-PPY5N2E6.js";
|
|
136
136
|
import {
|
|
137
137
|
EXIT
|
|
138
138
|
} from "../chunk-KZERVKTD.js";
|
|
139
|
-
import "../chunk-
|
|
139
|
+
import "../chunk-Y5VKZNFN.js";
|
|
140
140
|
import {
|
|
141
|
+
claudeConfigDir,
|
|
141
142
|
claudeJson,
|
|
142
143
|
claudeMcpReceipt,
|
|
143
144
|
claudeSettings,
|
|
144
145
|
claudeSettingsLocal,
|
|
145
146
|
claudeSkillDir,
|
|
147
|
+
claudeUserConfigFile,
|
|
146
148
|
codexAgentsMd,
|
|
147
149
|
codexConfigToml,
|
|
148
150
|
codexHookPositions,
|
|
149
151
|
codexHooksJson,
|
|
152
|
+
codexMcpMixesCommandWithHttp,
|
|
150
153
|
codexSkillDir,
|
|
151
154
|
cursorPluginDir,
|
|
152
155
|
cursorUserHooks,
|
|
@@ -168,21 +171,21 @@ import {
|
|
|
168
171
|
restoreCodexHookTrust,
|
|
169
172
|
vscodePluginDir,
|
|
170
173
|
vscodePluginMcp
|
|
171
|
-
} from "../chunk-
|
|
174
|
+
} from "../chunk-MWLTTLPK.js";
|
|
172
175
|
import {
|
|
173
176
|
cleanNpmEnv,
|
|
174
177
|
globalPackageState,
|
|
175
178
|
npmIsOnPath,
|
|
176
179
|
readGlobalFolder,
|
|
177
180
|
readGlobalPrefix
|
|
178
|
-
} from "../chunk-
|
|
181
|
+
} from "../chunk-CJ5TCFD4.js";
|
|
179
182
|
import "../chunk-QENTGE75.js";
|
|
180
183
|
import {
|
|
181
184
|
getBaseUrl
|
|
182
|
-
} from "../chunk-
|
|
185
|
+
} from "../chunk-BG4Y64FW.js";
|
|
183
186
|
import {
|
|
184
187
|
NPX_LATEST_COMMAND
|
|
185
|
-
} from "../chunk-
|
|
188
|
+
} from "../chunk-ERK24P76.js";
|
|
186
189
|
import {
|
|
187
190
|
CLI_PACKAGE_NAMES,
|
|
188
191
|
globalPackageFolder,
|
|
@@ -196,11 +199,12 @@ import {
|
|
|
196
199
|
SUPPORT_EMAIL,
|
|
197
200
|
isValidApiKey,
|
|
198
201
|
redactSecrets
|
|
199
|
-
} from "../chunk-
|
|
202
|
+
} from "../chunk-AXJLJJ3M.js";
|
|
203
|
+
import "../chunk-MLKGABMK.js";
|
|
200
204
|
|
|
201
205
|
// bin/pushary-clean.ts
|
|
202
206
|
import { existsSync as existsSync5, readFileSync as readFileSync4, copyFileSync, readdirSync as readdirSync4 } from "fs";
|
|
203
|
-
import { dirname, join as join5 } from "path";
|
|
207
|
+
import { dirname as dirname2, join as join5 } from "path";
|
|
204
208
|
import { homedir as homedir4, tmpdir } from "os";
|
|
205
209
|
import { confirm } from "@inquirer/prompts";
|
|
206
210
|
import { parse as parseTOML, stringify as stringifyTOML } from "smol-toml";
|
|
@@ -357,11 +361,11 @@ var skillsStoreRemoval = (home = homedir2()) => {
|
|
|
357
361
|
// src/cli/claude-backups.ts
|
|
358
362
|
import { existsSync as existsSync4, readFileSync as readFileSync3, readdirSync as readdirSync2 } from "fs";
|
|
359
363
|
import { homedir as homedir3 } from "os";
|
|
360
|
-
import { join as join3 } from "path";
|
|
364
|
+
import { dirname, join as join3 } from "path";
|
|
361
365
|
var BACKUP_PREFIX = ".claude.json.backup";
|
|
362
366
|
var claudeJsonBackups = (home = homedir3()) => {
|
|
363
|
-
const rollingDir = join3(home, "
|
|
364
|
-
const legacy = join3(home, BACKUP_PREFIX);
|
|
367
|
+
const rollingDir = join3(claudeConfigDir(home), "backups");
|
|
368
|
+
const legacy = join3(dirname(claudeUserConfigFile(home)), BACKUP_PREFIX);
|
|
365
369
|
const rolling = existsSync4(rollingDir) ? readdirSync2(rollingDir).filter((name) => name.startsWith(BACKUP_PREFIX)).sort().map((name) => join3(rollingDir, name)) : [];
|
|
366
370
|
return existsSync4(legacy) ? [...rolling, legacy] : rolling;
|
|
367
371
|
};
|
|
@@ -572,7 +576,7 @@ var guards = createGuards(() => dryRun, wouldNote);
|
|
|
572
576
|
var guardedWrite = (path, contents) => guards.write(path, contents);
|
|
573
577
|
var guardedRemove = (path, options) => guards.remove(path, options);
|
|
574
578
|
var cursorPluginLeftovers = () => {
|
|
575
|
-
const parent =
|
|
579
|
+
const parent = dirname2(CURSOR_PLUGIN_DIR);
|
|
576
580
|
try {
|
|
577
581
|
return readdirSync4(parent).filter(isCursorPluginLeftover).map((name) => join5(parent, name));
|
|
578
582
|
} catch {
|
|
@@ -666,13 +670,13 @@ var cleanSettingsFile = (path, label, scope) => {
|
|
|
666
670
|
};
|
|
667
671
|
var agentConfigDirectories = () => [
|
|
668
672
|
homedir4(),
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
+
dirname2(CLAUDE_SETTINGS),
|
|
674
|
+
dirname2(codexConfigToml()),
|
|
675
|
+
dirname2(geminiSettings()),
|
|
676
|
+
dirname2(CURSOR_USER_HOOKS),
|
|
673
677
|
openCodeConfigDir(),
|
|
674
678
|
fxConfigDir(),
|
|
675
|
-
...vscodeSettingsTargets(existsSync5).map((settings) =>
|
|
679
|
+
...vscodeSettingsTargets(existsSync5).map((settings) => dirname2(settings))
|
|
676
680
|
];
|
|
677
681
|
var restoreTakeoverReceipts = () => {
|
|
678
682
|
const targets = [
|
|
@@ -754,23 +758,26 @@ var main = async () => {
|
|
|
754
758
|
console.log(` ${bold("Pushary Clean")}`);
|
|
755
759
|
console.log(` ${dim("Removes all Pushary configuration")}`);
|
|
756
760
|
console.log();
|
|
761
|
+
let flags;
|
|
757
762
|
try {
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
[
|
|
763
|
+
const args = process.argv.slice(2);
|
|
764
|
+
flags = parseFlags(
|
|
765
|
+
args[0] === "clean" ? args.slice(1) : args,
|
|
766
|
+
{ bools: ["dry-run", "everything", "yes", "y"], values: [] }
|
|
761
767
|
);
|
|
768
|
+
if (flags.command !== void 0 || flags.rest.length > 0) throw new Error("clean takes no positional arguments");
|
|
762
769
|
} catch (err) {
|
|
763
770
|
process.stderr.write(` ! ${err instanceof Error ? err.message : String(err)}
|
|
764
771
|
`);
|
|
765
772
|
process.exit(EXIT.USAGE);
|
|
766
773
|
}
|
|
767
|
-
dryRun =
|
|
768
|
-
const everything =
|
|
774
|
+
dryRun = flags.bools.has("dry-run");
|
|
775
|
+
const everything = flags.bools.has("everything");
|
|
769
776
|
if (dryRun) {
|
|
770
777
|
console.log(` ${bold("Dry run")} ${dim("- nothing will be changed")}`);
|
|
771
778
|
console.log();
|
|
772
779
|
}
|
|
773
|
-
const assumeYes = dryRun ||
|
|
780
|
+
const assumeYes = dryRun || flags.bools.has("yes") || flags.bools.has("y");
|
|
774
781
|
if (!assumeYes && !process.stdin.isTTY) {
|
|
775
782
|
console.log(` ${yellow("!")} Non-interactive shell. Re-run with --yes to confirm removal.`);
|
|
776
783
|
process.exit(1);
|
|
@@ -858,7 +865,7 @@ var main = async () => {
|
|
|
858
865
|
console.log(` ${skip} Claude Code MCP servers ${dim("(setup receipt is unreadable; left unchanged)")}`);
|
|
859
866
|
} else if (receipt && restoreClaudeMcpServer(claudeJson2, receipt) || !receipt && removeClaudeMcpServers(claudeJson2)) {
|
|
860
867
|
writeJson(CLAUDE_JSON, claudeJson2);
|
|
861
|
-
console.log(` ${check} Claude Code MCP servers ${dim(receipt ? "(previous entry restored)" :
|
|
868
|
+
console.log(` ${check} Claude Code MCP servers ${dim(receipt ? "(previous entry restored)" : `(removed from ${shortenHome(CLAUDE_JSON)})`)}`);
|
|
862
869
|
if (keepShared && receipt) guardedRemove(CLAUDE_MCP_RECEIPT, { force: true });
|
|
863
870
|
} else {
|
|
864
871
|
if (receipt && !keepShared) incompleteClean = true;
|
|
@@ -975,7 +982,7 @@ var main = async () => {
|
|
|
975
982
|
const trustRemoved = hookOwnerOf(codexHooksData) === "app" && keepShared ? false : removeCodexHookTrust(parsed2, codexHooksJson2, codexPositions);
|
|
976
983
|
const hadPushary = config.includes("pushary");
|
|
977
984
|
if (hadPushary || trustRemoved) {
|
|
978
|
-
const macAppKeepsCodexMcp = macAppKeeps("codex", codexMcpKey(parsed2));
|
|
985
|
+
const macAppKeepsCodexMcp = !codexMcpMixesCommandWithHttp(parsed2.mcp_servers?.pushary) && macAppKeeps("codex", codexMcpKey(parsed2));
|
|
979
986
|
if (!macAppKeepsCodexMcp) {
|
|
980
987
|
const mcpServers = parsed2.mcp_servers ?? {};
|
|
981
988
|
delete mcpServers.pushary;
|