@pushary/agent-hooks 1.9.13 → 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 +18 -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-G5K656XW.js → chunk-2DCGUCPZ.js} +2 -2
  42. package/dist/{chunk-LUYAXSUS.js → chunk-3FQCZSEQ.js} +3 -3
  43. package/dist/{chunk-UUBEEKT6.js → chunk-3QXCTYMG.js} +2 -2
  44. package/dist/{chunk-3EOXZYUE.js → chunk-3YCYTGGK.js} +1 -1
  45. package/dist/{chunk-JRKUJOZL.js → chunk-52JA2WTH.js} +1 -1
  46. package/dist/{chunk-Y25RH4VF.js → chunk-57VUNV32.js} +1 -1
  47. package/dist/{chunk-6CM3B4PJ.js → chunk-5BIMNGRQ.js} +6 -6
  48. package/dist/{chunk-S2LDTUHS.js → chunk-5EWNGYFD.js} +2 -2
  49. package/dist/{chunk-TDSLVFG6.js → chunk-5LQ7QUVF.js} +1 -1
  50. package/dist/{chunk-GYR4G4WO.js → chunk-6GRUERVL.js} +1 -1
  51. package/dist/{chunk-J2VNQSS6.js → chunk-6LORREOI.js} +1 -1
  52. package/dist/{chunk-MPDJJNGA.js → chunk-6MLSXBNR.js} +2 -2
  53. package/dist/{chunk-YI37QERZ.js → chunk-6WECKO24.js} +4 -4
  54. package/dist/{chunk-4ZSWBLVM.js → chunk-7QZZK2YU.js} +6 -6
  55. package/dist/{chunk-FWAXBC3P.js → chunk-7VOEZPJ4.js} +1 -1
  56. package/dist/{chunk-TVDI7SX2.js → chunk-AYV2NRYJ.js} +104 -2
  57. package/dist/{chunk-MWP65CZ3.js → chunk-C2OUUGCW.js} +2 -2
  58. package/dist/{chunk-WIRM7ZLI.js → chunk-COZE23R3.js} +2 -2
  59. package/dist/{chunk-OOZ5RSEF.js → chunk-CU7Y7Y4L.js} +2 -2
  60. package/dist/{chunk-WL4PVINO.js → chunk-D72OJS4S.js} +2 -2
  61. package/dist/{chunk-226PID65.js → chunk-FZW7Q7GM.js} +5 -5
  62. package/dist/{chunk-OOKRWBCG.js → chunk-H5YC7H6V.js} +3 -3
  63. package/dist/{chunk-WP57USIT.js → chunk-HJL5RBOU.js} +4 -4
  64. package/dist/{chunk-G54VGPRX.js → chunk-HSVJ62BE.js} +1 -1
  65. package/dist/{chunk-7JM6TCMA.js → chunk-HTO2XULO.js} +1 -1
  66. package/dist/{chunk-6NL3LYUM.js → chunk-IQCNOEQL.js} +13 -18
  67. package/dist/{chunk-HHMMY6TB.js → chunk-JC3AGMOP.js} +2 -2
  68. package/dist/{chunk-7VWIBIDK.js → chunk-JEJSAI6Z.js} +4 -4
  69. package/dist/{chunk-RJAPOB34.js → chunk-LJJWNHUW.js} +2 -2
  70. package/dist/{chunk-3VSMTCXV.js → chunk-ME55HQOI.js} +4 -4
  71. package/dist/{chunk-43ORAXAL.js → chunk-NA5D62OI.js} +1 -1
  72. package/dist/{chunk-6QPQG3Q5.js → chunk-NDKFHLJI.js} +5 -5
  73. package/dist/{chunk-QIPDIZC5.js → chunk-NDZBDXU3.js} +4 -4
  74. package/dist/{chunk-TCVFNLMM.js → chunk-OIESPH3R.js} +21 -18
  75. package/dist/{chunk-4ATFPZ6X.js → chunk-PNUWMEIY.js} +1 -1
  76. package/dist/{chunk-U6QEHPEF.js → chunk-PSWFYNOX.js} +3 -3
  77. package/dist/{chunk-5QTQI3HL.js → chunk-Q4JD6WNB.js} +1 -1
  78. package/dist/{chunk-RI5E5JQS.js → chunk-QIOWXUFH.js} +1 -1
  79. package/dist/{chunk-GFAVGG3X.js → chunk-SDDKVY4I.js} +5 -5
  80. package/dist/{chunk-LYDO2SS6.js → chunk-SYLJL63X.js} +3 -3
  81. package/dist/{chunk-43IDNI4X.js → chunk-TFV6RATK.js} +5 -5
  82. package/dist/{chunk-3LSJ7YVM.js → chunk-TMQMUGSN.js} +3 -3
  83. package/dist/{chunk-NPRFA7YM.js → chunk-VKTDXQGH.js} +2 -2
  84. package/dist/{chunk-4EAILOOQ.js → chunk-VP6WDFVO.js} +3 -3
  85. package/dist/{chunk-LHLUKFJV.js → chunk-WBQK6KD5.js} +8 -8
  86. package/dist/{chunk-ZAH3CCEV.js → chunk-WJO7SENK.js} +4 -4
  87. package/dist/{chunk-LBNIISXH.js → chunk-WWTB4DAE.js} +1 -1
  88. package/dist/{chunk-U5SXTKZV.js → chunk-Y6KG5JZP.js} +2 -2
  89. package/dist/{chunk-6MGD24SH.js → chunk-YKYFFCB5.js} +1 -1
  90. package/dist/{chunk-JVUK5YFM.js → chunk-YL6HU2KF.js} +5 -5
  91. package/dist/{chunk-VUHT6NYV.js → chunk-YOHPJNFW.js} +4 -4
  92. package/dist/{chunk-RYKU62ZI.js → chunk-ZH74RRGM.js} +1 -1
  93. package/dist/{chunk-N6XFGVNW.js → chunk-ZMUDVPOT.js} +3 -3
  94. package/dist/{global-upgrade-NIFOQFV4.js → global-upgrade-MOBLBPIJ.js} +6 -6
  95. package/dist/{paths-QPBLO5Q2.js → paths-55SPLYW5.js} +2 -2
  96. package/dist/{reapply-TVMBJWJB.js → reapply-SOIJJKGO.js} +20 -20
  97. package/dist/src/index.js +19 -19
  98. package/dist/{upgrade-lock-Z3LYROGK.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-G54VGPRX.js";
9
+ } from "../chunk-HSVJ62BE.js";
10
10
  import {
11
11
  exitOnHelpFlag
12
- } from "../chunk-MWP65CZ3.js";
13
- import "../chunk-S2LDTUHS.js";
12
+ } from "../chunk-C2OUUGCW.js";
13
+ import "../chunk-5EWNGYFD.js";
14
14
  import "../chunk-KZERVKTD.js";
