@pushary/agent-hooks 1.2.0 → 1.3.0

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 (80) hide show
  1. package/data/SKILL.md +20 -8
  2. package/data/cursor-plugin/skills/pushary/SKILL.md +19 -7
  3. package/data/vscode-plugin/skills/pushary/SKILL.md +19 -7
  4. package/dist/bin/pushary-bell-hook.js +18 -18
  5. package/dist/bin/pushary-bell.js +6 -6
  6. package/dist/bin/pushary-claude.js +18 -18
  7. package/dist/bin/pushary-clean.js +19 -19
  8. package/dist/bin/pushary-codex-bridge.js +10 -10
  9. package/dist/bin/pushary-codex-hook.js +22 -22
  10. package/dist/bin/pushary-codex.js +6 -6
  11. package/dist/bin/pushary-connect.js +6 -6
  12. package/dist/bin/pushary-cowork.js +3 -3
  13. package/dist/bin/pushary-daemon.js +22 -22
  14. package/dist/bin/pushary-disconnect.js +10 -10
  15. package/dist/bin/pushary-doctor.js +20 -20
  16. package/dist/bin/pushary-elicitation-hook.js +17 -17
  17. package/dist/bin/pushary-gemini-bridge.js +9 -9
  18. package/dist/bin/pushary-gemini-hook.js +19 -19
  19. package/dist/bin/pushary-hook.js +23 -23
  20. package/dist/bin/pushary-login.js +7 -7
  21. package/dist/bin/pushary-logout.js +4 -4
  22. package/dist/bin/pushary-mode.js +3 -3
  23. package/dist/bin/pushary-notification-hook.js +20 -20
  24. package/dist/bin/pushary-opencode-hook.js +19 -19
  25. package/dist/bin/pushary-permission-denied-hook.js +24 -24
  26. package/dist/bin/pushary-permission-hook.js +23 -23
  27. package/dist/bin/pushary-post-hook.js +20 -20
  28. package/dist/bin/pushary-prompt-hook.js +20 -20
  29. package/dist/bin/pushary-session-end-hook.js +20 -20
  30. package/dist/bin/pushary-session-start-hook.js +22 -22
  31. package/dist/bin/pushary-setup.js +26 -26
  32. package/dist/bin/pushary-stats.js +2 -2
  33. package/dist/bin/pushary-status.js +10 -10
  34. package/dist/bin/pushary-stop-hook.js +20 -20
  35. package/dist/bin/pushary-stopfailure-hook.js +20 -20
  36. package/dist/bin/pushary-transcript-register.js +16 -16
  37. package/dist/bin/pushary-transcripts.js +4 -4
  38. package/dist/bin/pushary-upgrade.js +14 -14
  39. package/dist/bin/pushary-wait.js +3 -3
  40. package/dist/{chunk-VDOKRCWM.js → chunk-2PLEJ7SY.js} +1 -1
  41. package/dist/{chunk-LAXU5U75.js → chunk-3AIFWTVB.js} +2 -2
  42. package/dist/{chunk-CG4ZUQ5O.js → chunk-4V24U44H.js} +2 -2
  43. package/dist/{chunk-KHTBSSY5.js → chunk-A2URMNFM.js} +1 -1
  44. package/dist/{chunk-BXLFUTSD.js → chunk-A5ZWYQFV.js} +3 -3
  45. package/dist/{chunk-6QCN5XQE.js → chunk-B3S4SF3D.js} +1 -1
  46. package/dist/{chunk-VE2ZWUML.js → chunk-BL4SQNO6.js} +1 -1
  47. package/dist/{chunk-YT6H7BB5.js → chunk-BNDHXPTQ.js} +5 -5
  48. package/dist/{chunk-WC5PYFDK.js → chunk-BYGEZI7B.js} +1 -1
  49. package/dist/{chunk-RN6ZWIAC.js → chunk-DON24PNT.js} +1 -1
  50. package/dist/{chunk-C3WH44MH.js → chunk-DVO4SZMJ.js} +3 -3
  51. package/dist/{chunk-LWKVEMVK.js → chunk-E7WBNGJS.js} +1 -1
  52. package/dist/{chunk-7ERWAYVV.js → chunk-EJZCV5G4.js} +1 -1
  53. package/dist/{chunk-OGSRCIOD.js → chunk-EKQAKSGI.js} +1 -1
  54. package/dist/{chunk-PCT2MYG5.js → chunk-EU6JH7KU.js} +6 -6
  55. package/dist/{chunk-LGO7U23Z.js → chunk-EYMMU5HC.js} +1 -1
  56. package/dist/{chunk-JOTV75GX.js → chunk-FGVNU7XD.js} +1 -1
  57. package/dist/{chunk-UWP66NDF.js → chunk-IAEVVUXO.js} +1 -1
  58. package/dist/{chunk-U42ES5U3.js → chunk-JYEGOYQC.js} +1 -1
  59. package/dist/{chunk-7GH3D6YG.js → chunk-K4TAUYUJ.js} +3 -3
  60. package/dist/{chunk-KZPUARCU.js → chunk-K7UIAE7I.js} +1 -1
  61. package/dist/{chunk-YK3OU4E2.js → chunk-KPNGPRYU.js} +4 -4
  62. package/dist/{chunk-CVCSUAXI.js → chunk-KS4P6F3R.js} +3 -3
  63. package/dist/{chunk-KEVJ2WW6.js → chunk-MU275U5A.js} +1 -1
  64. package/dist/{chunk-4UT44NRP.js → chunk-N43EQPJK.js} +1 -1
  65. package/dist/{chunk-ERP7FOFQ.js → chunk-OE6U2AXM.js} +3 -3
  66. package/dist/{chunk-ZFQPSGPO.js → chunk-POAFXBNH.js} +1 -1
  67. package/dist/{chunk-PX53RT6Q.js → chunk-RHLUJE4H.js} +1 -1
  68. package/dist/{chunk-VIQ7CCWW.js → chunk-RVDHN2TJ.js} +2 -2
  69. package/dist/{chunk-DRAATYTY.js → chunk-UVXNYYHG.js} +5 -5
  70. package/dist/{chunk-7DQVIIHX.js → chunk-WPJS3OZH.js} +13 -5
  71. package/dist/{chunk-5AATCXJN.js → chunk-WXXDHGTZ.js} +4 -4
  72. package/dist/{chunk-KODKICKJ.js → chunk-X3KIGNIP.js} +6 -6
  73. package/dist/{chunk-JQJB7BZE.js → chunk-XBJW4MV5.js} +1 -1
  74. package/dist/{chunk-7TDQ7KDY.js → chunk-XBO42HKH.js} +1 -1
  75. package/dist/{chunk-W6XVHP4U.js → chunk-XEXOHUJ6.js} +4 -4
  76. package/dist/{chunk-2DT7STR5.js → chunk-YF4JDCU4.js} +1 -1
  77. package/dist/{chunk-PX54KULQ.js → chunk-ZHL62DRA.js} +3 -3
  78. package/dist/{reapply-47AMVIXN.js → reapply-FUCAKR6Z.js} +8 -8
  79. package/dist/src/index.js +12 -12
  80. package/package.json +1 -1
