pushary 1.9.55 → 1.9.57

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 (120) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/{api-K6ZROHYB.js → api-RQAY3A5V.js} +11 -11
  3. package/dist/bin/pushary-bell-hook.js +29 -29
  4. package/dist/bin/pushary-bell.js +11 -11
  5. package/dist/bin/pushary-claude.js +31 -30
  6. package/dist/bin/pushary-clean.js +35 -34
  7. package/dist/bin/pushary-codex-bridge.js +23 -22
  8. package/dist/bin/pushary-codex-hook.js +34 -34
  9. package/dist/bin/pushary-codex-session.js +8 -8
  10. package/dist/bin/pushary-codex.js +15 -15
  11. package/dist/bin/pushary-connect.js +27 -27
  12. package/dist/bin/pushary-cowork.js +5 -5
  13. package/dist/bin/pushary-daemon.js +40 -39
  14. package/dist/bin/pushary-disconnect.js +27 -27
  15. package/dist/bin/pushary-doctor.js +41 -39
  16. package/dist/bin/pushary-elicitation-hook.js +29 -29
  17. package/dist/bin/pushary-gemini-bridge.js +17 -16
  18. package/dist/bin/pushary-gemini-hook.js +31 -31
  19. package/dist/bin/pushary-hook.js +33 -33
  20. package/dist/bin/pushary-login.js +14 -14
  21. package/dist/bin/pushary-logout.js +27 -27
  22. package/dist/bin/pushary-mcp.js +12 -12
  23. package/dist/bin/pushary-mode.js +14 -14
  24. package/dist/bin/pushary-notification-hook.js +28 -28
  25. package/dist/bin/pushary-opencode-hook.js +30 -30
  26. package/dist/bin/pushary-permission-denied-hook.js +33 -33
  27. package/dist/bin/pushary-permission-hook.js +32 -32
  28. package/dist/bin/pushary-post-hook.js +28 -28
  29. package/dist/bin/pushary-prompt-hook.js +28 -28
  30. package/dist/bin/pushary-session-end-hook.js +30 -29
  31. package/dist/bin/pushary-session-start-hook.js +36 -35
  32. package/dist/bin/pushary-setup.js +46 -43
  33. package/dist/bin/pushary-stats.js +5 -5
  34. package/dist/bin/pushary-status.js +31 -30
  35. package/dist/bin/pushary-stop-hook.js +28 -28
  36. package/dist/bin/pushary-stopfailure-hook.js +28 -28
  37. package/dist/bin/pushary-suggestions.js +14 -14
  38. package/dist/bin/pushary-transcript-register.js +20 -20
  39. package/dist/bin/pushary-transcripts.js +9 -9
  40. package/dist/bin/pushary-upgrade.js +37 -36
  41. package/dist/bin/pushary-wait.js +14 -14
  42. package/dist/bin/pushary.js +8 -8
  43. package/dist/{chunk-FCMWUYIE.js → chunk-2NIRYGTK.js} +2 -2
  44. package/dist/{chunk-ZWOWEXCV.js → chunk-2PJENKRJ.js} +10 -7
  45. package/dist/{chunk-ALZZVC3E.js → chunk-3IBUZQKM.js} +3 -3
  46. package/dist/{chunk-ZOP3I2GQ.js → chunk-3TJLPABQ.js} +3 -3
  47. package/dist/{chunk-NHVEQLQC.js → chunk-4QD7VE4E.js} +2 -2
  48. package/dist/{chunk-6SWMKF5E.js → chunk-4YNNAF53.js} +2 -2
  49. package/dist/{chunk-U2L42GVI.js → chunk-4YTFYILS.js} +10 -10
  50. package/dist/{chunk-MC4VY5LK.js → chunk-5SFM6XB4.js} +1 -1
  51. package/dist/{chunk-ZMPR436Z.js → chunk-6QM54CSJ.js} +5 -5
  52. package/dist/{chunk-H57DXSHR.js → chunk-7OQ4AJC7.js} +3 -3
  53. package/dist/{chunk-4QQEUJL4.js → chunk-7RZO6VWD.js} +2 -2
  54. package/dist/{chunk-P2546BBI.js → chunk-A54W5A74.js} +3 -3
  55. package/dist/{chunk-XUW2DRAQ.js → chunk-AEXACKDR.js} +3 -3
  56. package/dist/{chunk-XDCXTDHH.js → chunk-AN6TVB2H.js} +5 -5
  57. package/dist/{chunk-QKU46TK5.js → chunk-BAJ3A3BU.js} +3 -3
  58. package/dist/{chunk-FV34HT35.js → chunk-C3IWX6KU.js} +1 -1
  59. package/dist/{chunk-56ZTIY6D.js → chunk-CB565EVO.js} +3 -3
  60. package/dist/{chunk-Q7OXI6VS.js → chunk-CUEUANIU.js} +5 -5
  61. package/dist/{chunk-LGTF7AZX.js → chunk-D2EETYAL.js} +4 -4
  62. package/dist/{chunk-2LEH5IGX.js → chunk-DDQRYX2L.js} +28 -14
  63. package/dist/{chunk-LD4MWJMD.js → chunk-DS6OR5OS.js} +6 -6
  64. package/dist/{chunk-BUXDR6US.js → chunk-ECJJKDP7.js} +1 -1
  65. package/dist/{chunk-L5YTS2BP.js → chunk-FBKVCODG.js} +3 -3
  66. package/dist/{chunk-PQ4K74WL.js → chunk-FVERRWDP.js} +15 -12
  67. package/dist/{chunk-LF3TLC7B.js → chunk-GZL3KEPC.js} +51 -25
  68. package/dist/{chunk-EK7SZJ4K.js → chunk-HCIB4YNB.js} +3 -3
  69. package/dist/{chunk-NSY2V7XU.js → chunk-I43PY5G3.js} +1 -1
  70. package/dist/{chunk-RL7EOD6I.js → chunk-IBSRULIY.js} +11 -11
  71. package/dist/{chunk-VYBH6D4X.js → chunk-IRZ5FVWG.js} +4 -4
  72. package/dist/{chunk-UVT6B6XN.js → chunk-IUOUNRLH.js} +2 -2
  73. package/dist/{chunk-46TC24ET.js → chunk-JCMSISCC.js} +2 -2
  74. package/dist/{chunk-5463UUO2.js → chunk-JSQOHMNJ.js} +1 -1
  75. package/dist/{chunk-7CLLWDCP.js → chunk-JYXIARGW.js} +1 -1
  76. package/dist/{chunk-JOWF4Y4P.js → chunk-K45CFSYV.js} +4 -4
  77. package/dist/{chunk-NELH25J7.js → chunk-K5SDLOFS.js} +11 -11
  78. package/dist/{chunk-CQ5JGRML.js → chunk-LVDC3RUE.js} +1 -1
  79. package/dist/{chunk-RIVNNBEK.js → chunk-LVWXRXT7.js} +27 -12
  80. package/dist/{chunk-DHJSBK63.js → chunk-LVZYIUSR.js} +1 -1
  81. package/dist/{chunk-EPOD7QHT.js → chunk-LW7IWGSV.js} +12 -9
  82. package/dist/{chunk-S6RNS4UL.js → chunk-M7NX25ZA.js} +1 -1
  83. package/dist/{chunk-GCN73COS.js → chunk-N3NSWWNU.js} +1 -1
  84. package/dist/{chunk-MTKV4RUQ.js → chunk-NQDEMRAS.js} +6 -6
  85. package/dist/{chunk-MHQB62K5.js → chunk-OLNBYAPI.js} +5 -5
  86. package/dist/{chunk-T5L5NWT3.js → chunk-OZSP4RIQ.js} +2 -2
  87. package/dist/{chunk-K23WMLPY.js → chunk-PZDMZ7LM.js} +6 -6
  88. package/dist/{chunk-AQFEP65J.js → chunk-QENTGE75.js} +10 -1
  89. package/dist/{chunk-JPABKXK6.js → chunk-QLDTBZBP.js} +36 -28
  90. package/dist/{chunk-6C4S3QYD.js → chunk-QQYUWTYS.js} +3 -3
  91. package/dist/{chunk-3RPN7AAT.js → chunk-QTCFEKLJ.js} +1 -1
  92. package/dist/{chunk-DWQYCOPI.js → chunk-QW3FRUFB.js} +1 -1
  93. package/dist/{chunk-NECZKPJN.js → chunk-RFAF3TOX.js} +5 -5
  94. package/dist/{chunk-FI73DGNB.js → chunk-S5LX25XE.js} +1 -1
  95. package/dist/{chunk-T6RIKJUO.js → chunk-SQ5G6A6K.js} +2 -2
  96. package/dist/{chunk-RH6KR6EH.js → chunk-T45PAPOG.js} +5 -5
  97. package/dist/{chunk-OML4YFBN.js → chunk-TWLWDIFB.js} +2 -2
  98. package/dist/{chunk-N77BH7H2.js → chunk-UPFFO4F6.js} +4 -4
  99. package/dist/chunk-VUFHYMSP.js +32 -0
  100. package/dist/{chunk-VQPSWD3A.js → chunk-W6363YYZ.js} +10 -10
  101. package/dist/{chunk-XSUJ2PQY.js → chunk-WXZN5CS3.js} +3 -3
  102. package/dist/{chunk-ONCWYACA.js → chunk-XTZHUIGJ.js} +1 -1
  103. package/dist/{chunk-JBT3ZSJS.js → chunk-XXNT4FGA.js} +1 -1
  104. package/dist/{chunk-LIESRXK5.js → chunk-YKYVDHIY.js} +1 -1
  105. package/dist/{chunk-BL3WAGIK.js → chunk-Z7Q36I4K.js} +7 -7
  106. package/dist/{chunk-63IQRYVP.js → chunk-ZU6L34DQ.js} +4 -4
  107. package/dist/{chunk-IHUFRAHB.js → chunk-ZZB4J6CX.js} +4 -4
  108. package/dist/{codex-app-cards-switch-P4RVJNRV.js → codex-app-cards-switch-SVGTZ2UN.js} +12 -12
  109. package/dist/{codex-desktop-launch-RIBIFXSF.js → codex-desktop-launch-SH7OUEEC.js} +1 -1
  110. package/dist/{codex-session-launch-KLH2FSSJ.js → codex-session-launch-IQ57OL3N.js} +20 -19
  111. package/dist/{config-HX6ZNOIL.js → config-SYLUYZQE.js} +3 -3
  112. package/dist/{global-upgrade-AZN3BPI3.js → global-upgrade-SRCWQE7N.js} +8 -8
  113. package/dist/{identity-AQIMUWYN.js → identity-6KRUO2YO.js} +5 -5
  114. package/dist/{live-capabilities-4IIFAMHU.js → live-capabilities-RKUHAWT6.js} +8 -4
  115. package/dist/{paths-X4IPV2WJ.js → paths-MUPQZNLG.js} +3 -3
  116. package/dist/{reapply-CXODG53B.js → reapply-YZXZCWCI.js} +28 -27
  117. package/dist/src/index.js +22 -22
  118. package/dist/{upgrade-lock-AHISGKER.js → upgrade-lock-JXP27UKI.js} +5 -5
  119. package/dist/{usage-ZC6BKIE3.js → usage-OUV76AIY.js} +3 -3
  120. package/package.json +1 -1
