pushary 1.9.22 → 1.9.23

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 (99) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/bin/pushary-bell-hook.js +25 -25
  3. package/dist/bin/pushary-bell.js +9 -9
  4. package/dist/bin/pushary-claude.js +24 -24
  5. package/dist/bin/pushary-clean.js +28 -28
  6. package/dist/bin/pushary-codex-bridge.js +17 -17
  7. package/dist/bin/pushary-codex-hook.js +33 -31
  8. package/dist/bin/pushary-codex.js +12 -12
  9. package/dist/bin/pushary-connect.js +24 -24
  10. package/dist/bin/pushary-cowork.js +5 -5
  11. package/dist/bin/pushary-daemon.js +31 -31
  12. package/dist/bin/pushary-disconnect.js +24 -24
  13. package/dist/bin/pushary-doctor.js +33 -33
  14. package/dist/bin/pushary-elicitation-hook.js +25 -25
  15. package/dist/bin/pushary-gemini-bridge.js +13 -13
  16. package/dist/bin/pushary-gemini-hook.js +27 -27
  17. package/dist/bin/pushary-hook.js +29 -29
  18. package/dist/bin/pushary-login.js +12 -12
  19. package/dist/bin/pushary-logout.js +12 -12
  20. package/dist/bin/pushary-mcp.js +9 -9
  21. package/dist/bin/pushary-mode.js +12 -12
  22. package/dist/bin/pushary-notification-hook.js +24 -24
  23. package/dist/bin/pushary-opencode-hook.js +26 -26
  24. package/dist/bin/pushary-permission-denied-hook.js +29 -29
  25. package/dist/bin/pushary-permission-hook.js +28 -28
  26. package/dist/bin/pushary-post-hook.js +24 -24
  27. package/dist/bin/pushary-prompt-hook.js +24 -24
  28. package/dist/bin/pushary-session-end-hook.js +24 -24
  29. package/dist/bin/pushary-session-start-hook.js +28 -28
  30. package/dist/bin/pushary-setup.js +40 -39
  31. package/dist/bin/pushary-stats.js +5 -5
  32. package/dist/bin/pushary-status.js +26 -26
  33. package/dist/bin/pushary-stop-hook.js +24 -24
  34. package/dist/bin/pushary-stopfailure-hook.js +24 -24
  35. package/dist/bin/pushary-suggestions.js +12 -12
  36. package/dist/bin/pushary-transcript-register.js +17 -17
  37. package/dist/bin/pushary-transcripts.js +7 -7
  38. package/dist/bin/pushary-upgrade.js +30 -30
  39. package/dist/bin/pushary-wait.js +12 -12
  40. package/dist/bin/pushary.js +6 -6
  41. package/dist/{chunk-KCLWVCGN.js → chunk-2AUKCSLQ.js} +4 -4
  42. package/dist/{chunk-AGIO7SF5.js → chunk-4GKQDFH6.js} +5 -5
  43. package/dist/{chunk-YPZ4AE2R.js → chunk-6GHZAS7S.js} +4 -4
  44. package/dist/{chunk-5TLRS3AK.js → chunk-6HT2TUZD.js} +2 -2
  45. package/dist/{chunk-DV26ZWUC.js → chunk-73HGV4R6.js} +2 -2
  46. package/dist/{chunk-UFGU7AK3.js → chunk-7J2AX5T6.js} +2 -2
  47. package/dist/{chunk-YGR5PBOF.js → chunk-7RGEJOQS.js} +3 -3
  48. package/dist/{chunk-TSFNX5J2.js → chunk-A5U62Q6K.js} +5 -5
  49. package/dist/{chunk-OZVZGWER.js → chunk-AFP3HZVK.js} +1 -1
  50. package/dist/{chunk-6IOLTFNP.js → chunk-AQ3TSQA2.js} +3 -3
  51. package/dist/{chunk-LH3GTSXC.js → chunk-AV5VX7OK.js} +8 -8
  52. package/dist/{chunk-SGUGGHMC.js → chunk-AXSHPFU3.js} +3 -3
  53. package/dist/{chunk-YI543EKI.js → chunk-BY5EKA6W.js} +3 -3
  54. package/dist/{chunk-KH2EDRJQ.js → chunk-CJTQNUUT.js} +2 -2
  55. package/dist/{chunk-G5YMVGAK.js → chunk-DKBPNHAI.js} +4 -4
  56. package/dist/{chunk-6SFTI7LM.js → chunk-E2LGKG75.js} +3 -3
  57. package/dist/{chunk-U2IEM5FF.js → chunk-EDN4F6GX.js} +1 -1
  58. package/dist/{chunk-AR4NXO4Q.js → chunk-FBV2KS3Z.js} +2 -2
  59. package/dist/{chunk-2MW4OHWI.js → chunk-FIYCICHC.js} +2 -2
  60. package/dist/{chunk-T57BCGHQ.js → chunk-GN6BJXC7.js} +1 -1
  61. package/dist/{chunk-CW3QUV6B.js → chunk-GYP6DLA4.js} +8 -8
  62. package/dist/{chunk-3BWW4UMT.js → chunk-HXZG5WHU.js} +2 -2
  63. package/dist/{chunk-JQVGCDHW.js → chunk-I46QTKYI.js} +5 -5
  64. package/dist/{chunk-Z7KB4R6U.js → chunk-ISAKLEKE.js} +7 -7
  65. package/dist/{chunk-4PERN2SO.js → chunk-JCEUDLGW.js} +1 -1
  66. package/dist/{chunk-5AZ546F6.js → chunk-JNKHCGHR.js} +1 -1
  67. package/dist/{chunk-6TSEEKPL.js → chunk-K2EYK5RL.js} +4 -4
  68. package/dist/{chunk-BDV4WDIA.js → chunk-KJA6IGOZ.js} +1 -1
  69. package/dist/{chunk-TZWZVAMN.js → chunk-LEQRIJ4H.js} +1 -1
  70. package/dist/{chunk-WE2RVY7V.js → chunk-M6R3SZZS.js} +1 -1
  71. package/dist/{chunk-P345G4DK.js → chunk-M7DCI44L.js} +1 -1
  72. package/dist/{chunk-E3FSKKTJ.js → chunk-N4DMADJM.js} +1 -1
  73. package/dist/{chunk-ARJSQUIS.js → chunk-NHBPW6C4.js} +2 -2
  74. package/dist/{chunk-YR3DHPYI.js → chunk-NSCETODW.js} +1 -1
  75. package/dist/{chunk-GFXZDU4V.js → chunk-OH647UT3.js} +14 -2
  76. package/dist/{chunk-E7HOX73X.js → chunk-OH6OGEOY.js} +4 -4
  77. package/dist/{chunk-75MJRC5I.js → chunk-OQPEHKH2.js} +1 -1
  78. package/dist/{chunk-4AO2OVUA.js → chunk-PFB7P4F3.js} +6 -6
  79. package/dist/{chunk-GNQZY4GL.js → chunk-QFNY4KUQ.js} +1 -1
  80. package/dist/{chunk-E7EOUEGQ.js → chunk-QIODXPTP.js} +4 -4
  81. package/dist/{chunk-U26CAOZC.js → chunk-R5C3QCVT.js} +1 -1
  82. package/dist/{chunk-KCXG2INQ.js → chunk-RHIKMNWJ.js} +2 -2
  83. package/dist/{chunk-BDGKWUK2.js → chunk-RN5NRRHX.js} +2 -2
  84. package/dist/{chunk-ZUOIDI6M.js → chunk-S2R2U5W5.js} +4 -4
  85. package/dist/{chunk-YODL2CJV.js → chunk-SLBO7PHS.js} +2 -2
  86. package/dist/{chunk-N2JP3RKP.js → chunk-SSWK2WYX.js} +5 -5
  87. package/dist/{chunk-TH3HKKGW.js → chunk-SWQLZQE3.js} +15 -13
  88. package/dist/{chunk-GWKT2ZZS.js → chunk-USUI4P63.js} +2 -2
  89. package/dist/{chunk-WAKQYJ6T.js → chunk-XBETSM5T.js} +3 -3
  90. package/dist/{chunk-XDTYGS6R.js → chunk-YXHVMZPR.js} +4 -4
  91. package/dist/{chunk-76YNWUXC.js → chunk-YZPFJCFE.js} +1 -1
  92. package/dist/{chunk-NB2PY5JX.js → chunk-Z4UDB7EC.js} +3 -3
  93. package/dist/{chunk-U4OWRGYI.js → chunk-ZGYO6OQE.js} +5 -5
  94. package/dist/{global-upgrade-F3QY6OHE.js → global-upgrade-SKY7A3SI.js} +6 -6
  95. package/dist/{paths-CBEAZNJR.js → paths-XUUEK7OU.js} +2 -2
  96. package/dist/{reapply-4HP6N7LY.js → reapply-WQDP26EA.js} +20 -20
  97. package/dist/src/index.js +19 -19
  98. package/dist/{upgrade-lock-N3G5V2QS.js → upgrade-lock-AYW3TB7X.js} +3 -3
  99. package/package.json +1 -1
