@pushary/agent-hooks 1.7.1 → 1.7.3

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 (106) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/data/cursor-plugin/CHANGELOG.md +1 -0
  3. package/data/cursor-plugin/scripts/pushary-gate.mjs +3 -3
  4. package/data/cursor-plugin/scripts/pushary-gate.test.mjs +23 -1
  5. package/data/vscode-plugin/CHANGELOG.md +1 -0
  6. package/data/vscode-plugin/scripts/pushary-gate.mjs +3 -3
  7. package/dist/bin/pushary-bell-hook.js +23 -23
  8. package/dist/bin/pushary-bell.js +10 -10
  9. package/dist/bin/pushary-claude.js +48 -37
  10. package/dist/bin/pushary-clean.js +107 -60
  11. package/dist/bin/pushary-codex-bridge.js +18 -17
  12. package/dist/bin/pushary-codex-hook.js +53 -39
  13. package/dist/bin/pushary-codex.js +14 -12
  14. package/dist/bin/pushary-connect.js +16 -16
  15. package/dist/bin/pushary-cowork.js +5 -5
  16. package/dist/bin/pushary-daemon.js +27 -27
  17. package/dist/bin/pushary-disconnect.js +19 -17
  18. package/dist/bin/pushary-doctor.js +63 -35
  19. package/dist/bin/pushary-elicitation-hook.js +35 -26
  20. package/dist/bin/pushary-gemini-bridge.js +12 -12
  21. package/dist/bin/pushary-gemini-hook.js +47 -32
  22. package/dist/bin/pushary-hook.js +34 -32
  23. package/dist/bin/pushary-login.js +16 -16
  24. package/dist/bin/pushary-logout.js +8 -8
  25. package/dist/bin/pushary-mcp.js +9 -8
  26. package/dist/bin/pushary-mode.js +10 -10
  27. package/dist/bin/pushary-notification-hook.js +29 -27
  28. package/dist/bin/pushary-opencode-hook.js +46 -32
  29. package/dist/bin/pushary-permission-denied-hook.js +34 -32
  30. package/dist/bin/pushary-permission-hook.js +33 -31
  31. package/dist/bin/pushary-post-hook.js +29 -27
  32. package/dist/bin/pushary-prompt-hook.js +29 -27
  33. package/dist/bin/pushary-session-end-hook.js +29 -27
  34. package/dist/bin/pushary-session-start-hook.js +33 -31
  35. package/dist/bin/pushary-setup.js +69 -56
  36. package/dist/bin/pushary-stats.js +5 -5
  37. package/dist/bin/pushary-status.js +19 -19
  38. package/dist/bin/pushary-stop-hook.js +29 -27
  39. package/dist/bin/pushary-stopfailure-hook.js +29 -27
  40. package/dist/bin/pushary-suggestions.js +5 -5
  41. package/dist/bin/pushary-transcript-register.js +19 -19
  42. package/dist/bin/pushary-transcripts.js +7 -7
  43. package/dist/bin/pushary-upgrade.js +20 -20
  44. package/dist/bin/pushary-wait.js +10 -10
  45. package/dist/bin/pushary.js +6 -6
  46. package/dist/{chunk-MWVCDP64.js → chunk-3EUBQARL.js} +1 -1
  47. package/dist/{chunk-3QORH5EJ.js → chunk-5GB22QYL.js} +6 -4
  48. package/dist/chunk-5OP5MQI7.js +45 -0
  49. package/dist/{chunk-6PV2JQ64.js → chunk-5S2VBSJI.js} +2 -2
  50. package/dist/{chunk-UPKP67TA.js → chunk-62CVUUNU.js} +2 -2
  51. package/dist/{chunk-42XR73I2.js → chunk-62VT3BPH.js} +35 -35
  52. package/dist/chunk-6JQFIHZC.js +99 -0
  53. package/dist/{chunk-2FU43B5Q.js → chunk-7OA34PNW.js} +2 -2
  54. package/dist/{chunk-7GI6QC3M.js → chunk-7RUJKCR4.js} +2 -2
  55. package/dist/{chunk-H6JV44TE.js → chunk-AWVNAYGD.js} +1 -1
  56. package/dist/{chunk-XMN37YJH.js → chunk-BGBLLHZ4.js} +1 -1
  57. package/dist/{chunk-VCMFKZON.js → chunk-BIH2Y2HP.js} +2 -2
  58. package/dist/{chunk-YZKS3ME3.js → chunk-D6OODZCM.js} +2 -2
  59. package/dist/{chunk-JTQDP4ZL.js → chunk-DUQO4C4I.js} +3 -3
  60. package/dist/{chunk-3QE3BHBW.js → chunk-EADXTSHE.js} +2 -2
  61. package/dist/{chunk-43SSQCWO.js → chunk-EEEJ2JIL.js} +3 -3
  62. package/dist/{chunk-4C4NRDIC.js → chunk-EUGNVLMG.js} +1 -1
  63. package/dist/{chunk-WSC53O7I.js → chunk-G3OMOTJ4.js} +3 -3
  64. package/dist/{chunk-XFNVG3OV.js → chunk-G4GLCLKK.js} +44 -9
  65. package/dist/{chunk-62TEPRWQ.js → chunk-G62JL2NT.js} +1 -1
  66. package/dist/{chunk-QPR33SHS.js → chunk-G6RRVJOG.js} +6 -6
  67. package/dist/{chunk-Y6GKOZBT.js → chunk-IPSRMLCJ.js} +1 -1
  68. package/dist/{chunk-MCNS4725.js → chunk-IRZG3HEU.js} +1 -1
  69. package/dist/{chunk-55RO62FV.js → chunk-IWJKSIB4.js} +1 -1
  70. package/dist/{chunk-NID4UZDN.js → chunk-KEL5MXRL.js} +1 -1
  71. package/dist/{chunk-BYVB3RX3.js → chunk-KJXUIPS4.js} +2 -2
  72. package/dist/{chunk-SNWNA3MQ.js → chunk-LHC45YUC.js} +1 -1
  73. package/dist/{chunk-XPTCPU6V.js → chunk-LPNJLKBQ.js} +1 -1
  74. package/dist/{chunk-WZWXBTRF.js → chunk-MIXWMA73.js} +3 -3
  75. package/dist/{chunk-454KMJHF.js → chunk-MZBRL5H5.js} +34 -1
  76. package/dist/{chunk-KSNAAMU5.js → chunk-N5MZH5A6.js} +4 -4
  77. package/dist/chunk-N6IOSZOE.js +185 -0
  78. package/dist/{chunk-XPMOCJHN.js → chunk-NOI3XTCY.js} +1 -1
  79. package/dist/{chunk-NAAZCNKI.js → chunk-O3JDWNLU.js} +351 -37
  80. package/dist/{chunk-7GYGVQBU.js → chunk-OTNOANMX.js} +8 -8
  81. package/dist/{chunk-P5CBNSYL.js → chunk-OVC5QXN5.js} +1 -1
  82. package/dist/{chunk-O5JD7UI5.js → chunk-P2VIBGXA.js} +3 -3
  83. package/dist/{chunk-3T35OE7C.js → chunk-PRNFSORD.js} +4 -4
  84. package/dist/{chunk-OAL44FM2.js → chunk-R6OYCUNK.js} +1 -1
  85. package/dist/{chunk-6SJQ442W.js → chunk-RLW3JWDY.js} +2 -2
  86. package/dist/{chunk-SVEMF2VO.js → chunk-TCVMK6GI.js} +4 -4
  87. package/dist/{chunk-O5PRIYFZ.js → chunk-U4TMAANR.js} +3 -0
  88. package/dist/{chunk-WM3U2RUK.js → chunk-U6RVDUJ5.js} +75 -232
  89. package/dist/{chunk-KBLIVEFJ.js → chunk-UOQRM7JQ.js} +5 -5
  90. package/dist/{chunk-NQFGVAT6.js → chunk-VE7TXLR4.js} +19 -2
  91. package/dist/{chunk-IGBDOZUO.js → chunk-VKVSRCBO.js} +1 -1
  92. package/dist/{chunk-ZEMSCGDD.js → chunk-VYPJHGG6.js} +8 -3
  93. package/dist/{chunk-YQN7S57T.js → chunk-WGMW7OXW.js} +6 -6
  94. package/dist/{chunk-OTZHT34O.js → chunk-WPX67AKT.js} +1 -1
  95. package/dist/{chunk-XDASEYRS.js → chunk-WTJM7PSL.js} +3 -3
  96. package/dist/{chunk-Q7QRR6YL.js → chunk-Y4ZH64UK.js} +2 -2
  97. package/dist/{chunk-ZIIYTQHC.js → chunk-YC27PROF.js} +12 -4
  98. package/dist/{chunk-AHWJHLG5.js → chunk-YPUBA2FL.js} +7 -5
  99. package/dist/{chunk-EIZW73P5.js → chunk-YYCTF4Q5.js} +1 -1
  100. package/dist/{chunk-AAGLDXH4.js → chunk-ZKJ34T2F.js} +5 -5
  101. package/dist/{reapply-66GQIBXN.js → reapply-PH5T4BGR.js} +9 -9
  102. package/dist/src/index.d.ts +1 -0
  103. package/dist/src/index.js +22 -20
  104. package/package.json +2 -1
  105. package/dist/chunk-JMBG47WV.js +0 -336
  106. package/dist/chunk-YHG74UFF.js +0 -12
