pushary 1.9.143 → 1.9.145

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 (137) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/data/SKILL.md +4 -2
  3. package/data/cursor-plugin/skills/pushary/SKILL.md +3 -1
  4. package/data/vscode-plugin/skills/pushary/SKILL.md +3 -1
  5. package/dist/{api-2YC2KSIM.js → api-KWJQMO6G.js} +11 -11
  6. package/dist/bin/pushary-audit.js +3 -3
  7. package/dist/bin/pushary-bell-hook.js +28 -28
  8. package/dist/bin/pushary-bell.js +10 -10
  9. package/dist/bin/pushary-claude.js +27 -27
  10. package/dist/bin/pushary-clean.js +35 -35
  11. package/dist/bin/pushary-codex-bridge.js +23 -23
  12. package/dist/bin/pushary-codex-hook.js +35 -35
  13. package/dist/bin/pushary-codex-session.js +8 -8
  14. package/dist/bin/pushary-codex.js +16 -16
  15. package/dist/bin/pushary-connect.js +29 -29
  16. package/dist/bin/pushary-cowork.js +5 -5
  17. package/dist/bin/pushary-daemon.js +43 -43
  18. package/dist/bin/pushary-disconnect.js +28 -28
  19. package/dist/bin/pushary-display-hook.js +7 -0
  20. package/dist/bin/pushary-doctor.js +58 -43
  21. package/dist/bin/pushary-elicitation-hook.js +28 -28
  22. package/dist/bin/pushary-gemini-bridge.js +17 -17
  23. package/dist/bin/pushary-gemini-hook.js +32 -32
  24. package/dist/bin/pushary-hook.js +35 -35
  25. package/dist/bin/pushary-login.js +21 -21
  26. package/dist/bin/pushary-logout.js +27 -27
  27. package/dist/bin/pushary-mcp.js +12 -12
  28. package/dist/bin/pushary-mode.js +15 -15
  29. package/dist/bin/pushary-notification-hook.js +27 -27
  30. package/dist/bin/pushary-opencode-hook.js +31 -31
  31. package/dist/bin/pushary-permission-denied-hook.js +35 -35
  32. package/dist/bin/pushary-permission-hook.js +35 -35
  33. package/dist/bin/pushary-post-hook.js +28 -28
  34. package/dist/bin/pushary-prompt-hook.js +27 -27
  35. package/dist/bin/pushary-session-end-hook.js +27 -27
  36. package/dist/bin/pushary-session-start-hook.js +36 -36
  37. package/dist/bin/pushary-setup.js +122 -54
  38. package/dist/bin/pushary-stats.js +5 -5
  39. package/dist/bin/pushary-status.js +33 -33
  40. package/dist/bin/pushary-stop-hook.js +27 -27
  41. package/dist/bin/pushary-stopfailure-hook.js +27 -27
  42. package/dist/bin/pushary-suggestions.js +15 -15
  43. package/dist/bin/pushary-transcript-register.js +17 -17
  44. package/dist/bin/pushary-transcripts.js +25 -25
  45. package/dist/bin/pushary-upgrade.js +41 -41
  46. package/dist/bin/pushary-wait.js +15 -15
  47. package/dist/bin/pushary.js +7 -7
  48. package/dist/{chunk-XWYCFODT.js → chunk-2ELNRGNX.js} +3 -3
  49. package/dist/{chunk-PYSDCPZ3.js → chunk-2LGDEPVL.js} +6 -6
  50. package/dist/{chunk-5TZYAMGW.js → chunk-33BYPZ52.js} +1 -1
  51. package/dist/{chunk-LUVSHGLH.js → chunk-4KDRT3OA.js} +1 -1
  52. package/dist/{chunk-B4VIT5N3.js → chunk-4L5WPDTB.js} +1 -1
  53. package/dist/{chunk-EGUT2MWV.js → chunk-52UXNCZG.js} +3 -3
  54. package/dist/{chunk-NZHRH4RR.js → chunk-5TWW7ZUL.js} +5 -5
  55. package/dist/{chunk-DU4KCXC2.js → chunk-63WX5KZN.js} +3 -3
  56. package/dist/{chunk-DOXH5BV4.js → chunk-6IWOMXUF.js} +4 -4
  57. package/dist/{chunk-R7FSMUHG.js → chunk-6LZ7MXHD.js} +2 -1
  58. package/dist/{chunk-EMODTMHE.js → chunk-6UK4K5RS.js} +1 -1
  59. package/dist/{chunk-IG7NGXBS.js → chunk-72LP4RPC.js} +3 -2
  60. package/dist/{chunk-MMS7R3VO.js → chunk-7LTP2GHO.js} +2 -2
  61. package/dist/{chunk-QESEICW4.js → chunk-A2H256WR.js} +1 -1
  62. package/dist/{chunk-4YH326C5.js → chunk-B4JQIH5M.js} +6 -6
  63. package/dist/{chunk-4EBJ4PTZ.js → chunk-BWREST4F.js} +1 -1
  64. package/dist/{chunk-ZVJIJPQY.js → chunk-BYKRAYGD.js} +1 -1
  65. package/dist/{chunk-3VOUWGFF.js → chunk-CUR2DCZN.js} +4 -4
  66. package/dist/chunk-D3UFDCTQ.js +87 -0
  67. package/dist/{chunk-UIZE4YMU.js → chunk-DZIZ3XFL.js} +2 -2
  68. package/dist/{chunk-QQHUUPPW.js → chunk-EPWOARGR.js} +2 -2
  69. package/dist/{chunk-LWQLM3AO.js → chunk-FCSPMSDC.js} +4 -4
  70. package/dist/{chunk-X2MC2CF3.js → chunk-FNAH3YJC.js} +16 -16
  71. package/dist/{chunk-ZKKZEVNI.js → chunk-G3VSMI7K.js} +2 -2
  72. package/dist/{chunk-SYZF5SDG.js → chunk-GK5X2ZTN.js} +5 -5
  73. package/dist/{chunk-UJETZZG5.js → chunk-GURIOZE7.js} +8 -8
  74. package/dist/{chunk-7VMVMC4H.js → chunk-HOQH5CLZ.js} +1 -1
  75. package/dist/{chunk-LS6BU5RM.js → chunk-IDLOJIIS.js} +1 -1
  76. package/dist/{chunk-P5QXH5QI.js → chunk-IIN26HL7.js} +1 -1
  77. package/dist/{chunk-22CXL7YI.js → chunk-IRPIMQ7U.js} +3 -3
  78. package/dist/{chunk-4JTZZXB3.js → chunk-JKWUF776.js} +3 -3
  79. package/dist/{chunk-7QWH257P.js → chunk-JZT2LPRM.js} +1 -1
  80. package/dist/{chunk-QGJK3NAR.js → chunk-K2SKUBYY.js} +12 -12
  81. package/dist/{chunk-K7MVCPH5.js → chunk-KFALRZIN.js} +4 -4
  82. package/dist/{chunk-44Z6MQZ2.js → chunk-KGFB2LEB.js} +3 -3
  83. package/dist/{chunk-NOTW7GOC.js → chunk-KKPT7ROP.js} +2 -2
  84. package/dist/{chunk-4Z7YVVKQ.js → chunk-KS3PNTRT.js} +1 -1
  85. package/dist/{chunk-6JLANX5L.js → chunk-L4OGTRVW.js} +4 -4
  86. package/dist/{chunk-QLGLUUOP.js → chunk-LD4R2P6N.js} +1 -1
  87. package/dist/{chunk-4OX4SJGA.js → chunk-LJRPWUST.js} +3 -3
  88. package/dist/{chunk-DDJHPMBJ.js → chunk-LMU6NG2G.js} +1 -1
  89. package/dist/{chunk-C5LIS3XM.js → chunk-LQXUWXQP.js} +7 -0
  90. package/dist/{chunk-MOYEHNFP.js → chunk-MKHVLDMN.js} +2 -2
  91. package/dist/{chunk-G3G7DWR3.js → chunk-MNU5N3CQ.js} +11 -11
  92. package/dist/{chunk-BHKODM4L.js → chunk-MOC2DN42.js} +2 -2
  93. package/dist/{chunk-FS47XZCE.js → chunk-NTMKJRQ3.js} +2 -2
  94. package/dist/{chunk-WSKBXADV.js → chunk-OONMKLUF.js} +4 -4
  95. package/dist/{chunk-NQF652IG.js → chunk-PXZTCR4M.js} +2 -2
  96. package/dist/{chunk-V7CS72Q5.js → chunk-PY6CM4NK.js} +6 -6
  97. package/dist/{chunk-G7G2ZPT4.js → chunk-Q6P7G4NY.js} +4 -4
  98. package/dist/{chunk-KRSZFHNS.js → chunk-QKTF7WS6.js} +67 -4
  99. package/dist/{chunk-5RSM5DRT.js → chunk-R34RWVN2.js} +6 -5
  100. package/dist/{chunk-FYB6HBHQ.js → chunk-RO6EVL5C.js} +2 -2
  101. package/dist/{chunk-SMF4TBPU.js → chunk-RWLNTZK5.js} +5 -5
  102. package/dist/{chunk-LTPKSJWY.js → chunk-S3A4PCRR.js} +10 -10
  103. package/dist/{chunk-YCU7Y77H.js → chunk-S7HGPKCL.js} +1 -1
  104. package/dist/{chunk-MH5BRZOQ.js → chunk-SQL5YXUH.js} +1 -1
  105. package/dist/{chunk-MLOYBLO4.js → chunk-TJXJGMSP.js} +4 -4
  106. package/dist/{chunk-MQF6MQMR.js → chunk-TRV3ETGY.js} +5 -5
  107. package/dist/{chunk-42DRRA6N.js → chunk-USFZJAB4.js} +1 -1
  108. package/dist/{chunk-QFZNPZRO.js → chunk-VTJ4WZOC.js} +3 -3
  109. package/dist/{chunk-ZF4CPOO7.js → chunk-WH4ODOCE.js} +6 -6
  110. package/dist/{chunk-3WZMIDGX.js → chunk-WMBWKPKJ.js} +5 -5
  111. package/dist/{chunk-HIIXYZYV.js → chunk-WOSO4YFQ.js} +3 -3
  112. package/dist/{chunk-V53QYJNY.js → chunk-WPBWJMBZ.js} +5 -5
  113. package/dist/{chunk-USNGPJXF.js → chunk-WUT3PO33.js} +8 -8
  114. package/dist/{chunk-R27HXRSK.js → chunk-Y7INHH5G.js} +3 -3
  115. package/dist/{chunk-ZDOTNMGL.js → chunk-YNCVSKUW.js} +10 -8
  116. package/dist/{chunk-DZLLKJJT.js → chunk-YRJZF5RG.js} +3 -3
  117. package/dist/{chunk-CNURORKI.js → chunk-YU5XE6VC.js} +6 -6
  118. package/dist/{chunk-TKFNIDZK.js → chunk-YZA3YBHX.js} +2 -2
  119. package/dist/{chunk-53KLGXFL.js → chunk-ZBMVOMFG.js} +4 -3
  120. package/dist/{chunk-H33CFJOF.js → chunk-ZJZNT2G5.js} +4 -4
  121. package/dist/{chunk-HLWS6ADK.js → chunk-ZORBUQFG.js} +2 -2
  122. package/dist/{chunk-KP6FVUCC.js → chunk-ZSOCJHL7.js} +188 -13
  123. package/dist/{codex-app-cards-switch-EGUHSLTG.js → codex-app-cards-switch-F7WQ7Y3I.js} +11 -11
  124. package/dist/{codex-card-routing-I6YOJBTT.js → codex-card-routing-EVL5L36G.js} +2 -2
  125. package/dist/{codex-desktop-launch-6UN5CWCX.js → codex-desktop-launch-PL6Z2ELZ.js} +1 -1
  126. package/dist/{codex-session-launch-7R3HNIDJ.js → codex-session-launch-7NQEAUDU.js} +20 -20
  127. package/dist/{config-2CHOLFNB.js → config-KFFD4VWH.js} +3 -3
  128. package/dist/{global-upgrade-CCVIYELF.js → global-upgrade-L3CY6EFF.js} +9 -9
  129. package/dist/{identity-7QA3EDOM.js → identity-DPYYIMHL.js} +4 -4
  130. package/dist/{live-capabilities-SDMX6CPZ.js → live-capabilities-QJEXK6GH.js} +4 -4
  131. package/dist/{paths-ZC6XY73Q.js → paths-PEF6C64P.js} +3 -3
  132. package/dist/{reapply-W6AIK5PH.js → reapply-7APCQRRK.js} +29 -29
  133. package/dist/src/index.js +34 -34
  134. package/dist/{upgrade-lock-BRVUBSLD.js → upgrade-lock-A7OKXMRW.js} +4 -4
  135. package/dist/{usage-GWUTCS5A.js → usage-HSS33762.js} +3 -3
  136. package/package.json +1 -1
  137. package/dist/chunk-I6HXZIER.js +0 -31
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SETUP_FLAGS
3
- } from "./chunk-53KLGXFL.js";
3
+ } from "./chunk-ZBMVOMFG.js";
4
4
  import {
5
5
  parseFlags
6
6
  } from "./chunk-YPY4YCIZ.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-YU2EUD7O.js";
