@pushary/agent-hooks 0.95.4 → 0.95.5

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 (86) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/data/cursor-plugin/.cursor-plugin/plugin.json +1 -1
  3. package/data/cursor-plugin/CHANGELOG.md +5 -0
  4. package/data/cursor-plugin/README.md +1 -1
  5. package/data/cursor-plugin/scripts/pushary-gate.mjs +5 -2
  6. package/data/vscode-plugin/.claude-plugin/plugin.json +1 -1
  7. package/data/vscode-plugin/CHANGELOG.md +5 -0
  8. package/data/vscode-plugin/README.md +1 -1
  9. package/data/vscode-plugin/scripts/pushary-gate.mjs +14 -3
  10. package/dist/bin/pushary-bell-hook.js +20 -20
  11. package/dist/bin/pushary-bell.js +7 -7
  12. package/dist/bin/pushary-claude.js +29 -24
  13. package/dist/bin/pushary-clean.js +18 -18
  14. package/dist/bin/pushary-codex-bridge.js +10 -10
  15. package/dist/bin/pushary-codex-hook.js +24 -24
  16. package/dist/bin/pushary-codex.js +8 -8
  17. package/dist/bin/pushary-connect.js +6 -6
  18. package/dist/bin/pushary-cowork.js +3 -3
  19. package/dist/bin/pushary-daemon.js +24 -24
  20. package/dist/bin/pushary-disconnect.js +9 -8
  21. package/dist/bin/pushary-doctor.js +20 -20
  22. package/dist/bin/pushary-elicitation-hook.js +20 -20
  23. package/dist/bin/pushary-gemini-bridge.js +9 -9
  24. package/dist/bin/pushary-gemini-hook.js +23 -23
  25. package/dist/bin/pushary-hook.js +25 -25
  26. package/dist/bin/pushary-login.js +7 -7
  27. package/dist/bin/pushary-logout.js +4 -4
  28. package/dist/bin/pushary-mode.js +3 -3
  29. package/dist/bin/pushary-notification-hook.js +22 -22
  30. package/dist/bin/pushary-opencode-hook.js +23 -23
  31. package/dist/bin/pushary-permission-denied-hook.js +25 -25
  32. package/dist/bin/pushary-permission-hook.js +25 -25
  33. package/dist/bin/pushary-post-hook.js +22 -22
  34. package/dist/bin/pushary-prompt-hook.js +22 -22
  35. package/dist/bin/pushary-session-end-hook.js +22 -22
  36. package/dist/bin/pushary-session-start-hook.js +25 -25
  37. package/dist/bin/pushary-setup.js +41 -28
  38. package/dist/bin/pushary-stats.js +2 -2
  39. package/dist/bin/pushary-status.js +8 -8
  40. package/dist/bin/pushary-stop-hook.js +22 -22
  41. package/dist/bin/pushary-stopfailure-hook.js +22 -22
  42. package/dist/bin/pushary-transcript-register.js +18 -18
  43. package/dist/bin/pushary-transcripts.js +5 -5
  44. package/dist/bin/pushary-upgrade.js +15 -15
  45. package/dist/bin/pushary-wait.js +3 -3
  46. package/dist/{chunk-TKA2L2BU.js → chunk-2D7BAOMY.js} +5 -5
  47. package/dist/{chunk-MDDKA4QM.js → chunk-2ZTL3PGN.js} +1 -1
  48. package/dist/{chunk-J6NAWJTQ.js → chunk-32RMQO5Z.js} +1 -1
  49. package/dist/{chunk-GGX5QTBG.js → chunk-3AJIK5AO.js} +4 -1
  50. package/dist/{chunk-JDNW6FTV.js → chunk-4PX4QK2Z.js} +1 -1
  51. package/dist/{chunk-4NJURLRP.js → chunk-4RF52LSU.js} +8 -8
  52. package/dist/{chunk-U24ERDPE.js → chunk-67YNQ3QA.js} +9 -15
  53. package/dist/{chunk-TR6DBXO3.js → chunk-6AEM5RCS.js} +1 -1
  54. package/dist/{chunk-XDHJ4KZJ.js → chunk-6VANQN5Q.js} +2 -2
  55. package/dist/{chunk-LVU3Q43J.js → chunk-BDI2MXTT.js} +1 -1
  56. package/dist/{chunk-ZKDQ3QRP.js → chunk-BMANRGJQ.js} +1 -1
  57. package/dist/{chunk-HTWQH3VI.js → chunk-CUEZMPLJ.js} +1 -1
  58. package/dist/{chunk-AGQA72IH.js → chunk-D62EONG3.js} +1 -1
  59. package/dist/{chunk-HJYGC7IR.js → chunk-GOPIMNVC.js} +1 -1
  60. package/dist/{chunk-TMOCSYJK.js → chunk-HBHEX3JQ.js} +3 -3
  61. package/dist/{chunk-MQO7J2OJ.js → chunk-HCMM3BOW.js} +7 -7
  62. package/dist/{chunk-CVZP67ST.js → chunk-HGUZOUB2.js} +4 -4
  63. package/dist/{chunk-PFRLYYF6.js → chunk-HQIVR7MM.js} +1 -1
  64. package/dist/{chunk-KT2CGUOE.js → chunk-I6GZX3FT.js} +1 -1
  65. package/dist/{chunk-3OXHYPZG.js → chunk-IM2A5H33.js} +4 -1
  66. package/dist/{chunk-YE37HYN3.js → chunk-IVQMNLSA.js} +3 -14
  67. package/dist/{chunk-MNWDOXX6.js → chunk-KAVDAZ7A.js} +1 -1
  68. package/dist/{chunk-JAKWHALW.js → chunk-KI4PA7MQ.js} +1 -1
  69. package/dist/{chunk-O7ODXFII.js → chunk-N4VNLISN.js} +2 -2
  70. package/dist/{chunk-V4G7BQZ6.js → chunk-OEKFD5BC.js} +1 -1
  71. package/dist/{chunk-TGORRMOU.js → chunk-OI3DJA7N.js} +1 -1
  72. package/dist/{chunk-W5GH5GTX.js → chunk-OW6AZDY2.js} +1 -1
  73. package/dist/{chunk-7W6E3C3I.js → chunk-QHWXUNMN.js} +1 -1
  74. package/dist/{chunk-6BNBW3M2.js → chunk-QQGNFHIK.js} +2 -2
  75. package/dist/{chunk-XIVPHGV4.js → chunk-RLXVW4AM.js} +1 -1
  76. package/dist/{chunk-3N4FT4WQ.js → chunk-S5CMLR35.js} +1 -1
  77. package/dist/{chunk-EEJ6EQMI.js → chunk-UCS65VVR.js} +1 -1
  78. package/dist/{chunk-MZOTKCNZ.js → chunk-VOSGZ6PH.js} +4 -4
  79. package/dist/{chunk-J5KTLGO5.js → chunk-VTO3TNIB.js} +1 -1
  80. package/dist/{chunk-7VVX6HQG.js → chunk-WDKHZRAS.js} +178 -17
  81. package/dist/{chunk-HPM47TEO.js → chunk-WRDLHR2F.js} +2 -2
  82. package/dist/{chunk-ND52YE7L.js → chunk-XLOELLAS.js} +4 -4
  83. package/dist/{chunk-2BE7ZVWP.js → chunk-XS33QBJA.js} +15 -3
  84. package/dist/{chunk-57NOPUBK.js → chunk-Z2UWFEJW.js} +8 -8
  85. package/dist/src/index.js +11 -11
  86. package/package.json +1 -1
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  NOTIFICATION_MATCHED_TYPES,
3
3
  POSTTOOLUSE_MIRRORED_TOOLS,
