pushary 1.9.143 → 1.9.145

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 (137) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/data/SKILL.md +4 -2
  3. package/data/cursor-plugin/skills/pushary/SKILL.md +3 -1
  4. package/data/vscode-plugin/skills/pushary/SKILL.md +3 -1
  5. package/dist/{api-2YC2KSIM.js → api-KWJQMO6G.js} +11 -11
  6. package/dist/bin/pushary-audit.js +3 -3
  7. package/dist/bin/pushary-bell-hook.js +28 -28
  8. package/dist/bin/pushary-bell.js +10 -10
  9. package/dist/bin/pushary-claude.js +27 -27
  10. package/dist/bin/pushary-clean.js +35 -35
  11. package/dist/bin/pushary-codex-bridge.js +23 -23
  12. package/dist/bin/pushary-codex-hook.js +35 -35
  13. package/dist/bin/pushary-codex-session.js +8 -8
  14. package/dist/bin/pushary-codex.js +16 -16
  15. package/dist/bin/pushary-connect.js +29 -29
  16. package/dist/bin/pushary-cowork.js +5 -5
  17. package/dist/bin/pushary-daemon.js +43 -43
  18. package/dist/bin/pushary-disconnect.js +28 -28
  19. package/dist/bin/pushary-display-hook.js +7 -0
  20. package/dist/bin/pushary-doctor.js +58 -43
  21. package/dist/bin/pushary-elicitation-hook.js +28 -28
  22. package/dist/bin/pushary-gemini-bridge.js +17 -17
  23. package/dist/bin/pushary-gemini-hook.js +32 -32
  24. package/dist/bin/pushary-hook.js +35 -35
  25. package/dist/bin/pushary-login.js +21 -21
  26. package/dist/bin/pushary-logout.js +27 -27
  27. package/dist/bin/pushary-mcp.js +12 -12
  28. package/dist/bin/pushary-mode.js +15 -15
  29. package/dist/bin/pushary-notification-hook.js +27 -27
  30. package/dist/bin/pushary-opencode-hook.js +31 -31
  31. package/dist/bin/pushary-permission-denied-hook.js +35 -35
  32. package/dist/bin/pushary-permission-hook.js +35 -35
  33. package/dist/bin/pushary-post-hook.js +28 -28
  34. package/dist/bin/pushary-prompt-hook.js +27 -27
  35. package/dist/bin/pushary-session-end-hook.js +27 -27
  36. package/dist/bin/pushary-session-start-hook.js +36 -36
  37. package/dist/bin/pushary-setup.js +122 -54
  38. package/dist/bin/pushary-stats.js +5 -5
  39. package/dist/bin/pushary-status.js +33 -33
  40. package/dist/bin/pushary-stop-hook.js +27 -27
  41. package/dist/bin/pushary-stopfailure-hook.js +27 -27
  42. package/dist/bin/pushary-suggestions.js +15 -15
  43. package/dist/bin/pushary-transcript-register.js +17 -17
  44. package/dist/bin/pushary-transcripts.js +25 -25
  45. package/dist/bin/pushary-upgrade.js +41 -41
  46. package/dist/bin/pushary-wait.js +15 -15
  47. package/dist/bin/pushary.js +7 -7
  48. package/dist/{chunk-XWYCFODT.js → chunk-2ELNRGNX.js} +3 -3
  49. package/dist/{chunk-PYSDCPZ3.js → chunk-2LGDEPVL.js} +6 -6
  50. package/dist/{chunk-5TZYAMGW.js → chunk-33BYPZ52.js} +1 -1
  51. package/dist/{chunk-LUVSHGLH.js → chunk-4KDRT3OA.js} +1 -1
  52. package/dist/{chunk-B4VIT5N3.js → chunk-4L5WPDTB.js} +1 -1
  53. package/dist/{chunk-EGUT2MWV.js → chunk-52UXNCZG.js} +3 -3
  54. package/dist/{chunk-NZHRH4RR.js → chunk-5TWW7ZUL.js} +5 -5
  55. package/dist/{chunk-DU4KCXC2.js → chunk-63WX5KZN.js} +3 -3
  56. package/dist/{chunk-DOXH5BV4.js → chunk-6IWOMXUF.js} +4 -4
  57. package/dist/{chunk-R7FSMUHG.js → chunk-6LZ7MXHD.js} +2 -1
  58. package/dist/{chunk-EMODTMHE.js → chunk-6UK4K5RS.js} +1 -1
  59. package/dist/{chunk-IG7NGXBS.js → chunk-72LP4RPC.js} +3 -2
  60. package/dist/{chunk-MMS7R3VO.js → chunk-7LTP2GHO.js} +2 -2
  61. package/dist/{chunk-QESEICW4.js → chunk-A2H256WR.js} +1 -1
  62. package/dist/{chunk-4YH326C5.js → chunk-B4JQIH5M.js} +6 -6
  63. package/dist/{chunk-4EBJ4PTZ.js → chunk-BWREST4F.js} +1 -1
  64. package/dist/{chunk-ZVJIJPQY.js → chunk-BYKRAYGD.js} +1 -1
  65. package/dist/{chunk-3VOUWGFF.js → chunk-CUR2DCZN.js} +4 -4
  66. package/dist/chunk-D3UFDCTQ.js +87 -0
  67. package/dist/{chunk-UIZE4YMU.js → chunk-DZIZ3XFL.js} +2 -2
  68. package/dist/{chunk-QQHUUPPW.js → chunk-EPWOARGR.js} +2 -2
  69. package/dist/{chunk-LWQLM3AO.js → chunk-FCSPMSDC.js} +4 -4
  70. package/dist/{chunk-X2MC2CF3.js → chunk-FNAH3YJC.js} +16 -16
  71. package/dist/{chunk-ZKKZEVNI.js → chunk-G3VSMI7K.js} +2 -2
  72. package/dist/{chunk-SYZF5SDG.js → chunk-GK5X2ZTN.js} +5 -5
  73. package/dist/{chunk-UJETZZG5.js → chunk-GURIOZE7.js} +8 -8
  74. package/dist/{chunk-7VMVMC4H.js → chunk-HOQH5CLZ.js} +1 -1
  75. package/dist/{chunk-LS6BU5RM.js → chunk-IDLOJIIS.js} +1 -1
  76. package/dist/{chunk-P5QXH5QI.js → chunk-IIN26HL7.js} +1 -1
  77. package/dist/{chunk-22CXL7YI.js → chunk-IRPIMQ7U.js} +3 -3
  78. package/dist/{chunk-4JTZZXB3.js → chunk-JKWUF776.js} +3 -3
  79. package/dist/{chunk-7QWH257P.js → chunk-JZT2LPRM.js} +1 -1
  80. package/dist/{chunk-QGJK3NAR.js → chunk-K2SKUBYY.js} +12 -12
  81. package/dist/{chunk-K7MVCPH5.js → chunk-KFALRZIN.js} +4 -4
  82. package/dist/{chunk-44Z6MQZ2.js → chunk-KGFB2LEB.js} +3 -3
  83. package/dist/{chunk-NOTW7GOC.js → chunk-KKPT7ROP.js} +2 -2
  84. package/dist/{chunk-4Z7YVVKQ.js → chunk-KS3PNTRT.js} +1 -1
  85. package/dist/{chunk-6JLANX5L.js → chunk-L4OGTRVW.js} +4 -4
  86. package/dist/{chunk-QLGLUUOP.js → chunk-LD4R2P6N.js} +1 -1
  87. package/dist/{chunk-4OX4SJGA.js → chunk-LJRPWUST.js} +3 -3
  88. package/dist/{chunk-DDJHPMBJ.js → chunk-LMU6NG2G.js} +1 -1
  89. package/dist/{chunk-C5LIS3XM.js → chunk-LQXUWXQP.js} +7 -0
  90. package/dist/{chunk-MOYEHNFP.js → chunk-MKHVLDMN.js} +2 -2
  91. package/dist/{chunk-G3G7DWR3.js → chunk-MNU5N3CQ.js} +11 -11
  92. package/dist/{chunk-BHKODM4L.js → chunk-MOC2DN42.js} +2 -2
  93. package/dist/{chunk-FS47XZCE.js → chunk-NTMKJRQ3.js} +2 -2
  94. package/dist/{chunk-WSKBXADV.js → chunk-OONMKLUF.js} +4 -4
  95. package/dist/{chunk-NQF652IG.js → chunk-PXZTCR4M.js} +2 -2
  96. package/dist/{chunk-V7CS72Q5.js → chunk-PY6CM4NK.js} +6 -6
  97. package/dist/{chunk-G7G2ZPT4.js → chunk-Q6P7G4NY.js} +4 -4
  98. package/dist/{chunk-KRSZFHNS.js → chunk-QKTF7WS6.js} +67 -4
  99. package/dist/{chunk-5RSM5DRT.js → chunk-R34RWVN2.js} +6 -5
  100. package/dist/{chunk-FYB6HBHQ.js → chunk-RO6EVL5C.js} +2 -2
  101. package/dist/{chunk-SMF4TBPU.js → chunk-RWLNTZK5.js} +5 -5
  102. package/dist/{chunk-LTPKSJWY.js → chunk-S3A4PCRR.js} +10 -10
  103. package/dist/{chunk-YCU7Y77H.js → chunk-S7HGPKCL.js} +1 -1
  104. package/dist/{chunk-MH5BRZOQ.js → chunk-SQL5YXUH.js} +1 -1
  105. package/dist/{chunk-MLOYBLO4.js → chunk-TJXJGMSP.js} +4 -4
  106. package/dist/{chunk-MQF6MQMR.js → chunk-TRV3ETGY.js} +5 -5
  107. package/dist/{chunk-42DRRA6N.js → chunk-USFZJAB4.js} +1 -1
  108. package/dist/{chunk-QFZNPZRO.js → chunk-VTJ4WZOC.js} +3 -3
  109. package/dist/{chunk-ZF4CPOO7.js → chunk-WH4ODOCE.js} +6 -6
  110. package/dist/{chunk-3WZMIDGX.js → chunk-WMBWKPKJ.js} +5 -5
  111. package/dist/{chunk-HIIXYZYV.js → chunk-WOSO4YFQ.js} +3 -3
  112. package/dist/{chunk-V53QYJNY.js → chunk-WPBWJMBZ.js} +5 -5
  113. package/dist/{chunk-USNGPJXF.js → chunk-WUT3PO33.js} +8 -8
  114. package/dist/{chunk-R27HXRSK.js → chunk-Y7INHH5G.js} +3 -3
  115. package/dist/{chunk-ZDOTNMGL.js → chunk-YNCVSKUW.js} +10 -8
  116. package/dist/{chunk-DZLLKJJT.js → chunk-YRJZF5RG.js} +3 -3
  117. package/dist/{chunk-CNURORKI.js → chunk-YU5XE6VC.js} +6 -6
  118. package/dist/{chunk-TKFNIDZK.js → chunk-YZA3YBHX.js} +2 -2
  119. package/dist/{chunk-53KLGXFL.js → chunk-ZBMVOMFG.js} +4 -3
  120. package/dist/{chunk-H33CFJOF.js → chunk-ZJZNT2G5.js} +4 -4
  121. package/dist/{chunk-HLWS6ADK.js → chunk-ZORBUQFG.js} +2 -2
  122. package/dist/{chunk-KP6FVUCC.js → chunk-ZSOCJHL7.js} +188 -13
  123. package/dist/{codex-app-cards-switch-EGUHSLTG.js → codex-app-cards-switch-F7WQ7Y3I.js} +11 -11
  124. package/dist/{codex-card-routing-I6YOJBTT.js → codex-card-routing-EVL5L36G.js} +2 -2
  125. package/dist/{codex-desktop-launch-6UN5CWCX.js → codex-desktop-launch-PL6Z2ELZ.js} +1 -1
  126. package/dist/{codex-session-launch-7R3HNIDJ.js → codex-session-launch-7NQEAUDU.js} +20 -20
  127. package/dist/{config-2CHOLFNB.js → config-KFFD4VWH.js} +3 -3
  128. package/dist/{global-upgrade-CCVIYELF.js → global-upgrade-L3CY6EFF.js} +9 -9
  129. package/dist/{identity-7QA3EDOM.js → identity-DPYYIMHL.js} +4 -4
  130. package/dist/{live-capabilities-SDMX6CPZ.js → live-capabilities-QJEXK6GH.js} +4 -4
  131. package/dist/{paths-ZC6XY73Q.js → paths-PEF6C64P.js} +3 -3
  132. package/dist/{reapply-W6AIK5PH.js → reapply-7APCQRRK.js} +29 -29
  133. package/dist/src/index.js +34 -34
  134. package/dist/{upgrade-lock-BRVUBSLD.js → upgrade-lock-A7OKXMRW.js} +4 -4
  135. package/dist/{usage-GWUTCS5A.js → usage-HSS33762.js} +3 -3
  136. package/package.json +1 -1
  137. package/dist/chunk-I6HXZIER.js +0 -31
