@pushary/agent-hooks 1.6.3 → 1.7.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 (100) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +3 -2
  3. package/dist/bin/pushary-bell-hook.js +24 -22
  4. package/dist/bin/pushary-bell.js +11 -12
  5. package/dist/bin/pushary-claude.js +29 -28
  6. package/dist/bin/pushary-clean.js +99 -40
  7. package/dist/bin/pushary-codex-bridge.js +25 -25
  8. package/dist/bin/pushary-codex-hook.js +39 -34
  9. package/dist/bin/pushary-codex.js +13 -12
  10. package/dist/bin/pushary-connect.js +13 -12
  11. package/dist/bin/pushary-cowork.js +5 -6
  12. package/dist/bin/pushary-daemon.js +31 -32
  13. package/dist/bin/pushary-disconnect.js +22 -21
  14. package/dist/bin/pushary-doctor.js +98 -61
  15. package/dist/bin/pushary-elicitation-hook.js +26 -25
  16. package/dist/bin/pushary-gemini-bridge.js +12 -13
  17. package/dist/bin/pushary-gemini-hook.js +35 -30
  18. package/dist/bin/pushary-hook.js +38 -33
  19. package/dist/bin/pushary-login.js +13 -15
  20. package/dist/bin/pushary-logout.js +12 -13
  21. package/dist/bin/pushary-mcp.d.ts +1 -0
  22. package/dist/bin/pushary-mcp.js +56 -0
  23. package/dist/bin/pushary-mode.js +10 -8
  24. package/dist/bin/pushary-notification-hook.js +28 -27
  25. package/dist/bin/pushary-opencode-hook.js +34 -29
  26. package/dist/bin/pushary-permission-denied-hook.js +32 -31
  27. package/dist/bin/pushary-permission-hook.js +31 -30
  28. package/dist/bin/pushary-post-hook.js +28 -27
  29. package/dist/bin/pushary-prompt-hook.js +28 -27
  30. package/dist/bin/pushary-session-end-hook.js +28 -27
  31. package/dist/bin/pushary-session-start-hook.js +32 -31
  32. package/dist/bin/pushary-setup.js +222 -110
  33. package/dist/bin/pushary-stats.js +5 -6
  34. package/dist/bin/pushary-status.js +15 -16
  35. package/dist/bin/pushary-stop-hook.js +28 -27
  36. package/dist/bin/pushary-stopfailure-hook.js +28 -27
  37. package/dist/bin/pushary-suggestions.js +4 -4
  38. package/dist/bin/pushary-transcript-register.js +19 -20
  39. package/dist/bin/pushary-transcripts.js +7 -8
  40. package/dist/bin/pushary-upgrade.js +28 -28
  41. package/dist/bin/pushary-wait.js +10 -8
  42. package/dist/bin/pushary.js +9 -5
  43. package/dist/{chunk-4KSTLHWY.js → chunk-2C7CCWVX.js} +1 -1
  44. package/dist/{chunk-P4BNYJ5Q.js → chunk-2PS6QWDW.js} +2 -2
  45. package/dist/{chunk-ILGL4L3J.js → chunk-4F46VIEE.js} +8 -8
  46. package/dist/{chunk-UAV5MNKY.js → chunk-52NVBNJT.js} +3 -3
  47. package/dist/{chunk-GQPCPEG2.js → chunk-5HLTWFJ6.js} +1 -1
  48. package/dist/{chunk-EJ7ADMNM.js → chunk-6ADZQFVW.js} +1 -1
  49. package/dist/{chunk-QKOVVL7I.js → chunk-73T6MSU5.js} +7 -7
  50. package/dist/{chunk-YOCXPNQ5.js → chunk-7OS4IHGI.js} +2 -2
  51. package/dist/{chunk-BY2CRWBO.js → chunk-B234346F.js} +1 -1
  52. package/dist/{chunk-EA3IELHP.js → chunk-B3UXMSMW.js} +6 -2
  53. package/dist/{chunk-STOMNX4S.js → chunk-B3YQANFN.js} +1 -1
  54. package/dist/{chunk-JBU7XKY2.js → chunk-B76WVEDX.js} +1 -1
  55. package/dist/{chunk-WA7SQX6S.js → chunk-BBKNJJVX.js} +6 -6
  56. package/dist/{chunk-KNIIFNNQ.js → chunk-BH2SKSSK.js} +1 -1
  57. package/dist/{chunk-CTOK3AYA.js → chunk-BWYJ6AAF.js} +6 -7
  58. package/dist/{chunk-HCVAMXHT.js → chunk-CVALVGA7.js} +1 -1
  59. package/dist/{chunk-DX5FOQSO.js → chunk-D6BULEJW.js} +2 -2
  60. package/dist/{chunk-RJUHSFYE.js → chunk-DANOZVZK.js} +1 -1
  61. package/dist/{chunk-3BJQYXTL.js → chunk-DNJUSFBL.js} +13 -5
  62. package/dist/{chunk-57YDFAPP.js → chunk-DVQDPI3T.js} +8 -8
  63. package/dist/{chunk-BEHGVU4W.js → chunk-DZURML2D.js} +1 -1
  64. package/dist/{chunk-LDS4ERW4.js → chunk-EAQMWJPG.js} +10 -10
  65. package/dist/{chunk-LVHGSD5E.js → chunk-EGKXSQCY.js} +13 -7
  66. package/dist/{chunk-HHYVBHHC.js → chunk-HDRNWNVP.js} +6 -6
  67. package/dist/{chunk-JBXUKGZS.js → chunk-IJ6ECPA6.js} +15 -9
  68. package/dist/{chunk-NMRH3VX4.js → chunk-J2355HR7.js} +1 -1
  69. package/dist/{chunk-HETOKNIL.js → chunk-JNXVOU6Y.js} +10 -6
  70. package/dist/{chunk-COGHCL6K.js → chunk-JXUAXO74.js} +2 -2
  71. package/dist/chunk-KW2RRR7D.js +124 -0
  72. package/dist/{chunk-66H2QQAK.js → chunk-KXMZMZD3.js} +1 -1
  73. package/dist/{chunk-H3FEVIQD.js → chunk-KYQXUGH7.js} +3 -3
  74. package/dist/{chunk-P35IUFFR.js → chunk-L4H2Q2S4.js} +276 -19
  75. package/dist/{chunk-NKR4YDRP.js → chunk-LEZFOTMI.js} +1 -1
  76. package/dist/{chunk-WD6W7QDI.js → chunk-O2LEPIU6.js} +1 -1
  77. package/dist/chunk-POFBE6ZY.js +12 -0
  78. package/dist/{chunk-SND3C2AV.js → chunk-PQ4F64M2.js} +3 -3
  79. package/dist/{chunk-3UOC3GRO.js → chunk-PUDBG3GM.js} +1 -1
  80. package/dist/{chunk-YQMFGWBD.js → chunk-QXAK5RFU.js} +1 -1
  81. package/dist/{chunk-REYWOCQJ.js → chunk-R2XCLT6I.js} +4 -4
  82. package/dist/{chunk-NPGOQQCV.js → chunk-ROQK7IN3.js} +2 -2
  83. package/dist/{chunk-GU3EJCVV.js → chunk-S3UD4V6W.js} +39 -0
  84. package/dist/{chunk-ICGAIM2R.js → chunk-SQRWHALT.js} +2 -2
  85. package/dist/{chunk-JX67DVMY.js → chunk-UC65FJJT.js} +5 -6
  86. package/dist/{chunk-CWIARY6F.js → chunk-UOAQ6QMP.js} +2 -2
  87. package/dist/{chunk-OSJEMXSR.js → chunk-V4AQBAVG.js} +1 -1
  88. package/dist/chunk-V6QRSU2G.js +142 -0
  89. package/dist/{chunk-VDMX5EMU.js → chunk-VKVIAZQO.js} +1 -1
  90. package/dist/{chunk-BG6OCZ4N.js → chunk-WUNZAE7I.js} +5 -5
  91. package/dist/{chunk-TZ4KUNZG.js → chunk-X6KDKOV5.js} +3 -3
  92. package/dist/{chunk-LM2IOEDK.js → chunk-XNCMT7YY.js} +3 -1
  93. package/dist/{chunk-GHOB245Q.js → chunk-YROGUPOZ.js} +132 -30
  94. package/dist/chunk-YYINL576.js +120 -0
  95. package/dist/{chunk-57DDP4TB.js → chunk-ZQ7IDOKY.js} +3 -3
  96. package/dist/{reapply-IB7YE7BU.js → reapply-6PH3FMPX.js} +9 -10
  97. package/dist/src/index.js +20 -19
  98. package/package.json +2 -1
  99. package/dist/chunk-HWJW3CPO.js +0 -65
  100. package/dist/chunk-SAF6HGAA.js +0 -57
