pushary 1.9.62 → 1.9.64

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 (130) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +2 -2
  3. package/dist/{api-7HLZRIUV.js → api-HDLTZTVR.js} +10 -11
  4. package/dist/bin/pushary-bell-hook.js +27 -30
  5. package/dist/bin/pushary-bell.js +10 -11
  6. package/dist/bin/pushary-claude.js +29 -32
  7. package/dist/bin/pushary-clean.js +63 -42
  8. package/dist/bin/pushary-codex-bridge.js +22 -24
  9. package/dist/bin/pushary-codex-hook.js +33 -36
  10. package/dist/bin/pushary-codex-session.js +8 -8
  11. package/dist/bin/pushary-codex.js +13 -15
  12. package/dist/bin/pushary-connect.js +26 -29
  13. package/dist/bin/pushary-cowork.js +5 -5
  14. package/dist/bin/pushary-daemon.js +39 -41
  15. package/dist/bin/pushary-disconnect.js +60 -40
  16. package/dist/bin/pushary-doctor.js +89 -46
  17. package/dist/bin/pushary-elicitation-hook.js +28 -31
  18. package/dist/bin/pushary-gemini-bridge.js +16 -18
  19. package/dist/bin/pushary-gemini-hook.js +30 -33
  20. package/dist/bin/pushary-hook.js +31 -34
  21. package/dist/bin/pushary-login.js +27 -16
  22. package/dist/bin/pushary-logout.js +26 -29
  23. package/dist/bin/pushary-mcp.js +11 -12
  24. package/dist/bin/pushary-mode.js +14 -15
  25. package/dist/bin/pushary-notification-hook.js +26 -29
  26. package/dist/bin/pushary-opencode-hook.js +29 -32
  27. package/dist/bin/pushary-permission-denied-hook.js +31 -34
  28. package/dist/bin/pushary-permission-hook.js +30 -33
  29. package/dist/bin/pushary-post-hook.js +26 -29
  30. package/dist/bin/pushary-prompt-hook.js +26 -29
  31. package/dist/bin/pushary-session-end-hook.js +28 -31
  32. package/dist/bin/pushary-session-start-hook.js +35 -37
  33. package/dist/bin/pushary-setup.js +361 -4412
  34. package/dist/bin/pushary-stats.js +5 -5
  35. package/dist/bin/pushary-status.js +32 -35
  36. package/dist/bin/pushary-stop-hook.js +26 -29
  37. package/dist/bin/pushary-stopfailure-hook.js +26 -29
  38. package/dist/bin/pushary-suggestions.js +14 -15
  39. package/dist/bin/pushary-transcript-register.js +18 -21
  40. package/dist/bin/pushary-transcripts.js +63 -11
  41. package/dist/bin/pushary-upgrade.js +41 -43
  42. package/dist/bin/pushary-wait.js +14 -15
  43. package/dist/bin/pushary.js +7 -8
  44. package/dist/{chunk-SJCPIYWJ.js → chunk-2CEVEMJE.js} +3 -3
  45. package/dist/{chunk-3YGUWPNZ.js → chunk-2EY4HGLG.js} +3 -3
  46. package/dist/{chunk-ESXGCZDA.js → chunk-2KID4FK4.js} +4 -4
  47. package/dist/{chunk-EO6CL4PD.js → chunk-2PKHGHMA.js} +2 -2
  48. package/dist/{chunk-PSCXEH42.js → chunk-2VADJ6JH.js} +2 -2
  49. package/dist/{chunk-GV43RXR2.js → chunk-2YXBCZ3Z.js} +1 -1
  50. package/dist/{chunk-7GU4PXE5.js → chunk-2Z7I7DHT.js} +1 -1
  51. package/dist/{chunk-4K6YZPZ3.js → chunk-3KXBRSL3.js} +1 -1
  52. package/dist/{chunk-YQK72JGV.js → chunk-42PD2MQH.js} +5 -5
  53. package/dist/{chunk-EUNSJKJJ.js → chunk-57PU5OBL.js} +21 -14
  54. package/dist/{chunk-5R23J52J.js → chunk-5NP3OJ5P.js} +7 -9
  55. package/dist/{chunk-UWCPY4RY.js → chunk-5TNGBDIE.js} +2 -2
  56. package/dist/{chunk-ZEDGKCCM.js → chunk-5TUDGSDC.js} +1 -1
  57. package/dist/{chunk-M7MEVILL.js → chunk-66FRMK7V.js} +4 -4
  58. package/dist/{chunk-3LBB7GVF.js → chunk-6HPLEGUP.js} +4 -4
  59. package/dist/{chunk-LCNN7UOE.js → chunk-6QPDBD7Q.js} +3 -57
  60. package/dist/{chunk-AFV3FQNG.js → chunk-7UBDBJTG.js} +4 -4
  61. package/dist/{chunk-RFCEVROB.js → chunk-A5KQXZR7.js} +3 -3
  62. package/dist/{chunk-G3ZDCYMU.js → chunk-ADRPW7KU.js} +2 -2
  63. package/dist/{chunk-OZRT64BB.js → chunk-AN7C3CHH.js} +1 -1
  64. package/dist/{chunk-6JAWNRDR.js → chunk-AQAPPSDV.js} +3 -3
  65. package/dist/{chunk-FG5HMJ7C.js → chunk-BAGBCSXA.js} +4 -2
  66. package/dist/{chunk-W3CBFLIX.js → chunk-BLAIETMP.js} +18 -4
  67. package/dist/{chunk-CFIQ3252.js → chunk-BSZIPIFA.js} +128 -26
  68. package/dist/{chunk-7EHZXZB2.js → chunk-CCNH4PJ2.js} +12 -12
  69. package/dist/{chunk-NZLQ6GMX.js → chunk-CJADXAJU.js} +9 -9
  70. package/dist/{chunk-TMHE5CVX.js → chunk-DCMRNIDM.js} +4 -4
  71. package/dist/{chunk-QW3FRUFB.js → chunk-DVYVGBPB.js} +1 -1
  72. package/dist/{chunk-RSNN2TPE.js → chunk-E23RKH3T.js} +9 -9
  73. package/dist/{chunk-ZJFJUAHS.js → chunk-E2LB6JNV.js} +6 -6
  74. package/dist/{chunk-HSRNWCXJ.js → chunk-EEM65CGJ.js} +3 -3
  75. package/dist/chunk-H4BKC2GN.js +1201 -0
  76. package/dist/{chunk-7NXB7OVX.js → chunk-HVOQUPSO.js} +1 -1
  77. package/dist/{chunk-R3CLBNST.js → chunk-IZTDX2MX.js} +3 -3
  78. package/dist/{chunk-RU37NSZH.js → chunk-JTOBQUIL.js} +3 -3
  79. package/dist/{chunk-W6MYFAOK.js → chunk-JX3DHGZX.js} +44 -32
  80. package/dist/{chunk-7NJ4TDUH.js → chunk-KA7JIMTG.js} +6 -6
  81. package/dist/chunk-KEPESIIR.js +4117 -0
  82. package/dist/{chunk-EA6574W2.js → chunk-KX3RMF6T.js} +12 -6
  83. package/dist/{chunk-BIUSODLS.js → chunk-LA7CKRZN.js} +2 -2
  84. package/dist/{chunk-A4CZPUQ6.js → chunk-LMC5UPL7.js} +1 -1
  85. package/dist/{chunk-EVZDYG7L.js → chunk-LV6DX4P6.js} +2 -2
  86. package/dist/{chunk-LWR5VKNC.js → chunk-MIPJ2VXP.js} +12 -14
  87. package/dist/{chunk-557ZE5EX.js → chunk-ML2Q6WWE.js} +37 -214
  88. package/dist/{chunk-FXECTHAG.js → chunk-MNKIR2ZB.js} +37 -4
  89. package/dist/{chunk-LILS32LF.js → chunk-MPPTIZ2G.js} +212 -254
  90. package/dist/{chunk-VUFHYMSP.js → chunk-MXPOLQZH.js} +1 -1
  91. package/dist/{chunk-MYEALNW6.js → chunk-NOH3EJFH.js} +1 -1
  92. package/dist/{chunk-GFAG72LR.js → chunk-NUEPJ5W6.js} +7 -3
  93. package/dist/chunk-NYV45Q25.js +111 -0
  94. package/dist/{chunk-NAZRRXZM.js → chunk-O7PCNYEY.js} +2 -2
  95. package/dist/{chunk-7E2ZN7XA.js → chunk-OQKSF5ST.js} +3 -5
  96. package/dist/{chunk-VF3IL56Q.js → chunk-PLMX3IHG.js} +3 -3
  97. package/dist/{chunk-F35YILEN.js → chunk-PMLQRB3D.js} +1 -1
  98. package/dist/{chunk-SJJYXMJP.js → chunk-Q6ID23SU.js} +6 -6
  99. package/dist/{chunk-SDOWT67G.js → chunk-QECRQWLV.js} +5 -5
  100. package/dist/{chunk-Q4WTIKM6.js → chunk-QNATBOUH.js} +3 -3
  101. package/dist/{chunk-QIPW7OVB.js → chunk-QPPBH5NY.js} +5 -5
  102. package/dist/{chunk-7ETELRQX.js → chunk-QSW3HAKI.js} +16 -5
  103. package/dist/{chunk-FVERRWDP.js → chunk-RY4EPMZX.js} +2 -2
  104. package/dist/{chunk-MURJ4WAL.js → chunk-SROWUG5W.js} +1 -1
  105. package/dist/{chunk-UUAVYIWJ.js → chunk-TJUJAK5L.js} +4 -2
  106. package/dist/{chunk-3IFCXMC6.js → chunk-TR3GP5MH.js} +1 -1
  107. package/dist/{chunk-FX7KDF47.js → chunk-VHKK3US3.js} +3 -3
  108. package/dist/{chunk-6HIYOY6I.js → chunk-VNRWQCGU.js} +6 -6
  109. package/dist/{chunk-67Q3Q5IO.js → chunk-XF3AWNMO.js} +6 -6
  110. package/dist/{chunk-44FNEAXK.js → chunk-XJIIU36L.js} +1 -1
  111. package/dist/{chunk-DFKEJARZ.js → chunk-Y64JGYTB.js} +1 -1
  112. package/dist/{chunk-FYS27SUS.js → chunk-YUDZCJYC.js} +10 -10
  113. package/dist/{codex-app-cards-switch-IIL7IPP6.js → codex-app-cards-switch-JQ6356VX.js} +11 -12
  114. package/dist/{codex-desktop-launch-XCLMYVBD.js → codex-desktop-launch-YUB2LOAG.js} +1 -1
  115. package/dist/{codex-session-launch-UMVALJ3A.js → codex-session-launch-UKMAORXS.js} +19 -21
  116. package/dist/{config-5N3GUJD5.js → config-YY54G3CC.js} +3 -3
  117. package/dist/{global-upgrade-5F4CSXED.js → global-upgrade-Y4USGPS2.js} +10 -12
  118. package/dist/{identity-7ULYW4RL.js → identity-W5CYL5RC.js} +4 -5
  119. package/dist/{live-capabilities-QTSFXA6T.js → live-capabilities-JRNNA5EP.js} +5 -7
  120. package/dist/{paths-HEMK2ALW.js → paths-4MEBINV3.js} +7 -3
  121. package/dist/reapply-ZN7C3CB3.js +63 -0
  122. package/dist/src/index.js +20 -23
  123. package/dist/{upgrade-lock-IAZC5644.js → upgrade-lock-QAWUV2DO.js} +4 -5
  124. package/dist/{usage-NEFDYSRT.js → usage-43C2DHDU.js} +3 -3
  125. package/package.json +1 -1
  126. package/dist/chunk-6ICPEJY5.js +0 -20
  127. package/dist/chunk-6YSEOXP5.js +0 -615
  128. package/dist/chunk-LL2KHEJH.js +0 -41
  129. package/dist/chunk-QENTGE75.js +0 -86
  130. package/dist/reapply-AMFKVYZV.js +0 -63