@@ -22,7 +22,7 @@ import {
22
22
  runBrowserLogin,
23
23
  switchBackToTheShellKeyLine,
24
24
  wrongAccountHintPlacement
25
- } from "../chunk-H33CFJOF.js";
25
+ } from "../chunk-ZJZNT2G5.js";
26
26
  import {
27
27
  INSTALL_NODE_STEP,
28
28
  NPM_FILE_IN_USE_STEP,
@@ -36,23 +36,25 @@ import {
36
36
  renderCommandSurface,
37
37
  teamOfferLines,
38
38
  unverifiedKeyClosingReason
39
- } from "../chunk-MLOYBLO4.js";
39
+ } from "../chunk-TJXJGMSP.js";
40
40
  import {
41
41
  coworkOutput,
42
42
  coworkSelection
43
- } from "../chunk-4JTZZXB3.js";
43
+ } from "../chunk-JKWUF776.js";
44
44
  import "../chunk-PUZZELE6.js";
45
45
  import {
46
46
  readCodexHooksOnDisk
47
- } from "../chunk-UJETZZG5.js";
48
- import "../chunk-FS47XZCE.js";
47
+ } from "../chunk-GURIOZE7.js";
48
+ import "../chunk-NTMKJRQ3.js";
49
49
  import {
50
50
  clearDeclinedAgent,
51
51
  declinedAgentForSetupChoice
52
- } from "../chunk-NOTW7GOC.js";
52
+ } from "../chunk-KKPT7ROP.js";
53
53
  import {
54
+ gateHermesShell,
55
+ readHermesShellGate,
54
56
  saveSetupFailure
55
- } from "../chunk-I6HXZIER.js";
57
+ } from "../chunk-D3UFDCTQ.js";
56
58
  import {
57
59
  CODEX_NEEDS_A_NEWER_VERSION,
58
60
  CODEX_SETTINGS_STOP_A_HOOK,
@@ -61,16 +63,19 @@ import {
61
63
  codexTrustOutcome,
62
64
  describeCodexTrustConfirmation,
63
65
  describeHermesInstallFailure,
66
+ describeHermesShellGate,
67
+ describeHermesShellGateFailure,
64
68
  describeHermesState,
69
+ hermesGateShellCommand,
65
70
  needsCodexTrustStep
66
- } from "../chunk-KRSZFHNS.js";
71
+ } from "../chunk-QKTF7WS6.js";
67
72
  import {
68
73
  describeWaitLadder
69
74
  } from "../chunk-CVWG2N3Y.js";