@@ -2,18 +2,18 @@
2
2
  import {
3
3
  codexTrustOutcome,
4
4
  describeCodexTrustConfirmation
5
- } from "../chunk-H6JV44TE.js";
5
+ } from "../chunk-AWVNAYGD.js";
6
6
  import {
7
7
  runBrowserLogin
8
- } from "../chunk-62TEPRWQ.js";
8
+ } from "../chunk-G62JL2NT.js";
9
9
  import {
10
10
  coworkOutput,
11
11
  coworkSelection
12
- } from "../chunk-3QE3BHBW.js";
12
+ } from "../chunk-EADXTSHE.js";
13
13
  import "../chunk-PUZZELE6.js";
14
14
  import {
15
15
  detectClaudeVersion
16
- } from "../chunk-Y6GKOZBT.js";
16
+ } from "../chunk-IPSRMLCJ.js";
17
17
  import {
18
18
  AgentConfigError,
19
19
  afterAgentFailureNote,
@@ -25,25 +25,20 @@ import {
25
25
  failedAgentsContext,
26
26
  retryAgentCommand,
27
27
  versionManagerOf
28
- } from "../chunk-ZEMSCGDD.js";
28
+ } from "../chunk-VYPJHGG6.js";
29
29
  import {
30
30
  ensureCodexTrustsPusharyHooks
31
- } from "../chunk-6SJQ442W.js";
31
+ } from "../chunk-RLW3JWDY.js";
32
32
  import {
33
33
  readManagedControlEvidence,
34
34
  waitForMachineReadiness
35
- } from "../chunk-YQN7S57T.js";
35
+ } from "../chunk-WGMW7OXW.js";
36
36
  import {
37
- HERMES_CONFIG_SCRIPT,
38
- HERMES_PIP_PACKAGE,
39
37
  describeSetupSideEffects,
40
38
  installAgentSkill,
41
39
  installSkillViaSkillsCli,
42
- isHermesConfigReceipt,
43
- registerCursorGate,
44
- resolveHermesPython,
45
- runHermesPythonScript
46
- } from "../chunk-JMBG47WV.js";
40
+ registerCursorGate
41
+ } from "../chunk-6JQFIHZC.js";
47
42
  import {
48
43
  FX_PROFILE_REFUSALS,
49
44
  FX_PUSHARY_TOOLS_RULE,
@@ -51,6 +46,7 @@ import {
51
46
  FX_QUESTION_TOOL,
52
47
  FX_SETTINGS_REFUSALS,
53
48
  FX_TOOL_DISCOVERY_NOTE,
49
+ HERMES_PIP_PACKAGE,
54
50
  describeDetection,
55
51
  detectAllAgents,
56
52
  fxIgnoresInstructionsFile,
@@ -61,6 +57,7 @@ import {
61
57
  fxSettingsText,
62
58
  isDetected,
63
59
  isFxPusharyEntry,
60
+ isHermesConfigReceipt,
64
61
  pluginLocationSnippet,
65
62
  readFxFile,
66
63
  readFxProfile,
@@ -68,6 +65,8 @@ import {
68
65
  registerPluginLocation,
69
66
  renderAgentInstructions,
70
67
  renderProjectAgentInstructions,
68
+ resolveHermesPython,
69
+ runHermesConfigScript,
71
70
  shortenHome,
72
71
  vscodeSettingsTargets,
73
72
  withFxPusharyServer,
@@ -76,10 +75,10 @@ import {
76
75
  workspacesOverridingPusharyRule,
77
76
  workspacesShowingQuestionTool,
78
77
  writeInstructionBlock
79
- } from "../chunk-NAAZCNKI.js";
78
+ } from "../chunk-O3JDWNLU.js";
80
79
  import {
81
80
  MCP_BRIDGE_BINARY
82
- } from "../chunk-2FU43B5Q.js";
81
+ } from "../chunk-7OA34PNW.js";
83
82
  import {
84
83
  OPENCODE_HOOK_BINARY,
85
84
  addOpenCodeMcpServer,
@@ -90,7 +89,7 @@ import {
90
89
  openCodePluginDir,
91
90
  openCodePluginFile,
92
91
  openCodeWired
93
- } from "../chunk-NID4UZDN.js";
92
+ } from "../chunk-KEL5MXRL.js";
94
93
  import {
95
94
  addCompatibleHooks,
96
95
  addCompatibleMcpServer,
@@ -101,7 +100,7 @@ import {
101
100
  compatibleMcpFile,
102
101
  compatiblePermissionRuleFile,
103
102
  hasCompatibleHooks
104
- } from "../chunk-KBLIVEFJ.js";
103
+ } from "../chunk-UOQRM7JQ.js";
105
104
  import {
106
105
  addClaudeMcpServer,
107
106
  addPusharyHooks,
@@ -109,16 +108,16 @@ import {
109
108
  captureClaudeMcpServer,
110
109
  isClaudeMcpSnapshot,
111
110
  updateClaudeMcpSnapshot
112
- } from "../chunk-WSC53O7I.js";
111
+ } from "../chunk-G3OMOTJ4.js";
113
112
  import {
114
113
  detectProviderLiveCapabilities,
115
114
  hasSpawnProvider,
116
115
  resolveControlPolicy
117
- } from "../chunk-Q7QRR6YL.js";
116
+ } from "../chunk-Y4ZH64UK.js";
118
117
  import {
119
118
  describeAutoUpdateAnnouncement,
120
119
  takeAutoUpdateAnnouncement
121
- } from "../chunk-BYVB3RX3.js";
120
+ } from "../chunk-KJXUIPS4.js";
122
121
  import {
123
122
  KEEP_HINT,
124
123
  captureHookTakeover,
@@ -128,23 +127,23 @@ import {
128
127
  hookOwnerOf,
129
128
  mcpBearerKey,
130
129
  planHooks
131
- } from "../chunk-SVEMF2VO.js";
130
+ } from "../chunk-TCVMK6GI.js";
132
131
  import {
133
132
  AGENT_CHOICES,
134
133
  effectiveControlMode,
135
134
  effectiveVerify,
136
135
  parseSetupOptions
137
- } from "../chunk-XMN37YJH.js";
136
+ } from "../chunk-BGBLLHZ4.js";
138
137
  import {
139
138
  liveBridgeProbe,
140
139
  resolveBridgeStub
141
- } from "../chunk-MWVCDP64.js";
140
+ } from "../chunk-3EUBQARL.js";
142
141
  import {
143
142
  claudeWired,
144
143
  codexWired,
145
144
  geminiWired,
146
145
  pusharyHookExecutable
147
- } from "../chunk-XDASEYRS.js";
146
+ } from "../chunk-WTJM7PSL.js";
148
147
  import {
149
148
  clearDaemonNeedsLogin,
150
149
  daemonHasRemoteProof,
@@ -157,25 +156,26 @@ import {
157
156
  replaceDaemonService,
158
157
  stopDaemonService,
159
158
  waitForDaemonRemoteProof
160
- } from "../chunk-AAGLDXH4.js";
159
+ } from "../chunk-ZKJ34T2F.js";
161
160
  import {
162
161
  GEMINI_HOOK_BINARY,
163
162
  addGeminiHooks,
164
163
  addGeminiMcpServer,
165
164
  compareVersion,
166
165
  parseVersion
167
- } from "../chunk-WZWXBTRF.js";
168
- import "../chunk-XPMOCJHN.js";
166
+ } from "../chunk-MIXWMA73.js";
167
+ import "../chunk-NOI3XTCY.js";
169
168
  import {
170
169
  transcriptPreferenceForSetup
171
- } from "../chunk-XPTCPU6V.js";
170
+ } from "../chunk-LPNJLKBQ.js";
172
171
  import "../chunk-XHKBHWLX.js";