@@ -4,10 +4,10 @@ import {
4
4
  keyPrefix,
5
5
  readConfigFileKey,
6
6
  readMacAppKeyPrefix
7
- } from "./chunk-VYBH6D4X.js";
7
+ } from "./chunk-IRZ5FVWG.js";
8
8
  import {
9
9
  NPX_LATEST_COMMAND
10
- } from "./chunk-MC4VY5LK.js";
10
+ } from "./chunk-5SFM6XB4.js";
11
11
 
12
12
  // src/key-signed-out.ts
13
13
  var VERDICT_BY_CHECK = {
@@ -2,10 +2,10 @@ import {
2
2
  IDLE_PROMPT_NOTIFICATION,
3
3
  NOTIFICATION_PUSH_TYPES,
4
4
  POSTTOOLUSE_MIRROR_ONLY_TOOLS
5
- } from "./chunk-3RPN7AAT.js";
5
+ } from "./chunk-QTCFEKLJ.js";
6
6
  import {
7
7
  repoKeyFor
8
- } from "./chunk-JBT3ZSJS.js";
8
+ } from "./chunk-XXNT4FGA.js";
9
9
  import {
10
10
  cancelQuestion,
11
11
  clientErrorKindOf,
@@ -13,26 +13,26 @@ import {
13
13
  reportClientError,
14
14
  sendNotification,
15
15
  waitForAnswer
16
- } from "./chunk-ZMPR436Z.js";
16
+ } from "./chunk-6QM54CSJ.js";
17
17
  import {
18
18
  withRetry
19
- } from "./chunk-P2546BBI.js";
19
+ } from "./chunk-A54W5A74.js";
20
20
  import {
21
21
  getMachineId
22
- } from "./chunk-T6RIKJUO.js";
22
+ } from "./chunk-SQ5G6A6K.js";
23
23
  import {
24
24
  reportedInstallSource
25
- } from "./chunk-4QQEUJL4.js";
25
+ } from "./chunk-7RZO6VWD.js";
26
26
  import {
27
27
  canonicalJson
28
- } from "./chunk-OML4YFBN.js";
28
+ } from "./chunk-TWLWDIFB.js";
29
29
  import {
30
30
  writeFileAtomic
31
- } from "./chunk-AQFEP65J.js";
31
+ } from "./chunk-QENTGE75.js";
32
32
  import {
33
33
  getApiKey,
34
34
  getBaseUrl
35
- } from "./chunk-CQ5JGRML.js";
35
+ } from "./chunk-LVDC3RUE.js";
36
36
  import {
37
37
  ACTION_BODY_MAX,
38
38
  AGENTS,
@@ -66,7 +66,7 @@ import {
66
66
  toToolLookup,
67
67
  truncateLine,
68
68
  unansweredRefusalReason
69
- } from "./chunk-LF3TLC7B.js";
69
+ } from "./chunk-GZL3KEPC.js";
70
70
 