70
75
  import {
71
76
  writeJsonError,
72
77
  writeStdoutFully
73
- } from "../chunk-QLGLUUOP.js";
78
+ } from "../chunk-LD4R2P6N.js";
74
79
  import {
75
80
  confirmAppConnection,
76
81
  connectDevice,
@@ -79,7 +84,7 @@ import {
79
84
  pairingEscapeApplies,
80
85
  printConnectInstructions,
81
86
  waitForYourPhone
82
- } from "../chunk-LWQLM3AO.js";
87
+ } from "../chunk-FCSPMSDC.js";
83
88
  import "../chunk-3EGEA4KH.js";
84
89
  import {
85
90
  SETUP_AGENT_NAME,
@@ -88,7 +93,7 @@ import {
88
93
  roundTripEvidence,
89
94
  roundTripWasAnswered,
90
95
  verifyRoundTrip
91
- } from "../chunk-V7CS72Q5.js";
96
+ } from "../chunk-PY6CM4NK.js";
92
97
  import {
93
98
  keepLinuxDaemonAfterLogout,
94
99
  lingerReportOf
@@ -96,10 +101,10 @@ import {
96
101
  import {
97
102
  readManagedControlEvidence,
98
103
  waitForMachineReadiness
99
- } from "../chunk-SMF4TBPU.js";
104
+ } from "../chunk-RWLNTZK5.js";
100
105
  import {
101
106
  ensureCodexTrustsPusharyHooks
102
- } from "../chunk-HLWS6ADK.js";
107
+ } from "../chunk-ZORBUQFG.js";
103
108
  import {
104
109
  describeSetupSideEffects,
105
110
  installAgentSkill,
@@ -107,7 +112,7 @@ import {
107
112
  } from "../chunk-XR27HPYC.js";
108
113
  import {
109
114
  codexEngineBehindLauncher
110
- } from "../chunk-44Z6MQZ2.js";
115
+ } from "../chunk-KGFB2LEB.js";
111
116
  import "../chunk-XCEN33UP.js";