@@ -4,48 +4,59 @@ import {
4
4
  } from "../chunk-CVWG2N3Y.js";
5
5
  import {
6
6
  readServiceExecPath,
7
+ retryAgentCommand,
7
8
  versionManagerOf
8
- } from "../chunk-GU3EJCVV.js";
9
+ } from "../chunk-S3UD4V6W.js";
9
10
  import {
10
11
  assessCodexHookTrust,
11
12
  readCodexTrustForPusharyHooks
12
- } from "../chunk-YOCXPNQ5.js";
13
+ } from "../chunk-7OS4IHGI.js";
13
14
  import {
14
15
  readMachineReadiness,
15
16
  readManagedControlEvidence
16
- } from "../chunk-ILGL4L3J.js";
17
+ } from "../chunk-4F46VIEE.js";
17
18
  import {
18
19
  CURSOR_GATE_SCRIPT
19
20
  } from "../chunk-P32LPT2L.js";
20
21
  import {
22
+ FX_PROFILE_REFUSALS,
23
+ FX_PUSHARY_TOOLS_RULE,
21
24
  agentProbes,
22
25
  detectAgent,
23
26
  detectAllAgents,
27
+ fxBridgeTargetOf,
28
+ fxPusharyEntryOf,
24
29
  hasInstructionBlock,
25
30
  isDetected,
31
+ isFxPusharyEntry,
26
32
  isPluginRegistered,
33
+ pusharyToolsAllowed,
34
+ readFxFile,
35
+ readFxProfile,
36
+ readFxSettings,
27
37
  shortenHome,
28
38
  vscodeSettingsTargets
29
- } from "../chunk-P35IUFFR.js";
39
+ } from "../chunk-L4H2Q2S4.js";
40
+ import "../chunk-YYINL576.js";
30
41
  import {
31
42
  OPENCODE_PLUGIN_PLACEHOLDER,
32
43
  openCodePluginDir,
33
44
  openCodePluginFile,
34
45
  openCodeWired
35
- } from "../chunk-STOMNX4S.js";
46
+ } from "../chunk-B3YQANFN.js";
36
47
  import {
37
48
  compatibleConfigFile,
38
49
  compatibleInstructionsFile,
39
50
  compatibleMcpFile,
40
51
  hasCompatibleHooks,
41
52
  missingCompatibleHookEvents
42
- } from "../chunk-BG6OCZ4N.js";
43
- import "../chunk-H3FEVIQD.js";
53
+ } from "../chunk-WUNZAE7I.js";
54
+ import "../chunk-KYQXUGH7.js";
44
55
  import {
45
56
  detectProviderLiveCapabilities,
46
57
  hasSpawnProvider,
47
58
  resolveControlPolicy
48
- } from "../chunk-COGHCL6K.js";
59
+ } from "../chunk-JXUAXO74.js";
49
60
  import {
50
61
  AUTO_UPDATE_DISABLE_ENV,
51
62
  autoUpdateOffReason,
@@ -53,16 +64,16 @@ import {
53
64
  describeAutoUpdateCheck,
54
65
  readAutoUpdateState,
55
66
  takeAutoUpdateAnnouncement
56
- } from "../chunk-CTOK3AYA.js";
67
+ } from "../chunk-BWYJ6AAF.js";
57
68
  import {
58
69
  readLedgerSummary
59
- } from "../chunk-4KSTLHWY.js";
70
+ } from "../chunk-2C7CCWVX.js";
60
71
  import {
61
72
  describeBridgeResolution,
62
73
  isBridgeLocator,
63
74
  liveBridgeProbe,
64
75
  resolveBridgeStub
65
- } from "../chunk-GQPCPEG2.js";
76
+ } from "../chunk-5HLTWFJ6.js";
66
77
  import {
67
78
  claudeOtherHolders,
68
79
  claudeUnprovenHolds,
@@ -79,7 +90,7 @@ import {
79
90
  geminiWired,
80
91
  holdsLong,
81
92
  pusharyHookExecutable
82
- } from "../chunk-SND3C2AV.js";
93
+ } from "../chunk-PQ4F64M2.js";
83
94
  import {
84
95
  daemonHasRemoteProof,
85
96
  daemonServiceManagerAvailable,
@@ -88,44 +99,18 @@ import {
88
99
  readDaemonNeedsLogin,
89
100
  readDaemonStatus,
90
101
  readInstalledDaemonService
91
- } from "../chunk-QKOVVL7I.js";
102
+ } from "../chunk-73T6MSU5.js";
92
103
  import {
93
104
  GEMINI_HOOK_BINARY,
94
105
  hasGeminiHooks,
95
106
  missingGeminiHookEvents
96
- } from "../chunk-57DDP4TB.js";
107
+ } from "../chunk-ZQ7IDOKY.js";
97
108
  import "../chunk-XHKBHWLX.js";