15
- import "../chunk-NPRFA7YM.js";
15
+ import "../chunk-VKTDXQGH.js";
16
16
  import "../chunk-T7E75EKA.js";
17
- import "../chunk-7JM6TCMA.js";
18
- import "../chunk-4ATFPZ6X.js";
19
- import "../chunk-TVDI7SX2.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-GFAVGG3X.js";
12
+ } from "../chunk-SDDKVY4I.js";
13
13
  import {
14
14
  installWithUpgradeLock
15
- } from "../chunk-Y25RH4VF.js";
15
+ } from "../chunk-57VUNV32.js";
16
16
  import {
17
17
  ensureCodexTrustAfterReapply,
18
18
  reapplyAllAgents
19
- } from "../chunk-6CM3B4PJ.js";
19
+ } from "../chunk-5BIMNGRQ.js";
20
20
  import {
21
21
  describeCodexTrustConfirmation
22
- } from "../chunk-OOZ5RSEF.js";
23
- import "../chunk-RJAPOB34.js";
22
+ } from "../chunk-CU7Y7Y4L.js";
23
+ import "../chunk-LJJWNHUW.js";
24
24
  import {
25
25
  waitForMachineReadiness
26
- } from "../chunk-4ZSWBLVM.js";
26
+ } from "../chunk-7QZZK2YU.js";
27
27
  import {
28
28
  detectProviderLiveCapabilities,
29
29
  expectedLaunchCapabilities,
30
30
  hasSpawnProvider,
31
31
  resolveControlPolicy
32
- } from "../chunk-HHMMY6TB.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-MPDJJNGA.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-43IDNI4X.js";
55
+ } from "../chunk-TFV6RATK.js";
56
56
  import "../chunk-XHKBHWLX.js";