71
71
  // ../hook-mapping/src/describe.ts
72
72
  import { isAbsolute, relative, resolve } from "path";
@@ -2,7 +2,7 @@ import {
2
2
  DISCONNECT_AGENT_IDS,
3
3
  SETUP_AGENT_CHOICES,
4
4
  isApprovalMode
5
- } from "./chunk-LF3TLC7B.js";
5
+ } from "./chunk-GZL3KEPC.js";
6
6
 
7
7
  // src/cli/mode-request.ts
8
8
  var parseDuration = (value) => {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SubscriptionRequiredError,
3
3
  callMcpTool
4
- } from "./chunk-P2546BBI.js";
4
+ } from "./chunk-A54W5A74.js";
5
5
  import {
6
6
  CLIENT_REPORT_DISABLE_ENV,
7
7
  isDisabledByEnv
@@ -9,14 +9,14 @@ import {
9
9
  import {
10
10
  installNetworkDefaults,
11
11
  isNetworkFailure
12
- } from "./chunk-EK7SZJ4K.js";
12
+ } from "./chunk-HCIB4YNB.js";
13
13
  import {
14
14
  clientReportClaims
15
- } from "./chunk-OML4YFBN.js";
15
+ } from "./chunk-TWLWDIFB.js";
16
16
  import {
17
17
  getApiKey,
18
18
  getBaseUrl
19
- } from "./chunk-CQ5JGRML.js";
19
+ } from "./chunk-LVDC3RUE.js";
20
20
  import {
21
21
  ASK_AGENT_NAME_MAX,
22
22
  CLIENT_REPORT_PATH,
@@ -24,7 +24,7 @@ import {
24
24
  GATE_PERMISSION_MODE_MAX_LENGTH,
25
25
  degradedLine,
26
26
  truncateLine
27
- } from "./chunk-LF3TLC7B.js";
27
+ } from "./chunk-GZL3KEPC.js";
28
28
 
