@pushary/agent-hooks 1.9.8 → 1.9.10

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 (104) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/bin/pushary-bell-hook.js +22 -23
  3. package/dist/bin/pushary-bell.js +13 -13
  4. package/dist/bin/pushary-claude.js +26 -27
  5. package/dist/bin/pushary-clean.js +124 -51
  6. package/dist/bin/pushary-codex-bridge.js +20 -20
  7. package/dist/bin/pushary-codex-hook.js +34 -35
  8. package/dist/bin/pushary-codex.js +13 -13
  9. package/dist/bin/pushary-connect.js +41 -18
  10. package/dist/bin/pushary-cowork.js +5 -5
  11. package/dist/bin/pushary-daemon.js +35 -37
  12. package/dist/bin/pushary-disconnect.js +29 -32
  13. package/dist/bin/pushary-doctor.js +101 -78
  14. package/dist/bin/pushary-elicitation-hook.js +25 -26
  15. package/dist/bin/pushary-gemini-bridge.js +13 -13
  16. package/dist/bin/pushary-gemini-hook.js +29 -30
  17. package/dist/bin/pushary-hook.js +36 -37
  18. package/dist/bin/pushary-login.js +12 -12
  19. package/dist/bin/pushary-logout.js +18 -78
  20. package/dist/bin/pushary-mcp.js +9 -9
  21. package/dist/bin/pushary-mode.js +12 -12
  22. package/dist/bin/pushary-notification-hook.js +29 -30
  23. package/dist/bin/pushary-opencode-hook.js +28 -29
  24. package/dist/bin/pushary-permission-denied-hook.js +30 -31
  25. package/dist/bin/pushary-permission-hook.js +33 -34
  26. package/dist/bin/pushary-post-hook.js +30 -31
  27. package/dist/bin/pushary-prompt-hook.js +29 -30
  28. package/dist/bin/pushary-session-end-hook.js +29 -30
  29. package/dist/bin/pushary-session-start-hook.js +33 -35
  30. package/dist/bin/pushary-setup.js +147 -116
  31. package/dist/bin/pushary-stats.js +5 -5
  32. package/dist/bin/pushary-status.js +48 -18
  33. package/dist/bin/pushary-stop-hook.js +29 -30
  34. package/dist/bin/pushary-stopfailure-hook.js +29 -30
  35. package/dist/bin/pushary-suggestions.js +12 -12
  36. package/dist/bin/pushary-transcript-register.js +18 -19
  37. package/dist/bin/pushary-transcripts.js +7 -7
  38. package/dist/bin/pushary-upgrade.js +38 -44
  39. package/dist/bin/pushary-wait.js +12 -12
  40. package/dist/bin/pushary.js +6 -6
  41. package/dist/{chunk-CKV3UPMU.js → chunk-2HFSKYLN.js} +2 -2
  42. package/dist/{chunk-ZN3C6GBG.js → chunk-2HXG2QDI.js} +4 -4
  43. package/dist/{chunk-5QUPKDI5.js → chunk-2M52CFVO.js} +1 -1
  44. package/dist/{chunk-KF3UZLYI.js → chunk-2S34OPHS.js} +1 -1
  45. package/dist/{chunk-2A53H4S6.js → chunk-5MQYA3YL.js} +22 -21
  46. package/dist/{chunk-I5IJRMNV.js → chunk-5RGA636G.js} +21 -9
  47. package/dist/{chunk-IAD2RT4L.js → chunk-6KNC6KLL.js} +4 -4
  48. package/dist/{chunk-KHNFLYJO.js → chunk-7HGR5GNY.js} +4 -4
  49. package/dist/{chunk-BEJRK4DF.js → chunk-AKPHYSEL.js} +5 -4
  50. package/dist/{chunk-ZBK6E2OR.js → chunk-APP43AW7.js} +1 -1
  51. package/dist/chunk-BOSXFI7L.js +52 -0
  52. package/dist/{chunk-WS4H76EP.js → chunk-BTFUSQFB.js} +2 -2
  53. package/dist/{chunk-B64KHETR.js → chunk-BVPPYR7B.js} +3 -3
  54. package/dist/{chunk-TCWKTUAE.js → chunk-BVSIM4EF.js} +2 -2
  55. package/dist/{chunk-BXET3ALR.js → chunk-C6QTMWJZ.js} +2 -2
  56. package/dist/{chunk-IHO3YQAN.js → chunk-CJYM4ZHV.js} +2 -2
  57. package/dist/{chunk-6TE27XZR.js → chunk-DAOQT4WK.js} +2 -2
  58. package/dist/{chunk-V5HPPF3E.js → chunk-DL6QHS7V.js} +1 -1
  59. package/dist/{chunk-DPGSLWOS.js → chunk-DWO4RLYK.js} +10 -10
  60. package/dist/{chunk-GU3EJCVV.js → chunk-EA5NWDK7.js} +4 -0
  61. package/dist/{chunk-I6MJXLMY.js → chunk-EVC765EO.js} +2 -2
  62. package/dist/{chunk-WG3K4TCH.js → chunk-GQYX24UC.js} +1 -1
  63. package/dist/{chunk-N4QSPI3B.js → chunk-GTZ4HIHU.js} +15 -13
  64. package/dist/{chunk-DUZVXBBU.js → chunk-H4F5O3RE.js} +1 -1
  65. package/dist/{chunk-MKTJEXZ3.js → chunk-I3W7GJ5R.js} +3 -3
  66. package/dist/{chunk-ZSTSEBG7.js → chunk-IIVZZMSO.js} +1 -1
  67. package/dist/{chunk-KRCR2CRQ.js → chunk-LDQGURCF.js} +11 -11
  68. package/dist/{chunk-2WXF3QJR.js → chunk-LXA236ZQ.js} +2 -2
  69. package/dist/{chunk-CD47ZFFZ.js → chunk-MD4SVNT6.js} +1 -1
  70. package/dist/{chunk-CLOSJ4ES.js → chunk-MISUKJGW.js} +1 -1
  71. package/dist/{chunk-DKMD6AWR.js → chunk-NQ67AF3V.js} +4 -4
  72. package/dist/{chunk-HRULIYDU.js → chunk-OL2Z7WI4.js} +2 -2
  73. package/dist/{chunk-MXHTGVFZ.js → chunk-PNC5ZQFS.js} +16 -20
  74. package/dist/{chunk-3I6IVOZV.js → chunk-PR2VDVCP.js} +3 -3
  75. package/dist/{chunk-FQ2GORVG.js → chunk-Q3UMWSE4.js} +2 -2
  76. package/dist/{chunk-MFF3ONG5.js → chunk-QAGWWDXQ.js} +78 -8
  77. package/dist/{chunk-M6BZZFVQ.js → chunk-QGRENWJL.js} +1 -1
  78. package/dist/{chunk-LKLVTG3V.js → chunk-RPQLZLKC.js} +5 -5
  79. package/dist/{chunk-KFF7G225.js → chunk-S2DAKKQQ.js} +3 -3
  80. package/dist/chunk-SB2GN6OP.js +71 -0
  81. package/dist/{chunk-2QGYMY7A.js → chunk-SIHYBIEN.js} +142 -4
  82. package/dist/{chunk-ZW3XZLJC.js → chunk-SJDMULE7.js} +5 -5
  83. package/dist/{chunk-IHFDPV7C.js → chunk-SMVMLWCD.js} +1 -1
  84. package/dist/{chunk-QOLITCIP.js → chunk-T6ZN4TEF.js} +1 -1
  85. package/dist/{chunk-7DVNSQWF.js → chunk-TCXL5FQQ.js} +2 -2
  86. package/dist/{chunk-7PT35RY2.js → chunk-U5FP5JIS.js} +2 -2
  87. package/dist/{chunk-ZBHUHJG6.js → chunk-UJZ7AGSC.js} +6 -4
  88. package/dist/{chunk-TCQ43LSG.js → chunk-UM5WXBKN.js} +3 -3
  89. package/dist/{chunk-2QTO5YIT.js → chunk-XKMGHVXW.js} +6 -6
  90. package/dist/{chunk-LWOO567I.js → chunk-XXLCYKVS.js} +3 -3
  91. package/dist/{chunk-MGRFDGWU.js → chunk-Y7JM47CI.js} +2 -2
  92. package/dist/{chunk-NWDG3MSW.js → chunk-YUQHUGTH.js} +1 -1
  93. package/dist/{chunk-WWOHTTVP.js → chunk-Z2Q2VH43.js} +2 -2
  94. package/dist/{chunk-DL7XWKYV.js → chunk-ZGADIZDS.js} +2 -2
  95. package/dist/{chunk-2VZAALEJ.js → chunk-ZSGJYSF2.js} +8 -8
  96. package/dist/{global-upgrade-I56HNM23.js → global-upgrade-PUM44JUH.js} +6 -6
  97. package/dist/{paths-AGY43CXS.js → paths-U2MJGNBT.js} +2 -2
  98. package/dist/{reapply-IA5XUKWW.js → reapply-PRKV4EO7.js} +22 -24
  99. package/dist/src/index.js +19 -19
  100. package/dist/{upgrade-lock-B34TAUKV.js → upgrade-lock-QZSVLEM7.js} +3 -3
  101. package/package.json +1 -1
  102. package/dist/chunk-3Z3A37WD.js +0 -77
  103. package/dist/chunk-OP7IHC2I.js +0 -24
  104. package/dist/chunk-YIG2R3BJ.js +0 -145
