@pushary/agent-hooks 0.87.3 → 0.88.0

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 (59) hide show
  1. package/data/cursor-plugin/scripts/pushary-gate.mjs +9 -0
  2. package/data/cursor-plugin/scripts/pushary-gate.test.mjs +39 -0
  3. package/dist/bin/pushary-bell-hook.js +4 -4
  4. package/dist/bin/pushary-bell.js +5 -5
  5. package/dist/bin/pushary-claude.js +8 -8
  6. package/dist/bin/pushary-clean.js +9 -8
  7. package/dist/bin/pushary-codex-bridge.js +5 -5
  8. package/dist/bin/pushary-codex-hook.js +15 -9
  9. package/dist/bin/pushary-codex.js +4 -4
  10. package/dist/bin/pushary-connect.js +6 -6
  11. package/dist/bin/pushary-daemon.js +4 -4
  12. package/dist/bin/pushary-disconnect.js +5 -5
  13. package/dist/bin/pushary-doctor.js +15 -14
  14. package/dist/bin/pushary-elicitation-hook.js +1 -1
  15. package/dist/bin/pushary-gemini-bridge.js +5 -5
  16. package/dist/bin/pushary-gemini-hook.js +15 -9
  17. package/dist/bin/pushary-hook.js +6 -6
  18. package/dist/bin/pushary-login.js +4 -4
  19. package/dist/bin/pushary-logout.js +4 -4
  20. package/dist/bin/pushary-mode.js +3 -3
  21. package/dist/bin/pushary-notification-hook.js +4 -4
  22. package/dist/bin/pushary-opencode-hook.js +5 -5
  23. package/dist/bin/pushary-permission-denied-hook.js +6 -6
  24. package/dist/bin/pushary-permission-hook.js +6 -6
  25. package/dist/bin/pushary-post-hook.js +4 -4
  26. package/dist/bin/pushary-prompt-hook.js +4 -4
  27. package/dist/bin/pushary-session-end-hook.js +4 -4
  28. package/dist/bin/pushary-session-start-hook.js +4 -4
  29. package/dist/bin/pushary-setup.js +16 -16
  30. package/dist/bin/pushary-stats.js +2 -2
  31. package/dist/bin/pushary-status.js +5 -5
  32. package/dist/bin/pushary-stop-hook.js +4 -4
  33. package/dist/bin/pushary-stopfailure-hook.js +4 -4
  34. package/dist/bin/pushary-upgrade.js +5 -5
  35. package/dist/bin/pushary-wait.js +3 -3
  36. package/dist/{chunk-LGVHYFIB.js → chunk-3B3PYTKH.js} +1 -1
  37. package/dist/{chunk-DMW54VWK.js → chunk-3JL64GVE.js} +93 -3
  38. package/dist/{chunk-TD3M232T.js → chunk-3PSEZOC4.js} +1 -1
  39. package/dist/{chunk-VIHRP25S.js → chunk-4VYELDAH.js} +1 -1
  40. package/dist/{chunk-YX6ZKCC5.js → chunk-67TNJVJW.js} +1 -1
  41. package/dist/{chunk-KFAH6KRE.js → chunk-6BOE5NJZ.js} +1 -1
  42. package/dist/{chunk-ZGC3W23N.js → chunk-DSTZ2RBU.js} +1 -1
  43. package/dist/{chunk-ICERLAE2.js → chunk-DXBUFXPL.js} +1 -1
  44. package/dist/{chunk-EJL3PJU7.js → chunk-ESARAYRI.js} +1 -1
  45. package/dist/{chunk-7J67NYK4.js → chunk-F5W3AY6L.js} +2 -1
  46. package/dist/{chunk-QLMX5LLV.js → chunk-LEYXXXRN.js} +1 -1
  47. package/dist/{chunk-VOE4SYPR.js → chunk-MNXG6IIM.js} +23 -7
  48. package/dist/{chunk-K42RXJPG.js → chunk-MY5A4EPQ.js} +1 -1
  49. package/dist/{chunk-KCAFCGGY.js → chunk-OULRSHFB.js} +1 -1
  50. package/dist/{chunk-TAYHEJFF.js → chunk-RSUBLTMP.js} +2 -2
  51. package/dist/{chunk-DPUOW6NS.js → chunk-T2XZH7D5.js} +3 -7
  52. package/dist/{chunk-2JYQAW4B.js → chunk-U6HRYNHC.js} +2 -2
  53. package/dist/{chunk-OMA2OZRE.js → chunk-UTQCV46U.js} +27 -62
  54. package/dist/{chunk-VL5ZNK6V.js → chunk-VHHVGVFQ.js} +12 -2
  55. package/dist/{chunk-KBS53WOE.js → chunk-VSCSZ2LI.js} +1 -1
  56. package/dist/{chunk-YYTLTEGU.js → chunk-WXCHB6BO.js} +1 -1
  57. package/dist/{chunk-TV3UFGT7.js → chunk-XFHMGVMX.js} +1 -1
  58. package/dist/src/index.js +6 -6
  59. package/package.json +1 -1