10
10
  import {
11
11
  NPX_LATEST_COMMAND
12
- } from "./chunk-R7FSMUHG.js";
12
+ } from "./chunk-6LZ7MXHD.js";
13
13
  import {
14
14
  CLAUDE_CONNECTOR_GUIDE,
15
15
  CLAUDE_CONNECTOR_STEPS,
@@ -17,7 +17,7 @@ import {
17
17
  CLAUDE_CONNECTOR_URL,
18
18
  COWORK_CONNECTOR_LIMIT,
19
19
  COWORK_STANDING_INSTRUCTIONS
20
- } from "./chunk-C5LIS3XM.js";
20
+ } from "./chunk-LQXUWXQP.js";
21
21
 
22
22
  // src/cli/cowork.ts
23
23
  import { readFileSync } from "fs";
@@ -25,7 +25,7 @@ import {
25
25
  reportableSessionId,
26
26
  toToolLookup,
27
27
  truncateLine
28
- } from "./chunk-C5LIS3XM.js";
28
+ } from "./chunk-LQXUWXQP.js";
29
29
 
30
30
  // ../hook-mapping/src/commit-receipt.ts
31
31
  var COMMIT_OUTPUT_MAX_LENGTH = 65536;
@@ -27,11 +27,11 @@ import {
27
27
  toolResultErrorText,
28
28
  transcriptTokensIn,
29
29
  transcriptUsageRequest
30
- } from "./chunk-7QWH257P.js";
30
+ } from "./chunk-JZT2LPRM.js";
31
31
  import {
32
32
  branchFor,
33
33
  repoKeyFor
34
- } from "./chunk-EMODTMHE.js";
34
+ } from "./chunk-6UK4K5RS.js";
35
35
  import {
36
36
  cancelQuestion,
37
37
  clientErrorKindOf,
@@ -39,39 +39,39 @@ import {
39
39
  reportClientError,
40
40
  sendNotification,
41
41
  waitForAnswer
42
- } from "./chunk-CNURORKI.js";
42
+ } from "./chunk-YU5XE6VC.js";
43
43
  import {
44
44
  isRetryable,
45
45
  withRetry
46
- } from "./chunk-V53QYJNY.js";
46
+ } from "./chunk-WPBWJMBZ.js";
47
47
  import {
48
48
  RETRY_ACK,
49
49
  readCommandAck,
50
50
  refusedReceiptMessage
51
- } from "./chunk-ZVJIJPQY.js";
51
+ } from "./chunk-BYKRAYGD.js";
52
52
  import {
53
53
  fetchAsCredential
54
- } from "./chunk-YCU7Y77H.js";
54
+ } from "./chunk-S7HGPKCL.js";
55
55
  import {
56
56
  getMachineId
57
- } from "./chunk-4Z7YVVKQ.js";
57
+ } from "./chunk-KS3PNTRT.js";
58
58
  import {
59
59
  reportedInstallSource
60
- } from "./chunk-BHKODM4L.js";
60
+ } from "./chunk-MOC2DN42.js";
61
61
  import {
62
62
  IDLE_PROMPT_NOTIFICATION,
63
63
  NOTIFICATION_PUSH_TYPES,
64
64
  POSTTOOLUSE_MIRROR_ONLY_TOOLS,
65
65
  claudeConfigDir
66
- } from "./chunk-IG7NGXBS.js";
66
+ } from "./chunk-72LP4RPC.js";
67
67
  import {
68
68
  compareVersion,
69
69
  parseVersion
70
- } from "./chunk-QFZNPZRO.js";
70
+ } from "./chunk-VTJ4WZOC.js";
71
71
  import {
72
72
  getApiKey,
73
73
  getBaseUrl
74
- } from "./chunk-4EBJ4PTZ.js";
74
+ } from "./chunk-BWREST4F.js";
75
75
  import {
76
76
  writeFileAtomic,
77
77
  writeJsonAtomicDurable
@@ -100,7 +100,7 @@ import {
100
100
  resolveAutoResolveOrigin,
101
101
  resolvePolicy,
102
102
  unansweredRefusalReason
103
- } from "./chunk-C5LIS3XM.js";
103
+ } from "./chunk-LQXUWXQP.js";
104
104
 