@@ -3,23 +3,24 @@ import {
3
3
  describeWaitLadder
4
4
  } from "../chunk-CVWG2N3Y.js";
5
5
  import {
6
+ CURSOR_GATE_SCRIPT,
6
7
  readServiceExecPath,
7
8
  versionManagerOf
8
- } from "../chunk-GU3EJCVV.js";
9
+ } from "../chunk-EA5NWDK7.js";
9
10
  import {
10
11
  CODEX_HOOK_REMEDY
11
- } from "../chunk-6TE27XZR.js";
12
+ } from "../chunk-DAOQT4WK.js";
12
13
  import {
13
14
  writeStdoutFully
14
15
  } from "../chunk-EO23EUOK.js";
15
16
  import {
16
17
  assessCodexHookTrust,
17
18
  readCodexTrustForPusharyHooks
18
- } from "../chunk-MGRFDGWU.js";
19
+ } from "../chunk-Y7JM47CI.js";
19
20
  import {
20
21
  readMachineReadiness,
21
22
  readManagedControlEvidence
22
- } from "../chunk-2QTO5YIT.js";
23
+ } from "../chunk-XKMGHVXW.js";
23
24
  import {
24
25
  HERMES_PIP_PACKAGE,
25
26
  HERMES_PLUGIN_NAME,
@@ -33,7 +34,7 @@ import {
33
34
  resolveHermesPython,
34
35
  shortenHome,
35
36
  vscodeSettingsTargets
36
- } from "../chunk-KFF7G225.js";
37
+ } from "../chunk-S2DAKKQQ.js";
37
38
  import {
38
39
  FX_PROFILE_REFUSALS,
39
40
  FX_PUSHARY_TOOLS_RULE,
@@ -41,27 +42,14 @@ import {
41
42
  hasInstructionBlock,
42
43
  inspectFxInstallation,
43
44
  retryAgentCommand
44
- } from "../chunk-ZN3C6GBG.js";
45
- import "../chunk-HRULIYDU.js";
46
- import {
47
- OPENCODE_PLUGIN_PLACEHOLDER,
48
- openCodePluginDir,
49
- openCodePluginFile,
50
- openCodeWired
51
- } from "../chunk-MFF3ONG5.js";
52
- import {
53
- compatibleConfigFile,
54
- compatibleInstructionsFile,
55
- compatibleMcpFile,
56
- hasCompatibleHooks,
57
- missingCompatibleHookEvents
58
- } from "../chunk-KHNFLYJO.js";
45
+ } from "../chunk-2HXG2QDI.js";
46
+ import "../chunk-OL2Z7WI4.js";
59
47
  import {
60
48
  detectProviderLiveCapabilities,
61
49
  expectedLaunchCapabilities,
62
50
  hasSpawnProvider,
63
51
  resolveControlPolicy
64
- } from "../chunk-I6MJXLMY.js";
52
+ } from "../chunk-EVC765EO.js";
65
53
  import "../chunk-RIVNNBEK.js";