173
172
  import {
174
173
  reportEvent
175
- } from "../chunk-WM3U2RUK.js";
176
- import "../chunk-4C4NRDIC.js";
177
- import "../chunk-ZIIYTQHC.js";
178
- import "../chunk-KSNAAMU5.js";
174
+ } from "../chunk-U6RVDUJ5.js";
175
+ import "../chunk-N6IOSZOE.js";
176
+ import "../chunk-EUGNVLMG.js";
177
+ import "../chunk-YC27PROF.js";
178
+ import "../chunk-N5MZH5A6.js";
179
179
  import "../chunk-POFBE6ZY.js";
180
180
  import {
181
181
  BROWSER_CONNECT_COMMAND,
@@ -187,20 +187,16 @@ import {
187
187
  printConnectInstructions,
188
188
  roundTripEvidence,
189
189
  verifyRoundTrip
190
- } from "../chunk-AHWJHLG5.js";
190
+ } from "../chunk-YPUBA2FL.js";
191
191
  import "../chunk-3EGEA4KH.js";
192
- import {
193
- checkApiKey,
194
- describeKeyCheck,
195
- samePusharyAccount
196
- } from "../chunk-43SSQCWO.js";
197
192
  import {
198
193
  setHumanStream
199
194
  } from "../chunk-QCGNGEGE.js";
