@pushary/agent-hooks 0.85.2 → 0.86.0

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.
Files changed (55) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/bin/pushary-bell-hook.js +4 -4
  3. package/dist/bin/pushary-bell.js +5 -5
  4. package/dist/bin/pushary-claude.js +7 -7
  5. package/dist/bin/pushary-clean.js +9 -8
  6. package/dist/bin/pushary-codex-bridge.js +5 -5
  7. package/dist/bin/pushary-codex-hook.js +4 -4
  8. package/dist/bin/pushary-codex.js +3 -3
  9. package/dist/bin/pushary-connect.js +6 -6
  10. package/dist/bin/pushary-daemon.js +4 -4
  11. package/dist/bin/pushary-disconnect.js +7 -6
  12. package/dist/bin/pushary-doctor.js +11 -11
  13. package/dist/bin/pushary-gemini-bridge.js +5 -5
  14. package/dist/bin/pushary-gemini-hook.js +4 -4
  15. package/dist/bin/pushary-hook.js +6 -8
  16. package/dist/bin/pushary-login.js +4 -4
  17. package/dist/bin/pushary-logout.js +4 -4
  18. package/dist/bin/pushary-mode.js +3 -3
  19. package/dist/bin/pushary-notification-hook.js +3 -3
  20. package/dist/bin/pushary-permission-denied-hook.js +6 -8
  21. package/dist/bin/pushary-permission-hook.js +6 -8
  22. package/dist/bin/pushary-post-hook.js +3 -3
  23. package/dist/bin/pushary-prompt-hook.js +3 -3
  24. package/dist/bin/pushary-session-end-hook.js +3 -3
  25. package/dist/bin/pushary-session-start-hook.js +3 -3
  26. package/dist/bin/pushary-setup.js +20 -19
  27. package/dist/bin/pushary-stats.js +2 -2
  28. package/dist/bin/pushary-status.js +5 -5
  29. package/dist/bin/pushary-stop-hook.js +3 -3
  30. package/dist/bin/pushary-stopfailure-hook.js +3 -3
  31. package/dist/bin/pushary-upgrade.js +10 -9
  32. package/dist/bin/pushary-wait.js +3 -3
  33. package/dist/{chunk-Q4URN3E7.js → chunk-2255DZ74.js} +1 -1
  34. package/dist/{chunk-GY3I353G.js → chunk-2C6B6V2U.js} +7 -3
  35. package/dist/{chunk-LSB6PFLN.js → chunk-2TZCZ7CL.js} +1 -1
  36. package/dist/{chunk-DPDUB4XF.js → chunk-33T5OOKP.js} +11 -5
  37. package/dist/{chunk-GM74DUMS.js → chunk-5EUZYWID.js} +1 -1
  38. package/dist/{chunk-CWV4CMB6.js → chunk-7C5CJC3H.js} +1 -1
  39. package/dist/{chunk-KZIGJLOX.js → chunk-7G5VO76N.js} +1 -1
  40. package/dist/chunk-ATBKJNWS.js +19 -0
  41. package/dist/{chunk-K337LIBD.js → chunk-CY4TZK5O.js} +5 -0
  42. package/dist/{chunk-JBLRZGTT.js → chunk-FOY5FISQ.js} +1 -1
  43. package/dist/{chunk-XJDL3MUE.js → chunk-GK4CED6Z.js} +12 -18
  44. package/dist/{chunk-PKUNB3SN.js → chunk-MNQI6ZZU.js} +1 -1
  45. package/dist/{chunk-4YMWLMAP.js → chunk-MTKR4YLW.js} +1 -1
  46. package/dist/{chunk-NTIUQB3E.js → chunk-N52CIK47.js} +1 -1
  47. package/dist/{chunk-LCA2EQTK.js → chunk-PZR4XMFU.js} +1 -1
  48. package/dist/{chunk-JT5NQQCE.js → chunk-Q7N3XGWM.js} +2 -2
  49. package/dist/{chunk-4U2YRHNF.js → chunk-QW27ZFA4.js} +2 -2
  50. package/dist/{chunk-Y7E2MC3G.js → chunk-S3UD7O35.js} +51 -6
  51. package/dist/{chunk-KJW6NKF7.js → chunk-VPJAAGD4.js} +7 -3
  52. package/dist/{chunk-LXWISFF3.js → chunk-VZNDR3Z7.js} +1 -1
  53. package/dist/{chunk-T54OT7IY.js → chunk-XPAGN3SC.js} +1 -1
  54. package/dist/src/index.js +6 -8
  55. package/package.json +1 -1
