@pushary/agent-hooks 1.3.0 → 1.3.1

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 (85) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/data/SKILL.md +3 -3
  3. package/data/cursor-plugin/skills/pushary/SKILL.md +2 -2
  4. package/data/vscode-plugin/skills/pushary/SKILL.md +2 -2
  5. package/dist/bin/pushary-bell-hook.js +20 -20
  6. package/dist/bin/pushary-bell.js +7 -7
  7. package/dist/bin/pushary-claude.js +20 -20
  8. package/dist/bin/pushary-clean.js +21 -21
  9. package/dist/bin/pushary-codex-bridge.js +11 -11
  10. package/dist/bin/pushary-codex-hook.js +24 -24
  11. package/dist/bin/pushary-codex.js +7 -7
  12. package/dist/bin/pushary-connect.js +7 -7
  13. package/dist/bin/pushary-cowork.js +3 -3
  14. package/dist/bin/pushary-daemon.js +24 -24
  15. package/dist/bin/pushary-disconnect.js +11 -11
  16. package/dist/bin/pushary-doctor.js +35 -22
  17. package/dist/bin/pushary-elicitation-hook.js +19 -19
  18. package/dist/bin/pushary-gemini-bridge.js +10 -10
  19. package/dist/bin/pushary-gemini-hook.js +21 -21
  20. package/dist/bin/pushary-hook.js +30 -40
  21. package/dist/bin/pushary-login.js +8 -8
  22. package/dist/bin/pushary-logout.js +5 -5
  23. package/dist/bin/pushary-mode.js +3 -3
  24. package/dist/bin/pushary-notification-hook.js +22 -22
  25. package/dist/bin/pushary-opencode-hook.js +21 -21
  26. package/dist/bin/pushary-permission-denied-hook.js +26 -26
  27. package/dist/bin/pushary-permission-hook.js +30 -29
  28. package/dist/bin/pushary-post-hook.js +22 -22
  29. package/dist/bin/pushary-prompt-hook.js +22 -22
  30. package/dist/bin/pushary-session-end-hook.js +22 -22
  31. package/dist/bin/pushary-session-start-hook.js +24 -24
  32. package/dist/bin/pushary-setup.js +27 -27
  33. package/dist/bin/pushary-stats.js +2 -2
  34. package/dist/bin/pushary-status.js +11 -11
  35. package/dist/bin/pushary-stop-hook.js +22 -22
  36. package/dist/bin/pushary-stopfailure-hook.js +22 -22
  37. package/dist/bin/pushary-transcript-register.js +18 -18
  38. package/dist/bin/pushary-transcripts.js +6 -6
  39. package/dist/bin/pushary-upgrade.js +15 -15
  40. package/dist/bin/pushary-wait.js +3 -3
  41. package/dist/{chunk-RHLUJE4H.js → chunk-34NNTYK6.js} +1 -1
  42. package/dist/{chunk-EJZCV5G4.js → chunk-35RPUNYU.js} +1 -1
  43. package/dist/{chunk-K7UIAE7I.js → chunk-465UENKO.js} +2 -2
  44. package/dist/{chunk-XBO42HKH.js → chunk-5SALHATY.js} +2 -2
  45. package/dist/{chunk-WPJS3OZH.js → chunk-5UWDYOZX.js} +20 -1
  46. package/dist/{chunk-POAFXBNH.js → chunk-5WLH2ENB.js} +1 -1
  47. package/dist/{chunk-KPNGPRYU.js → chunk-5XKMOZO6.js} +4 -4
  48. package/dist/{chunk-KS4P6F3R.js → chunk-6HH4IH4K.js} +4 -4
  49. package/dist/{chunk-XBJW4MV5.js → chunk-AFKOWCMQ.js} +1 -1
  50. package/dist/{chunk-FGVNU7XD.js → chunk-AFOTOA24.js} +1 -1
  51. package/dist/{chunk-B3S4SF3D.js → chunk-CDSL3LLO.js} +1 -1
  52. package/dist/{chunk-N43EQPJK.js → chunk-CKLWJ6EL.js} +10 -2
  53. package/dist/{chunk-2PLEJ7SY.js → chunk-EAGMQMRM.js} +1 -1
  54. package/dist/{chunk-BYGEZI7B.js → chunk-FGNABUPN.js} +1 -1
  55. package/dist/{chunk-A5ZWYQFV.js → chunk-HCTSTMDD.js} +4 -4
  56. package/dist/{chunk-X3KIGNIP.js → chunk-I2OLM3DM.js} +30 -21
  57. package/dist/{chunk-EYMMU5HC.js → chunk-JZA2JOGO.js} +1 -1
  58. package/dist/{chunk-OE6U2AXM.js → chunk-KHGIM2BN.js} +3 -3
  59. package/dist/{chunk-JYEGOYQC.js → chunk-KLZJEMSE.js} +1 -1
  60. package/dist/{chunk-BNDHXPTQ.js → chunk-LWT34GSY.js} +20 -13
  61. package/dist/{chunk-BL4SQNO6.js → chunk-NDSOOJDX.js} +1 -1
  62. package/dist/{chunk-YF4JDCU4.js → chunk-OMP3KDDU.js} +1 -1
  63. package/dist/{chunk-EU6JH7KU.js → chunk-P232YODQ.js} +8 -8
  64. package/dist/{chunk-K4TAUYUJ.js → chunk-PEV6ULSM.js} +3 -3
  65. package/dist/{chunk-4V24U44H.js → chunk-PHXU4NOP.js} +2 -2
  66. package/dist/{chunk-3AIFWTVB.js → chunk-QDYJQLXT.js} +2 -2
  67. package/dist/{chunk-DVO4SZMJ.js → chunk-QOCWB4Q6.js} +3 -3
  68. package/dist/{chunk-EKQAKSGI.js → chunk-R5CU7ED6.js} +1 -1
  69. package/dist/{chunk-XEXOHUJ6.js → chunk-REIZ5GXG.js} +4 -4
  70. package/dist/{chunk-UVXNYYHG.js → chunk-RERJ2ZDV.js} +6 -6
  71. package/dist/{chunk-ZHL62DRA.js → chunk-SGZE2JBF.js} +3 -3
  72. package/dist/{chunk-YKLCWWEI.js → chunk-SGZJ5LYH.js} +1 -1
  73. package/dist/{chunk-4LL6LG5X.js → chunk-T7E75EKA.js} +4 -3
  74. package/dist/{chunk-RVDHN2TJ.js → chunk-TGG4FWWB.js} +2 -2
  75. package/dist/{chunk-DON24PNT.js → chunk-TW7KA27C.js} +1 -1
  76. package/dist/{chunk-WXXDHGTZ.js → chunk-WOBHHXW5.js} +4 -4
  77. package/dist/{chunk-MU275U5A.js → chunk-XOUQUZ43.js} +2 -2
  78. package/dist/{chunk-IAEVVUXO.js → chunk-XP2KRTZD.js} +1 -1
  79. package/dist/{chunk-E7WBNGJS.js → chunk-XVE52YFZ.js} +1 -1
  80. package/dist/{chunk-A2URMNFM.js → chunk-YXWM4TNX.js} +1 -1
  81. package/dist/{reapply-FUCAKR6Z.js → reapply-ADFRVH5N.js} +9 -9
  82. package/dist/src/index.d.ts +2 -2
  83. package/dist/src/index.js +13 -13
  84. package/package.json +1 -1
  85. /package/dist/{chunk-KBITFQST.js → chunk-P32LPT2L.js} +0 -0
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  inspectConfiguredManagedProviders
4
- } from "../chunk-UVXNYYHG.js";
5
- import "../chunk-XBJW4MV5.js";
4
+ } from "../chunk-RERJ2ZDV.js";
5
+ import "../chunk-AFKOWCMQ.js";
6
6
  import {
7
7
  HEARTBEAT_INTERVAL_MS,
8
8
  sendHeartbeat
9
- } from "../chunk-KPNGPRYU.js";
10
- import "../chunk-ZHL62DRA.js";
9
+ } from "../chunk-5XKMOZO6.js";
10
+ import "../chunk-SGZE2JBF.js";
11
11
  import {
12
12
  detectProviderLiveCapabilities,
13
13
  hasSpawnProvider,
14
14
  resolveControlPolicy
15
- } from "../chunk-4V24U44H.js";
15
+ } from "../chunk-PHXU4NOP.js";
16
16
  import {
17
17
  SESSION_REAP_SILENCE_MS,
18
18
  describeIdleWindow,
@@ -20,15 +20,15 @@ import {
20
20
  listProcessProofs,
21
21
  ownsLiveProcess,
22
22
  silentSpawnedProofs
23
- } from "../chunk-MU275U5A.js";
23
+ } from "../chunk-XOUQUZ43.js";
24
24
  import {
25
25
  startRegisteredTranscripts
26
- } from "../chunk-EU6JH7KU.js";
27
- import "../chunk-YKLCWWEI.js";
28
- import "../chunk-XEXOHUJ6.js";
29
- import "../chunk-BYGEZI7B.js";
30
- import "../chunk-JYEGOYQC.js";
31
- import "../chunk-DVO4SZMJ.js";
26
+ } from "../chunk-P232YODQ.js";
27
+ import "../chunk-SGZJ5LYH.js";
28
+ import "../chunk-REIZ5GXG.js";
29
+ import "../chunk-FGNABUPN.js";
30
+ import "../chunk-KLZJEMSE.js";
31
+ import "../chunk-QOCWB4Q6.js";
32
32
  import {
33
33
  DAEMON_LEASE_RENEW_INTERVAL_MS,
34
34
  acquireDaemonLease,
@@ -45,22 +45,22 @@ import {
45
45
  requestDaemonHandoff,
46
46
  stopDaemonRunning,
47
47
  writeDaemonNeedsLogin
48
- } from "../chunk-KS4P6F3R.js";
49
- import "../chunk-OE6U2AXM.js";
50
- import "../chunk-2PLEJ7SY.js";
51
- import "../chunk-B3S4SF3D.js";
48
+ } from "../chunk-6HH4IH4K.js";
49
+ import "../chunk-KHGIM2BN.js";
50
+ import "../chunk-EAGMQMRM.js";
51
+ import "../chunk-CDSL3LLO.js";
52
52
  import "../chunk-EQRS3SGM.js";
