@pushary/agent-hooks 1.9.14 → 1.9.15

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 +14 -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 +72 -48
  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 +10 -10
  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 +35 -35
  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-Y6IKUCVF.js → chunk-2DCGUCPZ.js} +2 -2
  42. package/dist/{chunk-EB6LH3U6.js → chunk-3FQCZSEQ.js} +3 -3
  43. package/dist/{chunk-J5RQW52I.js → chunk-3QXCTYMG.js} +2 -2
  44. package/dist/{chunk-CT4BJEU7.js → chunk-3YCYTGGK.js} +1 -1
  45. package/dist/{chunk-VYXXAFIA.js → chunk-52JA2WTH.js} +1 -1
  46. package/dist/{chunk-LETLRKSY.js → chunk-57VUNV32.js} +1 -1
  47. package/dist/{chunk-3KHQWC4F.js → chunk-5BIMNGRQ.js} +6 -6
  48. package/dist/{chunk-NMDGIMDV.js → chunk-5EWNGYFD.js} +2 -2
  49. package/dist/{chunk-5UYAJVAQ.js → chunk-5LQ7QUVF.js} +1 -1
  50. package/dist/{chunk-ARM4DMIL.js → chunk-6GRUERVL.js} +1 -1
  51. package/dist/{chunk-2Q6IT5PR.js → chunk-6LORREOI.js} +1 -1
  52. package/dist/{chunk-2Z56BRTF.js → chunk-6MLSXBNR.js} +2 -2
  53. package/dist/{chunk-H7MTFFNI.js → chunk-6WECKO24.js} +4 -4
  54. package/dist/{chunk-XJKM6NQS.js → chunk-7QZZK2YU.js} +6 -6
  55. package/dist/{chunk-NXJNYAP7.js → chunk-7VOEZPJ4.js} +1 -1
  56. package/dist/{chunk-NAROM5IR.js → chunk-AYV2NRYJ.js} +93 -2
  57. package/dist/{chunk-NNCK2PUR.js → chunk-C2OUUGCW.js} +2 -2
  58. package/dist/{chunk-42WYKVHL.js → chunk-COZE23R3.js} +2 -2
  59. package/dist/{chunk-34PUBGLS.js → chunk-CU7Y7Y4L.js} +2 -2
  60. package/dist/{chunk-2QASSTM5.js → chunk-D72OJS4S.js} +2 -2
  61. package/dist/{chunk-SEQSZYLW.js → chunk-FZW7Q7GM.js} +5 -5
  62. package/dist/{chunk-Q7JWY33N.js → chunk-H5YC7H6V.js} +3 -3
  63. package/dist/{chunk-2WWHZTI5.js → chunk-HJL5RBOU.js} +4 -4
  64. package/dist/{chunk-7MGNY7S3.js → chunk-HSVJ62BE.js} +1 -1
  65. package/dist/{chunk-AJRT3JGE.js → chunk-HTO2XULO.js} +1 -1
  66. package/dist/{chunk-WYPQKDKX.js → chunk-IQCNOEQL.js} +13 -18
  67. package/dist/{chunk-ECU2Y7D2.js → chunk-JC3AGMOP.js} +2 -2
  68. package/dist/{chunk-LRZMGU7T.js → chunk-JEJSAI6Z.js} +4 -4
  69. package/dist/{chunk-YSVCBUT3.js → chunk-LJJWNHUW.js} +2 -2
  70. package/dist/{chunk-POJUUEGO.js → chunk-ME55HQOI.js} +4 -4
  71. package/dist/{chunk-ZVFKNSRX.js → chunk-NA5D62OI.js} +1 -1
  72. package/dist/{chunk-5RONPCMH.js → chunk-NDKFHLJI.js} +5 -5
  73. package/dist/{chunk-4BXVGCPE.js → chunk-NDZBDXU3.js} +4 -4
  74. package/dist/{chunk-OMR3P7PJ.js → chunk-OIESPH3R.js} +14 -14
  75. package/dist/{chunk-FKQMH2DW.js → chunk-PNUWMEIY.js} +1 -1
  76. package/dist/{chunk-3U4R475X.js → chunk-PSWFYNOX.js} +3 -3
  77. package/dist/{chunk-QD6GQDYW.js → chunk-Q4JD6WNB.js} +1 -1
  78. package/dist/{chunk-DVTXGXXL.js → chunk-QIOWXUFH.js} +1 -1
  79. package/dist/{chunk-MSEUUAJ7.js → chunk-SDDKVY4I.js} +5 -5
  80. package/dist/{chunk-CIZQARGJ.js → chunk-SYLJL63X.js} +3 -3
  81. package/dist/{chunk-7SIZISYH.js → chunk-TFV6RATK.js} +5 -5
  82. package/dist/{chunk-2A234H3F.js → chunk-TMQMUGSN.js} +3 -3
  83. package/dist/{chunk-ZSL7B7NF.js → chunk-VKTDXQGH.js} +2 -2
  84. package/dist/{chunk-RV4U3LYL.js → chunk-VP6WDFVO.js} +3 -3
  85. package/dist/{chunk-5VP72OOI.js → chunk-WBQK6KD5.js} +8 -8
  86. package/dist/{chunk-JHDHC2M7.js → chunk-WJO7SENK.js} +4 -4
  87. package/dist/{chunk-3XAUHY35.js → chunk-WWTB4DAE.js} +1 -1
  88. package/dist/{chunk-2NIBBM3N.js → chunk-Y6KG5JZP.js} +2 -2
  89. package/dist/{chunk-K2IUMMZJ.js → chunk-YKYFFCB5.js} +1 -1
  90. package/dist/{chunk-PWO6T7JG.js → chunk-YL6HU2KF.js} +5 -5
  91. package/dist/{chunk-RMWV3MYN.js → chunk-YOHPJNFW.js} +4 -4
  92. package/dist/{chunk-APG7IAUK.js → chunk-ZH74RRGM.js} +1 -1
  93. package/dist/{chunk-ZECHTK3K.js → chunk-ZMUDVPOT.js} +3 -3
  94. package/dist/{global-upgrade-P5CJ22AW.js → global-upgrade-MOBLBPIJ.js} +6 -6
  95. package/dist/{paths-XZE2MPTP.js → paths-55SPLYW5.js} +2 -2
  96. package/dist/{reapply-V4GMKCGP.js → reapply-SOIJJKGO.js} +20 -20
  97. package/dist/src/index.js +19 -19
  98. package/dist/{upgrade-lock-DQF62B6X.js → upgrade-lock-FER4DMDA.js} +3 -3
  99. package/package.json +1 -1