@@ -4,15 +4,15 @@ import {
4
4
  } from "../chunk-6CUUA7HO.js";
5
5
  import {
6
6
  handleNotification
7
- } from "../chunk-DPDUB4XF.js";
7
+ } from "../chunk-33T5OOKP.js";
8
8
  import "../chunk-RN3NOEJF.js";
9
9
  import "../chunk-BSZYIAZL.js";
10
10
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-CWV4CMB6.js";
11
+ import "../chunk-7C5CJC3H.js";
12
12
  import "../chunk-7QLSKOSU.js";
13
13
  import "../chunk-KZERVKTD.js";
14
14
  import "../chunk-2UMNXADU.js";
15
- import "../chunk-K337LIBD.js";
15
+ import "../chunk-CY4TZK5O.js";
16
16
 
17
17
  // bin/pushary-notification-hook.ts
18
18
  var main = async () => {
@@ -1,24 +1,22 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePermissionDenied
4
- } from "../chunk-Y7E2MC3G.js";
5
- import "../chunk-XJDL3MUE.js";
6
- import "../chunk-HSGEEBBL.js";
7
- import "../chunk-VT4IVERX.js";
8
- import "../chunk-PKUNB3SN.js";
4
+ } from "../chunk-S3UD7O35.js";
5
+ import "../chunk-ATBKJNWS.js";
6
+ import "../chunk-MNQI6ZZU.js";
9
7
  import {
10
8
  readHookInput
11
9
  } from "../chunk-6CUUA7HO.js";
12
10
  import "../chunk-YHG74UFF.js";
13
- import "../chunk-DPDUB4XF.js";
11
+ import "../chunk-33T5OOKP.js";
14
12
  import "../chunk-RN3NOEJF.js";
15
13
  import "../chunk-BSZYIAZL.js";
16
14
  import "../chunk-SAF6HGAA.js";
17
- import "../chunk-CWV4CMB6.js";
15
+ import "../chunk-7C5CJC3H.js";
18
16
  import "../chunk-7QLSKOSU.js";
19
17
  import "../chunk-KZERVKTD.js";
20
18
  import "../chunk-2UMNXADU.js";
21
- import "../chunk-K337LIBD.js";
19
+ import "../chunk-CY4TZK5O.js";
22
20
 
23
21
  // bin/pushary-permission-denied-hook.ts
24
22
  var main = async () => {
@@ -1,24 +1,22 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePermissionRequest
4
- } from "../chunk-Y7E2MC3G.js";
5
- import "../chunk-XJDL3MUE.js";
6
- import "../chunk-HSGEEBBL.js";
7
- import "../chunk-VT4IVERX.js";
8
- import "../chunk-PKUNB3SN.js";
4
+ } from "../chunk-S3UD7O35.js";
5
+ import "../chunk-ATBKJNWS.js";
6
+ import "../chunk-MNQI6ZZU.js";
9
7
  import {
10
8
  readHookInput
11
9
  } from "../chunk-6CUUA7HO.js";
12
10
  import "../chunk-YHG74UFF.js";
13
- import "../chunk-DPDUB4XF.js";
11
+ import "../chunk-33T5OOKP.js";
14
12
  import "../chunk-RN3NOEJF.js";
15
13
  import "../chunk-BSZYIAZL.js";
16
14
  import "../chunk-SAF6HGAA.js";
17
- import "../chunk-CWV4CMB6.js";
15
+ import "../chunk-7C5CJC3H.js";
18
16
  import "../chunk-7QLSKOSU.js";
19
17
  import "../chunk-KZERVKTD.js";
20
18
  import "../chunk-2UMNXADU.js";
21
- import "../chunk-K337LIBD.js";
19
+ import "../chunk-CY4TZK5O.js";
22
20
 
23
21
  // bin/pushary-permission-hook.ts
