pushary 1.9.35 → 1.9.37

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 (102) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/dist/bin/pushary-bell-hook.js +25 -25
  4. package/dist/bin/pushary-bell.js +9 -9
  5. package/dist/bin/pushary-claude.js +24 -24
  6. package/dist/bin/pushary-clean.js +52 -45
  7. package/dist/bin/pushary-codex-bridge.js +17 -17
  8. package/dist/bin/pushary-codex-hook.js +65 -41
  9. package/dist/bin/pushary-codex.js +12 -12
  10. package/dist/bin/pushary-connect.js +24 -24
  11. package/dist/bin/pushary-cowork.js +5 -5
  12. package/dist/bin/pushary-daemon.js +32 -32
  13. package/dist/bin/pushary-disconnect.js +31 -28
  14. package/dist/bin/pushary-doctor.js +35 -34
  15. package/dist/bin/pushary-elicitation-hook.js +25 -25
  16. package/dist/bin/pushary-gemini-bridge.js +13 -13
  17. package/dist/bin/pushary-gemini-hook.js +27 -27
  18. package/dist/bin/pushary-hook.js +34 -30
  19. package/dist/bin/pushary-login.js +12 -12
  20. package/dist/bin/pushary-logout.js +24 -24
  21. package/dist/bin/pushary-mcp.js +9 -9
  22. package/dist/bin/pushary-mode.js +12 -12
  23. package/dist/bin/pushary-notification-hook.js +24 -24
  24. package/dist/bin/pushary-opencode-hook.js +26 -26
  25. package/dist/bin/pushary-permission-denied-hook.js +29 -29
  26. package/dist/bin/pushary-permission-hook.js +28 -28
  27. package/dist/bin/pushary-post-hook.js +24 -24
  28. package/dist/bin/pushary-prompt-hook.js +24 -24
  29. package/dist/bin/pushary-session-end-hook.js +24 -24
  30. package/dist/bin/pushary-session-start-hook.js +28 -28
  31. package/dist/bin/pushary-setup.js +65 -56
  32. package/dist/bin/pushary-stats.js +5 -5
  33. package/dist/bin/pushary-status.js +26 -26
  34. package/dist/bin/pushary-stop-hook.js +24 -24
  35. package/dist/bin/pushary-stopfailure-hook.js +24 -24
  36. package/dist/bin/pushary-suggestions.js +12 -12
  37. package/dist/bin/pushary-transcript-register.js +17 -17
  38. package/dist/bin/pushary-transcripts.js +7 -7
  39. package/dist/bin/pushary-upgrade.js +30 -30
  40. package/dist/bin/pushary-wait.js +12 -12
  41. package/dist/bin/pushary.js +6 -6
  42. package/dist/{chunk-7FQL5NWJ.js → chunk-235LKHLW.js} +301 -90
  43. package/dist/{chunk-LOYSI2CZ.js → chunk-2WZJHJAB.js} +5 -5
  44. package/dist/{chunk-YABMIGR3.js → chunk-3Y73MQPF.js} +1 -1
  45. package/dist/{chunk-GC3SUMYD.js → chunk-4OQHT5IJ.js} +4 -4
  46. package/dist/{chunk-QJ3ENGBT.js → chunk-6SYU5LVK.js} +3 -3
  47. package/dist/{chunk-NKAMF2YJ.js → chunk-6VUVVVVN.js} +1 -1
  48. package/dist/{chunk-3LS3GFJW.js → chunk-AZXPJLKC.js} +1 -1
  49. package/dist/{chunk-A455TSHF.js → chunk-B7SE22M7.js} +2 -2
  50. package/dist/{chunk-XLXG6MA5.js → chunk-DG5QHKJA.js} +3 -3
  51. package/dist/{chunk-7IVV4LLF.js → chunk-DYALNCS6.js} +3 -3
  52. package/dist/{chunk-PEEJP4HN.js → chunk-EK6PRPCY.js} +4 -4
  53. package/dist/{chunk-FPYBX36E.js → chunk-F3J6JFR2.js} +5 -5
  54. package/dist/{chunk-Z6HDYK2A.js → chunk-FFRH7KZP.js} +2 -2
  55. package/dist/{chunk-V4ZIG66K.js → chunk-GKTVIN4F.js} +1 -1
  56. package/dist/{chunk-YRDNKY77.js → chunk-GQSJVYKN.js} +6 -6
  57. package/dist/{chunk-EGTRIM74.js → chunk-GSP7CC52.js} +4 -4
  58. package/dist/{chunk-NMQLY4PE.js → chunk-GUHM2UQO.js} +2 -2
  59. package/dist/{chunk-OZMGO4WF.js → chunk-HA22GGDG.js} +5 -5
  60. package/dist/{chunk-WFPXKCN4.js → chunk-HJF57K2U.js} +5 -5
  61. package/dist/{chunk-VTAC5FBZ.js → chunk-HK2RPWAD.js} +1 -1
  62. package/dist/{chunk-SMSX4TCC.js → chunk-HQR6DYVG.js} +1 -1
  63. package/dist/{chunk-FQQSW7MD.js → chunk-ISNGKZG4.js} +1 -1
  64. package/dist/{chunk-EJWSE7S7.js → chunk-JLQV3XLV.js} +4 -4
  65. package/dist/{chunk-A5FFSXZE.js → chunk-JMLJHKJN.js} +2 -2
  66. package/dist/{chunk-7S7H7V5V.js → chunk-KHLYOIPY.js} +97 -40
  67. package/dist/{chunk-HVUBWLER.js → chunk-KZ3XE3JG.js} +34 -109
  68. package/dist/{chunk-CK3W7Q5S.js → chunk-MAGB6VW6.js} +1 -1
  69. package/dist/{chunk-DCBSD22V.js → chunk-N5WEEYV6.js} +3 -3
  70. package/dist/{chunk-U7CN5HG2.js → chunk-NDQXKLGE.js} +5 -5
  71. package/dist/{chunk-IRU7DKJW.js → chunk-NPE44CX4.js} +7 -3
  72. package/dist/{chunk-22YSHBTI.js → chunk-NWSWP3KY.js} +3 -3
  73. package/dist/{chunk-HQKYWUBF.js → chunk-OSLC7G3D.js} +2 -2
  74. package/dist/{chunk-7UGGCTTW.js → chunk-PDDJKGIW.js} +2 -2
  75. package/dist/chunk-PDRKQSC6.js +184 -0
  76. package/dist/{chunk-4PIAOJAW.js → chunk-PYWLW7PC.js} +1 -1
  77. package/dist/{chunk-6OGDGQTT.js → chunk-Q3TCLMYC.js} +5 -5
  78. package/dist/{chunk-57FFQR46.js → chunk-Q52PBCN7.js} +1 -1
  79. package/dist/{chunk-DQKEGNTI.js → chunk-QUKATQ66.js} +1 -1
  80. package/dist/{chunk-UPRNSD2T.js → chunk-RFIHLLRH.js} +9 -6
  81. package/dist/{chunk-36ZCFJUI.js → chunk-SNI4FGOV.js} +1 -1
  82. package/dist/{chunk-43H2FUNN.js → chunk-SNUNAIKK.js} +4 -4
  83. package/dist/{chunk-WMB3OCI4.js → chunk-T2NKNQPM.js} +2 -2
  84. package/dist/{chunk-WPSI4246.js → chunk-UEIL72RN.js} +1 -1
  85. package/dist/{chunk-UDECNZYI.js → chunk-UK3WY3LE.js} +2 -2
  86. package/dist/{chunk-E2OZZZKP.js → chunk-UKCGR5T2.js} +2 -2
  87. package/dist/{chunk-CPYOJRDN.js → chunk-V7Q7DQXL.js} +8 -8
  88. package/dist/{chunk-ULJFIF5N.js → chunk-VA36Q6BD.js} +1 -1
  89. package/dist/{chunk-FDNMQEU6.js → chunk-VMIDUNOT.js} +2 -2
  90. package/dist/{chunk-SMRMWDFE.js → chunk-W73URGML.js} +43 -17
  91. package/dist/{chunk-45OXG3VR.js → chunk-WXA3CFZR.js} +1 -1
  92. package/dist/{chunk-4TFD3WAA.js → chunk-YNJ372JU.js} +2 -2
  93. package/dist/{chunk-H52HBSOD.js → chunk-Z5ORWTY3.js} +3 -3
  94. package/dist/{chunk-B5RLJ6QD.js → chunk-ZMR3DSMH.js} +9 -5
  95. package/dist/{chunk-HJNCVY5F.js → chunk-ZQD6GVS7.js} +7 -7
  96. package/dist/{global-upgrade-IZCB4WIE.js → global-upgrade-R57HCUTC.js} +6 -6
  97. package/dist/{paths-4WAA57P5.js → paths-G2AYNZCD.js} +2 -2
  98. package/dist/{reapply-GJ73ZHDD.js → reapply-FHCOPXEN.js} +20 -20
  99. package/dist/src/index.js +19 -19
  100. package/dist/{upgrade-lock-J5PIKSYV.js → upgrade-lock-3I7AF7E3.js} +3 -3
  101. package/package.json +1 -1
  102. package/dist/chunk-FYQG2UTK.js +0 -71