105
105
  // src/pending.ts
106
106
  import { join } from "path";
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  macAppBridgeAvailable
3
- } from "./chunk-SYZF5SDG.js";
3
+ } from "./chunk-GK5X2ZTN.js";
4
4
  import {
5
5
  keyPrefix
6
- } from "./chunk-HIIXYZYV.js";
6
+ } from "./chunk-WOSO4YFQ.js";
7
7
  import {
8
8
  bridgeAgentKey
9
- } from "./chunk-IG7NGXBS.js";
9
+ } from "./chunk-72LP4RPC.js";
10
10
  import {
11
11
  readJsonSafe
12
12
  } from "./chunk-TODDEIYG.js";
13
13
  import {
14
14
  isRecord,
15
15
  isValidApiKey
16
- } from "./chunk-C5LIS3XM.js";
16
+ } from "./chunk-LQXUWXQP.js";
17
17
 
18
18
  // src/shared-mcp-key.ts
19
19
  var asRecord = (value) => value !== null && typeof value === "object" && !Array.isArray(value) ? value : void 0;
@@ -536,8 +536,8 @@ var loadedOnce = (load) => {
536
536
  };
537
537
 
538
538
  // src/codex-desktop-proxy.ts
539
- var loadThePhone = () => import("./api-2YC2KSIM.js");
540
- var loadTheCardRouting = () => import("./codex-card-routing-I6YOJBTT.js");
539
+ var loadThePhone = () => import("./api-KWJQMO6G.js");
540
+ var loadTheCardRouting = () => import("./codex-card-routing-EVL5L36G.js");
541
541
  var theFirstCardLoadsAgain = () => {
542
542
  };
