@pushary/agent-hooks 0.95.0 → 0.95.1

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 (74) hide show
  1. package/data/SKILL.md +31 -24
  2. package/data/cursor-plugin/.cursor-plugin/plugin.json +1 -1
  3. package/data/cursor-plugin/skills/pushary/SKILL.md +30 -23
  4. package/data/vscode-plugin/.claude-plugin/plugin.json +1 -1
  5. package/data/vscode-plugin/skills/pushary/SKILL.md +30 -23
  6. package/dist/bin/pushary-bell-hook.js +16 -16
  7. package/dist/bin/pushary-bell.js +5 -5
  8. package/dist/bin/pushary-claude.js +17 -17
  9. package/dist/bin/pushary-clean.js +13 -13
  10. package/dist/bin/pushary-codex-bridge.js +9 -9
  11. package/dist/bin/pushary-codex-hook.js +19 -19
  12. package/dist/bin/pushary-codex.js +7 -7
  13. package/dist/bin/pushary-connect.js +6 -6
  14. package/dist/bin/pushary-daemon.js +19 -19
  15. package/dist/bin/pushary-disconnect.js +6 -6
  16. package/dist/bin/pushary-doctor.js +18 -18
  17. package/dist/bin/pushary-elicitation-hook.js +15 -15
  18. package/dist/bin/pushary-gemini-bridge.js +9 -9
  19. package/dist/bin/pushary-gemini-hook.js +18 -18
  20. package/dist/bin/pushary-hook.js +20 -20
  21. package/dist/bin/pushary-login.js +7 -7
  22. package/dist/bin/pushary-logout.js +4 -4
  23. package/dist/bin/pushary-mode.js +3 -3
  24. package/dist/bin/pushary-notification-hook.js +17 -17
  25. package/dist/bin/pushary-opencode-hook.js +18 -18
  26. package/dist/bin/pushary-permission-denied-hook.js +20 -20
  27. package/dist/bin/pushary-permission-hook.js +20 -20
  28. package/dist/bin/pushary-post-hook.js +17 -17
  29. package/dist/bin/pushary-prompt-hook.js +17 -17
  30. package/dist/bin/pushary-session-end-hook.js +17 -17
  31. package/dist/bin/pushary-session-start-hook.js +20 -20
  32. package/dist/bin/pushary-setup.js +21 -21
  33. package/dist/bin/pushary-stats.js +2 -2
  34. package/dist/bin/pushary-status.js +8 -8
  35. package/dist/bin/pushary-stop-hook.js +17 -17
  36. package/dist/bin/pushary-stopfailure-hook.js +17 -17
  37. package/dist/bin/pushary-transcript-register.js +14 -14
  38. package/dist/bin/pushary-transcripts.js +4 -4
  39. package/dist/bin/pushary-upgrade.js +13 -13
  40. package/dist/bin/pushary-wait.js +3 -3
  41. package/dist/{chunk-Y6XXFXVB.js → chunk-3F4VV5TS.js} +1 -1
  42. package/dist/{chunk-GHCGSEPE.js → chunk-77U3ZVV6.js} +1 -1
  43. package/dist/{chunk-RH3TM7TO.js → chunk-7MGF5Q7G.js} +1 -1
  44. package/dist/{chunk-WY4ALDYN.js → chunk-AQ5OAYOH.js} +1 -1
  45. package/dist/{chunk-BMOFXRGS.js → chunk-BWNU4MX4.js} +3 -3
  46. package/dist/{chunk-OYNPLEXP.js → chunk-C2MV4G4A.js} +1 -1
  47. package/dist/{chunk-YGZXYEVY.js → chunk-CC625NRG.js} +6 -6
  48. package/dist/{chunk-ZTJF6ANY.js → chunk-CU5KI425.js} +2 -2
  49. package/dist/{chunk-5SJ54JJO.js → chunk-IFCS6LXB.js} +3 -3
  50. package/dist/{chunk-SFCGKE6U.js → chunk-IP63LMZM.js} +6 -6
  51. package/dist/{chunk-BSEAOCCQ.js → chunk-IZRI4M3C.js} +1 -1
  52. package/dist/{chunk-OXTRFRMD.js → chunk-J55K6YS4.js} +5 -5
  53. package/dist/{chunk-6BIMJIRG.js → chunk-JSASMV3H.js} +1 -1
  54. package/dist/{chunk-XY4GSZ3K.js → chunk-K7ZZGI2Y.js} +1 -1
  55. package/dist/{chunk-TDUTNYAQ.js → chunk-M64I4T7J.js} +1 -1
  56. package/dist/{chunk-LSXJH2HB.js → chunk-MF64S7WO.js} +1 -1
  57. package/dist/{chunk-UZFVNEEU.js → chunk-PDFVIRPB.js} +1 -1
  58. package/dist/{chunk-ROHFVGXM.js → chunk-R7NPGCSD.js} +1 -1
  59. package/dist/{chunk-QGA2ZB4I.js → chunk-RNH2AE52.js} +1 -1
  60. package/dist/{chunk-NVPYRDCT.js → chunk-SSQ5X6SA.js} +1 -1
  61. package/dist/{chunk-AYJ7NH5S.js → chunk-T23EGPRI.js} +1 -1
  62. package/dist/{chunk-ODL52O5V.js → chunk-T5B3LRYF.js} +1 -1
  63. package/dist/{chunk-Y3UGCQQC.js → chunk-TTO76NZJ.js} +1 -1
  64. package/dist/{chunk-Q5UFC2QK.js → chunk-UFGDCMUD.js} +1 -1
  65. package/dist/{chunk-2ORRI66J.js → chunk-UQSKCQBO.js} +1 -1
  66. package/dist/{chunk-4PE2SQVM.js → chunk-VLKEAYJ4.js} +1 -1
  67. package/dist/{chunk-FH3YLP5Z.js → chunk-WJZUTMMU.js} +3 -3
  68. package/dist/{chunk-6LQAGVG2.js → chunk-Y24D5ZWS.js} +7 -7
  69. package/dist/{chunk-MDQOBG5J.js → chunk-YPYPI6BG.js} +7 -6
  70. package/dist/{chunk-2WVDQVI5.js → chunk-ZOR5OJZJ.js} +1 -1
  71. package/dist/{chunk-GI5UQSG7.js → chunk-ZW3KAWTM.js} +3 -3
  72. package/dist/src/index.js +10 -10
  73. package/package.json +1 -1
  74. /package/dist/{chunk-Z6CP5ZZD.js → chunk-VOWZ5VOO.js} +0 -0
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  reapplyAllAgents
4
- } from "../chunk-SFCGKE6U.js";
5
- import "../chunk-LSXJH2HB.js";
4
+ } from "../chunk-IP63LMZM.js";
5
+ import "../chunk-MF64S7WO.js";
6
6
  import {
7
7
  waitForMachineReadiness
8
- } from "../chunk-QGA2ZB4I.js";
9
- import "../chunk-FH3YLP5Z.js";
8
+ } from "../chunk-RNH2AE52.js";
9
+ import "../chunk-WJZUTMMU.js";
10
10
  import {
11
11
  detectProviderLiveCapabilities,
12
12
  hasSpawnProvider,
13
13
  resolveControlPolicy
14
14
  } from "../chunk-3OXHYPZG.js";
