pushary 1.9.110 → 1.9.112

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 (128) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/{api-4MS4CPKY.js → api-3AWH6PR6.js} +11 -11
  3. package/dist/bin/pushary-audit.js +3 -3
  4. package/dist/bin/pushary-bell-hook.js +27 -27
  5. package/dist/bin/pushary-bell.js +10 -10
  6. package/dist/bin/pushary-claude.js +25 -25
  7. package/dist/bin/pushary-clean.js +34 -34
  8. package/dist/bin/pushary-codex-bridge.js +21 -21
  9. package/dist/bin/pushary-codex-hook.js +32 -32
  10. package/dist/bin/pushary-codex-session.js +8 -8
  11. package/dist/bin/pushary-codex.js +15 -15
  12. package/dist/bin/pushary-connect.js +28 -28
  13. package/dist/bin/pushary-cowork.js +5 -5
  14. package/dist/bin/pushary-daemon.js +66 -484
  15. package/dist/bin/pushary-disconnect.js +27 -27
  16. package/dist/bin/pushary-display-hook.js +17 -17
  17. package/dist/bin/pushary-doctor.js +42 -42
  18. package/dist/bin/pushary-elicitation-hook.js +27 -27
  19. package/dist/bin/pushary-gemini-bridge.js +15 -15
  20. package/dist/bin/pushary-gemini-hook.js +29 -29
  21. package/dist/bin/pushary-hook.js +32 -32
  22. package/dist/bin/pushary-login.js +21 -21
  23. package/dist/bin/pushary-logout.js +26 -26
  24. package/dist/bin/pushary-mcp.js +12 -12
  25. package/dist/bin/pushary-mode.js +15 -15
  26. package/dist/bin/pushary-notification-hook.js +26 -26
  27. package/dist/bin/pushary-opencode-hook.js +28 -28
  28. package/dist/bin/pushary-permission-denied-hook.js +32 -32
  29. package/dist/bin/pushary-permission-hook.js +32 -32
  30. package/dist/bin/pushary-post-hook.js +26 -26
  31. package/dist/bin/pushary-prompt-hook.js +26 -26
  32. package/dist/bin/pushary-session-end-hook.js +26 -26
  33. package/dist/bin/pushary-session-start-hook.js +35 -35
  34. package/dist/bin/pushary-setup.js +61 -47
  35. package/dist/bin/pushary-stats.js +5 -5
  36. package/dist/bin/pushary-status.js +32 -32
  37. package/dist/bin/pushary-stop-hook.js +26 -26
  38. package/dist/bin/pushary-stopfailure-hook.js +26 -26
  39. package/dist/bin/pushary-suggestions.js +15 -15
  40. package/dist/bin/pushary-transcript-register.js +17 -17
  41. package/dist/bin/pushary-transcripts.js +25 -25
  42. package/dist/bin/pushary-upgrade.js +40 -40
  43. package/dist/bin/pushary-wait.js +15 -15
  44. package/dist/bin/pushary.js +7 -7
  45. package/dist/{chunk-WEWTT7FE.js → chunk-2SCXLYWI.js} +1 -1
  46. package/dist/{chunk-NMSRA7QO.js → chunk-2Y2HEOT6.js} +459 -28
  47. package/dist/{chunk-I2LPRMDP.js → chunk-3JCT4ABX.js} +34 -13
  48. package/dist/{chunk-ZCFPKN72.js → chunk-4D53JUQC.js} +4 -4
  49. package/dist/{chunk-HENHPRJN.js → chunk-5CHFR4SM.js} +6 -6
  50. package/dist/{chunk-AZBKSMYC.js → chunk-5HEKYLZD.js} +1 -1
  51. package/dist/{chunk-LJH2QDF3.js → chunk-5TWYZGZY.js} +10 -10
  52. package/dist/{chunk-T72BV3CU.js → chunk-66FYIYTH.js} +4 -4
  53. package/dist/{chunk-2U54YY4M.js → chunk-6DWWTT2K.js} +3 -3
  54. package/dist/{chunk-JPR4S254.js → chunk-7M5QJE24.js} +3 -3
  55. package/dist/{chunk-QYBQCMRP.js → chunk-BATGR3LA.js} +1 -1
  56. package/dist/{chunk-S7ZX7V5S.js → chunk-BI7NKEEZ.js} +1 -1
  57. package/dist/{chunk-NGZB5BVO.js → chunk-BJ6INBM6.js} +6 -6
  58. package/dist/{chunk-2MJL3ZVW.js → chunk-BNZOA7RL.js} +1 -1
  59. package/dist/{chunk-FBDUY6RN.js → chunk-BS3IFLU4.js} +1 -1
  60. package/dist/{chunk-JDIWIRUN.js → chunk-BSZNW4BV.js} +6 -6
  61. package/dist/{chunk-MZDFTXXO.js → chunk-D37U7BKX.js} +1 -1
  62. package/dist/{chunk-NBNWMQH4.js → chunk-D6KWDBL5.js} +3 -3
  63. package/dist/{chunk-5RWBSMCI.js → chunk-DO63NPJX.js} +18 -13
  64. package/dist/{chunk-M6EYOBLJ.js → chunk-DRXRTLL4.js} +5 -5
  65. package/dist/{chunk-UWQKGWBF.js → chunk-EKIA5CSV.js} +1 -1
  66. package/dist/{chunk-KAG2BWDB.js → chunk-F7F5PTQE.js} +6 -6
  67. package/dist/{chunk-TTDJHOYY.js → chunk-FF3UYU76.js} +3 -3
  68. package/dist/{chunk-YLLQZ6MR.js → chunk-FUFJKR53.js} +2 -2
  69. package/dist/{chunk-DLS43QDO.js → chunk-FWFOABQJ.js} +1 -1
  70. package/dist/{chunk-G2TL4OEY.js → chunk-GJWBVRPF.js} +1 -1
  71. package/dist/{chunk-PKN4XIBP.js → chunk-HNR23BLB.js} +2 -2
  72. package/dist/{chunk-3OLVEVGW.js → chunk-IAI6ZRVA.js} +6 -6
  73. package/dist/{chunk-TR6AJV4Z.js → chunk-IFJ3XS2R.js} +2 -2
  74. package/dist/{chunk-WKXSLMKC.js → chunk-J3THYTYM.js} +4 -4
  75. package/dist/{chunk-JMQORTFD.js → chunk-JG75WTA6.js} +2 -2
  76. package/dist/{chunk-GOUUFBBP.js → chunk-JY2QQNS4.js} +3 -3
  77. package/dist/{chunk-KS3OJ4C2.js → chunk-KBPUTWVR.js} +2 -2
  78. package/dist/{chunk-MOBSQM4B.js → chunk-KJFCQ5I5.js} +15 -3
  79. package/dist/{chunk-DZMKNP3I.js → chunk-KSPVTLCC.js} +1 -1
  80. package/dist/{chunk-FE4CSARF.js → chunk-KZ56PDQ2.js} +3 -3
  81. package/dist/{chunk-6ZPGNVXS.js → chunk-LWVOQZ24.js} +3 -3
  82. package/dist/{chunk-3FQTC27T.js → chunk-M52Q62SO.js} +7 -7
  83. package/dist/{chunk-WGQIJJIS.js → chunk-M6U4CXYS.js} +1 -1
  84. package/dist/chunk-MMHO6RWH.js +454 -0
  85. package/dist/{chunk-DP62DH2Q.js → chunk-MQTXIY32.js} +6 -6
  86. package/dist/{chunk-XNMSVXB4.js → chunk-MZOJR4TO.js} +3 -3
  87. package/dist/{chunk-FLH5MJOS.js → chunk-O465JWZH.js} +3 -3
  88. package/dist/{chunk-3QZSG2L4.js → chunk-OL5DDV6T.js} +1 -1
  89. package/dist/{chunk-CTBH3E3Z.js → chunk-OW3WQWBA.js} +2 -2
  90. package/dist/{chunk-CUOFHW7F.js → chunk-OXME4ZAD.js} +4 -4
  91. package/dist/{chunk-TKXM3QYK.js → chunk-P27ZXTQ6.js} +2 -2
  92. package/dist/{chunk-DSA5E7IB.js → chunk-PDB5DALK.js} +5 -5
  93. package/dist/{chunk-E4ZZMAWF.js → chunk-PFZGAUTM.js} +1 -1
  94. package/dist/{chunk-TBJ4OMO4.js → chunk-PKVNCWKH.js} +5 -5
  95. package/dist/{chunk-2Q4V4ZP4.js → chunk-QGZ4BPFE.js} +4 -4
  96. package/dist/{chunk-OKZR3LFO.js → chunk-QVGVFLKO.js} +4 -4
  97. package/dist/{chunk-DOHQKE4Y.js → chunk-QXRW4G7Q.js} +2 -2
  98. package/dist/{chunk-4LRFQMTQ.js → chunk-RDUOOCAQ.js} +10 -10
  99. package/dist/{chunk-DQKTKMR3.js → chunk-RXIZTNVQ.js} +3 -3
  100. package/dist/{chunk-XF3K42EV.js → chunk-SLMDTNKA.js} +3 -3
  101. package/dist/{chunk-UNHXJLHP.js → chunk-SOVLQH6W.js} +5 -5
  102. package/dist/{chunk-S2FLLNQI.js → chunk-SZQKXQIX.js} +2 -2
  103. package/dist/{chunk-TJUDVI2Y.js → chunk-TC6TGMST.js} +2 -2
  104. package/dist/{chunk-X3ROGIHG.js → chunk-TCRITVSK.js} +1 -1
  105. package/dist/{chunk-AXOY7CKN.js → chunk-TFZUWGXG.js} +14 -14
  106. package/dist/{chunk-OJZ3CVGK.js → chunk-TTIMLMWS.js} +5 -5
  107. package/dist/{chunk-SQR7GGOH.js → chunk-UEXWOQWA.js} +5 -5
  108. package/dist/{chunk-ALA2OMOM.js → chunk-UORHVH4P.js} +1 -1
  109. package/dist/{chunk-5IRJERK2.js → chunk-VQ4C6Y2C.js} +2 -2
  110. package/dist/{chunk-NQAY6G3S.js → chunk-VTK353JE.js} +4 -4
  111. package/dist/{chunk-FYSQQW6Q.js → chunk-WOI2LYGL.js} +2 -2
  112. package/dist/{chunk-WKBXLLDY.js → chunk-WQ5FG3ED.js} +5 -5
  113. package/dist/{chunk-FRY3LB5N.js → chunk-YAULUCRG.js} +2 -2
  114. package/dist/{chunk-BCZSRQ3L.js → chunk-ZF2GMORS.js} +1 -1
  115. package/dist/{codex-app-cards-switch-MPIXI3DK.js → codex-app-cards-switch-XJAPXIM4.js} +11 -11
  116. package/dist/{codex-card-routing-YQIWKPSG.js → codex-card-routing-MT2V4TZW.js} +2 -2
  117. package/dist/{codex-desktop-launch-GTKUXNPD.js → codex-desktop-launch-T236LJJF.js} +1 -1
  118. package/dist/{codex-session-launch-AHYAAGRT.js → codex-session-launch-AHN34OHP.js} +18 -18
  119. package/dist/{config-XMZVS6DQ.js → config-DVOF7LRQ.js} +3 -3
  120. package/dist/{global-upgrade-CBBBQIWS.js → global-upgrade-RMJEXXYL.js} +9 -9
  121. package/dist/{identity-OQXQU2WN.js → identity-3GG54AII.js} +4 -4
  122. package/dist/{live-capabilities-3UHWJHLY.js → live-capabilities-AF5VHAIS.js} +4 -4
  123. package/dist/{paths-GMKZGF5F.js → paths-IAK4623I.js} +3 -3
  124. package/dist/{reapply-C3WFUQZA.js → reapply-HTAXDM76.js} +28 -28
  125. package/dist/src/index.js +31 -31
  126. package/dist/{upgrade-lock-J6MD575X.js → upgrade-lock-CNS3ST2M.js} +4 -4
  127. package/dist/{usage-KYQUBGEW.js → usage-GPRH7WHQ.js} +3 -3
  128. package/package.json +1 -1
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  notificationAnswerStep
3
- } from "./chunk-KAG2BWDB.js";
3
+ } from "./chunk-F7F5PTQE.js";
4
4
  import {
5
5
  canChangeApprovalSettings
6
- } from "./chunk-5IRJERK2.js";
6
+ } from "./chunk-VQ4C6Y2C.js";
7
7
  import {
8
8
  matchMacAccountStep,
9
9
  retryAgentCommand
10
- } from "./chunk-TTDJHOYY.js";
10
+ } from "./chunk-FF3UYU76.js";
11
11
  import {
12
12
  EXIT
13
13
  } from "./chunk-BG4HHB7E.js";