66
54
  import {
67
55
  AUTO_UPDATE_DISABLE_ENV,
@@ -70,10 +58,10 @@ import {
70
58
  describeAutoUpdateCheck,
71
59
  readAutoUpdateState,
72
60
  takeAutoUpdateAnnouncement
73
- } from "../chunk-7PT35RY2.js";
61
+ } from "../chunk-U5FP5JIS.js";
74
62
  import {
75
63
  readLedgerSummary
76
- } from "../chunk-ZSTSEBG7.js";
64
+ } from "../chunk-IIVZZMSO.js";
77
65
  import {
78
66
  daemonHasRemoteProof,
79
67
  daemonServiceManagerAvailable,
@@ -82,7 +70,49 @@ import {
82
70
  readDaemonNeedsLogin,
83
71
  readDaemonStatus,
84
72
  readInstalledDaemonService
85
- } from "../chunk-LKLVTG3V.js";
73
+ } from "../chunk-RPQLZLKC.js";
74
+ import "../chunk-XHKBHWLX.js";
75
+ import {
76
+ describeReach,
77
+ describeRoundTrip,
78
+ fetchChannels,
79
+ reachVerdict,
80
+ roundTripEvidence,
81
+ verifyRoundTrip
82
+ } from "../chunk-6KNC6KLL.js";
83
+ import "../chunk-3EGEA4KH.js";
84
+ import "../chunk-QCGNGEGE.js";
85
+ import {
86
+ CONNECTED_THROUGH_MAC_APP,
87
+ readMacAppConnectionWhenKeyless
88
+ } from "../chunk-BOSXFI7L.js";
89
+ import {
90
+ SIGNED_OUT_ON_MAC_MESSAGE,
91
+ activeKeyVerdictOf,
92
+ describeSignedOutKey,
93
+ readSignedOutDiagnosis
94
+ } from "../chunk-LXA236ZQ.js";
95
+ import {
96
+ OPENCODE_PLUGIN_PLACEHOLDER,
97
+ cliOwnsAnyAgentHooks,
98
+ macAppBridgeAvailable,
99
+ openCodePluginDir,
100
+ openCodePluginFile,
101
+ openCodeWired
102
+ } from "../chunk-QAGWWDXQ.js";
103
+ import {
104
+ compatibleConfigFile,
105
+ compatibleInstructionsFile,
106
+ compatibleMcpFile,
107
+ hasCompatibleHooks,
108
+ missingCompatibleHookEvents
109
+ } from "../chunk-7HGR5GNY.js";
110
+ import {
111
+ createIo
112
+ } from "../chunk-U4TMAANR.js";
113
+ import {
114
+ exitOnHelpFlag
115
+ } from "../chunk-2HFSKYLN.js";
86
116
  import {
87
117
  claudeOtherHolders,
88
118
  claudeUnprovenHolds,
@@ -103,69 +133,48 @@ import {
103
133
  liveBridgeProbe,
104
134
  pusharyHookExecutable,
105
135
  resolveBridgeStub
106
- } from "../chunk-2QGYMY7A.js";
136
+ } from "../chunk-SIHYBIEN.js";
107
137
  import {
108
138
  GEMINI_HOOK_BINARY,
109
139
  hasGeminiHooks,
110
140
  missingGeminiHookEvents
111
- } from "../chunk-3I6IVOZV.js";
112
- import "../chunk-XHKBHWLX.js";
113
- import "../chunk-6ICPEJY5.js";
114
- import "../chunk-KRCR2CRQ.js";
115
- import "../chunk-N6IOSZOE.js";
116
- import "../chunk-CD47ZFFZ.js";
117
- import "../chunk-2VZAALEJ.js";
118
- import "../chunk-DKMD6AWR.js";
119
- import "../chunk-POFBE6ZY.js";
120
- import {
121
- describeReach,
122
- describeRoundTrip,
123
- fetchChannels,
124
- reachVerdict,
125
- roundTripEvidence,
126
- verifyRoundTrip
127
- } from "../chunk-IAD2RT4L.js";
128
- import "../chunk-3EGEA4KH.js";
129
- import "../chunk-QCGNGEGE.js";
130
- import {
131
- SIGNED_OUT_ON_MAC_MESSAGE,
132
- activeKeyVerdictOf,
133
- describeSignedOutKey,
134
- readSignedOutDiagnosis
135
- } from "../chunk-2WXF3QJR.js";
136
- import {
137
- createIo
138
- } from "../chunk-U4TMAANR.js";
139
- import {
140
- exitOnHelpFlag
141
- } from "../chunk-CKV3UPMU.js";
141
+ } from "../chunk-PR2VDVCP.js";
142
+ import "../chunk-ZGADIZDS.js";
143
+ import "../chunk-GQYX24UC.js";
142
144
  import {
143
145
  parseFlags
144
146
  } from "../chunk-GMXKITVA.js";
