@pushary/agent-hooks 0.98.0 → 1.0.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 (81) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/bin/pushary-bell-hook.js +20 -19
  3. package/dist/bin/pushary-bell.js +7 -6
  4. package/dist/bin/pushary-claude.js +24 -25
  5. package/dist/bin/pushary-clean.js +61 -18
  6. package/dist/bin/pushary-codex-bridge.js +11 -10
  7. package/dist/bin/pushary-codex-hook.js +43 -35
  8. package/dist/bin/pushary-codex.js +7 -7
  9. package/dist/bin/pushary-connect.js +7 -6
  10. package/dist/bin/pushary-cowork.js +3 -3
  11. package/dist/bin/pushary-daemon.js +24 -23
  12. package/dist/bin/pushary-disconnect.js +48 -7
  13. package/dist/bin/pushary-doctor.js +61 -21
  14. package/dist/bin/pushary-elicitation-hook.js +19 -18
  15. package/dist/bin/pushary-gemini-bridge.js +10 -9
  16. package/dist/bin/pushary-gemini-hook.js +27 -28
  17. package/dist/bin/pushary-hook.js +63 -34
  18. package/dist/bin/pushary-login.js +8 -7
  19. package/dist/bin/pushary-logout.js +5 -4
  20. package/dist/bin/pushary-mode.js +3 -3
  21. package/dist/bin/pushary-notification-hook.js +28 -22
  22. package/dist/bin/pushary-opencode-hook.js +29 -30
  23. package/dist/bin/pushary-permission-denied-hook.js +26 -24
  24. package/dist/bin/pushary-permission-hook.js +34 -25
  25. package/dist/bin/pushary-post-hook.js +32 -23
  26. package/dist/bin/pushary-prompt-hook.js +28 -22
  27. package/dist/bin/pushary-session-end-hook.js +28 -22
  28. package/dist/bin/pushary-session-start-hook.js +32 -26
  29. package/dist/bin/pushary-setup.js +146 -37
  30. package/dist/bin/pushary-stats.js +2 -2
  31. package/dist/bin/pushary-status.js +11 -10
  32. package/dist/bin/pushary-stop-hook.js +29 -23
  33. package/dist/bin/pushary-stopfailure-hook.js +28 -22
  34. package/dist/bin/pushary-transcript-register.js +18 -17
  35. package/dist/bin/pushary-transcripts.js +6 -5
  36. package/dist/bin/pushary-upgrade.js +15 -14
  37. package/dist/bin/pushary-wait.js +3 -3
  38. package/dist/{chunk-HFQ7WSHZ.js → chunk-2PS3DTHQ.js} +7 -4
  39. package/dist/{chunk-W2MG2P46.js → chunk-2SL5X7UB.js} +9 -6
  40. package/dist/{chunk-53QCTSWY.js → chunk-3C4ERARU.js} +4 -4
  41. package/dist/{chunk-LBNAGGLV.js → chunk-3UUAK2AK.js} +3 -2
  42. package/dist/{chunk-V47GITZV.js → chunk-447SBIC7.js} +15 -2
  43. package/dist/{chunk-VZD2GEKB.js → chunk-4LL6LG5X.js} +1 -43
  44. package/dist/{chunk-WU6LSXJ6.js → chunk-7WMFPYR5.js} +2 -2
  45. package/dist/{chunk-XPPXOKIG.js → chunk-7ZDFVWRR.js} +1 -1
  46. package/dist/chunk-A3D43VXO.js +44 -0
  47. package/dist/{chunk-3RVCQDC4.js → chunk-BOZETFXB.js} +1 -1
  48. package/dist/{chunk-LX4NNYII.js → chunk-BPD4P3NN.js} +2 -2
  49. package/dist/{chunk-IRLTW6KF.js → chunk-CDTGL7TT.js} +1 -1
  50. package/dist/{chunk-CP34FI4B.js → chunk-D2N2EJH2.js} +2 -2
  51. package/dist/{chunk-J44RPHUZ.js → chunk-DMJTWULU.js} +2 -2
  52. package/dist/{chunk-SJLGOVC6.js → chunk-DOYARIYB.js} +4 -2
  53. package/dist/{chunk-XOOWC62T.js → chunk-DUOG74E7.js} +1 -1
  54. package/dist/{chunk-OPR2BPD4.js → chunk-EMCNSBF3.js} +1 -1
  55. package/dist/{chunk-5KLAETSU.js → chunk-GTR72MIU.js} +1 -1
  56. package/dist/{chunk-5B5QV3KC.js → chunk-HGEI7SVM.js} +8 -8
  57. package/dist/chunk-HS2KEAFD.js +224 -0
  58. package/dist/{chunk-6CYB77VD.js → chunk-I3TWY7GH.js} +30 -29
  59. package/dist/{chunk-NQGYPTJQ.js → chunk-IBU7UU3R.js} +1 -1
  60. package/dist/{chunk-M4TVEMLH.js → chunk-IWZG2Y4Z.js} +1 -1
  61. package/dist/{chunk-TZHDKRMG.js → chunk-IYA3NCZG.js} +2 -2
  62. package/dist/{chunk-XL3RKJYQ.js → chunk-LTPQKBJH.js} +65 -30
  63. package/dist/{chunk-YJDRHQLG.js → chunk-MDV7ZRAT.js} +698 -43
  64. package/dist/{chunk-QXIF6R4P.js → chunk-MGI6MLFU.js} +16 -16
  65. package/dist/{chunk-DOD3A6EU.js → chunk-MSOFZYI3.js} +4 -4
  66. package/dist/{chunk-JQU6PMH4.js → chunk-R744XA2M.js} +62 -45
  67. package/dist/{chunk-FAJ4R7IB.js → chunk-RFNMSC6N.js} +1 -1
  68. package/dist/{chunk-NIXVMMJM.js → chunk-S2W4ZSHE.js} +1 -1
  69. package/dist/{chunk-OUAE3GKO.js → chunk-TTBRBWAK.js} +278 -1
  70. package/dist/{chunk-6C6MS57P.js → chunk-TVY7AT6O.js} +1 -1
  71. package/dist/{chunk-2GLOHBYB.js → chunk-UWQVODHT.js} +1 -1
  72. package/dist/{chunk-6LRGZJFB.js → chunk-XK34HTMW.js} +10 -6
  73. package/dist/{chunk-SI7GYBQP.js → chunk-XKDKUFMP.js} +1 -1
  74. package/dist/{chunk-HB2KB7QL.js → chunk-XNXIMIFY.js} +1 -1
  75. package/dist/{chunk-K6CH5NVW.js → chunk-Y55JNI2I.js} +1 -1
  76. package/dist/{chunk-OBYC6SN4.js → chunk-YKLCWWEI.js} +1 -1
  77. package/dist/{chunk-B35OCFXH.js → chunk-ZZIUQVAN.js} +4 -4
  78. package/dist/reapply-I4NB5SSM.js +30 -0
  79. package/dist/src/index.js +13 -10
  80. package/package.json +1 -1
  81. package/dist/chunk-A76GNRIK.js +0 -608
