@pushary/agent-hooks 0.85.2 → 0.87.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/bin/pushary-bell-hook.js +4 -4
  3. package/dist/bin/pushary-bell.js +6 -6
  4. package/dist/bin/pushary-claude.js +12 -10
  5. package/dist/bin/pushary-clean.js +10 -9
  6. package/dist/bin/pushary-codex-bridge.js +5 -5
  7. package/dist/bin/pushary-codex-hook.js +13 -29
  8. package/dist/bin/pushary-codex.js +6 -4
  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 +25 -10
  12. package/dist/bin/pushary-doctor.js +21 -15
  13. package/dist/bin/pushary-elicitation-hook.d.ts +1 -0
  14. package/dist/bin/pushary-elicitation-hook.js +210 -0
  15. package/dist/bin/pushary-gemini-bridge.js +5 -5
  16. package/dist/bin/pushary-gemini-hook.js +10 -8
  17. package/dist/bin/pushary-hook.js +7 -8
  18. package/dist/bin/pushary-login.js +4 -4
  19. package/dist/bin/pushary-logout.js +4 -4
  20. package/dist/bin/pushary-mode.js +3 -3
  21. package/dist/bin/pushary-notification-hook.js +4 -3
  22. package/dist/bin/pushary-permission-denied-hook.js +7 -8
  23. package/dist/bin/pushary-permission-hook.js +7 -8
  24. package/dist/bin/pushary-post-hook.js +4 -3
  25. package/dist/bin/pushary-prompt-hook.js +4 -3
  26. package/dist/bin/pushary-session-end-hook.js +4 -3
  27. package/dist/bin/pushary-session-start-hook.js +4 -3
  28. package/dist/bin/pushary-setup.js +26 -21
  29. package/dist/bin/pushary-stats.js +2 -2
  30. package/dist/bin/pushary-status.js +5 -5
  31. package/dist/bin/pushary-stop-hook.js +4 -3
  32. package/dist/bin/pushary-stopfailure-hook.js +4 -3
  33. package/dist/bin/pushary-upgrade.js +13 -11
  34. package/dist/bin/pushary-wait.js +3 -3
  35. package/dist/{chunk-GM74DUMS.js → chunk-2T3GX7WG.js} +1 -1
  36. package/dist/{chunk-XJDL3MUE.js → chunk-5646VKR4.js} +18 -20
  37. package/dist/{chunk-PKUNB3SN.js → chunk-7MBDFNUC.js} +1 -1
  38. package/dist/{chunk-K337LIBD.js → chunk-7YJS2VTG.js} +36 -4
  39. package/dist/{chunk-LCA2EQTK.js → chunk-A3PFIWWN.js} +1 -1
  40. package/dist/{chunk-LSB6PFLN.js → chunk-A4I5JGCW.js} +1 -1
  41. package/dist/chunk-ATBKJNWS.js +19 -0
  42. package/dist/{chunk-KJW6NKF7.js → chunk-B3V2H6SA.js} +39 -15
  43. package/dist/{chunk-T54OT7IY.js → chunk-ECEUMWBH.js} +1 -1
  44. package/dist/{chunk-Q4URN3E7.js → chunk-HAUTLCMA.js} +1 -1
  45. package/dist/{chunk-Y7E2MC3G.js → chunk-HJ44HIUW.js} +60 -31
  46. package/dist/{chunk-4U2YRHNF.js → chunk-IWL5LWIE.js} +2 -2
  47. package/dist/chunk-J3YDT4HM.js +128 -0
  48. package/dist/{chunk-NTIUQB3E.js → chunk-JAICP7BA.js} +1 -1
  49. package/dist/{chunk-HSGEEBBL.js → chunk-M7RYIZX6.js} +3 -3
  50. package/dist/{chunk-KZIGJLOX.js → chunk-OT4YD54Q.js} +1 -1
  51. package/dist/{chunk-LXWISFF3.js → chunk-QBWYNVKY.js} +1 -1
  52. package/dist/{chunk-4YMWLMAP.js → chunk-SJVLFIYP.js} +1 -1
  53. package/dist/{chunk-DPDUB4XF.js → chunk-V2XPF77V.js} +104 -163
  54. package/dist/{chunk-JBLRZGTT.js → chunk-WLLBFDVY.js} +1 -1
  55. package/dist/{chunk-JT5NQQCE.js → chunk-XW5CHAQX.js} +2 -2
  56. package/dist/{chunk-CWV4CMB6.js → chunk-Y3UTTFTZ.js} +1 -1
  57. package/dist/{chunk-GY3I353G.js → chunk-ZZE6FN7T.js} +7 -3
  58. package/dist/src/index.d.ts +2 -2
  59. package/dist/src/index.js +11 -11
  60. package/package.json +3 -1