14
14
  import {
15
15
  NPX_LATEST_COMMAND
16
- } from "./chunk-DLS43QDO.js";
16
+ } from "./chunk-FWFOABQJ.js";
17
17
 
18
18
  // src/setup/closing.ts
19
19
  var ACTIVITY_URL = "pushary.com/dashboard/agent/activity";
@@ -36,14 +36,33 @@ var ANSWERING_DEVICES = {
36
36
  mac_app: "Your Mac"
37
37
  };
38
38
  var SIMULATED_ANSWER_HEADLINE = "Agents configured. The test answer was simulated.";
39
+ var SETUP_COMPLETE_HEADLINE = "Setup complete.";
40
+ var YOU_ARE_SET = "You're set.";
41
+ var CODEX_APPROVALS_GAPS = {
42
+ notifications_only: "Codex approvals are not on yet.",
43
+ hooks_not_running: "Codex is not running every Pushary hook yet."
44
+ };
45
+ var CODEX_APPROVALS_STEPS = {
46
+ notifications_only: "Codex hooks were not installed, so Codex sends notifications but runs tool calls without asking you. Install a current Codex with npm or Homebrew, then run setup again.",
47
+ hooks_not_running: "Until it does, some Pushary checks do not run. pushary doctor shows which hooks and the step that fixes it."
48
+ };
49
+ var codexApprovalsGap = (facts) => {
50
+ const approvals = facts.codexApprovals;
51
+ return approvals === void 0 || approvals === null || approvals === "on" ? null : approvals;
52
+ };
53
+ var codexApprovalsSteps = (gap) => gap === null ? [] : [CODEX_APPROVALS_STEPS[gap]];
39
54
  var answerSeconds = (latencyMs) => Math.max(1, Math.round(latencyMs / 1e3));