57
57
  import {
58
58
  readMacAppAgentKey
59
- } from "../chunk-YI37QERZ.js";
60
- import "../chunk-6QPQG3Q5.js";
59
+ } from "../chunk-6WECKO24.js";
60
+ import "../chunk-NDKFHLJI.js";
61
61
  import {
62
62
  exitOnHelpFlag
63
- } from "../chunk-MWP65CZ3.js";
64
- import "../chunk-3VSMTCXV.js";
65
- import "../chunk-226PID65.js";
66
- import "../chunk-4EAILOOQ.js";
67
- import "../chunk-6MGD24SH.js";
68
- import "../chunk-FWAXBC3P.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-S2LDTUHS.js";
75
- import "../chunk-6NL3LYUM.js";
76
- import "../chunk-JRKUJOZL.js";
77
- import "../chunk-JVUK5YFM.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-LYDO2SS6.js";
80
- import "../chunk-U6QEHPEF.js";
81
- import "../chunk-LUYAXSUS.js";
82
- import "../chunk-43ORAXAL.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-NPRFA7YM.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-WP57USIT.js";
97
+ } from "../chunk-HJL5RBOU.js";
98
98
  import "../chunk-T7E75EKA.js";
99
99
  import {
100
100
  getApiKey
101
- } from "../chunk-7JM6TCMA.js";
101
+ } from "../chunk-HTO2XULO.js";
102
102
  import {
103
103
  NPX_LATEST_COMMAND
104
- } from "../chunk-4ATFPZ6X.js";
104
+ } from "../chunk-PNUWMEIY.js";
105
105
  import {
106
106
  CANONICAL_PACKAGE,
107
107
  LEGACY_PACKAGE,
108
108
  getPackageVersion
109
- } from "../chunk-TVDI7SX2.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-ZAH3CCEV.js";
8
- import "../chunk-UUBEEKT6.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-MWP65CZ3.js";
14
+ } from "../chunk-C2OUUGCW.js";
15
15
  import {
16
16
  rejectUnknownFlags
17
17
  } from "../chunk-GMXKITVA.js";
18
- import "../chunk-S2LDTUHS.js";
19
- import "../chunk-U6QEHPEF.js";
20
- import "../chunk-LUYAXSUS.js";
21
- import "../chunk-43ORAXAL.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-NPRFA7YM.js";
29
- import "../chunk-WP57USIT.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-7JM6TCMA.js";
35
- import "../chunk-4ATFPZ6X.js";
36
- import "../chunk-TVDI7SX2.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-LUYAXSUS.js";
5
- import "../chunk-43ORAXAL.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-WP57USIT.js";
10
+ import "../chunk-HJL5RBOU.js";
11
11
  import "../chunk-T7E75EKA.js";
