pushary 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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.58
4
+
5
+ - `pushary clean` no longer removes the Codex app cards launcher when it could not turn the switch off. It keeps the folder and prints the reason. Before, a failed turn-off could leave the Codex app starting through a launcher that was gone, and Codex would not start its engine until the next logout. The same now holds when the setting that starts the Codex app cannot be read while a launcher or login item is on disk: clean and `pushary codex --app-cards off` change nothing and say so, where they used to read it as not set.
6
+ - `pushary clean` leaves the launcher folder to the step that turns the switch off. Its last sweep of `~/.pushary` used to remove the folder a second time, which could delete a launcher the running Mac app had just written back.
7
+ - With the switch turned on from the command, cards keep reaching Pushary after the CLI updates itself while Codex is open. The pass-through loaded part of its code at the first card, and an update replaces those files, so the first card after an update stayed in Codex. It now loads that code when it starts.
8
+ - `pushary codex --app-cards status --json` also reports where the launcher is, whether the launcher and login item are what this version writes, and whether a switch that is off left a launch setting behind. The Pushary Mac app uses these to rewrite files an older version wrote and to repair a launcher that was deleted.
9
+ - Setup no longer says phone-start is "not running" when its background service is running and only the check fell short. That covers a service that started but was not verified in time, and an older service that could not be replaced and still runs. Setup now says the service is running but this run could not verify it, and points to `pushary doctor`. When the service could not be stopped or removed, setup says that, makes no claim about whether it runs, and no longer offers `pushary daemon install` for it.
10
+ - `pushary upgrade` and the daily automatic update no longer fail when a phone-start service that Pushary started on its own is running but not verified in time, or does not come up on a computer that had no service before. `pushary upgrade` prints the line setup prints; the daily update writes it to its log. Since 1.9.50 setup treated this as a note while the update still exited 1 and kept retrying. A service that was running before the update and did not come back still fails the update, and the update tries again to bring it back: the daily update after 5 minutes, an hour, then daily, where automatic updates run, and `pushary upgrade` each time you run it. It stops trying when the service runs again, when phone-start is turned off, or when this computer can no longer run phone-start. Where setup never recorded a phone-start choice, because the key came from `pushary login` or the Mac app, it also stops when the service is no longer installed. One case is not tried again: an upgrade started with `pushary upgrade` by an installed version older than this one, which keeps no record to try again from. `npx pushary@latest upgrade` and the daily update always keep one. Phone-start you asked for with `--control on` is retried the same way.
11
+ - `pushary upgrade` now remembers an upgrade whose last step, refreshing the agent configuration, did not finish. Running `pushary upgrade` again finishes it. This holds when the upgrade is started by this version or a later one, which `npx pushary@latest upgrade` always is. Before, the first run said to run it again and the second run answered "Already on the latest version" and did nothing. A last step that needs a change only you can make is recorded as waiting on you, so the daily update leaves it alone. `pushary doctor` shows these under "Last update check" (it said "Last automatic update check", which a manual upgrade is not), and a later upgrade that finishes replaces the record.
12
+ - When phone-start you asked for with `--control on` started but could not be verified in time, `pushary upgrade` says so and points to `pushary doctor`. It used to say the service did not start. With `--control on` on a computer that cannot run phone-start, it no longer says to run `pushary daemon install`, which could not work there.
13
+ - When an instruction file is left alone during an update, the message no longer says to run `pushary upgrade` again. That did nothing while the installed version was current. It now says the next update refreshes the file once it is fixed.
14
+
15
+ ## 1.9.57
16
+
17
+ - Codex questions you answer by typing now reach Pushary. When Codex asks something with no suggested answers, the hook used to leave it in Codex, so it never showed in the notch or on your phone. It now arrives as a question with a text field, and what you type goes back to Codex in place of its card, word for word. One exception: an answer that is only the word "defer" hands the question back, as it does everywhere else, and Codex shows its own card.
18
+ - Several questions in one call are still asked one after the other. A typed question and a question with choices can sit in the same call.
19
+ - Nothing else has to update first. A typed question is sent as the same text question `ask_user` has always sent, so every released phone app, Mac app, Slack message and decision page shows it.
20
+ - A blank answer is not passed on. When the answer is blank, nobody answers, or you hand the question back, Codex shows its own card. A question with exactly one choice, more than four, or a secret still stays in Codex.
21
+
3
22
  ## 1.9.56
