@pushary/agent-hooks 0.99.0 → 1.1.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 (84) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/data/SKILL.md +250 -49
  3. package/data/cursor-plugin/scripts/pushary-gate.mjs +24 -0
  4. package/data/cursor-plugin/skills/pushary/SKILL.md +250 -49
  5. package/data/vscode-plugin/scripts/pushary-gate.mjs +24 -0
  6. package/data/vscode-plugin/skills/pushary/SKILL.md +250 -49
  7. package/dist/bin/pushary-bell-hook.js +18 -18
  8. package/dist/bin/pushary-bell.js +6 -6
  9. package/dist/bin/pushary-claude.js +22 -24
  10. package/dist/bin/pushary-clean.js +60 -18
  11. package/dist/bin/pushary-codex-bridge.js +10 -10
  12. package/dist/bin/pushary-codex-hook.js +33 -35
  13. package/dist/bin/pushary-codex.js +6 -7
  14. package/dist/bin/pushary-connect.js +6 -6
  15. package/dist/bin/pushary-cowork.js +3 -3
  16. package/dist/bin/pushary-daemon.js +22 -22
  17. package/dist/bin/pushary-disconnect.js +48 -7
  18. package/dist/bin/pushary-doctor.js +88 -19
  19. package/dist/bin/pushary-elicitation-hook.js +17 -17
  20. package/dist/bin/pushary-gemini-bridge.js +9 -9
  21. package/dist/bin/pushary-gemini-hook.js +25 -27
  22. package/dist/bin/pushary-hook.js +61 -33
  23. package/dist/bin/pushary-login.js +7 -7
  24. package/dist/bin/pushary-logout.js +4 -4
  25. package/dist/bin/pushary-mode.js +3 -3
  26. package/dist/bin/pushary-notification-hook.js +26 -21
  27. package/dist/bin/pushary-opencode-hook.js +27 -29
  28. package/dist/bin/pushary-permission-denied-hook.js +24 -23
  29. package/dist/bin/pushary-permission-hook.js +32 -24
  30. package/dist/bin/pushary-post-hook.js +30 -22
  31. package/dist/bin/pushary-prompt-hook.js +26 -21
  32. package/dist/bin/pushary-session-end-hook.js +26 -21
  33. package/dist/bin/pushary-session-start-hook.js +30 -25
  34. package/dist/bin/pushary-setup.js +145 -37
  35. package/dist/bin/pushary-stats.js +2 -2
  36. package/dist/bin/pushary-status.js +10 -10
  37. package/dist/bin/pushary-stop-hook.js +27 -22
  38. package/dist/bin/pushary-stopfailure-hook.js +26 -21
  39. package/dist/bin/pushary-transcript-register.js +16 -16
  40. package/dist/bin/pushary-transcripts.js +4 -4
  41. package/dist/bin/pushary-upgrade.js +14 -14
  42. package/dist/bin/pushary-wait.js +3 -3
  43. package/dist/{chunk-ID5FDKDZ.js → chunk-2MOQUNFL.js} +1 -1
  44. package/dist/{chunk-CRFLU455.js → chunk-6JUCFMSF.js} +3 -3
  45. package/dist/{chunk-QS55LDX4.js → chunk-6T4OINZB.js} +16 -16
  46. package/dist/{chunk-6C6MS57P.js → chunk-76ZCJZBK.js} +1 -1
  47. package/dist/{chunk-JXELRCU5.js → chunk-AH5OO2YZ.js} +3 -3
  48. package/dist/{chunk-XPPXOKIG.js → chunk-BBUZD7MU.js} +1 -1
  49. package/dist/{chunk-T3JZZUAR.js → chunk-DKTFZCLQ.js} +30 -29
  50. package/dist/{chunk-RALVI7OF.js → chunk-DZYIAMKR.js} +9 -6
  51. package/dist/{chunk-GCD3SQSV.js → chunk-E3WQMDCE.js} +1 -1
  52. package/dist/{chunk-JBJBVERL.js → chunk-EWQZISYV.js} +1 -1
  53. package/dist/{chunk-LWKPMSBB.js → chunk-EZ3GX3NS.js} +5 -5
  54. package/dist/{chunk-5KLAETSU.js → chunk-FO4HHPMO.js} +1 -1
  55. package/dist/{chunk-6KLCP7VF.js → chunk-IH7YUPFN.js} +3 -3
  56. package/dist/{chunk-OPR2BPD4.js → chunk-INBTKFT6.js} +1 -1
  57. package/dist/{chunk-K4XFCEVI.js → chunk-IPDBFJ2M.js} +1 -1
  58. package/dist/{chunk-6IFUXNFX.js → chunk-ISELLVBP.js} +1 -1
  59. package/dist/{chunk-562UJ2DA.js → chunk-J7PJALS2.js} +1 -1
  60. package/dist/{chunk-O3LZQEQP.js → chunk-LQ3BHPPZ.js} +1 -1
  61. package/dist/{chunk-3RVCQDC4.js → chunk-LUYYB6V2.js} +1 -1
  62. package/dist/{chunk-V262ATS5.js → chunk-MR2PWE62.js} +17 -3
  63. package/dist/{chunk-WGV3VY7O.js → chunk-MZUXTN7X.js} +2 -2
  64. package/dist/{chunk-LBNAGGLV.js → chunk-OYYQHJAO.js} +3 -2
  65. package/dist/{chunk-4C4XFAGJ.js → chunk-PHJOSAXW.js} +2 -2
  66. package/dist/{chunk-SI7GYBQP.js → chunk-PQG6NTPT.js} +1 -1
  67. package/dist/{chunk-3ZAEUPM4.js → chunk-PUDQJ772.js} +1 -1
  68. package/dist/{chunk-NSFNEDCT.js → chunk-PWIMJP4U.js} +6 -6
  69. package/dist/{chunk-JL33EDN7.js → chunk-QACXZYDA.js} +4 -4
  70. package/dist/{chunk-CP34FI4B.js → chunk-RZTH4MIY.js} +2 -2
  71. package/dist/{chunk-HB2KB7QL.js → chunk-S2BNTXP6.js} +1 -1
  72. package/dist/{chunk-EXHXR2X5.js → chunk-SA6UB3GD.js} +1 -1
  73. package/dist/{chunk-IRLTW6KF.js → chunk-SLEWDZOA.js} +1 -1
  74. package/dist/chunk-SM54HHVY.js +224 -0
  75. package/dist/{chunk-4PBCNVI3.js → chunk-UP7NZXJU.js} +1 -1
  76. package/dist/{chunk-XOOWC62T.js → chunk-VACFOGF3.js} +1 -1
  77. package/dist/{chunk-OUAE3GKO.js → chunk-VQYARC2K.js} +279 -1
  78. package/dist/{chunk-64WARXGV.js → chunk-WTT24AUA.js} +698 -43
  79. package/dist/{chunk-K6BASBQJ.js → chunk-XIHKSZHL.js} +1 -1
  80. package/dist/{chunk-PD6JY33P.js → chunk-YM4G6CFN.js} +4 -3
  81. package/dist/{reapply-HQ264ZTR.js → reapply-STSGYPF2.js} +8 -8
  82. package/dist/src/index.js +12 -10
  83. package/package.json +1 -1
  84. package/dist/chunk-A76GNRIK.js +0 -608