15
- import "../chunk-5SJ54JJO.js";
15
+ import "../chunk-IFCS6LXB.js";
16
16
  import {
17
17
  daemonHasRemoteProof,
18
18
  daemonServiceManagerAvailable,
@@ -23,8 +23,8 @@ import {
23
23
  replaceDaemonService,
24
24
  stopDaemonService,
25
25
  waitForDaemonRemoteProof
26
- } from "../chunk-ZTJF6ANY.js";
27
- import "../chunk-BMOFXRGS.js";
26
+ } from "../chunk-CU5KI425.js";
27
+ import "../chunk-BWNU4MX4.js";
28
28
  import "../chunk-EZIEXHYM.js";
29
29
  import {
30
30
  needsShell
@@ -34,15 +34,15 @@ import {
34
34
  npmErrorMessage,
35
35
  resolveGlobalBinary
36
36
  } from "../chunk-L4ZCFMWW.js";
37
- import "../chunk-Y3UGCQQC.js";
38
- import "../chunk-NVPYRDCT.js";
37
+ import "../chunk-TTO76NZJ.js";
38
+ import "../chunk-SSQ5X6SA.js";
39
39
  import {
40
40
  claudeJson,
41
41
  codexConfigToml,
42
42
  cursorPluginDir,
43
43
  geminiSettings,
44
44
  vscodePluginDir
45
- } from "../chunk-Y6XXFXVB.js";
45
+ } from "../chunk-3F4VV5TS.js";
46
46
  import {
47
47
  exitOnHelpFlag
48
48
  } from "../chunk-BVBEURWJ.js";