@@ -0,0 +1,210 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ readHookInput
4
+ } from "../chunk-6CUUA7HO.js";
5
+ import {
6
+ isDeferAnswer
7
+ } from "../chunk-YHG74UFF.js";
8
+ import {
9
+ DEFAULT_SESSION,
10
+ askUser,
11
+ cancelQuestion,
12
+ pollForAnswer,
13
+ savePendingQuestion
14
+ } from "../chunk-J3YDT4HM.js";
15
+ import {
16
+ getMachineId
17
+ } from "../chunk-RN3NOEJF.js";
18
+ import "../chunk-BSZYIAZL.js";
19
+ import "../chunk-SAF6HGAA.js";
20
+ import "../chunk-7QLSKOSU.js";
21
+ import "../chunk-KZERVKTD.js";
22
+ import {
23
+ getApiKey
24
+ } from "../chunk-2UMNXADU.js";
25
+ import {
26
+ effectiveWaitSeconds,
27
+ hookWaitDeadline,
28
+ parseAgentQuestionAnswers,
29
+ renderElicitationOutput
30
+ } from "../chunk-7YJS2VTG.js";
31
+
32
+ // bin/pushary-elicitation-hook.ts
33
+ import { basename } from "path";
34
+
35
+ // src/elicitation.ts
36
+ var ANSWERABLE_MODE = "form";
37
+ var MIN_OPTIONS = 2;
38
+ var MAX_MULTI_QUESTIONS = 4;
39
+ var MAX_MULTI_OPTIONS = 4;
40
+ var asRecord = (value) => value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
41
+ var labelFor = (name, property) => typeof property.title === "string" && property.title.trim() ? property.title.trim() : name;
42
+ var stringEnum = (property) => {
43
+ if (!Array.isArray(property.enum)) return null;
44
+ const members = property.enum.filter((member) => typeof member === "string");
45
+ return members.length === property.enum.length && members.length >= MIN_OPTIONS ? members : null;
46
+ };
47
+ var readElicitationFields = (schema) => {
48
+ const record = asRecord(schema);
49
+ const properties = asRecord(record?.properties);
50
+ if (!properties) return null;
51
+ const entries = Object.entries(properties);
52
+ if (entries.length === 0) return null;
53
+ const fields = [];
54
+ for (const [name, raw] of entries) {
55
+ const property = asRecord(raw);
56
+ if (!property) return null;
57
+ const label = labelFor(name, property);
58
+ if ("enum" in property) {
59
+ const options = stringEnum(property);
60
+ if (!options) return null;
61
+ fields.push({ kind: "choice", name, label, options });
62
+ continue;
63
+ }
64
+ switch (property.type) {
65
+ case "string":
66
+ fields.push({ kind: "text", name, label });
67
+ break;
68
+ case "number":
69
+ fields.push({ kind: "number", name, label, integer: false });
70
+ break;
71
+ case "integer":
72
+ fields.push({ kind: "number", name, label, integer: true });
73
+ break;
74
+ case "boolean":
75
+ fields.push({ kind: "boolean", name, label });
76
+ break;
77
+ // An enum with one member, a nested object, an array, an absent type: all
78
+ // shapes whose value we would be inventing rather than collecting.
79
+ default:
80
+ return null;
81
+ }
82
+ }
83
+ return fields;
84
+ };
85
+ var questionText = (message, field, alone) => alone ? message : `${message} \u2014 ${field.label}`;
86
+ var planElicitationAsk = (message, fields) => {
87
+ if (fields.length === 1) {
88
+ const field = fields[0];
89
+ const question = questionText(message, field, true);
90
+ switch (field.kind) {
91
+ case "choice":
92
+ return { kind: "select", field, question, options: field.options };
93
+ case "boolean":
94
+ return { kind: "confirm", field, question };
95
+ case "text":
96
+ case "number":
97
+ return { kind: "input", field, question };
98
+ }
99
+ }
100
+ if (fields.length > MAX_MULTI_QUESTIONS) return null;
101
+ if (!fields.every((field) => field.kind === "choice" && field.options.length <= MAX_MULTI_OPTIONS)) return null;
102
+ const questions = fields.map((field) => ({
103
+ question: questionText(message, field, false),
104
+ header: field.label.slice(0, 12),
105
+ multiSelect: false,
106
+ options: field.options.map((label) => ({ label }))
107
+ }));
108
+ return new Set(questions.map((question) => question.question)).size === questions.length ? { kind: "questions", fields, questions } : null;
109
+ };
110
+ var CONFIRMED = /* @__PURE__ */ new Set(["yes", "true", "approve", "approved", "allow"]);
111
+ var REFUSED = /* @__PURE__ */ new Set(["no", "false", "deny", "denied", "reject"]);
112
+ var numberFrom = (raw, integer) => {
113
+ const trimmed = raw.trim();
114
+ if (!/^-?\d+(\.\d+)?$/.test(trimmed)) return null;
115
+ const value = Number(trimmed);
116
+ if (!Number.isFinite(value)) return null;
117
+ return integer && !Number.isInteger(value) ? null : value;
118
+ };
119
+ var elicitationContent = (ask, answer) => {
120
+ const value = answer.trim();
121
+ if (!value) return null;
122
+ if (ask.kind === "input") {
123
+ if (ask.field.kind === "number") {
124
+ const parsed = numberFrom(value, ask.field.integer);
125
+ return parsed === null ? null : { [ask.field.name]: parsed };
126
+ }
127
+ return { [ask.field.name]: value };
128
+ }
129
+ if (ask.kind === "confirm") {
130
+ const lowered = value.toLowerCase();
131
+ if (CONFIRMED.has(lowered)) return { [ask.field.name]: true };
132
+ if (REFUSED.has(lowered)) return { [ask.field.name]: false };
133
+ return null;
134
+ }
135
+ if (ask.kind === "select") {
136
+ return ask.options.includes(value) ? { [ask.field.name]: value } : null;
137
+ }
138
+ return null;
139
+ };
140
+ var elicitationContentFromAnswers = (ask, answers) => {
141
+ const content = {};
142
+ for (const [index, field] of ask.fields.entries()) {
143
+ if (field.kind !== "choice") return null;
144
+ const chosen = answers[ask.questions[index].question];
145
+ if (typeof chosen !== "string" || !field.options.includes(chosen)) return null;
146
+ content[field.name] = chosen;
147
+ }
148
+ return content;
149
+ };
150
+
151
+ // bin/pushary-elicitation-hook.ts
152
+ var START_MS = Date.now();
153
+ var answered = (ask, answer) => {
154
+ if (!answer.answered || isDeferAnswer(answer.value)) return null;
155
+ if (ask.kind === "questions") {
156
+ const values = answer.value ? parseAgentQuestionAnswers([...ask.questions], answer.value) : null;
157
+ return values ? elicitationContentFromAnswers(ask, values) : null;
158
+ }
159
+ return answer.value ? elicitationContent(ask, answer.value) : null;
160
+ };
161
+ var main = async () => {
162
+ const input = await readHookInput("claude", "Elicitation");
163
+ if (!input || input.hook_event_name !== "Elicitation") return;
164
+ if (input.mode !== ANSWERABLE_MODE) return;
165
+ const message = (input.message ?? "").trim();
166
+ if (!message) return;
167
+ const fields = readElicitationFields(input.requested_schema);
168
+ if (!fields) return;
169
+ const ask = planElicitationAsk(message, fields);
170
+ if (!ask) return;
171
+ const apiKey = getApiKey();
172
+ if (!apiKey) return;
173
+ const project = basename(input.cwd ?? process.cwd());
174
+ const deadline = hookWaitDeadline(START_MS, effectiveWaitSeconds("wait", 0, "claude"), "claude", Date.now());
175
+ let created;
176
+ try {
177
+ created = await askUser(apiKey, {
178
+ question: ask.kind === "questions" ? ask.questions[0].question : ask.question,
179
+ type: ask.kind === "questions" ? "select" : ask.kind,
180
+ ...ask.kind === "select" ? { options: [...ask.options] } : {},
181
+ ...ask.kind === "questions" ? { options: ask.questions[0].options.map((option) => option.label), questions: [...ask.questions] } : {},
182
+ context: `${input.mcp_server_name ?? "An MCP server"} is asking for input`,
183
+ agentName: `Claude Code - ${project}`,
184
+ sessionId: input.session_id,
185
+ machineId: getMachineId(),
186
+ toolName: "Elicitation",
187
+ toolTarget: input.mcp_server_name,
188
+ // The elicitation's own id, so a retried create is the same decision rather
189
+ // than a second question on the same lock screen.
190
+ toolUseId: input.elicitation_id
191
+ });
192
+ } catch {
193
+ return;
194
+ }
195
+ if (created.suppressed || created.noDevices) {
196
+ await cancelQuestion(apiKey, created.correlationId).catch(() => {
197
+ });
198
+ return;
199
+ }
200
+ const answer = await pollForAnswer(apiKey, created.correlationId, deadline);
201
+ const content = answered(ask, answer);
202
+ if (!content) {
203
+ savePendingQuestion(input.session_id || DEFAULT_SESSION, created.correlationId);
204
+ return;
205
+ }
206
+ const output = renderElicitationOutput("Elicitation", "accept", content);
207
+ if (output) process.stdout.write(output);
208
+ };
209
+ main().catch(() => {
210
+ });
@@ -5,19 +5,19 @@ import {
5
5
  postLiveSession,
6
6
  postLiveSessionUntilAccepted,
7
7
  startLiveSessionHeartbeat
8
- } from "../chunk-JBLRZGTT.js";
9
- import "../chunk-T54OT7IY.js";
8
+ } from "../chunk-WLLBFDVY.js";
9
+ import "../chunk-ECEUMWBH.js";
10
10
  import {
11
11
  startProcessOwnership,
12
12
  withSpawnProcessOwnership
13
- } from "../chunk-LXWISFF3.js";
13
+ } from "../chunk-QBWYNVKY.js";
14
14
  import {
15
15
  spawnClaude
16
16
  } from "../chunk-XHKBHWLX.js";