147
+ import "../chunk-6ICPEJY5.js";
145
148
  import {
146
149
  keyPrefix,
147
150
  readControlMode,
148
151
  readKeySource
149
- } from "../chunk-N4QSPI3B.js";
152
+ } from "../chunk-GTZ4HIHU.js";
153
+ import "../chunk-LDQGURCF.js";
154
+ import "../chunk-N6IOSZOE.js";
155
+ import "../chunk-MD4SVNT6.js";
156
+ import "../chunk-ZSGJYSF2.js";
150
157
  import {
151
158
  callMcpTool,
152
159
  sendMcpRequest
153
- } from "../chunk-MKTJEXZ3.js";
160
+ } from "../chunk-I3W7GJ5R.js";
154
161
  import {
155
162
  checkApiKey,
156
163
  describeKeyCheck
157
- } from "../chunk-LWOO567I.js";
158
- import "../chunk-TCQ43LSG.js";
164
+ } from "../chunk-XXLCYKVS.js";
165
+ import "../chunk-NQ67AF3V.js";
166
+ import "../chunk-POFBE6ZY.js";
167
+ import "../chunk-UM5WXBKN.js";
159
168
  import {
160
169
  getMachineId
161
- } from "../chunk-DUZVXBBU.js";
170
+ } from "../chunk-H4F5O3RE.js";
162
171
  import {
163
172
  UsageError
164
173
  } from "../chunk-7QLSKOSU.js";
165
174
  import {
166
175
  EXIT
167
176
  } from "../chunk-KZERVKTD.js";
168
- import "../chunk-FQ2GORVG.js";
177
+ import "../chunk-Q3UMWSE4.js";
169
178
  import {
170
179
  CODEX_HOOK_EVENTS,
171
180
  CODEX_REQUIRED_APPROVAL_EVENTS,
@@ -196,14 +205,14 @@ import {
196
205
  readGlobalCliInstall,
197
206
  resolvePathBinary,
198
207
  vscodePluginDir
199
- } from "../chunk-ZBHUHJG6.js";
208
+ } from "../chunk-UJZ7AGSC.js";
200
209
  import "../chunk-T7E75EKA.js";
201
210
  import {
202
211
  getBaseUrl
203
- } from "../chunk-5QUPKDI5.js";
212
+ } from "../chunk-2M52CFVO.js";
204
213
  import {
205
214
  NPX_LATEST_COMMAND
206
- } from "../chunk-7DVNSQWF.js";
215
+ } from "../chunk-TCXL5FQQ.js";
207
216
  import {
208
217
  AGENTS,
209
218
  CURSOR_GATE_EVENTS,
@@ -219,7 +228,7 @@ import {
219
228
  hookCompatibleProfile,
220
229
  isHookActivationReport,
221
230
  isNewerVersion
222
- } from "../chunk-I5IJRMNV.js";
231
+ } from "../chunk-5RGA636G.js";
223
232
 
224
233
  // bin/pushary-doctor.ts
225
234
  import { existsSync, readFileSync, writeFileSync } from "fs";
@@ -231,8 +240,11 @@ import { parse as parseTOML } from "smol-toml";
231
240
 
232
241
  // src/diagnostics/global-package.ts
233
242
  var NOT_FOUND = "not found";
234
- var NPM_PREFIX_UNREADABLE = "not found (npm could not report its global prefix)";
243
+ var NPM_PREFIX_UNREPORTED = "npm could not report its global prefix";
244
+ var NPM_PREFIX_UNREADABLE = `${NOT_FOUND} (${NPM_PREFIX_UNREPORTED})`;
235
245
  var BOTH_INSTALLED_WARNING = "npm uninstall -g of either name removes every Pushary command";
246
+ var NOT_INSTALLED_LABEL = "Global package not installed";
247
+ var COVERED_BY_MAC_APP = "not needed: the Pushary Mac app runs this computer's hooks";
236
248
  var describeInstalledPackage = (installed2) => installed2.version === void 0 ? `${installed2.name}, version unreadable` : `${installed2.name} ${installed2.version}`;
237
249
  var describeCommandOwner = (owner) => owner.kind === "owned" ? `the commands run from ${owner.name}` : "which one owns the commands could not be read";
238
250
  var globalPackageCheck = (install) => {
@@ -255,6 +267,10 @@ var globalPackageCheck = (install) => {
255
267
  };
256
268
  }
257
269
  };
270
+ var globalPackageNeedOf = (facts) => facts.macApp.kind === "connected" && !facts.cliOwnsHooks ? "covered_by_mac_app" : "required";
271
+ var isMissingGlobalInstall = (install) => install.kind === "absent" || install.kind === "unavailable";
272
+ var coveredByMacAppDetail = (install) => install.kind === "unavailable" ? `${NPM_PREFIX_UNREPORTED}; ${COVERED_BY_MAC_APP}` : COVERED_BY_MAC_APP;
273
+ var globalPackageFinding = (install, need) => need === "covered_by_mac_app" && isMissingGlobalInstall(install) ? { kind: "not_needed", label: NOT_INSTALLED_LABEL, detail: coveredByMacAppDetail(install) } : { kind: "checked", check: globalPackageCheck(install) };
258
274
 
