@pushary/agent-hooks 0.95.2 → 0.95.5

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 (98) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +1 -1
  3. package/data/cursor-plugin/.cursor-plugin/plugin.json +1 -1
  4. package/data/cursor-plugin/CHANGELOG.md +5 -0
  5. package/data/cursor-plugin/README.md +6 -8
  6. package/data/cursor-plugin/hooks/hooks.json +56 -1
  7. package/data/cursor-plugin/scripts/pushary-gate.mjs +120 -71
  8. package/data/vscode-plugin/.claude-plugin/plugin.json +1 -1
  9. package/data/vscode-plugin/CHANGELOG.md +5 -0
  10. package/data/vscode-plugin/README.md +7 -15
  11. package/data/vscode-plugin/hooks/hooks.json +49 -0
  12. package/data/vscode-plugin/scripts/pushary-gate.mjs +208 -88
  13. package/dist/bin/pushary-bell-hook.js +20 -22
  14. package/dist/bin/pushary-bell.js +9 -11
  15. package/dist/bin/pushary-claude.js +58 -46
  16. package/dist/bin/pushary-clean.js +21 -20
  17. package/dist/bin/pushary-codex-bridge.js +120 -25
  18. package/dist/bin/pushary-codex-hook.js +43 -63
  19. package/dist/bin/pushary-codex.js +11 -10
  20. package/dist/bin/pushary-connect.js +8 -10
  21. package/dist/bin/pushary-cowork.js +5 -5
  22. package/dist/bin/pushary-daemon.js +26 -28
  23. package/dist/bin/pushary-disconnect.js +11 -10
  24. package/dist/bin/pushary-doctor.js +25 -25
  25. package/dist/bin/pushary-elicitation-hook.js +30 -31
  26. package/dist/bin/pushary-gemini-bridge.js +9 -11
  27. package/dist/bin/pushary-gemini-hook.js +45 -79
  28. package/dist/bin/pushary-hook.js +27 -29
  29. package/dist/bin/pushary-login.js +57 -31
  30. package/dist/bin/pushary-logout.js +6 -8
  31. package/dist/bin/pushary-mode.js +5 -5
  32. package/dist/bin/pushary-notification-hook.js +22 -24
  33. package/dist/bin/pushary-opencode-hook.js +38 -74
  34. package/dist/bin/pushary-permission-denied-hook.js +25 -27
  35. package/dist/bin/pushary-permission-hook.js +25 -27
  36. package/dist/bin/pushary-post-hook.js +22 -24
  37. package/dist/bin/pushary-prompt-hook.js +22 -24
  38. package/dist/bin/pushary-session-end-hook.js +22 -24
  39. package/dist/bin/pushary-session-start-hook.js +25 -27
  40. package/dist/bin/pushary-setup.js +78 -55
  41. package/dist/bin/pushary-stats.js +4 -4
  42. package/dist/bin/pushary-status.js +10 -12
  43. package/dist/bin/pushary-stop-hook.js +22 -24
  44. package/dist/bin/pushary-stopfailure-hook.js +22 -24
  45. package/dist/bin/pushary-suggestions.js +2 -2
  46. package/dist/bin/pushary-transcript-register.js +18 -20
  47. package/dist/bin/pushary-transcripts.js +7 -9
  48. package/dist/bin/pushary-upgrade.js +17 -19
  49. package/dist/bin/pushary-wait.js +5 -5
  50. package/dist/bin/pushary.js +1 -1
  51. package/dist/{chunk-7LUFYRH4.js → chunk-2D7BAOMY.js} +7 -7
  52. package/dist/{chunk-3ZUTNTZA.js → chunk-2ZTL3PGN.js} +1 -1
  53. package/dist/{chunk-EPFDN2ZT.js → chunk-32RMQO5Z.js} +1 -1
  54. package/dist/{chunk-EZIEXHYM.js → chunk-3AJIK5AO.js} +5 -2
  55. package/dist/{chunk-IPHOUBTU.js → chunk-4PX4QK2Z.js} +1 -1
  56. package/dist/{chunk-UW4LWAWY.js → chunk-4RF52LSU.js} +8 -8
  57. package/dist/{chunk-UOTSWS5N.js → chunk-67YNQ3QA.js} +43 -98
  58. package/dist/{chunk-G4TL4YWH.js → chunk-6AEM5RCS.js} +1 -1
  59. package/dist/{chunk-G24SEVCI.js → chunk-6VANQN5Q.js} +3 -7
  60. package/dist/{chunk-CKOLDI47.js → chunk-BDI2MXTT.js} +2 -2
  61. package/dist/{chunk-YKLCWWEI.js → chunk-BMANRGJQ.js} +1 -1
  62. package/dist/{chunk-2XUPP4WM.js → chunk-CUEZMPLJ.js} +1 -1
  63. package/dist/{chunk-A4R6BZCK.js → chunk-D62EONG3.js} +1 -1
  64. package/dist/{chunk-ZDAT5KMU.js → chunk-D6PRC3YQ.js} +1 -1
  65. package/dist/{chunk-MOY5X6HJ.js → chunk-DLLAWCQB.js} +1 -1
  66. package/dist/{chunk-DSTLA2TC.js → chunk-GOPIMNVC.js} +1 -1
  67. package/dist/{chunk-CH6DTGQR.js → chunk-HBHEX3JQ.js} +3 -3
  68. package/dist/{chunk-DNVDKHQD.js → chunk-HCMM3BOW.js} +226 -58
  69. package/dist/{chunk-76XICHYT.js → chunk-HGUZOUB2.js} +4 -4
  70. package/dist/{chunk-E3NF5CL2.js → chunk-HQIVR7MM.js} +6 -3
  71. package/dist/{chunk-JDFB3YKG.js → chunk-I6GZX3FT.js} +3 -3
  72. package/dist/{chunk-3OXHYPZG.js → chunk-IM2A5H33.js} +4 -1
  73. package/dist/{chunk-V27AHID3.js → chunk-IVQMNLSA.js} +3 -14
  74. package/dist/{chunk-4LL6LG5X.js → chunk-KAVDAZ7A.js} +43 -1
  75. package/dist/chunk-KBITFQST.js +6 -0
  76. package/dist/{chunk-AMZJ3CKW.js → chunk-KI4PA7MQ.js} +1 -1
  77. package/dist/{chunk-IAEXPTXA.js → chunk-N4VNLISN.js} +2 -2
  78. package/dist/{chunk-VX3BWMC5.js → chunk-OEKFD5BC.js} +1 -1
  79. package/dist/{chunk-QF4RI5CD.js → chunk-OI3DJA7N.js} +1 -1
  80. package/dist/{chunk-WB2C7VPF.js → chunk-OW6AZDY2.js} +3 -3
  81. package/dist/{chunk-4XXUHWIK.js → chunk-QHWXUNMN.js} +1 -1
  82. package/dist/{chunk-M7WWEFG6.js → chunk-QQGNFHIK.js} +2 -2
  83. package/dist/{chunk-YJAQRKH5.js → chunk-RLXVW4AM.js} +1 -1
  84. package/dist/{chunk-GUVCYYDK.js → chunk-S5CMLR35.js} +94 -15
  85. package/dist/{chunk-EUAQ4YAN.js → chunk-UCS65VVR.js} +1 -1
  86. package/dist/{chunk-WM5XMCID.js → chunk-VOSGZ6PH.js} +4 -4
  87. package/dist/{chunk-QUE76J4H.js → chunk-VTO3TNIB.js} +1 -1
  88. package/dist/{chunk-6FAHPGCZ.js → chunk-WDKHZRAS.js} +183 -25
  89. package/dist/{chunk-5GLPYGKS.js → chunk-WRDLHR2F.js} +2 -2
  90. package/dist/{chunk-RVSEGFPD.js → chunk-XLOELLAS.js} +9 -4
  91. package/dist/chunk-XS33QBJA.js +112 -0
  92. package/dist/{chunk-FQUV5KTM.js → chunk-Z2UWFEJW.js} +8 -8
  93. package/dist/src/index.d.ts +8 -1
  94. package/dist/src/index.js +11 -12
  95. package/package.json +1 -1
  96. package/dist/chunk-BC3VCZ3E.js +0 -86
  97. package/dist/chunk-RER3FRTD.js +0 -265
  98. package/dist/chunk-X7YWD6IS.js +0 -44