200
195
  import {
196
+ ansiPainter,
201
197
  createIo,
202
198
  useColor
203
- } from "../chunk-O5PRIYFZ.js";
199
+ } from "../chunk-U4TMAANR.js";
204
200
  import "../chunk-GMXKITVA.js";
205
201
  import {
206
202
  KEY_FILE_MODE,
@@ -212,18 +208,24 @@ import {
212
208
  readKeySource,
213
209
  resolveShellRc,
214
210
  writeKey
215
- } from "../chunk-YZKS3ME3.js";
216
- import "../chunk-NQFGVAT6.js";
217
- import "../chunk-JTQDP4ZL.js";
218
- import "../chunk-P5CBNSYL.js";
211
+ } from "../chunk-D6OODZCM.js";
212
+ import "../chunk-VE7TXLR4.js";
213
+ import {
214
+ checkApiKey,
215
+ describeKeyCheck,
216
+ samePusharyAccount
217
+ } from "../chunk-EEEJ2JIL.js";
218
+ import "../chunk-DUQO4C4I.js";
219
+ import "../chunk-OVC5QXN5.js";
219
220
  import {
220
221
  UsageError
221
222
  } from "../chunk-7QLSKOSU.js";
222
223
  import {
223
224
  EXIT
224
225
  } from "../chunk-KZERVKTD.js";
225
- import "../chunk-UPKP67TA.js";
226
+ import "../chunk-62CVUUNU.js";
226
227
  import {
228
+ NpmMissingError,
227
229
  addCodexHookTrust,
228
230
  addCodexHooks,
229
231
  addCodexMcpServer,
@@ -265,18 +267,18 @@ import {
265
267
  resolveGlobalBinary,
266
268
  vscodePluginDir,
267
269
  vscodePluginMcp
268
- } from "../chunk-454KMJHF.js";
270
+ } from "../chunk-MZBRL5H5.js";
269
271
  import {
270
272
  backupFile,
271
273
  readJsonSafe,
272
274
  writeFileAtomic,
273
275
  writeJsonAtomic
274
276
  } from "../chunk-T7E75EKA.js";
275
- import "../chunk-OAL44FM2.js";
277
+ import "../chunk-R6OYCUNK.js";
276
278
  import {
277
279
  NPX_LATEST_COMMAND,
278
280
  renderCommandHelp
279
- } from "../chunk-EIZW73P5.js";
281
+ } from "../chunk-YYCTF4Q5.js";
280
282
  import {
281
283
  HOOK_COMPATIBLE_PROFILES,
282
284
  HOOK_LOCATOR_BINARY,
@@ -287,7 +289,7 @@ import {
287
289
  hookCompatibleProfile,
288
290
  isNewerVersion,
289
291
  isValidApiKey
290
- } from "../chunk-XFNVG3OV.js";
292
+ } from "../chunk-G4GLCLKK.js";
291
293
 
292
294
  // bin/pushary-setup.ts
293
295
  import { existsSync, readFileSync, writeFileSync, mkdirSync, cpSync, rmSync, renameSync, realpathSync, readdirSync, statSync, openSync, readSync, closeSync } from "fs";
@@ -452,10 +454,16 @@ var describeClosing = (facts) => {
452
454
  };