@@ -6,17 +6,17 @@ import {
6
6
  } from "../chunk-SGZJ5LYH.js";
7
7
  import {
8
8
  transcriptsEnabled
9
- } from "../chunk-7MGNY7S3.js";
9
+ } from "../chunk-HSVJ62BE.js";
10
10
  import {
11
11
  exitOnHelpFlag
12
- } from "../chunk-NNCK2PUR.js";
13
- import "../chunk-NMDGIMDV.js";
12
+ } from "../chunk-C2OUUGCW.js";
13
+ import "../chunk-5EWNGYFD.js";
14
14
  import "../chunk-KZERVKTD.js";
15
- import "../chunk-ZSL7B7NF.js";
15
+ import "../chunk-VKTDXQGH.js";
16
16
  import "../chunk-T7E75EKA.js";
17
- import "../chunk-AJRT3JGE.js";
18
- import "../chunk-FKQMH2DW.js";
19
- import "../chunk-NAROM5IR.js";
17
+ import "../chunk-HTO2XULO.js";
18
+ import "../chunk-PNUWMEIY.js";
19
+ import "../chunk-AYV2NRYJ.js";
20
20
 
21
21
  // bin/pushary-transcripts.ts
22
22
  exitOnHelpFlag("transcripts");
@@ -9,27 +9,27 @@ import {
9
9
  upgradeFinishOutcome,
10
10
  upgradeInstalledPackage,
11
11
  withUpgradeLock
12
- } from "../chunk-MSEUUAJ7.js";
12
+ } from "../chunk-SDDKVY4I.js";
13
13
  import {
14
14
  installWithUpgradeLock
15
- } from "../chunk-LETLRKSY.js";
15
+ } from "../chunk-57VUNV32.js";
16
16
  import {
17
17
  ensureCodexTrustAfterReapply,
18
18
  reapplyAllAgents
19
- } from "../chunk-3KHQWC4F.js";
19
+ } from "../chunk-5BIMNGRQ.js";
20
20
  import {
21
21
  describeCodexTrustConfirmation
22
- } from "../chunk-34PUBGLS.js";
23
- import "../chunk-YSVCBUT3.js";
22
+ } from "../chunk-CU7Y7Y4L.js";
23
+ import "../chunk-LJJWNHUW.js";
24
24
  import {
25
25
  waitForMachineReadiness
26
- } from "../chunk-XJKM6NQS.js";
26
+ } from "../chunk-7QZZK2YU.js";
27
27
  import {
28
28
  detectProviderLiveCapabilities,
29
29
  expectedLaunchCapabilities,
30
30
  hasSpawnProvider,
31
31
  resolveControlPolicy
32
- } from "../chunk-ECU2Y7D2.js";
32
+ } from "../chunk-JC3AGMOP.js";
33
33
  import "../chunk-RIVNNBEK.js";