@@ -1,40 +1,41 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  takeHookHoldBudget
4
- } from "../chunk-YABMIGR3.js";
4
+ } from "../chunk-3Y73MQPF.js";
5
5
  import {
6
+ askAgentQuestions,
6
7
  defersToNativeMode,
7
8
  reportMachineDenial
8
- } from "../chunk-FYQG2UTK.js";
9
+ } from "../chunk-PDRKQSC6.js";
9
10
  import {
10
11
  isGatingMoment,
11
12
  recordKeylessMoment
12
- } from "../chunk-VTAC5FBZ.js";
13
+ } from "../chunk-HK2RPWAD.js";
13
14
  import {
14
15
  triggerAutoUpdate
15
- } from "../chunk-7UGGCTTW.js";
16
+ } from "../chunk-PDDJKGIW.js";
16
17
  import {
17
18
  readHookInput
18
- } from "../chunk-B5RLJ6QD.js";
19
+ } from "../chunk-ZMR3DSMH.js";
19
20
  import {
20
21
  announceSubscriptionRequired,
21
22
  isDeferAnswer
22
- } from "../chunk-NKAMF2YJ.js";
23
- import "../chunk-CPYOJRDN.js";
23
+ } from "../chunk-6VUVVVVN.js";
24
+ import "../chunk-V7Q7DQXL.js";
24
25
  import "../chunk-DWQYCOPI.js";
25
- import "../chunk-FPYBX36E.js";
26
- import "../chunk-CK3W7Q5S.js";
27
- import "../chunk-4PIAOJAW.js";
28
- import "../chunk-SMSX4TCC.js";
26
+ import "../chunk-F3J6JFR2.js";
27
+ import "../chunk-MAGB6VW6.js";
28
+ import "../chunk-PYWLW7PC.js";
29
+ import "../chunk-HQR6DYVG.js";
29
30
  import "../chunk-XHKBHWLX.js";