543
543
  var ASKS_WITHOUT_ROUTING = {};
@@ -1097,7 +1097,7 @@ var codexDesktopCommand = async (args, entry, readAccount) => {
1097
1097
  return runCodexDesktopProxy(engine2, args.slice(3), readAccount, { watchesForCards: layoutIsKnown });
1098
1098
  }
1099
1099
  if (args[0] === APP_CARDS_FLAG) {
1100
- const { codexAppCardsCommandOnThisMac } = await import("./codex-app-cards-switch-EGUHSLTG.js");
1100
+ const { codexAppCardsCommandOnThisMac } = await import("./codex-app-cards-switch-F7WQ7Y3I.js");
1101
1101
  return codexAppCardsCommandOnThisMac(args.slice(1), entry, readAccount);
1102
1102
  }
1103
1103
  if (args.length > 2) throw new Error("Usage: pushary codex --desktop [path/to/Codex.app]");
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-IG7NGXBS.js";
3
+ } from "./chunk-72LP4RPC.js";
4
4
  import {
5
5
  readRegularJsonFile,
6
6
  writeFileAtomic
@@ -13,7 +13,7 @@ import {
13
13
  serializeDeclinedAgents,
14
14
  withDeclinedAgent,
15
15
  withoutDeclinedAgent
16
- } from "./chunk-C5LIS3XM.js";
16
+ } from "./chunk-LQXUWXQP.js";
17
17
 
18
18
  // src/declined-agents-file.ts
19
19
  import { join } from "path";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-IG7NGXBS.js";
3
+ } from "./chunk-72LP4RPC.js";
4
4
  import {
5
5
  writeFileAtomic
6
6
  } from "./chunk-TODDEIYG.js";
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  pusharyHookExecutable
3
- } from "./chunk-3VOUWGFF.js";
3
+ } from "./chunk-CUR2DCZN.js";
4
4
  import {
5
5
  bridgeResolvesToApp,
6
6
  cursorUserHooks,
7
7
  executableFileName,
8
8
  isBridgeLocator,
9
9
  liveBridgeProbe
10
- } from "./chunk-IG7NGXBS.js";
10
+ } from "./chunk-72LP4RPC.js";
11
11
  import {
12
12
  atLeast,
13
13
  parseVersion
14
- } from "./chunk-QFZNPZRO.js";
14
+ } from "./chunk-VTJ4WZOC.js";
15
15
  import {
16
16
  CURSOR_GATE_COVERAGE,
17
17
  CURSOR_GATE_SCRIPT,
@@ -21,7 +21,7 @@ import {
21
21
  isCursorHookPayload,
22
22
  isRecord,
23
23
  toolsCoveredByGateEntry
24
- } from "./chunk-C5LIS3XM.js";
24
+ } from "./chunk-LQXUWXQP.js";
25
25
 