@@ -2,22 +2,22 @@
2
2
  import {
3
3
  describeLastSeen,
4
4
  listMachines
5
- } from "../chunk-B35OCFXH.js";
6
- import "../chunk-TZHDKRMG.js";
7
- import "../chunk-DOD3A6EU.js";
5
+ } from "../chunk-ZZIUQVAN.js";
6
+ import "../chunk-IYA3NCZG.js";
7
+ import "../chunk-MSOFZYI3.js";
8
8
  import "../chunk-XHKBHWLX.js";
9
- import "../chunk-WU6LSXJ6.js";
10
- import "../chunk-XL3RKJYQ.js";
9
+ import "../chunk-7WMFPYR5.js";
10
+ import "../chunk-LTPQKBJH.js";
11
11
  import {
12
12
  describeReach,
13
13
  fetchChannels,
14
14
  reachVerdict
15
- } from "../chunk-LX4NNYII.js";
15
+ } from "../chunk-BPD4P3NN.js";
16
16
  import "../chunk-3EGEA4KH.js";
17
17
  import {
18
18
  checkApiKey,
19
19
  describeKeyCheck
20
- } from "../chunk-3RVCQDC4.js";
20
+ } from "../chunk-BOZETFXB.js";
21
21
  import "../chunk-QCGNGEGE.js";
