pushary 1.9.57 → 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 (92) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{api-RQAY3A5V.js → api-WVXBM4MR.js} +7 -7
  3. package/dist/bin/pushary-bell-hook.js +15 -15
  4. package/dist/bin/pushary-bell.js +3 -3
  5. package/dist/bin/pushary-claude.js +15 -15
  6. package/dist/bin/pushary-clean.js +39 -36
  7. package/dist/bin/pushary-codex-bridge.js +10 -10
  8. package/dist/bin/pushary-codex-hook.js +19 -19
  9. package/dist/bin/pushary-codex-session.js +8 -6
  10. package/dist/bin/pushary-codex.js +8 -8
  11. package/dist/bin/pushary-connect.js +17 -16
  12. package/dist/bin/pushary-daemon.js +23 -23
  13. package/dist/bin/pushary-disconnect.js +17 -17
  14. package/dist/bin/pushary-doctor.js +28 -26
  15. package/dist/bin/pushary-elicitation-hook.js +16 -16
  16. package/dist/bin/pushary-gemini-bridge.js +5 -5
  17. package/dist/bin/pushary-gemini-hook.js +17 -17
  18. package/dist/bin/pushary-hook.js +18 -18
  19. package/dist/bin/pushary-login.js +6 -6
  20. package/dist/bin/pushary-logout.js +16 -16
  21. package/dist/bin/pushary-mcp.js +8 -8
  22. package/dist/bin/pushary-mode.js +6 -6
  23. package/dist/bin/pushary-notification-hook.js +15 -15
  24. package/dist/bin/pushary-opencode-hook.js +16 -16
  25. package/dist/bin/pushary-permission-denied-hook.js +18 -18
  26. package/dist/bin/pushary-permission-hook.js +18 -18
  27. package/dist/bin/pushary-post-hook.js +15 -15
  28. package/dist/bin/pushary-prompt-hook.js +15 -15
  29. package/dist/bin/pushary-session-end-hook.js +15 -15
  30. package/dist/bin/pushary-session-start-hook.js +21 -21
  31. package/dist/bin/pushary-setup.js +52 -255
  32. package/dist/bin/pushary-status.js +21 -19
  33. package/dist/bin/pushary-stop-hook.js +15 -15
  34. package/dist/bin/pushary-stopfailure-hook.js +15 -15
  35. package/dist/bin/pushary-suggestions.js +6 -6
  36. package/dist/bin/pushary-transcript-register.js +8 -8
  37. package/dist/bin/pushary-upgrade.js +97 -48
  38. package/dist/bin/pushary-wait.js +6 -6
  39. package/dist/bin/pushary.js +4 -4
  40. package/dist/{chunk-DDQRYX2L.js → chunk-3KOPY2UQ.js} +1 -1
  41. package/dist/{chunk-ZU6L34DQ.js → chunk-3WNOO7BM.js} +3 -3
  42. package/dist/{chunk-RFAF3TOX.js → chunk-4JJ3T7IE.js} +93 -14
  43. package/dist/{chunk-JCMSISCC.js → chunk-4LUPZ347.js} +1 -1
  44. package/dist/{chunk-HCIB4YNB.js → chunk-5DZHKNBU.js} +1 -1
  45. package/dist/{chunk-QQYUWTYS.js → chunk-ATUZX4K7.js} +1 -1
  46. package/dist/{chunk-CB565EVO.js → chunk-CK5BCFQF.js} +1 -1
  47. package/dist/{chunk-AN6TVB2H.js → chunk-CSQJCXPX.js} +3 -3
  48. package/dist/chunk-CZULJ647.js +378 -0
  49. package/dist/{chunk-6QM54CSJ.js → chunk-DQ565WFA.js} +3 -3
  50. package/dist/chunk-FAGDOPQI.js +266 -0
  51. package/dist/{chunk-QLDTBZBP.js → chunk-HRHAZ3GE.js} +5 -5
  52. package/dist/{chunk-NQDEMRAS.js → chunk-HUWLEVL2.js} +2 -2
  53. package/dist/{chunk-SQ5G6A6K.js → chunk-IJ6XKKQW.js} +1 -1
  54. package/dist/{chunk-BAJ3A3BU.js → chunk-JZKEC4XJ.js} +4 -1
  55. package/dist/{chunk-ZZB4J6CX.js → chunk-K5CAURU5.js} +3 -3
  56. package/dist/{chunk-7OQ4AJC7.js → chunk-KIH5BDH5.js} +2 -7
  57. package/dist/{chunk-CUEUANIU.js → chunk-KSVCCSAO.js} +3 -3
  58. package/dist/{chunk-D2EETYAL.js → chunk-KW6EYFZV.js} +11 -366
  59. package/dist/{chunk-LW7IWGSV.js → chunk-MCHOBQHE.js} +4 -4
  60. package/dist/{chunk-TWLWDIFB.js → chunk-MYBCXDIL.js} +3 -1
  61. package/dist/{chunk-4QD7VE4E.js → chunk-OHD35NPC.js} +1 -1
  62. package/dist/{chunk-3IBUZQKM.js → chunk-PZOFPAPG.js} +1 -1
  63. package/dist/{chunk-YKYVDHIY.js → chunk-QDFLBTUP.js} +1 -1
  64. package/dist/{chunk-Z7Q36I4K.js → chunk-QP3XPS5U.js} +8 -4
  65. package/dist/{chunk-4YTFYILS.js → chunk-RF74KBF5.js} +4 -4
  66. package/dist/{chunk-K5SDLOFS.js → chunk-RGQEULXD.js} +6 -6
  67. package/dist/{chunk-FBKVCODG.js → chunk-S54YLXWW.js} +1 -1
  68. package/dist/{chunk-PZDMZ7LM.js → chunk-T2AC5VFQ.js} +3 -3
  69. package/dist/{chunk-OLNBYAPI.js → chunk-T2BEIPK2.js} +2 -2
  70. package/dist/{chunk-W6363YYZ.js → chunk-TN74MUMB.js} +3 -3
  71. package/dist/{chunk-2NIRYGTK.js → chunk-UMVVQXAC.js} +2 -2
  72. package/dist/{chunk-K45CFSYV.js → chunk-VLJ5C6IT.js} +1 -1
  73. package/dist/{chunk-LVZYIUSR.js → chunk-VPZ5K72D.js} +1 -1
  74. package/dist/{chunk-AEXACKDR.js → chunk-WVP6UQG3.js} +3 -3
  75. package/dist/{chunk-T45PAPOG.js → chunk-X6F4BQEE.js} +3 -3
  76. package/dist/{chunk-2PJENKRJ.js → chunk-XEJV3QSS.js} +76 -29
  77. package/dist/{chunk-IBSRULIY.js → chunk-XFUKCBPU.js} +8 -8
  78. package/dist/{chunk-UPFFO4F6.js → chunk-XWY4UW62.js} +3 -3
  79. package/dist/{chunk-DS6OR5OS.js → chunk-ZEHUWE3X.js} +3 -3
  80. package/dist/{chunk-OZSP4RIQ.js → chunk-ZJNU32VE.js} +21 -6
  81. package/dist/{chunk-A54W5A74.js → chunk-ZL3UR6M5.js} +2 -2
  82. package/dist/{codex-app-cards-switch-SVGTZ2UN.js → codex-app-cards-switch-TVKXJWXE.js} +16 -14
  83. package/dist/{codex-desktop-launch-SH7OUEEC.js → codex-desktop-launch-ROTJEEGF.js} +3 -1
  84. package/dist/{codex-session-launch-IQ57OL3N.js → codex-session-launch-VL6ZQA3N.js} +10 -10
  85. package/dist/{global-upgrade-SRCWQE7N.js → global-upgrade-IPWV5PTM.js} +13 -5
  86. package/dist/{identity-6KRUO2YO.js → identity-ARPAUNGN.js} +3 -3
  87. package/dist/{live-capabilities-RKUHAWT6.js → live-capabilities-EWTRY2HA.js} +2 -2
  88. package/dist/{paths-MUPQZNLG.js → paths-IZTNMJAQ.js} +4 -2
  89. package/dist/{reapply-YZXZCWCI.js → reapply-ILKOYYKA.js} +17 -17
  90. package/dist/src/index.js +13 -13
  91. package/dist/{upgrade-lock-JXP27UKI.js → upgrade-lock-ML73QXIG.js} +3 -5
  92. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
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
+
3
15
  ## 1.9.57