@@ -2,17 +2,18 @@
2
2
  import {
3
3
  declinedAgentsFile,
4
4
  recordDeclinedAgent
5
- } from "../chunk-6JAWNRDR.js";
5
+ } from "../chunk-AQAPPSDV.js";
6
6
  import {
7
7
  isCursorPluginLeftover,
8
8
  isPusharyCursorPluginManifest,
9
9
  releaseSoleGate
10
- } from "../chunk-3LBB7GVF.js";
10
+ } from "../chunk-6HPLEGUP.js";
11
11
  import {
12
12
  planFxRemoval,
13
- removeInstructionBlock
14
- } from "../chunk-LILS32LF.js";
15
- import "../chunk-EO6CL4PD.js";
13
+ removeClineServer
14
+ } from "../chunk-MPPTIZ2G.js";
15
+ import "../chunk-NYV45Q25.js";
16
+ import "../chunk-2PKHGHMA.js";
16
17
  import {
17
18
  OPENCODE_PLUGIN_SIBLING,
18
19
  OPENCODE_PLUGIN_SIBLING_CONTENTS,
@@ -24,57 +25,52 @@ import {
24
25
  openCodePluginDir,
25
26
  openCodePluginFile,
26
27
  removeOpenCodeMcpServer
27
- } from "../chunk-6HIYOY6I.js";
28
+ } from "../chunk-VNRWQCGU.js";
28
29
  import {
29
30
  exitOnHelpFlag
30
- } from "../chunk-OZRT64BB.js";
31
+ } from "../chunk-AN7C3CHH.js";
31
32
  import {
32
33
  compatibleConfigFile,
33
34
  compatibleDocuments,
34
35
  compatibleInstructionsFile,
35
36
  compatibleMcpFile,
36
37
  compatiblePermissionRuleFile,
37
- isClaudeMcpSnapshot,
38
38
  isEmptiedPusharyOwnedDocument,
39
- removeClaudeMcpServers,
40
39
  removeCompatibleHooks,
41
- removeCompatibleMcpServer,
42
- removePusharySettings,
43
- removePusharyToolPermissions,
44
- restoreClaudeMcpServer
45
- } from "../chunk-557ZE5EX.js";
46
- import "../chunk-7NJ4TDUH.js";
40
+ removeCompatibleMcpServer
41
+ } from "../chunk-ML2Q6WWE.js";
42
+ import "../chunk-KA7JIMTG.js";
47
43
  import {
48
44
  removeGeminiSettings
49
- } from "../chunk-LCNN7UOE.js";
50
- import "../chunk-MURJ4WAL.js";
51
- import "../chunk-F35YILEN.js";
45
+ } from "../chunk-6QPDBD7Q.js";
46
+ import "../chunk-SROWUG5W.js";
47
+ import "../chunk-PMLQRB3D.js";
52
48
  import {
53
49
  parseFlags
54
50
  } from "../chunk-NMUI3ZWG.js";
