@pushary/agent-hooks 0.95.6 → 0.95.7

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 (83) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/data/cursor-plugin/.cursor-plugin/plugin.json +1 -1
  3. package/data/cursor-plugin/CHANGELOG.md +7 -0
  4. package/data/cursor-plugin/scripts/pushary-gate.mjs +72 -17
  5. package/data/vscode-plugin/.claude-plugin/plugin.json +1 -1
  6. package/data/vscode-plugin/CHANGELOG.md +6 -0
  7. package/data/vscode-plugin/scripts/pushary-gate.mjs +76 -24
  8. package/dist/bin/pushary-bell-hook.js +18 -18
  9. package/dist/bin/pushary-bell.js +5 -5
  10. package/dist/bin/pushary-claude.js +24 -24
  11. package/dist/bin/pushary-clean.js +16 -16
  12. package/dist/bin/pushary-codex-bridge.js +29 -12
  13. package/dist/bin/pushary-codex-hook.js +29 -29
  14. package/dist/bin/pushary-codex.js +7 -7
  15. package/dist/bin/pushary-connect.js +6 -6
  16. package/dist/bin/pushary-cowork.js +3 -3
  17. package/dist/bin/pushary-daemon.js +22 -22
  18. package/dist/bin/pushary-disconnect.js +6 -6
  19. package/dist/bin/pushary-doctor.js +22 -21
  20. package/dist/bin/pushary-elicitation-hook.js +17 -17
  21. package/dist/bin/pushary-gemini-bridge.js +9 -9
  22. package/dist/bin/pushary-gemini-hook.js +65 -50
  23. package/dist/bin/pushary-hook.js +22 -22
  24. package/dist/bin/pushary-login.js +7 -7
  25. package/dist/bin/pushary-logout.js +4 -4
  26. package/dist/bin/pushary-mode.js +3 -3
  27. package/dist/bin/pushary-notification-hook.js +19 -19
  28. package/dist/bin/pushary-opencode-hook.js +29 -29
  29. package/dist/bin/pushary-permission-denied-hook.js +22 -22
  30. package/dist/bin/pushary-permission-hook.js +22 -22
  31. package/dist/bin/pushary-post-hook.js +19 -19
  32. package/dist/bin/pushary-prompt-hook.js +19 -19
  33. package/dist/bin/pushary-session-end-hook.js +19 -19
  34. package/dist/bin/pushary-session-start-hook.js +22 -22
  35. package/dist/bin/pushary-setup.js +24 -24
  36. package/dist/bin/pushary-stats.js +2 -2
  37. package/dist/bin/pushary-status.js +10 -10
  38. package/dist/bin/pushary-stop-hook.js +19 -19
  39. package/dist/bin/pushary-stopfailure-hook.js +19 -19
  40. package/dist/bin/pushary-transcript-register.js +16 -16
  41. package/dist/bin/pushary-transcripts.js +5 -5
  42. package/dist/bin/pushary-upgrade.js +14 -14
  43. package/dist/bin/pushary-wait.js +6 -5
  44. package/dist/{chunk-C7BFOC35.js → chunk-4OSQZ5TB.js} +2 -2
  45. package/dist/{chunk-HKQ6CD32.js → chunk-54W7ELDQ.js} +1 -1
  46. package/dist/{chunk-32WFHA77.js → chunk-5GKNAQTG.js} +1 -1
  47. package/dist/{chunk-XJ6CXTSB.js → chunk-6W2WGNO5.js} +7 -7
  48. package/dist/{chunk-CDBTCEKE.js → chunk-7RNY3UHJ.js} +3 -3
  49. package/dist/{chunk-FBO5WS3D.js → chunk-BGX4QUQF.js} +1 -1
  50. package/dist/{chunk-6II5RBAS.js → chunk-BQL7UDIB.js} +1 -1
  51. package/dist/{chunk-HHODMHTH.js → chunk-CNUDZS4V.js} +3 -3
  52. package/dist/chunk-CVWG2N3Y.js +16 -0
  53. package/dist/{chunk-WZ63WTAZ.js → chunk-EMGGUO2Q.js} +1 -1
  54. package/dist/{chunk-KNIVXEW4.js → chunk-FRXZMCVA.js} +1 -1
  55. package/dist/{chunk-A2M6FGUF.js → chunk-GQRU4KJF.js} +3 -3
  56. package/dist/{chunk-XKIB2FQY.js → chunk-HAXZ6CBF.js} +8 -8
  57. package/dist/{chunk-R4MBUCPQ.js → chunk-IZVK6FKD.js} +1 -1
  58. package/dist/{chunk-KAWLZTRJ.js → chunk-L7NOG547.js} +1 -1
  59. package/dist/{chunk-RPHXG4HI.js → chunk-NKUE5SJB.js} +2 -2
  60. package/dist/{chunk-DSCGKZO5.js → chunk-PQGLDN4V.js} +2 -2
  61. package/dist/{chunk-FVTFSYKB.js → chunk-QJPYJVL3.js} +1 -1
  62. package/dist/{chunk-ZQREURP6.js → chunk-SDNTRS76.js} +1 -1
  63. package/dist/{chunk-DH4INZW3.js → chunk-SKPXQRKN.js} +1 -1
  64. package/dist/{chunk-SLVXQOYU.js → chunk-TY6IJY6I.js} +1 -1
  65. package/dist/{chunk-43TFQOAT.js → chunk-U5RIXR7I.js} +1 -1
  66. package/dist/{chunk-AXECWTTZ.js → chunk-UKMLSQXA.js} +2 -2
  67. package/dist/{chunk-OIZVYUED.js → chunk-USWT4PTR.js} +1 -1
  68. package/dist/{chunk-SRFA5BOO.js → chunk-VDI645ZX.js} +1 -1
  69. package/dist/{chunk-JZSWA3VT.js → chunk-VERXHIQF.js} +1 -1
  70. package/dist/{chunk-FHIVWF4B.js → chunk-VIUOGMT5.js} +14 -14
  71. package/dist/{chunk-6MRPTYYH.js → chunk-VMQU7YEJ.js} +1 -1
  72. package/dist/{chunk-7N3D4GN7.js → chunk-VMZ4SWQD.js} +4 -4
  73. package/dist/{chunk-WRK6RAA5.js → chunk-WAUAYRUQ.js} +4 -4
  74. package/dist/{chunk-BS5XR4J7.js → chunk-WPS5IM7B.js} +3 -3
  75. package/dist/{chunk-ZJ6QXXBC.js → chunk-XJQOVWBQ.js} +11 -11
  76. package/dist/{chunk-O5RQ7RYJ.js → chunk-XO3JR3OP.js} +2 -2
  77. package/dist/{chunk-32WWVRXN.js → chunk-XUTSZYYJ.js} +1 -1
  78. package/dist/{chunk-4XFBO3GW.js → chunk-XZWUOCJZ.js} +1 -1
  79. package/dist/{chunk-HBBQO77U.js → chunk-Z4JVEL7R.js} +1 -1
  80. package/dist/src/index.js +10 -10
  81. package/package.json +1 -1
  82. package/dist/chunk-IIENZE2J.js +0 -15
  83. /package/dist/{chunk-VZADMT7R.js → chunk-MC5WUOJJ.js} +0 -0