53
- import "../chunk-A2URMNFM.js";
53
+ import "../chunk-YXWM4TNX.js";
54
54
  import {
55
55
  spawnClaude
56
56
  } from "../chunk-XHKBHWLX.js";
57
- import "../chunk-IAEVVUXO.js";
57
+ import "../chunk-XP2KRTZD.js";
58
58
  import {
59
59
  getMachineId
60
- } from "../chunk-K7UIAE7I.js";
60
+ } from "../chunk-465UENKO.js";
61
61
  import {
62
62
  resolveBinary
63
- } from "../chunk-RHLUJE4H.js";
63
+ } from "../chunk-34NNTYK6.js";
64
64
  import {
65
65
  writeHuman
66
66
  } from "../chunk-QCGNGEGE.js";
@@ -72,18 +72,18 @@ import "../chunk-GMXKITVA.js";
72
72
  import "../chunk-DINDL2CF.js";
73
73
  import {
74
74
  readControlMode
75
- } from "../chunk-XBO42HKH.js";
75
+ } from "../chunk-5SALHATY.js";
76
76
  import "../chunk-7QLSKOSU.js";
77
77
  import {
78
78
  EXIT
79
79
  } from "../chunk-KZERVKTD.js";
80
- import "../chunk-POAFXBNH.js";
81
- import "../chunk-4LL6LG5X.js";
80
+ import "../chunk-5WLH2ENB.js";
81
+ import "../chunk-T7E75EKA.js";
82
82
  import {
83
83
  getApiKey,
84
84
  getBaseUrl
85
85
  } from "../chunk-2UMNXADU.js";
