@pushary/agent-hooks 0.85.1 → 0.85.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 (55) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/bin/pushary-bell-hook.js +4 -4
  3. package/dist/bin/pushary-bell.js +5 -5
  4. package/dist/bin/pushary-claude.js +7 -7
  5. package/dist/bin/pushary-clean.js +5 -5
  6. package/dist/bin/pushary-codex-bridge.js +5 -5
  7. package/dist/bin/pushary-codex-hook.js +4 -4
  8. package/dist/bin/pushary-codex.js +3 -3
  9. package/dist/bin/pushary-connect.js +6 -6
  10. package/dist/bin/pushary-daemon.js +4 -4
  11. package/dist/bin/pushary-disconnect.js +4 -4
  12. package/dist/bin/pushary-doctor.js +11 -11
  13. package/dist/bin/pushary-gemini-bridge.js +5 -5
  14. package/dist/bin/pushary-gemini-hook.js +12 -7
  15. package/dist/bin/pushary-hook.js +6 -6
  16. package/dist/bin/pushary-login.js +4 -4
  17. package/dist/bin/pushary-logout.js +4 -4
  18. package/dist/bin/pushary-mode.js +3 -3
  19. package/dist/bin/pushary-notification-hook.js +3 -3
  20. package/dist/bin/pushary-permission-denied-hook.js +6 -6
  21. package/dist/bin/pushary-permission-hook.js +6 -6
  22. package/dist/bin/pushary-post-hook.js +3 -3
  23. package/dist/bin/pushary-prompt-hook.js +3 -3
  24. package/dist/bin/pushary-session-end-hook.js +3 -3
  25. package/dist/bin/pushary-session-start-hook.js +3 -3
  26. package/dist/bin/pushary-setup.js +13 -13
  27. package/dist/bin/pushary-stats.js +2 -2
  28. package/dist/bin/pushary-status.js +5 -5
  29. package/dist/bin/pushary-stop-hook.js +3 -3
  30. package/dist/bin/pushary-stopfailure-hook.js +3 -3
  31. package/dist/bin/pushary-upgrade.js +5 -5
  32. package/dist/bin/pushary-wait.js +3 -3
  33. package/dist/{chunk-IGV4KL7B.js → chunk-4U2YRHNF.js} +1 -1
  34. package/dist/{chunk-XLM6COJA.js → chunk-4YMWLMAP.js} +1 -1
  35. package/dist/{chunk-ES3FAX5X.js → chunk-CWV4CMB6.js} +1 -1
  36. package/dist/{chunk-Y7BALRVB.js → chunk-DPDUB4XF.js} +10 -31
  37. package/dist/{chunk-KTKIZEFT.js → chunk-GM74DUMS.js} +1 -1
  38. package/dist/{chunk-OZKRF7MS.js → chunk-GY3I353G.js} +1 -1
  39. package/dist/{chunk-XIR6N66V.js → chunk-JBLRZGTT.js} +1 -1
  40. package/dist/{chunk-VKJUVPTJ.js → chunk-JT5NQQCE.js} +2 -2
  41. package/dist/{chunk-G3LXA2ZP.js → chunk-K337LIBD.js} +54 -1
  42. package/dist/{chunk-PHXEADSL.js → chunk-KJW6NKF7.js} +1 -1
  43. package/dist/{chunk-CIVG746V.js → chunk-KZIGJLOX.js} +1 -1
  44. package/dist/{chunk-BZKTCOZQ.js → chunk-LCA2EQTK.js} +1 -1
  45. package/dist/{chunk-QDKJTPAT.js → chunk-LSB6PFLN.js} +1 -1
  46. package/dist/{chunk-55656H4Q.js → chunk-LXWISFF3.js} +1 -1
  47. package/dist/{chunk-DNSIVHIA.js → chunk-NTIUQB3E.js} +1 -1
  48. package/dist/{chunk-VGADRFG6.js → chunk-PKUNB3SN.js} +1 -1
  49. package/dist/{chunk-EZPRY2ZY.js → chunk-Q4URN3E7.js} +1 -1
  50. package/dist/{chunk-JDQY47OW.js → chunk-T54OT7IY.js} +1 -1
  51. package/dist/{chunk-GM54KC62.js → chunk-XJDL3MUE.js} +1 -1
  52. package/dist/{chunk-LB6RSCLL.js → chunk-Y7E2MC3G.js} +12 -43
  53. package/dist/src/index.d.ts +3 -10
  54. package/dist/src/index.js +6 -6
  55. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-PHXEADSL.js";