@@ -3,11 +3,11 @@ import {
3
3
  decodePublicKey,
4
4
  generateSessionKey,
5
5
  wrapSessionKey
6
- } from "./chunk-E3FSKKTJ.js";
6
+ } from "./chunk-N4DMADJM.js";
7
7
  import {
8
8
  fetchTranscriptRecipients,
9
9
  uploadTranscriptRecords
10
- } from "./chunk-GNQZY4GL.js";
10
+ } from "./chunk-QFNY4KUQ.js";
11
11
 
12
12
  // src/live-session.ts
13
13
  var MAX_TRANSCRIPT_QUEUE = 100;
@@ -10,10 +10,10 @@ import {
10
10
  resolvePackageVersionFromBinary,
11
11
  resolvePathBinary,
12
12
  resolvePathBinaryAsync
13
- } from "./chunk-E7EOUEGQ.js";
13
+ } from "./chunk-QIODXPTP.js";
14
14
  import {
15
15
  MANAGED_PROVIDERS
16
- } from "./chunk-GFXZDU4V.js";
16
+ } from "./chunk-OH647UT3.js";
17
17
 
18
18
  // src/setup/codex-install.ts
19
19
  var NATIVE_BINARY_MIN_BYTES = 20 * 1024 * 1024;
@@ -5,16 +5,16 @@ import {
5
5
  import {
6
6
  NOTIFICATION_MATCHED_TYPES,
7
7
  POSTTOOLUSE_MIRRORED_TOOLS
8
- } from "./chunk-BDV4WDIA.js";
8
+ } from "./chunk-KJA6IGOZ.js";
9
9
  import {
10
10
  isProtectedByScope,
11
11
  registerHookEntry
12
- } from "./chunk-E7EOUEGQ.js";
12
+ } from "./chunk-QIODXPTP.js";
13
13
  import {
14
14
  CLAUDE_PRETOOLUSE_MATCHER,
15
15
  HOOK_BUDGETS,
16
16
  HOOK_LOCATOR_BINARY
17
- } from "./chunk-GFXZDU4V.js";
17
+ } from "./chunk-OH647UT3.js";
18
18
 