55
- import "../chunk-6ICPEJY5.js";
56
- import "../chunk-W3CBFLIX.js";
57
- import "../chunk-LWR5VKNC.js";
58
- import "../chunk-LL2KHEJH.js";
59
- import "../chunk-4K6YZPZ3.js";
60
- import "../chunk-RSNN2TPE.js";
61
- import "../chunk-ESXGCZDA.js";
51
+ import "../chunk-BLAIETMP.js";
52
+ import "../chunk-MIPJ2VXP.js";
53
+ import "../chunk-3KXBRSL3.js";
54
+ import "../chunk-E23RKH3T.js";
62
55
  import "../chunk-POFBE6ZY.js";
63
- import "../chunk-Q4WTIKM6.js";
64
- import "../chunk-HSRNWCXJ.js";
65
- import "../chunk-G3ZDCYMU.js";
56
+ import "../chunk-2KID4FK4.js";
57
+ import "../chunk-QNATBOUH.js";
58
+ import "../chunk-EEM65CGJ.js";
59
+ import "../chunk-ADRPW7KU.js";
66
60
  import {
67
61
  UsageError
68
62
  } from "../chunk-PPY5N2E6.js";
69
63
  import {
70
64
  EXIT
71
65
  } from "../chunk-KZERVKTD.js";