4
16
 
5
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.
@@ -15,16 +15,16 @@ import {
15
15
  waitForQuestion,
16
16
  waitsForThePhone,
17
17
  withdrawQuestion
18
- } from "./chunk-6QM54CSJ.js";
19
- import "./chunk-A54W5A74.js";
18
+ } from "./chunk-DQ565WFA.js";
19
+ import "./chunk-ZL3UR6M5.js";
20
20
  import "./chunk-POFBE6ZY.js";
21
- import "./chunk-FBKVCODG.js";
22
- import "./chunk-HCIB4YNB.js";
23
- import "./chunk-SQ5G6A6K.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-TWLWDIFB.js";
27
- import "./chunk-AEXACKDR.js";
26
+ import "./chunk-MYBCXDIL.js";
27
+ import "./chunk-WVP6UQG3.js";
28
28
  import "./chunk-QENTGE75.js";
29
29
  import "./chunk-LVDC3RUE.js";
30
30
  import "./chunk-5SFM6XB4.js";
@@ -4,15 +4,15 @@ import {
4
4
  } from "../chunk-XTZHUIGJ.js";
5
5
  import {
6
6
  readHookInput
7
- } from "../chunk-ZZB4J6CX.js";
8
- import "../chunk-W6363YYZ.js";
7
+ } from "../chunk-K5CAURU5.js";
8
+ import "../chunk-TN74MUMB.js";
9
9
  import "../chunk-QW3FRUFB.js";