98
- import "../chunk-JBXUKGZS.js";
99
- import "../chunk-BEHGVU4W.js";
100
- import "../chunk-LVHGSD5E.js";
101
- import {
102
- getMachineId
103
- } from "../chunk-LM2IOEDK.js";
104
- import {
105
- CODEX_HOOK_EVENTS,
106
- autoUpdateState,
107
- claudeJson,
108
- claudeSettings,
109
- claudeSkillDir,
110
- codexAgentsMd,
111
- codexConfigToml,
112
- codexHookPositions,
113
- codexHooksJson,
114
- codexSkillDir,
115
- codexTrustGaps,
116
- cursorPluginDir,
117
- cursorUserHooks,
118
- cursorUserMcp,
119
- execNpm,
120
- fetchLatestPublishedVersion,
121
- geminiMd,
122
- geminiSettings,
123
- hasCodexHooks,
124
- missingCodexHookEvents,
125
- pusharyConfigFile,
126
- readCodexMcpAuth,
127
- vscodePluginDir
128
- } from "../chunk-3BJQYXTL.js";
109
+ import "../chunk-IJ6ECPA6.js";
110
+ import "../chunk-DZURML2D.js";
111
+ import "../chunk-EGKXSQCY.js";
112
+ import "../chunk-V6QRSU2G.js";
113
+ import "../chunk-POFBE6ZY.js";
129
114
  import {
130
115
  describeReach,
131
116
  describeRoundTrip,
@@ -133,19 +118,19 @@ import {
133
118
  reachVerdict,
134
119
  roundTripEvidence,
135
120
  verifyRoundTrip
136
- } from "../chunk-HHYVBHHC.js";
121
+ } from "../chunk-HDRNWNVP.js";
137
122
  import "../chunk-3EGEA4KH.js";