17
17
  import {
18
18
  resolveBinary
19
19
  } from "../chunk-VT4IVERX.js";
20
- import "../chunk-KJW6NKF7.js";
20
+ import "../chunk-B3V2H6SA.js";
21
21
  import {
22
22
  getMachineId
23
23
  } from "../chunk-RN3NOEJF.js";
@@ -26,7 +26,7 @@ import {
26
26
  getApiKey,
27
27
  getBaseUrl
28
28
  } from "../chunk-2UMNXADU.js";
29
- import "../chunk-K337LIBD.js";
29
+ import "../chunk-7YJS2VTG.js";
30
30
 
31
31
  // bin/pushary-gemini-bridge.ts
32
32
  import { existsSync } from "fs";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  isGatingMoment,
4
4
  recordKeylessMoment
5
- } from "../chunk-PKUNB3SN.js";
5
+ } from "../chunk-7MBDFNUC.js";
6
6
  import {
7
7
  readHookInput
8
8
  } from "../chunk-6CUUA7HO.js";
@@ -11,9 +11,6 @@ import {
11
11
  isDeferAnswer
12
12
  } from "../chunk-YHG74UFF.js";
13
13
  import {
14
- DEFAULT_SESSION,
15
- askUser,
16
- cancelQuestion,
17
14
  deriveActionBody,
18
15
  deriveBlocker,
19
16
  deriveToolTarget,
@@ -28,17 +25,22 @@ import {
28
25
  readLastUserPrompt,
29
26
  repoKeyFor,
30
27
  reportEvent,
28
+ scopePathFor
29
+ } from "../chunk-V2XPF77V.js";
30
+ import {
31
+ DEFAULT_SESSION,
32
+ askUser,
33
+ cancelQuestion,
31
34
  savePendingQuestion,
32
- scopePathFor,
33
35
  sendNotification,
34
36
  waitForAnswer
35
- } from "../chunk-DPDUB4XF.js";
37
+ } from "../chunk-J3YDT4HM.js";
36
38
  import {
37
39
  getMachineId
38
40
  } from "../chunk-RN3NOEJF.js";