10
- import "../chunk-UPFFO4F6.js";
11
- import "../chunk-Z7Q36I4K.js";
12
- import "../chunk-CUEUANIU.js";
13
- import "../chunk-QQYUWTYS.js";
10
+ import "../chunk-XWY4UW62.js";
11
+ import "../chunk-QP3XPS5U.js";
12
+ import "../chunk-KSVCCSAO.js";
13
+ import "../chunk-ATUZX4K7.js";
14
14
  import "../chunk-ECJJKDP7.js";
15
- import "../chunk-YKYVDHIY.js";
15
+ import "../chunk-QDFLBTUP.js";
16
16
  import "../chunk-GMXKITVA.js";
17
17
  import "../chunk-JSQOHMNJ.js";
18
18
  import "../chunk-N3NSWWNU.js";
@@ -20,20 +20,20 @@ import "../chunk-C3IWX6KU.js";
20
20
  import "../chunk-XHKBHWLX.js";
21
21
  import "../chunk-6ICPEJY5.js";
22
22
  import "../chunk-IRZ5FVWG.js";
23
- import "../chunk-4YTFYILS.js";
23
+ import "../chunk-RF74KBF5.js";
24
24
  import "../chunk-QTCFEKLJ.js";
25
25
  import "../chunk-XXNT4FGA.js";
26
- import "../chunk-6QM54CSJ.js";
27
- import "../chunk-A54W5A74.js";
26
+ import "../chunk-DQ565WFA.js";
27
+ import "../chunk-ZL3UR6M5.js";
28
28
  import "../chunk-POFBE6ZY.js";
29
- import "../chunk-FBKVCODG.js";
30
- import "../chunk-HCIB4YNB.js";
31
- import "../chunk-SQ5G6A6K.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
34
  import "../chunk-7RZO6VWD.js";