@@ -5,14 +5,14 @@ import {
5
5
  createGuards,
6
6
  resolveHermesPython,
7
7
  runHermesPythonScript
8
- } from "../chunk-3ZAEUPM4.js";
8
+ } from "../chunk-PUDQJ772.js";
9
9
  import "../chunk-KBITFQST.js";
10
10
  import {
11
11
  removeInstructionBlock,
12
12
  shortenHome,
13
13
  unregisterPluginLocation,
14
14
  vscodeSettingsTargets
15
- } from "../chunk-V262ATS5.js";
15
+ } from "../chunk-MR2PWE62.js";
16
16
  import {
17
17
  OPENCODE_PLUGIN_SIBLING,
18
18
  OPENCODE_PLUGIN_SIBLING_CONTENTS,
@@ -22,35 +22,45 @@ import {
22
22
  openCodePluginDir,
23
23
  openCodePluginFile,
24
24
  removeOpenCodeMcpServer
25
- } from "../chunk-HB2KB7QL.js";
25
+ } from "../chunk-S2BNTXP6.js";
26
+ import {
27
+ compatibleConfigFile,
28
+ compatibleInstructionsFile,
29
+ compatibleMcpFile,
30
+ compatiblePermissionRuleFile,
31
+ removeCompatibleHooks,
32
+ removeCompatibleMcpServer
33
+ } from "../chunk-SM54HHVY.js";
26
34
  import {
27
35
  isClaudeMcpSnapshot,
28
36
  removeClaudeMcpServers,
29
37
  removePusharySettings,
38
+ removePusharyToolPermissions,
30
39
  restoreClaudeMcpServer
31
- } from "../chunk-QS55LDX4.js";
40
+ } from "../chunk-6T4OINZB.js";
32
41
  import {
33
42
  hookOwnerOf,
34
43
  isHookTakeoverReceipt,
35
44
  restoreHookTakeover,
36
45
  restoreMcpServer
37
- } from "../chunk-RALVI7OF.js";
38
- import "../chunk-LBNAGGLV.js";
39
- import "../chunk-IRLTW6KF.js";
46
+ } from "../chunk-DZYIAMKR.js";
47
+ import "../chunk-OYYQHJAO.js";
48
+ import "../chunk-SLEWDZOA.js";
40
49
  import {
41
50
  pusharyHookExecutable
42
- } from "../chunk-JXELRCU5.js";
51
+ } from "../chunk-AH5OO2YZ.js";
43
52
  import {
44
53
  disableDaemonService
45
- } from "../chunk-CRFLU455.js";
54
+ } from "../chunk-6JUCFMSF.js";
46
55
  import {
47
56
  removeGeminiSettings
48
- } from "../chunk-PD6JY33P.js";
49
- import "../chunk-EXHXR2X5.js";
57
+ } from "../chunk-YM4G6CFN.js";
58
+ import "../chunk-SA6UB3GD.js";
50
59
  import "../chunk-XHKBHWLX.js";
