@pushary/agent-hooks 1.5.0 → 1.5.1
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 +10 -0
- package/README.md +2 -1
- package/dist/bin/pushary-bell-hook.js +9 -9
- package/dist/bin/pushary-bell.js +2 -2
- package/dist/bin/pushary-claude.js +10 -10
- package/dist/bin/pushary-clean.js +12 -12
- package/dist/bin/pushary-codex-bridge.js +4 -4
- package/dist/bin/pushary-codex-hook.js +13 -13
- package/dist/bin/pushary-codex.js +3 -3
- package/dist/bin/pushary-daemon.js +15 -14
- package/dist/bin/pushary-disconnect.js +6 -6
- package/dist/bin/pushary-doctor.js +43 -15
- package/dist/bin/pushary-elicitation-hook.js +9 -9
- package/dist/bin/pushary-gemini-bridge.js +3 -3
- package/dist/bin/pushary-gemini-hook.js +11 -11
- package/dist/bin/pushary-hook.js +14 -14
- package/dist/bin/pushary-login.js +3 -3
- package/dist/bin/pushary-logout.js +1 -1
- package/dist/bin/pushary-notification-hook.js +12 -12
- package/dist/bin/pushary-opencode-hook.js +10 -10
- package/dist/bin/pushary-permission-denied-hook.js +14 -14
- package/dist/bin/pushary-permission-hook.js +14 -14
- package/dist/bin/pushary-post-hook.js +12 -12
- package/dist/bin/pushary-prompt-hook.js +12 -12
- package/dist/bin/pushary-session-end-hook.js +12 -12
- package/dist/bin/pushary-session-start-hook.js +16 -15
- package/dist/bin/pushary-setup.js +52 -51
- package/dist/bin/pushary-status.js +5 -5
- package/dist/bin/pushary-stop-hook.js +12 -12
- package/dist/bin/pushary-stopfailure-hook.js +12 -12
- package/dist/bin/pushary-transcript-register.js +8 -8
- package/dist/bin/pushary-upgrade.js +57 -27
- package/dist/{chunk-EADZPVYW.js → chunk-2AUIEZYS.js} +1 -1
- package/dist/{chunk-J4J45VPZ.js → chunk-4ERLRNOK.js} +2 -2
- package/dist/{chunk-SOCEY746.js → chunk-5UQ5ATIE.js} +1 -1
- package/dist/{chunk-KEOLNHR3.js → chunk-5ZZG76S2.js} +1 -1
- package/dist/chunk-6EEANS74.js +300 -0
- package/dist/{chunk-DYHXOXUF.js → chunk-6IU45EHE.js} +6 -20
- package/dist/{chunk-ORLJNJEO.js → chunk-6QFEQIPM.js} +1 -1
- package/dist/chunk-BY2CRWBO.js +38 -0
- package/dist/{chunk-FDHMNT24.js → chunk-D573TLP6.js} +1 -1
- package/dist/{chunk-3NBODGQS.js → chunk-HUAOMX4U.js} +1 -1
- package/dist/{chunk-F57RGL7K.js → chunk-IV3RHICU.js} +3 -3
- package/dist/{chunk-PNNBMH4E.js → chunk-JKBDGZFL.js} +12 -6
- package/dist/{chunk-DLJN5XEU.js → chunk-KHXVTWYS.js} +1 -1
- package/dist/{chunk-MYP4UUFH.js → chunk-M2LMXPJZ.js} +1 -1
- package/dist/{chunk-CQYHOHOK.js → chunk-MDJJW3LP.js} +2 -2
- package/dist/{chunk-OSSDK5RS.js → chunk-MU3WU2FO.js} +6 -2
- package/dist/{chunk-IYTQ4B5I.js → chunk-PJ27EHCD.js} +4 -4
- package/dist/{chunk-JF736N4C.js → chunk-R5KY3PBN.js} +4 -4
- package/dist/{chunk-NFKVRMTM.js → chunk-TZGCUNOX.js} +3 -3
- package/dist/{chunk-PCGZXWGQ.js → chunk-WNJSGZY7.js} +2 -2
- package/dist/{chunk-UQHUUZ5H.js → chunk-WOLPADR6.js} +1 -1
- package/dist/{chunk-7XT76LWT.js → chunk-X7FESZTD.js} +2 -2
- package/dist/{chunk-H5LHTC5X.js → chunk-YAWXKL2X.js} +1 -1
- package/dist/{chunk-NTQSICPJ.js → chunk-Z4VGIBJ7.js} +2 -2
- package/dist/{reapply-D2TFN6XK.js → reapply-5CZSTJZI.js} +10 -6
- package/dist/src/index.js +8 -8
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.5.1
|
|
4
|
+
|
|
5
|
+
- Setup no longer stops at a Codex version. It writes the Pushary hooks, asks Codex to trust them, and checks Codex's answer. It used to trust the hooks itself only up to Codex 0.155.1, and on anything newer told you to open Codex and trust them by hand.
|
|
6
|
+
- Pushary asks Codex only when you run setup, upgrade or doctor yourself at a terminal, only through the `codex` command on your PATH, and only if Codex has been opened on this machine before. It never starts the Codex inside the ChatGPT app, and never while a hook is running.
|
|
7
|
+
- If Codex does not accept the trust, setup says so and tells you to open Codex, run `/hooks`, and choose Trust for the Pushary hooks. When Codex is not asked, setup says why in one line and keeps the trust entries it wrote itself, as it did before.
|
|
8
|
+
- `pushary upgrade` asks Codex the same way after it refreshes the Codex hooks. The daily automatic update refreshes the hooks and writes the same trust entries but does not start Codex, so an install left untrusted by the old version limit is fixed on its next update either way. Machines older than 1.5.0 do not update themselves: run `npx @pushary/agent-hooks@latest upgrade` once.
|
|
9
|
+
- `pushary doctor` shows what Codex itself reports for each Pushary hook: trusted, untrusted, modified, not listed, or turned off. When Codex is not asked or cannot be asked, doctor says so and uses its own check instead.
|
|
10
|
+
- Pause automatic updates on Linux to preserve phone-started sessions during daemon replacement.
|
|
11
|
+
- Retry incomplete configuration and daemon refreshes after an automatic installation, including when the installed version is already current.
|
|
12
|
+
|
|
3
13
|
## 1.5.0
|
|
4
14
|
|
|
5
15
|
- Pushary now updates itself in the background. When an agent session starts, it checks at most once a day for a newer version within the same major version, installs it into the global npm folder your hooks already run from, and refreshes each agent's config the way `pushary upgrade` does. The session never waits for it. A new major version is shown in `pushary doctor` and left for you to install.
|
package/README.md
CHANGED
|
@@ -258,7 +258,8 @@ The session does not wait for it, and the new version runs from the next hook ca
|
|
|
258
258
|
app updates by its own route.
|
|
259
259
|
- It never uses `sudo`. If npm cannot write to the global folder, the attempt is
|
|
260
260
|
recorded as failed and nothing changes.
|
|
261
|
-
- It does not run on Windows yet, or when `CI` is set.
|
|
261
|
+
- It does not run on Windows yet, or when `CI` is set. Linux automatic updates are paused because restarting the systemd daemon can terminate phone-started sessions. On Linux, finish running sessions before upgrading manually.
|
|
262
|
+
- If installation succeeds but configuration refresh fails, the next automatic check or manual upgrade retries the refresh before checking for another release.
|
|
262
263
|
|
|
263
264
|
Turn it off with either of these:
|
|
264
265
|
|
|
@@ -4,23 +4,23 @@ import {
|
|
|
4
4
|
} from "../chunk-DTQNDR7C.js";
|
|
5
5
|
import {
|
|
6
6
|
readHookInput
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-6QFEQIPM.js";
|
|
8
|
+
import "../chunk-TZGCUNOX.js";
|
|
9
9
|
import "../chunk-SGZJ5LYH.js";
|
|
10
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-WNJSGZY7.js";
|
|
11
11
|
import "../chunk-TFKBFQCE.js";
|
|
12
12
|
import "../chunk-K3QVDAZW.js";
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-Z4VGIBJ7.js";
|
|
14
|
+
import "../chunk-X7FESZTD.js";
|
|
15
|
+
import "../chunk-2AUIEZYS.js";
|
|
16
|
+
import "../chunk-5UQ5ATIE.js";
|
|
17
17
|
import "../chunk-TIWURSLS.js";
|
|
18
18
|
import "../chunk-66H2QQAK.js";
|
|
19
19
|
import "../chunk-2QT3GCU4.js";
|
|
20
20
|
import "../chunk-XHKBHWLX.js";
|
|
21
21
|
import "../chunk-UYDTFCHW.js";
|
|
22
|
-
import "../chunk-
|
|
23
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-WOLPADR6.js";
|
|
23
|
+
import "../chunk-6IU45EHE.js";
|
|
24
24
|
import "../chunk-GMXKITVA.js";
|
|
25
25
|
import "../chunk-USQDVBEV.js";
|
|
26
26
|
import "../chunk-7QLSKOSU.js";
|
package/dist/bin/pushary-bell.js
CHANGED
|
@@ -10,10 +10,10 @@ import {
|
|
|
10
10
|
addBellHooks,
|
|
11
11
|
bellInstalled,
|
|
12
12
|
removeBellHooks
|
|
13
|
-
} from "../chunk-
|
|
13
|
+
} from "../chunk-5UQ5ATIE.js";
|
|
14
14
|
import {
|
|
15
15
|
claudeSettings
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-6IU45EHE.js";
|
|
17
17
|
import {
|
|
18
18
|
createIo
|
|
19
19
|
} from "../chunk-5RUIFDTP.js";
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
describeIdleWindow,
|
|
9
9
|
startProcessOwnership,
|
|
10
10
|
withSpawnProcessOwnership
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-M2LMXPJZ.js";
|
|
12
12
|
import {
|
|
13
13
|
isDeferAnswer
|
|
14
14
|
} from "../chunk-YHG74UFF.js";
|
|
@@ -17,17 +17,17 @@ import {
|
|
|
17
17
|
loadSessionKey,
|
|
18
18
|
registerTranscript,
|
|
19
19
|
registeredTranscriptEnabled
|
|
20
|
-
} from "../chunk-
|
|
20
|
+
} from "../chunk-TZGCUNOX.js";
|
|
21
21
|
import "../chunk-SGZJ5LYH.js";
|
|
22
|
-
import "../chunk-
|
|
22
|
+
import "../chunk-WNJSGZY7.js";
|
|
23
23
|
import "../chunk-TFKBFQCE.js";
|
|
24
24
|
import "../chunk-K3QVDAZW.js";
|
|
25
|
-
import "../chunk-
|
|
25
|
+
import "../chunk-Z4VGIBJ7.js";
|
|
26
26
|
import {
|
|
27
27
|
ensureDaemonRunning
|
|
28
|
-
} from "../chunk-
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
28
|
+
} from "../chunk-X7FESZTD.js";
|
|
29
|
+
import "../chunk-2AUIEZYS.js";
|
|
30
|
+
import "../chunk-5UQ5ATIE.js";
|
|
31
31
|
import {
|
|
32
32
|
encryptRecord
|
|
33
33
|
} from "../chunk-TIWURSLS.js";
|
|
@@ -56,7 +56,7 @@ import {
|
|
|
56
56
|
reportEvent,
|
|
57
57
|
savePendingCommand,
|
|
58
58
|
scopePathFor
|
|
59
|
-
} from "../chunk-
|
|
59
|
+
} from "../chunk-D573TLP6.js";
|
|
60
60
|
import "../chunk-UYDTFCHW.js";
|
|
61
61
|
import {
|
|
62
62
|
DECISION_STOP_REASON,
|
|
@@ -70,8 +70,8 @@ import {
|
|
|
70
70
|
} from "../chunk-PYCQXCI5.js";
|
|
71
71
|
import {
|
|
72
72
|
getMachineId
|
|
73
|
-
} from "../chunk-
|
|
74
|
-
import "../chunk-
|
|
73
|
+
} from "../chunk-WOLPADR6.js";
|
|
74
|
+
import "../chunk-6IU45EHE.js";
|
|
75
75
|
import "../chunk-GMXKITVA.js";
|
|
76
76
|
import "../chunk-USQDVBEV.js";
|
|
77
77
|
import "../chunk-HETOKNIL.js";
|
|
@@ -7,14 +7,14 @@ import {
|
|
|
7
7
|
createGuards,
|
|
8
8
|
resolveHermesPython,
|
|
9
9
|
runHermesPythonScript
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-YAWXKL2X.js";
|
|
11
11
|
import "../chunk-P32LPT2L.js";
|
|
12
12
|
import {
|
|
13
13
|
removeInstructionBlock,
|
|
14
14
|
shortenHome,
|
|
15
15
|
unregisterPluginLocation,
|
|
16
16
|
vscodeSettingsTargets
|
|
17
|
-
} from "../chunk-
|
|
17
|
+
} from "../chunk-KHXVTWYS.js";
|
|
18
18
|
import {
|
|
19
19
|
OPENCODE_PLUGIN_SIBLING,
|
|
20
20
|
OPENCODE_PLUGIN_SIBLING_CONTENTS,
|
|
@@ -32,20 +32,20 @@ import {
|
|
|
32
32
|
compatiblePermissionRuleFile,
|
|
33
33
|
removeCompatibleHooks,
|
|
34
34
|
removeCompatibleMcpServer
|
|
35
|
-
} from "../chunk-
|
|
35
|
+
} from "../chunk-R5KY3PBN.js";
|
|
36
36
|
import {
|
|
37
37
|
isClaudeMcpSnapshot,
|
|
38
38
|
removeClaudeMcpServers,
|
|
39
39
|
removePusharySettings,
|
|
40
40
|
removePusharyToolPermissions,
|
|
41
41
|
restoreClaudeMcpServer
|
|
42
|
-
} from "../chunk-
|
|
42
|
+
} from "../chunk-4ERLRNOK.js";
|
|
43
43
|
import {
|
|
44
44
|
hookOwnerOf,
|
|
45
45
|
isHookTakeoverReceipt,
|
|
46
46
|
restoreHookTakeover,
|
|
47
47
|
restoreMcpServer
|
|
48
|
-
} from "../chunk-
|
|
48
|
+
} from "../chunk-WNJSGZY7.js";
|
|
49
49
|
import "../chunk-TFKBFQCE.js";
|
|
50
50
|
import {
|
|
51
51
|
liveBridgeProbe,
|
|
@@ -53,19 +53,19 @@ import {
|
|
|
53
53
|
} from "../chunk-K3QVDAZW.js";
|
|
54
54
|
import {
|
|
55
55
|
pusharyHookExecutable
|
|
56
|
-
} from "../chunk-
|
|
56
|
+
} from "../chunk-Z4VGIBJ7.js";
|
|
57
57
|
import {
|
|
58
58
|
disableDaemonService
|
|
59
|
-
} from "../chunk-
|
|
59
|
+
} from "../chunk-X7FESZTD.js";
|
|
60
60
|
import {
|
|
61
61
|
removeGeminiSettings
|
|
62
|
-
} from "../chunk-
|
|
63
|
-
import "../chunk-
|
|
62
|
+
} from "../chunk-2AUIEZYS.js";
|
|
63
|
+
import "../chunk-5UQ5ATIE.js";
|
|
64
64
|
import "../chunk-XHKBHWLX.js";
|
|
65
|
-
import "../chunk-
|
|
65
|
+
import "../chunk-D573TLP6.js";
|
|
66
66
|
import "../chunk-UYDTFCHW.js";
|
|
67
67
|
import "../chunk-PYCQXCI5.js";
|
|
68
|
-
import "../chunk-
|
|
68
|
+
import "../chunk-WOLPADR6.js";
|
|
69
69
|
import {
|
|
70
70
|
bridgeAgentKey,
|
|
71
71
|
claudeJson,
|
|
@@ -94,7 +94,7 @@ import {
|
|
|
94
94
|
restoreCodexHookTrust,
|
|
95
95
|
vscodePluginDir,
|
|
96
96
|
vscodePluginMcp
|
|
97
|
-
} from "../chunk-
|
|
97
|
+
} from "../chunk-6IU45EHE.js";
|
|
98
98
|
import {
|
|
99
99
|
exitOnHelpFlag
|
|
100
100
|
} from "../chunk-P4BNYJ5Q.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import "../chunk-
|
|
2
|
+
import "../chunk-5ZZG76S2.js";
|
|
3
3
|
import {
|
|
4
4
|
LiveTranscriptRelay,
|
|
5
5
|
liveSessionSleep,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
idleDeadlinePassed,
|
|
14
14
|
startProcessOwnership,
|
|
15
15
|
withSpawnProcessOwnership
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-M2LMXPJZ.js";
|
|
17
17
|
import "../chunk-TIWURSLS.js";
|
|
18
18
|
import "../chunk-66H2QQAK.js";
|
|
19
19
|
import {
|
|
@@ -28,10 +28,10 @@ import {
|
|
|
28
28
|
} from "../chunk-PYCQXCI5.js";
|
|
29
29
|
import {
|
|
30
30
|
getMachineId
|
|
31
|
-
} from "../chunk-
|
|
31
|
+
} from "../chunk-WOLPADR6.js";
|
|
32
32
|
import {
|
|
33
33
|
resolveBinary
|
|
34
|
-
} from "../chunk-
|
|
34
|
+
} from "../chunk-6IU45EHE.js";
|
|
35
35
|
import "../chunk-USQDVBEV.js";
|
|
36
36
|
import {
|
|
37
37
|
callMcpTool
|
|
@@ -13,30 +13,30 @@ import {
|
|
|
13
13
|
recordCodexCallDecision,
|
|
14
14
|
reportMachineDenial,
|
|
15
15
|
userScope
|
|
16
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-MDJJW3LP.js";
|
|
17
17
|
import {
|
|
18
18
|
triggerAutoUpdate
|
|
19
|
-
} from "../chunk-
|
|
19
|
+
} from "../chunk-MU3WU2FO.js";
|
|
20
20
|
import {
|
|
21
21
|
isGatingMoment,
|
|
22
22
|
recordKeylessMoment
|
|
23
23
|
} from "../chunk-43ZDACBO.js";
|
|
24
24
|
import {
|
|
25
25
|
readHookInput
|
|
26
|
-
} from "../chunk-
|
|
26
|
+
} from "../chunk-6QFEQIPM.js";
|
|
27
27
|
import {
|
|
28
28
|
denyReasonFrom,
|
|
29
29
|
isDeferAnswer
|
|
30
30
|
} from "../chunk-YHG74UFF.js";
|
|
31
|
-
import "../chunk-
|
|
31
|
+
import "../chunk-TZGCUNOX.js";
|
|
32
32
|
import "../chunk-SGZJ5LYH.js";
|
|
33
|
-
import "../chunk-
|
|
33
|
+
import "../chunk-WNJSGZY7.js";
|
|
34
34
|
import "../chunk-TFKBFQCE.js";
|
|
35
35
|
import "../chunk-K3QVDAZW.js";
|
|
36
|
-
import "../chunk-
|
|
37
|
-
import "../chunk-
|
|
38
|
-
import "../chunk-
|
|
39
|
-
import "../chunk-
|
|
36
|
+
import "../chunk-Z4VGIBJ7.js";
|
|
37
|
+
import "../chunk-X7FESZTD.js";
|
|
38
|
+
import "../chunk-2AUIEZYS.js";
|
|
39
|
+
import "../chunk-5UQ5ATIE.js";
|
|
40
40
|
import "../chunk-TIWURSLS.js";
|
|
41
41
|
import "../chunk-66H2QQAK.js";
|
|
42
42
|
import "../chunk-2QT3GCU4.js";
|
|
@@ -76,7 +76,7 @@ import {
|
|
|
76
76
|
toCodexWire,
|
|
77
77
|
toPolicyLookup,
|
|
78
78
|
toPolicyLookups
|
|
79
|
-
} from "../chunk-
|
|
79
|
+
} from "../chunk-D573TLP6.js";
|
|
80
80
|
import "../chunk-UYDTFCHW.js";
|
|
81
81
|
import {
|
|
82
82
|
DECISION_STOP_REASON,
|
|
@@ -92,10 +92,10 @@ import {
|
|
|
92
92
|
} from "../chunk-PYCQXCI5.js";
|
|
93
93
|
import {
|
|
94
94
|
getMachineId
|
|
95
|
-
} from "../chunk-
|
|
95
|
+
} from "../chunk-WOLPADR6.js";
|
|
96
96
|
import {
|
|
97
97
|
canonicalJson
|
|
98
|
-
} from "../chunk-
|
|
98
|
+
} from "../chunk-6IU45EHE.js";
|
|
99
99
|
import "../chunk-GMXKITVA.js";
|
|
100
100
|
import "../chunk-USQDVBEV.js";
|
|
101
101
|
import "../chunk-HETOKNIL.js";
|
|
@@ -745,7 +745,7 @@ var decidePreToolUse = async (input) => {
|
|
|
745
745
|
};
|
|
746
746
|
var repairCodexHoldsQuietly = async () => {
|
|
747
747
|
try {
|
|
748
|
-
const { repairCodexHolds } = await import("../reapply-
|
|
748
|
+
const { repairCodexHolds } = await import("../reapply-5CZSTJZI.js");
|
|
749
749
|
repairCodexHolds();
|
|
750
750
|
} catch {
|
|
751
751
|
return;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
reportEvent
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-D573TLP6.js";
|
|
5
5
|
import "../chunk-UYDTFCHW.js";
|
|
6
6
|
import {
|
|
7
7
|
askUser,
|
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
} from "../chunk-PYCQXCI5.js";
|
|
11
11
|
import {
|
|
12
12
|
getMachineId
|
|
13
|
-
} from "../chunk-
|
|
14
|
-
import "../chunk-
|
|
13
|
+
} from "../chunk-WOLPADR6.js";
|
|
14
|
+
import "../chunk-6IU45EHE.js";
|
|
15
15
|
import "../chunk-HETOKNIL.js";
|
|
16
16
|
import "../chunk-SAF6HGAA.js";
|
|
17
17
|
import "../chunk-7QLSKOSU.js";
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
inspectConfiguredManagedProviders
|
|
4
|
-
} from "../chunk-
|
|
5
|
-
import "../chunk-
|
|
4
|
+
} from "../chunk-JKBDGZFL.js";
|
|
5
|
+
import "../chunk-HUAOMX4U.js";
|
|
6
|
+
import "../chunk-6EEANS74.js";
|
|
6
7
|
import {
|
|
7
8
|
HEARTBEAT_INTERVAL_MS,
|
|
8
9
|
sendHeartbeat
|
|
9
|
-
} from "../chunk-
|
|
10
|
-
import "../chunk-
|
|
10
|
+
} from "../chunk-IV3RHICU.js";
|
|
11
|
+
import "../chunk-4ERLRNOK.js";
|
|
11
12
|
import {
|
|
12
13
|
detectProviderLiveCapabilities,
|
|
13
14
|
hasSpawnProvider,
|
|
14
15
|
resolveControlPolicy
|
|
15
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-5ZZG76S2.js";
|
|
16
17
|
import {
|
|
17
18
|
SESSION_REAP_SILENCE_MS,
|
|
18
19
|
describeIdleWindow,
|
|
@@ -20,15 +21,15 @@ import {
|
|
|
20
21
|
listProcessProofs,
|
|
21
22
|
ownsLiveProcess,
|
|
22
23
|
silentSpawnedProofs
|
|
23
|
-
} from "../chunk-
|
|
24
|
+
} from "../chunk-M2LMXPJZ.js";
|
|
24
25
|
import {
|
|
25
26
|
startRegisteredTranscripts
|
|
26
|
-
} from "../chunk-
|
|
27
|
+
} from "../chunk-TZGCUNOX.js";
|
|
27
28
|
import "../chunk-SGZJ5LYH.js";
|
|
28
|
-
import "../chunk-
|
|
29
|
+
import "../chunk-WNJSGZY7.js";
|
|
29
30
|
import "../chunk-TFKBFQCE.js";
|
|
30
31
|
import "../chunk-K3QVDAZW.js";
|
|
31
|
-
import "../chunk-
|
|
32
|
+
import "../chunk-Z4VGIBJ7.js";
|
|
32
33
|
import {
|
|
33
34
|
DAEMON_LEASE_RENEW_INTERVAL_MS,
|
|
34
35
|
acquireDaemonLease,
|
|
@@ -45,9 +46,9 @@ import {
|
|
|
45
46
|
requestDaemonHandoff,
|
|
46
47
|
stopDaemonRunning,
|
|
47
48
|
writeDaemonNeedsLogin
|
|
48
|
-
} from "../chunk-
|
|
49
|
-
import "../chunk-
|
|
50
|
-
import "../chunk-
|
|
49
|
+
} from "../chunk-X7FESZTD.js";
|
|
50
|
+
import "../chunk-2AUIEZYS.js";
|
|
51
|
+
import "../chunk-5UQ5ATIE.js";
|
|
51
52
|
import "../chunk-TIWURSLS.js";
|
|
52
53
|
import "../chunk-66H2QQAK.js";
|
|
53
54
|
import "../chunk-2QT3GCU4.js";
|
|
@@ -57,10 +58,10 @@ import {
|
|
|
57
58
|
import "../chunk-UYDTFCHW.js";
|
|
58
59
|
import {
|
|
59
60
|
getMachineId
|
|
60
|
-
} from "../chunk-
|
|
61
|
+
} from "../chunk-WOLPADR6.js";
|
|
61
62
|
import {
|
|
62
63
|
resolveBinary
|
|
63
|
-
} from "../chunk-
|
|
64
|
+
} from "../chunk-6IU45EHE.js";
|
|
64
65
|
import {
|
|
65
66
|
writeHuman
|
|
66
67
|
} from "../chunk-QCGNGEGE.js";
|
|
@@ -15,21 +15,21 @@ import {
|
|
|
15
15
|
compatiblePermissionRuleFile,
|
|
16
16
|
removeCompatibleHooks,
|
|
17
17
|
removeCompatibleMcpServer
|
|
18
|
-
} from "../chunk-
|
|
18
|
+
} from "../chunk-R5KY3PBN.js";
|
|
19
19
|
import {
|
|
20
20
|
isClaudeMcpSnapshot,
|
|
21
21
|
removeClaudeMcpServers,
|
|
22
22
|
removePusharySettings,
|
|
23
23
|
removePusharyToolPermissions,
|
|
24
24
|
restoreClaudeMcpServer
|
|
25
|
-
} from "../chunk-
|
|
25
|
+
} from "../chunk-4ERLRNOK.js";
|
|
26
26
|
import {
|
|
27
27
|
removeGeminiSettings
|
|
28
|
-
} from "../chunk-
|
|
29
|
-
import "../chunk-
|
|
28
|
+
} from "../chunk-2AUIEZYS.js";
|
|
29
|
+
import "../chunk-D573TLP6.js";
|
|
30
30
|
import "../chunk-UYDTFCHW.js";
|
|
31
31
|
import "../chunk-PYCQXCI5.js";
|
|
32
|
-
import "../chunk-
|
|
32
|
+
import "../chunk-WOLPADR6.js";
|
|
33
33
|
import {
|
|
34
34
|
claudeJson,
|
|
35
35
|
claudeMcpReceipt,
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
geminiSettings,
|
|
44
44
|
removeCodexHooks,
|
|
45
45
|
removeCodexSettings
|
|
46
|
-
} from "../chunk-
|
|
46
|
+
} from "../chunk-6IU45EHE.js";
|
|
47
47
|
import {
|
|
48
48
|
exitOnHelpFlag
|
|
49
49
|
} from "../chunk-P4BNYJ5Q.js";
|
|
@@ -6,10 +6,14 @@ import {
|
|
|
6
6
|
readServiceExecPath,
|
|
7
7
|
versionManagerOf
|
|
8
8
|
} from "../chunk-GU3EJCVV.js";
|
|
9
|
+
import {
|
|
10
|
+
assessCodexHookTrust,
|
|
11
|
+
readCodexTrustForPusharyHooks
|
|
12
|
+
} from "../chunk-6EEANS74.js";
|
|
9
13
|
import {
|
|
10
14
|
readMachineReadiness,
|
|
11
15
|
readManagedControlEvidence
|
|
12
|
-
} from "../chunk-
|
|
16
|
+
} from "../chunk-IV3RHICU.js";
|
|
13
17
|
import {
|
|
14
18
|
CURSOR_GATE_SCRIPT
|
|
15
19
|
} from "../chunk-P32LPT2L.js";
|
|
@@ -22,7 +26,7 @@ import {
|
|
|
22
26
|
isPluginRegistered,
|
|
23
27
|
shortenHome,
|
|
24
28
|
vscodeSettingsTargets
|
|
25
|
-
} from "../chunk-
|
|
29
|
+
} from "../chunk-KHXVTWYS.js";
|
|
26
30
|
import {
|
|
27
31
|
OPENCODE_PLUGIN_PLACEHOLDER,
|
|
28
32
|
openCodePluginDir,
|
|
@@ -35,13 +39,13 @@ import {
|
|
|
35
39
|
compatibleMcpFile,
|
|
36
40
|
hasCompatibleHooks,
|
|
37
41
|
missingCompatibleHookEvents
|
|
38
|
-
} from "../chunk-
|
|
39
|
-
import "../chunk-
|
|
42
|
+
} from "../chunk-R5KY3PBN.js";
|
|
43
|
+
import "../chunk-4ERLRNOK.js";
|
|
40
44
|
import {
|
|
41
45
|
detectProviderLiveCapabilities,
|
|
42
46
|
hasSpawnProvider,
|
|
43
47
|
resolveControlPolicy
|
|
44
|
-
} from "../chunk-
|
|
48
|
+
} from "../chunk-5ZZG76S2.js";
|
|
45
49
|
import {
|
|
46
50
|
AUTO_UPDATE_DISABLE_ENV,
|
|
47
51
|
autoUpdateOffReason,
|
|
@@ -49,7 +53,7 @@ import {
|
|
|
49
53
|
describeAutoUpdateCheck,
|
|
50
54
|
readAutoUpdateState,
|
|
51
55
|
takeAutoUpdateAnnouncement
|
|
52
|
-
} from "../chunk-
|
|
56
|
+
} from "../chunk-MU3WU2FO.js";
|
|
53
57
|
import {
|
|
54
58
|
readLedgerSummary
|
|
55
59
|
} from "../chunk-43ZDACBO.js";
|
|
@@ -75,7 +79,7 @@ import {
|
|
|
75
79
|
geminiWired,
|
|
76
80
|
holdsLong,
|
|
77
81
|
pusharyHookExecutable
|
|
78
|
-
} from "../chunk-
|
|
82
|
+
} from "../chunk-Z4VGIBJ7.js";
|
|
79
83
|
import {
|
|
80
84
|
daemonHasRemoteProof,
|
|
81
85
|
daemonServiceManagerAvailable,
|
|
@@ -84,19 +88,19 @@ import {
|
|
|
84
88
|
readDaemonNeedsLogin,
|
|
85
89
|
readDaemonStatus,
|
|
86
90
|
readInstalledDaemonService
|
|
87
|
-
} from "../chunk-
|
|
91
|
+
} from "../chunk-X7FESZTD.js";
|
|
88
92
|
import {
|
|
89
93
|
GEMINI_HOOK_BINARY,
|
|
90
94
|
hasGeminiHooks,
|
|
91
95
|
missingGeminiHookEvents
|
|
92
|
-
} from "../chunk-
|
|
96
|
+
} from "../chunk-2AUIEZYS.js";
|
|
93
97
|
import "../chunk-XHKBHWLX.js";
|
|
94
|
-
import "../chunk-
|
|
98
|
+
import "../chunk-D573TLP6.js";
|
|
95
99
|
import "../chunk-UYDTFCHW.js";
|
|
96
100
|
import "../chunk-PYCQXCI5.js";
|
|
97
101
|
import {
|
|
98
102
|
getMachineId
|
|
99
|
-
} from "../chunk-
|
|
103
|
+
} from "../chunk-WOLPADR6.js";
|
|
100
104
|
import {
|
|
101
105
|
CODEX_HOOK_EVENTS,
|
|
102
106
|
autoUpdateState,
|
|
@@ -121,7 +125,7 @@ import {
|
|
|
121
125
|
pusharyConfigFile,
|
|
122
126
|
readCodexMcpAuth,
|
|
123
127
|
vscodePluginDir
|
|
124
|
-
} from "../chunk-
|
|
128
|
+
} from "../chunk-6IU45EHE.js";
|
|
125
129
|
import {
|
|
126
130
|
describeReach,
|
|
127
131
|
describeRoundTrip,
|
|
@@ -201,7 +205,8 @@ var AUTO_UPDATE_OFF = {
|
|
|
201
205
|
disabled_by_env: `off: ${AUTO_UPDATE_DISABLE_ENV} is set`,
|
|
202
206
|
disabled_by_user: "off: turn it back on with pushary upgrade --auto=on",
|
|
203
207
|
ci: "off in CI",
|
|
204
|
-
windows: "not available on Windows yet"
|
|
208
|
+
windows: "not available on Windows yet",
|
|
209
|
+
linux: "paused on Linux to protect running sessions; upgrade manually after sessions finish"
|
|
205
210
|
};
|
|
206
211
|
var needsAttention = (input) => input.state.lastResult === "failed" || input.state.lastResult === "needs_manual" || Boolean(input.state.detail);
|
|
207
212
|
var LAST_CHECK_LABEL = "Last automatic update check";
|
|
@@ -507,6 +512,21 @@ var reportOtherHolders = (agentLabel, holders) => {
|
|
|
507
512
|
}
|
|
508
513
|
console.log(` ${dim(describeHoldSentence(agentLabel))}`);
|
|
509
514
|
};
|
|
515
|
+
var describeReadings = (readings) => readings.map((reading) => `${reading.event} ${reading.status}`).join(", ");
|
|
516
|
+
var CODEX_NONE_LISTED = "Codex lists none of the Pushary hooks, so it runs none of them. Check [features].hooks in config.toml, then re-run setup";
|
|
517
|
+
var reportCodexOwnTrust = (assessment) => {
|
|
518
|
+
if (assessment.kind === "unlisted") {
|
|
519
|
+
check(false, "Codex: hooks trusted", CODEX_NONE_LISTED);
|
|
520
|
+
return;
|
|
521
|
+
}
|
|
522
|
+
check(assessment.kind === "trusted", "Codex: hooks trusted", assessment.kind === "trusted" ? `Codex reports ${assessment.trusted} of ${assessment.total} trusted` : `Codex reports ${describeReadings(assessment.failures)}. Type /hooks in Codex and trust them, once`);
|
|
523
|
+
if (assessment.notListed.length > 0) {
|
|
524
|
+
console.log(` ${warn} Codex: does not list ${assessment.notListed.join(", ")} ${dim("(this Codex may not support those events yet)")}`);
|
|
525
|
+
}
|
|
526
|
+
if (assessment.disabled.length > 0) {
|
|
527
|
+
console.log(` ${warn} Codex: ${assessment.disabled.join(", ")} turned off in Codex ${dim("(turn them back on in /hooks)")}`);
|
|
528
|
+
}
|
|
529
|
+
};
|
|
510
530
|
var skipped = (label, why) => {
|
|
511
531
|
console.log(` ${dim("\u2013")} ${label} ${dim(`(${why})`)}`);
|
|
512
532
|
};
|
|
@@ -722,16 +742,24 @@ var main = async () => {
|
|
|
722
742
|
console.log(` ${warn} Codex: stale legacy notify entry ${dim("(double-push risk, re-run setup to remove it)")}`);
|
|
723
743
|
}
|
|
724
744
|
if (hookCommand) {
|
|
745
|
+
const positions = codexHookPositions(codexHooksConfig);
|
|
725
746
|
const gaps = codexTrustGaps(
|
|
726
747
|
codexParsed,
|
|
727
748
|
codexHooksConfig,
|
|
728
749
|
codexHooksPath,
|
|
729
750
|
hookCommand,
|
|
730
|
-
|
|
751
|
+
positions
|
|
731
752
|
);
|
|
732
753
|
const untrusted = gaps.filter((gap) => gap.kind === "untrusted").map((gap) => gap.event);
|
|
733
754
|
const stale = gaps.filter((gap) => gap.kind === "stale").map((gap) => gap.event);
|
|
734
|
-
|
|
755
|
+
const codexTrust = await readCodexTrustForPusharyHooks();
|
|
756
|
+
if (codexTrust.kind === "listed") {
|
|
757
|
+
reportCodexOwnTrust(assessCodexHookTrust(Object.keys(positions), codexTrust.hooks));
|
|
758
|
+
} else {
|
|
759
|
+
const why = codexTrust.kind === "skipped" ? "did not ask" : "could not ask";
|
|
760
|
+
console.log(` ${warn} Codex: ${why} Codex about hook trust ${dim(`(${codexTrust.reason}); checking Pushary's own record instead`)}`);
|
|
761
|
+
check(untrusted.length === 0, "Codex: hooks trusted", untrusted.length === 0 ? "all events trusted" : `untrusted (${untrusted.join(", ")}) \u2014 type /hooks in Codex and trust them, once`);
|
|
762
|
+
}
|
|
735
763
|
if (stale.length > 0) {
|
|
736
764
|
console.log(` ${warn} Codex: ${stale.join(", ")} trusted at an older shape ${dim("(fires normally; re-run setup to pick up the current one)")}`);
|
|
737
765
|
}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
readHookInput
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-6QFEQIPM.js";
|
|
5
5
|
import {
|
|
6
6
|
isDeferAnswer
|
|
7
7
|
} from "../chunk-YHG74UFF.js";
|
|
8
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-TZGCUNOX.js";
|
|
9
9
|
import "../chunk-SGZJ5LYH.js";
|
|
10
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-WNJSGZY7.js";
|
|
11
11
|
import "../chunk-TFKBFQCE.js";
|
|
12
12
|
import "../chunk-K3QVDAZW.js";
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
16
|
-
import "../chunk-
|
|
13
|
+
import "../chunk-Z4VGIBJ7.js";
|
|
14
|
+
import "../chunk-X7FESZTD.js";
|
|
15
|
+
import "../chunk-2AUIEZYS.js";
|
|
16
|
+
import "../chunk-5UQ5ATIE.js";
|
|
17
17
|
import "../chunk-TIWURSLS.js";
|
|
18
18
|
import "../chunk-66H2QQAK.js";
|
|
19
19
|
import "../chunk-2QT3GCU4.js";
|
|
@@ -26,8 +26,8 @@ import {
|
|
|
26
26
|
} from "../chunk-PYCQXCI5.js";
|
|
27
27
|
import {
|
|
28
28
|
getMachineId
|
|
29
|
-
} from "../chunk-
|
|
30
|
-
import "../chunk-
|
|
29
|
+
} from "../chunk-WOLPADR6.js";
|
|
30
|
+
import "../chunk-6IU45EHE.js";
|
|
31
31
|
import "../chunk-GMXKITVA.js";
|
|
32
32
|
import "../chunk-USQDVBEV.js";
|
|
33
33
|
import "../chunk-HETOKNIL.js";
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
idleDeadlinePassed,
|
|
13
13
|
startProcessOwnership,
|
|
14
14
|
withSpawnProcessOwnership
|
|
15
|
-
} from "../chunk-
|
|
15
|
+
} from "../chunk-M2LMXPJZ.js";
|
|
16
16
|
import "../chunk-TIWURSLS.js";
|
|
17
17
|
import "../chunk-66H2QQAK.js";
|
|
18
18
|
import {
|
|
@@ -23,10 +23,10 @@ import {
|
|
|
23
23
|
} from "../chunk-XHKBHWLX.js";
|
|
24
24
|
import {
|
|
25
25
|
getMachineId
|
|
26
|
-
} from "../chunk-
|
|
26
|
+
} from "../chunk-WOLPADR6.js";
|
|
27
27
|
import {
|
|
28
28
|
resolveBinary
|
|
29
|
-
} from "../chunk-
|
|
29
|
+
} from "../chunk-6IU45EHE.js";
|
|
30
30
|
import "../chunk-USQDVBEV.js";
|
|
31
31
|
import "../chunk-HU5LSYL2.js";
|
|
32
32
|
import "../chunk-T7E75EKA.js";
|