112
117
  import {
113
118
  CURSOR_PLUGIN_BACKUP_INFIX,
@@ -117,7 +122,7 @@ import {
117
122
  soleGateFile,
118
123
  soleGateReceipt,
119
124
  soleGateReceiptFile
120
- } from "../chunk-DOXH5BV4.js";
125
+ } from "../chunk-6IWOMXUF.js";
121
126
  import {
122
127
  describeDetection,
123
128
  detectAllAgents,
@@ -126,31 +131,35 @@ import {
126
131
  registerPluginLocation,
127
132
  shortenHome,
128
133
  vscodeSettingsTargets
129
- } from "../chunk-G7G2ZPT4.js";
134
+ } from "../chunk-Q6P7G4NY.js";
130
135
  import {
131
136
  mcpServerBearer,
132
137
  readMacAppAgentKey
133
- } from "../chunk-K7MVCPH5.js";
138
+ } from "../chunk-KFALRZIN.js";
134
139
  import {
135
140
  keyScopeOf
136
- } from "../chunk-TKFNIDZK.js";
141
+ } from "../chunk-YZA3YBHX.js";
137
142
  import {
138
143
  HERMES_CONFIG_FILE,
144
+ HERMES_GATE_TOOLS_KEY,
145
+ HERMES_SHELL_TOOL,
139
146
  defaultHermesHome,
140
147
  findHermesLauncher,
141
148
  hermesPluginDirectory,
142
149
  hermesReceiptPaths,
150
+ hermesShellGateChoice,
143
151
  inspectHermesWiring,
144
152
  installHermesPlugin,
145
153
  isHermesWired,
146
154
  routesHermesQuestions,
147
155
  runsAnOlderPlugin,
148
156
  shippedHermesPlugin
149
- } from "../chunk-KP6FVUCC.js";
157
+ } from "../chunk-ZSOCJHL7.js";
150
158
  import {
151
159
  setHumanStream
152
160
  } from "../chunk-QCGNGEGE.js";
153
161
  import {
162
+ FX_PICKS_UP_CONFIGURATION,
154
163
  FX_PUSHARY_TOOLS_RULE,
155
164
  FX_QUESTION_TOOL,
156
165
  cliFxBridgeEntry,
@@ -165,7 +174,7 @@ import {
165
174
  readFxProfileForSetup,
166
175
  withFxPusharyServer,
167
176
  writeFxProfile
168
- } from "../chunk-ZDOTNMGL.js";
177
+ } from "../chunk-YNCVSKUW.js";
169
178
  import {
170
179
  AgentConfigError,
171
180
  afterAgentFailureNote,
@@ -178,10 +187,10 @@ import {
178
187
  retryAgentCommand,
179
188
  writeSetupConfigFile,
180
189
  writeSetupConfigJson
181
- } from "../chunk-XWYCFODT.js";
190
+ } from "../chunk-2ELNRGNX.js";
182
191
  import {
183
192
  MCP_BRIDGE_BINARY
184
- } from "../chunk-EGUT2MWV.js";
193
+ } from "../chunk-52UXNCZG.js";
185
194
  import {
186
195
  OPENCODE_HOOK_BINARY,
187
196
  addOpenCodeMcpServer,
@@ -199,7 +208,7 @@ import {
199
208
  openCodePluginFile,
200
209
  openCodeWired,
201
210
  withOpenCodeAskRules
202
- } from "../chunk-SYZF5SDG.js";
211
+ } from "../chunk-GK5X2ZTN.js";
203
212
  import {
204
213
  ansiPainter,
205
214
  createIo,
@@ -215,16 +224,16 @@ import {
215
224
  nodeCodexInstallProbe,
216
225
  phoneStartIsRequired,
217
226
  resolveControlPolicy
218
- } from "../chunk-R27HXRSK.js";
227
+ } from "../chunk-Y7INHH5G.js";
219
228
  import {
220
229
  detectClaudeVersion
221
- } from "../chunk-UIZE4YMU.js";
230
+ } from "../chunk-DZIZ3XFL.js";
222
231
  import "../chunk-CYTPQDQY.js";
223
232
  import {
224
233
  describeAutoUpdateAnnouncement,
225
234
  takeAutoUpdateAnnouncement
226
- } from "../chunk-MOYEHNFP.js";
227
- import "../chunk-6JLANX5L.js";
235
+ } from "../chunk-MKHVLDMN.js";
236
+ import "../chunk-L4OGTRVW.js";
228
237
  import "../chunk-VAE5JBR5.js";
229
238
  import "../chunk-G66WIAST.js";