51
- import "../chunk-A76GNRIK.js";
52
- import "../chunk-OPR2BPD4.js";
53
- import "../chunk-562UJ2DA.js";
60
+ import "../chunk-WTT24AUA.js";
61
+ import "../chunk-INBTKFT6.js";
62
+ import "../chunk-LGXUGYUH.js";
63
+ import "../chunk-J7PJALS2.js";
54
64
  import {
55
65
  bridgeAgentKey,
56
66
  claudeJson,
@@ -79,7 +89,7 @@ import {
79
89
  restoreCodexHookTrust,
80
90
  vscodePluginDir,
81
91
  vscodePluginMcp
82
- } from "../chunk-JBJBVERL.js";
92
+ } from "../chunk-EWQZISYV.js";
83
93
  import {
84
94
  exitOnHelpFlag
85
95
  } from "../chunk-GOQHN2UH.js";
@@ -90,19 +100,22 @@ import {
90
100
  import "../chunk-DINDL2CF.js";
91
101
  import {
92
102
  removeClaudeAlias
93
- } from "../chunk-4PBCNVI3.js";
103
+ } from "../chunk-UP7NZXJU.js";
104
+ import "../chunk-EYRGBYZG.js";
105
+ import "../chunk-SAF6HGAA.js";
94
106
  import "../chunk-7QLSKOSU.js";
95
107
  import {
96
108
  EXIT
97
109
  } from "../chunk-KZERVKTD.js";
98
- import "../chunk-GCD3SQSV.js";
110
+ import "../chunk-E3WQMDCE.js";
99
111
  import "../chunk-4LL6LG5X.js";
100
112
  import "../chunk-2UMNXADU.js";
101
113
  import {
102
114
  CURSOR_GATE_EVENTS,
115
+ HOOK_COMPATIBLE_PROFILES,
103
116
  HOOK_LOCATOR_BINARY,
104
117
  isValidApiKey
105
- } from "../chunk-OUAE3GKO.js";
118
+ } from "../chunk-VQYARC2K.js";
106
119
 
107
120
  // bin/pushary-clean.ts
108
121
  import { existsSync, readFileSync, copyFileSync, readdirSync } from "fs";
@@ -551,6 +564,35 @@ var main = async () => {
551
564
  } else {
552
565
  console.log(` ${skip} Codex skill directory ${dim("(not found)")}`);
553
566
  }