30
- import "../chunk-7S7H7V5V.js";
31
- import "../chunk-6OGDGQTT.js";
32
- import "../chunk-QJ3ENGBT.js";
33
- import "../chunk-57FFQR46.js";
34
- import "../chunk-36ZCFJUI.js";
31
+ import "../chunk-KHLYOIPY.js";
32
+ import "../chunk-Q3TCLMYC.js";
33
+ import "../chunk-6SYU5LVK.js";
34
+ import "../chunk-Q52PBCN7.js";
35
+ import "../chunk-SNI4FGOV.js";
35
36
  import "../chunk-GMXKITVA.js";
36
37
  import "../chunk-6ICPEJY5.js";
37
- import "../chunk-DCBSD22V.js";
38
+ import "../chunk-N5WEEYV6.js";
38
39
  import {
39
40
  CODEX_AGENT,
40
41
  DEFAULT_SESSION,
@@ -78,8 +79,8 @@ import {
78
79
  toPolicyLookup,
79
80
  toPolicyLookups,
80
81
  userScope
81
- } from "../chunk-SMRMWDFE.js";
82
- import "../chunk-DQKEGNTI.js";
82
+ } from "../chunk-W73URGML.js";
83
+ import "../chunk-QUKATQ66.js";
83
84
  import {
84
85
  askUser,
85
86
  cancelQuestion,
@@ -93,31 +94,31 @@ import {
93
94
  sendNotification,
94
95
  unavailableQuestionUnlessSubscriptionRequired,
95
96
  waitForQuestion
96
- } from "../chunk-OZMGO4WF.js";
97
+ } from "../chunk-HA22GGDG.js";
97
98
  import "../chunk-POFBE6ZY.js";
98
99
  import {
99
100
  SubscriptionRequiredError
100
- } from "../chunk-H52HBSOD.js";
101
- import "../chunk-7IVV4LLF.js";
102
- import "../chunk-22YSHBTI.js";
101
+ } from "../chunk-Z5ORWTY3.js";
102
+ import "../chunk-DYALNCS6.js";
103
+ import "../chunk-NWSWP3KY.js";
103
104
  import {
104
105
  getMachineId
105
- } from "../chunk-ULJFIF5N.js";
106
+ } from "../chunk-VA36Q6BD.js";
106
107
  import "../chunk-7QLSKOSU.js";
107
108
  import {
108
109
  EXIT
109
110
  } from "../chunk-KZERVKTD.js";
110
- import "../chunk-NMQLY4PE.js";
111
+ import "../chunk-GUHM2UQO.js";
111
112
  import {
112
113
  canonicalJson
113
- } from "../chunk-UPRNSD2T.js";
114
+ } from "../chunk-RFIHLLRH.js";
114
115
  import {
115
116
  writeFileAtomic
116
117
  } from "../chunk-AQFEP65J.js";
