pushary 1.9.54 → 1.9.56

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 +20 -0
  2. package/dist/{api-K6ZROHYB.js → api-JHBUZ7CV.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 +47 -40
  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 +90 -60
  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-EK7SZJ4K.js → chunk-32MSOGMD.js} +3 -3
  44. package/dist/{chunk-LIESRXK5.js → chunk-4OXULVUA.js} +1 -1
  45. package/dist/{chunk-FV34HT35.js → chunk-4US3BCQJ.js} +1 -1
  46. package/dist/{chunk-OML4YFBN.js → chunk-57EOP757.js} +2 -2
  47. package/dist/{chunk-NSY2V7XU.js → chunk-5HMYW5W2.js} +1 -1
  48. package/dist/{chunk-L5YTS2BP.js → chunk-5HRXOANL.js} +3 -3
  49. package/dist/{chunk-IHUFRAHB.js → chunk-6PUHW2FP.js} +4 -4
  50. package/dist/{chunk-FCMWUYIE.js → chunk-6U3L4K57.js} +2 -2
  51. package/dist/{chunk-U2L42GVI.js → chunk-724266XT.js} +10 -10
  52. package/dist/{chunk-Q7OXI6VS.js → chunk-74DKFWU2.js} +5 -5
  53. package/dist/{chunk-RIVNNBEK.js → chunk-7QAL23TB.js} +27 -12
  54. package/dist/{chunk-RL7EOD6I.js → chunk-AKBFNTJF.js} +11 -11
  55. package/dist/{chunk-56ZTIY6D.js → chunk-AKFTQT7P.js} +3 -3
  56. package/dist/{chunk-JOWF4Y4P.js → chunk-DFZTZRKL.js} +4 -4
  57. package/dist/{chunk-BL3WAGIK.js → chunk-DUACX6E3.js} +7 -7
  58. package/dist/{chunk-2LEH5IGX.js → chunk-DWV3LTUH.js} +28 -14
  59. package/dist/{chunk-XZRLFBEA.js → chunk-ECQNBLPS.js} +51 -15
  60. package/dist/{chunk-H57DXSHR.js → chunk-FBFPQLJG.js} +3 -3
  61. package/dist/{chunk-VQPSWD3A.js → chunk-FFGW45DJ.js} +10 -10
  62. package/dist/{chunk-NECZKPJN.js → chunk-FJ7ZMR4N.js} +5 -5
  63. package/dist/{chunk-7CLLWDCP.js → chunk-FLUKEZMH.js} +1 -1
  64. package/dist/{chunk-PQ4K74WL.js → chunk-FVERRWDP.js} +15 -12
  65. package/dist/{chunk-5463UUO2.js → chunk-FXW3FW4A.js} +1 -1
  66. package/dist/{chunk-3RPN7AAT.js → chunk-G63LBV4Y.js} +1 -1
  67. package/dist/{chunk-MTKV4RUQ.js → chunk-GWQ6T6JV.js} +6 -6
  68. package/dist/{chunk-NHVEQLQC.js → chunk-HR3DJWP2.js} +2 -2
  69. package/dist/{chunk-ZWOWEXCV.js → chunk-HTN7SMKB.js} +10 -7
  70. package/dist/{chunk-RH6KR6EH.js → chunk-I6OGFHJT.js} +5 -5
  71. package/dist/{chunk-XDCXTDHH.js → chunk-ILQARYXK.js} +5 -5
  72. package/dist/{chunk-ZMPR436Z.js → chunk-J5HQNZXQ.js} +5 -5
  73. package/dist/{chunk-NELH25J7.js → chunk-JPTFFZWY.js} +11 -11
  74. package/dist/{chunk-XSUJ2PQY.js → chunk-JSS5RG65.js} +3 -3
  75. package/dist/{chunk-K23WMLPY.js → chunk-JTQHC3RV.js} +6 -6
  76. package/dist/{chunk-EPOD7QHT.js → chunk-KWAOOXSD.js} +12 -9
  77. package/dist/{chunk-S6RNS4UL.js → chunk-L66VPBS5.js} +1 -1
  78. package/dist/{chunk-46TC24ET.js → chunk-LTCNAIY2.js} +2 -2
  79. package/dist/{chunk-GCN73COS.js → chunk-LW4ZEC3A.js} +1 -1
  80. package/dist/{chunk-UVT6B6XN.js → chunk-M6DTXZQK.js} +2 -2
  81. package/dist/{chunk-FI73DGNB.js → chunk-M7ZXKMVX.js} +1 -1
  82. package/dist/{chunk-JPABKXK6.js → chunk-MVW5WS6F.js} +6 -6
  83. package/dist/{chunk-LD4MWJMD.js → chunk-MW3DD3S5.js} +6 -6
  84. package/dist/{chunk-CQ5JGRML.js → chunk-MWBFB7WA.js} +1 -1
  85. package/dist/{chunk-63IQRYVP.js → chunk-OCYOOGXW.js} +4 -4
  86. package/dist/{chunk-ONCWYACA.js → chunk-OX5EYBOC.js} +1 -1
  87. package/dist/{chunk-ALZZVC3E.js → chunk-PI2WWZQQ.js} +3 -3
  88. package/dist/{chunk-AQFEP65J.js → chunk-QENTGE75.js} +10 -1
  89. package/dist/{chunk-DWQYCOPI.js → chunk-QW3FRUFB.js} +1 -1
  90. package/dist/{chunk-QKU46TK5.js → chunk-QWUWQBIJ.js} +3 -3
  91. package/dist/{chunk-T5L5NWT3.js → chunk-RZF2GIPI.js} +2 -2
  92. package/dist/{chunk-JBT3ZSJS.js → chunk-S3CQBNUU.js} +1 -1
  93. package/dist/{chunk-DHJSBK63.js → chunk-SM2DT5KP.js} +1 -1
  94. package/dist/{chunk-T6RIKJUO.js → chunk-SMMDQXI2.js} +2 -2
  95. package/dist/{chunk-MC4VY5LK.js → chunk-T4IAMIX4.js} +1 -1
  96. package/dist/{chunk-XUW2DRAQ.js → chunk-T6GEEMVC.js} +3 -3
  97. package/dist/{chunk-6SWMKF5E.js → chunk-V2AMLVMD.js} +2 -2
  98. package/dist/{chunk-MHQB62K5.js → chunk-VRPDHJGB.js} +5 -5
  99. package/dist/chunk-VUFHYMSP.js +32 -0
  100. package/dist/{chunk-6C4S3QYD.js → chunk-VZ3YPEMG.js} +3 -3
  101. package/dist/{chunk-P2546BBI.js → chunk-WCPN3GVW.js} +3 -3
  102. package/dist/{chunk-N77BH7H2.js → chunk-WNVQPGLH.js} +4 -4
  103. package/dist/{chunk-4QQEUJL4.js → chunk-WW266XKU.js} +2 -2
  104. package/dist/{chunk-ZOP3I2GQ.js → chunk-X5FHQMUL.js} +3 -3
  105. package/dist/{chunk-VYBH6D4X.js → chunk-YBE2KH2U.js} +4 -4
  106. package/dist/{chunk-BUXDR6US.js → chunk-ZMRO6ESW.js} +1 -1
  107. package/dist/{codex-app-cards-switch-P4RVJNRV.js → codex-app-cards-switch-7UIGMEUE.js} +12 -12
  108. package/dist/{codex-desktop-launch-RIBIFXSF.js → codex-desktop-launch-66LZ6R4Y.js} +1 -1
  109. package/dist/{codex-session-launch-KLH2FSSJ.js → codex-session-launch-3TGHFR7R.js} +20 -19
  110. package/dist/{config-HX6ZNOIL.js → config-OBDZ2CL3.js} +3 -3
  111. package/dist/{global-upgrade-AZN3BPI3.js → global-upgrade-6M2UXUUL.js} +8 -8
  112. package/dist/{identity-AQIMUWYN.js → identity-WJUPU3AK.js} +5 -5
  113. package/dist/{live-capabilities-4IIFAMHU.js → live-capabilities-GACO2VB6.js} +8 -4
  114. package/dist/{paths-X4IPV2WJ.js → paths-5PWAQF63.js} +3 -3
  115. package/dist/{reapply-CXODG53B.js → reapply-EYPT5EP2.js} +28 -27
  116. package/dist/src/index.js +22 -22
  117. package/dist/{upgrade-lock-AHISGKER.js → upgrade-lock-G2ZPV7ZO.js} +5 -5
  118. package/dist/{usage-ZC6BKIE3.js → usage-PXBMEKSA.js} +3 -3
  119. package/package.json +1 -1
  120. /package/dist/{chunk-LF3TLC7B.js → chunk-WACFIQYA.js} +0 -0