26
26
  // src/cursor-gate-registration.ts
27
27
  import { dirname, isAbsolute, join, resolve } from "path";
@@ -7,7 +7,7 @@ import {
7
7
  } from "./chunk-BG4HHB7E.js";
8
8
  import {
9
9
  redactSecretsFromContent
10
- } from "./chunk-C5LIS3XM.js";
10
+ } from "./chunk-LQXUWXQP.js";
11
11
 
12
12
  // src/cli/json.ts
13
13
  var writeStdoutFully = (text) => new Promise((resolve, reject) => {
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  readExistingMachineId
3
- } from "./chunk-4Z7YVVKQ.js";
3
+ } from "./chunk-KS3PNTRT.js";
4
4
  import {
5
5
  NetworkError
6
6
  } from "./chunk-YU2EUD7O.js";
7
7
  import {
8
8
  getBaseUrl
9
- } from "./chunk-4EBJ4PTZ.js";
9
+ } from "./chunk-BWREST4F.js";
10
10
  import {
11
11
  getPackageVersion
12
12
  } from "./chunk-WIIMW5YO.js";
13
13
  import {
14
14
  clientContextHeaders,
15
15
  redactSecretsFromContent
16
- } from "./chunk-C5LIS3XM.js";
16
+ } from "./chunk-LQXUWXQP.js";
17
17
 
18
18
  // src/cli/net.ts
19
19
  import { createRequire } from "module";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  RETRY_ACK,
6
6
  refusedReceiptMessage
7
- } from "./chunk-ZVJIJPQY.js";
7
+ } from "./chunk-BYKRAYGD.js";
8
8
 
9
9
  // src/command-receipts.ts
10
10
  import { randomUUID } from "crypto";
@@ -519,6 +519,13 @@ var AGENTS = {
519
519
  setupGuide: "[Grok Bot setup](/docs/agents/guides/grok-bot)",
520
520
  capabilityNote: "Grok Bot keeps its own approval cards, and Pushary cannot stop a Bot in the middle of a task. A question nobody answers expires after about ten minutes and is never treated as a yes."
521
521
  },
522
+ muse: {
523
+ ...defaults,
524
+ label: "Muse",
525
+ connectVia: "Muse custom connector (remote MCP)",
526
+ documented: false,
527
+ capabilityNote: "Muse keeps its own confirmations, and Pushary cannot stop Muse in the middle of a task. Muse decides when to ask through Pushary. A question nobody answers expires after about ten minutes and is never treated as a yes."
528
+ },
522
529
  windsurf: {
523
530
  ...defaults,
524
531
  label: "Windsurf",
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-POFBE6ZY.js";
4
4
  import {
5
5
  autoUpdateState
6
- } from "./chunk-IG7NGXBS.js";
6
+ } from "./chunk-72LP4RPC.js";
7
7
  import {
8
8
  readJsonSafe,
9
9
  writeJsonAtomic
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-WIIMW5YO.js";
18
18
  import {
19
19
  isAutoUpdateResult
20
- } from "./chunk-C5LIS3XM.js";
20
+ } from "./chunk-LQXUWXQP.js";
21
21
 
22
22
  // src/auto-update.ts
23
23
  import { spawn } from "child_process";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  ensureCodexTrustsPusharyHooks
3
- } from "./chunk-HLWS6ADK.js";
3
+ } from "./chunk-ZORBUQFG.js";
4
4
  import {
5
5
  hermesReceiptPaths,
6
6
  hermesSetupPredatesThePluginFolder,
7
7
  installHermesPlugin,
8
8
  refreshHermesPluginFiles,
9
9
  shippedHermesPlugin
10
- } from "./chunk-KP6FVUCC.js";
10
+ } from "./chunk-ZSOCJHL7.js";
11
11
  import {
12
12
  fxIgnoresInstructionsFile,
13
13
  fxInstructionsBody,
@@ -16,7 +16,7 @@ import {
16
16
  macAppFxBridge,
17
17
  refreshClineKey,
18
18
  switchFxHttpEntryToBridge
19
- } from "./chunk-ZDOTNMGL.js";
19
+ } from "./chunk-YNCVSKUW.js";
20
20
  import {
21
21
  OPENCODE_HOOK_BINARY,
22
22
  agentHookOwner,
@@ -28,16 +28,16 @@ import {
28
28
  openCodePluginDir,
29
29
  openCodeWired,
30
30
  withOpenCodeAskRules
31
- } from "./chunk-SYZF5SDG.js";
31
+ } from "./chunk-GK5X2ZTN.js";
32
32
  import {
33
33
  detectClaudeVersion
34
- } from "./chunk-UIZE4YMU.js";
34
+ } from "./chunk-DZIZ3XFL.js";
35
35
  import {
36
36
  addCompatibleHooks,
37
37
  compatibleConfigFile,
38
38
  compatibleInstructionsFile,
39
39
  hasCompatibleHooks
40
- } from "./chunk-5RSM5DRT.js";
40
+ } from "./chunk-R34RWVN2.js";
41
41
  import {
42
42
  GEMINI_HOOK_BINARY,
43
43
  addGeminiHooks,
@@ -49,10 +49,10 @@ import {
49
49
  geminiWired,
50
50
  hasGeminiHooks,
51
51
  planHooks
52
- } from "./chunk-3VOUWGFF.js";
52
+ } from "./chunk-CUR2DCZN.js";
53
53
  import {
54
54
  KEY_FILE_MODE
55
- } from "./chunk-HIIXYZYV.js";
55
+ } from "./chunk-WOSO4YFQ.js";
56
56
  import {
57
57
  CLAUDE_HOOK_BINARY,
58
58
  CLAUDE_HOOK_EVENTS,
@@ -99,13 +99,13 @@ import {
99
99
  renderAgentInstructions,
100
100
  supportedClaudeEvents,
101
101
  vscodePluginMcp
102
- } from "./chunk-IG7NGXBS.js";
102
+ } from "./chunk-72LP4RPC.js";
103
103
  import {
104
104
  formatVersion,
105
105
  hookCommandsUseBareNames,
106
106
  resolveGlobalBinDir,
107
107
  resolveGlobalBinary
108
- } from "./chunk-QFZNPZRO.js";
108
+ } from "./chunk-VTJ4WZOC.js";
109
109
  import {
110
110
  readJsonSafe,
111
111
  writeFileAtomic,
@@ -115,7 +115,7 @@ import {
115
115
  HOOK_COMPATIBLE_PROFILES,
116
116
  isCompatibleAgentType,
117
117
  isRecord
118
- } from "./chunk-C5LIS3XM.js";
118
+ } from "./chunk-LQXUWXQP.js";
119
119
 