@@ -52,15 +52,15 @@ import {
52
52
  } from "../chunk-DINDL2CF.js";
53
53
  import {
54
54
  readControlMode
55
- } from "../chunk-6BIMJIRG.js";
55
+ } from "../chunk-JSASMV3H.js";
56
56
  import "../chunk-BC3VCZ3E.js";
57
57
  import "../chunk-KZERVKTD.js";
58
- import "../chunk-ODL52O5V.js";
58
+ import "../chunk-T5B3LRYF.js";
59
59
  import "../chunk-4LL6LG5X.js";
60
60
  import {
61
61
  getApiKey
62
62
  } from "../chunk-2UMNXADU.js";
63
- import "../chunk-Z6CP5ZZD.js";
63
+ import "../chunk-VOWZ5VOO.js";
64
64
 
65
65
  // bin/pushary-upgrade.ts
66
66
  import { existsSync } from "fs";
@@ -4,8 +4,8 @@ import {
4
4
  } from "../chunk-IIENZE2J.js";
5
5
  import {
6
6
  exitOnFailedResponse
7
- } from "../chunk-WY4ALDYN.js";
8
- import "../chunk-UZFVNEEU.js";
7
+ } from "../chunk-AQ5OAYOH.js";
8
+ import "../chunk-PDFVIRPB.js";
9
9
  import {
10
10
  createIo
11
11
  } from "../chunk-5RUIFDTP.js";
@@ -28,7 +28,7 @@ import {
28
28
  getApiKey,
29
29
  getBaseUrl
30
30
  } from "../chunk-2UMNXADU.js";
31
- import "../chunk-Z6CP5ZZD.js";
31
+ import "../chunk-VOWZ5VOO.js";
32
32
 
33
33
  // bin/pushary-wait.ts
34
34
  exitOnHelpFlag("wait");
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HOOK_BUDGETS,
3
3
  HOOK_LOCATOR_BINARY
4
- } from "./chunk-Z6CP5ZZD.js";
4
+ } from "./chunk-VOWZ5VOO.js";
5
5
 
6
6
  // src/removal-scope.ts
7
7
  var namesAppLocator = (command) => command.includes(HOOK_LOCATOR_BINARY);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  HOOK_LOCATOR_BINARY
3
- } from "./chunk-Z6CP5ZZD.js";
3
+ } from "./chunk-VOWZ5VOO.js";
4
4
 
5
5
  // src/diagnostics/bridge.ts
6
6
  import { execFileSync } from "child_process";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readConfigFileKey
3
- } from "./chunk-6BIMJIRG.js";
3
+ } from "./chunk-JSASMV3H.js";
4
4
 
5
5
  // src/bell/fleet.ts
6
6
  import { closeSync, constants, futimesSync, lstatSync, mkdirSync, openSync, readdirSync, unlinkSync } from "fs";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  describeKeyCheck,
3
3
  keyCheckFromResponse
4
- } from "./chunk-UZFVNEEU.js";
4
+ } from "./chunk-PDFVIRPB.js";
5
5
  import {
6
6
  createIo
7
7
  } from "./chunk-5RUIFDTP.js";
@@ -3,14 +3,14 @@ import {
3
3
  POSTTOOLUSE_MIRRORED_TOOLS,
4
4
  PRETOOLUSE_GATED_TOOLS,
5
5
  PRETOOLUSE_PHONE_ANSWERED_TOOLS
6
- } from "./chunk-Y3UGCQQC.js";
6
+ } from "./chunk-TTO76NZJ.js";
7
7
  import {
8
8
  isProtectedByScope
9
- } from "./chunk-Y6XXFXVB.js";
9
+ } from "./chunk-3F4VV5TS.js";
10
10
  import {
11
11
  HOOK_BUDGETS,
12
12
  HOOK_LOCATOR_BINARY
13
- } from "./chunk-Z6CP5ZZD.js";
13
+ } from "./chunk-VOWZ5VOO.js";
14
14
 