22
22
  import {
23
23
  createIo
@@ -32,7 +32,7 @@ import {
32
32
  import "../chunk-DINDL2CF.js";
33
33
  import {
34
34
  readKeySource
35
- } from "../chunk-SJLGOVC6.js";
35
+ } from "../chunk-DOYARIYB.js";
36
36
  import "../chunk-EYRGBYZG.js";
37
37
  import "../chunk-SAF6HGAA.js";
38
38
  import {
@@ -41,9 +41,10 @@ import {
41
41
  import {
42
42
  EXIT
43
43
  } from "../chunk-KZERVKTD.js";
44
- import "../chunk-VZD2GEKB.js";
44
+ import "../chunk-A3D43VXO.js";
45
+ import "../chunk-4LL6LG5X.js";
45
46
  import "../chunk-2UMNXADU.js";
46
- import "../chunk-OUAE3GKO.js";
47
+ import "../chunk-TTBRBWAK.js";
47
48
 
48
49
  // src/status.ts
49
50
  var keySourceLine = (source) => {
@@ -1,51 +1,57 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ activeHookSource,
4
+ activeIdentity
5
+ } from "../chunk-HS2KEAFD.js";
6
+ import "../chunk-MGI6MLFU.js";
2
7
  import {
3
8
  readHookInput
4
- } from "../chunk-M4TVEMLH.js";
5
- import "../chunk-5B5QV3KC.js";
6
- import "../chunk-OBYC6SN4.js";
7
- import "../chunk-W2MG2P46.js";
8
- import "../chunk-LBNAGGLV.js";
9
- import "../chunk-IRLTW6KF.js";
10
- import "../chunk-6LRGZJFB.js";
11
- import "../chunk-DOD3A6EU.js";
12
- import "../chunk-HFQ7WSHZ.js";
13
- import "../chunk-2GLOHBYB.js";
14
- import "../chunk-XPPXOKIG.js";
9
+ } from "../chunk-IWZG2Y4Z.js";
10
+ import "../chunk-HGEI7SVM.js";
11
+ import "../chunk-YKLCWWEI.js";
12
+ import "../chunk-2SL5X7UB.js";
13
+ import "../chunk-3UUAK2AK.js";
14
+ import "../chunk-CDTGL7TT.js";
15
+ import "../chunk-XK34HTMW.js";
16
+ import "../chunk-MSOFZYI3.js";
17
+ import "../chunk-2PS3DTHQ.js";
18
+ import "../chunk-UWQVODHT.js";
19
+ import "../chunk-7ZDFVWRR.js";
15
20
  import "../chunk-EQRS3SGM.js";
16
- import "../chunk-NQGYPTJQ.js";
21
+ import "../chunk-IBU7UU3R.js";
17
22
  import "../chunk-XHKBHWLX.js";
18
23
  import {
19
24
  handleStop,
20
25
  handleSubagentStop,
21
26
  isSubagentStop
22
- } from "../chunk-YJDRHQLG.js";
23
- import "../chunk-A76GNRIK.js";
24
- import "../chunk-OPR2BPD4.js";
27
+ } from "../chunk-MDV7ZRAT.js";
28
+ import "../chunk-EMCNSBF3.js";
25
29
  import "../chunk-LGXUGYUH.js";
26
- import "../chunk-WU6LSXJ6.js";
27
- import "../chunk-XL3RKJYQ.js";
30
+ import "../chunk-7WMFPYR5.js";
31
+ import "../chunk-LTPQKBJH.js";
28
32
  import "../chunk-GMXKITVA.js";
29
33
  import "../chunk-DINDL2CF.js";
30
- import "../chunk-SJLGOVC6.js";
34
+ import "../chunk-DOYARIYB.js";
31
35
  import "../chunk-EYRGBYZG.js";
32
36
  import "../chunk-SAF6HGAA.js";
33
37
  import "../chunk-7QLSKOSU.js";
34
38
  import "../chunk-KZERVKTD.js";
35
- import "../chunk-VZD2GEKB.js";
39
+ import "../chunk-A3D43VXO.js";
40
+ import "../chunk-4LL6LG5X.js";
36
41
  import "../chunk-2UMNXADU.js";
37
- import "../chunk-OUAE3GKO.js";
42
+ import "../chunk-TTBRBWAK.js";
38
43
 
39
44
  // bin/pushary-stop-hook.ts
45
+ var AGENT = activeIdentity(process.argv);
40
46
  var main = async () => {
41
- const input = await readHookInput("claude", "Stop");
47
+ const input = await readHookInput(activeHookSource(process.argv), "Stop");
42
48
  if (!input) return;
43
49
  try {
44
50
  if (isSubagentStop(input)) {
45
- await handleSubagentStop(input);
51
+ await handleSubagentStop(input, AGENT);
46
52
  return;
47
53
  }
48
- const output = await handleStop(input);
54
+ const output = await handleStop(input, AGENT);
49
55
  if (output) process.stdout.write(JSON.stringify(output));
50
56
  } catch {
51
57
  }
@@ -1,45 +1,51 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ activeHookSource,
4
+ activeIdentity
5
+ } from "../chunk-HS2KEAFD.js";
6
+ import "../chunk-MGI6MLFU.js";
2
7
  import {
3
8
  readHookInput
4
- } from "../chunk-M4TVEMLH.js";
5
- import "../chunk-5B5QV3KC.js";
6
- import "../chunk-OBYC6SN4.js";
7
- import "../chunk-W2MG2P46.js";
8
- import "../chunk-LBNAGGLV.js";
9
- import "../chunk-IRLTW6KF.js";
10
- import "../chunk-6LRGZJFB.js";
11
- import "../chunk-DOD3A6EU.js";
12
- import "../chunk-HFQ7WSHZ.js";
13
- import "../chunk-2GLOHBYB.js";
14
- import "../chunk-XPPXOKIG.js";
9
+ } from "../chunk-IWZG2Y4Z.js";
10
+ import "../chunk-HGEI7SVM.js";
11
+ import "../chunk-YKLCWWEI.js";
12
+ import "../chunk-2SL5X7UB.js";
13
+ import "../chunk-3UUAK2AK.js";
14
+ import "../chunk-CDTGL7TT.js";
15
+ import "../chunk-XK34HTMW.js";
16
+ import "../chunk-MSOFZYI3.js";
17
+ import "../chunk-2PS3DTHQ.js";
18
+ import "../chunk-UWQVODHT.js";
19
+ import "../chunk-7ZDFVWRR.js";
15
20
  import "../chunk-EQRS3SGM.js";