@@ -7,7 +7,7 @@ import {
7
7
  import {
8
8
  COMPATIBLE_AGENT_TYPES,
9
9
  isValidApiKey
10
- } from "./chunk-7DQVIIHX.js";
10
+ } from "./chunk-WPJS3OZH.js";
11
11
 
12
12
  // src/setup/options.ts
13
13
  var AGENT_CHOICES = ["claude_code", "codex", "gemini_cli", "hermes", "cursor", "vscode", "opencode", ...COMPATIBLE_AGENT_TYPES, "custom"];
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  isValidApiKey,
15
15
  normalizeKeyScope
16
- } from "./chunk-7DQVIIHX.js";
16
+ } from "./chunk-WPJS3OZH.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;
@@ -2,17 +2,17 @@ import {
2
2
  CLAUDE_HOOK_EVENTS,
3
3
  GEMINI_HOOK_EVENTS,
4
4
  hasGeminiHooks
5
- } from "./chunk-ERP7FOFQ.js";
5
+ } from "./chunk-OE6U2AXM.js";
6
6
  import {
7
7
  CODEX_HOOK_EVENTS,
8
8
  hasCodexHooks,
9
9
  holdBudgetOf
10
- } from "./chunk-PX53RT6Q.js";
10
+ } from "./chunk-RHLUJE4H.js";
11
11
  import {
12
12
  CURSOR_GATE_EVENTS,
13
13
  HOOK_LOCATOR_BINARY,
14
14
  hookCommandHoldBudget
15
- } from "./chunk-7DQVIIHX.js";
15
+ } from "./chunk-WPJS3OZH.js";
16
16
 
