@pushary/agent-hooks 0.83.1 → 0.83.2

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 (45) hide show
  1. package/dist/bin/pushary-bell-hook.js +4 -4
  2. package/dist/bin/pushary-bell.js +5 -5
  3. package/dist/bin/pushary-claude.js +4 -4
  4. package/dist/bin/pushary-clean.js +5 -5
  5. package/dist/bin/pushary-codex-hook.js +5 -5
  6. package/dist/bin/pushary-codex.js +3 -3
  7. package/dist/bin/pushary-connect.js +6 -6
  8. package/dist/bin/pushary-doctor.js +10 -10
  9. package/dist/bin/pushary-gemini-hook.js +5 -5
  10. package/dist/bin/pushary-hook.js +7 -7
  11. package/dist/bin/pushary-login.js +4 -4
  12. package/dist/bin/pushary-logout.js +4 -4
  13. package/dist/bin/pushary-mode.js +3 -3
  14. package/dist/bin/pushary-notification-hook.js +3 -3
  15. package/dist/bin/pushary-permission-denied-hook.js +7 -7
  16. package/dist/bin/pushary-permission-hook.js +7 -7
  17. package/dist/bin/pushary-post-hook.js +3 -3
  18. package/dist/bin/pushary-prompt-hook.js +3 -3
  19. package/dist/bin/pushary-session-end-hook.js +3 -3
  20. package/dist/bin/pushary-session-start-hook.js +3 -3
  21. package/dist/bin/pushary-setup.js +11 -11
  22. package/dist/bin/pushary-stats.js +2 -2
  23. package/dist/bin/pushary-status.js +5 -5
  24. package/dist/bin/pushary-stop-hook.js +3 -3
  25. package/dist/bin/pushary-stopfailure-hook.js +3 -3
  26. package/dist/bin/pushary-upgrade.js +4 -4
  27. package/dist/bin/pushary-wait.js +3 -3
  28. package/dist/{chunk-3JDIGKPV.js → chunk-26D2YMDU.js} +1 -1
  29. package/dist/{chunk-2R63XKLG.js → chunk-3AGM3TDM.js} +1 -1
  30. package/dist/{chunk-FFT7L2VE.js → chunk-4QQOKEOS.js} +7 -7
  31. package/dist/{chunk-C4SQY777.js → chunk-7PO2VEA4.js} +8 -34
  32. package/dist/{chunk-UAWTJMXA.js → chunk-7WWZPII5.js} +1 -1
  33. package/dist/{chunk-E7YX7CTM.js → chunk-DHAZ6SOT.js} +5 -5
  34. package/dist/{chunk-O55DONTG.js → chunk-EHLTWCDZ.js} +1 -1
  35. package/dist/{chunk-U752S5RE.js → chunk-NDC3TBHI.js} +1 -1
  36. package/dist/{chunk-V6MCBCUC.js → chunk-QF7WTF2C.js} +2 -2
  37. package/dist/{chunk-CXGJTN74.js → chunk-QR6MVVQ7.js} +1 -1
  38. package/dist/{chunk-BT7NTTIW.js → chunk-SAA3VBDK.js} +1 -1
  39. package/dist/{chunk-DMKSHZKF.js → chunk-TXF4QZSQ.js} +1 -1
  40. package/dist/{chunk-7GTDHV7O.js → chunk-U27BZWFT.js} +1 -1
  41. package/dist/{chunk-HKKERYZP.js → chunk-UVAC2KHH.js} +1 -1
  42. package/dist/{chunk-RZP3Z2WR.js → chunk-WDRRULBH.js} +1 -1
  43. package/dist/{chunk-QA5HP7CR.js → chunk-YWRJGYUH.js} +33 -3
  44. package/dist/src/index.js +7 -7
  45. package/package.json +1 -1
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handleBell
4
- } from "../chunk-UAWTJMXA.js";
5
- import "../chunk-RZP3Z2WR.js";
4
+ } from "../chunk-7WWZPII5.js";
5
+ import "../chunk-WDRRULBH.js";
6
6
  import "../chunk-6MTNS63X.js";
7
7
  import "../chunk-BC3VCZ3E.js";
8
- import "../chunk-BT7NTTIW.js";
9
- import "../chunk-QA5HP7CR.js";
8
+ import "../chunk-SAA3VBDK.js";
9
+ import "../chunk-YWRJGYUH.js";
10
10
  import "../chunk-2UMNXADU.js";
11
11
 
12
12
  // bin/pushary-bell-hook.ts
@@ -5,14 +5,14 @@ import {
5
5
  liveAgentCount,
6
6
  ring,
7
7
  upgradeThreshold
8
- } from "../chunk-UAWTJMXA.js";
8
+ } from "../chunk-7WWZPII5.js";
9
9
  import {
10
10
  claudeSettings
11
- } from "../chunk-O55DONTG.js";
11
+ } from "../chunk-EHLTWCDZ.js";
12
12
  import {
13
13
  createIo
14
14
  } from "../chunk-5RUIFDTP.js";
15
- import "../chunk-RZP3Z2WR.js";
15
+ import "../chunk-WDRRULBH.js";
16
16
  import {
17
17
  readJsonSafe,
18
18
  writeJsonAtomic
@@ -21,9 +21,9 @@ import {
21
21
  parseFlags
22
22
  } from "../chunk-GMXKITVA.js";
23
23
  import "../chunk-BC3VCZ3E.js";
24
- import "../chunk-BT7NTTIW.js";
24
+ import "../chunk-SAA3VBDK.js";
25
25
  import "../chunk-7QLSKOSU.js";
26
- import "../chunk-QA5HP7CR.js";
26
+ import "../chunk-YWRJGYUH.js";
27
27
  import {
28
28
  exitOnHelpFlag
29
29
  } from "../chunk-RRZZ7TFJ.js";
@@ -3,7 +3,7 @@ import {
3
3
  KILL_REASON,
4
4
  isDeferAnswer,
5
5
  resolveGate
6
- } from "../chunk-FFT7L2VE.js";
6
+ } from "../chunk-4QQOKEOS.js";
7
7
  import {
8
8
  askUser,
9
9
  cancelQuestion,
@@ -15,14 +15,14 @@ import {
15
15
  reportEvent,
16
16
  scopePathFor,
17
17
  waitForAnswer
18
- } from "../chunk-C4SQY777.js";
18
+ } from "../chunk-7PO2VEA4.js";
19
19
  import "../chunk-BSZYIAZL.js";