@@ -1,43 +1,43 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-R4MBUCPQ.js";
4
+ } from "../chunk-IZVK6FKD.js";
5
5
  import {
6
6
  isDeferAnswer
7
7
  } from "../chunk-YHG74UFF.js";
8
- import "../chunk-XKIB2FQY.js";
9
- import "../chunk-WZ63WTAZ.js";
10
- import "../chunk-BS5XR4J7.js";
11
- import "../chunk-4XFBO3GW.js";
12
- import "../chunk-FVTFSYKB.js";
13
- import "../chunk-A2M6FGUF.js";
14
- import "../chunk-7N3D4GN7.js";
15
- import "../chunk-CDBTCEKE.js";
8
+ import "../chunk-HAXZ6CBF.js";
9
+ import "../chunk-EMGGUO2Q.js";
10
+ import "../chunk-WPS5IM7B.js";
11
+ import "../chunk-XZWUOCJZ.js";
12
+ import "../chunk-QJPYJVL3.js";
13
+ import "../chunk-GQRU4KJF.js";
14
+ import "../chunk-VMZ4SWQD.js";
15
+ import "../chunk-7RNY3UHJ.js";
16
16
  import "../chunk-GOPIMNVC.js";
17
17
  import "../chunk-3AJIK5AO.js";
18
- import "../chunk-DH4INZW3.js";
18
+ import "../chunk-SKPXQRKN.js";
19
19
  import "../chunk-EQRS3SGM.js";
20
- import "../chunk-JZSWA3VT.js";
20
+ import "../chunk-VERXHIQF.js";
21
21
  import "../chunk-XHKBHWLX.js";
22
22
  import "../chunk-L4ZCFMWW.js";
23
+ import "../chunk-XUTSZYYJ.js";
23
24
  import {
24
25
  askUser,
25
26
  isDecisionStopped,
26
27
  waitForQuestion
27
28
  } from "../chunk-XS33QBJA.js";
28
- import "../chunk-32WWVRXN.js";
29
29
  import {
30
30
  getMachineId
31
- } from "../chunk-C7BFOC35.js";
32
- import "../chunk-FBO5WS3D.js";
31
+ } from "../chunk-4OSQZ5TB.js";
32
+ import "../chunk-BGX4QUQF.js";
33
33
  import "../chunk-GMXKITVA.js";
34
34
  import "../chunk-DINDL2CF.js";
35
- import "../chunk-6MRPTYYH.js";
35
+ import "../chunk-VMQU7YEJ.js";
36
36
  import "../chunk-EYRGBYZG.js";
37
37
  import "../chunk-SAF6HGAA.js";
38
38
  import "../chunk-7QLSKOSU.js";
39
39
  import "../chunk-KZERVKTD.js";