@@ -403,6 +403,15 @@ const describeRequest = (input) => {
403
403
  // same tool whichever agent called it. That portability is the only reason
404
404
  // the policy engine is server-side.
405
405
  const toolName = server ? `mcp__${server}__${tool}` : `mcp__${tool}`
406
+
407
+ // Never gate Pushary's own MCP tools. Asking Pushary to approve Pushary's
408
+ // ask_user call deadlocks: the approval cannot be delivered until the call
409
+ // it is gating goes through. The Claude hook carries the same guard, where
410
+ // it is a precaution because the matcher does not route these there. Here it
411
+ // is load-bearing: `beforeMCPExecution` is registered with NO matcher, so
412
+ // every MCP call reaches this gate, ours included.
413
+ if (toolName.startsWith('mcp__pushary__')) return null
414
+
406
415
  const params = typeof input.tool_input === 'string'
407
416
  ? input.tool_input
408
417
  : input.tool_input === undefined ? '' : JSON.stringify(input.tool_input)
@@ -64,6 +64,45 @@ describe('what the gate was asked about', () => {
64
64
  assert.equal(describeRequest({ command: 'git push' }).toolName, 'Bash')
65
65
  })
66
66
 
67
+ /**
68
+ * `beforeMCPExecution` is registered with NO matcher, so every MCP call in the
69
+ * editor reaches this gate, ours included. Gating our own tools deadlocks: the
70
+ * approval for `ask_user` cannot reach the phone until the `ask_user` call it
71
+ * is gating goes through. With `failClosed: true` on that entry it is worse
72
+ * than a hang, because a timeout turns into a denial of the user's own
73
+ * question.
74
+ *
75
+ * The Claude hook carries this guard three times over and calls it a
76
+ * precaution, because its matcher does not route these there. Here it is the
77
+ * only thing standing between the two.
78
+ */
79
+ it('never gates Pushary\'s own MCP tools', () => {
80
+ for (const tool of ['ask_user', 'wait_for_answer', 'send_notification', 'propose_scope']) {
81
+ assert.equal(
82
+ describeRequest({
83
+ hook_event_name: 'beforeMCPExecution',
84
+ tool_name: tool,
85
+ mcp_server_name: 'pushary',
86
+ tool_input: '{}',
87
+ }),
88
+ null,
89
+ `mcp__pushary__${tool} must reach Cursor's own prompt, not ours`,
90
+ )
91
+ }
92
+
93
+ // A neighbour whose name merely starts the same way is still gated. The
94
+ // guard is on the `mcp__pushary__` prefix, not on "contains pushary".
95
+ assert.equal(
96
+ describeRequest({
97
+ hook_event_name: 'beforeMCPExecution',
98
+ tool_name: 'run',
99
+ mcp_server_name: 'pushary-clone',
100
+ tool_input: '{}',
101
+ }).toolName,
102
+ 'mcp__pushary-clone__run',
103
+ )
104
+ })
105
+
67
106
  it('declines an event it does not gate rather than calling it Bash', () => {
68
107
  // beforeReadFile is registered by nobody here on purpose: its response
69
108
  // schema has no `ask`, so the no-opinion path this gate takes on every error
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handleBell
4
- } from "../chunk-YYTLTEGU.js";
4
+ } from "../chunk-WXCHB6BO.js";
5
5
  import {
6
6
  readHookInput
7
7
  } from "../chunk-6CUUA7HO.js";
8
- import "../chunk-YX6ZKCC5.js";
8
+ import "../chunk-67TNJVJW.js";
9
9
  import "../chunk-BC3VCZ3E.js";
10
10
  import "../chunk-6MTNS63X.js";
11
- import "../chunk-KBS53WOE.js";
11
+ import "../chunk-VSCSZ2LI.js";
12
12
  import "../chunk-2UMNXADU.js";
13
- import "../chunk-DMW54VWK.js";
13
+ import "../chunk-3JL64GVE.js";
14
14
 
15
15
  // bin/pushary-bell-hook.ts
16
16
  var main = async () => {
@@ -5,19 +5,19 @@ import {
5
5
  liveAgentCount,
6
6
  ring,
7
7
  upgradeThreshold
8
- } from "../chunk-YYTLTEGU.js";
8
+ } from "../chunk-WXCHB6BO.js";
9
9
  import {
10
10
  guardBinary
11
11
  } from "../chunk-B7ZBHWOW.js";
12
12
  import "../chunk-VT4IVERX.js";
13
13
  import {
14
14
  claudeSettings
15
- } from "../chunk-VL5ZNK6V.js";
15
+ } from "../chunk-VHHVGVFQ.js";
16
16
  import "../chunk-GIRT7677.js";