29
29
  // src/api.ts
30
30
  import { randomUUID } from "crypto";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  autoUpdateLock
3
- } from "./chunk-OML4YFBN.js";
3
+ } from "./chunk-TWLWDIFB.js";
4
4
  import {
5
5
  installPackageGlobally,
6
6
  npmErrorMessage
7
- } from "./chunk-XUW2DRAQ.js";
7
+ } from "./chunk-AEXACKDR.js";
8
8
  import {
9
9
  writeJsonAtomic
10
- } from "./chunk-AQFEP65J.js";
10
+ } from "./chunk-QENTGE75.js";
11
11
 
12
12
  // src/upgrade-lock.ts
13
13
  import { fork } from "child_process";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  configFilePath
3
- } from "./chunk-CQ5JGRML.js";
3
+ } from "./chunk-LVDC3RUE.js";
4
4
  import {
5
5
  normalizeInstallSource
6
- } from "./chunk-LF3TLC7B.js";
6
+ } from "./chunk-GZL3KEPC.js";
7
7
 
8
8
  // src/install-source.ts
9
9
  import { readFileSync } from "fs";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  keyCheckFromResponse
3
- } from "./chunk-L5YTS2BP.js";
3
+ } from "./chunk-FBKVCODG.js";
4
4
  import {
5
5
  installNetworkDefaults
6
- } from "./chunk-EK7SZJ4K.js";
6
+ } from "./chunk-HCIB4YNB.js";
7
7
  import {
8
8
  getBaseUrl
9
- } from "./chunk-CQ5JGRML.js";
9
+ } from "./chunk-LVDC3RUE.js";
10
10
 
11
11
  // src/retry.ts