35
- import "../chunk-TWLWDIFB.js";
36
- import "../chunk-AEXACKDR.js";
35
+ import "../chunk-MYBCXDIL.js";
36
+ import "../chunk-WVP6UQG3.js";
37
37
  import "../chunk-QENTGE75.js";
38
38
  import "../chunk-LVDC3RUE.js";
39
39
  import "../chunk-5SFM6XB4.js";
@@ -16,7 +16,7 @@ import {
16
16
  addBellHooks,
17
17
  bellInstalled,
18
18
  removeBellHooks
19
- } from "../chunk-YKYVDHIY.js";
19
+ } from "../chunk-QDFLBTUP.js";
20
20
  import {
21
21
  parseFlags
22
22
  } from "../chunk-GMXKITVA.js";
@@ -28,8 +28,8 @@ import {
28
28
  import "../chunk-7RZO6VWD.js";
29
29
  import {
30
30
  claudeSettings
31
- } from "../chunk-TWLWDIFB.js";
32
- import "../chunk-AEXACKDR.js";
31
+ } from "../chunk-MYBCXDIL.js";
32
+ import "../chunk-WVP6UQG3.js";
33
33
  import {
34
34
  readJsonSafe,
35
35
  writeJsonAtomic
@@ -8,26 +8,26 @@ import {
8
8
  describeIdleWindow,
9
9
  startProcessOwnership,
10
10
  withSpawnProcessOwnership
11
- } from "../chunk-CB565EVO.js";
11
+ } from "../chunk-CK5BCFQF.js";
12
12
  import "../chunk-VUFHYMSP.js";
13
13
  import {
14
14
  announceSubscriptionRequired,
15
15
  isDeferAnswer
16
- } from "../chunk-LVZYIUSR.js";
16
+ } from "../chunk-VPZ5K72D.js";
17
17
  import {
18
18
  claudeTranscriptPath,
19
19
  loadSessionKey,
20
20
  registerTranscript,
21
21
  registeredTranscriptEnabled
22
- } from "../chunk-W6363YYZ.js";
22
+ } from "../chunk-TN74MUMB.js";
23
23
  import "../chunk-QW3FRUFB.js";
24
24
  import {
25
25
  ensureDaemonRunning
26
- } from "../chunk-Z7Q36I4K.js";
27
- import "../chunk-CUEUANIU.js";
28
- import "../chunk-QQYUWTYS.js";
26
+ } from "../chunk-QP3XPS5U.js";
27
+ import "../chunk-KSVCCSAO.js";
28
+ import "../chunk-ATUZX4K7.js";
29
29
  import "../chunk-ECJJKDP7.js";
30
- import "../chunk-YKYVDHIY.js";
30
+ import "../chunk-QDFLBTUP.js";
31
31
  import "../chunk-GMXKITVA.js";
32
32
  import {
33
33
  encryptRecord
@@ -58,7 +58,7 @@ import {
58
58
  reportEvent,
59
59
  savePendingCommand,
60
60
  scopePathFor
61
- } from "../chunk-4YTFYILS.js";
61
+ } from "../chunk-RF74KBF5.js";
62
62
  import "../chunk-QTCFEKLJ.js";
63
63
  import {
64
64
  repoKeyFor
@@ -73,21 +73,21 @@ import {
73
73
  waitForAnswer,
74
74
  waitsForThePhone,
75
75
  withdrawQuestion
76
- } from "../chunk-6QM54CSJ.js";
76
+ } from "../chunk-DQ565WFA.js";
77
77
  import {
78
78
  SubscriptionRequiredError
79
- } from "../chunk-A54W5A74.js";
79
+ } from "../chunk-ZL3UR6M5.js";
80
80
  import "../chunk-POFBE6ZY.js";
