pushary 1.9.132 → 1.9.133

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 (39) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/bin/pushary-bell-hook.js +3 -3
  3. package/dist/bin/pushary-claude.js +2 -2
  4. package/dist/bin/pushary-clean.js +3 -3
  5. package/dist/bin/pushary-codex-hook.js +3 -3
  6. package/dist/bin/pushary-codex-session.js +2 -2
  7. package/dist/bin/pushary-daemon.js +3 -3
  8. package/dist/bin/pushary-display-hook.js +4 -4
  9. package/dist/bin/pushary-doctor.js +2 -2
  10. package/dist/bin/pushary-elicitation-hook.js +3 -3
  11. package/dist/bin/pushary-gemini-hook.js +3 -3
  12. package/dist/bin/pushary-hook.js +4 -4
  13. package/dist/bin/pushary-login.js +1 -1
  14. package/dist/bin/pushary-notification-hook.js +3 -3
  15. package/dist/bin/pushary-opencode-hook.js +3 -3
  16. package/dist/bin/pushary-permission-denied-hook.js +4 -4
  17. package/dist/bin/pushary-permission-hook.js +4 -4
  18. package/dist/bin/pushary-post-hook.js +3 -3
  19. package/dist/bin/pushary-prompt-hook.js +3 -3
  20. package/dist/bin/pushary-session-end-hook.js +3 -3
  21. package/dist/bin/pushary-session-start-hook.js +3 -3
  22. package/dist/bin/pushary-setup.js +3 -3
  23. package/dist/bin/pushary-status.js +2 -2
  24. package/dist/bin/pushary-stop-hook.js +3 -3
  25. package/dist/bin/pushary-stopfailure-hook.js +3 -3
  26. package/dist/bin/pushary-transcript-register.js +2 -2
  27. package/dist/bin/pushary-transcripts.js +2 -2
  28. package/dist/bin/pushary-upgrade.js +2 -2
  29. package/dist/{chunk-KBOANW7J.js → chunk-3DCCMO23.js} +38 -6
  30. package/dist/{chunk-NJH6EGZN.js → chunk-FJST6ZXC.js} +1 -1
  31. package/dist/{chunk-U5AZKJ5O.js → chunk-I6MI4NWX.js} +1 -1
  32. package/dist/{chunk-J6WO5ZR5.js → chunk-PHKCTMAV.js} +2 -2
  33. package/dist/{chunk-4EGRD5RS.js → chunk-QVIDOVT6.js} +1 -1
  34. package/dist/{chunk-BTDEBPPR.js → chunk-UDAXXR43.js} +1 -1
  35. package/dist/{chunk-FP4WRSWE.js → chunk-VME5NXCM.js} +1 -1
  36. package/dist/{codex-app-cards-switch-WDQBUF7K.js → codex-app-cards-switch-D2SODMQN.js} +3 -3
  37. package/dist/{codex-desktop-launch-EQ4VH6QV.js → codex-desktop-launch-CFKIJZVB.js} +1 -1
  38. package/dist/src/index.js +4 -4
  39. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.133
4
+
5
+ - The background daemon starts again by itself after its lock file was left empty or cut off, for example when the disk filled up or the computer lost power while it was starting, and, on macOS and Linux, after a power cut or forced restart left a lock that names a process number another program now uses. Before, it exited at once and was restarted again and again, writing an error each time, and even `pushary daemon restart` could not clear the second case.
6
+ - Linux: setup, `pushary upgrade` and `pushary daemon install` can replace a daemon that systemd keeps restarting after a crash. Before, they stopped with "Could not inspect whether the native service is running: activating" and left the crash loop in place.
7
+
3
8
  ## 1.9.132
4
9
 
5
10
  - Windows: your phone shows Claude's reply as it streams, as it does on macOS and Linux. Before, a file check that only fits macOS and Linux refused the live preview on Windows, so the phone showed only the finished reply.
@@ -4,13 +4,13 @@ import {
4
4
  } from "../chunk-GQPXW6BL.js";
5
5
  import {
6
6
  readHookInput
7
- } from "../chunk-BTDEBPPR.js";
7
+ } from "../chunk-UDAXXR43.js";
8
8
  import "../chunk-EPPH5RMJ.js";
9
- import "../chunk-U5AZKJ5O.js";
9
+ import "../chunk-I6MI4NWX.js";
10
10
  import "../chunk-VAE5JBR5.js";
11
11
  import "../chunk-G66WIAST.js";
12
12
  import "../chunk-RZBV5KTF.js";
13
- import "../chunk-KBOANW7J.js";
13
+ import "../chunk-3DCCMO23.js";
14
14
  import "../chunk-237FYIVC.js";
15
15
  import "../chunk-MRHGK3Q3.js";
16
16
  import "../chunk-JYCAAQUW.js";
@@ -24,12 +24,12 @@ import {
24
24
  registerTranscript,
25
25
  registeredTranscriptEnabled,
26
26
  startDraftPublisher
27
- } from "../chunk-U5AZKJ5O.js";
27
+ } from "../chunk-I6MI4NWX.js";
28
28
  import "../chunk-VAE5JBR5.js";
29
29
  import "../chunk-G66WIAST.js";
30
30
  import {
31
31
  ensureDaemonRunning
32
- } from "../chunk-KBOANW7J.js";
32
+ } from "../chunk-3DCCMO23.js";
33
33
  import "../chunk-237FYIVC.js";