39
41
  import "../chunk-BSZYIAZL.js";
40
42
  import "../chunk-SAF6HGAA.js";
41
- import "../chunk-CWV4CMB6.js";
43
+ import "../chunk-Y3UTTFTZ.js";
42
44
  import "../chunk-7QLSKOSU.js";
43
45
  import "../chunk-KZERVKTD.js";
44
46
  import {
@@ -52,7 +54,7 @@ import {
52
54
  hookWaitClamped,
53
55
  hookWaitDeadline,
54
56
  resolveGate
55
- } from "../chunk-K337LIBD.js";
57
+ } from "../chunk-7YJS2VTG.js";
56
58
 
57
59
  // bin/pushary-gemini-hook.ts
58
60
  import { basename } from "path";
@@ -1,16 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePreToolUse
4
- } from "../chunk-Y7E2MC3G.js";
5
- import "../chunk-XJDL3MUE.js";
6
- import "../chunk-HSGEEBBL.js";
7
- import "../chunk-VT4IVERX.js";
8
- import "../chunk-PKUNB3SN.js";
4
+ } from "../chunk-HJ44HIUW.js";
5
+ import "../chunk-ATBKJNWS.js";
6
+ import "../chunk-7MBDFNUC.js";
9
7
  import {
10
8
  readHookInput
11
9
  } from "../chunk-6CUUA7HO.js";