@@ -1,35 +1,36 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  defersToNativeMode
4
- } from "../chunk-A4R6BZCK.js";
4
+ } from "../chunk-D62EONG3.js";
5
5
  import {
6
6
  isGatingMoment,
7
7
  recordKeylessMoment
8
- } from "../chunk-EUAQ4YAN.js";
8
+ } from "../chunk-UCS65VVR.js";
9
9
  import {
10
10
  readHookInput
11
- } from "../chunk-VX3BWMC5.js";
11
+ } from "../chunk-OEKFD5BC.js";
12
12
  import {
13
13
  denyReasonFrom,
14
14
  isDeferAnswer
15
15
  } from "../chunk-YHG74UFF.js";
16
- import "../chunk-UW4LWAWY.js";
17
- import "../chunk-YKLCWWEI.js";
18
- import "../chunk-WM5XMCID.js";
19
- import "../chunk-3ZUTNTZA.js";
20
- import "../chunk-2XUPP4WM.js";
21
- import "../chunk-CH6DTGQR.js";
22
- import "../chunk-RVSEGFPD.js";
23
- import "../chunk-7LUFYRH4.js";
24
- import "../chunk-DSTLA2TC.js";
25
- import "../chunk-EZIEXHYM.js";
26
- import "../chunk-IPHOUBTU.js";
16
+ import "../chunk-4RF52LSU.js";
17
+ import "../chunk-BMANRGJQ.js";
18
+ import "../chunk-VOSGZ6PH.js";
19
+ import "../chunk-2ZTL3PGN.js";
20
+ import "../chunk-CUEZMPLJ.js";
21
+ import "../chunk-HBHEX3JQ.js";
22
+ import "../chunk-XLOELLAS.js";
23
+ import "../chunk-2D7BAOMY.js";
24
+ import "../chunk-GOPIMNVC.js";
25
+ import "../chunk-3AJIK5AO.js";
26
+ import "../chunk-4PX4QK2Z.js";
27
27
  import "../chunk-EQRS3SGM.js";