259
275
  // src/diagnostics/auto-update.ts
260
276
  var globalPackageFreshness = (installed2, latest) => isNewerVersion(latest, installed2) ? { upToDate: false, detail: `${installed2} installed, ${latest} available \u2014 run ${NPX_LATEST_COMMAND} upgrade` } : { upToDate: true, detail: installed2 };
@@ -410,9 +426,6 @@ function inertRegistrations(configs, resolves) {
410
426
  var describeInertRegistration = ({ named }) => `hooks here are registered for "${named}", which this CLI has no profile for, so every one of them stands aside`;
411
427
  var inertRegistrationRemedy = () => `Upgrade with ${NPX_LATEST_COMMAND} upgrade, or re-run setup to rewrite them for an agent this version knows`;
412
428
 
413
- // src/hooks-spec.ts
414
- var CURSOR_GATE_SCRIPT = "pushary-gate.mjs";
415
-
416
429
  // src/diagnostics/activation.ts
417
430
  import { realpathSync } from "fs";
418
431
  import { basename, dirname, join, resolve } from "path";
@@ -676,6 +689,7 @@ var main = async () => {
676
689
  }
677
690
  }
678
691
  const maskKey = (k) => `pk_${k.split(".")[0]?.slice(3, 7)}...`;
692
+ const macApp = readMacAppConnectionWhenKeyless(apiKey);
679
693
  if (keySource === "config-file") {
680
694
  console.log(` ${pass} API key in ${dim(source.origin ?? "the config file")} ${dim(`(${maskKey(apiKey)})`)}`);
681
695
  } else if (keySource === "profile") {
@@ -685,6 +699,8 @@ var main = async () => {
685
699
  `found only in a shell profile (${maskKey(apiKey)}), which hooks do not read \u2014 re-run setup, or open a new terminal`
686
700
  );
687
701
  console.log(` ${dim("Hooks read $PUSHARY_API_KEY, then")} ${dim(pusharyConfigFile())}`);
702
+ } else if (macApp.kind === "connected") {
703
+ check(true, CONNECTED_THROUGH_MAC_APP, `${macApp.keyPrefix}, held by the app; the CLI has no key of its own`);
688
704
  } else {
689
705
  check(!!apiKey, "API key in environment", apiKey ? maskKey(apiKey) : "PUSHARY_API_KEY not set");
690
706
  }