12
10
  import "../chunk-YHG74UFF.js";
13
- import "../chunk-DPDUB4XF.js";
11
+ import "../chunk-V2XPF77V.js";
12
+ import "../chunk-J3YDT4HM.js";
14
13
  import "../chunk-RN3NOEJF.js";
15
14
  import {
16
15
  exitOnHelpFlag
@@ -19,11 +18,11 @@ import "../chunk-GOEXZ5QJ.js";
19
18
  import "../chunk-DINDL2CF.js";
20
19
  import "../chunk-BSZYIAZL.js";
21
20
  import "../chunk-SAF6HGAA.js";
22
- import "../chunk-CWV4CMB6.js";
21
+ import "../chunk-Y3UTTFTZ.js";
23
22
  import "../chunk-7QLSKOSU.js";
24
23
  import "../chunk-KZERVKTD.js";
25
24
  import "../chunk-2UMNXADU.js";
26
- import "../chunk-K337LIBD.js";
25
+ import "../chunk-7YJS2VTG.js";
27
26
 
28
27
  // bin/pushary-hook.ts
29
28
  exitOnHelpFlag("hook");
@@ -6,14 +6,14 @@ import "../chunk-3EGEA4KH.js";
6
6
  import {
7
7
  checkApiKey,
8
8
  describeKeyCheck
9
- } from "../chunk-LSB6PFLN.js";
9
+ } from "../chunk-A4I5JGCW.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-KZIGJLOX.js";
16
+ } from "../chunk-OT4YD54Q.js";
17
17
  import {
18
18
  parseFlags
19
19
  } from "../chunk-GMXKITVA.js";