117
118
  import {
118
119
  getApiKey
119
- } from "../chunk-3LS3GFJW.js";
120
- import "../chunk-45OXG3VR.js";
120
+ } from "../chunk-AZXPJLKC.js";
121
+ import "../chunk-WXA3CFZR.js";
121
122
  import {
122
123
  CODEX_RESCUE_TOOL_NAME,
123
124
  DECISION_STOP_REASON,
@@ -126,10 +127,11 @@ import {
126
127
  KILL_REASON,
127
128
  SCOPE_BATCH_REASON,
128
129
  UNVERIFIABLE_APPROVAL_REASON,
129
- approvalModeWithoutLocalPrompt,
130
- codexCallNeedsAPerson,
131
130
  codexDeferredPreToolUse,
132
131
  codexHasNoPromptOfItsOwn,
132
+ codexPreToolUseDelivery,
133
+ codexQuestionAnswerReason,
134
+ codexQuestionGoesToPushary,
133
135
  codexStopRescueOutput,
134
136
  codexUnansweredPreToolUse,
135
137
  denyReasonFrom,
@@ -138,10 +140,13 @@ import {
138
140
  hookHoldWindowMs,
139
141
  hookWaitClamped,
140
142
  hookWaitDeadline,
143
+ isCodexQuestionTool,
144
+ parseCodexQuestions,
145
+ questionHandedToTheTerminal,
141
146
  resolveGate,
142
147
  scopeBreachReasonOf,
143
148
  unapprovedScopeReason
144
- } from "../chunk-7FQL5NWJ.js";
149
+ } from "../chunk-235LKHLW.js";
145
150
 
146
151
  // bin/pushary-codex-hook.ts
147
152
  import { basename } from "path";
@@ -564,7 +569,7 @@ var callKeyFor = (input) => codexCallKey({
564
569
  var START_MS2 = Date.now();
565
570
  var agentNameFor = (input) => `Codex - ${basename(input.cwd ?? process.cwd())}`;
566
571
  var describeFor = (input, lookup) => input.tool_name === "apply_patch" ? describeApplyPatch(input.tool_input?.command) ?? describeToolCall(lookup.tool, lookup.input, "hook") : describeToolCall(lookup.tool, lookup.input, "hook");
567
- var pushQuestion = async (apiKey, input, lookup, waitSeconds, mode, scope) => {
572
+ var pushQuestion = async (apiKey, input, lookup, waitSeconds, mode, noLocalSurface, scope) => {
568
573
  const projectName = basename(input.cwd ?? process.cwd());
569
574
  const description = describeFor(input, lookup);
570
575
  const result = await askUser(apiKey, {
@@ -582,7 +587,7 @@ var pushQuestion = async (apiKey, input, lookup, waitSeconds, mode, scope) => {
582
587
  actionBody: deriveActionBody(input.tool_name ?? "", input.tool_input ?? {}),
583
588
  repoKey: repoKeyFor(input.cwd),
584
589
  scopePath: scope?.path,
585
- ...codexHasNoPromptOfItsOwn(scope?.reason, input.permission_mode) ? { localSurfaceAvailable: false } : {},
590
+ ...noLocalSurface ? { localSurfaceAvailable: false } : {},
586
591
  sessionToolAware: true,
587
592
  permissionMode: input.permission_mode,
588
593
  // Codex has always sent this; it is what claimNotify and markApproved already
@@ -660,7 +665,7 @@ var decidePermissionRequest = async (input) => {
660
665
  }
661
666
  const waitSeconds = toolPolicy.mode === "push_first" ? toolPolicy.pushFirstSeconds : effectiveWaitSeconds(toolPolicy.timeoutAction, toolPolicy.timeoutSeconds, "codex");
662
667
  const asked = recorded ? { ...input, tool_use_id: recorded.toolUseId } : input;
663
- const { answer, localHandoff, clampCut, paused } = await pushQuestion(apiKey, asked, lookup, waitSeconds, toolPolicy.mode);
668
+ const { answer, localHandoff, clampCut, paused } = await pushQuestion(apiKey, asked, lookup, waitSeconds, toolPolicy.mode, codexHasNoPromptOfItsOwn(void 0, input.permission_mode));
664
669
  if (isDecisionStopped(answer)) return codexDeny(DECISION_STOP_REASON);
665
670
  if (localHandoff) return codexPass();
666
671
  if (answer.answered) {
@@ -690,7 +695,6 @@ var scopeQuestionOf = (verdict) => {
690
695
  const reason = scopeBreachReasonOf(verdict);
691
696
  return reason !== void 0 && verdict.kind === "gate" ? { reason, path: verdict.scopePath } : void 0;
692
697
  };
693
- var codexDeliveryMode = (policyMode, noPromptOfItsOwn) => noPromptOfItsOwn ? approvalModeWithoutLocalPrompt(policyMode) : policyMode;
694
698
  var unansweredOutcome = (scope, fallback) => scope ? codexDeny(unapprovedScopeReason(scope.reason)) : fallback;
695
699
  var codexDecisionOf = (ending) => ending.kind === "deny" ? codexDeny(ending.reason) : codexPass();
696
700
  var deferredPreToolUse = (scope) => unansweredOutcome(scope, codexDecisionOf(codexDeferredPreToolUse()));
@@ -700,6 +704,24 @@ var unansweredPreToolUse = (toolPolicy, fullWindowServed, paused) => codexDecisi
700
704
  fullWindowServed,
701
705
  paused
702
706
  }));
707
+ var keyboardOutcome = (deliveryMode, scope, toolPolicy) => deliveryMode === "push_first" ? codexPass() : unansweredOutcome(scope, unansweredPreToolUse(toolPolicy, false, false));
708
+ var codexQuestionDeadline = () => hookWaitDeadline(START_MS2, effectiveWaitSeconds("wait", 0, "codex"), "codex", Date.now());
709
+ var answerCodexQuestion = async (apiKey, input, verdict, modeState) => {
710
+ if (!codexQuestionGoesToPushary(verdict)) return codexPass();
711
+ if (questionHandedToTheTerminal(input.tool_name ?? "", modeState)) return codexPass();
712
+ const questions = parseCodexQuestions(input.tool_name ?? "", input.tool_input ?? {});
713
+ if (!questions) return codexPass();
714
+ const projectName = basename(input.cwd ?? process.cwd());
715
+ const outcome = await askAgentQuestions(apiKey, {
716
+ toolName: input.tool_name ?? "",
717
+ agentName: agentNameFor(input),
718
+ projectName,
719
+ sessionId: input.session_id,
720
+ toolUseId: input.tool_use_id,
721
+ deadline: codexQuestionDeadline()
722
+ }, questions);
723
+ return outcome.kind === "answered" ? codexDeny(codexQuestionAnswerReason(outcome.answers)) : codexPass();
724
+ };
703
725
  var decidePreToolUse = async (input) => {
704
726
  if (isPusharyOwnTool(input.tool_name)) return codexPass();
705
727
  let apiKey;
@@ -727,6 +749,7 @@ var decidePreToolUse = async (input) => {
727
749
  return codexDeny(verdict.kind === "kill" ? KILL_REASON : verdict.reason);
728
750
  }
729
751
  if (verdict.kind === "allow") return codexPass();
752
+ if (isCodexQuestionTool(input.tool_name)) return await answerCodexQuestion(apiKey, input, verdict, gateInput.modeState);
730
753
  const scope = scopeQuestionOf(verdict);
731
754
  if (!scope && codexApprovalsReviewer(input) === "auto_review") return codexPass();
732
755
  if (!scope && defersToNativeMode(input.permission_mode, input.tool_name ?? "")) return codexPass();
@@ -735,22 +758,23 @@ var decidePreToolUse = async (input) => {
735
758
  permissionMode: input.permission_mode,
736
759
  deletesFiles: patchDeletesFiles(input.tool_name ?? "", input.tool_input ?? {})
737
760
  };
738
- if (!codexCallNeedsAPerson(gateInput, verdict, callFacts)) return codexPass();
761
+ const delivery = codexPreToolUseDelivery(gateInput, verdict, callFacts);
762
+ if (delivery.kind === "pass") return codexPass();
739
763
  const toolPolicy = verdict.policy;
740
764
  const callKey = callKeyFor(input);
741
765
  if (scope && gateInput.toolInputs.length > 1) return recordPreToolUse(callKey, codexDeny(SCOPE_BATCH_REASON));
742
- const deliveryMode = codexDeliveryMode(toolPolicy.mode, codexHasNoPromptOfItsOwn(scope?.reason, input.permission_mode));
743
- if (deliveryMode === "push_only") {
766
+ const deliveryMode = delivery.policy.mode;
767
+ if (deliveryMode === "push_only" || deliveryMode === "push_first") {
744
768
  let pushed;
745
769
  try {
746
- pushed = await pushQuestion(apiKey, input, lookup, effectiveWaitSeconds(toolPolicy.timeoutAction, toolPolicy.timeoutSeconds, "codex"), "push_only", scope);
770
+ pushed = await pushQuestion(apiKey, input, lookup, effectiveWaitSeconds(toolPolicy.timeoutAction, toolPolicy.timeoutSeconds, "codex"), deliveryMode, codexHasNoPromptOfItsOwn(scope?.reason, input.permission_mode), scope);
747
771
  } catch (error) {
748
772
  if (error instanceof SubscriptionRequiredError) return recordPreToolUse(callKey, codexStepsAside(error, input));
749
773
  return recordPreToolUse(callKey, codexDeny(UNVERIFIABLE_APPROVAL_REASON));
750
774
  }
751
775
  const { answer, localHandoff, clampCut, paused } = pushed;
752
776
  if (isDecisionStopped(answer)) return codexDeny(DECISION_STOP_REASON);
753
- if (localHandoff) return recordPreToolUse(callKey, unansweredOutcome(scope, unansweredPreToolUse(toolPolicy, false, false)));
777
+ if (localHandoff) return recordPreToolUse(callKey, keyboardOutcome(deliveryMode, scope, toolPolicy));
754
778
  if (answer.answered) {
755
779
  if (isDeferAnswer(answer.value)) return recordPreToolUse(callKey, deferredPreToolUse(scope));
756
780
  if (answer.value === "yes") return recordApproval(callKey, input);
@@ -770,7 +794,7 @@ var decidePreToolUse = async (input) => {
770
794
  };
771
795
  var repairCodexHoldsQuietly = async () => {
772
796
  try {
773
- const { repairCodexHolds } = await import("../reapply-GJ73ZHDD.js");
797
+ const { repairCodexHolds } = await import("../reapply-FHCOPXEN.js");
774
798
  repairCodexHolds();
775
799
  } catch {
776
800
  return;
@@ -1,32 +1,32 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  reportEvent
4
- } from "../chunk-SMRMWDFE.js";
5
- import "../chunk-DQKEGNTI.js";
4
+ } from "../chunk-W73URGML.js";
5
+ import "../chunk-QUKATQ66.js";
6
6
  import {
7
7
  askUser,
8
8
  isDecisionStopped,
9
9
  waitForAnswer
10
- } from "../chunk-OZMGO4WF.js";
10
+ } from "../chunk-HA22GGDG.js";
11
11
  import "../chunk-POFBE6ZY.js";
12
- import "../chunk-H52HBSOD.js";
13
- import "../chunk-7IVV4LLF.js";
14
- import "../chunk-22YSHBTI.js";
12
+ import "../chunk-Z5ORWTY3.js";
13
+ import "../chunk-DYALNCS6.js";
14
+ import "../chunk-NWSWP3KY.js";
15
15
  import {
16
16
  getMachineId
17
- } from "../chunk-ULJFIF5N.js";
17
+ } from "../chunk-VA36Q6BD.js";
18
18
  import "../chunk-7QLSKOSU.js";
19
19
  import "../chunk-KZERVKTD.js";
20
- import "../chunk-NMQLY4PE.js";
21
- import "../chunk-UPRNSD2T.js";
20
+ import "../chunk-GUHM2UQO.js";
21
+ import "../chunk-RFIHLLRH.js";
22
22
  import "../chunk-AQFEP65J.js";
23
23
  import {
24
24
  getApiKey
25
- } from "../chunk-3LS3GFJW.js";
25
+ } from "../chunk-AZXPJLKC.js";
26
26
  import {
27
27
  NPX_LATEST_COMMAND
28
- } from "../chunk-45OXG3VR.js";
29
- import "../chunk-7FQL5NWJ.js";
28
+ } from "../chunk-WXA3CFZR.js";
29
+ import "../chunk-235LKHLW.js";
30
30
 
31
31
  // bin/pushary-codex.ts
32
32
  import { basename } from "path";
@@ -3,61 +3,61 @@ import {
3
3
  connectDevice,
4
4
  connectExistingApp,
5
5
  printConnectInstructions
6
- } from "../chunk-43H2FUNN.js";
6
+ } from "../chunk-SNUNAIKK.js";
7
7
  import "../chunk-3EGEA4KH.js";
8
8
  import "../chunk-QCGNGEGE.js";
9
9
  import {
10
10
  printKeyCheck
11
- } from "../chunk-PEEJP4HN.js";
11
+ } from "../chunk-EK6PRPCY.js";
12
12
  import {
13
13
  CONNECTED_THROUGH_MAC_APP,
14
14
  PAIR_FROM_MAC_APP,
15
15
  readMacAppConnection
16
- } from "../chunk-EGTRIM74.js";
17
- import "../chunk-FDNMQEU6.js";
18
- import "../chunk-WFPXKCN4.js";
16
+ } from "../chunk-GSP7CC52.js";
17
+ import "../chunk-VMIDUNOT.js";
18
+ import "../chunk-HJF57K2U.js";
19
19
  import {
20
20
  createIo
21
21
  } from "../chunk-FO3MDD26.js";
22
22
  import {
23
23
  exitOnHelpFlag
24
- } from "../chunk-A5FFSXZE.js";
25
- import "../chunk-7S7H7V5V.js";
26
- import "../chunk-6OGDGQTT.js";
27
- import "../chunk-QJ3ENGBT.js";
28
- import "../chunk-57FFQR46.js";
29
- import "../chunk-36ZCFJUI.js";
24
+ } from "../chunk-JMLJHKJN.js";
25
+ import "../chunk-KHLYOIPY.js";
26
+ import "../chunk-Q3TCLMYC.js";
27
+ import "../chunk-6SYU5LVK.js";
28
+ import "../chunk-Q52PBCN7.js";
29
+ import "../chunk-SNI4FGOV.js";
30
30
  import {
31
31
  parseFlags
32
32
  } from "../chunk-GMXKITVA.js";
33
33
  import "../chunk-6ICPEJY5.js";
34
34
  import {
35
35
  readKeySource
36
- } from "../chunk-DCBSD22V.js";
37
- import "../chunk-SMRMWDFE.js";
38
- import "../chunk-DQKEGNTI.js";
39
- import "../chunk-OZMGO4WF.js";
36
+ } from "../chunk-N5WEEYV6.js";
37
+ import "../chunk-W73URGML.js";
38
+ import "../chunk-QUKATQ66.js";
39
+ import "../chunk-HA22GGDG.js";
40
40
  import "../chunk-POFBE6ZY.js";
41
- import "../chunk-H52HBSOD.js";
41
+ import "../chunk-Z5ORWTY3.js";
42
42
  import {
43
43
  checkApiKey
44
- } from "../chunk-7IVV4LLF.js";
45
- import "../chunk-22YSHBTI.js";
46
- import "../chunk-ULJFIF5N.js";
44
+ } from "../chunk-DYALNCS6.js";
45
+ import "../chunk-NWSWP3KY.js";
46
+ import "../chunk-VA36Q6BD.js";
47
47
  import {
48
48
  UsageError
49
49
  } from "../chunk-7QLSKOSU.js";