24
22
  var main = async () => {
@@ -4,15 +4,15 @@ import {
4
4
  } from "../chunk-6CUUA7HO.js";
5
5
  import {
6
6
  handlePostToolUse
7
- } from "../chunk-DPDUB4XF.js";
7
+ } from "../chunk-33T5OOKP.js";
8
8
  import "../chunk-RN3NOEJF.js";
9
9
  import "../chunk-BSZYIAZL.js";
10
10
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-CWV4CMB6.js";
11
+ import "../chunk-7C5CJC3H.js";
12
12
  import "../chunk-7QLSKOSU.js";
13
13
  import "../chunk-KZERVKTD.js";
14
14
  import "../chunk-2UMNXADU.js";
15
- import "../chunk-K337LIBD.js";
15
+ import "../chunk-CY4TZK5O.js";
16
16
 
17
17
  // bin/pushary-post-hook.ts
18
18
  var main = async () => {
@@ -4,15 +4,15 @@ import {
4
4
  } from "../chunk-6CUUA7HO.js";
5
5
  import {
6
6
  handleUserPrompt
7
- } from "../chunk-DPDUB4XF.js";
7
+ } from "../chunk-33T5OOKP.js";
8
8
  import "../chunk-RN3NOEJF.js";
9
9
  import "../chunk-BSZYIAZL.js";
10
10
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-CWV4CMB6.js";
11
+ import "../chunk-7C5CJC3H.js";
12
12
  import "../chunk-7QLSKOSU.js";
13
13
  import "../chunk-KZERVKTD.js";
14
14
  import "../chunk-2UMNXADU.js";
15
- import "../chunk-K337LIBD.js";
15
+ import "../chunk-CY4TZK5O.js";
16
16
 
17
17
  // bin/pushary-prompt-hook.ts
18
18
  var main = async () => {
@@ -4,15 +4,15 @@ import {
4
4
  } from "../chunk-6CUUA7HO.js";
5
5
  import {
6
6
  handleSessionEnd
7
- } from "../chunk-DPDUB4XF.js";
7
+ } from "../chunk-33T5OOKP.js";
8
8
  import "../chunk-RN3NOEJF.js";
9
9
  import "../chunk-BSZYIAZL.js";
10
10
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-CWV4CMB6.js";
11
+ import "../chunk-7C5CJC3H.js";
12
12
  import "../chunk-7QLSKOSU.js";
13
13
  import "../chunk-KZERVKTD.js";
14
14
  import "../chunk-2UMNXADU.js";
15
- import "../chunk-K337LIBD.js";
15
+ import "../chunk-CY4TZK5O.js";
16
16
 
17
17
  // bin/pushary-session-end-hook.ts
18
18
  var main = async () => {
@@ -4,15 +4,15 @@ import {
4
4
  } from "../chunk-6CUUA7HO.js";
5
5
  import {
6
6
  handleSessionStart
7
- } from "../chunk-DPDUB4XF.js";
7
+ } from "../chunk-33T5OOKP.js";
8
8
  import "../chunk-RN3NOEJF.js";
9
9
  import "../chunk-BSZYIAZL.js";
10
10
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-CWV4CMB6.js";
11
+ import "../chunk-7C5CJC3H.js";
12
12
  import "../chunk-7QLSKOSU.js";
13
13
  import "../chunk-KZERVKTD.js";
14
14
  import "../chunk-2UMNXADU.js";
15
- import "../chunk-K337LIBD.js";
15
+ import "../chunk-CY4TZK5O.js";
16
16
 
17
17
  // bin/pushary-session-start-hook.ts
18
18
  var main = async () => {
@@ -1,18 +1,25 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  detectClaudeVersion
4
- } from "../chunk-Q4URN3E7.js";
4
+ } from "../chunk-2255DZ74.js";
5
5
  import {
6
6
  claudeWired,
7
7
  codexWired,
8
8
  geminiWired
9
- } from "../chunk-JT5NQQCE.js";
9
+ } from "../chunk-Q7N3XGWM.js";
10
10
  import {
11
11
  runBrowserLogin
12
12
  } from "../chunk-Z3Z4VK5F.js";