20
20
  import "../chunk-SAF6HGAA.js";
21
- import "../chunk-BT7NTTIW.js";
21
+ import "../chunk-SAA3VBDK.js";
22
22
  import "../chunk-7QLSKOSU.js";
23
23
  import {
24
24
  redactSecrets
25
- } from "../chunk-QA5HP7CR.js";
25
+ } from "../chunk-YWRJGYUH.js";
26
26
  import {
27
27
  needsShell,
28
28
  spawnClaude
@@ -4,14 +4,14 @@ import {
4
4
  shortenHome,
5
5
  unregisterPluginLocation,
6
6
  vscodeSettingsTargets
7
- } from "../chunk-HKKERYZP.js";
7
+ } from "../chunk-UVAC2KHH.js";
8
8
  import {
9
9
  removeGeminiSettings
10
- } from "../chunk-DMKSHZKF.js";
10
+ } from "../chunk-TXF4QZSQ.js";
11
11
  import {
12
12
  removeClaudeMcpServers,
13
13
  removePusharySettings
14
- } from "../chunk-U752S5RE.js";
14
+ } from "../chunk-NDC3TBHI.js";
15
15
  import {
16
16
  claudeJson,
17
17
  claudeSettings,
@@ -29,7 +29,7 @@ import {
29
29
  pusharyDir,
30
30
  removeCodexHooks,
31
31
  vscodePluginDir
32
- } from "../chunk-O55DONTG.js";
32
+ } from "../chunk-EHLTWCDZ.js";
33
33
  import {
34
34
  rejectUnknownFlags
35
35
  } from "../chunk-GMXKITVA.js";
@@ -37,7 +37,7 @@ import {
37
37
  removeClaudeAlias
38
38
  } from "../chunk-BC3VCZ3E.js";
39
39
  import "../chunk-7QLSKOSU.js";
40
- import "../chunk-QA5HP7CR.js";
40
+ import "../chunk-YWRJGYUH.js";
41
41
  import {
42
42
  execNpm
43
43
  } from "../chunk-MUEW424A.js";
@@ -2,13 +2,13 @@
2
2
  import {
3
3
  isGatingMoment,
4
4
  recordKeylessMoment
5
- } from "../chunk-2R63XKLG.js";
5
+ } from "../chunk-3AGM3TDM.js";
6
6
  import {
7
7
  KILL_REASON,
8
8
  denyReasonFrom,
9
9
  isDeferAnswer,
10
10
  resolveGate
11
- } from "../chunk-FFT7L2VE.js";
11
+ } from "../chunk-4QQOKEOS.js";
12
12
  import {
13
13
  CODEX_AGENT,
14
14
  DEFAULT_SESSION,
@@ -39,17 +39,17 @@ import {
39
39
  toPolicyLookup,
40
40
  toPolicyLookups,
41
41
  waitForAnswer
42
- } from "../chunk-C4SQY777.js";
42
+ } from "../chunk-7PO2VEA4.js";
43
43
  import "../chunk-BSZYIAZL.js";
44
44
  import "../chunk-SAF6HGAA.js";
45
- import "../chunk-BT7NTTIW.js";
45
+ import "../chunk-SAA3VBDK.js";
46
46
  import "../chunk-7QLSKOSU.js";
47
47
  import {
48
48
  DECISION_LINE_MAX,
49
49
  effectiveWaitSeconds,
50
50
  hookWaitClamped,
51
51
  hookWaitDeadline
52
- } from "../chunk-QA5HP7CR.js";
52
+ } from "../chunk-YWRJGYUH.js";
53
53
  import {
54
54
  getMachineId
55
55
  } from "../chunk-RN3NOEJF.js";
@@ -3,12 +3,12 @@ import {
3
3
  askUser,
4
4
  reportEvent,
5
5
  waitForAnswer
6
- } from "../chunk-C4SQY777.js";
6
+ } from "../chunk-7PO2VEA4.js";
7
7
  import "../chunk-BSZYIAZL.js";
8
8
  import "../chunk-SAF6HGAA.js";
9
- import "../chunk-BT7NTTIW.js";
9
+ import "../chunk-SAA3VBDK.js";
10
10
  import "../chunk-7QLSKOSU.js";
11
- import "../chunk-QA5HP7CR.js";
11
+ import "../chunk-YWRJGYUH.js";
12
12
  import {
13
13
  getMachineId
14
14
  } from "../chunk-RN3NOEJF.js";
@@ -3,20 +3,20 @@ import {
3
3
  confirmAppConnection,
4
4
  connectDevice,
5
5
  printConnectInstructions
6
- } from "../chunk-7GTDHV7O.js";
6
+ } from "../chunk-U27BZWFT.js";
7
7
  import "../chunk-3EGEA4KH.js";
8
8
  import {
9
9
  printKeyCheck
10
- } from "../chunk-3JDIGKPV.js";
10
+ } from "../chunk-26D2YMDU.js";
11
11
  import {
12
12
  checkApiKey
13
- } from "../chunk-CXGJTN74.js";
13
+ } from "../chunk-QR6MVVQ7.js";
14
14
  import {
15
15
  createIo
16
16
  } from "../chunk-5RUIFDTP.js";
17
17
  import {
18
18
  readKeySource
19
- } from "../chunk-RZP3Z2WR.js";
19
+ } from "../chunk-WDRRULBH.js";
20
20
  import "../chunk-6MTNS63X.js";