4
- PRETOOLUSE_GATED_TOOLS,
5
4
  PRETOOLUSE_PHONE_ANSWERED_TOOLS
6
- } from "./chunk-YE37HYN3.js";
5
+ } from "./chunk-IVQMNLSA.js";
7
6
  import {
8
7
  isProtectedByScope
9
- } from "./chunk-W5GH5GTX.js";
8
+ } from "./chunk-OW6AZDY2.js";
10
9
  import {
11
10
  HOOK_BUDGETS,
12
- HOOK_LOCATOR_BINARY
13
- } from "./chunk-7VVX6HQG.js";
11
+ HOOK_LOCATOR_BINARY,
12
+ PRETOOLUSE_GATED_TOOLS
13
+ } from "./chunk-WDKHZRAS.js";
14
14
 
15
15
  // src/gemini-config.ts
16
16
  var GEMINI_HOOK_BINARY = "pushary-gemini-hook";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-7QLSKOSU.js";
7
7
  import {
8
8
  isValidApiKey
9
- } from "./chunk-7VVX6HQG.js";
9
+ } from "./chunk-WDKHZRAS.js";
10
10
 
11
11
  // src/setup/options.ts
12
12
  var AGENT_CHOICES = ["claude_code", "codex", "gemini_cli", "hermes", "cursor", "vscode", "opencode", "custom"];
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getMachineId
3
- } from "./chunk-O7ODXFII.js";
3
+ } from "./chunk-N4VNLISN.js";
4
4
  import {
5
5
  getPackageVersion
6
6
  } from "./chunk-DINDL2CF.js";