40
- var describeAnsweredHeadline = (answer) => {
41
- if (!answer) return "You're set. The test question was answered.";
42
- if (answer.answerSource === "sandbox") return SIMULATED_ANSWER_HEADLINE;
55
+ var isSimulatedAnswer = (answer) => answer?.answerSource === "sandbox";
56
+ var describeAnswer = (answer) => {
57
+ if (!answer) return "The test question was answered.";
43
58
  const device = answer.answerSource ? ANSWERING_DEVICES[answer.answerSource] : void 0;
44
59
  const seconds = answerSeconds(answer.latencyMs);
45
- return device ? `You're set. ${device} answered in ${seconds}s.` : `You're set. The test question was answered in ${seconds}s.`;
60
+ return device ? `${device} answered in ${seconds}s.` : `The test question was answered in ${seconds}s.`;
46
61
  };
62
+ var describeAnsweredHeadline = (answer) => isSimulatedAnswer(answer) ? SIMULATED_ANSWER_HEADLINE : `${YOU_ARE_SET} ${describeAnswer(answer)}`;
63
+ var describeAnsweredHeadlineWithCodexGap = (answer, gap) => `${isSimulatedAnswer(answer) ? SIMULATED_ANSWER_HEADLINE : describeAnswer(answer)} ${CODEX_APPROVALS_GAPS[gap]}`;
64
+ var answeredHeadline = (answer, gap) => gap === null ? describeAnsweredHeadline(answer) : describeAnsweredHeadlineWithCodexGap(answer, gap);
65
+ var completeHeadline = (gap) => gap === null ? SETUP_COMPLETE_HEADLINE : `Agents configured. ${CODEX_APPROVALS_GAPS[gap]}`;
47
66
  var CHANGEABLE_APPROVAL_COMMANDS = [
48
67
  { command: "pushary mode", summary: "choose where approval requests appear" },
49
68
  { command: "pushary wait", summary: "show or set how long approvals wait for your phone" }
@@ -176,11 +195,12 @@ var describeClosing = (facts) => {
176
195
  reason: "control-unready"
177
196
  };
178
197
  }
198
+ const codexGap = codexApprovalsGap(facts);
179
199
  if (facts.roundTripAnswered === true) {
180
200
  return {
181
201
  ok: true,
182
- headline: describeAnsweredHeadline(facts.roundTripAnswer),
183
- next: [RESTART_AGENTS_LINE, ...nextSteps(facts, reachable), "", `Approvals: ${ACTIVITY_URL}`],
202
+ headline: answeredHeadline(facts.roundTripAnswer, codexGap),
203
+ next: [...codexApprovalsSteps(codexGap), RESTART_AGENTS_LINE, ...nextSteps(facts, reachable), "", `Approvals: ${ACTIVITY_URL}`],
184
204
  exitCode: EXIT.OK,
185
205
  reason: "synthetic-answer"
186
206
  };
@@ -217,8 +237,9 @@ var describeClosing = (facts) => {
217
237
  if (!facts.reachChecked) {
218
238
  return {
219
239
  ok: true,
220
- headline: "Setup complete.",
240
+ headline: completeHeadline(codexGap),
221
241
  next: [
242
+ ...codexApprovalsSteps(codexGap),
222
243
  "The phone check was skipped, so nothing here proves an approval reaches you.",
223
244
  "",
224
245
  ...nextSteps(facts, false)
@@ -229,8 +250,8 @@ var describeClosing = (facts) => {
229
250
  }
230
251
  return {
231
252
  ok: true,
232
- headline: "Setup complete.",
233
- next: [...nextSteps(facts, true), "", `Approvals: ${ACTIVITY_URL}`],
253
+ headline: completeHeadline(codexGap),
254
+ next: [...codexApprovalsSteps(codexGap), ...nextSteps(facts, true), "", `Approvals: ${ACTIVITY_URL}`],
234
255
  exitCode: EXIT.OK,
235
256
  reason: "complete"
236
257
  };
@@ -1,20 +1,20 @@
1
1
  import {
2
2
  openCodeConfigDirFrom
3
- } from "./chunk-M6EYOBLJ.js";
3
+ } from "./chunk-DRXRTLL4.js";
4
4
  import {
5
5
  nativeClaudeInstallPath
6
6
  } from "./chunk-ROVLRXBI.js";
7
7
  import {
8
8
  grokHome
9
- } from "./chunk-WKBXLLDY.js";
9
+ } from "./chunk-WQ5FG3ED.js";
10
10
  import {
11
11
  claudeConfigDir,
12
12
  clineDataDirectory,
13
13
  codexHomeFrom
14
- } from "./chunk-FYSQQW6Q.js";
14
+ } from "./chunk-WOI2LYGL.js";
15
15
  import {
16
16
  HOOK_COMPATIBLE_PROFILES
17
- } from "./chunk-NMSRA7QO.js";
17
+ } from "./chunk-2Y2HEOT6.js";
18
18
 
19
19
  // src/vscode-config.ts
20
20
  import { homedir } from "os";
@@ -4,7 +4,7 @@ import {
4
4
  postLiveSession,
5
5
  postLiveSessionUntilAccepted,
6
6
  startLiveSessionHeartbeat
7
- } from "./chunk-S7ZX7V5S.js";
7
+ } from "./chunk-BI7NKEEZ.js";
8
8
  import {
9
9
  CommandReceipts,
10
10
  controllerCommandSchema
@@ -14,21 +14,21 @@ import {
14
14
  describeIdleWindow,
15
15
  idleDeadlinePassed,
16
16
  startProcessOwnership
17
- } from "./chunk-YLLQZ6MR.js";
17
+ } from "./chunk-FUFJKR53.js";
18
18
  import {
19
19
  repositoryScopeFor
20
- } from "./chunk-ALA2OMOM.js";
20
+ } from "./chunk-UORHVH4P.js";
21
21
  import {
22
22
  isAskUserResponse,
23
23
  isDecisionStopped,
24
24
  isWaitForAnswerResponse,
25
25
  withdrawQuestion,
26
26
  writeDegraded
27
- } from "./chunk-DP62DH2Q.js";
27
+ } from "./chunk-MQTXIY32.js";
28
28
  import {
29
29
  callMcpTool,
30
30
  isRetryable
31
- } from "./chunk-OJZ3CVGK.js";
31
+ } from "./chunk-TTIMLMWS.js";
32
32
  import {
33
33
  spawnClaude
34
34
  } from "./chunk-XHKBHWLX.js";