28
- import "../chunk-QF4RI5CD.js";
28
+ import "../chunk-OI3DJA7N.js";
29
29
  import "../chunk-XHKBHWLX.js";
30
30
  import "../chunk-L4ZCFMWW.js";
31
31
  import {
32
32
  CODEX_AGENT,
33
+ DEFAULT_SESSION,
33
34
  codexAllow,
34
35
  codexDeny,
35
36
  codexPass,
@@ -51,15 +52,15 @@ import {
51
52
  toCodexWire,
52
53
  toPolicyLookup,
53
54
  toPolicyLookups
54
- } from "../chunk-DNVDKHQD.js";
55
+ } from "../chunk-HCMM3BOW.js";
55
56
  import {
56
- DEFAULT_SESSION,
57
+ DECISION_STOP_REASON,
57
58
  askUser,
58
- cancelQuestion,
59
- pollForAnswer,
60
- savePendingQuestion,
61
- sendNotification
62
- } from "../chunk-RER3FRTD.js";
59
+ isDecisionStopped,
60
+ isLocalQuestionHandoff,
61
+ sendNotification,
62
+ waitForQuestion
63
+ } from "../chunk-XS33QBJA.js";
63
64
  import {
64
65
  UNNAMED_ACTION,
65
66
  deriveActionBody,
@@ -68,24 +69,22 @@ import {
68
69
  describeToolCall,
69
70
  scopePathFor,
70
71
  sessionIdentityOf
71
- } from "../chunk-CKOLDI47.js";
72
- import "../chunk-V27AHID3.js";
72
+ } from "../chunk-BDI2MXTT.js";
73
+ import "../chunk-IVQMNLSA.js";
73
74
  import {
74
75
  getMachineId
75
- } from "../chunk-IAEXPTXA.js";
76
+ } from "../chunk-N4VNLISN.js";
76
77
  import {
77
78
  canonicalJson
78
- } from "../chunk-WB2C7VPF.js";
79
+ } from "../chunk-OW6AZDY2.js";
79
80
  import "../chunk-GMXKITVA.js";
80
81
  import "../chunk-DINDL2CF.js";
81
- import "../chunk-GUVCYYDK.js";
82
- import "../chunk-BC3VCZ3E.js";
82
+ import "../chunk-S5CMLR35.js";
83
83
  import "../chunk-EYRGBYZG.js";
84
84
  import "../chunk-SAF6HGAA.js";
85
85
  import "../chunk-7QLSKOSU.js";
86
86
  import "../chunk-KZERVKTD.js";
87
- import "../chunk-X7YWD6IS.js";
88
- import "../chunk-4LL6LG5X.js";
87
+ import "../chunk-KAVDAZ7A.js";
89
88
  import {
90
89
  getApiKey
91
90
  } from "../chunk-2UMNXADU.js";
@@ -96,7 +95,7 @@ import {
96
95
  hookWaitClamped,
97
96
  hookWaitDeadline,
98
97
  resolveGate
99
- } from "../chunk-6FAHPGCZ.js";
98
+ } from "../chunk-WDKHZRAS.js";
100
99
 
101
100
  // bin/pushary-codex-hook.ts
102
101
  import { basename } from "path";
@@ -220,21 +219,12 @@ var pushQuestion = async (apiKey, input, lookup, waitSeconds, mode) => {
220
219
  // key on locally. Passing it through lets the server collapse a retried create
221
220
  // the same way, instead of putting the same approval on the phone twice.
222
221
  toolUseId: input.tool_use_id
223
- });
224
- if (result.suppressed || result.noDevices) {
225
- return {
226
- answer: { answered: false },
227
- correlationId: result.correlationId,
228
- suppressed: !!result.suppressed,
229
- noDevices: !!result.noDevices,
230
- clampCut: false
231
- };
232
- }
222
+ }).catch(() => ({ correlationId: "", status: "unavailable" }));
233
223
  const now = Date.now();
234
224
  const deadline = hookWaitDeadline(START_MS, waitSeconds, "codex", now);
235
225
  const clampCut = hookWaitClamped(START_MS, waitSeconds, "codex", now);
236
- const answer = await pollForAnswer(apiKey, result.correlationId, deadline);
237
- return { answer, correlationId: result.correlationId, suppressed: false, noDevices: false, clampCut };
226
+ const answer = await waitForQuestion(apiKey, result, deadline);
227
+ return { answer, localHandoff: !answer.answered && isLocalQuestionHandoff(result), clampCut };
238
228
  };