40
- import "../chunk-KAWLZTRJ.js";
40
+ import "../chunk-L7NOG547.js";
41
41
  import {
42
42
  getApiKey
43
43
  } from "../chunk-2UMNXADU.js";
@@ -51,7 +51,7 @@ import {
51
51
  planElicitationAsk,
52
52
  readElicitationFields,
53
53
  renderElicitationOutput
54
- } from "../chunk-VZADMT7R.js";
54
+ } from "../chunk-MC5WUOJJ.js";
55
55
 
56
56
  // bin/pushary-elicitation-hook.ts
57
57
  import { basename } from "path";
@@ -5,19 +5,19 @@ import {
5
5
  postLiveSession,
6
6
  postLiveSessionUntilAccepted,
7
7
  startLiveSessionHeartbeat
8
- } from "../chunk-KNIVXEW4.js";
8
+ } from "../chunk-FRXZMCVA.js";
9
9
  import {
10
10
  SESSION_IDLE_TIMEOUT_MS,
11
11
  describeIdleWindow,
12
12
  idleDeadlinePassed,
13
13
  startProcessOwnership,
14
14
  withSpawnProcessOwnership
15
- } from "../chunk-DSCGKZO5.js";
16
- import "../chunk-DH4INZW3.js";
15
+ } from "../chunk-PQGLDN4V.js";
16
+ import "../chunk-SKPXQRKN.js";
17
17
  import "../chunk-EQRS3SGM.js";
18
18
  import {
19
19
  transcriptsEnabled
20
- } from "../chunk-JZSWA3VT.js";
20
+ } from "../chunk-VERXHIQF.js";
21
21
  import {
22
22
  spawnClaude
23
23
  } from "../chunk-XHKBHWLX.js";
@@ -26,15 +26,15 @@ import {
26
26
  } from "../chunk-L4ZCFMWW.js";
27
27
  import {
28
28
  getMachineId
29
- } from "../chunk-C7BFOC35.js";
30
- import "../chunk-FBO5WS3D.js";
31
- import "../chunk-6MRPTYYH.js";
32
- import "../chunk-KAWLZTRJ.js";
29
+ } from "../chunk-4OSQZ5TB.js";
30
+ import "../chunk-BGX4QUQF.js";
31
+ import "../chunk-VMQU7YEJ.js";
32
+ import "../chunk-L7NOG547.js";
33
33
  import {
34
34
  getApiKey,
35
35
  getBaseUrl
36
36
  } from "../chunk-2UMNXADU.js";
37
- import "../chunk-VZADMT7R.js";
37
+ import "../chunk-MC5WUOJJ.js";
38
38
 
39
39
  // bin/pushary-gemini-bridge.ts
40
40
  import { existsSync } from "fs";
@@ -2,27 +2,27 @@
2
2
  import {
3
3
  isGatingMoment,
4
4
  recordKeylessMoment
5
- } from "../chunk-32WFHA77.js";
5
+ } from "../chunk-5GKNAQTG.js";
6
6
  import {
7
7
  readHookInput
8
- } from "../chunk-R4MBUCPQ.js";
8
+ } from "../chunk-IZVK6FKD.js";
9
9
  import {
10
10
  denyReasonFrom,
11
11
  isDeferAnswer
12
12
  } from "../chunk-YHG74UFF.js";
13
- import "../chunk-XKIB2FQY.js";
14
- import "../chunk-WZ63WTAZ.js";
15
- import "../chunk-BS5XR4J7.js";
16
- import "../chunk-4XFBO3GW.js";
17
- import "../chunk-FVTFSYKB.js";
18
- import "../chunk-A2M6FGUF.js";
19
- import "../chunk-7N3D4GN7.js";
20
- import "../chunk-CDBTCEKE.js";
13
+ import "../chunk-HAXZ6CBF.js";
14
+ import "../chunk-EMGGUO2Q.js";
15
+ import "../chunk-WPS5IM7B.js";
16
+ import "../chunk-XZWUOCJZ.js";
17
+ import "../chunk-QJPYJVL3.js";
18
+ import "../chunk-GQRU4KJF.js";
19
+ import "../chunk-VMZ4SWQD.js";
20
+ import "../chunk-7RNY3UHJ.js";
21
21
  import "../chunk-GOPIMNVC.js";
22
22
  import "../chunk-3AJIK5AO.js";
23
- import "../chunk-DH4INZW3.js";
23
+ import "../chunk-SKPXQRKN.js";
24
24
  import "../chunk-EQRS3SGM.js";
25
- import "../chunk-JZSWA3VT.js";
25
+ import "../chunk-VERXHIQF.js";
26
26
  import "../chunk-XHKBHWLX.js";
27
27
  import "../chunk-L4ZCFMWW.js";