72
- import "../chunk-PSCXEH42.js";
66
+ import "../chunk-2VADJ6JH.js";
73
67
  import {
74
68
  claudeJson,
75
69
  claudeMcpReceipt,
76
70
  claudeSettings,
77
71
  claudeSettingsLocal,
72
+ clineMcpSettings,
73
+ clineRules,
78
74
  codexAgentsMd,
79
75
  codexConfigToml,
80
76
  codexHookPositions,
@@ -89,24 +85,29 @@ import {
89
85
  fxSettings,
90
86
  geminiMd,
91
87
  geminiSettings,
88
+ isClaudeMcpSnapshot,
89
+ removeClaudeMcpServers,
92
90
  removeCodexHooks,
93
- removeCodexSettings
94
- } from "../chunk-6YSEOXP5.js";
95
- import "../chunk-CFIQ3252.js";
91
+ removeCodexSettings,
92
+ removeInstructionBlock,
93
+ removePusharySettings,
94
+ removePusharyToolPermissions,
95
+ restoreClaudeMcpServer
96
+ } from "../chunk-H4BKC2GN.js";
96
97
  import {
97
98
  readFileOrMissing
98
- } from "../chunk-QENTGE75.js";
99
- import "../chunk-DFKEJARZ.js";
99
+ } from "../chunk-BSZIPIFA.js";
100
+ import "../chunk-Y64JGYTB.js";
100
101
  import {
101
102
  isInvocationOf
102
- } from "../chunk-FG5HMJ7C.js";
103
+ } from "../chunk-BAGBCSXA.js";
103
104
  import "../chunk-QTOLNRET.js";
104
105
  import {
105
106
  DISCONNECTABLE_AGENTS,
106
107
  DISCONNECT_AGENT_IDS,
107
108
  hookCompatibleProfileBySource,
108
109
  normalizeAgentId
109
- } from "../chunk-FXECTHAG.js";
110
+ } from "../chunk-MNKIR2ZB.js";
110
111
  import "../chunk-MLKGABMK.js";
111
112
 
112
113
  // bin/pushary-disconnect.ts
@@ -377,11 +378,21 @@ var disconnectFx = (io) => {
377
378
  if (io.removeInstructionBlock(fxAgentsMd())) changed.push(fxAgentsMd());
378
379
  return { changed, kept };
379
380
  };
381
+ var disconnectCline = (io) => {
382
+ const changed = [];
383
+ const failed = [];
384
+ const removal = removeClineServer(clineMcpSettings());
385
+ if (removal.kind === "write") changed.push(removal.path);
386
+ if (removal.kind === "kept" || removal.kind === "failed") failed.push(`Cline MCP: ${removal.detail}`);
387
+ if (io.removeInstructionBlock(clineRules())) changed.push(clineRules());
388
+ return { changed, failed };
389
+ };
380
390
 
381
391
  // bin/pushary-disconnect.ts
382
392
  exitOnHelpFlag("disconnect");
383
393
  var MAC_APP_LEAVES_IT_OFF = (agent) => `The Pushary Mac app will leave ${agent} off until you connect it again, from the app or with pushary setup.`;
384
394
  var MAC_APP_MAY_RESTORE_IT = (agent, file) => `Could not write ${file}, so a running Pushary Mac app may connect ${agent} again. Turn it off in the app's Settings too.`;
395
+ var AGENTS_THE_MAC_APP_NEVER_CONNECTS = /* @__PURE__ */ new Set(["cline"]);
385
396
  var rest = process.argv.slice(2);
386
397
  var typed;
387
398
  try {
@@ -394,16 +405,22 @@ try {
394
405
  process.exit(EXIT.USAGE);
395
406
  }
396
407
  var requested = typed === void 0 ? null : normalizeAgentId(typed, DISCONNECT_AGENT_IDS);
397
- var printResult = (agent, changed, kept) => {
398
- if (changed.length === 0) console.log(`${agent} was not connected.`);
399
- else {
408
+ var printResult = (agent, changed, kept, failed = []) => {
409
+ if (changed.length > 0) {
400
410
  console.log(`Disconnected ${agent}:`);
401
411
  for (const path of changed) console.log(` ${path}`);
412
+ } else if (failed.length === 0) {
413
+ console.log(`${agent} was not connected.`);
402
414
  }
403
415
  if (kept.length > 0) {
404
416
  console.log("Left as it is:");
405
417
  for (const line of kept) console.log(` ${line}`);
406
418
  }
419
+ if (failed.length > 0) {
420
+ console.error(`Could not finish disconnecting ${agent}:`);
421
+ for (const line of failed) console.error(` ${line}`);
422
+ process.exitCode = EXIT.FAILED;
423
+ }
407
424
  };
408
425
  if (requested === null) {
409
426
  if (typed !== void 0) console.error(`Unknown agent: ${typed}`);
@@ -430,6 +447,9 @@ if (isDisconnectableAgent(requested)) {
430
447
  removeInstructionBlock
431
448
  });
432
449
  printResult(requested, result.changed, result.kept);
450
+ } else if (requested === "cline") {
451
+ const result = disconnectCline({ removeInstructionBlock });
452
+ printResult(requested, result.changed, [], result.failed);
433
453
  } else {
434
454
  const result = disconnectFx({
435
455
  write: (path, contents) => writeFileSync(path, contents, "utf-8"),
@@ -438,6 +458,6 @@ if (isDisconnectableAgent(requested)) {
438
458
  });
439
459
  printResult(requested, result.changed, result.kept);
440
460
  }
441
- if (decline !== "unchanged" && macAppBridgeAvailable()) {
461
+ if (decline !== "unchanged" && !AGENTS_THE_MAC_APP_NEVER_CONNECTS.has(requested) && macAppBridgeAvailable()) {
442
462
  console.log(decline === "changed" ? MAC_APP_LEAVES_IT_OFF(requested) : MAC_APP_MAY_RESTORE_IT(requested, declinedAgentsFile()));
443
463
  }
@@ -3,20 +3,21 @@ import {
3
3
  readServiceExecPath,
4
4
  readSetupFailure,
5
5
  versionManagerOf
6
- } from "../chunk-3YGUWPNZ.js";
6
+ } from "../chunk-2EY4HGLG.js";
7
7
  import {
8
8
  CODEX_HOOK_REMEDY
9
- } from "../chunk-BIUSODLS.js";
9
+ } from "../chunk-LA7CKRZN.js";
10
10
  import {
11
11
  describeWaitLadder
12
12
  } from "../chunk-CVWG2N3Y.js";
13
13
  import {
14
14
  writeJsonError,
15
15
  writeStdoutFully
16
- } from "../chunk-7GU4PXE5.js";
16
+ } from "../chunk-2Z7I7DHT.js";
17
17
  import {
18
18
  fetchChannels
19
- } from "../chunk-NZLQ6GMX.js";
19
+ } from "../chunk-CJADXAJU.js";
20
+ import "../chunk-3EGEA4KH.js";
20
21
  import {
21
22
  describeAnswerTestPrompt,
22
23
  describeReach,
@@ -25,16 +26,15 @@ import {
25
26
  reachVerdict,
26
27
  roundTripEvidence,
27
28
  verifyRoundTrip
28
- } from "../chunk-RU37NSZH.js";
29
- import "../chunk-3EGEA4KH.js";
29
+ } from "../chunk-JTOBQUIL.js";
30
30
  import {
31
31
  readMachineReadiness,
32
32
  readManagedControlEvidence
33
- } from "../chunk-SDOWT67G.js";
33
+ } from "../chunk-QECRQWLV.js";
34
34
  import {
35
35
  assessCodexHookTrust,
36
36
  readCodexTrustForPusharyHooks
37
- } from "../chunk-EVZDYG7L.js";
37
+ } from "../chunk-LV6DX4P6.js";
38
38
  import {
39
39
  HERMES_PIP_PACKAGE,
40
40
  HERMES_PLUGIN_NAME,
@@ -48,27 +48,29 @@ import {
48
48
  resolveHermesPython,
49
49
  shortenHome,
50
50
  vscodeSettingsTargets
51
- } from "../chunk-EA6574W2.js";
51
+ } from "../chunk-KX3RMF6T.js";
52
52
  import {
53
53
  CONNECTED_THROUGH_MAC_APP,
54
54
  readMacAppConnectionWhenKeyless
55
- } from "../chunk-QIPW7OVB.js";
55
+ } from "../chunk-QPPBH5NY.js";
56
56
  import "../chunk-QCGNGEGE.js";
