pushary 1.9.135 → 1.9.137

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 (135) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/{api-WEDLFKUE.js → api-5H25QRNM.js} +11 -11
  3. package/dist/bin/pushary-audit.js +3 -3
  4. package/dist/bin/pushary-bell-hook.js +28 -28
  5. package/dist/bin/pushary-bell.js +10 -10
  6. package/dist/bin/pushary-claude.js +27 -27
  7. package/dist/bin/pushary-clean.js +41 -41
  8. package/dist/bin/pushary-codex-bridge.js +23 -23
  9. package/dist/bin/pushary-codex-hook.js +58 -42
  10. package/dist/bin/pushary-codex-session.js +8 -8
  11. package/dist/bin/pushary-codex.js +16 -16
  12. package/dist/bin/pushary-connect.js +29 -29
  13. package/dist/bin/pushary-cowork.js +5 -5
  14. package/dist/bin/pushary-daemon.js +43 -43
  15. package/dist/bin/pushary-disconnect.js +28 -28
  16. package/dist/bin/pushary-display-hook.js +57 -31
  17. package/dist/bin/pushary-doctor.js +52 -48
  18. package/dist/bin/pushary-elicitation-hook.js +28 -28
  19. package/dist/bin/pushary-gemini-bridge.js +17 -17
  20. package/dist/bin/pushary-gemini-hook.js +32 -32
  21. package/dist/bin/pushary-hook.js +35 -34
  22. package/dist/bin/pushary-login.js +21 -21
  23. package/dist/bin/pushary-logout.js +27 -27
  24. package/dist/bin/pushary-mcp.js +12 -12
  25. package/dist/bin/pushary-mode.js +15 -15
  26. package/dist/bin/pushary-notification-hook.js +27 -27
  27. package/dist/bin/pushary-opencode-hook.js +31 -31
  28. package/dist/bin/pushary-permission-denied-hook.js +35 -34
  29. package/dist/bin/pushary-permission-hook.js +39 -36
  30. package/dist/bin/pushary-post-hook.js +33 -28
  31. package/dist/bin/pushary-prompt-hook.js +27 -27
  32. package/dist/bin/pushary-session-end-hook.js +27 -27
  33. package/dist/bin/pushary-session-start-hook.js +36 -36
  34. package/dist/bin/pushary-setup.js +57 -55
  35. package/dist/bin/pushary-stats.js +5 -5
  36. package/dist/bin/pushary-status.js +33 -33
  37. package/dist/bin/pushary-stop-hook.js +27 -27
  38. package/dist/bin/pushary-stopfailure-hook.js +27 -27
  39. package/dist/bin/pushary-suggestions.js +15 -15
  40. package/dist/bin/pushary-transcript-register.js +17 -17
  41. package/dist/bin/pushary-transcripts.js +25 -25
  42. package/dist/bin/pushary-upgrade.js +41 -41
  43. package/dist/bin/pushary-wait.js +15 -15
  44. package/dist/bin/pushary.js +7 -7
  45. package/dist/{chunk-LIXCHEDJ.js → chunk-2E46RALI.js} +6 -6
  46. package/dist/{chunk-4YBDKFU2.js → chunk-2MVKT7KH.js} +2 -2
  47. package/dist/{chunk-7JXYR4TC.js → chunk-2R4OVJHS.js} +5 -5
  48. package/dist/{chunk-WPPTHRBO.js → chunk-2XDVEBHI.js} +5 -5
  49. package/dist/{chunk-5GQLZ46V.js → chunk-3HXOR6E5.js} +8 -8
  50. package/dist/{chunk-VND6LN6X.js → chunk-3QBI5C6P.js} +2 -2
  51. package/dist/{chunk-7ASHS5VR.js → chunk-43DT3QWZ.js} +18 -5
  52. package/dist/{chunk-AEOITMCS.js → chunk-4T72AHIA.js} +4 -4
  53. package/dist/{chunk-V7KBG7XH.js → chunk-54TZGPZP.js} +3 -3
  54. package/dist/{chunk-WVOMK2HW.js → chunk-5XDFQ6E3.js} +1 -1
  55. package/dist/{chunk-JDAX2HVS.js → chunk-62GD26OE.js} +2 -2
  56. package/dist/{chunk-VCMJLNEP.js → chunk-6SWFS4GU.js} +2 -2
  57. package/dist/{chunk-65ZWYA5L.js → chunk-6WT5OIRM.js} +10 -10
  58. package/dist/{chunk-MYMADZRU.js → chunk-7NCI2DGB.js} +2 -2
  59. package/dist/{chunk-UCGWTMQD.js → chunk-7VKW7OA5.js} +3 -3
  60. package/dist/{chunk-7GEMAKQL.js → chunk-7XD56GXA.js} +5 -5
  61. package/dist/{chunk-UXPRMNH2.js → chunk-A2YJ2FBR.js} +3 -2
  62. package/dist/{chunk-QUMPSMZN.js → chunk-A4YOXS24.js} +3 -3
  63. package/dist/{chunk-MGTMXF3T.js → chunk-A7R43KOX.js} +3 -3
  64. package/dist/chunk-B4UIRMOE.js +31 -0
  65. package/dist/{chunk-KUAS2DGZ.js → chunk-CMAB4KQG.js} +5 -5
  66. package/dist/{chunk-RGRPDJG3.js → chunk-D7AAAD6W.js} +163 -108
  67. package/dist/{chunk-6RSAOA2P.js → chunk-DBIPNY7J.js} +3 -3
  68. package/dist/{chunk-H4226UC7.js → chunk-DL67HX3D.js} +32 -9
  69. package/dist/{chunk-SULQKUPJ.js → chunk-EJHD44ZN.js} +2 -2
  70. package/dist/{chunk-OUMH4UTT.js → chunk-G73ACPR2.js} +2 -2
  71. package/dist/{chunk-ACI4PZ5N.js → chunk-GS5FH3C2.js} +3 -3
  72. package/dist/{chunk-64QLX4ZC.js → chunk-H2RE3IPK.js} +1 -1
  73. package/dist/{chunk-7DWERNHQ.js → chunk-HY4ATVCT.js} +3 -3
  74. package/dist/{chunk-UDSJKRRI.js → chunk-ICCM3DLT.js} +2 -2
  75. package/dist/{chunk-AXQFLLOB.js → chunk-IHAKBLW2.js} +4 -4
  76. package/dist/{chunk-FP6ZVMF2.js → chunk-IKBTG3OT.js} +1 -1
  77. package/dist/{chunk-DMK3U7GG.js → chunk-IRIXOH4U.js} +1 -1
  78. package/dist/{chunk-U5W3MKPU.js → chunk-JZJ5CM6X.js} +5 -5
  79. package/dist/{chunk-4VVDRMVE.js → chunk-K7YJBVR3.js} +1 -1
  80. package/dist/{chunk-GLAGHQPB.js → chunk-KLV2NQVT.js} +4 -4
  81. package/dist/{chunk-FSLV5FIE.js → chunk-KTVMIG32.js} +4 -4
  82. package/dist/{chunk-Q5GPXYDG.js → chunk-KYD3LHFB.js} +1 -1
  83. package/dist/{chunk-XRO6NRBO.js → chunk-L2GADKFL.js} +6 -6
  84. package/dist/{chunk-IOUCIJ56.js → chunk-LAWI6NQK.js} +1 -1
  85. package/dist/{chunk-IABPEGAA.js → chunk-LNF36PTF.js} +2 -2
  86. package/dist/{chunk-RCZ5ZER4.js → chunk-MD63J3T7.js} +235 -44
  87. package/dist/{chunk-E4RMOK4A.js → chunk-MENTZJHA.js} +1 -1
  88. package/dist/{chunk-TKOALSA5.js → chunk-MQ3I5OIC.js} +8 -8
  89. package/dist/{chunk-BGXXWLS5.js → chunk-MQMVJDII.js} +1 -1
  90. package/dist/{chunk-WTLQMJZ3.js → chunk-N3VCBXI6.js} +3 -3
  91. package/dist/{chunk-EWJXECUK.js → chunk-NN43KGTN.js} +4 -4
  92. package/dist/{chunk-WNPZGHHU.js → chunk-NZD6ISCL.js} +3 -3
  93. package/dist/{chunk-6UARD3WA.js → chunk-PHA6AFOR.js} +3 -3
  94. package/dist/{chunk-LTY5DSWT.js → chunk-PNVTPEO5.js} +3 -3
  95. package/dist/{chunk-G3YIGTFS.js → chunk-POV2TBFA.js} +11 -11
  96. package/dist/{chunk-SFN72Q7W.js → chunk-Q2VV77IY.js} +3 -3
  97. package/dist/{chunk-GRCX2FGD.js → chunk-QXATIKHQ.js} +1 -1
  98. package/dist/{chunk-3KPPXZCO.js → chunk-R6N6FREL.js} +42 -25
  99. package/dist/{chunk-6QZGKKQS.js → chunk-R7CQF2P3.js} +1 -1
  100. package/dist/{chunk-ZJKWDM3S.js → chunk-R7KC57PC.js} +2 -2
  101. package/dist/{chunk-VXYGYCNR.js → chunk-RRUP72V6.js} +1 -1
  102. package/dist/{chunk-ORZ7H3AQ.js → chunk-TLK5YLIE.js} +4 -4
  103. package/dist/{chunk-NBMK6T6R.js → chunk-U3OLXV5Z.js} +2 -2
  104. package/dist/chunk-UP5QXEUU.js +31 -0
  105. package/dist/{chunk-X3NYMHLG.js → chunk-V7ZY7P2X.js} +6 -6
  106. package/dist/{chunk-CGROOSWT.js → chunk-VBWJ756P.js} +5 -5
  107. package/dist/{chunk-OEIU6BNH.js → chunk-VO77WHK4.js} +6 -6
  108. package/dist/{chunk-NWNUS2ET.js → chunk-VV7WRIQT.js} +4 -4
  109. package/dist/{chunk-2K7MZRPH.js → chunk-VVN3RPV6.js} +1 -1
  110. package/dist/{chunk-35RCY4LB.js → chunk-WM7OY63L.js} +1 -1
  111. package/dist/{chunk-RLNJNRYP.js → chunk-WNT4JHK3.js} +1 -1
  112. package/dist/{chunk-ZNST34QH.js → chunk-WXUEOHYY.js} +5 -5
  113. package/dist/{chunk-J42EAEX3.js → chunk-XR27HPYC.js} +2 -1
  114. package/dist/{chunk-XB75IJ3G.js → chunk-Y47BMZUR.js} +1 -1
  115. package/dist/{chunk-4XTB74D3.js → chunk-YHX5YF77.js} +4 -4
  116. package/dist/{chunk-4PPSXQQ6.js → chunk-YOV3LHOL.js} +3 -3
  117. package/dist/{chunk-7KWOR2T2.js → chunk-YQQGIDBC.js} +1 -1
  118. package/dist/{chunk-QLIG4PMT.js → chunk-ZWIJJYN3.js} +4 -4
  119. package/dist/{chunk-UCDPJHZT.js → chunk-ZWLSXECG.js} +2 -2
  120. package/dist/{chunk-UQCVVN7K.js → chunk-ZWURBNA3.js} +1 -1
  121. package/dist/{codex-app-cards-switch-C6DXLVAM.js → codex-app-cards-switch-JU236CG2.js} +11 -11
  122. package/dist/{codex-card-routing-ZMMS4RIR.js → codex-card-routing-LQJEJNTS.js} +2 -2
  123. package/dist/{codex-desktop-launch-DIUFMA45.js → codex-desktop-launch-LRQ4LU64.js} +1 -1
  124. package/dist/{codex-session-launch-S4WTGKRY.js → codex-session-launch-DTGH7ZKM.js} +20 -20
  125. package/dist/{config-BV5FQ536.js → config-34VUNHK6.js} +3 -3
  126. package/dist/{global-upgrade-JZWB67EU.js → global-upgrade-5UAH5DCG.js} +9 -9
  127. package/dist/{identity-G6FQTONT.js → identity-UFJEWGEU.js} +4 -4
  128. package/dist/{live-capabilities-YHMOXY5E.js → live-capabilities-BL3SHFWX.js} +4 -4
  129. package/dist/{paths-XTEJ5LI2.js → paths-YA5ROXGC.js} +3 -3
  130. package/dist/{reapply-MVZKPXIQ.js → reapply-OPQF4DPQ.js} +29 -29
  131. package/dist/src/index.js +34 -33
  132. package/dist/{upgrade-lock-YPAQEEJA.js → upgrade-lock-AZLOOGKV.js} +4 -4
  133. package/dist/{usage-R6PZTIEH.js → usage-ZSV4LFDL.js} +3 -3
  134. package/package.json +1 -1
  135. package/dist/chunk-N2DYYXQI.js +0 -75