16
- import "../chunk-NQGYPTJQ.js";
21
+ import "../chunk-IBU7UU3R.js";
17
22
  import "../chunk-XHKBHWLX.js";
18
23
  import {
19
24
  handleStopFailure
20
- } from "../chunk-YJDRHQLG.js";
21
- import "../chunk-A76GNRIK.js";
22
- import "../chunk-OPR2BPD4.js";
25
+ } from "../chunk-MDV7ZRAT.js";
26
+ import "../chunk-EMCNSBF3.js";
23
27
  import "../chunk-LGXUGYUH.js";
24
- import "../chunk-WU6LSXJ6.js";
25
- import "../chunk-XL3RKJYQ.js";
28
+ import "../chunk-7WMFPYR5.js";
29
+ import "../chunk-LTPQKBJH.js";
26
30
  import "../chunk-GMXKITVA.js";
27
31
  import "../chunk-DINDL2CF.js";
28
- import "../chunk-SJLGOVC6.js";
32
+ import "../chunk-DOYARIYB.js";
29
33
  import "../chunk-EYRGBYZG.js";
30
34
  import "../chunk-SAF6HGAA.js";
31
35
  import "../chunk-7QLSKOSU.js";
32
36
  import "../chunk-KZERVKTD.js";
33
- import "../chunk-VZD2GEKB.js";
37
+ import "../chunk-A3D43VXO.js";
38
+ import "../chunk-4LL6LG5X.js";
34
39
  import "../chunk-2UMNXADU.js";
35
- import "../chunk-OUAE3GKO.js";
40
+ import "../chunk-TTBRBWAK.js";
36
41
 
37
42
  // bin/pushary-stopfailure-hook.ts
43
+ var AGENT = activeIdentity(process.argv);
38
44
  var main = async () => {
39
- const input = await readHookInput("claude", "StopFailure");
45
+ const input = await readHookInput(activeHookSource(process.argv), "StopFailure");
40
46
  if (!input) return;
41
47
  try {
42
- await handleStopFailure(input);
48
+ await handleStopFailure(input, AGENT);
43
49
  } catch {
44
50
  }
45
51
  };
@@ -1,30 +1,31 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  registerTranscript
4
- } from "../chunk-5B5QV3KC.js";
5
- import "../chunk-OBYC6SN4.js";
6
- import "../chunk-W2MG2P46.js";
7
- import "../chunk-LBNAGGLV.js";
8
- import "../chunk-IRLTW6KF.js";
9
- import "../chunk-6LRGZJFB.js";
10
- import "../chunk-DOD3A6EU.js";
11
- import "../chunk-HFQ7WSHZ.js";
12
- import "../chunk-2GLOHBYB.js";
13
- import "../chunk-XPPXOKIG.js";
4
+ } from "../chunk-HGEI7SVM.js";
5
+ import "../chunk-YKLCWWEI.js";
6
+ import "../chunk-2SL5X7UB.js";
7
+ import "../chunk-3UUAK2AK.js";
8
+ import "../chunk-CDTGL7TT.js";
9
+ import "../chunk-XK34HTMW.js";
10
+ import "../chunk-MSOFZYI3.js";
11
+ import "../chunk-2PS3DTHQ.js";
12
+ import "../chunk-UWQVODHT.js";
13
+ import "../chunk-7ZDFVWRR.js";
14
14
  import "../chunk-EQRS3SGM.js";
15
- import "../chunk-NQGYPTJQ.js";
15
+ import "../chunk-IBU7UU3R.js";
16
16
  import "../chunk-XHKBHWLX.js";
17
- import "../chunk-OPR2BPD4.js";
18
- import "../chunk-WU6LSXJ6.js";
19
- import "../chunk-XL3RKJYQ.js";
17
+ import "../chunk-EMCNSBF3.js";
18
+ import "../chunk-7WMFPYR5.js";
19
+ import "../chunk-LTPQKBJH.js";
20
20
  import "../chunk-GMXKITVA.js";
21
21
  import "../chunk-DINDL2CF.js";
22
- import "../chunk-SJLGOVC6.js";
22
+ import "../chunk-DOYARIYB.js";
23
23
  import "../chunk-7QLSKOSU.js";
24
24
  import "../chunk-KZERVKTD.js";
25
- import "../chunk-VZD2GEKB.js";
25
+ import "../chunk-A3D43VXO.js";
26
+ import "../chunk-4LL6LG5X.js";
26
27
  import "../chunk-2UMNXADU.js";
