@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
@@ -1,44 +1,44 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  printKeyCheck
4
- } from "../chunk-3T35OE7C.js";
4
+ } from "../chunk-PRNFSORD.js";
5
5
  import {
6
6
  connectDevice,
7
7
  connectExistingApp,
8
8
  printConnectInstructions
9
- } from "../chunk-AHWJHLG5.js";
9
+ } from "../chunk-YPUBA2FL.js";
10
10
  import "../chunk-3EGEA4KH.js";
11
- import {
12
- checkApiKey
13
- } from "../chunk-43SSQCWO.js";
14
11
  import "../chunk-QCGNGEGE.js";
15
12
  import {
16
13
  createIo
17
- } from "../chunk-O5PRIYFZ.js";
14
+ } from "../chunk-U4TMAANR.js";
18
15
  import {
19
16
  exitOnHelpFlag
20
- } from "../chunk-6PV2JQ64.js";
17
+ } from "../chunk-5S2VBSJI.js";
21
18
  import {
22
19
  parseFlags
23
20
  } from "../chunk-GMXKITVA.js";
24
21
  import {
25
22
  readKeySource
26
- } from "../chunk-YZKS3ME3.js";
27
- import "../chunk-NQFGVAT6.js";
28
- import "../chunk-JTQDP4ZL.js";
29
- import "../chunk-P5CBNSYL.js";
23
+ } from "../chunk-D6OODZCM.js";
24
+ import "../chunk-VE7TXLR4.js";
25
+ import {
26
+ checkApiKey
27
+ } from "../chunk-EEEJ2JIL.js";
28
+ import "../chunk-DUQO4C4I.js";
29
+ import "../chunk-OVC5QXN5.js";
30
30
  import {
31
31
  UsageError
32
32
  } from "../chunk-7QLSKOSU.js";
33
33
  import {
34
34
  EXIT
35
35
  } from "../chunk-KZERVKTD.js";
36
- import "../chunk-UPKP67TA.js";
37
- import "../chunk-454KMJHF.js";
36
+ import "../chunk-62CVUUNU.js";
37
+ import "../chunk-MZBRL5H5.js";
38
38
  import "../chunk-T7E75EKA.js";
39
- import "../chunk-OAL44FM2.js";
40
- import "../chunk-EIZW73P5.js";
41
- import "../chunk-XFNVG3OV.js";
39
+ import "../chunk-R6OYCUNK.js";
40
+ import "../chunk-YYCTF4Q5.js";
41
+ import "../chunk-G4GLCLKK.js";
42
42
 
43
43
  // bin/pushary-connect.ts
44
44
  exitOnHelpFlag("connect");
@@ -2,15 +2,15 @@
2
2
  import {
3
3
  coworkOutput,
4
4
  parseCoworkOptions
5
- } from "../chunk-3QE3BHBW.js";
5
+ } from "../chunk-EADXTSHE.js";
6
6
  import {
7
7
  canOpenBrowser,
8
8
  openInBrowser
9
9
  } from "../chunk-PUZZELE6.js";
10
- import "../chunk-XMN37YJH.js";
10
+ import "../chunk-BGBLLHZ4.js";
11
11
  import {
12
12
  exitOnHelpFlag
13
- } from "../chunk-6PV2JQ64.js";
13
+ } from "../chunk-5S2VBSJI.js";
14
14
  import "../chunk-GMXKITVA.js";