@@ -2,18 +2,18 @@
2
2
  import {
3
3
  declinedAgentsFile,
4
4
  recordDeclinedAgent
5
- } from "../chunk-UCDPJHZT.js";
5
+ } from "../chunk-ZWLSXECG.js";
6
6
  import {
7
7
  isCursorPluginLeftover,
8
8
  isPusharyCursorPluginManifest,
9
9
  releaseSoleGate
10
- } from "../chunk-QLIG4PMT.js";
10
+ } from "../chunk-ZWIJJYN3.js";
11
11
  import {
12
12
  planFxRemoval,
13
13
  removeClineServer
14
- } from "../chunk-WPPTHRBO.js";
15
- import "../chunk-V7KBG7XH.js";
16
- import "../chunk-WNPZGHHU.js";
14
+ } from "../chunk-2XDVEBHI.js";
15
+ import "../chunk-54TZGPZP.js";
16
+ import "../chunk-NZD6ISCL.js";
17
17
  import {
18
18
  OPENCODE_PLUGIN_SIBLING,
19
19
  OPENCODE_PLUGIN_SIBLING_CONTENTS,
@@ -25,10 +25,10 @@ import {
25
25
  openCodePluginDir,
26
26
  openCodePluginFile,
27
27
  removeOpenCodeMcpServer
28
- } from "../chunk-CGROOSWT.js";
28
+ } from "../chunk-VBWJ756P.js";
29
29
  import {
30
30
  exitOnHelpFlag
31
- } from "../chunk-4VVDRMVE.js";
31
+ } from "../chunk-K7YJBVR3.js";
32
32
  import {
33
33
  compatibleConfigFile,
34
34
  compatibleDocuments,
@@ -38,28 +38,28 @@ import {
38
38
  isEmptiedPusharyOwnedDocument,
39
39
  removeCompatibleHooks,
40
40
  removeCompatibleMcpServer
41
- } from "../chunk-7ASHS5VR.js";
41
+ } from "../chunk-43DT3QWZ.js";
42
42
  import {
43
43
  removeGeminiSettings
44
- } from "../chunk-ORZ7H3AQ.js";
45
- import "../chunk-RGRPDJG3.js";
46
- import "../chunk-UXPRMNH2.js";
47
- import "../chunk-WVOMK2HW.js";
48
- import "../chunk-IOUCIJ56.js";
44
+ } from "../chunk-TLK5YLIE.js";
45
+ import "../chunk-D7AAAD6W.js";
46
+ import "../chunk-A2YJ2FBR.js";
47
+ import "../chunk-5XDFQ6E3.js";
48
+ import "../chunk-LAWI6NQK.js";
49
49
  import {
50
50
  parseFlags
51
51
  } from "../chunk-YPY4YCIZ.js";