@@ -8,7 +8,10 @@ var LOCATE = 'B=$(command -v "$0") || exit 0; [ -f "$B" ] || exit 0; [ -x "$B" ]
8
8
  var NODE_PRESENT = "command -v node >/dev/null 2>&1 || exit 0";
9
9
  var CURSOR_NO_OPINION = { permission: "deny", user_message: "Command denied via Pushary.", agent_message: "Pushary hook is unavailable. Repair the integration before retrying." };
10
10
  var shellDoubleQuoted = (text) => `"${text.replace(/(["\\$`])/g, "\\$1")}"`;
11
- var CURSOR_MISS = `{ printf %s ${shellDoubleQuoted(JSON.stringify(CURSOR_NO_OPINION))}; exit 0; }`;
11
+ var CURSOR_NATIVE_PROMPT = { permission: "ask" };
12
+ var CURSOR_NATIVE_PROMPT_EVENTS = ["beforeShellExecution", "beforeMCPExecution"];
13
+ var hookEventIsOneOf = (events) => events.flatMap((event) => [`*\\"hook_event_name\\":\\"${event}\\"*`, `*\\"hook_event_name\\":\\ \\"${event}\\"*`]).join("|");
14
+ var CURSOR_MISS = `{ E=$(cat); case "$E" in ${hookEventIsOneOf(CURSOR_NATIVE_PROMPT_EVENTS)}) printf %s ${shellDoubleQuoted(JSON.stringify(CURSOR_NATIVE_PROMPT))} ;; *) printf %s ${shellDoubleQuoted(JSON.stringify(CURSOR_NO_OPINION))} ;; esac; exit 0; }`;
12
15
  var HOOK_GUARD_SCRIPTS = {
13
16
  native_binary: `${LOCATE}; exec "$B" "$@"`,
14
17
  node_binary: `${LOCATE}; ${NODE_PRESENT}; exec "$B" "$@"`,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  redactSecrets
3
- } from "./chunk-7VVX6HQG.js";
3
+ } from "./chunk-WDKHZRAS.js";
4
4
 
5
5
  // src/crypto.ts
6
6
  import nacl from "tweetnacl";