15
15
  import {
16
16
  UsageError
@@ -18,10 +18,10 @@ import {
18
18
  import {
19
19
  EXIT
20
20
  } from "../chunk-KZERVKTD.js";
21
- import "../chunk-EIZW73P5.js";
21
+ import "../chunk-YYCTF4Q5.js";
22
22
  import {
23
23
  CLAUDE_CONNECTOR_GUIDE
24
- } from "../chunk-XFNVG3OV.js";
24
+ } from "../chunk-G4GLCLKK.js";
25
25
 
26
26
  // bin/pushary-cowork.ts
27
27
  exitOnHelpFlag("cowork");
@@ -1,19 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  inspectConfiguredManagedProviders
4
- } from "../chunk-QPR33SHS.js";
5
- import "../chunk-Y6GKOZBT.js";
6
- import "../chunk-6SJQ442W.js";
4
+ } from "../chunk-G6RRVJOG.js";
5
+ import "../chunk-IPSRMLCJ.js";
6
+ import "../chunk-RLW3JWDY.js";
7
7
  import {
8
8
  HEARTBEAT_INTERVAL_MS,
9
9
  sendHeartbeat
10
- } from "../chunk-YQN7S57T.js";
11
- import "../chunk-WSC53O7I.js";
10
+ } from "../chunk-WGMW7OXW.js";
11
+ import "../chunk-G3OMOTJ4.js";
12
12
  import {
13
13
  detectProviderLiveCapabilities,
14
14
  hasSpawnProvider,
15
15
  resolveControlPolicy
16
- } from "../chunk-Q7QRR6YL.js";
16
+ } from "../chunk-Y4ZH64UK.js";
17
17
  import {
18
18
  SESSION_REAP_SILENCE_MS,
19
19
  describeIdleWindow,
@@ -21,15 +21,15 @@ import {
21
21
  listProcessProofs,
22
22
  ownsLiveProcess,
23
23
  silentSpawnedProofs
24
- } from "../chunk-SNWNA3MQ.js";
24
+ } from "../chunk-LHC45YUC.js";
25
25
  import {
26
26
  startRegisteredTranscripts
27
- } from "../chunk-7GYGVQBU.js";
27
+ } from "../chunk-OTNOANMX.js";
28
28
  import "../chunk-SGZJ5LYH.js";
29
- import "../chunk-SVEMF2VO.js";
30
- import "../chunk-XMN37YJH.js";
31
- import "../chunk-MWVCDP64.js";
32
- import "../chunk-XDASEYRS.js";
29
+ import "../chunk-TCVMK6GI.js";
30
+ import "../chunk-BGBLLHZ4.js";
31
+ import "../chunk-3EUBQARL.js";
32
+ import "../chunk-WTJM7PSL.js";
33
33
  import {
34
34
  DAEMON_LEASE_RENEW_INTERVAL_MS,
35
35
  acquireDaemonLease,
@@ -46,46 +46,46 @@ import {
46
46
  requestDaemonHandoff,
47
47
  stopDaemonRunning,
48
48
  writeDaemonNeedsLogin
49
- } from "../chunk-AAGLDXH4.js";
50
- import "../chunk-WZWXBTRF.js";
51
- import "../chunk-XPMOCJHN.js";
52
- import "../chunk-O5JD7UI5.js";
53
- import "../chunk-OTZHT34O.js";
54
- import "../chunk-XPTCPU6V.js";
49
+ } from "../chunk-ZKJ34T2F.js";
50
+ import "../chunk-MIXWMA73.js";
51
+ import "../chunk-NOI3XTCY.js";
52
+ import "../chunk-P2VIBGXA.js";
53
+ import "../chunk-WPX67AKT.js";
54
+ import "../chunk-LPNJLKBQ.js";
55
55
  import {
56
56
  spawnClaude
57
57
  } from "../chunk-XHKBHWLX.js";
58
- import "../chunk-4C4NRDIC.js";
58
+ import "../chunk-EUGNVLMG.js";
59
59
  import {
60
60
  writeHuman
61
61
  } from "../chunk-QCGNGEGE.js";
62
62
  import {
63
63
  exitOnHelpFlag
64
- } from "../chunk-6PV2JQ64.js";
64
+ } from "../chunk-5S2VBSJI.js";
65
65
  import "../chunk-GMXKITVA.js";
66
66
  import {
67
67
  readControlMode
68
- } from "../chunk-YZKS3ME3.js";
68
+ } from "../chunk-D6OODZCM.js";
69
69
  import {
70
70
  getMachineId
71
- } from "../chunk-P5CBNSYL.js";
71
+ } from "../chunk-OVC5QXN5.js";
72
72
  import "../chunk-7QLSKOSU.js";