52
- import "../chunk-DMK3U7GG.js";
53
- import "../chunk-XRO6NRBO.js";
54
- import "../chunk-XB75IJ3G.js";
52
+ import "../chunk-IRIXOH4U.js";
53
+ import "../chunk-L2GADKFL.js";
54
+ import "../chunk-Y47BMZUR.js";
55
55
  import "../chunk-POFBE6ZY.js";
56
- import "../chunk-ZNST34QH.js";
57
- import "../chunk-2K7MZRPH.js";
58
- import "../chunk-SFN72Q7W.js";
59
- import "../chunk-6UARD3WA.js";
60
- import "../chunk-RLNJNRYP.js";
61
- import "../chunk-LTY5DSWT.js";
62
- import "../chunk-IABPEGAA.js";
56
+ import "../chunk-WXUEOHYY.js";
57
+ import "../chunk-VVN3RPV6.js";
58
+ import "../chunk-Q2VV77IY.js";
59
+ import "../chunk-PHA6AFOR.js";
60
+ import "../chunk-WNT4JHK3.js";
61
+ import "../chunk-PNVTPEO5.js";
62
+ import "../chunk-LNF36PTF.js";
63
63
  import {
64
64
  claudeJson,
65
65
  claudeMcpReceipt,
@@ -89,9 +89,9 @@ import {
89
89
  removePusharySettings,
90
90
  removePusharyToolPermissions,
91
91
  restoreClaudeMcpServer
92
- } from "../chunk-ZJKWDM3S.js";
93
- import "../chunk-ACI4PZ5N.js";
94
- import "../chunk-FP6ZVMF2.js";
92
+ } from "../chunk-R7KC57PC.js";
93
+ import "../chunk-GS5FH3C2.js";
94
+ import "../chunk-IKBTG3OT.js";
95
95
  import {
96
96
  UsageError
97
97
  } from "../chunk-YU2EUD7O.js";