21
21
  import {
22
22
  parseFlags
@@ -24,11 +24,11 @@ import {
24
24
  import "../chunk-BC3VCZ3E.js";
25
25
  import "../chunk-BSZYIAZL.js";
26
26
  import "../chunk-SAF6HGAA.js";
27
- import "../chunk-BT7NTTIW.js";
27
+ import "../chunk-SAA3VBDK.js";
28
28
  import {
29
29
  UsageError
30
30
  } from "../chunk-7QLSKOSU.js";
31
- import "../chunk-QA5HP7CR.js";
31
+ import "../chunk-YWRJGYUH.js";
32
32
  import {
33
33
  exitOnHelpFlag
34
34
  } from "../chunk-RRZZ7TFJ.js";
@@ -6,7 +6,7 @@ import {
6
6
  claudeWired,
7
7
  codexWired,
8
8
  geminiWired
9
- } from "../chunk-V6MCBCUC.js";
9
+ } from "../chunk-QF7WTF2C.js";
10
10
  import {
11
11
  agentProbes,
12
12
  detectAgent,
@@ -15,12 +15,12 @@ import {
15
15
  isDetected,
16
16
  isPluginRegistered,
17
17
  vscodeSettingsTargets
18
- } from "../chunk-HKKERYZP.js";
18
+ } from "../chunk-UVAC2KHH.js";
19
19
  import {
20
20
  GEMINI_HOOK_BINARY,
21
21
  hasGeminiHooks,
22
22
  missingGeminiHookEvents
23
- } from "../chunk-DMKSHZKF.js";
23
+ } from "../chunk-TXF4QZSQ.js";
24
24
  import {
25
25
  claudeJson,
26
26
  claudeSettings,
@@ -39,29 +39,29 @@ import {
39
39
  readCodexMcpAuth,
40
40
  untrustedCodexHookEvents,
41
41
  vscodePluginDir
42
- } from "../chunk-O55DONTG.js";
42
+ } from "../chunk-EHLTWCDZ.js";
43
43
  import {
44
44
  readLedgerSummary
45
- } from "../chunk-2R63XKLG.js";
45
+ } from "../chunk-3AGM3TDM.js";
46
46
  import {
47
47
  describeReach,
48
48
  describeRoundTrip,
49
49
  fetchChannels,
50
50
  reachVerdict,
51
51
  verifyRoundTrip
52
- } from "../chunk-7GTDHV7O.js";
52
+ } from "../chunk-U27BZWFT.js";
53
53
  import "../chunk-3EGEA4KH.js";
54
54
  import {
55
55
  checkApiKey,
56
56
  describeKeyCheck
57
- } from "../chunk-CXGJTN74.js";
57
+ } from "../chunk-QR6MVVQ7.js";
58
58
  import {
59
59
  createIo
60
60
  } from "../chunk-5RUIFDTP.js";
61
61
  import {
62
62
  keyPrefix,
63
63
  readKeySource
64
- } from "../chunk-RZP3Z2WR.js";
64
+ } from "../chunk-WDRRULBH.js";
65
65
  import "../chunk-6MTNS63X.js";
66
66
  import {
67
67
  parseFlags
@@ -72,11 +72,11 @@ import {
72
72
  sendMcpRequest
73
73
  } from "../chunk-BSZYIAZL.js";
74
74
  import "../chunk-SAF6HGAA.js";
75
- import "../chunk-BT7NTTIW.js";
75
+ import "../chunk-SAA3VBDK.js";
76
76
  import {
77
77
  UsageError
78
78
  } from "../chunk-7QLSKOSU.js";
79
- import "../chunk-QA5HP7CR.js";
79
+ import "../chunk-YWRJGYUH.js";
80
80
  import {
81
81
  execNpm
82
82
  } from "../chunk-MUEW424A.js";
@@ -2,13 +2,13 @@
2
2
  import {
3
3
  isGatingMoment,
4
4
  recordKeylessMoment
5
- } from "../chunk-2R63XKLG.js";
5
+ } from "../chunk-3AGM3TDM.js";
6
6
  import {
7
7
  KILL_REASON,
8
8
  denyReasonFrom,
9
9
  isDeferAnswer,
10
10
  resolveGate
11
- } from "../chunk-FFT7L2VE.js";
11
+ } from "../chunk-4QQOKEOS.js";
12
12
  import {
13
13
  DEFAULT_SESSION,
14
14
  askUser,
@@ -30,17 +30,17 @@ import {
30
30
  scopePathFor,
31
31
  sendNotification,
32
32
  waitForAnswer
33
- } from "../chunk-C4SQY777.js";
33
+ } from "../chunk-7PO2VEA4.js";
34
34
  import "../chunk-BSZYIAZL.js";
35
35
  import "../chunk-SAF6HGAA.js";
36
- import "../chunk-BT7NTTIW.js";
36
+ import "../chunk-SAA3VBDK.js";
37
37
  import "../chunk-7QLSKOSU.js";
38
38
  import {
39
39
  DECISION_LINE_MAX,
40
40
  effectiveWaitSeconds,
41
41
  hookWaitClamped,
42
42
  hookWaitDeadline
43
- } from "../chunk-QA5HP7CR.js";
43
+ } from "../chunk-YWRJGYUH.js";
44
44
  import {
45
45
  getMachineId
46
46
  } from "../chunk-RN3NOEJF.js";
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePreToolUse
4
- } from "../chunk-E7YX7CTM.js";
5
- import "../chunk-U752S5RE.js";
6
- import "../chunk-2R63XKLG.js";
7
- import "../chunk-FFT7L2VE.js";
8
- import "../chunk-C4SQY777.js";
4
+ } from "../chunk-DHAZ6SOT.js";
5
+ import "../chunk-NDC3TBHI.js";
6
+ import "../chunk-3AGM3TDM.js";
7
+ import "../chunk-4QQOKEOS.js";
8
+ import "../chunk-7PO2VEA4.js";
9
9
  import "../chunk-BSZYIAZL.js";
10
10
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-BT7NTTIW.js";
11
+ import "../chunk-SAA3VBDK.js";
12
12
  import "../chunk-7QLSKOSU.js";
13
- import "../chunk-QA5HP7CR.js";
13
+ import "../chunk-YWRJGYUH.js";
14
14
  import "../chunk-RN3NOEJF.js";
15
15
  import {
16
16
  exitOnHelpFlag
@@ -6,27 +6,27 @@ import "../chunk-3EGEA4KH.js";
6
6
  import {
7
7
  checkApiKey,
8
8
  describeKeyCheck
9
- } from "../chunk-CXGJTN74.js";
9
+ } from "../chunk-QR6MVVQ7.js";
10
10
  import {
11
11
  createIo
12
12
  } from "../chunk-5RUIFDTP.js";
13
13
  import {
14
14
  readKeySource,
15
15
  writeKey
16
- } from "../chunk-RZP3Z2WR.js";
16
+ } from "../chunk-WDRRULBH.js";
17
17
  import "../chunk-6MTNS63X.js";
18
18
  import {
19
19
  parseFlags
20
20
  } from "../chunk-GMXKITVA.js";
21
21
  import "../chunk-BC3VCZ3E.js";
22
22
  import "../chunk-SAF6HGAA.js";
23
- import "../chunk-BT7NTTIW.js";
23
+ import "../chunk-SAA3VBDK.js";
24
24
  import {
25
25
  UsageError
26
26
  } from "../chunk-7QLSKOSU.js";
