@pushary/agent-hooks 0.89.9 → 0.89.11

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 (68) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/dist/bin/pushary-bell-hook.js +4 -4
  3. package/dist/bin/pushary-bell.js +7 -7
  4. package/dist/bin/pushary-claude.js +84 -36
  5. package/dist/bin/pushary-clean.js +52 -45
  6. package/dist/bin/pushary-codex-bridge.js +15 -9
  7. package/dist/bin/pushary-codex-hook.js +12 -8
  8. package/dist/bin/pushary-codex.js +7 -7
  9. package/dist/bin/pushary-connect.js +6 -6
  10. package/dist/bin/pushary-daemon.js +16 -16
  11. package/dist/bin/pushary-disconnect.js +34 -9
  12. package/dist/bin/pushary-doctor.js +19 -19
  13. package/dist/bin/pushary-elicitation-hook.js +4 -4
  14. package/dist/bin/pushary-gemini-bridge.js +15 -8
  15. package/dist/bin/pushary-gemini-hook.js +8 -8
  16. package/dist/bin/pushary-hook.js +11 -10
  17. package/dist/bin/pushary-login.js +4 -4
  18. package/dist/bin/pushary-logout.js +4 -4
  19. package/dist/bin/pushary-mode.js +3 -3
  20. package/dist/bin/pushary-notification-hook.js +7 -7
  21. package/dist/bin/pushary-opencode-hook.js +8 -8
  22. package/dist/bin/pushary-permission-denied-hook.js +11 -10
  23. package/dist/bin/pushary-permission-hook.js +11 -10
  24. package/dist/bin/pushary-post-hook.js +7 -7
  25. package/dist/bin/pushary-prompt-hook.js +7 -7
  26. package/dist/bin/pushary-session-end-hook.js +7 -7
  27. package/dist/bin/pushary-session-start-hook.js +7 -7
  28. package/dist/bin/pushary-setup.js +52 -54
  29. package/dist/bin/pushary-stats.js +2 -2
  30. package/dist/bin/pushary-status.js +8 -8
  31. package/dist/bin/pushary-stop-hook.js +7 -7
  32. package/dist/bin/pushary-stopfailure-hook.js +7 -7
  33. package/dist/bin/pushary-upgrade.js +15 -15
  34. package/dist/bin/pushary-wait.js +3 -3
  35. package/dist/{chunk-SS72Z7FV.js → chunk-253WC6O5.js} +1 -1
  36. package/dist/{chunk-T3LRWZKI.js → chunk-2LPEZYMC.js} +1 -1
  37. package/dist/{chunk-O5B7EK5U.js → chunk-34GN3IPX.js} +1 -1
  38. package/dist/{chunk-V6N4Q223.js → chunk-3CUDMTL4.js} +1 -1
  39. package/dist/{chunk-VZKXBFUA.js → chunk-3HFK3UXM.js} +1 -1
  40. package/dist/{chunk-543KNJKC.js → chunk-3SQYKLBW.js} +3 -3
  41. package/dist/{chunk-ATBKJNWS.js → chunk-6EKQZA6R.js} +5 -1
  42. package/dist/{chunk-NKHEHEUM.js → chunk-6XUABEX2.js} +1 -1
  43. package/dist/{chunk-I5L6SK5V.js → chunk-BLODMQKJ.js} +1 -1
  44. package/dist/{chunk-DKDDLF5P.js → chunk-DKWM5T3P.js} +1 -1
  45. package/dist/{chunk-4XZCDSNG.js → chunk-FXIL7RCL.js} +5 -5
  46. package/dist/{chunk-BAE45YLP.js → chunk-FZ73G2RO.js} +3 -3
  47. package/dist/{chunk-PMHTCDEO.js → chunk-IUN6VOKV.js} +1 -1
  48. package/dist/{chunk-OFRNZWC4.js → chunk-IUWRVTQK.js} +1 -1
  49. package/dist/{chunk-EJT2ER6G.js → chunk-J4K75V4D.js} +46 -35
  50. package/dist/{chunk-GKAKAOKC.js → chunk-JHJHCMAF.js} +65 -12
  51. package/dist/{chunk-J2JZJZKB.js → chunk-KVE5RCQL.js} +1 -1
  52. package/dist/{chunk-A4O5ROZK.js → chunk-MZGWKIUZ.js} +2 -2
  53. package/dist/chunk-NCVIWGVA.js +18 -0
  54. package/dist/{chunk-C623LWJR.js → chunk-OLAGKKSR.js} +1 -1
  55. package/dist/{chunk-EA3E74P2.js → chunk-PZRWFWSR.js} +6 -6
  56. package/dist/{chunk-VA7VUNRD.js → chunk-Q223OM5J.js} +58 -8
  57. package/dist/{chunk-GMI5QZLG.js → chunk-QA72MKIT.js} +5 -1
  58. package/dist/{chunk-AIGDBRIJ.js → chunk-SYUIXXQW.js} +1 -1
  59. package/dist/{chunk-TF247BET.js → chunk-TEZ2FZD6.js} +1 -1
  60. package/dist/{chunk-KOPUTJQC.js → chunk-TG3T3M4K.js} +1 -1
  61. package/dist/{chunk-FX5QSMPY.js → chunk-TRVIRETT.js} +1 -1
  62. package/dist/{chunk-U5TQCQ25.js → chunk-TY5HVMXT.js} +1 -1
  63. package/dist/chunk-UDBJHQMG.js +240 -0
  64. package/dist/{chunk-PZA7G4CN.js → chunk-X4ZUUFKV.js} +1 -0
  65. package/dist/{chunk-L4C2JXJS.js → chunk-X6RXX2NF.js} +5 -0
  66. package/dist/src/index.d.ts +5 -0
  67. package/dist/src/index.js +11 -10
  68. package/package.json +1 -1
