@pushary/agent-hooks 1.9.80 → 1.9.82

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 (132) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +4 -4
  3. package/data/SKILL.md +12 -16
  4. package/data/cursor-plugin/README.md +1 -1
  5. package/data/cursor-plugin/skills/pushary/SKILL.md +11 -15
  6. package/data/vscode-plugin/README.md +1 -1
  7. package/data/vscode-plugin/skills/pushary/SKILL.md +11 -15
  8. package/dist/{api-FPA2PPXY.js → api-TZO5ACOS.js} +11 -11
  9. package/dist/bin/pushary-bell-hook.js +26 -26
  10. package/dist/bin/pushary-bell.js +11 -11
  11. package/dist/bin/pushary-claude.js +27 -27
  12. package/dist/bin/pushary-clean.js +34 -34
  13. package/dist/bin/pushary-codex-bridge.js +22 -22
  14. package/dist/bin/pushary-codex-hook.js +31 -31
  15. package/dist/bin/pushary-codex-session.js +8 -8
  16. package/dist/bin/pushary-codex.js +14 -14
  17. package/dist/bin/pushary-connect.js +27 -27
  18. package/dist/bin/pushary-cowork.js +6 -6
  19. package/dist/bin/pushary-daemon.js +39 -39
  20. package/dist/bin/pushary-disconnect.js +26 -26
  21. package/dist/bin/pushary-display-hook.js +17 -17
  22. package/dist/bin/pushary-doctor.js +48 -44
  23. package/dist/bin/pushary-elicitation-hook.js +26 -26
  24. package/dist/bin/pushary-gemini-bridge.js +16 -16
  25. package/dist/bin/pushary-gemini-hook.js +28 -28
  26. package/dist/bin/pushary-hook.js +30 -30
  27. package/dist/bin/pushary-login.js +21 -21
  28. package/dist/bin/pushary-logout.js +25 -25
  29. package/dist/bin/pushary-mcp.js +12 -12
  30. package/dist/bin/pushary-mode.js +16 -16
  31. package/dist/bin/pushary-notification-hook.js +25 -25
  32. package/dist/bin/pushary-opencode-hook.js +27 -27
  33. package/dist/bin/pushary-permission-denied-hook.js +30 -30
  34. package/dist/bin/pushary-permission-hook.js +30 -30
  35. package/dist/bin/pushary-post-hook.js +25 -25
  36. package/dist/bin/pushary-prompt-hook.js +25 -25
  37. package/dist/bin/pushary-session-end-hook.js +27 -27
  38. package/dist/bin/pushary-session-start-hook.js +35 -35
  39. package/dist/bin/pushary-setup.js +54 -59
  40. package/dist/bin/pushary-stats.js +6 -6
  41. package/dist/bin/pushary-status.js +32 -32
  42. package/dist/bin/pushary-stop-hook.js +25 -25
  43. package/dist/bin/pushary-stopfailure-hook.js +25 -25
  44. package/dist/bin/pushary-suggestions.js +16 -16
  45. package/dist/bin/pushary-transcript-register.js +17 -17
  46. package/dist/bin/pushary-transcripts.js +19 -19
  47. package/dist/bin/pushary-upgrade.js +40 -40
  48. package/dist/bin/pushary-wait.js +16 -16
  49. package/dist/bin/pushary.js +8 -8
  50. package/dist/{chunk-IRE7HPNI.js → chunk-2BJZFA7X.js} +7 -5
  51. package/dist/{chunk-PJRXYNXG.js → chunk-2TEX3APZ.js} +5 -5
  52. package/dist/{chunk-OJS32QPK.js → chunk-3BFCJZBU.js} +1 -1
  53. package/dist/{chunk-N3DOT42Y.js → chunk-3UBYG4G7.js} +6 -6
  54. package/dist/{chunk-TSCACSAR.js → chunk-3V6G2GBJ.js} +6 -6
  55. package/dist/{chunk-DFW2JKHX.js → chunk-4S5XVFDV.js} +1 -1
  56. package/dist/{chunk-WJVQOAZY.js → chunk-4TR4G7A4.js} +1 -1
  57. package/dist/{chunk-3G2D5NAG.js → chunk-5LLZSX7I.js} +3 -3
  58. package/dist/{chunk-4OXYED6O.js → chunk-5TMGEQAC.js} +4 -4
  59. package/dist/{chunk-HJZDJS63.js → chunk-6224ENW3.js} +3 -3
  60. package/dist/{chunk-B67R6ZCW.js → chunk-6355HHSR.js} +2 -2
  61. package/dist/{chunk-FZJON3RK.js → chunk-6L2U3TP3.js} +20 -19
  62. package/dist/{chunk-YEPXSGFC.js → chunk-72CIQCBA.js} +9 -6
  63. package/dist/{chunk-Z4PNECON.js → chunk-AM3H6HWG.js} +1 -1
  64. package/dist/{chunk-7TIDWBXF.js → chunk-APSYBSMG.js} +14 -12
  65. package/dist/{chunk-BWE52JRG.js → chunk-AXE2ZOKS.js} +2 -2
  66. package/dist/{chunk-ZYFZAZCN.js → chunk-C6FQ4YST.js} +2 -2
  67. package/dist/{chunk-3LJU2L5S.js → chunk-CV56MBIZ.js} +9 -8
  68. package/dist/{chunk-3GZRNHH5.js → chunk-CXZAKS7S.js} +4 -4
  69. package/dist/{chunk-SNQ5HQHE.js → chunk-D3QGBMO3.js} +2 -2
  70. package/dist/{chunk-EU67IKIQ.js → chunk-DJILSCSU.js} +3 -3
  71. package/dist/{chunk-IYCYKG2B.js → chunk-DS5BR4K6.js} +2 -2
  72. package/dist/{chunk-YJGWHP2I.js → chunk-DX45XQ36.js} +3 -3
  73. package/dist/{chunk-IPIJY4TI.js → chunk-ER4UCECJ.js} +1 -1
  74. package/dist/{chunk-262U6MMI.js → chunk-ESRKYHWE.js} +2 -2
  75. package/dist/{chunk-FNBGGKRK.js → chunk-FHPSVTS5.js} +9 -9
  76. package/dist/{chunk-T2H6BCRY.js → chunk-FJZSJZCT.js} +3 -3
  77. package/dist/{chunk-L3VBP627.js → chunk-G5BYSS6C.js} +6 -6
  78. package/dist/{chunk-VP473NXT.js → chunk-GUI2NYCX.js} +5 -5
  79. package/dist/{chunk-SGG5GNVW.js → chunk-GUM3WG4B.js} +6 -6
  80. package/dist/{chunk-LN32FXTF.js → chunk-I4RNLK5G.js} +4 -4
  81. package/dist/{chunk-PE6JUMI2.js → chunk-IEAABGST.js} +7 -6
  82. package/dist/{chunk-TDW5LI6P.js → chunk-IXVMMDIG.js} +3 -3
  83. package/dist/{chunk-ITVTU4RZ.js → chunk-J4TQYGHU.js} +5 -5
  84. package/dist/{chunk-LK343VAG.js → chunk-JNCD2ZG3.js} +4 -4
  85. package/dist/{chunk-5HA42EV4.js → chunk-JTYZEP4Q.js} +1 -1
  86. package/dist/{chunk-ZJGIJDWP.js → chunk-JXE4UQFJ.js} +3 -3
  87. package/dist/{chunk-LIXHCI4G.js → chunk-L77YWBMK.js} +7 -7
  88. package/dist/{chunk-OSXIMNMJ.js → chunk-LGWTITVK.js} +1 -1
  89. package/dist/{chunk-S5MRKUSX.js → chunk-LNSCANYY.js} +3 -3
  90. package/dist/{chunk-7R5ZKOQ4.js → chunk-M5XNFUXN.js} +1 -1
  91. package/dist/{chunk-3KQM5AKY.js → chunk-N3C3D4AV.js} +4 -4
  92. package/dist/{chunk-3BPSCYOE.js → chunk-NEWGYFKC.js} +7 -7
  93. package/dist/{chunk-GXW43S4A.js → chunk-NPBPH7KI.js} +2 -2
  94. package/dist/{chunk-QNPIHZFM.js → chunk-O6T3CLWT.js} +3 -3
  95. package/dist/{chunk-UAADLSK5.js → chunk-OIW3JAWH.js} +5 -5
  96. package/dist/{chunk-AFCKBLEG.js → chunk-ONUAAXAW.js} +1 -1
  97. package/dist/{chunk-MJNZBNTN.js → chunk-OXKVR2FP.js} +16 -10
  98. package/dist/{chunk-WQNHWWVW.js → chunk-OXTRF7CP.js} +1 -1
  99. package/dist/{chunk-A2OAJ7CS.js → chunk-PJ26BODT.js} +1 -1
  100. package/dist/{chunk-6VLSVB2C.js → chunk-QJJJENT2.js} +5 -5
  101. package/dist/{chunk-KHLWYQK7.js → chunk-RL2KE6HG.js} +13 -13
  102. package/dist/{chunk-HMLURCXV.js → chunk-RRMRP62I.js} +6 -6
  103. package/dist/{chunk-UCZZX5JH.js → chunk-S2DLTWFG.js} +4 -4
  104. package/dist/{chunk-IWYGHJY6.js → chunk-TKFDPYXS.js} +4 -4
  105. package/dist/{chunk-J5BCHHCB.js → chunk-TO77OYLM.js} +1 -1
  106. package/dist/{chunk-35M6YE6T.js → chunk-TTTK44RK.js} +3 -5
  107. package/dist/{chunk-24FQPJOZ.js → chunk-UB7VUSSX.js} +3 -3
  108. package/dist/{chunk-7QYERUTD.js → chunk-UOUUTDWF.js} +85 -45
  109. package/dist/{chunk-RNAFUXEK.js → chunk-UYTPCZ4M.js} +4 -4
  110. package/dist/{chunk-NOQGCGOR.js → chunk-VHLRXIMC.js} +1 -1
  111. package/dist/{chunk-XU2FL4B6.js → chunk-W3VRQEL3.js} +2 -2
  112. package/dist/{chunk-HGCUZQUL.js → chunk-WG67W43Y.js} +0 -1
  113. package/dist/{chunk-4WCPDCKA.js → chunk-WLOVGZ7R.js} +2 -2
  114. package/dist/{chunk-DN6QYNNC.js → chunk-WUS2LFTM.js} +10 -10
  115. package/dist/{chunk-DLPFYJ7G.js → chunk-X2P3O4PX.js} +1 -1
  116. package/dist/{chunk-QBI4KSTQ.js → chunk-YAMNJXCD.js} +2 -2
  117. package/dist/{chunk-EUZ73S73.js → chunk-Z5HLACZT.js} +4 -4
  118. package/dist/{chunk-QTOLNRET.js → chunk-ZVU6WMMU.js} +10 -0
  119. package/dist/{codex-app-cards-switch-AT6X3X6U.js → codex-app-cards-switch-3FAIEEB2.js} +12 -12
  120. package/dist/{codex-desktop-launch-4ELF22QM.js → codex-desktop-launch-LHMHRVGF.js} +1 -1
  121. package/dist/{codex-session-launch-QEVWHTU7.js → codex-session-launch-MXUBSTL2.js} +19 -19
  122. package/dist/{config-PXISW4O5.js → config-MZDRETL2.js} +3 -3
  123. package/dist/{global-upgrade-H3S4KQ26.js → global-upgrade-ZDENZA42.js} +11 -11
  124. package/dist/{identity-FB7QFMEZ.js → identity-YZRDJOGY.js} +5 -5
  125. package/dist/{live-capabilities-27LDDOMC.js → live-capabilities-KSQDWVT6.js} +6 -6
  126. package/dist/{paths-URGGQMFD.js → paths-DYZZBVYI.js} +4 -4
  127. package/dist/{reapply-A6OKNS24.js → reapply-L3AI5KJH.js} +28 -28
  128. package/dist/src/index.js +29 -29
  129. package/dist/{upgrade-lock-65A4XSMV.js → upgrade-lock-X7F2OFYB.js} +5 -5
  130. package/dist/usage-TKZALYXF.js +11 -0
  131. package/package.json +1 -1
  132. package/dist/usage-FZTPRQRP.js +0 -11
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  addGeminiMcpServer,
3
3
  removeGeminiMcpServer
