pushary 1.9.60 → 1.9.62

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 (125) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +6 -0
  3. package/dist/{api-ASQA5PZM.js → api-7HLZRIUV.js} +15 -12
  4. package/dist/bin/pushary-bell-hook.js +28 -27
  5. package/dist/bin/pushary-bell.js +11 -10
  6. package/dist/bin/pushary-claude.js +34 -26
  7. package/dist/bin/pushary-clean.js +36 -34
  8. package/dist/bin/pushary-codex-bridge.js +22 -21
  9. package/dist/bin/pushary-codex-hook.js +49 -35
  10. package/dist/bin/pushary-codex-session.js +9 -8
  11. package/dist/bin/pushary-codex.js +15 -14
  12. package/dist/bin/pushary-connect.js +28 -27
  13. package/dist/bin/pushary-cowork.js +6 -5
  14. package/dist/bin/pushary-daemon.js +38 -37
  15. package/dist/bin/pushary-disconnect.js +27 -26
  16. package/dist/bin/pushary-doctor.js +41 -40
  17. package/dist/bin/pushary-elicitation-hook.js +30 -27
  18. package/dist/bin/pushary-gemini-bridge.js +16 -15
  19. package/dist/bin/pushary-gemini-hook.js +38 -29
  20. package/dist/bin/pushary-hook.js +33 -31
  21. package/dist/bin/pushary-login.js +15 -14
  22. package/dist/bin/pushary-logout.js +28 -27
  23. package/dist/bin/pushary-mcp.js +12 -11
  24. package/dist/bin/pushary-mode.js +15 -14
  25. package/dist/bin/pushary-notification-hook.js +27 -26
  26. package/dist/bin/pushary-opencode-hook.js +40 -30
  27. package/dist/bin/pushary-permission-denied-hook.js +32 -31
  28. package/dist/bin/pushary-permission-hook.js +31 -30
  29. package/dist/bin/pushary-post-hook.js +27 -26
  30. package/dist/bin/pushary-prompt-hook.js +27 -26
  31. package/dist/bin/pushary-session-end-hook.js +27 -26
  32. package/dist/bin/pushary-session-start-hook.js +34 -33
  33. package/dist/bin/pushary-setup.js +4195 -93
  34. package/dist/bin/pushary-stats.js +6 -5
  35. package/dist/bin/pushary-status.js +32 -31
  36. package/dist/bin/pushary-stop-hook.js +27 -26
  37. package/dist/bin/pushary-stopfailure-hook.js +27 -26
  38. package/dist/bin/pushary-suggestions.js +15 -14
  39. package/dist/bin/pushary-transcript-register.js +19 -18
  40. package/dist/bin/pushary-transcripts.js +8 -7
  41. package/dist/bin/pushary-upgrade.js +43 -37
  42. package/dist/bin/pushary-wait.js +15 -14
  43. package/dist/bin/pushary.js +8 -7
  44. package/dist/{chunk-RPPXQNIA.js → chunk-3IFCXMC6.js} +1 -1
  45. package/dist/{chunk-WXPVVXBU.js → chunk-3LBB7GVF.js} +4 -4
  46. package/dist/{chunk-WFSGCFXQ.js → chunk-3YGUWPNZ.js} +2 -6
  47. package/dist/{chunk-SVQWHV65.js → chunk-44FNEAXK.js} +1 -1
  48. package/dist/{chunk-YPD3MTFU.js → chunk-4K6YZPZ3.js} +1 -1
  49. package/dist/{chunk-PUHP4IBA.js → chunk-557ZE5EX.js} +4 -4
  50. package/dist/{chunk-HC3FHDKB.js → chunk-5R23J52J.js} +6 -6
  51. package/dist/{chunk-625DZLT5.js → chunk-67Q3Q5IO.js} +8 -6
  52. package/dist/{chunk-QGSHV3WO.js → chunk-6HIYOY6I.js} +77 -18
  53. package/dist/{chunk-L3AFVFGQ.js → chunk-6JAWNRDR.js} +2 -2
  54. package/dist/{chunk-6MJWYYAS.js → chunk-6YSEOXP5.js} +47 -3
  55. package/dist/{chunk-VIJIG5YL.js → chunk-7E2ZN7XA.js} +2 -2
  56. package/dist/{chunk-QLMOU57V.js → chunk-7EHZXZB2.js} +33 -20
  57. package/dist/{chunk-2AELPDMT.js → chunk-7ETELRQX.js} +1 -1
  58. package/dist/{chunk-7BHI3PZN.js → chunk-7GU4PXE5.js} +1 -1
  59. package/dist/{chunk-CDQHQAS7.js → chunk-7NJ4TDUH.js} +5 -5
  60. package/dist/{chunk-X3YKQJCZ.js → chunk-7NXB7OVX.js} +1 -1
  61. package/dist/{chunk-XEJOPVCG.js → chunk-A4CZPUQ6.js} +1 -1
  62. package/dist/{chunk-YGE6ML3O.js → chunk-AFV3FQNG.js} +4 -4
  63. package/dist/{chunk-V57XLKZL.js → chunk-BIUSODLS.js} +2 -2
  64. package/dist/{chunk-2QREHU4O.js → chunk-CFIQ3252.js} +3 -3
  65. package/dist/{chunk-BG4Y64FW.js → chunk-DFKEJARZ.js} +1 -1
  66. package/dist/{chunk-S54C6TQC.js → chunk-EA6574W2.js} +5 -5
  67. package/dist/{chunk-FDWMG6NY.js → chunk-EO6CL4PD.js} +2 -2
  68. package/dist/{chunk-SEILUNWB.js → chunk-ESXGCZDA.js} +26 -3
  69. package/dist/{chunk-CEQ2AZH4.js → chunk-EUNSJKJJ.js} +8 -8
  70. package/dist/{chunk-56JCQQLS.js → chunk-EVZDYG7L.js} +2 -2
  71. package/dist/{chunk-4MUFZU2G.js → chunk-F35YILEN.js} +1 -1
  72. package/dist/{chunk-ERK24P76.js → chunk-FG5HMJ7C.js} +1 -1
  73. package/dist/{chunk-NKLNU577.js → chunk-FX7KDF47.js} +3 -3
  74. package/dist/{chunk-AXJLJJ3M.js → chunk-FXECTHAG.js} +73 -2
  75. package/dist/chunk-FYS27SUS.js +216 -0
  76. package/dist/{chunk-O6IUZGWV.js → chunk-G3ZDCYMU.js} +1 -1
  77. package/dist/{chunk-ELLJPP6O.js → chunk-GFAG72LR.js} +2 -2
  78. package/dist/{chunk-ATKN4BJT.js → chunk-GV43RXR2.js} +1 -1
  79. package/dist/{chunk-4MWRR5IT.js → chunk-HSRNWCXJ.js} +3 -3
  80. package/dist/{chunk-IF26ZGZ7.js → chunk-LCNN7UOE.js} +3 -3
  81. package/dist/{chunk-WXZHQ3TT.js → chunk-LILS32LF.js} +5 -5
  82. package/dist/{chunk-33OOEVPG.js → chunk-LL2KHEJH.js} +1 -1
  83. package/dist/{chunk-W2IVTHIG.js → chunk-LWR5VKNC.js} +18 -10
  84. package/dist/{chunk-QUBIEZXC.js → chunk-M7MEVILL.js} +3 -3
  85. package/dist/chunk-MLKGABMK.js +9 -0
  86. package/dist/{chunk-XV6S5PWW.js → chunk-MURJ4WAL.js} +1 -1
  87. package/dist/{chunk-FUZ5VYWD.js → chunk-MYEALNW6.js} +1 -1
  88. package/dist/{chunk-ADR3KHOC.js → chunk-NAZRRXZM.js} +2 -2
  89. package/dist/{chunk-ZGOJLNKS.js → chunk-NZLQ6GMX.js} +4 -4
  90. package/dist/{chunk-K4MBKXAE.js → chunk-OZRT64BB.js} +1 -1
  91. package/dist/{chunk-Y5VKZNFN.js → chunk-PSCXEH42.js} +2 -2
  92. package/dist/{chunk-METMK3L4.js → chunk-Q4WTIKM6.js} +3 -3
  93. package/dist/{chunk-U7NR4JVD.js → chunk-QIPW7OVB.js} +4 -4
  94. package/dist/{chunk-USE5IEEW.js → chunk-R3CLBNST.js} +1 -1
  95. package/dist/{chunk-7WFRY6OL.js → chunk-RFCEVROB.js} +2 -2
  96. package/dist/{chunk-EZHY65QA.js → chunk-RSNN2TPE.js} +13 -8
  97. package/dist/{chunk-DJ7EZIQA.js → chunk-RU37NSZH.js} +3 -3
  98. package/dist/{chunk-J4KQL7YZ.js → chunk-SDOWT67G.js} +5 -5
  99. package/dist/{chunk-4PZXI7WU.js → chunk-SJCPIYWJ.js} +2 -2
  100. package/dist/{chunk-MUNL23WE.js → chunk-SJJYXMJP.js} +6 -6
  101. package/dist/{chunk-6LOQE4J4.js → chunk-TMHE5CVX.js} +3 -3
  102. package/dist/{chunk-GAMVAORR.js → chunk-UUAVYIWJ.js} +1 -1
  103. package/dist/{chunk-Y5V4PA2Z.js → chunk-UWCPY4RY.js} +2 -2
  104. package/dist/{chunk-5RU35K57.js → chunk-VF3IL56Q.js} +2 -2
  105. package/dist/{chunk-WN3RACVD.js → chunk-W3CBFLIX.js} +3 -3
  106. package/dist/{chunk-RLVJ6TVL.js → chunk-W6MYFAOK.js} +26 -18
  107. package/dist/{chunk-CSOROFJY.js → chunk-YQK72JGV.js} +5 -5
  108. package/dist/{chunk-7JXJJNQ5.js → chunk-ZEDGKCCM.js} +1 -1
  109. package/dist/{chunk-SOCJ2N3E.js → chunk-ZJFJUAHS.js} +6 -6
  110. package/dist/{codex-app-cards-switch-ZO76D2NY.js → codex-app-cards-switch-IIL7IPP6.js} +12 -11
  111. package/dist/{codex-desktop-launch-MJT5E3O3.js → codex-desktop-launch-XCLMYVBD.js} +2 -1
  112. package/dist/{codex-session-launch-PTFCVIC7.js → codex-session-launch-UMVALJ3A.js} +19 -18
  113. package/dist/{config-SXV6XNVU.js → config-5N3GUJD5.js} +4 -3
  114. package/dist/{global-upgrade-ETDP32LO.js → global-upgrade-5F4CSXED.js} +10 -9
  115. package/dist/{identity-OOLIOSMR.js → identity-7ULYW4RL.js} +5 -4
  116. package/dist/{live-capabilities-2XIFA7YO.js → live-capabilities-QTSFXA6T.js} +5 -4
  117. package/dist/{paths-IIOQZESZ.js → paths-HEMK2ALW.js} +4 -3
  118. package/dist/{reapply-KFAJSKOQ.js → reapply-AMFKVYZV.js} +27 -26
  119. package/dist/src/index.d.ts +1 -0
  120. package/dist/src/index.js +22 -21
  121. package/dist/{upgrade-lock-T6ILR644.js → upgrade-lock-IAZC5644.js} +5 -4
  122. package/dist/usage-NEFDYSRT.js +11 -0
  123. package/package.json +1 -1
  124. package/dist/chunk-6MC2XXFD.js +0 -126
  125. package/dist/usage-6TN7FVWS.js +0 -10