17
17
  import {
18
18
  createIo
19
19
  } from "../chunk-5RUIFDTP.js";
20
- import "../chunk-YX6ZKCC5.js";
20
+ import "../chunk-67TNJVJW.js";
21
21
  import {
22
22
  parseFlags
23
23
  } from "../chunk-GMXKITVA.js";
@@ -31,13 +31,13 @@ import {
31
31
  readJsonSafe,
32
32
  writeJsonAtomic
33
33
  } from "../chunk-6MTNS63X.js";
34
- import "../chunk-KBS53WOE.js";
34
+ import "../chunk-VSCSZ2LI.js";
35
35
  import "../chunk-7QLSKOSU.js";
36
36
  import {
37
37
  EXIT
38
38
  } from "../chunk-KZERVKTD.js";
39
39
  import "../chunk-2UMNXADU.js";
40
- import "../chunk-DMW54VWK.js";
40
+ import "../chunk-3JL64GVE.js";
41
41
 
42
42
  // src/bell/install.ts
43
43
  import { join } from "path";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  ensureDaemonRunning
4
- } from "../chunk-KCAFCGGY.js";
4
+ } from "../chunk-OULRSHFB.js";
5
5
  import {
6
6
  buildTranscriptRecords,
7
7
  decodePublicKey,
@@ -9,17 +9,17 @@ import {
9
9
  generateSessionKey,
10
10
  uploadTranscriptRecords,
11
11
  wrapSessionKey
12
- } from "../chunk-QLMX5LLV.js";
12
+ } from "../chunk-LEYXXXRN.js";
13
13
  import {
14
14
  startProcessOwnership,
15
15
  withSpawnProcessOwnership
16
- } from "../chunk-LGVHYFIB.js";
16
+ } from "../chunk-3B3PYTKH.js";
17
17
  import {
18
18
  needsShell,
19
19
  spawnClaude
20
20
  } from "../chunk-XHKBHWLX.js";
21
21
  import "../chunk-VT4IVERX.js";
22
- import "../chunk-VL5ZNK6V.js";
22
+ import "../chunk-VHHVGVFQ.js";
23
23
  import {
24
24
  isDeferAnswer
25
25
  } from "../chunk-YHG74UFF.js";
@@ -29,7 +29,7 @@ import {
29
29
  getPolicy,
30
30
  repoKeyFor,
31
31
  reportEvent
32
- } from "../chunk-VOE4SYPR.js";
32
+ } from "../chunk-MNXG6IIM.js";
33
33
  import {
34
34
  askUser,
35
35
  cancelQuestion,
@@ -39,7 +39,7 @@ import {
39
39
  deriveToolTarget,
40
40
  describeToolCall,
41
41
  scopePathFor
42
- } from "../chunk-7J67NYK4.js";
42
+ } from "../chunk-F5W3AY6L.js";
43
43
  import {
44
44
  getMachineId
45
45
  } from "../chunk-RN3NOEJF.js";