4
- } from "./chunk-PE6JUMI2.js";
4
+ } from "./chunk-IEAABGST.js";
5
5
  import {
6
6
  CLAUDE_CODE_AGENT,
7
7
  compatibleToolLookup
8
- } from "./chunk-FNBGGKRK.js";
8
+ } from "./chunk-FHPSVTS5.js";
9
9
  import {
10
10
  CLAUDE_HOOK_EVENTS,
11
11
  PUSHARY_MCP_URL,
@@ -17,7 +17,7 @@ import {
17
17
  isPusharyHook,
18
18
  registerHookEntry,
19
19
  removeClaudeMcpServers
20
- } from "./chunk-7QYERUTD.js";
20
+ } from "./chunk-UOUUTDWF.js";
21
21
  import {
22
22
  HOOK_COMPATIBLE_PROFILES,
23
23
  PHONE_ANSWERED_TOOLS,
@@ -28,7 +28,7 @@ import {
28
28
  pusharyMissingReason,
29
29
  refusalOutput,
30
30
  withHookHoldBudget
31
- } from "./chunk-HGCUZQUL.js";
31
+ } from "./chunk-WG67W43Y.js";
32
32
 
33
33
  // src/config-document.ts
34
34
  import { parse, stringify } from "smol-toml";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  CODEX_HOOK_STATUS
