@pushary/agent-hooks 1.9.60 → 1.9.62
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 +11 -0
- package/README.md +6 -0
- package/dist/{api-ASQA5PZM.js → api-7HLZRIUV.js} +15 -12
- package/dist/bin/pushary-bell-hook.js +28 -27
- package/dist/bin/pushary-bell.js +11 -10
- package/dist/bin/pushary-claude.js +34 -26
- package/dist/bin/pushary-clean.js +36 -34
- package/dist/bin/pushary-codex-bridge.js +22 -21
- package/dist/bin/pushary-codex-hook.js +49 -35
- package/dist/bin/pushary-codex-session.js +9 -8
- package/dist/bin/pushary-codex.js +15 -14
- package/dist/bin/pushary-connect.js +28 -27
- package/dist/bin/pushary-cowork.js +6 -5
- package/dist/bin/pushary-daemon.js +38 -37
- package/dist/bin/pushary-disconnect.js +27 -26
- package/dist/bin/pushary-doctor.js +41 -40
- package/dist/bin/pushary-elicitation-hook.js +30 -27
- package/dist/bin/pushary-gemini-bridge.js +16 -15
- package/dist/bin/pushary-gemini-hook.js +38 -29
- package/dist/bin/pushary-hook.js +33 -31
- package/dist/bin/pushary-login.js +15 -14
- package/dist/bin/pushary-logout.js +28 -27
- package/dist/bin/pushary-mcp.js +12 -11
- package/dist/bin/pushary-mode.js +15 -14
- package/dist/bin/pushary-notification-hook.js +27 -26
- package/dist/bin/pushary-opencode-hook.js +40 -30
- package/dist/bin/pushary-permission-denied-hook.js +32 -31
- package/dist/bin/pushary-permission-hook.js +31 -30
- package/dist/bin/pushary-post-hook.js +27 -26
- package/dist/bin/pushary-prompt-hook.js +27 -26
- package/dist/bin/pushary-session-end-hook.js +27 -26
- package/dist/bin/pushary-session-start-hook.js +34 -33
- package/dist/bin/pushary-setup.js +4195 -93
- package/dist/bin/pushary-stats.js +6 -5
- package/dist/bin/pushary-status.js +32 -31
- package/dist/bin/pushary-stop-hook.js +27 -26
- package/dist/bin/pushary-stopfailure-hook.js +27 -26
- package/dist/bin/pushary-suggestions.js +15 -14
- package/dist/bin/pushary-transcript-register.js +19 -18
- package/dist/bin/pushary-transcripts.js +8 -7
- package/dist/bin/pushary-upgrade.js +43 -37
- package/dist/bin/pushary-wait.js +15 -14
- package/dist/bin/pushary.js +8 -7
- package/dist/{chunk-RPPXQNIA.js → chunk-3IFCXMC6.js} +1 -1
- package/dist/{chunk-WXPVVXBU.js → chunk-3LBB7GVF.js} +4 -4
- package/dist/{chunk-WFSGCFXQ.js → chunk-3YGUWPNZ.js} +2 -6
- package/dist/{chunk-SVQWHV65.js → chunk-44FNEAXK.js} +1 -1
- package/dist/{chunk-YPD3MTFU.js → chunk-4K6YZPZ3.js} +1 -1
- package/dist/{chunk-PUHP4IBA.js → chunk-557ZE5EX.js} +4 -4
- package/dist/{chunk-HC3FHDKB.js → chunk-5R23J52J.js} +6 -6
- package/dist/{chunk-625DZLT5.js → chunk-67Q3Q5IO.js} +8 -6
- package/dist/{chunk-QGSHV3WO.js → chunk-6HIYOY6I.js} +77 -18
- package/dist/{chunk-L3AFVFGQ.js → chunk-6JAWNRDR.js} +2 -2
- package/dist/{chunk-6MJWYYAS.js → chunk-6YSEOXP5.js} +47 -3
- package/dist/{chunk-VIJIG5YL.js → chunk-7E2ZN7XA.js} +2 -2
- package/dist/{chunk-QLMOU57V.js → chunk-7EHZXZB2.js} +33 -20
- package/dist/{chunk-2AELPDMT.js → chunk-7ETELRQX.js} +1 -1
- package/dist/{chunk-7BHI3PZN.js → chunk-7GU4PXE5.js} +1 -1
- package/dist/{chunk-CDQHQAS7.js → chunk-7NJ4TDUH.js} +5 -5
- package/dist/{chunk-X3YKQJCZ.js → chunk-7NXB7OVX.js} +1 -1
- package/dist/{chunk-XEJOPVCG.js → chunk-A4CZPUQ6.js} +1 -1
- package/dist/{chunk-YGE6ML3O.js → chunk-AFV3FQNG.js} +4 -4
- package/dist/{chunk-V57XLKZL.js → chunk-BIUSODLS.js} +2 -2
- package/dist/{chunk-2QREHU4O.js → chunk-CFIQ3252.js} +3 -3
- package/dist/{chunk-BG4Y64FW.js → chunk-DFKEJARZ.js} +1 -1
- package/dist/{chunk-S54C6TQC.js → chunk-EA6574W2.js} +5 -5
- package/dist/{chunk-FDWMG6NY.js → chunk-EO6CL4PD.js} +2 -2
- package/dist/{chunk-SEILUNWB.js → chunk-ESXGCZDA.js} +26 -3
- package/dist/{chunk-CEQ2AZH4.js → chunk-EUNSJKJJ.js} +8 -8
- package/dist/{chunk-56JCQQLS.js → chunk-EVZDYG7L.js} +2 -2
- package/dist/{chunk-4MUFZU2G.js → chunk-F35YILEN.js} +1 -1
- package/dist/{chunk-ERK24P76.js → chunk-FG5HMJ7C.js} +1 -1
- package/dist/{chunk-NKLNU577.js → chunk-FX7KDF47.js} +3 -3
- package/dist/{chunk-AXJLJJ3M.js → chunk-FXECTHAG.js} +73 -2
- package/dist/chunk-FYS27SUS.js +216 -0
- package/dist/{chunk-O6IUZGWV.js → chunk-G3ZDCYMU.js} +1 -1
- package/dist/{chunk-ELLJPP6O.js → chunk-GFAG72LR.js} +2 -2
- package/dist/{chunk-ATKN4BJT.js → chunk-GV43RXR2.js} +1 -1
- package/dist/{chunk-4MWRR5IT.js → chunk-HSRNWCXJ.js} +3 -3
- package/dist/{chunk-IF26ZGZ7.js → chunk-LCNN7UOE.js} +3 -3
- package/dist/{chunk-WXZHQ3TT.js → chunk-LILS32LF.js} +5 -5
- package/dist/{chunk-33OOEVPG.js → chunk-LL2KHEJH.js} +1 -1
- package/dist/{chunk-W2IVTHIG.js → chunk-LWR5VKNC.js} +18 -10
- package/dist/{chunk-QUBIEZXC.js → chunk-M7MEVILL.js} +3 -3
- package/dist/chunk-MLKGABMK.js +9 -0
- package/dist/{chunk-XV6S5PWW.js → chunk-MURJ4WAL.js} +1 -1
- package/dist/{chunk-FUZ5VYWD.js → chunk-MYEALNW6.js} +1 -1
- package/dist/{chunk-ADR3KHOC.js → chunk-NAZRRXZM.js} +2 -2
- package/dist/{chunk-ZGOJLNKS.js → chunk-NZLQ6GMX.js} +4 -4
- package/dist/{chunk-K4MBKXAE.js → chunk-OZRT64BB.js} +1 -1
- package/dist/{chunk-Y5VKZNFN.js → chunk-PSCXEH42.js} +2 -2
- package/dist/{chunk-METMK3L4.js → chunk-Q4WTIKM6.js} +3 -3
- package/dist/{chunk-U7NR4JVD.js → chunk-QIPW7OVB.js} +4 -4
- package/dist/{chunk-USE5IEEW.js → chunk-R3CLBNST.js} +1 -1
- package/dist/{chunk-7WFRY6OL.js → chunk-RFCEVROB.js} +2 -2
- package/dist/{chunk-EZHY65QA.js → chunk-RSNN2TPE.js} +13 -8
- package/dist/{chunk-DJ7EZIQA.js → chunk-RU37NSZH.js} +3 -3
- package/dist/{chunk-J4KQL7YZ.js → chunk-SDOWT67G.js} +5 -5
- package/dist/{chunk-4PZXI7WU.js → chunk-SJCPIYWJ.js} +2 -2
- package/dist/{chunk-MUNL23WE.js → chunk-SJJYXMJP.js} +6 -6
- package/dist/{chunk-6LOQE4J4.js → chunk-TMHE5CVX.js} +3 -3
- package/dist/{chunk-GAMVAORR.js → chunk-UUAVYIWJ.js} +1 -1
- package/dist/{chunk-Y5V4PA2Z.js → chunk-UWCPY4RY.js} +2 -2
- package/dist/{chunk-5RU35K57.js → chunk-VF3IL56Q.js} +2 -2
- package/dist/{chunk-WN3RACVD.js → chunk-W3CBFLIX.js} +3 -3
- package/dist/{chunk-RLVJ6TVL.js → chunk-W6MYFAOK.js} +26 -18
- package/dist/{chunk-CSOROFJY.js → chunk-YQK72JGV.js} +5 -5
- package/dist/{chunk-7JXJJNQ5.js → chunk-ZEDGKCCM.js} +1 -1
- package/dist/{chunk-SOCJ2N3E.js → chunk-ZJFJUAHS.js} +6 -6
- package/dist/{codex-app-cards-switch-ZO76D2NY.js → codex-app-cards-switch-IIL7IPP6.js} +12 -11
- package/dist/{codex-desktop-launch-MJT5E3O3.js → codex-desktop-launch-XCLMYVBD.js} +2 -1
- package/dist/{codex-session-launch-PTFCVIC7.js → codex-session-launch-UMVALJ3A.js} +19 -18
- package/dist/{config-SXV6XNVU.js → config-5N3GUJD5.js} +4 -3
- package/dist/{global-upgrade-ETDP32LO.js → global-upgrade-5F4CSXED.js} +10 -9
- package/dist/{identity-OOLIOSMR.js → identity-7ULYW4RL.js} +5 -4
- package/dist/{live-capabilities-2XIFA7YO.js → live-capabilities-QTSFXA6T.js} +5 -4
- package/dist/{paths-IIOQZESZ.js → paths-HEMK2ALW.js} +4 -3
- package/dist/{reapply-KFAJSKOQ.js → reapply-AMFKVYZV.js} +27 -26
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +22 -21
- package/dist/{upgrade-lock-T6ILR644.js → upgrade-lock-IAZC5644.js} +5 -4
- package/dist/usage-NEFDYSRT.js +11 -0
- package/package.json +1 -1
- package/dist/chunk-6MC2XXFD.js +0 -126
- package/dist/usage-6TN7FVWS.js +0 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.9.62
|
|
4
|
+
|
|
5
|
+
- In Cursor, each shell command and file change reaches your phone once. Cursor also runs Claude Code's hooks, so with Pushary's Cursor gate installed every gated call was asked about twice, once by each hook. The Claude Code hook now leaves a call from Cursor to the Cursor gate when `~/.cursor/hooks.json` registers that gate for that kind of call and the gate can answer it: its script is present and new enough to handle that kind of call, or the Pushary app is installed. Anything the Cursor gate does not cover is still asked about by the Claude Code hook. Commands the Cursor gate lets run without asking, such as ones that only read, no longer reach your phone through the Claude Code hook. This applies where this CLI runs Claude Code's hooks; while the Pushary Mac app runs them, calls from Cursor are still asked about twice until an app update.
|
|
6
|
+
- When a session already has as many open questions as Pushary allows, a new approval is never approved and nobody is asked again. Before, the hook stopped the agent and told it to retry, and every retry was refused again. Now the call goes to a prompt only where one is sure to follow: Claude Code's own prompt or permission dialog, the prompt of an agent that runs Claude Code's hooks and has one of its own, such as Grok, and Codex's own confirmation for a call Codex itself asked about. Everywhere else it is refused, with a message that says why: under a rule that refuses when nobody answers, in Codex before a tool runs, in Gemini CLI and OpenCode, in Antigravity CLI, in sessions started from your phone, and for a call from Cursor, because Cursor does not hold a call for a prompt. Gemini CLI under When I'm out hands the call to Gemini, as it did before. A question your agent asks you ends as an unanswered question, so its own picker, plan dialog or MCP form shows.
|
|
7
|
+
|
|
8
|
+
## 1.9.61
|
|
9
|
+
|
|
10
|
+
- 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.
|
|
11
|
+
- 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.
|
|
12
|
+
- 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.
|
|
13
|
+
|
|
3
14
|
## 1.9.60
|
|
4
15
|
|
|
5
16
|
- 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.
|
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.
|
|
@@ -6,33 +6,35 @@ import {
|
|
|
6
6
|
isAwayPaused,
|
|
7
7
|
isDecisionStopped,
|
|
8
8
|
isLocalQuestionHandoff,
|
|
9
|
+
isQuestionLimitRefusal,
|
|
9
10
|
nextLongPollMs,
|
|
10
11
|
pollForAnswer,
|
|
11
12
|
requestGate,
|
|
12
13
|
sendNotification,
|
|
13
|
-
|
|
14
|
+
unavailableQuestionUnlessRefused,
|
|
14
15
|
waitForAnswer,
|
|
15
16
|
waitForQuestion,
|
|
16
17
|
waitsForThePhone,
|
|
17
18
|
withdrawQuestion
|
|
18
|
-
} from "./chunk-
|
|
19
|
-
import "./chunk-
|
|
19
|
+
} from "./chunk-RSNN2TPE.js";
|
|
20
|
+
import "./chunk-ESXGCZDA.js";
|
|
20
21
|
import "./chunk-POFBE6ZY.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-Q4WTIKM6.js";
|
|
23
|
+
import "./chunk-HSRNWCXJ.js";
|
|
24
|
+
import "./chunk-G3ZDCYMU.js";
|
|
24
25
|
import "./chunk-PPY5N2E6.js";
|
|
25
26
|
import "./chunk-KZERVKTD.js";
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-6YSEOXP5.js";
|
|
28
|
+
import "./chunk-CFIQ3252.js";
|
|
28
29
|
import "./chunk-QENTGE75.js";
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-DFKEJARZ.js";
|
|
31
|
+
import "./chunk-FG5HMJ7C.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-FXECTHAG.js";
|
|
37
|
+
import "./chunk-MLKGABMK.js";
|
|
36
38
|
export {
|
|
37
39
|
DECISION_STOP_REASON,
|
|
38
40
|
UNVERIFIABLE_APPROVAL_REASON,
|
|
@@ -43,11 +45,12 @@ export {
|
|
|
43
45
|
isAwayPaused,
|
|
44
46
|
isDecisionStopped,
|
|
45
47
|
isLocalQuestionHandoff,
|
|
48
|
+
isQuestionLimitRefusal,
|
|
46
49
|
nextLongPollMs,
|
|
47
50
|
pollForAnswer,
|
|
48
51
|
requestGate,
|
|
49
52
|
sendNotification,
|
|
50
|
-
|
|
53
|
+
unavailableQuestionUnlessRefused,
|
|
51
54
|
waitForAnswer,
|
|
52
55
|
waitForQuestion,
|
|
53
56
|
waitsForThePhone,
|
|
@@ -1,44 +1,45 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
handleBell
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-GV43RXR2.js";
|
|
5
5
|
import {
|
|
6
6
|
readHookInput
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-FYS27SUS.js";
|
|
8
|
+
import "../chunk-EUNSJKJJ.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-
|
|
10
|
+
import "../chunk-557ZE5EX.js";
|
|
11
|
+
import "../chunk-5R23J52J.js";
|
|
12
|
+
import "../chunk-7NJ4TDUH.js";
|
|
13
|
+
import "../chunk-LCNN7UOE.js";
|
|
14
|
+
import "../chunk-MURJ4WAL.js";
|
|
15
|
+
import "../chunk-F35YILEN.js";
|
|
16
16
|
import "../chunk-NMUI3ZWG.js";
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-7ETELRQX.js";
|
|
18
|
+
import "../chunk-UUAVYIWJ.js";
|
|
19
|
+
import "../chunk-ZEDGKCCM.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-W3CBFLIX.js";
|
|
23
|
+
import "../chunk-LWR5VKNC.js";
|
|
24
|
+
import "../chunk-LL2KHEJH.js";
|
|
25
|
+
import "../chunk-4K6YZPZ3.js";
|
|
26
|
+
import "../chunk-RSNN2TPE.js";
|
|
27
|
+
import "../chunk-ESXGCZDA.js";
|
|
28
28
|
import "../chunk-POFBE6ZY.js";
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
31
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-Q4WTIKM6.js";
|
|
30
|
+
import "../chunk-HSRNWCXJ.js";
|
|
31
|
+
import "../chunk-G3ZDCYMU.js";
|
|
32
32
|
import "../chunk-PPY5N2E6.js";
|
|
33
33
|
import "../chunk-KZERVKTD.js";
|
|
34
|
-
import "../chunk-
|
|
35
|
-
import "../chunk-
|
|
36
|
-
import "../chunk-
|
|
34
|
+
import "../chunk-PSCXEH42.js";
|
|
35
|
+
import "../chunk-6YSEOXP5.js";
|
|
36
|
+
import "../chunk-CFIQ3252.js";
|
|
37
37
|
import "../chunk-QENTGE75.js";
|
|
38
|
-
import "../chunk-
|
|
39
|
-
import "../chunk-
|
|
38
|
+
import "../chunk-DFKEJARZ.js";
|
|
39
|
+
import "../chunk-FG5HMJ7C.js";
|
|
40
40
|
import "../chunk-QTOLNRET.js";
|
|
41
|
-
import "../chunk-
|
|
41
|
+
import "../chunk-FXECTHAG.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-GV43RXR2.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-OZRT64BB.js";
|
|
15
15
|
import {
|
|
16
16
|
addBellHooks,
|
|
17
17
|
bellInstalled,
|
|
18
18
|
removeBellHooks
|
|
19
|
-
} from "../chunk-
|
|
19
|
+
} from "../chunk-F35YILEN.js";
|
|
20
20
|
import {
|
|
21
21
|
parseFlags
|
|
22
22
|
} from "../chunk-NMUI3ZWG.js";
|
|
23
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-W3CBFLIX.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-PSCXEH42.js";
|
|
29
29
|
import {
|
|
30
30
|
claudeSettings
|
|
31
|
-
} from "../chunk-
|
|
32
|
-
import "../chunk-
|
|
31
|
+
} from "../chunk-6YSEOXP5.js";
|
|
32
|
+
import "../chunk-CFIQ3252.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-DFKEJARZ.js";
|
|
38
|
+
import "../chunk-FG5HMJ7C.js";
|
|
39
39
|
import "../chunk-QTOLNRET.js";
|
|
40
40
|
import {
|
|
41
41
|
isRecord
|
|
42
|
-
} from "../chunk-
|
|
42
|
+
} from "../chunk-FXECTHAG.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-RFCEVROB.js";
|
|
12
12
|
import "../chunk-VUFHYMSP.js";
|
|
13
13
|
import {
|
|
14
14
|
announceSubscriptionRequired,
|
|
15
15
|
isDeferAnswer
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-3IFCXMC6.js";
|
|
17
17
|
import {
|
|
18
18
|
claudeTranscriptPath,
|
|
19
19
|
loadSessionKey,
|
|
20
20
|
registerTranscript,
|
|
21
21
|
registeredTranscriptEnabled
|
|
22
|
-
} from "../chunk-
|
|
22
|
+
} from "../chunk-EUNSJKJJ.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-
|
|
26
|
+
} from "../chunk-5R23J52J.js";
|
|
27
|
+
import "../chunk-7NJ4TDUH.js";
|
|
28
|
+
import "../chunk-LCNN7UOE.js";
|
|
29
|
+
import "../chunk-MURJ4WAL.js";
|
|
30
|
+
import "../chunk-F35YILEN.js";
|
|
31
31
|
import "../chunk-NMUI3ZWG.js";
|
|
32
32
|
import {
|
|
33
33
|
encryptRecord
|
|
34
|
-
} from "../chunk-
|
|
35
|
-
import "../chunk-
|
|
34
|
+
} from "../chunk-7ETELRQX.js";
|
|
35
|
+
import "../chunk-UUAVYIWJ.js";
|
|
36
36
|
import {
|
|
37
37
|
transcriptsEnabled
|
|
38
|
-
} from "../chunk-
|
|
38
|
+
} from "../chunk-ZEDGKCCM.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-W3CBFLIX.js";
|
|
45
45
|
import {
|
|
46
46
|
DEFAULT_SESSION,
|
|
47
47
|
UNNAMED_ACTION,
|
|
@@ -58,46 +58,47 @@ import {
|
|
|
58
58
|
reportEvent,
|
|
59
59
|
savePendingCommand,
|
|
60
60
|
scopePathFor
|
|
61
|
-
} from "../chunk-
|
|
62
|
-
import "../chunk-
|
|
61
|
+
} from "../chunk-LWR5VKNC.js";
|
|
62
|
+
import "../chunk-LL2KHEJH.js";
|
|
63
63
|
import {
|
|
64
64
|
repoKeyFor
|
|
65
|
-
} from "../chunk-
|
|
65
|
+
} from "../chunk-4K6YZPZ3.js";
|
|
66
66
|
import {
|
|
67
67
|
askUser,
|
|
68
68
|
cancelQuestion,
|
|
69
69
|
isAwayPaused,
|
|
70
70
|
isDecisionStopped,
|
|
71
71
|
isLocalQuestionHandoff,
|
|
72
|
+
isQuestionLimitRefusal,
|
|
72
73
|
nextLongPollMs,
|
|
73
74
|
waitForAnswer,
|
|
74
75
|
waitsForThePhone,
|
|
75
76
|
withdrawQuestion
|
|
76
|
-
} from "../chunk-
|
|
77
|
+
} from "../chunk-RSNN2TPE.js";
|
|
77
78
|
import {
|
|
78
79
|
SubscriptionRequiredError
|
|
79
|
-
} from "../chunk-
|
|
80
|
+
} from "../chunk-ESXGCZDA.js";
|
|
80
81
|
import "../chunk-POFBE6ZY.js";
|
|
81
|
-
import "../chunk-
|
|
82
|
-
import "../chunk-
|
|
82
|
+
import "../chunk-Q4WTIKM6.js";
|
|
83
|
+
import "../chunk-HSRNWCXJ.js";
|
|
83
84
|
import {
|
|
84
85
|
getMachineId
|
|
85
|
-
} from "../chunk-
|
|
86
|
+
} from "../chunk-G3ZDCYMU.js";
|
|
86
87
|
import "../chunk-PPY5N2E6.js";
|
|
87
88
|
import "../chunk-KZERVKTD.js";
|
|
88
|
-
import "../chunk-
|
|
89
|
+
import "../chunk-PSCXEH42.js";
|
|
89
90
|
import {
|
|
90
91
|
claudeConfigDir
|
|
91
|
-
} from "../chunk-
|
|
92
|
-
import "../chunk-
|
|
92
|
+
} from "../chunk-6YSEOXP5.js";
|
|
93
|
+
import "../chunk-CFIQ3252.js";
|
|
93
94
|
import "../chunk-QENTGE75.js";
|
|
94
95
|
import {
|
|
95
96
|
getApiKey,
|
|
96
97
|
getBaseUrl
|
|
97
|
-
} from "../chunk-
|
|
98
|
+
} from "../chunk-DFKEJARZ.js";
|
|
98
99
|
import {
|
|
99
100
|
NPX_LATEST_COMMAND
|
|
100
|
-
} from "../chunk-
|
|
101
|
+
} from "../chunk-FG5HMJ7C.js";
|
|
101
102
|
import "../chunk-QTOLNRET.js";
|
|
102
103
|
import {
|
|
103
104
|
DECISION_STOP_REASON,
|
|
@@ -105,10 +106,13 @@ import {
|
|
|
105
106
|
KILL_REASON,
|
|
106
107
|
SESSION_PAUSED_REASON,
|
|
107
108
|
UNVERIFIABLE_APPROVAL_REASON,
|
|
109
|
+
questionLimitHandBack,
|
|
108
110
|
redactSecretsFromContent,
|
|
111
|
+
refusesWhenUnanswered,
|
|
109
112
|
resolveGate,
|
|
110
113
|
timeoutActionWithoutLocalPrompt
|
|
111
|
-
} from "../chunk-
|
|
114
|
+
} from "../chunk-FXECTHAG.js";
|
|
115
|
+
import "../chunk-MLKGABMK.js";
|
|
112
116
|
|
|
113
117
|
// src/wrapper/localPassthrough.ts
|
|
114
118
|
var SIGNAL_NUMBERS = {
|
|
@@ -450,6 +454,7 @@ var allow = (input) => ({
|
|
|
450
454
|
updatedInput: input
|
|
451
455
|
});
|
|
452
456
|
var deny = (message) => ({ behavior: "deny", message });
|
|
457
|
+
var resultOfHandBack = (handBack) => deny(handBack.kind === "refuse" ? handBack.reason : HAND_BACK_WITHOUT_A_PROMPT.reason);
|
|
453
458
|
var createRemoteApprover = (deps) => {
|
|
454
459
|
const fetchModeState2 = deps.fetchModeState ?? fetchModeState;
|
|
455
460
|
const getPolicy2 = deps.getPolicy ?? getPolicy;
|
|
@@ -548,6 +553,9 @@ var createRemoteApprover = (deps) => {
|
|
|
548
553
|
localSurfaceAvailable: false
|
|
549
554
|
});
|
|
550
555
|
} catch (error) {
|
|
556
|
+
if (isQuestionLimitRefusal(error)) {
|
|
557
|
+
return resultOfHandBack(questionLimitHandBack({ refusesUnanswered: refusesWhenUnanswered(policy), agentPromptFollows: false }));
|
|
558
|
+
}
|
|
551
559
|
if (!(error instanceof SubscriptionRequiredError)) return deny(UNVERIFIABLE_APPROVAL_REASON);
|
|
552
560
|
announceSubscriptionRequired(error.upgradeUrl, sessionId);
|
|
553
561
|
return deny(SUBSCRIPTION_REQUIRED_NO_LOCAL_APPROVAL_UI);
|
|
@@ -15,26 +15,26 @@ import {
|
|
|
15
15
|
storedMacAppState,
|
|
16
16
|
storedPusharyKeychainServices,
|
|
17
17
|
waitForMacAppExit
|
|
18
|
-
} from "../chunk-
|
|
18
|
+
} from "../chunk-SJCPIYWJ.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-UWCPY4RY.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-YQK72JGV.js";
|
|
32
|
+
import "../chunk-AFV3FQNG.js";
|
|
33
33
|
import {
|
|
34
34
|
isCursorPluginLeftover,
|
|
35
35
|
releaseSoleGate,
|
|
36
36
|
withoutPusharyCursorHooks
|
|
37
|
-
} from "../chunk-
|
|
37
|
+
} from "../chunk-3LBB7GVF.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-EA6574W2.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-QIPW7OVB.js";
|
|
54
54
|
import "../chunk-QCGNGEGE.js";
|
|
55
|
-
import "../chunk-
|
|
55
|
+
import "../chunk-NAZRRXZM.js";
|
|
56
56
|
import {
|
|
57
57
|
planFxRemoval,
|
|
58
58
|
removeInstructionBlock
|
|
59
|
-
} from "../chunk-
|
|
60
|
-
import "../chunk-
|
|
59
|
+
} from "../chunk-LILS32LF.js";
|
|
60
|
+
import "../chunk-EO6CL4PD.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-6HIYOY6I.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-OZRT64BB.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-557ZE5EX.js";
|
|
98
98
|
import {
|
|
99
99
|
disableDaemonService
|
|
100
|
-
} from "../chunk-
|
|
100
|
+
} from "../chunk-5R23J52J.js";
|
|
101
101
|
import {
|
|
102
102
|
hookOwnerOf,
|
|
103
103
|
isHookTakeoverReceipt,
|
|
@@ -105,12 +105,12 @@ import {
|
|
|
105
105
|
resolveBridgeStub,
|
|
106
106
|
restoreHookTakeover,
|
|
107
107
|
restoreMcpServer
|
|
108
|
-
} from "../chunk-
|
|
108
|
+
} from "../chunk-7NJ4TDUH.js";
|
|
109
109
|
import {
|
|
110
110
|
removeGeminiSettings
|
|
111
|
-
} from "../chunk-
|
|
112
|
-
import "../chunk-
|
|
113
|
-
import "../chunk-
|
|
111
|
+
} from "../chunk-LCNN7UOE.js";
|
|
112
|
+
import "../chunk-MURJ4WAL.js";
|
|
113
|
+
import "../chunk-F35YILEN.js";
|
|
114
114
|
import {
|
|
115
115
|
parseFlags
|
|
116
116
|
} from "../chunk-NMUI3ZWG.js";
|
|
@@ -121,22 +121,22 @@ import {
|
|
|
121
121
|
isDisabledExport,
|
|
122
122
|
removeClaudeAlias,
|
|
123
123
|
shellProfileCandidates
|
|
124
|
-
} from "../chunk-
|
|
124
|
+
} from "../chunk-W3CBFLIX.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-LWR5VKNC.js";
|
|
127
|
+
import "../chunk-LL2KHEJH.js";
|
|
128
|
+
import "../chunk-4K6YZPZ3.js";
|
|
129
|
+
import "../chunk-RSNN2TPE.js";
|
|
130
|
+
import "../chunk-ESXGCZDA.js";
|
|
131
131
|
import "../chunk-POFBE6ZY.js";
|
|
132
|
-
import "../chunk-
|
|
133
|
-
import "../chunk-
|
|
134
|
-
import "../chunk-
|
|
132
|
+
import "../chunk-Q4WTIKM6.js";
|
|
133
|
+
import "../chunk-HSRNWCXJ.js";
|
|
134
|
+
import "../chunk-G3ZDCYMU.js";
|
|
135
135
|
import "../chunk-PPY5N2E6.js";
|
|
136
136
|
import {
|
|
137
137
|
EXIT
|
|
138
138
|
} from "../chunk-KZERVKTD.js";
|
|
139
|
-
import "../chunk-
|
|
139
|
+
import "../chunk-PSCXEH42.js";
|
|
140
140
|
import {
|
|
141
141
|
claudeConfigDir,
|
|
142
142
|
claudeJson,
|
|
@@ -149,6 +149,7 @@ import {
|
|
|
149
149
|
codexConfigToml,
|
|
150
150
|
codexHookPositions,
|
|
151
151
|
codexHooksJson,
|
|
152
|
+
codexMcpMixesCommandWithHttp,
|
|
152
153
|
codexSkillDir,
|
|
153
154
|
cursorPluginDir,
|
|
154
155
|
cursorUserHooks,
|
|
@@ -170,21 +171,21 @@ import {
|
|
|
170
171
|
restoreCodexHookTrust,
|
|
171
172
|
vscodePluginDir,
|
|
172
173
|
vscodePluginMcp
|
|
173
|
-
} from "../chunk-
|
|
174
|
+
} from "../chunk-6YSEOXP5.js";
|
|
174
175
|
import {
|
|
175
176
|
cleanNpmEnv,
|
|
176
177
|
globalPackageState,
|
|
177
178
|
npmIsOnPath,
|
|
178
179
|
readGlobalFolder,
|
|
179
180
|
readGlobalPrefix
|
|
180
|
-
} from "../chunk-
|
|
181
|
+
} from "../chunk-CFIQ3252.js";
|
|
181
182
|
import "../chunk-QENTGE75.js";
|
|
182
183
|
import {
|
|
183
184
|
getBaseUrl
|
|
184
|
-
} from "../chunk-
|
|
185
|
+
} from "../chunk-DFKEJARZ.js";
|
|
185
186
|
import {
|
|
186
187
|
NPX_LATEST_COMMAND
|
|
187
|
-
} from "../chunk-
|
|
188
|
+
} from "../chunk-FG5HMJ7C.js";
|
|
188
189
|
import {
|
|
189
190
|
CLI_PACKAGE_NAMES,
|
|
190
191
|
globalPackageFolder,
|
|
@@ -198,7 +199,8 @@ import {
|
|
|
198
199
|
SUPPORT_EMAIL,
|
|
199
200
|
isValidApiKey,
|
|
200
201
|
redactSecrets
|
|
201
|
-
} from "../chunk-
|
|
202
|
+
} from "../chunk-FXECTHAG.js";
|
|
203
|
+
import "../chunk-MLKGABMK.js";
|
|
202
204
|
|
|
203
205
|
// bin/pushary-clean.ts
|
|
204
206
|
import { existsSync as existsSync5, readFileSync as readFileSync4, copyFileSync, readdirSync as readdirSync4 } from "fs";
|
|
@@ -980,7 +982,7 @@ var main = async () => {
|
|
|
980
982
|
const trustRemoved = hookOwnerOf(codexHooksData) === "app" && keepShared ? false : removeCodexHookTrust(parsed2, codexHooksJson2, codexPositions);
|
|
981
983
|
const hadPushary = config.includes("pushary");
|
|
982
984
|
if (hadPushary || trustRemoved) {
|
|
983
|
-
const macAppKeepsCodexMcp = macAppKeeps("codex", codexMcpKey(parsed2));
|
|
985
|
+
const macAppKeepsCodexMcp = !codexMcpMixesCommandWithHttp(parsed2.mcp_servers?.pushary) && macAppKeeps("codex", codexMcpKey(parsed2));
|
|
984
986
|
if (!macAppKeepsCodexMcp) {
|
|
985
987
|
const mcpServers = parsed2.mcp_servers ?? {};
|
|
986
988
|
delete mcpServers.pushary;
|
|
@@ -1,46 +1,47 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
runCodexBridge
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-SJJYXMJP.js";
|
|
5
|
+
import "../chunk-GFAG72LR.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveProviderBinary
|
|
8
|
-
} from "../chunk-
|
|
9
|
-
import "../chunk-
|
|
8
|
+
} from "../chunk-TMHE5CVX.js";
|
|
9
|
+
import "../chunk-R3CLBNST.js";
|
|
10
10
|
import {
|
|
11
11
|
withSpawnProcessOwnership
|
|
12
|
-
} from "../chunk-
|
|
12
|
+
} from "../chunk-RFCEVROB.js";
|
|
13
13
|
import "../chunk-VUFHYMSP.js";
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-7ETELRQX.js";
|
|
15
|
+
import "../chunk-UUAVYIWJ.js";
|
|
16
16
|
import {
|
|
17
17
|
transcriptsEnabled
|
|
18
|
-
} from "../chunk-
|
|
18
|
+
} from "../chunk-ZEDGKCCM.js";
|
|
19
19
|
import "../chunk-XHKBHWLX.js";
|
|
20
20
|
import "../chunk-6ICPEJY5.js";
|
|
21
|
-
import "../chunk-
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-W3CBFLIX.js";
|
|
22
|
+
import "../chunk-4K6YZPZ3.js";
|
|
23
|
+
import "../chunk-RSNN2TPE.js";
|
|
24
|
+
import "../chunk-ESXGCZDA.js";
|
|
25
25
|
import "../chunk-POFBE6ZY.js";
|
|
26
|
-
import "../chunk-
|
|
27
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-Q4WTIKM6.js";
|
|
27
|
+
import "../chunk-HSRNWCXJ.js";
|
|
28
28
|
import {
|
|
29
29
|
getMachineId
|
|
30
|
-
} from "../chunk-
|
|
30
|
+
} from "../chunk-G3ZDCYMU.js";
|
|
31
31
|
import "../chunk-PPY5N2E6.js";
|
|
32
32
|
import "../chunk-KZERVKTD.js";
|
|
33
|
-
import "../chunk-
|
|
34
|
-
import "../chunk-
|
|
35
|
-
import "../chunk-
|
|
33
|
+
import "../chunk-PSCXEH42.js";
|
|
34
|
+
import "../chunk-6YSEOXP5.js";
|
|
35
|
+
import "../chunk-CFIQ3252.js";
|
|
36
36
|
import "../chunk-QENTGE75.js";
|
|
37
37
|
import {
|
|
38
38
|
getApiKey,
|
|
39
39
|
getBaseUrl
|
|
40
|
-
} from "../chunk-
|
|
41
|
-
import "../chunk-
|
|
40
|
+
} from "../chunk-DFKEJARZ.js";
|
|
41
|
+
import "../chunk-FG5HMJ7C.js";
|
|
42
42
|
import "../chunk-QTOLNRET.js";
|
|
43
|
-
import "../chunk-
|
|
43
|
+
import "../chunk-FXECTHAG.js";
|
|
44
|
+
import "../chunk-MLKGABMK.js";
|
|
44
45
|
|
|
45
46
|
// bin/pushary-codex-bridge.ts
|
|
46
47
|
import { existsSync } from "fs";
|