73
73
  import {
74
74
  EXIT
75
75
  } from "../chunk-KZERVKTD.js";
76
- import "../chunk-UPKP67TA.js";
76
+ import "../chunk-62CVUUNU.js";
77
77
  import {
78
78
  resolveBinary
79
- } from "../chunk-454KMJHF.js";
79
+ } from "../chunk-MZBRL5H5.js";
80
80
  import "../chunk-T7E75EKA.js";
81
81
  import {
82
82
  getApiKey,
83
83
  getBaseUrl
84
- } from "../chunk-OAL44FM2.js";
84
+ } from "../chunk-R6OYCUNK.js";
85
85
  import {
86
86
  NPX_LATEST_COMMAND
87
- } from "../chunk-EIZW73P5.js";
88
- import "../chunk-XFNVG3OV.js";
87
+ } from "../chunk-YYCTF4Q5.js";
88
+ import "../chunk-G4GLCLKK.js";
89
89
 
90
90
  // src/spawn-daemon.ts
91
91
  import { execFileSync, spawn } from "child_process";
@@ -8,38 +8,40 @@ import {
8
8
  openCodePluginDir,
9
9
  openCodePluginFile,
10
10
  removeOpenCodeMcpServer
11
- } from "../chunk-NID4UZDN.js";
11
+ } from "../chunk-KEL5MXRL.js";
12
12
  import {
13
13
  compatibleConfigFile,
14
14
  compatibleMcpFile,
15
15
  compatiblePermissionRuleFile,
16
16
  removeCompatibleHooks,
17
17
  removeCompatibleMcpServer
18
- } from "../chunk-KBLIVEFJ.js";
18
+ } from "../chunk-UOQRM7JQ.js";
19
19
  import {
20
20
  isClaudeMcpSnapshot,
21
21
  removeClaudeMcpServers,
22
22
  removePusharySettings,
23
23
  removePusharyToolPermissions,
24
24
  restoreClaudeMcpServer
25
- } from "../chunk-WSC53O7I.js";
25
+ } from "../chunk-G3OMOTJ4.js";
26
26
  import {
27
27
  removeGeminiSettings
28
- } from "../chunk-WZWXBTRF.js";
29
- import "../chunk-WM3U2RUK.js";
30
- import "../chunk-4C4NRDIC.js";
31
- import "../chunk-ZIIYTQHC.js";
32
- import "../chunk-KSNAAMU5.js";
28
+ } from "../chunk-MIXWMA73.js";
29
+ import "../chunk-U6RVDUJ5.js";
30
+ import "../chunk-N6IOSZOE.js";
31
+ import "../chunk-EUGNVLMG.js";
32
+ import "../chunk-YC27PROF.js";
33
+ import "../chunk-N5MZH5A6.js";
33
34
  import "../chunk-POFBE6ZY.js";
34
35
  import {
35
36
  exitOnHelpFlag
36
- } from "../chunk-6PV2JQ64.js";
37
- import "../chunk-NQFGVAT6.js";
38
- import "../chunk-JTQDP4ZL.js";
39
- import "../chunk-P5CBNSYL.js";
37
+ } from "../chunk-5S2VBSJI.js";
38
+ import "../chunk-VE7TXLR4.js";
39
+ import "../chunk-EEEJ2JIL.js";
40
+ import "../chunk-DUQO4C4I.js";
41
+ import "../chunk-OVC5QXN5.js";
40
42
  import "../chunk-7QLSKOSU.js";
41
43
  import "../chunk-KZERVKTD.js";
42
- import "../chunk-UPKP67TA.js";
44
+ import "../chunk-62CVUUNU.js";
43
45
  import {
44
46
  claudeJson,
45
47
  claudeMcpReceipt,
@@ -53,14 +55,14 @@ import {
53
55
  geminiSettings,
54
56
  removeCodexHooks,
55
57
  removeCodexSettings
56
- } from "../chunk-454KMJHF.js";
58
+ } from "../chunk-MZBRL5H5.js";
57
59
  import "../chunk-T7E75EKA.js";