3
- } from "./chunk-QNPIHZFM.js";
3
+ } from "./chunk-O6T3CLWT.js";
4
4
  import {
5
5
  retryAgentCommand
6
- } from "./chunk-T2H6BCRY.js";
6
+ } from "./chunk-FJZSJZCT.js";
7
7
  import {
8
8
  NPX_LATEST_COMMAND
9
- } from "./chunk-35M6YE6T.js";
9
+ } from "./chunk-TTTK44RK.js";
10
10
 
11
11
  // src/setup/codex-trust.ts
12
12
  var CODEX_TRUST_TELEMETRY = {
@@ -521,7 +521,7 @@ var loadedOnce = (load) => {
521
521
  };
522
522
 
523
523
  // src/codex-desktop-proxy.ts
524
- var loadThePhone = () => import("./api-FPA2PPXY.js");
524
+ var loadThePhone = () => import("./api-TZO5ACOS.js");
525
525
  var theFirstCardLoadsAgain = () => {
526
526
  };
527
527
  var APP_SERVER_COMMAND = "app-server";
@@ -1062,7 +1062,7 @@ var codexDesktopCommand = async (args, entry, readAccount) => {
1062
1062
  return runCodexDesktopProxy(engine2, args.slice(3), readAccount, { watchesForCards: layoutIsKnown });
1063
1063
  }
1064
1064
  if (args[0] === APP_CARDS_FLAG) {
1065
- const { codexAppCardsCommandOnThisMac } = await import("./codex-app-cards-switch-AT6X3X6U.js");
1065
+ const { codexAppCardsCommandOnThisMac } = await import("./codex-app-cards-switch-3FAIEEB2.js");
1066
1066
  return codexAppCardsCommandOnThisMac(args.slice(1), entry, readAccount);
1067
1067
  }
1068
1068
  if (args.length > 2) throw new Error("Usage: pushary codex --desktop [path/to/Codex.app]");
@@ -4,33 +4,33 @@ import {
4
4
  } from "./chunk-XHKBHWLX.js";
5
5
  import {
6
6
  readControlMode
7
- } from "./chunk-3GZRNHH5.js";
7
+ } from "./chunk-CXZAKS7S.js";
8
8
  import {
9
9
  getMachineId
10
- } from "./chunk-QBI4KSTQ.js";
10
+ } from "./chunk-YAMNJXCD.js";
11
11
  import {
12
12
  pusharyDir
13
- } from "./chunk-7QYERUTD.js";
13
+ } from "./chunk-UOUUTDWF.js";
14
14
  import {
15
15
  readJsonSafe,
16
16
  resolveGlobalBinary,
17
17
  writeFileAtomic,
18
18
  writeJsonAtomic,
19
19
  writeJsonAtomicDurable
20
- } from "./chunk-IRE7HPNI.js";
20
+ } from "./chunk-2BJZFA7X.js";
21
21
  import {
22
22
  getApiKey
23
- } from "./chunk-AFCKBLEG.js";
23
+ } from "./chunk-ONUAAXAW.js";
24
24
  import {
25
25
  CLI_PACKAGE_NAMES,
26
- cmdShimTarget,
26
+ cmdShimScriptOf,
27
27
  getPackageVersion,
28
28
  globalPackageFolder,
29
29
  globalRootFor
30
- } from "./chunk-QTOLNRET.js";
30
+ } from "./chunk-ZVU6WMMU.js";
31
31
  import {
32
32
  isRecord
33
- } from "./chunk-HGCUZQUL.js";
33
+ } from "./chunk-WG67W43Y.js";
34
34
 