@@ -27,7 +27,7 @@ import {
27
27
  } from "../chunk-DINDL2CF.js";
28
28
  import "../chunk-6MTNS63X.js";
29
29
  import "../chunk-SAF6HGAA.js";
30
- import "../chunk-CWV4CMB6.js";
30
+ import "../chunk-Y3UTTFTZ.js";
31
31
  import {
32
32
  UsageError
33
33
  } from "../chunk-7QLSKOSU.js";
@@ -37,7 +37,7 @@ import {
37
37
  import "../chunk-2UMNXADU.js";
38
38
  import {
39
39
  isValidApiKey
40
- } from "../chunk-K337LIBD.js";
40
+ } from "../chunk-7YJS2VTG.js";
41
41
 
42
42
  // bin/pushary-login.ts
43
43
  exitOnHelpFlag("login");
@@ -4,14 +4,14 @@ import {
4
4
  codexConfigToml,
5
5
  cursorUserMcp,
6
6
  geminiSettings
7
- } from "../chunk-KJW6NKF7.js";
7
+ } from "../chunk-B3V2H6SA.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-KZIGJLOX.js";
14
+ } from "../chunk-OT4YD54Q.js";
15
15
  import {
16
16
  parseFlags
17
17
  } from "../chunk-GMXKITVA.js";
@@ -22,7 +22,7 @@ import "../chunk-GOEXZ5QJ.js";
22
22
  import "../chunk-BC3VCZ3E.js";
23
23
  import "../chunk-DINDL2CF.js";
24
24
  import "../chunk-6MTNS63X.js";
25
- import "../chunk-CWV4CMB6.js";
25
+ import "../chunk-Y3UTTFTZ.js";
26
26
  import {
27
27
  UsageError
28
28
  } from "../chunk-7QLSKOSU.js";
@@ -32,7 +32,7 @@ import {
32
32
  import {
33
33
  getBaseUrl
34
34
  } from "../chunk-2UMNXADU.js";
35
- import "../chunk-K337LIBD.js";
35
+ import "../chunk-7YJS2VTG.js";
36
36
 
37
37
  // bin/pushary-logout.ts
38
38
  import { existsSync } from "fs";
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  exitOnFailedResponse
4
- } from "../chunk-NTIUQB3E.js";
5
- import "../chunk-LSB6PFLN.js";
4
+ } from "../chunk-JAICP7BA.js";
5
+ import "../chunk-A4I5JGCW.js";
6
6
  import {
7
7
  createIo
8
8
  } from "../chunk-5RUIFDTP.js";
@@ -25,7 +25,7 @@ import {
25
25
  getApiKey,
26
26
  getBaseUrl
27
27
  } from "../chunk-2UMNXADU.js";
28
- import "../chunk-K337LIBD.js";
28
+ import "../chunk-7YJS2VTG.js";
29
29
 
30
30
  // bin/pushary-mode.ts
31
31
  exitOnHelpFlag("mode");
@@ -4,15 +4,16 @@ import {
4
4
  } from "../chunk-6CUUA7HO.js";