@@ -1,25 +1,25 @@
1
1
  import {
2
2
  MCP_BRIDGE_BINARY
3
- } from "./chunk-46TC24ET.js";
3
+ } from "./chunk-LTCNAIY2.js";
4
4
  import {
5
5
  KEY_FILE_MODE
6
- } from "./chunk-VYBH6D4X.js";
6
+ } from "./chunk-YBE2KH2U.js";
7
7
  import {
8
8
  NpmInstallError,
9
9
  NpmMissingError,
10
10
  NpmPermissionError
11
- } from "./chunk-XUW2DRAQ.js";
11
+ } from "./chunk-T6GEEMVC.js";
12
12
  import {
13
13
  readJsonSafe,
14
14
  writeFileAtomic,
15
15
  writeJsonAtomic
16
- } from "./chunk-AQFEP65J.js";
16
+ } from "./chunk-QENTGE75.js";
17
17
  import {
18
18
  NPX_LATEST_COMMAND
19
- } from "./chunk-MC4VY5LK.js";
19
+ } from "./chunk-T4IAMIX4.js";
20
20
  import {
21
21
  readSetupAgentFailures
22
- } from "./chunk-LF3TLC7B.js";
22
+ } from "./chunk-WACFIQYA.js";
23
23
 
24
24
  // src/instruction-file.ts