@@ -3,19 +3,19 @@ import {
3
3
  loadPin,
4
4
  savePin,
5
5
  verifyRecipients
6
- } from "./chunk-ZKDQ3QRP.js";
6
+ } from "./chunk-BMANRGJQ.js";
7
7
  import {
8
8
  hookOwnerOf
9
- } from "./chunk-MZOTKCNZ.js";
9
+ } from "./chunk-VOSGZ6PH.js";
10
10
  import {
11
11
  ensureDaemonRunning
12
- } from "./chunk-ND52YE7L.js";
12
+ } from "./chunk-XLOELLAS.js";
13
13
  import {
14
14
  buildTranscriptRecords,
15
15
  decodePublicKey,
16
16
  generateSessionKey,
17
17
  wrapSessionKey
18
- } from "./chunk-JDNW6FTV.js";
18
+ } from "./chunk-4PX4QK2Z.js";
19
19
  import {
20
20
  fetchTranscriptRecipients,
21
21
  uploadTranscriptRecords
@@ -23,17 +23,17 @@ import {
23
23
  import {
24
24
  transcriptEnvironmentPreference,
25
25
  transcriptsEnabled
26
- } from "./chunk-TGORRMOU.js";
26
+ } from "./chunk-OI3DJA7N.js";
27
27
  import {
28
28
  codexHome,
29
29
  pusharyDir
30
- } from "./chunk-W5GH5GTX.js";
30
+ } from "./chunk-OW6AZDY2.js";
31
31
  import {
32
32
  readTranscriptPreference
33
- } from "./chunk-3N4FT4WQ.js";
33
+ } from "./chunk-S5CMLR35.js";
34
34
  import {
35
35
  writeJsonAtomic
36
- } from "./chunk-MNWDOXX6.js";
36
+ } from "./chunk-KAVDAZ7A.js";
37
37
  import {
38
38
  getApiKey,
39
39
  getBaseUrl
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  defersToNativeMode
3
- } from "./chunk-AGQA72IH.js";
3
+ } from "./chunk-D62EONG3.js";
4
4
  import {
5
5
  isGatingMoment,
6
6
  recordKeylessMoment
7
- } from "./chunk-EEJ6EQMI.js";
7
+ } from "./chunk-UCS65VVR.js";
8
8
  import {
9
9
  denyReasonFrom,
10
10
  isDeferAnswer
@@ -20,7 +20,7 @@ import {
20
20
  reportEvent,
21
21
  settleQuestionsForToolUse,
22
22
  throttlePass
23
- } from "./chunk-MQO7J2OJ.js";
23
+ } from "./chunk-HCMM3BOW.js";
24
24
  import {
25
25
  DECISION_STOP_REASON,
26
26
  askUser,
@@ -28,7 +28,7 @@ import {
28
28
  isLocalQuestionHandoff,
29
29
  sendNotification,
30
30
  waitForQuestion
31
- } from "./chunk-2BE7ZVWP.js";
31
+ } from "./chunk-XS33QBJA.js";
32
32
  import {
33
33
  UNNAMED_ACTION,
34
34
  deriveAction,
@@ -38,14 +38,10 @@ import {
38
38
  describeToolCall,
39
39
  permissionDeniedAction,
40
40
  scopePathFor
41
- } from "./chunk-LVU3Q43J.js";
42
- import {
43
- PRETOOLUSE_HANDLED_TOOLS,
44
- PRETOOLUSE_PHONE_ANSWERED_TOOLS
45
- } from "./chunk-YE37HYN3.js";
41
+ } from "./chunk-BDI2MXTT.js";
46
42
  import {
47
43
  getMachineId
48
- } from "./chunk-O7ODXFII.js";
44
+ } from "./chunk-N4VNLISN.js";
49
45
  import {
50
46
  getApiKey,
51
47
  getBaseUrl
@@ -57,12 +53,13 @@ import {
57
53
  effectiveWaitSeconds,
58
54
  hookWaitClamped,
59
55
  hookWaitDeadline,
56
+ isPermissionRequestOwnedByPreToolUse,
60
57
  isPusharyOwnTool,
61
58
  parseAgentQuestionAnswers,
62
59
  parseAgentQuestions,
63
60
  resolveGate,
64
61
  stoppedOutput
65
- } from "./chunk-7VVX6HQG.js";
62
+ } from "./chunk-WDKHZRAS.js";
66
63
 
67
64
  // src/decision-episode.ts
68
65
  var EPISODE_PATH = "/api/agent/decision-episode";
@@ -501,10 +498,7 @@ var toPermissionRequestOutput = (hookOutput) => {
501
498
  return void 0;
502
499
  };
