@pushary/agent-hooks 1.9.59 → 1.9.61

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 (130) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +6 -0
  3. package/data/cursor-plugin/.cursor-plugin/plugin.json +5 -1
  4. package/data/cursor-plugin/CHANGELOG.md +4 -0
  5. package/dist/{api-UVJGNZIF.js → api-LW3PJQYY.js} +12 -11
  6. package/dist/bin/pushary-bell-hook.js +30 -29
  7. package/dist/bin/pushary-bell.js +13 -12
  8. package/dist/bin/pushary-claude.js +32 -30
  9. package/dist/bin/pushary-clean.js +61 -54
  10. package/dist/bin/pushary-codex-bridge.js +23 -22
  11. package/dist/bin/pushary-codex-hook.js +35 -34
  12. package/dist/bin/pushary-codex-session.js +9 -8
  13. package/dist/bin/pushary-codex.js +16 -15
  14. package/dist/bin/pushary-connect.js +30 -29
  15. package/dist/bin/pushary-cowork.js +8 -7
  16. package/dist/bin/pushary-daemon.js +40 -39
  17. package/dist/bin/pushary-disconnect.js +43 -29
  18. package/dist/bin/pushary-doctor.js +52 -47
  19. package/dist/bin/pushary-elicitation-hook.js +30 -29
  20. package/dist/bin/pushary-gemini-bridge.js +16 -15
  21. package/dist/bin/pushary-gemini-hook.js +32 -31
  22. package/dist/bin/pushary-hook.js +34 -33
  23. package/dist/bin/pushary-login.js +23 -19
  24. package/dist/bin/pushary-logout.js +37 -31
  25. package/dist/bin/pushary-mcp.js +13 -12
  26. package/dist/bin/pushary-mode.js +42 -55
  27. package/dist/bin/pushary-notification-hook.js +29 -28
  28. package/dist/bin/pushary-opencode-hook.js +31 -30
  29. package/dist/bin/pushary-permission-denied-hook.js +34 -33
  30. package/dist/bin/pushary-permission-hook.js +33 -32
  31. package/dist/bin/pushary-post-hook.js +29 -28
  32. package/dist/bin/pushary-prompt-hook.js +29 -28
  33. package/dist/bin/pushary-session-end-hook.js +29 -28
  34. package/dist/bin/pushary-session-start-hook.js +36 -35
  35. package/dist/bin/pushary-setup.js +4397 -292
  36. package/dist/bin/pushary-stats.js +6 -5
  37. package/dist/bin/pushary-status.js +42 -36
  38. package/dist/bin/pushary-stop-hook.js +29 -28
  39. package/dist/bin/pushary-stopfailure-hook.js +29 -28
  40. package/dist/bin/pushary-suggestions.js +34 -39
  41. package/dist/bin/pushary-transcript-register.js +21 -20
  42. package/dist/bin/pushary-transcripts.js +34 -20
  43. package/dist/bin/pushary-upgrade.js +77 -50
  44. package/dist/bin/pushary-wait.js +37 -42
  45. package/dist/bin/pushary.js +9 -8
  46. package/dist/{chunk-PVANKDWM.js → chunk-2AELPDMT.js} +1 -1
  47. package/dist/{chunk-W47WL6JY.js → chunk-33OOEVPG.js} +1 -1
  48. package/dist/{chunk-BRUHVTFB.js → chunk-4N5E4JNF.js} +2 -2
  49. package/dist/{chunk-6ONSTCDJ.js → chunk-4VRTSDGP.js} +5 -5
  50. package/dist/{chunk-DS7X36Z3.js → chunk-64S5PQBQ.js} +4 -4
  51. package/dist/{chunk-KQHY6L3X.js → chunk-6FJ6CK32.js} +4 -4
  52. package/dist/{chunk-EBQTWH5O.js → chunk-6T5Z64KS.js} +39 -31
  53. package/dist/{chunk-JAKBCKEB.js → chunk-7BAO42UV.js} +8 -7
  54. package/dist/chunk-7BHI3PZN.js +41 -0
  55. package/dist/{chunk-5BNXJTOZ.js → chunk-7HDGH3Z2.js} +3 -12
  56. package/dist/{chunk-D6CXQIXO.js → chunk-7JXJJNQ5.js} +1 -1
  57. package/dist/{chunk-KHDD74MK.js → chunk-7MCCXE5Y.js} +5 -5
  58. package/dist/{chunk-AY32RSUC.js → chunk-ADR3KHOC.js} +2 -2
  59. package/dist/{chunk-MMLIQDTG.js → chunk-ATKN4BJT.js} +1 -1
  60. package/dist/{chunk-762CDAJJ.js → chunk-AXJLJJ3M.js} +7 -0
  61. package/dist/{chunk-4XXZUFWN.js → chunk-BG4Y64FW.js} +1 -1
  62. package/dist/{chunk-X4ES7QBT.js → chunk-BJTSKOH3.js} +9 -7
  63. package/dist/{chunk-TCH5UCPR.js → chunk-BQ2VV7LY.js} +2 -2
  64. package/dist/{chunk-IBXHVYN2.js → chunk-BUZIEL7Y.js} +2 -2
  65. package/dist/{chunk-UFJS4RR7.js → chunk-CICLXLQN.js} +3 -3
  66. package/dist/{chunk-US3IT6ZC.js → chunk-CJ5TCFD4.js} +11 -4
  67. package/dist/{chunk-5JWCWALO.js → chunk-DQLCFGHK.js} +12 -10
  68. package/dist/{chunk-V3PDUDPB.js → chunk-ELLJPP6O.js} +2 -2
  69. package/dist/{chunk-BMPZ5HVJ.js → chunk-ERK24P76.js} +11 -1
  70. package/dist/{chunk-2WMZDKPM.js → chunk-EUIPTDLX.js} +13 -13
  71. package/dist/{chunk-RQDP2SJY.js → chunk-FUZ5VYWD.js} +1 -1
  72. package/dist/{chunk-5PP4455M.js → chunk-G36T5LAP.js} +3 -3
  73. package/dist/{chunk-3N2ZTHZZ.js → chunk-GAMVAORR.js} +1 -1
  74. package/dist/{chunk-YQVKG5MC.js → chunk-GDKQUB52.js} +7 -6
  75. package/dist/{chunk-KQWN7C5C.js → chunk-GKFO5JLN.js} +4 -4
  76. package/dist/{chunk-MYU5D5VH.js → chunk-GZCSWDAS.js} +4 -4
  77. package/dist/{chunk-2FVP7WRP.js → chunk-HUI4OE43.js} +3 -3
  78. package/dist/{chunk-AS4Z6KS4.js → chunk-IFPOHFDJ.js} +1 -1
  79. package/dist/{chunk-L3NVHPBU.js → chunk-JGQV4MDQ.js} +6 -6
  80. package/dist/{chunk-UVZK5LIK.js → chunk-K4MBKXAE.js} +1 -1
  81. package/dist/{chunk-EHCIQA5D.js → chunk-KPNZ7JUL.js} +4 -4
  82. package/dist/{chunk-4QF2YLYK.js → chunk-LBHJJEKT.js} +6 -6
  83. package/dist/{chunk-5O6D4J2K.js → chunk-LN7DE5LY.js} +2 -2
  84. package/dist/chunk-MLKGABMK.js +9 -0
  85. package/dist/{chunk-KZCYHWDF.js → chunk-MWLTTLPK.js} +107 -50
  86. package/dist/{chunk-WWAVHLGS.js → chunk-NKLNU577.js} +5 -5
  87. package/dist/{chunk-GMXKITVA.js → chunk-NMUI3ZWG.js} +1 -1
  88. package/dist/{chunk-SIU6OWA6.js → chunk-O65F2IIN.js} +6 -6
  89. package/dist/{chunk-T65RIQK2.js → chunk-ORX5BTV4.js} +6 -6
  90. package/dist/{chunk-VAJHDTJX.js → chunk-P3VQH65N.js} +28 -17
  91. package/dist/{chunk-CPRA7IEK.js → chunk-PITQ5ZIQ.js} +2 -2
  92. package/dist/chunk-PPY5N2E6.js +58 -0
  93. package/dist/{chunk-UTJ5465F.js → chunk-QER5R7Z6.js} +2 -2
  94. package/dist/{chunk-TDOKDCFH.js → chunk-RGSW36XH.js} +3 -3
  95. package/dist/{chunk-WW24SG27.js → chunk-RJHX66EY.js} +21 -11
  96. package/dist/{chunk-M46WDK64.js → chunk-SFAP4AJY.js} +1 -1
  97. package/dist/{chunk-MSU3VKGJ.js → chunk-SHJVFW22.js} +2 -2
  98. package/dist/{chunk-RAMQBSVZ.js → chunk-SVQWHV65.js} +1 -1
  99. package/dist/{chunk-3NROUNIS.js → chunk-UADSXJZ4.js} +2 -2
  100. package/dist/{chunk-M6MOQBR5.js → chunk-USE5IEEW.js} +1 -1
  101. package/dist/{chunk-KW3DED2A.js → chunk-VX2MJ4X7.js} +4 -4
  102. package/dist/{chunk-OZIXBN3O.js → chunk-WFSGCFXQ.js} +2 -2
  103. package/dist/{chunk-KAJDKYUM.js → chunk-WN3RACVD.js} +3 -3
  104. package/dist/chunk-X3YKQJCZ.js +36 -0
  105. package/dist/{chunk-5EFNBL6V.js → chunk-XAO6EYGM.js} +3 -3
  106. package/dist/{chunk-BKVX53QR.js → chunk-XEJOPVCG.js} +1 -1
  107. package/dist/{chunk-75UYYIFJ.js → chunk-XV6S5PWW.js} +3 -3
  108. package/dist/{chunk-3RKIJM26.js → chunk-Y5VKZNFN.js} +2 -2
  109. package/dist/{chunk-DK35M4TH.js → chunk-Y6Z7DA5Y.js} +5 -5
  110. package/dist/{chunk-MA37WNVS.js → chunk-YDR4BQ7R.js} +4 -4
  111. package/dist/{chunk-XGP5VSQG.js → chunk-YPD3MTFU.js} +1 -1
  112. package/dist/{chunk-LAEW5QQD.js → chunk-ZEWIMY63.js} +1 -1
  113. package/dist/{chunk-JBCMXSBO.js → chunk-ZGU3NXL2.js} +77 -18
  114. package/dist/{codex-app-cards-switch-N77RWKCO.js → codex-app-cards-switch-BD7LCI2I.js} +12 -11
  115. package/dist/{codex-desktop-launch-KIX7OMTL.js → codex-desktop-launch-V5CASSBB.js} +2 -1
  116. package/dist/{codex-session-launch-XV7SIIWP.js → codex-session-launch-5PKFKUFD.js} +20 -19
  117. package/dist/{config-HH4DYYNX.js → config-AEKH7HGC.js} +4 -3
  118. package/dist/{global-upgrade-YWIVJIUR.js → global-upgrade-IUXJJDWF.js} +10 -9
  119. package/dist/{identity-4J7Y2MW3.js → identity-YJIV2XTY.js} +5 -4
  120. package/dist/{live-capabilities-LHZBCI5U.js → live-capabilities-QYFW5QAW.js} +5 -4
  121. package/dist/{paths-ES3V7BWQ.js → paths-A5GAR5PL.js} +4 -3
  122. package/dist/reapply-BKJGICRJ.js +63 -0
  123. package/dist/src/index.js +23 -22
  124. package/dist/{upgrade-lock-TJPKU5HL.js → upgrade-lock-DDB7WEWC.js} +5 -4
  125. package/dist/usage-HBDNFZ3O.js +11 -0
  126. package/package.json +1 -1
  127. package/dist/chunk-7QLSKOSU.js +0 -19
  128. package/dist/chunk-EO23EUOK.js +0 -14
  129. package/dist/reapply-KA5SIYWX.js +0 -62
  130. package/dist/usage-7ALXBJVJ.js +0 -10