4
23
 
5
24
  - Setup, doctor, upgrade and the background service now find Claude Code in its own install folder when the `claude` command is not on PATH or in npm's global folder: `~/.local/bin/claude` on macOS and Linux, `.local\bin\claude.exe` under the user profile on Windows. The official Windows installer leaves that folder off PATH and asks the person to add it by hand, so `setup --control on` closed with phone-start unsupported on a computer that had Claude Code installed. Phone-start counts the program only when the home folder is an absolute path and, on macOS and Linux, the file can be run.
@@ -15,24 +15,24 @@ import {
15
15
  waitForQuestion,
16
16
  waitsForThePhone,
17
17
  withdrawQuestion
18
- } from "./chunk-J5HQNZXQ.js";
19
- import "./chunk-WCPN3GVW.js";
18
+ } from "./chunk-DQ565WFA.js";
19
+ import "./chunk-ZL3UR6M5.js";
20
20
  import "./chunk-POFBE6ZY.js";
21
- import "./chunk-5HRXOANL.js";
22
- import "./chunk-32MSOGMD.js";
23
- import "./chunk-SMMDQXI2.js";
21
+ import "./chunk-S54YLXWW.js";
22
+ import "./chunk-5DZHKNBU.js";
23
+ import "./chunk-IJ6XKKQW.js";
24
24
  import "./chunk-7QLSKOSU.js";
25
25
  import "./chunk-KZERVKTD.js";
26
- import "./chunk-57EOP757.js";
27
- import "./chunk-T6GEEMVC.js";
26
+ import "./chunk-MYBCXDIL.js";
27
+ import "./chunk-WVP6UQG3.js";
28
28
  import "./chunk-QENTGE75.js";
29
- import "./chunk-MWBFB7WA.js";
30
- import "./chunk-T4IAMIX4.js";
29
+ import "./chunk-LVDC3RUE.js";
30
+ import "./chunk-5SFM6XB4.js";
31
31
  import "./chunk-QTOLNRET.js";
32
32
  import {
33
33
  DECISION_STOP_REASON,
34
34
  UNVERIFIABLE_APPROVAL_REASON
35
- } from "./chunk-WACFIQYA.js";
35
+ } from "./chunk-GZL3KEPC.js";
36
36
  export {
37
37
  DECISION_STOP_REASON,
38
38
  UNVERIFIABLE_APPROVAL_REASON,
@@ -1,44 +1,44 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handleBell
4
- } from "../chunk-OX5EYBOC.js";
4
+ } from "../chunk-XTZHUIGJ.js";
5
5
  import {
6
6
  readHookInput
7
- } from "../chunk-6PUHW2FP.js";
8
- import "../chunk-FFGW45DJ.js";
7
+ } from "../chunk-K5CAURU5.js";
8
+ import "../chunk-TN74MUMB.js";
9
9
  import "../chunk-QW3FRUFB.js";
10
- import "../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
+ import "../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";
23
- import "../chunk-724266XT.js";
24
- import "../chunk-G63LBV4Y.js";
25
- import "../chunk-S3CQBNUU.js";
26
- import "../chunk-J5HQNZXQ.js";
27
- import "../chunk-WCPN3GVW.js";
22
+ import "../chunk-IRZ5FVWG.js";
23
+ import "../chunk-RF74KBF5.js";
24
+ import "../chunk-QTCFEKLJ.js";
25
+ import "../chunk-XXNT4FGA.js";
26
+ import "../chunk-DQ565WFA.js";
27
+ import "../chunk-ZL3UR6M5.js";
28
28
  import "../chunk-POFBE6ZY.js";
