@pushary/agent-hooks 1.8.2 → 1.8.3

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 (69) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/bin/pushary-bell-hook.js +11 -11
  3. package/dist/bin/pushary-bell.js +2 -2
  4. package/dist/bin/pushary-claude.js +15 -15
  5. package/dist/bin/pushary-clean.js +18 -18
  6. package/dist/bin/pushary-codex-bridge.js +9 -9
  7. package/dist/bin/pushary-codex-hook.js +18 -18
  8. package/dist/bin/pushary-codex.js +8 -8
  9. package/dist/bin/pushary-connect.js +7 -7
  10. package/dist/bin/pushary-daemon.js +31 -28
  11. package/dist/bin/pushary-disconnect.js +11 -11
  12. package/dist/bin/pushary-doctor.js +20 -20
  13. package/dist/bin/pushary-elicitation-hook.js +14 -14
  14. package/dist/bin/pushary-gemini-bridge.js +4 -4
  15. package/dist/bin/pushary-gemini-hook.js +16 -16
  16. package/dist/bin/pushary-hook.js +19 -19
  17. package/dist/bin/pushary-login.js +5 -5
  18. package/dist/bin/pushary-logout.js +1 -1
  19. package/dist/bin/pushary-mcp.js +6 -6
  20. package/dist/bin/pushary-mode.js +5 -5
  21. package/dist/bin/pushary-notification-hook.js +17 -17
  22. package/dist/bin/pushary-opencode-hook.js +15 -15
  23. package/dist/bin/pushary-permission-denied-hook.js +19 -19
  24. package/dist/bin/pushary-permission-hook.js +19 -19
  25. package/dist/bin/pushary-post-hook.js +17 -17
  26. package/dist/bin/pushary-prompt-hook.js +17 -17
  27. package/dist/bin/pushary-session-end-hook.js +17 -17
  28. package/dist/bin/pushary-session-start-hook.js +20 -20
  29. package/dist/bin/pushary-setup.js +23 -23
  30. package/dist/bin/pushary-status.js +9 -9
  31. package/dist/bin/pushary-stop-hook.js +17 -17
  32. package/dist/bin/pushary-stopfailure-hook.js +17 -17
  33. package/dist/bin/pushary-transcript-register.js +8 -8
  34. package/dist/bin/pushary-upgrade.js +215 -139
  35. package/dist/bin/pushary-wait.js +5 -5
  36. package/dist/bin/pushary.js +3 -3
  37. package/dist/{chunk-W2LJ4O3A.js → chunk-27A7L4DA.js} +1 -1
  38. package/dist/{chunk-I4HKMUZQ.js → chunk-34EQOFMH.js} +2 -2
  39. package/dist/{chunk-2SLCHCVN.js → chunk-4CW5EAOI.js} +1 -1
  40. package/dist/{chunk-F6NTWZZC.js → chunk-4DYHBXX4.js} +5 -5
  41. package/dist/{chunk-INSMZNS7.js → chunk-4SJIPHR3.js} +1 -1
  42. package/dist/{chunk-ZJYJAD52.js → chunk-6SS74UHS.js} +1 -1
  43. package/dist/{chunk-DVW2MYCM.js → chunk-6UDK5TY6.js} +1 -1
  44. package/dist/{chunk-MMVCI6DT.js → chunk-AKCE6ZRF.js} +3 -3
  45. package/dist/{chunk-BDMC5H5L.js → chunk-APURTMSW.js} +2 -2
  46. package/dist/{chunk-MOTNSXC3.js → chunk-CTNLP4A5.js} +4 -4
  47. package/dist/{chunk-B3UVRGYP.js → chunk-CXYKQAL2.js} +5 -5
  48. package/dist/{chunk-4A3UQERT.js → chunk-DMU5E6HJ.js} +1 -1
  49. package/dist/{chunk-EESPY5DG.js → chunk-E5JGQGLD.js} +2 -2
  50. package/dist/{chunk-644AEX4T.js → chunk-EJXEHNB5.js} +2 -2
  51. package/dist/{chunk-5DGNEUXK.js → chunk-FBTUF2PH.js} +1 -1
  52. package/dist/{chunk-EIGJYCOE.js → chunk-IEXWWAJY.js} +2 -2
  53. package/dist/{chunk-NNWQ5VDB.js → chunk-MSMKCO4Y.js} +6 -6
  54. package/dist/{chunk-I3XLHSOC.js → chunk-OLYTGVCC.js} +3 -3
  55. package/dist/{chunk-DUA5O6X5.js → chunk-SD6OLZJX.js} +3 -3
  56. package/dist/{chunk-XQZEIWAV.js → chunk-SOUJG6UY.js} +53 -5
  57. package/dist/{chunk-KB2FTO4O.js → chunk-UXKXGRKG.js} +2 -2
  58. package/dist/{chunk-T55H6YEP.js → chunk-VF3X4MDB.js} +1 -1
  59. package/dist/{chunk-64H5IZZD.js → chunk-VI55VXDH.js} +1 -1
  60. package/dist/{chunk-NHCUXTEM.js → chunk-VUP5BMOD.js} +1 -1
  61. package/dist/{chunk-HOEB6AKG.js → chunk-XH7UNEHO.js} +1 -1
  62. package/dist/{chunk-LK2S5XIV.js → chunk-XNJ4MQF3.js} +2 -2
  63. package/dist/{chunk-S2UNQQQS.js → chunk-YLJ26RR2.js} +1 -1
  64. package/dist/{chunk-XEGVVU5H.js → chunk-YOYSXLUB.js} +2 -2
  65. package/dist/{chunk-YNCGXHM4.js → chunk-ZOKXZ3AS.js} +2 -2
  66. package/dist/{chunk-UPLV5AJF.js → chunk-ZR7LIQKO.js} +57 -5
  67. package/dist/{reapply-3UERAKQN.js → reapply-DYOQAVUP.js} +6 -6
  68. package/dist/src/index.js +13 -13
  69. package/package.json +1 -1