27
27
  import {
28
28
  isValidApiKey
29
- } from "../chunk-QA5HP7CR.js";
29
+ } from "../chunk-YWRJGYUH.js";
30
30
  import {
31
31
  exitOnHelpFlag
32
32
  } from "../chunk-RRZZ7TFJ.js";
@@ -4,24 +4,24 @@ import {
4
4
  codexConfigToml,
5
5
  cursorUserMcp,
6
6
  geminiSettings
7
- } from "../chunk-O55DONTG.js";
7
+ } from "../chunk-EHLTWCDZ.js";
8
8
  import {
9
9
  createIo
10
10
  } from "../chunk-5RUIFDTP.js";
11
11
  import {
12
12
  clearKey,
13
13
  readKeySource
14
- } from "../chunk-RZP3Z2WR.js";
14
+ } from "../chunk-WDRRULBH.js";
15
15
  import "../chunk-6MTNS63X.js";
16
16
  import {
17
17
  parseFlags
18
18
  } from "../chunk-GMXKITVA.js";
19
19
  import "../chunk-BC3VCZ3E.js";
20
- import "../chunk-BT7NTTIW.js";
20
+ import "../chunk-SAA3VBDK.js";
21
21
  import {
22
22
  UsageError
23
23
  } from "../chunk-7QLSKOSU.js";
24
- import "../chunk-QA5HP7CR.js";
24
+ import "../chunk-YWRJGYUH.js";
25
25
  import {
26
26
  exitOnHelpFlag
27
27
  } from "../chunk-RRZZ7TFJ.js";
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  exitOnFailedResponse
4
- } from "../chunk-3JDIGKPV.js";
5
- import "../chunk-CXGJTN74.js";
4
+ } from "../chunk-26D2YMDU.js";
5
+ import "../chunk-QR6MVVQ7.js";
6
6
  import {
7
7
  createIo
8
8
  } from "../chunk-5RUIFDTP.js";
@@ -13,7 +13,7 @@ import "../chunk-SAF6HGAA.js";
13
13
  import {
14
14
  UsageError
15
15
  } from "../chunk-7QLSKOSU.js";
16
- import "../chunk-QA5HP7CR.js";
16
+ import "../chunk-YWRJGYUH.js";
17
17
  import {
18
18
  exitOnHelpFlag
19
19
  } from "../chunk-RRZZ7TFJ.js";
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handleNotification
4
- } from "../chunk-C4SQY777.js";
4
+ } from "../chunk-7PO2VEA4.js";
5
5
  import "../chunk-BSZYIAZL.js";
6
6
  import "../chunk-SAF6HGAA.js";
7
- import "../chunk-BT7NTTIW.js";
7
+ import "../chunk-SAA3VBDK.js";
8
8
  import "../chunk-7QLSKOSU.js";
9
- import "../chunk-QA5HP7CR.js";
9
+ import "../chunk-YWRJGYUH.js";
10
10
  import "../chunk-RN3NOEJF.js";
11
11
  import "../chunk-2UMNXADU.js";
12
12
  import "../chunk-KZERVKTD.js";
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePermissionDenied
4
- } from "../chunk-E7YX7CTM.js";
5
- import "../chunk-U752S5RE.js";
6
- import "../chunk-2R63XKLG.js";
7
- import "../chunk-FFT7L2VE.js";
8
- import "../chunk-C4SQY777.js";
4
+ } from "../chunk-DHAZ6SOT.js";
5
+ import "../chunk-NDC3TBHI.js";
6
+ import "../chunk-3AGM3TDM.js";
7
+ import "../chunk-4QQOKEOS.js";
8
+ import "../chunk-7PO2VEA4.js";
9
9
  import "../chunk-BSZYIAZL.js";
10
10
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-BT7NTTIW.js";
11
+ import "../chunk-SAA3VBDK.js";
12
12
  import "../chunk-7QLSKOSU.js";
13
- import "../chunk-QA5HP7CR.js";
13
+ import "../chunk-YWRJGYUH.js";
14
14
  import "../chunk-RN3NOEJF.js";
15
15
  import "../chunk-2UMNXADU.js";
16
16
  import "../chunk-KZERVKTD.js";
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePermissionRequest
4
- } from "../chunk-E7YX7CTM.js";
5
- import "../chunk-U752S5RE.js";
6
- import "../chunk-2R63XKLG.js";
7
- import "../chunk-FFT7L2VE.js";
8
- import "../chunk-C4SQY777.js";
4
+ } from "../chunk-DHAZ6SOT.js";
5
+ import "../chunk-NDC3TBHI.js";
6
+ import "../chunk-3AGM3TDM.js";
7
+ import "../chunk-4QQOKEOS.js";
8
+ import "../chunk-7PO2VEA4.js";
9
9
  import "../chunk-BSZYIAZL.js";
10
10
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-BT7NTTIW.js";
11
+ import "../chunk-SAA3VBDK.js";
12
12
  import "../chunk-7QLSKOSU.js";
13
- import "../chunk-QA5HP7CR.js";
13
+ import "../chunk-YWRJGYUH.js";
14
14
  import "../chunk-RN3NOEJF.js";
15
15
  import "../chunk-2UMNXADU.js";
16
16
  import "../chunk-KZERVKTD.js";
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePostToolUse
4
- } from "../chunk-C4SQY777.js";
4
+ } from "../chunk-7PO2VEA4.js";
5
5
  import "../chunk-BSZYIAZL.js";
6
6
  import "../chunk-SAF6HGAA.js";
7
- import "../chunk-BT7NTTIW.js";
7
+ import "../chunk-SAA3VBDK.js";
8
8
  import "../chunk-7QLSKOSU.js";
9
- import "../chunk-QA5HP7CR.js";
9
+ import "../chunk-YWRJGYUH.js";
10
10
  import "../chunk-RN3NOEJF.js";
11
11
  import "../chunk-2UMNXADU.js";
12
12
  import "../chunk-KZERVKTD.js";
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handleUserPrompt
4
- } from "../chunk-C4SQY777.js";
4
+ } from "../chunk-7PO2VEA4.js";
5
5
  import "../chunk-BSZYIAZL.js";
6
6
  import "../chunk-SAF6HGAA.js";
7
- import "../chunk-BT7NTTIW.js";
7
+ import "../chunk-SAA3VBDK.js";
8
8
  import "../chunk-7QLSKOSU.js";
9
- import "../chunk-QA5HP7CR.js";
9
+ import "../chunk-YWRJGYUH.js";
10
10
  import "../chunk-RN3NOEJF.js";
11
11
  import "../chunk-2UMNXADU.js";