138
123
  import {
139
124
  checkApiKey,
140
125
  describeKeyCheck
141
- } from "../chunk-TZ4KUNZG.js";
126
+ } from "../chunk-X6KDKOV5.js";
142
127
  import "../chunk-QCGNGEGE.js";
143
128
  import {
144
129
  createIo
145
130
  } from "../chunk-5RUIFDTP.js";
146
131
  import {
147
132
  exitOnHelpFlag
148
- } from "../chunk-P4BNYJ5Q.js";
133
+ } from "../chunk-2PS6QWDW.js";
149
134
  import {
150
135
  parseFlags
151
136
  } from "../chunk-GMXKITVA.js";
@@ -153,23 +138,57 @@ import {
153
138
  keyPrefix,
154
139
  readControlMode,
155
140
  readKeySource
156
- } from "../chunk-CWIARY6F.js";
141
+ } from "../chunk-UOAQ6QMP.js";
157
142
  import {
158
143
  callMcpTool,
159
144
  sendMcpRequest
160
- } from "../chunk-HETOKNIL.js";
161
- import "../chunk-SAF6HGAA.js";
145
+ } from "../chunk-JNXVOU6Y.js";
146
+ import "../chunk-KW2RRR7D.js";
147
+ import {
148
+ getMachineId
149
+ } from "../chunk-XNCMT7YY.js";
162
150
  import {
163
151
  UsageError
164
152
  } from "../chunk-7QLSKOSU.js";
165
153
  import {
166
154
  EXIT
167
155
  } from "../chunk-KZERVKTD.js";
168
- import "../chunk-NPGOQQCV.js";
156
+ import "../chunk-ROQK7IN3.js";
157
+ import {
158
+ CODEX_HOOK_EVENTS,
159
+ autoUpdateState,
160
+ claudeJson,
161
+ claudeSettings,
162
+ claudeSkillDir,
163
+ codexAgentsMd,
164
+ codexConfigToml,
165
+ codexHookPositions,
166
+ codexHooksJson,
167
+ codexSkillDir,
168
+ codexTrustGaps,
169
+ cursorPluginDir,
170
+ cursorUserHooks,
171
+ cursorUserMcp,
172
+ execNpm,
173
+ fetchLatestPublishedVersion,
174
+ fxMcpProfile,
175
+ fxSettings,
176
+ geminiMd,
177
+ geminiSettings,
178
+ hasCodexHooks,
179
+ missingCodexHookEvents,
180
+ pusharyConfigFile,
181
+ readCodexMcpAuth,
182
+ resolvePathBinary,
183
+ vscodePluginDir
184
+ } from "../chunk-DNJUSFBL.js";
169
185
  import "../chunk-T7E75EKA.js";
170
186
  import {
171
187
  getBaseUrl
172
- } from "../chunk-OSJEMXSR.js";
188
+ } from "../chunk-V4AQBAVG.js";
189
+ import {
190
+ NPX_LATEST_COMMAND
191
+ } from "../chunk-B3UXMSMW.js";
173
192
  import {
174
193
  AGENTS,
175
194
  CURSOR_GATE_EVENTS,
@@ -178,17 +197,12 @@ import {
178
197
  HOOK_SOURCES,
179
198
  SUPPORT_DISCORD,
180
199
  SUPPORT_EMAIL,
200
+ getPackageVersion,
181
201
  hookActivationResult,
182
202
  hookCompatibleProfile,
183
- isHookActivationReport
184
- } from "../chunk-GHOB245Q.js";
185
- import {
186
- NPX_LATEST_COMMAND
187
- } from "../chunk-EA3IELHP.js";
188
- import {
189
- getPackageVersion,
203
+ isHookActivationReport,
190
204
  isNewerVersion
191
- } from "../chunk-HWJW3CPO.js";
205
+ } from "../chunk-YROGUPOZ.js";
192
206
 
193
207
  // bin/pushary-doctor.ts
194
208
  import { existsSync, readFileSync, writeFileSync } from "fs";