567
+ for (const profile of HOOK_COMPATIBLE_PROFILES) {
568
+ const edits = [
569
+ [compatibleConfigFile(profile), (config) => removeCompatibleHooks(config, profile)],
570
+ ...compatibleMcpFile(profile) ? [[compatibleMcpFile(profile), (config) => removeCompatibleMcpServer(config, profile)]] : [],
571
+ ...compatiblePermissionRuleFile(profile) ? [[compatiblePermissionRuleFile(profile), removePusharyToolPermissions]] : []
572
+ ];
573
+ const byPath = /* @__PURE__ */ new Map();
574
+ for (const [path, edit] of edits) byPath.set(path, [...byPath.get(path) ?? [], edit]);
575
+ for (const [path, removals] of byPath) {
576
+ const config = readJson(path);
577
+ if (!config) {
578
+ console.log(` ${skip} ${profile.label} ${shortenHome(path)} ${dim("(not found)")}`);
579
+ continue;
580
+ }
581
+ if (removals.reduce((changed, remove) => remove(config) || changed, false)) {
582
+ writeJson(path, config);
583
+ console.log(` ${check} ${profile.label} ${shortenHome(path)} ${dim(did("cleaned"))}`);
584
+ } else {
585
+ console.log(` ${skip} ${profile.label} ${shortenHome(path)} ${dim("(no pushary entries)")}`);
586
+ }
587
+ }
588
+ const instructions = compatibleInstructionsFile(profile);
589
+ if (!instructions) continue;
590
+ if (guardedInstructionBlockRemoval(instructions)) {
591
+ console.log(` ${check} ${profile.label} ${shortenHome(instructions)} ${dim("(removed Pushary block)")}`);
592
+ } else {
593
+ console.log(` ${skip} ${profile.label} ${shortenHome(instructions)} ${dim("(no pushary block)")}`);
594
+ }
595
+ }
554
596
  const geminiSettingsPath = geminiSettings();
555
597
  const geminiSettings2 = readJson(geminiSettingsPath);
556
598
  if (geminiSettings2) {
@@ -1,24 +1,24 @@
1
1
  #!/usr/bin/env node
2
- import "../chunk-WGV3VY7O.js";
2
+ import "../chunk-MZUXTN7X.js";
3
3
  import {
4
4
  LiveTranscriptRelay,
5
5
  liveSessionSleep,
6
6
  postLiveSession,
7
7
  postLiveSessionUntilAccepted,
8
8
  startLiveSessionHeartbeat
9
- } from "../chunk-5KLAETSU.js";
9
+ } from "../chunk-FO4HHPMO.js";
10
10
  import {
11
11
  SESSION_IDLE_TIMEOUT_MS,
12
12
  describeIdleWindow,
13
13
  idleDeadlinePassed,
14
14
  startProcessOwnership,
15
15
  withSpawnProcessOwnership
16
- } from "../chunk-6IFUXNFX.js";
17
- import "../chunk-XPPXOKIG.js";
16
+ } from "../chunk-ISELLVBP.js";
17
+ import "../chunk-BBUZD7MU.js";
18
18
  import "../chunk-EQRS3SGM.js";
19
19
  import {
20
20
  transcriptsEnabled
21
- } from "../chunk-ID5FDKDZ.js";
21
+ } from "../chunk-2MOQUNFL.js";
22
22
  import {
23
23
  spawnClaude
24
24
  } from "../chunk-XHKBHWLX.js";
@@ -28,18 +28,18 @@ import {
28
28
  } from "../chunk-LGXUGYUH.js";
29
29
  import {
30
30
  getMachineId
31
- } from "../chunk-562UJ2DA.js";
31
+ } from "../chunk-J7PJALS2.js";
32
32
  import {
33
33
  resolveBinary
34
- } from "../chunk-JBJBVERL.js";
35
- import "../chunk-4PBCNVI3.js";
34
+ } from "../chunk-EWQZISYV.js";
35
+ import "../chunk-UP7NZXJU.js";
36
36
  import {
37
37
  callMcpTool
38
38
  } from "../chunk-EYRGBYZG.js";
39
39
  import "../chunk-SAF6HGAA.js";
40
40
  import "../chunk-7QLSKOSU.js";
41
41
  import "../chunk-KZERVKTD.js";
42
- import "../chunk-GCD3SQSV.js";
42
+ import "../chunk-E3WQMDCE.js";
43
43
  import "../chunk-4LL6LG5X.js";
44
44
  import {
45
45
  getApiKey,
@@ -48,7 +48,7 @@ import {
48
48
  import {
49
49
  parseAgentQuestion,
50
50
  parseAgentQuestionAnswers
51
- } from "../chunk-OUAE3GKO.js";
51
+ } from "../chunk-VQYARC2K.js";
52
52
 
53
53
  // bin/pushary-codex-bridge.ts
54
54
  import { existsSync } from "fs";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  takeHookHoldBudget
4
- } from "../chunk-SI7GYBQP.js";
4
+ } from "../chunk-PQG6NTPT.js";
5
5
  import {
6
6
  blockedActionFingerprint,
7
7
  codexCallKey,
@@ -12,38 +12,44 @@ import {
12
12
  recordBlockedActionHint,
13
13
  recordCodexCallDecision,
14
14
  userScope
15
- } from "../chunk-6KLCP7VF.js";
15
+ } from "../chunk-IH7YUPFN.js";
16
16
  import {
17
17
  isGatingMoment,
18
18
  recordKeylessMoment
19
- } from "../chunk-XOOWC62T.js";
19
+ } from "../chunk-VACFOGF3.js";
20
20
  import {
21
21
  readHookInput
22
- } from "../chunk-O3LZQEQP.js";
22
+ } from "../chunk-LQ3BHPPZ.js";
23
23
  import {
24
24
  denyReasonFrom,
25
25
  isDeferAnswer
26
26
  } from "../chunk-YHG74UFF.js";