239
229
  var notifyApprovalNeeded = async (apiKey, input, lookup) => {
240
230
  try {
@@ -293,18 +283,14 @@ var decidePermissionRequest = async (input) => {
293
283
  return codexPass();
294
284
  }
295
285
  const waitSeconds = toolPolicy.mode === "push_first" ? toolPolicy.pushFirstSeconds : effectiveWaitSeconds(toolPolicy.timeoutAction, toolPolicy.timeoutSeconds, "codex");
296
- const { answer, correlationId, suppressed, clampCut } = await pushQuestion(apiKey, input, lookup, waitSeconds, toolPolicy.mode);
297
- if (suppressed) {
298
- await cancelQuestion(apiKey, correlationId).catch(() => {
299
- });
300
- return codexPass();
301
- }
286
+ const { answer, localHandoff, clampCut } = await pushQuestion(apiKey, input, lookup, waitSeconds, toolPolicy.mode);
287
+ if (isDecisionStopped(answer)) return codexDeny(DECISION_STOP_REASON);
288
+ if (localHandoff) return codexPass();
302
289
  if (answer.answered) {
303
290
  if (isDeferAnswer(answer.value)) return codexPass();
304
291
  if (answer.value === "yes") return codexAllow();
305
292
  return codexDeny(denyReasonFrom(answer.value, answer.note));
306
293
  }
307
- savePendingQuestion(input.session_id || DEFAULT_SESSION, correlationId, input.tool_use_id);
308
294
  if (toolPolicy.mode === "push_first") return codexPass();
309
295
  if (clampCut) return codexPass();
310
296
  return permissionTimeoutDecision(toolPolicy.timeoutAction);
@@ -327,10 +313,9 @@ var decidePushFirstBeforeTheTool = async (apiKey, input, lookup, pushFirstSecond
327
313
  } catch {
328
314
  return recordPreToolUse(callKey, codexPass());
329
315
  }
330
- const { answer, correlationId, suppressed, noDevices } = pushed;
331
- if (suppressed || noDevices) {
332
- await cancelQuestion(apiKey, correlationId).catch(() => {
333
- });
316
+ const { answer, localHandoff } = pushed;
317
+ if (isDecisionStopped(answer)) return codexDeny(DECISION_STOP_REASON);
318
+ if (localHandoff) {
334
319
  return recordPreToolUse(callKey, codexPass());
335
320
  }
336
321
  if (answer.answered) {
@@ -341,7 +326,6 @@ var decidePushFirstBeforeTheTool = async (apiKey, input, lookup, pushFirstSecond
341
326
  }
342
327
  return recordPreToolUse(callKey, codexDeny(denyReasonFrom(answer.value, answer.note)));
343
328
  }
344
- savePendingQuestion(input.session_id || DEFAULT_SESSION, correlationId, input.tool_use_id);
345
329
  return recordPreToolUse(callKey, codexPass());
346
330
  };
347
331
  var decidePreToolUse = async (input) => {
@@ -378,14 +362,11 @@ var decidePreToolUse = async (input) => {
378
362
  try {
379
363
  pushed = await pushQuestion(apiKey, input, lookup, effectiveWaitSeconds(toolPolicy.timeoutAction, toolPolicy.timeoutSeconds, "codex"), "push_only");
380
364
  } catch {
381
- return recordPreToolUse(callKey, preToolUseTimeoutDecision(toolPolicy.timeoutAction, "Push notification failed, denying per policy"));
382
- }
383
- const { answer, correlationId, suppressed, clampCut } = pushed;
384
- if (suppressed) {
385
- await cancelQuestion(apiKey, correlationId).catch(() => {
386
- });
387
- return recordPreToolUse(callKey, codexPass());
365
+ return recordPreToolUse(callKey, codexDeny("Pushary could not create a verifiable approval. Retry the action."));
388
366
  }
367
+ const { answer, localHandoff, clampCut } = pushed;
368
+ if (isDecisionStopped(answer)) return codexDeny(DECISION_STOP_REASON);
369
+ if (localHandoff) return recordPreToolUse(callKey, codexPass());
389
370
  if (answer.answered) {
390
371
  if (isDeferAnswer(answer.value)) return recordPreToolUse(callKey, codexPass());
391
372
  if (answer.value === "yes") {
@@ -394,7 +375,6 @@ var decidePreToolUse = async (input) => {
394
375
  }
395
376
  return recordPreToolUse(callKey, codexDeny(denyReasonFrom(answer.value, answer.note)));
396
377
  }
397
- savePendingQuestion(input.session_id || DEFAULT_SESSION, correlationId, input.tool_use_id);
398
378
  if (clampCut) return recordPreToolUse(callKey, codexPass());
399
379
  return recordPreToolUse(callKey, preToolUseTimeoutDecision(toolPolicy.timeoutAction));
400
380
  }
@@ -1,27 +1,27 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  reportEvent
4
- } from "../chunk-DNVDKHQD.js";
4
+ } from "../chunk-HCMM3BOW.js";
5
5
  import {
6
6
  askUser,
7
+ isDecisionStopped,
7
8
  waitForAnswer
8
- } from "../chunk-RER3FRTD.js";
9
- import "../chunk-CKOLDI47.js";
10
- import "../chunk-V27AHID3.js";
9
+ } from "../chunk-XS33QBJA.js";
10
+ import "../chunk-BDI2MXTT.js";
11
+ import "../chunk-IVQMNLSA.js";
11
12
  import {
12
13
  getMachineId
13
- } from "../chunk-IAEXPTXA.js";
14
- import "../chunk-WB2C7VPF.js";
14
+ } from "../chunk-N4VNLISN.js";
15
+ import "../chunk-OW6AZDY2.js";
15
16
  import "../chunk-EYRGBYZG.js";