57
57
  import {
58
58
  SIGNED_OUT_ON_MAC_MESSAGE,
59
59
  activeKeyVerdictOf,
60
60
  describeSignedOutKey,
61
61
  readSignedOutDiagnosis
62
- } from "../chunk-NAZRRXZM.js";
62
+ } from "../chunk-O7PCNYEY.js";
63
63
  import {
64
64
  FX_PROFILE_REFUSALS,
65
65
  FX_PUSHARY_TOOLS_RULE,
66
66
  FX_QUESTION_TOOL,
67
- hasInstructionBlock,
68
- inspectFxInstallation,
67
+ inspectClineInstallation,
68
+ inspectFxInstallation
69
+ } from "../chunk-MPPTIZ2G.js";
70
+ import {
69
71
  retryAgentCommand
70
- } from "../chunk-LILS32LF.js";
71
- import "../chunk-EO6CL4PD.js";
72
+ } from "../chunk-NYV45Q25.js";
73
+ import "../chunk-2PKHGHMA.js";
72
74
  import {
73
75
  OPENCODE_PLUGIN_PLACEHOLDER,
74
76
  cliOwnsAnyAgentHooks,
@@ -76,25 +78,25 @@ import {
76
78
  openCodePluginDir,
77
79
  openCodePluginFile,
78
80
  openCodeWired
79
- } from "../chunk-6HIYOY6I.js";
81
+ } from "../chunk-VNRWQCGU.js";
80
82
  import {
81
83
  createIo
82
84
  } from "../chunk-FO3MDD26.js";
83
85
  import {
84
86
  exitOnHelpFlag
85
- } from "../chunk-OZRT64BB.js";
87
+ } from "../chunk-AN7C3CHH.js";
86
88
  import {
87
89
  describeMissingControlPrerequisite,
88
90
  detectProviderLiveCapabilities,
89
91
  expectedLaunchCapabilities,
90
92
  hasSpawnProvider,
91
93
  resolveControlPolicy
92
- } from "../chunk-TMHE5CVX.js";
93
- import "../chunk-R3CLBNST.js";
94
- import "../chunk-VUFHYMSP.js";
94
+ } from "../chunk-DCMRNIDM.js";
95
+ import "../chunk-IZTDX2MX.js";
96
+ import "../chunk-MXPOLQZH.js";
95
97
  import {
96
98
  readLedgerSummary
97
- } from "../chunk-44FNEAXK.js";
99
+ } from "../chunk-XJIIU36L.js";
98
100
  import {
99
101
  AUTO_UPDATE_DISABLE_ENV,
100
102
  autoUpdateOffReason,
@@ -102,7 +104,7 @@ import {
102
104
  describeAutoUpdateCheck,
103
105
  readAutoUpdateState,
104
106
  takeAutoUpdateAnnouncement
105
- } from "../chunk-VF3IL56Q.js";
107
+ } from "../chunk-PLMX3IHG.js";
106
108
  import {
107
109
  compatibleConfigFile,
108
110
  compatibleInstructionsFile,
@@ -110,7 +112,7 @@ import {
110
112
  hasCompatibleHooks,
111
113
  hasCompatibleMcpServer,
112
114
  missingCompatibleHookEvents
113
- } from "../chunk-557ZE5EX.js";
115
+ } from "../chunk-ML2Q6WWE.js";
114
116
  import {
115
117
  daemonHasRemoteProof,
116
118
  daemonServiceManagerAvailable,
@@ -119,7 +121,7 @@ import {
119
121
  readDaemonNeedsLogin,
120
122
  readDaemonStatus,
121
123
  readInstalledDaemonService
122
- } from "../chunk-5R23J52J.js";
124
+ } from "../chunk-5NP3OJ5P.js";
123
125
  import {
124
126
  claudeOtherHolders,
125
127
  claudeUnprovenHolds,
@@ -140,55 +142,58 @@ import {
140
142
  liveBridgeProbe,
141
143
  pusharyHookExecutable,
142
144
  resolveBridgeStub
143
- } from "../chunk-7NJ4TDUH.js";
145
+ } from "../chunk-KA7JIMTG.js";
144
146
  import {
145
147
  GEMINI_HOOK_BINARY,
146
148
  hasGeminiHooks,
147
149
  missingGeminiHookEvents
148
- } from "../chunk-LCNN7UOE.js";
149
- import "../chunk-MURJ4WAL.js";
150
- import "../chunk-F35YILEN.js";
150
+ } from "../chunk-6QPDBD7Q.js";
151
+ import "../chunk-SROWUG5W.js";
152
+ import "../chunk-PMLQRB3D.js";
151
153
  import {
152
154
  parseFlags
153
155
  } from "../chunk-NMUI3ZWG.js";