453
455
  };
454
456
  var RETRY_AGENT_LABEL = "Retry just this agent:";
457
+ var INSTALL_NODE_STEP = "Install the current Node.js LTS, which includes npm, then run setup again.";
458
+ var nextStepFor = (failure) => failure.remedy === "install-node" ? { kind: "install-node", instruction: INSTALL_NODE_STEP } : { kind: "retry-agent", command: retryAgentCommand(failure.agent) };
455
459
  var describeAgentFailures = (failures, agentName) => failures.map((failure) => ({
456
460
  summary: `${agentName(failure.agent)}: ${failure.detail}`,
457
- retryCommand: retryAgentCommand(failure.agent)
461
+ next: nextStepFor(failure)
458
462
  }));
463
+ var agentFailureFollowUps = (failures) => [
464
+ ...failures.some((failure) => failure.remedy === "install-node") ? ["install-node"] : [],
465
+ ...failures.some((failure) => failure.remedy === "retry-agent") ? ["run-doctor"] : []
466
+ ];
459
467
  var unverifiedKeyClosingReason = (facts) => {
460
468
  if (facts.failedCount > 0) return "agents-failed";
461
469
  if (facts.controlLifecycleFailed) return "control-unready";
@@ -684,7 +692,7 @@ var writeHuman = (text) => {
684
692
  humanStream.write(text);
685
693
  };
686
694
  var jsonMode = false;
687
- var paint = (open) => (s) => useColor({ json: jsonMode }) ? `${open}${s}\x1B[0m` : s;
695
+ var paint = ansiPainter(() => useColor({ json: jsonMode }));
688
696
  var dim = paint("\x1B[2m");
689
697
  var bold = paint("\x1B[1m");
690
698
  var green = paint("\x1B[32m");
@@ -807,7 +815,7 @@ var installGlobally2 = async () => {
807
815
  try {
808
816
  await installGlobally({ version });
809
817
  } catch (err) {
810
- throw new Error(npmErrorMessage(err));
818
+ throw err instanceof NpmMissingError ? err : new Error(npmErrorMessage(err));
811
819
  }
812
820
  });
813
821
  globalInstallReady = true;
@@ -896,7 +904,7 @@ var ensurePip = (python) => {
896
904
  }
897
905
  };
898
906
  var enablePusharyPlugin = (python) => {
899
- return runHermesPythonScript(python, HERMES_CONFIG_SCRIPT, "setup", HERMES_CONFIG_RECEIPT);
907
+ return runHermesConfigScript(python, "setup", HERMES_CONFIG_RECEIPT) !== "failed";
900
908
  };