25
25
  import { accessSync, constants, existsSync, readFileSync, statSync, writeFileSync, mkdirSync, rmSync } from "fs";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  CODEX_HOOK_STATUS
3
- } from "./chunk-FCMWUYIE.js";
3
+ } from "./chunk-6U3L4K57.js";
4
4
  import {
5
5
  NPX_LATEST_COMMAND
6
- } from "./chunk-MC4VY5LK.js";
6
+ } from "./chunk-T4IAMIX4.js";
7
7
 
8
8
  // src/setup/codex-trust.ts
9
9
  var CODEX_TRUST_TELEMETRY = {
@@ -1,31 +1,32 @@
1
1
  import {
2
2
  codexAppOnThisMac,
3
+ codexEngineBehindLauncher,
3
4
  codexPassThroughScript,
4
5
  desktopEngine,
5
6
  desktopProxyScript,
6
7
  everyProgramFileIsThere,
7
8
  installedCodexApp,
8
9
  shellQuoted
9
- } from "./chunk-T5L5NWT3.js";
10
+ } from "./chunk-RZF2GIPI.js";
10
11
  import {
11
12
  writeHuman
12
13
  } from "./chunk-QCGNGEGE.js";
13
14
  import {
14
15
  xml
15
- } from "./chunk-BL3WAGIK.js";
16
+ } from "./chunk-DUACX6E3.js";
16
17
  import {
17
18
  CODEX_APP_LAUNCH_AT_LOGIN_VERB,
18
19
  CODEX_APP_LAUNCH_VARIABLE
19
20
  } from "./chunk-E46NE7FB.js";
20
21
  import {
21
22
  writeFileAtomic
22
- } from "./chunk-AQFEP65J.js";
23
+ } from "./chunk-QENTGE75.js";
23
24
 
24
25
  // src/codex-app-cards-switch.ts
25
26
  import { execFileSync as execFileSync2 } from "child_process";
26
27
  import { existsSync as existsSync2, mkdirSync, readFileSync, rmSync } from "fs";
27
28
  import { homedir as homedir2 } from "os";
28
- import { join as join2 } from "path";
29
+ import { isAbsolute as isAbsolute2, join as join2 } from "path";
29
30
 
30
31
  // src/cli/mac-leftovers.ts
31
32
  import { execSync, execFileSync } from "child_process";
@@ -273,7 +274,7 @@ var codexAppCardsReceiptFrom = (contents) => {
273
274
  }
274
275
  if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) return null;
275
276
  const { entry, app, engine } = parsed;
276
- return Array.isArray(entry) && entry.length > 0 && entry.every(isAString) && isAString(app) && isAString(engine) ? { entry, app, engine } : null;
277
+ return Array.isArray(entry) && entry.length > 0 && entry.every(isAString) && isAString(app) && isAString(engine) && isAbsolute2(engine) ? { entry, app, engine } : null;
277
278
  };