@@ -1,8 +1,11 @@
1
1
  #!/usr/bin/env node
2
+ import {
3
+ defersToNativeMode
4
+ } from "../chunk-NCVIWGVA.js";
2
5
  import {
3
6
  isGatingMoment,
4
7
  recordKeylessMoment
5
- } from "../chunk-VZKXBFUA.js";
8
+ } from "../chunk-3HFK3UXM.js";
6
9
  import {
7
10
  readHookInput
8
11
  } from "../chunk-6CUUA7HO.js";
@@ -31,7 +34,7 @@ import {
31
34
  toCodexWire,
32
35
  toPolicyLookup,
33
36
  toPolicyLookups
34
- } from "../chunk-4XZCDSNG.js";
37
+ } from "../chunk-FXIL7RCL.js";
35
38
  import {
36
39
  DEFAULT_SESSION,
37
40
  askUser,
@@ -39,23 +42,23 @@ import {
39
42
  pollForAnswer,
40
43
  savePendingQuestion,
41
44
  sendNotification
42
- } from "../chunk-GKAKAOKC.js";
45
+ } from "../chunk-JHJHCMAF.js";
43
46
  import {
44
47
  deriveActionBody,
45
48
  deriveBlocker,
46
49
  deriveToolTarget,
47
50
  describeToolCall,
48
51
  scopePathFor
49
- } from "../chunk-KOPUTJQC.js";
52
+ } from "../chunk-TG3T3M4K.js";
50
53
  import {
51
54
  getMachineId
52
- } from "../chunk-DKDDLF5P.js";
55
+ } from "../chunk-DKWM5T3P.js";
53
56
  import {
54
57
  canonicalJson
55
- } from "../chunk-GMI5QZLG.js";
58
+ } from "../chunk-QA72MKIT.js";
56
59
  import "../chunk-BSZYIAZL.js";
57
60
  import "../chunk-SAF6HGAA.js";
58
- import "../chunk-OFRNZWC4.js";
61
+ import "../chunk-IUWRVTQK.js";
59
62
  import "../chunk-7QLSKOSU.js";
60
63
  import "../chunk-KZERVKTD.js";
61
64
  import "../chunk-XX2V4QS5.js";
@@ -69,7 +72,7 @@ import {
69
72
  hookWaitClamped,
70
73
  hookWaitDeadline,
71
74
  resolveGate
72
- } from "../chunk-L4C2JXJS.js";
75
+ } from "../chunk-X6RXX2NF.js";
73
76
 
74
77
  // bin/pushary-codex-hook.ts
75
78
  import { basename } from "path";
@@ -313,6 +316,7 @@ var decidePreToolUse = async (input) => {
313
316
  if (verdict.kind === "kill") return codexDeny(KILL_REASON);
314
317
  if (verdict.kind === "allow") return codexPass();
315
318
  if (verdict.kind === "deny") return codexDeny(verdict.reason);
319
+ if (defersToNativeMode(input.permission_mode, input.tool_name ?? "")) return codexPass();
316
320
  if (verdict.kind === "defer") return codexPass();
317
321
  const toolPolicy = verdict.policy;
318
322
  const callKey = callKeyFor(input);
@@ -1,26 +1,26 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  reportEvent
4
- } from "../chunk-4XZCDSNG.js";
4
+ } from "../chunk-FXIL7RCL.js";
5
5
  import {
6
6
  askUser,
7
7
  waitForAnswer
8
- } from "../chunk-GKAKAOKC.js";
9
- import "../chunk-KOPUTJQC.js";
8
+ } from "../chunk-JHJHCMAF.js";
9
+ import "../chunk-TG3T3M4K.js";
10
10
  import {
11
11
  getMachineId
12
- } from "../chunk-DKDDLF5P.js";
13
- import "../chunk-GMI5QZLG.js";
12
+ } from "../chunk-DKWM5T3P.js";
13
+ import "../chunk-QA72MKIT.js";
14
14
  import "../chunk-BSZYIAZL.js";