154
156
  import "../chunk-XHKBHWLX.js";
155
- import "../chunk-6ICPEJY5.js";
156
157
  import {
157
158
  keyPrefix,
158
159
  readControlMode,
159
160
  readKeySource
160
- } from "../chunk-W3CBFLIX.js";
161
- import "../chunk-LWR5VKNC.js";
162
- import "../chunk-LL2KHEJH.js";
163
- import "../chunk-4K6YZPZ3.js";
164
- import "../chunk-RSNN2TPE.js";
161
+ } from "../chunk-BLAIETMP.js";
162
+ import "../chunk-MIPJ2VXP.js";
163
+ import "../chunk-3KXBRSL3.js";
164
+ import "../chunk-E23RKH3T.js";
165
+ import "../chunk-POFBE6ZY.js";
165
166
  import {
166
167
  callMcpTool,
167
168
  sendMcpRequest
168
- } from "../chunk-ESXGCZDA.js";
169
- import "../chunk-POFBE6ZY.js";
169
+ } from "../chunk-2KID4FK4.js";
170
170
  import {
171
171
  checkApiKey,
172
172
  describeKeyCheck
173
- } from "../chunk-Q4WTIKM6.js";
174
- import "../chunk-HSRNWCXJ.js";
173
+ } from "../chunk-QNATBOUH.js";
174
+ import "../chunk-EEM65CGJ.js";
175
175
  import {
176
176
  getMachineId
177
- } from "../chunk-G3ZDCYMU.js";
177
+ } from "../chunk-ADRPW7KU.js";
178
178
  import {
179
179
  UsageError
180
180
  } from "../chunk-PPY5N2E6.js";
181
181
  import {
182
182
  EXIT
183
183
  } from "../chunk-KZERVKTD.js";
184
- import "../chunk-PSCXEH42.js";
184
+ import "../chunk-2VADJ6JH.js";
185
185
  import {
186
+ CLINE_AUTO_APPROVE_STEP,
187
+ CLINE_LABEL,
188
+ CLINE_SERVER_NAME_TAKEN,
189
+ CLINE_SETTINGS_REFUSALS,
186
190
  CODEX_HOOK_EVENTS,
187
191
  CODEX_REQUIRED_APPROVAL_EVENTS,
188
192
  autoUpdateState,
189
193
  claudeJson,
190
194
  claudeSettings,
191
195
  claudeSkillDir,
196
+ clineMcpSettings,
192
197
  codexAgentsMd,
193
198
  codexConfigToml,
194
199
  codexHookPositions,
@@ -203,25 +208,25 @@ import {
203
208
  geminiMd,
204
209
  geminiSettings,
205
210
  hasCodexHooks,
211
+ hasInstructionBlock,
206
212
  hermesConfig,
207
213
  hermesConfigReceipt,
208
214
  missingCodexHookEvents,
209
215
  pusharyConfigFile,
210
216
  readCodexMcpAuth,
211
217
  vscodePluginDir
212
- } from "../chunk-6YSEOXP5.js";
218
+ } from "../chunk-H4BKC2GN.js";
213
219
  import {
214
220
  fetchLatestPublishedVersion,
215
221
  readGlobalCliInstall,
216
222
  resolvePathBinary
217
- } from "../chunk-CFIQ3252.js";
218
- import "../chunk-QENTGE75.js";
223
+ } from "../chunk-BSZIPIFA.js";
219
224
  import {
220
225
  getBaseUrl
221
- } from "../chunk-DFKEJARZ.js";
226
+ } from "../chunk-Y64JGYTB.js";
222
227
  import {
223
228
  NPX_LATEST_COMMAND
224
- } from "../chunk-FG5HMJ7C.js";
229
+ } from "../chunk-BAGBCSXA.js";
225
230
  import {
226
231
  commandsPackage,
227
232
  getPackageVersion,
@@ -241,7 +246,7 @@ import {
241
246
  hookCompatibleProfile,
242
247
  isHookActivationReport,
243
248
  redactSecretsFromContent
244
- } from "../chunk-FXECTHAG.js";
249
+ } from "../chunk-MNKIR2ZB.js";
245
250
  import "../chunk-MLKGABMK.js";
246
251
 
247
252
  // bin/pushary-doctor.ts
@@ -578,6 +583,43 @@ var reportHermesStatus = (status) => {
578
583
  if (status.questionsRouted) check(true, "Hermes: questions go through Pushary", `clarify is off in ${config}`);
579
584
  else console.log(` ${warn} Hermes: questions can stop in the terminal ${dim(`(clarify is not in agent.disabled_toolsets in ${config})`)}`);
580
585
  };