@@ -103,14 +103,14 @@ import {
103
103
  } from "../chunk-BG4HHB7E.js";
104
104
  import {
105
105
  isInvocationOf
106
- } from "../chunk-BGXXWLS5.js";
106
+ } from "../chunk-MQMVJDII.js";
107
107
  import "../chunk-WIIMW5YO.js";
108
108
  import {
109
109
  DISCONNECTABLE_AGENTS,
110
110
  DISCONNECT_AGENT_IDS,
111
111
  hookCompatibleProfileBySource,
112
112
  normalizeAgentId
113
- } from "../chunk-H4226UC7.js";
113
+ } from "../chunk-DL67HX3D.js";
114
114
  import "../chunk-MLKGABMK.js";
115
115
 
116
116
  // bin/pushary-disconnect.ts
@@ -687,7 +687,9 @@ var init_agent_wiring = __esm({
687
687
  permissionRuleFile: null,
688
688
  configDirIsShared: false,
689
689
  soleGate: null,
690
- taskControl: null
690
+ taskControl: null,
691
+ promptFollowsPreToolUseAllow: true,
692
+ permissionRequestPaths: "shell_escaped"
691
693
  };
692
694
  CODEBUDDY = {
693
695
  agentType: "codebuddy",
@@ -711,7 +713,9 @@ var init_agent_wiring = __esm({
711
713
  permissionRuleFile: homeJson(".codebuddy", "settings.json"),
712
714
  configDirIsShared: false,
713
715
  soleGate: null,
714
- taskControl: null
716
+ taskControl: null,
717
+ promptFollowsPreToolUseAllow: false,
718
+ permissionRequestPaths: "as_pre_tool_use"
715
719
  };
716
720
  QODER = {
717
721
  agentType: "qoder",
@@ -735,7 +739,9 @@ var init_agent_wiring = __esm({
735
739
  permissionRuleFile: null,
736
740
  configDirIsShared: false,
737
741
  soleGate: null,
738
- taskControl: null
742
+ taskControl: null,
743
+ promptFollowsPreToolUseAllow: false,
744
+ permissionRequestPaths: "as_pre_tool_use"
739
745
  };
740
746
  DROID = {
741
747
  agentType: "droid",
@@ -764,7 +770,9 @@ var init_agent_wiring = __esm({
764
770
  permissionRuleFile: null,
765
771
  configDirIsShared: false,
766
772
  soleGate: null,
767
- taskControl: null
773
+ taskControl: null,
774
+ promptFollowsPreToolUseAllow: false,
775
+ permissionRequestPaths: "as_pre_tool_use"
768
776
  };
769
777
  DEVIN = {
770
778
  agentType: "devin",
@@ -798,7 +806,9 @@ var init_agent_wiring = __esm({
798
806
  permissionRuleFile: null,
799
807
  configDirIsShared: false,
800
808
  soleGate: null,
801
- taskControl: null
809
+ taskControl: null,
810
+ promptFollowsPreToolUseAllow: false,
811
+ permissionRequestPaths: "as_pre_tool_use"
802
812
  };
803
813
  ANTIGRAVITY_TASK_CONTROL = {
804
814
  name: "manage_task",
@@ -849,7 +859,9 @@ var init_agent_wiring = __esm({
849
859
  receipt: [".pushary", "setup", "antigravity-tool-permission.json"],
850
860
  coveredTools: [ANTIGRAVITY_TASK_CONTROL.name]
851
861
  },
852
- taskControl: ANTIGRAVITY_TASK_CONTROL
862
+ taskControl: ANTIGRAVITY_TASK_CONTROL,
863
+ promptFollowsPreToolUseAllow: false,
864
+ permissionRequestPaths: "as_pre_tool_use"
853
865
  };
854
866
  GROK = {
855
867
  agentType: "grok",
@@ -883,7 +895,9 @@ var init_agent_wiring = __esm({
883
895
  permissionRuleFile: null,
884
896
  configDirIsShared: false,
885
897
  soleGate: null,
886
- taskControl: null
898
+ taskControl: null,
899
+ promptFollowsPreToolUseAllow: false,
900
+ permissionRequestPaths: "as_pre_tool_use"
887
901
  };
888
902
  HOOK_COMPATIBLE_PROFILES = Object.freeze([QWEN_CODE, CODEBUDDY, QODER, DROID, DEVIN, ANTIGRAVITY_CLI, GROK]);
889
903
  }
@@ -2897,8 +2911,8 @@ import { join as join3 } from "path";
2897
2911
  init_fsx();
2898
2912
  init_paths();
2899
2913
  import { createHash as createHash10 } from "crypto";
2900
- import { lstatSync as lstatSync5, readFileSync as readFileSync18, readdirSync as readdirSync2, realpathSync as realpathSync4, statSync as statSync5, unlinkSync as unlinkSync5 } from "fs";
2901
- import { basename as basename2, dirname as dirname8, isAbsolute, join as join19, relative, resolve as resolve3, sep } from "path";
2914
+ import { lstatSync as lstatSync5, readFileSync as readFileSync19, readdirSync as readdirSync2, realpathSync as realpathSync4, statSync as statSync5, unlinkSync as unlinkSync5 } from "fs";
2915
+ import { basename as basename3, dirname as dirname9, isAbsolute, join as join20, relative, resolve as resolve3, sep } from "path";
2902
2916
 
2903
2917
  // src/transcript-phone-trust.ts
2904
2918
  import { createHash as createHash5 } from "crypto";
@@ -7609,8 +7623,8 @@ var hookOwnerOfCommands = (commands, appAvailable = true) => {
7609
7623
 
7610
7624
  // src/daemon-lifecycle.ts
7611
7625
  init_src();
7612
- import { dirname as dirname7, join as join18, win32 as win32Path } from "path";
7613
- import { existsSync as existsSync6, mkdirSync as mkdirSync6, readFileSync as readFileSync17, realpathSync as realpathSync3, renameSync as renameSync3, statSync as statSync4, unlinkSync as unlinkSync4, writeFileSync as writeFileSync5 } from "fs";
7626
+ import { dirname as dirname8, join as join19, win32 as win32Path } from "path";
7627
+ import { existsSync as existsSync6, mkdirSync as mkdirSync7, readFileSync as readFileSync18, realpathSync as realpathSync3, renameSync as renameSync3, statSync as statSync4, unlinkSync as unlinkSync4, writeFileSync as writeFileSync5 } from "fs";
7614
7628
  import { createHash as createHash9, randomUUID as randomUUID3 } from "crypto";
7615
7629
  import { homedir as homedir8, uptime, userInfo } from "os";
7616
7630
 
@@ -7635,8 +7649,20 @@ import { win32 as win323 } from "path";
7635
7649
  // src/daemon-lifecycle.ts
7636
7650
  init_npm();
7637
7651
  init_cli_package_name();
7638
- init_global_package();
7639
7652
  import { execFileSync as execFileSync3 } from "child_process";
7653
+
7654
+ // src/daemon-entry-guard.ts
7655
+ init_fsx();
7656
+ import { mkdirSync as mkdirSync6, readFileSync as readFileSync17 } from "fs";
7657
+ import { basename, dirname as dirname7, join as join18 } from "path";
7658
+ var DAEMON_ENTRY_GUARD_SOURCE = [
7659
+ "const { existsSync } = require('node:fs')",
7660
+ "if (process.argv[1] && !existsSync(process.argv[1])) process.exit(0)",
7661
+ ""
7662
+ ].join("\n");
7663
+
7664
+ // src/daemon-lifecycle.ts
7665
+ init_global_package();
7640
7666
  var DAEMON_LEASE_RENEW_INTERVAL_MS = 3e4;
7641
7667
  var LOCAL_LEASE_TIMEOUT_MS = DAEMON_LEASE_RENEW_INTERVAL_MS * 3;
7642
7668
  var DAEMON_YIELD_CHECK_INTERVAL_MS = 2e3;
@@ -7687,7 +7713,7 @@ var firstString = (...values) => values.find((v) => typeof v === "string" && v.l
7687
7713
  // ../hook-mapping/src/map.ts
7688
7714
  init_src();
7689
7715
  init_src();
7690
- import { basename } from "path";
7716
+ import { basename as basename2 } from "path";
7691
7717
  var AGENT_IDENTITIES = {
7692
7718
  claude: { type: "claude_code", label: AGENT_LABELS_BY_TYPE.claude_code },
7693
7719
  codex: { type: "codex", label: AGENT_LABELS_BY_TYPE.codex },
@@ -7810,18 +7836,18 @@ var storedRegistrationSchema = external_exports.object({
7810
7836
  endedAt: external_exports.number().positive().optional(),
7811
7837
  drained: external_exports.boolean().optional()
7812
7838
  });
7813
- var defaultRegistryDirectory = () => process.env.PUSHARY_TRANSCRIPT_REGISTRY_DIR || join19(pusharyDir(), "transcript-capture");
7839
+ var defaultRegistryDirectory = () => process.env.PUSHARY_TRANSCRIPT_REGISTRY_DIR || join20(pusharyDir(), "transcript-capture");
7814
7840
  var cliRegistry = (apiKey = getApiKey()) => ({ apiKey, baseUrl: getBaseUrl(), directory: defaultRegistryDirectory() });
7815
7841
  var accountFor = (registry) => createHash10("sha256").update(`${registry.baseUrl}\0${registry.apiKey}`).digest("hex");
7816
7842
  var TTL = 48 * 60 * 60 * 1e3;
7817
7843
  var read = (path) => {
7818
7844
  if (statSync5(path).size > 16384) throw new Error("History registration exceeds its size limit");
7819
- return storedRegistrationSchema.parse(JSON.parse(readFileSync18(path, "utf8")));
7845
+ return storedRegistrationSchema.parse(JSON.parse(readFileSync19(path, "utf8")));
7820
7846
  };
7821
7847
  var consent = (record) => record.consentOverride ?? readTranscriptPreference() ?? true;
7822
7848
  var withoutTrailingSlash = (url) => url.replace(/\/+$/, "");
7823
7849
  var sameServer = (url, registry) => withoutTrailingSlash(url) === withoutTrailingSlash(registry.baseUrl);
7824
- var fileFor3 = (registry, sessionId) => join19(registry.directory, `${createHash10("sha256").update(accountFor(registry) + sessionId).digest("hex")}.json`);
7850
+ var fileFor3 = (registry, sessionId) => join20(registry.directory, `${createHash10("sha256").update(accountFor(registry) + sessionId).digest("hex")}.json`);
7825
7851
  var permitted = (registry, raw2) => raw2.account === accountFor(registry) && consent(raw2) && !raw2.drained && (raw2.source !== "claude" || !!raw2.expectedSiteId || !macOwnsClaudeHooks(raw2.cwd)) && (!raw2.expectedSiteId || raw2.expectedSiteId === raw2.verifiedSiteId && !!raw2.expectedBaseUrl && sameServer(raw2.expectedBaseUrl, registry));
7826
7852
  var registeredTranscriptEnabled = (apiKey, sessionId, registry = cliRegistry(apiKey)) => {
7827
7853
  try {
@@ -7831,12 +7857,12 @@ var registeredTranscriptEnabled = (apiKey, sessionId, registry = cliRegistry(api
7831
7857
  }
7832
7858
  };
7833
7859
  var macOwnsClaudeHooks = (cwd) => [
7834
- join19(claudeConfigDir(), "settings.json"),
7835
- join19(cwd, ".claude", "settings.json"),
7836
- join19(cwd, ".claude", "settings.local.json")
7860
+ join20(claudeConfigDir(), "settings.json"),
7861
+ join20(cwd, ".claude", "settings.json"),
7862
+ join20(cwd, ".claude", "settings.local.json")
7837
7863
  ].some((path) => {
7838
7864
  try {
7839
- return hookOwnerOf(JSON.parse(readFileSync18(path, "utf8"))) === "app";
7865
+ return hookOwnerOf(JSON.parse(readFileSync19(path, "utf8"))) === "app";
7840
7866
  } catch {
7841
7867
  return false;
7842
7868
  }
@@ -7844,22 +7870,22 @@ var macOwnsClaudeHooks = (cwd) => [
7844
7870
  var TRANSCRIPT_ROOT_NAME = { claude: "projects", codex: "sessions", gemini: "tmp", cursor: "projects", hermes: "hermes-history" };
7845
7871
  var transcriptRoots = (source) => {
7846
7872
  const home = homedir9();
7847
- if (source === "codex") return [join19(codexHome(), TRANSCRIPT_ROOT_NAME.codex)];
7848
- if (source === "cursor") return [join19(home, ".cursor", TRANSCRIPT_ROOT_NAME.cursor)];
7849
- if (source === "hermes") return [join19(home, ".pushary", TRANSCRIPT_ROOT_NAME.hermes)];
7850
- if (source === "gemini") return [join19(process.env.GEMINI_CLI_HOME || home, ".gemini", "tmp"), join19(home, ".cache", ".gemini", "tmp")];
7873
+ if (source === "codex") return [join20(codexHome(), TRANSCRIPT_ROOT_NAME.codex)];
7874
+ if (source === "cursor") return [join20(home, ".cursor", TRANSCRIPT_ROOT_NAME.cursor)];
7875
+ if (source === "hermes") return [join20(home, ".pushary", TRANSCRIPT_ROOT_NAME.hermes)];
7876
+ if (source === "gemini") return [join20(process.env.GEMINI_CLI_HOME || home, ".gemini", "tmp"), join20(home, ".cache", ".gemini", "tmp")];
7851
7877
  const configured = process.env.CLAUDE_CONFIG_DIR;
7852
- return [join19(configured || join19(home, ".claude"), TRANSCRIPT_ROOT_NAME.claude), join19(home, ".claude", TRANSCRIPT_ROOT_NAME.claude)];
7878
+ return [join20(configured || join20(home, ".claude"), TRANSCRIPT_ROOT_NAME.claude), join20(home, ".claude", TRANSCRIPT_ROOT_NAME.claude)];
7853
7879
  };
7854
- var isAgentTranscriptRoot = (root, source) => isAbsolute(root) && resolve3(root) === root && basename2(root) === TRANSCRIPT_ROOT_NAME[source];
7880
+ var isAgentTranscriptRoot = (root, source) => isAbsolute(root) && resolve3(root) === root && basename3(root) === TRANSCRIPT_ROOT_NAME[source];
7855
7881
  var acceptedTranscriptRoots = (source, registeredRoot) => typeof registeredRoot === "string" && isAgentTranscriptRoot(registeredRoot, source) ? [...transcriptRoots(source), registeredRoot] : transcriptRoots(source);
7856
7882
  var resolvedSourcePath = (path) => {
7857
7883
  const absolute = resolve3(path);
7858
7884
  try {
7859
7885
  return realpathSync4(absolute);
7860
7886
  } catch {
7861
- const parent = dirname8(absolute);
7862
- return parent === absolute ? absolute : join19(resolvedSourcePath(parent), basename2(absolute));
7887
+ const parent = dirname9(absolute);
7888
+ return parent === absolute ? absolute : join20(resolvedSourcePath(parent), basename3(absolute));
7863
7889
  }
7864
7890
  };
7865
7891
  var transcriptRootContaining = (candidate, roots) => {
@@ -7877,9 +7903,9 @@ var captureRegistration = (source, value, registeredRoot) => {
7877
7903
  const root = transcriptRootContaining(path, acceptedTranscriptRoots(source, registeredRoot));
7878
7904
  if (root === null) return null;
7879
7905
  const segments = relative(root, path).split(sep);
7880
- if (source === "hermes" && (segments.length !== 2 || !/^[a-f0-9]{64}$/.test(segments[0] ?? "") || basename2(path) !== `${sessionId}.json`)) return null;
7881
- if (source === "gemini" && (segments.length !== 3 || segments[1] !== "chats" || !basename2(path).startsWith("session-"))) return null;
7882
- if (source === "cursor" && (segments[1] !== "agent-transcripts" || basename2(path) !== `${sessionId}.jsonl` || !(segments.length === 3 || segments.length === 4 && basename2(dirname8(path)) === sessionId))) return null;
7906
+ if (source === "hermes" && (segments.length !== 2 || !/^[a-f0-9]{64}$/.test(segments[0] ?? "") || basename3(path) !== `${sessionId}.json`)) return null;
7907
+ if (source === "gemini" && (segments.length !== 3 || segments[1] !== "chats" || !basename3(path).startsWith("session-"))) return null;
7908
+ if (source === "cursor" && (segments[1] !== "agent-transcripts" || basename3(path) !== `${sessionId}.jsonl` || !(segments.length === 3 || segments.length === 4 && basename3(dirname9(path)) === sessionId))) return null;
7883
7909
  return { sessionId, cwd: input.cwd, path, source, root };
7884
7910
  };
7885
7911
 
@@ -1,10 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
- describeServiceNodeRisk,
4
- readServiceExecPath,
5
- readSetupFailure,
6
- versionManagerOf
7
- } from "../chunk-N2DYYXQI.js";
3
+ readSetupFailure
4
+ } from "../chunk-B4UIRMOE.js";
8
5
  import {
9
6
  describeWaitLadder
10
7
  } from "../chunk-CVWG2N3Y.js";
@@ -14,14 +11,14 @@ import {
14
11
  describeHermesProblems,
15
12
  describeHermesState,
16
13
  hermesRepairStep
17
- } from "../chunk-QUMPSMZN.js";
14
+ } from "../chunk-A4YOXS24.js";
18
15
  import {
19
16
  writeJsonError,
20
17
  writeStdoutFully
21
- } from "../chunk-VXYGYCNR.js";
18
+ } from "../chunk-RRUP72V6.js";
22
19
  import {
23
20
  fetchChannels
24
- } from "../chunk-AEOITMCS.js";
21
+ } from "../chunk-4T72AHIA.js";
25
22
  import "../chunk-3EGEA4KH.js";
26
23
  import {
27
24
  describeAnswerTestPrompt,
@@ -31,7 +28,7 @@ import {
31
28
  reachVerdict,
32
29
  roundTripEvidence,
33
30
  verifyRoundTrip
34
- } from "../chunk-X3NYMHLG.js";
31
+ } from "../chunk-V7ZY7P2X.js";
35
32
  import {
36
33
  daemonStopsAtLogout,
37
34
  lingerDoctorDetail,
@@ -40,17 +37,17 @@ import {
40
37
  import {
41
38
  readMachineReadiness,
42
39
  readManagedControlEvidence
43
- } from "../chunk-KUAS2DGZ.js";
40
+ } from "../chunk-CMAB4KQG.js";
44
41
  import {
45
42
  assessCodexHookTrust,
46
43
  readCodexTrustForPusharyHooks
47
- } from "../chunk-VCMJLNEP.js";
44
+ } from "../chunk-6SWFS4GU.js";
48
45
  import {
49
46
  SIGNED_OUT_ON_MAC_MESSAGE,
50
47
  activeKeyVerdictOf,
51
48
  describeSignedOutKey,
52
49
  readSignedOutDiagnosis
53
- } from "../chunk-NBMK6T6R.js";
50
+ } from "../chunk-U3OLXV5Z.js";
54
51
  import {
55
52
  agentProbes,
56
53
  detectAgent,
@@ -59,16 +56,16 @@ import {
59
56
  isPluginRegistered,
60
57
  shortenHome,
61
58
  vscodeSettingsTargets
62
- } from "../chunk-AXQFLLOB.js";
59
+ } from "../chunk-IHAKBLW2.js";
63
60
  import {
64
61
  CONNECTED_THROUGH_MAC_APP,
65
62
  keyWrittenByMacApp,
66
63
  readMacAppConnectionWhenKeyless
67
- } from "../chunk-GLAGHQPB.js";
64
+ } from "../chunk-KLV2NQVT.js";
68
65
  import {
69
66
  keyScopeOf,
70
67
  pushWindowChangeStep
71
- } from "../chunk-VND6LN6X.js";
68
+ } from "../chunk-3QBI5C6P.js";
72
69
  import {
73
70
  findHermesLauncher,
74
71
  hasUpdateFrom,
@@ -80,7 +77,7 @@ import {
80
77
  routesHermesQuestions,
81
78
  runsAnOlderPlugin,
82
79
  shippedHermesPlugin
83
- } from "../chunk-MGTMXF3T.js";
80
+ } from "../chunk-A7R43KOX.js";
84
81
  import "../chunk-QCGNGEGE.js";
85
82
  import {
86
83
  FX_PROFILE_REFUSALS,
@@ -91,11 +88,11 @@ import {
91
88
  inspectClineInstallation,
92
89
  inspectFxInstallation,
93
90
  inspectFxPusharyHttpWiring
94
- } from "../chunk-WPPTHRBO.js";
91
+ } from "../chunk-2XDVEBHI.js";
95
92
  import {
96
93
  retryAgentCommand
97
- } from "../chunk-V7KBG7XH.js";
98
- import "../chunk-WNPZGHHU.js";
94
+ } from "../chunk-54TZGPZP.js";
95
+ import "../chunk-NZD6ISCL.js";
99
96
  import {
100
97
  OPENCODE_PLUGIN_PLACEHOLDER,
101
98
  cliOwnsAnyAgentHooks,
@@ -105,25 +102,25 @@ import {
105
102
  openCodePluginDir,
106
103
  openCodePluginFile,
107
104
  openCodeWired
108
- } from "../chunk-CGROOSWT.js";
105
+ } from "../chunk-VBWJ756P.js";
109
106
  import {
110
107
  createIo
111
108
  } from "../chunk-FO3MDD26.js";
112
109
  import {
113
110
  exitOnHelpFlag
114
- } from "../chunk-4VVDRMVE.js";
111
+ } from "../chunk-K7YJBVR3.js";
115
112
  import {
116
113
  describeMissingControlPrerequisite,
117
114
  detectProviderLiveCapabilities,
118
115
  expectedLaunchCapabilities,
119
116
  hasSpawnProvider,
120
117
  resolveControlPolicy
121
- } from "../chunk-6RSAOA2P.js";
122
- import "../chunk-SULQKUPJ.js";
118
+ } from "../chunk-DBIPNY7J.js";
119
+ import "../chunk-EJHD44ZN.js";
123
120
  import "../chunk-CYTPQDQY.js";
124
121
  import {
125
122
  readLedgerSummary
126
- } from "../chunk-7KWOR2T2.js";
123
+ } from "../chunk-YQQGIDBC.js";
127
124
  import {
128
125
  AUTO_UPDATE_DISABLE_ENV,
129
126
  autoUpdateOffReason,
@@ -131,7 +128,7 @@ import {
131
128
  describeAutoUpdateCheck,
132
129
  readAutoUpdateState,
133
130
  takeAutoUpdateAnnouncement
134
- } from "../chunk-UDSJKRRI.js";
131
+ } from "../chunk-ICCM3DLT.js";
135
132
  import {
136
133
  compatibleConfigFile,
137
134
  compatibleInstructionsFile,
@@ -139,16 +136,20 @@ import {
139
136
  hasCompatibleHooks,
140
137
  hasCompatibleMcpServer,
141
138
  missingCompatibleHookEvents
142
- } from "../chunk-7ASHS5VR.js";
139
+ } from "../chunk-43DT3QWZ.js";
143
140
  import {
144
141
  daemonHasRemoteProof,
145
142
  daemonServiceManagerAvailable,
146
143
  describeDaemonLoginBlock,
144
+ describeServiceNodeRisk,
147
145
  hasDaemonServiceDefinition,
148
146
  readDaemonNeedsLogin,
149
147
  readDaemonStatus,
150
- readInstalledDaemonService
151
- } from "../chunk-RCZ5ZER4.js";
148
+ readInstalledDaemonService,
149
+ readServiceExecPath,
150
+ serviceStartFileChecks,
151
+ versionManagerOf
152
+ } from "../chunk-MD63J3T7.js";
152
153
  import {
153
154
  GEMINI_HOOK_BINARY,
154
155
  claudeOtherHolders,
@@ -168,38 +169,38 @@ import {
168
169
  holdsLong,
169
170
  missingGeminiHookEvents,
170
171
  pusharyHookExecutable
171
- } from "../chunk-ORZ7H3AQ.js";
172
- import "../chunk-RGRPDJG3.js";
173
- import "../chunk-UXPRMNH2.js";
174
- import "../chunk-WVOMK2HW.js";
175
- import "../chunk-IOUCIJ56.js";
172
+ } from "../chunk-TLK5YLIE.js";
173
+ import "../chunk-D7AAAD6W.js";
174
+ import "../chunk-A2YJ2FBR.js";
175
+ import "../chunk-5XDFQ6E3.js";
176
+ import "../chunk-LAWI6NQK.js";
176
177
  import {
177
178
  parseFlags
178
179
  } from "../chunk-YPY4YCIZ.js";
179
180
  import "../chunk-H6CL3T2S.js";
180
- import "../chunk-DMK3U7GG.js";
181
- import "../chunk-XRO6NRBO.js";
182
- import "../chunk-XB75IJ3G.js";
181
+ import "../chunk-IRIXOH4U.js";
182
+ import "../chunk-L2GADKFL.js";
183
+ import "../chunk-Y47BMZUR.js";
183
184
  import "../chunk-POFBE6ZY.js";
184
185
  import {
185
186
  callMcpTool,
186
187
  sendMcpRequest
187
- } from "../chunk-ZNST34QH.js";
188
- import "../chunk-2K7MZRPH.js";
188
+ } from "../chunk-WXUEOHYY.js";
189
+ import "../chunk-VVN3RPV6.js";
189
190
  import {
190
191
  checkApiKey,
191
192
  describeKeyCheck
192
- } from "../chunk-SFN72Q7W.js";
193
- import "../chunk-6UARD3WA.js";
193
+ } from "../chunk-Q2VV77IY.js";
194
+ import "../chunk-PHA6AFOR.js";
194
195
  import {
195
196
  getMachineId
196
- } from "../chunk-RLNJNRYP.js";
197
+ } from "../chunk-WNT4JHK3.js";
197
198
  import {
198
199
  keyPrefix,
199
200
  readControlMode,
200
201
  readKeySource
201
- } from "../chunk-LTY5DSWT.js";
202
- import "../chunk-IABPEGAA.js";
202
+ } from "../chunk-PNVTPEO5.js";
203
+ import "../chunk-LNF36PTF.js";
203
204
  import {
204
205
  CLINE_AUTO_APPROVE_STEP,
205
206
  CLINE_LABEL,
@@ -237,15 +238,15 @@ import {
237
238
  readCodexMcpAuth,
238
239
  resolveBridgeStub,
239
240
  vscodePluginDir
240
- } from "../chunk-ZJKWDM3S.js";
241
+ } from "../chunk-R7KC57PC.js";
241
242
  import {
242
243
  fetchLatestPublishedVersion,
243
244
  readGlobalCliInstall,
244
245
  resolvePathBinary
245
- } from "../chunk-ACI4PZ5N.js";
246
+ } from "../chunk-GS5FH3C2.js";
246
247
  import {
247
248
  getBaseUrl
248
- } from "../chunk-FP6ZVMF2.js";
249
+ } from "../chunk-IKBTG3OT.js";
249
250
  import {
250
251
  UsageError
251
252
  } from "../chunk-YU2EUD7O.js";
@@ -257,7 +258,7 @@ import {
257
258
  } from "../chunk-BG4HHB7E.js";
258
259
  import {
259
260
  NPX_LATEST_COMMAND
260
- } from "../chunk-BGXXWLS5.js";
261
+ } from "../chunk-MQMVJDII.js";
261
262
  import {
262
263
  commandsPackage,
263
264
  getPackageVersion,
@@ -278,7 +279,7 @@ import {
278
279
  hookCompatibleProfile,
279
280
  isHookActivationReport,
280
281
  redactSecretsFromContent
281
- } from "../chunk-H4226UC7.js";
282
+ } from "../chunk-DL67HX3D.js";
282
283
  import "../chunk-MLKGABMK.js";
283
284
 
284
285
  // bin/pushary-doctor.ts
@@ -1201,6 +1202,9 @@ var main = async () => {
1201
1202
  "Remote-control service runtime",
1202
1203
  present ? `${serviceNode}${manager ? ` (${describeServiceNodeRisk(manager)})` : ""}` : `${serviceNode} is gone${manager ? ` (${manager} switched Node since setup)` : ""}; run \`pushary daemon install\` to repin the service`
1203
1204
  );
1205
+ for (const start of serviceStartFileChecks(serviceFile.contents, process.platform, existsSync)) {
1206
+ check(start.passed, start.label, start.detail);
1207
+ }
1204
1208
  } else if (serviceFile) {
1205
1209
  console.log(` ${warn} Remote-control service runtime ${dim(`(could not read the node path out of ${serviceFile.path})`)}`);
1206
1210
  }