15
15
  // src/gemini-config.ts
16
16
  var GEMINI_HOOK_BINARY = "pushary-gemini-hook";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  shouldDeferToNativeMode
3
- } from "./chunk-Z6CP5ZZD.js";
3
+ } from "./chunk-VOWZ5VOO.js";
4
4
 
5
5
  // src/native-defer.ts
6
6
  var nativeDeferOptions = () => {
@@ -6,16 +6,16 @@ import {
6
6
  } from "./chunk-YKLCWWEI.js";
7
7
  import {
8
8
  hookOwnerOf
9
- } from "./chunk-GI5UQSG7.js";
9
+ } from "./chunk-ZW3KAWTM.js";
10
10
  import {
11
11
  ensureDaemonRunning
12
- } from "./chunk-ZTJF6ANY.js";
12
+ } from "./chunk-CU5KI425.js";
13
13
  import {
14
14
  buildTranscriptRecords,
15
15
  decodePublicKey,
16
16
  generateSessionKey,
17
17
  wrapSessionKey
18
- } from "./chunk-Q5UFC2QK.js";
18
+ } from "./chunk-UFGDCMUD.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-2WVDQVI5.js";
26
+ } from "./chunk-ZOR5OJZJ.js";
27
27
  import {
28
28
  codexHome,
29
29
  pusharyDir
30
- } from "./chunk-Y6XXFXVB.js";
30
+ } from "./chunk-3F4VV5TS.js";
31
31
  import {
32
32
  readTranscriptPreference
33
- } from "./chunk-6BIMJIRG.js";
33
+ } from "./chunk-JSASMV3H.js";
34
34
  import {
35
35
  writeJsonAtomic
36
36
  } from "./chunk-4LL6LG5X.js";
@@ -7,10 +7,10 @@ import {
7
7
  } from "./chunk-L4ZCFMWW.js";
8
8
  import {
9
9
  getMachineId
10
- } from "./chunk-NVPYRDCT.js";
10
+ } from "./chunk-SSQ5X6SA.js";
11
11
  import {
12
12
  pusharyDir
13
- } from "./chunk-Y6XXFXVB.js";
13
+ } from "./chunk-3F4VV5TS.js";
14
14
  import {
15
15
  getPackageVersion
16
16
  } from "./chunk-DINDL2CF.js";
@@ -2,15 +2,15 @@ import {
2
2
  CLAUDE_HOOK_EVENTS,
3
3
  GEMINI_HOOK_EVENTS,
4
4
  hasGeminiHooks
5
- } from "./chunk-BMOFXRGS.js";
5
+ } from "./chunk-BWNU4MX4.js";
6
6
  import {
7
7
  CODEX_HOOK_EVENTS,
8
8
  hasCodexHooks
9
- } from "./chunk-Y6XXFXVB.js";
9
+ } from "./chunk-3F4VV5TS.js";
10
10
  import {
11
11
  CURSOR_GATE_EVENTS,
12
12
  HOOK_LOCATOR_BINARY
13
- } from "./chunk-Z6CP5ZZD.js";
13
+ } from "./chunk-VOWZ5VOO.js";
14
14
 
15
15
  // src/diagnostics/wiring.ts
16
16
  var record = (value) => value && typeof value === "object" && !Array.isArray(value) ? value : null;
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  detectClaudeVersion
3
- } from "./chunk-LSXJH2HB.js";
3
+ } from "./chunk-MF64S7WO.js";
4
4
  import {
5
5
  addClaudeMcpServer,
6
6
  addPusharyHooks,
7
7
  addPusharyToolPermissions
8
- } from "./chunk-FH3YLP5Z.js";
8
+ } from "./chunk-WJZUTMMU.js";
9
9
  import {
10
10
  claudeWired,
11
11
  codexWired,
12
12
  geminiWired
13
- } from "./chunk-5SJ54JJO.js";
13
+ } from "./chunk-IFCS6LXB.js";
14
14
  import {
15
15
  CLAUDE_HOOK_EVENTS,
16
16
  GEMINI_HOOK_BINARY,
@@ -21,7 +21,7 @@ import {
21
21
  needsReregistration,
22
22
  registrationSignatures,
23
23
  supportedClaudeEvents
24
- } from "./chunk-BMOFXRGS.js";
24
+ } from "./chunk-BWNU4MX4.js";
25
25
  import {
26
26
  guardBinary
27
27
  } from "./chunk-EZIEXHYM.js";