12
12
  var isRetryable = (err) => {
@@ -360,9 +360,9 @@ var installGlobally = (options) => {
360
360
  }
361
361
  const started = (async () => {
362
362
  if (!npmIsOnPath()) throw new NpmMissingError();
363
- const { withUpgradeLock } = await import("./global-upgrade-AZN3BPI3.js");
364
- const { installWithUpgradeLock, ownsUpgradeLock } = await import("./upgrade-lock-AHISGKER.js");
365
- const { autoUpdateLock } = await import("./paths-X4IPV2WJ.js");
363
+ const { withUpgradeLock } = await import("./global-upgrade-SRCWQE7N.js");
364
+ const { installWithUpgradeLock, ownsUpgradeLock } = await import("./upgrade-lock-JXP27UKI.js");
365
+ const { autoUpdateLock } = await import("./paths-MUPQZNLG.js");
366
366
  let result = "skipped";
367
367
  const install = async () => {
368
368
  const platform = process.platform;
@@ -3,24 +3,24 @@ import {
3
3
  expectedLaunchCapabilities,
4
4
  hasSpawnProvider,
5
5
  resolveControlPolicy
6
- } from "./chunk-2LEH5IGX.js";
6
+ } from "./chunk-DDQRYX2L.js";
7
7
  import {
8
8
  daemonHasRemoteProof,
9
9
  daemonServiceManagerAvailable,
10
10
  hasDaemonServiceDefinition,
11
11
  readDaemonNeedsLogin,
12
12
  readDaemonStatus
13
- } from "./chunk-BL3WAGIK.js";
13
+ } from "./chunk-Z7Q36I4K.js";
14
14
  import {
15
15
  readControlMode,
16
16
  readKeySource
17
- } from "./chunk-VYBH6D4X.js";
17
+ } from "./chunk-IRZ5FVWG.js";
18
18
  import {
19
19
  getMachineId
20
- } from "./chunk-T6RIKJUO.js";
20
+ } from "./chunk-SQ5G6A6K.js";
21
21
  import {
22
22
  getBaseUrl
23
- } from "./chunk-CQ5JGRML.js";
23
+ } from "./chunk-LVDC3RUE.js";
24
24
  import {
25
25
  getPackageVersion
26
26
  } from "./chunk-QTOLNRET.js";
@@ -3,11 +3,11 @@ import {
3
3
  } from "./chunk-POFBE6ZY.js";
4
4
  import {
5
5
  autoUpdateState
6
- } from "./chunk-OML4YFBN.js";
6
+ } from "./chunk-TWLWDIFB.js";
7
7
  import {
8
8
  readJsonSafe,
9
9
  writeJsonAtomic
10
- } from "./chunk-AQFEP65J.js";
10
+ } from "./chunk-QENTGE75.js";
11
11
  import {
12
12
  CLI_PACKAGE_NAMES,
13
13
  POSIX_GLOBAL_ROOT_SEGMENTS,
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-QTOLNRET.js";
18
18
  import {
19
19
  isAutoUpdateResult
20
- } from "./chunk-LF3TLC7B.js";
20
+ } from "./chunk-GZL3KEPC.js";
21
21
 
22
22
  // src/auto-update.ts
23
23
  import { spawn } from "child_process";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readTranscriptPreference
3
- } from "./chunk-VYBH6D4X.js";
3
+ } from "./chunk-IRZ5FVWG.js";
4
4
 
5
5
  // src/transcript-setting.ts
6
6
  var transcriptEnvironmentPreference = () => {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-OML4YFBN.js";
3
+ } from "./chunk-TWLWDIFB.js";
4
4
  import {
5
5
  readJsonSafe
6
- } from "./chunk-AQFEP65J.js";
6
+ } from "./chunk-QENTGE75.js";
7
7
  import {
8
8
  isRecord
9
- } from "./chunk-LF3TLC7B.js";
9
+ } from "./chunk-GZL3KEPC.js";
10
10
 
11
11
  // src/process-ownership.ts
12
12
  import { createHash, randomUUID } from "crypto";
@@ -2,23 +2,23 @@ import {
2
2
  CLAUDE_HOOK_EVENTS,
3
3
  GEMINI_HOOK_EVENTS,
4
4
  hasGeminiHooks
5
- } from "./chunk-6C4S3QYD.js";
5
+ } from "./chunk-QQYUWTYS.js";
6
6
  import {
7
7
  AGENT_CHOICES
8
- } from "./chunk-BUXDR6US.js";
8
+ } from "./chunk-ECJJKDP7.js";
9
9
  import {
10
10
  BELL_HOOK_BINARY
11
- } from "./chunk-LIESRXK5.js";
11
+ } from "./chunk-YKYVDHIY.js";
12
12
  import {
13
13
  CODEX_HOOK_EVENTS,
14
14
  hasCodexHooks,
15
15
  holdBudgetOf
16
- } from "./chunk-OML4YFBN.js";
16
+ } from "./chunk-TWLWDIFB.js";
17
17
  import {
18
18
  CURSOR_GATE_EVENTS,
19
19
  HOOK_LOCATOR_BINARY,
20
20
  hookCommandHoldBudget
21
- } from "./chunk-LF3TLC7B.js";
21
+ } from "./chunk-GZL3KEPC.js";
22
22
 