5
5
  import {
6
6
  handleNotification
7
- } from "../chunk-DPDUB4XF.js";
7
+ } from "../chunk-V2XPF77V.js";
8
+ import "../chunk-J3YDT4HM.js";
8
9
  import "../chunk-RN3NOEJF.js";
9
10
  import "../chunk-BSZYIAZL.js";
10
11
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-CWV4CMB6.js";
12
+ import "../chunk-Y3UTTFTZ.js";
12
13
  import "../chunk-7QLSKOSU.js";
13
14
  import "../chunk-KZERVKTD.js";
14
15
  import "../chunk-2UMNXADU.js";
15
- import "../chunk-K337LIBD.js";
16
+ import "../chunk-7YJS2VTG.js";
16
17
 
17
18
  // bin/pushary-notification-hook.ts
18
19
  var main = async () => {
@@ -1,24 +1,23 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePermissionDenied
4
- } from "../chunk-Y7E2MC3G.js";
5
- import "../chunk-XJDL3MUE.js";
6
- import "../chunk-HSGEEBBL.js";
7
- import "../chunk-VT4IVERX.js";
8
- import "../chunk-PKUNB3SN.js";
4
+ } from "../chunk-HJ44HIUW.js";
5
+ import "../chunk-ATBKJNWS.js";
6
+ import "../chunk-7MBDFNUC.js";
9
7
  import {
10
8
  readHookInput
11
9
  } from "../chunk-6CUUA7HO.js";
12
10
  import "../chunk-YHG74UFF.js";
13
- import "../chunk-DPDUB4XF.js";
11
+ import "../chunk-V2XPF77V.js";
12
+ import "../chunk-J3YDT4HM.js";
14
13
  import "../chunk-RN3NOEJF.js";
15
14
  import "../chunk-BSZYIAZL.js";
16
15
  import "../chunk-SAF6HGAA.js";
17
- import "../chunk-CWV4CMB6.js";
16
+ import "../chunk-Y3UTTFTZ.js";
18
17
  import "../chunk-7QLSKOSU.js";
19
18
  import "../chunk-KZERVKTD.js";
20
19
  import "../chunk-2UMNXADU.js";
21
- import "../chunk-K337LIBD.js";
20
+ import "../chunk-7YJS2VTG.js";
22
21
 
23
22
  // bin/pushary-permission-denied-hook.ts
24
23
  var main = async () => {
@@ -1,24 +1,23 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePermissionRequest
4
- } from "../chunk-Y7E2MC3G.js";
5
- import "../chunk-XJDL3MUE.js";
6
- import "../chunk-HSGEEBBL.js";
7
- import "../chunk-VT4IVERX.js";
8
- import "../chunk-PKUNB3SN.js";
4
+ } from "../chunk-HJ44HIUW.js";
5
+ import "../chunk-ATBKJNWS.js";
6
+ import "../chunk-7MBDFNUC.js";
9
7
  import {
10
8
  readHookInput
11
9
  } from "../chunk-6CUUA7HO.js";
12
10
  import "../chunk-YHG74UFF.js";
13
- import "../chunk-DPDUB4XF.js";
11
+ import "../chunk-V2XPF77V.js";
12
+ import "../chunk-J3YDT4HM.js";
14
13
  import "../chunk-RN3NOEJF.js";
15
14
  import "../chunk-BSZYIAZL.js";
16
15
  import "../chunk-SAF6HGAA.js";
17
- import "../chunk-CWV4CMB6.js";
16
+ import "../chunk-Y3UTTFTZ.js";
18
17
  import "../chunk-7QLSKOSU.js";
19
18
  import "../chunk-KZERVKTD.js";
20
19
  import "../chunk-2UMNXADU.js";
21
- import "../chunk-K337LIBD.js";
20
+ import "../chunk-7YJS2VTG.js";
22
21
 
23
22
  // bin/pushary-permission-hook.ts