19
19
  // src/gemini-config.ts
20
20
  var GEMINI_HOOK_BINARY = "pushary-gemini-hook";
@@ -2,23 +2,23 @@ import {
2
2
  CLAUDE_HOOK_EVENTS,
3
3
  GEMINI_HOOK_EVENTS,
4
4
  hasGeminiHooks
5
- } from "./chunk-YGR5PBOF.js";
5
+ } from "./chunk-7RGEJOQS.js";
6
6
  import {
7
7
  AGENT_CHOICES
8
- } from "./chunk-U26CAOZC.js";
8
+ } from "./chunk-R5C3QCVT.js";
9
9
  import {
10
10
  BELL_HOOK_BINARY
11
- } from "./chunk-OZVZGWER.js";
11
+ } from "./chunk-AFP3HZVK.js";
12
12
  import {
13
13
  CODEX_HOOK_EVENTS,
14
14
  hasCodexHooks,
15
15
  holdBudgetOf
16
- } from "./chunk-E7EOUEGQ.js";
16
+ } from "./chunk-QIODXPTP.js";
17
17
  import {
18
18
  CURSOR_GATE_EVENTS,
19
19
  HOOK_LOCATOR_BINARY,
20
20
  hookCommandHoldBudget
21
- } from "./chunk-GFXZDU4V.js";
21
+ } from "./chunk-OH647UT3.js";
22
22
 
23
23
  // src/diagnostics/bridge.ts
24
24
  import { execFileSync } from "child_process";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  guardBinary
3
- } from "./chunk-E7EOUEGQ.js";
3
+ } from "./chunk-QIODXPTP.js";
4
4
 
5
5
  // src/bell/install.ts
6
6
  import { join } from "path";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveInstallSourceFor
3
- } from "./chunk-5TLRS3AK.js";
3
+ } from "./chunk-6HT2TUZD.js";
4
4
  import {
5
5
  backupFile,
6
6
  readJsonSafe,
@@ -9,11 +9,11 @@ import {
9
9
  } from "./chunk-AQFEP65J.js";
10
10
  import {
11
11
  configFilePath
12
- } from "./chunk-75MJRC5I.js";
12
+ } from "./chunk-OQPEHKH2.js";
13
13
  import {
14
14
  API_KEY_PREFIX_PATTERN,
15
15
  isRecord
16
- } from "./chunk-GFXZDU4V.js";
16
+ } from "./chunk-OH647UT3.js";
17
17
 
18
18
  // src/shell-alias.ts
19
19
  import { homedir } from "os";
@@ -6,38 +6,38 @@ import {
6
6
  } from "./chunk-VTR4VRL2.js";