12
12
  import "../chunk-KZERVKTD.js";
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handleSessionEnd
4
- } from "../chunk-C4SQY777.js";
4
+ } from "../chunk-7PO2VEA4.js";
5
5
  import "../chunk-BSZYIAZL.js";
6
6
  import "../chunk-SAF6HGAA.js";
7
- import "../chunk-BT7NTTIW.js";
7
+ import "../chunk-SAA3VBDK.js";
8
8
  import "../chunk-7QLSKOSU.js";
9
- import "../chunk-QA5HP7CR.js";
9
+ import "../chunk-YWRJGYUH.js";
10
10
  import "../chunk-RN3NOEJF.js";
11
11
  import "../chunk-2UMNXADU.js";
12
12
  import "../chunk-KZERVKTD.js";
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handleSessionStart
4
- } from "../chunk-C4SQY777.js";
4
+ } from "../chunk-7PO2VEA4.js";
5
5
  import "../chunk-BSZYIAZL.js";
6
6
  import "../chunk-SAF6HGAA.js";
7
- import "../chunk-BT7NTTIW.js";
7
+ import "../chunk-SAA3VBDK.js";
8
8
  import "../chunk-7QLSKOSU.js";
9
- import "../chunk-QA5HP7CR.js";
9
+ import "../chunk-YWRJGYUH.js";
10
10
  import "../chunk-RN3NOEJF.js";
11
11
  import "../chunk-2UMNXADU.js";
12
12
  import "../chunk-KZERVKTD.js";
@@ -3,7 +3,7 @@ import {
3
3
  claudeWired,
4
4
  codexWired,
5
5
  geminiWired
6
- } from "../chunk-V6MCBCUC.js";
6
+ } from "../chunk-QF7WTF2C.js";
7
7
  import {
8
8
  runBrowserLogin
9
9
  } from "../chunk-Z3Z4VK5F.js";
@@ -18,17 +18,17 @@ import {
18
18
  shortenHome,
19
19
  vscodeSettingsTargets,
20
20
  writeInstructionBlock
21
- } from "../chunk-HKKERYZP.js";
21
+ } from "../chunk-UVAC2KHH.js";
22
22
  import {
23
23
  GEMINI_HOOK_BINARY,
24
24
  addGeminiHooks,
25
25
  addGeminiMcpServer
26
- } from "../chunk-DMKSHZKF.js";
26
+ } from "../chunk-TXF4QZSQ.js";
27
27
  import {
28
28
  addClaudeMcpServer,
29
29
  addPusharyHooks,
30
30
  addPusharyToolPermissions
31
- } from "../chunk-U752S5RE.js";
31
+ } from "../chunk-NDC3TBHI.js";
32
32
  import {
33
33
  addCodexHookTrust,
34
34
  addCodexHooks,
@@ -46,10 +46,10 @@ import {
46
46
  geminiSettings,
47
47
  pusharyConfigFile,
48
48
  vscodePluginDir
49
- } from "../chunk-O55DONTG.js";
49
+ } from "../chunk-EHLTWCDZ.js";
50
50
  import {
51
51
  reportEvent
52
- } from "../chunk-C4SQY777.js";
52
+ } from "../chunk-7PO2VEA4.js";
53
53
  import {
54
54
  confirmAppConnection,
55
55
  connectDevice,
@@ -58,12 +58,12 @@ import {
58
58
  printConnectInstructions,
59
59
  setHumanStream,
60
60
  verifyRoundTrip
61
- } from "../chunk-7GTDHV7O.js";
61
+ } from "../chunk-U27BZWFT.js";
62
62
  import "../chunk-3EGEA4KH.js";
63
63
  import {
64
64
  checkApiKey,
65
65
  describeKeyCheck
66
- } from "../chunk-CXGJTN74.js";
66
+ } from "../chunk-QR6MVVQ7.js";
67
67
  import {
68
68
  useColor
69
69
  } from "../chunk-5RUIFDTP.js";
@@ -74,7 +74,7 @@ import {
74
74
  readConfigFileKey,
75
75
  readKeySource,
76
76
  writeKey
77
- } from "../chunk-RZP3Z2WR.js";
77
+ } from "../chunk-WDRRULBH.js";
78
78
  import {
79
79
  backupFile,
80
80
  readJsonSafe,
@@ -90,13 +90,13 @@ import {
90
90
  } from "../chunk-BC3VCZ3E.js";
91
91
  import "../chunk-BSZYIAZL.js";
92
92
  import "../chunk-SAF6HGAA.js";
93
- import "../chunk-BT7NTTIW.js";
93
+ import "../chunk-SAA3VBDK.js";
94
94
  import {
95
95
  UsageError
96
96
  } from "../chunk-7QLSKOSU.js";
97
97
  import {
98
98
  isValidApiKey
99
- } from "../chunk-QA5HP7CR.js";
99
+ } from "../chunk-YWRJGYUH.js";
100
100
  import {
101
101
  installGlobally,
102
102
  npmErrorMessage,
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readLedgerSummary
4
- } from "../chunk-2R63XKLG.js";
5
- import "../chunk-QA5HP7CR.js";
4
+ } from "../chunk-3AGM3TDM.js";
5
+ import "../chunk-YWRJGYUH.js";
6
6
  import {
7
7
  exitOnHelpFlag
8
8
  } from "../chunk-RRZZ7TFJ.js";
@@ -3,18 +3,18 @@ import {
3
3
  describeReach,
4
4
  fetchChannels,
5
5
  reachVerdict
6
- } from "../chunk-7GTDHV7O.js";
6
+ } from "../chunk-U27BZWFT.js";
7
7
  import "../chunk-3EGEA4KH.js";
8
8
  import {
9
9
  checkApiKey,
10
10
  describeKeyCheck
11
- } from "../chunk-CXGJTN74.js";
11
+ } from "../chunk-QR6MVVQ7.js";
12
12
  import {
13
13
  createIo
14
14
  } from "../chunk-5RUIFDTP.js";
15
15
  import {
16
16
  readKeySource
17
- } from "../chunk-RZP3Z2WR.js";
17
+ } from "../chunk-WDRRULBH.js";
18
18
  import "../chunk-6MTNS63X.js";