29
- import "../chunk-5HRXOANL.js";
30
- import "../chunk-32MSOGMD.js";
31
- import "../chunk-SMMDQXI2.js";
29
+ import "../chunk-S54YLXWW.js";
30
+ import "../chunk-5DZHKNBU.js";
31
+ import "../chunk-IJ6XKKQW.js";
32
32
  import "../chunk-7QLSKOSU.js";
33
33
  import "../chunk-KZERVKTD.js";
34
- import "../chunk-WW266XKU.js";
35
- import "../chunk-57EOP757.js";
36
- import "../chunk-T6GEEMVC.js";
34
+ import "../chunk-7RZO6VWD.js";
35
+ import "../chunk-MYBCXDIL.js";
36
+ import "../chunk-WVP6UQG3.js";
37
37
  import "../chunk-QENTGE75.js";
38
- import "../chunk-MWBFB7WA.js";
39
- import "../chunk-T4IAMIX4.js";
38
+ import "../chunk-LVDC3RUE.js";
39
+ import "../chunk-5SFM6XB4.js";
40
40
  import "../chunk-QTOLNRET.js";
41
- import "../chunk-WACFIQYA.js";
41
+ import "../chunk-GZL3KEPC.js";
42
42
 
43
43
  // bin/pushary-bell-hook.ts
44
44
  var main = async () => {
@@ -5,41 +5,41 @@ import {
5
5
  liveAgentCount,
6
6
  ring,
7
7
  upgradeThreshold
8
- } from "../chunk-OX5EYBOC.js";
8
+ } from "../chunk-XTZHUIGJ.js";
9
9
  import {
10
10
  createIo
11
11
  } from "../chunk-FO3MDD26.js";
12
12
  import {
13
13
  exitOnHelpFlag
14
- } from "../chunk-L66VPBS5.js";
14
+ } from "../chunk-M7NX25ZA.js";
15
15
  import {
16
16
  addBellHooks,
17
17
  bellInstalled,
18
18
  removeBellHooks
19
- } from "../chunk-4OXULVUA.js";
19
+ } from "../chunk-QDFLBTUP.js";
20
20
  import {
21
21
  parseFlags
22
22
  } from "../chunk-GMXKITVA.js";
23
- import "../chunk-YBE2KH2U.js";
23
+ import "../chunk-IRZ5FVWG.js";
24
24
  import "../chunk-7QLSKOSU.js";
25
25
  import {
26
26
  EXIT
27
27
  } from "../chunk-KZERVKTD.js";
28
- import "../chunk-WW266XKU.js";
28
+ import "../chunk-7RZO6VWD.js";
29
29
  import {
30
30
  claudeSettings
31
- } from "../chunk-57EOP757.js";
32
- import "../chunk-T6GEEMVC.js";
31
+ } from "../chunk-MYBCXDIL.js";
32
+ import "../chunk-WVP6UQG3.js";
33
33
  import {
34
34
  readJsonSafe,
35
35
  writeJsonAtomic
36
36
  } from "../chunk-QENTGE75.js";
37
- import "../chunk-MWBFB7WA.js";
38
- import "../chunk-T4IAMIX4.js";
37
+ import "../chunk-LVDC3RUE.js";
38
+ import "../chunk-5SFM6XB4.js";
39
39
  import "../chunk-QTOLNRET.js";
40
40
  import {
41
41
  isRecord
42
- } from "../chunk-WACFIQYA.js";
42
+ } from "../chunk-GZL3KEPC.js";
43
43
 
44
44
  // bin/pushary-bell.ts
45
45
  exitOnHelpFlag("bell");
@@ -8,40 +8,40 @@ import {
8
8
  describeIdleWindow,
9
9
  startProcessOwnership,
10
10
  withSpawnProcessOwnership
11
- } from "../chunk-AKFTQT7P.js";
11
+ } from "../chunk-CK5BCFQF.js";
12
12
  import "../chunk-VUFHYMSP.js";