7
7
  import {
8
8
  ensureDaemonRunning
9
- } from "./chunk-N2JP3RKP.js";
9
+ } from "./chunk-SSWK2WYX.js";
10
10
  import {
11
11
  buildTranscriptRecords,
12
12
  decodePublicKey,
13
13
  generateSessionKey,
14
14
  wrapSessionKey
15
- } from "./chunk-E3FSKKTJ.js";
15
+ } from "./chunk-N4DMADJM.js";
16
16
  import {
17
17
  fetchTranscriptRecipients,
18
18
  uploadTranscriptRecords
19
- } from "./chunk-GNQZY4GL.js";
19
+ } from "./chunk-QFNY4KUQ.js";
20
20
  import {
21
21
  transcriptEnvironmentPreference,
22
22
  transcriptsEnabled
23
- } from "./chunk-WE2RVY7V.js";
23
+ } from "./chunk-M6R3SZZS.js";
24
24
  import {
25
25
  hookOwnerOf
26
- } from "./chunk-TSFNX5J2.js";
26
+ } from "./chunk-A5U62Q6K.js";
27
27
  import {
28
28
  readTranscriptPreference
29
- } from "./chunk-6IOLTFNP.js";
29
+ } from "./chunk-AQ3TSQA2.js";
30
30
  import {
31
31
  codexHome,
32
32
  pusharyDir
33
- } from "./chunk-E7EOUEGQ.js";
33
+ } from "./chunk-QIODXPTP.js";
34
34
  import {
35
35
  writeJsonAtomic
36
36
  } from "./chunk-AQFEP65J.js";
37
37
  import {
38
38
  getApiKey,
39
39
  getBaseUrl
40
- } from "./chunk-75MJRC5I.js";
40
+ } from "./chunk-OQPEHKH2.js";
41
41
 
42
42
  // src/transcript-registration.ts
43
43
  import { createHash } from "crypto";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  openCodeConfigDirFrom
3
- } from "./chunk-U4OWRGYI.js";
3
+ } from "./chunk-ZGYO6OQE.js";
4
4
  import {
5
5
  codexHomeFrom,
6
6
  resolvePathBinary
7
- } from "./chunk-E7EOUEGQ.js";
7
+ } from "./chunk-QIODXPTP.js";
8
8
  import {
9
9
  HOOK_COMPATIBLE_PROFILES
10
- } from "./chunk-GFXZDU4V.js";
10
+ } from "./chunk-OH647UT3.js";
11
11
 
12
12
  // src/hermes-config.ts
13
13
  import { execFileSync } from "child_process";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SETUP_FLAGS
3
- } from "./chunk-U26CAOZC.js";
3
+ } from "./chunk-R5C3QCVT.js";
4
4
  import {
5
5
  parseFlags
6
6
  } from "./chunk-GMXKITVA.js";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-7QLSKOSU.js";
10
10
  import {
11
11
  NPX_LATEST_COMMAND
12
- } from "./chunk-TZWZVAMN.js";
12
+ } from "./chunk-LEQRIJ4H.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-GFXZDU4V.js";
20
+ } from "./chunk-OH647UT3.js";
21
21
 
22
22
  // src/cli/cowork.ts
23
23
  import { readFileSync } from "fs";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-E7EOUEGQ.js";
3
+ } from "./chunk-QIODXPTP.js";
4
4
  import {
5
5
  readJsonSafe
6
6
  } from "./chunk-AQFEP65J.js";
7
7
  import {
8
8
  isRecord
9
- } from "./chunk-GFXZDU4V.js";
9
+ } from "./chunk-OH647UT3.js";
10
10
 
11
11
  // src/process-ownership.ts
12
12
  import { createHash, randomUUID } from "crypto";
@@ -14,19 +14,19 @@ import {
14
14
  } from "./chunk-FO3MDD26.js";
15
15
  import {
16
16
  callMcpTool
17
- } from "./chunk-6SFTI7LM.js";
17
+ } from "./chunk-E2LGKG75.js";
18
18
  import {
19
19
  reportedInstallSource
20
- } from "./chunk-5TLRS3AK.js";
20
+ } from "./chunk-6HT2TUZD.js";
21
21
  import {
22
22
  NPX_LATEST_COMMAND
23
- } from "./chunk-TZWZVAMN.js";
23
+ } from "./chunk-LEQRIJ4H.js";
24
24
  import {
25
25
  NO_PAIRING_COMPUTER,
26
26
  PAIR_TTL_SECONDS,
27
27
  classifyConfirmResponse,
28
28
  isAnswerSource
29
- } from "./chunk-GFXZDU4V.js";
29
+ } from "./chunk-OH647UT3.js";
30
30
 
31
31
  // src/reach.ts
32
32
  var reachVerdict = (channels) => {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  keyCheckFromResponse
3
- } from "./chunk-NB2PY5JX.js";
3
+ } from "./chunk-Z4UDB7EC.js";
4
4
  import {
5
5
  installNetworkDefaults
6
- } from "./chunk-WAKQYJ6T.js";
6
+ } from "./chunk-XBETSM5T.js";
7
7
  import {
8
8
  getBaseUrl
9
- } from "./chunk-75MJRC5I.js";
9
+ } from "./chunk-OQPEHKH2.js";
10
10
 
11
11
  // src/retry.ts