17
17
  // src/diagnostics/wiring.ts
18
18
  var record = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : null;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HOOK_BUDGETS,
3
3
  OPENCODE_APPROVAL_EVENT
4
- } from "./chunk-7DQVIIHX.js";
4
+ } from "./chunk-WPJS3OZH.js";
5
5
 
6
6
  // src/opencode-plugin.ts
7
7
  var OPENCODE_PLUGIN_MARKER = "pushary-opencode-plugin w1";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readConfigFileKey
3
- } from "./chunk-7TDQ7KDY.js";
3
+ } from "./chunk-XBO42HKH.js";
4
4
 
5
5
  // src/bell/fleet.ts
6
6
  import { closeSync, constants, futimesSync, lstatSync, mkdirSync, openSync, readdirSync, unlinkSync } from "fs";
@@ -3,7 +3,7 @@ import {
3
3
  decodePublicKey,
4
4
  generateSessionKey,
5
5
  wrapSessionKey
6
- } from "./chunk-6QCN5XQE.js";
6
+ } from "./chunk-B3S4SF3D.js";
7
7
  import {
8
8
  fetchTranscriptRecipients,
9
9
  uploadTranscriptRecords
@@ -6,16 +6,16 @@ import {
6
6
  } from "./chunk-YKLCWWEI.js";
7
7
  import {
8
8
  hookOwnerOf
9
- } from "./chunk-W6XVHP4U.js";
9
+ } from "./chunk-XEXOHUJ6.js";
10
10
  import {
11
11
  ensureDaemonRunning
12
- } from "./chunk-CVCSUAXI.js";
12
+ } from "./chunk-KS4P6F3R.js";
13
13
  import {
14
14
  buildTranscriptRecords,
15
15
  decodePublicKey,
16
16
  generateSessionKey,
17
17
  wrapSessionKey
18
- } from "./chunk-6QCN5XQE.js";
18
+ } from "./chunk-B3S4SF3D.js";
19
19
  import {
20
20
  fetchTranscriptRecipients,
21
21
  uploadTranscriptRecords
@@ -23,14 +23,14 @@ import {
23
23
  import {
24
24
  transcriptEnvironmentPreference,
25
25
  transcriptsEnabled
26
- } from "./chunk-KHTBSSY5.js";
26
+ } from "./chunk-A2URMNFM.js";
27
27
  import {
28
28
  codexHome,
29
29
  pusharyDir
30
- } from "./chunk-PX53RT6Q.js";
30
+ } from "./chunk-RHLUJE4H.js";
31
31
  import {
32
32
  readTranscriptPreference
33
- } from "./chunk-7TDQ7KDY.js";
33
+ } from "./chunk-XBO42HKH.js";
34
34
  import {
35
35
  writeJsonAtomic
36
36
  } from "./chunk-4LL6LG5X.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HOOK_HOLD_BUDGET_ENV,
3
3
  hookHoldBudgetProof
4
- } from "./chunk-7DQVIIHX.js";
4
+ } from "./chunk-WPJS3OZH.js";
5
5
 
6
6
  // src/hold-budget.ts
7
7
  var takeHookHoldBudget = (args = process.argv.slice(2), env = process.env) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolvePathBinary
3
- } from "./chunk-PX53RT6Q.js";
3
+ } from "./chunk-RHLUJE4H.js";
4
4
 
5
5
  // src/hermes-config.ts
6
6
  import { execFileSync } from "child_process";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PRETOOLUSE_GATED_TOOLS