86
- import "../chunk-WPJS3OZH.js";
86
+ import "../chunk-5UWDYOZX.js";
87
87
 
88
88
  // src/spawn-daemon.ts
89
89
  import { execFileSync, spawn } from "child_process";
@@ -8,28 +8,28 @@ import {
8
8
  openCodePluginDir,
9
9
  openCodePluginFile,
10
10
  removeOpenCodeMcpServer
11
- } from "../chunk-E7WBNGJS.js";
11
+ } from "../chunk-XVE52YFZ.js";
12
12
  import {
13
13
  compatibleConfigFile,
14
14
  compatibleMcpFile,
15
15
  compatiblePermissionRuleFile,
16
16
  removeCompatibleHooks,
17
17
  removeCompatibleMcpServer
18
- } from "../chunk-BNDHXPTQ.js";
18
+ } from "../chunk-LWT34GSY.js";
19
19
  import {
20
20
  isClaudeMcpSnapshot,
21
21
  removeClaudeMcpServers,
22
22
  removePusharySettings,
23
23
  removePusharyToolPermissions,
24
24
  restoreClaudeMcpServer
25
- } from "../chunk-ZHL62DRA.js";
25
+ } from "../chunk-SGZE2JBF.js";
26
26
  import {
27
27
  removeGeminiSettings
28
- } from "../chunk-OE6U2AXM.js";
29
- import "../chunk-WXXDHGTZ.js";
30
- import "../chunk-IAEVVUXO.js";
28
+ } from "../chunk-KHGIM2BN.js";
29
+ import "../chunk-WOBHHXW5.js";
30
+ import "../chunk-XP2KRTZD.js";
31
31
  import "../chunk-LGXUGYUH.js";
32
- import "../chunk-K7UIAE7I.js";
32
+ import "../chunk-465UENKO.js";
33
33
  import {
34
34
  claudeJson,
35
35
  claudeMcpReceipt,
@@ -43,7 +43,7 @@ import {
43
43
  geminiSettings,
44
44
  removeCodexHooks,
45
45
  removeCodexSettings
46
- } from "../chunk-RHLUJE4H.js";
46
+ } from "../chunk-34NNTYK6.js";
47
47
  import {
48
48
  exitOnHelpFlag
49
49
  } from "../chunk-GOQHN2UH.js";
@@ -53,13 +53,13 @@ import "../chunk-EYRGBYZG.js";
53
53
  import "../chunk-SAF6HGAA.js";
54
54
  import "../chunk-7QLSKOSU.js";
55
55
  import "../chunk-KZERVKTD.js";
56
- import "../chunk-POAFXBNH.js";
57
- import "../chunk-4LL6LG5X.js";
56
+ import "../chunk-5WLH2ENB.js";
57
+ import "../chunk-T7E75EKA.js";
58
58
  import "../chunk-2UMNXADU.js";