13
13
  import {
14
14
  ensureDaemonRunning
15
- } from "../chunk-4YMWLMAP.js";
15
+ } from "../chunk-MTKR4YLW.js";
16
+ import {
17
+ addClaudeMcpServer,
18
+ addPusharyHooks,
19
+ addPusharyToolPermissions,
20
+ compareVersion,
21
+ parseVersion
22
+ } from "../chunk-GK4CED6Z.js";
16
23
  import {
17
24
  describeDetection,
18
25
  detectAllAgents,
@@ -24,19 +31,13 @@ import {
24
31
  shortenHome,
25
32
  vscodeSettingsTargets,
26
33
  writeInstructionBlock
27
- } from "../chunk-4U2YRHNF.js";
34
+ } from "../chunk-QW27ZFA4.js";
28
35
  import {
29
36
  GEMINI_HOOK_BINARY,
30
37
  addGeminiHooks,
31
38
  addGeminiMcpServer
32
- } from "../chunk-GY3I353G.js";
33
- import {
34
- addClaudeMcpServer,
35
- addPusharyHooks,
36
- addPusharyToolPermissions,
37
- compareVersion,
38
- parseVersion
39
- } from "../chunk-XJDL3MUE.js";
39
+ } from "../chunk-2C6B6V2U.js";
40
+ import "../chunk-ATBKJNWS.js";
40
41
  import {
41
42
  guardBinary,
42
43
  guardNodeScript
@@ -65,10 +66,10 @@ import {
65
66
  geminiSettings,
66
67
  pusharyConfigFile,
67
68
  vscodePluginDir
68
- } from "../chunk-KJW6NKF7.js";
69
+ } from "../chunk-VPJAAGD4.js";
69
70
  import {
70
71
  reportEvent
71
- } from "../chunk-DPDUB4XF.js";
72
+ } from "../chunk-33T5OOKP.js";
72
73
  import "../chunk-RN3NOEJF.js";
73
74
  import {
74
75
  confirmAppConnection,
@@ -78,12 +79,12 @@ import {
78
79
  printConnectInstructions,
79
80
  setHumanStream,
80
81
  verifyRoundTrip
81
- } from "../chunk-LCA2EQTK.js";
82
+ } from "../chunk-PZR4XMFU.js";
82
83
  import "../chunk-3EGEA4KH.js";
83
84
  import {
84
85
  checkApiKey,
85
86
  describeKeyCheck
86
- } from "../chunk-LSB6PFLN.js";
87
+ } from "../chunk-2TZCZ7CL.js";
87
88
  import {
88
89
  useColor
89
90
  } from "../chunk-5RUIFDTP.js";
@@ -94,7 +95,7 @@ import {
94
95
  readConfigFileKey,
95
96
  readKeySource,
96
97
  writeKey
97
- } from "../chunk-KZIGJLOX.js";
98
+ } from "../chunk-7G5VO76N.js";
98
99
  import {
99
100
  parseFlags
100
101
  } from "../chunk-GMXKITVA.js";
@@ -117,7 +118,7 @@ import {
117
118
  } from "../chunk-6MTNS63X.js";
118
119
  import "../chunk-BSZYIAZL.js";
119
120
  import "../chunk-SAF6HGAA.js";
120
- import "../chunk-CWV4CMB6.js";
121
+ import "../chunk-7C5CJC3H.js";
121
122
  import {
122
123
  UsageError
123
124
  } from "../chunk-7QLSKOSU.js";
@@ -127,7 +128,7 @@ import {
127
128
  import "../chunk-2UMNXADU.js";
128
129
  import {
129
130
  isValidApiKey
130
- } from "../chunk-K337LIBD.js";
131
+ } from "../chunk-CY4TZK5O.js";
131
132
 
132
133
  // bin/pushary-setup.ts
133
134
  import { existsSync, readFileSync, writeFileSync, mkdirSync, cpSync, rmSync, renameSync, realpathSync, readdirSync, statSync } from "fs";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readLedgerSummary
4
- } from "../chunk-PKUNB3SN.js";
4
+ } from "../chunk-MNQI6ZZU.js";
5
5
  import {
6
6
  exitOnHelpFlag
7
7
  } from "../chunk-SQOFGPNX.js";
@@ -11,7 +11,7 @@ import "../chunk-KZERVKTD.js";
11
11
  import {
12
12
  getApiKey
13
13
  } from "../chunk-2UMNXADU.js";