35
35
  // src/daemon-lifecycle.ts
36
36
  import { dirname, join, win32 as win32Path } from "path";
@@ -292,25 +292,25 @@ WantedBy=default.target
292
292
  return null;
293
293
  };
294
294
  var WINDOWS_DAEMON_ENTRY_SEGMENTS = ["dist", "bin", "pushary-daemon.js"];
295
- var WINDOWS_CMD_SHIM = /\.cmd$/i;
296
295
  var readTextFile = (path) => readFileSync(path, "utf8");
297
- var windowsShimTarget = (shim, readFile) => {
298
- if (!WINDOWS_CMD_SHIM.test(shim)) return void 0;
299
- try {
300
- return cmdShimTarget(win32Path.dirname(shim), readFile(shim));
301
- } catch {
302
- return void 0;
303
- }
304
- };
305
296
  var windowsPackageDaemonEntries = (globalPrefix) => {
306
297
  const root = globalRootFor(globalPrefix, "win32");
307
298
  return CLI_PACKAGE_NAMES.map((name) => win32Path.join(globalPackageFolder(root, name, "win32"), ...WINDOWS_DAEMON_ENTRY_SEGMENTS));
308
299
  };
309
300
  var windowsDaemonEntryCandidates = (shim, readFile) => {
310
- const shimEntry = windowsShimTarget(shim, readFile);
301
+ const shimEntry = cmdShimScriptOf(shim, readFile);
311
302
  const packageEntries = windowsPackageDaemonEntries(win32Path.dirname(shim));
312
303
  return shimEntry === void 0 ? packageEntries : [shimEntry, ...packageEntries];
313
304
  };
305
+ var HOMEBREW_VERSIONED_NODE = /^(.+)\/Cellar\/([^/]+)\/[^/]+\/bin\/node$/;
306
+ var homebrewLinkedNodeFor = (execPath) => {
307
+ const versioned = HOMEBREW_VERSIONED_NODE.exec(execPath);
308
+ return versioned ? `${versioned[1]}/opt/${versioned[2]}/bin/node` : null;
309
+ };
310
+ var serviceNodeFor = (execPath, exists) => {
311
+ const linked = homebrewLinkedNodeFor(execPath);
312
+ return linked !== null && exists(linked) ? linked : execPath;
313
+ };
314
314
  var resolveDaemonServiceDefinition = (options = {}) => {
315
315
  const platform = options.platform ?? process.platform;
316
316
  const exists = options.entryExists ?? existsSync;
@@ -333,7 +333,7 @@ var resolveDaemonServiceDefinition = (options = {}) => {
333
333
  platform,
334
334
  homeDir,
335
335
  stateDir: options.stateDir ?? pusharyDir(),
336
- execPath: options.execPath ?? process.execPath,
336
+ execPath: serviceNodeFor(options.execPath ?? process.execPath, exists),
337
337
  daemonEntry,
338
338
  pathEnv: options.pathEnv ?? process.env.PATH ?? "",
339
339
  uid: options.uid ?? process.getuid?.(),
@@ -1128,6 +1128,7 @@ export {
1128
1128
  daemonServiceManagerAvailable,
1129
1129
  DAEMON_LEASE_RENEW_INTERVAL_MS,
1130
1130
  xml,
1131
+ serviceNodeFor,
1131
1132
  parseDaemonAction,
1132
1133
  manageDaemonService,
1133
1134
  hasDaemonServiceDefinition,
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  readJsonSafe,
3
3
  writeJsonAtomic
4
- } from "./chunk-IRE7HPNI.js";
4
+ } from "./chunk-2BJZFA7X.js";
5
5
  import {
6
6
  configFilePath
7
- } from "./chunk-AFCKBLEG.js";
7
+ } from "./chunk-ONUAAXAW.js";
8
8
  import {
9
9
  readSetupOutcomeProperties
10
- } from "./chunk-HGCUZQUL.js";
10
+ } from "./chunk-WG67W43Y.js";
11
11
 