27
- import "../chunk-NSFNEDCT.js";
27
+ import "../chunk-PWIMJP4U.js";
28
28
  import "../chunk-YKLCWWEI.js";
29
- import "../chunk-RALVI7OF.js";
30
- import "../chunk-LBNAGGLV.js";
31
- import "../chunk-IRLTW6KF.js";
32
- import "../chunk-JXELRCU5.js";
33
- import "../chunk-CRFLU455.js";
34
- import "../chunk-PD6JY33P.js";
35
- import "../chunk-EXHXR2X5.js";
36
- import "../chunk-XPPXOKIG.js";
29
+ import "../chunk-DZYIAMKR.js";
30
+ import "../chunk-OYYQHJAO.js";
31
+ import "../chunk-SLEWDZOA.js";
32
+ import "../chunk-AH5OO2YZ.js";
33
+ import "../chunk-6JUCFMSF.js";
34
+ import "../chunk-YM4G6CFN.js";
35
+ import "../chunk-SA6UB3GD.js";
36
+ import "../chunk-BBUZD7MU.js";
37
37
  import "../chunk-EQRS3SGM.js";
38
- import "../chunk-ID5FDKDZ.js";
38
+ import "../chunk-2MOQUNFL.js";
39
39
  import "../chunk-XHKBHWLX.js";
40
40
  import {
41
41
  CODEX_AGENT,
42
42
  DEFAULT_SESSION,
43
+ UNNAMED_ACTION,
43
44
  codexAllow,
44
45
  codexDeny,
45
46
  codexPass,
47
+ codexReviewerDenialsSince,
48
+ deriveActionBody,
49
+ deriveBlocker,
50
+ deriveToolTarget,
46
51
  describeApplyPatch,
52
+ describeToolCall,
47
53
  fetchModeState,
48
54
  getPolicy,
49
55
  handleCompaction,
@@ -52,30 +58,22 @@ import {
52
58
  handleStop,
53
59
  handleSubagentStop,
54
60
  handleUserPrompt,
61
+ isCodexGuardianRolloutHead,
55
62
  permissionTimeoutDecision,
56
63
  policyRequestFor,
57
64
  preToolUseTimeoutDecision,
65
+ readCodexTurnContext,
58
66
  readLastPrompt,
59
67
  repoKeyFor,
60
68
  reportEvent,
69
+ scanCodexGuardianReviews,
70
+ scopePathFor,
71
+ sessionIdentityOf,
61
72
  toCodexWire,
62
73
  toPolicyLookup,
63
74
  toPolicyLookups
64
- } from "../chunk-64WARXGV.js";
65
- import {
66
- UNNAMED_ACTION,
67
- codexReviewerDenialsSince,
68
- deriveActionBody,
69
- deriveBlocker,
70
- deriveToolTarget,
71
- describeToolCall,
72
- isCodexGuardianRolloutHead,
73
- readCodexTurnContext,
74
- scanCodexGuardianReviews,
75
- scopePathFor,
76
- sessionIdentityOf
77
- } from "../chunk-A76GNRIK.js";
78
- import "../chunk-OPR2BPD4.js";
75
+ } from "../chunk-WTT24AUA.js";
76
+ import "../chunk-INBTKFT6.js";
79
77
  import {
80
78
  DECISION_STOP_REASON,
81
79
  askUser,
@@ -90,18 +88,18 @@ import {
90
88
  } from "../chunk-LGXUGYUH.js";
91
89
  import {
92
90
  getMachineId
93
- } from "../chunk-562UJ2DA.js";
91
+ } from "../chunk-J7PJALS2.js";
94
92
  import {
95
93
  canonicalJson
96
- } from "../chunk-JBJBVERL.js";
94
+ } from "../chunk-EWQZISYV.js";
97
95
  import "../chunk-GMXKITVA.js";
98
96
  import "../chunk-DINDL2CF.js";
99
- import "../chunk-4PBCNVI3.js";
97
+ import "../chunk-UP7NZXJU.js";
100
98
  import "../chunk-EYRGBYZG.js";