59
59
  import {
60
60
  DISCONNECTABLE_AGENTS,
61
61
  hookCompatibleProfileBySource
62
- } from "../chunk-WPJS3OZH.js";
62
+ } from "../chunk-5UWDYOZX.js";
63
63
 
64
64
  // bin/pushary-disconnect.ts
65
65
  import { readdirSync, readFileSync, rmSync, writeFileSync } from "fs";
@@ -9,10 +9,10 @@ import {
9
9
  import {
10
10
  readMachineReadiness,
11
11
  readManagedControlEvidence
12
- } from "../chunk-KPNGPRYU.js";
12
+ } from "../chunk-5XKMOZO6.js";
13
13
  import {
14
14
  CURSOR_GATE_SCRIPT
15
- } from "../chunk-KBITFQST.js";
15
+ } from "../chunk-P32LPT2L.js";
16
16
  import {
17
17
  agentProbes,
18
18
  detectAgent,
@@ -22,35 +22,35 @@ import {
22
22
  isPluginRegistered,
23
23
  shortenHome,
24
24
  vscodeSettingsTargets
25
- } from "../chunk-K4TAUYUJ.js";
25
+ } from "../chunk-PEV6ULSM.js";
26
26
  import {
27
27
  OPENCODE_PLUGIN_PLACEHOLDER,
28
28
  openCodePluginDir,
29
29
  openCodePluginFile,
30
30
  openCodeWired
31
- } from "../chunk-E7WBNGJS.js";
31
+ } from "../chunk-XVE52YFZ.js";
32
32
  import {
33
33
  compatibleConfigFile,
34
34
  compatibleInstructionsFile,
35
35
  compatibleMcpFile,
36
36
  hasCompatibleHooks,
37
37
  missingCompatibleHookEvents
38
- } from "../chunk-BNDHXPTQ.js";
39
- import "../chunk-ZHL62DRA.js";
38
+ } from "../chunk-LWT34GSY.js";
39
+ import "../chunk-SGZE2JBF.js";
40
40
  import {
41
41
  detectProviderLiveCapabilities,
42
42
  hasSpawnProvider,
43
43
  resolveControlPolicy
44
- } from "../chunk-4V24U44H.js";
44
+ } from "../chunk-PHXU4NOP.js";
45
45
  import {
46
46
  readLedgerSummary
47
- } from "../chunk-YF4JDCU4.js";
47
+ } from "../chunk-OMP3KDDU.js";
48
48
  import {
49
49
  describeBridgeResolution,
50
50
  isBridgeLocator,
51
51
  liveBridgeProbe,
52
52
  resolveBridgeStub
53
- } from "../chunk-JYEGOYQC.js";
53
+ } from "../chunk-KLZJEMSE.js";
54
54
  import {
55
55
  claudeOtherHolders,
56
56
  claudeUnprovenHolds,
@@ -67,7 +67,7 @@ import {
67
67
  geminiWired,
68
68
  holdsLong,
69
69
  pusharyHookExecutable
70
- } from "../chunk-DVO4SZMJ.js";
70
+ } from "../chunk-QOCWB4Q6.js";
71
71
  import {
72
72
  daemonHasRemoteProof,
73
73
  daemonServiceManagerAvailable,
@@ -76,19 +76,19 @@ import {
76
76
  readDaemonNeedsLogin,
77
77
  readDaemonStatus,
78
78
  readInstalledDaemonService
79
- } from "../chunk-KS4P6F3R.js";
79
+ } from "../chunk-6HH4IH4K.js";
80
80
  import {
81
81
  GEMINI_HOOK_BINARY,
82
82
  hasGeminiHooks,
83
83
  missingGeminiHookEvents
84
- } from "../chunk-OE6U2AXM.js";
84
+ } from "../chunk-KHGIM2BN.js";
85
85
  import "../chunk-XHKBHWLX.js";
86
- import "../chunk-WXXDHGTZ.js";
87
- import "../chunk-IAEVVUXO.js";
86
+ import "../chunk-WOBHHXW5.js";
87
+ import "../chunk-XP2KRTZD.js";
88
88
  import "../chunk-LGXUGYUH.js";
89
89
  import {
90
90
  getMachineId
91
- } from "../chunk-K7UIAE7I.js";
91
+ } from "../chunk-465UENKO.js";
92
92
  import {
93
93
  CODEX_HOOK_EVENTS,
94
94
  claudeJson,
@@ -111,7 +111,7 @@ import {
111
111
  pusharyConfigFile,
112
112
  readCodexMcpAuth,
113
113
  vscodePluginDir
114
- } from "../chunk-RHLUJE4H.js";
114
+ } from "../chunk-34NNTYK6.js";
115
115
  import {
116
116
  describeReach,
117
117
  describeRoundTrip,
@@ -119,12 +119,12 @@ import {
119
119
  reachVerdict,
120
120
  roundTripEvidence,
121
121
  verifyRoundTrip
122
- } from "../chunk-RVDHN2TJ.js";
122
+ } from "../chunk-TGG4FWWB.js";
123
123
  import "../chunk-3EGEA4KH.js";