28
28
  import {
@@ -38,7 +38,16 @@ import {
38
38
  readLastUserPrompt,
39
39
  repoKeyFor,
40
40
  reportEvent
41
- } from "../chunk-ZJ6QXXBC.js";
41
+ } from "../chunk-XJQOVWBQ.js";
42
+ import {
43
+ UNNAMED_ACTION,
44
+ deriveActionBody,
45
+ deriveBlocker,
46
+ deriveToolTarget,
47
+ describeToolCall,
48
+ scopePathFor
49
+ } from "../chunk-Z4JVEL7R.js";
50
+ import "../chunk-XUTSZYYJ.js";
42
51
  import {
43
52
  DECISION_STOP_REASON,
44
53
  askUser,
@@ -47,27 +56,18 @@ import {
47
56
  sendNotification,
48
57
  waitForQuestion
49
58
  } from "../chunk-XS33QBJA.js";
50
- import {
51
- UNNAMED_ACTION,
52
- deriveActionBody,
53
- deriveBlocker,
54
- deriveToolTarget,
55
- describeToolCall,
56
- scopePathFor
57
- } from "../chunk-HBBQO77U.js";
58
- import "../chunk-32WWVRXN.js";
59
59
  import {
60
60
  getMachineId
61
- } from "../chunk-C7BFOC35.js";
62
- import "../chunk-FBO5WS3D.js";
61
+ } from "../chunk-4OSQZ5TB.js";
62
+ import "../chunk-BGX4QUQF.js";
63
63
  import "../chunk-GMXKITVA.js";
64
64
  import "../chunk-DINDL2CF.js";
65
- import "../chunk-6MRPTYYH.js";
65
+ import "../chunk-VMQU7YEJ.js";
66
66
  import "../chunk-EYRGBYZG.js";
67
67
  import "../chunk-SAF6HGAA.js";
68
68
  import "../chunk-7QLSKOSU.js";
69
69
  import "../chunk-KZERVKTD.js";
70
- import "../chunk-KAWLZTRJ.js";
70
+ import "../chunk-L7NOG547.js";
71
71
  import {
72
72
  getApiKey
73
73
  } from "../chunk-2UMNXADU.js";
@@ -79,7 +79,7 @@ import {
79
79
  hookWaitClamped,
80
80
  hookWaitDeadline,
81
81
  resolveGate
82
- } from "../chunk-VZADMT7R.js";
82
+ } from "../chunk-MC5WUOJJ.js";
83
83
 
84
84
  // bin/pushary-gemini-hook.ts
85
85
  import { basename } from "path";
@@ -115,6 +115,30 @@ var toGeminiPolicyLookup = (toolName, toolInput, cwd, mcpContext) => {
115
115
  var geminiAllow = () => ({ kind: "allow" });
116
116
  var geminiDeny = (reason) => ({ kind: "deny", reason });
117
117
  var geminiPass = () => ({ kind: "pass" });
118
+ var NO_LOCAL_INPUT = "This unattended Gemini session has no local approval input. Use an interactive session or Every time.";
119
+ var NO_ANSWER_IN_TIME = "No answer from your phone in time, and this unattended Gemini session has no local approval input. Retry when you can answer on your phone.";
120
+ var HANDLED_ON_MACHINE = "You chose to handle this on your machine, but this unattended Gemini session has no local approval input. Use an interactive session.";
121
+ var NO_DEVICE = "No phone or other notification channel is connected to Pushary, and this unattended Gemini session has no local approval input. Connect one in Pushary, then retry.";
122
+ var geminiLocalHandoff = (bridge, reason = NO_LOCAL_INPUT) => geminiOwnsLifecycle(bridge) ? geminiPass() : geminiDeny(reason);
123
+ var geminiPushOnlyHandoff = (askStatus, bridge) => askStatus === "notified" || askStatus === "terminal" ? geminiLocalHandoff(bridge) : geminiPass();
124
+ var fromPhoneAnswer = (answer) => answer.value === "yes" ? geminiAllow() : geminiDeny(denyReasonFrom(answer.value, answer.note));
125
+ var geminiPushFirstDecision = (pushed, bridge) => {
126
+ if (!pushed) return geminiPass();
127
+ const { answer, localHandoff } = pushed;
128
+ if (isDecisionStopped(answer)) return geminiDeny(DECISION_STOP_REASON);
129
+ if (localHandoff) return geminiLocalHandoff(bridge, pushed.noDevices ? NO_DEVICE : NO_LOCAL_INPUT);
130
+ if (answer.answered) return isDeferAnswer(answer.value) ? geminiLocalHandoff(bridge, HANDLED_ON_MACHINE) : fromPhoneAnswer(answer);
131
+ return geminiLocalHandoff(bridge, NO_ANSWER_IN_TIME);
132
+ };
133
+ var geminiPushOnlyDecision = (pushed, timeoutAction, bridge) => {
134
+ if (!pushed) return geminiDeny("Pushary could not create a verifiable approval. Retry the action.");
135
+ const { answer, localHandoff, clampCut, askStatus } = pushed;
136
+ if (isDecisionStopped(answer)) return geminiDeny(DECISION_STOP_REASON);
137
+ if (localHandoff) return geminiPushOnlyHandoff(askStatus, bridge);
138
+ if (answer.answered) return isDeferAnswer(answer.value) ? geminiPass() : fromPhoneAnswer(answer);
139
+ if (clampCut) return geminiPass();
140
+ return geminiTimeoutDecision(timeoutAction);
141
+ };
118
142
  var toGeminiWire = (decision) => {
119
143
  if (decision.kind === "pass") return null;
120
144
  return gateOutputFor(
@@ -150,12 +174,18 @@ var pushQuestion = async (apiKey, input, lookup, waitSeconds, mode, pollInterval
150
174
  blocker: deriveBlocker(mode),
151
175
  actionBody: deriveActionBody(input.tool_name ?? "", input.tool_input ?? {}),
152
176
  repoKey: repoKeyFor(input.cwd)
153
- }).catch(() => ({ correlationId: "", status: "unavailable" }));
177
+ });
154
178
  const now = Date.now();