@@ -47,7 +47,7 @@ import "../chunk-DINDL2CF.js";
47
47
  import "../chunk-6MTNS63X.js";
48
48
  import "../chunk-BSZYIAZL.js";
49
49
  import "../chunk-SAF6HGAA.js";
50
- import "../chunk-KBS53WOE.js";
50
+ import "../chunk-VSCSZ2LI.js";
51
51
  import "../chunk-7QLSKOSU.js";
52
52
  import "../chunk-KZERVKTD.js";
53
53
  import {
@@ -57,7 +57,7 @@ import {
57
57
  import {
58
58
  KILL_REASON,
59
59
  resolveGate
60
- } from "../chunk-DMW54VWK.js";
60
+ } from "../chunk-3JL64GVE.js";
61
61
 
62
62
  // src/wrapper/claudeBinary.ts
63
63
  import { statSync } from "fs";
@@ -2,18 +2,17 @@
2
2
  import {
3
3
  removeClaudeMcpServers,
4
4
  removePusharySettings
5
- } from "../chunk-2JYQAW4B.js";
5
+ } from "../chunk-U6HRYNHC.js";
6
6
  import {
7
- CURSOR_GATE_EVENTS,
8
7
  removeInstructionBlock,
9
8
  shortenHome,
10
9
  unregisterPluginLocation,
11
10
  vscodeSettingsTargets
12
- } from "../chunk-DPUOW6NS.js";
13
- import "../chunk-ZGC3W23N.js";
11
+ } from "../chunk-T2XZH7D5.js";
12
+ import "../chunk-DSTZ2RBU.js";
14
13
  import {
15
14
  removeGeminiSettings
16
- } from "../chunk-K42RXJPG.js";
15
+ } from "../chunk-MY5A4EPQ.js";
17
16
  import "../chunk-ATBKJNWS.js";
18
17
  import "../chunk-B7ZBHWOW.js";
19
18
  import {
@@ -38,9 +37,9 @@ import {
38
37
  removeCodexHookTrust,
39
38
  removeCodexHooks,
40
39
  vscodePluginDir
41
- } from "../chunk-VL5ZNK6V.js";
40
+ } from "../chunk-VHHVGVFQ.js";
42
41
  import "../chunk-GIRT7677.js";
43
- import "../chunk-7J67NYK4.js";
42
+ import "../chunk-F5W3AY6L.js";
44
43
  import {
45
44
  rejectUnknownFlags
46
45
  } from "../chunk-GMXKITVA.js";
@@ -56,7 +55,9 @@ import "../chunk-7QLSKOSU.js";
56
55
  import {
57
56
  EXIT
58
57
  } from "../chunk-KZERVKTD.js";
59
- import "../chunk-DMW54VWK.js";
58
+ import {
59
+ CURSOR_GATE_EVENTS
60
+ } from "../chunk-3JL64GVE.js";
60
61
 
61
62
  // bin/pushary-clean.ts
62
63
  import { existsSync, readFileSync, copyFileSync, readdirSync } from "fs";
@@ -6,19 +6,19 @@ import {
6
6
  postLiveSession,
7
7
  postLiveSessionUntilAccepted,
8
8
  startLiveSessionHeartbeat
9
- } from "../chunk-TV3UFGT7.js";
10
- import "../chunk-QLMX5LLV.js";
9
+ } from "../chunk-XFHMGVMX.js";
10
+ import "../chunk-LEYXXXRN.js";
11
11
  import {
12
12
  startProcessOwnership,
13
13
  withSpawnProcessOwnership
14
- } from "../chunk-LGVHYFIB.js";
14
+ } from "../chunk-3B3PYTKH.js";
15
15
  import {
16
16
  spawnClaude
17
17
  } from "../chunk-XHKBHWLX.js";
18
18
  import {
19
19
  resolveBinary
20
20
  } from "../chunk-VT4IVERX.js";
21
- import "../chunk-VL5ZNK6V.js";
21
+ import "../chunk-VHHVGVFQ.js";
22
22
  import "../chunk-GIRT7677.js";
