pushary 1.9.58 → 1.9.60
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 +14 -0
- package/data/cursor-plugin/.cursor-plugin/plugin.json +5 -1
- package/data/cursor-plugin/CHANGELOG.md +4 -0
- package/dist/{api-WVXBM4MR.js → api-ASQA5PZM.js} +11 -11
- package/dist/bin/pushary-bell-hook.js +29 -29
- package/dist/bin/pushary-bell.js +12 -12
- package/dist/bin/pushary-claude.js +31 -30
- package/dist/bin/pushary-clean.js +58 -53
- package/dist/bin/pushary-codex-bridge.js +22 -22
- package/dist/bin/pushary-codex-hook.js +34 -34
- package/dist/bin/pushary-codex-session.js +8 -8
- package/dist/bin/pushary-codex.js +15 -15
- package/dist/bin/pushary-connect.js +29 -29
- package/dist/bin/pushary-cowork.js +7 -7
- package/dist/bin/pushary-daemon.js +39 -39
- package/dist/bin/pushary-disconnect.js +42 -29
- package/dist/bin/pushary-doctor.js +51 -47
- package/dist/bin/pushary-elicitation-hook.js +29 -29
- package/dist/bin/pushary-gemini-bridge.js +15 -15
- package/dist/bin/pushary-gemini-hook.js +31 -31
- package/dist/bin/pushary-hook.js +33 -33
- package/dist/bin/pushary-login.js +22 -19
- package/dist/bin/pushary-logout.js +36 -31
- package/dist/bin/pushary-mcp.js +12 -12
- package/dist/bin/pushary-mode.js +41 -55
- package/dist/bin/pushary-notification-hook.js +28 -28
- package/dist/bin/pushary-opencode-hook.js +30 -30
- package/dist/bin/pushary-permission-denied-hook.js +33 -33
- package/dist/bin/pushary-permission-hook.js +32 -32
- package/dist/bin/pushary-post-hook.js +28 -28
- package/dist/bin/pushary-prompt-hook.js +28 -28
- package/dist/bin/pushary-session-end-hook.js +28 -28
- package/dist/bin/pushary-session-start-hook.js +35 -35
- package/dist/bin/pushary-setup.js +49 -46
- package/dist/bin/pushary-stats.js +5 -5
- package/dist/bin/pushary-status.js +41 -36
- package/dist/bin/pushary-stop-hook.js +28 -28
- package/dist/bin/pushary-stopfailure-hook.js +28 -28
- package/dist/bin/pushary-suggestions.js +33 -39
- package/dist/bin/pushary-transcript-register.js +20 -20
- package/dist/bin/pushary-transcripts.js +33 -20
- package/dist/bin/pushary-upgrade.js +71 -50
- package/dist/bin/pushary-wait.js +36 -42
- package/dist/bin/pushary.js +8 -8
- package/dist/{chunk-JSQOHMNJ.js → chunk-2AELPDMT.js} +1 -1
- package/dist/{chunk-WVP6UQG3.js → chunk-2QREHU4O.js} +11 -4
- package/dist/{chunk-QTCFEKLJ.js → chunk-33OOEVPG.js} +1 -1
- package/dist/{chunk-QDFLBTUP.js → chunk-4MUFZU2G.js} +1 -1
- package/dist/{chunk-5DZHKNBU.js → chunk-4MWRR5IT.js} +8 -7
- package/dist/{chunk-XEJV3QSS.js → chunk-4PZXI7WU.js} +3 -3
- package/dist/{chunk-UMVVQXAC.js → chunk-56JCQQLS.js} +2 -2
- package/dist/{chunk-JZKEC4XJ.js → chunk-5RU35K57.js} +3 -12
- package/dist/{chunk-HRHAZ3GE.js → chunk-625DZLT5.js} +6 -6
- package/dist/{chunk-3KOPY2UQ.js → chunk-6LOQE4J4.js} +3 -3
- package/dist/{chunk-K5CAURU5.js → chunk-6MC2XXFD.js} +4 -4
- package/dist/{chunk-MYBCXDIL.js → chunk-6MJWYYAS.js} +62 -49
- package/dist/chunk-7BHI3PZN.js +41 -0
- package/dist/{chunk-C3IWX6KU.js → chunk-7JXJJNQ5.js} +1 -1
- package/dist/{chunk-CK5BCFQF.js → chunk-7WFRY6OL.js} +2 -2
- package/dist/{chunk-4YNNAF53.js → chunk-ADR3KHOC.js} +2 -2
- package/dist/{chunk-XTZHUIGJ.js → chunk-ATKN4BJT.js} +1 -1
- package/dist/{chunk-GZL3KEPC.js → chunk-AXJLJJ3M.js} +147 -136
- package/dist/{chunk-LVDC3RUE.js → chunk-BG4Y64FW.js} +1 -1
- package/dist/{chunk-KSVCCSAO.js → chunk-CDQHQAS7.js} +9 -7
- package/dist/{chunk-TN74MUMB.js → chunk-CEQ2AZH4.js} +13 -13
- package/dist/{chunk-X6F4BQEE.js → chunk-CSOROFJY.js} +5 -5
- package/dist/{chunk-CZULJ647.js → chunk-DJ7EZIQA.js} +3 -3
- package/dist/{chunk-IUOUNRLH.js → chunk-ELLJPP6O.js} +2 -2
- package/dist/{chunk-5SFM6XB4.js → chunk-ERK24P76.js} +12 -2
- package/dist/{chunk-DQ565WFA.js → chunk-EZHY65QA.js} +21 -11
- package/dist/{chunk-4LUPZ347.js → chunk-FDWMG6NY.js} +2 -2
- package/dist/{chunk-S5LX25XE.js → chunk-FUZ5VYWD.js} +1 -1
- package/dist/{chunk-N3NSWWNU.js → chunk-GAMVAORR.js} +1 -1
- package/dist/{chunk-QP3XPS5U.js → chunk-HC3FHDKB.js} +6 -6
- package/dist/{chunk-ATUZX4K7.js → chunk-IF26ZGZ7.js} +3 -3
- package/dist/{chunk-CSQJCXPX.js → chunk-J4KQL7YZ.js} +5 -5
- package/dist/{chunk-M7NX25ZA.js → chunk-K4MBKXAE.js} +1 -1
- package/dist/{chunk-PZOFPAPG.js → chunk-L3AFVFGQ.js} +2 -2
- package/dist/{chunk-S54YLXWW.js → chunk-METMK3L4.js} +4 -4
- package/dist/{chunk-ZEHUWE3X.js → chunk-MUNL23WE.js} +6 -6
- package/dist/{chunk-3TJLPABQ.js → chunk-NKLNU577.js} +5 -5
- package/dist/{chunk-GMXKITVA.js → chunk-NMUI3ZWG.js} +1 -1
- package/dist/{chunk-IJ6XKKQW.js → chunk-O6IUZGWV.js} +1 -1
- package/dist/chunk-PPY5N2E6.js +58 -0
- package/dist/{chunk-XWY4UW62.js → chunk-PUHP4IBA.js} +4 -4
- package/dist/{chunk-T2AC5VFQ.js → chunk-QGSHV3WO.js} +5 -5
- package/dist/{chunk-RGQEULXD.js → chunk-QLMOU57V.js} +28 -17
- package/dist/{chunk-FAGDOPQI.js → chunk-QUBIEZXC.js} +3 -3
- package/dist/{chunk-XFUKCBPU.js → chunk-RLVJ6TVL.js} +23 -23
- package/dist/{chunk-VPZ5K72D.js → chunk-RPPXQNIA.js} +1 -1
- package/dist/{chunk-MCHOBQHE.js → chunk-S54C6TQC.js} +7 -6
- package/dist/{chunk-ZL3UR6M5.js → chunk-SEILUNWB.js} +3 -3
- package/dist/{chunk-4JJ3T7IE.js → chunk-SOCJ2N3E.js} +6 -6
- package/dist/{chunk-JYXIARGW.js → chunk-SVQWHV65.js} +1 -1
- package/dist/{chunk-T2BEIPK2.js → chunk-U7NR4JVD.js} +4 -4
- package/dist/{chunk-LVWXRXT7.js → chunk-USE5IEEW.js} +1 -1
- package/dist/{chunk-OHD35NPC.js → chunk-V57XLKZL.js} +2 -2
- package/dist/{chunk-KIH5BDH5.js → chunk-VIJIG5YL.js} +2 -2
- package/dist/{chunk-RF74KBF5.js → chunk-W2IVTHIG.js} +9 -9
- package/dist/{chunk-WXZN5CS3.js → chunk-WFSGCFXQ.js} +2 -2
- package/dist/{chunk-IRZ5FVWG.js → chunk-WN3RACVD.js} +3 -3
- package/dist/{chunk-3WNOO7BM.js → chunk-WXPVVXBU.js} +4 -4
- package/dist/{chunk-HUWLEVL2.js → chunk-WXZHQ3TT.js} +5 -5
- package/dist/chunk-X3YKQJCZ.js +36 -0
- package/dist/{chunk-I43PY5G3.js → chunk-XEJOPVCG.js} +1 -1
- package/dist/{chunk-ECJJKDP7.js → chunk-XV6S5PWW.js} +3 -3
- package/dist/{chunk-ZJNU32VE.js → chunk-Y5V4PA2Z.js} +155 -37
- package/dist/{chunk-7RZO6VWD.js → chunk-Y5VKZNFN.js} +2 -2
- package/dist/{chunk-VLJ5C6IT.js → chunk-YGE6ML3O.js} +4 -4
- package/dist/{chunk-XXNT4FGA.js → chunk-YPD3MTFU.js} +1 -1
- package/dist/{chunk-KW6EYFZV.js → chunk-ZGOJLNKS.js} +4 -4
- package/dist/{codex-app-cards-switch-TVKXJWXE.js → codex-app-cards-switch-ZO76D2NY.js} +11 -11
- package/dist/{codex-desktop-launch-ROTJEEGF.js → codex-desktop-launch-MJT5E3O3.js} +1 -1
- package/dist/{codex-session-launch-VL6ZQA3N.js → codex-session-launch-PTFCVIC7.js} +19 -19
- package/dist/{config-SYLUYZQE.js → config-SXV6XNVU.js} +3 -3
- package/dist/{global-upgrade-IPWV5PTM.js → global-upgrade-ETDP32LO.js} +9 -9
- package/dist/{identity-ARPAUNGN.js → identity-OOLIOSMR.js} +4 -4
- package/dist/{live-capabilities-EWTRY2HA.js → live-capabilities-2XIFA7YO.js} +4 -4
- package/dist/{paths-IZTNMJAQ.js → paths-IIOQZESZ.js} +3 -3
- package/dist/{reapply-ILKOYYKA.js → reapply-KFAJSKOQ.js} +28 -28
- package/dist/src/index.js +22 -22
- package/dist/{upgrade-lock-ML73QXIG.js → upgrade-lock-T6ILR644.js} +4 -4
- package/dist/{usage-OUV76AIY.js → usage-6TN7FVWS.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-7QLSKOSU.js +0 -19
- package/dist/chunk-EO23EUOK.js +0 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.9.60
|
|
4
|
+
|
|
5
|
+
- 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.
|
|
6
|
+
- Setup, repair and disconnect respect the active Claude configuration directory. Hook commands safely quote paths containing apostrophes, dollar signs or shell substitutions.
|
|
7
|
+
- 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.
|
|
8
|
+
- 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.
|
|
9
|
+
|
|
10
|
+
## 1.9.59
|
|
11
|
+
|
|
12
|
+
- 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.
|
|
13
|
+
- For a download or an upload, Yes allows that one transfer. For a site, Yes allows the site for the rest of the conversation, or for the turn if Codex is set to ask each turn, and No blocks it for the conversation, because that is what Codex does with the answer its own Allow button sends. The question's details say which. Pushary never sends "always", "for this site" or "for all sites"; those stay in Codex.
|
|
14
|
+
- `pushary codex --app-cards on`, `pushary codex --desktop` and the command's help now say that the browser's questions are carried too.
|
|
15
|
+
- Other Browser use questions stay in Codex for now: Developer Tools access, browsing history, verification codes and sign-in.
|
|
16
|
+
|
|
3
17
|
## 1.9.58
|
|
4
18
|
|
|
5
19
|
- `pushary clean` no longer removes the Codex app cards launcher when it could not turn the switch off. It keeps the folder and prints the reason. Before, a failed turn-off could leave the Codex app starting through a launcher that was gone, and Codex would not start its engine until the next logout. The same now holds when the setting that starts the Codex app cannot be read while a launcher or login item is on disk: clean and `pushary codex --app-cards off` change nothing and say so, where they used to read it as not set.
|
|
@@ -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,24 @@ import {
|
|
|
15
15
|
waitForQuestion,
|
|
16
16
|
waitsForThePhone,
|
|
17
17
|
withdrawQuestion
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
} from "./chunk-EZHY65QA.js";
|
|
19
|
+
import "./chunk-SEILUNWB.js";
|
|
20
20
|
import "./chunk-POFBE6ZY.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-METMK3L4.js";
|
|
22
|
+
import "./chunk-4MWRR5IT.js";
|
|
23
|
+
import "./chunk-O6IUZGWV.js";
|
|
24
|
+
import "./chunk-PPY5N2E6.js";
|
|
25
25
|
import "./chunk-KZERVKTD.js";
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
26
|
+
import "./chunk-6MJWYYAS.js";
|
|
27
|
+
import "./chunk-2QREHU4O.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
36
|
export {
|
|
37
37
|
DECISION_STOP_REASON,
|
|
38
38
|
UNVERIFIABLE_APPROVAL_REASON,
|
|
@@ -1,44 +1,44 @@
|
|
|
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-6MC2XXFD.js";
|
|
8
|
+
import "../chunk-CEQ2AZH4.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-PUHP4IBA.js";
|
|
11
|
+
import "../chunk-HC3FHDKB.js";
|
|
12
|
+
import "../chunk-CDQHQAS7.js";
|
|
13
|
+
import "../chunk-IF26ZGZ7.js";
|
|
14
|
+
import "../chunk-XV6S5PWW.js";
|
|
15
|
+
import "../chunk-4MUFZU2G.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-W2IVTHIG.js";
|
|
24
|
+
import "../chunk-33OOEVPG.js";
|
|
25
|
+
import "../chunk-YPD3MTFU.js";
|
|
26
|
+
import "../chunk-EZHY65QA.js";
|
|
27
|
+
import "../chunk-SEILUNWB.js";
|
|
28
28
|
import "../chunk-POFBE6ZY.js";
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
31
|
-
import "../chunk-
|
|
32
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-METMK3L4.js";
|
|
30
|
+
import "../chunk-4MWRR5IT.js";
|
|
31
|
+
import "../chunk-O6IUZGWV.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-6MJWYYAS.js";
|
|
36
|
+
import "../chunk-2QREHU4O.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
42
|
|
|
43
43
|
// bin/pushary-bell-hook.ts
|
|
44
44
|
var main = async () => {
|
package/dist/bin/pushary-bell.js
CHANGED
|
@@ -5,41 +5,41 @@ 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-4MUFZU2G.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-6MJWYYAS.js";
|
|
32
|
+
import "../chunk-2QREHU4O.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
43
|
|
|
44
44
|
// bin/pushary-bell.ts
|
|
45
45
|
exitOnHelpFlag("bell");
|
|
@@ -8,40 +8,40 @@ import {
|
|
|
8
8
|
describeIdleWindow,
|
|
9
9
|
startProcessOwnership,
|
|
10
10
|
withSpawnProcessOwnership
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-7WFRY6OL.js";
|
|
12
12
|
import "../chunk-VUFHYMSP.js";
|
|
13
13
|
import {
|
|
14
14
|
announceSubscriptionRequired,
|
|
15
15
|
isDeferAnswer
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-RPPXQNIA.js";
|
|
17
17
|
import {
|
|
18
18
|
claudeTranscriptPath,
|
|
19
19
|
loadSessionKey,
|
|
20
20
|
registerTranscript,
|
|
21
21
|
registeredTranscriptEnabled
|
|
22
|
-
} from "../chunk-
|
|
22
|
+
} from "../chunk-CEQ2AZH4.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-HC3FHDKB.js";
|
|
27
|
+
import "../chunk-CDQHQAS7.js";
|
|
28
|
+
import "../chunk-IF26ZGZ7.js";
|
|
29
|
+
import "../chunk-XV6S5PWW.js";
|
|
30
|
+
import "../chunk-4MUFZU2G.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-W2IVTHIG.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-EZHY65QA.js";
|
|
77
77
|
import {
|
|
78
78
|
SubscriptionRequiredError
|
|
79
|
-
} from "../chunk-
|
|
79
|
+
} from "../chunk-SEILUNWB.js";
|
|
80
80
|
import "../chunk-POFBE6ZY.js";
|
|
81
|
-
import "../chunk-
|
|
82
|
-
import "../chunk-
|
|
81
|
+
import "../chunk-METMK3L4.js";
|
|
82
|
+
import "../chunk-4MWRR5IT.js";
|
|
83
83
|
import {
|
|
84
84
|
getMachineId
|
|
85
|
-
} from "../chunk-
|
|
86
|
-
import "../chunk-
|
|
85
|
+
} from "../chunk-O6IUZGWV.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-6MJWYYAS.js";
|
|
92
|
+
import "../chunk-2QREHU4O.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,7 @@ import {
|
|
|
106
108
|
redactSecretsFromContent,
|
|
107
109
|
resolveGate,
|
|
108
110
|
timeoutActionWithoutLocalPrompt
|
|
109
|
-
} from "../chunk-
|
|
111
|
+
} from "../chunk-AXJLJJ3M.js";
|
|
110
112
|
|
|
111
113
|
// src/wrapper/localPassthrough.ts
|
|
112
114
|
var SIGNAL_NUMBERS = {
|
|
@@ -1228,7 +1230,6 @@ var remoteCompatibilityIssue = (args2) => {
|
|
|
1228
1230
|
|
|
1229
1231
|
// src/wrapper/localLeg.ts
|
|
1230
1232
|
import { readFileSync } from "fs";
|
|
1231
|
-
import { homedir as homedir2 } from "os";
|
|
1232
1233
|
import { join as join2 } from "path";
|
|
1233
1234
|
var SIGNAL_EXIT_BASE = 128;
|
|
1234
1235
|
var SIGNAL_NUMBERS2 = { SIGHUP: 1, SIGINT: 2, SIGTERM: 15 };
|
|
@@ -1299,7 +1300,7 @@ var runLocalLeg = (session, deps = {}) => {
|
|
|
1299
1300
|
const readIdentity = () => {
|
|
1300
1301
|
if (!child.pid) return;
|
|
1301
1302
|
try {
|
|
1302
|
-
const root =
|
|
1303
|
+
const root = claudeConfigDir();
|
|
1303
1304
|
const record = JSON.parse(readFileSync(join2(root, "sessions", `${child.pid}.json`), "utf8"));
|
|
1304
1305
|
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
1306
|
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-4PZXI7WU.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-Y5V4PA2Z.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-CSOROFJY.js";
|
|
32
|
+
import "../chunk-YGE6ML3O.js";
|
|
33
33
|
import {
|
|
34
34
|
isCursorPluginLeftover,
|
|
35
35
|
releaseSoleGate,
|
|
36
36
|
withoutPusharyCursorHooks
|
|
37
|
-
} from "../chunk-
|
|
37
|
+
} from "../chunk-WXPVVXBU.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-S54C6TQC.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-U7NR4JVD.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-WXZHQ3TT.js";
|
|
60
|
+
import "../chunk-FDWMG6NY.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-QGSHV3WO.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-PUHP4IBA.js";
|
|
98
98
|
import {
|
|
99
99
|
disableDaemonService
|
|
100
|
-
} from "../chunk-
|
|
100
|
+
} from "../chunk-HC3FHDKB.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-CDQHQAS7.js";
|
|
109
109
|
import {
|
|
110
110
|
removeGeminiSettings
|
|
111
|
-
} from "../chunk-
|
|
112
|
-
import "../chunk-
|
|
113
|
-
import "../chunk-
|
|
111
|
+
} from "../chunk-IF26ZGZ7.js";
|
|
112
|
+
import "../chunk-XV6S5PWW.js";
|
|
113
|
+
import "../chunk-4MUFZU2G.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,28 +121,30 @@ 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-W2IVTHIG.js";
|
|
127
|
+
import "../chunk-33OOEVPG.js";
|
|
128
|
+
import "../chunk-YPD3MTFU.js";
|
|
129
|
+
import "../chunk-EZHY65QA.js";
|
|
130
|
+
import "../chunk-SEILUNWB.js";
|
|
131
131
|
import "../chunk-POFBE6ZY.js";
|
|
132
|
-
import "../chunk-
|
|
133
|
-
import "../chunk-
|
|
134
|
-
import "../chunk-
|
|
135
|
-
import "../chunk-
|
|
132
|
+
import "../chunk-METMK3L4.js";
|
|
133
|
+
import "../chunk-4MWRR5IT.js";
|
|
134
|
+
import "../chunk-O6IUZGWV.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,
|
|
@@ -168,21 +170,21 @@ import {
|
|
|
168
170
|
restoreCodexHookTrust,
|
|
169
171
|
vscodePluginDir,
|
|
170
172
|
vscodePluginMcp
|
|
171
|
-
} from "../chunk-
|
|
173
|
+
} from "../chunk-6MJWYYAS.js";
|
|
172
174
|
import {
|
|
173
175
|
cleanNpmEnv,
|
|
174
176
|
globalPackageState,
|
|
175
177
|
npmIsOnPath,
|
|
176
178
|
readGlobalFolder,
|
|
177
179
|
readGlobalPrefix
|
|
178
|
-
} from "../chunk-
|
|
180
|
+
} from "../chunk-2QREHU4O.js";
|
|
179
181
|
import "../chunk-QENTGE75.js";
|
|
180
182
|
import {
|
|
181
183
|
getBaseUrl
|
|
182
|
-
} from "../chunk-
|
|
184
|
+
} from "../chunk-BG4Y64FW.js";
|
|
183
185
|
import {
|
|
184
186
|
NPX_LATEST_COMMAND
|
|
185
|
-
} from "../chunk-
|
|
187
|
+
} from "../chunk-ERK24P76.js";
|
|
186
188
|
import {
|
|
187
189
|
CLI_PACKAGE_NAMES,
|
|
188
190
|
globalPackageFolder,
|
|
@@ -196,11 +198,11 @@ import {
|
|
|
196
198
|
SUPPORT_EMAIL,
|
|
197
199
|
isValidApiKey,
|
|
198
200
|
redactSecrets
|
|
199
|
-
} from "../chunk-
|
|
201
|
+
} from "../chunk-AXJLJJ3M.js";
|
|
200
202
|
|
|
201
203
|
// bin/pushary-clean.ts
|
|
202
204
|
import { existsSync as existsSync5, readFileSync as readFileSync4, copyFileSync, readdirSync as readdirSync4 } from "fs";
|
|
203
|
-
import { dirname, join as join5 } from "path";
|
|
205
|
+
import { dirname as dirname2, join as join5 } from "path";
|
|
204
206
|
import { homedir as homedir4, tmpdir } from "os";
|
|
205
207
|
import { confirm } from "@inquirer/prompts";
|
|
206
208
|
import { parse as parseTOML, stringify as stringifyTOML } from "smol-toml";
|
|
@@ -357,11 +359,11 @@ var skillsStoreRemoval = (home = homedir2()) => {
|
|
|
357
359
|
// src/cli/claude-backups.ts
|
|
358
360
|
import { existsSync as existsSync4, readFileSync as readFileSync3, readdirSync as readdirSync2 } from "fs";
|
|
359
361
|
import { homedir as homedir3 } from "os";
|
|
360
|
-
import { join as join3 } from "path";
|
|
362
|
+
import { dirname, join as join3 } from "path";
|
|
361
363
|
var BACKUP_PREFIX = ".claude.json.backup";
|
|
362
364
|
var claudeJsonBackups = (home = homedir3()) => {
|
|
363
|
-
const rollingDir = join3(home, "
|
|
364
|
-
const legacy = join3(home, BACKUP_PREFIX);
|
|
365
|
+
const rollingDir = join3(claudeConfigDir(home), "backups");
|
|
366
|
+
const legacy = join3(dirname(claudeUserConfigFile(home)), BACKUP_PREFIX);
|
|
365
367
|
const rolling = existsSync4(rollingDir) ? readdirSync2(rollingDir).filter((name) => name.startsWith(BACKUP_PREFIX)).sort().map((name) => join3(rollingDir, name)) : [];
|
|
366
368
|
return existsSync4(legacy) ? [...rolling, legacy] : rolling;
|
|
367
369
|
};
|
|
@@ -572,7 +574,7 @@ var guards = createGuards(() => dryRun, wouldNote);
|
|
|
572
574
|
var guardedWrite = (path, contents) => guards.write(path, contents);
|
|
573
575
|
var guardedRemove = (path, options) => guards.remove(path, options);
|
|
574
576
|
var cursorPluginLeftovers = () => {
|
|
575
|
-
const parent =
|
|
577
|
+
const parent = dirname2(CURSOR_PLUGIN_DIR);
|
|
576
578
|
try {
|
|
577
579
|
return readdirSync4(parent).filter(isCursorPluginLeftover).map((name) => join5(parent, name));
|
|
578
580
|
} catch {
|
|
@@ -666,13 +668,13 @@ var cleanSettingsFile = (path, label, scope) => {
|
|
|
666
668
|
};
|
|
667
669
|
var agentConfigDirectories = () => [
|
|
668
670
|
homedir4(),
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
671
|
+
dirname2(CLAUDE_SETTINGS),
|
|
672
|
+
dirname2(codexConfigToml()),
|
|
673
|
+
dirname2(geminiSettings()),
|
|
674
|
+
dirname2(CURSOR_USER_HOOKS),
|
|
673
675
|
openCodeConfigDir(),
|
|
674
676
|
fxConfigDir(),
|
|
675
|
-
...vscodeSettingsTargets(existsSync5).map((settings) =>
|
|
677
|
+
...vscodeSettingsTargets(existsSync5).map((settings) => dirname2(settings))
|
|
676
678
|
];
|
|
677
679
|
var restoreTakeoverReceipts = () => {
|
|
678
680
|
const targets = [
|
|
@@ -754,23 +756,26 @@ var main = async () => {
|
|
|
754
756
|
console.log(` ${bold("Pushary Clean")}`);
|
|
755
757
|
console.log(` ${dim("Removes all Pushary configuration")}`);
|
|
756
758
|
console.log();
|
|
759
|
+
let flags;
|
|
757
760
|
try {
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
[
|
|
761
|
+
const args = process.argv.slice(2);
|
|
762
|
+
flags = parseFlags(
|
|
763
|
+
args[0] === "clean" ? args.slice(1) : args,
|
|
764
|
+
{ bools: ["dry-run", "everything", "yes", "y"], values: [] }
|
|
761
765
|
);
|
|
766
|
+
if (flags.command !== void 0 || flags.rest.length > 0) throw new Error("clean takes no positional arguments");
|
|
762
767
|
} catch (err) {
|
|
763
768
|
process.stderr.write(` ! ${err instanceof Error ? err.message : String(err)}
|
|
764
769
|
`);
|
|
765
770
|
process.exit(EXIT.USAGE);
|
|
766
771
|
}
|
|
767
|
-
dryRun =
|
|
768
|
-
const everything =
|
|
772
|
+
dryRun = flags.bools.has("dry-run");
|
|
773
|
+
const everything = flags.bools.has("everything");
|
|
769
774
|
if (dryRun) {
|
|
770
775
|
console.log(` ${bold("Dry run")} ${dim("- nothing will be changed")}`);
|
|
771
776
|
console.log();
|
|
772
777
|
}
|
|
773
|
-
const assumeYes = dryRun ||
|
|
778
|
+
const assumeYes = dryRun || flags.bools.has("yes") || flags.bools.has("y");
|
|
774
779
|
if (!assumeYes && !process.stdin.isTTY) {
|
|
775
780
|
console.log(` ${yellow("!")} Non-interactive shell. Re-run with --yes to confirm removal.`);
|
|
776
781
|
process.exit(1);
|
|
@@ -858,7 +863,7 @@ var main = async () => {
|
|
|
858
863
|
console.log(` ${skip} Claude Code MCP servers ${dim("(setup receipt is unreadable; left unchanged)")}`);
|
|
859
864
|
} else if (receipt && restoreClaudeMcpServer(claudeJson2, receipt) || !receipt && removeClaudeMcpServers(claudeJson2)) {
|
|
860
865
|
writeJson(CLAUDE_JSON, claudeJson2);
|
|
861
|
-
console.log(` ${check} Claude Code MCP servers ${dim(receipt ? "(previous entry restored)" :
|
|
866
|
+
console.log(` ${check} Claude Code MCP servers ${dim(receipt ? "(previous entry restored)" : `(removed from ${shortenHome(CLAUDE_JSON)})`)}`);
|
|
862
867
|
if (keepShared && receipt) guardedRemove(CLAUDE_MCP_RECEIPT, { force: true });
|
|
863
868
|
} else {
|
|
864
869
|
if (receipt && !keepShared) incompleteClean = true;
|