16
17
  import "../chunk-SAF6HGAA.js";
17
18
  import "../chunk-7QLSKOSU.js";
18
19
  import "../chunk-KZERVKTD.js";
19
- import "../chunk-X7YWD6IS.js";
20
- import "../chunk-4LL6LG5X.js";
20
+ import "../chunk-KAVDAZ7A.js";
21
21
  import {
22
22
  getApiKey
23
23
  } from "../chunk-2UMNXADU.js";
24
- import "../chunk-6FAHPGCZ.js";
24
+ import "../chunk-WDKHZRAS.js";
25
25
 
26
26
  // bin/pushary-codex.ts
27
27
  import { basename } from "path";
@@ -82,9 +82,10 @@ var main = async () => {
82
82
  machineId: getMachineId()
83
83
  });
84
84
  const deadline = Date.now() + 12e4;
85
- while (Date.now() < deadline) {
85
+ while (!isDecisionStopped(result) && Date.now() < deadline) {
86
86
  const remaining = Math.min(Math.max(deadline - Date.now(), 1e3), 3e4);
87
87
  const answer = await waitForAnswer(apiKey, result.correlationId, remaining);
88
+ if (isDecisionStopped(answer)) break;
88
89
  if (answer.answered) {
89
90
  const approved = answer.value === "yes";
90
91
  process.stdout.write(JSON.stringify({ approved }));
@@ -1,32 +1,31 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  printKeyCheck
4
- } from "../chunk-YJAQRKH5.js";
4
+ } from "../chunk-RLXVW4AM.js";
5
5
  import {
6
6
  connectDevice,
7
7
  connectExistingApp,
8
8
  printConnectInstructions
9
- } from "../chunk-AMZJ3CKW.js";
9
+ } from "../chunk-KI4PA7MQ.js";
10
10
  import "../chunk-3EGEA4KH.js";
11
11
  import {
12
12
  checkApiKey
13
- } from "../chunk-JDFB3YKG.js";
13
+ } from "../chunk-I6GZX3FT.js";
14
14
  import "../chunk-QCGNGEGE.js";
15
15
  import {
16
16
  createIo
17
17
  } from "../chunk-5RUIFDTP.js";
18
18
  import {
19
19
  exitOnHelpFlag
20
- } from "../chunk-MOY5X6HJ.js";
21
- import "../chunk-ZDAT5KMU.js";
20
+ } from "../chunk-DLLAWCQB.js";
21
+ import "../chunk-D6PRC3YQ.js";
22
22
  import {
23
23
  parseFlags
24
24
  } from "../chunk-GMXKITVA.js";
25
25
  import "../chunk-DINDL2CF.js";
26
26
  import {
27
27
  readKeySource
28
- } from "../chunk-GUVCYYDK.js";
29
- import "../chunk-BC3VCZ3E.js";
28
+ } from "../chunk-S5CMLR35.js";
30
29
  import "../chunk-EYRGBYZG.js";
31
30
  import "../chunk-SAF6HGAA.js";
32
31
  import {
@@ -35,10 +34,9 @@ import {
35
34
  import {
36
35
  EXIT
37
36
  } from "../chunk-KZERVKTD.js";
38
- import "../chunk-X7YWD6IS.js";
39
- import "../chunk-4LL6LG5X.js";
37
+ import "../chunk-KAVDAZ7A.js";
40
38
  import "../chunk-2UMNXADU.js";
41
- import "../chunk-6FAHPGCZ.js";
39
+ import "../chunk-WDKHZRAS.js";
42
40
 
43
41
  // bin/pushary-connect.ts
44
42
  exitOnHelpFlag("connect");
@@ -2,16 +2,16 @@
2
2
  import {
3
3
  coworkOutput,
4
4
  parseCoworkOptions
5
- } from "../chunk-5GLPYGKS.js";
5
+ } from "../chunk-WRDLHR2F.js";
6
6
  import {
7
7
  canOpenBrowser,
8
8
  openInBrowser
9
9
  } from "../chunk-PUZZELE6.js";
10
- import "../chunk-3ZUTNTZA.js";
10
+ import "../chunk-2ZTL3PGN.js";
11
11
  import {
12
12
  exitOnHelpFlag
13
- } from "../chunk-MOY5X6HJ.js";
14
- import "../chunk-ZDAT5KMU.js";
13
+ } from "../chunk-DLLAWCQB.js";
14
+ import "../chunk-D6PRC3YQ.js";
15
15
  import "../chunk-GMXKITVA.js";