23
23
  import {
24
24
  getMachineId
@@ -28,7 +28,7 @@ import {
28
28
  getApiKey,
29
29
  getBaseUrl
30
30
  } from "../chunk-2UMNXADU.js";
31
- import "../chunk-DMW54VWK.js";
31
+ import "../chunk-3JL64GVE.js";
32
32
 
33
33
  // bin/pushary-codex-bridge.ts
34
34
  import { existsSync } from "fs";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  isGatingMoment,
4
4
  recordKeylessMoment
5
- } from "../chunk-VIHRP25S.js";
5
+ } from "../chunk-4VYELDAH.js";
6
6
  import {
7
7
  readHookInput
8
8
  } from "../chunk-6CUUA7HO.js";
@@ -34,7 +34,7 @@ import {
34
34
  toCodexWire,
35
35
  toPolicyLookup,
36
36
  toPolicyLookups
37
- } from "../chunk-VOE4SYPR.js";
37
+ } from "../chunk-MNXG6IIM.js";
38
38
  import {
39
39
  DEFAULT_SESSION,
40
40
  askUser,
@@ -49,13 +49,13 @@ import {
49
49
  deriveToolTarget,
50
50
  describeToolCall,
51
51
  scopePathFor
52
- } from "../chunk-7J67NYK4.js";
52
+ } from "../chunk-F5W3AY6L.js";
53
53
  import {
54
54
  getMachineId
55
55
  } from "../chunk-RN3NOEJF.js";
56
56
  import "../chunk-BSZYIAZL.js";
57
57
  import "../chunk-SAF6HGAA.js";
58
- import "../chunk-KBS53WOE.js";
58
+ import "../chunk-VSCSZ2LI.js";
59
59
  import "../chunk-7QLSKOSU.js";
60
60
  import "../chunk-KZERVKTD.js";
61
61
  import {
@@ -68,7 +68,7 @@ import {
68
68
  hookWaitClamped,
69
69
  hookWaitDeadline,
70
70
  resolveGate
71
- } from "../chunk-DMW54VWK.js";
71
+ } from "../chunk-3JL64GVE.js";
72
72
 
73
73
  // bin/pushary-codex-hook.ts
74
74
  import { basename } from "path";
@@ -366,6 +366,12 @@ var asToolResult = (value) => value && typeof value === "object" && !Array.isArr
366
366
  var emit = (wire) => {
367
367
  if (wire) process.stdout.write(JSON.stringify(wire));
368
368
  };
369
+ var emitContext = (event, additionalContext) => {
370
+ if (!additionalContext) return;
371
+ process.stdout.write(JSON.stringify({
372
+ hookSpecificOutput: { hookEventName: event, additionalContext }
373
+ }));
374
+ };
369
375
  var main = async () => {
370
376
  const input = await readHookInput("codex");
371
377
  if (!input) {
@@ -381,21 +387,21 @@ var main = async () => {
381
387
  break;
382
388
  case "PostToolUse": {
383
389
  const lookup = toPolicyLookup(input.tool_name ?? "", input.tool_input ?? {}, input.cwd);
384
- await handlePostToolUse({
390
+ emitContext("PostToolUse", await handlePostToolUse({
385
391
  tool_name: lookup.tool,
386
392
  tool_input: lookup.input,
387
393
  tool_result: asToolResult(input.tool_response),
388
394
  cwd: input.cwd,
389
395
  session_id: input.session_id
390
- }, CODEX_AGENT);
396
+ }, CODEX_AGENT));
391
397
  break;
392
398
  }
393
399
  case "UserPromptSubmit":
394
- await handleUserPrompt({
400
+ emitContext("UserPromptSubmit", await handleUserPrompt({
395
401
  prompt: input.prompt,
396
402
  cwd: input.cwd,
397
403
  session_id: input.session_id
398
- }, CODEX_AGENT);
404
+ }, CODEX_AGENT));
399
405
  break;
400
406
  case "Stop":
401
407
  await handleStop({
@@ -1,24 +1,24 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  reportEvent
4
- } from "../chunk-VOE4SYPR.js";
4
+ } from "../chunk-MNXG6IIM.js";
5
5
  import {
6
6
  askUser,
7
7
  waitForAnswer
8
8
  } from "../chunk-J3YDT4HM.js";
9
- import "../chunk-7J67NYK4.js";
9
+ import "../chunk-F5W3AY6L.js";
10
10
  import {
11
11
  getMachineId
12
12
  } from "../chunk-RN3NOEJF.js";
13
13
  import "../chunk-BSZYIAZL.js";
14
14
  import "../chunk-SAF6HGAA.js";
15
- import "../chunk-KBS53WOE.js";
15
+ import "../chunk-VSCSZ2LI.js";
16
16
  import "../chunk-7QLSKOSU.js";
17
17
  import "../chunk-KZERVKTD.js";
18
18
  import {
19
19
  getApiKey
20
20
  } from "../chunk-2UMNXADU.js";
21
- import "../chunk-DMW54VWK.js";
21
+ import "../chunk-3JL64GVE.js";
22
22
 
23
23
  // bin/pushary-codex.ts
24
24
  import { basename } from "path";
@@ -1,22 +1,22 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  printKeyCheck
4
- } from "../chunk-TD3M232T.js";
4
+ } from "../chunk-3PSEZOC4.js";
5
5
  import {
6
6
  confirmAppConnection,
7
7
  connectDevice,
8
8
  printConnectInstructions
9
- } from "../chunk-EJL3PJU7.js";
9
+ } from "../chunk-ESARAYRI.js";
10
10
  import "../chunk-3EGEA4KH.js";