@@ -40,14 +40,14 @@ import {
40
40
  codexHooksJson,
41
41
  hasCodexHooks,
42
42
  vscodePluginMcp
43
- } from "./chunk-Y6XXFXVB.js";
43
+ } from "./chunk-3F4VV5TS.js";
44
44
  import {
45
45
  readJsonSafe,
46
46
  writeJsonAtomic
47
47
  } from "./chunk-4LL6LG5X.js";
48
48
  import {
49
49
  HOOK_LOCATOR_BINARY
50
- } from "./chunk-Z6CP5ZZD.js";
50
+ } from "./chunk-VOWZ5VOO.js";
51
51
 
52
52
  // src/reapply.ts
53
53
  import { join } from "path";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HOOK_BUDGETS,
3
3
  OPENCODE_APPROVAL_EVENT
4
- } from "./chunk-Z6CP5ZZD.js";
4
+ } from "./chunk-VOWZ5VOO.js";
5
5
 
6
6
  // src/opencode-plugin.ts
7
7
  var OPENCODE_PLUGIN_MARKER = "pushary-opencode-plugin w1";
@@ -34,20 +34,20 @@ import {
34
34
  summarizeStop,
35
35
  taskTitleFrom,
36
36
  toolResultErrorText
37
- } from "./chunk-4PE2SQVM.js";
37
+ } from "./chunk-VLKEAYJ4.js";
38
38
  import {
39
39
  NOTIFICATION_PUSH_TYPES,
40
40
  POSTTOOLUSE_MIRROR_ONLY_TOOLS
41
- } from "./chunk-Y3UGCQQC.js";
41
+ } from "./chunk-TTO76NZJ.js";
42
42
  import {
43
43
  getMachineId
44
- } from "./chunk-NVPYRDCT.js";
44
+ } from "./chunk-SSQ5X6SA.js";
45
45
  import {
46
46
  withRetry
47
47
  } from "./chunk-EYRGBYZG.js";
48
48
  import {
49
49
  reportedInstallSource
50
- } from "./chunk-ODL52O5V.js";
50
+ } from "./chunk-T5B3LRYF.js";
51
51
  import {
52
52
  getApiKey,
53
53
  getBaseUrl
@@ -63,7 +63,7 @@ import {
63
63
  pendingCommandEvents,
64
64
  resolveAutoResolveOrigin,
65
65
  resolvePolicy
66
- } from "./chunk-Z6CP5ZZD.js";
66
+ } from "./chunk-VOWZ5VOO.js";
67
67
 
68
68
  // src/policy.ts
69
69
  import { createHash } from "crypto";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-BC3VCZ3E.js";
4
4
  import {
5
5
  resolveInstallSourceFor
6
- } from "./chunk-ODL52O5V.js";
6
+ } from "./chunk-T5B3LRYF.js";
7
7
  import {
8
8
  backupFile,
9
9
  readJsonSafe,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  registerTranscript
3
- } from "./chunk-YGZXYEVY.js";
3
+ } from "./chunk-CC625NRG.js";
4
4
 
5
5
  // src/admission.ts
6
6
  import { readFileSync } from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-Y6XXFXVB.js";
3
+ } from "./chunk-3F4VV5TS.js";
4
4
  import {
5
5
  readJsonSafe
6
6
  } from "./chunk-4LL6LG5X.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  parseVersion
3
- } from "./chunk-BMOFXRGS.js";
3
+ } from "./chunk-BWNU4MX4.js";
4
4
 
5
5
  // src/setup/agent-probe.ts
6
6
  import { execSync } from "child_process";
@@ -13,7 +13,7 @@ import {
13
13
  import {
14
14
  isValidApiKey,
15
15
  normalizeKeyScope
16
- } from "./chunk-Z6CP5ZZD.js";
16
+ } from "./chunk-VOWZ5VOO.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;
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-EYRGBYZG.js";
16
16
  import {
17
17
  reportedInstallSource
18
- } from "./chunk-ODL52O5V.js";
18
+ } from "./chunk-T5B3LRYF.js";
19
19
 
20
20
  // src/reach.ts