155
179
  const deadline = hookWaitDeadline(START_MS, waitSeconds, "gemini", now);
156
180
  const clampCut = hookWaitClamped(START_MS, waitSeconds, "gemini", now);
157
181
  const answer = await waitForQuestion(apiKey, result, deadline, pollInterval);
158
- return { answer, localHandoff: !answer.answered && isLocalQuestionHandoff(result), clampCut };
182
+ return {
183
+ answer,
184
+ localHandoff: !answer.answered && isLocalQuestionHandoff(result),
185
+ clampCut,
186
+ askStatus: result.status,
187
+ noDevices: result.noDevices === true
188
+ };
159
189
  };
160
190
  var notifyApprovalNeeded = async (apiKey, input, lookup) => {
161
191
  try {
@@ -174,33 +204,18 @@ var handlePushOnly = async (apiKey, input, lookup, timeoutSeconds, timeoutAction
174
204
  try {
175
205
  pushed = await pushQuestion(apiKey, input, lookup, effectiveWaitSeconds(timeoutAction, timeoutSeconds, "gemini"), "push_only");
176
206
  } catch {
177
- return geminiDeny("Pushary could not create a verifiable approval. Retry the action.");
178
- }
179
- const { answer, localHandoff, clampCut } = pushed;
180
- if (isDecisionStopped(answer)) return geminiDeny(DECISION_STOP_REASON);
181
- if (localHandoff) return geminiPass();
182
- if (answer.answered) {
183
- if (isDeferAnswer(answer.value)) return geminiPass();
184
- return answer.value === "yes" ? geminiAllow() : geminiDeny(denyReasonFrom(answer.value, answer.note));
207
+ pushed = void 0;
185
208
  }
186
- if (clampCut) return geminiPass();
187
- return geminiTimeoutDecision(timeoutAction);
209
+ return geminiPushOnlyDecision(pushed, timeoutAction, process.env.PUSHARY_GEMINI_BRIDGE);
188
210
  };
189
211
  var handlePushFirst = async (apiKey, input, lookup, pushFirstSeconds) => {
190
212
  let pushed;
191
213
  try {
192
214
  pushed = await pushQuestion(apiKey, input, lookup, pushFirstSeconds, "push_first", 1500);
193
215
  } catch {
194
- return geminiPass();
216
+ pushed = void 0;
195
217
  }
196
- const { answer, localHandoff } = pushed;
197
- if (isDecisionStopped(answer)) return geminiDeny(DECISION_STOP_REASON);
198
- if (localHandoff) return geminiPass();
199
- if (answer.answered) {
200
- if (isDeferAnswer(answer.value)) return geminiPass();
201
- return answer.value === "yes" ? geminiAllow() : geminiDeny(denyReasonFrom(answer.value, answer.note));
202
- }
203
- return geminiPass();
218
+ return geminiPushFirstDecision(pushed, process.env.PUSHARY_GEMINI_BRIDGE);
204
219
  };
205
220
  var decideBeforeTool = async (input) => {
206
221
  let apiKey;
@@ -246,12 +261,12 @@ var decideBeforeTool = async (input) => {
246
261
  case "push_only":
247
262
  return handlePushOnly(apiKey, input, lookup, toolPolicy.timeoutSeconds, toolPolicy.timeoutAction);
248
263
  case "terminal_only":
249
- return geminiPass();
264
+ return geminiLocalHandoff(process.env.PUSHARY_GEMINI_BRIDGE);
250
265
  case "push_first":
251
266
  return handlePushFirst(apiKey, input, lookup, toolPolicy.pushFirstSeconds);
252
267
  case "notify_only":
253
268
  await notifyApprovalNeeded(apiKey, input, lookup);
254
- return geminiPass();
269
+ return geminiLocalHandoff(process.env.PUSHARY_GEMINI_BRIDGE);
255
270
  default:
256
271
  return handlePushFirst(apiKey, input, lookup, toolPolicy.pushFirstSeconds);
257
272
  }
@@ -1,48 +1,48 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handlePreToolUse
4
- } from "../chunk-FHIVWF4B.js";
5
- import "../chunk-SRFA5BOO.js";
6
- import "../chunk-32WFHA77.js";
4
+ } from "../chunk-VIUOGMT5.js";
5
+ import "../chunk-VDI645ZX.js";
6
+ import "../chunk-5GKNAQTG.js";
7
7
  import {
8
8
  readHookInput
9
- } from "../chunk-R4MBUCPQ.js";
9
+ } from "../chunk-IZVK6FKD.js";
10
10
  import "../chunk-YHG74UFF.js";