27
- import "../chunk-OUAE3GKO.js";
28
+ import "../chunk-TTBRBWAK.js";
28
29
 
29
30
  // bin/pushary-transcript-register.ts
30
31
  var raw = "";
@@ -3,20 +3,21 @@ import {
3
3
  clearPin,
4
4
  fingerprint,
5
5
  loadPin
6
- } from "../chunk-OBYC6SN4.js";
6
+ } from "../chunk-YKLCWWEI.js";
7
7
  import {
8
8
  transcriptsEnabled
9
- } from "../chunk-NQGYPTJQ.js";
9
+ } from "../chunk-IBU7UU3R.js";
10
10
  import {
11
11
  exitOnHelpFlag
12
12
  } from "../chunk-GOQHN2UH.js";
13
13
  import "../chunk-LZQVAEWP.js";
14
14
  import "../chunk-DINDL2CF.js";
15
- import "../chunk-SJLGOVC6.js";
15
+ import "../chunk-DOYARIYB.js";
16
16
  import "../chunk-KZERVKTD.js";
17
- import "../chunk-VZD2GEKB.js";
17
+ import "../chunk-A3D43VXO.js";
18
+ import "../chunk-4LL6LG5X.js";
18
19
  import "../chunk-2UMNXADU.js";
19
- import "../chunk-OUAE3GKO.js";
20
+ import "../chunk-TTBRBWAK.js";
20
21
 
21
22
  // bin/pushary-transcripts.ts
22
23
  exitOnHelpFlag("transcripts");
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  reapplyAllAgents
4
- } from "../chunk-JQU6PMH4.js";
5
- import "../chunk-K6CH5NVW.js";
4
+ } from "../chunk-R744XA2M.js";
5
+ import "../chunk-Y55JNI2I.js";
6
6
  import {
7
7
  waitForMachineReadiness
8
- } from "../chunk-B35OCFXH.js";
9
- import "../chunk-QXIF6R4P.js";
8
+ } from "../chunk-ZZIUQVAN.js";
9
+ import "../chunk-MGI6MLFU.js";
10
10
  import {
11
11
  detectProviderLiveCapabilities,
12
12
  hasSpawnProvider,
13
13
  resolveControlPolicy
14
- } from "../chunk-TZHDKRMG.js";
15
- import "../chunk-6LRGZJFB.js";
14
+ } from "../chunk-IYA3NCZG.js";
15
+ import "../chunk-XK34HTMW.js";
16
16
  import {
17
17
  daemonHasRemoteProof,
18
18
  daemonServiceManagerAvailable,
@@ -23,13 +23,13 @@ import {
23
23
  replaceDaemonService,
24
24
  stopDaemonService,
25
25
  waitForDaemonRemoteProof
26
- } from "../chunk-DOD3A6EU.js";
27
- import "../chunk-HFQ7WSHZ.js";
26
+ } from "../chunk-MSOFZYI3.js";
27
+ import "../chunk-2PS3DTHQ.js";
28
28
  import {
29
29
  needsShell
30
30
  } from "../chunk-XHKBHWLX.js";
31
- import "../chunk-OPR2BPD4.js";
32
- import "../chunk-WU6LSXJ6.js";
31
+ import "../chunk-EMCNSBF3.js";
32
+ import "../chunk-7WMFPYR5.js";
33
33
  import {
34
34
  claudeJson,
35
35
  codexConfigToml,
@@ -39,7 +39,7 @@ import {
39
39
  npmErrorMessage,
40
40
  resolveGlobalBinary,
41
41
  vscodePluginDir
42
- } from "../chunk-XL3RKJYQ.js";
42
+ } from "../chunk-LTPQKBJH.js";
43
43
  import {
44
44
  exitOnHelpFlag
45
45
  } from "../chunk-GOQHN2UH.js";
@@ -49,13 +49,14 @@ import {
49
49
  } from "../chunk-DINDL2CF.js";
50
50
  import {
51
51
  readControlMode
52
- } from "../chunk-SJLGOVC6.js";
52
+ } from "../chunk-DOYARIYB.js";
53
53
  import "../chunk-KZERVKTD.js";
54
- import "../chunk-VZD2GEKB.js";
54
+ import "../chunk-A3D43VXO.js";
55
+ import "../chunk-4LL6LG5X.js";
55
56
  import {
56
57
  getApiKey
57
58
  } from "../chunk-2UMNXADU.js";
58
- import "../chunk-OUAE3GKO.js";
59
+ import "../chunk-TTBRBWAK.js";
59
60
 
60
61
  // bin/pushary-upgrade.ts
61
62
  import { existsSync } from "fs";
@@ -4,8 +4,8 @@ import {
4
4
  } from "../chunk-CVWG2N3Y.js";
