@pushary/agent-hooks 1.9.56 → 1.9.58

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 (119) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/{api-JHBUZ7CV.js → api-WVXBM4MR.js} +10 -10
  3. package/dist/bin/pushary-bell-hook.js +27 -27
  4. package/dist/bin/pushary-bell.js +10 -10
  5. package/dist/bin/pushary-claude.js +26 -26
  6. package/dist/bin/pushary-clean.js +49 -46
  7. package/dist/bin/pushary-codex-bridge.js +21 -21
  8. package/dist/bin/pushary-codex-hook.js +32 -32
  9. package/dist/bin/pushary-codex-session.js +10 -8
  10. package/dist/bin/pushary-codex.js +14 -14
  11. package/dist/bin/pushary-connect.js +27 -26
  12. package/dist/bin/pushary-cowork.js +5 -5
  13. package/dist/bin/pushary-daemon.js +37 -37
  14. package/dist/bin/pushary-disconnect.js +26 -26
  15. package/dist/bin/pushary-doctor.js +41 -39
  16. package/dist/bin/pushary-elicitation-hook.js +27 -27
  17. package/dist/bin/pushary-gemini-bridge.js +15 -15
  18. package/dist/bin/pushary-gemini-hook.js +29 -29
  19. package/dist/bin/pushary-hook.js +31 -31
  20. package/dist/bin/pushary-login.js +13 -13
  21. package/dist/bin/pushary-logout.js +26 -26
  22. package/dist/bin/pushary-mcp.js +11 -11
  23. package/dist/bin/pushary-mode.js +13 -13
  24. package/dist/bin/pushary-notification-hook.js +26 -26
  25. package/dist/bin/pushary-opencode-hook.js +28 -28
  26. package/dist/bin/pushary-permission-denied-hook.js +31 -31
  27. package/dist/bin/pushary-permission-hook.js +30 -30
  28. package/dist/bin/pushary-post-hook.js +26 -26
  29. package/dist/bin/pushary-prompt-hook.js +26 -26
  30. package/dist/bin/pushary-session-end-hook.js +26 -26
  31. package/dist/bin/pushary-session-start-hook.js +33 -33
  32. package/dist/bin/pushary-setup.js +65 -268
  33. package/dist/bin/pushary-stats.js +5 -5
  34. package/dist/bin/pushary-status.js +32 -30
  35. package/dist/bin/pushary-stop-hook.js +26 -26
  36. package/dist/bin/pushary-stopfailure-hook.js +26 -26
  37. package/dist/bin/pushary-suggestions.js +13 -13
  38. package/dist/bin/pushary-transcript-register.js +18 -18
  39. package/dist/bin/pushary-transcripts.js +7 -7
  40. package/dist/bin/pushary-upgrade.js +107 -58
  41. package/dist/bin/pushary-wait.js +13 -13
  42. package/dist/bin/pushary.js +7 -7
  43. package/dist/{chunk-DWV3LTUH.js → chunk-3KOPY2UQ.js} +3 -3
  44. package/dist/{chunk-X5FHQMUL.js → chunk-3TJLPABQ.js} +3 -3
  45. package/dist/{chunk-OCYOOGXW.js → chunk-3WNOO7BM.js} +4 -4
  46. package/dist/{chunk-FJ7ZMR4N.js → chunk-4JJ3T7IE.js} +94 -15
  47. package/dist/{chunk-LTCNAIY2.js → chunk-4LUPZ347.js} +2 -2
  48. package/dist/{chunk-V2AMLVMD.js → chunk-4YNNAF53.js} +2 -2
  49. package/dist/{chunk-32MSOGMD.js → chunk-5DZHKNBU.js} +3 -3
  50. package/dist/{chunk-T4IAMIX4.js → chunk-5SFM6XB4.js} +1 -1
  51. package/dist/{chunk-WW266XKU.js → chunk-7RZO6VWD.js} +2 -2
  52. package/dist/{chunk-VZ3YPEMG.js → chunk-ATUZX4K7.js} +3 -3
  53. package/dist/{chunk-4US3BCQJ.js → chunk-C3IWX6KU.js} +1 -1
  54. package/dist/{chunk-AKFTQT7P.js → chunk-CK5BCFQF.js} +2 -2
  55. package/dist/{chunk-ILQARYXK.js → chunk-CSQJCXPX.js} +5 -5
  56. package/dist/chunk-CZULJ647.js +378 -0
  57. package/dist/{chunk-J5HQNZXQ.js → chunk-DQ565WFA.js} +5 -5
  58. package/dist/{chunk-ZMRO6ESW.js → chunk-ECJJKDP7.js} +1 -1
  59. package/dist/chunk-FAGDOPQI.js +266 -0
  60. package/dist/{chunk-WACFIQYA.js → chunk-GZL3KEPC.js} +51 -25
  61. package/dist/{chunk-MVW5WS6F.js → chunk-HRHAZ3GE.js} +36 -28
  62. package/dist/{chunk-GWQ6T6JV.js → chunk-HUWLEVL2.js} +5 -5
  63. package/dist/{chunk-5HMYW5W2.js → chunk-I43PY5G3.js} +1 -1
  64. package/dist/{chunk-SMMDQXI2.js → chunk-IJ6XKKQW.js} +1 -1
  65. package/dist/{chunk-YBE2KH2U.js → chunk-IRZ5FVWG.js} +3 -3
  66. package/dist/{chunk-M6DTXZQK.js → chunk-IUOUNRLH.js} +2 -2
  67. package/dist/{chunk-FXW3FW4A.js → chunk-JSQOHMNJ.js} +1 -1
  68. package/dist/{chunk-FLUKEZMH.js → chunk-JYXIARGW.js} +1 -1
  69. package/dist/{chunk-QWUWQBIJ.js → chunk-JZKEC4XJ.js} +5 -2
  70. package/dist/{chunk-6PUHW2FP.js → chunk-K5CAURU5.js} +4 -4
  71. package/dist/{chunk-FBFPQLJG.js → chunk-KIH5BDH5.js} +2 -7
  72. package/dist/{chunk-74DKFWU2.js → chunk-KSVCCSAO.js} +5 -5
  73. package/dist/{chunk-ECQNBLPS.js → chunk-KW6EYFZV.js} +14 -369
  74. package/dist/{chunk-MWBFB7WA.js → chunk-LVDC3RUE.js} +1 -1
  75. package/dist/{chunk-7QAL23TB.js → chunk-LVWXRXT7.js} +1 -1
  76. package/dist/{chunk-L66VPBS5.js → chunk-M7NX25ZA.js} +1 -1
  77. package/dist/{chunk-KWAOOXSD.js → chunk-MCHOBQHE.js} +5 -5
  78. package/dist/{chunk-57EOP757.js → chunk-MYBCXDIL.js} +4 -2
  79. package/dist/{chunk-LW4ZEC3A.js → chunk-N3NSWWNU.js} +1 -1
  80. package/dist/{chunk-HR3DJWP2.js → chunk-OHD35NPC.js} +2 -2
  81. package/dist/{chunk-PI2WWZQQ.js → chunk-PZOFPAPG.js} +2 -2
  82. package/dist/{chunk-4OXULVUA.js → chunk-QDFLBTUP.js} +1 -1
  83. package/dist/{chunk-DUACX6E3.js → chunk-QP3XPS5U.js} +11 -7
  84. package/dist/{chunk-G63LBV4Y.js → chunk-QTCFEKLJ.js} +1 -1
  85. package/dist/{chunk-724266XT.js → chunk-RF74KBF5.js} +9 -9
  86. package/dist/{chunk-JPTFFZWY.js → chunk-RGQEULXD.js} +11 -11
  87. package/dist/{chunk-5HRXOANL.js → chunk-S54YLXWW.js} +3 -3
  88. package/dist/{chunk-M7ZXKMVX.js → chunk-S5LX25XE.js} +1 -1
  89. package/dist/{chunk-JTQHC3RV.js → chunk-T2AC5VFQ.js} +5 -5
  90. package/dist/{chunk-VRPDHJGB.js → chunk-T2BEIPK2.js} +4 -4
  91. package/dist/{chunk-FFGW45DJ.js → chunk-TN74MUMB.js} +8 -8
  92. package/dist/{chunk-6U3L4K57.js → chunk-UMVVQXAC.js} +2 -2
  93. package/dist/{chunk-DFZTZRKL.js → chunk-VLJ5C6IT.js} +4 -4
  94. package/dist/{chunk-SM2DT5KP.js → chunk-VPZ5K72D.js} +1 -1
  95. package/dist/{chunk-T6GEEMVC.js → chunk-WVP6UQG3.js} +3 -3
  96. package/dist/{chunk-JSS5RG65.js → chunk-WXZN5CS3.js} +2 -2
  97. package/dist/{chunk-I6OGFHJT.js → chunk-X6F4BQEE.js} +5 -5
  98. package/dist/{chunk-HTN7SMKB.js → chunk-XEJV3QSS.js} +76 -29
  99. package/dist/{chunk-AKBFNTJF.js → chunk-XFUKCBPU.js} +10 -10
  100. package/dist/{chunk-OX5EYBOC.js → chunk-XTZHUIGJ.js} +1 -1
  101. package/dist/{chunk-WNVQPGLH.js → chunk-XWY4UW62.js} +4 -4
  102. package/dist/{chunk-S3CQBNUU.js → chunk-XXNT4FGA.js} +1 -1
  103. package/dist/{chunk-MW3DD3S5.js → chunk-ZEHUWE3X.js} +6 -6
  104. package/dist/{chunk-RZF2GIPI.js → chunk-ZJNU32VE.js} +21 -6
  105. package/dist/{chunk-WCPN3GVW.js → chunk-ZL3UR6M5.js} +3 -3
  106. package/dist/{codex-app-cards-switch-7UIGMEUE.js → codex-app-cards-switch-TVKXJWXE.js} +21 -19
  107. package/dist/{codex-desktop-launch-66LZ6R4Y.js → codex-desktop-launch-ROTJEEGF.js} +3 -1
  108. package/dist/{codex-session-launch-3TGHFR7R.js → codex-session-launch-VL6ZQA3N.js} +18 -18
  109. package/dist/{config-OBDZ2CL3.js → config-SYLUYZQE.js} +3 -3
  110. package/dist/global-upgrade-IPWV5PTM.js +34 -0
  111. package/dist/{identity-WJUPU3AK.js → identity-ARPAUNGN.js} +4 -4
  112. package/dist/{live-capabilities-GACO2VB6.js → live-capabilities-EWTRY2HA.js} +4 -4
  113. package/dist/{paths-5PWAQF63.js → paths-IZTNMJAQ.js} +5 -3
  114. package/dist/{reapply-EYPT5EP2.js → reapply-ILKOYYKA.js} +26 -26
  115. package/dist/src/index.js +21 -21
  116. package/dist/{upgrade-lock-G2ZPV7ZO.js → upgrade-lock-ML73QXIG.js} +4 -6
  117. package/dist/{usage-PXBMEKSA.js → usage-OUV76AIY.js} +3 -3
  118. package/package.json +1 -1
  119. package/dist/global-upgrade-6M2UXUUL.js +0 -26