34
34
  import {
35
35
  AUTO_UPDATE_DISABLE_ENV,
@@ -40,7 +40,7 @@ import {
40
40
  parseAutoUpdateFlag,
41
41
  readAutoUpdateState,
42
42
  updateAutoUpdateState
43
- } from "../chunk-2Z56BRTF.js";
43
+ } from "../chunk-6MLSXBNR.js";
44
44
  import {
45
45
  DAEMON_COLD_START_TIMEOUT_MS,
46
46
  daemonHasRemoteProof,
@@ -52,39 +52,39 @@ import {
52
52
  replaceDaemonService,
53
53
  stopDaemonService,
54
54
  waitForDaemonRemoteProof
55
- } from "../chunk-7SIZISYH.js";
55
+ } from "../chunk-TFV6RATK.js";
56
56
  import "../chunk-XHKBHWLX.js";
57
57
  import {
58
58
  readMacAppAgentKey
59
- } from "../chunk-H7MTFFNI.js";
60
- import "../chunk-5RONPCMH.js";
59
+ } from "../chunk-6WECKO24.js";
60
+ import "../chunk-NDKFHLJI.js";
61
61
  import {
62
62
  exitOnHelpFlag
63
- } from "../chunk-NNCK2PUR.js";
64
- import "../chunk-POJUUEGO.js";
65
- import "../chunk-SEQSZYLW.js";
66
- import "../chunk-RV4U3LYL.js";
67
- import "../chunk-K2IUMMZJ.js";
68
- import "../chunk-NXJNYAP7.js";
63
+ } from "../chunk-C2OUUGCW.js";
64
+ import "../chunk-ME55HQOI.js";
65
+ import "../chunk-FZW7Q7GM.js";
66
+ import "../chunk-VP6WDFVO.js";
67
+ import "../chunk-YKYFFCB5.js";
68
+ import "../chunk-7VOEZPJ4.js";
69
69
  import "../chunk-GMXKITVA.js";
70
70
  import "../chunk-6ICPEJY5.js";
71
71
  import {
72
72
  readControlMode,
73
73
  recordMacAppKeyPrefix
74
- } from "../chunk-NMDGIMDV.js";
75
- import "../chunk-WYPQKDKX.js";
76
- import "../chunk-VYXXAFIA.js";
77
- import "../chunk-PWO6T7JG.js";
74
+ } from "../chunk-5EWNGYFD.js";
75
+ import "../chunk-IQCNOEQL.js";
76
+ import "../chunk-52JA2WTH.js";
77
+ import "../chunk-YL6HU2KF.js";
78
78
  import "../chunk-POFBE6ZY.js";
79
- import "../chunk-CIZQARGJ.js";
80
- import "../chunk-3U4R475X.js";
81
- import "../chunk-EB6LH3U6.js";
82
- import "../chunk-ZVFKNSRX.js";
79
+ import "../chunk-SYLJL63X.js";
80
+ import "../chunk-PSWFYNOX.js";
81
+ import "../chunk-3FQCZSEQ.js";
82
+ import "../chunk-NA5D62OI.js";
83
83
  import "../chunk-7QLSKOSU.js";
84
84
  import {
85
85
  EXIT
86
86
  } from "../chunk-KZERVKTD.js";
87
- import "../chunk-ZSL7B7NF.js";
87
+ import "../chunk-VKTDXQGH.js";
88
88
  import {
89
89
  LATEST_TAG,
90
90
  autoUpdateState,
@@ -94,19 +94,19 @@ import {
94
94
  fetchLatestPublishedVersion,
95
95
  geminiSettings,
96
96
  vscodePluginDir
97
- } from "../chunk-2WWHZTI5.js";
97
+ } from "../chunk-HJL5RBOU.js";
98
98
  import "../chunk-T7E75EKA.js";
99
99
  import {
100
100
  getApiKey
101
- } from "../chunk-AJRT3JGE.js";
101
+ } from "../chunk-HTO2XULO.js";
102
102
  import {
103
103
  NPX_LATEST_COMMAND
104
- } from "../chunk-FKQMH2DW.js";
104
+ } from "../chunk-PNUWMEIY.js";
105
105
  import {
106
106
  CANONICAL_PACKAGE,
107
107
  LEGACY_PACKAGE,
108
108
  getPackageVersion
109
- } from "../chunk-NAROM5IR.js";
109
+ } from "../chunk-AYV2NRYJ.js";
110
110
 