5
5
  import {
6
6
  exitOnFailedResponse
7
- } from "../chunk-6C6MS57P.js";
8
- import "../chunk-3RVCQDC4.js";
7
+ } from "../chunk-TVY7AT6O.js";
8
+ import "../chunk-BOZETFXB.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-OUAE3GKO.js";
31
+ import "../chunk-TTBRBWAK.js";
32
32
 
33
33
  // bin/pushary-wait.ts
34
34
  exitOnHelpFlag("wait");
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  NOTIFICATION_MATCHED_TYPES,
3
3
  POSTTOOLUSE_MIRRORED_TOOLS
4
- } from "./chunk-OPR2BPD4.js";
4
+ } from "./chunk-EMCNSBF3.js";
5
5
  import {
6
6
  isProtectedByScope,
7
7
  registerHookEntry
8
- } from "./chunk-XL3RKJYQ.js";
8
+ } from "./chunk-LTPQKBJH.js";
9
9
  import {
10
10
  CLAUDE_PRETOOLUSE_MATCHER,
11
11
  HOOK_BUDGETS,
12
12
  HOOK_LOCATOR_BINARY
13
- } from "./chunk-OUAE3GKO.js";
13
+ } from "./chunk-TTBRBWAK.js";
14
14
 
15
15
  // src/gemini-config.ts
16
16
  var GEMINI_HOOK_BINARY = "pushary-gemini-hook";
@@ -129,8 +129,9 @@ var formatVersion = (version) => version.join(".");
129
129
  var MIRRORED_TOOLS = POSTTOOLUSE_MIRRORED_TOOLS.join("|");
130
130
  var ESTABLISHED = [1, 0, 0];
131
131
  var OBSERVED = [2, 0, 0];
132
+ var CLAUDE_HOOK_BINARY = "pushary-hook";
132
133
  var CLAUDE_HOOK_EVENTS = [
133
- { event: "PreToolUse", binary: "pushary-hook", matcher: CLAUDE_PRETOOLUSE_MATCHER, timeout: HOOK_BUDGETS.claude.budgetSeconds, delivery: "approval", since: ESTABLISHED },
134
+ { event: "PreToolUse", binary: CLAUDE_HOOK_BINARY, matcher: CLAUDE_PRETOOLUSE_MATCHER, timeout: HOOK_BUDGETS.claude.budgetSeconds, delivery: "approval", since: ESTABLISHED },
134
135
  { event: "PostToolUse", binary: "pushary-post-hook", matcher: MIRRORED_TOOLS, timeout: 10, delivery: "telemetry", since: ESTABLISHED },
135
136
  { event: "Stop", binary: "pushary-stop-hook", timeout: 10, delivery: "telemetry", since: ESTABLISHED },
136
137
  { event: "UserPromptSubmit", binary: "pushary-prompt-hook", timeout: 10, delivery: "telemetry", since: ESTABLISHED },
@@ -169,12 +170,14 @@ export {
169
170
  GEMINI_HOOK_EVENTS,
170
171
  addGeminiMcpServer,
171
172
  addGeminiHooks,
173
+ removeGeminiMcpServer,
172
174
  removeGeminiSettings,
173
175
  hasGeminiHooks,
174
176
  missingGeminiHookEvents,
175
177
  parseVersion,
176
178
  compareVersion,
177
179
  formatVersion,
180
+ CLAUDE_HOOK_BINARY,
178
181
  CLAUDE_HOOK_EVENTS,
179
182
  supportedClaudeEvents,
180
183
  registrationSignatures,
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  AGENT_CHOICES
3
- } from "./chunk-LBNAGGLV.js";
3
+ } from "./chunk-3UUAK2AK.js";
4
4
  import {
5
5
  isBridgeLocator
6
- } from "./chunk-IRLTW6KF.js";
6
+ } from "./chunk-CDTGL7TT.js";
7
7
  import {
8
8
  pusharyHookExecutable
9
- } from "./chunk-6LRGZJFB.js";
9
+ } from "./chunk-XK34HTMW.js";
10
10
  import {
11
11
  BELL_HOOK_BINARY
12
- } from "./chunk-2GLOHBYB.js";
12
+ } from "./chunk-UWQVODHT.js";
13
13
 
14
14
  // src/setup/hook-ownership.ts