101
99
  import "../chunk-SAF6HGAA.js";
102
100
  import "../chunk-7QLSKOSU.js";
103
101
  import "../chunk-KZERVKTD.js";
104
- import "../chunk-GCD3SQSV.js";
102
+ import "../chunk-E3WQMDCE.js";
105
103
  import {
106
104
  writeFileAtomic
107
105
  } from "../chunk-4LL6LG5X.js";
@@ -120,7 +118,7 @@ import {
120
118
  hookWaitClamped,
121
119
  hookWaitDeadline,
122
120
  resolveGate
123
- } from "../chunk-OUAE3GKO.js";
121
+ } from "../chunk-VQYARC2K.js";
124
122
 
125
123
  // bin/pushary-codex-hook.ts
126
124
  import { basename } from "path";
@@ -736,7 +734,7 @@ var decidePreToolUse = async (input) => {
736
734
  };
737
735
  var repairCodexHoldsQuietly = async () => {
738
736
  try {
739
- const { repairCodexHolds } = await import("../reapply-HQ264ZTR.js");
737
+ const { repairCodexHolds } = await import("../reapply-STSGYPF2.js");
740
738
  repairCodexHolds();
741
739
  } catch {
742
740
  return;
@@ -1,9 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  reportEvent
4
- } from "../chunk-64WARXGV.js";
5
- import "../chunk-A76GNRIK.js";
6
- import "../chunk-OPR2BPD4.js";
4
+ } from "../chunk-WTT24AUA.js";
5
+ import "../chunk-INBTKFT6.js";
7
6
  import {
8
7
  askUser,
9
8
  isDecisionStopped,
@@ -11,18 +10,18 @@ import {
11
10
  } from "../chunk-LGXUGYUH.js";
12
11
  import {
13
12
  getMachineId
14
- } from "../chunk-562UJ2DA.js";
15
- import "../chunk-JBJBVERL.js";
13
+ } from "../chunk-J7PJALS2.js";
14
+ import "../chunk-EWQZISYV.js";
16
15
  import "../chunk-EYRGBYZG.js";
17
16
  import "../chunk-SAF6HGAA.js";
18
17
  import "../chunk-7QLSKOSU.js";
19
18
  import "../chunk-KZERVKTD.js";
20
- import "../chunk-GCD3SQSV.js";
19
+ import "../chunk-E3WQMDCE.js";
21
20
  import "../chunk-4LL6LG5X.js";
22
21
  import {
23
22
  getApiKey
24
23
  } from "../chunk-2UMNXADU.js";
25
- import "../chunk-OUAE3GKO.js";
24
+ import "../chunk-VQYARC2K.js";
26
25
 
27
26
  // bin/pushary-codex.ts
28
27
  import { basename } from "path";
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  printKeyCheck
4
- } from "../chunk-6C6MS57P.js";
4
+ } from "../chunk-76ZCJZBK.js";
5
5
  import {
6
6
  connectDevice,
7
7
  connectExistingApp,
8
8
  printConnectInstructions
9
- } from "../chunk-4C4XFAGJ.js";
9
+ } from "../chunk-PHJOSAXW.js";
10
10
  import "../chunk-3EGEA4KH.js";
11
11
  import {
12
12
  checkApiKey
13
- } from "../chunk-3RVCQDC4.js";
13
+ } from "../chunk-LUYYB6V2.js";
14
14
  import "../chunk-QCGNGEGE.js";