111
111
  // bin/pushary-upgrade.ts
112
112
  import { existsSync } from "fs";
@@ -4,36 +4,36 @@ import {
4
4
  } from "../chunk-CVWG2N3Y.js";
5
5
  import {
6
6
  exitOnFailedSettingsRequest
7
- } from "../chunk-JHDHC2M7.js";
8
- import "../chunk-J5RQW52I.js";
7
+ } from "../chunk-WJO7SENK.js";
8
+ import "../chunk-3QXCTYMG.js";
9
9
  import {
10
10
  createIo
11
11
  } from "../chunk-U4TMAANR.js";
12
12
  import {
13
13
  exitOnHelpFlag
14
- } from "../chunk-NNCK2PUR.js";
14
+ } from "../chunk-C2OUUGCW.js";
15
15
  import {
16
16
  rejectUnknownFlags
17
17
  } from "../chunk-GMXKITVA.js";
18
- import "../chunk-NMDGIMDV.js";
19
- import "../chunk-3U4R475X.js";
20
- import "../chunk-EB6LH3U6.js";
21
- import "../chunk-ZVFKNSRX.js";
18
+ import "../chunk-5EWNGYFD.js";
19
+ import "../chunk-PSWFYNOX.js";
20
+ import "../chunk-3FQCZSEQ.js";
21
+ import "../chunk-NA5D62OI.js";
22
22
  import {
23
23
  UsageError
24
24
  } from "../chunk-7QLSKOSU.js";
25
25
  import {
26
26
  EXIT
27
27
  } from "../chunk-KZERVKTD.js";
28
- import "../chunk-ZSL7B7NF.js";
29
- import "../chunk-2WWHZTI5.js";
28
+ import "../chunk-VKTDXQGH.js";
29
+ import "../chunk-HJL5RBOU.js";
30
30
  import "../chunk-T7E75EKA.js";
31
31
  import {
32
32
  getApiKey,
33
33
  getBaseUrl
34
- } from "../chunk-AJRT3JGE.js";
35
- import "../chunk-FKQMH2DW.js";
36
- import "../chunk-NAROM5IR.js";
34
+ } from "../chunk-HTO2XULO.js";
35
+ import "../chunk-PNUWMEIY.js";
36
+ import "../chunk-AYV2NRYJ.js";
37
37
 
38
38
  // bin/pushary-wait.ts
39
39
  exitOnHelpFlag("wait");
@@ -1,23 +1,23 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  installNetworkDefaults
4
- } from "../chunk-EB6LH3U6.js";
5
- import "../chunk-ZVFKNSRX.js";
4
+ } from "../chunk-3FQCZSEQ.js";
5
+ import "../chunk-NA5D62OI.js";
6
6
  import "../chunk-7QLSKOSU.js";
7
7
  import {
8
8
  EXIT
9
9
  } from "../chunk-KZERVKTD.js";
10
- import "../chunk-2WWHZTI5.js";
10
+ import "../chunk-HJL5RBOU.js";
11
11
  import "../chunk-T7E75EKA.js";
12
- import "../chunk-AJRT3JGE.js";
12
+ import "../chunk-HTO2XULO.js";
13
13
  import {
14
14
  COMMANDS,
15
15
  renderHelp,
16
16
  resolveCommandName
17
- } from "../chunk-FKQMH2DW.js";
17
+ } from "../chunk-PNUWMEIY.js";
18
18
  import {
19
19
  getPackageVersion
20
- } from "../chunk-NAROM5IR.js";
20
+ } from "../chunk-AYV2NRYJ.js";
21
21
 
22
22
  // src/cli/runtime.ts
23
23
  var supportsRuntime = (version) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-2WWHZTI5.js";
3
+ } from "./chunk-HJL5RBOU.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-NAROM5IR.js";
16
+ } from "./chunk-AYV2NRYJ.js";
17
17
 
18
18
  // src/declined-agents-file.ts
19
19
  import { join } from "path";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  readExistingMachineId
3
- } from "./chunk-ZVFKNSRX.js";
3
+ } from "./chunk-NA5D62OI.js";
4
4
  import {
5
5
  NetworkError
6
6
  } from "./chunk-7QLSKOSU.js";