19
19
  import {
20
20
  rejectUnknownFlags
@@ -22,11 +22,11 @@ import {
22
22
  import "../chunk-BC3VCZ3E.js";
23
23
  import "../chunk-BSZYIAZL.js";
24
24
  import "../chunk-SAF6HGAA.js";
25
- import "../chunk-BT7NTTIW.js";
25
+ import "../chunk-SAA3VBDK.js";
26
26
  import {
27
27
  UsageError
28
28
  } from "../chunk-7QLSKOSU.js";
29
- import "../chunk-QA5HP7CR.js";
29
+ import "../chunk-YWRJGYUH.js";
30
30
  import {
31
31
  describeLastSeen,
32
32
  listMachines
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handleStop
4
- } from "../chunk-C4SQY777.js";
4
+ } from "../chunk-7PO2VEA4.js";
5
5
  import "../chunk-BSZYIAZL.js";
6
6
  import "../chunk-SAF6HGAA.js";
7
- import "../chunk-BT7NTTIW.js";
7
+ import "../chunk-SAA3VBDK.js";
8
8
  import "../chunk-7QLSKOSU.js";
9
- import "../chunk-QA5HP7CR.js";
9
+ import "../chunk-YWRJGYUH.js";
10
10
  import "../chunk-RN3NOEJF.js";
11
11
  import "../chunk-2UMNXADU.js";
12
12
  import "../chunk-KZERVKTD.js";
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handleStopFailure
4
- } from "../chunk-C4SQY777.js";
4
+ } from "../chunk-7PO2VEA4.js";
5
5
  import "../chunk-BSZYIAZL.js";
6
6
  import "../chunk-SAF6HGAA.js";
7
- import "../chunk-BT7NTTIW.js";
7
+ import "../chunk-SAA3VBDK.js";
8
8
  import "../chunk-7QLSKOSU.js";
9
- import "../chunk-QA5HP7CR.js";
9
+ import "../chunk-YWRJGYUH.js";
10
10
  import "../chunk-RN3NOEJF.js";
11
11
  import "../chunk-2UMNXADU.js";
12
12
  import "../chunk-KZERVKTD.js";
@@ -4,12 +4,12 @@ import {
4
4
  addGeminiHooks,
5
5
  addGeminiMcpServer,
6
6
  hasGeminiHooks
7
- } from "../chunk-DMKSHZKF.js";
7
+ } from "../chunk-TXF4QZSQ.js";
8
8
  import {
9
9
  addClaudeMcpServer,
10
10
  addPusharyHooks,
11
11
  addPusharyToolPermissions
12
- } from "../chunk-U752S5RE.js";
12
+ } from "../chunk-NDC3TBHI.js";
13
13
  import {
14
14
  CODEX_HOOK_BINARY,
15
15
  addCodexHookTrust,
@@ -23,11 +23,11 @@ import {
23
23
  hasCodexHooks,
24
24
  vscodePluginDir,
25
25
  vscodePluginMcp
26
- } from "../chunk-O55DONTG.js";
26
+ } from "../chunk-EHLTWCDZ.js";
27
27
  import {
28
28
  readJsonSafe
29
29
  } from "../chunk-6MTNS63X.js";
30
- import "../chunk-QA5HP7CR.js";
30
+ import "../chunk-YWRJGYUH.js";
31
31
  import {
32
32
  execNpm,
33
33
  npmErrorMessage,
@@ -4,8 +4,8 @@ import {
4
4
  } from "../chunk-IIENZE2J.js";
5
5
  import {
6
6
  exitOnFailedResponse
7
- } from "../chunk-3JDIGKPV.js";
8
- import "../chunk-CXGJTN74.js";
7
+ } from "../chunk-26D2YMDU.js";
8
+ import "../chunk-QR6MVVQ7.js";
9
9
  import {
10
10
  createIo
11
11
  } from "../chunk-5RUIFDTP.js";
@@ -16,7 +16,7 @@ import "../chunk-SAF6HGAA.js";
16
16
  import {
17
17
  UsageError
18
18
  } from "../chunk-7QLSKOSU.js";
19
- import "../chunk-QA5HP7CR.js";
19
+ import "../chunk-YWRJGYUH.js";
20
20
  import {
21
21
  exitOnHelpFlag
22
22
  } from "../chunk-RRZZ7TFJ.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  describeKeyCheck,
3
3
  keyCheckFromResponse
4
- } from "./chunk-CXGJTN74.js";
4
+ } from "./chunk-QR6MVVQ7.js";
5
5
  import {
6
6
  createIo
7
7
  } from "./chunk-5RUIFDTP.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isSafeReadOnlyCommand
3
- } from "./chunk-QA5HP7CR.js";
3
+ } from "./chunk-YWRJGYUH.js";
4
4
 
5
5
  // src/ledger.ts
6
6
  import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync } from "fs";
@@ -1,15 +1,14 @@
1
1
  import {
2
- isAutoApprove,
3
- isAutoDeny,
4
2
  isModeStateDegraded,
5
3
  resolveAutoResolveOrigin,
6
4
  resolvePolicyAcross
7
- } from "./chunk-C4SQY777.js";
5
+ } from "./chunk-7PO2VEA4.js";
8
6
  import {
9
7
  evaluateScope,
10
8
  scopeChangeReason,
11
- scopeRequiresHuman
12
- } from "./chunk-QA5HP7CR.js";
9
+ scopeRequiresHuman,
10
+ verdictForPolicy
11
+ } from "./chunk-YWRJGYUH.js";
13
12
 
14
13
  // src/answer.ts