13
13
  import {
14
14
  announceSubscriptionRequired,
15
15
  isDeferAnswer
16
- } from "../chunk-SM2DT5KP.js";
16
+ } from "../chunk-VPZ5K72D.js";
17
17
  import {
18
18
  claudeTranscriptPath,
19
19
  loadSessionKey,
20
20
  registerTranscript,
21
21
  registeredTranscriptEnabled
22
- } from "../chunk-FFGW45DJ.js";
22
+ } from "../chunk-TN74MUMB.js";
23
23
  import "../chunk-QW3FRUFB.js";
24
24
  import {
25
25
  ensureDaemonRunning
26
- } from "../chunk-DUACX6E3.js";
27
- import "../chunk-74DKFWU2.js";
28
- import "../chunk-VZ3YPEMG.js";
29
- import "../chunk-ZMRO6ESW.js";
30
- import "../chunk-4OXULVUA.js";
26
+ } from "../chunk-QP3XPS5U.js";
27
+ import "../chunk-KSVCCSAO.js";
28
+ import "../chunk-ATUZX4K7.js";
29
+ import "../chunk-ECJJKDP7.js";
30
+ import "../chunk-QDFLBTUP.js";
31
31
  import "../chunk-GMXKITVA.js";
32
32
  import {
33
33
  encryptRecord
34
- } from "../chunk-FXW3FW4A.js";
35
- import "../chunk-LW4ZEC3A.js";
34
+ } from "../chunk-JSQOHMNJ.js";
35
+ import "../chunk-N3NSWWNU.js";
36
36
  import {
37
37
  transcriptsEnabled
38
- } from "../chunk-4US3BCQJ.js";
38
+ } from "../chunk-C3IWX6KU.js";
39
39
  import {
40
40
  needsShell,
41
41
  spawnClaude
42
42
  } from "../chunk-XHKBHWLX.js";
43
43
  import "../chunk-6ICPEJY5.js";
44
- import "../chunk-YBE2KH2U.js";
44
+ import "../chunk-IRZ5FVWG.js";
45
45
  import {
46
46
  DEFAULT_SESSION,
47
47
  UNNAMED_ACTION,
@@ -58,11 +58,11 @@ import {
58
58
  reportEvent,
59
59
  savePendingCommand,
60
60
  scopePathFor
61
- } from "../chunk-724266XT.js";
62
- import "../chunk-G63LBV4Y.js";
61
+ } from "../chunk-RF74KBF5.js";
62
+ import "../chunk-QTCFEKLJ.js";
63
63
  import {
64
64
  repoKeyFor
65
- } from "../chunk-S3CQBNUU.js";
65
+ } from "../chunk-XXNT4FGA.js";
66
66
  import {
67
67
  askUser,
68
68
  cancelQuestion,
@@ -73,29 +73,29 @@ import {
73
73
  waitForAnswer,
74
74
  waitsForThePhone,
75
75
  withdrawQuestion
76
- } from "../chunk-J5HQNZXQ.js";
76
+ } from "../chunk-DQ565WFA.js";
77
77
  import {
78
78
  SubscriptionRequiredError
79
- } from "../chunk-WCPN3GVW.js";
79
+ } from "../chunk-ZL3UR6M5.js";
80
80
  import "../chunk-POFBE6ZY.js";
81
- import "../chunk-5HRXOANL.js";
82
- import "../chunk-32MSOGMD.js";
81
+ import "../chunk-S54YLXWW.js";
82
+ import "../chunk-5DZHKNBU.js";
83
83
  import {
84
84
  getMachineId
85
- } from "../chunk-SMMDQXI2.js";
85
+ } from "../chunk-IJ6XKKQW.js";
86
86
  import "../chunk-7QLSKOSU.js";
87
87
  import "../chunk-KZERVKTD.js";
88
- import "../chunk-WW266XKU.js";
89
- import "../chunk-57EOP757.js";
90
- import "../chunk-T6GEEMVC.js";
88
+ import "../chunk-7RZO6VWD.js";
89
+ import "../chunk-MYBCXDIL.js";
90
+ import "../chunk-WVP6UQG3.js";
91
91
  import "../chunk-QENTGE75.js";