16
16
  import "../chunk-DINDL2CF.js";
17
17
  import {
@@ -22,7 +22,7 @@ import {
22
22
  } from "../chunk-KZERVKTD.js";
23
23
  import {
24
24
  CLAUDE_CONNECTOR_GUIDE
25
- } from "../chunk-6FAHPGCZ.js";
25
+ } from "../chunk-WDKHZRAS.js";
26
26
 
27
27
  // bin/pushary-cowork.ts
28
28
  exitOnHelpFlag("cowork");
@@ -1,18 +1,18 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  inspectConfiguredManagedProviders
4
- } from "../chunk-FQUV5KTM.js";
5
- import "../chunk-G4TL4YWH.js";
4
+ } from "../chunk-Z2UWFEJW.js";
5
+ import "../chunk-6AEM5RCS.js";
6
6
  import {
7
7
  HEARTBEAT_INTERVAL_MS,
8
8
  sendHeartbeat
9
- } from "../chunk-EPFDN2ZT.js";
10
- import "../chunk-76XICHYT.js";
9
+ } from "../chunk-32RMQO5Z.js";
10
+ import "../chunk-HGUZOUB2.js";
11
11
  import {
12
12
  detectProviderLiveCapabilities,
13
13
  hasSpawnProvider,
14
14
  resolveControlPolicy
15
- } from "../chunk-3OXHYPZG.js";
15
+ } from "../chunk-IM2A5H33.js";
16
16
  import {
17
17
  SESSION_REAP_SILENCE_MS,
18
18
  describeIdleWindow,
@@ -20,15 +20,15 @@ import {
20
20
  listProcessProofs,
21
21
  ownsLiveProcess,
22
22
  silentSpawnedProofs
23
- } from "../chunk-M7WWEFG6.js";
23
+ } from "../chunk-QQGNFHIK.js";
24
24
  import {
25
25
  startRegisteredTranscripts
26
- } from "../chunk-UW4LWAWY.js";
27
- import "../chunk-YKLCWWEI.js";
28
- import "../chunk-WM5XMCID.js";
29
- import "../chunk-3ZUTNTZA.js";
30
- import "../chunk-2XUPP4WM.js";
31
- import "../chunk-CH6DTGQR.js";
26
+ } from "../chunk-4RF52LSU.js";
27
+ import "../chunk-BMANRGJQ.js";
28
+ import "../chunk-VOSGZ6PH.js";
29
+ import "../chunk-2ZTL3PGN.js";
30
+ import "../chunk-CUEZMPLJ.js";
31
+ import "../chunk-HBHEX3JQ.js";
32
32
  import {
33
33
  DAEMON_LEASE_RENEW_INTERVAL_MS,
34
34
  acquireDaemonLease,
@@ -45,48 +45,46 @@ import {
45
45
  requestDaemonHandoff,
46
46
  stopDaemonRunning,
47
47
  writeDaemonNeedsLogin
48
- } from "../chunk-RVSEGFPD.js";
49
- import "../chunk-7LUFYRH4.js";
50
- import "../chunk-DSTLA2TC.js";
51
- import "../chunk-EZIEXHYM.js";
52
- import "../chunk-IPHOUBTU.js";
48
+ } from "../chunk-XLOELLAS.js";
49
+ import "../chunk-2D7BAOMY.js";
50
+ import "../chunk-GOPIMNVC.js";
51
+ import "../chunk-3AJIK5AO.js";
52
+ import "../chunk-4PX4QK2Z.js";
53
53
  import "../chunk-EQRS3SGM.js";
54
- import "../chunk-QF4RI5CD.js";
54
+ import "../chunk-OI3DJA7N.js";
55
55
  import {
56
56
  spawnClaude
57
57
  } from "../chunk-XHKBHWLX.js";
58
58
  import {
59
59
  resolveBinary
60
60
  } from "../chunk-L4ZCFMWW.js";
61
- import "../chunk-V27AHID3.js";
61
+ import "../chunk-IVQMNLSA.js";
62
62
  import {
63
63
  getMachineId
64
- } from "../chunk-IAEXPTXA.js";
65
- import "../chunk-WB2C7VPF.js";
64
+ } from "../chunk-N4VNLISN.js";
65
+ import "../chunk-OW6AZDY2.js";
66
66
  import {
67
67
  writeHuman
68
68
  } from "../chunk-QCGNGEGE.js";
69
69
  import {
70
70
  exitOnHelpFlag
71
- } from "../chunk-MOY5X6HJ.js";
72
- import "../chunk-ZDAT5KMU.js";
71
+ } from "../chunk-DLLAWCQB.js";
72
+ import "../chunk-D6PRC3YQ.js";
73
73
  import "../chunk-GMXKITVA.js";
74
74
  import "../chunk-DINDL2CF.js";