@@ -2,12 +2,13 @@ import {
2
2
  getMachineId,
3
3
  getOrCreateMachineId,
4
4
  readExistingMachineId
5
- } from "./chunk-O6IUZGWV.js";
6
- import "./chunk-6MJWYYAS.js";
7
- import "./chunk-2QREHU4O.js";
5
+ } from "./chunk-G3ZDCYMU.js";
6
+ import "./chunk-6YSEOXP5.js";
7
+ import "./chunk-CFIQ3252.js";
8
8
  import "./chunk-QENTGE75.js";
9
9
  import "./chunk-QTOLNRET.js";
10
- import "./chunk-AXJLJJ3M.js";
10
+ import "./chunk-FXECTHAG.js";
11
+ import "./chunk-MLKGABMK.js";
11
12
  export {
12
13
  getMachineId,
13
14
  getOrCreateMachineId,
@@ -22,14 +22,15 @@ import {
22
22
  resolveControlPolicy,
23
23
  resolveProviderBinary,
24
24
  trackProviderInventory
25
- } from "./chunk-6LOQE4J4.js";
26
- import "./chunk-USE5IEEW.js";
25
+ } from "./chunk-TMHE5CVX.js";
26
+ import "./chunk-R3CLBNST.js";
27
27
  import "./chunk-VUFHYMSP.js";