50
50
  import {
51
51
  EXIT
52
52
  } from "../chunk-KZERVKTD.js";
53
- import "../chunk-NMQLY4PE.js";
54
- import "../chunk-UPRNSD2T.js";
53
+ import "../chunk-GUHM2UQO.js";
54
+ import "../chunk-RFIHLLRH.js";
55
55
  import "../chunk-AQFEP65J.js";
56
- import "../chunk-3LS3GFJW.js";
56
+ import "../chunk-AZXPJLKC.js";
57
57
  import {
58
58
  isInvocationOf
59
- } from "../chunk-45OXG3VR.js";
60
- import "../chunk-7FQL5NWJ.js";
59
+ } from "../chunk-WXA3CFZR.js";
60
+ import "../chunk-235LKHLW.js";
61
61
 
62
62
  // bin/pushary-connect.ts
63
63
  exitOnHelpFlag("pair");
@@ -2,15 +2,15 @@
2
2
  import {
3
3
  coworkOutput,
4
4
  parseCoworkOptions
5
- } from "../chunk-XLXG6MA5.js";
5
+ } from "../chunk-DG5QHKJA.js";
6
6
  import {
7
7
  canOpenBrowser,
8
8
  openInBrowser
9
9
  } from "../chunk-PUZZELE6.js";