15
15
  import {
16
16
  createIo
@@ -25,7 +25,7 @@ import {
25
25
  import "../chunk-DINDL2CF.js";
26
26
  import {
27
27
  readKeySource
28
- } from "../chunk-4PBCNVI3.js";
28
+ } from "../chunk-UP7NZXJU.js";
29
29
  import "../chunk-EYRGBYZG.js";
30
30
  import "../chunk-SAF6HGAA.js";
31
31
  import {
@@ -34,10 +34,10 @@ import {
34
34
  import {
35
35
  EXIT
36
36
  } from "../chunk-KZERVKTD.js";
37
- import "../chunk-GCD3SQSV.js";
37
+ import "../chunk-E3WQMDCE.js";
38
38
  import "../chunk-4LL6LG5X.js";
39
39
  import "../chunk-2UMNXADU.js";
40
- import "../chunk-OUAE3GKO.js";
40
+ import "../chunk-VQYARC2K.js";
41
41
 
42
42
  // bin/pushary-connect.ts
43
43
  exitOnHelpFlag("connect");
@@ -2,12 +2,12 @@
2
2
  import {
3
3
  coworkOutput,
4
4
  parseCoworkOptions
5
- } from "../chunk-CP34FI4B.js";
5
+ } from "../chunk-RZTH4MIY.js";
6
6
  import {
7
7
  canOpenBrowser,
8
8
  openInBrowser
9
9
  } from "../chunk-PUZZELE6.js";
10
- import "../chunk-LBNAGGLV.js";
10
+ import "../chunk-OYYQHJAO.js";
11
11
  import {
12
12
  exitOnHelpFlag
13
13
  } from "../chunk-GOQHN2UH.js";
@@ -22,7 +22,7 @@ import {
22
22
  } from "../chunk-KZERVKTD.js";
23
23
  import {
24
24
  CLAUDE_CONNECTOR_GUIDE
25
- } from "../chunk-OUAE3GKO.js";
25
+ } from "../chunk-VQYARC2K.js";
26
26
 
27
27
  // bin/pushary-cowork.ts
28
28
  exitOnHelpFlag("cowork");
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  inspectConfiguredManagedProviders
4
- } from "../chunk-LWKPMSBB.js";
5
- import "../chunk-K4XFCEVI.js";
4
+ } from "../chunk-EZ3GX3NS.js";
5
+ import "../chunk-IPDBFJ2M.js";
6
6
  import {
7
7
  HEARTBEAT_INTERVAL_MS,
8
8
  sendHeartbeat
9
- } from "../chunk-JL33EDN7.js";
10
- import "../chunk-QS55LDX4.js";
9
+ } from "../chunk-QACXZYDA.js";
10
+ import "../chunk-6T4OINZB.js";
11
11
  import {
12
12
  detectProviderLiveCapabilities,
13
13
  hasSpawnProvider,
14
14
  resolveControlPolicy
15
- } from "../chunk-WGV3VY7O.js";
15
+ } from "../chunk-MZUXTN7X.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-6IFUXNFX.js";
23
+ } from "../chunk-ISELLVBP.js";
24
24
  import {
25
25
  startRegisteredTranscripts
26
- } from "../chunk-NSFNEDCT.js";
26
+ } from "../chunk-PWIMJP4U.js";
27
27
  import "../chunk-YKLCWWEI.js";
28
- import "../chunk-RALVI7OF.js";
29
- import "../chunk-LBNAGGLV.js";
30
- import "../chunk-IRLTW6KF.js";
31
- import "../chunk-JXELRCU5.js";
28
+ import "../chunk-DZYIAMKR.js";
29
+ import "../chunk-OYYQHJAO.js";
30
+ import "../chunk-SLEWDZOA.js";
31
+ import "../chunk-AH5OO2YZ.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-CRFLU455.js";
49
- import "../chunk-PD6JY33P.js";
50
- import "../chunk-EXHXR2X5.js";
51
- import "../chunk-XPPXOKIG.js";
48
+ } from "../chunk-6JUCFMSF.js";
49
+ import "../chunk-YM4G6CFN.js";
50
+ import "../chunk-SA6UB3GD.js";
51
+ import "../chunk-BBUZD7MU.js";
52
52
  import "../chunk-EQRS3SGM.js";
53
- import "../chunk-ID5FDKDZ.js";
53
+ import "../chunk-2MOQUNFL.js";
54
54
  import {
55
55
  spawnClaude
56
56
  } from "../chunk-XHKBHWLX.js";
57
- import "../chunk-OPR2BPD4.js";
57
+ import "../chunk-INBTKFT6.js";
58
58
  import {
59
59
  getMachineId
60
- } from "../chunk-562UJ2DA.js";
60
+ } from "../chunk-J7PJALS2.js";
61
61
  import {
62
62
  resolveBinary
63
- } from "../chunk-JBJBVERL.js";
63
+ } from "../chunk-EWQZISYV.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-4PBCNVI3.js";
75
+ } from "../chunk-UP7NZXJU.js";
76
76
  import "../chunk-7QLSKOSU.js";
77
77
  import {
78
78
  EXIT
79
79
  } from "../chunk-KZERVKTD.js";
80
- import "../chunk-GCD3SQSV.js";
80
+ import "../chunk-E3WQMDCE.js";
81
81
  import "../chunk-4LL6LG5X.js";
82
82
  import {
83
83
  getApiKey,
84
84
  getBaseUrl
85
85
  } from "../chunk-2UMNXADU.js";
86
- import "../chunk-OUAE3GKO.js";
86
+ import "../chunk-VQYARC2K.js";
87
87
 