92
92
  import {
93
93
  getApiKey,
94
94
  getBaseUrl
95
- } from "../chunk-MWBFB7WA.js";
95
+ } from "../chunk-LVDC3RUE.js";
96
96
  import {
97
97
  NPX_LATEST_COMMAND
98
- } from "../chunk-T4IAMIX4.js";
98
+ } from "../chunk-5SFM6XB4.js";
99
99
  import "../chunk-QTOLNRET.js";
100
100
  import {
101
101
  DECISION_STOP_REASON,
@@ -106,7 +106,7 @@ import {
106
106
  redactSecretsFromContent,
107
107
  resolveGate,
108
108
  timeoutActionWithoutLocalPrompt
109
- } from "../chunk-WACFIQYA.js";
109
+ } from "../chunk-GZL3KEPC.js";
110
110
 
111
111
  // src/wrapper/localPassthrough.ts
112
112
  var SIGNAL_NUMBERS = {
@@ -5,36 +5,36 @@ import {
5
5
  MAC_APP_BUNDLE_ID,
6
6
  MAC_DEFAULTS_DOMAINS,
7
7
  MAC_KEYCHAIN_ACCOUNTS,
8
- codexAppCardsFolderStaysOnThisMac,
8
+ cleanUpCodexAppCardsOnThisMac,
9
+ codexAppCardsFolderInTheLastSweep,
9
10
  developerDefaults,
10
11
  installedPusharyBundles,
11
12
  liveMacStatePresence,
12
13
  registeredPusharyBundles,
13
- removeCodexAppCardsFromThisMac,
14
14
  runningMacAppPIDs,
15
15
  storedMacAppState,
16
16
  storedPusharyKeychainServices,
17
17
  waitForMacAppExit
18
- } from "../chunk-HTN7SMKB.js";
18
+ } from "../chunk-XEJV3QSS.js";
19
19
  import {
20
20
  PUSHARY_SKILL_NAME,
21
21
  PUSHARY_SKILL_SOURCE,
22
22
  createGuards
23
23
  } from "../chunk-EUW7JL2K.js";
24
- import "../chunk-RZF2GIPI.js";
24
+ import "../chunk-ZJNU32VE.js";
25
25
  import "../chunk-XCEN33UP.js";
26
26
  import {
27
27
  describeCliKeyRevocation,
28
28
  planCliKeyRevocations,
29
29
  readCliHeldKeys,
30
30
  revokeCliKeys
31
- } from "../chunk-I6OGFHJT.js";
32
- import "../chunk-DFZTZRKL.js";
31
+ } from "../chunk-X6F4BQEE.js";
32
+ import "../chunk-VLJ5C6IT.js";
33
33
  import {
34
34
  isCursorPluginLeftover,
35
35
  releaseSoleGate,
36
36
  withoutPusharyCursorHooks
37
- } from "../chunk-OCYOOGXW.js";
37
+ } from "../chunk-3WNOO7BM.js";
38
38
  import {
39
39
  HERMES_PIP_PACKAGE,
40
40
  readHermesStatus,
@@ -43,21 +43,21 @@ import {
43
43
  shortenHome,
44
44
  unregisterPluginLocation,
45
45
  vscodeSettingsTargets
46
- } from "../chunk-KWAOOXSD.js";
46
+ } from "../chunk-MCHOBQHE.js";
47
47
  import {
48
48
  macAppKeepsMcpEntry,
49
49
  mcpServerBearer,
50
50
  pusharyKey,
51
51
  readMacAppAgentKey,
52
52
  setupReceiptKey
53
- } from "../chunk-VRPDHJGB.js";
53
+ } from "../chunk-T2BEIPK2.js";
54
54
  import "../chunk-QCGNGEGE.js";