@@ -1,58 +1,58 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePreToolUse
4
- } from "../chunk-VAJHDTJX.js";
4
+ } from "../chunk-P3VQH65N.js";
5
5
  import {
6
6
  exitOnHelpFlag
7
- } from "../chunk-UVZK5LIK.js";
8
- import "../chunk-T65RIQK2.js";
9
- import "../chunk-RAMQBSVZ.js";
7
+ } from "../chunk-K4MBKXAE.js";
8
+ import "../chunk-ORX5BTV4.js";
9
+ import "../chunk-SVQWHV65.js";
10
10
  import {
11
11
  readToolHookCall
12
- } from "../chunk-KQHY6L3X.js";
13
- import "../chunk-LAEW5QQD.js";
14
- import "../chunk-2WMZDKPM.js";
12
+ } from "../chunk-6FJ6CK32.js";
13
+ import "../chunk-ZEWIMY63.js";
14
+ import "../chunk-EUIPTDLX.js";
15
15
  import "../chunk-QW3FRUFB.js";
16
16
  import {
17
17
  activeHookSource,
18
18
  normalizeToolCall,
19
19
  profileFromArgv
20
- } from "../chunk-KQWN7C5C.js";
21
- import "../chunk-4QF2YLYK.js";
22
- import "../chunk-X4ES7QBT.js";
23
- import "../chunk-TDOKDCFH.js";
24
- import "../chunk-75UYYIFJ.js";
25
- import "../chunk-AS4Z6KS4.js";
26
- import "../chunk-GMXKITVA.js";
27
- import "../chunk-PVANKDWM.js";
28
- import "../chunk-3N2ZTHZZ.js";
29
- import "../chunk-D6CXQIXO.js";
20
+ } from "../chunk-GKFO5JLN.js";
21
+ import "../chunk-LBHJJEKT.js";
22
+ import "../chunk-BJTSKOH3.js";
23
+ import "../chunk-RGSW36XH.js";
24
+ import "../chunk-XV6S5PWW.js";
25
+ import "../chunk-IFPOHFDJ.js";
26
+ import "../chunk-NMUI3ZWG.js";
27
+ import "../chunk-2AELPDMT.js";
28
+ import "../chunk-GAMVAORR.js";
29
+ import "../chunk-7JXJJNQ5.js";
30
30
  import "../chunk-XHKBHWLX.js";