11
- import "../chunk-XKIB2FQY.js";
12
- import "../chunk-WZ63WTAZ.js";
13
- import "../chunk-BS5XR4J7.js";
14
- import "../chunk-4XFBO3GW.js";
15
- import "../chunk-FVTFSYKB.js";
16
- import "../chunk-A2M6FGUF.js";
17
- import "../chunk-7N3D4GN7.js";
18
- import "../chunk-CDBTCEKE.js";
11
+ import "../chunk-HAXZ6CBF.js";
12
+ import "../chunk-EMGGUO2Q.js";
13
+ import "../chunk-WPS5IM7B.js";
14
+ import "../chunk-XZWUOCJZ.js";
15
+ import "../chunk-QJPYJVL3.js";
16
+ import "../chunk-GQRU4KJF.js";
17
+ import "../chunk-VMZ4SWQD.js";
18
+ import "../chunk-7RNY3UHJ.js";
19
19
  import "../chunk-GOPIMNVC.js";
20
20
  import "../chunk-3AJIK5AO.js";
21
- import "../chunk-DH4INZW3.js";
21
+ import "../chunk-SKPXQRKN.js";
22
22
  import "../chunk-EQRS3SGM.js";
23
- import "../chunk-JZSWA3VT.js";
23
+ import "../chunk-VERXHIQF.js";
24
24
  import "../chunk-XHKBHWLX.js";
25
25
  import "../chunk-L4ZCFMWW.js";
26
- import "../chunk-ZJ6QXXBC.js";
26
+ import "../chunk-XJQOVWBQ.js";
27
+ import "../chunk-Z4JVEL7R.js";
28
+ import "../chunk-XUTSZYYJ.js";
27
29
  import "../chunk-XS33QBJA.js";
28
- import "../chunk-HBBQO77U.js";
29
- import "../chunk-32WWVRXN.js";
30
- import "../chunk-C7BFOC35.js";
31
- import "../chunk-FBO5WS3D.js";
30
+ import "../chunk-4OSQZ5TB.js";
31
+ import "../chunk-BGX4QUQF.js";
32
32
  import {
33
33
  exitOnHelpFlag
34
34
  } from "../chunk-GOQHN2UH.js";
35
35
  import "../chunk-LZQVAEWP.js";
36
36
  import "../chunk-GMXKITVA.js";
37
37
  import "../chunk-DINDL2CF.js";
38
- import "../chunk-6MRPTYYH.js";
38
+ import "../chunk-VMQU7YEJ.js";
39
39
  import "../chunk-EYRGBYZG.js";
40
40
  import "../chunk-SAF6HGAA.js";
41
41
  import "../chunk-7QLSKOSU.js";
42
42
  import "../chunk-KZERVKTD.js";
43
- import "../chunk-KAWLZTRJ.js";
43
+ import "../chunk-L7NOG547.js";
44
44
  import "../chunk-2UMNXADU.js";
45
- import "../chunk-VZADMT7R.js";
45
+ import "../chunk-MC5WUOJJ.js";
46
46
 
47
47
  // bin/pushary-hook.ts
48
48
  exitOnHelpFlag("hook");
@@ -5,16 +5,16 @@ import {
5
5
  import "../chunk-PUZZELE6.js";
6
6
  import {
7
7
  recoverDaemonAfterLogin
8
- } from "../chunk-7N3D4GN7.js";
8
+ } from "../chunk-VMZ4SWQD.js";
9
9
  import "../chunk-XHKBHWLX.js";
10
10
  import "../chunk-L4ZCFMWW.js";
11
- import "../chunk-C7BFOC35.js";
12
- import "../chunk-FBO5WS3D.js";
11
+ import "../chunk-4OSQZ5TB.js";
12
+ import "../chunk-BGX4QUQF.js";
13
13
  import "../chunk-3EGEA4KH.js";
14
14
  import {
15
15
  checkApiKey,
16
16
  describeKeyCheck
17
- } from "../chunk-6II5RBAS.js";
17
+ } from "../chunk-BQL7UDIB.js";
18
18
  import {
19
19
  createIo
20
20
  } from "../chunk-5RUIFDTP.js";
@@ -33,7 +33,7 @@ import {
33
33
  readControlMode,
34
34
  readKeySource,
35
35
  writeKey
36
- } from "../chunk-6MRPTYYH.js";
36
+ } from "../chunk-VMQU7YEJ.js";
37
37
  import "../chunk-SAF6HGAA.js";