@@ -441,6 +455,11 @@ var CLAUDE_SETTINGS = claudeSettings();
441
455
  var registeredConfigs = () => [CLAUDE_SETTINGS, codexHooksJson(), ...HOOK_COMPATIBLE_PROFILES.map((profile) => compatibleConfigFile(profile))].filter(existsSync).map((file) => ({ file, contents: readFileSync(file, "utf-8") }));
442
456
  var SKILL_PATH = join(claudeSkillDir(), "SKILL.md");
443
457
  var SHELL_FILES = [".zshrc", ".zprofile", ".bashrc", ".bash_profile"].map((f) => join(homedir2(), f));
458
+ var fxAllowsPusharyTools = () => {
459
+ const read = readFxFile(fxSettings(), readFxSettings);
460
+ return read.kind === "settings" && pusharyToolsAllowed(read.settings);
461
+ };
462
+ var fxBridgeFound = (target) => target.includes("/") ? existsSync(target) : resolvePathBinary(target) !== void 0;
444
463
  var readJson = (path) => {
445
464
  try {
446
465
  return JSON.parse(readFileSync(path, "utf-8"));
@@ -1059,6 +1078,24 @@ var main = async () => {
1059
1078
  } else {
1060
1079
  skipped("OpenCode", installed("opencode") ? "installed, but Pushary is not set up for it" : "not installed");
1061
1080
  }
1081
+ const fxProfile = readFxFile(fxMcpProfile(), readFxProfile);
1082
+ const fxEntry = fxProfile.kind === "profile" ? fxPusharyEntryOf(fxProfile.profile) : void 0;
1083
+ if (isFxPusharyEntry(fxEntry)) {
1084
+ checking("fx");
1085
+ check(true, "fx: Pushary MCP server configured", fxMcpProfile());
1086
+ const bridge = fxBridgeTargetOf(fxEntry);
1087
+ if (bridge) {
1088
+ const found = fxBridgeFound(bridge);
1089
+ check(found, "fx: bridge binary resolves", found ? bridge : `${bridge} is not installed or not on PATH \u2014 re-run ${retryAgentCommand("fx")}`);
1090
+ }
1091
+ if (!fxAllowsPusharyTools()) {
1092
+ console.log(` ${warn} fx: Pushary tools are not auto-allowed ${dim(`(fx will review or prompt for each call; add "${FX_PUSHARY_TOOLS_RULE}": "allow" to permission in ${fxSettings()})`)}`);
1093
+ }
1094
+ } else if (fxProfile.kind === "refused" && installed("fx")) {
1095
+ check(false, "fx: MCP profile", `${fxMcpProfile()} ${FX_PROFILE_REFUSALS[fxProfile.reason]} \u2014 fix it, then run ${retryAgentCommand("fx")}`);
1096
+ } else {
1097
+ skipped("fx", installed("fx") ? "installed, but Pushary is not set up for it" : "not installed");
1098
+ }
1062
1099
  if (bridgeStub) {
1063
1100
  const resolution = resolveBridgeStub(bridgeStub, liveBridgeProbe());
1064
1101
  check(resolution.kind === "bundle", "Mac app behind pushary-bridge", describeBridgeResolution(resolution));
@@ -1,44 +1,47 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-JX67DVMY.js";
4
+ } from "../chunk-UC65FJJT.js";
5
5
  import {
6
6
  isDeferAnswer
7
7
  } from "../chunk-YHG74UFF.js";
8
- import "../chunk-LDS4ERW4.js";
8
+ import "../chunk-EAQMWJPG.js";
9
9
  import "../chunk-SGZJ5LYH.js";
10
- import "../chunk-REYWOCQJ.js";
11
- import "../chunk-HCVAMXHT.js";
12
- import "../chunk-GQPCPEG2.js";
13
- import "../chunk-SND3C2AV.js";
14
- import "../chunk-QKOVVL7I.js";
15
- import "../chunk-57DDP4TB.js";
16
- import "../chunk-VDMX5EMU.js";
17
- import "../chunk-KNIIFNNQ.js";
18
- import "../chunk-66H2QQAK.js";
19
- import "../chunk-JBU7XKY2.js";
10
+ import "../chunk-R2XCLT6I.js";
11
+ import "../chunk-CVALVGA7.js";
12
+ import "../chunk-5HLTWFJ6.js";
13
+ import "../chunk-PQ4F64M2.js";
14
+ import "../chunk-73T6MSU5.js";
15
+ import "../chunk-ZQ7IDOKY.js";
16
+ import "../chunk-VKVIAZQO.js";
17
+ import "../chunk-BH2SKSSK.js";
18
+ import "../chunk-KXMZMZD3.js";
19
+ import "../chunk-B76WVEDX.js";
20
20
  import "../chunk-XHKBHWLX.js";
21
- import "../chunk-BEHGVU4W.js";
21
+ import "../chunk-DZURML2D.js";
22
22
  import {
23
23
  askUser,
24
24
  isDecisionStopped,
25
25
  waitForQuestion
26
- } from "../chunk-LVHGSD5E.js";
26
+ } from "../chunk-EGKXSQCY.js";
27
+ import "../chunk-V6QRSU2G.js";
28
+ import "../chunk-POFBE6ZY.js";
29
+ import "../chunk-GMXKITVA.js";
30
+ import "../chunk-UOAQ6QMP.js";
31
+ import "../chunk-JNXVOU6Y.js";
32
+ import "../chunk-KW2RRR7D.js";
27
33
  import {
28
34
  getMachineId
29
- } from "../chunk-LM2IOEDK.js";
30
- import "../chunk-3BJQYXTL.js";
31
- import "../chunk-GMXKITVA.js";
32
- import "../chunk-CWIARY6F.js";
33
- import "../chunk-HETOKNIL.js";
34
- import "../chunk-SAF6HGAA.js";
35
+ } from "../chunk-XNCMT7YY.js";
35
36
  import "../chunk-7QLSKOSU.js";