58
- import "../chunk-OAL44FM2.js";
59
- import "../chunk-EIZW73P5.js";
60
+ import "../chunk-R6OYCUNK.js";
61
+ import "../chunk-YYCTF4Q5.js";
60
62
  import {
61
63
  DISCONNECTABLE_AGENTS,
62
64
  hookCompatibleProfileBySource
63
- } from "../chunk-XFNVG3OV.js";
65
+ } from "../chunk-G4GLCLKK.js";
64
66
 
65
67
  // bin/pushary-disconnect.ts
66
68
  import { readdirSync, readFileSync, rmSync, writeFileSync } from "fs";
@@ -6,20 +6,22 @@ import {
6
6
  readServiceExecPath,
7
7
  retryAgentCommand,
8
8
  versionManagerOf
9
- } from "../chunk-ZEMSCGDD.js";
9
+ } from "../chunk-VYPJHGG6.js";
10
10
  import {
11
11
  assessCodexHookTrust,
12
12
  readCodexTrustForPusharyHooks
13
- } from "../chunk-6SJQ442W.js";
13
+ } from "../chunk-RLW3JWDY.js";
14
14
  import {
15
15
  readMachineReadiness,
16
16
  readManagedControlEvidence
17
- } from "../chunk-YQN7S57T.js";
17
+ } from "../chunk-WGMW7OXW.js";
18
18
  import {
19
19
  FX_PROFILE_REFUSALS,
20
20
  FX_PUSHARY_TOOLS_RULE,
21
21
  FX_QUESTION_TOOL,
22
22
  FX_SETTINGS_REFUSALS,
23
+ HERMES_PIP_PACKAGE,
24
+ HERMES_PLUGIN_NAME,
23
25
  agentProbes,
24
26
  detectAgent,
25
27
  detectAllAgents,
@@ -27,6 +29,7 @@ import {
27
29
  fxPusharyEntryOf,
28
30
  fxQuestionRouting,
29
31
  hasInstructionBlock,
32
+ hermesWiredByPushary,
30
33
  isDetected,
31
34
  isFxPusharyEntry,
32
35
  isPluginRegistered,
@@ -34,30 +37,32 @@ import {
34
37
  readFxFile,
35
38
  readFxProfile,
36
39
  readFxSettings,
40
+ readHermesStatus,
41
+ resolveHermesPython,
37
42
  shortenHome,
38
43
  vscodeSettingsTargets,
39
44
  workspacesShowingQuestionTool
40
- } from "../chunk-NAAZCNKI.js";
41
- import "../chunk-2FU43B5Q.js";
45
+ } from "../chunk-O3JDWNLU.js";
46
+ import "../chunk-7OA34PNW.js";
42
47
  import {
43
48
  OPENCODE_PLUGIN_PLACEHOLDER,
44
49
  openCodePluginDir,
45
50
  openCodePluginFile,
46
51
  openCodeWired
47
- } from "../chunk-NID4UZDN.js";
52
+ } from "../chunk-KEL5MXRL.js";
48
53
  import {
49
54
  compatibleConfigFile,
50
55
  compatibleInstructionsFile,
51
56
  compatibleMcpFile,
52
57
  hasCompatibleHooks,
53
58
  missingCompatibleHookEvents
54
- } from "../chunk-KBLIVEFJ.js";
55
- import "../chunk-WSC53O7I.js";
59
+ } from "../chunk-UOQRM7JQ.js";
60
+ import "../chunk-G3OMOTJ4.js";
56
61
  import {
57
62
  detectProviderLiveCapabilities,
58
63
  hasSpawnProvider,
59
64
  resolveControlPolicy
60
- } from "../chunk-Q7QRR6YL.js";
65
+ } from "../chunk-Y4ZH64UK.js";
61
66
  import {
62
67
  AUTO_UPDATE_DISABLE_ENV,
63
68
  autoUpdateOffReason,
@@ -65,16 +70,16 @@ import {
65
70
  describeAutoUpdateCheck,
66
71
  readAutoUpdateState,
67
72
  takeAutoUpdateAnnouncement
68
- } from "../chunk-BYVB3RX3.js";
73
+ } from "../chunk-KJXUIPS4.js";
69
74
  import {
70
75
  readLedgerSummary
71
- } from "../chunk-MCNS4725.js";
76
+ } from "../chunk-IRZG3HEU.js";
72
77
  import {
73
78
  describeBridgeResolution,
74
79
  isBridgeLocator,
75
80
  liveBridgeProbe,
76
81
  resolveBridgeStub
77
- } from "../chunk-MWVCDP64.js";
82
+ } from "../chunk-3EUBQARL.js";
78
83
  import {
79
84
  claudeOtherHolders,
80
85
  claudeUnprovenHolds,
@@ -91,7 +96,7 @@ import {
91
96
  geminiWired,
92
97
  holdsLong,
93
98
  pusharyHookExecutable
94
- } from "../chunk-XDASEYRS.js";
99
+ } from "../chunk-WTJM7PSL.js";
95
100
  import {
96
101
  daemonHasRemoteProof,
97
102
  daemonServiceManagerAvailable,
@@ -100,17 +105,18 @@ import {
100
105
  readDaemonNeedsLogin,
101
106
  readDaemonStatus,
102
107
  readInstalledDaemonService
103
- } from "../chunk-AAGLDXH4.js";
108
+ } from "../chunk-ZKJ34T2F.js";
104
109
  import {
105
110
  GEMINI_HOOK_BINARY,
106
111
  hasGeminiHooks,
107
112
  missingGeminiHookEvents
108
- } from "../chunk-WZWXBTRF.js";
113
+ } from "../chunk-MIXWMA73.js";
109
114
  import "../chunk-XHKBHWLX.js";