15
15
  import "../chunk-SAF6HGAA.js";
16
- import "../chunk-OFRNZWC4.js";
16
+ import "../chunk-IUWRVTQK.js";
17
17
  import "../chunk-7QLSKOSU.js";
18
18
  import "../chunk-KZERVKTD.js";
19
19
  import "../chunk-XX2V4QS5.js";
20
20
  import {
21
21
  getApiKey
22
22
  } from "../chunk-2UMNXADU.js";
23
- import "../chunk-L4C2JXJS.js";
23
+ import "../chunk-X6RXX2NF.js";
24
24
 
25
25
  // bin/pushary-codex.ts
26
26
  import { basename } from "path";
@@ -1,22 +1,22 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  printKeyCheck
4
- } from "../chunk-SS72Z7FV.js";
4
+ } from "../chunk-253WC6O5.js";
5
5
  import {
6
6
  confirmAppConnection,
7
7
  connectDevice,
8
8
  printConnectInstructions
9
- } from "../chunk-T3LRWZKI.js";
9
+ } from "../chunk-2LPEZYMC.js";
10
10
  import "../chunk-3EGEA4KH.js";
11
11
  import {
12
12
  checkApiKey
13
- } from "../chunk-I5L6SK5V.js";
13
+ } from "../chunk-BLODMQKJ.js";
14
14
  import {
15
15
  createIo
16
16
  } from "../chunk-5RUIFDTP.js";
17
17
  import {
18
18
  readKeySource
19
- } from "../chunk-V6N4Q223.js";
19
+ } from "../chunk-3CUDMTL4.js";
20
20
  import {
21
21
  parseFlags
22
22
  } from "../chunk-GMXKITVA.js";
@@ -28,7 +28,7 @@ import "../chunk-BC3VCZ3E.js";
28
28
  import "../chunk-DINDL2CF.js";
29
29
  import "../chunk-BSZYIAZL.js";
30
30
  import "../chunk-SAF6HGAA.js";
31
- import "../chunk-OFRNZWC4.js";
31
+ import "../chunk-IUWRVTQK.js";
32
32
  import {
33
33
  UsageError
34
34
  } from "../chunk-7QLSKOSU.js";
@@ -37,7 +37,7 @@ import {
37
37
  } from "../chunk-KZERVKTD.js";
38
38
  import "../chunk-XX2V4QS5.js";
39
39
  import "../chunk-2UMNXADU.js";
40
- import "../chunk-L4C2JXJS.js";
40
+ import "../chunk-X6RXX2NF.js";
41
41
 
42
42
  // bin/pushary-connect.ts
43
43
  exitOnHelpFlag("connect");
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  inspectConfiguredManagedProviders
4
- } from "../chunk-EA3E74P2.js";
5
- import "../chunk-J2JZJZKB.js";
6
- import "../chunk-BAE45YLP.js";
4
+ } from "../chunk-PZRWFWSR.js";
5
+ import "../chunk-KVE5RCQL.js";
6
+ import "../chunk-FZ73G2RO.js";
7
7
  import {
8
8
  HEARTBEAT_INTERVAL_MS,
9
9
  sendHeartbeat
10
- } from "../chunk-U5TQCQ25.js";
11
- import "../chunk-VA7VUNRD.js";
12
- import "../chunk-ATBKJNWS.js";
13
- import "../chunk-AIGDBRIJ.js";
10
+ } from "../chunk-TY5HVMXT.js";
11
+ import "../chunk-Q223OM5J.js";
12
+ import "../chunk-6EKQZA6R.js";
13
+ import "../chunk-SYUIXXQW.js";
14
14
  import {
15
15
  DAEMON_LEASE_RENEW_INTERVAL_MS,
16
16
  acquireDaemonLease,
@@ -23,36 +23,36 @@ import {
23
23
  replaceDaemonService,
24
24
  requestDaemonHandoff,
25
25
  stopDaemonRunning
26
- } from "../chunk-543KNJKC.js";
26
+ } from "../chunk-3SQYKLBW.js";
27
27
  import {
28
28
  detectProviderLiveCapabilities,
29
29
  hasSpawnProvider,
30
30
  resolveControlPolicy
31
- } from "../chunk-NKHEHEUM.js";
31
+ } from "../chunk-6XUABEX2.js";
32
32
  import {
33
33
  findLiveProcessBySpawnId,
34
34
  ownsLiveProcess
35
- } from "../chunk-TF247BET.js";
35
+ } from "../chunk-TEZ2FZD6.js";
36
36
  import {
37
37
  spawnClaude
38
38
  } from "../chunk-XHKBHWLX.js";