@@ -52,7 +52,7 @@ import {
52
52
  parseCodexQuestions,
53
53
  planElicitationAsk,
54
54
  readElicitationFields
55
- } from "./chunk-NMSRA7QO.js";
55
+ } from "./chunk-2Y2HEOT6.js";
56
56
 
57
57
  // src/codex-question-owner.ts
58
58
  import { createHash } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readConfigFileKey
3
- } from "./chunk-XF3K42EV.js";
3
+ } from "./chunk-SLMDTNKA.js";
4
4
 
5
5
  // src/bell/fleet.ts
6
6
  import { closeSync, constants, futimesSync, lstatSync, mkdirSync, openSync, readdirSync, unlinkSync } from "fs";
@@ -7,13 +7,13 @@ import {
7
7
  } from "./chunk-G66WIAST.js";
8
8
  import {
9
9
  ensureDaemonRunning
10
- } from "./chunk-3OLVEVGW.js";
10
+ } from "./chunk-IAI6ZRVA.js";
11
11
  import {
12
12
  hookOwnerOf
13
- } from "./chunk-T72BV3CU.js";
13
+ } from "./chunk-66FYIYTH.js";
14
14
  import {
15
15
  hookMeaning
16
- } from "./chunk-BCZSRQ3L.js";
16
+ } from "./chunk-ZF2GMORS.js";
17
17
  import {
18
18
  buildTranscriptRecords,
19
19
  decodePublicKey,
@@ -24,29 +24,29 @@ import {
24
24
  recordSealerFor,
25
25
  uploadTranscriptRecords,
26
26
  wrapSessionKey
27
- } from "./chunk-FE4CSARF.js";
27
+ } from "./chunk-KZ56PDQ2.js";
28
28
  import {
29
29
  external_exports
30
30
  } from "./chunk-XMSDA5WA.js";