36
37
  import "../chunk-KZERVKTD.js";
37
- import "../chunk-NPGOQQCV.js";
38
+ import "../chunk-ROQK7IN3.js";
39
+ import "../chunk-DNJUSFBL.js";
38
40
  import "../chunk-T7E75EKA.js";
39
41
  import {
40
42
  getApiKey
41
- } from "../chunk-OSJEMXSR.js";
43
+ } from "../chunk-V4AQBAVG.js";
44
+ import "../chunk-B3UXMSMW.js";
42
45
  import {
43
46
  ELICITATION_ANSWERABLE_MODE,
44
47
  effectiveWaitSeconds,
@@ -49,9 +52,7 @@ import {
49
52
  planElicitationAsk,
50
53
  readElicitationFields,
51
54
  renderElicitationOutput
52
- } from "../chunk-GHOB245Q.js";
53
- import "../chunk-EA3IELHP.js";
54
- import "../chunk-HWJW3CPO.js";
55
+ } from "../chunk-YROGUPOZ.js";
55
56
 
56
57
  // bin/pushary-elicitation-hook.ts
57
58
  import { basename } from "path";
@@ -5,38 +5,37 @@ import {
5
5
  postLiveSession,
6
6
  postLiveSessionUntilAccepted,
7
7
  startLiveSessionHeartbeat
8
- } from "../chunk-ICGAIM2R.js";
8
+ } from "../chunk-SQRWHALT.js";
9
9
  import {
10
10
  SESSION_IDLE_TIMEOUT_MS,
11
11
  describeIdleWindow,
12
12
  idleDeadlinePassed,
13
13
  startProcessOwnership,
14
14
  withSpawnProcessOwnership
15
- } from "../chunk-NKR4YDRP.js";
16
- import "../chunk-KNIIFNNQ.js";
17
- import "../chunk-66H2QQAK.js";
15
+ } from "../chunk-LEZFOTMI.js";
16
+ import "../chunk-BH2SKSSK.js";
17
+ import "../chunk-KXMZMZD3.js";
18
18
  import {
19
19
  transcriptsEnabled
20
- } from "../chunk-JBU7XKY2.js";
20
+ } from "../chunk-B76WVEDX.js";
21
21
  import {
22
22
  spawnClaude
23
23
  } from "../chunk-XHKBHWLX.js";
24
+ import "../chunk-UOAQ6QMP.js";
24
25
  import {
25
26
  getMachineId
26
- } from "../chunk-LM2IOEDK.js";
27
+ } from "../chunk-XNCMT7YY.js";
28
+ import "../chunk-ROQK7IN3.js";
27
29
  import {
28
30
  resolveBinary
29
- } from "../chunk-3BJQYXTL.js";
30
- import "../chunk-CWIARY6F.js";
31
- import "../chunk-NPGOQQCV.js";
31
+ } from "../chunk-DNJUSFBL.js";
32
32
  import "../chunk-T7E75EKA.js";
33
33
  import {
34
34
  getApiKey,
35
35
  getBaseUrl
36
- } from "../chunk-OSJEMXSR.js";
37
- import "../chunk-GHOB245Q.js";
38
- import "../chunk-EA3IELHP.js";
39
- import "../chunk-HWJW3CPO.js";
36
+ } from "../chunk-V4AQBAVG.js";
37
+ import "../chunk-B3UXMSMW.js";
38
+ import "../chunk-YROGUPOZ.js";
40
39
 
41
40
  // bin/pushary-gemini-bridge.ts
42
41
  import { existsSync } from "fs";
@@ -1,30 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  triggerAutoUpdate
4
- } from "../chunk-CTOK3AYA.js";
4
+ } from "../chunk-BWYJ6AAF.js";
5
5
  import {
6
6
  isGatingMoment,
7
7
  recordKeylessMoment
8
- } from "../chunk-4KSTLHWY.js";
8
+ } from "../chunk-2C7CCWVX.js";
9
9
  import {
10
10
  readHookInput
11
- } from "../chunk-JX67DVMY.js";
11
+ } from "../chunk-UC65FJJT.js";
12
12
  import {
13
13
  denyReasonFrom,
14
14
  isDeferAnswer
15
15
  } from "../chunk-YHG74UFF.js";