15
14
  var denyReasonFrom = (value, note) => {
@@ -36,8 +35,9 @@ var resolveGate = (input) => {
36
35
  const { modeState, config, toolName, toolInputs, cwd, repoKey } = input;
37
36
  if (modeState.kill) return { kind: "kill", reason: KILL_REASON };
38
37
  const policy = resolvePolicyAcross(config, toolName, modeState.mode, toolInputs, cwd, repoKey);
39
- const autoApproves = isAutoApprove(policy);
40
- const autoDenies = isAutoDeny(policy);
38
+ const verdict = verdictForPolicy(policy);
39
+ const autoApproves = verdict === "allow";
40
+ const autoDenies = verdict === "deny";
41
41
  if (autoDenies) return { kind: "deny", policy, reason: `Denied by policy for ${policy.tool}` };
42
42
  if (isModeStateDegraded(modeState)) {
43
43
  if (autoApproves) {
@@ -7,23 +7,23 @@ import {
7
7
  } from "./chunk-SAF6HGAA.js";
8
8
  import {
9
9
  reportedInstallSource
10
- } from "./chunk-BT7NTTIW.js";
10
+ } from "./chunk-SAA3VBDK.js";
11
11
  import {
12
12
  ACTION_BODY_MAX,
13
13
  DECISION_LINE_MAX,
14
14
  classifyDecisionRisk,
15
15
  isApprovalMode,
16
- isRepoKeyMatch,
16
+ isAutoApprove,
17
+ isAutoDeny,
17
18
  isSafeReadOnlyCommand,
18
19
  isScopeContract,
19
20
  localRepoKey,
20
- matchRankWeight,
21
- matchToolPatternAny,
22
21
  normalizeRepoRemote,
23
22
  policyArgForms,
24
23
  redactSecrets,
25
- redactSecretsDeep
26
- } from "./chunk-QA5HP7CR.js";
24
+ redactSecretsDeep,
25
+ selectGoverningRule
26
+ } from "./chunk-YWRJGYUH.js";
27
27
  import {
28
28
  getMachineId
29
29
  } from "./chunk-RN3NOEJF.js";
@@ -117,30 +117,6 @@ var getPolicy = async (apiKey, expectedVersion, agent, repoAware = false) => {
117
117
  throw new Error("Failed to fetch policy and no cached policy available");
118
118
  }
119
119
  };
120
- var findBestMatch = (policies, toolName, args, repoKey) => {
121
- let best;
122
- let bestWeight = 0;
123
- let bestScoped = -1;
124
- let bestLength = -1;
125
- for (const candidate of policies) {
126
- if (!isRepoKeyMatch(candidate.repoKey, repoKey)) continue;
127
- const rank = matchToolPatternAny(candidate.tool, toolName, args);
128
- if (rank === "none") continue;
129
- const weight = matchRankWeight(rank);
130
- const scoped = candidate.repoKey ? 1 : 0;
131
- const length = rank === "prefix" ? candidate.tool.length : -1;
132
- const better = weight > bestWeight || weight === bestWeight && scoped > bestScoped || weight === bestWeight && scoped === bestScoped && length > bestLength;
133
- if (better) {
134
- best = { policy: candidate, rank };
135
- bestWeight = weight;
136
- bestScoped = scoped;
137
- bestLength = length;
138
- }
139
- }
140
- return best;
141
- };
142
- var isAutoApprove = (policy) => policy.timeoutSeconds === 0 && policy.timeoutAction === "approve";
143
- var isAutoDeny = (policy) => policy.timeoutSeconds === 0 && policy.timeoutAction === "deny";
144
120
  var autoApprove = (tool) => ({
145
121
  tool,
146
122
  timeoutSeconds: 0,
@@ -151,7 +127,7 @@ var autoApprove = (tool) => ({
151
127
  var resolveAutoResolveOrigin = (config, toolName, toolInput, cwd, repoKey) => {
152
128
  const args = toolInput ? policyArgForms(toolName, toolInput, cwd) : [];
153
129
  const arg = args[0];
154
- const match = findBestMatch(config.policies, toolName, args, repoKey);
130
+ const match = selectGoverningRule(config.policies, toolName, args, repoKey);
155
131
  const governedBySpecificRule = match?.rank === "exact" || match?.rank === "prefix";
156
132
  if (!governedBySpecificRule && toolName === "Bash" && typeof arg === "string" && isSafeReadOnlyCommand(arg)) {
157
133
  return "safe_readonly";
@@ -161,7 +137,7 @@ var resolveAutoResolveOrigin = (config, toolName, toolInput, cwd, repoKey) => {
161
137
  var resolvePolicy = (config, toolName, modeOverride, toolInput, cwd, repoKey) => {
162
138
  const args = toolInput ? policyArgForms(toolName, toolInput, cwd) : [];
163
139
  const arg = args[0];
164
- const match = findBestMatch(config.policies, toolName, args, repoKey);
140
+ const match = selectGoverningRule(config.policies, toolName, args, repoKey);
165
141
  let base = match?.policy ?? config.policies.find((p) => p.tool === "*") ?? {
166
142
  tool: toolName,
167
143
  timeoutSeconds: config.defaultTimeoutSeconds,
@@ -1338,8 +1314,6 @@ var handleStopFailure = async (input, agent = CLAUDE_CODE_AGENT) => {
1338
1314
 
1339
1315
  export {
1340
1316
  getPolicy,
1341
- isAutoApprove,
1342
- isAutoDeny,
1343
1317
  resolveAutoResolveOrigin,
1344
1318
  resolvePolicy,
1345
1319
  resolvePolicyAcross,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readConfigFileKey
3
- } from "./chunk-RZP3Z2WR.js";
3
+ } from "./chunk-WDRRULBH.js";
4
4
 
5
5
  // src/bell/fleet.ts
6
6
  import { closeSync, constants, futimesSync, lstatSync, mkdirSync, openSync, readdirSync, unlinkSync } from "fs";
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  PRETOOLUSE_HANDLED_TOOLS
3
- } from "./chunk-U752S5RE.js";
3
+ } from "./chunk-NDC3TBHI.js";
4
4
  import {
5
5
  isGatingMoment,
6
6
  recordKeylessMoment
7
- } from "./chunk-2R63XKLG.js";
7
+ } from "./chunk-3AGM3TDM.js";
8
8
  import {
9
9
  denyReasonFrom,
10
10
  isDeferAnswer,
11
11
  resolveGate
12
- } from "./chunk-FFT7L2VE.js";
12
+ } from "./chunk-4QQOKEOS.js";
13
13
  import {
14
14
  DEFAULT_SESSION,
15
15
  askUser,
@@ -29,13 +29,13 @@ import {
29
29
  sendNotification,
30
30
  throttlePass,
31
31
  waitForAnswer
32
- } from "./chunk-C4SQY777.js";
32
+ } from "./chunk-7PO2VEA4.js";
33
33
  import {
34
34
  buildDecisionEpisodeFeatures,
35
35
  effectiveWaitSeconds,
36
36
  hookWaitClamped,
37
37
  hookWaitDeadline
38
- } from "./chunk-QA5HP7CR.js";
38
+ } from "./chunk-YWRJGYUH.js";
39
39
  import {
40
40
  getMachineId
41
41
  } from "./chunk-RN3NOEJF.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  HOOK_BUDGETS
3
- } from "./chunk-QA5HP7CR.js";
3
+ } from "./chunk-YWRJGYUH.js";
4
4
 
5
5
  // src/codex-config.ts
6
6
  import { createHash } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  HOOK_BUDGETS
3
- } from "./chunk-QA5HP7CR.js";
3
+ } from "./chunk-YWRJGYUH.js";
4
4
 
5
5
  // src/claude-config.ts
6
6
  import { join } from "path";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  hasGeminiHooks
3
- } from "./chunk-DMKSHZKF.js";
3
+ } from "./chunk-TXF4QZSQ.js";
4
4
  import {
5
5
  hasCodexHooks
6
- } from "./chunk-O55DONTG.js";
6
+ } from "./chunk-EHLTWCDZ.js";
7
7
 