81
- import "../chunk-FBKVCODG.js";
82
- import "../chunk-HCIB4YNB.js";
81
+ import "../chunk-S54YLXWW.js";
82
+ import "../chunk-5DZHKNBU.js";
83
83
  import {
84
84
  getMachineId
85
- } from "../chunk-SQ5G6A6K.js";
85
+ } from "../chunk-IJ6XKKQW.js";
86
86
  import "../chunk-7QLSKOSU.js";
87
87
  import "../chunk-KZERVKTD.js";
88
88
  import "../chunk-7RZO6VWD.js";
89
- import "../chunk-TWLWDIFB.js";
90
- import "../chunk-AEXACKDR.js";
89
+ import "../chunk-MYBCXDIL.js";
90
+ import "../chunk-WVP6UQG3.js";
91
91
  import "../chunk-QENTGE75.js";
92
92
  import {
93
93
  getApiKey,
@@ -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-2PJENKRJ.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-OZSP4RIQ.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-T45PAPOG.js";
32
- import "../chunk-K45CFSYV.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-ZU6L34DQ.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-LW7IWGSV.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-OLNBYAPI.js";
53
+ } from "../chunk-T2BEIPK2.js";
54
54
  import "../chunk-QCGNGEGE.js";
55
55
  import "../chunk-4YNNAF53.js";
56
56
  import {
57
57
  planFxRemoval,
58
58
  removeInstructionBlock
59
- } from "../chunk-NQDEMRAS.js";
60
- import "../chunk-JCMSISCC.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,7 +69,7 @@ import {
69
69
  openCodePluginDir,
70
70
  openCodePluginFile,
71
71
  removeOpenCodeMcpServer
72
- } from "../chunk-PZDMZ7LM.js";
72
+ } from "../chunk-T2AC5VFQ.js";
73
73
  import {
74
74
  ansiPainter,
75
75
  useColor
@@ -94,10 +94,10 @@ import {
94
94
  removePusharyToolPermissions,
95
95
  restoreClaudeMcpServer,
96
96
  serializeConfigDocument
97
- } from "../chunk-UPFFO4F6.js";
97
+ } from "../chunk-XWY4UW62.js";
98
98
  import {
99
99
  disableDaemonService
100
- } from "../chunk-Z7Q36I4K.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-CUEUANIU.js";
108
+ } from "../chunk-KSVCCSAO.js";
109
109
  import {
110
110
  removeGeminiSettings
111
- } from "../chunk-QQYUWTYS.js";
111
+ } from "../chunk-ATUZX4K7.js";
112
112
  import "../chunk-ECJJKDP7.js";
113
- import "../chunk-YKYVDHIY.js";
113
+ import "../chunk-QDFLBTUP.js";
114
114
  import {
115
115
  rejectUnknownFlags
116
116
  } from "../chunk-GMXKITVA.js";
@@ -123,15 +123,15 @@ import {
123
123
  shellProfileCandidates
124
124
  } from "../chunk-IRZ5FVWG.js";
125
125
  import "../chunk-E46NE7FB.js";
126
- import "../chunk-4YTFYILS.js";
126
+ import "../chunk-RF74KBF5.js";
127
127
  import "../chunk-QTCFEKLJ.js";
128
128
  import "../chunk-XXNT4FGA.js";
129
- import "../chunk-6QM54CSJ.js";
130
- import "../chunk-A54W5A74.js";
129
+ import "../chunk-DQ565WFA.js";
130
+ import "../chunk-ZL3UR6M5.js";
131
131
  import "../chunk-POFBE6ZY.js";
132
- import "../chunk-FBKVCODG.js";
133
- import "../chunk-HCIB4YNB.js";
134
- import "../chunk-SQ5G6A6K.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
@@ -168,14 +168,14 @@ import {
168
168
  restoreCodexHookTrust,
169
169
  vscodePluginDir,
170
170
  vscodePluginMcp
171
- } from "../chunk-TWLWDIFB.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-AEXACKDR.js";
178
+ } from "../chunk-WVP6UQG3.js";
179
179
  import "../chunk-QENTGE75.js";