28
28
  import "./chunk-6ICPEJY5.js";
29
- import "./chunk-2QREHU4O.js";
29
+ import "./chunk-CFIQ3252.js";
30
30
  import "./chunk-QENTGE75.js";
31
31
  import "./chunk-QTOLNRET.js";
32
- import "./chunk-AXJLJJ3M.js";
32
+ import "./chunk-FXECTHAG.js";
33
+ import "./chunk-MLKGABMK.js";
33
34
  export {
34
35
  CLAUDE_BRIDGE_CAPABILITY,
35
36
  CLAUDE_RESUME_CAPABILITY,
@@ -33,10 +33,11 @@ import {
33
33
  serviceOwedBackMark,
34
34
  vscodePluginDir,
35
35
  vscodePluginMcp
36
- } from "./chunk-6MJWYYAS.js";
37
- import "./chunk-2QREHU4O.js";
36
+ } from "./chunk-6YSEOXP5.js";
37
+ import "./chunk-CFIQ3252.js";
38
38
  import "./chunk-QTOLNRET.js";
39
- import "./chunk-AXJLJJ3M.js";
39
+ import "./chunk-FXECTHAG.js";
40
+ import "./chunk-MLKGABMK.js";
40
41
  export {
41
42
  autoUpdateLock,
42
43
  autoUpdateLog,
@@ -11,41 +11,42 @@ import {
11
11
  reapplyOpenCodePlugin,
12
12
  reapplyVsCodePlugin,
13
13
  repairCodexHolds
14
- } from "./chunk-RLVJ6TVL.js";
15
- import "./chunk-56JCQQLS.js";
16
- import "./chunk-WXZHQ3TT.js";
17
- import "./chunk-FDWMG6NY.js";
18
- import "./chunk-QGSHV3WO.js";
19
- import "./chunk-USE5IEEW.js";
14
+ } from "./chunk-W6MYFAOK.js";
15
+ import "./chunk-EVZDYG7L.js";
16
+ import "./chunk-LILS32LF.js";
17
+ import "./chunk-EO6CL4PD.js";
18
+ import "./chunk-6HIYOY6I.js";
19
+ import "./chunk-R3CLBNST.js";
20
20
  import "./chunk-VUFHYMSP.js";