14
- import "../chunk-K337LIBD.js";
14
+ import "../chunk-CY4TZK5O.js";
15
15
 
16
16
  // bin/pushary-stats.ts
17
17
  exitOnHelpFlag("stats");
@@ -8,18 +8,18 @@ import {
8
8
  describeReach,
9
9
  fetchChannels,
10
10
  reachVerdict
11
- } from "../chunk-LCA2EQTK.js";
11
+ } from "../chunk-PZR4XMFU.js";
12
12
  import "../chunk-3EGEA4KH.js";
13
13
  import {
14
14
  checkApiKey,
15
15
  describeKeyCheck
16
- } from "../chunk-LSB6PFLN.js";
16
+ } from "../chunk-2TZCZ7CL.js";
17
17
  import {
18
18
  createIo
19
19
  } from "../chunk-5RUIFDTP.js";
20
20
  import {
21
21
  readKeySource
22
- } from "../chunk-KZIGJLOX.js";
22
+ } from "../chunk-7G5VO76N.js";
23
23
  import {
24
24
  rejectUnknownFlags
25
25
  } from "../chunk-GMXKITVA.js";
@@ -32,7 +32,7 @@ import "../chunk-DINDL2CF.js";
32
32
  import "../chunk-6MTNS63X.js";
33
33
  import "../chunk-BSZYIAZL.js";
34
34
  import "../chunk-SAF6HGAA.js";
35
- import "../chunk-CWV4CMB6.js";
35
+ import "../chunk-7C5CJC3H.js";
36
36
  import {
37
37
  UsageError
38
38
  } from "../chunk-7QLSKOSU.js";
@@ -40,7 +40,7 @@ import {
40
40
  EXIT
41
41
  } from "../chunk-KZERVKTD.js";
42
42
  import "../chunk-2UMNXADU.js";
43
- import "../chunk-K337LIBD.js";
43
+ import "../chunk-CY4TZK5O.js";
44
44
 
45
45
  // src/status.ts
46
46
  var keySourceLine = (source) => {
@@ -4,15 +4,15 @@ import {
4
4
  } from "../chunk-6CUUA7HO.js";
5
5
  import {
6
6
  handleStop
7
- } from "../chunk-DPDUB4XF.js";
7
+ } from "../chunk-33T5OOKP.js";
8
8
  import "../chunk-RN3NOEJF.js";
9
9
  import "../chunk-BSZYIAZL.js";
10
10
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-CWV4CMB6.js";
11
+ import "../chunk-7C5CJC3H.js";
12
12
  import "../chunk-7QLSKOSU.js";
13
13
  import "../chunk-KZERVKTD.js";
14
14
  import "../chunk-2UMNXADU.js";
15
- import "../chunk-K337LIBD.js";
15
+ import "../chunk-CY4TZK5O.js";
16
16
 
17
17
  // bin/pushary-stop-hook.ts
18
18
  var main = async () => {
@@ -4,15 +4,15 @@ import {
4
4
  } from "../chunk-6CUUA7HO.js";
5
5
  import {
6
6
  handleStopFailure
7
- } from "../chunk-DPDUB4XF.js";
7
+ } from "../chunk-33T5OOKP.js";
8
8
  import "../chunk-RN3NOEJF.js";
9
9
  import "../chunk-BSZYIAZL.js";
10
10
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-CWV4CMB6.js";
11
+ import "../chunk-7C5CJC3H.js";
12
12
  import "../chunk-7QLSKOSU.js";
13
13
  import "../chunk-KZERVKTD.js";
14
14
  import "../chunk-2UMNXADU.js";
15
- import "../chunk-K337LIBD.js";
15
+ import "../chunk-CY4TZK5O.js";
16
16
 
17
17
  // bin/pushary-stopfailure-hook.ts