12
12
  // src/diagnostics/service-runtime.ts
13
13
  var unescapeXml = (value) => value.replaceAll("&quot;", '"').replaceAll("&apos;", "'").replaceAll("&lt;", "<").replaceAll("&gt;", ">").replaceAll("&amp;", "&");
@@ -35,7 +35,8 @@ var MANAGER_SEGMENTS = [
35
35
  [".volta", "volta"],
36
36
  ["volta", "volta"],
37
37
  [".asdf", "asdf"],
38
- ["asdf", "asdf"]
38
+ ["asdf", "asdf"],
39
+ ["Cellar", "homebrew"]
39
40
  ];
40
41
  var versionManagerOf = (execPath) => {
41
42
  const segments = execPath.split(/[/\\]/);
@@ -45,7 +46,8 @@ var versionManagerOf = (execPath) => {
45
46
  }
46
47
  return null;
47
48
  };
48
- var describeVersionManagerPin = (execPath, manager) => `The background service is pinned to ${execPath}, which ${manager} manages. Switching Node versions strands it; run pushary daemon install afterwards.`;
49
+ var describeVersionManagerPin = (execPath, manager) => `The background service is pinned to ${execPath}, which ${manager} manages. Switching or upgrading Node strands it; run pushary daemon install afterwards.`;
50
+ var describeServiceNodeRisk = (manager) => manager === "homebrew" ? "a Homebrew version folder; brew upgrade strands the service, and `pushary daemon install` repins it to the stable link" : `managed by ${manager}; a version switch strands the service`;
49
51
 
50
52
  // src/setup/failure-record.ts
51
53
  import { dirname, join } from "path";
@@ -68,5 +70,6 @@ export {
68
70
  readSetupFailure,
69
71
  readServiceExecPath,
70
72
  versionManagerOf,
71
- describeVersionManagerPin
73
+ describeVersionManagerPin,
74
+ describeServiceNodeRisk
72
75
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULT_SESSION
3
- } from "./chunk-FNBGGKRK.js";
3
+ } from "./chunk-FHPSVTS5.js";
4
4
 
5
5
  // src/answer.ts
6
6
  var isDeferAnswer = (value) => value === "defer";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  ensureCodexTrustsPusharyHooks
3
- } from "./chunk-QNPIHZFM.js";
3
+ } from "./chunk-O6T3CLWT.js";
4
4
  import {
5
5
  hermesReceiptPaths,
6
6
  hermesSetupPredatesThePluginFolder,
7
7
  installHermesPlugin,
8
8
  refreshHermesPluginFiles,
9
9
  shippedHermesPlugin
10
- } from "./chunk-LN32FXTF.js";
10
+ } from "./chunk-I4RNLK5G.js";
11
11
  import {
12
12
  fxIgnoresInstructionsFile,
13
13
  fxInstructionsBody,
@@ -16,7 +16,7 @@ import {
16
16
  macAppFxBridge,
17
17
  refreshClineKey,
18
18
  switchFxHttpEntryToBridge
19
- } from "./chunk-PJRXYNXG.js";
19
+ } from "./chunk-2TEX3APZ.js";
20
20
  import {
21
21
  OPENCODE_HOOK_BINARY,
22
22
  agentHookOwner,
@@ -28,16 +28,16 @@ import {
28
28
  openCodePluginDir,
29
29
  openCodeWired,
30
30
  withOpenCodeAskRules
31
- } from "./chunk-3LJU2L5S.js";
31
+ } from "./chunk-CV56MBIZ.js";
32
32
  import {
33
33
  detectClaudeVersion
34
- } from "./chunk-24FQPJOZ.js";
34
+ } from "./chunk-UB7VUSSX.js";
35
35
  import {
36
36
  addCompatibleHooks,
37
37
  compatibleConfigFile,
38
38
  compatibleInstructionsFile,
39
39
  hasCompatibleHooks
40
- } from "./chunk-4OXYED6O.js";
40
+ } from "./chunk-5TMGEQAC.js";
41
41
  import {
42
42
  GEMINI_HOOK_BINARY,
43
43
  addGeminiHooks,
@@ -49,7 +49,7 @@ import {
49
49
  geminiWired,
50
50
  hasGeminiHooks,
51
51
  planHooks
52
- } from "./chunk-PE6JUMI2.js";
52
+ } from "./chunk-IEAABGST.js";
53
53
  import {
54
54
  CLAUDE_HOOK_BINARY,
55
55
  CLAUDE_HOOK_EVENTS,
@@ -72,6 +72,7 @@ import {
72
72
  clineRules,
73
73
  codexAgentsMd,
74
74
  codexConfigToml,
75
+ codexHookCommand,
75
76
  codexHookPositions,
76
77
  codexHooksJson,
77
78
  codexMcpStartsCommand,
@@ -94,20 +95,21 @@ import {
94
95
  renderAgentInstructions,
95
96
  supportedClaudeEvents,
96
97
  vscodePluginMcp
97
- } from "./chunk-7QYERUTD.js";
98
+ } from "./chunk-UOUUTDWF.js";
98
99
  import {
99
100
  formatVersion,
101
+ hookCommandsUseBareNames,
100
102
  readJsonSafe,
101
103
  resolveGlobalBinDir,
102
104
  resolveGlobalBinary,
103
105
  writeFileAtomic,
104
106
  writeJsonAtomic
105
- } from "./chunk-IRE7HPNI.js";
107
+ } from "./chunk-2BJZFA7X.js";
106
108
  import {
107
109
  HOOK_COMPATIBLE_PROFILES,
108
110
  isCompatibleAgentType,
109
111
  isRecord
110
- } from "./chunk-HGCUZQUL.js";
112
+ } from "./chunk-WG67W43Y.js";
111
113
 