31
31
  import {
32
32
  transcriptEnvironmentPreference,
33
33
  transcriptsEnabled
34
- } from "./chunk-UWQKGWBF.js";
34
+ } from "./chunk-EKIA5CSV.js";
35
35
  import {
36
36
  fetchAsCredential
37
- } from "./chunk-DZMKNP3I.js";
37
+ } from "./chunk-KSPVTLCC.js";
38
38
  import {
39
39
  readTranscriptPreference
40
- } from "./chunk-XF3K42EV.js";
40
+ } from "./chunk-SLMDTNKA.js";
41
41
  import {
42
42
  claudeConfigDir,
43
43
  codexHome,
44
44
  pusharyDir
45
- } from "./chunk-FYSQQW6Q.js";
45
+ } from "./chunk-WOI2LYGL.js";
46
46
  import {
47
47
  getApiKey,
48
48
  getBaseUrl
49
- } from "./chunk-QYBQCMRP.js";
49
+ } from "./chunk-BATGR3LA.js";
50
50
  import {
51
51
  writeJsonAtomic,
52
52
  writeJsonAtomicDurable
@@ -58,7 +58,7 @@ import {
58
58
  isHookSource,
59
59
  isRecord,
60
60
  redactSecretsFromContent
61
- } from "./chunk-NMSRA7QO.js";
61
+ } from "./chunk-2Y2HEOT6.js";
62
62
 
63
63
  // src/transcript-recipient-pin.ts
64
64
  import { createHash } from "crypto";
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  AGENT_CHOICES
3
- } from "./chunk-MZDFTXXO.js";
3
+ } from "./chunk-D37U7BKX.js";
4
4
  import {
5
5
  BELL_HOOK_BINARY
6
- } from "./chunk-3QZSG2L4.js";
6
+ } from "./chunk-OL5DDV6T.js";
7
7
  import {
8
8
  CLAUDE_HOOK_EVENTS,
9
9
  CODEX_HOOK_EVENTS,
@@ -15,13 +15,13 @@ import {
15
15
  isBridgeLocator,
16
16
  isProtectedByScope,
17
17
  registerHookEntry
18
- } from "./chunk-FYSQQW6Q.js";
18
+ } from "./chunk-WOI2LYGL.js";
19
19
  import {
20
20
  CURSOR_GATE_EVENTS,
21
21
  HOOK_BUDGETS,
22
22
  HOOK_LOCATOR_BINARY,
23
23
  hookCommandHoldBudget
24
- } from "./chunk-NMSRA7QO.js";
24
+ } from "./chunk-2Y2HEOT6.js";
25
25
 
26
26
  // src/gemini-config.ts
27
27
  var GEMINI_HOOK_BINARY = "pushary-gemini-hook";
@@ -5,10 +5,10 @@ import {
5
5
  hermesAppWiringRecord,
6
6
  hermesConfigReceipt,
7
7
  hermesSetupReceipt
8
- } from "./chunk-FYSQQW6Q.js";
8
+ } from "./chunk-WOI2LYGL.js";
9
9
  import {
10
10
  resolvePathBinary
11
- } from "./chunk-DQKTKMR3.js";
11
+ } from "./chunk-RXIZTNVQ.js";
12
12
  import {
13
13
  readJsonSafe,
14
14
  writeJsonAtomic
@@ -19,7 +19,7 @@ import {
19
19
  } from "./chunk-ZVU6WMMU.js";
20
20
  import {
21
21
  isRecord
22
- } from "./chunk-NMSRA7QO.js";
22
+ } from "./chunk-2Y2HEOT6.js";
23
23
 
24
24
  // src/hermes/plugin-payload.ts
25
25
  import { createHash } from "crypto";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  realpath