18
18
  var main = async () => {
@@ -1,18 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  detectClaudeVersion
4
- } from "../chunk-Q4URN3E7.js";
4
+ } from "../chunk-2255DZ74.js";
5
+ import {
6
+ addClaudeMcpServer,
7
+ addPusharyHooks,
8
+ addPusharyToolPermissions
9
+ } from "../chunk-GK4CED6Z.js";
5
10
  import {
6
11
  GEMINI_HOOK_BINARY,
7
12
  addGeminiHooks,
8
13
  addGeminiMcpServer,
9
14
  hasGeminiHooks
10
- } from "../chunk-GY3I353G.js";
11
- import {
12
- addClaudeMcpServer,
13
- addPusharyHooks,
14
- addPusharyToolPermissions
15
- } from "../chunk-XJDL3MUE.js";
15
+ } from "../chunk-2C6B6V2U.js";
16
+ import "../chunk-ATBKJNWS.js";
16
17
  import {
17
18
  guardBinary
18
19
  } from "../chunk-HSGEEBBL.js";
@@ -35,7 +36,7 @@ import {
35
36
  hasCodexHooks,
36
37
  vscodePluginDir,
37
38
  vscodePluginMcp
38
- } from "../chunk-KJW6NKF7.js";
39
+ } from "../chunk-VPJAAGD4.js";
39
40
  import {
40
41
  exitOnHelpFlag
41
42
  } from "../chunk-SQOFGPNX.js";
@@ -50,7 +51,7 @@ import "../chunk-KZERVKTD.js";
50
51
  import {
51
52
  getApiKey
52
53
  } from "../chunk-2UMNXADU.js";
53
- import "../chunk-K337LIBD.js";
54
+ import "../chunk-CY4TZK5O.js";
54
55
 
55
56
  // bin/pushary-upgrade.ts
56
57
  import { existsSync as existsSync2 } from "fs";
@@ -4,8 +4,8 @@ import {
4
4
  } from "../chunk-IIENZE2J.js";
5
5
  import {
6
6
  exitOnFailedResponse
7
- } from "../chunk-NTIUQB3E.js";
8
- import "../chunk-LSB6PFLN.js";
7
+ } from "../chunk-N52CIK47.js";
8
+ import "../chunk-2TZCZ7CL.js";
9
9
  import {
10
10
  createIo
11
11
  } from "../chunk-5RUIFDTP.js";
@@ -28,7 +28,7 @@ import {
28
28
  getApiKey,
29
29
  getBaseUrl
30
30
  } from "../chunk-2UMNXADU.js";
31
- import "../chunk-K337LIBD.js";
31
+ import "../chunk-CY4TZK5O.js";
32
32
 
33
33
  // bin/pushary-wait.ts
34
34
  exitOnHelpFlag("wait");
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseVersion
3
- } from "./chunk-XJDL3MUE.js";
3
+ } from "./chunk-GK4CED6Z.js";
4
4
 
5
5
  // src/setup/agent-probe.ts
6
6
  import { execSync } from "child_process";
@@ -1,6 +1,7 @@
1
1
  import {
2
- HOOK_BUDGETS
3
- } from "./chunk-K337LIBD.js";
2
+ HOOK_BUDGETS,
3
+ HOOK_LOCATOR_BINARY
4
+ } from "./chunk-CY4TZK5O.js";
4
5
 
5
6
  // src/gemini-config.ts
6
7
  var GEMINI_HOOK_BINARY = "pushary-gemini-hook";