278
279
  var codexAppCardsInstallation = (input) => {
279
280
  const paths = codexAppCardsPaths(input.homeDir, input.uid);
@@ -327,8 +328,10 @@ var setCodexAppLaunchAtLogin = (paths, machine) => {
327
328
  var leaveOnlyThePathToTheEngine = (paths, machine) => {
328
329
  const receipt = codexAppCardsReceiptFrom(machine.readFile(paths.receiptPath));
329
330
  const launcher = machine.readFile(paths.launcherPath);
330
- if (receipt === null || launcher === null) return;
331
- const onlyThePathToTheEngine = codexPassThroughScript(receipt.engine);
331
+ if (launcher === null) return;
332
+ const engine = receipt?.engine ?? codexEngineBehindLauncher(launcher);
333
+ if (engine === null) return;
334
+ const onlyThePathToTheEngine = codexPassThroughScript(engine);
332
335
  if (launcher !== onlyThePathToTheEngine) machine.writeFile(paths.launcherPath, onlyThePathToTheEngine, PRIVATE_PROGRAM_MODE);
333
336
  };
334
337
  var turnCodexAppCardsOff = (paths, machine) => {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  APPROVAL_SETTINGS_PATH
3
- } from "./chunk-JOWF4Y4P.js";
3
+ } from "./chunk-DFZTZRKL.js";
4
4
  import {
5
5
  readMacAppAgentKey
6
- } from "./chunk-MHQB62K5.js";
6
+ } from "./chunk-VRPDHJGB.js";
7
7
  import {
8
8
  findExportedKeyLines,
9
9
  isAdoptedMacAppKey,
@@ -13,13 +13,13 @@ import {
13
13
  readConfigFileKey,
14
14
  readKeySource,
15
15
  readMacAppKeyPrefix
16
- } from "./chunk-VYBH6D4X.js";
16
+ } from "./chunk-YBE2KH2U.js";
17
17
  import {
18
18
  absoluteUrl
19
- } from "./chunk-L5YTS2BP.js";
19
+ } from "./chunk-5HRXOANL.js";
20
20
  import {
21
21
  isValidApiKey
22
- } from "./chunk-LF3TLC7B.js";
22
+ } from "./chunk-WACFIQYA.js";
23
23
 
24
24
  // src/key-revocation.ts
25
25
  var SELF_REVOKE_PATH = "/api/v1/server/keys/self/revoke";
@@ -3,24 +3,24 @@ import {
3
3
  expectedLaunchCapabilities,
4
4
  hasSpawnProvider,
5
5
  resolveControlPolicy
6
- } from "./chunk-2LEH5IGX.js";
6
+ } from "./chunk-DWV3LTUH.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-DUACX6E3.js";
14
14
  import {
15
15
  readControlMode,
16
16
  readKeySource
17
- } from "./chunk-VYBH6D4X.js";
17
+ } from "./chunk-YBE2KH2U.js";
18
18
  import {
19
19
  getMachineId
20
- } from "./chunk-T6RIKJUO.js";
20
+ } from "./chunk-SMMDQXI2.js";
21
21
  import {
22
22
  getBaseUrl
23
- } from "./chunk-CQ5JGRML.js";
23
+ } from "./chunk-MWBFB7WA.js";
24
24
  import {
25
25
  getPackageVersion
26
26
  } from "./chunk-QTOLNRET.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SubscriptionRequiredError,
3
3
  callMcpTool
4
- } from "./chunk-P2546BBI.js";
4
+ } from "./chunk-WCPN3GVW.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-32MSOGMD.js";
13
13
  import {
14
14
  clientReportClaims
15
- } from "./chunk-OML4YFBN.js";
15
+ } from "./chunk-57EOP757.js";
16
16
  import {
17
17
  getApiKey,
18
18
  getBaseUrl
19
- } from "./chunk-CQ5JGRML.js";
19
+ } from "./chunk-MWBFB7WA.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-WACFIQYA.js";
28
28
 
29
29
  // src/api.ts
30
30
  import { randomUUID } from "crypto";