3
- } from "./chunk-7DQVIIHX.js";
3
+ } from "./chunk-WPJS3OZH.js";
4
4
 
5
5
  // src/claude-tools.ts
6
6
  var POSTTOOLUSE_MIRROR_ONLY_TOOLS = ["TodoWrite", "Task", "WebFetch", "WebSearch"];
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  HOOK_LOCATOR_BINARY
3
- } from "./chunk-7DQVIIHX.js";
3
+ } from "./chunk-WPJS3OZH.js";
4
4
 
5
5
  // src/diagnostics/bridge.ts
6
6
  import { execFileSync } from "child_process";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  openCodeConfigDirFrom
3
- } from "./chunk-LWKVEMVK.js";
3
+ } from "./chunk-E7WBNGJS.js";
4
4
  import {
5
5
  codexHomeFrom
6
- } from "./chunk-PX53RT6Q.js";
6
+ } from "./chunk-RHLUJE4H.js";
7
7
  import {
8
8
  HOOK_COMPATIBLE_PROFILES
9
- } from "./chunk-7DQVIIHX.js";
9
+ } from "./chunk-WPJS3OZH.js";
10
10
 
11
11
  // src/vscode-config.ts
12
12
  import { homedir } from "os";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-PX53RT6Q.js";
3
+ } from "./chunk-RHLUJE4H.js";
4
4
  import {
5
5
  writeFileAtomic
6
6
  } from "./chunk-4LL6LG5X.js";
@@ -2,24 +2,24 @@ import {
2
2
  detectProviderLiveCapabilities,
3
3
  hasSpawnProvider,
4
4
  resolveControlPolicy
5
- } from "./chunk-CG4ZUQ5O.js";
5
+ } from "./chunk-4V24U44H.js";
6
6
  import {
7
7
  daemonHasRemoteProof,
8
8
  daemonServiceManagerAvailable,
9
9
  hasDaemonServiceDefinition,
10
10
  readDaemonNeedsLogin,
11
11
  readDaemonStatus
12
- } from "./chunk-CVCSUAXI.js";
12
+ } from "./chunk-KS4P6F3R.js";
13
13
  import {
14
14
  getMachineId
15
- } from "./chunk-KZPUARCU.js";
15
+ } from "./chunk-K7UIAE7I.js";
16
16
  import {
17
17
  getPackageVersion
18
18
  } from "./chunk-DINDL2CF.js";
19
19
  import {
20
20
  readControlMode,
21
21
  readKeySource
22
- } from "./chunk-7TDQ7KDY.js";
22
+ } from "./chunk-XBO42HKH.js";
23
23
  import {
24
24
  getBaseUrl
25
25
  } from "./chunk-2UMNXADU.js";
@@ -4,17 +4,17 @@ import {
4
4
  } from "./chunk-XHKBHWLX.js";
5
5
  import {
6
6
  getMachineId
7
- } from "./chunk-KZPUARCU.js";
7
+ } from "./chunk-K7UIAE7I.js";
8
8
  import {
9
9
  pusharyDir,
10
10
  resolveGlobalBinary
11
- } from "./chunk-PX53RT6Q.js";
11
+ } from "./chunk-RHLUJE4H.js";
12
12
  import {
13
13
  getPackageVersion
14
14
  } from "./chunk-DINDL2CF.js";
15
15
  import {
16
16
  readControlMode
17
- } from "./chunk-7TDQ7KDY.js";
17
+ } from "./chunk-XBO42HKH.js";
18
18
  import {
19
19
  readJsonSafe,
20
20
  writeFileAtomic,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-PX53RT6Q.js";
3
+ } from "./chunk-RHLUJE4H.js";
4
4
  import {
5
5
  readJsonSafe
6
6
  } from "./chunk-4LL6LG5X.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  registerTranscript
3
- } from "./chunk-PCT2MYG5.js";
3
+ } from "./chunk-EU6JH7KU.js";
4
4
 
5
5
  // src/admission.ts
6
6
  import { readFileSync } from "fs";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  NOTIFICATION_MATCHED_TYPES,
3
3
  POSTTOOLUSE_MIRRORED_TOOLS