8
8
  // src/diagnostics/wiring.ts
9
9
  var record = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : null;
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-7QLSKOSU.js";
7
7
  import {
8
8
  isValidApiKey
9
- } from "./chunk-QA5HP7CR.js";
9
+ } from "./chunk-YWRJGYUH.js";
10
10
  import {
11
11
  getBaseUrl
12
12
  } from "./chunk-2UMNXADU.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  normalizeInstallSource
3
- } from "./chunk-QA5HP7CR.js";
3
+ } from "./chunk-YWRJGYUH.js";
4
4
  import {
5
5
  configFilePath
6
6
  } from "./chunk-2UMNXADU.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  HOOK_BUDGETS
3
- } from "./chunk-QA5HP7CR.js";
3
+ } from "./chunk-YWRJGYUH.js";
4
4
 
5
5
  // src/gemini-config.ts
6
6
  var GEMINI_HOOK_BINARY = "pushary-gemini-hook";
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-BSZYIAZL.js";
12
12
  import {
13
13
  reportedInstallSource
14
- } from "./chunk-BT7NTTIW.js";
14
+ } from "./chunk-SAA3VBDK.js";
15
15
 
16
16
  // src/reach.ts
17
17
  var reachVerdict = (channels) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  codexHomeFrom
3
- } from "./chunk-O55DONTG.js";
3
+ } from "./chunk-EHLTWCDZ.js";
4
4
 
5
5
  // src/vscode-config.ts
6
6
  import { homedir } from "os";
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-BC3VCZ3E.js";
10
10
  import {
11
11
  resolveInstallSourceFor
12
- } from "./chunk-BT7NTTIW.js";
12
+ } from "./chunk-SAA3VBDK.js";
13
13
  import {
14
14
  configFilePath
15
15
  } from "./chunk-2UMNXADU.js";
@@ -447,6 +447,35 @@ var isSafeReadOnlyCommand = (command) => {
447
447
  }
448
448
  return true;
449
449
  };
450
+ var isAutoApprove = (policy) => policy.timeoutSeconds === 0 && policy.timeoutAction === "approve";
451
+ var isAutoDeny = (policy) => policy.timeoutSeconds === 0 && policy.timeoutAction === "deny";
452
+ var verdictForPolicy = (policy) => {
453
+ if (isAutoDeny(policy)) return "deny";
454
+ if (isAutoApprove(policy)) return "allow";
455
+ return "requires_human";
456
+ };
457
+ var selectGoverningRule = (policies, toolName, args, repoKey) => {
458
+ let best;
459
+ let bestWeight = 0;
460
+ let bestScoped = -1;
461
+ let bestLength = -1;
462
+ for (const candidate of policies) {
463
+ if (!isRepoKeyMatch(candidate.repoKey, repoKey)) continue;
464
+ const rank = matchToolPatternAny(candidate.tool, toolName, args);
465
+ if (rank === "none") continue;
466
+ const weight = matchRankWeight(rank);
467
+ const scoped = candidate.repoKey ? 1 : 0;
468
+ const length = rank === "prefix" ? candidate.tool.length : -1;
469
+ const better = weight > bestWeight || weight === bestWeight && scoped > bestScoped || weight === bestWeight && scoped === bestScoped && length > bestLength;
470
+ if (better) {
471
+ best = { policy: candidate, rank };
472
+ bestWeight = weight;
473
+ bestScoped = scoped;
474
+ bestLength = length;
475
+ }
476
+ }
477
+ return best;
478
+ };
450
479
  var API_KEY_PATTERN = /^pk_[a-f0-9]+\.[a-f0-9]+$/;
451
480
  var isValidApiKey = (value) => API_KEY_PATTERN.test(value);
452
481
  var ACTION_BODY_MAX = 4e3;
@@ -787,13 +816,14 @@ export {
787
816
  hookWaitDeadline,
788
817
  hookWaitClamped,
789
818
  effectiveWaitSeconds,
790
- isRepoKeyMatch,
791
819
  normalizeRepoRemote,
792
820
  localRepoKey,
793
- matchRankWeight,
794
821
  policyArgForms,
795
- matchToolPatternAny,
796
822
  isSafeReadOnlyCommand,
823
+ isAutoApprove,
824
+ isAutoDeny,
825
+ verdictForPolicy,
826
+ selectGoverningRule,
797
827
  isValidApiKey,
798
828
  ACTION_BODY_MAX,
799
829
  DECISION_LINE_MAX,
package/dist/src/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  handlePreToolUse
3
- } from "../chunk-E7YX7CTM.js";
4
- import "../chunk-U752S5RE.js";
5
- import "../chunk-2R63XKLG.js";
6
- import "../chunk-FFT7L2VE.js";
3
+ } from "../chunk-DHAZ6SOT.js";
4
+ import "../chunk-NDC3TBHI.js";
5
+ import "../chunk-3AGM3TDM.js";
6
+ import "../chunk-4QQOKEOS.js";
7
7
  import {
8
8
  askUser,
9
9
  cancelQuestion,
@@ -16,12 +16,12 @@ import {
16
16
  reportEvent,
17
17
  resolvePolicy,
18
18
  waitForAnswer
19
- } from "../chunk-C4SQY777.js";
19
+ } from "../chunk-7PO2VEA4.js";
20
20
  import "../chunk-BSZYIAZL.js";
21
21
  import "../chunk-SAF6HGAA.js";
22
- import "../chunk-BT7NTTIW.js";
22
+ import "../chunk-SAA3VBDK.js";
23
23
  import "../chunk-7QLSKOSU.js";
24
- import "../chunk-QA5HP7CR.js";
24
+ import "../chunk-YWRJGYUH.js";
25
25
  import "../chunk-RN3NOEJF.js";
26
26
  import {
27
27
  getApiKey,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pushary/agent-hooks",
3
- "version": "0.83.1",
3
+ "version": "0.83.2",
4
4
  "description": "Permission hooks for AI coding agents: route tool approvals through Pushary push notifications",
5
5
  "keywords": [
6
6
  "pushary",