@@ -4,19 +4,19 @@ import {
4
4
  outcomeOfFailedAsk,
5
5
  reportMachineDenial,
6
6
  storedWaitDeadline
7
- } from "./chunk-JPABKXK6.js";
7
+ } from "./chunk-MVW5WS6F.js";
8
8
  import {
9
9
  isGatingMoment,
10
10
  recordKeylessMoment
11
- } from "./chunk-7CLLWDCP.js";
11
+ } from "./chunk-FLUKEZMH.js";
12
12
  import {
13
13
  isDeferAnswer,
14
14
  oncePerSession
15
- } from "./chunk-DHJSBK63.js";
15
+ } from "./chunk-SM2DT5KP.js";
16
16
  import {
17
17
  activeHookSource,
18
18
  activeIdentity
19
- } from "./chunk-N77BH7H2.js";
19
+ } from "./chunk-WNVQPGLH.js";
20
20
  import {
21
21
  DEFAULT_SESSION,
22
22
  UNNAMED_ACTION,
@@ -40,10 +40,10 @@ import {
40
40
  reportEvent,
41
41
  scopePathFor,
42
42
  settleQuestionsForToolUse
43
- } from "./chunk-U2L42GVI.js";
43
+ } from "./chunk-724266XT.js";
44
44
  import {
45
45
  repoKeyFor
46
- } from "./chunk-JBT3ZSJS.js";
46
+ } from "./chunk-S3CQBNUU.js";
47
47
  import {
48
48
  askUser,
49
49
  cancelQuestion,
@@ -56,17 +56,17 @@ import {
56
56
  sendNotification,
57
57
  waitForQuestion,
58
58
  waitsForThePhone
59
- } from "./chunk-ZMPR436Z.js";
59
+ } from "./chunk-J5HQNZXQ.js";
60
60
  import {
61
61
  getMachineId
62
- } from "./chunk-T6RIKJUO.js";
62
+ } from "./chunk-SMMDQXI2.js";
63
63
  import {
64
64
  getApiKey,
65
65
  getBaseUrl
66
- } from "./chunk-CQ5JGRML.js";
66
+ } from "./chunk-MWBFB7WA.js";
67
67
  import {
68
68
  NPX_LATEST_COMMAND
69
- } from "./chunk-MC4VY5LK.js";
69
+ } from "./chunk-T4IAMIX4.js";
70
70
  import {
71
71
  AGENT_QUESTION_STRATEGY,
72
72
  AGENT_QUESTION_TOOL,
@@ -111,7 +111,7 @@ import {
111
111
  resolveGate,
112
112
  timeoutActionWithoutLocalPrompt,
113
113
  unansweredRefusalReason
114
- } from "./chunk-LF3TLC7B.js";
114
+ } from "./chunk-WACFIQYA.js";
115
115
 
116
116
  // src/claude-permission-rules.ts
117
117
  import { readFileSync, statSync } from "fs";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  readJsonSafe,
3
3
  writeJsonAtomic
4
- } from "./chunk-AQFEP65J.js";
4
+ } from "./chunk-QENTGE75.js";
5
5
  import {
6
6
  configFilePath
7
- } from "./chunk-CQ5JGRML.js";
7
+ } from "./chunk-MWBFB7WA.js";
8
8
  import {
9
9
  readSetupOutcomeProperties
10
- } from "./chunk-LF3TLC7B.js";
10
+ } from "./chunk-WACFIQYA.js";
11
11
 
12
12
  // src/hooks-spec.ts
13
13
  var CURSOR_GATE_SCRIPT = "pushary-gate.mjs";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  compatibleConfigFile
3
- } from "./chunk-N77BH7H2.js";
3
+ } from "./chunk-WNVQPGLH.js";
4
4
  import {
5
5
  hookOwnerOf,
6
6
  hookOwnerOfCommands,
7
7
  liveBridgeProbe,
8
8
  resolveBridgeStub
9
- } from "./chunk-Q7OXI6VS.js";
9
+ } from "./chunk-74DKFWU2.js";
10
10
  import {
11
11
  AGENT_CHOICES
12
- } from "./chunk-BUXDR6US.js";
12
+ } from "./chunk-ZMRO6ESW.js";
13
13
  import {
14
14
  claudeSettings,
15
15
  codexHooksJson,
@@ -18,10 +18,10 @@ import {
18
18
  guardedArgv,
19
19
  pusharyDir,
20
20
  vscodePluginDir
21
- } from "./chunk-OML4YFBN.js";
21
+ } from "./chunk-57EOP757.js";
22
22
  import {
23
23
  readJsonSafe
24
- } from "./chunk-AQFEP65J.js";
24
+ } from "./chunk-QENTGE75.js";
25
25
  import {
26
26
  HOOK_BUDGETS,
27
27
  HOOK_COMPATIBLE_PROFILES,
@@ -29,7 +29,7 @@ import {
29
29
  OPENCODE_APPROVAL_EVENT,
30
30
  hookCompatibleProfile,
31
31
  isRecord
32
- } from "./chunk-LF3TLC7B.js";
32
+ } from "./chunk-WACFIQYA.js";
33
33
 