38
38
  import {
39
39
  UsageError
@@ -41,11 +41,11 @@ import {
41
41
  import {
42
42
  EXIT
43
43
  } from "../chunk-KZERVKTD.js";
44
- import "../chunk-KAWLZTRJ.js";
44
+ import "../chunk-L7NOG547.js";
45
45
  import "../chunk-2UMNXADU.js";
46
46
  import {
47
47
  isValidApiKey
48
- } from "../chunk-VZADMT7R.js";
48
+ } from "../chunk-MC5WUOJJ.js";
49
49
 
50
50
  // bin/pushary-login.ts
51
51
  exitOnHelpFlag("login");
@@ -4,7 +4,7 @@ import {
4
4
  codexConfigToml,
5
5
  cursorUserMcp,
6
6
  geminiSettings
7
- } from "../chunk-FBO5WS3D.js";
7
+ } from "../chunk-BGX4QUQF.js";
8
8
  import {
9
9
  createIo
10
10
  } from "../chunk-5RUIFDTP.js";
@@ -19,18 +19,18 @@ import "../chunk-DINDL2CF.js";
19
19
  import {
20
20
  clearKey,
21
21
  readKeySource
22
- } from "../chunk-6MRPTYYH.js";
22
+ } from "../chunk-VMQU7YEJ.js";
23
23
  import {
24
24
  UsageError
25
25
  } from "../chunk-7QLSKOSU.js";
26
26
  import {
27
27
  EXIT
28
28
  } from "../chunk-KZERVKTD.js";
29
- import "../chunk-KAWLZTRJ.js";
29
+ import "../chunk-L7NOG547.js";
30
30
  import {
31
31
  getBaseUrl
32
32
  } from "../chunk-2UMNXADU.js";
33
- import "../chunk-VZADMT7R.js";
33
+ import "../chunk-MC5WUOJJ.js";
34
34
 
35
35
  // bin/pushary-logout.ts
36
36
  import { existsSync } from "fs";
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  exitOnFailedResponse
4
- } from "../chunk-ZQREURP6.js";
5
- import "../chunk-6II5RBAS.js";
4
+ } from "../chunk-SDNTRS76.js";
5
+ import "../chunk-BQL7UDIB.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-VZADMT7R.js";
28
+ import "../chunk-MC5WUOJJ.js";
29
29
 
30
30
  // src/cli/mode-request.ts
31
31
  var parseDuration = (value) => {
@@ -1,40 +1,40 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  readHookInput
4
- } from "../chunk-R4MBUCPQ.js";
5
- import "../chunk-XKIB2FQY.js";
6
- import "../chunk-WZ63WTAZ.js";
7
- import "../chunk-BS5XR4J7.js";
8
- import "../chunk-4XFBO3GW.js";
9
- import "../chunk-FVTFSYKB.js";
10
- import "../chunk-A2M6FGUF.js";
11
- import "../chunk-7N3D4GN7.js";
12
- import "../chunk-CDBTCEKE.js";
4
+ } from "../chunk-IZVK6FKD.js";
5
+ import "../chunk-HAXZ6CBF.js";
6
+ import "../chunk-EMGGUO2Q.js";
7
+ import "../chunk-WPS5IM7B.js";
8
+ import "../chunk-XZWUOCJZ.js";
9
+ import "../chunk-QJPYJVL3.js";
10
+ import "../chunk-GQRU4KJF.js";
11
+ import "../chunk-VMZ4SWQD.js";
12
+ import "../chunk-7RNY3UHJ.js";
13
13
  import "../chunk-GOPIMNVC.js";
14
14
  import "../chunk-3AJIK5AO.js";
15
- import "../chunk-DH4INZW3.js";
15
+ import "../chunk-SKPXQRKN.js";
16
16
  import "../chunk-EQRS3SGM.js";
17
- import "../chunk-JZSWA3VT.js";
17
+ import "../chunk-VERXHIQF.js";
18
18
  import "../chunk-XHKBHWLX.js";
19
19
  import "../chunk-L4ZCFMWW.js";
20
20
  import {
21
21
  handleNotification
22
- } from "../chunk-ZJ6QXXBC.js";
22
+ } from "../chunk-XJQOVWBQ.js";
23
+ import "../chunk-Z4JVEL7R.js";
24
+ import "../chunk-XUTSZYYJ.js";
23
25
  import "../chunk-XS33QBJA.js";
24
- import "../chunk-HBBQO77U.js";
25
- import "../chunk-32WWVRXN.js";
26
- import "../chunk-C7BFOC35.js";
27
- import "../chunk-FBO5WS3D.js";
26
+ import "../chunk-4OSQZ5TB.js";
27
+ import "../chunk-BGX4QUQF.js";
28
28
  import "../chunk-GMXKITVA.js";
29
29
  import "../chunk-DINDL2CF.js";
30
- import "../chunk-6MRPTYYH.js";
30
+ import "../chunk-VMQU7YEJ.js";
31
31
  import "../chunk-EYRGBYZG.js";
32
32
  import "../chunk-SAF6HGAA.js";
33
33
  import "../chunk-7QLSKOSU.js";
34
34
  import "../chunk-KZERVKTD.js";
35
- import "../chunk-KAWLZTRJ.js";
35
+ import "../chunk-L7NOG547.js";
36
36
  import "../chunk-2UMNXADU.js";