21
- import "./chunk-PUHP4IBA.js";
22
- import "./chunk-CDQHQAS7.js";
23
- import "./chunk-IF26ZGZ7.js";
24
- import "./chunk-XV6S5PWW.js";
25
- import "./chunk-4MUFZU2G.js";
21
+ import "./chunk-557ZE5EX.js";
22
+ import "./chunk-7NJ4TDUH.js";
23
+ import "./chunk-LCNN7UOE.js";
24
+ import "./chunk-MURJ4WAL.js";
25
+ import "./chunk-F35YILEN.js";
26
26
  import "./chunk-NMUI3ZWG.js";
27
27
  import "./chunk-XHKBHWLX.js";
28
28
  import "./chunk-6ICPEJY5.js";
29
- import "./chunk-WN3RACVD.js";
30
- import "./chunk-W2IVTHIG.js";
31
- import "./chunk-33OOEVPG.js";
32
- import "./chunk-YPD3MTFU.js";
33
- import "./chunk-EZHY65QA.js";
34
- import "./chunk-SEILUNWB.js";
29
+ import "./chunk-W3CBFLIX.js";
30
+ import "./chunk-LWR5VKNC.js";
31
+ import "./chunk-LL2KHEJH.js";
32
+ import "./chunk-4K6YZPZ3.js";
33
+ import "./chunk-RSNN2TPE.js";
34
+ import "./chunk-ESXGCZDA.js";
35
35
  import "./chunk-POFBE6ZY.js";
36
- import "./chunk-METMK3L4.js";
37
- import "./chunk-4MWRR5IT.js";
38
- import "./chunk-O6IUZGWV.js";
36
+ import "./chunk-Q4WTIKM6.js";
37
+ import "./chunk-HSRNWCXJ.js";
38
+ import "./chunk-G3ZDCYMU.js";
39
39
  import "./chunk-PPY5N2E6.js";
40
40
  import "./chunk-KZERVKTD.js";