124
124
  import {
125
125
  checkApiKey,
126
126
  describeKeyCheck
127
- } from "../chunk-DON24PNT.js";
127
+ } from "../chunk-TW7KA27C.js";
128
128
  import "../chunk-QCGNGEGE.js";
129
129
  import {
130
130
  createIo
@@ -143,7 +143,7 @@ import {
143
143
  keyPrefix,
144
144
  readControlMode,
145
145
  readKeySource
146
- } from "../chunk-XBO42HKH.js";
146
+ } from "../chunk-5SALHATY.js";
147
147
  import {
148
148
  callMcpTool,
149
149
  sendMcpRequest
@@ -155,8 +155,8 @@ import {
155
155
  import {
156
156
  EXIT
157
157
  } from "../chunk-KZERVKTD.js";
158
- import "../chunk-POAFXBNH.js";
159
- import "../chunk-4LL6LG5X.js";
158
+ import "../chunk-5WLH2ENB.js";
159
+ import "../chunk-T7E75EKA.js";
160
160
  import {
161
161
  getBaseUrl
162
162
  } from "../chunk-2UMNXADU.js";
@@ -166,8 +166,9 @@ import {
166
166
  HOOK_COMPATIBLE_PROFILES,
167
167
  HOOK_LOCATOR_BINARY,
168
168
  hookActivationResult,
169
+ hookCompatibleProfile,
169
170
  isHookActivationReport
170
- } from "../chunk-WPJS3OZH.js";
171
+ } from "../chunk-5UWDYOZX.js";
171
172
 
172
173
  // bin/pushary-doctor.ts
173
174
  import { existsSync, readFileSync, writeFileSync } from "fs";
@@ -249,6 +250,13 @@ var describeRewriterFinding = ({ rewriter, agent, state }) => state === "armed"
249
250
  var rewriterMechanism = ({ rewriter }) => `${rewriter.label} ${rewriter.what}.`;
250
251
  var rewriterRemedy = ({ state }) => state === "armed" ? 'Tick "Apply Common Config" on the provider so a switch keeps them, or re-run setup after each switch' : 'Re-run setup to put them back, then tick "Apply Common Config" on the provider so a switch keeps them';
251
252
 
253
+ // src/diagnostics/inert-registrations.ts
254
+ var PUSHARY_AGENT_FLAG_PATTERN = /pushary[^"'\n]*?--agent=([A-Za-z0-9_-]*)/g;
255
+ var pusharyAgentsNamedIn = (contents) => [...new Set([...contents.matchAll(PUSHARY_AGENT_FLAG_PATTERN)].map((match) => match[1] ?? ""))];
256
+ var inertRegistrations = (configs, resolves) => configs.flatMap(({ file, contents }) => pusharyAgentsNamedIn(contents).filter((named) => !resolves(named)).map((named) => ({ file, named })));
257
+ var describeInertRegistration = ({ named }) => `hooks here are registered for "${named}", which this CLI has no profile for, so every one of them stands aside`;
258
+ var inertRegistrationRemedy = () => "Upgrade with npx @pushary/agent-hooks@latest upgrade, or re-run setup to rewrite them for an agent this version knows";
259
+
252
260
  // src/diagnostics/activation.ts
253
261
  var readHookActivation = async (apiKey, agentType, target, deps = {}) => {
254
262
  const machineId = deps.machineId ?? getMachineId();
@@ -334,6 +342,7 @@ var pass = green("\u2713");
334
342
  var fail = red("\u2717");
335
343
  var warn = yellow("!");
336
344
  var CLAUDE_SETTINGS = claudeSettings();
345
+ var registeredConfigs = () => [CLAUDE_SETTINGS, codexHooksJson(), ...HOOK_COMPATIBLE_PROFILES.map((profile) => compatibleConfigFile(profile))].filter(existsSync).map((file) => ({ file, contents: readFileSync(file, "utf-8") }));
337
346
  var SKILL_PATH = join(claudeSkillDir(), "SKILL.md");
338
347
  var SHELL_FILES = [".zshrc", ".zprofile", ".bashrc", ".bash_profile"].map((f) => join(homedir2(), f));
339
348
  var readJson = (path) => {
@@ -702,6 +711,10 @@ var main = async () => {
702
711
  } else {
703
712
  skipped("Gemini CLI", installed("gemini_cli") ? "installed, but Pushary is not set up for it" : "not installed");
704
713
  }
714
+ for (const finding of inertRegistrations(registeredConfigs(), (named) => hookCompatibleProfile(named) !== void 0)) {
715
+ console.log(` ${warn} ${shortenHome(finding.file)}: ${describeInertRegistration(finding)}`);
716
+ console.log(` ${dim(inertRegistrationRemedy())}`);
717
+ }
705
718
  for (const profile of HOOK_COMPATIBLE_PROFILES) {
706
719
  const configPath = compatibleConfigFile(profile);
707
720
  const config = readJson(configPath);
@@ -1,24 +1,24 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-N43EQPJK.js";
4
+ } from "../chunk-CKLWJ6EL.js";
5
5
  import {
6
6
  isDeferAnswer
7
7
  } from "../chunk-YHG74UFF.js";
8
- import "../chunk-EU6JH7KU.js";
9
- import "../chunk-YKLCWWEI.js";
10
- import "../chunk-XEXOHUJ6.js";
11
- import "../chunk-BYGEZI7B.js";
12
- import "../chunk-JYEGOYQC.js";
13
- import "../chunk-DVO4SZMJ.js";
14
- import "../chunk-KS4P6F3R.js";
15
- import "../chunk-OE6U2AXM.js";
16
- import "../chunk-2PLEJ7SY.js";
17
- import "../chunk-B3S4SF3D.js";
8
+ import "../chunk-P232YODQ.js";
9
+ import "../chunk-SGZJ5LYH.js";
10
+ import "../chunk-REIZ5GXG.js";
11
+ import "../chunk-FGNABUPN.js";
12
+ import "../chunk-KLZJEMSE.js";
13
+ import "../chunk-QOCWB4Q6.js";
14
+ import "../chunk-6HH4IH4K.js";
15
+ import "../chunk-KHGIM2BN.js";
16
+ import "../chunk-EAGMQMRM.js";
17
+ import "../chunk-CDSL3LLO.js";
18
18
  import "../chunk-EQRS3SGM.js";
19
- import "../chunk-A2URMNFM.js";
19
+ import "../chunk-YXWM4TNX.js";
20
20
  import "../chunk-XHKBHWLX.js";
21
- import "../chunk-IAEVVUXO.js";
21
+ import "../chunk-XP2KRTZD.js";
22
22
  import {
23
23
  askUser,
24
24
  isDecisionStopped,
@@ -26,17 +26,17 @@ import {
26
26
  } from "../chunk-LGXUGYUH.js";
27
27
  import {
28
28
  getMachineId
29
- } from "../chunk-K7UIAE7I.js";
30
- import "../chunk-RHLUJE4H.js";
29
+ } from "../chunk-465UENKO.js";
30
+ import "../chunk-34NNTYK6.js";
31
31
  import "../chunk-GMXKITVA.js";
32
32
  import "../chunk-DINDL2CF.js";
33
- import "../chunk-XBO42HKH.js";
33
+ import "../chunk-5SALHATY.js";
34
34
  import "../chunk-EYRGBYZG.js";
35
35
  import "../chunk-SAF6HGAA.js";
36
36
  import "../chunk-7QLSKOSU.js";
37
37
  import "../chunk-KZERVKTD.js";
38
- import "../chunk-POAFXBNH.js";
39
- import "../chunk-4LL6LG5X.js";
38
+ import "../chunk-5WLH2ENB.js";
39
+ import "../chunk-T7E75EKA.js";
40
40
  import {
41
41
  getApiKey
42
42
  } from "../chunk-2UMNXADU.js";
@@ -50,7 +50,7 @@ import {
50
50
  planElicitationAsk,
51
51
  readElicitationFields,
52
52
  renderElicitationOutput
53
- } from "../chunk-WPJS3OZH.js";
53
+ } from "../chunk-5UWDYOZX.js";
54
54
 
55
55
  // bin/pushary-elicitation-hook.ts
56
56
  import { basename } from "path";
@@ -5,36 +5,36 @@ import {
5
5
  postLiveSession,
6
6
  postLiveSessionUntilAccepted,
7
7
  startLiveSessionHeartbeat
8
- } from "../chunk-EKQAKSGI.js";
8
+ } from "../chunk-R5CU7ED6.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-MU275U5A.js";
16
- import "../chunk-B3S4SF3D.js";
15
+ } from "../chunk-XOUQUZ43.js";
16
+ import "../chunk-CDSL3LLO.js";
17
17
  import "../chunk-EQRS3SGM.js";
18
18
  import {
19
19
  transcriptsEnabled
20
- } from "../chunk-A2URMNFM.js";
20
+ } from "../chunk-YXWM4TNX.js";
21
21
  import {
22
22
  spawnClaude
23
23
  } from "../chunk-XHKBHWLX.js";