55
- import "../chunk-V2AMLVMD.js";
55
+ import "../chunk-4YNNAF53.js";
56
56
  import {
57
57
  planFxRemoval,
58
58
  removeInstructionBlock
59
- } from "../chunk-GWQ6T6JV.js";
60
- import "../chunk-LTCNAIY2.js";
59
+ } from "../chunk-HUWLEVL2.js";
60
+ import "../chunk-4LUPZ347.js";
61
61
  import {
62
62
  OPENCODE_PLUGIN_SIBLING,
63
63
  OPENCODE_PLUGIN_SIBLING_CONTENTS,
@@ -69,14 +69,14 @@ import {
69
69
  openCodePluginDir,
70
70
  openCodePluginFile,
71
71
  removeOpenCodeMcpServer
72
- } from "../chunk-JTQHC3RV.js";
72
+ } from "../chunk-T2AC5VFQ.js";
73
73
  import {
74
74
  ansiPainter,
75
75
  useColor
76
76
  } from "../chunk-FO3MDD26.js";
77
77
  import {
78
78
  exitOnHelpFlag
79
- } from "../chunk-L66VPBS5.js";
79
+ } from "../chunk-M7NX25ZA.js";
80
80
  import "../chunk-VUFHYMSP.js";
81
81
  import {
82
82
  compatibleConfigFile,
@@ -94,10 +94,10 @@ import {
94
94
  removePusharyToolPermissions,
95
95
  restoreClaudeMcpServer,
96
96
  serializeConfigDocument
97
- } from "../chunk-WNVQPGLH.js";
97
+ } from "../chunk-XWY4UW62.js";
98
98
  import {
99
99
  disableDaemonService
100
- } from "../chunk-DUACX6E3.js";
100
+ } from "../chunk-QP3XPS5U.js";
101
101
  import {
102
102
  hookOwnerOf,
103
103
  isHookTakeoverReceipt,
@@ -105,12 +105,12 @@ import {
105
105
  resolveBridgeStub,
106
106
  restoreHookTakeover,
107
107
  restoreMcpServer
108
- } from "../chunk-74DKFWU2.js";
108
+ } from "../chunk-KSVCCSAO.js";
109
109
  import {
110
110
  removeGeminiSettings
111
- } from "../chunk-VZ3YPEMG.js";
112
- import "../chunk-ZMRO6ESW.js";
113
- import "../chunk-4OXULVUA.js";
111
+ } from "../chunk-ATUZX4K7.js";
112
+ import "../chunk-ECJJKDP7.js";
113
+ import "../chunk-QDFLBTUP.js";
114
114
  import {
115
115
  rejectUnknownFlags
116
116
  } from "../chunk-GMXKITVA.js";
@@ -121,22 +121,22 @@ import {
121
121
  isDisabledExport,
122
122
  removeClaudeAlias,
123
123
  shellProfileCandidates
124
- } from "../chunk-YBE2KH2U.js";
124
+ } from "../chunk-IRZ5FVWG.js";
125
125
  import "../chunk-E46NE7FB.js";
126
- import "../chunk-724266XT.js";
127
- import "../chunk-G63LBV4Y.js";
128
- import "../chunk-S3CQBNUU.js";
129
- import "../chunk-J5HQNZXQ.js";
130
- import "../chunk-WCPN3GVW.js";
126
+ import "../chunk-RF74KBF5.js";
127
+ import "../chunk-QTCFEKLJ.js";
128
+ import "../chunk-XXNT4FGA.js";
129
+ import "../chunk-DQ565WFA.js";
130
+ import "../chunk-ZL3UR6M5.js";
131
131
  import "../chunk-POFBE6ZY.js";
132
- import "../chunk-5HRXOANL.js";
133
- import "../chunk-32MSOGMD.js";
134
- import "../chunk-SMMDQXI2.js";
132
+ import "../chunk-S54YLXWW.js";
133
+ import "../chunk-5DZHKNBU.js";
134
+ import "../chunk-IJ6XKKQW.js";
135
135
  import "../chunk-7QLSKOSU.js";
136
136
  import {
137
137
  EXIT
138
138
  } from "../chunk-KZERVKTD.js";