110
- import "../chunk-WM3U2RUK.js";
111
- import "../chunk-4C4NRDIC.js";
112
- import "../chunk-ZIIYTQHC.js";
113
- import "../chunk-KSNAAMU5.js";
115
+ import "../chunk-U6RVDUJ5.js";
116
+ import "../chunk-N6IOSZOE.js";
117
+ import "../chunk-EUGNVLMG.js";
118
+ import "../chunk-YC27PROF.js";
119
+ import "../chunk-N5MZH5A6.js";
114
120
  import "../chunk-POFBE6ZY.js";
115
121
  import {
116
122
  describeReach,
@@ -119,19 +125,15 @@ import {
119
125
  reachVerdict,
120
126
  roundTripEvidence,
121
127
  verifyRoundTrip
122
- } from "../chunk-AHWJHLG5.js";
128
+ } from "../chunk-YPUBA2FL.js";
123
129
  import "../chunk-3EGEA4KH.js";
124
- import {
125
- checkApiKey,
126
- describeKeyCheck
127
- } from "../chunk-43SSQCWO.js";
128
130
  import "../chunk-QCGNGEGE.js";
129
131
  import {
130
132
  createIo
131
- } from "../chunk-O5PRIYFZ.js";
133
+ } from "../chunk-U4TMAANR.js";
132
134
  import {
133
135
  exitOnHelpFlag
134
- } from "../chunk-6PV2JQ64.js";
136
+ } from "../chunk-5S2VBSJI.js";
135
137
  import {
136
138
  parseFlags
137
139
  } from "../chunk-GMXKITVA.js";
@@ -139,22 +141,26 @@ import {
139
141
  keyPrefix,
140
142
  readControlMode,
141
143
  readKeySource
142
- } from "../chunk-YZKS3ME3.js";
144
+ } from "../chunk-D6OODZCM.js";
143
145
  import {
144
146
  callMcpTool,
145
147
  sendMcpRequest
146
- } from "../chunk-NQFGVAT6.js";
147
- import "../chunk-JTQDP4ZL.js";
148
+ } from "../chunk-VE7TXLR4.js";
149
+ import {
150
+ checkApiKey,
151
+ describeKeyCheck
152
+ } from "../chunk-EEEJ2JIL.js";
153
+ import "../chunk-DUQO4C4I.js";
148
154
  import {
149
155
  getMachineId
150
- } from "../chunk-P5CBNSYL.js";
156
+ } from "../chunk-OVC5QXN5.js";
151
157
  import {
152
158
  UsageError
153
159
  } from "../chunk-7QLSKOSU.js";