4
- } from "./chunk-UWP66NDF.js";
4
+ } from "./chunk-IAEVVUXO.js";
5
5
  import {
6
6
  isProtectedByScope,
7
7
  registerHookEntry
8
- } from "./chunk-PX53RT6Q.js";
8
+ } from "./chunk-RHLUJE4H.js";
9
9
  import {
10
10
  CLAUDE_PRETOOLUSE_MATCHER,
11
11
  HOOK_BUDGETS,
12
12
  HOOK_LOCATOR_BINARY
13
- } from "./chunk-7DQVIIHX.js";
13
+ } from "./chunk-WPJS3OZH.js";
14
14
 
15
15
  // src/gemini-config.ts
16
16
  var GEMINI_HOOK_BINARY = "pushary-gemini-hook";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-2UMNXADU.js";
4
4
  import {
5
5
  normalizeInstallSource
6
- } from "./chunk-7DQVIIHX.js";
6
+ } from "./chunk-WPJS3OZH.js";
7
7
 
8
8
  // src/install-source.ts
9
9
  import { readFileSync } from "fs";
@@ -2,7 +2,7 @@ import {
2
2
  HOOK_BUDGETS,
3
3
  HOOK_LOCATOR_BINARY,
4
4
  withHookHoldBudget
5
- } from "./chunk-7DQVIIHX.js";
5
+ } from "./chunk-WPJS3OZH.js";
6
6
 
7
7
  // src/npm.ts
8
8
  import { execFileSync, execSync } from "child_process";
@@ -15,10 +15,10 @@ import {
15
15
  } from "./chunk-EYRGBYZG.js";
16
16
  import {
17
17
  reportedInstallSource
18
- } from "./chunk-ZFQPSGPO.js";
18
+ } from "./chunk-POAFXBNH.js";
19
19
  import {
20
20
  isAnswerSource
21
- } from "./chunk-7DQVIIHX.js";
21
+ } from "./chunk-WPJS3OZH.js";
22
22
 
23
23
  // src/reach.ts