586
+ var reportClineKey = (cline, apiKey) => {
587
+ if (cline.runsCommand) {
588
+ console.log(` ${warn} Cline: the pushary server runs through a local command ${dim(`(${retryAgentCommand("cline")} replaces it with a direct connection that carries your key)`)}`);
589
+ } else if (!cline.hasKey && cline.signedIn) {
590
+ check(true, "Cline: signed in through Cline", "OAuth tokens on the pushary server");
591
+ } else if (!cline.hasKey) {
592
+ console.log(` ${warn} Cline: no API key on the pushary server ${dim(`(Cline has to sign in with its Authenticate button; ${retryAgentCommand("cline")} adds your key instead)`)}`);
593
+ } else if (!cline.holdsPusharyKey) {
594
+ console.log(` ${warn} Cline: the pushary server's Authorization header is not a key setup wrote ${dim(`(doctor cannot check a variable or a value you set yourself; ${retryAgentCommand("cline")} writes your key there)`)}`);
595
+ } else if (apiKey && !cline.usesCurrentKey) {
596
+ check(false, "Cline: API key matches active key", `the key in ${clineMcpSettings()} is not the key hooks use (rotated?) \u2014 run pushary upgrade`);
597
+ } else {
598
+ check(true, "Cline: API key linked", "in the pushary server headers");
599
+ }
600
+ };
601
+ var reportCline = (cline, apiKey) => {
602
+ if (cline.configured) {
603
+ checking(CLINE_LABEL);
604
+ check(true, "Cline: Pushary MCP server configured", clineMcpSettings());
605
+ if (cline.switchedOff) {
606
+ console.log(` ${warn} Cline: the pushary server is switched off ${dim(`(turn it on in Cline's MCP Servers, or run ${retryAgentCommand("cline")})`)}`);
607
+ }
608
+ reportClineKey(cline, apiKey);
609
+ if (cline.otherServers.length > 0) {
610
+ console.log(` ${warn} Cline: ${cline.otherServers.map((name) => `"${name}"`).join(", ")} also point at Pushary ${dim("(remove them so Cline does not see the tools twice)")}`);
611
+ }
612
+ console.log(` ${dim(CLINE_AUTO_APPROVE_STEP)}`);
613
+ } else if (cline.nameTakenElsewhere) {
614
+ check(false, "Cline: MCP settings", `${clineMcpSettings()} ${CLINE_SERVER_NAME_TAKEN} \u2014 rename that server in Cline, then run ${retryAgentCommand("cline")}`);
615
+ } else if (cline.read.kind === "refused" && cline.read.mentionsPushary) {
616
+ check(false, "Cline: MCP settings", `${clineMcpSettings()} ${CLINE_SETTINGS_REFUSALS[cline.read.reason]} \u2014 fix it, then run ${retryAgentCommand("cline")}`);
617
+ } else if (cline.read.kind === "unreadable") {
618
+ check(false, "Cline: MCP settings", `${clineMcpSettings()} could not be read \u2014 fix it, then run ${retryAgentCommand("cline")}`);
619
+ } else {
620
+ skipped(CLINE_LABEL, installed("cline") ? "installed, but Pushary is not set up for it" : "not installed");
621
+ }
622
+ };
581
623
  var FX_QUESTION_ROUTING_WARNINGS = {
582
624
  "full-access": "full-access mode ignores permission rules, so fx's terminal question tool stays on; its instructions ask it to use Pushary instead",
583
625
  overridden: `a rule in ${fxSettings()} keeps ${FX_QUESTION_TOOL} on; make "${FX_QUESTION_TOOL}": "deny" the last rule that matches it`
@@ -1249,6 +1291,7 @@ var main = async () => {
1249
1291
  } else {
1250
1292
  skipped("fx", installed("fx") ? "installed, but Pushary is not set up for it" : "not installed");
1251
1293
  }
1294
+ reportCline(inspectClineInstallation(clineMcpSettings(), apiKey), apiKey);
1252
1295
  const hermesPython = resolveHermesPython();
1253
1296
  const hermesStatus = hermesPython ? readHermesStatus(hermesPython) : null;
1254
1297
  const hermesSetupRecorded = existsSync(hermesConfigReceipt());
@@ -1,54 +1,51 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-FYS27SUS.js";
4
+ } from "../chunk-YUDZCJYC.js";
5
5
  import {
6
6
  announceSubscriptionRequired,
7
7
  isDeferAnswer
8
- } from "../chunk-3IFCXMC6.js";
9
- import "../chunk-EUNSJKJJ.js";
10
- import "../chunk-QW3FRUFB.js";
11
- import "../chunk-557ZE5EX.js";
12
- import "../chunk-5R23J52J.js";
13
- import "../chunk-7NJ4TDUH.js";
14
- import "../chunk-LCNN7UOE.js";
15
- import "../chunk-MURJ4WAL.js";
16
- import "../chunk-F35YILEN.js";
8
+ } from "../chunk-TR3GP5MH.js";
9
+ import "../chunk-57PU5OBL.js";
10
+ import "../chunk-DVYVGBPB.js";
11
+ import "../chunk-ML2Q6WWE.js";
12
+ import "../chunk-5NP3OJ5P.js";
13
+ import "../chunk-KA7JIMTG.js";
14
+ import "../chunk-6QPDBD7Q.js";
15
+ import "../chunk-SROWUG5W.js";
16
+ import "../chunk-PMLQRB3D.js";
17
17
  import "../chunk-NMUI3ZWG.js";
18
- import "../chunk-7ETELRQX.js";
19
- import "../chunk-UUAVYIWJ.js";
20
- import "../chunk-ZEDGKCCM.js";
18
+ import "../chunk-QSW3HAKI.js";
19
+ import "../chunk-TJUJAK5L.js";
20
+ import "../chunk-5TUDGSDC.js";
21
21
  import "../chunk-XHKBHWLX.js";
22
- import "../chunk-6ICPEJY5.js";
23
- import "../chunk-W3CBFLIX.js";
24
- import "../chunk-LWR5VKNC.js";
25
- import "../chunk-LL2KHEJH.js";
26
- import "../chunk-4K6YZPZ3.js";
22
+ import "../chunk-BLAIETMP.js";
23
+ import "../chunk-MIPJ2VXP.js";
24
+ import "../chunk-3KXBRSL3.js";
27
25
  import {
28
26
  askUser,
29
27
  isDecisionStopped,
30
28
  isQuestionLimitRefusal,
31
29
  waitForQuestion
32
- } from "../chunk-RSNN2TPE.js";
30
+ } from "../chunk-E23RKH3T.js";
31
+ import "../chunk-POFBE6ZY.js";
33
32
  import {
34
33
  SubscriptionRequiredError
35
- } from "../chunk-ESXGCZDA.js";
36
- import "../chunk-POFBE6ZY.js";
37
- import "../chunk-Q4WTIKM6.js";
38
- import "../chunk-HSRNWCXJ.js";
34
+ } from "../chunk-2KID4FK4.js";
35
+ import "../chunk-QNATBOUH.js";
36
+ import "../chunk-EEM65CGJ.js";
39
37
  import {
40
38
  getMachineId
41
- } from "../chunk-G3ZDCYMU.js";
39
+ } from "../chunk-ADRPW7KU.js";
42
40
  import "../chunk-PPY5N2E6.js";