112
114
  // src/reapply.ts
113
115
  import { dirname, join } from "path";
@@ -184,7 +186,7 @@ var reapplyClaudeSettings = (apiKey, paths = {}) => {
184
186
  if (!settingsWritable) throw new Error("settings.json could not be parsed");
185
187
  const s = settings;
186
188
  addPusharyToolPermissions(s);
187
- const binary = (paths.resolveBinary ?? resolveGlobalBinary)(CLAUDE_HOOK_BINARY);
189
+ const binary = hookCommandsUseBareNames(paths.platform ?? process.platform) ? void 0 : (paths.resolveBinary ?? resolveGlobalBinary)(CLAUDE_HOOK_BINARY);
188
190
  addPusharyHooks(s, binary ? dirname(binary) : void 0, (paths.detectVersion ?? detectClaudeVersion)());
189
191
  writeJson(settingsPath, s);
190
192
  hooks = true;
@@ -278,7 +280,7 @@ var reapplyCodexSettings = (apiKey, paths = {}, nativeOwnership = "preserve") =>
278
280
  return { configured: true, reapplied: false, hooks: false, mcp: false, failed: true };
279
281
  }
280
282
  }
281
- const command = guardBinary((paths.resolveBinary ?? resolveGlobalBinary)(CODEX_HOOK_BINARY) ?? CODEX_HOOK_BINARY);
283
+ const command = codexHookCommand((paths.resolveBinary ?? resolveGlobalBinary)(CODEX_HOOK_BINARY));
282
284
  let hooks = false;
283
285
  let mcp = false;
284
286
  let failed = hooksConfig === null || config === null;
@@ -4,10 +4,10 @@ import {
4
4
  keyPrefix,
5
5
  readConfigFileKey,
6
6
  readMacAppKeyPrefix
7
- } from "./chunk-3GZRNHH5.js";
7
+ } from "./chunk-CXZAKS7S.js";
8
8
  import {
9
9
  NPX_LATEST_COMMAND
10
- } from "./chunk-35M6YE6T.js";
10
+ } from "./chunk-TTTK44RK.js";
11
11
 
12
12
  // src/key-signed-out.ts
13
13
  var VERDICT_BY_CHECK = {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  absoluteUrl
3
- } from "./chunk-S5MRKUSX.js";
3
+ } from "./chunk-LNSCANYY.js";
4
4
  import {
5
5
  KEY_SCOPE
6
- } from "./chunk-HGCUZQUL.js";
6
+ } from "./chunk-WG67W43Y.js";
7
7
 
8
8
  // src/cli/approval-settings-pages.ts
9
9
  var API_KEYS_PATH = "/dashboard/agent/settings";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  compatibleConfigFile
3
- } from "./chunk-4OXYED6O.js";
3
+ } from "./chunk-5TMGEQAC.js";
4
4
  import {
5
5
  hookOwnerOf,
6
6
  hookOwnerOfCommands,
7
7
  liveBridgeProbe,
8
8
  resolveBridgeStub
9
- } from "./chunk-PE6JUMI2.js";
9
+ } from "./chunk-IEAABGST.js";
10
10
  import {
11
11
  AGENT_CHOICES
12
- } from "./chunk-ZJGIJDWP.js";
12
+ } from "./chunk-JXE4UQFJ.js";
13
13
  import {
14
14
  claudeSettings,
15
15
  codexHooksJson,
@@ -17,11 +17,12 @@ import {
17
17
  geminiSettings,
18
18
  guardedArgv,
19
19
  pusharyDir,
20
- vscodePluginDir
21
- } from "./chunk-7QYERUTD.js";
20
+ vscodePluginDir,
21
+ windowsNodeLauncherFor
22
+ } from "./chunk-UOUUTDWF.js";
22
23
  import {
23
24
  readJsonSafe
24
- } from "./chunk-IRE7HPNI.js";
25
+ } from "./chunk-2BJZFA7X.js";
25
26
  import {
26
27
  HOOK_BUDGETS,
27
28
  HOOK_COMPATIBLE_PROFILES,
@@ -29,7 +30,7 @@ import {
29
30
  OPENCODE_APPROVAL_EVENT,
30
31
  hookCompatibleProfile,
31
32
  isRecord
32
- } from "./chunk-HGCUZQUL.js";
33
+ } from "./chunk-WG67W43Y.js";
33
34
 
34
35
  // src/opencode-plugin.ts
35
36
  var OPENCODE_PLUGIN_MARKER = "pushary-opencode-plugin w1";
@@ -411,7 +412,7 @@ import { homedir } from "os";
411
412
  import { join } from "path";