31
31
  import "../chunk-6ICPEJY5.js";
32
- import "../chunk-KAJDKYUM.js";
32
+ import "../chunk-WN3RACVD.js";
33
33
  import {
34
34
  canonicalGateInputs
35
- } from "../chunk-5JWCWALO.js";
36
- import "../chunk-W47WL6JY.js";
37
- import "../chunk-XGP5VSQG.js";
35
+ } from "../chunk-DQLCFGHK.js";
36
+ import "../chunk-33OOEVPG.js";
37
+ import "../chunk-YPD3MTFU.js";
38
38
  import {
39
39
  exitAfterClientReports
40
- } from "../chunk-WW24SG27.js";
41
- import "../chunk-5EFNBL6V.js";
40
+ } from "../chunk-RJHX66EY.js";
41
+ import "../chunk-XAO6EYGM.js";
42
42
  import "../chunk-POFBE6ZY.js";
43
- import "../chunk-MA37WNVS.js";
44
- import "../chunk-JAKBCKEB.js";
45
- import "../chunk-M46WDK64.js";
46
- import "../chunk-7QLSKOSU.js";
43
+ import "../chunk-YDR4BQ7R.js";
44
+ import "../chunk-7BAO42UV.js";
45
+ import "../chunk-SFAP4AJY.js";
46
+ import "../chunk-PPY5N2E6.js";
47
47
  import {
48
48
  EXIT
49
49
  } from "../chunk-KZERVKTD.js";