12
12
  var isRetryable = (err) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-E7EOUEGQ.js";
3
+ } from "./chunk-QIODXPTP.js";
4
4
  import {
5
5
  writeFileAtomic
6
6
  } from "./chunk-AQFEP65J.js";
@@ -6,12 +6,12 @@ import {
6
6
  permissionDeniedAction,
7
7
  releaseThrottle,
8
8
  reportEvent
9
- } from "./chunk-CW3QUV6B.js";
9
+ } from "./chunk-GYP6DLA4.js";
10
10
  import {
11
11
  machineDecisionFor,
12
12
  shouldDeferToNativeMode,
13
13
  wireVerdictFor
14
- } from "./chunk-GFXZDU4V.js";
14
+ } from "./chunk-OH647UT3.js";
15
15
 
16
16
  // src/machine-decision-audit.ts
17
17
  import { basename } from "path";
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-KZERVKTD.js";
4
4
  import {
5
5
  renderCommandHelp
6
- } from "./chunk-TZWZVAMN.js";
6
+ } from "./chunk-LEQRIJ4H.js";
7
7
  import {
8
8
  getPackageVersion
9
- } from "./chunk-GFXZDU4V.js";
9
+ } from "./chunk-OH647UT3.js";
10
10
 
11
11
  // src/cli/usage.ts
12
12
  var exitOnHelpFlag = (command) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isSafeReadOnlyCommand
3
- } from "./chunk-GFXZDU4V.js";
3
+ } from "./chunk-OH647UT3.js";
4
4
 
5
5
  // src/ledger.ts
6
6
  import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync } from "fs";
@@ -2,7 +2,7 @@ import {
2
2
  IDLE_PROMPT_NOTIFICATION,
3
3
  NOTIFICATION_PUSH_TYPES,
4
4
  POSTTOOLUSE_MIRROR_ONLY_TOOLS
5
- } from "./chunk-BDV4WDIA.js";
5
+ } from "./chunk-KJA6IGOZ.js";
6
6
  import {
7
7
  cancelQuestion,
8
8
  clientErrorKindOf,
@@ -10,26 +10,26 @@ import {
10
10
  reportClientError,
11
11
  sendNotification,
12
12
  waitForAnswer
13
- } from "./chunk-AGIO7SF5.js";
13
+ } from "./chunk-4GKQDFH6.js";
14
14
  import {
15
15
  withRetry
16
- } from "./chunk-6SFTI7LM.js";
16
+ } from "./chunk-E2LGKG75.js";
17
17
  import {
18
18
  getMachineId
19
- } from "./chunk-U2IEM5FF.js";
19
+ } from "./chunk-EDN4F6GX.js";
20
20
  import {
21
21
  reportedInstallSource
22
- } from "./chunk-5TLRS3AK.js";
22
+ } from "./chunk-6HT2TUZD.js";
23
23
  import {
24
24
  canonicalJson
25
- } from "./chunk-E7EOUEGQ.js";
25
+ } from "./chunk-QIODXPTP.js";
26
26
  import {
27
27
  writeFileAtomic
28
28
  } from "./chunk-AQFEP65J.js";
29
29
  import {
30
30
  getApiKey,
31
31
  getBaseUrl
32
- } from "./chunk-75MJRC5I.js";
32
+ } from "./chunk-OQPEHKH2.js";
33
33
  import {
34
34
  ACTION_BODY_MAX,
35
35
  AGENT_LABELS_BY_TYPE,
@@ -60,7 +60,7 @@ import {
60
60
  resolvePolicy,
61
61
  toToolLookup,
62
62
  truncateLine
63
- } from "./chunk-GFXZDU4V.js";
63
+ } from "./chunk-OH647UT3.js";
64
64
 
65
65
  // ../hook-mapping/src/describe.ts
66
66
  import { isAbsolute, relative, resolve } from "path";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  CODEX_HOOK_STATUS
3
- } from "./chunk-KCXG2INQ.js";
3
+ } from "./chunk-RHIKMNWJ.js";
4
4
  import {
5
5
  NPX_LATEST_COMMAND
6
- } from "./chunk-TZWZVAMN.js";
6
+ } from "./chunk-LEQRIJ4H.js";
7
7
 
8
8
  // src/setup/codex-trust.ts
9
9
  var CODEX_TRUST_TELEMETRY = {
@@ -4,7 +4,7 @@ import {
4
4
  forkFinishWithUpgradeLock,
5
5
  installWithUpgradeLock,
6
6
  releaseAutoUpdateLock
7
- } from "./chunk-4PERN2SO.js";
7
+ } from "./chunk-JCEUDLGW.js";
8
8
  import {
9
9
  describeAutoUpdateCheck,
10
10
  globalInstallLocation,
@@ -14,7 +14,7 @@ import {
14
14
  readAutoUpdateState,
15
15
  updateAutoUpdateState,
16
16
  upgradeEntryFor
17
- } from "./chunk-GWKT2ZZS.js";
17
+ } from "./chunk-USUI4P63.js";
18
18
  import {
19
19
  EXIT
20
20
  } from "./chunk-KZERVKTD.js";