11
11
  import {
12
12
  checkApiKey
13
- } from "../chunk-KFAH6KRE.js";
13
+ } from "../chunk-6BOE5NJZ.js";
14
14
  import {
15
15
  createIo
16
16
  } from "../chunk-5RUIFDTP.js";
17
17
  import {
18
18
  readKeySource
19
- } from "../chunk-YX6ZKCC5.js";
19
+ } from "../chunk-67TNJVJW.js";
20
20
  import {
21
21
  parseFlags
22
22
  } from "../chunk-GMXKITVA.js";
@@ -29,7 +29,7 @@ import "../chunk-DINDL2CF.js";
29
29
  import "../chunk-6MTNS63X.js";
30
30
  import "../chunk-BSZYIAZL.js";
31
31
  import "../chunk-SAF6HGAA.js";
32
- import "../chunk-KBS53WOE.js";
32
+ import "../chunk-VSCSZ2LI.js";
33
33
  import {
34
34
  UsageError
35
35
  } from "../chunk-7QLSKOSU.js";
@@ -37,7 +37,7 @@ import {
37
37
  EXIT
38
38
  } from "../chunk-KZERVKTD.js";
39
39
  import "../chunk-2UMNXADU.js";
40
- import "../chunk-DMW54VWK.js";
40
+ import "../chunk-3JL64GVE.js";
41
41
 
42
42
  // bin/pushary-connect.ts
43
43
  exitOnHelpFlag("connect");
@@ -8,7 +8,7 @@ import {
8
8
  acquireDaemonLease,
9
9
  readDaemonStatus,
10
10
  requestDaemonHandoff
11
- } from "../chunk-KCAFCGGY.js";
11
+ } from "../chunk-OULRSHFB.js";
12
12
  import {
13
13
  CODEX_BRIDGE_CAPABILITY,
14
14
  CODEX_RESUME_CAPABILITY,
@@ -17,7 +17,7 @@ import {
17
17
  import {
18
18
  findLiveProcessBySpawnId,
19
19
  ownsLiveProcess
20
- } from "../chunk-LGVHYFIB.js";
20
+ } from "../chunk-3B3PYTKH.js";
21
21
  import {
22
22
  spawnClaude
23
23
  } from "../chunk-XHKBHWLX.js";
@@ -26,7 +26,7 @@ import {
26
26
  resolveGlobalPackageVersion,
27
27
  resolvePackageVersionFromBinary
28
28
  } from "../chunk-VT4IVERX.js";
29
- import "../chunk-VL5ZNK6V.js";
29
+ import "../chunk-VHHVGVFQ.js";
30
30
  import "../chunk-GIRT7677.js";
31
31
  import {
32
32
  getMachineId
@@ -44,7 +44,7 @@ import {
44
44
  getApiKey,
45
45
  getBaseUrl
46
46
  } from "../chunk-2UMNXADU.js";
47
- import "../chunk-DMW54VWK.js";
47
+ import "../chunk-3JL64GVE.js";
48
48
 
49
49
  // src/spawn-daemon.ts
50
50
  import { execFileSync, spawn } from "child_process";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  removeClaudeMcpServers,
4
4
  removePusharySettings
5
- } from "../chunk-2JYQAW4B.js";
5
+ } from "../chunk-U6HRYNHC.js";
6
6
  import {
7
7
  OPENCODE_PLUGIN_SIBLING,
8
8
  OPENCODE_PLUGIN_SIBLING_CONTENTS,
@@ -12,10 +12,10 @@ import {
12
12
  openCodePluginDir,
13
13
  openCodePluginFile,
14
14
  removeOpenCodeMcpServer
15
- } from "../chunk-ZGC3W23N.js";
15
+ } from "../chunk-DSTZ2RBU.js";
16
16
  import {
17
17
  removeGeminiSettings
18
- } from "../chunk-K42RXJPG.js";
18
+ } from "../chunk-MY5A4EPQ.js";
19
19
  import "../chunk-ATBKJNWS.js";