34
34
  import {
35
35
  DEFAULT_SESSION,
@@ -15,13 +15,13 @@ import {
15
15
  storedMacAppState,
16
16
  storedPusharyKeychainServices,
17
17
  waitForMacAppExit
18
- } from "../chunk-J6WO5ZR5.js";
18
+ } from "../chunk-PHKCTMAV.js";
19
19
  import {
20
20
  PUSHARY_SKILL_NAME,
21
21
  PUSHARY_SKILL_SOURCE,
22
22
  createGuards
23
23
  } from "../chunk-J42EAEX3.js";
24
- import "../chunk-FP4WRSWE.js";
24
+ import "../chunk-VME5NXCM.js";
25
25
  import "../chunk-XCEN33UP.js";
26
26
  import {
27
27
  describeCliKeyRevocation,
@@ -98,7 +98,7 @@ import {
98
98
  } from "../chunk-RZBV5KTF.js";
99
99
  import {
100
100
  disableDaemonService
101
- } from "../chunk-KBOANW7J.js";
101
+ } from "../chunk-3DCCMO23.js";
102
102
  import {
103
103
  hookOwnerOf,
104
104
  isHookTakeoverReceipt,
@@ -23,17 +23,17 @@ import {
23
23
  } from "../chunk-UZUDMZES.js";
24
24
  import {
25
25
  readHookInput
26
- } from "../chunk-BTDEBPPR.js";
26
+ } from "../chunk-UDAXXR43.js";
27
27
  import "../chunk-EPPH5RMJ.js";
28
28
  import {
29
29
  announceSubscriptionRequired,
30
30
  isDeferAnswer
31
31
  } from "../chunk-EA5EASYT.js";
32
- import "../chunk-U5AZKJ5O.js";
32
+ import "../chunk-I6MI4NWX.js";
33
33
  import "../chunk-VAE5JBR5.js";
34
34
  import "../chunk-G66WIAST.js";
35
35
  import "../chunk-RZBV5KTF.js";
36
- import "../chunk-KBOANW7J.js";
36
+ import "../chunk-3DCCMO23.js";
37
37
  import "../chunk-237FYIVC.js";
38
38
  import {
39
39
  CODEX_AGENT,
@@ -19,7 +19,7 @@ var desktopAccount = async () => {
19
19
  return null;
20
20
  }
21
21
  };