24
24
  var reachVerdict = (channels) => {
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  detectClaudeVersion
3
- } from "./chunk-JQJB7BZE.js";
3
+ } from "./chunk-XBJW4MV5.js";
4
4
  import {
5
5
  addClaudeMcpServer,
6
6
  addPusharyHooks,
7
7
  addPusharyToolPermissions
8
- } from "./chunk-PX54KULQ.js";
8
+ } from "./chunk-ZHL62DRA.js";
9
9
  import {
10
10
  claudeUnprovenHolds,
11
11
  claudeWired,
12
12
  codexUnprovenHolds,
13
13
  codexWired,
14
14
  geminiWired
15
- } from "./chunk-C3WH44MH.js";
15
+ } from "./chunk-DVO4SZMJ.js";
16
16
  import {
17
17
  CLAUDE_HOOK_BINARY,
18
18
  CLAUDE_HOOK_EVENTS,
@@ -24,7 +24,7 @@ import {
24
24
  needsReregistration,
25
25
  registrationSignatures,
26
26
  supportedClaudeEvents
27
- } from "./chunk-ERP7FOFQ.js";
27
+ } from "./chunk-OE6U2AXM.js";
28
28
  import {
29
29
  CODEX_HOOK_BINARY,
30
30
  addCodexHookTrust,
@@ -44,7 +44,7 @@ import {
44
44
  registrationHolderOf,
45
45
  resolveGlobalBinary,
46
46
  vscodePluginMcp
47
- } from "./chunk-PX53RT6Q.js";
47
+ } from "./chunk-RHLUJE4H.js";
48
48
  import {
49
49
  readJsonSafe,
50
50
  writeFileAtomic,
@@ -1325,6 +1325,8 @@ var ANSWER_SOURCES = [
1325
1325
  "sandbox"
1326
1326
  ];
1327
1327
  var isAnswerSource = (value) => typeof value === "string" && ANSWER_SOURCES.includes(value);
1328
+ var SETTLED_OUTCOMES = ["approve", "deny"];
1329
+ var isSettledOutcome = (value) => typeof value === "string" && SETTLED_OUTCOMES.includes(value);
1328
1330
  var classifyDecisionRisk = (toolName, toolTarget) => {
1329
1331
  const parts = [toolName, toolTarget ?? ""];
1330
1332
  const matchesAny = (patterns) => parts.some((part) => patterns.some((re) => re.test(part)));
@@ -1372,6 +1374,13 @@ var CAPABILITY_PATTERNS = {
1372
1374
  };
1373
1375
  var DECISION_EPISODE_SCHEMA_VERSION = 1;
1374
1376
  var DECISION_FEATURE_EXTRACTOR = `pushary-hooks/schema-${DECISION_EPISODE_SCHEMA_VERSION}`;
1377
+ var DECISION_ORIGIN = {
1378
+ human: "human",
1379
+ autopilot: "autopilot",
1380
+ safeReadonly: "safe_readonly",
1381
+ policyTimeout: "policy_timeout",
1382
+ killSwitch: "kill_switch"
1383
+ };
1375
1384
  var EPISODE_CAPABILITIES = [...POLICY_CAPABILITIES, "other"];
1376
1385
  var NETWORK_COMMAND_PATTERNS = [
1377
1386
  /\bcurl\b/i,
@@ -1445,9 +1454,8 @@ var deriveBlastRadius = (capability, riskClass, targetClass) => {
1445
1454
  return "low";
1446
1455
  };
1447
1456
  var deriveLabelTier = (origin, decision) => {
1448
- if (origin === "autopilot") return "none";
1449
- if (origin === "human" && (decision === "approve" || decision === "deny")) return "bronze";
1450
- return "bronze";
1457
+ if (origin !== DECISION_ORIGIN.human) return "none";
1458
+ return isSettledOutcome(decision) ? "bronze" : "none";
1451
1459
  };
1452
1460
  var buildDecisionEpisodeFeatures = (input) => {
1453
1461
  const isCommand = isCommandTool(input.toolName);
@@ -1539,9 +1547,9 @@ var resolveAutoResolveOrigin = (config, toolName, toolInput, cwd, repoKey, sessi
1539
1547
  const match = selectGoverningRule(config.policies, toolName, args, repoKey, sessionId);
1540
1548
  const governedBySpecificRule = match?.rank === "exact" || match?.rank === "prefix";
1541
1549
  if (!governedBySpecificRule && toolName === "Bash" && typeof arg === "string" && isSafeReadOnlyCommand(arg)) {
1542
- return "safe_readonly";
1550
+ return DECISION_ORIGIN.safeReadonly;
1543
1551
  }
1544
- return "policy_timeout";
1552
+ return DECISION_ORIGIN.autopilot;
1545
1553
  };
1546
1554
  var resolvePolicy = (config, toolName, modeOverride, toolInput, cwd, repoKey, sessionId) => {
1547
1555
  const args = toolInput ? policyArgForms(toolName, toolInput, cwd) : [];
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  NOTIFICATION_PUSH_TYPES,
3
3
  POSTTOOLUSE_MIRROR_ONLY_TOOLS
4
- } from "./chunk-UWP66NDF.js";
4
+ } from "./chunk-IAEVVUXO.js";
5
5
  import {
6
6
  cancelQuestion,
7
7
  isPolicyConfig,
@@ -10,13 +10,13 @@ import {
10
10
  } from "./chunk-LGXUGYUH.js";
11
11
  import {
12
12
  getMachineId
13
- } from "./chunk-KZPUARCU.js";
13
+ } from "./chunk-K7UIAE7I.js";
14
14
  import {
15
15
  withRetry
16
16
  } from "./chunk-EYRGBYZG.js";
17
17
  import {
18
18
  reportedInstallSource
19
- } from "./chunk-ZFQPSGPO.js";
19
+ } from "./chunk-POAFXBNH.js";
20
20
  import {
21
21
  getApiKey,
22
22
  getBaseUrl
@@ -44,7 +44,7 @@ import {
44
44
  resolveAutoResolveOrigin,
45
45
  resolvePolicy,
46
46
  toToolLookup
47
- } from "./chunk-7DQVIIHX.js";
47
+ } from "./chunk-WPJS3OZH.js";
48
48
 
49
49
  // src/policy.ts
50
50
  import { createHash } from "crypto";
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  activeIdentity
3
- } from "./chunk-YT6H7BB5.js";
3
+ } from "./chunk-BNDHXPTQ.js";
4
4
  import {
5
5
  blockedActionFingerprint,
6
6
  defersToNativeMode,
7
7
  forgetBlockedActionHint,
8
8
  hasBlockedActionHint,
9
9
  recordBlockedActionHint
10
- } from "./chunk-BXLFUTSD.js";
10
+ } from "./chunk-A5ZWYQFV.js";
11
11
  import {
12
12
  isGatingMoment,
13
13
  recordKeylessMoment
14
- } from "./chunk-2DT7STR5.js";
14
+ } from "./chunk-YF4JDCU4.js";
15
15
  import {
16
16
  denyReasonFrom,
17
17
  isDeferAnswer
@@ -34,7 +34,7 @@ import {
34
34
  scopePathFor,
35
35
  settleQuestionsForToolUse,
36
36
  throttlePass
37
- } from "./chunk-5AATCXJN.js";
37
+ } from "./chunk-WXXDHGTZ.js";
38
38
  import {
39
39
  DECISION_STOP_REASON,
40
40
  askUser,
@@ -49,7 +49,7 @@ import {
49
49
  } from "./chunk-LGXUGYUH.js";
50
50
  import {
51
51
  getMachineId
52
- } from "./chunk-KZPUARCU.js";
52
+ } from "./chunk-K7UIAE7I.js";
53
53
  import {
54
54
  getApiKey,
55
55
  getBaseUrl
@@ -73,7 +73,7 @@ import {
73
73
  parseAgentQuestions,
74
74
  resolveGate,
75
75
  stoppedOutput
76
- } from "./chunk-7DQVIIHX.js";
76
+ } from "./chunk-WPJS3OZH.js";
77
77
 