120
120
  // src/reapply.ts
121
121
  import { dirname, join } from "path";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  configFilePath
3
- } from "./chunk-4EBJ4PTZ.js";
3
+ } from "./chunk-BWREST4F.js";
4
4
  import {
5
5
  normalizeInstallSource
6
- } from "./chunk-C5LIS3XM.js";
6
+ } from "./chunk-LQXUWXQP.js";
7
7
 
8
8
  // src/install-source.ts
9
9
  import { readFileSync } from "fs";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  claudeConfigDir
3
- } from "./chunk-IG7NGXBS.js";
3
+ } from "./chunk-72LP4RPC.js";
4
4
  import {
5
5
  claudePermissionRulesFromSettings
6
- } from "./chunk-C5LIS3XM.js";
6
+ } from "./chunk-LQXUWXQP.js";
7
7
 
8
8
  // src/claude-permission-rules.ts
9
9
  import { readFileSync, statSync } from "fs";
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  UNNAMED_ACTION
3
- } from "./chunk-7QWH257P.js";
3
+ } from "./chunk-JZT2LPRM.js";
4
4
  import {
5
5
  askUser,
6
6
  isAwayPaused,
7
7
  isLocalQuestionHandoff,
8
8
  unavailableQuestionUnlessRefused,
9
9
  waitForQuestion
10
- } from "./chunk-CNURORKI.js";
10
+ } from "./chunk-YU5XE6VC.js";
11
11
  import {
12
12
  getMachineId
13
- } from "./chunk-4Z7YVVKQ.js";
13
+ } from "./chunk-KS3PNTRT.js";
14
14
  import {
15
15
  hookWaitClamped,
16
16
  hookWaitDeadline,
17
17
  scopeBreachReasonOf
18
- } from "./chunk-C5LIS3XM.js";
18
+ } from "./chunk-LQXUWXQP.js";
19
19
 
20
20
  // src/pushed-question.ts
21
21
  var scopeQuestionOf = (verdict) => {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-IG7NGXBS.js";
3
+ } from "./chunk-72LP4RPC.js";
4
4
  import {
5
5
  readJsonSafe
6
6
  } from "./chunk-TODDEIYG.js";
7
7
  import {
8
8
  isRecord
9
- } from "./chunk-C5LIS3XM.js";
9
+ } from "./chunk-LQXUWXQP.js";
10
10
 
11
11
  // src/process-ownership.ts
12
12
  import { createHash, randomUUID } from "crypto";
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  APPROVAL_RULES_PATH,
3
3
  canChangeApprovalSettings
4
- } from "./chunk-TKFNIDZK.js";
4
+ } from "./chunk-YZA3YBHX.js";
5
5
  import {
6
6
  callMcpTool
7
- } from "./chunk-V53QYJNY.js";
7
+ } from "./chunk-WPBWJMBZ.js";
8
8
  import {
9
9
  absoluteUrl
10
- } from "./chunk-DZLLKJJT.js";
10
+ } from "./chunk-YRJZF5RG.js";
11
11
  import {
12
12
  getBaseUrl
13
- } from "./chunk-4EBJ4PTZ.js";
13
+ } from "./chunk-BWREST4F.js";
14
14
  import {
15
15
  NPX_LATEST_COMMAND
16
- } from "./chunk-R7FSMUHG.js";
16
+ } from "./chunk-6LZ7MXHD.js";
17
17
  import {
18
18
  AGENT_STOP_DEFAULT_SECONDS,
19
19
  APPROVAL_MODE_META,
@@ -21,7 +21,7 @@ import {
21
21
  classifyConfirmResponse,
22
22
  isAnswerSource,
23
23
  roundTripAsk
24
- } from "./chunk-C5LIS3XM.js";
24
+ } from "./chunk-LQXUWXQP.js";
25
25
 