154
160
  import {
155
161
  EXIT
156
162
  } from "../chunk-KZERVKTD.js";
157
- import "../chunk-UPKP67TA.js";
163
+ import "../chunk-62CVUUNU.js";
158
164
  import {
159
165
  CODEX_HOOK_EVENTS,
160
166
  autoUpdateState,
@@ -177,19 +183,21 @@ import {
177
183
  geminiMd,
178
184
  geminiSettings,
179
185
  hasCodexHooks,
186
+ hermesConfig,
187
+ hermesConfigReceipt,
180
188
  missingCodexHookEvents,
181
189
  pusharyConfigFile,
182
190
  readCodexMcpAuth,
183
191
  resolvePathBinary,
184
192
  vscodePluginDir
185
- } from "../chunk-454KMJHF.js";
193
+ } from "../chunk-MZBRL5H5.js";
186
194
  import "../chunk-T7E75EKA.js";
187
195
  import {
188
196
  getBaseUrl
189
- } from "../chunk-OAL44FM2.js";
197
+ } from "../chunk-R6OYCUNK.js";
190
198
  import {
191
199
  NPX_LATEST_COMMAND
192
- } from "../chunk-EIZW73P5.js";
200
+ } from "../chunk-YYCTF4Q5.js";
193
201
  import {
194
202
  AGENTS,
195
203
  CURSOR_GATE_EVENTS,
@@ -203,7 +211,7 @@ import {
203
211
  hookCompatibleProfile,
204
212
  isHookActivationReport,
205
213
  isNewerVersion
206
- } from "../chunk-XFNVG3OV.js";
214
+ } from "../chunk-G4GLCLKK.js";
207
215
 
208
216
  // bin/pushary-doctor.ts
209
217
  import { existsSync, readFileSync, writeFileSync } from "fs";
@@ -466,6 +474,15 @@ var reportFxQuestionRouting = (routing) => {
466
474
  }
467
475
  console.log(` ${warn} fx: questions can still stop in the terminal ${dim(`(${FX_QUESTION_ROUTING_WARNINGS[routing]})`)}`);
468
476
  };
477
+ var reportHermesStatus = (status) => {
478
+ const config = hermesConfig();
479
+ check(status.pluginInstalled, "Hermes: plugin installed", status.pluginInstalled ? HERMES_PIP_PACKAGE : `${HERMES_PIP_PACKAGE} is not installed in Hermes' Python \u2014 run ${retryAgentCommand("hermes")}`);
480
+ check(status.pluginEnabled, "Hermes: plugin enabled", status.pluginEnabled ? config : `"${HERMES_PLUGIN_NAME}" is missing from plugins.enabled in ${config} \u2014 run ${retryAgentCommand("hermes")}`);
481
+ if (status.approvalsRouted) check(true, "Hermes: approvals go through Pushary", `security.approval.transport in ${config}`);
482
+ else console.log(` ${warn} Hermes: approvals stay in the terminal ${dim(`(security.approval.transport is not "pushary" in ${config})`)}`);
483
+ if (status.questionsRouted) check(true, "Hermes: questions go through Pushary", `clarify is off in ${config}`);
484
+ else console.log(` ${warn} Hermes: questions can stop in the terminal ${dim(`(clarify is not in agent.disabled_toolsets in ${config})`)}`);
485
+ };
469
486
  var fxSettingsProblem = (read) => {
470
487
  if (read.kind === "missing") return `${fxSettings()} is missing, so fx runs with no Pushary rules; re-run ${retryAgentCommand("fx")}`;
471
488
  if (read.kind === "unreadable") return `${fxSettings()} could not be read`;
@@ -1124,6 +1141,17 @@ var main = async () => {
1124
1141
  } else {
1125
1142
  skipped("fx", installed("fx") ? "installed, but Pushary is not set up for it" : "not installed");
1126
1143
  }
1144
+ const hermesPython = resolveHermesPython();
1145
+ const hermesStatus = hermesPython ? readHermesStatus(hermesPython) : null;
1146
+ const hermesSetupRecorded = existsSync(hermesConfigReceipt());
1147
+ if (hermesStatus && hermesWiredByPushary(hermesStatus, hermesSetupRecorded)) {
1148
+ checking("Hermes");
1149
+ reportHermesStatus(hermesStatus);
1150
+ } else if (hermesPython && hermesStatus === null && hermesSetupRecorded) {
1151
+ check(false, "Hermes: config readable", `${hermesConfig()} could not be read with Hermes' Python \u2014 run ${retryAgentCommand("hermes")}`);
1152
+ } else {
1153
+ skipped("Hermes", installed("hermes") ? "installed, but Pushary is not set up for it" : "not installed");
1154
+ }
1127
1155
  if (bridgeStub) {
1128
1156
  const resolution = resolveBridgeStub(bridgeStub, liveBridgeProbe());
1129
1157
  check(resolution.kind === "bundle", "Mac app behind pushary-bridge", describeBridgeResolution(resolution));
@@ -1,47 +1,52 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-7GI6QC3M.js";
4
+ } from "../chunk-7RUJKCR4.js";
5
5
  import {
6
+ announceSubscriptionRequired,
6
7
  isDeferAnswer
7
- } from "../chunk-YHG74UFF.js";
8
- import "../chunk-7GYGVQBU.js";
8
+ } from "../chunk-5OP5MQI7.js";
9
+ import "../chunk-OTNOANMX.js";
9
10
  import "../chunk-SGZJ5LYH.js";