503
500
  var handlePermissionRequest = async (input) => {
504
- if (PRETOOLUSE_HANDLED_TOOLS.has(input.tool_name)) {
505
- const reclaimDeferredExec = !PRETOOLUSE_PHONE_ANSWERED_TOOLS.includes(input.tool_name) && shouldDeferToNativeMode(input.permission_mode, input.tool_name);
506
- if (!reclaimDeferredExec) return void 0;
507
- }
501
+ if (isPermissionRequestOwnedByPreToolUse(input.tool_name, input.permission_mode, shouldDeferToNativeMode)) return void 0;
508
502
  if (isPusharyOwnTool(input.tool_name)) return void 0;
509
503
  let apiKey;
510
504
  try {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseVersion
3
- } from "./chunk-TKA2L2BU.js";
3
+ } from "./chunk-2D7BAOMY.js";
4
4
 
5
5
  // src/setup/agent-probe.ts
6
6
  import { execSync } from "child_process";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  openCodeConfigDirFrom
3
- } from "./chunk-PFRLYYF6.js";
3
+ } from "./chunk-HQIVR7MM.js";
4
4
  import {
5
5
  codexHomeFrom
6
- } from "./chunk-W5GH5GTX.js";
6
+ } from "./chunk-OW6AZDY2.js";
7
7
 
8
8
  // src/vscode-config.ts
9
9
  import { homedir } from "os";
@@ -5,7 +5,7 @@ import {
5
5
  FILE_TARGET_TOOLS,
6
6
  redactSecrets,
7
7
  redactSecretsDeep
8
- } from "./chunk-7VVX6HQG.js";
8
+ } from "./chunk-WDKHZRAS.js";
9
9
 
10
10
  // ../hook-mapping/src/describe.ts
11
11
  import { isAbsolute, relative, resolve } from "path";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  writeJsonAtomicDurable
3
- } from "./chunk-MNWDOXX6.js";
3
+ } from "./chunk-KAVDAZ7A.js";
4
4
 
5
5
  // src/transcript-recipient-pin.ts
6
6
  import { existsSync, mkdirSync, readFileSync, rmSync } from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  HOOK_LOCATOR_BINARY
3
- } from "./chunk-7VVX6HQG.js";
3
+ } from "./chunk-WDKHZRAS.js";
4
4
 
5
5
  // src/diagnostics/bridge.ts
6
6
  import { execFileSync } from "child_process";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  shouldDeferToNativeMode
3
- } from "./chunk-7VVX6HQG.js";
3
+ } from "./chunk-WDKHZRAS.js";
4
4
 
5
5
  // src/native-defer.ts
6
6
  var nativeDeferOptions = () => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  guardBinary
3
- } from "./chunk-GGX5QTBG.js";
3
+ } from "./chunk-3AJIK5AO.js";
4
4
 
5
5
  // src/bell/install.ts
6
6
  import { join } from "path";
@@ -2,15 +2,15 @@ import {
2
2
  CLAUDE_HOOK_EVENTS,
3
3
  GEMINI_HOOK_EVENTS,
4
4
  hasGeminiHooks
5
- } from "./chunk-TKA2L2BU.js";
5
+ } from "./chunk-2D7BAOMY.js";
6
6
  import {
7
7
  CODEX_HOOK_EVENTS,
8
8
  hasCodexHooks
9
- } from "./chunk-W5GH5GTX.js";
9
+ } from "./chunk-OW6AZDY2.js";
10
10
  import {
11
11
  CURSOR_GATE_EVENTS,
12
12
  HOOK_LOCATOR_BINARY
13
- } from "./chunk-7VVX6HQG.js";
13
+ } from "./chunk-WDKHZRAS.js";
14
14
 
15
15
  // src/diagnostics/wiring.ts
16
16
  var record = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : null;