7
7
  import {
8
8
  getBaseUrl
9
- } from "./chunk-AJRT3JGE.js";
9
+ } from "./chunk-HTO2XULO.js";
10
10
  import {
11
11
  clientContextHeaders,
12
12
  getPackageVersion
13
- } from "./chunk-NAROM5IR.js";
13
+ } from "./chunk-AYV2NRYJ.js";
14
14
 
15
15
  // src/cli/net.ts
16
16
  import { createRequire } from "module";
@@ -3,10 +3,10 @@ import {
3
3
  keyPrefix,
4
4
  readConfigFileKey,
5
5
  readMacAppKeyPrefix
6
- } from "./chunk-NMDGIMDV.js";
6
+ } from "./chunk-5EWNGYFD.js";
7
7
  import {
8
8
  NPX_LATEST_COMMAND
9
- } from "./chunk-FKQMH2DW.js";
9
+ } from "./chunk-PNUWMEIY.js";
10
10
 
11
11
  // src/key-signed-out.ts
12
12
  var VERDICT_BY_CHECK = {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getBaseUrl
3
- } from "./chunk-AJRT3JGE.js";
3
+ } from "./chunk-HTO2XULO.js";
4
4
 
5
5
  // src/transcript-api.ts
6
6
  var fetchTranscriptRecipients = async (apiKey, baseUrl = getBaseUrl()) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PRETOOLUSE_GATED_TOOLS
3
- } from "./chunk-NAROM5IR.js";
3
+ } from "./chunk-AYV2NRYJ.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
  autoUpdateLock,
3
3
  installPackageGlobally,
4
4
  npmErrorMessage
5
- } from "./chunk-2WWHZTI5.js";
5
+ } from "./chunk-HJL5RBOU.js";
6
6
  import {
7
7
  writeJsonAtomic
8
8
  } from "./chunk-T7E75EKA.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ensureCodexTrustsPusharyHooks
3
- } from "./chunk-YSVCBUT3.js";
3
+ } from "./chunk-LJJWNHUW.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-5RONPCMH.js";
15
+ } from "./chunk-NDKFHLJI.js";
16
16
  import {
17
17
  addClaudeMcpServer,
18
18
  addPusharyHooks,
19
19
  addPusharyToolPermissions
20
- } from "./chunk-POJUUEGO.js";
20
+ } from "./chunk-ME55HQOI.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-SEQSZYLW.js";
28
+ } from "./chunk-FZW7Q7GM.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-RV4U3LYL.js";
39
+ } from "./chunk-VP6WDFVO.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-2WWHZTI5.js";
62
+ } from "./chunk-HJL5RBOU.js";
63
63
  import {
64
64
  readJsonSafe,
65
65
  writeFileAtomic,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveInstallSourceFor
3
- } from "./chunk-ZSL7B7NF.js";
3
+ } from "./chunk-VKTDXQGH.js";
4
4
  import {
5
5
  backupFile,
6
6
  readJsonSafe,
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-T7E75EKA.js";
10
10
  import {
11
11
  configFilePath
12
- } from "./chunk-AJRT3JGE.js";
12
+ } from "./chunk-HTO2XULO.js";
13
13
 
14
14
  // src/shell-alias.ts
15
15
  import { homedir } from "os";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-2WWHZTI5.js";
3
+ } from "./chunk-HJL5RBOU.js";
4
4
  import {
5
5
  readJsonSafe
6
6
  } from "./chunk-T7E75EKA.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULT_SESSION
3
- } from "./chunk-WYPQKDKX.js";
3
+ } from "./chunk-IQCNOEQL.js";
4
4
 
5
5
  // src/answer.ts
6
6
  var denyReasonFrom = (value, note) => {
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-3EGEA4KH.js";
10
10
  import {
11
11
  getBaseUrl
12
- } from "./chunk-AJRT3JGE.js";
12
+ } from "./chunk-HTO2XULO.js";
13
13
 
14
14
  // src/cli/login-ui.ts
15
15
  import { hostname } from "os";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-POFBE6ZY.js";
4
4
  import {
5
5
  autoUpdateState
6
- } from "./chunk-2WWHZTI5.js";
6
+ } from "./chunk-HJL5RBOU.js";
7
7
  import {
8
8
  readJsonSafe,
9
9
  writeJsonAtomic
@@ -14,7 +14,7 @@ import {
14
14
  cliPackagePathSegments,
15
15
  globalUpgradeEntry,
16
16
  ownPackageRoot
17
- } from "./chunk-NAROM5IR.js";
17
+ } from "./chunk-AYV2NRYJ.js";
18
18
 
19
19
  // src/auto-update.ts