10
10
  import {
11
11
  exitOnHelpFlag
12
- } from "../chunk-A5FFSXZE.js";
13
- import "../chunk-57FFQR46.js";
12
+ } from "../chunk-JMLJHKJN.js";
13
+ import "../chunk-Q52PBCN7.js";
14
14
  import "../chunk-GMXKITVA.js";
15
15
  import {
16
16
  UsageError
@@ -18,10 +18,10 @@ import {
18
18
  import {
19
19
  EXIT
20
20
  } from "../chunk-KZERVKTD.js";
21
- import "../chunk-45OXG3VR.js";
21
+ import "../chunk-WXA3CFZR.js";
22
22
  import {
23
23
  CLAUDE_CONNECTOR_GUIDE
24
- } from "../chunk-7FQL5NWJ.js";
24
+ } from "../chunk-235LKHLW.js";
25
25
 
26
26
  // bin/pushary-cowork.ts
27
27
  exitOnHelpFlag("cowork");
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  inspectConfiguredManagedProviders
4
- } from "../chunk-HJNCVY5F.js";
5
- import "../chunk-A455TSHF.js";
4
+ } from "../chunk-ZQD6GVS7.js";
5
+ import "../chunk-B7SE22M7.js";
6
6
  import {
7
7
  HEARTBEAT_INTERVAL_MS,
8
8
  sendHeartbeat
9
- } from "../chunk-YRDNKY77.js";
9
+ } from "../chunk-GQSJVYKN.js";
10
10
  import {
11
11
  codexBinaryIsBroken,
12
12
  detectProviderLiveCapabilities,
@@ -15,7 +15,7 @@ import {
15
15
  launchableProviders,
16
16
  resolveControlPolicy,
17
17
  trackProviderInventory
18
- } from "../chunk-4TFD3WAA.js";
18
+ } from "../chunk-YNJ372JU.js";
19
19
  import "../chunk-RIVNNBEK.js";
20
20
  import {
21
21
  SESSION_REAP_SILENCE_MS,
@@ -24,13 +24,13 @@ import {
24
24
  listProcessProofs,
25
25
  ownsLiveProcess,
26
26
  silentSpawnedProofs
27
- } from "../chunk-E2OZZZKP.js";
27
+ } from "../chunk-UKCGR5T2.js";
28
28
  import {
29
29
  readLocalAutoUpdateReport
30
- } from "../chunk-7UGGCTTW.js";
30
+ } from "../chunk-PDDJKGIW.js";
31
31
  import {
32
32
  startRegisteredTranscripts
33
- } from "../chunk-CPYOJRDN.js";
33
+ } from "../chunk-V7Q7DQXL.js";
34
34
  import "../chunk-DWQYCOPI.js";