@@ -3,7 +3,7 @@ import {
3
3
  isPolicyConfig,
4
4
  sendNotification,
5
5
  waitForAnswer
6
- } from "./chunk-2BE7ZVWP.js";
6
+ } from "./chunk-XS33QBJA.js";
7
7
  import {
8
8
  AGENT_IDENTITIES,
9
9
  TEAMMATE_IDLE_ACTION,
@@ -24,20 +24,20 @@ import {
24
24
  summarizeStop,
25
25
  taskTitleFrom,
26
26
  toolResultErrorText
27
- } from "./chunk-LVU3Q43J.js";
27
+ } from "./chunk-BDI2MXTT.js";
28
28
  import {
29
29
  NOTIFICATION_PUSH_TYPES,
30
30
  POSTTOOLUSE_MIRROR_ONLY_TOOLS
31
- } from "./chunk-YE37HYN3.js";
31
+ } from "./chunk-IVQMNLSA.js";
32
32
  import {
33
33
  getMachineId
34
- } from "./chunk-O7ODXFII.js";
34
+ } from "./chunk-N4VNLISN.js";
35
35
  import {
36
36
  withRetry
37
37
  } from "./chunk-EYRGBYZG.js";
38
38
  import {
39
39
  reportedInstallSource
40
- } from "./chunk-MNWDOXX6.js";
40
+ } from "./chunk-KAVDAZ7A.js";
41
41
  import {
42
42
  getApiKey,
43
43
  getBaseUrl
@@ -45,6 +45,7 @@ import {
45
45
  import {
46
46
  HOOK_SOURCES,
47
47
  PENDING_COMMAND_PREFIX,
48
+ REPO_AWARE_AGENTS,
48
49
  gateOutputFor,
49
50
  isAutoApprove,
50
51
  localRepoKey,
@@ -53,7 +54,7 @@ import {
53
54
  pendingCommandEvents,
54
55
  resolveAutoResolveOrigin,
55
56
  resolvePolicy
56
- } from "./chunk-7VVX6HQG.js";
57
+ } from "./chunk-WDKHZRAS.js";
57
58
 
58
59
  // src/policy.ts
59
60
  import { createHash } from "crypto";
@@ -62,7 +63,6 @@ import { join } from "path";
62
63
  import { tmpdir } from "os";
63
64
  var CACHE_TTL_MS = 60 * 1e3;
64
65
  var STALE_CACHE_MAX_MS = 12 * 60 * 60 * 1e3;
65
- var REPO_AWARE_AGENTS = ["claude_code", "codex", "gemini_cli", "opencode"];
66
66
  var policyRequestFor = (agentType) => ({
67
67
  agent: agentType,
68
68
  repoAware: REPO_AWARE_AGENTS.includes(agentType)
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  CLAUDE_HOOK_EVENTS,
3
3
  supportedClaudeEvents
4
- } from "./chunk-TKA2L2BU.js";
4
+ } from "./chunk-2D7BAOMY.js";
5
5
  import {
6
6
  guardBinary
7
- } from "./chunk-GGX5QTBG.js";
7
+ } from "./chunk-3AJIK5AO.js";
8
8
  import {
9
9
  isProtectedByScope
10
- } from "./chunk-W5GH5GTX.js";
10
+ } from "./chunk-OW6AZDY2.js";
11
11
  import {
12
12
  HOOK_LOCATOR_BINARY
13
- } from "./chunk-7VVX6HQG.js";
13
+ } from "./chunk-WDKHZRAS.js";
14
14
 
15
15
  // src/claude-config.ts
16
16
  import { join } from "path";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HOOK_BUDGETS,
3
3
  OPENCODE_APPROVAL_EVENT
4
- } from "./chunk-7VVX6HQG.js";
4
+ } from "./chunk-WDKHZRAS.js";
5
5
 
6
6
  // src/opencode-plugin.ts
7
7
  var OPENCODE_PLUGIN_MARKER = "pushary-opencode-plugin w1";
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  isValidApiKey,
15
15
  normalizeKeyScope
16
- } from "./chunk-7VVX6HQG.js";
16
+ } from "./chunk-WDKHZRAS.js";
17
17
 
18
18
  // src/session.ts
19
19
  var samePusharyAccount = (left, right) => left.kind === "ok" && right.kind === "ok" && left.identity.workspaceId !== "" && left.identity.workspaceId === right.identity.workspaceId && left.identity.siteId === right.identity.siteId;