180
180
  import {
181
181
  getBaseUrl
@@ -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,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCodexBridge
4
- } from "../chunk-DS6OR5OS.js";
4
+ } from "../chunk-ZEHUWE3X.js";
5
5
  import "../chunk-IUOUNRLH.js";
6
6
  import {
7
7
  resolveProviderBinary
8
- } from "../chunk-DDQRYX2L.js";
8
+ } from "../chunk-3KOPY2UQ.js";
9
9
  import "../chunk-LVWXRXT7.js";
10
10
  import {
11
11
  withSpawnProcessOwnership
12
- } from "../chunk-CB565EVO.js";
12
+ } from "../chunk-CK5BCFQF.js";
13
13
  import "../chunk-VUFHYMSP.js";
14
14
  import "../chunk-JSQOHMNJ.js";
15
15
  import "../chunk-N3NSWWNU.js";
@@ -20,19 +20,19 @@ import "../chunk-XHKBHWLX.js";
20
20
  import "../chunk-6ICPEJY5.js";
21
21
  import "../chunk-IRZ5FVWG.js";
22
22
  import "../chunk-XXNT4FGA.js";
23
- import "../chunk-6QM54CSJ.js";
24
- import "../chunk-A54W5A74.js";
23
+ import "../chunk-DQ565WFA.js";
24
+ import "../chunk-ZL3UR6M5.js";
25
25
  import "../chunk-POFBE6ZY.js";
26
- import "../chunk-FBKVCODG.js";
27
- import "../chunk-HCIB4YNB.js";
26
+ import "../chunk-S54YLXWW.js";
27
+ import "../chunk-5DZHKNBU.js";
28
28
  import {
29
29
  getMachineId
30
- } from "../chunk-SQ5G6A6K.js";
30
+ } from "../chunk-IJ6XKKQW.js";
31
31
  import "../chunk-7QLSKOSU.js";
32
32
  import "../chunk-KZERVKTD.js";
33
33
  import "../chunk-7RZO6VWD.js";
34
- import "../chunk-TWLWDIFB.js";
35
- import "../chunk-AEXACKDR.js";
34
+ import "../chunk-MYBCXDIL.js";
35
+ import "../chunk-WVP6UQG3.js";
36
36
  import "../chunk-QENTGE75.js";
37
37
  import {
38
38
  getApiKey,
@@ -6,29 +6,29 @@ import {
6
6
  askAgentQuestions,
7
7
  defersToNativeMode,
8
8
  reportMachineDenial
9
- } from "../chunk-QLDTBZBP.js";
9
+ } from "../chunk-HRHAZ3GE.js";
10
10
  import {
11
11
  isGatingMoment,
12
12
  recordKeylessMoment
13
13
  } from "../chunk-JYXIARGW.js";
14
14
  import {
15
15
  triggerAutoUpdate
16
- } from "../chunk-BAJ3A3BU.js";
16
+ } from "../chunk-JZKEC4XJ.js";
17
17
  import {
18
18
  readHookInput
19
- } from "../chunk-ZZB4J6CX.js";
19
+ } from "../chunk-K5CAURU5.js";
20
20
  import {
21
21
  announceSubscriptionRequired,
22
22
  isDeferAnswer
23
- } from "../chunk-LVZYIUSR.js";
24
- import "../chunk-W6363YYZ.js";
23
+ } from "../chunk-VPZ5K72D.js";
24
+ import "../chunk-TN74MUMB.js";
25
25
  import "../chunk-QW3FRUFB.js";
26
- import "../chunk-UPFFO4F6.js";
27
- import "../chunk-Z7Q36I4K.js";
28
- import "../chunk-CUEUANIU.js";
29
- import "../chunk-QQYUWTYS.js";
26
+ import "../chunk-XWY4UW62.js";
27
+ import "../chunk-QP3XPS5U.js";
28
+ import "../chunk-KSVCCSAO.js";
29
+ import "../chunk-ATUZX4K7.js";
30
30
  import "../chunk-ECJJKDP7.js";