23
23
  // src/diagnostics/bridge.ts
24
24
  import { execFileSync } from "child_process";
@@ -14,19 +14,19 @@ import {
14
14
  } from "./chunk-FO3MDD26.js";
15
15
  import {
16
16
  callMcpTool
17
- } from "./chunk-P2546BBI.js";
17
+ } from "./chunk-A54W5A74.js";
18
18
  import {
19
19
  reportedInstallSource
20
- } from "./chunk-4QQEUJL4.js";
20
+ } from "./chunk-7RZO6VWD.js";
21
21
  import {
22
22
  NPX_LATEST_COMMAND
23
- } from "./chunk-MC4VY5LK.js";
23
+ } from "./chunk-5SFM6XB4.js";
24
24
  import {
25
25
  NO_PAIRING_COMPUTER,
26
26
  PAIR_TTL_SECONDS,
27
27
  classifyConfirmResponse,
28
28
  isAnswerSource
29
- } from "./chunk-LF3TLC7B.js";
29
+ } from "./chunk-GZL3KEPC.js";
30
30
 
31
31
  // src/reach.ts
32
32
  var reachVerdict = (channels) => {
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  realpath
3
- } from "./chunk-RIVNNBEK.js";
3
+ } from "./chunk-LVWXRXT7.js";
4
+ import {
5
+ findNativeClaudeInstall
6
+ } from "./chunk-VUFHYMSP.js";
4
7
  import {
5
8
  readGlobalPrefixAsync,
6
9
  resolveGlobalBinary,
@@ -10,10 +13,13 @@ import {
10
13
  resolvePackageVersionFromBinary,
11
14
  resolvePathBinary,
12
15
  resolvePathBinaryAsync
13
- } from "./chunk-XUW2DRAQ.js";
16
+ } from "./chunk-AEXACKDR.js";
14
17
  import {
15
18
  MANAGED_PROVIDERS
16
- } from "./chunk-LF3TLC7B.js";
19
+ } from "./chunk-GZL3KEPC.js";
20
+
21
+ // src/live-capabilities.ts
22
+ import { homedir } from "os";
17
23
 
18
24
  // src/setup/codex-install-probe.ts
19
25
  import { existsSync, readdirSync, statSync } from "fs";
@@ -125,13 +131,19 @@ var missingControlPrerequisite = (input) => {
125
131
  if (!input.managerAvailable) return "service-manager";
126
132
  return null;
127
133
  };
134
+ var WHAT_REQUIRED_PHONE_START_LACKS = {
135
+ provider: "install and configure a supported Claude Code, Codex or Gemini provider",
136
+ "service-manager": "no native background-service manager is available in this OS session"
137
+ };
138
+ var describeMissingControlPrerequisite = (missing) => WHAT_REQUIRED_PHONE_START_LACKS[missing];
128
139
  var phoneStartIsRequired = (input) => input.mode === "on" || input.policy === "legacy" || input.lifecycleFailed;
129
140
  var preferGlobalProviderBinary = (platform) => platform === "win32";
130
- var resolveProviderBinary = (provider, platform = process.platform) => preferGlobalProviderBinary(platform) ? resolveGlobalBinary(provider) ?? resolvePathBinary(provider, platform) : resolvePathBinary(provider, platform) ?? resolveGlobalBinary(provider);
141
+ var nativeInstallOf = (provider, platform, home) => provider === "claude" ? findNativeClaudeInstall(home, platform) : void 0;
142
+ var resolveProviderBinary = (provider, platform = process.platform, home = homedir()) => (preferGlobalProviderBinary(platform) ? resolveGlobalBinary(provider) ?? resolvePathBinary(provider, platform) : resolvePathBinary(provider, platform) ?? resolveGlobalBinary(provider)) ?? nativeInstallOf(provider, platform, home);
131
143
  var codexBinaryIsBroken = (binary) => codexInstallHealthAt(binary).kind === "binary-missing";