@@ -1,48 +1,48 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-6PUHW2FP.js";
5
- import "../chunk-FFGW45DJ.js";
4
+ } from "../chunk-K5CAURU5.js";
5
+ import "../chunk-TN74MUMB.js";
6
6
  import "../chunk-QW3FRUFB.js";
7
7
  import {
8
8
  activeHookSource,
9
9
  activeIdentity
10
- } from "../chunk-WNVQPGLH.js";
11
- import "../chunk-DUACX6E3.js";
12
- import "../chunk-74DKFWU2.js";
13
- import "../chunk-VZ3YPEMG.js";
14
- import "../chunk-ZMRO6ESW.js";
15
- import "../chunk-4OXULVUA.js";
10
+ } from "../chunk-XWY4UW62.js";
11
+ import "../chunk-QP3XPS5U.js";
12
+ import "../chunk-KSVCCSAO.js";
13
+ import "../chunk-ATUZX4K7.js";
14
+ import "../chunk-ECJJKDP7.js";
15
+ import "../chunk-QDFLBTUP.js";
16
16
  import "../chunk-GMXKITVA.js";
17
- import "../chunk-FXW3FW4A.js";
18
- import "../chunk-LW4ZEC3A.js";
19
- import "../chunk-4US3BCQJ.js";
17
+ import "../chunk-JSQOHMNJ.js";
18
+ import "../chunk-N3NSWWNU.js";
19
+ import "../chunk-C3IWX6KU.js";
20
20
  import "../chunk-XHKBHWLX.js";