34
34
  // src/opencode-plugin.ts
35
35
  var OPENCODE_PLUGIN_MARKER = "pushary-opencode-plugin w1";
@@ -1,18 +1,21 @@
1
1
  import {
2
2
  openCodeConfigDirFrom
3
- } from "./chunk-K23WMLPY.js";
3
+ } from "./chunk-JTQHC3RV.js";
4
+ import {
5
+ nativeClaudeInstallPath
6
+ } from "./chunk-VUFHYMSP.js";
4
7
  import {
5
8
  grokHome
6
- } from "./chunk-N77BH7H2.js";
9
+ } from "./chunk-WNVQPGLH.js";
7
10
  import {
8
11
  codexHomeFrom
9
- } from "./chunk-OML4YFBN.js";
12
+ } from "./chunk-57EOP757.js";
10
13
  import {
11
14
  resolvePathBinary
12
- } from "./chunk-XUW2DRAQ.js";
15
+ } from "./chunk-T6GEEMVC.js";
13
16
  import {
14
17
  HOOK_COMPATIBLE_PROFILES
15
- } from "./chunk-LF3TLC7B.js";
18
+ } from "./chunk-WACFIQYA.js";
16
19
 
17
20
  // src/hermes-config.ts
18
21
  import { execFileSync } from "child_process";
@@ -502,11 +505,11 @@ var detectAgent = (probe, deps = defaultDeps) => {
502
505
  }
503
506
  return { kind: "not-found", checked };
504
507
  };
505
- var agentProbes = (home = homedir3()) => ({
508
+ var agentProbes = (home = homedir3(), platform = process.platform) => ({
506
509
  claude_code: {
507
510
  binary: "claude",
508
511
  // The native installer puts it here, outside a default non-login PATH.
509
- paths: [join3(home, ".local", "bin", "claude")],
512
+ paths: [nativeClaudeInstallPath(home, platform)],
510
513
  configMarkers: [join3(home, ".claude")]
511
514
  },
512
515
  codex: {
@@ -528,14 +531,14 @@ var agentProbes = (home = homedir3()) => ({
528
531
  // GUI editor. `cursor` on PATH only exists if the user ran "Install 'cursor'
529
532
  // command in PATH" from the command palette, which most never do.
530
533
  binary: "cursor",
531
- paths: process.platform === "darwin" ? ["/Applications/Cursor.app"] : process.platform === "win32" ? [join3(process.env.LOCALAPPDATA ?? join3(home, "AppData", "Local"), "Programs", "cursor")] : ["/usr/share/cursor", join3(home, ".local", "share", "cursor")],
534
+ paths: platform === "darwin" ? ["/Applications/Cursor.app"] : platform === "win32" ? [join3(process.env.LOCALAPPDATA ?? join3(home, "AppData", "Local"), "Programs", "cursor")] : ["/usr/share/cursor", join3(home, ".local", "share", "cursor")],
532
535
  configMarkers: [join3(home, ".cursor")]
533
536
  },
534
537
  vscode: {
535
538
  // Like Cursor, a GUI editor: `code` on PATH only exists if the user ran
536
539
  // "Shell Command: Install 'code' command in PATH", which on macOS is opt-in.
537
540
  binary: "code",
538
- paths: process.platform === "darwin" ? ["/Applications/Visual Studio Code.app"] : process.platform === "win32" ? [join3(process.env.LOCALAPPDATA ?? join3(home, "AppData", "Local"), "Programs", "Microsoft VS Code")] : ["/usr/share/code", join3(home, ".local", "share", "code")],
541
+ paths: platform === "darwin" ? ["/Applications/Visual Studio Code.app"] : platform === "win32" ? [join3(process.env.LOCALAPPDATA ?? join3(home, "AppData", "Local"), "Programs", "Microsoft VS Code")] : ["/usr/share/code", join3(home, ".local", "share", "code")],
539
542
  // The settings directory rather than ~/.vscode, because the settings
540
543
  // directory is what this installer actually writes to. Insiders counts:
541
544
  // someone running only Insiders still has VS Code.
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-KZERVKTD.js";
4
4
  import {
5
5
  renderCommandHelp
6
- } from "./chunk-MC4VY5LK.js";
6
+ } from "./chunk-T4IAMIX4.js";
7
7
  import {
8
8
  getPackageVersion
9
9
  } from "./chunk-QTOLNRET.js";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  parseSseMessages
3
- } from "./chunk-P2546BBI.js";
3
+ } from "./chunk-WCPN3GVW.js";
4
4
  import {
5
5
  NPX_LATEST_COMMAND
6
- } from "./chunk-MC4VY5LK.js";
6
+ } from "./chunk-T4IAMIX4.js";
7
7
 
8
8
  // src/mcp-stdio-bridge.ts
9
9
  var MCP_BRIDGE_BINARY = "pushary-mcp";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getBaseUrl
3
- } from "./chunk-CQ5JGRML.js";
3
+ } from "./chunk-MWBFB7WA.js";
4
4
 
5
5
  // src/transcript-api.ts
6
6
  var fetchTranscriptRecipients = async (apiKey, baseUrl = getBaseUrl()) => {
@@ -3,11 +3,11 @@ import {
3
3
  decodePublicKey,
4
4
  generateSessionKey,
5
5
  wrapSessionKey
6
- } from "./chunk-5463UUO2.js";
6
+ } from "./chunk-FXW3FW4A.js";
7
7
  import {
8
8
  fetchTranscriptRecipients,
9
9
  uploadTranscriptRecords
10
- } from "./chunk-GCN73COS.js";
10
+ } from "./chunk-LW4ZEC3A.js";
11
11
 