901
909
  var setupHermes = async (_apiKey) => {
902
910
  console.log(`
@@ -2010,10 +2018,11 @@ var AGENT_CAPABILITIES = {
2010
2018
  custom: "any MCP or HTTP agent (Windsurf, n8n, custom)"
2011
2019
  };
2012
2020
  var failedAgentNames = (failures) => failures.map((failure) => AGENT_NAMES[failure.agent]);
2021
+ var agentFailureNextLine = (next) => next.kind === "retry-agent" ? `${dim(RETRY_AGENT_LABEL)} ${cyan(next.command)}` : next.instruction;
2013
2022
  var printAgentFailures = (failures) => {
2014
2023
  for (const failure of describeAgentFailures(failures, (agent) => AGENT_NAMES[agent])) {
2015
2024
  console.log(` ${yellow("!")} ${failure.summary}`);
2016
- console.log(` ${dim(RETRY_AGENT_LABEL)} ${cyan(failure.retryCommand)}`);
2025
+ console.log(` ${agentFailureNextLine(failure.next)}`);
2017
2026
  }
2018
2027
  };
2019
2028
  var NAME_COLUMN = Math.max(...Object.values(AGENT_NAMES).map((name) => name.length)) + 2;
@@ -2065,6 +2074,7 @@ var resolveAgents = async (options) => {
2065
2074
  // visible and correctable, rather than an unexplained pre-tick.
2066
2075
  name: detected[agent].evidence ? `${AGENT_LABELS[agent]} ${dim(`[${detected[agent].evidence}]`)}` : AGENT_LABELS[agent],
2067
2076
  value: agent,
2077
+ short: AGENT_NAMES[agent],
2068
2078
  checked: detected[agent].found
2069
2079
  })),
2070
2080
  // Today an empty selection skips the loop and still prints "Setup complete."
@@ -2311,7 +2321,7 @@ var main = async () => {
2311
2321
  const transcriptSync = transcriptPreferenceForSetup(options.transcripts);
2312
2322
  if (transcriptSync) {
2313
2323
  console.log();
2314
- console.log("Transcript sync: enabling locally redacted, encrypted sync for Pushary-launched sessions. Your phone can decrypt it; authorized Pushary compliance admins can recover it for documented legal obligations. Disable with pushary setup --transcripts off.");
2324
+ console.log(" Transcript sync: enabling locally redacted, encrypted sync for Pushary-launched sessions. Your phone can decrypt it; authorized Pushary compliance admins can recover it for documented legal obligations. Disable with pushary setup --transcripts off.");
2315
2325
  }
2316
2326
  const rc = await saveApiKey(trimmedKey, controlMode, transcriptSync);
2317
2327
  if (keyCheck.kind === "ok") clearDaemonNeedsLogin();
@@ -2407,7 +2417,10 @@ var main = async () => {
2407
2417
  console.log();
2408
2418
  const configured = failedAgentsContext(completed.map((agent) => AGENT_NAMES[agent]));
2409
2419
  console.log(` ${yellow("!")} Failed: ${failedAgentNames(failures).join(", ")}${configured ? ` ${dim(configured)}` : ""}`);
2410
- console.log(` ${dim("Run")} npx @pushary/agent-hooks@latest doctor ${dim("for the reason, or send it to")} ${SUPPORT_EMAIL}`);
2420
+ for (const followUp of agentFailureFollowUps(failures)) {
2421
+ if (followUp === "install-node") console.log(` ${INSTALL_NODE_STEP}`);
2422
+ else console.log(` ${dim("Run")} npx @pushary/agent-hooks@latest doctor ${dim("for the reason, or send it to")} ${SUPPORT_EMAIL}`);
2423
+ }
2411
2424
  }
2412
2425
  markStep("project-instructions");
2413
2426
  await offerProjectInstructions(agents, options);
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readLedgerSummary
4
- } from "../chunk-MCNS4725.js";
4
+ } from "../chunk-IRZG3HEU.js";
5
5
  import {
6
6
  exitOnHelpFlag
7
- } from "../chunk-6PV2JQ64.js";
7
+ } from "../chunk-5S2VBSJI.js";
8
8
  import "../chunk-KZERVKTD.js";
9
9
  import {
10
10
  getApiKey
11
- } from "../chunk-OAL44FM2.js";
12
- import "../chunk-EIZW73P5.js";
13
- import "../chunk-XFNVG3OV.js";
11
+ } from "../chunk-R6OYCUNK.js";
12
+ import "../chunk-YYCTF4Q5.js";
13
+ import "../chunk-G4GLCLKK.js";
14
14
 
15
15
  // bin/pushary-stats.ts
16
16
  exitOnHelpFlag("stats");
@@ -2,48 +2,48 @@
2
2
  import {
3
3
  describeLastSeen,
4
4
  listMachines
5
- } from "../chunk-YQN7S57T.js";
6
- import "../chunk-Q7QRR6YL.js";
7
- import "../chunk-AAGLDXH4.js";
5
+ } from "../chunk-WGMW7OXW.js";
6
+ import "../chunk-Y4ZH64UK.js";
7
+ import "../chunk-ZKJ34T2F.js";
8
8
  import "../chunk-XHKBHWLX.js";
9
9
  import {
10
10
  describeReach,
11
11
  fetchChannels,
12
12
  reachVerdict
13
- } from "../chunk-AHWJHLG5.js";
13
+ } from "../chunk-YPUBA2FL.js";
14
14
  import "../chunk-3EGEA4KH.js";
15
- import {
16
- checkApiKey,
17
- describeKeyCheck
18
- } from "../chunk-43SSQCWO.js";
19
15
  import "../chunk-QCGNGEGE.js";
20
16
  import {
21
17
  createIo
22
- } from "../chunk-O5PRIYFZ.js";
18
+ } from "../chunk-U4TMAANR.js";
23
19
  import {
24
20
  exitOnHelpFlag
25
- } from "../chunk-6PV2JQ64.js";
21
+ } from "../chunk-5S2VBSJI.js";
26
22
  import {
27
23
  rejectUnknownFlags
28
24
  } from "../chunk-GMXKITVA.js";
29
25
  import {
30
26
  readKeySource
31
- } from "../chunk-YZKS3ME3.js";
32
- import "../chunk-NQFGVAT6.js";
33
- import "../chunk-JTQDP4ZL.js";
34
- import "../chunk-P5CBNSYL.js";
27
+ } from "../chunk-D6OODZCM.js";
28
+ import "../chunk-VE7TXLR4.js";
29
+ import {
30
+ checkApiKey,
31
+ describeKeyCheck
32
+ } from "../chunk-EEEJ2JIL.js";
33
+ import "../chunk-DUQO4C4I.js";
34
+ import "../chunk-OVC5QXN5.js";
35
35
  import {
36
36
  UsageError
37
37
  } from "../chunk-7QLSKOSU.js";
38
38
  import {
39
39
  EXIT
40
40
  } from "../chunk-KZERVKTD.js";
41
- import "../chunk-UPKP67TA.js";
42
- import "../chunk-454KMJHF.js";
41
+ import "../chunk-62CVUUNU.js";
42
+ import "../chunk-MZBRL5H5.js";
43
43
  import "../chunk-T7E75EKA.js";
44
- import "../chunk-OAL44FM2.js";
45
- import "../chunk-EIZW73P5.js";
46
- import "../chunk-XFNVG3OV.js";
44
+ import "../chunk-R6OYCUNK.js";
45
+ import "../chunk-YYCTF4Q5.js";
46
+ import "../chunk-G4GLCLKK.js";
47
47
 
48
48
  // src/status.ts
49
49
  var keySourceLine = (source) => {
@@ -2,46 +2,48 @@
2
2
  import {
3
3
  activeHookSource,
4
4
  activeIdentity
5
- } from "../chunk-KBLIVEFJ.js";
6
- import "../chunk-WSC53O7I.js";
5
+ } from "../chunk-UOQRM7JQ.js";
6
+ import "../chunk-G3OMOTJ4.js";
7
7
  import {
8
8
  readHookInput
9
- } from "../chunk-7GI6QC3M.js";
10
- import "../chunk-7GYGVQBU.js";
9
+ } from "../chunk-7RUJKCR4.js";
10
+ import "../chunk-OTNOANMX.js";
11
11
  import "../chunk-SGZJ5LYH.js";
12
- import "../chunk-SVEMF2VO.js";
13
- import "../chunk-XMN37YJH.js";
14
- import "../chunk-MWVCDP64.js";
15
- import "../chunk-XDASEYRS.js";
16
- import "../chunk-AAGLDXH4.js";
17
- import "../chunk-WZWXBTRF.js";
18
- import "../chunk-XPMOCJHN.js";
19
- import "../chunk-O5JD7UI5.js";
20
- import "../chunk-OTZHT34O.js";
21
- import "../chunk-XPTCPU6V.js";
12
+ import "../chunk-TCVMK6GI.js";
13
+ import "../chunk-BGBLLHZ4.js";
14
+ import "../chunk-3EUBQARL.js";
15
+ import "../chunk-WTJM7PSL.js";
16
+ import "../chunk-ZKJ34T2F.js";
17
+ import "../chunk-MIXWMA73.js";
18
+ import "../chunk-NOI3XTCY.js";
19
+ import "../chunk-P2VIBGXA.js";
20
+ import "../chunk-WPX67AKT.js";
21
+ import "../chunk-LPNJLKBQ.js";
22
22
  import "../chunk-XHKBHWLX.js";
23
23
  import {
24
24
  handleStop,
25
25
  handleSubagentStop,
26
26
  isSubagentStop
27
- } from "../chunk-WM3U2RUK.js";
28
- import "../chunk-4C4NRDIC.js";
29
- import "../chunk-ZIIYTQHC.js";
30
- import "../chunk-KSNAAMU5.js";
27
+ } from "../chunk-U6RVDUJ5.js";
28
+ import "../chunk-N6IOSZOE.js";
29
+ import "../chunk-EUGNVLMG.js";
30
+ import "../chunk-YC27PROF.js";
31
+ import "../chunk-N5MZH5A6.js";
31
32
  import "../chunk-POFBE6ZY.js";
32
33
  import "../chunk-GMXKITVA.js";
33
- import "../chunk-YZKS3ME3.js";
34
- import "../chunk-NQFGVAT6.js";
35
- import "../chunk-JTQDP4ZL.js";
36
- import "../chunk-P5CBNSYL.js";
34
+ import "../chunk-D6OODZCM.js";
35
+ import "../chunk-VE7TXLR4.js";
36
+ import "../chunk-EEEJ2JIL.js";
37
+ import "../chunk-DUQO4C4I.js";
38
+ import "../chunk-OVC5QXN5.js";
37
39
  import "../chunk-7QLSKOSU.js";
38
40
  import "../chunk-KZERVKTD.js";
39
- import "../chunk-UPKP67TA.js";
40
- import "../chunk-454KMJHF.js";
41
+ import "../chunk-62CVUUNU.js";
42
+ import "../chunk-MZBRL5H5.js";
41
43
  import "../chunk-T7E75EKA.js";
42
- import "../chunk-OAL44FM2.js";
43
- import "../chunk-EIZW73P5.js";
44
- import "../chunk-XFNVG3OV.js";
44
+ import "../chunk-R6OYCUNK.js";
45
+ import "../chunk-YYCTF4Q5.js";
46
+ import "../chunk-G4GLCLKK.js";
45
47
 
46
48
  // bin/pushary-stop-hook.ts
47
49
  var AGENT = activeIdentity(process.argv);
@@ -2,44 +2,46 @@
2
2
  import {
3
3
  activeHookSource,
4
4
  activeIdentity
5
- } from "../chunk-KBLIVEFJ.js";
6
- import "../chunk-WSC53O7I.js";
5
+ } from "../chunk-UOQRM7JQ.js";
6
+ import "../chunk-G3OMOTJ4.js";
7
7
  import {
8
8
  readHookInput
9
- } from "../chunk-7GI6QC3M.js";
10
- import "../chunk-7GYGVQBU.js";
9
+ } from "../chunk-7RUJKCR4.js";
10
+ import "../chunk-OTNOANMX.js";
11
11
  import "../chunk-SGZJ5LYH.js";
12
- import "../chunk-SVEMF2VO.js";
13
- import "../chunk-XMN37YJH.js";
14
- import "../chunk-MWVCDP64.js";
15
- import "../chunk-XDASEYRS.js";
16
- import "../chunk-AAGLDXH4.js";
17
- import "../chunk-WZWXBTRF.js";
18
- import "../chunk-XPMOCJHN.js";
19
- import "../chunk-O5JD7UI5.js";
20
- import "../chunk-OTZHT34O.js";
21
- import "../chunk-XPTCPU6V.js";
12
+ import "../chunk-TCVMK6GI.js";
13
+ import "../chunk-BGBLLHZ4.js";
14
+ import "../chunk-3EUBQARL.js";
15
+ import "../chunk-WTJM7PSL.js";
16
+ import "../chunk-ZKJ34T2F.js";
17
+ import "../chunk-MIXWMA73.js";
18
+ import "../chunk-NOI3XTCY.js";
19
+ import "../chunk-P2VIBGXA.js";
20
+ import "../chunk-WPX67AKT.js";
21
+ import "../chunk-LPNJLKBQ.js";
22
22
  import "../chunk-XHKBHWLX.js";
23
23
  import {
24
24
  handleStopFailure
25
- } from "../chunk-WM3U2RUK.js";
26
- import "../chunk-4C4NRDIC.js";
27
- import "../chunk-ZIIYTQHC.js";
28
- import "../chunk-KSNAAMU5.js";
25
+ } from "../chunk-U6RVDUJ5.js";
26
+ import "../chunk-N6IOSZOE.js";
27
+ import "../chunk-EUGNVLMG.js";
28
+ import "../chunk-YC27PROF.js";
29
+ import "../chunk-N5MZH5A6.js";
29
30
  import "../chunk-POFBE6ZY.js";
30
31
  import "../chunk-GMXKITVA.js";
31
- import "../chunk-YZKS3ME3.js";
32
- import "../chunk-NQFGVAT6.js";
33
- import "../chunk-JTQDP4ZL.js";
34
- import "../chunk-P5CBNSYL.js";
32
+ import "../chunk-D6OODZCM.js";
33
+ import "../chunk-VE7TXLR4.js";
34
+ import "../chunk-EEEJ2JIL.js";
35
+ import "../chunk-DUQO4C4I.js";
36
+ import "../chunk-OVC5QXN5.js";
35
37
  import "../chunk-7QLSKOSU.js";
36
38
  import "../chunk-KZERVKTD.js";
37
- import "../chunk-UPKP67TA.js";
38
- import "../chunk-454KMJHF.js";
39
+ import "../chunk-62CVUUNU.js";
40
+ import "../chunk-MZBRL5H5.js";
39
41
  import "../chunk-T7E75EKA.js";
40
- import "../chunk-OAL44FM2.js";
41
- import "../chunk-EIZW73P5.js";
42
- import "../chunk-XFNVG3OV.js";
42
+ import "../chunk-R6OYCUNK.js";
43
+ import "../chunk-YYCTF4Q5.js";
44
+ import "../chunk-G4GLCLKK.js";
43
45
 
44
46
  // bin/pushary-stopfailure-hook.ts
45
47
  var AGENT = activeIdentity(process.argv);
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  createIo
4
- } from "../chunk-O5PRIYFZ.js";
4
+ } from "../chunk-U4TMAANR.js";
5
5
  import {
6
6
  exitOnHelpFlag
7
- } from "../chunk-6PV2JQ64.js";
7
+ } from "../chunk-5S2VBSJI.js";
8
8
  import {
9
9
  rejectUnknownFlags
10
10
  } from "../chunk-GMXKITVA.js";
@@ -17,9 +17,9 @@ import {
17
17
  import {
18
18
  getApiKey,
19
19
  getBaseUrl
20
- } from "../chunk-OAL44FM2.js";
21
- import "../chunk-EIZW73P5.js";
22
- import "../chunk-XFNVG3OV.js";
20
+ } from "../chunk-R6OYCUNK.js";
21
+ import "../chunk-YYCTF4Q5.js";
22
+ import "../chunk-G4GLCLKK.js";
23
23
 
24
24
  // bin/pushary-suggestions.ts
25
25
  exitOnHelpFlag("suggestions");
@@ -1,31 +1,31 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  registerTranscript
4
- } from "../chunk-7GYGVQBU.js";
4
+ } from "../chunk-OTNOANMX.js";
5
5
  import "../chunk-SGZJ5LYH.js";
6
- import "../chunk-SVEMF2VO.js";
7
- import "../chunk-XMN37YJH.js";
8
- import "../chunk-MWVCDP64.js";
9
- import "../chunk-XDASEYRS.js";
10
- import "../chunk-AAGLDXH4.js";
11
- import "../chunk-WZWXBTRF.js";
12
- import "../chunk-XPMOCJHN.js";
13
- import "../chunk-O5JD7UI5.js";
14
- import "../chunk-OTZHT34O.js";
15
- import "../chunk-XPTCPU6V.js";
6
+ import "../chunk-TCVMK6GI.js";
7
+ import "../chunk-BGBLLHZ4.js";
8
+ import "../chunk-3EUBQARL.js";
9
+ import "../chunk-WTJM7PSL.js";
10
+ import "../chunk-ZKJ34T2F.js";
11
+ import "../chunk-MIXWMA73.js";
12
+ import "../chunk-NOI3XTCY.js";
13
+ import "../chunk-P2VIBGXA.js";
14
+ import "../chunk-WPX67AKT.js";
15
+ import "../chunk-LPNJLKBQ.js";
16
16
  import "../chunk-XHKBHWLX.js";
17
- import "../chunk-4C4NRDIC.js";
17
+ import "../chunk-EUGNVLMG.js";
18
18
  import "../chunk-GMXKITVA.js";
19
- import "../chunk-YZKS3ME3.js";
20
- import "../chunk-P5CBNSYL.js";
19
+ import "../chunk-D6OODZCM.js";
20
+ import "../chunk-OVC5QXN5.js";
21
21
  import "../chunk-7QLSKOSU.js";
22
22
  import "../chunk-KZERVKTD.js";
23
- import "../chunk-UPKP67TA.js";
24
- import "../chunk-454KMJHF.js";
23
+ import "../chunk-62CVUUNU.js";
24
+ import "../chunk-MZBRL5H5.js";
25
25
  import "../chunk-T7E75EKA.js";
26
- import "../chunk-OAL44FM2.js";
27
- import "../chunk-EIZW73P5.js";
28
- import "../chunk-XFNVG3OV.js";
26
+ import "../chunk-R6OYCUNK.js";
27
+ import "../chunk-YYCTF4Q5.js";
28
+ import "../chunk-G4GLCLKK.js";
29
29
 
30
30
  // bin/pushary-transcript-register.ts
31
31
  var raw = "";