88
88
  // src/spawn-daemon.ts
89
89
  import { execFileSync, spawn } from "child_process";
@@ -8,17 +8,28 @@ import {
8
8
  openCodePluginDir,
9
9
  openCodePluginFile,
10
10
  removeOpenCodeMcpServer
11
- } from "../chunk-HB2KB7QL.js";
11
+ } from "../chunk-S2BNTXP6.js";
12
+ import {
13
+ compatibleConfigFile,
14
+ compatibleMcpFile,
15
+ compatiblePermissionRuleFile,
16
+ removeCompatibleHooks,
17
+ removeCompatibleMcpServer
18
+ } from "../chunk-SM54HHVY.js";
12
19
  import {
13
20
  isClaudeMcpSnapshot,
14
21
  removeClaudeMcpServers,
15
22
  removePusharySettings,
23
+ removePusharyToolPermissions,
16
24
  restoreClaudeMcpServer
17
- } from "../chunk-QS55LDX4.js";
25
+ } from "../chunk-6T4OINZB.js";
18
26
  import {
19
27
  removeGeminiSettings
20
- } from "../chunk-PD6JY33P.js";
21
- import "../chunk-OPR2BPD4.js";
28
+ } from "../chunk-YM4G6CFN.js";
29
+ import "../chunk-WTT24AUA.js";
30
+ import "../chunk-INBTKFT6.js";
31
+ import "../chunk-LGXUGYUH.js";
32
+ import "../chunk-J7PJALS2.js";
22
33
  import {
23
34
  claudeJson,
24
35
  claudeMcpReceipt,
@@ -32,16 +43,23 @@ import {
32
43
  geminiSettings,
33
44
  removeCodexHooks,
34
45
  removeCodexSettings
35
- } from "../chunk-JBJBVERL.js";
46
+ } from "../chunk-EWQZISYV.js";
36
47
  import {
37
48
  exitOnHelpFlag
38
49
  } from "../chunk-GOQHN2UH.js";
39
50
  import "../chunk-LZQVAEWP.js";
40
51
  import "../chunk-DINDL2CF.js";
52
+ import "../chunk-EYRGBYZG.js";
53
+ import "../chunk-SAF6HGAA.js";
54
+ import "../chunk-7QLSKOSU.js";
41
55
  import "../chunk-KZERVKTD.js";
56
+ import "../chunk-E3WQMDCE.js";
57
+ import "../chunk-4LL6LG5X.js";
58
+ import "../chunk-2UMNXADU.js";
42
59
  import {
43
- DISCONNECTABLE_AGENTS
44
- } from "../chunk-OUAE3GKO.js";
60
+ DISCONNECTABLE_AGENTS,
61
+ hookCompatibleProfileBySource
62
+ } from "../chunk-VQYARC2K.js";
45
63
 
46
64
  // bin/pushary-disconnect.ts
47
65
  import { readdirSync, readFileSync, rmSync, writeFileSync } from "fs";
@@ -103,8 +121,31 @@ var disconnectPlan = (agent) => {
103
121
  // that is otherwise the person's own.
104
122
  case "opencode":
105
123
  return [{ path: openCodeConfigFile(), format: "json", remove: removeOpenCodeMcpServer }];
124
+ case "qwen":
125
+ case "codebuddy":
126
+ case "qoder":
127
+ case "droid":
128
+ case "devin":
129
+ return compatibleDisconnectPlan(agent);
106
130
  }
107
131
  };
132
+ var compatibleDisconnectPlan = (source) => {
133
+ const profile = hookCompatibleProfileBySource(source);
134
+ if (!profile) return [];
135
+ const removers = /* @__PURE__ */ new Map();
136
+ const add = (path, remove) => {
137
+ if (!path) return;
138
+ removers.set(path, [...removers.get(path) ?? [], remove]);
139
+ };
140
+ add(compatibleConfigFile(profile), (config) => removeCompatibleHooks(config, profile));
141
+ add(compatibleMcpFile(profile), (config) => removeCompatibleMcpServer(config, profile));
142
+ add(compatiblePermissionRuleFile(profile), removePusharyToolPermissions);
143
+ return [...removers].map(([path, edits]) => ({
144
+ path,
145
+ format: "json",
146
+ remove: (config) => edits.reduce((changed, edit) => edit(config) || changed, false)
147
+ }));
148
+ };
108
149
  var disconnectRemovals = (agent) => {
109
150
  if (agent !== "opencode") return [];
110
151
  return [