24
23
  var main = async () => {
@@ -4,15 +4,16 @@ import {
4
4
  } from "../chunk-6CUUA7HO.js";
5
5
  import {
6
6
  handlePostToolUse
7
- } from "../chunk-DPDUB4XF.js";
7
+ } from "../chunk-V2XPF77V.js";
8
+ import "../chunk-J3YDT4HM.js";
8
9
  import "../chunk-RN3NOEJF.js";
9
10
  import "../chunk-BSZYIAZL.js";
10
11
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-CWV4CMB6.js";
12
+ import "../chunk-Y3UTTFTZ.js";
12
13
  import "../chunk-7QLSKOSU.js";
13
14
  import "../chunk-KZERVKTD.js";
14
15
  import "../chunk-2UMNXADU.js";
15
- import "../chunk-K337LIBD.js";
16
+ import "../chunk-7YJS2VTG.js";
16
17
 
17
18
  // bin/pushary-post-hook.ts
18
19
  var main = async () => {
@@ -4,15 +4,16 @@ import {
4
4
  } from "../chunk-6CUUA7HO.js";
5
5
  import {
6
6
  handleUserPrompt
7
- } from "../chunk-DPDUB4XF.js";
7
+ } from "../chunk-V2XPF77V.js";
8
+ import "../chunk-J3YDT4HM.js";
8
9
  import "../chunk-RN3NOEJF.js";
9
10
  import "../chunk-BSZYIAZL.js";
10
11
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-CWV4CMB6.js";
12
+ import "../chunk-Y3UTTFTZ.js";
12
13
  import "../chunk-7QLSKOSU.js";
13
14
  import "../chunk-KZERVKTD.js";
14
15
  import "../chunk-2UMNXADU.js";
15
- import "../chunk-K337LIBD.js";
16
+ import "../chunk-7YJS2VTG.js";
16
17
 
17
18
  // bin/pushary-prompt-hook.ts
18
19
  var main = async () => {
@@ -4,15 +4,16 @@ import {
4
4
  } from "../chunk-6CUUA7HO.js";
5
5
  import {
6
6
  handleSessionEnd
7
- } from "../chunk-DPDUB4XF.js";
7
+ } from "../chunk-V2XPF77V.js";
8
+ import "../chunk-J3YDT4HM.js";
8
9
  import "../chunk-RN3NOEJF.js";
9
10
  import "../chunk-BSZYIAZL.js";
10
11
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-CWV4CMB6.js";
12
+ import "../chunk-Y3UTTFTZ.js";
12
13
  import "../chunk-7QLSKOSU.js";
13
14
  import "../chunk-KZERVKTD.js";
14
15
  import "../chunk-2UMNXADU.js";
15
- import "../chunk-K337LIBD.js";
16
+ import "../chunk-7YJS2VTG.js";
16
17
 
17
18
  // bin/pushary-session-end-hook.ts
18
19
  var main = async () => {
@@ -4,15 +4,16 @@ import {
4
4
  } from "../chunk-6CUUA7HO.js";
5
5
  import {
6
6
  handleSessionStart
7
- } from "../chunk-DPDUB4XF.js";
7
+ } from "../chunk-V2XPF77V.js";
8
+ import "../chunk-J3YDT4HM.js";
8
9
  import "../chunk-RN3NOEJF.js";
9
10
  import "../chunk-BSZYIAZL.js";
10
11
  import "../chunk-SAF6HGAA.js";
11
- import "../chunk-CWV4CMB6.js";
12
+ import "../chunk-Y3UTTFTZ.js";
12
13
  import "../chunk-7QLSKOSU.js";
13
14
  import "../chunk-KZERVKTD.js";
14
15
  import "../chunk-2UMNXADU.js";
15
- import "../chunk-K337LIBD.js";
16
+ import "../chunk-7YJS2VTG.js";
16
17
 
17
18
  // bin/pushary-session-start-hook.ts
18
19
  var main = async () => {