12
12
  // src/live-session.ts
13
13
  var MAX_TRANSCRIPT_QUEUE = 100;
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-3EGEA4KH.js";
10
10
  import {
11
11
  getBaseUrl
12
- } from "./chunk-CQ5JGRML.js";
12
+ } from "./chunk-MWBFB7WA.js";
13
13
 
14
14
  // src/cli/login-ui.ts
15
15
  import { hostname } from "os";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  announceSubscriptionRequired,
3
3
  isDeferAnswer
4
- } from "./chunk-DHJSBK63.js";
4
+ } from "./chunk-SM2DT5KP.js";
5
5
  import {
6
6
  AUTO_DECISION_WINDOW_MS,
7
7
  DEFAULT_SESSION,
@@ -10,24 +10,24 @@ import {
10
10
  permissionDeniedAction,
11
11
  releaseThrottle,
12
12
  reportEvent
13
- } from "./chunk-U2L42GVI.js";
13
+ } from "./chunk-724266XT.js";
14
14
  import {
15
15
  askUser,
16
16
  isDecisionStopped,
17
17
  waitForQuestion
18
- } from "./chunk-ZMPR436Z.js";
18
+ } from "./chunk-J5HQNZXQ.js";
19
19
  import {
20
20
  SubscriptionRequiredError
21
- } from "./chunk-P2546BBI.js";
21
+ } from "./chunk-WCPN3GVW.js";
22
22
  import {
23
23
  getMachineId
24
- } from "./chunk-T6RIKJUO.js";
24
+ } from "./chunk-SMMDQXI2.js";
25
25
  import {
26
26
  machineDecisionFor,
27
27
  parseAgentQuestionAnswers,
28
28
  shouldDeferToNativeMode,
29
29
  wireVerdictFor
30
- } from "./chunk-LF3TLC7B.js";
30
+ } from "./chunk-WACFIQYA.js";
31
31
 
32
32
  // src/machine-decision-audit.ts
33
33
  import { basename } from "path";
@@ -4,30 +4,30 @@ import {
4
4
  postLiveSession,
5
5
  postLiveSessionUntilAccepted,
6
6
  startLiveSessionHeartbeat
7
- } from "./chunk-UVT6B6XN.js";
7
+ } from "./chunk-M6DTXZQK.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-AKFTQT7P.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-S3CQBNUU.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-J5HQNZXQ.js";
27
27
  import {
28
28
  callMcpTool,
29
29
  isRetryable
30
- } from "./chunk-P2546BBI.js";
30
+ } from "./chunk-WCPN3GVW.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-WACFIQYA.js";
52
52
 
53
53
  // src/codex-question-owner.ts
54
54
  import { createHash } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  NPX_LATEST_COMMAND
3
- } from "./chunk-MC4VY5LK.js";
3
+ } from "./chunk-T4IAMIX4.js";
4
4
 