230
239
  import {
@@ -240,7 +249,7 @@ import {
240
249
  compatibleRecord,
241
250
  compatibleTargetPaths,
242
251
  hasCompatibleHooks
243
- } from "../chunk-5RSM5DRT.js";
252
+ } from "../chunk-R34RWVN2.js";
244
253
  import {
245
254
  DAEMON_COLD_START_TIMEOUT_MS,
246
255
  clearDaemonNeedsLogin,
@@ -259,7 +268,7 @@ import {
259
268
  stopDaemonService,
260
269
  versionManagerOf,
261
270
  waitForDaemonRemoteProof
262
- } from "../chunk-ZF4CPOO7.js";
271
+ } from "../chunk-WH4ODOCE.js";
263
272
  import {
264
273
  GEMINI_HOOK_BINARY,
265
274
  GEMINI_HOOK_EVENTS,
@@ -275,38 +284,38 @@ import {
275
284
  geminiWired,
276
285
  planHooks,
277
286
  pusharyHookExecutable
278
- } from "../chunk-3VOUWGFF.js";
287
+ } from "../chunk-CUR2DCZN.js";
279
288
  import {
280
289
  reportEvent
281
- } from "../chunk-QGJK3NAR.js";
282
- import "../chunk-7QWH257P.js";
290
+ } from "../chunk-K2SKUBYY.js";
291
+ import "../chunk-JZT2LPRM.js";
283
292
  import {
284
293
  AGENT_CHOICES,
285
294
  effectiveAgentSelection,
286
295
  effectiveControlMode,
287
296
  effectiveVerify,
288
297
  parseSetupOptions
289
- } from "../chunk-53KLGXFL.js";
290
- import "../chunk-MH5BRZOQ.js";
298
+ } from "../chunk-ZBMVOMFG.js";
299
+ import "../chunk-SQL5YXUH.js";
291
300
  import "../chunk-YPY4YCIZ.js";
292
301
  import "../chunk-XMSDA5WA.js";
293
302
  import {
294
303
  transcriptPreferenceForSetup
295
- } from "../chunk-7VMVMC4H.js";
296
- import "../chunk-EMODTMHE.js";
297
- import "../chunk-CNURORKI.js";
304
+ } from "../chunk-HOQH5CLZ.js";
305
+ import "../chunk-6UK4K5RS.js";
306
+ import "../chunk-YU5XE6VC.js";
298
307
  import "../chunk-POFBE6ZY.js";
299
- import "../chunk-V53QYJNY.js";
308
+ import "../chunk-WPBWJMBZ.js";
300
309
  import {
301
310
  checkApiKey,
302
311
  describeKeyCheck,
303
312
  samePusharyAccount
304
- } from "../chunk-DZLLKJJT.js";
305
- import "../chunk-4OX4SJGA.js";
313
+ } from "../chunk-YRJZF5RG.js";
314
+ import "../chunk-LJRPWUST.js";
306
315
  import "../chunk-H6CL3T2S.js";
307
- import "../chunk-ZVJIJPQY.js";
308
- import "../chunk-YCU7Y77H.js";
309
- import "../chunk-4Z7YVVKQ.js";
316
+ import "../chunk-BYKRAYGD.js";
317
+ import "../chunk-S7HGPKCL.js";
318
+ import "../chunk-KS3PNTRT.js";
310
319
  import {
311
320
  UsageError
312
321
  } from "../chunk-YU2EUD7O.js";
@@ -326,8 +335,8 @@ import {
326
335
  resolveShellRc,
327
336
  shellKeyWasReplaced,
328
337
  writeKey
329
- } from "../chunk-HIIXYZYV.js";
330
- import "../chunk-BHKODM4L.js";
338
+ } from "../chunk-WOSO4YFQ.js";
339
+ import "../chunk-MOC2DN42.js";
331
340
  import {
332
341
  CLINE_AUTO_APPROVE_STEP,
333
342
  CLINE_RELOAD_STEP,
@@ -386,7 +395,7 @@ import {
386
395
  vscodePluginDir,
387
396
  vscodePluginMcp,
388
397
  writeInstructionBlock
389
- } from "../chunk-IG7NGXBS.js";
398
+ } from "../chunk-72LP4RPC.js";
390
399
  import {
391
400
  NpmMissingError,
392
401
  compareVersion,
@@ -397,10 +406,10 @@ import {
397
406
  plannedGlobalPackage,
398
407
  resolveGlobalBinDir,
399
408
  resolveGlobalBinary
400
- } from "../chunk-QFZNPZRO.js";
409
+ } from "../chunk-VTJ4WZOC.js";
401
410
  import {
402
411
  getBaseUrl
403
- } from "../chunk-4EBJ4PTZ.js";
412
+ } from "../chunk-BWREST4F.js";
404
413
  import {
405
414
  EXIT
406
415
  } from "../chunk-BG4HHB7E.js";
@@ -411,7 +420,7 @@ import {
411
420
  import {
412
421
  NPX_LATEST_COMMAND,
413
422
  renderCommandHelp
414
- } from "../chunk-R7FSMUHG.js";
423
+ } from "../chunk-6LZ7MXHD.js";
415
424
  import {
416
425
  getPackageVersion,
417
426
  isNewerVersion,
@@ -430,7 +439,7 @@ import {
430
439
  isRecord,
431
440
  isTimeoutAction,
432
441
  isValidApiKey
433
- } from "../chunk-C5LIS3XM.js";
442
+ } from "../chunk-LQXUWXQP.js";
434
443
  import {
435
444
  CODEX_ENGINE_DIRECTORY,
436
445
  CODEX_ENGINE_ENTRYPOINT,
@@ -1016,7 +1025,59 @@ var reportHermesInstall = (outcome, version) => {
1016
1025
  }
1017
1026
  };
1018
1027
  var hermesInspectionIsWired = (inspection) => inspection.kind === "inspected" && isHermesWired(inspection.state);