16
- import "../chunk-LDS4ERW4.js";
16
+ import "../chunk-EAQMWJPG.js";
17
17
  import "../chunk-SGZJ5LYH.js";
18
- import "../chunk-REYWOCQJ.js";
19
- import "../chunk-HCVAMXHT.js";
20
- import "../chunk-GQPCPEG2.js";
21
- import "../chunk-SND3C2AV.js";
22
- import "../chunk-QKOVVL7I.js";
23
- import "../chunk-57DDP4TB.js";
24
- import "../chunk-VDMX5EMU.js";
25
- import "../chunk-KNIIFNNQ.js";
26
- import "../chunk-66H2QQAK.js";
27
- import "../chunk-JBU7XKY2.js";
18
+ import "../chunk-R2XCLT6I.js";
19
+ import "../chunk-CVALVGA7.js";
20
+ import "../chunk-5HLTWFJ6.js";
21
+ import "../chunk-PQ4F64M2.js";
22
+ import "../chunk-73T6MSU5.js";
23
+ import "../chunk-ZQ7IDOKY.js";
24
+ import "../chunk-VKVIAZQO.js";
25
+ import "../chunk-BH2SKSSK.js";
26
+ import "../chunk-KXMZMZD3.js";
27
+ import "../chunk-B76WVEDX.js";
28
28
  import "../chunk-XHKBHWLX.js";
29
29
  import {
30
30
  DEFAULT_SESSION,
@@ -45,8 +45,8 @@ import {
45
45
  repoKeyFor,
46
46
  reportEvent,
47
47
  scopePathFor
48
- } from "../chunk-JBXUKGZS.js";
49
- import "../chunk-BEHGVU4W.js";
48
+ } from "../chunk-IJ6ECPA6.js";
49
+ import "../chunk-DZURML2D.js";
50
50
  import {
51
51
  DECISION_STOP_REASON,
52
52
  askUser,
@@ -54,22 +54,29 @@ import {
54
54
  isLocalQuestionHandoff,
55
55
  sendNotification,
56
56
  waitForQuestion
57
- } from "../chunk-LVHGSD5E.js";
57
+ } from "../chunk-EGKXSQCY.js";
58
58
  import {
59
- getMachineId
60
- } from "../chunk-LM2IOEDK.js";
61
- import "../chunk-3BJQYXTL.js";
59
+ exitAfterClientReports
60
+ } from "../chunk-V6QRSU2G.js";
61
+ import "../chunk-POFBE6ZY.js";
62
62
  import "../chunk-GMXKITVA.js";
63
- import "../chunk-CWIARY6F.js";
64
- import "../chunk-HETOKNIL.js";
65
- import "../chunk-SAF6HGAA.js";
63
+ import "../chunk-UOAQ6QMP.js";
64
+ import "../chunk-JNXVOU6Y.js";
65
+ import "../chunk-KW2RRR7D.js";
66
+ import {
67
+ getMachineId
68
+ } from "../chunk-XNCMT7YY.js";
66
69
  import "../chunk-7QLSKOSU.js";
67
- import "../chunk-KZERVKTD.js";
68
- import "../chunk-NPGOQQCV.js";
70
+ import {
71
+ EXIT
72
+ } from "../chunk-KZERVKTD.js";
73
+ import "../chunk-ROQK7IN3.js";
74
+ import "../chunk-DNJUSFBL.js";
69
75
  import "../chunk-T7E75EKA.js";
70
76
  import {
71
77
  getApiKey
72
- } from "../chunk-OSJEMXSR.js";
78
+ } from "../chunk-V4AQBAVG.js";
79
+ import "../chunk-B3UXMSMW.js";
73
80
  import {
74
81
  DECISION_LINE_MAX,
75
82
  KILL_REASON,
@@ -78,9 +85,7 @@ import {
78
85
  hookWaitClamped,
79
86
  hookWaitDeadline,
80
87
  resolveGate
81
- } from "../chunk-GHOB245Q.js";
82
- import "../chunk-EA3IELHP.js";
83
- import "../chunk-HWJW3CPO.js";
88
+ } from "../chunk-YROGUPOZ.js";
84
89
 
85
90
  // bin/pushary-gemini-hook.ts
86
91
  import { basename } from "path";