139
- import "../chunk-WW266XKU.js";
139
+ import "../chunk-7RZO6VWD.js";
140
140
  import {
141
141
  claudeJson,
142
142
  claudeMcpReceipt,
@@ -168,21 +168,21 @@ import {
168
168
  restoreCodexHookTrust,
169
169
  vscodePluginDir,
170
170
  vscodePluginMcp
171
- } from "../chunk-57EOP757.js";
171
+ } from "../chunk-MYBCXDIL.js";
172
172
  import {
173
173
  cleanNpmEnv,
174
174
  globalPackageState,
175
175
  npmIsOnPath,
176
176
  readGlobalFolder,
177
177
  readGlobalPrefix
178
- } from "../chunk-T6GEEMVC.js";
178
+ } from "../chunk-WVP6UQG3.js";
179
179
  import "../chunk-QENTGE75.js";
180
180
  import {
181
181
  getBaseUrl
182
- } from "../chunk-MWBFB7WA.js";
182
+ } from "../chunk-LVDC3RUE.js";
183
183
  import {
184
184
  NPX_LATEST_COMMAND
185
- } from "../chunk-T4IAMIX4.js";
185
+ } from "../chunk-5SFM6XB4.js";
186
186
  import {
187
187
  CLI_PACKAGE_NAMES,
188
188
  globalPackageFolder,
@@ -196,7 +196,7 @@ import {
196
196
  SUPPORT_EMAIL,
197
197
  isValidApiKey,
198
198
  redactSecrets
199
- } from "../chunk-WACFIQYA.js";
199
+ } from "../chunk-GZL3KEPC.js";
200
200
 
201
201
  // bin/pushary-clean.ts
202
202
  import { existsSync as existsSync5, readFileSync as readFileSync4, copyFileSync, readdirSync as readdirSync4 } from "fs";
@@ -828,17 +828,18 @@ var main = async () => {
828
828
  }
829
829
  console.log(` ${check} Background service ${dim(did("uninstalled"))}`);
830
830
  const uid = process.platform === "darwin" ? process.getuid?.() : void 0;