75
75
  import {
76
76
  readControlMode
77
- } from "../chunk-GUVCYYDK.js";
78
- import "../chunk-BC3VCZ3E.js";
77
+ } from "../chunk-S5CMLR35.js";
79
78
  import "../chunk-7QLSKOSU.js";
80
79
  import {
81
80
  EXIT
82
81
  } from "../chunk-KZERVKTD.js";
83
- import "../chunk-X7YWD6IS.js";
84
- import "../chunk-4LL6LG5X.js";
82
+ import "../chunk-KAVDAZ7A.js";
85
83
  import {
86
84
  getApiKey,
87
85
  getBaseUrl
88
86
  } from "../chunk-2UMNXADU.js";
89
- import "../chunk-6FAHPGCZ.js";
87
+ import "../chunk-WDKHZRAS.js";
90
88
 
91
89
  // src/spawn-daemon.ts
92
90
  import { execFileSync, spawn } from "child_process";
@@ -8,19 +8,19 @@ import {
8
8
  openCodePluginDir,
9
9
  openCodePluginFile,
10
10
  removeOpenCodeMcpServer
11
- } from "../chunk-E3NF5CL2.js";
11
+ } from "../chunk-HQIVR7MM.js";
12
12
  import {
13
13
  isClaudeMcpSnapshot,
14
14
  removeClaudeMcpServers,
15
15
  removePusharySettings,
16
16
  restoreClaudeMcpServer
17
- } from "../chunk-76XICHYT.js";
17
+ } from "../chunk-HGUZOUB2.js";
18
18
  import {
19
19
  removeGeminiSettings
20
- } from "../chunk-7LUFYRH4.js";
21
- import "../chunk-EZIEXHYM.js";
20
+ } from "../chunk-2D7BAOMY.js";
21
+ import "../chunk-3AJIK5AO.js";
22
22
  import "../chunk-L4ZCFMWW.js";
23
- import "../chunk-V27AHID3.js";
23
+ import "../chunk-IVQMNLSA.js";
24
24
  import {
25
25
  claudeJson,
26
26
  claudeMcpReceipt,
@@ -34,14 +34,16 @@ import {
34
34
  geminiSettings,
35
35
  removeCodexHooks,
36
36
  removeCodexSettings
37
- } from "../chunk-WB2C7VPF.js";
37
+ } from "../chunk-OW6AZDY2.js";
38
38
  import {
39
39
  exitOnHelpFlag
40
- } from "../chunk-MOY5X6HJ.js";
41
- import "../chunk-ZDAT5KMU.js";
40
+ } from "../chunk-DLLAWCQB.js";
41
+ import "../chunk-D6PRC3YQ.js";
42
42
  import "../chunk-DINDL2CF.js";
43
43
  import "../chunk-KZERVKTD.js";
44
- import "../chunk-6FAHPGCZ.js";
44
+ import {
45
+ DISCONNECTABLE_AGENTS
46
+ } from "../chunk-WDKHZRAS.js";
45
47
 
46
48
  // bin/pushary-disconnect.ts
47
49
  import { readdirSync, readFileSync, rmSync, writeFileSync } from "fs";
@@ -49,7 +51,6 @@ import { parse as parseTOML, stringify as stringifyTOML } from "smol-toml";
49
51
 
50
52
  // src/disconnect.ts
51
53
  import { dirname } from "path";
52
- var DISCONNECTABLE_AGENTS = ["claude", "codex", "gemini", "cursor", "opencode"];
53
54
  var isDisconnectableAgent = (value) => DISCONNECTABLE_AGENTS.includes(value);