21
21
  import "../chunk-6ICPEJY5.js";
22
- import "../chunk-YBE2KH2U.js";
22
+ import "../chunk-IRZ5FVWG.js";
23
23
  import {
24
24
  handleStop,
25
25
  handleSubagentStop,
26
26
  isSubagentStop
27
- } from "../chunk-724266XT.js";
28
- import "../chunk-G63LBV4Y.js";
29
- import "../chunk-S3CQBNUU.js";
30
- import "../chunk-J5HQNZXQ.js";
31
- import "../chunk-WCPN3GVW.js";
27
+ } from "../chunk-RF74KBF5.js";
28
+ import "../chunk-QTCFEKLJ.js";
29
+ import "../chunk-XXNT4FGA.js";
30
+ import "../chunk-DQ565WFA.js";
31
+ import "../chunk-ZL3UR6M5.js";
32
32
  import "../chunk-POFBE6ZY.js";
33
- import "../chunk-5HRXOANL.js";
34
- import "../chunk-32MSOGMD.js";
35
- import "../chunk-SMMDQXI2.js";
33
+ import "../chunk-S54YLXWW.js";
34
+ import "../chunk-5DZHKNBU.js";
35
+ import "../chunk-IJ6XKKQW.js";
36
36
  import "../chunk-7QLSKOSU.js";
37
37
  import "../chunk-KZERVKTD.js";
38
- import "../chunk-WW266XKU.js";
39
- import "../chunk-57EOP757.js";
40
- import "../chunk-T6GEEMVC.js";
38
+ import "../chunk-7RZO6VWD.js";
39
+ import "../chunk-MYBCXDIL.js";
40
+ import "../chunk-WVP6UQG3.js";
41
41
  import "../chunk-QENTGE75.js";
42
- import "../chunk-MWBFB7WA.js";
43
- import "../chunk-T4IAMIX4.js";
42
+ import "../chunk-LVDC3RUE.js";
43
+ import "../chunk-5SFM6XB4.js";
44
44
  import "../chunk-QTOLNRET.js";
45
- import "../chunk-WACFIQYA.js";
45
+ import "../chunk-GZL3KEPC.js";
46
46
 
47
47
  // bin/pushary-stop-hook.ts
48
48
  var AGENT = activeIdentity(process.argv);
@@ -1,46 +1,46 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-6PUHW2FP.js";
5
- import "../chunk-FFGW45DJ.js";
4
+ } from "../chunk-K5CAURU5.js";
5
+ import "../chunk-TN74MUMB.js";
6
6
  import "../chunk-QW3FRUFB.js";
7
7
  import {
8
8
  activeHookSource,
9
9
  activeIdentity
10
- } from "../chunk-WNVQPGLH.js";
11
- import "../chunk-DUACX6E3.js";
12
- import "../chunk-74DKFWU2.js";
13
- import "../chunk-VZ3YPEMG.js";
14
- import "../chunk-ZMRO6ESW.js";
15
- import "../chunk-4OXULVUA.js";
10
+ } from "../chunk-XWY4UW62.js";
11
+ import "../chunk-QP3XPS5U.js";
12
+ import "../chunk-KSVCCSAO.js";
13
+ import "../chunk-ATUZX4K7.js";
14
+ import "../chunk-ECJJKDP7.js";
15
+ import "../chunk-QDFLBTUP.js";
16
16
  import "../chunk-GMXKITVA.js";
17
- import "../chunk-FXW3FW4A.js";
18
- import "../chunk-LW4ZEC3A.js";
19
- import "../chunk-4US3BCQJ.js";
17
+ import "../chunk-JSQOHMNJ.js";
18
+ import "../chunk-N3NSWWNU.js";
19
+ import "../chunk-C3IWX6KU.js";
20
20
  import "../chunk-XHKBHWLX.js";
21
21
  import "../chunk-6ICPEJY5.js";
22
- import "../chunk-YBE2KH2U.js";
22
+ import "../chunk-IRZ5FVWG.js";
23
23
  import {
24
24
  handleStopFailure
25
- } from "../chunk-724266XT.js";
26
- import "../chunk-G63LBV4Y.js";
27
- import "../chunk-S3CQBNUU.js";
28
- import "../chunk-J5HQNZXQ.js";
29
- import "../chunk-WCPN3GVW.js";
25
+ } from "../chunk-RF74KBF5.js";
26
+ import "../chunk-QTCFEKLJ.js";
27
+ import "../chunk-XXNT4FGA.js";
28
+ import "../chunk-DQ565WFA.js";
29
+ import "../chunk-ZL3UR6M5.js";
30
30
  import "../chunk-POFBE6ZY.js";