20
20
  import "../chunk-B7ZBHWOW.js";
21
21
  import "../chunk-VT4IVERX.js";
@@ -31,7 +31,7 @@ import {
31
31
  geminiSettings,
32
32
  removeCodexHooks,
33
33
  removeCodexSettings
34
- } from "../chunk-VL5ZNK6V.js";
34
+ } from "../chunk-VHHVGVFQ.js";
35
35
  import "../chunk-GIRT7677.js";
36
36
  import {
37
37
  exitOnHelpFlag
@@ -39,7 +39,7 @@ import {
39
39
  import "../chunk-GOEXZ5QJ.js";
40
40
  import "../chunk-DINDL2CF.js";
41
41
  import "../chunk-KZERVKTD.js";
42
- import "../chunk-DMW54VWK.js";
42
+ import "../chunk-3JL64GVE.js";
43
43
 
44
44
  // bin/pushary-disconnect.ts
45
45
  import { readdirSync, readFileSync, rmSync, writeFileSync } from "fs";
@@ -6,12 +6,11 @@ import {
6
6
  claudeWired,
7
7
  codexWired,
8
8
  geminiWired
9
- } from "../chunk-TAYHEJFF.js";
9
+ } from "../chunk-RSUBLTMP.js";
10
10
  import {
11
11
  readDaemonStatus
12
- } from "../chunk-KCAFCGGY.js";
12
+ } from "../chunk-OULRSHFB.js";
13
13
  import {
14
- CURSOR_GATE_EVENTS,
15
14
  agentProbes,
16
15
  detectAgent,
17
16
  detectAllAgents,
@@ -19,18 +18,18 @@ import {
19
18
  isDetected,
20
19
  isPluginRegistered,
21
20
  vscodeSettingsTargets
22
- } from "../chunk-DPUOW6NS.js";
21
+ } from "../chunk-T2XZH7D5.js";
23
22
  import {
24
23
  OPENCODE_PLUGIN_PLACEHOLDER,
25
24
  openCodePluginDir,
26
25
  openCodePluginFile,
27
26
  openCodeWired
28
- } from "../chunk-ZGC3W23N.js";
27
+ } from "../chunk-DSTZ2RBU.js";
29
28
  import {
30
29
  GEMINI_HOOK_BINARY,
31
30
  hasGeminiHooks,
32
31
  missingGeminiHookEvents
33
- } from "../chunk-K42RXJPG.js";
32
+ } from "../chunk-MY5A4EPQ.js";
34
33
  import "../chunk-ATBKJNWS.js";
35
34
  import "../chunk-B7ZBHWOW.js";
36
35
  import "../chunk-XHKBHWLX.js";
@@ -56,12 +55,12 @@ import {
56
55
  readCodexMcpAuth,
57
56
  untrustedCodexHookEvents,
58
57
  vscodePluginDir
59
- } from "../chunk-VL5ZNK6V.js";
58
+ } from "../chunk-VHHVGVFQ.js";
60
59
  import {
61
60
  readLedgerSummary
62
- } from "../chunk-VIHRP25S.js";
61
+ } from "../chunk-4VYELDAH.js";
63
62
  import "../chunk-GIRT7677.js";