1019
- var setupHermes = async (_apiKey) => {
1028
+ var HERMES_SHELL_GATE_QUESTION = `Ask on your phone before every ${HERMES_SHELL_TOOL} command Hermes runs? That includes read-only ones like ls, so a busy agent asks often.`;
1029
+ var reportHermesShellGateOutcome = (outcome, receipts) => {
1030
+ switch (outcome.kind) {
1031
+ case "gated":
1032
+ console.log(` ${check} ${HERMES_GATE_TOOLS_KEY} is now ${bold(outcome.value)}. ${dim(`${NPX_LATEST_COMMAND} clean puts the old value back.`)}`);
1033
+ console.log(` ${yellow("!")} Restart Hermes so it reads the new setting: ${bold(HERMES_RESTART_COMMAND)}`);
1034
+ noteManual(`Restart Hermes so it gates ${HERMES_SHELL_TOOL} commands: ${HERMES_RESTART_COMMAND}`);
1035
+ return;
1036
+ case "already_gated":
1037
+ console.log(` ${check} ${HERMES_GATE_TOOLS_KEY} already includes ${HERMES_SHELL_TOOL}`);
1038
+ return;
1039
+ case "failed": {
1040
+ const message = describeHermesShellGateFailure(outcome.reason, shortenHome(receipts.receiptPath));
1041
+ console.log(` ${yellow("!")} ${message}`);
1042
+ noteManual(message);
1043
+ }
1044
+ }
1045
+ };
1046
+ var reportHermesShellGateWithoutOffer = (state, report, choice) => {
1047
+ if (report.tone === "warn") {
1048
+ console.log();
1049
+ console.log(` ${yellow("!")} ${report.label}`);
1050
+ console.log(` ${dim(`${report.detail}. To fix it, ${report.fix}.`)}`);
1051
+ noteManual(`${report.label}: ${report.fix}`);
1052
+ return;
1053
+ }
1054
+ if (state.kind === "pushary_gates") {
1055
+ console.log(` ${check} ${report.label} ${dim(`(${report.detail})`)}`);
1056
+ return;
1057
+ }
1058
+ if (choice === "apply") console.log(` ${dim(`${report.label} (${report.detail}), so ${HERMES_GATE_TOOLS_KEY} was left as it is.`)}`);
1059
+ };
1060
+ var offerHermesShellGate = async (choice, receipts) => {
1061
+ const launcher = findHermesLauncher();
1062
+ if (!launcher) return;
1063
+ const state = await readHermesShellGate(launcher);
1064
+ const report = describeHermesShellGate(state);
1065
+ if (state.kind !== "ungated") {
1066
+ reportHermesShellGateWithoutOffer(state, report, choice);
1067
+ return;
1068
+ }
1069
+ console.log();
1070
+ console.log(` ${yellow("!")} ${report.label}`);
1071
+ console.log(` ${dim(`${report.detail}.`)}`);
1072
+ const wanted = choice === "apply" || choice === "ask" && await confirm({ message: HERMES_SHELL_GATE_QUESTION, default: false });
1073
+ if (!wanted) {
1074
+ console.log(` ${dim("To gate them later:")} ${bold(hermesGateShellCommand())}`);
1075
+ noteManual(`To gate Hermes ${HERMES_SHELL_TOOL} commands on the ${state.backend} backend: ${hermesGateShellCommand()}`);
1076
+ return;
1077
+ }
1078
+ reportHermesShellGateOutcome(await gateHermesShell({ launcher, receipts }), receipts);
1079
+ };
1080
+ var setupHermes = async (_apiKey, context) => {
1020
1081
  console.log(`
1021
1082
  ${bold("Setting up Hermes Agent")}
1022
1083
  `);
@@ -1043,6 +1104,7 @@ var setupHermes = async (_apiKey) => {
1043
1104
  return "skipped";
1044
1105
  }
1045
1106
  reportHermesInstall(outcome, plugin.version);
1107
+ await offerHermesShellGate(context.hermesShellGate, receipts);
1046
1108
  return hermesInspectionIsWired(outcome.inspection) ? "verified" : "configured";
1047
1109
  };
1048
1110
  var CODEX_HOOKS_JSON = join4(CODEX_HOME, "hooks.json");
@@ -1670,8 +1732,8 @@ var setupFx = async () => {
1670
1732
  console.log(` ${dim("\u2022")} MCP server ${bold("pushary")} in ${fxMcpProfile()}, which runs ${MCP_BRIDGE_BINARY} and signs in with the key saved in ~/.pushary, so no key is written to fx's config`);
1671
1733
  console.log(` ${dim("\u2022")} Questions: ${FX_QUESTION_SUMMARIES[settingsOutcome.kind === "written" ? settingsOutcome.questionRouting : "overridden"]}`);
1672
1734
  console.log(` ${dim("\u2022")} fx cannot hand its own approval prompts to Pushary, so those still wait in the terminal`);
1673
- console.log(` ${dim("Restart fx, or run /mcp reload in a running session.")}`);
1674
- noteManual("Restart fx, or run /mcp reload in a running session.");
1735
+ console.log(` ${dim(FX_PICKS_UP_CONFIGURATION)}`);
1736
+ noteManual(FX_PICKS_UP_CONFIGURATION);
1675
1737
  return "configured";
1676
1738
  };
1677
1739
  var clineWired = () => inspectClineInstallation(clineMcpSettings(), void 0).configured;
@@ -2505,7 +2567,13 @@ var main = async () => {
2505
2567
  if (keyCheck.kind === "ok") clearDaemonNeedsLogin();
2506
2568
  markStep("resolve-agents");
2507
2569
  const agents = await resolveAgents(options, { paired: keyFromPairing });
2508
- const context = { rc };
2570
+ const context = {
2571
+ rc,
2572
+ hermesShellGate: hermesShellGateChoice({
2573
+ requested: options.hermesGateTerminal,
2574
+ canAsk: canAskAtTheTerminal({ stdoutIsTty: process.stdout.isTTY === true, nonInteractive: options.nonInteractive, dryRun: options.dryRun })
2575
+ })
2576
+ };
2509
2577
  const accountChecks = /* @__PURE__ */ new Map();
2510
2578
  if (keyCheck) accountChecks.set(trimmedKey, Promise.resolve(keyCheck));
2511
2579
  const accountCheckFor = (key) => {
@@ -1,17 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  exitOnHelpFlag
4
- } from "../chunk-QESEICW4.js";
4
+ } from "../chunk-A2H256WR.js";
5
5
  import {
6
6
  readLedgerSummary
7
- } from "../chunk-5TZYAMGW.js";
7
+ } from "../chunk-33BYPZ52.js";
8
8
  import {
9
9
  getApiKey
10
- } from "../chunk-4EBJ4PTZ.js";
10
+ } from "../chunk-BWREST4F.js";
11
11
  import "../chunk-BG4HHB7E.js";