54
55
  var removeCursorHooks = (config) => {
55
56
  const hooks = config.hooks;
@@ -8,9 +8,11 @@ import {
8
8
  } from "../chunk-GU3EJCVV.js";
9
9
  import {
10
10
  readMachineReadiness
11
- } from "../chunk-EPFDN2ZT.js";
11
+ } from "../chunk-32RMQO5Z.js";
12
+ import {
13
+ CURSOR_GATE_SCRIPT
14
+ } from "../chunk-KBITFQST.js";
12
15
  import {
13
- CURSOR_GATE_SCRIPT,
14
16
  agentProbes,
15
17
  detectAgent,
16
18
  detectAllAgents,
@@ -18,28 +20,28 @@ import {
18
20
  isDetected,
19
21
  isPluginRegistered,
20
22
  vscodeSettingsTargets
21
- } from "../chunk-G24SEVCI.js";
23
+ } from "../chunk-6VANQN5Q.js";
22
24
  import {
23
25
  OPENCODE_PLUGIN_PLACEHOLDER,
24
26
  openCodePluginDir,
25
27
  openCodePluginFile,
26
28
  openCodeWired
27
- } from "../chunk-E3NF5CL2.js";
28
- import "../chunk-76XICHYT.js";
29
+ } from "../chunk-HQIVR7MM.js";
30
+ import "../chunk-HGUZOUB2.js";
29
31
  import {
30
32
  detectProviderLiveCapabilities,
31
33
  hasSpawnProvider,
32
34
  resolveControlPolicy
33
- } from "../chunk-3OXHYPZG.js";
35
+ } from "../chunk-IM2A5H33.js";
34
36
  import {
35
37
  readLedgerSummary
36
- } from "../chunk-EUAQ4YAN.js";
38
+ } from "../chunk-UCS65VVR.js";
37
39
  import {
38
40
  describeBridgeResolution,
39
41
  isBridgeLocator,
40
42
  liveBridgeProbe,
41
43
  resolveBridgeStub
42
- } from "../chunk-2XUPP4WM.js";
44
+ } from "../chunk-CUEZMPLJ.js";
43
45
  import {
44
46
  claudeOtherHolders,
45
47
  claudeWired,
@@ -54,7 +56,7 @@ import {
54
56
  geminiWired,
55
57
  holdsLong,
56
58
  pusharyHookExecutable
57
- } from "../chunk-CH6DTGQR.js";
59
+ } from "../chunk-HBHEX3JQ.js";
58
60
  import {
59
61
  daemonHasRemoteProof,
60
62
  daemonServiceManagerAvailable,
@@ -63,22 +65,22 @@ import {
63
65
  readDaemonNeedsLogin,
64
66
  readDaemonStatus,
65
67
  readInstalledDaemonService
66
- } from "../chunk-RVSEGFPD.js";
68
+ } from "../chunk-XLOELLAS.js";
67
69
  import {
68
70
  GEMINI_HOOK_BINARY,
69
71
  hasGeminiHooks,
70
72
  missingGeminiHookEvents
71
- } from "../chunk-7LUFYRH4.js";
72
- import "../chunk-EZIEXHYM.js";
73
+ } from "../chunk-2D7BAOMY.js";
74
+ import "../chunk-3AJIK5AO.js";
73
75
  import "../chunk-XHKBHWLX.js";
74
76
  import {
75
77
  execNpm
76
78
  } from "../chunk-L4ZCFMWW.js";
77
- import "../chunk-CKOLDI47.js";
78
- import "../chunk-V27AHID3.js";
79
+ import "../chunk-BDI2MXTT.js";
80
+ import "../chunk-IVQMNLSA.js";
79
81
  import {
80
82
  getMachineId
81
- } from "../chunk-IAEXPTXA.js";
83
+ } from "../chunk-N4VNLISN.js";
82
84
  import {
83
85
  CODEX_HOOK_EVENTS,
84
86
  claudeJson,
@@ -100,27 +102,27 @@ import {
100
102
  pusharyConfigFile,
101
103
  readCodexMcpAuth,
102
104
  vscodePluginDir
103
- } from "../chunk-WB2C7VPF.js";
105
+ } from "../chunk-OW6AZDY2.js";
104
106
  import {
105
107
  describeReach,
106
108
  describeRoundTrip,
107
109
  fetchChannels,
108
110
  reachVerdict,
109
111
  verifyRoundTrip
110
- } from "../chunk-AMZJ3CKW.js";
112
+ } from "../chunk-KI4PA7MQ.js";
111
113
  import "../chunk-3EGEA4KH.js";
112
114
  import {
113
115
  checkApiKey,
114
116
  describeKeyCheck
115
- } from "../chunk-JDFB3YKG.js";
117
+ } from "../chunk-I6GZX3FT.js";
116
118
  import "../chunk-QCGNGEGE.js";
117
119
  import {
118
120
  createIo
119
121
  } from "../chunk-5RUIFDTP.js";
120
122
  import {
121
123
  exitOnHelpFlag
122
- } from "../chunk-MOY5X6HJ.js";
123
- import "../chunk-ZDAT5KMU.js";
124
+ } from "../chunk-DLLAWCQB.js";
125
+ import "../chunk-D6PRC3YQ.js";
124
126
  import {
125
127
  parseFlags
126
128
  } from "../chunk-GMXKITVA.js";
@@ -131,8 +133,7 @@ import {
131
133
  keyPrefix,
132
134
  readControlMode,
133
135
  readKeySource
134
- } from "../chunk-GUVCYYDK.js";
135
- import "../chunk-BC3VCZ3E.js";
136
+ } from "../chunk-S5CMLR35.js";
136
137
  import {
137
138
  callMcpTool,
138
139
  sendMcpRequest
@@ -144,15 +145,14 @@ import {
144
145
  import {
145
146
  EXIT
146
147
  } from "../chunk-KZERVKTD.js";
147
- import "../chunk-X7YWD6IS.js";
148
- import "../chunk-4LL6LG5X.js";
148
+ import "../chunk-KAVDAZ7A.js";
149
149
  import {
150
150
  getBaseUrl
151
151
  } from "../chunk-2UMNXADU.js";
152
152
  import {
153
153
  CURSOR_GATE_EVENTS,
154
154
  HOOK_LOCATOR_BINARY
155
- } from "../chunk-6FAHPGCZ.js";
155
+ } from "../chunk-WDKHZRAS.js";
156
156
 
157
157
  // bin/pushary-doctor.ts
158
158
  import { existsSync, readFileSync, writeFileSync } from "fs";