@@ -27,10 +27,10 @@ import {
27
27
  npmErrorMessage,
28
28
  readGlobalCliInstallAt,
29
29
  readGlobalPrefix
30
- } from "./chunk-E7EOUEGQ.js";
30
+ } from "./chunk-QIODXPTP.js";
31
31
  import {
32
32
  NPX_LATEST_COMMAND
33
- } from "./chunk-TZWZVAMN.js";
33
+ } from "./chunk-LEQRIJ4H.js";
34
34
  import {
35
35
  commandsPackage,
36
36
  globalUpgradeEntry,
@@ -39,7 +39,7 @@ import {
39
39
  isSameMajorVersion,
40
40
  ownPackageRoot,
41
41
  packageVersionAt
42
- } from "./chunk-GFXZDU4V.js";
42
+ } from "./chunk-OH647UT3.js";
43
43
 
44
44
  // src/global-upgrade.ts
45
45
  import { existsSync } from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ensureCodexTrustsPusharyHooks
3
- } from "./chunk-KCXG2INQ.js";
3
+ } from "./chunk-RHIKMNWJ.js";
4
4
  import {
5
5
  detectClaudeVersion
6
6
  } from "./chunk-RIVNNBEK.js";
@@ -12,12 +12,12 @@ import {
12
12
  openCodeHookArgv,
13
13
  openCodePluginDir,
14
14
  openCodeWired
15
- } from "./chunk-U4OWRGYI.js";
15
+ } from "./chunk-ZGYO6OQE.js";
16
16
  import {
17
17
  addClaudeMcpServer,
18
18
  addPusharyHooks,
19
19
  addPusharyToolPermissions
20
- } from "./chunk-6TSEEKPL.js";
20
+ } from "./chunk-K2EYK5RL.js";
21
21
  import {
22
22
  claudeUnprovenHolds,
23
23
  claudeWired,
@@ -25,7 +25,7 @@ import {
25
25
  codexWired,
26
26
  geminiWired,
27
27
  planHooks
28
- } from "./chunk-TSFNX5J2.js";
28
+ } from "./chunk-A5U62Q6K.js";
29
29
  import {
30
30
  CLAUDE_HOOK_BINARY,
31
31
  CLAUDE_HOOK_EVENTS,
@@ -36,7 +36,7 @@ import {
36
36
  needsReregistration,
37
37
  registrationSignatures,
38
38
  supportedClaudeEvents
39
- } from "./chunk-YGR5PBOF.js";
39
+ } from "./chunk-7RGEJOQS.js";
40
40
  import {
41
41
  formatVersion
42
42
  } from "./chunk-6ICPEJY5.js";
@@ -59,7 +59,7 @@ import {
59
59
  registrationHolderOf,
60
60
  resolveGlobalBinary,
61
61
  vscodePluginMcp
62
- } from "./chunk-E7EOUEGQ.js";
62
+ } from "./chunk-QIODXPTP.js";
63
63
  import {
64
64
  readJsonSafe,
65
65
  writeFileAtomic,
@@ -67,7 +67,7 @@ import {
67
67
  } from "./chunk-AQFEP65J.js";
68
68
  import {
69
69
  isRecord
70
- } from "./chunk-GFXZDU4V.js";
70
+ } from "./chunk-OH647UT3.js";
71
71
 
72
72
  // src/reapply.ts
73
73
  import { dirname, join } from "path";
@@ -2,7 +2,7 @@ import {
2
2
  autoUpdateLock,
3
3
  installPackageGlobally,
4
4
  npmErrorMessage
5
- } from "./chunk-E7EOUEGQ.js";
5
+ } from "./chunk-QIODXPTP.js";
6
6
  import {
7
7
  writeJsonAtomic
8
8
  } from "./chunk-AQFEP65J.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HOOK_HOLD_BUDGET_ENV,
3
3
  hookHoldBudgetProof
4
- } from "./chunk-GFXZDU4V.js";
4
+ } from "./chunk-OH647UT3.js";
5
5
 
6
6
  // src/hold-budget.ts