@@ -23,7 +24,10 @@ var ensureRecord = (target, key) => {
23
24
  var isPusharyGeminiHook = (entry) => {
24
25
  const hooks = asRecord(entry)?.hooks;
25
26
  if (!Array.isArray(hooks)) return false;
26
- return hooks.some((hook) => String(asRecord(hook)?.command ?? "").includes(GEMINI_HOOK_BINARY));
27
+ return hooks.some((hook) => {
28
+ const command = String(asRecord(hook)?.command ?? "");
29
+ return command.includes(GEMINI_HOOK_BINARY) || command.includes(HOOK_LOCATOR_BINARY);
30
+ });
27
31
  };
28
32
  var addGeminiMcpServer = (settings, apiKey) => {
29
33
  const mcpServers = ensureRecord(settings, "mcpServers");
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-2UMNXADU.js";
13
13
  import {
14
14
  isValidApiKey
15
- } from "./chunk-K337LIBD.js";
15
+ } from "./chunk-CY4TZK5O.js";
16
16
 
17
17
  // src/session.ts
18
18
  var IDENTITY_PATH = "/api/v1/server/identity";
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-SAF6HGAA.js";
11
11
  import {
12
12
  reportedInstallSource
13
- } from "./chunk-CWV4CMB6.js";
13
+ } from "./chunk-7C5CJC3H.js";
14
14
  import {
15
15
  getApiKey,
16
16
  getBaseUrl
@@ -18,6 +18,7 @@ import {
18
18
  import {
19
19
  ACTION_BODY_MAX,
20
20
  DECISION_LINE_MAX,
21
+ FILE_TARGET_TOOLS,
21
22
  gateOutputFor,
22
23
  isAutoApprove,
23
24
  localRepoKey,
@@ -27,7 +28,7 @@ import {
27
28
  redactSecretsDeep,
28
29
  resolveAutoResolveOrigin,
29
30
  resolvePolicy
30
- } from "./chunk-K337LIBD.js";
31
+ } from "./chunk-CY4TZK5O.js";
31
32
 
32
33
  // src/policy.ts
33
34
  import { createHash } from "crypto";
@@ -221,7 +222,11 @@ var hookPrefixes = {
221
222
  Write: (input) => `write file: ${input.file_path ?? "(unknown path)"}`,
222
223
  Edit: (input) => `edit file: ${input.file_path ?? "(unknown path)"}`,
223
224
  MultiEdit: (input) => `edit file: ${input.file_path ?? "(unknown path)"}`,
224
- Read: (input) => `read file: ${input.file_path ?? "(unknown path)"}`
225
+ Read: (input) => `read file: ${input.file_path ?? "(unknown path)"}`,
226
+ // Without an entry here the fallback stringifies the whole tool input, and for
227
+ // ExitPlanMode that input IS the plan: the action line became a truncated dump of
228
+ // the plan markdown. The plan belongs in the body, not the one-line summary.
229
+ ExitPlanMode: () => "finished planning and wants to start coding"
225
230
  };
226
231
  var describeTodoProgress = (todos) => {
227
232
  if (!Array.isArray(todos)) return "updated the plan";
@@ -265,7 +270,7 @@ var deriveToolTarget = (toolName, toolInput) => {
265
270
  if (toolName === "Bash" || toolName === "PowerShell" || toolName === "Monitor") {
266
271
  return deriveCommandHead(toolInput.command);
267
272
  }
268
- if (toolName === "Edit" || toolName === "Write" || toolName === "MultiEdit") {
273
+ if (FILE_TARGET_TOOLS.has(toolName)) {
269
274
  const filePath = toolInput.file_path;
270
275
  if (typeof filePath !== "string") return void 0;
271
276
  const separator = Math.max(filePath.lastIndexOf("/"), filePath.lastIndexOf("\\"));
@@ -314,7 +319,7 @@ var relativizeReceiptPath = (filePath, cwd) => {
314
319
  var deriveReceiptMeta = (toolName, toolInput, toolResult, cwd) => {
315
320
  try {
316
321
  const ok = !isToolResultError(toolResult);
317
- if (toolName === "Edit" || toolName === "Write" || toolName === "MultiEdit") {
322
+ if (FILE_TARGET_TOOLS.has(toolName)) {
318
323
  const filePath = toolInput.file_path;
319
324
  if (typeof filePath !== "string" || !filePath) return void 0;
320
325
  return {
@@ -356,6 +361,7 @@ var rawActionBody = (toolName, toolInput) => {
356
361
  + ${after ?? ""}`;
357
362
  }
358
363
  if (toolName === "Write" || toolName === "write_file") return firstString(toolInput.content);
364
+ if (toolName === "ExitPlanMode") return firstString(toolInput.plan);
359
365
  if (toolName === "Bash" || toolName === "PowerShell" || toolName === "Monitor" || toolName === "run_shell_command" || toolName === "shell" || toolName === "apply_patch") {
360
366
  return firstString(toolInput.command);
361
367
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readConfigFileKey
3
- } from "./chunk-KZIGJLOX.js";
3
+ } from "./chunk-7G5VO76N.js";
4
4
 
5
5
  // src/bell/fleet.ts
6
6
  import { closeSync, constants, futimesSync, lstatSync, mkdirSync, openSync, readdirSync, unlinkSync } from "fs";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-2UMNXADU.js";
4
4
  import {
5
5
  normalizeInstallSource
6
- } from "./chunk-K337LIBD.js";
6
+ } from "./chunk-CY4TZK5O.js";
7
7
 
8
8
  // src/install-source.ts
9
9
  import { readFileSync } from "fs";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-6MTNS63X.js";
10
10
  import {
11
11
  resolveInstallSourceFor
12
- } from "./chunk-CWV4CMB6.js";
12
+ } from "./chunk-7C5CJC3H.js";
13
13
  import {
14
14
  configFilePath
15
15
  } from "./chunk-2UMNXADU.js";
@@ -0,0 +1,19 @@
1
+ // src/claude-tools.ts
2
+ var PRETOOLUSE_GATED_TOOLS = [
3
+ "Bash",
4
+ "Write",
5
+ "Edit",
6
+ "MultiEdit",
7
+ "NotebookEdit",
8
+ "PowerShell",
9
+ "Monitor"
10
+ ];
11
+ var PRETOOLUSE_PHONE_ANSWERED_TOOLS = ["AskUserQuestion", "ExitPlanMode"];
12
+ var POSTTOOLUSE_MIRRORED_TOOLS = [...PRETOOLUSE_GATED_TOOLS, "TodoWrite"];
13
+ var PRETOOLUSE_HANDLED_TOOLS = /* @__PURE__ */ new Set([...PRETOOLUSE_GATED_TOOLS, ...PRETOOLUSE_PHONE_ANSWERED_TOOLS]);
14
+
15
+ export {
16
+ PRETOOLUSE_GATED_TOOLS,
17
+ PRETOOLUSE_PHONE_ANSWERED_TOOLS,
18
+ PRETOOLUSE_HANDLED_TOOLS
19
+ };
@@ -65,6 +65,7 @@ var hookWaitDeadline = (startMs, policyWaitSeconds, agent, nowMs) => {
65
65
  };
66
66
  var hookWaitClamped = (startMs, policyWaitSeconds, agent, nowMs) => startMs + hookMaxWaitSeconds(agent) * 1e3 < nowMs + Math.max(policyWaitSeconds, 0) * 1e3;
67
67
  var effectiveWaitSeconds = (timeoutAction, policySeconds, agent) => timeoutAction === "wait" ? hookMaxWaitSeconds(agent) : policySeconds;
68
+ var HOOK_LOCATOR_BINARY = "pushary-bridge";
68
69
  var HOOK_BATCH_MAX_BYTES = 4 * 1024 * 1024;
69
70
  var REPO_KEY_MAX_LENGTH = 200;
70
71
  var isRepoKeyMatch = (ruleRepoKey, currentRepoKey) => {
@@ -502,6 +503,8 @@ var selectGoverningRule = (policies, toolName, args, repoKey, sessionId) => {
502
503
  }
503
504
  return best;
504
505
  };
506
+ var ARG_PREFIX_TARGET_TOOLS = Object.keys(POLICY_COMMAND_KEYS);
507
+ var FILE_TARGET_TOOLS = /* @__PURE__ */ new Set(["Edit", "Write", "MultiEdit"]);
505
508
  var API_KEY_PATTERN = /^pk_[a-f0-9]+\.[a-f0-9]+$/;
506
509
  var isValidApiKey = (value) => API_KEY_PATTERN.test(value);
507
510
  var ACTION_BODY_MAX = 4e3;
@@ -1093,10 +1096,12 @@ export {
1093
1096
  hookWaitDeadline,
1094
1097
  hookWaitClamped,
1095
1098
  effectiveWaitSeconds,
1099
+ HOOK_LOCATOR_BINARY,
1096
1100
  normalizeRepoRemote,
1097
1101
  localRepoKey,
1098
1102
  isSafeReadOnlyCommand,
1099
1103
  isAutoApprove,
1104
+ FILE_TARGET_TOOLS,
1100
1105
  isValidApiKey,
1101
1106
  ACTION_BODY_MAX,
1102
1107
  DECISION_LINE_MAX,
@@ -5,7 +5,7 @@ import {
5
5
  generateSessionKey,
6
6
  uploadTranscriptRecords,
7
7
  wrapSessionKey
8
- } from "./chunk-T54OT7IY.js";
8
+ } from "./chunk-XPAGN3SC.js";
9
9
 
10
10
  // src/live-session.ts
11
11
  var MAX_TRANSCRIPT_QUEUE = 100;