24
24
  import {
25
25
  getMachineId
26
- } from "../chunk-K7UIAE7I.js";
26
+ } from "../chunk-465UENKO.js";
27
27
  import {
28
28
  resolveBinary
29
- } from "../chunk-RHLUJE4H.js";
30
- import "../chunk-XBO42HKH.js";
31
- import "../chunk-POAFXBNH.js";
32
- import "../chunk-4LL6LG5X.js";
29
+ } from "../chunk-34NNTYK6.js";
30
+ import "../chunk-5SALHATY.js";
31
+ import "../chunk-5WLH2ENB.js";
32
+ import "../chunk-T7E75EKA.js";
33
33
  import {
34
34
  getApiKey,
35
35
  getBaseUrl
36
36
  } from "../chunk-2UMNXADU.js";
37
- import "../chunk-WPJS3OZH.js";
37
+ import "../chunk-5UWDYOZX.js";
38
38
 
39
39
  // bin/pushary-gemini-bridge.ts
40
40
  import { existsSync } from "fs";
@@ -2,26 +2,26 @@
2
2
  import {
3
3
  isGatingMoment,
4
4
  recordKeylessMoment
5
- } from "../chunk-YF4JDCU4.js";
5
+ } from "../chunk-OMP3KDDU.js";
6
6
  import {
7
7
  readHookInput
8
- } from "../chunk-N43EQPJK.js";
8
+ } from "../chunk-CKLWJ6EL.js";
9
9
  import {
10
10
  denyReasonFrom,
11
11
  isDeferAnswer
12
12
  } from "../chunk-YHG74UFF.js";