31
- import "../chunk-YKYVDHIY.js";
31
+ import "../chunk-QDFLBTUP.js";
32
32
  import "../chunk-GMXKITVA.js";
33
33
  import "../chunk-JSQOHMNJ.js";
34
34
  import "../chunk-N3NSWWNU.js";
@@ -78,7 +78,7 @@ import {
78
78
  toPolicyLookup,
79
79
  toPolicyLookups,
80
80
  userScope
81
- } from "../chunk-4YTFYILS.js";
81
+ } from "../chunk-RF74KBF5.js";
82
82
  import "../chunk-QTCFEKLJ.js";
83
83
  import {
84
84
  repoKeyFor
@@ -96,16 +96,16 @@ import {
96
96
  sendNotification,
97
97
  unavailableQuestionUnlessSubscriptionRequired,
98
98
  waitForQuestion
99
- } from "../chunk-6QM54CSJ.js";
99
+ } from "../chunk-DQ565WFA.js";
100
100
  import {
101
101
  SubscriptionRequiredError
102
- } from "../chunk-A54W5A74.js";
102
+ } from "../chunk-ZL3UR6M5.js";
103
103
  import "../chunk-POFBE6ZY.js";
104
- import "../chunk-FBKVCODG.js";
105
- import "../chunk-HCIB4YNB.js";
104
+ import "../chunk-S54YLXWW.js";
105
+ import "../chunk-5DZHKNBU.js";
106
106
  import {
107
107
  getMachineId
108
- } from "../chunk-SQ5G6A6K.js";
108
+ } from "../chunk-IJ6XKKQW.js";
109
109
  import "../chunk-7QLSKOSU.js";