50
- import "../chunk-3RKIJM26.js";
51
- import "../chunk-KZCYHWDF.js";
52
- import "../chunk-US3IT6ZC.js";
50
+ import "../chunk-Y5VKZNFN.js";
51
+ import "../chunk-MWLTTLPK.js";
52
+ import "../chunk-CJ5TCFD4.js";
53
53
  import "../chunk-QENTGE75.js";
54
- import "../chunk-4XXZUFWN.js";
55
- import "../chunk-BMPZ5HVJ.js";
54
+ import "../chunk-BG4Y64FW.js";
55
+ import "../chunk-ERK24P76.js";
56
56
  import "../chunk-QTOLNRET.js";
57
57
  import {
58
58
  GROK_UNREADABLE_CALL,
@@ -60,7 +60,8 @@ import {
60
60
  isPusharyOwnTool,
61
61
  refusalOutput,
62
62
  renderPreToolUseVerdict
63
- } from "../chunk-762CDAJJ.js";
63
+ } from "../chunk-AXJLJJ3M.js";
64
+ import "../chunk-MLKGABMK.js";
64
65
 
65
66
  // bin/pushary-hook.ts
66
67
  exitOnHelpFlag("hook");
@@ -1,55 +1,57 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runBrowserLogin
4
- } from "../chunk-RQDP2SJY.js";
4
+ } from "../chunk-FUZ5VYWD.js";
5
5
  import "../chunk-PUZZELE6.js";
6
6
  import {
7
+ writeJsonError,
7
8
  writeStdoutFully
8
- } from "../chunk-EO23EUOK.js";
9
+ } from "../chunk-7BHI3PZN.js";
9
10
  import "../chunk-3EGEA4KH.js";
10
11
  import {
11
12
  createIo
12
13
  } from "../chunk-FO3MDD26.js";
13
14
  import {
14
15
  exitOnHelpFlag
15
- } from "../chunk-UVZK5LIK.js";
16
+ } from "../chunk-K4MBKXAE.js";
16
17
  import {
17
18
  recoverDaemonAfterLogin
18
- } from "../chunk-4QF2YLYK.js";
19
+ } from "../chunk-LBHJJEKT.js";
19
20
  import {
20
21
  parseFlags
21
- } from "../chunk-GMXKITVA.js";
22
+ } from "../chunk-NMUI3ZWG.js";
22
23
  import "../chunk-XHKBHWLX.js";
23
24
  import {
24
25
  readConfigFileKey,
25
26
  readControlMode,
26
27
  readKeySource,
27
28
  writeKey
28
- } from "../chunk-KAJDKYUM.js";
29
+ } from "../chunk-WN3RACVD.js";
29
30
  import {
30
31
  checkApiKey,
31
32
  describeKeyCheck
32
- } from "../chunk-MA37WNVS.js";
33
- import "../chunk-JAKBCKEB.js";
34
- import "../chunk-M46WDK64.js";
33
+ } from "../chunk-YDR4BQ7R.js";
34
+ import "../chunk-7BAO42UV.js";
35
+ import "../chunk-SFAP4AJY.js";
35
36
  import {
36
37
  UsageError
37
- } from "../chunk-7QLSKOSU.js";
38
+ } from "../chunk-PPY5N2E6.js";
38
39
  import {
39
40
  EXIT
40
41
  } from "../chunk-KZERVKTD.js";
41
- import "../chunk-3RKIJM26.js";
42
- import "../chunk-KZCYHWDF.js";
43
- import "../chunk-US3IT6ZC.js";
42
+ import "../chunk-Y5VKZNFN.js";
43
+ import "../chunk-MWLTTLPK.js";
44
+ import "../chunk-CJ5TCFD4.js";
44
45
  import "../chunk-QENTGE75.js";
45
- import "../chunk-4XXZUFWN.js";
46
- import "../chunk-BMPZ5HVJ.js";
46
+ import "../chunk-BG4Y64FW.js";
47
+ import "../chunk-ERK24P76.js";
47
48
  import {
48
49
  getPackageVersion
49
50
  } from "../chunk-QTOLNRET.js";
50
51
  import {
51
52
  isValidApiKey
52
- } from "../chunk-762CDAJJ.js";
53
+ } from "../chunk-AXJLJJ3M.js";
54
+ import "../chunk-MLKGABMK.js";
53
55
 
54
56
  // bin/pushary-login.ts
55
57
  exitOnHelpFlag("login");
@@ -72,10 +74,11 @@ var options;
72
74
  try {
73
75
  options = parseLoginOptions(process.argv.slice(2));
74
76
  } catch (err) {
77
+ const { exitCode } = await writeJsonError("login", err);
75
78
  process.stderr.write(` ! ${err instanceof Error ? err.message : String(err)}
76
79
  `);
77
80
  process.stderr.write(" Run `pushary login --help` for the full list.\n");
78
- process.exit(EXIT.USAGE);
81
+ process.exit(exitCode);
79
82
  }
80
83
  var { bold, dim, green, cyan, yellow } = createIo();
81
84
  var check = green("\u2713");
@@ -197,8 +200,9 @@ var main = async () => {
197
200
  await emit({ ok: false, reason: "expired" });
198
201
  process.exit(EXIT.NOT_CONFIGURED);
199
202
  };