@@ -1240,11 +1256,14 @@ var main = async () => {
1240
1256
  if (claudeInPlay) {
1241
1257
  check(existsSync(SKILL_PATH), "Skill installed", existsSync(SKILL_PATH) ? SKILL_PATH : "not found");
1242
1258
  }
1243
- const globalPackage = globalPackageCheck(readGlobalCliInstall());
1244
- const globalVersion = globalPackage.commands?.version ?? "";
1245
- check(globalPackage.ok, "Global package installed", globalPackage.detail);
1246
- if (globalPackage.commands && globalVersion) {
1247
- const latest = await fetchLatestPublishedVersion({ packageName: globalPackage.commands.name });
1259
+ const globalPackageNeed = globalPackageNeedOf({ macApp, cliOwnsHooks: cliOwnsAnyAgentHooks(macAppBridgeAvailable()) });
1260
+ const globalPackage = globalPackageFinding(readGlobalCliInstall(), globalPackageNeed);
1261
+ const globalCommands = globalPackage.kind === "checked" ? globalPackage.check.commands : void 0;
1262
+ const globalVersion = globalCommands?.version ?? "";
1263
+ if (globalPackage.kind === "checked") check(globalPackage.check.ok, "Global package installed", globalPackage.check.detail);
1264
+ else console.log(` ${dim("\u2013")} ${globalPackage.label} ${dim(`(${globalPackage.detail})`)}`);
1265
+ if (globalCommands && globalVersion) {
1266
+ const latest = await fetchLatestPublishedVersion({ packageName: globalCommands.name });
1248
1267
  if (latest) {
1249
1268
  const freshness = globalPackageFreshness(globalVersion, latest);
1250
1269
  check(freshness.upToDate, "Global package up to date", freshness.detail);
@@ -1298,9 +1317,13 @@ var main = async () => {
1298
1317
  console.log();
1299
1318
  console.log(` ${dim("Connectivity")}`);
1300
1319
  if (!apiKey) {
1301
- check(false, "MCP server reachable", "skipped \u2014 no API key");
1302
- check(false, "API key valid", "skipped");
1303
- check(false, "MCP handshake", "skipped");
1320
+ if (macApp.kind === "connected") {
1321
+ console.log(` ${dim("\u2013")} MCP server, key and handshake ${dim("(the Pushary Mac app holds this computer's key and checks its own connection)")}`);
1322
+ } else {
1323
+ check(false, "MCP server reachable", "skipped \u2014 no API key");
1324
+ check(false, "API key valid", "skipped");
1325
+ check(false, "MCP handshake", "skipped");
1326
+ }
1304
1327
  const keylessSummary = readLedgerSummary(7);
1305
1328
  if (keylessSummary.count > 0) {
1306
1329
  check(false, "Keyless approval moments (7d)", `${keylessSummary.count} counted locally. See them with ${NPX_LATEST_COMMAND} stats`);
@@ -1,52 +1,51 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-WWOHTTVP.js";
4
+ } from "../chunk-Z2Q2VH43.js";
5
5
  import {
6
6
  announceSubscriptionRequired,
7
7
  isDeferAnswer
8
8
  } from "../chunk-5OP5MQI7.js";
9
- import "../chunk-DPGSLWOS.js";
9
+ import "../chunk-DWO4RLYK.js";
10
10
  import "../chunk-SGZJ5LYH.js";
11
- import "../chunk-YIG2R3BJ.js";
12
- import "../chunk-DL7XWKYV.js";
13
- import "../chunk-LKLVTG3V.js";
14
- import "../chunk-2QGYMY7A.js";
15
- import "../chunk-3I6IVOZV.js";
16
- import "../chunk-WG3K4TCH.js";
17
- import "../chunk-ZBK6E2OR.js";
18
- import "../chunk-CLOSJ4ES.js";
19
- import "../chunk-M6BZZFVQ.js";
11
+ import "../chunk-RPQLZLKC.js";
12
+ import "../chunk-APP43AW7.js";
13
+ import "../chunk-MISUKJGW.js";
14
+ import "../chunk-QGRENWJL.js";
20
15
  import "../chunk-XHKBHWLX.js";
16
+ import "../chunk-SIHYBIEN.js";
17
+ import "../chunk-PR2VDVCP.js";
18
+ import "../chunk-ZGADIZDS.js";
19
+ import "../chunk-GQYX24UC.js";
20
+ import "../chunk-GMXKITVA.js";
21
21
  import "../chunk-6ICPEJY5.js";
22
+ import "../chunk-GTZ4HIHU.js";
22
23
  import "../chunk-N6IOSZOE.js";
23
- import "../chunk-CD47ZFFZ.js";
24
+ import "../chunk-MD4SVNT6.js";
24
25
  import {
25
26
  askUser,
26
27
  isDecisionStopped,
27
28
  waitForQuestion
28
- } from "../chunk-2VZAALEJ.js";
29
- import "../chunk-DKMD6AWR.js";
30
- import "../chunk-POFBE6ZY.js";
31
- import "../chunk-GMXKITVA.js";
32
- import "../chunk-N4QSPI3B.js";
29
+ } from "../chunk-ZSGJYSF2.js";
33
30
  import {
34
31
  SubscriptionRequiredError
35
- } from "../chunk-MKTJEXZ3.js";
36
- import "../chunk-LWOO567I.js";
37
- import "../chunk-TCQ43LSG.js";
32
+ } from "../chunk-I3W7GJ5R.js";
33
+ import "../chunk-XXLCYKVS.js";
34
+ import "../chunk-NQ67AF3V.js";
35
+ import "../chunk-POFBE6ZY.js";
36
+ import "../chunk-UM5WXBKN.js";
38
37
  import {
39
38
  getMachineId
40
- } from "../chunk-DUZVXBBU.js";
39
+ } from "../chunk-H4F5O3RE.js";
41
40
  import "../chunk-7QLSKOSU.js";
42
41
  import "../chunk-KZERVKTD.js";
43
- import "../chunk-FQ2GORVG.js";
44
- import "../chunk-ZBHUHJG6.js";
42
+ import "../chunk-Q3UMWSE4.js";
43
+ import "../chunk-UJZ7AGSC.js";
45
44
  import "../chunk-T7E75EKA.js";
46
45
  import {
47
46
  getApiKey
48
- } from "../chunk-5QUPKDI5.js";
49
- import "../chunk-7DVNSQWF.js";
47
+ } from "../chunk-2M52CFVO.js";
48
+ import "../chunk-TCXL5FQQ.js";
50
49
  import {
51
50
  ELICITATION_ANSWERABLE_MODE,
52
51
  effectiveWaitSeconds,
@@ -57,7 +56,7 @@ import {
57
56
  planElicitationAsk,
58
57
  readElicitationFields,
59
58
  renderElicitationOutput
60
- } from "../chunk-I5IJRMNV.js";
59
+ } from "../chunk-5RGA636G.js";
61
60
 
62
61
  // bin/pushary-elicitation-hook.ts
63
62
  import { basename } from "path";
@@ -5,10 +5,10 @@ import {
5
5
  postLiveSession,
6
6
  postLiveSessionUntilAccepted,
7
7
  startLiveSessionHeartbeat
8
- } from "../chunk-WS4H76EP.js";
8
+ } from "../chunk-BTFUSQFB.js";
9
9
  import {
10
10
  resolveProviderBinary
11
- } from "../chunk-I6MJXLMY.js";
11
+ } from "../chunk-EVC765EO.js";
12
12
  import "../chunk-RIVNNBEK.js";
13
13
  import {
14
14
  SESSION_IDLE_TIMEOUT_MS,
@@ -16,29 +16,29 @@ import {
16
16
  idleDeadlinePassed,
17
17
  startProcessOwnership,
18
18
  withSpawnProcessOwnership
19
- } from "../chunk-KF3UZLYI.js";
20
- import "../chunk-ZBK6E2OR.js";
21
- import "../chunk-CLOSJ4ES.js";
19
+ } from "../chunk-2S34OPHS.js";
20
+ import "../chunk-APP43AW7.js";
21
+ import "../chunk-MISUKJGW.js";
22
22
  import {
23
23
  transcriptsEnabled
24
- } from "../chunk-M6BZZFVQ.js";
24
+ } from "../chunk-QGRENWJL.js";
25
25
  import {
26
26
  spawnClaude
27
27
  } from "../chunk-XHKBHWLX.js";
28
28
  import "../chunk-6ICPEJY5.js";