110
110
  import {
111
111
  EXIT
@@ -113,8 +113,8 @@ import {
113
113
  import "../chunk-7RZO6VWD.js";
114
114
  import {
115
115
  canonicalJson
116
- } from "../chunk-TWLWDIFB.js";
117
- import "../chunk-AEXACKDR.js";
116
+ } from "../chunk-MYBCXDIL.js";
117
+ import "../chunk-WVP6UQG3.js";
118
118
  import {
119
119
  writeFileAtomic
120
120
  } from "../chunk-QENTGE75.js";
@@ -799,7 +799,7 @@ var decidePreToolUse = async (input) => {
799
799
  };
800
800
  var repairCodexHoldsQuietly = async () => {
801
801
  try {
802
- const { repairCodexHolds } = await import("../reapply-YZXZCWCI.js");
802
+ const { repairCodexHolds } = await import("../reapply-ILKOYYKA.js");
803
803
  repairCodexHolds();
804
804
  } catch {
805
805
  return;
@@ -8,15 +8,17 @@ var args = process.argv.slice(2);
8
8
  if (args[0] === "codex") args.shift();
9
9
  var appBehindTheProxy = args[0] === "--desktop-proxy" && args[2] === "--" ? args[1] : void 0;
10
10
  if (args[0] !== "--desktop-proxy") (await import("../usage-OUV76AIY.js")).exitOnHelpFlag("codex");
11
+ var loadWhatReadsTheAccount = () => Promise.all([import("../config-SYLUYZQE.js"), import("../identity-ARPAUNGN.js")]);
12
+ var loadedWhenThePassThroughStarted = appBehindTheProxy === void 0 ? null : loadWhatReadsTheAccount().catch(() => null);
11
13
  var desktopAccount = async () => {
12
14
  try {
13
- const [{ getApiKey, getBaseUrl }, { getMachineId }] = await Promise.all([import("../config-SYLUYZQE.js"), import("../identity-6KRUO2YO.js")]);
15
+ const [{ getApiKey, getBaseUrl }, { getMachineId }] = await loadedWhenThePassThroughStarted ?? await loadWhatReadsTheAccount();
14
16
  return { apiKey: getApiKey(), baseUrl: getBaseUrl(), machineId: getMachineId() };
15
17
  } catch {
16
18
  return null;
17
19
  }
18
20
  };
19
- var desktopLaunch = await import("../codex-desktop-launch-SH7OUEEC.js").catch(() => null);
21
+ var desktopLaunch = await import("../codex-desktop-launch-ROTJEEGF.js").catch(() => null);
20
22
  if (desktopLaunch === null && appBehindTheProxy !== void 0) {
21
23
  process.exitCode = await letCodexRunWithoutPushary(appBehindTheProxy, args.slice(3));
22
24
  } else {
@@ -24,15 +26,15 @@ if (desktopLaunch === null && appBehindTheProxy !== void 0) {
24
26
  const stop = () => abort.abort();
25
27
  if (!args[0]?.startsWith("--desktop")) for (const signal of ["SIGINT", "SIGTERM", "SIGHUP"]) process.on(signal, stop);
26
28
  try {
27
- const { codexDesktopCommand } = desktopLaunch ?? await import("../codex-desktop-launch-SH7OUEEC.js");
29
+ const { codexDesktopCommand } = desktopLaunch ?? await import("../codex-desktop-launch-ROTJEEGF.js");
28
30
  const desktop = await codexDesktopCommand(args, [process.execPath, ...process.execArgv, process.argv[1], "codex"], desktopAccount);
29
31
  if (desktop !== null) process.exitCode = desktop;
30
32
  else {
31
33
  const [{ getApiKey, getBaseUrl }, { getMachineId }, { resolveProviderBinary }, { codexSessionDirectory, launchCodexSession }] = await Promise.all([
32
34
  import("../config-SYLUYZQE.js"),
33
- import("../identity-6KRUO2YO.js"),
34
- import("../live-capabilities-RKUHAWT6.js"),
35
- import("../codex-session-launch-IQ57OL3N.js")
35
+ import("../identity-ARPAUNGN.js"),
36
+ import("../live-capabilities-EWTRY2HA.js"),
37
+ import("../codex-session-launch-VL6ZQA3N.js")
36
38
  ]);
37
39
  const binary = resolveProviderBinary("codex");
38
40
  if (!binary) throw new Error("Install Codex first, then run pushary codex");
@@ -1,26 +1,26 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  reportEvent
4
- } from "../chunk-4YTFYILS.js";
4
+ } from "../chunk-RF74KBF5.js";
5
5
  import "../chunk-QTCFEKLJ.js";
6
6
  import "../chunk-XXNT4FGA.js";
7
7
  import {
8
8
  askUser,
9
9
  isDecisionStopped,
10
10
  waitForAnswer
11
- } from "../chunk-6QM54CSJ.js";
12
- import "../chunk-A54W5A74.js";
11
+ } from "../chunk-DQ565WFA.js";
12
+ import "../chunk-ZL3UR6M5.js";
13
13
  import "../chunk-POFBE6ZY.js";
14
- import "../chunk-FBKVCODG.js";
15
- import "../chunk-HCIB4YNB.js";
14
+ import "../chunk-S54YLXWW.js";
15
+ import "../chunk-5DZHKNBU.js";
16
16
  import {
17
17
  getMachineId
18
- } from "../chunk-SQ5G6A6K.js";
18
+ } from "../chunk-IJ6XKKQW.js";
19
19
  import "../chunk-7QLSKOSU.js";
20
20
  import "../chunk-KZERVKTD.js";
21
21
  import "../chunk-7RZO6VWD.js";
22
- import "../chunk-TWLWDIFB.js";
23
- import "../chunk-AEXACKDR.js";
22
+ import "../chunk-MYBCXDIL.js";
23
+ import "../chunk-WVP6UQG3.js";
24
24
  import "../chunk-QENTGE75.js";
25
25
  import {
26
26
  getApiKey