41
- import "./chunk-Y5VKZNFN.js";
42
- import "./chunk-6MJWYYAS.js";
43
- import "./chunk-2QREHU4O.js";
41
+ import "./chunk-PSCXEH42.js";
42
+ import "./chunk-6YSEOXP5.js";
43
+ import "./chunk-CFIQ3252.js";
44
44
  import "./chunk-QENTGE75.js";
45
- import "./chunk-BG4Y64FW.js";
46
- import "./chunk-ERK24P76.js";
45
+ import "./chunk-DFKEJARZ.js";
46
+ import "./chunk-FG5HMJ7C.js";
47
47
  import "./chunk-QTOLNRET.js";
48
- import "./chunk-AXJLJJ3M.js";
48
+ import "./chunk-FXECTHAG.js";
49
+ import "./chunk-MLKGABMK.js";
49
50
  export {
50
51
  ensureCodexTrustAfterReapply,
51
52
  inspectConfiguredManagedProviders,
@@ -11,6 +11,7 @@ interface ToolHookInput {
11
11
  readonly transcript_path?: string;
12
12
  readonly tool_use_id?: string;
13
13
  readonly permission_mode?: string;
14
+ readonly cursor_version?: string;
14
15
  }
15
16
 
16
17
  type HookOutput = ClaudePreToolUseOutput;
package/dist/src/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  handlePreToolUse
3
- } from "../chunk-QLMOU57V.js";
4
- import "../chunk-625DZLT5.js";
5
- import "../chunk-SVQWHV65.js";
6
- import "../chunk-RPPXQNIA.js";
7
- import "../chunk-PUHP4IBA.js";
8
- import "../chunk-IF26ZGZ7.js";
3
+ } from "../chunk-7EHZXZB2.js";
4
+ import "../chunk-67Q3Q5IO.js";
5
+ import "../chunk-44FNEAXK.js";
6
+ import "../chunk-3IFCXMC6.js";
7
+ import "../chunk-557ZE5EX.js";
8
+ import "../chunk-LCNN7UOE.js";
9
9
  import {
10
10
  fetchAccountPublicKey
11
- } from "../chunk-GAMVAORR.js";
11
+ } from "../chunk-UUAVYIWJ.js";
12
12
  import "../chunk-6ICPEJY5.js";
13
13
  import {
14
14
  fetchModeOverride,
@@ -18,34 +18,35 @@ import {
18
18
  handlePostToolUse,
19
19
  handleStop,
20
20
  reportEvent
21
- } from "../chunk-W2IVTHIG.js";
22
- import "../chunk-33OOEVPG.js";
23
- import "../chunk-YPD3MTFU.js";
21
+ } from "../chunk-LWR5VKNC.js";
22
+ import "../chunk-LL2KHEJH.js";
23
+ import "../chunk-4K6YZPZ3.js";
24
24
  import {
25
25
  askUser,
26
26
  cancelQuestion,
27
27
  waitForAnswer
28
- } from "../chunk-EZHY65QA.js";
29
- import "../chunk-SEILUNWB.js";
28
+ } from "../chunk-RSNN2TPE.js";
29
+ import "../chunk-ESXGCZDA.js";
30
30
  import "../chunk-POFBE6ZY.js";
31
- import "../chunk-METMK3L4.js";
32
- import "../chunk-4MWRR5IT.js";
33
- import "../chunk-O6IUZGWV.js";
31
+ import "../chunk-Q4WTIKM6.js";
32
+ import "../chunk-HSRNWCXJ.js";
33
+ import "../chunk-G3ZDCYMU.js";
34
34
  import "../chunk-PPY5N2E6.js";
35
35
  import "../chunk-KZERVKTD.js";
36
- import "../chunk-Y5VKZNFN.js";
37
- import "../chunk-6MJWYYAS.js";
38
- import "../chunk-2QREHU4O.js";
36
+ import "../chunk-PSCXEH42.js";
37
+ import "../chunk-6YSEOXP5.js";
38
+ import "../chunk-CFIQ3252.js";
39
39
  import "../chunk-QENTGE75.js";
40
40
  import {
41
41
  getApiKey,
42
42
  getBaseUrl
43
- } from "../chunk-BG4Y64FW.js";
44
- import "../chunk-ERK24P76.js";
43
+ } from "../chunk-DFKEJARZ.js";
44
+ import "../chunk-FG5HMJ7C.js";
45
45
  import "../chunk-QTOLNRET.js";