22
- var desktopLaunch = await import("../codex-desktop-launch-EQ4VH6QV.js").catch(() => null);
22
+ var desktopLaunch = await import("../codex-desktop-launch-CFKIJZVB.js").catch(() => null);
23
23
  if (desktopLaunch === null && appBehindTheProxy !== void 0) {
24
24
  process.exitCode = await letCodexRunWithoutPushary(appBehindTheProxy, args.slice(3));
25
25
  } else {
@@ -27,7 +27,7 @@ if (desktopLaunch === null && appBehindTheProxy !== void 0) {
27
27
  const stop = () => abort.abort();
28
28
  if (!args[0]?.startsWith("--desktop")) for (const signal of ["SIGINT", "SIGTERM", "SIGHUP"]) process.on(signal, stop);
29
29
  try {
30
- const { codexDesktopCommand } = desktopLaunch ?? await import("../codex-desktop-launch-EQ4VH6QV.js");
30
+ const { codexDesktopCommand } = desktopLaunch ?? await import("../codex-desktop-launch-CFKIJZVB.js");
31
31
  const desktop = await codexDesktopCommand(args, [process.execPath, ...process.execArgv, process.argv[1], "codex"], desktopAccount);
32
32
  if (desktop !== null) process.exitCode = desktop;
33
33
  else {
@@ -11,7 +11,7 @@ import "../chunk-PG23ENSN.js";
11
11
  import {
12
12
  HEARTBEAT_INTERVAL_MS,
13
13
  sendHeartbeat
14
- } from "../chunk-NJH6EGZN.js";
14
+ } from "../chunk-FJST6ZXC.js";
15
15
  import "../chunk-RLQDVWZ4.js";
16
16
  import {
17
17
  readSignedOutDiagnosis
@@ -56,7 +56,7 @@ import {
56
56
  import "../chunk-EPPH5RMJ.js";
57
57
  import {
58
58
  startRegisteredTranscripts
59
- } from "../chunk-U5AZKJ5O.js";
59
+ } from "../chunk-I6MI4NWX.js";
60
60
  import "../chunk-VAE5JBR5.js";
61
61
  import "../chunk-G66WIAST.js";
62
62
  import "../chunk-RZBV5KTF.js";
@@ -77,7 +77,7 @@ import {
77
77
  requestDaemonHandoff,
78
78
  stopDaemonRunning,
79
79
  writeDaemonNeedsLogin
80
- } from "../chunk-KBOANW7J.js";
80
+ } from "../chunk-3DCCMO23.js";
81
81
  import {
82
82
  hookOwnerOf
83
83
  } from "../chunk-237FYIVC.js";
@@ -2884,7 +2884,7 @@ import { join as join3 } from "path";
2884
2884
  init_fsx();
2885
2885
  init_paths();
2886
2886
  import { createHash as createHash10 } from "crypto";
2887
- import { lstatSync as lstatSync5, readFileSync as readFileSync18, readdirSync as readdirSync2, realpathSync as realpathSync4, statSync as statSync4, unlinkSync as unlinkSync5 } from "fs";
2887
+ import { lstatSync as lstatSync5, readFileSync as readFileSync18, readdirSync as readdirSync2, realpathSync as realpathSync4, statSync as statSync5, unlinkSync as unlinkSync5 } from "fs";
2888
2888
  import { basename as basename2, dirname as dirname8, isAbsolute, join as join19, relative, resolve as resolve3, sep } from "path";
2889
2889
 
2890
2890
  // src/transcript-phone-trust.ts
@@ -7597,9 +7597,9 @@ var hookOwnerOfCommands = (commands, appAvailable = true) => {
7597
7597
  // src/daemon-lifecycle.ts
7598
7598
  init_src();
7599
7599
  import { dirname as dirname7, join as join18, win32 as win32Path } from "path";
7600
- import { existsSync as existsSync6, mkdirSync as mkdirSync6, readFileSync as readFileSync17, realpathSync as realpathSync3, renameSync as renameSync3, unlinkSync as unlinkSync4, writeFileSync as writeFileSync5 } from "fs";
7600
+ import { existsSync as existsSync6, mkdirSync as mkdirSync6, readFileSync as readFileSync17, realpathSync as realpathSync3, renameSync as renameSync3, statSync as statSync4, unlinkSync as unlinkSync4, writeFileSync as writeFileSync5 } from "fs";
7601
7601
  import { createHash as createHash9, randomUUID as randomUUID3 } from "crypto";
7602
- import { homedir as homedir8, userInfo } from "os";
7602
+ import { homedir as homedir8, uptime, userInfo } from "os";
7603
7603
 
7604
7604
  // src/identity.ts
7605
7605
  init_fsx();
@@ -7802,7 +7802,7 @@ var cliRegistry = (apiKey = getApiKey()) => ({ apiKey, baseUrl: getBaseUrl(), di
7802
7802
  var accountFor = (registry) => createHash10("sha256").update(`${registry.baseUrl}\0${registry.apiKey}`).digest("hex");
7803
7803
  var TTL = 48 * 60 * 60 * 1e3;
7804
7804
  var read = (path) => {
7805
- if (statSync4(path).size > 16384) throw new Error("History registration exceeds its size limit");
7805
+ if (statSync5(path).size > 16384) throw new Error("History registration exceeds its size limit");
7806
7806
  return storedRegistrationSchema.parse(JSON.parse(readFileSync18(path, "utf8")));
7807
7807
  };
7808
7808
  var consent = (record) => record.consentOverride ?? readTranscriptPreference() ?? true;
@@ -35,7 +35,7 @@ import {
35
35
  import {
36
36
  readMachineReadiness,
37
37
  readManagedControlEvidence
38
- } from "../chunk-NJH6EGZN.js";
38
+ } from "../chunk-FJST6ZXC.js";
39
39
  import {
40
40
  assessCodexHookTrust,
41
41
  readCodexTrustForPusharyHooks
@@ -143,7 +143,7 @@ import {
143
143
  readDaemonNeedsLogin,
144
144
  readDaemonStatus,
145
145
  readInstalledDaemonService
146
- } from "../chunk-KBOANW7J.js";
146
+ } from "../chunk-3DCCMO23.js";
147
147
  import {
148
148
  GEMINI_HOOK_BINARY,
149
149
  claudeOtherHolders,
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-BTDEBPPR.js";
4
+ } from "../chunk-UDAXXR43.js";
5
5
  import "../chunk-EPPH5RMJ.js";
6
6
  import {
7
7
  announceSubscriptionRequired,
8
8
  isDeferAnswer
9
9
  } from "../chunk-EA5EASYT.js";
10
- import "../chunk-U5AZKJ5O.js";
10
+ import "../chunk-I6MI4NWX.js";
11
11
  import "../chunk-VAE5JBR5.js";
12
12
  import "../chunk-G66WIAST.js";
13
13
  import "../chunk-RZBV5KTF.js";
14
- import "../chunk-KBOANW7J.js";
14
+ import "../chunk-3DCCMO23.js";
15
15
  import "../chunk-237FYIVC.js";
16
16
  import "../chunk-MRHGK3Q3.js";
17
17
  import "../chunk-JYCAAQUW.js";
@@ -16,17 +16,17 @@ import {
16
16
  } from "../chunk-UZUDMZES.js";
17
17
  import {
18
18
  readHookInput
19
- } from "../chunk-BTDEBPPR.js";
19
+ } from "../chunk-UDAXXR43.js";
20
20
  import "../chunk-EPPH5RMJ.js";
21
21
  import {
22
22
  announceSubscriptionRequired,
23
23
  isDeferAnswer
24
24
  } from "../chunk-EA5EASYT.js";
25
- import "../chunk-U5AZKJ5O.js";
25
+ import "../chunk-I6MI4NWX.js";
26
26
  import "../chunk-VAE5JBR5.js";
27
27
  import "../chunk-G66WIAST.js";
28
28
  import "../chunk-RZBV5KTF.js";
29
- import "../chunk-KBOANW7J.js";
29
+ import "../chunk-3DCCMO23.js";
30
30
  import "../chunk-237FYIVC.js";
31
31
  import {
32
32
  DEFAULT_SESSION,
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePreToolUse
4
- } from "../chunk-4EGRD5RS.js";
4
+ } from "../chunk-QVIDOVT6.js";
5
5
  import "../chunk-FT5MTCKU.js";
6
6
  import {
7
7
  exitOnHelpFlag
@@ -11,10 +11,10 @@ import "../chunk-HW63OEVM.js";
11
11
  import "../chunk-2U4MCUVZ.js";
12
12
  import {
13
13
  readToolHookCall
14
- } from "../chunk-BTDEBPPR.js";
14
+ } from "../chunk-UDAXXR43.js";
15
15
  import "../chunk-EPPH5RMJ.js";
16
16
  import "../chunk-EA5EASYT.js";
17
- import "../chunk-U5AZKJ5O.js";
17
+ import "../chunk-I6MI4NWX.js";
18
18
  import "../chunk-VAE5JBR5.js";
19
19
  import "../chunk-G66WIAST.js";
20
20
  import {
@@ -22,7 +22,7 @@ import {
22
22
  normalizeToolCall,
23
23
  profileFromArgv
24
24
  } from "../chunk-RZBV5KTF.js";
25
- import "../chunk-KBOANW7J.js";
25
+ import "../chunk-3DCCMO23.js";
26
26
  import "../chunk-237FYIVC.js";
27
27
  import "../chunk-MRHGK3Q3.js";
28
28
  import {
@@ -25,7 +25,7 @@ import {
25
25
  import "../chunk-G66WIAST.js";
26
26
  import {
27
27
  recoverDaemonAfterLogin
28
- } from "../chunk-KBOANW7J.js";
28
+ } from "../chunk-3DCCMO23.js";
29
29
  import {
30
30
  parseFlags
31
31
  } from "../chunk-YPY4YCIZ.js";
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-BTDEBPPR.js";
4
+ } from "../chunk-UDAXXR43.js";
5
5
  import "../chunk-EPPH5RMJ.js";
6
- import "../chunk-U5AZKJ5O.js";
6
+ import "../chunk-I6MI4NWX.js";
7
7
  import "../chunk-VAE5JBR5.js";
8
8
  import "../chunk-G66WIAST.js";
9
9
  import {
10
10
  activeHookSource,
11
11
  activeIdentity
12
12
  } from "../chunk-RZBV5KTF.js";
13
- import "../chunk-KBOANW7J.js";
13
+ import "../chunk-3DCCMO23.js";
14
14
  import "../chunk-237FYIVC.js";
15
15
  import {
16
16
  handleNotification
@@ -13,17 +13,17 @@ import {
13
13
  } from "../chunk-2U4MCUVZ.js";
14
14
  import {
15
15
  readHookInput
16
- } from "../chunk-BTDEBPPR.js";
16
+ } from "../chunk-UDAXXR43.js";
17
17
  import "../chunk-EPPH5RMJ.js";
18
18
  import {
19
19
  announceSubscriptionRequired,
20
20
  isDeferAnswer
21
21
  } from "../chunk-EA5EASYT.js";
22
- import "../chunk-U5AZKJ5O.js";
22
+ import "../chunk-I6MI4NWX.js";
23
23
  import "../chunk-VAE5JBR5.js";
24
24
  import "../chunk-G66WIAST.js";
25
25
  import "../chunk-RZBV5KTF.js";
26
- import "../chunk-KBOANW7J.js";
26
+ import "../chunk-3DCCMO23.js";
27
27
  import "../chunk-237FYIVC.js";
28
28
  import {
29
29
  DEFAULT_SESSION,
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePermissionDenied
4
- } from "../chunk-4EGRD5RS.js";
4
+ } from "../chunk-QVIDOVT6.js";
5
5
  import "../chunk-FT5MTCKU.js";
6
6
  import {
7
7
  takeHookHoldBudget
@@ -11,14 +11,14 @@ import "../chunk-HW63OEVM.js";
11
11
  import "../chunk-2U4MCUVZ.js";
12
12
  import {
13
13
  readHookInput
14
- } from "../chunk-BTDEBPPR.js";
14
+ } from "../chunk-UDAXXR43.js";
15
15
  import "../chunk-EPPH5RMJ.js";
16
16
  import "../chunk-EA5EASYT.js";
17
- import "../chunk-U5AZKJ5O.js";
17
+ import "../chunk-I6MI4NWX.js";
18
18
  import "../chunk-VAE5JBR5.js";
19
19
  import "../chunk-G66WIAST.js";
20
20
  import "../chunk-RZBV5KTF.js";
21
- import "../chunk-KBOANW7J.js";
21
+ import "../chunk-3DCCMO23.js";
22
22
  import "../chunk-237FYIVC.js";
23
23
  import "../chunk-MRHGK3Q3.js";
24
24
  import "../chunk-JYCAAQUW.js";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePermissionRequest
4
- } from "../chunk-4EGRD5RS.js";
4
+ } from "../chunk-QVIDOVT6.js";
5
5
  import "../chunk-FT5MTCKU.js";
6
6
  import {
7
7
  takeHookHoldBudget
@@ -11,10 +11,10 @@ import "../chunk-HW63OEVM.js";
11
11
  import "../chunk-2U4MCUVZ.js";
12
12
  import {
13
13
  readToolHookInput
14
- } from "../chunk-BTDEBPPR.js";
14
+ } from "../chunk-UDAXXR43.js";
15
15
  import "../chunk-EPPH5RMJ.js";
16
16
  import "../chunk-EA5EASYT.js";
17
- import "../chunk-U5AZKJ5O.js";
17
+ import "../chunk-I6MI4NWX.js";
18
18
  import "../chunk-VAE5JBR5.js";
19
19
  import "../chunk-G66WIAST.js";
20
20
  import {
@@ -22,7 +22,7 @@ import {
22
22
  normalizeToolCall,
23
23
  profileFromArgv
24
24
  } from "../chunk-RZBV5KTF.js";
25
- import "../chunk-KBOANW7J.js";
25
+ import "../chunk-3DCCMO23.js";
26
26
  import "../chunk-237FYIVC.js";
27
27
  import "../chunk-MRHGK3Q3.js";
28
28
  import {
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-BTDEBPPR.js";
4
+ } from "../chunk-UDAXXR43.js";
5
5
  import "../chunk-EPPH5RMJ.js";
6
- import "../chunk-U5AZKJ5O.js";
6
+ import "../chunk-I6MI4NWX.js";
7
7
  import "../chunk-VAE5JBR5.js";
8
8
  import "../chunk-G66WIAST.js";
9
9
  import {
@@ -12,7 +12,7 @@ import {
12
12
  normalizeToolCall,
13
13
  profileFromArgv
14
14
  } from "../chunk-RZBV5KTF.js";
15
- import "../chunk-KBOANW7J.js";
15
+ import "../chunk-3DCCMO23.js";
16
16
  import "../chunk-237FYIVC.js";
17
17
  import {
18
18
  emitHookOutput,
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-BTDEBPPR.js";
4
+ } from "../chunk-UDAXXR43.js";
5
5
  import "../chunk-EPPH5RMJ.js";
6
- import "../chunk-U5AZKJ5O.js";
6
+ import "../chunk-I6MI4NWX.js";
7
7
  import "../chunk-VAE5JBR5.js";
8
8
  import "../chunk-G66WIAST.js";
9
9
  import {
10
10
  activeHookSource,
11
11
  activeIdentity
12
12
  } from "../chunk-RZBV5KTF.js";
13
- import "../chunk-KBOANW7J.js";
13
+ import "../chunk-3DCCMO23.js";
14
14
  import "../chunk-237FYIVC.js";
15
15
  import {
16
16
  emitHookOutput,
@@ -5,16 +5,16 @@ import {
5
5
  import "../chunk-CYTPQDQY.js";
6
6
  import {
7
7
  readHookInput
8
- } from "../chunk-BTDEBPPR.js";
8
+ } from "../chunk-UDAXXR43.js";
9
9
  import "../chunk-EPPH5RMJ.js";
10
- import "../chunk-U5AZKJ5O.js";
10
+ import "../chunk-I6MI4NWX.js";
11
11
  import "../chunk-VAE5JBR5.js";
12
12
  import "../chunk-G66WIAST.js";
13
13
  import {
14
14
  activeHookSource,
15
15
  activeIdentity
16
16
  } from "../chunk-RZBV5KTF.js";
17
- import "../chunk-KBOANW7J.js";
17
+ import "../chunk-3DCCMO23.js";
18
18
  import "../chunk-237FYIVC.js";
19
19
  import {
20
20
  handleSessionEnd
@@ -15,16 +15,16 @@ import {
15
15
  } from "../chunk-UZUDMZES.js";
16
16
  import {
17
17
  readHookInput
18
- } from "../chunk-BTDEBPPR.js";
18
+ } from "../chunk-UDAXXR43.js";
19
19
  import "../chunk-EPPH5RMJ.js";
20
- import "../chunk-U5AZKJ5O.js";
20
+ import "../chunk-I6MI4NWX.js";
21
21
  import "../chunk-VAE5JBR5.js";
22
22
  import "../chunk-G66WIAST.js";
23
23
  import {
24
24
  activeHookSource,
25
25
  activeIdentity
26
26
  } from "../chunk-RZBV5KTF.js";
27
- import "../chunk-KBOANW7J.js";
27
+ import "../chunk-3DCCMO23.js";
28
28
  import "../chunk-237FYIVC.js";
29
29
  import {
30
30
  CLAUDE_CODE_AGENT,
@@ -94,7 +94,7 @@ import {
94
94
  import {
95
95
  readManagedControlEvidence,
96
96
  waitForMachineReadiness
97
- } from "../chunk-NJH6EGZN.js";
97
+ } from "../chunk-FJST6ZXC.js";
98
98
  import {
99
99
  ensureCodexTrustsPusharyHooks
100
100
  } from "../chunk-RLQDVWZ4.js";
@@ -105,7 +105,7 @@ import {
105
105
  } from "../chunk-J42EAEX3.js";
106
106
  import {
107
107
  codexEngineBehindLauncher
108
- } from "../chunk-FP4WRSWE.js";
108
+ } from "../chunk-VME5NXCM.js";
109
109
  import "../chunk-XCEN33UP.js";
110
110
  import {
111
111
  CURSOR_PLUGIN_BACKUP_INFIX,
@@ -254,7 +254,7 @@ import {
254
254
  serviceNodeFor,
255
255
  stopDaemonService,
256
256
  waitForDaemonRemoteProof
257
- } from "../chunk-KBOANW7J.js";
257
+ } from "../chunk-3DCCMO23.js";
258
258
  import {
259
259
  GEMINI_HOOK_BINARY,
260
260
  GEMINI_HOOK_EVENTS,
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  describeLastSeen,
15
15
  listMachines
16
- } from "../chunk-NJH6EGZN.js";
16
+ } from "../chunk-FJST6ZXC.js";
17
17
  import {
18
18
  SIGNED_OUT_ON_MAC_MESSAGE,
19
19
  activeKeyVerdictOf,
@@ -38,7 +38,7 @@ import "../chunk-X23GSBOH.js";
38
38
  import "../chunk-UJZ5YHSR.js";
39
39
  import "../chunk-CYTPQDQY.js";
40
40
  import "../chunk-RZBV5KTF.js";
41
- import "../chunk-KBOANW7J.js";
41
+ import "../chunk-3DCCMO23.js";
42
42
  import "../chunk-237FYIVC.js";
43
43
  import "../chunk-MRHGK3Q3.js";
44
44
  import "../chunk-JYCAAQUW.js";
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-BTDEBPPR.js";
4
+ } from "../chunk-UDAXXR43.js";
5
5
  import "../chunk-EPPH5RMJ.js";
6
- import "../chunk-U5AZKJ5O.js";
6
+ import "../chunk-I6MI4NWX.js";
7
7
  import "../chunk-VAE5JBR5.js";
8
8
  import "../chunk-G66WIAST.js";
9
9
  import {
10
10
  activeHookSource,
11
11
  activeIdentity
12
12
  } from "../chunk-RZBV5KTF.js";
13
- import "../chunk-KBOANW7J.js";
13
+ import "../chunk-3DCCMO23.js";
14
14
  import "../chunk-237FYIVC.js";
15
15
  import {
16
16
  emitHookOutput,
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-BTDEBPPR.js";
4
+ } from "../chunk-UDAXXR43.js";
5
5
  import "../chunk-EPPH5RMJ.js";
6
- import "../chunk-U5AZKJ5O.js";
6
+ import "../chunk-I6MI4NWX.js";
7
7
  import "../chunk-VAE5JBR5.js";
8
8
  import "../chunk-G66WIAST.js";
9
9
  import {
10
10
  activeHookSource,
11
11
  activeIdentity
12
12
  } from "../chunk-RZBV5KTF.js";
13
- import "../chunk-KBOANW7J.js";
13
+ import "../chunk-3DCCMO23.js";
14
14
  import "../chunk-237FYIVC.js";
15
15
  import {
16
16
  handleStopFailure
@@ -5,10 +5,10 @@ import {
5
5
  } from "../chunk-S4HS6VTI.js";
6
6
  import {
7
7
  registerTranscript
8
- } from "../chunk-U5AZKJ5O.js";
8
+ } from "../chunk-I6MI4NWX.js";
9
9
  import "../chunk-VAE5JBR5.js";
10
10
  import "../chunk-G66WIAST.js";
11
- import "../chunk-KBOANW7J.js";
11
+ import "../chunk-3DCCMO23.js";
12
12
  import "../chunk-237FYIVC.js";
13
13
  import "../chunk-JYCAAQUW.js";
14
14
  import "../chunk-XHC3UNOK.js";
@@ -21,10 +21,10 @@ import {
21
21
  snapshotRecipientPinFile,
22
22
  trustPhoneRecipient,
23
23
  verifyTrustedRecipients
24
- } from "../chunk-U5AZKJ5O.js";
24
+ } from "../chunk-I6MI4NWX.js";
25
25
  import "../chunk-VAE5JBR5.js";
26
26
  import "../chunk-G66WIAST.js";
27
- import "../chunk-KBOANW7J.js";
27
+ import "../chunk-3DCCMO23.js";
28
28
  import "../chunk-237FYIVC.js";
29
29
  import "../chunk-JYCAAQUW.js";
30
30
  import "../chunk-XHC3UNOK.js";
@@ -36,7 +36,7 @@ import {
36
36
  import "../chunk-L5RSLIBQ.js";
37
37
  import {
38
38
  waitForMachineReadiness
39
- } from "../chunk-NJH6EGZN.js";
39
+ } from "../chunk-FJST6ZXC.js";
40
40
  import "../chunk-RLQDVWZ4.js";
41
41
  import {
42
42
  readMacAppAgentKey
@@ -90,7 +90,7 @@ import {
90
90
  replaceDaemonService,
91
91
  stopDaemonService,
92
92
  waitForDaemonRemoteProof
93
- } from "../chunk-KBOANW7J.js";
93
+ } from "../chunk-3DCCMO23.js";
94
94
  import "../chunk-237FYIVC.js";
95
95
  import "../chunk-MRHGK3Q3.js";
96
96
  import "../chunk-JYCAAQUW.js";
@@ -36,9 +36,9 @@ import {
36
36
 
37
37
  // src/daemon-lifecycle.ts
38
38
  import { dirname, join, win32 as win32Path } from "path";
39
- import { existsSync, mkdirSync, readFileSync, realpathSync, renameSync, unlinkSync, writeFileSync } from "fs";
39
+ import { existsSync, mkdirSync, readFileSync, realpathSync, renameSync, statSync, unlinkSync, writeFileSync } from "fs";
40
40
  import { createHash, randomUUID } from "crypto";
41
- import { homedir, userInfo } from "os";
41
+ import { homedir, uptime, userInfo } from "os";
42
42
  import { execFileSync } from "child_process";
43
43
  var daemonIsServing = (status) => status.kind === "running" || status.kind === "version-mismatch" || status.kind === "configuration-mismatch";
44
44
  var isAliveWithStaleLease = (status) => status.kind === "unresponsive" && status.processAlive === true;
@@ -214,7 +214,7 @@ WantedBy=default.target
214
214
  runningProbe: {
215
215
  command: "systemctl",
216
216
  args: ["--user", "is-active", unit],
217
- negativeOutputPattern: /^(?:inactive|failed|unknown)\s*$/m
217
+ negativeOutputPattern: /^(?:inactive|failed|unknown|activating|deactivating)\s*$/m
218
218
  },
219
219
  reloadAfterUninstall: { command: "systemctl", args: ["--user", "daemon-reload"] }
220
220
  };
@@ -450,6 +450,24 @@ var spawnDetachedDaemon = (plan, options = {}) => {
450
450
  child.unref();
451
451
  return typeof child.pid === "number" ? child.pid : null;
452
452
  };
453
+ var BOOT_CLOCK_SLACK_MS = 6e4;
454
+ var uptimeIncludingSleepMs = () => {
455
+ if (process.platform !== "darwin" && process.platform !== "linux") return null;
456
+ try {
457
+ return uptime() * 1e3;
458
+ } catch {
459
+ return null;
460
+ }
461
+ };
462
+ var uptimeOnTheSameClock = (options) => {
463
+ if (options.uptimeMs) return options.uptimeMs();
464
+ return options.now ? null : uptimeIncludingSleepMs();
465
+ };
466
+ var writtenBeforeThisBoot = (writtenAtMs, options) => {
467
+ const uptimeMs = uptimeOnTheSameClock(options);
468
+ if (uptimeMs === null || !Number.isFinite(writtenAtMs)) return false;
469
+ return writtenAtMs < (options.now ?? Date.now)() - uptimeMs - BOOT_CLOCK_SLACK_MS;
470
+ };
453
471
  var processIsAlive = (pid) => {
454
472
  try {
455
473
  process.kill(pid, 0);
@@ -516,7 +534,7 @@ var readDaemonStatus = (options = {}) => {
516
534
  }
517
535
  const value = state.kind === "ok" ? parseDaemonState(state.value) : null;
518
536
  if (value) {
519
- const alive = (options.isProcessAlive ?? processIsAlive)(value.pid);
537
+ const alive = !writtenBeforeThisBoot(Date.parse(value.updatedAt), options) && (options.isProcessAlive ?? processIsAlive)(value.pid);
520
538
  const fresh = (options.now ?? Date.now)() - Date.parse(value.updatedAt) <= LOCAL_LEASE_TIMEOUT_MS;
521
539
  const expectedConfigurationId2 = options.configurationId === void 0 ? currentConfigurationId() : options.configurationId;
522
540
  return {
@@ -554,6 +572,15 @@ var safeUnlink = (path) => {
554
572
  if (err.code !== "ENOENT") throw err;
555
573
  }
556
574
  };
575
+ var OWNERLESS_LOCK_WRITE_GRACE_MS = 5e3;
576
+ var lockWrittenAtMs = (path) => {
577
+ try {
578
+ return statSync(path).mtimeMs;
579
+ } catch {
580
+ return null;
581
+ }
582
+ };
583
+ var ownerlessLockIsAbandoned = (writtenAtMs, nowMs) => writtenAtMs !== null && Math.abs(nowMs - writtenAtMs) >= OWNERLESS_LOCK_WRITE_GRACE_MS;
557
584
  var requestDaemonVersion = (version, options = {}) => {
558
585
  const dir = options.dir ?? pusharyDir();
559
586
  const now = options.now ?? Date.now;
@@ -583,8 +610,13 @@ var acquireDaemonLease = (options = {}) => {
583
610
  }
584
611
  const lock = readJsonSafe(lockPath(dir));
585
612
  const owner = lock.kind === "ok" ? parseLockOwner(lock.value) : null;
586
- if (!owner) return { kind: "unavailable", detail: "daemon lock is invalid" };
587
- if ((options.isProcessAlive ?? processIsAlive)(owner.pid)) {
613
+ const writtenAtMs = lockWrittenAtMs(lockPath(dir));
614
+ const lockIsReadable = lock.kind === "ok" || lock.kind === "unparseable";
615
+ if (!owner && !(lockIsReadable && ownerlessLockIsAbandoned(writtenAtMs, now()))) {
616
+ return { kind: "unavailable", detail: "daemon lock is invalid" };
617
+ }
618
+ const ownerIsFromThisBoot = writtenAtMs === null || !writtenBeforeThisBoot(writtenAtMs, options);
619
+ if (owner && ownerIsFromThisBoot && (options.isProcessAlive ?? processIsAlive)(owner.pid)) {
588
620
  return { kind: "unavailable", detail: "daemon owner is still running or starting" };
589
621
  }
590
622
  const stale = join(dir, `daemon.lock.${instanceId}.stale`);
@@ -10,7 +10,7 @@ import {
10
10
  hasDaemonServiceDefinition,
11
11
  readDaemonNeedsLogin,
12
12
  readDaemonStatus
13
- } from "./chunk-KBOANW7J.js";
13
+ } from "./chunk-3DCCMO23.js";
14
14
  import {
15
15
  getMachineId
16
16
  } from "./chunk-DS7XMYUB.js";
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-G66WIAST.js";
9
9
  import {
10
10
  ensureDaemonRunning
11
- } from "./chunk-KBOANW7J.js";
11
+ } from "./chunk-3DCCMO23.js";
12
12
  import {
13
13
  hookOwnerOf
14
14
  } from "./chunk-237FYIVC.js";
@@ -9,13 +9,13 @@ import {
9
9
  installedCodexApp,
10
10
  readCodexAppRuntime,
11
11
  shellQuoted
12
- } from "./chunk-FP4WRSWE.js";
12
+ } from "./chunk-VME5NXCM.js";
13
13
  import {
14
14
  writeHuman
15
15
  } from "./chunk-QCGNGEGE.js";
16
16
  import {
17
17
  xml
18
- } from "./chunk-KBOANW7J.js";
18
+ } from "./chunk-3DCCMO23.js";
19
19
  import {
20
20
  writeFileAtomic
21
21
  } from "./chunk-TODDEIYG.js";
@@ -18,7 +18,7 @@ import {
18
18
  import {
19
19
  isAdmitted,
20
20
  readAdmissionRules
21
- } from "./chunk-BTDEBPPR.js";
21
+ } from "./chunk-UDAXXR43.js";
22
22
  import {
23
23
  isDeferAnswer,
24
24
  oncePerSession
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-EPPH5RMJ.js";
5
5
  import {
6
6
  registerTranscript
7
- } from "./chunk-U5AZKJ5O.js";
7
+ } from "./chunk-I6MI4NWX.js";
8
8
  import {
9
9
  namedEvent
10
10
  } from "./chunk-RZBV5KTF.js";
@@ -1085,7 +1085,7 @@ var codexDesktopCommand = async (args, entry, readAccount) => {
1085
1085
  return runCodexDesktopProxy(engine2, args.slice(3), readAccount, { watchesForCards: layoutIsKnown });
1086
1086
  }
1087
1087
  if (args[0] === APP_CARDS_FLAG) {
1088
- const { codexAppCardsCommandOnThisMac } = await import("./codex-app-cards-switch-WDQBUF7K.js");
1088
+ const { codexAppCardsCommandOnThisMac } = await import("./codex-app-cards-switch-D2SODMQN.js");
1089
1089
  return codexAppCardsCommandOnThisMac(args.slice(1), entry, readAccount);
1090
1090
  }
1091
1091
  if (args.length > 2) throw new Error("Usage: pushary codex --desktop [path/to/Codex.app]");
@@ -22,11 +22,11 @@ import {
22
22
  turnCodexAppCardsOff,
23
23
  turnCodexAppCardsOn,
24
24
  whyLaunchctlFailed
25
- } from "./chunk-J6WO5ZR5.js";
26
- import "./chunk-FP4WRSWE.js";
25
+ } from "./chunk-PHKCTMAV.js";
26
+ import "./chunk-VME5NXCM.js";
27
27
  import "./chunk-XCEN33UP.js";
28
28
  import "./chunk-QCGNGEGE.js";
29
- import "./chunk-KBOANW7J.js";
29
+ import "./chunk-3DCCMO23.js";
30
30
  import "./chunk-H6CL3T2S.js";
31
31
  import "./chunk-DS7XMYUB.js";
32
32
  import "./chunk-CVBSETPW.js";
@@ -11,7 +11,7 @@ import {
11
11
  installedCodexApp,
12
12
  shellQuoted,
13
13
  writeDesktopProxy
14
- } from "./chunk-FP4WRSWE.js";
14
+ } from "./chunk-VME5NXCM.js";
15
15
  import "./chunk-XCEN33UP.js";
16
16
  import {
17
17
  CODEX_APP_LAUNCH_VARIABLE
package/dist/src/index.js CHANGED
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  handlePreToolUse
3
- } from "../chunk-4EGRD5RS.js";
3
+ } from "../chunk-QVIDOVT6.js";
4
4
  import "../chunk-FT5MTCKU.js";
5
5
  import "../chunk-XWUPOTJV.js";
6
6
  import "../chunk-HW63OEVM.js";
7
7
  import "../chunk-2U4MCUVZ.js";
8
- import "../chunk-BTDEBPPR.js";
8
+ import "../chunk-UDAXXR43.js";
9
9
  import "../chunk-EPPH5RMJ.js";
10
10
  import "../chunk-EA5EASYT.js";
11
- import "../chunk-U5AZKJ5O.js";
11
+ import "../chunk-I6MI4NWX.js";
12
12
  import "../chunk-VAE5JBR5.js";
13
13
  import "../chunk-G66WIAST.js";
14
14
  import "../chunk-RZBV5KTF.js";
15
- import "../chunk-KBOANW7J.js";
15
+ import "../chunk-3DCCMO23.js";
16
16
  import "../chunk-237FYIVC.js";
17
17
  import {
18
18
  fetchModeOverride,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pushary",
3
- "version": "1.9.132",
3
+ "version": "1.9.133",
4
4
  "description": "Human-in-the-loop (HITL) for AI agents: ask a person for approvals or answers by push notification. One command connects Claude Code, Codex, Cursor, Gemini CLI and more.",
5
5
  "keywords": [
6
6
  "pushary",