78
78
  // src/decision-episode.ts
79
79
  var EPISODE_PATH = "/api/agent/decision-episode";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseVersion
3
- } from "./chunk-ERP7FOFQ.js";
3
+ } from "./chunk-OE6U2AXM.js";
4
4
 
5
5
  // src/setup/agent-probe.ts
6
6
  import { execSync } from "child_process";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveInstallSourceFor
3
- } from "./chunk-ZFQPSGPO.js";
3
+ } from "./chunk-POAFXBNH.js";
4
4
  import {
5
5
  backupFile,
6
6
  readJsonSafe,
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  AGENT_CHOICES
3
- } from "./chunk-WC5PYFDK.js";
3
+ } from "./chunk-BYGEZI7B.js";
4
4
  import {
5
5
  isBridgeLocator
6
- } from "./chunk-U42ES5U3.js";
6
+ } from "./chunk-JYEGOYQC.js";
7
7
  import {
8
8
  pusharyHookExecutable
9
- } from "./chunk-C3WH44MH.js";
9
+ } from "./chunk-DVO4SZMJ.js";
10
10
  import {
11
11
  BELL_HOOK_BINARY
12
- } from "./chunk-VDOKRCWM.js";
12
+ } from "./chunk-2PLEJ7SY.js";
13
13
 
14
14
  // src/setup/hook-ownership.ts
15
15
  var commandsIn = (value) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isSafeReadOnlyCommand
3
- } from "./chunk-7DQVIIHX.js";
3
+ } from "./chunk-WPJS3OZH.js";
4
4
 
5
5
  // src/ledger.ts
6
6
  import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync } from "fs";
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  CLAUDE_HOOK_EVENTS,
3
3
  supportedClaudeEvents
4
- } from "./chunk-ERP7FOFQ.js";
4
+ } from "./chunk-OE6U2AXM.js";
5
5
  import {
6
6
  guardBinary,
7
7
  holdBudgetOf,
8
8
  isProtectedByScope,
9
9
  registerHookEntry
10
- } from "./chunk-PX53RT6Q.js";
10
+ } from "./chunk-RHLUJE4H.js";
11
11
  import {
12
12
  HOOK_LOCATOR_BINARY,
13
13
  withHookHoldBudget
14
- } from "./chunk-7DQVIIHX.js";
14
+ } from "./chunk-WPJS3OZH.js";
15
15
 