46
46
  import {
47
47
  resolvePolicy
48
- } from "../chunk-AXJLJJ3M.js";
48
+ } from "../chunk-FXECTHAG.js";
49
+ import "../chunk-MLKGABMK.js";
49
50
  export {
50
51
  askUser,
51
52
  cancelQuestion,
@@ -4,12 +4,13 @@ import {
4
4
  installWithUpgradeLock,
5
5
  ownsUpgradeLock,
6
6
  releaseAutoUpdateLock
7
- } from "./chunk-VIJIG5YL.js";
8
- import "./chunk-6MJWYYAS.js";
9
- import "./chunk-2QREHU4O.js";
7
+ } from "./chunk-7E2ZN7XA.js";
8
+ import "./chunk-6YSEOXP5.js";
9
+ import "./chunk-CFIQ3252.js";
10
10
  import "./chunk-QENTGE75.js";
11
11
  import "./chunk-QTOLNRET.js";
12
- import "./chunk-AXJLJJ3M.js";
12
+ import "./chunk-FXECTHAG.js";
13
+ import "./chunk-MLKGABMK.js";
13
14
  export {
14
15
  claimUpgradeLock,
15
16
  forkFinishWithUpgradeLock,
@@ -0,0 +1,11 @@
1
+ import {
2
+ exitOnHelpFlag
3
+ } from "./chunk-OZRT64BB.js";
4
+ import "./chunk-KZERVKTD.js";
5
+ import "./chunk-FG5HMJ7C.js";
6
+ import "./chunk-QTOLNRET.js";
7
+ import "./chunk-FXECTHAG.js";
8
+ import "./chunk-MLKGABMK.js";
9
+ export {
10
+ exitOnHelpFlag
11
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pushary",
3
- "version": "1.9.60",
3
+ "version": "1.9.62",
4
4
  "description": "Permission hooks for AI coding agents: route tool approvals through Pushary push notifications",
5
5
  "keywords": [
6
6
  "pushary",
@@ -1,126 +0,0 @@
1
- import {
2
- registerTranscript
3
- } from "./chunk-CEQ2AZH4.js";
4
- import {
5
- namedEvent
6
- } from "./chunk-PUHP4IBA.js";
7
- import {
8
- writeDegraded
9
- } from "./chunk-EZHY65QA.js";
10
- import {
11
- claudeShapedHookInput,
12
- hookCompatibleProfileBySource,
13
- isGrokHookPayload,
14
- isGrokSessionEndStop
15
- } from "./chunk-AXJLJJ3M.js";
16
-
17
- // src/tool-hook-input.ts
18
- var OPTIONAL_TEXT_FIELDS = ["hook_event_name", "session_id", "cwd", "transcript_path", "tool_use_id", "permission_mode"];
19
- function isInputRecord(value) {
20
- return value !== null && typeof value === "object" && !Array.isArray(value);
21
- }
22
- function isToolHookInput(value) {
23
- if (!isInputRecord(value)) return false;
24
- if (typeof value.tool_name !== "string" || value.tool_name.length === 0) return false;
25
- if (!isInputRecord(value.tool_input)) return false;
26
- for (const field of OPTIONAL_TEXT_FIELDS) {
27
- if (value[field] !== void 0 && typeof value[field] !== "string") return false;
28
- }
29
- return true;
30
- }
31
- function parseToolHookInput(value) {
32
- if (!isInputRecord(value)) return null;
33
- const input = { ...value, tool_input: value.tool_input === void 0 ? {} : value.tool_input };
34
- return isToolHookInput(input) ? input : null;
35
- }
36
-
37
- // src/admission.ts
38
- import { readFileSync } from "fs";
39
- import { homedir } from "os";
40
- import { join } from "path";
41
- var NO_RULES = { version: 1, disabled: [] };
42
- var SUPPORTED_VERSION = 1;
43
- var parseAdmissionRules = (raw) => {
44
- if (!raw) return NO_RULES;
45
- try {
46
- const parsed = JSON.parse(raw);
47
- if (parsed.version !== SUPPORTED_VERSION) return NO_RULES;
48
- if (!Array.isArray(parsed.disabled)) return NO_RULES;
49
- return {
50
- version: SUPPORTED_VERSION,
51
- disabled: parsed.disabled.filter((rule) => typeof rule === "string")
52
- };
53
- } catch {
54
- return NO_RULES;
55
- }
56
- };
57
- var admissionRulesFile = () => process.env.PUSHARY_ADMISSION_FILE?.trim() || join(homedir(), ".pushary", "admission-rules.json");
58
- var readAdmissionRules = () => {
59
- try {
60
- return parseAdmissionRules(readFileSync(admissionRulesFile(), "utf-8"));
61
- } catch {
62
- return NO_RULES;
63
- }
64
- };
65
- var matches = (rule, source, event) => {
66
- const colon = rule.indexOf(":");
67
- if (colon <= 0 || colon === rule.length - 1) return false;
68
- const ruleSource = rule.slice(0, colon);
69
- const ruleEvent = rule.slice(colon + 1);
70
- return (ruleSource === "*" || ruleSource === source) && (ruleEvent === "*" || ruleEvent === event);
71
- };
72
- var isAdmitted = (rules, source, event) => !rules.disabled.some((rule) => matches(rule, source, event));
73
- var UNREADABLE = { kind: "unreadable" };
74
- var UNKNOWN_AGENT = { kind: "unknown_agent" };
75
- var readHookInputOutcome = async (source, fallbackEvent = "", stdin = process.stdin, parseInput) => {
76
- if (source === null) {
77
- writeDegraded("hook", {
78
- reason: "unknown_agent",
79
- fallback: "stood aside, so nothing is gated or reported for this call",
80
- event: fallbackEvent
81
- });
82
- return UNKNOWN_AGENT;
83
- }
84
- let raw = "";
85
- for await (const chunk of stdin) raw += chunk;
86
- if (!raw.trim()) return UNREADABLE;
87
- let parsed;
88
- try {
89
- parsed = JSON.parse(raw);
90
- } catch {
91
- return UNREADABLE;
92
- }
93
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return UNREADABLE;
94
- if (source !== "grok" && process.env.GROK_SESSION_ID && isGrokHookPayload(parsed)) return UNREADABLE;
95
- const shaped = inClaudeShape(source, namedEvent(process.argv) ?? fallbackEvent, parsed);
96
- if (source === "grok" && isGrokSessionEndStop(shaped.hook_event_name, shaped.reason)) return UNREADABLE;
97
- const input = parseInput ? parseInput(shaped) : shaped;
98
- if (input === null) return UNREADABLE;
99
- const event = eventNameOf(input) ?? fallbackEvent;
100
- if (!isAdmitted(readAdmissionRules(), source, event)) return { kind: "not_admitted", input };
101
- if (stdin === process.stdin) registerTranscript(source, input);
102
- return { kind: "admitted", input };
103
- };
104
- var admittedInput = (read) => read.kind === "admitted" ? read.input : null;
105
- var readHookInput = async (source, fallbackEvent = "", stdin = process.stdin, parseInput) => admittedInput(await readHookInputOutcome(source, fallbackEvent, stdin, parseInput));
106
- var inClaudeShape = (source, event, parsed) => {
107
- const profile = hookCompatibleProfileBySource(source);
108
- return profile ? claudeShapedHookInput(profile.payload, event, parsed) : parsed;
109
- };
110
- var eventNameOf = (input) => {
111
- if (!("hook_event_name" in input)) return void 0;
112
- const name = input.hook_event_name;
113
- return typeof name === "string" && name.length > 0 ? name : void 0;
114
- };
115
- function readToolHookInput(source, event, stdin = process.stdin) {
116
- return readHookInput(source, event, stdin, parseToolHookInput);
117
- }
118
- function readToolHookCall(source, event, stdin = process.stdin) {
119
- return readHookInputOutcome(source, event, stdin, parseToolHookInput);
120
- }
121
-
122
- export {
123
- readHookInput,
124
- readToolHookInput,
125
- readToolHookCall
126
- };
@@ -1,10 +0,0 @@
1
- import {
2
- exitOnHelpFlag
3
- } from "./chunk-K4MBKXAE.js";
4
- import "./chunk-KZERVKTD.js";
5
- import "./chunk-ERK24P76.js";
6
- import "./chunk-QTOLNRET.js";
7
- import "./chunk-AXJLJJ3M.js";
8
- export {
9
- exitOnHelpFlag
10
- };