@@ -16,7 +16,8 @@ import {
16
16
  } from "./chunk-5YY3IJT4.js";
17
17
 
18
18
  // src/npm.ts
19
- import { execFileSync, execSync } from "child_process";
19
+ import { promisify } from "util";
20
+ import { exec, execFile, execFileSync, execSync } from "child_process";
20
21
  import { existsSync, readFileSync, readlinkSync, realpathSync } from "fs";
21
22
  import { dirname, isAbsolute, join, relative, resolve } from "path";
22
23
  var latestReleaseUrl = (packageName) => `https://registry.npmjs.org/${packageName}/latest`;
@@ -57,7 +58,10 @@ var readGlobalPrefix = () => {
57
58
  var resolveGlobalBinary = (name) => {
58
59
  const prefix = readGlobalPrefix();
59
60
  if (prefix === void 0) return void 0;
60
- const candidates = process.platform === "win32" ? [join(prefix, `${name}.cmd`), join(prefix, name)] : [join(prefix, "bin", name)];
61
+ return resolveGlobalBinaryAt(name, prefix);
62
+ };
63
+ var resolveGlobalBinaryAt = (name, prefix, platform = process.platform) => {
64
+ const candidates = platform === "win32" ? [join(prefix, `${name}.cmd`), join(prefix, name)] : [join(prefix, "bin", name)];
61
65
  return candidates.find(existsSync);
62
66
  };
63
67
  var resolvePathBinary = (name, platform = process.platform) => {
@@ -71,6 +75,35 @@ var resolvePathBinary = (name, platform = process.platform) => {
71
75
  return void 0;
72
76
  }
73
77
  };
78
+ var runFileAsync = promisify(execFile);
79
+ var runShellAsync = promisify(exec);
80
+ var DISCOVERY_TIMEOUT_MS = 5e3;
81
+ var refuseDiscoveryAfterStop = (signal) => signal?.throwIfAborted();
82
+ var runNpmDiscovery = (command, signal) => {
83
+ refuseDiscoveryAfterStop(signal);
84
+ const options = { env: cleanNpmEnv(), timeout: DISCOVERY_TIMEOUT_MS, signal };
85
+ return process.platform === "win32" ? runShellAsync(`npm ${command}`, options) : runFileAsync("npm", command.split(" "), options);
86
+ };
87
+ var readGlobalPrefixAsync = async (signal) => {
88
+ try {
89
+ const { stdout } = await runNpmDiscovery("prefix -g --no-workspaces", signal);
90
+ return stdout.trim() || void 0;
91
+ } catch {
92
+ return void 0;
93
+ }
94
+ };
95
+ var resolvePathBinaryAsync = async (name, signal, platform = process.platform) => {
96
+ try {
97
+ refuseDiscoveryAfterStop(signal);
98
+ const { stdout } = await runFileAsync(platform === "win32" ? "where" : "which", [name], {
99
+ timeout: DISCOVERY_TIMEOUT_MS,
100
+ signal
101
+ });
102
+ return stdout.split(/\r?\n/, 1)[0]?.trim() || void 0;
103
+ } catch {
104
+ return void 0;
105
+ }
106
+ };
74
107
  var NPM_MISSING_MESSAGE = "npm is not on PATH, and the hooks run from a global npm install.";
75
108
  var NPM_LOOKUP = process.platform === "win32" ? "where npm" : "command -v npm";
76
109
  var npmIsOnPath = () => {
@@ -121,11 +154,26 @@ var resolvePackageVersionFromBinary = (binary, packageName) => {
121
154
  }
122
155
  return void 0;
123
156
  };
157
+ var globalPackageVersionIn = (output, name) => {
158
+ const result = JSON.parse(output);
159
+ if (typeof result !== "object" || result === null || !("dependencies" in result)) return void 0;
160
+ const dependencies = result.dependencies;
161
+ if (typeof dependencies !== "object" || dependencies === null || !(name in dependencies)) return void 0;
162
+ const entry = Reflect.get(dependencies, name);
163
+ if (typeof entry !== "object" || entry === null || !("version" in entry)) return void 0;
164
+ return typeof entry.version === "string" ? entry.version : void 0;
165
+ };
124
166
  var resolveGlobalPackageVersion = (name) => {
125
167
  try {
126
- const result = JSON.parse(execNpm("list -g --depth=0 --json --no-workspaces", { timeout: 5e3 }).toString());
127
- const value = result.dependencies?.[name]?.version;
128
- return typeof value === "string" ? value : void 0;
168
+ return globalPackageVersionIn(execNpm("list -g --depth=0 --json --no-workspaces", { timeout: DISCOVERY_TIMEOUT_MS }).toString(), name);
169
+ } catch {
170
+ return void 0;
171
+ }
172
+ };
173
+ var resolveGlobalPackageVersionAsync = async (name, signal) => {
174
+ try {
175
+ const { stdout } = await runNpmDiscovery("list -g --depth=0 --json --no-workspaces", signal);
176
+ return globalPackageVersionIn(stdout, name);
129
177
  } catch {
130
178
  return void 0;
131
179
  }
@@ -754,13 +802,17 @@ export {
754
802
  execNpm,
755
803
  readGlobalPrefix,
756
804
  resolveGlobalBinary,
805
+ resolveGlobalBinaryAt,
757
806
  resolvePathBinary,
807
+ readGlobalPrefixAsync,
808
+ resolvePathBinaryAsync,
758
809
  npmIsOnPath,
759
810
  globalPackageState,
760
811
  NpmMissingError,
761
812
  resolveBinary,
762
813
  resolvePackageVersionFromBinary,
763
814
  resolveGlobalPackageVersion,
815
+ resolveGlobalPackageVersionAsync,
764
816
  readGlobalFolder,
765
817
  readGlobalCliInstallAt,
766
818
  readGlobalCliInstall,
@@ -9,16 +9,16 @@ import {
9
9
  reapplyGeminiSettings,
10
10
  reapplyVsCodePlugin,
11
11
  repairCodexHolds
12
- } from "./chunk-B3UVRGYP.js";
13
- import "./chunk-W2LJ4O3A.js";
14
- import "./chunk-644AEX4T.js";
12
+ } from "./chunk-CXYKQAL2.js";
13
+ import "./chunk-27A7L4DA.js";
14
+ import "./chunk-EJXEHNB5.js";
15
15
  import "./chunk-RIVNNBEK.js";
16
- import "./chunk-XEGVVU5H.js";
17
- import "./chunk-S2UNQQQS.js";
16
+ import "./chunk-YOYSXLUB.js";
17
+ import "./chunk-YLJ26RR2.js";
18
18
  import "./chunk-XHKBHWLX.js";
19
19
  import "./chunk-6ICPEJY5.js";
20
20
  import "./chunk-VFFHQC7W.js";
21
- import "./chunk-UPLV5AJF.js";
21
+ import "./chunk-ZR7LIQKO.js";
22
22
  import "./chunk-T7E75EKA.js";
23
23
  import "./chunk-5YY3IJT4.js";
24
24
  export {
package/dist/src/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  handlePreToolUse
3
- } from "../chunk-NNWQ5VDB.js";
4
- import "../chunk-MOTNSXC3.js";
5
- import "../chunk-644AEX4T.js";
6
- import "../chunk-5DGNEUXK.js";
3
+ } from "../chunk-MSMKCO4Y.js";
4
+ import "../chunk-CTNLP4A5.js";
5
+ import "../chunk-EJXEHNB5.js";
6
+ import "../chunk-FBTUF2PH.js";
7
7
  import "../chunk-7ITOAMCD.js";
8
8
  import "../chunk-5OP5MQI7.js";
9
- import "../chunk-S2UNQQQS.js";
9
+ import "../chunk-YLJ26RR2.js";
10
10
  import {
11
11
  fetchAccountPublicKey
12
12
  } from "../chunk-UMMCHS6P.js";
@@ -19,24 +19,24 @@ import {
19
19
  handlePostToolUse,
20
20
  handleStop,
21
21
  reportEvent
22
- } from "../chunk-F6NTWZZC.js";
22
+ } from "../chunk-4DYHBXX4.js";
23
23
  import "../chunk-N6IOSZOE.js";