26
26
  // src/reach.ts
27
27
  var reachVerdict = (channels) => {
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  openCodeConfigDirFrom
3
- } from "./chunk-SYZF5SDG.js";
3
+ } from "./chunk-GK5X2ZTN.js";
4
4
  import {
5
5
  nativeClaudeInstallPath
6
6
  } from "./chunk-CYTPQDQY.js";
7
7
  import {
8
8
  grokHome
9
- } from "./chunk-5RSM5DRT.js";
9
+ } from "./chunk-R34RWVN2.js";
10
10
  import {
11
11
  claudeConfigDir,
12
12
  clineDataDirectory,
13
13
  codexHomeFrom
14
- } from "./chunk-IG7NGXBS.js";
14
+ } from "./chunk-72LP4RPC.js";
15
15
  import {
16
16
  HOOK_COMPATIBLE_PROFILES
17
- } from "./chunk-C5LIS3XM.js";
17
+ } from "./chunk-LQXUWXQP.js";
18
18
 
19
19
  // src/vscode-config.ts
20
20
  import { homedir } from "os";
@@ -1,12 +1,18 @@
1
1
  import {
2
2
  CODEX_HOOK_STATUS
3
- } from "./chunk-HLWS6ADK.js";
3
+ } from "./chunk-ZORBUQFG.js";
4
+ import {
5
+ HERMES_ALWAYS_ALLOWED_SHELL_RULE,
6
+ HERMES_COMMAND_ALLOWLIST_KEY,
7
+ HERMES_GATE_TOOLS_KEY,
8
+ HERMES_SHELL_TOOL
9
+ } from "./chunk-ZSOCJHL7.js";
4
10
  import {
5
11
  retryAgentCommand
6
- } from "./chunk-XWYCFODT.js";
12
+ } from "./chunk-2ELNRGNX.js";
7
13
  import {
8
14
  NPX_LATEST_COMMAND
9
- } from "./chunk-R7FSMUHG.js";
15
+ } from "./chunk-6LZ7MXHD.js";
10
16
 
11
17
  // src/setup/codex-trust.ts