35
35
  import {
36
36
  DAEMON_LEASE_RENEW_INTERVAL_MS,
@@ -48,10 +48,10 @@ import {
48
48
  requestDaemonHandoff,
49
49
  stopDaemonRunning,
50
50
  writeDaemonNeedsLogin
51
- } from "../chunk-FPYBX36E.js";
52
- import "../chunk-CK3W7Q5S.js";
53
- import "../chunk-4PIAOJAW.js";
54
- import "../chunk-SMSX4TCC.js";
51
+ } from "../chunk-F3J6JFR2.js";
52
+ import "../chunk-MAGB6VW6.js";
53
+ import "../chunk-PYWLW7PC.js";
54
+ import "../chunk-HQR6DYVG.js";
55
55
  import {
56
56
  spawnClaude
57
57
  } from "../chunk-XHKBHWLX.js";
@@ -60,46 +60,46 @@ import {
60
60
  } from "../chunk-QCGNGEGE.js";
61
61
  import {
62
62
  readSignedOutDiagnosis
63
- } from "../chunk-FDNMQEU6.js";
64
- import "../chunk-WFPXKCN4.js";
63
+ } from "../chunk-VMIDUNOT.js";
64
+ import "../chunk-HJF57K2U.js";
65
65
  import {
66
66
  exitOnHelpFlag
67
- } from "../chunk-A5FFSXZE.js";
68
- import "../chunk-7S7H7V5V.js";
69
- import "../chunk-6OGDGQTT.js";
70
- import "../chunk-QJ3ENGBT.js";
71
- import "../chunk-57FFQR46.js";
72
- import "../chunk-36ZCFJUI.js";
67
+ } from "../chunk-JMLJHKJN.js";
68
+ import "../chunk-KHLYOIPY.js";
69
+ import "../chunk-Q3TCLMYC.js";
70
+ import "../chunk-6SYU5LVK.js";
71
+ import "../chunk-Q52PBCN7.js";
72
+ import "../chunk-SNI4FGOV.js";
73
73
  import "../chunk-GMXKITVA.js";
74
74
  import "../chunk-6ICPEJY5.js";
75
75
  import {
76
76
  readControlMode
77
- } from "../chunk-DCBSD22V.js";
78
- import "../chunk-SMRMWDFE.js";
79
- import "../chunk-DQKEGNTI.js";
80
- import "../chunk-OZMGO4WF.js";
77
+ } from "../chunk-N5WEEYV6.js";
78
+ import "../chunk-W73URGML.js";
79
+ import "../chunk-QUKATQ66.js";
80
+ import "../chunk-HA22GGDG.js";
81
81
  import "../chunk-POFBE6ZY.js";
82
- import "../chunk-H52HBSOD.js";
83
- import "../chunk-7IVV4LLF.js";
84
- import "../chunk-22YSHBTI.js";
82
+ import "../chunk-Z5ORWTY3.js";
83
+ import "../chunk-DYALNCS6.js";
84
+ import "../chunk-NWSWP3KY.js";
85
85
  import {
86
86
  getMachineId
87
- } from "../chunk-ULJFIF5N.js";
87
+ } from "../chunk-VA36Q6BD.js";
88
88
  import "../chunk-7QLSKOSU.js";
89
89
  import {
90
90
  EXIT
91
91
  } from "../chunk-KZERVKTD.js";
92
- import "../chunk-NMQLY4PE.js";
92
+ import "../chunk-GUHM2UQO.js";
93
93
  import {
94
94
  resolveBinary
95
- } from "../chunk-UPRNSD2T.js";
95
+ } from "../chunk-RFIHLLRH.js";
96
96
  import "../chunk-AQFEP65J.js";
97
97
  import {
98
98
  getApiKey,
99
99
  getBaseUrl
100
- } from "../chunk-3LS3GFJW.js";
101
- import "../chunk-45OXG3VR.js";
102
- import "../chunk-7FQL5NWJ.js";
100
+ } from "../chunk-AZXPJLKC.js";
101
+ import "../chunk-WXA3CFZR.js";
102
+ import "../chunk-235LKHLW.js";
103
103
 
104
104
  // src/spawn-daemon.ts
105
105
  import { execFileSync, spawn } from "child_process";