3
- } from "./chunk-TJUDVI2Y.js";
3
+ } from "./chunk-TC6TGMST.js";
4
4
  import {
5
5
  findNativeClaudeInstall
6
6
  } from "./chunk-ROVLRXBI.js";
@@ -13,10 +13,10 @@ import {
13
13
  resolvePackageVersionFromBinary,
14
14
  resolvePathBinary,
15
15
  resolvePathBinaryAsync
16
- } from "./chunk-DQKTKMR3.js";
16
+ } from "./chunk-RXIZTNVQ.js";
17
17
  import {
18
18
  MANAGED_PROVIDERS
19
- } from "./chunk-NMSRA7QO.js";
19
+ } from "./chunk-2Y2HEOT6.js";
20
20
 
21
21
  // src/live-capabilities.ts
22
22
  import { homedir } from "os";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  NPX_LATEST_COMMAND
3
- } from "./chunk-DLS43QDO.js";
3
+ } from "./chunk-FWFOABQJ.js";
4
4
 
5
5
  // src/config.ts
6
6
  import { readFileSync } from "fs";
@@ -7,7 +7,7 @@ import {
7
7
  recordSealerFor,
8
8
  uploadTranscriptRecords,
9
9
  wrapSessionKey
10
- } from "./chunk-FE4CSARF.js";
10
+ } from "./chunk-KZ56PDQ2.js";
11
11
 
12
12
  // src/live-session.ts
13
13
  var MAX_TRANSCRIPT_QUEUE = 100;
@@ -3,10 +3,10 @@ import {
3
3
  forkFinishWithUpgradeLock,
4
4
  installWithUpgradeLock,
5
5
  releaseAutoUpdateLock
6
- } from "./chunk-PKN4XIBP.js";
6
+ } from "./chunk-HNR23BLB.js";
7
7
  import {
8
8
  phoneStartIsRequired
9
- } from "./chunk-JPR4S254.js";
9
+ } from "./chunk-7M5QJE24.js";
10
10
  import {
11
11
  describeAutoUpdateCheck,
12
12
  globalInstallLocation,
@@ -18,25 +18,25 @@ import {
18
18
  readAutoUpdateState,
19
19
  updateAutoUpdateState,
20
20
  upgradeEntryFor
21
- } from "./chunk-CTBH3E3Z.js";
21
+ } from "./chunk-OW3WQWBA.js";
22
22
  import {
23
23
  autoUpdateLock,
24
24
  autoUpdateLog,
25
25
  autoUpdateState
26
- } from "./chunk-FYSQQW6Q.js";
26
+ } from "./chunk-WOI2LYGL.js";
27
27
  import {
28
28
  execNpm,
29
29
  fetchLatestPublishedVersion,
30
30
  npmErrorMessage,
31
31
  readGlobalCliInstallAt,
32
32
  readGlobalPrefix
33
- } from "./chunk-DQKTKMR3.js";
33
+ } from "./chunk-RXIZTNVQ.js";
34
34
  import {
35
35
  EXIT
36
36
  } from "./chunk-BG4HHB7E.js";
37
37
  import {
38
38
  NPX_LATEST_COMMAND
39
- } from "./chunk-DLS43QDO.js";
39
+ } from "./chunk-FWFOABQJ.js";
40
40
  import {
41
41
  commandsPackage,
42
42
  globalUpgradeEntry,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DEFAULT_SESSION
3
- } from "./chunk-5RWBSMCI.js";
3
+ } from "./chunk-DO63NPJX.js";
4
4
 
5
5
  // src/answer.ts
6
6
  var isDeferAnswer = (value) => value === "defer";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  HOOK_HOLD_BUDGET_ENV,
3
3
  hookHoldBudgetProof
4
- } from "./chunk-NMSRA7QO.js";
4
+ } from "./chunk-2Y2HEOT6.js";
5
5
 
6
6
  // src/hold-budget.ts
7
7
  var takeHookHoldBudget = (args = process.argv.slice(2), env = process.env) => {
@@ -2,10 +2,10 @@ import {
2
2
  SIGNED_OUT_ON_MAC_MESSAGE,
3
3
  describeSignedOutKey,
4
4
  readSignedOutDiagnosis
5
- } from "./chunk-S2FLLNQI.js";
5
+ } from "./chunk-SZQKXQIX.js";
6
6
  import {
7
7
  APPROVAL_RULES_PATH
8
- } from "./chunk-5IRJERK2.js";
8
+ } from "./chunk-VQ4C6Y2C.js";
9
9
  import {
10
10
  createIo
11
11
  } from "./chunk-FO3MDD26.js";
@@ -14,19 +14,19 @@ import {
14
14
  checkApiKey,
15
15
  describeKeyCheck,
16
16
  keyCheckFromResponse
17
- } from "./chunk-GOUUFBBP.js";
17
+ } from "./chunk-JY2QQNS4.js";
18
18
  import {
19
19
  readKeySource
20
- } from "./chunk-XF3K42EV.js";
20
+ } from "./chunk-SLMDTNKA.js";
21
21
  import {
22
22
  getBaseUrl
23
- } from "./chunk-QYBQCMRP.js";
23
+ } from "./chunk-BATGR3LA.js";
24
24
  import {
25
25
  EXIT
26
26
  } from "./chunk-BG4HHB7E.js";
27
27
  import {
28
28
  KEY_SCOPE
29
- } from "./chunk-NMSRA7QO.js";
29
+ } from "./chunk-2Y2HEOT6.js";
30
30
 