200
- main().catch((err) => {
203
+ main().catch(async (err) => {
204
+ const { exitCode } = await writeJsonError("login", err);
201
205
  process.stderr.write(` ! login failed: ${err instanceof Error ? err.message : String(err)}
202
206
  `);
203
- process.exit(EXIT.FAILED);
207
+ process.exit(exitCode);
204
208
  });
@@ -1,4 +1,7 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ writeJsonError
4
+ } from "../chunk-7BHI3PZN.js";
2
5
  import {
3
6
  describeCliKeyRevocation,
4
7
  keyNoLongerAccepted,
@@ -8,69 +11,70 @@ import {
8
11
  readCliHeldKeys,
9
12
  revokeOwnKey,
10
13
  sparedKeys
11
- } from "../chunk-DK35M4TH.js";
14
+ } from "../chunk-Y6Z7DA5Y.js";
12
15
  import {
13
16
  APPROVAL_SETTINGS_PATH
14
- } from "../chunk-DS7X36Z3.js";
15
- import "../chunk-EHCIQA5D.js";
16
- import "../chunk-AY32RSUC.js";
17
- import "../chunk-JBCMXSBO.js";
17
+ } from "../chunk-64S5PQBQ.js";
18
+ import "../chunk-KPNZ7JUL.js";
19
+ import "../chunk-ADR3KHOC.js";
20
+ import "../chunk-ZGU3NXL2.js";
18
21
  import {
19
22
  createIo
20
23
  } from "../chunk-FO3MDD26.js";
21
24
  import {
22
25
  exitOnHelpFlag
23
- } from "../chunk-UVZK5LIK.js";
24
- import "../chunk-KQWN7C5C.js";
25
- import "../chunk-X4ES7QBT.js";
26
- import "../chunk-TDOKDCFH.js";
27
- import "../chunk-75UYYIFJ.js";
28
- import "../chunk-AS4Z6KS4.js";
26
+ } from "../chunk-K4MBKXAE.js";
27
+ import "../chunk-GKFO5JLN.js";
28
+ import "../chunk-BJTSKOH3.js";
29
+ import "../chunk-RGSW36XH.js";
30
+ import "../chunk-XV6S5PWW.js";
31
+ import "../chunk-IFPOHFDJ.js";
29
32
  import {
30
33
  parseFlags
31
- } from "../chunk-GMXKITVA.js";
34
+ } from "../chunk-NMUI3ZWG.js";
32
35
  import "../chunk-6ICPEJY5.js";
33
36
  import {
34
37
  clearKey,
35
38
  keyPrefix,
36
39
  readKeySource,
37
40
  resolveRcTarget
38
- } from "../chunk-KAJDKYUM.js";
39
- import "../chunk-5JWCWALO.js";
40
- import "../chunk-W47WL6JY.js";
41
- import "../chunk-XGP5VSQG.js";
42
- import "../chunk-WW24SG27.js";
43
- import "../chunk-5EFNBL6V.js";
41
+ } from "../chunk-WN3RACVD.js";
42
+ import "../chunk-DQLCFGHK.js";
43
+ import "../chunk-33OOEVPG.js";
44
+ import "../chunk-YPD3MTFU.js";
45
+ import "../chunk-RJHX66EY.js";
46
+ import "../chunk-XAO6EYGM.js";
44
47
  import "../chunk-POFBE6ZY.js";
45
48
  import {
46
49
  absoluteUrl,
47
50
  checkApiKey
48
- } from "../chunk-MA37WNVS.js";
49
- import "../chunk-JAKBCKEB.js";
50
- import "../chunk-M46WDK64.js";
51
+ } from "../chunk-YDR4BQ7R.js";
52
+ import "../chunk-7BAO42UV.js";
53
+ import "../chunk-SFAP4AJY.js";
51
54
  import {
52
55
  UsageError
53
- } from "../chunk-7QLSKOSU.js";
56
+ } from "../chunk-PPY5N2E6.js";
54
57
  import {
55
58
  EXIT
56
59
  } from "../chunk-KZERVKTD.js";
57
- import "../chunk-3RKIJM26.js";
60
+ import "../chunk-Y5VKZNFN.js";
58
61
  import {
59
62
  claudeJson,
60
63
  codexConfigToml,
61
64
  cursorUserMcp,
62
65
  geminiSettings
63
- } from "../chunk-KZCYHWDF.js";
64
- import "../chunk-US3IT6ZC.js";
66
+ } from "../chunk-MWLTTLPK.js";
67
+ import "../chunk-CJ5TCFD4.js";
65
68
  import "../chunk-QENTGE75.js";
66
69
  import {
67
70
  getBaseUrl
68
- } from "../chunk-4XXZUFWN.js";
71
+ } from "../chunk-BG4Y64FW.js";
69
72
  import {
70
73
  isInvocationOf
71
- } from "../chunk-BMPZ5HVJ.js";
74
+ } from "../chunk-ERK24P76.js";
72
75
  import "../chunk-QTOLNRET.js";
73
- import "../chunk-762CDAJJ.js";
76
+ import "../chunk-AXJLJJ3M.js";
77
+ import "../chunk-MLKGABMK.js";
74
78
 
75
79
  // bin/pushary-logout.ts
76
80
  import { existsSync } from "fs";