3
+ } from "./chunk-KJW6NKF7.js";
4
4
  import {
5
5
  readJsonSafe
6
6
  } from "./chunk-6MTNS63X.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  describeKeyCheck,
3
3
  keyCheckFromResponse
4
- } from "./chunk-QDKJTPAT.js";
4
+ } from "./chunk-LSB6PFLN.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-G3LXA2ZP.js";
3
+ } from "./chunk-K337LIBD.js";
4
4
 
5
5
  // src/ledger.ts
6
6
  import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync } from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseVersion
3
- } from "./chunk-GM54KC62.js";
3
+ } from "./chunk-XJDL3MUE.js";
4
4
 
5
5
  // src/setup/agent-probe.ts
6
6
  import { execSync } from "child_process";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-2UMNXADU.js";
4
4
  import {
5
5
  redactSecrets
6
- } from "./chunk-G3LXA2ZP.js";
6
+ } from "./chunk-K337LIBD.js";
7
7
 
8
8
  // src/crypto.ts
9
9
  import nacl from "tweetnacl";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-HSGEEBBL.js";
4
4
  import {
5
5
  HOOK_BUDGETS
6
- } from "./chunk-G3LXA2ZP.js";
6
+ } from "./chunk-K337LIBD.js";
7
7
 
8
8
  // src/claude-config.ts
9
9
  import { join } from "path";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  PRETOOLUSE_HANDLED_TOOLS
3
- } from "./chunk-GM54KC62.js";
3
+ } from "./chunk-XJDL3MUE.js";
4
4
  import {
5
5
  isGatingMoment,
6
6
  recordKeylessMoment
7
- } from "./chunk-VGADRFG6.js";
7
+ } from "./chunk-PKUNB3SN.js";
8
8
  import {
9
9
  denyReasonFrom,
10
10
  isDeferAnswer
@@ -28,7 +28,7 @@ import {
28
28
  sendNotification,
29
29
  throttlePass,
30
30
  waitForAnswer
31
- } from "./chunk-Y7BALRVB.js";
31
+ } from "./chunk-DPDUB4XF.js";
32
32
  import {
33
33
  getMachineId
34
34
  } from "./chunk-RN3NOEJF.js";
@@ -38,12 +38,14 @@ import {
38
38
  } from "./chunk-2UMNXADU.js";
39
39
  import {
40
40
  buildDecisionEpisodeFeatures,
41
+ claudePermissionRequestOutput,
42
+ claudePreToolUseOutput,
41
43
  effectiveWaitSeconds,
42
44
  hookWaitClamped,
43
45
  hookWaitDeadline,
44
46
  parseAgentQuestionAnswers,
45
47
  resolveGate
46
- } from "./chunk-G3LXA2ZP.js";
48
+ } from "./chunk-K337LIBD.js";
47
49
 
48
50
  // src/decision-episode.ts
49
51
  var EPISODE_PATH = "/api/agent/decision-episode";
@@ -73,33 +75,10 @@ import { tmpdir } from "os";
73
75
  import { existsSync, writeFileSync } from "fs";
74
76
  var sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
75
77
  var START_MS = Date.now();