20
20
  import { spawn } from "child_process";
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  macAppBridgeAvailable
3
- } from "./chunk-5RONPCMH.js";
3
+ } from "./chunk-NDKFHLJI.js";
4
4
  import {
5
5
  keyPrefix
6
- } from "./chunk-NMDGIMDV.js";
6
+ } from "./chunk-5EWNGYFD.js";
7
7
  import {
8
8
  bridgeAgentKey
9
- } from "./chunk-2WWHZTI5.js";
9
+ } from "./chunk-HJL5RBOU.js";
10
10
  import {
11
11
  readJsonSafe
12
12
  } from "./chunk-T7E75EKA.js";
13
13
  import {
14
14
  isValidApiKey
15
- } from "./chunk-NAROM5IR.js";
15
+ } from "./chunk-AYV2NRYJ.js";
16
16
 
17
17
  // src/shared-mcp-key.ts
18
18
  var asRecord = (value) => value !== null && typeof value === "object" && !Array.isArray(value) ? value : void 0;
@@ -3,27 +3,27 @@ import {
3
3
  expectedLaunchCapabilities,
4
4
  hasSpawnProvider,
5
5
  resolveControlPolicy
6
- } from "./chunk-ECU2Y7D2.js";
6
+ } from "./chunk-JC3AGMOP.js";
7
7
  import {
8
8
  daemonHasRemoteProof,
9
9
  daemonServiceManagerAvailable,
10
10
  hasDaemonServiceDefinition,
11
11
  readDaemonNeedsLogin,
12
12
  readDaemonStatus
13
- } from "./chunk-7SIZISYH.js";
13
+ } from "./chunk-TFV6RATK.js";
14
14
  import {
15
15
  readControlMode,
16
16
  readKeySource
17
- } from "./chunk-NMDGIMDV.js";
17
+ } from "./chunk-5EWNGYFD.js";
18
18
  import {
19
19
  getMachineId
20
- } from "./chunk-ZVFKNSRX.js";
20
+ } from "./chunk-NA5D62OI.js";
21
21
  import {
22
22
  getBaseUrl
23
- } from "./chunk-AJRT3JGE.js";
23
+ } from "./chunk-HTO2XULO.js";
24
24
  import {
25
25
  getPackageVersion
26
- } from "./chunk-NAROM5IR.js";
26
+ } from "./chunk-AYV2NRYJ.js";
27
27
 
28
28
  // src/machines.ts
29
29
  import { hostname } from "os";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  guardBinary
3
- } from "./chunk-2WWHZTI5.js";
3
+ } from "./chunk-HJL5RBOU.js";
4
4
 
5
5
  // src/bell/install.ts
6
6
  import { join } from "path";
@@ -1716,6 +1716,8 @@ var DESTRUCTIVE_SUBCOMMANDS = /* @__PURE__ */ new Set([
1716
1716
  "wipe",
1717
1717
  "reset"
1718
1718
  ]);