412
413
  var OPENCODE_HOOK_BINARY = "pushary-opencode-hook";
413
414
  var OPENCODE_HOOK_ARGS = ["--source", "opencode"];
414
- var openCodeHookArgv = (resolvedBinary) => guardedArgv({ kind: "binary", path: resolvedBinary ?? OPENCODE_HOOK_BINARY, runtime: "node" }, OPENCODE_HOOK_ARGS);
415
+ var openCodeHookArgv = (resolvedBinary, platform = process.platform) => guardedArgv({ kind: "binary", path: resolvedBinary ?? OPENCODE_HOOK_BINARY, runtime: "node" }, OPENCODE_HOOK_ARGS, platform, windowsNodeLauncherFor(platform));
415
416
  var openCodeConfigDirFrom = (home, env = process.env) => env.OPENCODE_CONFIG_DIR?.trim() || join(env.XDG_CONFIG_HOME?.trim() || join(home, ".config"), "opencode");
416
417
  var openCodeConfigDir = () => openCodeConfigDirFrom(homedir());
417
418
  var OPENCODE_PLUGIN_PATH = `${OPENCODE_PLUGIN_DIR}/${OPENCODE_PLUGIN_FILE}`;
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  resolveInstallSourceFor
3
- } from "./chunk-GXW43S4A.js";
3
+ } from "./chunk-NPBPH7KI.js";
4
4
  import {
5
5
  backupFile,
6
6
  readJsonSafe,
7
7
  writeFileAtomic,
8
8
  writeJsonAtomic
9
- } from "./chunk-IRE7HPNI.js";
9
+ } from "./chunk-2BJZFA7X.js";
10
10
  import {
11
11
  configFilePath
12
- } from "./chunk-AFCKBLEG.js";
12
+ } from "./chunk-ONUAAXAW.js";
13
13
  import {
14
14
  API_KEY_PREFIX_PATTERN,
15
15
  isRecord
16
- } from "./chunk-HGCUZQUL.js";
16
+ } from "./chunk-WG67W43Y.js";
17
17
 
18
18
  // src/shell-alias.ts
19
19
  import { homedir } from "os";
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-KZERVKTD.js";
4
4
  import {
5
5
  renderCommandHelp
6
- } from "./chunk-35M6YE6T.js";
6
+ } from "./chunk-TTTK44RK.js";
7
7
  import {
8
8
  getPackageVersion
9
- } from "./chunk-QTOLNRET.js";
9
+ } from "./chunk-ZVU6WMMU.js";
10
10
 
11
11
  // src/cli/usage.ts
12
12
  var exitOnHelpFlag = (command) => {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-7QYERUTD.js";
3
+ } from "./chunk-UOUUTDWF.js";
4
4
  import {
5
5
  readJsonSafe
6
- } from "./chunk-IRE7HPNI.js";
6
+ } from "./chunk-2BJZFA7X.js";
7
7
  import {
8
8
  isRecord
9
- } from "./chunk-HGCUZQUL.js";
9
+ } from "./chunk-WG67W43Y.js";
10
10
 
11
11
  // src/process-ownership.ts
12
12
  import { createHash, randomUUID } from "crypto";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  parseSseMessages
3
- } from "./chunk-EUZ73S73.js";
3
+ } from "./chunk-Z5HLACZT.js";
4
4
  import {
5
5
  NPX_LATEST_COMMAND
6
- } from "./chunk-35M6YE6T.js";
6
+ } from "./chunk-TTTK44RK.js";
7
7
 
8
8
  // src/mcp-stdio-bridge.ts
9
9
  var MCP_BRIDGE_BINARY = "pushary-mcp";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-7QYERUTD.js";
3
+ } from "./chunk-UOUUTDWF.js";
4
4
  import {
5
5
  readJsonSafe,
6
6
  writeFileAtomic
7
- } from "./chunk-IRE7HPNI.js";
7
+ } from "./chunk-2BJZFA7X.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-HGCUZQUL.js";
16
+ } from "./chunk-WG67W43Y.js";
17
17
 
18
18
  // src/declined-agents-file.ts
19
19
  import { join } from "path";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-KZERVKTD.js";
8
8
  import {
9
9
  redactSecretsFromContent
10
- } from "./chunk-HGCUZQUL.js";
10
+ } from "./chunk-WG67W43Y.js";
11
11
 
12
12
  // src/cli/json.ts
13
13
  var writeStdoutFully = (text) => new Promise((resolve, reject) => {
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  autoUpdateLock
3
- } from "./chunk-7QYERUTD.js";
3
+ } from "./chunk-UOUUTDWF.js";
4
4
  import {
5
5
  installPackageGlobally,
6
6
  npmErrorMessage,
7
7
  writeJsonAtomic
8
- } from "./chunk-IRE7HPNI.js";
8
+ } from "./chunk-2BJZFA7X.js";
9
9
 
10
10
  // src/upgrade-lock.ts
11
11
  import { fork } from "child_process";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  repoKeyFor