64
- import "../chunk-7J67NYK4.js";
63
+ import "../chunk-F5W3AY6L.js";
65
64
  import {
66
65
  getMachineId
67
66
  } from "../chunk-RN3NOEJF.js";
@@ -71,19 +70,19 @@ import {
71
70
  fetchChannels,
72
71
  reachVerdict,
73
72
  verifyRoundTrip
74
- } from "../chunk-EJL3PJU7.js";
73
+ } from "../chunk-ESARAYRI.js";
75
74
  import "../chunk-3EGEA4KH.js";
76
75
  import {
77
76
  checkApiKey,
78
77
  describeKeyCheck
79
- } from "../chunk-KFAH6KRE.js";
78
+ } from "../chunk-6BOE5NJZ.js";
80
79
  import {
81
80
  createIo
82
81
  } from "../chunk-5RUIFDTP.js";
83
82
  import {
84
83
  keyPrefix,
85
84
  readKeySource
86
- } from "../chunk-YX6ZKCC5.js";
85
+ } from "../chunk-67TNJVJW.js";
87
86
  import {
88
87
  parseFlags
89
88
  } from "../chunk-GMXKITVA.js";
@@ -101,7 +100,7 @@ import {
101
100
  sendMcpRequest
102
101
  } from "../chunk-BSZYIAZL.js";
103
102
  import "../chunk-SAF6HGAA.js";
104
- import "../chunk-KBS53WOE.js";
103
+ import "../chunk-VSCSZ2LI.js";
105
104
  import {
106
105
  UsageError
107
106
  } from "../chunk-7QLSKOSU.js";
@@ -111,7 +110,9 @@ import {
111
110
  import {
112
111
  getBaseUrl
113
112
  } from "../chunk-2UMNXADU.js";
114
- import "../chunk-DMW54VWK.js";
113
+ import {
114
+ CURSOR_GATE_EVENTS
115
+ } from "../chunk-3JL64GVE.js";
115
116
 
116
117
  // bin/pushary-doctor.ts
117
118
  import { existsSync, readFileSync, writeFileSync } from "fs";
@@ -27,7 +27,7 @@ import {
27
27
  hookWaitDeadline,
28
28
  parseAgentQuestionAnswers,
29
29
  renderElicitationOutput
30
- } from "../chunk-DMW54VWK.js";
30
+ } from "../chunk-3JL64GVE.js";
31
31
 
32
32
  // bin/pushary-elicitation-hook.ts
33
33
  import { basename } from "path";
@@ -5,19 +5,19 @@ import {
5
5
  postLiveSession,
6
6
  postLiveSessionUntilAccepted,
7
7
  startLiveSessionHeartbeat
8
- } from "../chunk-TV3UFGT7.js";
9
- import "../chunk-QLMX5LLV.js";
8
+ } from "../chunk-XFHMGVMX.js";
9
+ import "../chunk-LEYXXXRN.js";
10
10
  import {
11
11
  startProcessOwnership,
12
12
  withSpawnProcessOwnership
13
- } from "../chunk-LGVHYFIB.js";
13
+ } from "../chunk-3B3PYTKH.js";
14
14
  import {
15
15
  spawnClaude
16
16
  } from "../chunk-XHKBHWLX.js";
17
17
  import {
18
18
  resolveBinary
19
19
  } from "../chunk-VT4IVERX.js";
20
- import "../chunk-VL5ZNK6V.js";
20
+ import "../chunk-VHHVGVFQ.js";
21
21
  import "../chunk-GIRT7677.js";
22
22
  import {
23
23
  getMachineId
@@ -27,7 +27,7 @@ import {
27
27
  getApiKey,
28
28
  getBaseUrl
29
29
  } from "../chunk-2UMNXADU.js";
30
- import "../chunk-DMW54VWK.js";
30
+ import "../chunk-3JL64GVE.js";
31
31
 
32
32
  // bin/pushary-gemini-bridge.ts
33
33
  import { existsSync } from "fs";