31
31
  // src/cli/report-key.ts
32
32
  var { dim, yellow } = createIo();
@@ -9,7 +9,7 @@ import {
9
9
  isSetupConnectMode,
10
10
  isValidApiKey,
11
11
  normalizeAgentId
12
- } from "./chunk-NMSRA7QO.js";
12
+ } from "./chunk-2Y2HEOT6.js";
13
13
 
14
14
  // src/setup/options.ts
15
15
  var AGENT_CHOICES = SETUP_AGENT_CHOICES;
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  parseSseMessages
3
- } from "./chunk-OJZ3CVGK.js";
3
+ } from "./chunk-TTIMLMWS.js";
4
4
  import {
5
5
  fetchAsCredential
6
- } from "./chunk-DZMKNP3I.js";
6
+ } from "./chunk-KSPVTLCC.js";
7
7
  import {
8
8
  NPX_LATEST_COMMAND
9
- } from "./chunk-DLS43QDO.js";
9
+ } from "./chunk-FWFOABQJ.js";
10
10
 
11
11
  // src/mcp-stdio-bridge.ts
12
12
  var MCP_BRIDGE_BINARY = "pushary-mcp";
@@ -27,11 +27,11 @@ import {
27
27
  toolResultErrorText,
28
28
  transcriptTokensIn,
29
29
  transcriptUsageRequest
30
- } from "./chunk-BCZSRQ3L.js";
30
+ } from "./chunk-ZF2GMORS.js";
31
31
  import {
32
32
  branchFor,
33
33
  repoKeyFor
34
- } from "./chunk-ALA2OMOM.js";
34
+ } from "./chunk-UORHVH4P.js";
35
35
  import {
36
36
  cancelQuestion,
37
37
  clientErrorKindOf,
@@ -39,42 +39,44 @@ import {
39
39
  reportClientError,
40
40
  sendNotification,
41
41
  waitForAnswer
42
- } from "./chunk-DP62DH2Q.js";
42
+ } from "./chunk-MQTXIY32.js";
43
43
  import {
44
44
  withRetry
45
- } from "./chunk-OJZ3CVGK.js";
45
+ } from "./chunk-TTIMLMWS.js";
46
46
  import {
47
47
  fetchAsCredential
48
- } from "./chunk-DZMKNP3I.js";
48
+ } from "./chunk-KSPVTLCC.js";
49
49
  import {
50
50
  getMachineId
51
- } from "./chunk-G2TL4OEY.js";
51
+ } from "./chunk-GJWBVRPF.js";
52
52
  import {
53
53
  reportedInstallSource
54
- } from "./chunk-DOHQKE4Y.js";
54
+ } from "./chunk-QXRW4G7Q.js";
55
55
  import {
56
56
  IDLE_PROMPT_NOTIFICATION,
57
57
  NOTIFICATION_PUSH_TYPES,
58
58
  POSTTOOLUSE_MIRROR_ONLY_TOOLS,
59
59
  canonicalJson,
60
60
  claudeConfigDir
61
- } from "./chunk-FYSQQW6Q.js";
61
+ } from "./chunk-WOI2LYGL.js";
62
62
  import {
63
63
  compareVersion,
64
64
  parseVersion
65
- } from "./chunk-DQKTKMR3.js";
65
+ } from "./chunk-RXIZTNVQ.js";
66
66
  import {
67
67
  getApiKey,
68
68
  getBaseUrl
69
- } from "./chunk-QYBQCMRP.js";
69
+ } from "./chunk-BATGR3LA.js";
70
70
  import {
71
71
  writeFileAtomic,
72
72
  writeJsonAtomicDurable
73
73
  } from "./chunk-T5I4PKOQ.js";
74
74
  import {
75
75
  BLOCKED_ACTION_GRANT_TTL_SECONDS,
76
+ CLI_POLICY_REQUEST_CAPABILITIES,
76
77
  COMMAND_RECOVERY,
77
78
  HOOK_SOURCES,
79
+ POLICY_REQUEST_CAPABILITIES_HEADER,
78
80
  REPO_AWARE_AGENTS,
79
81
  blockedActionIdentity,
80
82
  canCarryPendingCommand,
@@ -87,11 +89,12 @@ import {
87
89
  nativeRecord,
88
90
  pendingCommandEvents,
89
91
  pendingCommandInstruction,
92
+ policyRequestCapabilitiesHeaderValue,
90
93
  questionLimitHandBack,
91
94
  resolveAutoResolveOrigin,
92
95
  resolvePolicy,
93
96
  unansweredRefusalReason
94
- } from "./chunk-NMSRA7QO.js";
97
+ } from "./chunk-2Y2HEOT6.js";
95
98
 
96
99
  // src/pending.ts
97
100
  import { join } from "path";
@@ -365,11 +368,13 @@ var policyRequestFor = (agentType) => ({
365
368
  agent: agentType,
366
369
  repoAware: REPO_AWARE_AGENTS.includes(agentType)
367
370
  });
371
+ var POLICY_CACHE_FORMAT = "v2";
368
372
  var policyCacheFile = (apiKey, agent, repoAware = false) => {
369
373
  const parts = [apiKey, agent, repoAware ? "repoAware" : void 0, "sessionToolAware"].filter(Boolean);
370
374
  const hash = createHash2("sha256").update(parts.join(":")).digest("hex").slice(0, 12);
371
- return join2(tmpdir2(), `pushary-policy-${hash}.json`);
375
+ return join2(tmpdir2(), `pushary-policy-${POLICY_CACHE_FORMAT}-${hash}.json`);
372
376
  };