12
- import "../chunk-R7FSMUHG.js";
12
+ import "../chunk-6LZ7MXHD.js";
13
13
  import "../chunk-WIIMW5YO.js";
14
- import "../chunk-C5LIS3XM.js";
14
+ import "../chunk-LQXUWXQP.js";
15
15
  import "../chunk-MLKGABMK.js";
16
16
 
17
17
  // bin/pushary-stats.ts
@@ -1,82 +1,82 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  writeJsonError
4
- } from "../chunk-QLGLUUOP.js";
4
+ } from "../chunk-LD4R2P6N.js";
5
5
  import {
6
6
  fetchChannels
7
- } from "../chunk-LWQLM3AO.js";
7
+ } from "../chunk-FCSPMSDC.js";
8
8
  import "../chunk-3EGEA4KH.js";
9
9
  import {
10
10
  describeReach,
11
11
  reachVerdict
12
- } from "../chunk-V7CS72Q5.js";
12
+ } from "../chunk-PY6CM4NK.js";
13
13
  import {
14
14
  describeLastSeen,
15
15
  listMachines
16
- } from "../chunk-SMF4TBPU.js";
16
+ } from "../chunk-RWLNTZK5.js";
17
17
  import {
18
18
  SIGNED_OUT_ON_MAC_MESSAGE,
19
19
  activeKeyVerdictOf,
20
20
  describeSignedOutKey,
21
21
  readSignedOutDiagnosis
22
- } from "../chunk-ZKKZEVNI.js";
22
+ } from "../chunk-G3VSMI7K.js";
23
23
  import {
24
24
  CONNECTED_THROUGH_MAC_APP,
25
25
  keyWrittenByMacApp,
26
26
  readMacAppConnectionWhenKeyless
27
- } from "../chunk-K7MVCPH5.js";
28
- import "../chunk-TKFNIDZK.js";
27
+ } from "../chunk-KFALRZIN.js";
28
+ import "../chunk-YZA3YBHX.js";
29
29
  import "../chunk-QCGNGEGE.js";
30
- import "../chunk-SYZF5SDG.js";
30
+ import "../chunk-GK5X2ZTN.js";
31
31
  import {
32
32
  createIo
33
33
  } from "../chunk-FO3MDD26.js";
34
34
  import {
35
35
  exitOnHelpFlag
36
- } from "../chunk-QESEICW4.js";
37
- import "../chunk-R27HXRSK.js";
38
- import "../chunk-UIZE4YMU.js";
36
+ } from "../chunk-A2H256WR.js";
37
+ import "../chunk-Y7INHH5G.js";
38
+ import "../chunk-DZIZ3XFL.js";
39
39
  import "../chunk-CYTPQDQY.js";
40
- import "../chunk-5RSM5DRT.js";
41
- import "../chunk-ZF4CPOO7.js";
42
- import "../chunk-3VOUWGFF.js";
43
- import "../chunk-QGJK3NAR.js";
44
- import "../chunk-7QWH257P.js";
45
- import "../chunk-53KLGXFL.js";
46
- import "../chunk-MH5BRZOQ.js";
40
+ import "../chunk-R34RWVN2.js";
41
+ import "../chunk-WH4ODOCE.js";
42
+ import "../chunk-CUR2DCZN.js";
43
+ import "../chunk-K2SKUBYY.js";
44
+ import "../chunk-JZT2LPRM.js";
45
+ import "../chunk-ZBMVOMFG.js";
46
+ import "../chunk-SQL5YXUH.js";
47
47
  import {
48
48
  rejectUnknownFlags
49
49
  } from "../chunk-YPY4YCIZ.js";
50
- import "../chunk-EMODTMHE.js";
51
- import "../chunk-CNURORKI.js";
50
+ import "../chunk-6UK4K5RS.js";
51
+ import "../chunk-YU5XE6VC.js";
52
52
  import "../chunk-POFBE6ZY.js";
53
- import "../chunk-V53QYJNY.js";
53
+ import "../chunk-WPBWJMBZ.js";
54
54
  import {
55
55
  checkApiKey,
56
56
  describeKeyCheck
57
- } from "../chunk-DZLLKJJT.js";
58
- import "../chunk-4OX4SJGA.js";
57
+ } from "../chunk-YRJZF5RG.js";
58
+ import "../chunk-LJRPWUST.js";
59
59
  import "../chunk-H6CL3T2S.js";