132
- var detectCapabilities = (providers, codexCanStart) => {
144
+ var detectCapabilities = (providers, codexCanStart, home) => {
133
145
  const enabled = new Set(providers);
134
- const binaryFor = (provider) => enabled.has(provider) ? resolveProviderBinary(provider) : void 0;
146
+ const binaryFor = (provider) => enabled.has(provider) ? resolveProviderBinary(provider, process.platform, home) : void 0;
135
147
  const codexBin = binaryFor("codex");
136
148
  const geminiBin = binaryFor("gemini");
137
149
  return providerLiveCapabilities({
@@ -142,12 +154,12 @@ var detectCapabilities = (providers, codexCanStart) => {
142
154
  };
143
155
  var anyInstalledCodex = () => true;
144
156
  var codexWithItsProgram = (binary) => !codexBinaryIsBroken(binary);
145
- var detectProviderLiveCapabilities = (providers = MANAGED_PROVIDERS) => detectCapabilities(providers, anyInstalledCodex);
146
- var detectLaunchableProviderCapabilities = (providers = MANAGED_PROVIDERS) => detectCapabilities(providers, codexWithItsProgram);
157
+ var detectProviderLiveCapabilities = (providers = MANAGED_PROVIDERS, home = homedir()) => detectCapabilities(providers, anyInstalledCodex, home);
158
+ var detectLaunchableProviderCapabilities = (providers = MANAGED_PROVIDERS, home = homedir()) => detectCapabilities(providers, codexWithItsProgram, home);
147
159
  var SPAWN_CAPABILITY = "spawn";
148
160
  var launchAdvertisement = (launchable) => hasSpawnProvider(launchable) ? [SPAWN_CAPABILITY, ...launchable] : launchable;
149
- var expectedLaunchCapabilities = (providers = MANAGED_PROVIDERS) => launchAdvertisement(detectLaunchableProviderCapabilities(providers));
150
- var discoverProviderInventory = async (providers, signal, platform = process.platform) => {
161
+ var expectedLaunchCapabilities = (providers = MANAGED_PROVIDERS, home = homedir()) => launchAdvertisement(detectLaunchableProviderCapabilities(providers, home));
162
+ var discoverProviderInventory = async (providers, signal, platform = process.platform, home = homedir()) => {
151
163
  let prefix;
152
164
  const globalBinary = async (provider) => {
153
165
  const location = await (prefix ??= readGlobalPrefixAsync(signal));
@@ -155,7 +167,7 @@ var discoverProviderInventory = async (providers, signal, platform = process.pla
155
167
  };
156
168
  const findBinary = async (provider) => {
157
169
  const binary = preferGlobalProviderBinary(platform) ? await globalBinary(provider) ?? await resolvePathBinaryAsync(provider, signal, platform) : await resolvePathBinaryAsync(provider, signal, platform) ?? await globalBinary(provider);
158
- return [provider, binary];
170
+ return [provider, binary ?? nativeInstallOf(provider, platform, home)];
159
171
  };
160
172
  const found = await Promise.all([...new Set(providers)].map(findBinary));
161
173
  const binaries = {};
@@ -171,9 +183,10 @@ var discoverProviderInventory = async (providers, signal, platform = process.pla
171
183
  })
172
184
  };
173
185
  };
174
- var trackProviderInventory = async (providers, onChange) => {
186
+ var trackProviderInventory = async (providers, onChange, home = homedir()) => {
175
187
  const controller = new AbortController();
176
- let current = await discoverProviderInventory(providers, controller.signal);
188
+ const discover = () => discoverProviderInventory(providers, controller.signal, process.platform, home);
189
+ let current = await discover();
177
190
  let pending;
178
191
  const accept = (next) => {
179
192
  if (controller.signal.aborted) return;
@@ -182,7 +195,7 @@ var trackProviderInventory = async (providers, onChange) => {
182
195
  };
183
196
  const refresh = () => {
184
197
  if (controller.signal.aborted) return Promise.resolve();
185
- return pending ??= discoverProviderInventory(providers, controller.signal).then(accept).finally(() => {
198
+ return pending ??= discover().then(accept).finally(() => {
186
199
  pending = void 0;
187
200
  });
188
201
  };
@@ -206,6 +219,7 @@ export {
206
219
  hasSpawnProvider,
207
220
  resolveControlPolicy,
208
221
  missingControlPrerequisite,
222
+ describeMissingControlPrerequisite,
209
223
  phoneStartIsRequired,
210
224
  resolveProviderBinary,
211
225
  codexBinaryIsBroken,
@@ -4,30 +4,30 @@ import {
4
4
  postLiveSession,
5
5
  postLiveSessionUntilAccepted,
6
6
  startLiveSessionHeartbeat
7
- } from "./chunk-UVT6B6XN.js";
7
+ } from "./chunk-IUOUNRLH.js";
8
8
  import {
9
9
  SESSION_IDLE_TIMEOUT_MS,
10
10
  describeIdleWindow,
11
11
  idleDeadlinePassed,
12
12
  startProcessOwnership
13
- } from "./chunk-56ZTIY6D.js";
13
+ } from "./chunk-CB565EVO.js";
14
14
  import {
15
15
  spawnClaude
16
16
  } from "./chunk-XHKBHWLX.js";
17
17
  import {
18
18
  repoKeyFor
19
- } from "./chunk-JBT3ZSJS.js";
19
+ } from "./chunk-XXNT4FGA.js";
20
20
  import {
21
21
  isAskUserResponse,
22
22
  isDecisionStopped,
23
23
  isWaitForAnswerResponse,
24
24
  withdrawQuestion,
25
25
  writeDegraded
26
- } from "./chunk-ZMPR436Z.js";
26
+ } from "./chunk-6QM54CSJ.js";
27
27
  import {
28
28
  callMcpTool,
29
29
  isRetryable
30
- } from "./chunk-P2546BBI.js";
30
+ } from "./chunk-A54W5A74.js";
31
31
  import {
32
32
  AGENT_QUESTION_DESCRIPTION_MAX,
33
33
  AGENT_QUESTION_HEADER_MAX,
@@ -48,7 +48,7 @@ import {
48
48
  parseCodexQuestions,
49
49
  planElicitationAsk,
50
50
  readElicitationFields
51
- } from "./chunk-LF3TLC7B.js";
51
+ } from "./chunk-GZL3KEPC.js";
52
52
 
53
53
  // src/codex-question-owner.ts
54
54
  import { createHash } from "crypto";
@@ -10,7 +10,7 @@ import {
10
10
  isSetupConnectMode,
11
11
  isValidApiKey,
12
12
  normalizeAgentId
13
- } from "./chunk-LF3TLC7B.js";
13
+ } from "./chunk-GZL3KEPC.js";
14
14
 
15
15
  // src/setup/options.ts
16
16
  var AGENT_CHOICES = SETUP_AGENT_CHOICES;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyFetch
3
- } from "./chunk-EK7SZJ4K.js";
3
+ } from "./chunk-HCIB4YNB.js";
4
4
  import {
5
5
  NetworkError
6
6
  } from "./chunk-7QLSKOSU.js";
@@ -9,11 +9,11 @@ import {
9
9
  } from "./chunk-KZERVKTD.js";
10
10
  import {
11
11
  getBaseUrl
12
- } from "./chunk-CQ5JGRML.js";
12
+ } from "./chunk-LVDC3RUE.js";
13
13
  import {
14
14
  isValidApiKey,
15
15
  normalizeKeyScope
16
- } from "./chunk-LF3TLC7B.js";
16
+ } from "./chunk-GZL3KEPC.js";
17
17
 