@@ -304,7 +309,7 @@ var emit = (wire) => {
304
309
  var main = async () => {
305
310
  const input = await readHookInput("gemini");
306
311
  if (!input) {
307
- process.exit(0);
312
+ return exitAfterClientReports(EXIT.OK);
308
313
  }
309
314
  try {
310
315
  switch (input.hook_event_name) {
@@ -1,56 +1,61 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePreToolUse
4
- } from "../chunk-57YDFAPP.js";
4
+ } from "../chunk-DVQDPI3T.js";
5
5
  import {
6
6
  activeHookSource,
7
7
  normalizeToolCall,
8
8
  profileFromArgv
9
- } from "../chunk-BG6OCZ4N.js";
10
- import "../chunk-H3FEVIQD.js";
11
- import "../chunk-UAV5MNKY.js";
12
- import "../chunk-4KSTLHWY.js";
9
+ } from "../chunk-WUNZAE7I.js";
10
+ import "../chunk-KYQXUGH7.js";
11
+ import "../chunk-52NVBNJT.js";
12
+ import "../chunk-2C7CCWVX.js";
13
13
  import {
14
14
  readToolHookInput
15
- } from "../chunk-JX67DVMY.js";
15
+ } from "../chunk-UC65FJJT.js";
16
16
  import "../chunk-YHG74UFF.js";
17
- import "../chunk-LDS4ERW4.js";
17
+ import "../chunk-EAQMWJPG.js";
18
18
  import "../chunk-SGZJ5LYH.js";
19
- import "../chunk-REYWOCQJ.js";
20
- import "../chunk-HCVAMXHT.js";
21
- import "../chunk-GQPCPEG2.js";
22
- import "../chunk-SND3C2AV.js";
23
- import "../chunk-QKOVVL7I.js";
24
- import "../chunk-57DDP4TB.js";
25
- import "../chunk-VDMX5EMU.js";
26
- import "../chunk-KNIIFNNQ.js";
27
- import "../chunk-66H2QQAK.js";
28
- import "../chunk-JBU7XKY2.js";
19
+ import "../chunk-R2XCLT6I.js";
20
+ import "../chunk-CVALVGA7.js";
21
+ import "../chunk-5HLTWFJ6.js";
22
+ import "../chunk-PQ4F64M2.js";
23
+ import "../chunk-73T6MSU5.js";
24
+ import "../chunk-ZQ7IDOKY.js";
25
+ import "../chunk-VKVIAZQO.js";
26
+ import "../chunk-BH2SKSSK.js";
27
+ import "../chunk-KXMZMZD3.js";
28
+ import "../chunk-B76WVEDX.js";
29
29
  import "../chunk-XHKBHWLX.js";
30
30
  import {
31
31
  canonicalGateInputs
32
- } from "../chunk-JBXUKGZS.js";
33
- import "../chunk-BEHGVU4W.js";
34
- import "../chunk-LVHGSD5E.js";
35
- import "../chunk-LM2IOEDK.js";
36
- import "../chunk-3BJQYXTL.js";
32
+ } from "../chunk-IJ6ECPA6.js";
33
+ import "../chunk-DZURML2D.js";
34
+ import "../chunk-EGKXSQCY.js";
35
+ import {
36
+ exitAfterClientReports
37
+ } from "../chunk-V6QRSU2G.js";
38
+ import "../chunk-POFBE6ZY.js";
37
39
  import {
38
40
  exitOnHelpFlag
39
- } from "../chunk-P4BNYJ5Q.js";
41
+ } from "../chunk-2PS6QWDW.js";
40
42
  import "../chunk-GMXKITVA.js";
41
- import "../chunk-CWIARY6F.js";
42
- import "../chunk-HETOKNIL.js";
43
- import "../chunk-SAF6HGAA.js";
43
+ import "../chunk-UOAQ6QMP.js";
44
+ import "../chunk-JNXVOU6Y.js";
45
+ import "../chunk-KW2RRR7D.js";
46
+ import "../chunk-XNCMT7YY.js";
44
47
  import "../chunk-7QLSKOSU.js";
45
- import "../chunk-KZERVKTD.js";
46
- import "../chunk-NPGOQQCV.js";
48
+ import {
49
+ EXIT
50
+ } from "../chunk-KZERVKTD.js";
51
+ import "../chunk-ROQK7IN3.js";
52
+ import "../chunk-DNJUSFBL.js";
47
53
  import "../chunk-T7E75EKA.js";
48
- import "../chunk-OSJEMXSR.js";
54
+ import "../chunk-V4AQBAVG.js";
55
+ import "../chunk-B3UXMSMW.js";
49
56
  import {
50
57
  renderPreToolUseVerdict
51
- } from "../chunk-GHOB245Q.js";
52
- import "../chunk-EA3IELHP.js";
53
- import "../chunk-HWJW3CPO.js";
58
+ } from "../chunk-YROGUPOZ.js";
54
59
 
55
60
  // bin/pushary-hook.ts
56
61
  exitOnHelpFlag("hook");
@@ -72,7 +77,7 @@ var main = async () => {
72
77
  "PreToolUse"
73
78
  );
74
79
  if (!raw?.tool_name) {
75
- process.exit(0);
80
+ return exitAfterClientReports(EXIT.OK);
76
81
  }
77
82
  try {
78
83
  const canonical = profile ? canonicalGateInputs(profile.source, raw.tool_name, [raw.tool_input ?? {}], raw.cwd) : void 0;