16
16
  // src/claude-config.ts
17
17
  import { join } from "path";
@@ -8,15 +8,15 @@ import {
8
8
  reapplyGeminiSettings,
9
9
  reapplyVsCodePlugin,
10
10
  repairCodexHolds
11
- } from "./chunk-DRAATYTY.js";
12
- import "./chunk-JQJB7BZE.js";
13
- import "./chunk-PX54KULQ.js";
14
- import "./chunk-C3WH44MH.js";
15
- import "./chunk-ERP7FOFQ.js";
16
- import "./chunk-UWP66NDF.js";
17
- import "./chunk-PX53RT6Q.js";
11
+ } from "./chunk-UVXNYYHG.js";
12
+ import "./chunk-XBJW4MV5.js";
13
+ import "./chunk-ZHL62DRA.js";
14
+ import "./chunk-DVO4SZMJ.js";
15
+ import "./chunk-OE6U2AXM.js";
16
+ import "./chunk-IAEVVUXO.js";
17
+ import "./chunk-RHLUJE4H.js";
18
18
  import "./chunk-4LL6LG5X.js";
19
- import "./chunk-7DQVIIHX.js";
19
+ import "./chunk-WPJS3OZH.js";
20
20
  export {
21
21
  inspectConfiguredManagedProviders,
22
22
  reapplyAllAgents,
package/dist/src/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  handlePreToolUse
3
- } from "../chunk-KODKICKJ.js";
4
- import "../chunk-YT6H7BB5.js";
5
- import "../chunk-PX54KULQ.js";
6
- import "../chunk-BXLFUTSD.js";
7
- import "../chunk-2DT7STR5.js";
3
+ } from "../chunk-X3KIGNIP.js";
4
+ import "../chunk-BNDHXPTQ.js";
5
+ import "../chunk-ZHL62DRA.js";
6
+ import "../chunk-A5ZWYQFV.js";
7
+ import "../chunk-YF4JDCU4.js";
8
8
  import "../chunk-YHG74UFF.js";
9
- import "../chunk-ERP7FOFQ.js";
9
+ import "../chunk-OE6U2AXM.js";
10
10
  import {
11
11
  fetchAccountPublicKey
12
12
  } from "../chunk-EQRS3SGM.js";
@@ -18,20 +18,20 @@ import {
18
18
  handlePostToolUse,
19
19
  handleStop,
20
20
  reportEvent
21
- } from "../chunk-5AATCXJN.js";
22
- import "../chunk-UWP66NDF.js";
21
+ } from "../chunk-WXXDHGTZ.js";
22
+ import "../chunk-IAEVVUXO.js";
23
23
  import {
24
24
  askUser,
25
25
  cancelQuestion,
26
26
  waitForAnswer
27
27
  } from "../chunk-LGXUGYUH.js";
28
- import "../chunk-KZPUARCU.js";
29
- import "../chunk-PX53RT6Q.js";
28
+ import "../chunk-K7UIAE7I.js";
29
+ import "../chunk-RHLUJE4H.js";
30
30
  import "../chunk-EYRGBYZG.js";
31
31
  import "../chunk-SAF6HGAA.js";
32
32
  import "../chunk-7QLSKOSU.js";
33
33
  import "../chunk-KZERVKTD.js";
34
- import "../chunk-ZFQPSGPO.js";
34
+ import "../chunk-POAFXBNH.js";
35
35
  import "../chunk-4LL6LG5X.js";
36
36
  import {
37
37
  getApiKey,
@@ -39,7 +39,7 @@ import {
39
39
  } from "../chunk-2UMNXADU.js";
40
40
  import {
41
41
  resolvePolicy
42
- } from "../chunk-7DQVIIHX.js";
42
+ } from "../chunk-WPJS3OZH.js";
43
43
  export {
44
44
  askUser,
45
45
  cancelQuestion,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pushary/agent-hooks",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Permission hooks for AI coding agents: route tool approvals through Pushary push notifications",
5
5
  "keywords": [
6
6
  "pushary",