12
18
  var CODEX_TRUST_TELEMETRY = {
@@ -78,6 +84,8 @@ var describeCodexTrustConfirmation = (confirmation) => {
78
84
  // src/hermes/messages.ts
79
85
  var HERMES_RESTART_COMMAND = "hermes gateway restart";
80
86
  var HERMES_MAC_APP_REPAIR = "open Pushary on this Mac and connect Hermes again";
87
+ var HERMES_GATE_SHELL_FLAG = "--hermes-gate-terminal";
88
+ var hermesGateShellCommand = () => `${retryAgentCommand("hermes")} ${HERMES_GATE_SHELL_FLAG}`;
81
89
  var describeHermesInstallFailure = (reason, pluginDirectory, receiptPath) => {
82
90
  switch (reason) {
83
91
  case "home_unknown":
@@ -118,6 +126,58 @@ var describeHermesState = (state) => {
118
126
  return state.runningVersion === state.version ? "Hermes loaded Pushary" : `Hermes runs Pushary ${state.runningVersion ?? "from an older copy"}; restart it to load ${state.version ?? "the new copy"}`;
119
127
  }
120
128
  };
129
+ var ONLY_LISTED_TOOLS = `Pushary only gates the tools listed in ${HERMES_GATE_TOOLS_KEY}, and ${HERMES_SHELL_TOOL} is not one of them`;
130
+ var SKIP_DOUBTS = {
131
+ plugin_backend: "A terminal backend from a plugin may tell Hermes to skip its own approvals.",
132
+ docker_start_folder: "Hermes checks dangerous commands on docker only when it mounts a host folder. docker_mount_cwd_to_workspace mounts the folder Hermes starts in, but not /root or /workspace, so a gateway started there skips the check."
133
+ };
134
+ var shellGateFix = () => `run ${hermesGateShellCommand()}, then ${HERMES_RESTART_COMMAND}`;
135
+ var whyTheShellNeedsAGate = (backend, skip) => skip.kind === "skips" ? `Hermes skips its own dangerous-command approvals on the ${backend} backend, because it treats the container as the boundary.` : SKIP_DOUBTS[skip.doubt];
136
+ var ungatedLabel = (backend, skip) => skip.kind === "skips" ? `Hermes: no dangerous-command approvals reach your phone on the ${backend} backend` : `Hermes: dangerous-command approvals may not reach your phone on the ${backend} backend`;
137
+ var gatedDetail = (backend, skip) => {
138
+ const why = skip.kind === "skips" ? `Hermes skips its own approvals on the ${backend} backend` : `the ${backend} backend may skip Hermes's own approvals`;
139
+ return `${why}, and ${HERMES_GATE_TOOLS_KEY} includes ${HERMES_SHELL_TOOL}`;
140
+ };
141
+ var describeHermesShellGate = (state) => {
142
+ switch (state.kind) {
143
+ case "hermes_asks":
144
+ return { tone: "pass", label: "Hermes: checks dangerous commands before running them", detail: `terminal backend ${state.backend}` };
145
+ case "pushary_gates":
146
+ return { tone: "pass", label: `Hermes: Pushary gates every ${HERMES_SHELL_TOOL} command`, detail: gatedDetail(state.backend, state.skip) };
147
+ case "always_allowed":
148
+ return {
149
+ tone: "warn",
150
+ label: `Hermes: ${HERMES_SHELL_TOOL} commands run without asking`,
151
+ detail: `${HERMES_COMMAND_ALLOWLIST_KEY} holds ${HERMES_ALWAYS_ALLOWED_SHELL_RULE}, which "Always allow" adds, so Hermes lets every ${HERMES_SHELL_TOOL} command through before Pushary is asked`,
152
+ fix: `remove ${HERMES_ALWAYS_ALLOWED_SHELL_RULE} from ${HERMES_COMMAND_ALLOWLIST_KEY} in your Hermes config.yaml, then ${HERMES_RESTART_COMMAND}`
153
+ };
154
+ case "ungated":
155
+ return {
156
+ tone: "warn",
157
+ label: ungatedLabel(state.backend, state.skip),
158
+ detail: `${whyTheShellNeedsAGate(state.backend, state.skip)} ${ONLY_LISTED_TOOLS}`,
159
+ fix: shellGateFix()
160
+ };
161
+ case "unreadable":
162
+ return {
163
+ tone: "note",
164
+ label: "Hermes: terminal settings unknown",
165
+ detail: "Hermes did not report its terminal backend or docker mounts through hermes config get in a form Pushary can read, so it cannot say whether Hermes checks dangerous commands"
166
+ };
167
+ }
168
+ };
169
+ var describeHermesShellGateFailure = (reason, receiptPath) => {
170
+ switch (reason) {
171
+ case "receipt_missing":
172
+ return `${receiptPath} is missing, so setup cannot record what ${HERMES_GATE_TOOLS_KEY} held before. Run setup again.`;
173
+ case "receipt_invalid":
174
+ return `${receiptPath} is unreadable, so setup cannot record what ${HERMES_GATE_TOOLS_KEY} held before. Move it aside, then run setup again.`;
175
+ case "setting_unreadable":
176
+ return `${HERMES_GATE_TOOLS_KEY} holds a value setup cannot read as a list of tools, so it was left as it is. Add ${HERMES_SHELL_TOOL} to it yourself with hermes config set ${HERMES_GATE_TOOLS_KEY}.`;
177
+ case "setting_refused":
178
+ return `Hermes refused to change ${HERMES_GATE_TOOLS_KEY}. Add ${HERMES_SHELL_TOOL} to it yourself with hermes config set ${HERMES_GATE_TOOLS_KEY}.`;
179
+ }
180
+ };
121
181
 
122
182
  export {
123
183
  codexTrustOutcome,
@@ -128,8 +188,11 @@ export {
128
188
  needsCodexTrustStep,
129
189
  describeCodexTrustConfirmation,
130
190
  HERMES_RESTART_COMMAND,
191
+ hermesGateShellCommand,
131
192
  describeHermesInstallFailure,
132
193
  describeHermesProblems,
133
194
  hermesRepairStep,
134
- describeHermesState
195
+ describeHermesState,
196
+ describeHermesShellGate,
197
+ describeHermesShellGateFailure
135
198
  };
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  addGeminiMcpServer,
3
3
  removeGeminiMcpServer
4
- } from "./chunk-3VOUWGFF.js";
4
+ } from "./chunk-CUR2DCZN.js";
5
5
  import {
6
6
  CLAUDE_CODE_AGENT
7
- } from "./chunk-QGJK3NAR.js";
7
+ } from "./chunk-K2SKUBYY.js";
8
8
  import {
9
9
  compatibleToolLookup
10
- } from "./chunk-7QWH257P.js";
10
+ } from "./chunk-JZT2LPRM.js";
11
11
  import {
12
12
  CLAUDE_HOOK_EVENTS,
13
13
  PUSHARY_MCP_URL,
@@ -19,7 +19,7 @@ import {
19
19
  isPusharyHook,
20
20
  registerHookEntry,
21
21
  removeClaudeMcpServers
22
- } from "./chunk-IG7NGXBS.js";
22
+ } from "./chunk-72LP4RPC.js";
23
23
  import {
24
24
  HOOK_COMPATIBLE_PROFILES,
25
25
  PHONE_ANSWERED_TOOLS,
@@ -30,7 +30,7 @@ import {
30
30
  pusharyMissingReason,
31
31
  refusalOutput,
32
32
  withHookHoldBudget
33
- } from "./chunk-C5LIS3XM.js";
33
+ } from "./chunk-LQXUWXQP.js";
34
34
 
35
35
  // src/config-document.ts
36
36
  import { parse, stringify } from "smol-toml";
@@ -192,6 +192,7 @@ var AGENT_ENFORCEMENT = {
192
192
  fx: NO_HOOK,
193
193
  cline: NO_HOOK,
194
194
  grok_bot: NO_HOOK,
195
+ muse: NO_HOOK,
195
196
  windsurf: NO_HOOK,
196
197
  unknown: NO_HOOK,
197
198
  lovable: NO_HOOK,
@@ -9,13 +9,13 @@ import {
9
9
  installedCodexApp,
10
10
  readCodexAppRuntime,
11
11
  shellQuoted
12
- } from "./chunk-44Z6MQZ2.js";
12
+ } from "./chunk-KGFB2LEB.js";
13
13
  import {
14
14
  writeHuman
15
15
  } from "./chunk-QCGNGEGE.js";
16
16
  import {
17
17
  xml
18
- } from "./chunk-ZF4CPOO7.js";
18
+ } from "./chunk-WH4ODOCE.js";
19
19
  import {
20
20
  writeFileAtomic
21
21
  } from "./chunk-TODDEIYG.js";