10
- import "../chunk-SVEMF2VO.js";
11
- import "../chunk-XMN37YJH.js";
12
- import "../chunk-MWVCDP64.js";
13
- import "../chunk-XDASEYRS.js";
14
- import "../chunk-AAGLDXH4.js";
15
- import "../chunk-WZWXBTRF.js";
16
- import "../chunk-XPMOCJHN.js";
17
- import "../chunk-O5JD7UI5.js";
18
- import "../chunk-OTZHT34O.js";
19
- import "../chunk-XPTCPU6V.js";
11
+ import "../chunk-TCVMK6GI.js";
12
+ import "../chunk-BGBLLHZ4.js";
13
+ import "../chunk-3EUBQARL.js";
14
+ import "../chunk-WTJM7PSL.js";
15
+ import "../chunk-ZKJ34T2F.js";
16
+ import "../chunk-MIXWMA73.js";
17
+ import "../chunk-NOI3XTCY.js";
18
+ import "../chunk-P2VIBGXA.js";
19
+ import "../chunk-WPX67AKT.js";
20
+ import "../chunk-LPNJLKBQ.js";
20
21
  import "../chunk-XHKBHWLX.js";
21
- import "../chunk-4C4NRDIC.js";
22
+ import "../chunk-N6IOSZOE.js";
23
+ import "../chunk-EUGNVLMG.js";
22
24
  import {
23
25
  askUser,
24
26
  isDecisionStopped,
25
27
  waitForQuestion
26
- } from "../chunk-ZIIYTQHC.js";
27
- import "../chunk-KSNAAMU5.js";
28
+ } from "../chunk-YC27PROF.js";
29
+ import "../chunk-N5MZH5A6.js";
28
30
  import "../chunk-POFBE6ZY.js";
29
31
  import "../chunk-GMXKITVA.js";
30
- import "../chunk-YZKS3ME3.js";
31
- import "../chunk-NQFGVAT6.js";
32
- import "../chunk-JTQDP4ZL.js";
32
+ import "../chunk-D6OODZCM.js";
33
+ import {
34
+ SubscriptionRequiredError
35
+ } from "../chunk-VE7TXLR4.js";
36
+ import "../chunk-EEEJ2JIL.js";
37
+ import "../chunk-DUQO4C4I.js";
33
38
  import {
34
39
  getMachineId
35
- } from "../chunk-P5CBNSYL.js";
40
+ } from "../chunk-OVC5QXN5.js";
36
41
  import "../chunk-7QLSKOSU.js";