43
41
  import "../chunk-KZERVKTD.js";
44
- import "../chunk-PSCXEH42.js";
45
- import "../chunk-6YSEOXP5.js";
46
- import "../chunk-CFIQ3252.js";
47
- import "../chunk-QENTGE75.js";
42
+ import "../chunk-2VADJ6JH.js";
43
+ import "../chunk-H4BKC2GN.js";
44
+ import "../chunk-BSZIPIFA.js";
48
45
  import {
49
46
  getApiKey
50
- } from "../chunk-DFKEJARZ.js";
51
- import "../chunk-FG5HMJ7C.js";
47
+ } from "../chunk-Y64JGYTB.js";
48
+ import "../chunk-BAGBCSXA.js";
52
49
  import "../chunk-QTOLNRET.js";
53
50
  import {
54
51
  ELICITATION_ANSWERABLE_MODE,
@@ -60,7 +57,7 @@ import {
60
57
  planElicitationAsk,
61
58
  readElicitationFields,
62
59
  renderElicitationOutput
63
- } from "../chunk-FXECTHAG.js";
60
+ } from "../chunk-MNKIR2ZB.js";
64
61
  import "../chunk-MLKGABMK.js";
65
62
 
66
63
  // bin/pushary-elicitation-hook.ts
@@ -5,43 +5,41 @@ import {
5
5
  postLiveSession,
6
6
  postLiveSessionUntilAccepted,
7
7
  startLiveSessionHeartbeat
8
- } from "../chunk-GFAG72LR.js";
8
+ } from "../chunk-NUEPJ5W6.js";
9
9
  import {
10
10
  resolveProviderBinary
11
- } from "../chunk-TMHE5CVX.js";
12
- import "../chunk-R3CLBNST.js";
11
+ } from "../chunk-DCMRNIDM.js";
12
+ import "../chunk-IZTDX2MX.js";
13
13
  import {
14
14
  SESSION_IDLE_TIMEOUT_MS,
15
15
  describeIdleWindow,
16
16
  idleDeadlinePassed,
17
17
  startProcessOwnership,
18
18
  withSpawnProcessOwnership
19
- } from "../chunk-RFCEVROB.js";
20
- import "../chunk-VUFHYMSP.js";
21
- import "../chunk-7ETELRQX.js";
22
- import "../chunk-UUAVYIWJ.js";
19
+ } from "../chunk-A5KQXZR7.js";
20
+ import "../chunk-MXPOLQZH.js";
21
+ import "../chunk-QSW3HAKI.js";
22
+ import "../chunk-TJUJAK5L.js";
23
23
  import {
24
24
  transcriptsEnabled
25
- } from "../chunk-ZEDGKCCM.js";
25
+ } from "../chunk-5TUDGSDC.js";
26
26
  import {
27
27
  spawnClaude
28
28
  } from "../chunk-XHKBHWLX.js";
29
- import "../chunk-6ICPEJY5.js";
30
- import "../chunk-W3CBFLIX.js";
29
+ import "../chunk-BLAIETMP.js";
31
30
  import {
32
31
  getMachineId
33
- } from "../chunk-G3ZDCYMU.js";
34
- import "../chunk-PSCXEH42.js";
35
- import "../chunk-6YSEOXP5.js";
36
- import "../chunk-CFIQ3252.js";
37
- import "../chunk-QENTGE75.js";
32
+ } from "../chunk-ADRPW7KU.js";
33
+ import "../chunk-2VADJ6JH.js";
34
+ import "../chunk-H4BKC2GN.js";
35
+ import "../chunk-BSZIPIFA.js";
38
36
  import {
39
37
  getApiKey,
40
38
  getBaseUrl
41
- } from "../chunk-DFKEJARZ.js";
42
- import "../chunk-FG5HMJ7C.js";
39
+ } from "../chunk-Y64JGYTB.js";
40
+ import "../chunk-BAGBCSXA.js";
43
41
  import "../chunk-QTOLNRET.js";
44
- import "../chunk-FXECTHAG.js";
42
+ import "../chunk-MNKIR2ZB.js";
45
43
  import "../chunk-MLKGABMK.js";
46
44
 
47
45
  // bin/pushary-gemini-bridge.ts