5
5
  // src/config.ts
6
6
  import { readFileSync } from "fs";
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  compatibleConfigFile,
3
3
  hasCompatibleHooks
4
- } from "./chunk-N77BH7H2.js";
4
+ } from "./chunk-WNVQPGLH.js";
5
5
  import {
6
6
  pusharyHookExecutable
7
- } from "./chunk-Q7OXI6VS.js";
7
+ } from "./chunk-74DKFWU2.js";
8
8
  import {
9
9
  isProtectedByScope,
10
10
  registerHookEntry
11
- } from "./chunk-OML4YFBN.js";
11
+ } from "./chunk-57EOP757.js";
12
12
  import {
13
13
  isRecord
14
- } from "./chunk-LF3TLC7B.js";
14
+ } from "./chunk-WACFIQYA.js";
15
15
 
16
16
  // src/cursor-config.ts
17
17
  var hookCommandOf = (entry) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readConfigFileKey
3
- } from "./chunk-VYBH6D4X.js";
3
+ } from "./chunk-YBE2KH2U.js";
4
4
 
5
5
  // src/bell/fleet.ts
6
6
  import { closeSync, constants, futimesSync, lstatSync, mkdirSync, openSync, readdirSync, unlinkSync } from "fs";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-OML4YFBN.js";
3
+ } from "./chunk-57EOP757.js";
4
4
  import {
5
5
  readJsonSafe,
6
6
  writeFileAtomic
7
- } from "./chunk-AQFEP65J.js";
7
+ } from "./chunk-QENTGE75.js";
8
8
  import {
9
9
  DECLINED_AGENTS_FILE,
10
10
  DISCONNECT_AGENT_IDS,
@@ -13,7 +13,7 @@ import {
13
13
  serializeDeclinedAgents,
14
14
  withDeclinedAgent,
15
15
  withoutDeclinedAgent
16
- } from "./chunk-LF3TLC7B.js";
16
+ } from "./chunk-WACFIQYA.js";
17
17
 
18
18
  // src/declined-agents-file.ts
19
19
  import { join } from "path";
@@ -1,5 +1,5 @@
1
1
  // src/cli/fsx.ts
2
- import { copyFileSync, lstatSync, realpathSync, existsSync, fsyncSync, mkdirSync, openSync, closeSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "fs";
2
+ import { copyFileSync, lstatSync, realpathSync, existsSync, fchmodSync, fsyncSync, mkdirSync, openSync, closeSync, readFileSync, renameSync, statSync, unlinkSync, writeFileSync } from "fs";
3
3
  import { dirname, join } from "path";
4
4
  var readJsonSafe = (filePath) => {
5
5
  let raw;
@@ -18,6 +18,13 @@ var readJsonSafe = (filePath) => {
18
18
  return { kind: "unparseable", error: err, raw };
19
19
  }
20
20
  };
21
+ var isFile = (path) => {
22
+ try {
23
+ return statSync(path).isFile();
24
+ } catch {
25
+ return false;
26
+ }
27
+ };
21
28
  var readFileOrMissing = (path) => {
22
29
  try {
23
30
  return readFileSync(path, "utf-8");
@@ -41,6 +48,7 @@ var writeFileAtomic = (filePath, contents, mode, encoding = "utf-8") => {
41
48
  writeFileSync(temp, contents, mode === void 0 ? encoding : { encoding, mode });
42
49
  const handle = openSync(temp, "r+");
43
50
  try {
51
+ if (mode !== void 0) fchmodSync(handle, mode);
44
52
  fsyncSync(handle);
45
53
  } finally {
46
54
  closeSync(handle);
@@ -69,6 +77,7 @@ var writeJsonAtomicDurable = (filePath, data, mode) => {
69
77
 
70
78
  export {
71
79
  readJsonSafe,
80
+ isFile,
72
81
  readFileOrMissing,
73
82
  backupFile,
74
83
  writeFileAtomic,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  writeJsonAtomicDurable
3
- } from "./chunk-AQFEP65J.js";
3
+ } from "./chunk-QENTGE75.js";
4
4
 
5
5
  // src/transcript-recipient-pin.ts
6
6
  import { existsSync, mkdirSync, readFileSync, rmSync } from "fs";
@@ -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-57EOP757.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-WACFIQYA.js";
21
21
 
22
22
  // src/auto-update.ts
23
23
  import { spawn } from "child_process";