37
42
  import "../chunk-KZERVKTD.js";
38
- import "../chunk-UPKP67TA.js";
39
- import "../chunk-454KMJHF.js";
43
+ import "../chunk-62CVUUNU.js";
44
+ import "../chunk-MZBRL5H5.js";
40
45
  import "../chunk-T7E75EKA.js";
41
46
  import {
42
47
  getApiKey
43
- } from "../chunk-OAL44FM2.js";
44
- import "../chunk-EIZW73P5.js";
48
+ } from "../chunk-R6OYCUNK.js";
49
+ import "../chunk-YYCTF4Q5.js";
45
50
  import {
46
51
  ELICITATION_ANSWERABLE_MODE,
47
52
  effectiveWaitSeconds,
@@ -52,7 +57,7 @@ import {
52
57
  planElicitationAsk,
53
58
  readElicitationFields,
54
59
  renderElicitationOutput
55
- } from "../chunk-XFNVG3OV.js";
60
+ } from "../chunk-G4GLCLKK.js";
56
61
 
57
62
  // bin/pushary-elicitation-hook.ts
58
63
  import { basename } from "path";
@@ -105,7 +110,11 @@ var main = async () => {
105
110
  let created;
106
111
  try {
107
112
  created = await askUser(apiKey, { ...common, ...prompt });
108
- } catch {
113
+ } catch (error) {
114
+ if (error instanceof SubscriptionRequiredError) {
115
+ announceSubscriptionRequired(error.upgradeUrl, input.session_id);
116
+ return;
117
+ }
109
118
  process.stdout.write(renderElicitationOutput(input.hook_event_name ?? "Elicitation", "cancel") ?? "");
110
119
  return;
111
120
  }
@@ -5,37 +5,37 @@ import {
5
5
  postLiveSession,
6
6
  postLiveSessionUntilAccepted,
7
7
  startLiveSessionHeartbeat
8
- } from "../chunk-VCMFKZON.js";
8
+ } from "../chunk-BIH2Y2HP.js";
9
9
  import {
10
10
  SESSION_IDLE_TIMEOUT_MS,
11
11
  describeIdleWindow,
12
12
  idleDeadlinePassed,
13
13
  startProcessOwnership,
14
14
  withSpawnProcessOwnership
15
- } from "../chunk-SNWNA3MQ.js";
16
- import "../chunk-O5JD7UI5.js";
17
- import "../chunk-OTZHT34O.js";
15
+ } from "../chunk-LHC45YUC.js";
16
+ import "../chunk-P2VIBGXA.js";
17
+ import "../chunk-WPX67AKT.js";
18
18
  import {
19
19
  transcriptsEnabled
20
- } from "../chunk-XPTCPU6V.js";
20
+ } from "../chunk-LPNJLKBQ.js";
21
21
  import {
22
22
  spawnClaude
23
23
  } from "../chunk-XHKBHWLX.js";
24
- import "../chunk-YZKS3ME3.js";
24
+ import "../chunk-D6OODZCM.js";
25
25
  import {
26
26
  getMachineId
27
- } from "../chunk-P5CBNSYL.js";
28
- import "../chunk-UPKP67TA.js";
27
+ } from "../chunk-OVC5QXN5.js";
28
+ import "../chunk-62CVUUNU.js";
29
29
  import {
30
30
  resolveBinary
31
- } from "../chunk-454KMJHF.js";
31
+ } from "../chunk-MZBRL5H5.js";
32
32
  import "../chunk-T7E75EKA.js";
33
33
  import {
34
34
  getApiKey,
35
35
  getBaseUrl
36
- } from "../chunk-OAL44FM2.js";
37
- import "../chunk-EIZW73P5.js";
38
- import "../chunk-XFNVG3OV.js";
36
+ } from "../chunk-R6OYCUNK.js";
37
+ import "../chunk-YYCTF4Q5.js";
38
+ import "../chunk-G4GLCLKK.js";
39
39
 
40
40
  // bin/pushary-gemini-bridge.ts
41
41
  import { existsSync } from "fs";