1719
+ var SUBCOMMAND_WORD_SEPARATOR = /[-:]/;
1720
+ var subcommandWordDestroys = (word) => word.split(SUBCOMMAND_WORD_SEPARATOR).some((part) => DESTRUCTIVE_SUBCOMMANDS.has(part));
1719
1721
  var DATA_LOSS_COMMAND_PATTERNS = [
1720
1722
  "Bash(git branch -D:*)",
1721
1723
  "Bash(git branch --delete:*)",
@@ -1810,7 +1812,7 @@ var normalizedCommand = (command) => {
1810
1812
  const segments = readableCommandSegments(command);
1811
1813
  return segments === null ? null : segments.map((segment) => normalizedInvocation(invocationOf(segment))).join("; ");
1812
1814
  };
1813
- var subcommandDestroys = ({ program, args }) => program !== void 0 && SUBCOMMAND_CLIS.has(basenameOf(program.text)) && subcommandWordsOf(argsAfterHarmlessGlobalFlags(args)).some((word) => DESTRUCTIVE_SUBCOMMANDS.has(word.text));
1815
+ var subcommandDestroys = ({ program, args }) => program !== void 0 && SUBCOMMAND_CLIS.has(basenameOf(program.text)) && subcommandWordsOf(argsAfterHarmlessGlobalFlags(args)).some((word) => subcommandWordDestroys(word.text));
1814
1816
  var segmentNeedsAPerson = (toolName, segment) => {
1815
1817
  const invocation = invocationOf(segment);
1816
1818
  const normalized = normalizedInvocation(invocation);
@@ -1826,7 +1828,79 @@ var withoutSessionToolGrants = (config) => ({
1826
1828
  policies: config.policies.filter((policy) => !isSessionToolGrant(policy))
1827
1829
  });
1828
1830
  var SESSION_TOOL_GRANT_TOOLS = /* @__PURE__ */ new Set(["Bash"]);
1829
- var isSessionToolGrant = (policy) => Boolean(policy.sessionId) && SESSION_TOOL_GRANT_TOOLS.has(policy.tool) && isAutoApprove(policy);
1831
+ var MCP_TOOL_PREFIX = "mcp__";
1832
+ var parseMcpToolName = (toolName) => {
1833
+ if (!toolName.startsWith(MCP_TOOL_PREFIX)) return void 0;
1834
+ const rest = toolName.slice(MCP_TOOL_PREFIX.length);
1835
+ const split = rest.indexOf("__");
1836
+ if (split <= 0 || split + 2 >= rest.length) return void 0;
1837
+ return { server: rest.slice(0, split), tool: rest.slice(split + 2) };
1838
+ };
1839
+ var CAMEL_CASE_BOUNDARY = /([a-z0-9])([A-Z])/g;
1840
+ var MCP_TOOL_NAME_WORD_SEPARATOR = /[\s_.:-]+/;
1841
+ var wordsOfMcpToolName = (toolName) => toolName.replace(CAMEL_CASE_BOUNDARY, "$1 $2").toLowerCase().split(MCP_TOOL_NAME_WORD_SEPARATOR).filter((word) => word.length > 0);
1842
+ var MCP_TOOL_WORDS_THAT_MOVE_MONEY = /* @__PURE__ */ new Set([
1843
+ "pay",
1844
+ "payment",
1845
+ "payout",
1846
+ "refund",
1847
+ "charge",
1848
+ "transfer",
1849
+ "withdraw",
1850
+ "money",
1851
+ "purchase",
1852
+ "buy",
1853
+ "wire",
1854
+ "transaction",
1855
+ "invoice",
1856
+ "subscription"
1857
+ ]);
1858
+ var MCP_TOOL_WORDS_THAT_RUN_CODE = /* @__PURE__ */ new Set([
1859
+ "exec",
1860
+ "execute",
1861
+ "eval",
1862
+ "run",
1863
+ "shell",
1864
+ "command",
1865
+ "cmd",
1866
+ "script",
1867
+ "sql",
1868
+ "repl",
1869
+ "js",
1870
+ "python",
1871
+ "terminal"
1872
+ ]);
1873
+ var MCP_TOOL_WORDS_THAT_REACH_OTHERS = /* @__PURE__ */ new Set([
1874
+ "send",
1875
+ "email",
1876
+ "post",
1877
+ "publish",
1878
+ "merge",
1879
+ "deploy",
1880
+ "promote",
1881
+ "release",
1882
+ "push",
1883
+ "force",
1884
+ "cancel",
1885
+ "revoke",
1886
+ "kill",
1887
+ "truncate",
1888
+ "write",
1889
+ "overwrite",
1890
+ "move",
1891
+ "rename",
1892
+ "upload",
1893
+ "invite",
1894
+ "share"
1895
+ ]);
1896
+ var mcpToolWordNeedsAPerson = (word) => DESTRUCTIVE_SUBCOMMANDS.has(word) || MCP_TOOL_WORDS_THAT_MOVE_MONEY.has(word) || MCP_TOOL_WORDS_THAT_RUN_CODE.has(word) || MCP_TOOL_WORDS_THAT_REACH_OTHERS.has(word);
1897
+ var mcpToolNameNeedsAPerson = (toolName) => {
1898
+ const words = wordsOfMcpToolName(toolName);
1899
+ const phrase = words.join(" ");
1900
+ return words.some(mcpToolWordNeedsAPerson) || classifyDecisionRisk(phrase, phrase) !== "standard";
1901
+ };
1902
+ var allowsSessionToolGrant = (toolName) => SESSION_TOOL_GRANT_TOOLS.has(toolName) || parseMcpToolName(toolName) !== void 0 && !isPusharyOwnTool(toolName.toLowerCase()) && !mcpToolNameNeedsAPerson(toolName);
1903
+ var isSessionToolGrant = (policy) => Boolean(policy.sessionId) && allowsSessionToolGrant(policy.tool) && isAutoApprove(policy);
1830
1904
  var API_KEY_PATTERN = /^pk_[a-f0-9]+\.[a-f0-9]+$/;
1831
1905
  var isValidApiKey = (value) => API_KEY_PATTERN.test(value);
1832
1906
  var ACTION_BODY_MAX = 4e3;
@@ -2509,6 +2583,17 @@ var agentPromptsBeforeAnEdit = ({ source, event, permissionMode }) => {
2509
2583
  return event === "PreToolUse" && runsTheClaudeHook(source) && claudePromptsBeforeAnEdit(permissionMode);
2510
2584
  };
2511
2585
  var editGoesToTheAgentsPrompt = (call, input, verdict) => agentPromptsBeforeAnEdit(call) && editAsksAtTheAgentsPrompt(input, verdict);
2586
+ var SCOPE_BATCH_REASON = "This patch exceeds the agreed scope. Split it into single-file edits so each additional path can be approved.";
2587
+ var unapprovedScopeReason = (scopeReason) => `${scopeReason}. Nobody approved this path, so the change was refused.`;
2588
+ var codexRaisesItsOwnPrompts = (permissionMode) => permissionMode !== "bypassPermissions";
2589
+ var isScopeReason = (scopeReason) => typeof scopeReason === "string" && scopeReason.length > 0;
2590
+ var scopeBreachReasonOf = (verdict) => verdict.kind === "gate" && isScopeReason(verdict.scopeReason) ? verdict.scopeReason : void 0;
2591
+ var onlyCodexPreToolUseCanAsk = (verdict, permissionMode) => verdict.kind === "gate" && (scopeBreachReasonOf(verdict) !== void 0 || !codexRaisesItsOwnPrompts(permissionMode));
2592
+ var runsACommandThatNeedsAPerson = ({ toolName, toolInputs }) => toolName === "Bash" && toolInputs.some((toolInput) => {
2593
+ const command = extractPolicyArg(toolName, toolInput);
2594
+ return command !== void 0 && commandNeedsAPerson(toolName, command);
2595
+ });
2596
+ var codexCallNeedsAPerson = (input, verdict, call) => onlyCodexPreToolUseCanAsk(verdict, call.permissionMode) || verdict.kind === "gate" && (aChosenRuleGoverns(input) || call.deletesFiles || runsACommandThatNeedsAPerson(input));
2512
2597
  var MAX_AGENT_PERMISSION_RULES_PER_KIND = 256;
2513
2598
  var MAX_AGENT_PERMISSION_RULE_LENGTH = 512;
2514
2599
  var isAgentPermissionRule = (value) => typeof value === "string" && value.length > 0 && value.length <= MAX_AGENT_PERMISSION_RULE_LENGTH;
@@ -3105,6 +3190,7 @@ export {
3105
3190
  isSafeReadOnlyCommand,
3106
3191
  isAutoApprove,
3107
3192
  FILE_TARGET_TOOLS,
3193
+ parseMcpToolName,
3108
3194
  isValidApiKey,
3109
3195
  ACTION_BODY_MAX,
3110
3196
  DECISION_LINE_MAX,
@@ -3131,6 +3217,11 @@ export {
3131
3217
  CLAUDE_PRETOOLUSE_MATCHER,
3132
3218
  resolveGate,
3133
3219
  editGoesToTheAgentsPrompt,
3220
+ SCOPE_BATCH_REASON,
3221
+ unapprovedScopeReason,
3222
+ scopeBreachReasonOf,
3223
+ onlyCodexPreToolUseCanAsk,
3224
+ codexCallNeedsAPerson,
3134
3225
  claudePermissionRulesFromSettings,
3135
3226
  claudeConsultsItsAllowlist,
3136
3227
  agentRulesAllowEveryInput,
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-KZERVKTD.js";
4
4
  import {
5
5
  renderCommandHelp
6
- } from "./chunk-FKQMH2DW.js";
6
+ } from "./chunk-PNUWMEIY.js";
7
7
  import {
8
8
  getPackageVersion
9
- } from "./chunk-NAROM5IR.js";
9
+ } from "./chunk-AYV2NRYJ.js";
10
10
 
11
11
  // src/cli/usage.ts
12
12
  var exitOnHelpFlag = (command) => {
@@ -6,12 +6,12 @@ import {
6
6
  permissionDeniedAction,
7
7
  releaseThrottle,
8
8
  reportEvent
9
- } from "./chunk-WYPQKDKX.js";
9
+ } from "./chunk-IQCNOEQL.js";
10
10
  import {
11
11
  machineDecisionFor,
12
12
  shouldDeferToNativeMode,
13
13
  wireVerdictFor
14
- } from "./chunk-NAROM5IR.js";
14
+ } from "./chunk-AYV2NRYJ.js";
15
15
 
16
16
  // src/machine-decision-audit.ts
17
17
  import { basename } from "path";