29
- import "../chunk-N4QSPI3B.js";
29
+ import "../chunk-GTZ4HIHU.js";
30
30
  import {
31
31
  getMachineId
32
- } from "../chunk-DUZVXBBU.js";
33
- import "../chunk-FQ2GORVG.js";
34
- import "../chunk-ZBHUHJG6.js";
32
+ } from "../chunk-H4F5O3RE.js";
33
+ import "../chunk-Q3UMWSE4.js";
34
+ import "../chunk-UJZ7AGSC.js";
35
35
  import "../chunk-T7E75EKA.js";
36
36
  import {
37
37
  getApiKey,
38
38
  getBaseUrl
39
- } from "../chunk-5QUPKDI5.js";
40
- import "../chunk-7DVNSQWF.js";
41
- import "../chunk-I5IJRMNV.js";
39
+ } from "../chunk-2M52CFVO.js";
40
+ import "../chunk-TCXL5FQQ.js";
41
+ import "../chunk-5RGA636G.js";
42
42
 
43
43
  // bin/pushary-gemini-bridge.ts
44
44
  import { existsSync } from "fs";
@@ -1,32 +1,33 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  triggerAutoUpdate
4
- } from "../chunk-7PT35RY2.js";
4
+ } from "../chunk-U5FP5JIS.js";
5
5
  import {
6
6
  isGatingMoment,
7
7
  recordKeylessMoment
8
- } from "../chunk-ZSTSEBG7.js";
8
+ } from "../chunk-IIVZZMSO.js";
9
9
  import {
10
10
  readHookInput
11
- } from "../chunk-WWOHTTVP.js";
11
+ } from "../chunk-Z2Q2VH43.js";
12
12
  import {
13
13
  announceSubscriptionRequired,
14
14
  denyReasonFrom,
15
15
  isDeferAnswer
16
16
  } from "../chunk-5OP5MQI7.js";
17
- import "../chunk-DPGSLWOS.js";
17
+ import "../chunk-DWO4RLYK.js";
18
18
  import "../chunk-SGZJ5LYH.js";
19
- import "../chunk-YIG2R3BJ.js";
20
- import "../chunk-DL7XWKYV.js";
21
- import "../chunk-LKLVTG3V.js";
22
- import "../chunk-2QGYMY7A.js";
23
- import "../chunk-3I6IVOZV.js";
24
- import "../chunk-WG3K4TCH.js";
25
- import "../chunk-ZBK6E2OR.js";
26
- import "../chunk-CLOSJ4ES.js";
27
- import "../chunk-M6BZZFVQ.js";
19
+ import "../chunk-RPQLZLKC.js";
20
+ import "../chunk-APP43AW7.js";
21
+ import "../chunk-MISUKJGW.js";
22
+ import "../chunk-QGRENWJL.js";
28
23
  import "../chunk-XHKBHWLX.js";
24
+ import "../chunk-SIHYBIEN.js";
25
+ import "../chunk-PR2VDVCP.js";
26
+ import "../chunk-ZGADIZDS.js";
27
+ import "../chunk-GQYX24UC.js";
28
+ import "../chunk-GMXKITVA.js";
29
29
  import "../chunk-6ICPEJY5.js";
30
+ import "../chunk-GTZ4HIHU.js";
30
31
  import {
31
32
  UNNAMED_ACTION,
32
33
  deriveActionBody,
@@ -45,43 +46,41 @@ import {
45
46
  repoKeyFor,
46
47
  reportEvent,
47
48
  scopePathFor
48
- } from "../chunk-KRCR2CRQ.js";
49
+ } from "../chunk-LDQGURCF.js";
49
50
  import {
50
51
  DEFAULT_SESSION
51
52
  } from "../chunk-N6IOSZOE.js";
52
- import "../chunk-CD47ZFFZ.js";
53
+ import "../chunk-MD4SVNT6.js";
53
54
  import {
54
55
  askUser,
55
56
  isDecisionStopped,
56
57
  isLocalQuestionHandoff,
57
58
  sendNotification,
58
59
  waitForQuestion
59
- } from "../chunk-2VZAALEJ.js";
60
+ } from "../chunk-ZSGJYSF2.js";
61
+ import {
62
+ SubscriptionRequiredError
63
+ } from "../chunk-I3W7GJ5R.js";
64
+ import "../chunk-XXLCYKVS.js";
60
65
  import {
61
66
  exitAfterClientReports
62
- } from "../chunk-DKMD6AWR.js";
67
+ } from "../chunk-NQ67AF3V.js";
63
68
  import "../chunk-POFBE6ZY.js";
64
- import "../chunk-GMXKITVA.js";
65
- import "../chunk-N4QSPI3B.js";
66
- import {
67
- SubscriptionRequiredError
68
- } from "../chunk-MKTJEXZ3.js";
69
- import "../chunk-LWOO567I.js";
70
- import "../chunk-TCQ43LSG.js";
69
+ import "../chunk-UM5WXBKN.js";
71
70
  import {
72
71
  getMachineId
73
- } from "../chunk-DUZVXBBU.js";
72
+ } from "../chunk-H4F5O3RE.js";
74
73
  import "../chunk-7QLSKOSU.js";
75
74
  import {
76
75
  EXIT
77
76
  } from "../chunk-KZERVKTD.js";
78
- import "../chunk-FQ2GORVG.js";
79
- import "../chunk-ZBHUHJG6.js";
77
+ import "../chunk-Q3UMWSE4.js";
78
+ import "../chunk-UJZ7AGSC.js";
80
79
  import "../chunk-T7E75EKA.js";