377
+ var POLICY_REQUEST_CAPABILITIES_VALUE = policyRequestCapabilitiesHeaderValue(CLI_POLICY_REQUEST_CAPABILITIES);
373
378
  var fetchPolicy = async (apiKey, agent, repoAware = false, sessionId) => {
374
379
  return withRetry(async () => {
375
380
  const baseUrl = getBaseUrl();
@@ -382,7 +387,7 @@ var fetchPolicy = async (apiKey, agent, repoAware = false, sessionId) => {
382
387
  const query = params.toString();
383
388
  const url = query ? `${baseUrl}/api/mcp/policy?${query}` : `${baseUrl}/api/mcp/policy`;
384
389
  const response = await fetchAsCredential(apiKey, url, {
385
- headers: { "Authorization": `Bearer ${apiKey}` },
390
+ headers: { "Authorization": `Bearer ${apiKey}`, [POLICY_REQUEST_CAPABILITIES_HEADER]: POLICY_REQUEST_CAPABILITIES_VALUE },
386
391
  signal: AbortSignal.timeout(1e4)
387
392
  });
388
393
  if (!response.ok) {
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  compatibleConfigFile
3
- } from "./chunk-WKBXLLDY.js";
3
+ } from "./chunk-WQ5FG3ED.js";
4
4
  import {
5
5
  hookOwnerOf,
6
6
  hookOwnerOfCommands
7
- } from "./chunk-T72BV3CU.js";
7
+ } from "./chunk-66FYIYTH.js";
8
8
  import {
9
9
  AGENT_CHOICES
10
- } from "./chunk-MZDFTXXO.js";
10
+ } from "./chunk-D37U7BKX.js";
11
11
  import {
12
12
  bridgeStub,
13
13
  claudeSettings,
@@ -19,7 +19,7 @@ import {
19
19
  resolveBridgeStub,
20
20
  vscodePluginDir,
21
21
  windowsNodeLauncherFor
22
- } from "./chunk-FYSQQW6Q.js";
22
+ } from "./chunk-WOI2LYGL.js";
23
23
  import {
24
24
  readJsonSafe
25
25
  } from "./chunk-T5I4PKOQ.js";
@@ -29,7 +29,7 @@ import {
29
29
  OPENCODE_APPROVAL_EVENT,
30
30
  hookCompatibleProfile,
31
31
  isRecord
32
- } from "./chunk-NMSRA7QO.js";
32
+ } from "./chunk-2Y2HEOT6.js";
33
33
 
34
34
  // src/opencode-plugin.ts
35
35
  var OPENCODE_PLUGIN_MARKER = "pushary-opencode-plugin w1";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  readTranscriptPreference
3
- } from "./chunk-XF3K42EV.js";
3
+ } from "./chunk-SLMDTNKA.js";
4
4
 
5
5
  // src/transcript-setting.ts
6
6
  var transcriptEnvironmentPreference = () => {
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  APPROVAL_RULES_PATH,
3
3
  canChangeApprovalSettings
4
- } from "./chunk-5IRJERK2.js";
4
+ } from "./chunk-VQ4C6Y2C.js";
5
5
  import {
6
6
  callMcpTool
7
- } from "./chunk-OJZ3CVGK.js";
7
+ } from "./chunk-TTIMLMWS.js";
8
8
  import {
9
9
  absoluteUrl
10
- } from "./chunk-GOUUFBBP.js";
10
+ } from "./chunk-JY2QQNS4.js";
11
11
  import {
12
12
  getBaseUrl
13
- } from "./chunk-QYBQCMRP.js";
13
+ } from "./chunk-BATGR3LA.js";
14
14
  import {
15
15
  NPX_LATEST_COMMAND
16
- } from "./chunk-DLS43QDO.js";
16
+ } from "./chunk-FWFOABQJ.js";
17
17
  import {
18
18
  AGENT_STOP_DEFAULT_SECONDS,
19
19
  APPROVAL_MODE_META,
@@ -21,7 +21,7 @@ import {
21
21
  classifyConfirmResponse,
22
22
  isAnswerSource,
23
23
  roundTripAsk
24
- } from "./chunk-NMSRA7QO.js";
24
+ } from "./chunk-2Y2HEOT6.js";
25
25
 
26
26
  // src/reach.ts
27
27
  var reachVerdict = (channels) => {
@@ -2,16 +2,16 @@ import {
2
2
  NpmInstallError,
3
3
  NpmMissingError,
4
4
  NpmPermissionError
5
- } from "./chunk-DQKTKMR3.js";
5
+ } from "./chunk-RXIZTNVQ.js";
6
6
  import {
7
7
  writeFileAtomic
8
8
  } from "./chunk-T5I4PKOQ.js";
9
9
  import {
10
10
  NPX_LATEST_COMMAND
11
- } from "./chunk-DLS43QDO.js";
11
+ } from "./chunk-FWFOABQJ.js";
12
12
  import {
13
13
  readSetupAgentFailures
14
- } from "./chunk-NMSRA7QO.js";
14
+ } from "./chunk-2Y2HEOT6.js";
15
15
 
16
16
  // src/setup/config-write.ts
17
17
  var AgentConfigWriteError = class extends Error {