12
- import "../chunk-7JM6TCMA.js";
12
+ import "../chunk-HTO2XULO.js";
13
13
  import {
14
14
  COMMANDS,
15
15
  renderHelp,
16
16
  resolveCommandName
17
- } from "../chunk-4ATFPZ6X.js";
17
+ } from "../chunk-PNUWMEIY.js";
18
18
  import {
19
19
  getPackageVersion
20
- } from "../chunk-TVDI7SX2.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-WP57USIT.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-TVDI7SX2.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-43ORAXAL.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-7JM6TCMA.js";
9
+ } from "./chunk-HTO2XULO.js";
10
10
  import {
11
11
  clientContextHeaders,
12
12
  getPackageVersion
13
- } from "./chunk-TVDI7SX2.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-S2LDTUHS.js";
6
+ } from "./chunk-5EWNGYFD.js";
7
7
  import {
8
8
  NPX_LATEST_COMMAND
9
- } from "./chunk-4ATFPZ6X.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-7JM6TCMA.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-TVDI7SX2.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-WP57USIT.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-RJAPOB34.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-6QPQG3Q5.js";
15
+ } from "./chunk-NDKFHLJI.js";
16
16
  import {
17
17
  addClaudeMcpServer,
18
18
  addPusharyHooks,
19
19
  addPusharyToolPermissions
20
- } from "./chunk-3VSMTCXV.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-226PID65.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-4EAILOOQ.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-WP57USIT.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-NPRFA7YM.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-7JM6TCMA.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-WP57USIT.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-6NL3LYUM.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-7JM6TCMA.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-WP57USIT.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-TVDI7SX2.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-6QPQG3Q5.js";
3
+ } from "./chunk-NDKFHLJI.js";
4
4
  import {
5
5
  keyPrefix
6
- } from "./chunk-S2LDTUHS.js";
6
+ } from "./chunk-5EWNGYFD.js";
7
7
  import {
8
8
  bridgeAgentKey
9
- } from "./chunk-WP57USIT.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-TVDI7SX2.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-HHMMY6TB.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-43IDNI4X.js";
13
+ } from "./chunk-TFV6RATK.js";
14
14
  import {
15
15
  readControlMode,
16
16
  readKeySource
17
- } from "./chunk-S2LDTUHS.js";
17
+ } from "./chunk-5EWNGYFD.js";
18
18
  import {
19
19
  getMachineId
20
- } from "./chunk-43ORAXAL.js";
20
+ } from "./chunk-NA5D62OI.js";
21
21
  import {
22
22
  getBaseUrl
23
- } from "./chunk-7JM6TCMA.js";
23
+ } from "./chunk-HTO2XULO.js";
24
24
  import {
25
25
  getPackageVersion
26
- } from "./chunk-TVDI7SX2.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-WP57USIT.js";
3
+ } from "./chunk-HJL5RBOU.js";
4
4
 
5
5
  // src/bell/install.ts
6
6
  import { join } from "path";
@@ -900,6 +900,16 @@ var KEY_SCOPES = ["full_access", "agent", "connector", "bound"];
900
900
  var normalizeKeyScope = (value) => typeof value === "string" && KEY_SCOPES.includes(value) ? value : null;
901
901
  var APPROVAL_MODES = ["push_only", "terminal_only", "push_first", "notify_only"];
902
902
  var isApprovalMode = (value) => typeof value === "string" && APPROVAL_MODES.includes(value);
903
+ var approvalModeWithoutLocalPrompt = (mode) => {
904
+ switch (mode) {
905
+ case "push_first":
906
+ return "push_only";
907
+ case "push_only":
908
+ case "notify_only":
909
+ case "terminal_only":
910
+ return mode;
911
+ }
912
+ };
903
913
  var MAX_AGENT_QUESTIONS = 4;