21
21
  var reachVerdict = (channels) => {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getMachineId
3
- } from "./chunk-NVPYRDCT.js";
3
+ } from "./chunk-SSQ5X6SA.js";
4
4
  import {
5
5
  getPackageVersion
6
6
  } from "./chunk-DINDL2CF.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  pusharyDir
3
- } from "./chunk-Y6XXFXVB.js";
3
+ } from "./chunk-3F4VV5TS.js";
4
4
  import {
5
5
  writeFileAtomic
6
6
  } from "./chunk-4LL6LG5X.js";
@@ -3,7 +3,7 @@ import {
3
3
  decodePublicKey,
4
4
  generateSessionKey,
5
5
  wrapSessionKey
6
- } from "./chunk-Q5UFC2QK.js";
6
+ } from "./chunk-UFGDCMUD.js";
7
7
  import {
8
8
  fetchTranscriptRecipients,
9
9
  uploadTranscriptRecords
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-2UMNXADU.js";
4
4
  import {
5
5
  normalizeInstallSource
6
- } from "./chunk-Z6CP5ZZD.js";
6
+ } from "./chunk-VOWZ5VOO.js";
7
7
 
8
8
  // src/install-source.ts
9
9
  import { readFileSync } from "fs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ASKED_IN_EVERY_MODE_TOOLS
3
- } from "./chunk-Z6CP5ZZD.js";
3
+ } from "./chunk-VOWZ5VOO.js";
4
4
 
5
5
  // src/claude-tools.ts
6
6
  var PRETOOLUSE_GATED_TOOLS = [
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  redactSecrets
3
- } from "./chunk-Z6CP5ZZD.js";
3
+ } from "./chunk-VOWZ5VOO.js";
4
4
 
5
5
  // src/crypto.ts
6
6
  import nacl from "tweetnacl";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  isSafeReadOnlyCommand
3
- } from "./chunk-Z6CP5ZZD.js";
3
+ } from "./chunk-VOWZ5VOO.js";
4
4
 
5
5
  // src/ledger.ts
6
6
  import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, statSync } from "fs";
@@ -5,7 +5,7 @@ import {
5
5
  FILE_TARGET_TOOLS,
6
6
  redactSecrets,
7
7
  redactSecretsDeep
8
- } from "./chunk-Z6CP5ZZD.js";
8
+ } from "./chunk-VOWZ5VOO.js";
9
9
 
10
10
  // ../hook-mapping/src/describe.ts
11
11
  import { isAbsolute, relative, resolve } from "path";
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  CLAUDE_HOOK_EVENTS,
3
3
  supportedClaudeEvents
4
- } from "./chunk-BMOFXRGS.js";
4
+ } from "./chunk-BWNU4MX4.js";
5
5
  import {
6
6
  guardBinary
7
7
  } from "./chunk-EZIEXHYM.js";
8
8
  import {
9
9
  isProtectedByScope
10
- } from "./chunk-Y6XXFXVB.js";
10
+ } from "./chunk-3F4VV5TS.js";
11
11
  import {
12
12
  HOOK_LOCATOR_BINARY
13
- } from "./chunk-Z6CP5ZZD.js";
13
+ } from "./chunk-VOWZ5VOO.js";
14
14
 
15
15
  // src/claude-config.ts
16
16
  import { join } from "path";
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  defersToNativeMode
3
- } from "./chunk-OYNPLEXP.js";
3
+ } from "./chunk-C2MV4G4A.js";
4
4
  import {
5
5
  isGatingMoment,
6
6
  recordKeylessMoment
7
- } from "./chunk-2ORRI66J.js";
7
+ } from "./chunk-UQSKCQBO.js";
8
8
  import {
9
9
  denyReasonFrom,
10
10
  isDeferAnswer
@@ -19,7 +19,7 @@ import {
19
19
  reportEvent,
20
20
  settleQuestionsForToolUse,
21
21
  throttlePass
22
- } from "./chunk-OXTRFRMD.js";
22
+ } from "./chunk-J55K6YS4.js";
23
23
  import {
24
24
  DEFAULT_SESSION,
25
25
  askUser,
@@ -37,14 +37,14 @@ import {
37
37
  describeToolCall,
38
38
  permissionDeniedAction,
39
39
  scopePathFor
40
- } from "./chunk-4PE2SQVM.js";
40
+ } from "./chunk-VLKEAYJ4.js";
41
41
  import {
42
42
  PRETOOLUSE_HANDLED_TOOLS,
43
43
  PRETOOLUSE_PHONE_ANSWERED_TOOLS
44
- } from "./chunk-Y3UGCQQC.js";
44
+ } from "./chunk-TTO76NZJ.js";
45
45
  import {
46
46
  getMachineId
47
- } from "./chunk-NVPYRDCT.js";
47
+ } from "./chunk-SSQ5X6SA.js";
48
48
  import {
49
49
  getApiKey,
50
50
  getBaseUrl
@@ -61,7 +61,7 @@ import {
61
61
  parseAgentQuestions,
62
62
  resolveGate,
63
63
  stoppedOutput
64
- } from "./chunk-Z6CP5ZZD.js";
64
+ } from "./chunk-VOWZ5VOO.js";
65
65
 