7
7
  var takeHookHoldBudget = (args = process.argv.slice(2), env = process.env) => {
@@ -3,18 +3,18 @@ import {
3
3
  addGeminiMcpServer,
4
4
  removeGeminiMcpServer,
5
5
  supportedClaudeEvents
6
- } from "./chunk-YGR5PBOF.js";
6
+ } from "./chunk-7RGEJOQS.js";
7
7
  import {
8
8
  CLAUDE_CODE_AGENT,
9
9
  parseApplyPatchFiles
10
- } from "./chunk-CW3QUV6B.js";
10
+ } from "./chunk-GYP6DLA4.js";
11
11
  import {
12
12
  guardBinary,
13
13
  guardBinaryRefusing,
14
14
  holdBudgetOf,
15
15
  isProtectedByScope,
16
16
  registerHookEntry
17
- } from "./chunk-E7EOUEGQ.js";
17
+ } from "./chunk-QIODXPTP.js";
18
18
  import {
19
19
  HOOK_LOCATOR_BINARY,
20
20
  PHONE_ANSWERED_TOOLS,
@@ -24,7 +24,7 @@ import {
24
24
  refusalOutput,
25
25
  toToolLookup,
26
26
  withHookHoldBudget
27
- } from "./chunk-GFXZDU4V.js";
27
+ } from "./chunk-OH647UT3.js";
28
28
 
29
29
  // src/claude-config.ts
30
30
  import { join } from "path";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PRETOOLUSE_GATED_TOOLS
3
- } from "./chunk-GFXZDU4V.js";
3
+ } from "./chunk-OH647UT3.js";
4
4
 
5
5
  // src/claude-tools.ts
6
6
  var POSTTOOLUSE_MIRROR_ONLY_TOOLS = ["TodoWrite", "Task", "WebFetch", "WebSearch"];
@@ -2,7 +2,7 @@ import {
2
2
  DISCONNECT_AGENT_IDS,
3
3
  SETUP_AGENT_CHOICES,
4
4
  isApprovalMode
5
- } from "./chunk-GFXZDU4V.js";
5
+ } from "./chunk-OH647UT3.js";
6
6
 
7
7
  // src/cli/mode-request.ts
8
8
  var parseDuration = (value) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readTranscriptPreference
3
- } from "./chunk-6IOLTFNP.js";
3
+ } from "./chunk-AQ3TSQA2.js";
4
4
 
5
5
  // src/transcript-setting.ts
6
6
  var transcriptEnvironmentPreference = () => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULT_SESSION
3
- } from "./chunk-CW3QUV6B.js";
3
+ } from "./chunk-GYP6DLA4.js";
4
4
 
5
5
  // src/answer.ts
6
6
  var isDeferAnswer = (value) => value === "defer";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  redactSecretsFromContent
3
- } from "./chunk-GFXZDU4V.js";
3
+ } from "./chunk-OH647UT3.js";
4
4
 
5
5
  // src/crypto.ts
6
6
  import nacl from "tweetnacl";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-E7EOUEGQ.js";
3
+ } from "./chunk-QIODXPTP.js";
4
4
  import {
5
5
  readJsonSafe,
6
6
  writeFileAtomic
@@ -13,7 +13,7 @@ import {
13
13
  serializeDeclinedAgents,
14
14
  withDeclinedAgent,
15
15
  withoutDeclinedAgent
16
- } from "./chunk-GFXZDU4V.js";
16
+ } from "./chunk-OH647UT3.js";
17
17
 
18
18
  // src/declined-agents-file.ts
19
19
  import { join } from "path";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-3EGEA4KH.js";
10
10
  import {
11
11
  getBaseUrl
12
- } from "./chunk-75MJRC5I.js";
12
+ } from "./chunk-OQPEHKH2.js";
13
13
 
14
14
  // src/cli/login-ui.ts
15
15
  import { hostname } from "os";
@@ -102,7 +102,7 @@ var AGENTS = {
102
102
  enforcement: "enforced",
103
103
  connectVia: "Native hooks + MCP",
104
104
  setupCommand: PUSHARY_SETUP_COMMAND,
105
- enforcementDetail: "Shell, writes and edits through native BeforeTool hooks."
105
+ enforcementDetail: "Shell, writes, edits and MCP calls through native BeforeTool hooks."
106
106
  },