13
- import "../chunk-EU6JH7KU.js";
14
- import "../chunk-YKLCWWEI.js";
15
- import "../chunk-XEXOHUJ6.js";
16
- import "../chunk-BYGEZI7B.js";
17
- import "../chunk-JYEGOYQC.js";
18
- import "../chunk-DVO4SZMJ.js";
19
- import "../chunk-KS4P6F3R.js";
20
- import "../chunk-OE6U2AXM.js";
21
- import "../chunk-2PLEJ7SY.js";
22
- import "../chunk-B3S4SF3D.js";
13
+ import "../chunk-P232YODQ.js";
14
+ import "../chunk-SGZJ5LYH.js";
15
+ import "../chunk-REIZ5GXG.js";
16
+ import "../chunk-FGNABUPN.js";
17
+ import "../chunk-KLZJEMSE.js";
18
+ import "../chunk-QOCWB4Q6.js";
19
+ import "../chunk-6HH4IH4K.js";
20
+ import "../chunk-KHGIM2BN.js";
21
+ import "../chunk-EAGMQMRM.js";
22
+ import "../chunk-CDSL3LLO.js";
23
23
  import "../chunk-EQRS3SGM.js";
24
- import "../chunk-A2URMNFM.js";
24
+ import "../chunk-YXWM4TNX.js";
25
25
  import "../chunk-XHKBHWLX.js";
26
26
  import {
27
27
  DEFAULT_SESSION,
@@ -42,8 +42,8 @@ import {
42
42
  repoKeyFor,
43
43
  reportEvent,
44
44
  scopePathFor
45
- } from "../chunk-WXXDHGTZ.js";
46
- import "../chunk-IAEVVUXO.js";
45
+ } from "../chunk-WOBHHXW5.js";
46
+ import "../chunk-XP2KRTZD.js";
47
47
  import {
48
48
  DECISION_STOP_REASON,
49
49
  askUser,
@@ -54,17 +54,17 @@ import {
54
54
  } from "../chunk-LGXUGYUH.js";
55
55
  import {
56
56
  getMachineId
57
- } from "../chunk-K7UIAE7I.js";
58
- import "../chunk-RHLUJE4H.js";
57
+ } from "../chunk-465UENKO.js";
58
+ import "../chunk-34NNTYK6.js";
59
59
  import "../chunk-GMXKITVA.js";
60
60
  import "../chunk-DINDL2CF.js";
61
- import "../chunk-XBO42HKH.js";
61
+ import "../chunk-5SALHATY.js";
62
62
  import "../chunk-EYRGBYZG.js";
63
63
  import "../chunk-SAF6HGAA.js";
64
64
  import "../chunk-7QLSKOSU.js";
65
65
  import "../chunk-KZERVKTD.js";
66
- import "../chunk-POAFXBNH.js";
67
- import "../chunk-4LL6LG5X.js";
66
+ import "../chunk-5WLH2ENB.js";
67
+ import "../chunk-T7E75EKA.js";
68
68
  import {
69
69
  getApiKey
70
70
  } from "../chunk-2UMNXADU.js";
@@ -76,7 +76,7 @@ import {
76
76
  hookWaitClamped,
77
77
  hookWaitDeadline,
78
78
  resolveGate
79
- } from "../chunk-WPJS3OZH.js";
79
+ } from "../chunk-5UWDYOZX.js";
80
80
 
81
81
  // bin/pushary-gemini-hook.ts
82
82
  import { basename } from "path";
@@ -1,55 +1,56 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePreToolUse
4
- } from "../chunk-X3KIGNIP.js";
4
+ } from "../chunk-I2OLM3DM.js";
5
5
  import {
6
6
  activeHookSource,
7
7
  normalizeToolCall,
8
- profileFromArgv,
9
- unreadableTool
10
- } from "../chunk-BNDHXPTQ.js";
11
- import "../chunk-ZHL62DRA.js";
12
- import "../chunk-A5ZWYQFV.js";
13
- import "../chunk-YF4JDCU4.js";
8
+ profileFromArgv
9
+ } from "../chunk-LWT34GSY.js";
10
+ import "../chunk-SGZE2JBF.js";
11
+ import "../chunk-HCTSTMDD.js";
12
+ import "../chunk-OMP3KDDU.js";
14
13
  import {
15
14
  readHookInput
16
- } from "../chunk-N43EQPJK.js";
15
+ } from "../chunk-CKLWJ6EL.js";
17
16
  import "../chunk-YHG74UFF.js";