24
24
  import "../chunk-VFFHQC7W.js";
25
25
  import {
26
26
  askUser,
27
27
  cancelQuestion,
28
28
  waitForAnswer
29
- } from "../chunk-MMVCI6DT.js";
30
- import "../chunk-KB2FTO4O.js";
29
+ } from "../chunk-AKCE6ZRF.js";
30
+ import "../chunk-UXKXGRKG.js";
31
31
  import "../chunk-POFBE6ZY.js";
32
- import "../chunk-I4HKMUZQ.js";
33
- import "../chunk-DVW2MYCM.js";
34
- import "../chunk-2SLCHCVN.js";
35
- import "../chunk-4A3UQERT.js";
32
+ import "../chunk-34EQOFMH.js";
33
+ import "../chunk-6UDK5TY6.js";
34
+ import "../chunk-4CW5EAOI.js";
35
+ import "../chunk-DMU5E6HJ.js";
36
36
  import "../chunk-7QLSKOSU.js";
37
37
  import "../chunk-KZERVKTD.js";
38
38
  import "../chunk-5Y2DY6X4.js";
39
- import "../chunk-UPLV5AJF.js";
39
+ import "../chunk-ZR7LIQKO.js";
40
40
  import "../chunk-T7E75EKA.js";
41
41
  import {
42
42
  getApiKey,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pushary/agent-hooks",
3
- "version": "1.8.2",
3
+ "version": "1.8.3",
4
4
  "description": "Permission hooks for AI coding agents: route tool approvals through Pushary push notifications",
5
5
  "keywords": [
6
6
  "pushary",