60
- import "../chunk-ZVJIJPQY.js";
61
- import "../chunk-YCU7Y77H.js";
62
- import "../chunk-4Z7YVVKQ.js";
60
+ import "../chunk-BYKRAYGD.js";
61
+ import "../chunk-S7HGPKCL.js";
62
+ import "../chunk-KS3PNTRT.js";
63
63
  import {
64
64
  UsageError
65
65
  } from "../chunk-YU2EUD7O.js";
66
66
  import {
67
67
  readKeySource
68
- } from "../chunk-HIIXYZYV.js";
69
- import "../chunk-BHKODM4L.js";
70
- import "../chunk-IG7NGXBS.js";
71
- import "../chunk-QFZNPZRO.js";
72
- import "../chunk-4EBJ4PTZ.js";
68
+ } from "../chunk-WOSO4YFQ.js";
69
+ import "../chunk-MOC2DN42.js";
70
+ import "../chunk-72LP4RPC.js";
71
+ import "../chunk-VTJ4WZOC.js";
72
+ import "../chunk-BWREST4F.js";
73
73
  import {
74
74
  EXIT
75
75
  } from "../chunk-BG4HHB7E.js";
76
76
  import "../chunk-TODDEIYG.js";
77
- import "../chunk-R7FSMUHG.js";
77
+ import "../chunk-6LZ7MXHD.js";
78
78
  import "../chunk-WIIMW5YO.js";
79
- import "../chunk-C5LIS3XM.js";
79
+ import "../chunk-LQXUWXQP.js";
80
80
  import "../chunk-MLKGABMK.js";
81
81
 
82
82
  // src/status.ts
@@ -1,51 +1,51 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-NZHRH4RR.js";
5
- import "../chunk-6JLANX5L.js";
6
- import "../chunk-LTPKSJWY.js";
4
+ } from "../chunk-5TWW7ZUL.js";
5
+ import "../chunk-L4OGTRVW.js";
6
+ import "../chunk-S3A4PCRR.js";
7
7
  import "../chunk-VAE5JBR5.js";
8
8
  import "../chunk-G66WIAST.js";
9
9
  import {
10
10
  activeHookSource,
11
11
  activeIdentity
12
- } from "../chunk-5RSM5DRT.js";
13
- import "../chunk-ZF4CPOO7.js";
14
- import "../chunk-3VOUWGFF.js";
12
+ } from "../chunk-R34RWVN2.js";
13
+ import "../chunk-WH4ODOCE.js";
14
+ import "../chunk-CUR2DCZN.js";
15
15
  import {
16
16
  emitHookOutput,
17
17
  handleStop,
18
18
  handleSubagentStop,
19
19
  isSubagentStop
20
- } from "../chunk-QGJK3NAR.js";
21
- import "../chunk-7QWH257P.js";
22
- import "../chunk-53KLGXFL.js";
23
- import "../chunk-MH5BRZOQ.js";
20
+ } from "../chunk-K2SKUBYY.js";
21
+ import "../chunk-JZT2LPRM.js";
22
+ import "../chunk-ZBMVOMFG.js";
23
+ import "../chunk-SQL5YXUH.js";
24
24
  import "../chunk-YPY4YCIZ.js";
25
- import "../chunk-22CXL7YI.js";
25
+ import "../chunk-IRPIMQ7U.js";
26
26
  import "../chunk-XMSDA5WA.js";
27
- import "../chunk-7VMVMC4H.js";
28
- import "../chunk-EMODTMHE.js";
29
- import "../chunk-CNURORKI.js";
27
+ import "../chunk-HOQH5CLZ.js";
28
+ import "../chunk-6UK4K5RS.js";
29
+ import "../chunk-YU5XE6VC.js";
30
30
  import "../chunk-POFBE6ZY.js";
31
- import "../chunk-V53QYJNY.js";
32
- import "../chunk-DZLLKJJT.js";
33
- import "../chunk-4OX4SJGA.js";
31
+ import "../chunk-WPBWJMBZ.js";
32
+ import "../chunk-YRJZF5RG.js";
33
+ import "../chunk-LJRPWUST.js";
34
34
  import "../chunk-H6CL3T2S.js";
35
- import "../chunk-ZVJIJPQY.js";
36
- import "../chunk-YCU7Y77H.js";
37
- import "../chunk-4Z7YVVKQ.js";
35
+ import "../chunk-BYKRAYGD.js";
36
+ import "../chunk-S7HGPKCL.js";
37
+ import "../chunk-KS3PNTRT.js";
38
38
  import "../chunk-YU2EUD7O.js";
39
- import "../chunk-HIIXYZYV.js";
40
- import "../chunk-BHKODM4L.js";
41
- import "../chunk-IG7NGXBS.js";
42
- import "../chunk-QFZNPZRO.js";
43
- import "../chunk-4EBJ4PTZ.js";
39
+ import "../chunk-WOSO4YFQ.js";
40
+ import "../chunk-MOC2DN42.js";
41
+ import "../chunk-72LP4RPC.js";
42
+ import "../chunk-VTJ4WZOC.js";
43
+ import "../chunk-BWREST4F.js";
44
44
  import "../chunk-BG4HHB7E.js";
45
45
  import "../chunk-TODDEIYG.js";
46
- import "../chunk-R7FSMUHG.js";
46
+ import "../chunk-6LZ7MXHD.js";
47
47
  import "../chunk-WIIMW5YO.js";
48
- import "../chunk-C5LIS3XM.js";
48
+ import "../chunk-LQXUWXQP.js";
49
49
  import "../chunk-MLKGABMK.js";
50
50
 
51
51
  // bin/pushary-stop-hook.ts