66
66
  // src/decision-episode.ts
67
67
  var EPISODE_PATH = "/api/agent/decision-episode";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  openCodeConfigDirFrom
3
- } from "./chunk-BSEAOCCQ.js";
3
+ } from "./chunk-IZRI4M3C.js";
4
4
  import {
5
5
  codexHomeFrom
6
- } from "./chunk-Y6XXFXVB.js";
6
+ } from "./chunk-3F4VV5TS.js";
7
7
 
8
8
  // src/vscode-config.ts
9
9
  import { homedir } from "os";
@@ -262,12 +262,13 @@ var instructionBody = (label) => `## Pushary notifications and approvals
262
262
 
263
263
  You have Pushary MCP tools that reach the user on their phone. Use them proactively. Do not wait for the user to ask.
264
264
 
265
- - When you need the user to make a decision or answer a clarifying question, call \`ask_user\` instead of guessing or stalling. Use type "confirm" for yes/no, "select" for a fixed set of options, and "input" for free text. \`ask_user\` blocks until the user replies or it times out, so you do not need a separate wait step.
265
+ - When you need the user to make a decision or answer a clarifying question, call \`ask_user\` instead of guessing or stalling. Use type "confirm" for yes/no, "select" for a fixed set of options, and "input" for free text. Read \`answered\`, \`status\` and the returned handoff instead of assuming the tool blocked. Silence is not consent; choice/text answers do not authorize a separate action.
266
266
  - Ask once, on one channel. If you also have a built-in way to prompt the user, use that or \`ask_user\` for a given question, never both. \`ask_user\` is the one that reaches the user when they are away from this machine, so prefer it. Raising both strands the user in whichever prompt you are not waiting on.
267
- - Before any risky or irreversible step (deleting files, force pushing, spending money, sending external messages), call \`ask_user\` with type "confirm" and wait for approval.
268
- - Before starting a multi-step run that will change several files, call \`propose_scope\` once with the paths you expect to change, anything you promise not to touch, and what done means. The user agrees to the boundary in one tap. A ratified boundary NARROWS what may proceed without asking, it does not pre-approve work inside it, so an action that would normally need approval still needs it. Skip it for a single quick edit, and do not propose a new scope mid-run just to widen one: if you need to go outside the agreed scope, do the work and let the approval that follows widen it.
267
+ - Honor authorization already granted in this session. Ask before a risky or irreversible action outside that authorization, or when an enforced host policy requires it. Do not ask again for an already authorized step, and never bypass an enforced gate.
268
+ - Call \`propose_scope\` only for an unresolved or requested file boundary. A ratified scope narrows what may proceed; it does not bypass other approval rules. Do not add a plan approval merely because work spans several files, and do not propose a new scope mid-run just to widen it. Let the installed gate request any scope expansion before the edit executes.
269
269
  - When you are blocked, stuck, or hit an error you cannot resolve on your own, call \`send_notification\` so the user knows, and call \`ask_user\` if you need a decision to continue.
270
- - When a task that took several steps finishes, call \`send_notification\` so the user knows it is done. Always pass \`context\` with a \`type\` of "task_complete", "error" or "info": it is what tells Pushary this is a task update, so the user's own setting for where updates land can route it.
270
+ - When meaningful work finishes while the user is away, or they requested an alert, call \`send_notification\` so the user knows it is done. Skip trivial completions and duplicate reports to someone already reading. Always pass \`context\` with a \`type\` of "task_complete", "error" or "info": it is what tells Pushary this is a task update, so the user's own setting for where updates land can route it.
271
+ - Confirm notifications can offer lock-screen actions; arbitrary choices and text open the app. The Mac notch handles personal account questions, not Partner customer enrollment.
271
272
  - Use \`cancel_question\` to retract a pending question once it is no longer needed.
272
273
  - Respect the user's Pushary delivery mode: it decides where an approval is surfaced (phone, terminal, or awareness only), not whether it is required. In Terminal mode do not expect a phone answer; the approval waits in the terminal. If the Pushary hook already gated an action, a single approval is enough, do not ask again.
273
274
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readTranscriptPreference
3
- } from "./chunk-6BIMJIRG.js";
3
+ } from "./chunk-JSASMV3H.js";
4
4
 
5
5
  // src/transcript-setting.ts
6
6
  var transcriptEnvironmentPreference = () => {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  isBridgeLocator
3
- } from "./chunk-GHCGSEPE.js";
3
+ } from "./chunk-77U3ZVV6.js";
4
4
  import {
5
5
  pusharyHookExecutable
6
- } from "./chunk-5SJ54JJO.js";
6
+ } from "./chunk-IFCS6LXB.js";
7
7
  import {
8
8
  BELL_HOOK_BINARY
9
9
  } from "./chunk-DSTLA2TC.js";
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-7QLSKOSU.js";
16
16
  import {
17
17
  isValidApiKey
18
- } from "./chunk-Z6CP5ZZD.js";
18
+ } from "./chunk-VOWZ5VOO.js";
19
19
 
20
20
  // src/setup/options.ts
21
21
  var AGENT_CHOICES = ["claude_code", "codex", "gemini_cli", "hermes", "cursor", "vscode", "opencode", "custom"];
package/dist/src/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  handlePreToolUse
3
- } from "../chunk-6LQAGVG2.js";
4
- import "../chunk-OYNPLEXP.js";
5
- import "../chunk-2ORRI66J.js";
3
+ } from "../chunk-Y24D5ZWS.js";
4
+ import "../chunk-C2MV4G4A.js";
5
+ import "../chunk-UQSKCQBO.js";
6
6
  import "../chunk-YHG74UFF.js";
7
7
  import {
8
8
  fetchAccountPublicKey
@@ -15,21 +15,21 @@ import {
15
15
  handlePostToolUse,
16
16
  handleStop,
17
17
  reportEvent
18
- } from "../chunk-OXTRFRMD.js";
18
+ } from "../chunk-J55K6YS4.js";
19
19
  import {
20
20
  askUser,
21
21
  cancelQuestion,
22
22
  waitForAnswer
23
23
  } from "../chunk-RER3FRTD.js";
24
- import "../chunk-4PE2SQVM.js";
25
- import "../chunk-Y3UGCQQC.js";
26
- import "../chunk-NVPYRDCT.js";
27
- import "../chunk-Y6XXFXVB.js";
24
+ import "../chunk-VLKEAYJ4.js";
25
+ import "../chunk-TTO76NZJ.js";
26
+ import "../chunk-SSQ5X6SA.js";
27
+ import "../chunk-3F4VV5TS.js";
28
28
  import "../chunk-EYRGBYZG.js";
29
29
  import "../chunk-SAF6HGAA.js";
30
30
  import "../chunk-7QLSKOSU.js";
31
31
  import "../chunk-KZERVKTD.js";
32
- import "../chunk-ODL52O5V.js";
32
+ import "../chunk-T5B3LRYF.js";
33
33
  import "../chunk-4LL6LG5X.js";
34
34
  import {
35
35
  getApiKey,
@@ -37,7 +37,7 @@ import {
37
37
  } from "../chunk-2UMNXADU.js";
38
38
  import {
39
39
  resolvePolicy
40
- } from "../chunk-Z6CP5ZZD.js";
40
+ } from "../chunk-VOWZ5VOO.js";
41
41
  export {
42
42
  askUser,
43
43
  cancelQuestion,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pushary/agent-hooks",
3
- "version": "0.95.0",
3
+ "version": "0.95.1",
4
4
  "description": "Permission hooks for AI coding agents: route tool approvals through Pushary push notifications",
5
5
  "keywords": [
6
6
  "pushary",
File without changes