31
- import "../chunk-5HRXOANL.js";
32
- import "../chunk-32MSOGMD.js";
33
- import "../chunk-SMMDQXI2.js";
31
+ import "../chunk-S54YLXWW.js";
32
+ import "../chunk-5DZHKNBU.js";
33
+ import "../chunk-IJ6XKKQW.js";
34
34
  import "../chunk-7QLSKOSU.js";
35
35
  import "../chunk-KZERVKTD.js";
36
- import "../chunk-WW266XKU.js";
37
- import "../chunk-57EOP757.js";
38
- import "../chunk-T6GEEMVC.js";
36
+ import "../chunk-7RZO6VWD.js";
37
+ import "../chunk-MYBCXDIL.js";
38
+ import "../chunk-WVP6UQG3.js";
39
39
  import "../chunk-QENTGE75.js";
40
- import "../chunk-MWBFB7WA.js";
41
- import "../chunk-T4IAMIX4.js";
40
+ import "../chunk-LVDC3RUE.js";
41
+ import "../chunk-5SFM6XB4.js";
42
42
  import "../chunk-QTOLNRET.js";
43
- import "../chunk-WACFIQYA.js";
43
+ import "../chunk-GZL3KEPC.js";
44
44
 
45
45
  // bin/pushary-stopfailure-hook.ts
46
46
  var AGENT = activeIdentity(process.argv);
@@ -1,38 +1,38 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  exitOnFailedSettingsRequest
4
- } from "../chunk-DFZTZRKL.js";
5
- import "../chunk-V2AMLVMD.js";
4
+ } from "../chunk-VLJ5C6IT.js";
5
+ import "../chunk-4YNNAF53.js";
6
6
  import {
7
7
  createIo
8
8
  } from "../chunk-FO3MDD26.js";
9
9
  import {
10
10
  exitOnHelpFlag
11
- } from "../chunk-L66VPBS5.js";
11
+ } from "../chunk-M7NX25ZA.js";
12
12
  import {
13
13
  rejectUnknownFlags
14
14
  } from "../chunk-GMXKITVA.js";
15
- import "../chunk-YBE2KH2U.js";
16
- import "../chunk-5HRXOANL.js";
17
- import "../chunk-32MSOGMD.js";
18
- import "../chunk-SMMDQXI2.js";
15
+ import "../chunk-IRZ5FVWG.js";
16
+ import "../chunk-S54YLXWW.js";
17
+ import "../chunk-5DZHKNBU.js";
18
+ import "../chunk-IJ6XKKQW.js";
19
19
  import {
20
20
  UsageError
21
21
  } from "../chunk-7QLSKOSU.js";
22
22
  import {
23
23
  EXIT
24
24
  } from "../chunk-KZERVKTD.js";
25
- import "../chunk-WW266XKU.js";
26
- import "../chunk-57EOP757.js";
27
- import "../chunk-T6GEEMVC.js";
25
+ import "../chunk-7RZO6VWD.js";
26
+ import "../chunk-MYBCXDIL.js";
27
+ import "../chunk-WVP6UQG3.js";
28
28
  import "../chunk-QENTGE75.js";
29
29
  import {
30
30
  getApiKey,
31
31
  getBaseUrl
32
- } from "../chunk-MWBFB7WA.js";
33
- import "../chunk-T4IAMIX4.js";
32
+ } from "../chunk-LVDC3RUE.js";
33
+ import "../chunk-5SFM6XB4.js";
34
34
  import "../chunk-QTOLNRET.js";
35
- import "../chunk-WACFIQYA.js";
35
+ import "../chunk-GZL3KEPC.js";
36
36
 
37
37
  // bin/pushary-suggestions.ts
38
38
  exitOnHelpFlag("suggestions");
@@ -1,32 +1,32 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  registerTranscript
4
- } from "../chunk-FFGW45DJ.js";
4
+ } from "../chunk-TN74MUMB.js";
5
5
  import "../chunk-QW3FRUFB.js";
6
- import "../chunk-DUACX6E3.js";
7
- import "../chunk-74DKFWU2.js";
8
- import "../chunk-VZ3YPEMG.js";
9
- import "../chunk-ZMRO6ESW.js";
10
- import "../chunk-4OXULVUA.js";
6
+ import "../chunk-QP3XPS5U.js";
7
+ import "../chunk-KSVCCSAO.js";
8
+ import "../chunk-ATUZX4K7.js";
9
+ import "../chunk-ECJJKDP7.js";
10
+ import "../chunk-QDFLBTUP.js";
11
11
  import "../chunk-GMXKITVA.js";
12
- import "../chunk-FXW3FW4A.js";
13
- import "../chunk-LW4ZEC3A.js";
14
- import "../chunk-4US3BCQJ.js";
12
+ import "../chunk-JSQOHMNJ.js";
13
+ import "../chunk-N3NSWWNU.js";
14
+ import "../chunk-C3IWX6KU.js";
15
15
  import "../chunk-XHKBHWLX.js";
16
16
  import "../chunk-6ICPEJY5.js";
17
- import "../chunk-YBE2KH2U.js";
18
- import "../chunk-G63LBV4Y.js";
19
- import "../chunk-SMMDQXI2.js";
17
+ import "../chunk-IRZ5FVWG.js";
18
+ import "../chunk-QTCFEKLJ.js";
19
+ import "../chunk-IJ6XKKQW.js";
20
20
  import "../chunk-7QLSKOSU.js";