37
- import "../chunk-VZADMT7R.js";
37
+ import "../chunk-MC5WUOJJ.js";
38
38
 
39
39
  // bin/pushary-notification-hook.ts
40
40
  var main = async () => {
@@ -2,27 +2,27 @@
2
2
  import {
3
3
  isGatingMoment,
4
4
  recordKeylessMoment
5
- } from "../chunk-32WFHA77.js";
5
+ } from "../chunk-5GKNAQTG.js";
6
6
  import {
7
7
  readHookInput
8
- } from "../chunk-R4MBUCPQ.js";
8
+ } from "../chunk-IZVK6FKD.js";
9
9
  import {
10
10
  denyReasonFrom,
11
11
  isDeferAnswer
12
12
  } from "../chunk-YHG74UFF.js";
13
- import "../chunk-XKIB2FQY.js";
14
- import "../chunk-WZ63WTAZ.js";
15
- import "../chunk-BS5XR4J7.js";
16
- import "../chunk-4XFBO3GW.js";
17
- import "../chunk-FVTFSYKB.js";
18
- import "../chunk-A2M6FGUF.js";
19
- import "../chunk-7N3D4GN7.js";
20
- import "../chunk-CDBTCEKE.js";
13
+ import "../chunk-HAXZ6CBF.js";
14
+ import "../chunk-EMGGUO2Q.js";
15
+ import "../chunk-WPS5IM7B.js";
16
+ import "../chunk-XZWUOCJZ.js";
17
+ import "../chunk-QJPYJVL3.js";
18
+ import "../chunk-GQRU4KJF.js";
19
+ import "../chunk-VMZ4SWQD.js";
20
+ import "../chunk-7RNY3UHJ.js";
21
21
  import "../chunk-GOPIMNVC.js";
22
22
  import "../chunk-3AJIK5AO.js";
23
- import "../chunk-DH4INZW3.js";
23
+ import "../chunk-SKPXQRKN.js";
24
24
  import "../chunk-EQRS3SGM.js";
25
- import "../chunk-JZSWA3VT.js";
25
+ import "../chunk-VERXHIQF.js";
26
26
  import "../chunk-XHKBHWLX.js";
27
27
  import "../chunk-L4ZCFMWW.js";
28
28
  import {
@@ -35,16 +35,7 @@ import {
35
35
  policyRequestFor,
36
36
  readLastPrompt,
37
37
  repoKeyFor
38
- } from "../chunk-ZJ6QXXBC.js";
39
- import {
40
- DECISION_STOP_REASON,
41
- askUser,
42
- cancelQuestion,
43
- isDecisionStopped,
44
- isLocalQuestionHandoff,
45
- sendNotification,
46
- waitForQuestion
47
- } from "../chunk-XS33QBJA.js";
38
+ } from "../chunk-XJQOVWBQ.js";
48
39
  import {
49
40
  HOOK_FALLBACK_MAX,
50
41
  OPENCODE_TOOL_NAMES,
@@ -54,20 +45,29 @@ import {
54
45
  deriveToolTarget,
55
46
  describeToolCall,
56
47
  scopePathFor
57
- } from "../chunk-HBBQO77U.js";
58
- import "../chunk-32WWVRXN.js";
48
+ } from "../chunk-Z4JVEL7R.js";
49
+ import "../chunk-XUTSZYYJ.js";
50
+ import {
51
+ DECISION_STOP_REASON,
52
+ askUser,
53
+ cancelQuestion,
54
+ isDecisionStopped,
55
+ isLocalQuestionHandoff,
56
+ sendNotification,
57
+ waitForQuestion
58
+ } from "../chunk-XS33QBJA.js";
59
59
  import {
60
60
  getMachineId
61
- } from "../chunk-C7BFOC35.js";
62
- import "../chunk-FBO5WS3D.js";
61
+ } from "../chunk-4OSQZ5TB.js";
62
+ import "../chunk-BGX4QUQF.js";
63
63
  import "../chunk-GMXKITVA.js";
64
64
  import "../chunk-DINDL2CF.js";
65
- import "../chunk-6MRPTYYH.js";
65
+ import "../chunk-VMQU7YEJ.js";
66
66
  import "../chunk-EYRGBYZG.js";
67
67
  import "../chunk-SAF6HGAA.js";
68
68
  import "../chunk-7QLSKOSU.js";
69
69
  import "../chunk-KZERVKTD.js";
70
- import "../chunk-KAWLZTRJ.js";
70
+ import "../chunk-L7NOG547.js";
71
71
  import {
72
72
  getApiKey
73
73
  } from "../chunk-2UMNXADU.js";
@@ -81,7 +81,7 @@ import {
81
81
  hookWaitDeadline,
82
82
  redactSecrets,
83
83
  resolveGate
84
- } from "../chunk-VZADMT7R.js";
84
+ } from "../chunk-MC5WUOJJ.js";
85
85
 
86
86
  // bin/pushary-opencode-hook.ts
87
87
  import { basename } from "path";