@@ -3,6 +3,9 @@ import {
3
3
  resolveGlobalPackageVersion,
4
4
  resolvePackageVersionFromBinary
5
5
  } from "./chunk-L4ZCFMWW.js";
6
+ import {
7
+ MANAGED_PROVIDERS
8
+ } from "./chunk-WDKHZRAS.js";
6
9
 
7
10
  // src/live-capabilities.ts
8
11
  var CLAUDE_BRIDGE_CAPABILITY = "claude-bridge";
@@ -39,7 +42,7 @@ var resolveControlPolicy = (input) => {
39
42
  if (input.providerAvailable && input.managerAvailable) return "enabled";
40
43
  return input.servicePresent ? "legacy" : "unsupported";
41
44
  };
42
- var detectProviderLiveCapabilities = (providers = ["claude", "codex", "gemini"]) => {
45
+ var detectProviderLiveCapabilities = (providers = MANAGED_PROVIDERS) => {
43
46
  const enabled = new Set(providers);
44
47
  const geminiBin = enabled.has("gemini") ? resolveBinary("gemini") : void 0;
45
48
  return providerLiveCapabilities({
@@ -1,21 +1,12 @@
1
1
  import {
2
- ASKED_IN_EVERY_MODE_TOOLS
3
- } from "./chunk-7VVX6HQG.js";
2
+ ASKED_IN_EVERY_MODE_TOOLS,
3
+ PRETOOLUSE_GATED_TOOLS
4
+ } from "./chunk-WDKHZRAS.js";
4
5
 
5
6
  // src/claude-tools.ts
6
- var PRETOOLUSE_GATED_TOOLS = [
7
- "Bash",
8
- "Write",
9
- "Edit",
10
- "MultiEdit",
11
- "NotebookEdit",
12
- "PowerShell",
13
- "Monitor"
14
- ];
15
7
  var PRETOOLUSE_PHONE_ANSWERED_TOOLS = ASKED_IN_EVERY_MODE_TOOLS;
16
8
  var POSTTOOLUSE_MIRROR_ONLY_TOOLS = ["TodoWrite", "Task", "WebFetch", "WebSearch"];
17
9
  var POSTTOOLUSE_MIRRORED_TOOLS = [...PRETOOLUSE_GATED_TOOLS, ...POSTTOOLUSE_MIRROR_ONLY_TOOLS];
18
- var PRETOOLUSE_HANDLED_TOOLS = /* @__PURE__ */ new Set([...PRETOOLUSE_GATED_TOOLS, ...PRETOOLUSE_PHONE_ANSWERED_TOOLS]);
19
10
 
20
11
  // src/claude-notifications.ts
21
12
  var NOTIFICATION_MATCHED_TYPES = [
@@ -43,11 +34,9 @@ var NOTIFICATION_PUSH_TYPES = /* @__PURE__ */ new Set([
43
34
  ]);
44
35
 
45
36
  export {
46
- PRETOOLUSE_GATED_TOOLS,
47
37
  PRETOOLUSE_PHONE_ANSWERED_TOOLS,
48
38
  POSTTOOLUSE_MIRROR_ONLY_TOOLS,
49
39
  POSTTOOLUSE_MIRRORED_TOOLS,
50
- PRETOOLUSE_HANDLED_TOOLS,
51
40
  NOTIFICATION_MATCHED_TYPES,
52
41
  NOTIFICATION_PUSH_TYPES
53
42
  };
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-2UMNXADU.js";
4
4
  import {
5
5
  normalizeInstallSource
6
- } from "./chunk-7VVX6HQG.js";
6
+ } from "./chunk-WDKHZRAS.js";
7
7
 
8
8
  // src/cli/fsx.ts
9
9
  import { copyFileSync, existsSync, fsyncSync, mkdirSync, openSync, closeSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "fs";
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-EYRGBYZG.js";
16
16
  import {
17
17
  reportedInstallSource
18
- } from "./chunk-MNWDOXX6.js";
18
+ } from "./chunk-KAVDAZ7A.js";
19
19
 
20
20
  // src/reach.ts
21
21
  var reachVerdict = (channels) => {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-W5GH5GTX.js";
3
+ } from "./chunk-OW6AZDY2.js";
4
4
  import {
5
5
  writeFileAtomic
6
- } from "./chunk-MNWDOXX6.js";
6
+ } from "./chunk-KAVDAZ7A.js";
7
7
 
8
8
  // src/identity.ts
9
9
  import { randomUUID } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  registerTranscript
3
- } from "./chunk-4NJURLRP.js";
3
+ } from "./chunk-4RF52LSU.js";
4
4
 