831
- let macAppKeepsCodexAppCards = false;
832
- if (uid !== void 0) {
833
- try {
834
- const removal = { homeDir: homedir4(), uid, keepWhatTheMacAppTurnedOn: keepShared, dryRun };
835
- const appCards = removeCodexAppCardsFromThisMac(removal);
836
- macAppKeepsCodexAppCards = codexAppCardsFolderStaysOnThisMac(removal);
837
- if (appCards === "removed") console.log(` ${check} Codex app cards ${dim(did("removed"))} ${dim("(quit Codex and open it again)")}`);
838
- if (appCards === "kept_for_the_mac_app") console.log(` ${skip} Codex app cards ${dim("(turned on by the Mac app; left on)")}`);
839
- } catch {
831
+ const appCardsCleanUp = uid === void 0 ? null : cleanUpCodexAppCardsOnThisMac({ homeDir: homedir4(), uid, keepWhatTheMacAppTurnedOn: keepShared, dryRun });
832
+ if (appCardsCleanUp !== null) {
833
+ const appCards = appCardsCleanUp;
834
+ if (appCards.outcome === "removed") console.log(` ${check} Codex app cards ${dim(did("removed"))} ${dim("(quit Codex and open it again)")}`);
835
+ if (appCards.outcome === "kept_for_the_mac_app") console.log(` ${skip} Codex app cards ${dim("(turned on by the Mac app; left on)")}`);
836
+ if (appCards.outcome === "could_not_turn_off") {
837
+ incompleteClean = true;
838
+ console.log(` ${cross} Codex app cards ${dim(`(could not turn off, so their launcher was kept: ${appCards.reason})`)}`);
839
+ }
840
+ if (appCards.outcome === "off_but_not_tidied") {
840
841
  incompleteClean = true;
841
- console.log(` ${cross} Codex app cards ${dim("(could not turn off; run pushary codex --app-cards off)")}`);
842
+ console.log(` ${cross} Codex app cards ${dim(`(off, but tidying their folder did not finish: ${appCards.reason})`)}`);
842
843
  }
843
844
  }
844
845
  if (everything) await revokeKeysThisCliCreated();
@@ -1195,7 +1196,9 @@ var main = async () => {
1195
1196
  let removed = 0;
1196
1197
  const kept = [];
1197
1198
  for (const entry of readdirSync4(PUSHARY_DIR)) {
1198
- if (keepShared && isAppOwned(entry) || entry === "setup" && (keepShared || incompleteClean) || entry === CODEX_APP_CARDS_DIRECTORY && macAppKeepsCodexAppCards) {
1199
+ const appCardsFolder = entry === CODEX_APP_CARDS_DIRECTORY ? codexAppCardsFolderInTheLastSweep(appCardsCleanUp) : "swept_with_the_rest";
1200
+ if (appCardsFolder === "left_to_the_switch") continue;
1201
+ if (keepShared && isAppOwned(entry) || entry === "setup" && (keepShared || incompleteClean) || appCardsFolder === "kept") {
1199
1202
  kept.push(entry);
1200
1203
  continue;
1201
1204
  }
@@ -1,46 +1,46 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCodexBridge
4
- } from "../chunk-MW3DD3S5.js";
5
- import "../chunk-M6DTXZQK.js";
4
+ } from "../chunk-ZEHUWE3X.js";
5
+ import "../chunk-IUOUNRLH.js";
6
6
  import {
7
7
  resolveProviderBinary
8
- } from "../chunk-DWV3LTUH.js";
9
- import "../chunk-7QAL23TB.js";
8
+ } from "../chunk-3KOPY2UQ.js";
9
+ import "../chunk-LVWXRXT7.js";
10
10
  import {
11
11
  withSpawnProcessOwnership
12
- } from "../chunk-AKFTQT7P.js";
12
+ } from "../chunk-CK5BCFQF.js";
13
13
  import "../chunk-VUFHYMSP.js";
14
- import "../chunk-FXW3FW4A.js";
15
- import "../chunk-LW4ZEC3A.js";
14
+ import "../chunk-JSQOHMNJ.js";
15
+ import "../chunk-N3NSWWNU.js";
16
16
  import {
17
17
  transcriptsEnabled
18
- } from "../chunk-4US3BCQJ.js";
18
+ } from "../chunk-C3IWX6KU.js";
19
19
  import "../chunk-XHKBHWLX.js";
20
20
  import "../chunk-6ICPEJY5.js";
21
- import "../chunk-YBE2KH2U.js";
22
- import "../chunk-S3CQBNUU.js";
23
- import "../chunk-J5HQNZXQ.js";
24
- import "../chunk-WCPN3GVW.js";
21
+ import "../chunk-IRZ5FVWG.js";
22
+ import "../chunk-XXNT4FGA.js";
23
+ import "../chunk-DQ565WFA.js";
24
+ import "../chunk-ZL3UR6M5.js";
25
25
  import "../chunk-POFBE6ZY.js";
26
- import "../chunk-5HRXOANL.js";
27
- import "../chunk-32MSOGMD.js";
26
+ import "../chunk-S54YLXWW.js";
27
+ import "../chunk-5DZHKNBU.js";
28
28
  import {
29
29
  getMachineId
30
- } from "../chunk-SMMDQXI2.js";
30
+ } from "../chunk-IJ6XKKQW.js";
31
31
  import "../chunk-7QLSKOSU.js";
32
32
  import "../chunk-KZERVKTD.js";
33
- import "../chunk-WW266XKU.js";
34
- import "../chunk-57EOP757.js";
35
- import "../chunk-T6GEEMVC.js";
33
+ import "../chunk-7RZO6VWD.js";
34
+ import "../chunk-MYBCXDIL.js";
35
+ import "../chunk-WVP6UQG3.js";
36
36
  import "../chunk-QENTGE75.js";
37
37
  import {
38
38
  getApiKey,
39
39
  getBaseUrl
40
- } from "../chunk-MWBFB7WA.js";
41
- import "../chunk-T4IAMIX4.js";
40
+ } from "../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-codex-bridge.ts
46
46
  import { existsSync } from "fs";