904
914
  var parseAgentQuestion = (raw) => {
905
915
  const q = raw;
@@ -1706,6 +1716,8 @@ var DESTRUCTIVE_SUBCOMMANDS = /* @__PURE__ */ new Set([
1706
1716
  "wipe",
1707
1717
  "reset"
1708
1718
  ]);
1719
+ var SUBCOMMAND_WORD_SEPARATOR = /[-:]/;
1720
+ var subcommandWordDestroys = (word) => word.split(SUBCOMMAND_WORD_SEPARATOR).some((part) => DESTRUCTIVE_SUBCOMMANDS.has(part));
1709
1721
  var DATA_LOSS_COMMAND_PATTERNS = [
1710
1722
  "Bash(git branch -D:*)",
1711
1723
  "Bash(git branch --delete:*)",
@@ -1800,7 +1812,7 @@ var normalizedCommand = (command) => {
1800
1812
  const segments = readableCommandSegments(command);
1801
1813
  return segments === null ? null : segments.map((segment) => normalizedInvocation(invocationOf(segment))).join("; ");
1802
1814
  };
1803
- 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));
1804
1816
  var segmentNeedsAPerson = (toolName, segment) => {
1805
1817
  const invocation = invocationOf(segment);
1806
1818
  const normalized = normalizedInvocation(invocation);
@@ -1816,7 +1828,79 @@ var withoutSessionToolGrants = (config) => ({
1816
1828
  policies: config.policies.filter((policy) => !isSessionToolGrant(policy))
1817
1829
  });
1818
1830
  var SESSION_TOOL_GRANT_TOOLS = /* @__PURE__ */ new Set(["Bash"]);
1819
- 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);
1820
1904
  var API_KEY_PATTERN = /^pk_[a-f0-9]+\.[a-f0-9]+$/;
1821
1905
  var isValidApiKey = (value) => API_KEY_PATTERN.test(value);
1822
1906
  var ACTION_BODY_MAX = 4e3;
@@ -2499,6 +2583,17 @@ var agentPromptsBeforeAnEdit = ({ source, event, permissionMode }) => {
2499
2583
  return event === "PreToolUse" && runsTheClaudeHook(source) && claudePromptsBeforeAnEdit(permissionMode);
2500
2584
  };
2501
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));
2502
2597
  var MAX_AGENT_PERMISSION_RULES_PER_KIND = 256;
2503
2598
  var MAX_AGENT_PERMISSION_RULE_LENGTH = 512;
2504
2599
  var isAgentPermissionRule = (value) => typeof value === "string" && value.length > 0 && value.length <= MAX_AGENT_PERMISSION_RULE_LENGTH;
@@ -3068,6 +3163,7 @@ export {
3068
3163
  withoutDeclinedAgent,
3069
3164
  normalizeKeyScope,
3070
3165
  isApprovalMode,
3166
+ approvalModeWithoutLocalPrompt,
3071
3167
  parseAgentQuestion,
3072
3168
  parseAgentQuestions,
3073
3169
  parseAgentQuestionAnswers,
@@ -3094,6 +3190,7 @@ export {
3094
3190
  isSafeReadOnlyCommand,
3095
3191
  isAutoApprove,
3096
3192
  FILE_TARGET_TOOLS,
3193
+ parseMcpToolName,
3097
3194
  isValidApiKey,
3098
3195
  ACTION_BODY_MAX,
3099
3196
  DECISION_LINE_MAX,
@@ -3120,6 +3217,11 @@ export {
3120
3217
  CLAUDE_PRETOOLUSE_MATCHER,
3121
3218
  resolveGate,
3122
3219
  editGoesToTheAgentsPrompt,
3220
+ SCOPE_BATCH_REASON,
3221
+ unapprovedScopeReason,
3222
+ scopeBreachReasonOf,
3223
+ onlyCodexPreToolUseCanAsk,
3224
+ codexCallNeedsAPerson,
3123
3225
  claudePermissionRulesFromSettings,
3124
3226
  claudeConsultsItsAllowlist,
3125
3227
  agentRulesAllowEveryInput,
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-KZERVKTD.js";
4
4
  import {
5
5
  renderCommandHelp
6
- } from "./chunk-4ATFPZ6X.js";
6
+ } from "./chunk-PNUWMEIY.js";
7
7
  import {
8
8
  getPackageVersion
9
- } from "./chunk-TVDI7SX2.js";
9
+ } from "./chunk-AYV2NRYJ.js";
10
10
 
11
11
  // src/cli/usage.ts
12
12
  var exitOnHelpFlag = (command) => {