21
21
  import "../chunk-KZERVKTD.js";
22
- import "../chunk-WW266XKU.js";
23
- import "../chunk-57EOP757.js";
24
- import "../chunk-T6GEEMVC.js";
22
+ import "../chunk-7RZO6VWD.js";
23
+ import "../chunk-MYBCXDIL.js";
24
+ import "../chunk-WVP6UQG3.js";
25
25
  import "../chunk-QENTGE75.js";
26
- import "../chunk-MWBFB7WA.js";
27
- import "../chunk-T4IAMIX4.js";
26
+ import "../chunk-LVDC3RUE.js";
27
+ import "../chunk-5SFM6XB4.js";
28
28
  import "../chunk-QTOLNRET.js";
29
- import "../chunk-WACFIQYA.js";
29
+ import "../chunk-GZL3KEPC.js";
30
30
 
31
31
  // bin/pushary-transcript-register.ts
32
32
  var raw = "";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  exitOnHelpFlag
4
- } from "../chunk-L66VPBS5.js";
4
+ } from "../chunk-M7NX25ZA.js";
5
5
  import {
6
6
  clearPin,
7
7
  fingerprint,
@@ -9,15 +9,15 @@ import {
9
9
  } from "../chunk-QW3FRUFB.js";
10
10
  import {
11
11
  transcriptsEnabled
12
- } from "../chunk-4US3BCQJ.js";
13
- import "../chunk-YBE2KH2U.js";
12
+ } from "../chunk-C3IWX6KU.js";
13
+ import "../chunk-IRZ5FVWG.js";
14
14
  import "../chunk-KZERVKTD.js";
15
- import "../chunk-WW266XKU.js";
15
+ import "../chunk-7RZO6VWD.js";
16
16
  import "../chunk-QENTGE75.js";
17
- import "../chunk-MWBFB7WA.js";
18
- import "../chunk-T4IAMIX4.js";
17
+ import "../chunk-LVDC3RUE.js";
18
+ import "../chunk-5SFM6XB4.js";
19
19
  import "../chunk-QTOLNRET.js";
20
- import "../chunk-WACFIQYA.js";
20
+ import "../chunk-GZL3KEPC.js";
21
21
 
22
22
  // bin/pushary-transcripts.ts
23
23
  exitOnHelpFlag("transcripts");
@@ -1,52 +1,62 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  FINISH_UPGRADE_FLAG,
4
+ describeUnreadyService,
4
5
  finishGlobalUpgrade,
5
6
  finishUpgradeWithLock,
7
+ forgetUnfinishedUpgrade,
6
8
  instructionsLeftNoteOf,
9
+ phoneStartFellShortWithoutFailing,
10
+ phoneStartServiceAfter,
7
11
  readGlobalUpgradeSubject,
12
+ recordUnfinishedUpgrade,
8
13
  refreshedPartsOf,
9
14
  runAutoUpdate,
15
+ serviceStaysOwedBack,
10
16
  upgradeFinishExitCode,
11
17
  upgradeFinishOutcome,
12
18
  upgradeInstalledPackage,
13
19
  wasRefreshed,
14
20
  withUpgradeLock
15
- } from "../chunk-FJ7ZMR4N.js";
21
+ } from "../chunk-4JJ3T7IE.js";
16
22
  import {
17
23
  installWithUpgradeLock
18
- } from "../chunk-FBFPQLJG.js";
24
+ } from "../chunk-KIH5BDH5.js";
25
+ import {
26
+ phoneStartFellShortLine
27
+ } from "../chunk-FAGDOPQI.js";
19
28
  import {
20
29
  ensureCodexTrustAfterReapply,
21
30
  reapplyAllAgents
22
- } from "../chunk-AKBFNTJF.js";
31
+ } from "../chunk-XFUKCBPU.js";
23
32
  import {
24
33
  describeCodexTrustConfirmation
25
- } from "../chunk-HR3DJWP2.js";
34
+ } from "../chunk-OHD35NPC.js";
35
+ import "../chunk-CZULJ647.js";
26
36
  import {
27
37
  waitForMachineReadiness
28
- } from "../chunk-ILQARYXK.js";
29
- import "../chunk-6U3L4K57.js";
38
+ } from "../chunk-CSQJCXPX.js";
39
+ import "../chunk-UMVVQXAC.js";
30
40
  import {
31
41
  readMacAppAgentKey
32
- } from "../chunk-VRPDHJGB.js";
42
+ } from "../chunk-T2BEIPK2.js";
33
43
  import {
34
44
  fxServerHolder,
35
45
  macAppFxBridge,
36
46
  retryAgentCommand
37
- } from "../chunk-GWQ6T6JV.js";
38
- import "../chunk-LTCNAIY2.js";
39
- import "../chunk-JTQHC3RV.js";
47
+ } from "../chunk-HUWLEVL2.js";
48
+ import "../chunk-4LUPZ347.js";
49
+ import "../chunk-T2AC5VFQ.js";
40
50
  import {
41
51
  exitOnHelpFlag
42
- } from "../chunk-L66VPBS5.js";
52
+ } from "../chunk-M7NX25ZA.js";
43
53
  import {
44
54
  detectProviderLiveCapabilities,
45
55
  expectedLaunchCapabilities,
46
56
  hasSpawnProvider,
47
57
  resolveControlPolicy
48
- } from "../chunk-DWV3LTUH.js";
49
- import "../chunk-7QAL23TB.js";
58
+ } from "../chunk-3KOPY2UQ.js";
59
+ import "../chunk-LVWXRXT7.js";
50
60
  import "../chunk-VUFHYMSP.js";