15
15
  var commandsIn = (value) => {
@@ -100,8 +100,11 @@ var restoreHookTakeover = (document, receipt) => {
100
100
  document.hooks = hooks;
101
101
  return JSON.stringify(document) !== before;
102
102
  };
103
- var hookOwnerOf = (document, appAvailable = true) => {
104
- const hooks = document && typeof document === "object" ? document.hooks : void 0;
103
+ var hookOwnerOf = (document, appAvailable = true, hooksKeyPath = ["hooks"]) => {
104
+ const hooks = hooksKeyPath.reduce(
105
+ (node, key) => node && typeof node === "object" ? node[key] : void 0,
106
+ document
107
+ );
105
108
  const executables = commandsIn(hooks).map(pusharyHookExecutable).filter((executable) => executable !== null);
106
109
  if (appAvailable && executables.some(isBridgeLocator)) return "app";
107
110
  if (executables.some((executable) => !isBridgeLocator(executable))) return "cli";
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  canonicalGateInputs
3
- } from "./chunk-A76GNRIK.js";
3
+ } from "./chunk-MDV7ZRAT.js";
4
4
  import {
5
5
  canonicalJson
6
- } from "./chunk-XL3RKJYQ.js";
6
+ } from "./chunk-LTPQKBJH.js";
7
7
  import {
8
8
  writeFileAtomic
9
- } from "./chunk-VZD2GEKB.js";
9
+ } from "./chunk-4LL6LG5X.js";
10
10
  import {
11
11
  BLOCKED_ACTION_GRANT_TTL_SECONDS,
12
12
  blockedActionIdentity,
13
13
  shouldDeferToNativeMode
14
- } from "./chunk-OUAE3GKO.js";
14
+ } from "./chunk-TTBRBWAK.js";
15
15
 
16
16
  // src/native-defer.ts
17
17
  var nativeDeferOptions = () => {
@@ -5,11 +5,12 @@ import {
5
5
  UsageError
6
6
  } from "./chunk-7QLSKOSU.js";
7
7
  import {
8
+ COMPATIBLE_AGENT_TYPES,
8
9
  isValidApiKey
9
- } from "./chunk-OUAE3GKO.js";
10
+ } from "./chunk-TTBRBWAK.js";
10
11
 
11
12
  // src/setup/options.ts
12
- var AGENT_CHOICES = ["claude_code", "codex", "gemini_cli", "hermes", "cursor", "vscode", "opencode", "custom"];
13
+ var AGENT_CHOICES = ["claude_code", "codex", "gemini_cli", "hermes", "cursor", "vscode", "opencode", ...COMPATIBLE_AGENT_TYPES, "custom"];
13
14
  var CONNECT_MODES = ["app", "browser", "web", "none"];
14
15
  var CONNECT_ALIASES = { auto: "app", pwa: "web" };
15
16
  var parseConnectMode = (raw) => {
@@ -1,9 +1,13 @@
1
1
  import {
2
2
  openCodeConfigDirFrom
3
- } from "./chunk-HB2KB7QL.js";
3
+ } from "./chunk-XNXIMIFY.js";
4
4
  import {
5
5
  codexHomeFrom
6
- } from "./chunk-XL3RKJYQ.js";
6
+ } from "./chunk-LTPQKBJH.js";
7
+ import {
8
+ HOOK_COMPATIBLE_PROFILES,
9
+ compatibleConfigDir
10
+ } from "./chunk-TTBRBWAK.js";
7
11
 
8
12
  // src/vscode-config.ts
9
13
  import { homedir } from "os";
@@ -234,10 +238,19 @@ var agentProbes = (home = homedir2()) => ({
234
238
  // never used.
235
239
  configMarkers: [openCodeConfigDirFrom(home)]
236
240
  },
241
+ ...compatibleProbes(home),
237
242
  // "Other" is a set of printed instructions for any MCP or HTTP client. There is
238
243
  // nothing to detect, and it must never be auto-selected.
239
244
  custom: { binary: null, paths: [], configMarkers: [] }
240
245
  });