39
39
  import {
40
40
  resolveBinary
41
- } from "../chunk-PZA7G4CN.js";
41
+ } from "../chunk-X4ZUUFKV.js";
42
42
  import {
43
43
  getMachineId
44
- } from "../chunk-DKDDLF5P.js";
45
- import "../chunk-GMI5QZLG.js";
44
+ } from "../chunk-DKWM5T3P.js";
45
+ import "../chunk-QA72MKIT.js";
46
46
  import {
47
47
  readControlMode
48
- } from "../chunk-V6N4Q223.js";
48
+ } from "../chunk-3CUDMTL4.js";
49
49
  import {
50
50
  exitOnHelpFlag
51
51
  } from "../chunk-LURY4WNF.js";
52
52
  import "../chunk-3XTFX4CL.js";
53
53
  import "../chunk-BC3VCZ3E.js";
54
54
  import "../chunk-DINDL2CF.js";
55
- import "../chunk-OFRNZWC4.js";
55
+ import "../chunk-IUWRVTQK.js";
56
56
  import {
57
57
  EXIT
58
58
  } from "../chunk-KZERVKTD.js";
@@ -61,7 +61,7 @@ import {
61
61
  getApiKey,
62
62
  getBaseUrl
63
63
  } from "../chunk-2UMNXADU.js";
64
- import "../chunk-L4C2JXJS.js";
64
+ import "../chunk-X6RXX2NF.js";
65
65
 
66
66
  // src/spawn-daemon.ts
67
67
  import { execFileSync, spawn } from "child_process";
@@ -8,17 +8,20 @@ import {
8
8
  openCodePluginDir,
9
9
  openCodePluginFile,
10
10
  removeOpenCodeMcpServer
11
- } from "../chunk-O5B7EK5U.js";
11
+ } from "../chunk-34GN3IPX.js";
12
12
  import {
13
+ isClaudeMcpSnapshot,
13
14
  removeClaudeMcpServers,
14
15
  removeGeminiSettings,
15
- removePusharySettings
16
- } from "../chunk-VA7VUNRD.js";
17
- import "../chunk-ATBKJNWS.js";
18
- import "../chunk-AIGDBRIJ.js";
19
- import "../chunk-PZA7G4CN.js";
16
+ removePusharySettings,
17
+ restoreClaudeMcpServer
18
+ } from "../chunk-Q223OM5J.js";
19
+ import "../chunk-6EKQZA6R.js";
20
+ import "../chunk-SYUIXXQW.js";
21
+ import "../chunk-X4ZUUFKV.js";
20
22
  import {
21
23
  claudeJson,
24
+ claudeMcpReceipt,
22
25
  claudeSettings,
23
26
  claudeSettingsLocal,
24
27
  codexConfigToml,
@@ -29,14 +32,14 @@ import {
29
32
  geminiSettings,
30
33
  removeCodexHooks,
31
34
  removeCodexSettings
32
- } from "../chunk-GMI5QZLG.js";
35
+ } from "../chunk-QA72MKIT.js";
33
36
  import {
34
37
  exitOnHelpFlag
35
38
  } from "../chunk-LURY4WNF.js";
36
39
  import "../chunk-3XTFX4CL.js";
37
40
  import "../chunk-DINDL2CF.js";
38
41
  import "../chunk-KZERVKTD.js";
39
- import "../chunk-L4C2JXJS.js";
42
+ import "../chunk-X6RXX2NF.js";
40
43
 
41
44
  // bin/pushary-disconnect.ts
42
45
  import { readdirSync, readFileSync, rmSync, writeFileSync } from "fs";