51
61
  import {
52
62
  AUTO_UPDATE_DISABLE_ENV,
@@ -57,11 +67,12 @@ import {
57
67
  parseAutoUpdateFlag,
58
68
  readAutoUpdateState,
59
69
  updateAutoUpdateState
60
- } from "../chunk-QWUWQBIJ.js";
61
- import "../chunk-WNVQPGLH.js";
70
+ } from "../chunk-JZKEC4XJ.js";
71
+ import "../chunk-XWY4UW62.js";
62
72
  import {
63
73
  DAEMON_COLD_START_TIMEOUT_MS,
64
74
  daemonHasRemoteProof,
75
+ daemonProcessIsThere,
65
76
  daemonServiceManagerAvailable,
66
77
  disableDaemonService,
67
78
  ensureDaemonRunning,
@@ -70,32 +81,32 @@ import {
70
81
  replaceDaemonService,
71
82
  stopDaemonService,
72
83
  waitForDaemonRemoteProof
73
- } from "../chunk-DUACX6E3.js";
74
- import "../chunk-74DKFWU2.js";
75
- import "../chunk-VZ3YPEMG.js";
76
- import "../chunk-ZMRO6ESW.js";
77
- import "../chunk-4OXULVUA.js";
84
+ } from "../chunk-QP3XPS5U.js";
85
+ import "../chunk-KSVCCSAO.js";
86
+ import "../chunk-ATUZX4K7.js";
87
+ import "../chunk-ECJJKDP7.js";
88
+ import "../chunk-QDFLBTUP.js";
78
89
  import "../chunk-GMXKITVA.js";
79
90
  import "../chunk-XHKBHWLX.js";
80
91
  import "../chunk-6ICPEJY5.js";
81
92
  import {
82
93
  readControlMode,
83
94
  recordMacAppKeyPrefix
84
- } from "../chunk-YBE2KH2U.js";
85
- import "../chunk-724266XT.js";
86
- import "../chunk-G63LBV4Y.js";
87
- import "../chunk-S3CQBNUU.js";
88
- import "../chunk-J5HQNZXQ.js";
89
- import "../chunk-WCPN3GVW.js";
95
+ } from "../chunk-IRZ5FVWG.js";
96
+ import "../chunk-RF74KBF5.js";
97
+ import "../chunk-QTCFEKLJ.js";
98
+ import "../chunk-XXNT4FGA.js";
99
+ import "../chunk-DQ565WFA.js";
100
+ import "../chunk-ZL3UR6M5.js";
90
101
  import "../chunk-POFBE6ZY.js";
91
- import "../chunk-5HRXOANL.js";
92
- import "../chunk-32MSOGMD.js";
93
- import "../chunk-SMMDQXI2.js";
102
+ import "../chunk-S54YLXWW.js";
103
+ import "../chunk-5DZHKNBU.js";
104
+ import "../chunk-IJ6XKKQW.js";
94
105
  import "../chunk-7QLSKOSU.js";
95
106
  import {
96
107
  EXIT
97
108
  } from "../chunk-KZERVKTD.js";
98
- import "../chunk-WW266XKU.js";
109
+ import "../chunk-7RZO6VWD.js";
99
110
  import {
100
111
  autoUpdateState,
101
112
  claudeJson,
@@ -104,30 +115,50 @@ import {
104
115
  fxMcpProfile,
105
116
  geminiSettings,
106
117
  pusharyDir,
118
+ serviceOwedBackMark,
107
119
  vscodePluginDir
108
- } from "../chunk-57EOP757.js";
120
+ } from "../chunk-MYBCXDIL.js";
109
121
  import {
110
122
  LATEST_TAG,
111
123
  fetchLatestPublishedVersion
112
- } from "../chunk-T6GEEMVC.js";
113
- import "../chunk-QENTGE75.js";
124
+ } from "../chunk-WVP6UQG3.js";
125
+ import {
126
+ writeFileAtomic
127
+ } from "../chunk-QENTGE75.js";
114
128
  import {
115
129
  getApiKey
116
- } from "../chunk-MWBFB7WA.js";
130
+ } from "../chunk-LVDC3RUE.js";
117
131
  import {
118
132
  NPX_LATEST_COMMAND
119
- } from "../chunk-T4IAMIX4.js";
133
+ } from "../chunk-5SFM6XB4.js";
120
134
  import {
121
135
  CANONICAL_PACKAGE,
122
136
  LEGACY_PACKAGE,
123
137
  getPackageVersion
124
138
  } from "../chunk-QTOLNRET.js";
125
- import "../chunk-WACFIQYA.js";
139
+ import "../chunk-GZL3KEPC.js";
126
140
 
127
141
  // bin/pushary-upgrade.ts
128
- import { existsSync } from "fs";
142
+ import { existsSync as existsSync2 } from "fs";
129
143
  import { homedir } from "os";
130
144
  import { join } from "path";
145
+
146
+ // src/service-owed-back.ts
147
+ import { existsSync, mkdirSync, rmSync } from "fs";
148
+ import { dirname } from "path";
149
+ var MARK_MODE = 384;
150
+ var serviceIsOwedBack = (markPath) => existsSync(markPath);
151
+ var recordWhetherTheServiceIsOwedBack = (markPath, owed) => {
152
+ if (owed === serviceIsOwedBack(markPath)) return;
153
+ if (!owed) {
154
+ rmSync(markPath, { force: true });
155
+ return;
156
+ }
157
+ mkdirSync(dirname(markPath), { recursive: true });
158
+ writeFileAtomic(markPath, "", MARK_MODE);
159
+ };
160
+
161
+ // bin/pushary-upgrade.ts
131
162
  exitOnHelpFlag("upgrade");