@@ -2,17 +2,17 @@
2
2
  import {
3
3
  declinedAgentsFile,
4
4
  recordDeclinedAgent
5
- } from "../chunk-WMB3OCI4.js";
5
+ } from "../chunk-T2NKNQPM.js";
6
6
  import {
7
7
  isCursorPluginLeftover,
8
8
  isPusharyCursorPluginManifest,
9
9
  releaseSoleGate
10
- } from "../chunk-GC3SUMYD.js";
10
+ } from "../chunk-4OQHT5IJ.js";
11
11
  import {
12
12
  planFxRemoval,
13
13
  removeInstructionBlock
14
- } from "../chunk-EJWSE7S7.js";
15
- import "../chunk-UDECNZYI.js";
14
+ } from "../chunk-JLQV3XLV.js";
15
+ import "../chunk-UK3WY3LE.js";
16
16
  import {
17
17
  OPENCODE_PLUGIN_SIBLING,
18
18
  OPENCODE_PLUGIN_SIBLING_CONTENTS,
@@ -24,12 +24,13 @@ import {
24
24
  openCodePluginDir,
25
25
  openCodePluginFile,
26
26
  removeOpenCodeMcpServer
27
- } from "../chunk-WFPXKCN4.js";
27
+ } from "../chunk-HJF57K2U.js";
28
28
  import {
29
29
  exitOnHelpFlag
30
- } from "../chunk-A5FFSXZE.js";
30
+ } from "../chunk-JMLJHKJN.js";
31
31
  import {
32
32
  compatibleConfigFile,
33
+ compatibleDocuments,
33
34
  compatibleInstructionsFile,
34
35
  compatibleMcpFile,
35
36
  compatiblePermissionRuleFile,
@@ -40,29 +41,29 @@ import {
40
41
  removePusharySettings,
41
42
  removePusharyToolPermissions,
42
43
  restoreClaudeMcpServer
43
- } from "../chunk-7S7H7V5V.js";
44
- import "../chunk-6OGDGQTT.js";
44
+ } from "../chunk-KHLYOIPY.js";
45
+ import "../chunk-Q3TCLMYC.js";
45
46
  import {
46
47
  removeGeminiSettings
47
- } from "../chunk-QJ3ENGBT.js";
48
- import "../chunk-57FFQR46.js";
49
- import "../chunk-36ZCFJUI.js";
48
+ } from "../chunk-6SYU5LVK.js";
49
+ import "../chunk-Q52PBCN7.js";
50
+ import "../chunk-SNI4FGOV.js";
50
51
  import "../chunk-GMXKITVA.js";
51
52
  import "../chunk-6ICPEJY5.js";
52
- import "../chunk-DCBSD22V.js";
53
- import "../chunk-SMRMWDFE.js";
54
- import "../chunk-DQKEGNTI.js";
55
- import "../chunk-OZMGO4WF.js";
53
+ import "../chunk-N5WEEYV6.js";
54
+ import "../chunk-W73URGML.js";
55
+ import "../chunk-QUKATQ66.js";
56
+ import "../chunk-HA22GGDG.js";
56
57
  import "../chunk-POFBE6ZY.js";
57
- import "../chunk-H52HBSOD.js";
58
- import "../chunk-7IVV4LLF.js";
59
- import "../chunk-22YSHBTI.js";
60
- import "../chunk-ULJFIF5N.js";
58
+ import "../chunk-Z5ORWTY3.js";
59
+ import "../chunk-DYALNCS6.js";
60
+ import "../chunk-NWSWP3KY.js";
61
+ import "../chunk-VA36Q6BD.js";
61
62
  import "../chunk-7QLSKOSU.js";
62
63
  import {
63
64
  EXIT
64
65
  } from "../chunk-KZERVKTD.js";
65
- import "../chunk-NMQLY4PE.js";
66
+ import "../chunk-GUHM2UQO.js";
66
67
  import {
67
68
  claudeJson,
68
69
  claudeMcpReceipt,
@@ -84,20 +85,20 @@ import {
84
85
  geminiSettings,
85
86
  removeCodexHooks,
86
87
  removeCodexSettings
87
- } from "../chunk-UPRNSD2T.js";
88
+ } from "../chunk-RFIHLLRH.js";
88
89
  import {
89
90
  readFileOrMissing
90
91
  } from "../chunk-AQFEP65J.js";
91
- import "../chunk-3LS3GFJW.js";
92
+ import "../chunk-AZXPJLKC.js";
92
93
  import {
93
94
  isInvocationOf
94
- } from "../chunk-45OXG3VR.js";
95
+ } from "../chunk-WXA3CFZR.js";
95
96
  import {
96
97
  DISCONNECTABLE_AGENTS,
97
98
  DISCONNECT_AGENT_IDS,
98
99
  hookCompatibleProfileBySource,
99
100
  normalizeAgentId
100
- } from "../chunk-7FQL5NWJ.js";
101
+ } from "../chunk-235LKHLW.js";
101
102
 
102
103
  // bin/pushary-disconnect.ts
103
104
  import { readdirSync, rmSync, writeFileSync } from "fs";
@@ -165,6 +166,7 @@ var disconnectPlan = (agent) => {
165
166
  case "droid":
166
167
  case "devin":
167
168
  case "antigravity":
169
+ case "grok":
168
170
  return compatibleDisconnectPlan(agent);
169
171
  }
170
172
  };
@@ -179,10 +181,10 @@ var compatibleDisconnectPlan = (source) => {
179
181
  add(compatibleConfigFile(profile), (config) => removeCompatibleHooks(config, profile));
180
182
  add(compatibleMcpFile(profile), (config) => removeCompatibleMcpServer(config, profile));
181
183
  add(compatiblePermissionRuleFile(profile), removePusharyToolPermissions);
182
- return [...removers].map(([path, edits]) => ({
184
+ return [...compatibleDocuments(profile)].map(([path, file]) => ({
183
185
  path,
184
- format: "json",
185
- remove: (config) => edits.reduce((changed, edit) => edit(config) || changed, false)
186
+ format: file.format,
187
+ remove: (config) => (removers.get(path) ?? []).reduce((changed, edit) => edit(config) || changed, false)
186
188
  }));
187
189
  };
188
190
  var disconnectRemovals = (agent) => {
@@ -218,7 +220,8 @@ var disconnectInstructionFile = (agent) => {
218
220
  case "qoder":
219
221
  case "droid":
220
222
  case "devin":
221
- case "antigravity": {
223
+ case "antigravity":
224
+ case "grok": {
222
225
  const profile = hookCompatibleProfileBySource(agent);
223
226
  return profile ? compatibleInstructionsFile(profile) : null;
224
227
  }