@@ -86,9 +90,10 @@ var options;
86
90
  try {
87
91
  options = parseLogoutOptions(process.argv.slice(2));
88
92
  } catch (err) {
93
+ const { exitCode } = await writeJsonError("sign-out", err);
89
94
  process.stderr.write(` ! ${err instanceof Error ? err.message : String(err)}
90
95
  `);
91
- process.exit(EXIT.USAGE);
96
+ process.exit(exitCode);
92
97
  }
93
98
  var { bold, dim, green, cyan, yellow } = createIo();
94
99
  var say = options.json ? (line) => process.stderr.write(`${line}
@@ -213,8 +218,9 @@ var main = async () => {
213
218
  }
214
219
  process.exit(EXIT.OK);
215
220
  };
216
- main().catch((err) => {
221
+ main().catch(async (err) => {
222
+ const { exitCode } = await writeJsonError("sign-out", err);
217
223
  process.stderr.write(` ! sign-out failed: ${err instanceof Error ? err.message : String(err)}
218
224
  `);
219
- process.exit(EXIT.FAILED);
225
+ process.exit(exitCode);
220
226
  });
@@ -4,31 +4,32 @@ import {
4
4
  bridgeError,
5
5
  createMcpStdioBridge,
6
6
  parseBridgeLine
7
- } from "../chunk-3NROUNIS.js";
7
+ } from "../chunk-UADSXJZ4.js";
8
8
  import {
9
9
  triggerAutoUpdate
10
- } from "../chunk-5BNXJTOZ.js";
11
- import "../chunk-5EFNBL6V.js";
10
+ } from "../chunk-7HDGH3Z2.js";
11
+ import "../chunk-XAO6EYGM.js";
12
12
  import "../chunk-POFBE6ZY.js";
13
- import "../chunk-MA37WNVS.js";
13
+ import "../chunk-YDR4BQ7R.js";
14
14
  import {
15
15
  installNetworkDefaults
16
- } from "../chunk-JAKBCKEB.js";
17
- import "../chunk-M46WDK64.js";
18
- import "../chunk-7QLSKOSU.js";
16
+ } from "../chunk-7BAO42UV.js";
17
+ import "../chunk-SFAP4AJY.js";
18
+ import "../chunk-PPY5N2E6.js";
19
19
  import {
20
20
  EXIT
21
21
  } from "../chunk-KZERVKTD.js";
22
- import "../chunk-KZCYHWDF.js";
23
- import "../chunk-US3IT6ZC.js";
22
+ import "../chunk-MWLTTLPK.js";
23
+ import "../chunk-CJ5TCFD4.js";
24
24
  import "../chunk-QENTGE75.js";
25
25
  import {
26
26
  getApiKey,
27
27
  getBaseUrl
28
- } from "../chunk-4XXZUFWN.js";
29
- import "../chunk-BMPZ5HVJ.js";
28
+ } from "../chunk-BG4Y64FW.js";
29
+ import "../chunk-ERK24P76.js";
30
30
  import "../chunk-QTOLNRET.js";
31
- import "../chunk-762CDAJJ.js";
31
+ import "../chunk-AXJLJJ3M.js";
32
+ import "../chunk-MLKGABMK.js";
32
33
 
33
34
  // src/mcp-stdio-stream.ts
34
35
  var MCP_MAX_IN_FLIGHT = 16;
@@ -1,76 +1,79 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ modeResponse
4
+ } from "../chunk-X3YKQJCZ.js";
2
5
  import {
3
6
  exitOnFailedSettingsRequest
4
- } from "../chunk-DS7X36Z3.js";
5
- import "../chunk-AY32RSUC.js";
7
+ } from "../chunk-64S5PQBQ.js";
8
+ import "../chunk-ADR3KHOC.js";
6
9
  import {
7
10
  createIo
8
11
  } from "../chunk-FO3MDD26.js";
9
12
  import {
10
13
  exitOnHelpFlag
11
- } from "../chunk-UVZK5LIK.js";
14
+ } from "../chunk-K4MBKXAE.js";
15
+ import {
16
+ parseFlags
17
+ } from "../chunk-NMUI3ZWG.js";
18
+ import "../chunk-WN3RACVD.js";
19
+ import "../chunk-YDR4BQ7R.js";
12
20
  import {
13
- rejectUnknownFlags
14
- } from "../chunk-GMXKITVA.js";
15
- import "../chunk-KAJDKYUM.js";
16
- import "../chunk-MA37WNVS.js";
17
- import "../chunk-JAKBCKEB.js";
18
- import "../chunk-M46WDK64.js";
21
+ pusharyFetch
22
+ } from "../chunk-7BAO42UV.js";
23
+ import "../chunk-SFAP4AJY.js";
19
24
  import {
20
- UsageError
21
- } from "../chunk-7QLSKOSU.js";
25
+ UsageError,
26
+ exitCodeFor
27
+ } from "../chunk-PPY5N2E6.js";
22
28
  import {
23
29
  EXIT
24
30
  } from "../chunk-KZERVKTD.js";
25
- import "../chunk-3RKIJM26.js";
26
- import "../chunk-KZCYHWDF.js";
27
- import "../chunk-US3IT6ZC.js";
31
+ import "../chunk-Y5VKZNFN.js";
32
+ import "../chunk-MWLTTLPK.js";
33
+ import "../chunk-CJ5TCFD4.js";
28
34
  import "../chunk-QENTGE75.js";
29
35
  import {
30
36
  getApiKey,
31
37
  getBaseUrl
32
- } from "../chunk-4XXZUFWN.js";
38
+ } from "../chunk-BG4Y64FW.js";
33
39
  import {
34
40
  UPDATES_ONLY_MODE_INPUTS,
35
41
  describeMode,
36
42
  modeRequestBody,
37
43
  resolveModeInput
38
- } from "../chunk-BMPZ5HVJ.js";
44
+ } from "../chunk-ERK24P76.js";
39
45
  import "../chunk-QTOLNRET.js";
40
- import "../chunk-762CDAJJ.js";
46
+ import "../chunk-AXJLJJ3M.js";
47
+ import "../chunk-MLKGABMK.js";
41
48
 
42
49
  // bin/pushary-mode.ts
43
50
  exitOnHelpFlag("mode");
44
51
  var VALID_MODES = ["push_only", "push_first", "terminal_only", "notify_only"];
45
52
  var VALID_MODES_LINE = `${VALID_MODES.join(", ")}. ${UPDATES_ONLY_MODE_INPUTS.join(" or ")} sets ${describeMode("notify_only")}`;
46
53
  var { dim, green, cyan, yellow } = createIo();
47
- {
54
+ var main = async () => {
48
55
  const raw = process.argv.slice(2);
49
- const positional = raw[0] === "mode" ? raw.slice(1) : raw;
50
- try {
51
- rejectUnknownFlags(positional, ["--for"]);
52
- } catch (err) {
53
- process.stderr.write(` ! ${err instanceof Error ? err.message : String(err)}
54
- `);
55
- process.exit(EXIT.USAGE);
56
+ const flags = parseFlags(raw[0] === "mode" ? raw.slice(1) : raw, { bools: [], values: ["for"] });
57
+ if (flags.rest.length > 0) throw new UsageError("Expected one mode");
58
+ const mode = flags.command;
59
+ const forValue = flags.values.get("for");
60
+ const requestedMode = mode === void 0 ? null : resolveModeInput(mode);
61
+ if (mode !== void 0 && !["status", "clear", "reset"].includes(mode) && requestedMode === null) {
62
+ throw new UsageError(`Invalid mode: ${mode}. Valid modes: ${VALID_MODES_LINE}`);
56
63
  }
57
- }
58
- var main = async () => {
64
+ if (forValue !== void 0 && requestedMode === null) throw new UsageError("--for requires an approval mode");
65
+ const request = requestedMode === null ? null : modeRequestBody(requestedMode, forValue);
66
+ if (requestedMode !== null && request === null) throw new UsageError(`Invalid duration: ${forValue} (use e.g. 30m, 1h)`);
59
67
  const apiKey = getApiKey();
60
68
  const baseUrl = getBaseUrl();
61
- const rest = process.argv.slice(2);
62
- const args = rest[0] === "mode" ? rest.slice(1) : rest;
63
- const mode = args[0];
64
- const forFlag = args[1];
65
- const forValue = args[2];
66
69
  const headers = {
67
70
  "Authorization": `Bearer ${apiKey}`,
68
71
  "Content-Type": "application/json"
69
72
  };
70
73
  if (!mode || mode === "status") {
71
- const res2 = await fetch(`${baseUrl}/api/mcp/mode`, { headers });
74
+ const res2 = await pusharyFetch(`${baseUrl}/api/mcp/mode`, { headers });
72
75
  if (!res2.ok) await exitOnFailedSettingsRequest(res2, { request: "mode", apiKey, baseUrl });
73
- const data2 = await res2.json();
76
+ const data2 = modeResponse(await res2.json());
74
77
  if (!data2.override) {
75
78
  console.log(` Mode: ${cyan("default")} ${dim("(using per-tool policies)")}`);
76
79
  } else {
@@ -84,35 +87,19 @@ var main = async () => {
84
87
  return;
85
88
  }
86
89
  if (mode === "clear" || mode === "reset") {
87
- const res2 = await fetch(`${baseUrl}/api/mcp/mode`, { method: "DELETE", headers });
90
+ const res2 = await pusharyFetch(`${baseUrl}/api/mcp/mode`, { method: "DELETE", headers });
88
91
  if (!res2.ok) await exitOnFailedSettingsRequest(res2, { request: "mode", apiKey, baseUrl });
89
92
  console.log(` ${green("\u2713")} Mode override cleared \u2014 using per-tool policies`);
90
93
  return;
91
94
  }
92
- const requestedMode = resolveModeInput(mode);
93
- if (requestedMode === null) {
94
- console.log(` ${yellow("!")} Invalid mode: ${mode}`);
95
- console.log(` Valid modes: ${VALID_MODES_LINE}`);
96
- console.log(` ${dim("Usage: pushary mode <mode> [--for <duration>]")}`);
97
- console.log(` ${dim("Example: pushary mode push_only --for 30m")}`);
98
- process.exit(EXIT.USAGE);
99
- }
100
- if (forFlag === "--for" && !forValue) {
101
- console.log(` ${yellow("!")} --for needs a duration ${dim("(use e.g. 30m, 1h)")}`);
102
- process.exit(EXIT.USAGE);
103
- }
104
- const request = modeRequestBody(requestedMode, forFlag === "--for" ? forValue : void 0);
105
- if (!request) {
106
- console.log(` ${yellow("!")} Invalid duration: ${forValue} ${dim("(use e.g. 30m, 1h)")}`);
107
- process.exit(EXIT.USAGE);
108
- }
109
- const res = await fetch(`${baseUrl}/api/mcp/mode`, {
95
+ const res = await pusharyFetch(`${baseUrl}/api/mcp/mode`, {
110
96
  method: "PUT",
111
97
  headers,
112
98
  body: JSON.stringify(request)
113
99
  });
114
100
  if (!res.ok) await exitOnFailedSettingsRequest(res, { request: "mode", apiKey, baseUrl });
115
- const data = await res.json();
101
+ const data = modeResponse(await res.json());
102
+ if (data.override === null) throw new Error("Invalid mode response");
116
103
  console.log(` ${green("\u2713")} Mode set to ${cyan(describeMode(data.override.mode))}${data.permanent ? dim(" (until you change it)") : ""}`);
117
104
  if (data.override.expiresAt) {
118
105
  console.log(` Expires: ${new Date(data.override.expiresAt).toLocaleString()}`);
@@ -125,5 +112,5 @@ main().catch((err) => {
125
112
  process.exit(EXIT.USAGE);
126
113
  }
127
114
  console.error(` ${yellow("!")} ${err instanceof Error ? err.message : err}`);
128
- process.exit(1);
115
+ process.exit(exitCodeFor(err));
129
116
  });
@@ -1,46 +1,47 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-KQHY6L3X.js";
5
- import "../chunk-2WMZDKPM.js";
4
+ } from "../chunk-6FJ6CK32.js";
5
+ import "../chunk-EUIPTDLX.js";
6
6
  import "../chunk-QW3FRUFB.js";
7
7
  import {
8
8
  activeHookSource,
9
9
  activeIdentity
10
- } from "../chunk-KQWN7C5C.js";
11
- import "../chunk-4QF2YLYK.js";
12
- import "../chunk-X4ES7QBT.js";
13
- import "../chunk-TDOKDCFH.js";
14
- import "../chunk-75UYYIFJ.js";
15
- import "../chunk-AS4Z6KS4.js";
16
- import "../chunk-GMXKITVA.js";
17
- import "../chunk-PVANKDWM.js";
18
- import "../chunk-3N2ZTHZZ.js";
19
- import "../chunk-D6CXQIXO.js";
10
+ } from "../chunk-GKFO5JLN.js";
11
+ import "../chunk-LBHJJEKT.js";
12
+ import "../chunk-BJTSKOH3.js";
13
+ import "../chunk-RGSW36XH.js";
14
+ import "../chunk-XV6S5PWW.js";
15
+ import "../chunk-IFPOHFDJ.js";
16
+ import "../chunk-NMUI3ZWG.js";
17
+ import "../chunk-2AELPDMT.js";
18
+ import "../chunk-GAMVAORR.js";
19
+ import "../chunk-7JXJJNQ5.js";
20
20
  import "../chunk-XHKBHWLX.js";
21
21
  import "../chunk-6ICPEJY5.js";
22
- import "../chunk-KAJDKYUM.js";
22
+ import "../chunk-WN3RACVD.js";
23
23
  import {
24
24
  handleNotification
25
- } from "../chunk-5JWCWALO.js";
26
- import "../chunk-W47WL6JY.js";
27
- import "../chunk-XGP5VSQG.js";
28
- import "../chunk-WW24SG27.js";
29
- import "../chunk-5EFNBL6V.js";
25
+ } from "../chunk-DQLCFGHK.js";
26
+ import "../chunk-33OOEVPG.js";
27
+ import "../chunk-YPD3MTFU.js";
28
+ import "../chunk-RJHX66EY.js";
29
+ import "../chunk-XAO6EYGM.js";
30
30
  import "../chunk-POFBE6ZY.js";
31
- import "../chunk-MA37WNVS.js";
32
- import "../chunk-JAKBCKEB.js";
33
- import "../chunk-M46WDK64.js";
34
- import "../chunk-7QLSKOSU.js";
31
+ import "../chunk-YDR4BQ7R.js";
32
+ import "../chunk-7BAO42UV.js";
33
+ import "../chunk-SFAP4AJY.js";
34
+ import "../chunk-PPY5N2E6.js";
35
35
  import "../chunk-KZERVKTD.js";
36
- import "../chunk-3RKIJM26.js";
37
- import "../chunk-KZCYHWDF.js";
38
- import "../chunk-US3IT6ZC.js";
36
+ import "../chunk-Y5VKZNFN.js";
37
+ import "../chunk-MWLTTLPK.js";
38
+ import "../chunk-CJ5TCFD4.js";
39
39
  import "../chunk-QENTGE75.js";
40
- import "../chunk-4XXZUFWN.js";
41
- import "../chunk-BMPZ5HVJ.js";
40
+ import "../chunk-BG4Y64FW.js";
41
+ import "../chunk-ERK24P76.js";
42
42
  import "../chunk-QTOLNRET.js";
43
- import "../chunk-762CDAJJ.js";
43
+ import "../chunk-AXJLJJ3M.js";
44
+ import "../chunk-MLKGABMK.js";
44
45
 
45
46
  // bin/pushary-notification-hook.ts
46
47
  var AGENT = activeIdentity(process.argv);