3
- } from "./chunk-7R5ZKOQ4.js";
3
+ } from "./chunk-M5XNFUXN.js";
4
4
  import {
5
5
  cancelQuestion,
6
6
  clientErrorKindOf,
@@ -8,33 +8,33 @@ import {
8
8
  reportClientError,
9
9
  sendNotification,
10
10
  waitForAnswer
11
- } from "./chunk-UAADLSK5.js";
11
+ } from "./chunk-OIW3JAWH.js";
12
12
  import {
13
13
  withRetry
14
- } from "./chunk-EUZ73S73.js";
14
+ } from "./chunk-Z5HLACZT.js";
15
15
  import {
16
16
  getMachineId
17
- } from "./chunk-QBI4KSTQ.js";
17
+ } from "./chunk-YAMNJXCD.js";
18
18
  import {
19
19
  reportedInstallSource
20
- } from "./chunk-GXW43S4A.js";
20
+ } from "./chunk-NPBPH7KI.js";
21
21
  import {
22
22
  IDLE_PROMPT_NOTIFICATION,
23
23
  NOTIFICATION_PUSH_TYPES,
24
24
  POSTTOOLUSE_MIRROR_ONLY_TOOLS,
25
25
  canonicalJson,
26
26
  claudeConfigDir
27
- } from "./chunk-7QYERUTD.js";
27
+ } from "./chunk-UOUUTDWF.js";
28
28
  import {
29
29
  compareVersion,
30
30
  parseVersion,
31
31
  writeFileAtomic,
32
32
  writeJsonAtomicDurable
33
- } from "./chunk-IRE7HPNI.js";
33
+ } from "./chunk-2BJZFA7X.js";
34
34
  import {
35
35
  getApiKey,
36
36
  getBaseUrl
37
- } from "./chunk-AFCKBLEG.js";
37
+ } from "./chunk-ONUAAXAW.js";
38
38
  import {
39
39
  ACTION_BODY_MAX,
40
40
  AGENTS,
@@ -76,7 +76,7 @@ import {
76
76
  toToolLookup,
77
77
  truncateLine,
78
78
  unansweredRefusalReason
79
- } from "./chunk-HGCUZQUL.js";
79
+ } from "./chunk-WG67W43Y.js";
80
80
 
81
81
  // ../hook-mapping/src/describe.ts
82
82
  import { isAbsolute, relative, resolve } from "path";
@@ -3,13 +3,13 @@ import {
3
3
  NpmMissingError,
4
4
  NpmPermissionError,
5
5
  writeFileAtomic
6
- } from "./chunk-IRE7HPNI.js";
6
+ } from "./chunk-2BJZFA7X.js";
7
7
  import {
8
8
  NPX_LATEST_COMMAND
9
- } from "./chunk-35M6YE6T.js";
9
+ } from "./chunk-TTTK44RK.js";
10
10
  import {
11
11
  readSetupAgentFailures
12
- } from "./chunk-HGCUZQUL.js";
12
+ } from "./chunk-WG67W43Y.js";
13
13
 
14
14
  // src/setup/config-write.ts
15
15
  var AgentConfigWriteError = class extends Error {
@@ -2,31 +2,31 @@ import {
2
2
  SIGNED_OUT_ON_MAC_MESSAGE,
3
3
  describeSignedOutKey,
4
4
  readSignedOutDiagnosis
5
- } from "./chunk-BWE52JRG.js";
5
+ } from "./chunk-AXE2ZOKS.js";
6
6
  import {
7
7
  APPROVAL_RULES_PATH
8
- } from "./chunk-ZYFZAZCN.js";
8
+ } from "./chunk-C6FQ4YST.js";
9
9
  import {
10
10
  createIo
11
11
  } from "./chunk-FO3MDD26.js";
12
12
  import {
13
13
  readKeySource
14
- } from "./chunk-3GZRNHH5.js";
14
+ } from "./chunk-CXZAKS7S.js";
15
15
  import {
16
16
  absoluteUrl,
17
17
  checkApiKey,
18
18
  describeKeyCheck,
19
19
  keyCheckFromResponse
20
- } from "./chunk-S5MRKUSX.js";
20
+ } from "./chunk-LNSCANYY.js";
21
21
  import {
22
22
  getBaseUrl
23
- } from "./chunk-AFCKBLEG.js";
23
+ } from "./chunk-ONUAAXAW.js";
24
24
  import {
25
25
  EXIT
26
26
  } from "./chunk-KZERVKTD.js";
27
27
  import {
28
28
  KEY_SCOPE
29
- } from "./chunk-HGCUZQUL.js";
29
+ } from "./chunk-WG67W43Y.js";
30
30
 
31
31
  // src/cli/report-key.ts
32
32
  var { dim, yellow } = createIo();
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  readMacAppAgentKey
3
- } from "./chunk-ITVTU4RZ.js";
3
+ } from "./chunk-J4TQYGHU.js";
4
4
  import {
5
5
  API_KEYS_PATH
6
- } from "./chunk-ZYFZAZCN.js";
6
+ } from "./chunk-C6FQ4YST.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-3GZRNHH5.js";
16
+ } from "./chunk-CXZAKS7S.js";
17
17
  import {
18
18
  absoluteUrl
19
- } from "./chunk-S5MRKUSX.js";
19
+ } from "./chunk-LNSCANYY.js";
20
20
  import {
21
21
  isValidApiKey
22
- } from "./chunk-HGCUZQUL.js";
22
+ } from "./chunk-WG67W43Y.js";
23
23
 
24
24
  // src/key-revocation.ts
25
25
  var SELF_REVOKE_PATH = "/api/v1/server/keys/self/revoke";