5
5
  // src/admission.ts
6
6
  import { readFileSync } from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readTranscriptPreference
3
- } from "./chunk-3N4FT4WQ.js";
3
+ } from "./chunk-S5CMLR35.js";
4
4
 
5
5
  // src/transcript-setting.ts
6
6
  var transcriptEnvironmentPreference = () => {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HOOK_BUDGETS,
3
3
  HOOK_LOCATOR_BINARY
4
- } from "./chunk-7VVX6HQG.js";
4
+ } from "./chunk-WDKHZRAS.js";
5
5
 
6
6
  // src/removal-scope.ts
7
7
  var namesAppLocator = (command) => command.includes(HOOK_LOCATOR_BINARY);
@@ -3,7 +3,7 @@ import {
3
3
  decodePublicKey,
4
4
  generateSessionKey,
5
5
  wrapSessionKey
6
- } from "./chunk-JDNW6FTV.js";
6
+ } from "./chunk-4PX4QK2Z.js";
7
7
  import {
8
8
  fetchTranscriptRecipients,
9
9
  uploadTranscriptRecords
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-W5GH5GTX.js";
3
+ } from "./chunk-OW6AZDY2.js";
4
4
  import {
5
5
  readJsonSafe
6
- } from "./chunk-MNWDOXX6.js";
6
+ } from "./chunk-KAVDAZ7A.js";
7
7
 
8
8
  // src/process-ownership.ts
9
9
  import { createHash, randomUUID } from "crypto";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  describeKeyCheck,
3
3
  keyCheckFromResponse
4
- } from "./chunk-KT2CGUOE.js";
4
+ } from "./chunk-I6GZX3FT.js";
5
5
  import {
6
6
  createIo
7
7
  } from "./chunk-5RUIFDTP.js";
@@ -4,7 +4,7 @@ import {
4
4
  resolveInstallSourceFor,
5
5
  writeFileAtomic,
6
6
  writeJsonAtomic
7
- } from "./chunk-MNWDOXX6.js";
7
+ } from "./chunk-KAVDAZ7A.js";
8
8
  import {
9
9
  configFilePath
10
10
  } from "./chunk-2UMNXADU.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isSafeReadOnlyCommand
3
- } from "./chunk-7VVX6HQG.js";
3
+ } from "./chunk-WDKHZRAS.js";
4
4
 
5
5
  // src/ledger.ts
6
6
  import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync } from "fs";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  AGENT_CHOICES
3
- } from "./chunk-MDDKA4QM.js";
3
+ } from "./chunk-2ZTL3PGN.js";
4
4
  import {
5
5
  isBridgeLocator
6
- } from "./chunk-HTWQH3VI.js";
6
+ } from "./chunk-CUEZMPLJ.js";
7
7
  import {
8
8
  pusharyHookExecutable
9
- } from "./chunk-TMOCSYJK.js";
9
+ } from "./chunk-HBHEX3JQ.js";
10
10
  import {
11
11
  BELL_HOOK_BINARY
12
- } from "./chunk-HJYGC7IR.js";
12
+ } from "./chunk-GOPIMNVC.js";
13
13
 
14
14
  // src/setup/hook-ownership.ts
15
15
  var commandsIn = (value) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readConfigFileKey
3
- } from "./chunk-3N4FT4WQ.js";
3
+ } from "./chunk-S5CMLR35.js";
4
4
 
5
5
  // src/bell/fleet.ts
6
6
  import { closeSync, constants, futimesSync, lstatSync, mkdirSync, openSync, readdirSync, unlinkSync } from "fs";