18
- import "../chunk-EU6JH7KU.js";
19
- import "../chunk-YKLCWWEI.js";
20
- import "../chunk-XEXOHUJ6.js";
21
- import "../chunk-BYGEZI7B.js";
22
- import "../chunk-JYEGOYQC.js";
23
- import "../chunk-DVO4SZMJ.js";
24
- import "../chunk-KS4P6F3R.js";
25
- import "../chunk-OE6U2AXM.js";
26
- import "../chunk-2PLEJ7SY.js";
27
- import "../chunk-B3S4SF3D.js";
17
+ import "../chunk-P232YODQ.js";
18
+ import "../chunk-SGZJ5LYH.js";
19
+ import "../chunk-REIZ5GXG.js";
20
+ import "../chunk-FGNABUPN.js";
21
+ import "../chunk-KLZJEMSE.js";
22
+ import "../chunk-QOCWB4Q6.js";
23
+ import "../chunk-6HH4IH4K.js";
24
+ import "../chunk-KHGIM2BN.js";
25
+ import "../chunk-EAGMQMRM.js";
26
+ import "../chunk-CDSL3LLO.js";
28
27
  import "../chunk-EQRS3SGM.js";
29
- import "../chunk-A2URMNFM.js";
28
+ import "../chunk-YXWM4TNX.js";
30
29
  import "../chunk-XHKBHWLX.js";
31
- import "../chunk-WXXDHGTZ.js";
32
- import "../chunk-IAEVVUXO.js";
30
+ import {
31
+ canonicalGateInputs
32
+ } from "../chunk-WOBHHXW5.js";
33
+ import "../chunk-XP2KRTZD.js";
33
34
  import "../chunk-LGXUGYUH.js";
34
- import "../chunk-K7UIAE7I.js";
35
- import "../chunk-RHLUJE4H.js";
35
+ import "../chunk-465UENKO.js";
36
+ import "../chunk-34NNTYK6.js";
36
37
  import {
37
38
  exitOnHelpFlag
38
39
  } from "../chunk-GOQHN2UH.js";
39
40
  import "../chunk-LZQVAEWP.js";
40
41
  import "../chunk-GMXKITVA.js";
41
42
  import "../chunk-DINDL2CF.js";
42
- import "../chunk-XBO42HKH.js";
43
+ import "../chunk-5SALHATY.js";
43
44
  import "../chunk-EYRGBYZG.js";
44
45
  import "../chunk-SAF6HGAA.js";
45
46
  import "../chunk-7QLSKOSU.js";
46
47
  import "../chunk-KZERVKTD.js";
47
- import "../chunk-POAFXBNH.js";
48
- import "../chunk-4LL6LG5X.js";
48
+ import "../chunk-5WLH2ENB.js";
49
+ import "../chunk-T7E75EKA.js";
49
50
  import "../chunk-2UMNXADU.js";
50
51
  import {
51
52
  renderPreToolUseVerdict
52
- } from "../chunk-WPJS3OZH.js";
53
+ } from "../chunk-5UWDYOZX.js";
53
54
 
54
55
  // bin/pushary-hook.ts
55
56
  exitOnHelpFlag("hook");
@@ -61,13 +62,6 @@ var FALLBACK_TO_TERMINAL = {
61
62
  permissionDecisionReason: "Pushary hook error, falling back to terminal"
62
63
  }
63
64
  };
64
- var askBecauseUnreadable = (toolName) => ({
65
- hookSpecificOutput: {
66
- hookEventName: "PreToolUse",
67
- permissionDecision: "ask",
68
- permissionDecisionReason: `Pushary could not read what ${toolName} acts on`
69
- }
70
- });
71
65
  var emit = (verdict) => {
72
66
  const output = verdict && profile ? renderPreToolUseVerdict(profile, verdict) : verdict;
73
67
  if (output !== void 0) process.stdout.write(JSON.stringify(output));
@@ -81,12 +75,8 @@ var main = async () => {
81
75
  process.exit(0);
82
76
  }
83
77
  try {
84
- const unreadable = unreadableTool(profile, raw);
85
- if (unreadable) {
86
- emit(askBecauseUnreadable(unreadable));
87
- return;
88
- }
89
- emit(await handlePreToolUse(normalizeToolCall(profile, raw)));
78
+ const canonical = profile ? canonicalGateInputs(profile.source, raw.tool_name, [raw.tool_input ?? {}], raw.cwd) : void 0;
79
+ emit(await handlePreToolUse(normalizeToolCall(profile, raw), canonical));
90
80
  } catch (err) {
91
81
  process.stderr.write(
92
82
  `[pushary-hook] Error: ${err instanceof Error ? err.message : String(err)}