18
18
  // src/session.ts
19
19
  var samePusharyAccount = (left, right) => left.kind === "ok" && right.kind === "ok" && left.identity.workspaceId !== "" && left.identity.workspaceId === right.identity.workspaceId && left.identity.siteId === right.identity.siteId;
@@ -1,17 +1,15 @@
1
+ import {
2
+ findNativeClaudeInstall
3
+ } from "./chunk-VUFHYMSP.js";
4
+ import {
5
+ isFile
6
+ } from "./chunk-QENTGE75.js";
7
+
1
8
  // src/wrapper/claudeBinary.ts
2
- import { statSync } from "fs";
9
+ import { homedir } from "os";
3
10
  import { join, delimiter } from "path";
4
11
  var WRAPPER_ACTIVE_ENV = "PUSHARY_WRAPPER_ACTIVE";
5
- var isFile = (path) => {
6
- try {
7
- return statSync(path).isFile();
8
- } catch {
9
- return false;
10
- }
11
- };
12
- var findClaudeBinary = () => {
13
- const override = process.env.PUSHARY_CLAUDE_BIN?.trim();
14
- if (override) return isFile(override) ? override : null;
12
+ var firstClaudeOnPath = () => {
15
13
  const pathVar = process.env.PATH ?? "";
16
14
  const exts = process.platform === "win32" ? [".cmd", ".exe", ".bat", ""] : [""];
17
15
  for (const dir of pathVar.split(delimiter)) {
@@ -21,7 +19,12 @@ var findClaudeBinary = () => {
21
19
  if (isFile(candidate)) return candidate;
22
20
  }
23
21
  }
24
- return null;
22
+ return void 0;
23
+ };
24
+ var findClaudeBinary = (home = homedir()) => {
25
+ const override = process.env.PUSHARY_CLAUDE_BIN?.trim();
26
+ if (override) return isFile(override) ? override : null;
27
+ return firstClaudeOnPath() ?? findNativeClaudeInstall(home) ?? null;
25
28
  };
26
29
 
27
30
  export {