@@ -115,12 +118,24 @@ var disconnectRemovals = (agent) => {
115
118
  var disconnectAgent = (agent, io) => {
116
119
  const changed = [];
117
120
  const untouched = [];
121
+ const claudeReceiptPath = claudeMcpReceipt();
122
+ const rawClaudeReceipt = agent === "claude" ? io.read(claudeReceiptPath) : null;
123
+ let claudeReceipt = null;
124
+ if (rawClaudeReceipt !== null) {
125
+ try {
126
+ const parsed = JSON.parse(rawClaudeReceipt);
127
+ if (isClaudeMcpSnapshot(parsed)) claudeReceipt = parsed;
128
+ } catch {
129
+ }
130
+ }
131
+ let restoredClaudeReceipt = false;
118
132
  for (const edit of disconnectPlan(agent)) {
119
133
  const raw = io.read(edit.path);
120
134
  if (raw === null) continue;
121
135
  try {
122
136
  const config = edit.format === "toml" ? io.parseToml(raw) : JSON.parse(raw);
123
- if (!edit.remove(config)) {
137
+ const changedConfig = agent === "claude" && edit.path === claudeJson() && rawClaudeReceipt !== null ? claudeReceipt !== null && restoreClaudeMcpServer(config, claudeReceipt) : edit.remove(config);
138
+ if (!changedConfig) {
124
139
  untouched.push(edit.path);
125
140
  continue;
126
141
  }
@@ -130,6 +145,9 @@ var disconnectAgent = (agent, io) => {
130
145
  `
131
146
  );
132
147
  changed.push(edit.path);
148
+ if (agent === "claude" && edit.path === claudeJson() && claudeReceipt) {
149
+ restoredClaudeReceipt = true;
150
+ }
133
151
  } catch {
134
152
  untouched.push(edit.path);
135
153
  }
@@ -155,6 +173,13 @@ var disconnectAgent = (agent, io) => {
155
173
  untouched.push(removal.path);
156
174
  }
157
175
  }
176
+ if (restoredClaudeReceipt && io.remove) {
177
+ try {
178
+ io.remove(claudeReceiptPath);
179
+ } catch {
180
+ untouched.push(claudeReceiptPath);
181
+ }
182
+ }
158
183
  return { agent, changed, untouched };
159
184
  };
160
185
 
@@ -7,10 +7,10 @@ import {
7
7
  codexWired,
8
8
  geminiWired,
9
9
  pusharyHookExecutable
10
- } from "../chunk-BAE45YLP.js";
10
+ } from "../chunk-FZ73G2RO.js";
11
11
  import {
12
12
  readMachineReadiness
13
- } from "../chunk-U5TQCQ25.js";
13
+ } from "../chunk-TY5HVMXT.js";
14
14
  import {
15
15
  agentProbes,
16
16
  detectAgent,
@@ -19,42 +19,42 @@ import {
19
19
  isDetected,
20
20
  isPluginRegistered,
21
21
  vscodeSettingsTargets
22
- } from "../chunk-A4O5ROZK.js";
22
+ } from "../chunk-MZGWKIUZ.js";
23
23
  import {
24
24
  OPENCODE_PLUGIN_PLACEHOLDER,
25
25
  openCodePluginDir,
26
26
  openCodePluginFile,
27
27
  openCodeWired
28
- } from "../chunk-O5B7EK5U.js";
28
+ } from "../chunk-34GN3IPX.js";
29
29
  import {
30
30
  GEMINI_HOOK_BINARY,
31
31
  hasGeminiHooks,
32
32
  missingGeminiHookEvents
33
- } from "../chunk-VA7VUNRD.js";
34
- import "../chunk-ATBKJNWS.js";
35
- import "../chunk-AIGDBRIJ.js";
33
+ } from "../chunk-Q223OM5J.js";
34
+ import "../chunk-6EKQZA6R.js";
35
+ import "../chunk-SYUIXXQW.js";
36
36
  import {
37
37
  daemonHasRemoteProof,
38
38
  daemonServiceManagerAvailable,
39
39
  hasDaemonServiceDefinition,
40
40
  readDaemonStatus
41
- } from "../chunk-543KNJKC.js";
41
+ } from "../chunk-3SQYKLBW.js";
42
42
  import {
43
43
  detectProviderLiveCapabilities,
44
44
  hasSpawnProvider,
45
45
  resolveControlPolicy
46
- } from "../chunk-NKHEHEUM.js";
46
+ } from "../chunk-6XUABEX2.js";
47
47
  import "../chunk-XHKBHWLX.js";
48
48
  import {
49
49
  execNpm
50
- } from "../chunk-PZA7G4CN.js";
50
+ } from "../chunk-X4ZUUFKV.js";
51
51
  import {
52
52
  readLedgerSummary
53
- } from "../chunk-VZKXBFUA.js";
54
- import "../chunk-KOPUTJQC.js";
53
+ } from "../chunk-3HFK3UXM.js";
54
+ import "../chunk-TG3T3M4K.js";
55
55
  import {
56
56
  getMachineId
57
- } from "../chunk-DKDDLF5P.js";
57
+ } from "../chunk-DKWM5T3P.js";
58
58
  import {
59
59
  claudeJson,
60
60
  claudeSettings,
@@ -74,19 +74,19 @@ import {
74
74
  readCodexMcpAuth,
75
75
  untrustedCodexHookEvents,
76
76
  vscodePluginDir
77
- } from "../chunk-GMI5QZLG.js";
77
+ } from "../chunk-QA72MKIT.js";
78
78
  import {
79
79
  describeReach,
80
80
  describeRoundTrip,
81
81
  fetchChannels,
82
82
  reachVerdict,
83
83
  verifyRoundTrip
84
- } from "../chunk-T3LRWZKI.js";
84
+ } from "../chunk-2LPEZYMC.js";
85
85
  import "../chunk-3EGEA4KH.js";
86
86
  import {
87
87
  checkApiKey,
88
88
  describeKeyCheck
89
- } from "../chunk-I5L6SK5V.js";
89
+ } from "../chunk-BLODMQKJ.js";
90
90
  import {
91
91
  createIo
92
92
  } from "../chunk-5RUIFDTP.js";
@@ -94,7 +94,7 @@ import {
94
94
  keyPrefix,
95
95
  readControlMode,
96
96
  readKeySource
97
- } from "../chunk-V6N4Q223.js";
97
+ } from "../chunk-3CUDMTL4.js";
98
98
  import {
99
99
  parseFlags
100
100
  } from "../chunk-GMXKITVA.js";
@@ -111,7 +111,7 @@ import {
111
111
  sendMcpRequest
112
112
  } from "../chunk-BSZYIAZL.js";
113
113
  import "../chunk-SAF6HGAA.js";
114
- import "../chunk-OFRNZWC4.js";
114
+ import "../chunk-IUWRVTQK.js";
115
115
  import {
116
116
  UsageError
117
117
  } from "../chunk-7QLSKOSU.js";
@@ -125,7 +125,7 @@ import {
125
125
  import {
126
126
  CURSOR_GATE_EVENTS,
127
127
  HOOK_LOCATOR_BINARY
128
- } from "../chunk-L4C2JXJS.js";
128
+ } from "../chunk-X6RXX2NF.js";
129
129
 
130
130
  // bin/pushary-doctor.ts
131
131
  import { existsSync, readFileSync, writeFileSync } from "fs";
@@ -11,11 +11,11 @@ import {
11
11
  cancelQuestion,
12
12
  pollForAnswer,
13
13
  savePendingQuestion
14
- } from "../chunk-GKAKAOKC.js";
14
+ } from "../chunk-JHJHCMAF.js";
15
15
  import {
16
16
  getMachineId
17
- } from "../chunk-DKDDLF5P.js";
18
- import "../chunk-GMI5QZLG.js";
17
+ } from "../chunk-DKWM5T3P.js";
18
+ import "../chunk-QA72MKIT.js";
19
19
  import "../chunk-BSZYIAZL.js";
20
20
  import "../chunk-SAF6HGAA.js";
21
21
  import "../chunk-7QLSKOSU.js";
@@ -34,7 +34,7 @@ import {
34
34
  planElicitationAsk,
35
35
  readElicitationFields,
36
36
  renderElicitationOutput
37
- } from "../chunk-L4C2JXJS.js";
37
+ } from "../chunk-X6RXX2NF.js";
38
38
 
39
39
  // bin/pushary-elicitation-hook.ts
40
40
  import { basename } from "path";
@@ -5,28 +5,28 @@ import {
5
5
  postLiveSession,
6
6
  postLiveSessionUntilAccepted,
7
7
  startLiveSessionHeartbeat
8
- } from "../chunk-C623LWJR.js";
9
- import "../chunk-PMHTCDEO.js";
8
+ } from "../chunk-OLAGKKSR.js";
9
+ import "../chunk-IUN6VOKV.js";
10
10
  import {
11
11
  startProcessOwnership,
12
12
  withSpawnProcessOwnership
13
- } from "../chunk-TF247BET.js";
13
+ } from "../chunk-TEZ2FZD6.js";
14
14
  import {
15
15
  spawnClaude
16
16
  } from "../chunk-XHKBHWLX.js";
17
17
  import {
18
18
  resolveBinary
19
- } from "../chunk-PZA7G4CN.js";
19
+ } from "../chunk-X4ZUUFKV.js";
20
20
  import {
21
21
  getMachineId
22
- } from "../chunk-DKDDLF5P.js";
23
- import "../chunk-GMI5QZLG.js";
22
+ } from "../chunk-DKWM5T3P.js";
23
+ import "../chunk-QA72MKIT.js";
24
24
  import "../chunk-XX2V4QS5.js";
25
25
  import {
26
26
  getApiKey,
27
27
  getBaseUrl
28
28
  } from "../chunk-2UMNXADU.js";
29
- import "../chunk-L4C2JXJS.js";
29
+ import "../chunk-X6RXX2NF.js";
30
30
 
31
31
  // bin/pushary-gemini-bridge.ts
32
32
  import { existsSync } from "fs";
@@ -228,6 +228,7 @@ var runGeminiBridge = async (options) => {
228
228
  try {
229
229
  const outcome2 = await turn(text, commandId);
230
230
  if (outcome2 === "aborted") break;
231
+ void report("stop", "Turn completed").catch(() => null);
231
232
  pendingAck = {
232
233
  commandId,
233
234
  sessionId,
@@ -304,7 +305,13 @@ var outcome = await withSpawnProcessOwnership(spawnId, () => runGeminiBridge({
304
305
  resumeSessionId: process.env.PUSHARY_BRIDGE_RESUME_SESSION_ID?.trim() || void 0,
305
306
  command: { command: process.env.PUSHARY_GEMINI_COMMAND?.trim() || resolveBinary("gemini") || "gemini" },
306
307
  signal: abort.signal,
307
- transcripts: process.env.PUSHARY_TRANSCRIPTS === "1"
308
+ // The bridge's own default is ON (`transcripts?: boolean`, and it opts out only
309
+ // on an explicit `false`), but `=== '1'` can never produce `undefined`, so an
310
+ // unset env var forced the opt-out on every spawn and the live relay was never
311
+ // built. Pass the opt-out only when the user asks for one. The relay stays a
312
+ // hard no-op until this account's phone has registered a public key, and what
313
+ // it sends is encrypted to that key on this machine.
314
+ ...process.env.PUSHARY_TRANSCRIPTS === "0" ? { transcripts: false } : {}
308
315
  }));
309
316
  for (const signal of signals) process.off(signal, stop);
310
317
  process.exit(outcome === "stopped" ? 0 : 1);
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  isGatingMoment,
4
4
  recordKeylessMoment
5
- } from "../chunk-VZKXBFUA.js";
5
+ } from "../chunk-3HFK3UXM.js";
6
6
  import {
7
7
  readHookInput
8
8
  } from "../chunk-6CUUA7HO.js";
@@ -21,7 +21,7 @@ import {
21
21
  readLastUserPrompt,
22
22
  repoKeyFor,
23
23
  reportEvent
24
- } from "../chunk-4XZCDSNG.js";
24
+ } from "../chunk-FXIL7RCL.js";
25
25
  import {
26
26
  DEFAULT_SESSION,
27
27
  askUser,
@@ -29,21 +29,21 @@ import {
29
29
  savePendingQuestion,
30
30
  sendNotification,
31
31
  waitForAnswer
32
- } from "../chunk-GKAKAOKC.js";
32
+ } from "../chunk-JHJHCMAF.js";
33
33
  import {
34
34
  deriveActionBody,
35
35
  deriveBlocker,
36
36
  deriveToolTarget,
37
37
  describeToolCall,
38
38
  scopePathFor
39
- } from "../chunk-KOPUTJQC.js";
39
+ } from "../chunk-TG3T3M4K.js";
40
40
  import {
41
41
  getMachineId
42
- } from "../chunk-DKDDLF5P.js";
43
- import "../chunk-GMI5QZLG.js";
42
+ } from "../chunk-DKWM5T3P.js";
43
+ import "../chunk-QA72MKIT.js";
44
44
  import "../chunk-BSZYIAZL.js";
45
45
  import "../chunk-SAF6HGAA.js";
46
- import "../chunk-OFRNZWC4.js";
46
+ import "../chunk-IUWRVTQK.js";
47
47
  import "../chunk-7QLSKOSU.js";
48
48
  import "../chunk-KZERVKTD.js";
49
49
  import "../chunk-XX2V4QS5.js";
@@ -58,7 +58,7 @@ import {
58
58
  hookWaitClamped,
59
59
  hookWaitDeadline,
60
60
  resolveGate
61
- } from "../chunk-L4C2JXJS.js";
61
+ } from "../chunk-X6RXX2NF.js";
62
62
 
63
63
  // bin/pushary-gemini-hook.ts
64
64
  import { basename } from "path";
@@ -1,18 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePreToolUse
4
- } from "../chunk-EJT2ER6G.js";
5
- import "../chunk-ATBKJNWS.js";
6
- import "../chunk-VZKXBFUA.js";
4
+ } from "../chunk-J4K75V4D.js";
5
+ import "../chunk-6EKQZA6R.js";
6
+ import "../chunk-NCVIWGVA.js";
7
+ import "../chunk-3HFK3UXM.js";
7
8
  import {
8
9
  readHookInput
9
10
  } from "../chunk-6CUUA7HO.js";
10
11
  import "../chunk-YHG74UFF.js";
11
- import "../chunk-4XZCDSNG.js";
12
- import "../chunk-GKAKAOKC.js";
13
- import "../chunk-KOPUTJQC.js";
14
- import "../chunk-DKDDLF5P.js";
15
- import "../chunk-GMI5QZLG.js";
12
+ import "../chunk-FXIL7RCL.js";
13
+ import "../chunk-JHJHCMAF.js";
14
+ import "../chunk-TG3T3M4K.js";
15
+ import "../chunk-DKWM5T3P.js";
16
+ import "../chunk-QA72MKIT.js";
16
17
  import {
17
18
  exitOnHelpFlag
18
19
  } from "../chunk-LURY4WNF.js";
@@ -20,12 +21,12 @@ import "../chunk-3XTFX4CL.js";
20
21
  import "../chunk-DINDL2CF.js";
21
22
  import "../chunk-BSZYIAZL.js";
22
23
  import "../chunk-SAF6HGAA.js";
23
- import "../chunk-OFRNZWC4.js";
24
+ import "../chunk-IUWRVTQK.js";
24
25
  import "../chunk-7QLSKOSU.js";
25
26
  import "../chunk-KZERVKTD.js";
26
27
  import "../chunk-XX2V4QS5.js";
27
28
  import "../chunk-2UMNXADU.js";
28
- import "../chunk-L4C2JXJS.js";
29
+ import "../chunk-X6RXX2NF.js";
29
30
 
30
31
  // bin/pushary-hook.ts
31
32
  exitOnHelpFlag("hook");
@@ -6,14 +6,14 @@ import "../chunk-3EGEA4KH.js";
6
6
  import {
7
7
  checkApiKey,
8
8
  describeKeyCheck
9
- } from "../chunk-I5L6SK5V.js";
9
+ } from "../chunk-BLODMQKJ.js";
10
10
  import {
11
11
  createIo
12
12
  } from "../chunk-5RUIFDTP.js";
13
13
  import {
14
14
  readKeySource,
15
15
  writeKey
16
- } from "../chunk-V6N4Q223.js";
16
+ } from "../chunk-3CUDMTL4.js";
17
17
  import {
18
18
  parseFlags
19
19
  } from "../chunk-GMXKITVA.js";
@@ -26,7 +26,7 @@ import {
26
26
  getPackageVersion
27
27
  } from "../chunk-DINDL2CF.js";
28
28
  import "../chunk-SAF6HGAA.js";
29
- import "../chunk-OFRNZWC4.js";
29
+ import "../chunk-IUWRVTQK.js";
30
30
  import {
31
31
  UsageError
32
32
  } from "../chunk-7QLSKOSU.js";
@@ -37,7 +37,7 @@ import "../chunk-XX2V4QS5.js";
37
37
  import "../chunk-2UMNXADU.js";
38
38
  import {
39
39
  isValidApiKey
40
- } from "../chunk-L4C2JXJS.js";
40
+ } from "../chunk-X6RXX2NF.js";
41
41
 
42
42
  // bin/pushary-login.ts
43
43
  exitOnHelpFlag("login");
@@ -4,14 +4,14 @@ import {
4
4
  codexConfigToml,
5
5
  cursorUserMcp,
6
6
  geminiSettings
7
- } from "../chunk-GMI5QZLG.js";
7
+ } from "../chunk-QA72MKIT.js";
8
8
  import {
9
9
  createIo
10
10
  } from "../chunk-5RUIFDTP.js";
11
11
  import {
12
12
  clearKey,
13
13
  readKeySource
14
- } from "../chunk-V6N4Q223.js";
14
+ } from "../chunk-3CUDMTL4.js";
15
15
  import {
16
16
  parseFlags
17
17
  } from "../chunk-GMXKITVA.js";
@@ -21,7 +21,7 @@ import {
21
21
  import "../chunk-3XTFX4CL.js";
22
22
  import "../chunk-BC3VCZ3E.js";
23
23
  import "../chunk-DINDL2CF.js";
24
- import "../chunk-OFRNZWC4.js";
24
+ import "../chunk-IUWRVTQK.js";
25
25
  import {
26
26
  UsageError
27
27
  } from "../chunk-7QLSKOSU.js";
@@ -32,7 +32,7 @@ import "../chunk-XX2V4QS5.js";
32
32
  import {
33
33
  getBaseUrl
34
34
  } from "../chunk-2UMNXADU.js";
35
- import "../chunk-L4C2JXJS.js";
35
+ import "../chunk-X6RXX2NF.js";
36
36
 
37
37
  // bin/pushary-logout.ts
38
38
  import { existsSync } from "fs";