107
107
  hermes: {
108
108
  ...defaults,
@@ -333,6 +333,7 @@ var toToolLookup = (profile, toolName, toolInput, resolvePath = (path) => path)
333
333
  var NO_AGENT_PROMPT_REASON = "Pushary needs an answer from the phone before this can run, and this agent has no approval prompt of its own here, so nothing ran. Ask the user, then try again.";
334
334
  var DENIED_BY_PUSHARY_REASON = "Denied from Pushary.";
335
335
  var SOLE_GATE_UNDECIDED_REASON = "Pushary could not decide on this call, so it did not run. Pushary is the only approval for this agent. Check that Pushary is signed in and online, then try again.";
336
+ var SOLE_GATE_SUBSCRIPTION_REASON = "Pushary needs an active subscription to approve this call, so it did not run. Pushary is the only approval for this agent. Renew Pushary, or disconnect this agent from Pushary.";
336
337
  var SOLE_GATE_SIGNED_OUT_REASON = "Pushary is not signed in on this computer, so nothing can approve this call and it did not run. Sign in to Pushary, or disconnect this agent from Pushary.";
337
338
  var UNCARRIED_ANSWER_REASON = "The answer from the phone cannot be passed to this agent, so the call did not run. Ask the question in chat instead.";
338
339
  var renderAllowDenyDecision = (verdict) => {
@@ -1510,7 +1511,14 @@ var DATE_UTC_FLAG = "-u";
1510
1511
  var isFlagToken = (token) => token.startsWith("-");
1511
1512
  var isPrintOnlySed = (args) => args[0] === SED_QUIET_FLAG && SED_PRINT_ONLY_SCRIPT.test(args[1] ?? "") && !args.slice(2).some(isFlagToken);
1512
1513
  var isReadOnlyDate = (args) => args.every((arg) => arg.startsWith(DATE_FORMAT_PREFIX) || arg === DATE_UTC_FLAG);
1513
- var isOutputOnlyPrintf = (args) => args[0] === END_OF_OPTIONS || !isFlagToken(args[0] ?? "");
1514
+ var PRINTF_TEXT_CONVERSION = /%(?:%|[-+ #0]*\d*(?:\.\d*)?[bcqs])/g;
1515
+ var PRINTF_CONVERSION_START = "%";
1516
+ var ARITHMETIC_SAFE_NUMBER = /^[-+]?(?:0[xX][0-9a-fA-F]+|\d+(?:\.\d+)?)$/;
1517
+ var printfAssignsNothing = (args) => args[0] === END_OF_OPTIONS || !isFlagToken(args[0] ?? "");
1518
+ var printfOperands = (args) => args[0] === END_OF_OPTIONS ? args.slice(1) : args;
1519
+ var convertsArgumentsOnlyAsText = (format) => !format.replace(PRINTF_TEXT_CONVERSION, "").includes(PRINTF_CONVERSION_START);
1520
+ var printfNeverEvaluatesAnArgument = ([format = "", ...values]) => convertsArgumentsOnlyAsText(format) || values.every((value) => ARITHMETIC_SAFE_NUMBER.test(value));
1521
+ var isOutputOnlyPrintf = (args) => printfAssignsNothing(args) && printfNeverEvaluatesAnArgument(printfOperands(args));
1514
1522
  var READ_ONLY_SEGMENT_SEPARATOR = /&&|\|\||[;|]/g;
1515
1523
  var PIPELINE_CHAIN_SEPARATOR = /&&|\|\||;/g;
1516
1524
  var EXPANSION_THAT_CAN_BECOME_A_FLAG = /\$|(?:^|\s)[*?[]/;
@@ -2609,6 +2617,8 @@ var codexUnansweredPreToolUse = (ask) => {
2609
2617
  if (timeoutActionApplies(ask) && ask.timeoutAction === "deny") return CODEX_ASK_UNANSWERED;
2610
2618
  return codexRaisesItsOwnPrompts(ask.permissionMode) ? CODEX_ASK_PASSES : CODEX_ASK_UNANSWERED;
2611
2619
  };
2620
+ var CODEX_DEFER_WITHOUT_A_PROMPT = { kind: "deny", reason: NO_AGENT_PROMPT_REASON };
2621
+ var codexDeferredPreToolUse = (agentPromptFollows) => agentPromptFollows ? CODEX_ASK_PASSES : CODEX_DEFER_WITHOUT_A_PROMPT;
2612
2622
  var isScopeReason = (scopeReason) => typeof scopeReason === "string" && scopeReason.length > 0;
2613
2623
  var scopeBreachReasonOf = (verdict) => verdict.kind === "gate" && isScopeReason(verdict.scopeReason) ? verdict.scopeReason : void 0;
2614
2624
  var onlyCodexPreToolUseCanAsk = (verdict, permissionMode) => verdict.kind === "gate" && (scopeBreachReasonOf(verdict) !== void 0 || !codexRaisesItsOwnPrompts(permissionMode));
@@ -3154,6 +3164,7 @@ export {
3154
3164
  canonicalToolName,
3155
3165
  toToolLookup,
3156
3166
  SOLE_GATE_UNDECIDED_REASON,
3167
+ SOLE_GATE_SUBSCRIPTION_REASON,
3157
3168
  SOLE_GATE_SIGNED_OUT_REASON,
3158
3169
  renderPreToolUseVerdict,
3159
3170
  pusharyMissingReason,
@@ -3249,6 +3260,7 @@ export {
3249
3260
  NO_RESPONSE_REASON,
3250
3261
  codexHasNoPromptOfItsOwn,
3251
3262
  codexUnansweredPreToolUse,
3263
+ codexDeferredPreToolUse,
3252
3264
  scopeBreachReasonOf,
3253
3265
  codexCallNeedsAPerson,
3254
3266
  claudePermissionRulesFromSettings,