246
+ var compatibleProbes = (home) => HOOK_COMPATIBLE_PROFILES.reduce((probes, profile) => ({
247
+ ...probes,
248
+ [profile.agentType]: {
249
+ binary: profile.binary,
250
+ paths: [],
251
+ configMarkers: [join2(home, ...compatibleConfigDir(profile))]
252
+ }
253
+ }), {});
241
254
  var detectAllAgents = (deps = defaultDeps, home) => {
242
255
  const probes = agentProbes(home);
243
256
  return Object.keys(probes).map((agent) => ({
@@ -1,10 +1,3 @@
1
- import {
2
- configFilePath
3
- } from "./chunk-2UMNXADU.js";
4
- import {
5
- normalizeInstallSource
6
- } from "./chunk-OUAE3GKO.js";
7
-
8
1
  // src/cli/fsx.ts
9
2
  import { copyFileSync, existsSync, fsyncSync, mkdirSync, openSync, closeSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "fs";
10
3
  import { dirname, join } from "path";
@@ -64,45 +57,10 @@ var writeJsonAtomicDurable = (filePath, data, mode) => {
64
57
  }
65
58
  };
66
59
 
67
- // src/install-source.ts
68
- import { readFileSync as readFileSync2 } from "fs";
69
- var ENV_OVERRIDE = "PUSHARY_INSTALL_SOURCE";
70
- var PLUGIN_ROOT = "CLAUDE_PLUGIN_ROOT";
71
- var EDITOR_PLUGIN_MARKERS = ["cursor-plugin", "vscode-plugin"];
72
- var detectInstallSource = (env = process.env, argv = process.argv) => {
73
- const declared = env[ENV_OVERRIDE]?.trim();
74
- if (declared) return normalizeInstallSource(declared);
75
- const pluginRoot = env[PLUGIN_ROOT]?.trim();
76
- if (pluginRoot) {
77
- return EDITOR_PLUGIN_MARKERS.some((marker) => pluginRoot.includes(marker)) ? "editor_plugin" : "claude_plugin";
78
- }
79
- const entry = argv[1] ?? "";
80
- if (entry.includes("_npx")) return "npx";
81
- if (entry) return "npm";
82
- return "unknown";
83
- };
84
- var storedInstallSource = () => {
85
- try {
86
- const parsed = JSON.parse(readFileSync2(configFilePath(), "utf-8"));
87
- const stored = parsed.installSource;
88
- return typeof stored === "string" && stored ? normalizeInstallSource(stored) : void 0;
89
- } catch {
90
- return void 0;
91
- }
92
- };
93
- var resolveInstallSourceFor = (config) => {
94
- const stored = config.installSource;
95
- if (typeof stored === "string" && stored) return normalizeInstallSource(stored);
96
- return detectInstallSource();
97
- };
98
- var reportedInstallSource = () => storedInstallSource() ?? detectInstallSource();
99
-
100
60
  export {
101
61
  readJsonSafe,
102
62
  backupFile,
103
63
  writeFileAtomic,
104
64
  writeJsonAtomic,
105
- writeJsonAtomicDurable,
106
- resolveInstallSourceFor,
107
- reportedInstallSource
65
+ writeJsonAtomicDurable
108
66
  };
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-XL3RKJYQ.js";
3
+ } from "./chunk-LTPQKBJH.js";
4
4
  import {
5
5
  writeFileAtomic
6
- } from "./chunk-VZD2GEKB.js";
6
+ } from "./chunk-4LL6LG5X.js";
7
7
 
8
8
  // src/identity.ts
9
9
  import { randomUUID } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  redactSecrets
3
- } from "./chunk-OUAE3GKO.js";
3
+ } from "./chunk-TTBRBWAK.js";
4
4
 
5
5
  // src/crypto.ts
6
6
  import nacl from "tweetnacl";
@@ -0,0 +1,44 @@
1
+ import {
2
+ configFilePath
3
+ } from "./chunk-2UMNXADU.js";
4
+ import {
5
+ normalizeInstallSource
6
+ } from "./chunk-TTBRBWAK.js";
7
+
8
+ // src/install-source.ts
9
+ import { readFileSync } from "fs";
10
+ var ENV_OVERRIDE = "PUSHARY_INSTALL_SOURCE";
11
+ var PLUGIN_ROOT = "CLAUDE_PLUGIN_ROOT";
12
+ var EDITOR_PLUGIN_MARKERS = ["cursor-plugin", "vscode-plugin"];
13
+ var detectInstallSource = (env = process.env, argv = process.argv) => {
14
+ const declared = env[ENV_OVERRIDE]?.trim();
15
+ if (declared) return normalizeInstallSource(declared);
16
+ const pluginRoot = env[PLUGIN_ROOT]?.trim();
17
+ if (pluginRoot) {
18
+ return EDITOR_PLUGIN_MARKERS.some((marker) => pluginRoot.includes(marker)) ? "editor_plugin" : "claude_plugin";
19
+ }
20
+ const entry = argv[1] ?? "";
21
+ if (entry.includes("_npx")) return "npx";
22
+ if (entry) return "npm";
23
+ return "unknown";
24
+ };
25
+ var storedInstallSource = () => {
26
+ try {
27
+ const parsed = JSON.parse(readFileSync(configFilePath(), "utf-8"));
28
+ const stored = parsed.installSource;
29
+ return typeof stored === "string" && stored ? normalizeInstallSource(stored) : void 0;
30
+ } catch {
31
+ return void 0;
32
+ }
33
+ };
34
+ var resolveInstallSourceFor = (config) => {
35
+ const stored = config.installSource;
36
+ if (typeof stored === "string" && stored) return normalizeInstallSource(stored);
37
+ return detectInstallSource();
38
+ };
39
+ var reportedInstallSource = () => storedInstallSource() ?? detectInstallSource();
40
+
41
+ export {
42
+ resolveInstallSourceFor,
43
+ reportedInstallSource
44
+ };
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  isValidApiKey,
15
15
  normalizeKeyScope
16
- } from "./chunk-OUAE3GKO.js";
16
+ } from "./chunk-TTBRBWAK.js";
17
17
 
18
18
  // src/session.ts
19
19
  var samePusharyAccount = (left, right) => left.kind === "ok" && right.kind === "ok" && left.identity.workspaceId !== "" && left.identity.workspaceId === right.identity.workspaceId && left.identity.siteId === right.identity.siteId;