132
163
  var fxWiredByCli = () => fxServerHolder(fxMcpProfile(), macAppFxBridge(pusharyDir())) === "cli";
133
164
  var detectInstallModes = () => {
@@ -135,32 +166,32 @@ var detectInstallModes = () => {
135
166
  {
136
167
  label: "Cursor plugin",
137
168
  upgrade: "updates itself through Cursor",
138
- present: existsSync(cursorPluginDir())
169
+ present: existsSync2(cursorPluginDir())
139
170
  },
140
171
  {
141
172
  label: "VS Code plugin",
142
173
  upgrade: `${NPX_LATEST_COMMAND} setup --agents vscode`,
143
- present: existsSync(vscodePluginDir())
174
+ present: existsSync2(vscodePluginDir())
144
175
  },
145
176
  {
146
177
  label: "Codex config",
147
178
  upgrade: `${NPX_LATEST_COMMAND} setup --agents codex`,
148
- present: existsSync(codexConfigToml())
179
+ present: existsSync2(codexConfigToml())
149
180
  },
150
181
  {
151
182
  label: "Claude Code config",
152
183
  upgrade: `${NPX_LATEST_COMMAND} setup --agents claude_code`,
153
- present: existsSync(claudeJson())
184
+ present: existsSync2(claudeJson())
154
185
  },
155
186
  {
156
187
  label: "Gemini config",
157
188
  upgrade: `${NPX_LATEST_COMMAND} setup --agents gemini_cli`,
158
- present: existsSync(geminiSettings())
189
+ present: existsSync2(geminiSettings())
159
190
  },
160
191
  {
161
192
  label: "Hermes plugin (pip)",
162
193
  upgrade: `${NPX_LATEST_COMMAND} setup --agents hermes`,
163
- present: existsSync(join(homedir(), ".hermes"))
194
+ present: existsSync2(join(homedir(), ".hermes"))
164
195
  },
165
196
  {
166
197
  label: "fx config",
@@ -191,6 +222,7 @@ var finishUpgrade = async () => {
191
222
  const configuredControlProviders = inspectedAgents.filter((agent) => agent.result.configured && (agent.id === "claude" || agent.id === "codex" || agent.id === "gemini")).map((agent) => agent.id);
192
223
  const controlMode = readControlMode();
193
224
  const daemonStatus = readDaemonStatus();
225
+ const serviceWasOwedBack = serviceIsOwedBack(serviceOwedBackMark());
194
226
  const serviceWasPresent = daemonStatus.kind !== "absent" || hasDaemonServiceDefinition();
195
227
  const controlCapabilities = detectProviderLiveCapabilities(configuredControlProviders);
196
228
  const controlPolicy = resolveControlPolicy({
@@ -199,6 +231,8 @@ var finishUpgrade = async () => {
199
231
  managerAvailable: daemonServiceManagerAvailable(),
200
232
  servicePresent: serviceWasPresent
201
233
  });
234
+ const serviceWasRunning = daemonProcessIsThere(daemonStatus) || serviceWasOwedBack;
235
+ const serviceStart = controlPolicy === "enabled" && apiKey ? await replaceBackgroundService(apiKey, configuredControlProviders, serviceWasRunning) : "not_tried";
202
236
  let daemonReady = true;
203
237
  let legacyStopFailure = null;
204
238
  if (controlPolicy === "disabled" && serviceWasPresent) {
@@ -208,20 +242,14 @@ var finishUpgrade = async () => {
208
242
  legacyStopFailure = stopped.kind === "ok" ? null : stopped.detail;
209
243
  daemonReady = false;
210
244
  } else if (controlPolicy === "enabled") {
211
- if (!apiKey) {
212
- daemonReady = false;
213
- } else {
214
- const service = await replaceDaemonService();
215
- const daemon = service.kind === "ok" ? await ensureDaemonRunning({ spawnDaemon: () => {
216
- }, waitTimeoutMs: DAEMON_COLD_START_TIMEOUT_MS }) : null;
217
- const localProof = daemon?.kind === "running" || daemon?.kind === "started" ? await waitForDaemonRemoteProof() : null;
218
- const serverProof = localProof && daemonHasRemoteProof(localProof) ? await waitForMachineReadiness(apiKey, expectedLaunchCapabilities(configuredControlProviders)) : null;
219
- daemonReady = service.kind === "ok" && localProof !== null && daemonHasRemoteProof(localProof) && (serverProof?.kind === "ready" || serverProof?.kind === "unsupported");
220
- }
245
+ daemonReady = serviceStart === "verified";
221
246
  } else if (controlMode === "on" && controlPolicy === "unsupported") {
222
247
  daemonReady = false;
223
248
  }
224
- const finishOutcome = upgradeFinishOutcome({ controlMode, controlPolicy, daemonReady, failedRefreshCount: failedRefreshes.length });
249
+ const finishReadings = { controlMode, controlPolicy, daemonReady, serviceStart, serviceWasRunning, failedRefreshCount: failedRefreshes.length };
250
+ const finishOutcome = upgradeFinishOutcome(finishReadings);
251
+ recordWhetherTheServiceIsOwedBack(serviceOwedBackMark(), serviceStaysOwedBack(finishReadings, serviceWasOwedBack));
252
+ const phoneStartNote = phoneStartFellShortWithoutFailing(finishReadings) ? phoneStartFellShortLine(phoneStartServiceAfter(serviceStart)) : null;
225
253
  console.log();
226
254
  if (refreshed.length > 0) {
227
255
  console.log("Refreshed so this version is active now:");
@@ -250,20 +278,38 @@ var finishUpgrade = async () => {
250
278
  console.log(describeCodexTrustConfirmation(codexTrust));
251
279
  }
252
280
  console.log();
253
- if (!daemonReady) {
254
- console.error(controlPolicy === "disabled" ? "Upgrade installed, but the disabled background service could not be fully removed. Re-run setup with --control off." : controlPolicy === "legacy" ? legacyStopFailure ? `Upgrade installed, but the legacy background service could not be stopped: ${legacyStopFailure}. Run setup with --control off.` : "Upgrade installed and the legacy background service was stopped, but it cannot be safely adopted. Run setup with --control off, or restore its provider and native service manager." : controlPolicy === "enabled" && !apiKey ? "Upgrade installed, but phone-start could not be reconciled because no API key was readable. Re-run setup." : "Upgrade installed, but the background service did not start. Run: pushary daemon install");
281
+ if (!daemonReady && phoneStartNote === null) {
282
+ console.error(describeUnreadyService({ controlPolicy, legacyStopFailure, keyReadable: Boolean(apiKey), serviceStart }));
255
283
  process.exitCode = upgradeFinishExitCode(finishOutcome);
256
284
  return;
257
285
  }
258
286
  if (failedRefreshes.length > 0) {
287
+ if (phoneStartNote !== null) console.log(phoneStartNote);
259
288
  console.error(`Upgrade installed, but refreshing agent configuration failed for: ${failedRefreshes.map((agent) => agent.label).join(", ")}. Check the config files and run pushary upgrade again.`);
260
289
  process.exitCode = upgradeFinishExitCode(finishOutcome);
261
290
  return;
262
291
  }
263
- console.log(controlPolicy === "disabled" ? "Done. Your hooks use the new global install; phone-start remains disabled." : controlPolicy === "unsupported" || controlPolicy === "preserve-absent" ? "Done. Your hooks use the new global install; no background service was added." : "Done. Your hooks and background service use the new global install.");
292
+ console.log(controlPolicy === "disabled" ? "Done. Your hooks use the new global install; phone-start remains disabled." : controlPolicy === "unsupported" || controlPolicy === "preserve-absent" ? "Done. Your hooks use the new global install; no background service was added." : phoneStartNote === null ? "Done. Your hooks and background service use the new global install." : "Done. Your hooks use the new global install.");
293
+ if (phoneStartNote !== null) console.log(phoneStartNote);
264
294
  console.log("Verify with: pushary doctor");
265
295
  };
266
- var INSTRUCTIONS_LEFT_HEADING = "Pushary instructions left as they were. Fix the file, then run pushary upgrade again:";
296
+ var startBackgroundService = async (apiKey, providers) => {
297
+ const service = await replaceDaemonService();
298
+ if (service.kind !== "ok") return "did_not_start";
299
+ const daemon = await ensureDaemonRunning({ spawnDaemon: () => {
300
+ }, waitTimeoutMs: DAEMON_COLD_START_TIMEOUT_MS });
301
+ if (daemon.kind !== "running" && daemon.kind !== "started") return "did_not_start";
302
+ const localProof = await waitForDaemonRemoteProof();
303
+ if (localProof.kind !== "running") return "did_not_start";
304
+ if (!daemonHasRemoteProof(localProof)) return "started_unverified";
305
+ const serverProof = await waitForMachineReadiness(apiKey, expectedLaunchCapabilities(providers));
306
+ return serverProof.kind === "ready" || serverProof.kind === "unsupported" ? "verified" : "started_unverified";
307
+ };
308
+ var replaceBackgroundService = async (apiKey, providers, serviceWasRunning) => {
309
+ if (serviceWasRunning) recordWhetherTheServiceIsOwedBack(serviceOwedBackMark(), true);
310
+ return startBackgroundService(apiKey, providers);
311
+ };
312
+ var INSTRUCTIONS_LEFT_HEADING = "Pushary instructions left as they were. Fix the file and the next update refreshes them:";
267
313
  var KEPT_FOR_APP_HEADING = "Kept for the Pushary Mac app, which owns these agents. Nothing in their config was changed:";
268
314
  var AUTO_UPDATE_ON_MESSAGE = "Automatic updates are on. Pushary checks for a new version once a day, when an agent session starts.";
269
315
  var AUTO_UPDATE_OFF_MESSAGE = "Automatic updates are off. Turn them back on with: pushary upgrade --auto=on";
@@ -326,6 +372,7 @@ var reportNoGlobalInstall = () => {
326
372
  console.log();
327
373
  console.log("Check the result with: pushary doctor");
328
374
  };
375
+ var upgradeRecordNow = () => ({ statePath: autoUpdateState(), installed: readGlobalUpgradeSubject(), at: (/* @__PURE__ */ new Date()).toISOString() });
329
376
  var upgradeSubject = async (subject) => {
330
377
  const outcome = await upgradeInstalledPackage(subject, {
331
378
  fetchLatest: (packageName) => fetchLatestPublishedVersion({ packageName }),
@@ -333,6 +380,8 @@ var upgradeSubject = async (subject) => {
333
380
  recordFinished: () => {
334
381
  updateAutoUpdateState(autoUpdateState(), { lastResult: "updated", detail: void 0, announced: false, finishAttempts: void 0 });
335
382
  },
383
+ recordUnfinished: (unfinished) => recordUnfinishedUpgrade(upgradeRecordNow(), unfinished),
384
+ forgetUnfinished: () => forgetUnfinishedUpgrade(upgradeRecordNow(), subject.version),
336
385
  announce: (line) => console.log(line),
337
386
  install: (packageName) => installWithUpgradeLock({ packageName, version: LATEST_TAG, timeoutMs: 12e4 }),
338
387
  finish: (installedSubject) => finishGlobalUpgrade(installedSubject)