76
- var allow = () => ({
77
- hookSpecificOutput: {
78
- hookEventName: "PreToolUse",
79
- permissionDecision: "allow"
80
- }
81
- });
82
- var deny = (reason) => ({
83
- hookSpecificOutput: {
84
- hookEventName: "PreToolUse",
85
- permissionDecision: "deny",
86
- permissionDecisionReason: reason
87
- }
88
- });
89
- var allowWithInput = (updatedInput) => ({
90
- hookSpecificOutput: {
91
- hookEventName: "PreToolUse",
92
- permissionDecision: "allow",
93
- updatedInput
94
- }
95
- });
96
- var ask = (reason) => ({
97
- hookSpecificOutput: {
98
- hookEventName: "PreToolUse",
99
- permissionDecision: "ask",
100
- ...reason ? { permissionDecisionReason: reason } : {}
101
- }
102
- });
78
+ var allow = () => claudePreToolUseOutput("allow");
79
+ var deny = (reason) => claudePreToolUseOutput("deny", reason);
80
+ var allowWithInput = (updatedInput) => claudePreToolUseOutput("allow", void 0, updatedInput);
81
+ var ask = (reason) => claudePreToolUseOutput("ask", reason);
103
82
  var pollForAnswer = async (apiKey, correlationId, deadlineMs, pollInterval = 2e3) => {
104
83
  while (Date.now() < deadlineMs) {
105
84
  const remaining = Math.min(Math.max(deadlineMs - Date.now(), 1e3), 3e4);
@@ -534,18 +513,8 @@ var handlePreToolUse = async (input) => {
534
513
  return void 0;
535
514
  }
536
515
  };
537
- var permReqAllow = (updatedInput) => ({
538
- hookSpecificOutput: {
539
- hookEventName: "PermissionRequest",
540
- decision: { behavior: "allow", ...updatedInput ? { updatedInput } : {} }
541
- }
542
- });
543
- var permReqDeny = (message) => ({
544
- hookSpecificOutput: {
545
- hookEventName: "PermissionRequest",
546
- decision: { behavior: "deny", ...message ? { message } : {} }
547
- }
548
- });
516
+ var permReqAllow = (updatedInput) => claudePermissionRequestOutput("allow", void 0, updatedInput);
517
+ var permReqDeny = (message) => claudePermissionRequestOutput("deny", message);
549
518
  var toPermissionRequestOutput = (hookOutput) => {
550
519
  if (!hookOutput) return void 0;
551
520
  const d = hookOutput.hookSpecificOutput;
@@ -1,6 +1,6 @@
1
- import { ReceiptMeta } from '@pushary/hook-mapping';
2
- import { PolicyConfig, ApprovalMode, ModeState, AutoResolveOrigin, AgentQuestion } from '@pushary/contracts';
1
+ import { ClaudePreToolUseOutput, PolicyConfig, ApprovalMode, ModeState, AutoResolveOrigin, AgentQuestion } from '@pushary/contracts';
3
2
  export { ApprovalMode, ModeState, PolicyConfig, ToolPolicy, resolvePolicy } from '@pushary/contracts';
3
+ import { ReceiptMeta } from '@pushary/hook-mapping';
4
4
 
5
5
  interface ToolInput {
6
6
  tool_name: string;
@@ -11,14 +11,7 @@ interface ToolInput {
11
11
  tool_use_id?: string;
12
12
  permission_mode?: string;
13
13
  }
14
- interface HookOutput {
15
- hookSpecificOutput: {
16
- hookEventName: 'PreToolUse';
17
- permissionDecision: 'allow' | 'deny' | 'ask';
18
- permissionDecisionReason?: string;
19
- updatedInput?: Record<string, unknown>;
20
- };
21
- }
14
+ type HookOutput = ClaudePreToolUseOutput;
22
15
  declare const handlePreToolUse: (input: ToolInput) => Promise<HookOutput | undefined>;
23
16
 
24
17
  declare const getPolicy: (apiKey: string, expectedVersion?: string | null, agent?: string, repoAware?: boolean, sessionId?: string) => Promise<PolicyConfig>;
package/dist/src/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  handlePreToolUse
3
- } from "../chunk-LB6RSCLL.js";
4
- import "../chunk-GM54KC62.js";
3
+ } from "../chunk-Y7E2MC3G.js";
4
+ import "../chunk-XJDL3MUE.js";
5
5
  import "../chunk-HSGEEBBL.js";
6
6
  import "../chunk-VT4IVERX.js";
7
- import "../chunk-VGADRFG6.js";
7
+ import "../chunk-PKUNB3SN.js";
8
8
  import "../chunk-YHG74UFF.js";
9
9
  import {
10
10
  askUser,
@@ -17,11 +17,11 @@ import {
17
17
  handleStop,
18
18
  reportEvent,
19
19
  waitForAnswer
20
- } from "../chunk-Y7BALRVB.js";
20
+ } from "../chunk-DPDUB4XF.js";
21
21
  import "../chunk-RN3NOEJF.js";
22
22
  import "../chunk-BSZYIAZL.js";
23
23
  import "../chunk-SAF6HGAA.js";
24
- import "../chunk-ES3FAX5X.js";
24
+ import "../chunk-CWV4CMB6.js";
25
25
  import "../chunk-7QLSKOSU.js";
26
26
  import "../chunk-KZERVKTD.js";
27
27
  import {
@@ -30,7 +30,7 @@ import {
30
30
  } from "../chunk-2UMNXADU.js";
31
31
  import {
32
32
  resolvePolicy
33
- } from "../chunk-G3LXA2ZP.js";
33
+ } from "../chunk-K337LIBD.js";
34
34
  export {
35
35
  askUser,
36
36
  cancelQuestion,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pushary/agent-hooks",
3
- "version": "0.85.1",
3
+ "version": "0.85.2",
4
4
  "description": "Permission hooks for AI coding agents: route tool approvals through Pushary push notifications",
5
5
  "keywords": [
6
6
  "pushary",