81
80
  import {
82
81
  getApiKey
83
- } from "../chunk-5QUPKDI5.js";
84
- import "../chunk-7DVNSQWF.js";
82
+ } from "../chunk-2M52CFVO.js";
83
+ import "../chunk-TCXL5FQQ.js";
85
84
  import {
86
85
  DECISION_STOP_REASON,
87
86
  KILL_REASON,
@@ -91,7 +90,7 @@ import {
91
90
  hookWaitClamped,
92
91
  hookWaitDeadline,
93
92
  resolveGate
94
- } from "../chunk-I5IJRMNV.js";
93
+ } from "../chunk-5RGA636G.js";
95
94
 
96
95
  // bin/pushary-gemini-hook.ts
97
96
  import { basename } from "path";
@@ -1,62 +1,61 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePreToolUse
4
- } from "../chunk-2A53H4S6.js";
5
- import {
6
- activeHookSource,
7
- normalizeToolCall,
8
- profileFromArgv
9
- } from "../chunk-KHNFLYJO.js";
10
- import "../chunk-IHO3YQAN.js";
11
- import "../chunk-ZSTSEBG7.js";
4
+ } from "../chunk-5MQYA3YL.js";
5
+ import "../chunk-CJYM4ZHV.js";
6
+ import "../chunk-IIVZZMSO.js";
12
7
  import {
13
8
  readToolHookInput
14
- } from "../chunk-WWOHTTVP.js";
9
+ } from "../chunk-Z2Q2VH43.js";
15
10
  import "../chunk-5OP5MQI7.js";
16
- import "../chunk-DPGSLWOS.js";
11
+ import "../chunk-DWO4RLYK.js";
17
12
  import "../chunk-SGZJ5LYH.js";
18
- import "../chunk-YIG2R3BJ.js";
19
- import "../chunk-DL7XWKYV.js";
20
- import "../chunk-LKLVTG3V.js";
21
- import "../chunk-2QGYMY7A.js";
22
- import "../chunk-3I6IVOZV.js";
23
- import "../chunk-WG3K4TCH.js";
24
- import "../chunk-ZBK6E2OR.js";
25
- import "../chunk-CLOSJ4ES.js";
26
- import "../chunk-M6BZZFVQ.js";
13
+ import "../chunk-RPQLZLKC.js";
14
+ import "../chunk-APP43AW7.js";
15
+ import "../chunk-MISUKJGW.js";
16
+ import "../chunk-QGRENWJL.js";
27
17
  import "../chunk-XHKBHWLX.js";
18
+ import {
19
+ activeHookSource,
20
+ normalizeToolCall,
21
+ profileFromArgv
22
+ } from "../chunk-7HGR5GNY.js";
23
+ import {
24
+ exitOnHelpFlag
25
+ } from "../chunk-2HFSKYLN.js";
26
+ import "../chunk-SIHYBIEN.js";
27
+ import "../chunk-PR2VDVCP.js";
28
+ import "../chunk-ZGADIZDS.js";
29
+ import "../chunk-GQYX24UC.js";
30
+ import "../chunk-GMXKITVA.js";
28
31
  import "../chunk-6ICPEJY5.js";
32
+ import "../chunk-GTZ4HIHU.js";
29
33
  import {
30
34
  canonicalGateInputs
31
- } from "../chunk-KRCR2CRQ.js";
35
+ } from "../chunk-LDQGURCF.js";
32
36
  import "../chunk-N6IOSZOE.js";
33
- import "../chunk-CD47ZFFZ.js";
34
- import "../chunk-2VZAALEJ.js";
37
+ import "../chunk-MD4SVNT6.js";
38
+ import "../chunk-ZSGJYSF2.js";
39
+ import "../chunk-I3W7GJ5R.js";
40
+ import "../chunk-XXLCYKVS.js";
35
41
  import {
36
42
  exitAfterClientReports
37
- } from "../chunk-DKMD6AWR.js";
43
+ } from "../chunk-NQ67AF3V.js";
38
44
  import "../chunk-POFBE6ZY.js";
39
- import {
40
- exitOnHelpFlag
41
- } from "../chunk-CKV3UPMU.js";
42
- import "../chunk-GMXKITVA.js";
43
- import "../chunk-N4QSPI3B.js";
44
- import "../chunk-MKTJEXZ3.js";
45
- import "../chunk-LWOO567I.js";
46
- import "../chunk-TCQ43LSG.js";
47
- import "../chunk-DUZVXBBU.js";
45
+ import "../chunk-UM5WXBKN.js";
46
+ import "../chunk-H4F5O3RE.js";
48
47
  import "../chunk-7QLSKOSU.js";
49
48
  import {
50
49
  EXIT
51
50
  } from "../chunk-KZERVKTD.js";
52
- import "../chunk-FQ2GORVG.js";
53
- import "../chunk-ZBHUHJG6.js";
51
+ import "../chunk-Q3UMWSE4.js";
52
+ import "../chunk-UJZ7AGSC.js";
54
53
  import "../chunk-T7E75EKA.js";
55
- import "../chunk-5QUPKDI5.js";
56
- import "../chunk-7DVNSQWF.js";
54
+ import "../chunk-2M52CFVO.js";
55
+ import "../chunk-TCXL5FQQ.js";
57
56
  import {
58
57
  renderPreToolUseVerdict
59
- } from "../chunk-I5IJRMNV.js";
58
+ } from "../chunk-5RGA636G.js";
60
59
 
61
60
  // bin/pushary-hook.ts
62
61
  exitOnHelpFlag("hook");