pushary 1.9.82 → 1.9.84

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 (138) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/data/SKILL.md +132 -465
  3. package/data/cowork/SKILL.md +8 -8
  4. package/data/cursor-plugin/.cursor-plugin/plugin.json +1 -1
  5. package/data/cursor-plugin/CHANGELOG.md +8 -0
  6. package/data/cursor-plugin/commands/notify-when-done.md +1 -1
  7. package/data/cursor-plugin/rules/pushary.mdc +5 -4
  8. package/data/cursor-plugin/skills/pushary/SKILL.md +131 -464
  9. package/data/vscode-plugin/.claude-plugin/plugin.json +1 -1
  10. package/data/vscode-plugin/CHANGELOG.md +8 -0
  11. package/data/vscode-plugin/commands/notify-when-done.md +1 -1
  12. package/data/vscode-plugin/skills/pushary/SKILL.md +131 -464
  13. package/dist/{api-TZO5ACOS.js → api-4WEMR2G3.js} +10 -10
  14. package/dist/bin/pushary-bell-hook.js +26 -26
  15. package/dist/bin/pushary-bell.js +10 -10
  16. package/dist/bin/pushary-claude.js +32 -31
  17. package/dist/bin/pushary-clean.js +37 -33
  18. package/dist/bin/pushary-codex-bridge.js +21 -21
  19. package/dist/bin/pushary-codex-hook.js +44 -43
  20. package/dist/bin/pushary-codex-session.js +8 -8
  21. package/dist/bin/pushary-codex.js +14 -13
  22. package/dist/bin/pushary-connect.js +27 -26
  23. package/dist/bin/pushary-cowork.js +5 -5
  24. package/dist/bin/pushary-daemon.js +70 -43
  25. package/dist/bin/pushary-disconnect.js +26 -25
  26. package/dist/bin/pushary-display-hook.js +17 -17
  27. package/dist/bin/pushary-doctor.js +42 -41
  28. package/dist/bin/pushary-elicitation-hook.js +26 -26
  29. package/dist/bin/pushary-gemini-bridge.js +15 -15
  30. package/dist/bin/pushary-gemini-hook.js +35 -34
  31. package/dist/bin/pushary-hook.js +30 -30
  32. package/dist/bin/pushary-login.js +20 -20
  33. package/dist/bin/pushary-logout.js +25 -24
  34. package/dist/bin/pushary-mcp.js +11 -11
  35. package/dist/bin/pushary-mode.js +15 -15
  36. package/dist/bin/pushary-notification-hook.js +25 -25
  37. package/dist/bin/pushary-opencode-hook.js +35 -34
  38. package/dist/bin/pushary-permission-denied-hook.js +30 -30
  39. package/dist/bin/pushary-permission-hook.js +30 -30
  40. package/dist/bin/pushary-post-hook.js +25 -25
  41. package/dist/bin/pushary-prompt-hook.js +25 -25
  42. package/dist/bin/pushary-session-end-hook.js +27 -27
  43. package/dist/bin/pushary-session-start-hook.js +35 -35
  44. package/dist/bin/pushary-setup.js +48 -47
  45. package/dist/bin/pushary-stats.js +5 -5
  46. package/dist/bin/pushary-status.js +32 -31
  47. package/dist/bin/pushary-stop-hook.js +25 -25
  48. package/dist/bin/pushary-stopfailure-hook.js +25 -25
  49. package/dist/bin/pushary-suggestions.js +15 -15
  50. package/dist/bin/pushary-transcript-register.js +21 -20
  51. package/dist/bin/pushary-transcripts.js +30 -20
  52. package/dist/bin/pushary-upgrade.js +40 -39
  53. package/dist/bin/pushary-wait.js +15 -15
  54. package/dist/bin/pushary.js +7 -7
  55. package/dist/{chunk-3BFCJZBU.js → chunk-254B34JU.js} +1 -1
  56. package/dist/{chunk-NEWGYFKC.js → chunk-2VZY5XQ5.js} +7 -7
  57. package/dist/chunk-3MWQZKIO.js +843 -0
  58. package/dist/{chunk-RL2KE6HG.js → chunk-42DNYOC4.js} +23 -21
  59. package/dist/{chunk-DS5BR4K6.js → chunk-4J3NGYHG.js} +2 -2
  60. package/dist/{chunk-2TEX3APZ.js → chunk-4OP5GWHQ.js} +5 -5
  61. package/dist/{chunk-UYTPCZ4M.js → chunk-4QGV3II7.js} +4 -4
  62. package/dist/{chunk-MHUKYYYR.js → chunk-4TMKTLQX.js} +44 -1
  63. package/dist/{chunk-O6T3CLWT.js → chunk-5Z43EFX2.js} +2 -2
  64. package/dist/{chunk-2BJZFA7X.js → chunk-64XK7DLE.js} +3 -3
  65. package/dist/{chunk-IXVMMDIG.js → chunk-6HBWJXU6.js} +3 -3
  66. package/dist/{chunk-W3VRQEL3.js → chunk-7GYDMVHV.js} +2 -2
  67. package/dist/{chunk-TO77OYLM.js → chunk-7ZYVX2KN.js} +1 -1
  68. package/dist/{chunk-LGWTITVK.js → chunk-BGMYSRMY.js} +1 -1
  69. package/dist/{chunk-C6FQ4YST.js → chunk-BS5MTP34.js} +2 -2
  70. package/dist/{chunk-LNSCANYY.js → chunk-BUS7MXEE.js} +3 -3
  71. package/dist/{chunk-FJZSJZCT.js → chunk-CIICMXVH.js} +3 -3
  72. package/dist/{chunk-GUM3WG4B.js → chunk-CSOVOAX5.js} +6 -6
  73. package/dist/{chunk-AM3H6HWG.js → chunk-CZ7C5AJT.js} +1 -1
  74. package/dist/{chunk-3V6G2GBJ.js → chunk-DNBBWBYA.js} +5 -5
  75. package/dist/{chunk-72CIQCBA.js → chunk-EKWDNEPN.js} +3 -3
  76. package/dist/{chunk-6224ENW3.js → chunk-EX33ZFJ6.js} +3 -3
  77. package/dist/{chunk-6355HHSR.js → chunk-FNC4SPOD.js} +2 -2
  78. package/dist/{chunk-CXZAKS7S.js → chunk-FRPR4OTH.js} +4 -4
  79. package/dist/{chunk-PJ26BODT.js → chunk-FSSA76HW.js} +1 -1
  80. package/dist/{chunk-RRMRP62I.js → chunk-G2GOVKBU.js} +6 -6
  81. package/dist/{chunk-TTTK44RK.js → chunk-GGGOFJBL.js} +1 -1
  82. package/dist/{chunk-OXTRF7CP.js → chunk-GWHZUHIK.js} +1 -1
  83. package/dist/{chunk-TKFDPYXS.js → chunk-H6IJOGDH.js} +4 -4
  84. package/dist/{chunk-JXE4UQFJ.js → chunk-HARHFDZM.js} +1 -1
  85. package/dist/{chunk-AXE2ZOKS.js → chunk-HLAW7HUT.js} +2 -2
  86. package/dist/{chunk-G5BYSS6C.js → chunk-HVZJ2EEI.js} +6 -6
  87. package/dist/{chunk-OIW3JAWH.js → chunk-HWT42Z4O.js} +5 -5
  88. package/dist/{chunk-WG67W43Y.js → chunk-JHWOM55B.js} +3 -1
  89. package/dist/{chunk-JNCD2ZG3.js → chunk-JJCMQRBF.js} +3 -3
  90. package/dist/{chunk-FHPSVTS5.js → chunk-JLJWVKMJ.js} +54 -835
  91. package/dist/{chunk-ONUAAXAW.js → chunk-JSZT4Q23.js} +1 -1
  92. package/dist/{chunk-UB7VUSSX.js → chunk-LUSWC2MV.js} +3 -3
  93. package/dist/{chunk-M5XNFUXN.js → chunk-OGTZ7JR7.js} +1 -1
  94. package/dist/{chunk-QJJJENT2.js → chunk-OKWHHDV5.js} +5 -5
  95. package/dist/{chunk-5LLZSX7I.js → chunk-OSEGZLCO.js} +3 -3
  96. package/dist/{chunk-UOUUTDWF.js → chunk-PHBZK4SC.js} +3 -3
  97. package/dist/{chunk-JTYZEP4Q.js → chunk-POKCUYIQ.js} +1 -1
  98. package/dist/{chunk-D3QGBMO3.js → chunk-QF6OJUWQ.js} +1 -1
  99. package/dist/{chunk-APSYBSMG.js → chunk-QG5Y5A36.js} +10 -10
  100. package/dist/{chunk-J4TQYGHU.js → chunk-QSDZE2B7.js} +5 -5
  101. package/dist/{chunk-4S5XVFDV.js → chunk-RPNT4D3K.js} +1 -1
  102. package/dist/{chunk-6L2U3TP3.js → chunk-SAPRO7FI.js} +6 -6
  103. package/dist/{chunk-ESRKYHWE.js → chunk-SBK7WGSE.js} +2 -2
  104. package/dist/{chunk-L77YWBMK.js → chunk-TD5PW2VI.js} +6 -6
  105. package/dist/{chunk-WLOVGZ7R.js → chunk-TFJQAPIA.js} +2 -2
  106. package/dist/{chunk-I4RNLK5G.js → chunk-TNPKYKXU.js} +166 -24
  107. package/dist/{chunk-CV56MBIZ.js → chunk-TSCFJJIB.js} +6 -6
  108. package/dist/{chunk-ER4UCECJ.js → chunk-TZDEHPYZ.js} +1 -1
  109. package/dist/{chunk-NPBPH7KI.js → chunk-UGELL4RB.js} +2 -2
  110. package/dist/{chunk-6WOG2SCC.js → chunk-UIDWJ24H.js} +6 -13
  111. package/dist/{chunk-N3C3D4AV.js → chunk-UWL6VVE3.js} +4 -4
  112. package/dist/{chunk-YAMNJXCD.js → chunk-V4JZHAOY.js} +17 -11
  113. package/dist/{chunk-4TR4G7A4.js → chunk-VD24OIWR.js} +1 -1
  114. package/dist/{chunk-5TMGEQAC.js → chunk-VJZGR4N3.js} +7 -5
  115. package/dist/{chunk-GUI2NYCX.js → chunk-VVWL6AB4.js} +5 -5
  116. package/dist/{chunk-OXKVR2FP.js → chunk-W2IRYDG5.js} +4 -4
  117. package/dist/{chunk-3UBYG4G7.js → chunk-WRKRZJCW.js} +10 -8
  118. package/dist/{chunk-DJILSCSU.js → chunk-YQCCJ6U5.js} +3 -3
  119. package/dist/{chunk-IEAABGST.js → chunk-YU5ACKJP.js} +4 -4
  120. package/dist/{chunk-DX45XQ36.js → chunk-Z75D2NJN.js} +3 -3
  121. package/dist/{chunk-S2DLTWFG.js → chunk-ZHL6F2KC.js} +3 -3
  122. package/dist/{chunk-X2P3O4PX.js → chunk-ZNFAF74M.js} +1 -1
  123. package/dist/{chunk-WUS2LFTM.js → chunk-ZUZ7NTWO.js} +181 -75
  124. package/dist/{chunk-Z5HLACZT.js → chunk-ZWKF7WE4.js} +4 -4
  125. package/dist/{codex-app-cards-switch-3FAIEEB2.js → codex-app-cards-switch-26N5XSSZ.js} +11 -11
  126. package/dist/{codex-desktop-launch-LHMHRVGF.js → codex-desktop-launch-UU6CPB2I.js} +1 -1
  127. package/dist/{codex-session-launch-MXUBSTL2.js → codex-session-launch-66LBR4MG.js} +18 -18
  128. package/dist/{config-MZDRETL2.js → config-ESAAVJWO.js} +3 -3
  129. package/dist/{global-upgrade-ZDENZA42.js → global-upgrade-QJONTWQI.js} +10 -10
  130. package/dist/{identity-YZRDJOGY.js → identity-IZVPSC7B.js} +4 -4
  131. package/dist/{live-capabilities-KSQDWVT6.js → live-capabilities-OEUPZX67.js} +5 -5
  132. package/dist/{paths-DYZZBVYI.js → paths-GDWS3B46.js} +3 -3
  133. package/dist/{reapply-L3AI5KJH.js → reapply-P2VOZGWQ.js} +28 -27
  134. package/dist/src/index.js +29 -29
  135. package/dist/{upgrade-lock-X7F2OFYB.js → upgrade-lock-3QABNXBZ.js} +4 -4
  136. package/dist/{usage-TKZALYXF.js → usage-KDRZPUZS.js} +3 -3
  137. package/package.json +1 -1
  138. package/dist/chunk-VHLRXIMC.js +0 -74
@@ -1,57 +1,50 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  takeHookHoldBudget
4
- } from "../chunk-3BFCJZBU.js";
4
+ } from "../chunk-254B34JU.js";
5
5
  import {
6
6
  askAgentQuestions,
7
7
  defersToNativeMode,
8
8
  reportMachineDenial
9
- } from "../chunk-3UBYG4G7.js";
9
+ } from "../chunk-WRKRZJCW.js";
10
10
  import {
11
11
  isGatingMoment,
12
12
  recordKeylessMoment
13
- } from "../chunk-X2P3O4PX.js";
13
+ } from "../chunk-ZNFAF74M.js";
14
14
  import {
15
15
  triggerAutoUpdate
16
- } from "../chunk-S2DLTWFG.js";
16
+ } from "../chunk-ZHL6F2KC.js";
17
17
  import {
18
18
  readHookInput
19
- } from "../chunk-NEWGYFKC.js";
19
+ } from "../chunk-2VZY5XQ5.js";
20
20
  import {
21
21
  announceSubscriptionRequired,
22
22
  isDeferAnswer
23
- } from "../chunk-AM3H6HWG.js";
24
- import "../chunk-WUS2LFTM.js";
25
- import "../chunk-VHLRXIMC.js";
26
- import "../chunk-MHUKYYYR.js";
27
- import "../chunk-5TMGEQAC.js";
28
- import "../chunk-6L2U3TP3.js";
29
- import "../chunk-IEAABGST.js";
30
- import "../chunk-JXE4UQFJ.js";
31
- import "../chunk-4S5XVFDV.js";
23
+ } from "../chunk-CZ7C5AJT.js";
24
+ import "../chunk-ZUZ7NTWO.js";
25
+ import "../chunk-4TMKTLQX.js";
26
+ import "../chunk-VJZGR4N3.js";
27
+ import "../chunk-SAPRO7FI.js";
28
+ import "../chunk-YU5ACKJP.js";
29
+ import "../chunk-HARHFDZM.js";
30
+ import "../chunk-RPNT4D3K.js";
32
31
  import "../chunk-NMUI3ZWG.js";
33
- import "../chunk-W3VRQEL3.js";
32
+ import "../chunk-7GYDMVHV.js";
34
33
  import "../chunk-XMSDA5WA.js";
35
- import "../chunk-OXTRF7CP.js";
34
+ import "../chunk-GWHZUHIK.js";
36
35
  import "../chunk-XHKBHWLX.js";
37
- import "../chunk-CXZAKS7S.js";
36
+ import "../chunk-FRPR4OTH.js";
38
37
  import {
39
38
  CODEX_AGENT,
40
39
  DEFAULT_SESSION,
41
- UNNAMED_ACTION,
42
40
  blockedActionFingerprint,
43
41
  codexAllow,
44
42
  codexCallKey,
45
43
  codexDeny,
46
44
  codexPass,
47
45
  codexQuestionLimitDecision,
48
- codexReviewerDenialsSince,
49
46
  consumeCodexCallDecision,
50
- deriveActionBody,
51
- deriveBlocker,
52
- deriveToolTarget,
53
47
  describeApplyPatch,
54
- describeToolCall,
55
48
  fetchModeState,
56
49
  forgetBlockedActionHint,
57
50
  getPolicy,
@@ -62,26 +55,34 @@ import {
62
55
  handleSubagentStop,
63
56
  handleUserPrompt,
64
57
  hasBlockedActionHint,
65
- isCodexGuardianRolloutHead,
66
- patchDeletesFiles,
67
58
  permissionTimeoutDecision,
68
59
  policyRequestFor,
69
- readCodexTurnContext,
70
60
  readLastPrompt,
71
61
  recordBlockedActionHint,
72
62
  recordCodexCallDecision,
73
63
  reportEvent,
74
- scanCodexGuardianReviews,
75
- scopePathFor,
76
- sessionIdentityOf,
77
64
  toCodexWire,
78
65
  toPolicyLookup,
79
66
  toPolicyLookups,
80
67
  userScope
81
- } from "../chunk-FHPSVTS5.js";
68
+ } from "../chunk-JLJWVKMJ.js";
69
+ import {
70
+ UNNAMED_ACTION,
71
+ codexReviewerDenialsSince,
72
+ deriveActionBody,
73
+ deriveBlocker,
74
+ deriveToolTarget,
75
+ describeToolCall,
76
+ isCodexGuardianRolloutHead,
77
+ patchDeletesFiles,
78
+ readCodexTurnContext,
79
+ scanCodexGuardianReviews,
80
+ scopePathFor,
81
+ sessionIdentityOf
82
+ } from "../chunk-3MWQZKIO.js";
82
83
  import {
83
84
  repoKeyFor
84
- } from "../chunk-M5XNFUXN.js";
85
+ } from "../chunk-OGTZ7JR7.js";
85
86
  import {
86
87
  askUser,
87
88
  cancelQuestion,
@@ -96,31 +97,31 @@ import {
96
97
  sendNotification,
97
98
  unavailableQuestionUnlessRefused,
98
99
  waitForQuestion
99
- } from "../chunk-OIW3JAWH.js";
100
+ } from "../chunk-HWT42Z4O.js";
100
101
  import "../chunk-POFBE6ZY.js";
101
102
  import {
102
103
  SubscriptionRequiredError
103
- } from "../chunk-Z5HLACZT.js";
104
- import "../chunk-LNSCANYY.js";
105
- import "../chunk-JNCD2ZG3.js";
104
+ } from "../chunk-ZWKF7WE4.js";
105
+ import "../chunk-BUS7MXEE.js";
106
+ import "../chunk-JJCMQRBF.js";
106
107
  import {
107
108
  getMachineId
108
- } from "../chunk-YAMNJXCD.js";
109
- import "../chunk-NPBPH7KI.js";
109
+ } from "../chunk-V4JZHAOY.js";
110
+ import "../chunk-UGELL4RB.js";
110
111
  import {
111
112
  canonicalJson
112
- } from "../chunk-UOUUTDWF.js";
113
+ } from "../chunk-PHBZK4SC.js";
113
114
  import {
114
115
  writeFileAtomic
115
- } from "../chunk-2BJZFA7X.js";
116
+ } from "../chunk-64XK7DLE.js";
116
117
  import {
117
118
  getApiKey
118
- } from "../chunk-ONUAAXAW.js";
119
+ } from "../chunk-JSZT4Q23.js";
119
120
  import "../chunk-PPY5N2E6.js";
120
121
  import {
121
122
  EXIT
122
123
  } from "../chunk-KZERVKTD.js";
123
- import "../chunk-TTTK44RK.js";
124
+ import "../chunk-GGGOFJBL.js";
124
125
  import "../chunk-ZVU6WMMU.js";
125
126
  import {
126
127
  CODEX_RESCUE_TOOL_NAME,
@@ -150,7 +151,7 @@ import {
150
151
  resolveGate,
151
152
  scopeBreachReasonOf,
152
153
  unapprovedScopeReason
153
- } from "../chunk-WG67W43Y.js";
154
+ } from "../chunk-JHWOM55B.js";
154
155
  import "../chunk-MLKGABMK.js";
155
156
 
156
157
  // bin/pushary-codex-hook.ts
@@ -810,7 +811,7 @@ var decidePreToolUse = async (input) => {
810
811
  };
811
812
  var repairCodexHoldsQuietly = async () => {
812
813
  try {
813
- const { repairCodexHolds } = await import("../reapply-L3AI5KJH.js");
814
+ const { repairCodexHolds } = await import("../reapply-P2VOZGWQ.js");
814
815
  repairCodexHolds();
815
816
  } catch {
816
817
  return;
@@ -8,8 +8,8 @@ import "../chunk-MLKGABMK.js";
8
8
  var args = process.argv.slice(2);
9
9
  if (args[0] === "codex") args.shift();
10
10
  var appBehindTheProxy = args[0] === "--desktop-proxy" && args[2] === "--" ? args[1] : void 0;
11
- if (args[0] !== "--desktop-proxy") (await import("../usage-TKZALYXF.js")).exitOnHelpFlag("codex");
12
- var loadWhatReadsTheAccount = () => Promise.all([import("../config-MZDRETL2.js"), import("../identity-YZRDJOGY.js")]);
11
+ if (args[0] !== "--desktop-proxy") (await import("../usage-KDRZPUZS.js")).exitOnHelpFlag("codex");
12
+ var loadWhatReadsTheAccount = () => Promise.all([import("../config-ESAAVJWO.js"), import("../identity-IZVPSC7B.js")]);
13
13
  var loadedWhenThePassThroughStarted = appBehindTheProxy === void 0 ? null : loadWhatReadsTheAccount().catch(() => null);
14
14
  var desktopAccount = async () => {
15
15
  try {
@@ -19,7 +19,7 @@ var desktopAccount = async () => {
19
19
  return null;
20
20
  }
21
21
  };
22
- var desktopLaunch = await import("../codex-desktop-launch-LHMHRVGF.js").catch(() => null);
22
+ var desktopLaunch = await import("../codex-desktop-launch-UU6CPB2I.js").catch(() => null);
23
23
  if (desktopLaunch === null && appBehindTheProxy !== void 0) {
24
24
  process.exitCode = await letCodexRunWithoutPushary(appBehindTheProxy, args.slice(3));
25
25
  } else {
@@ -27,15 +27,15 @@ if (desktopLaunch === null && appBehindTheProxy !== void 0) {
27
27
  const stop = () => abort.abort();
28
28
  if (!args[0]?.startsWith("--desktop")) for (const signal of ["SIGINT", "SIGTERM", "SIGHUP"]) process.on(signal, stop);
29
29
  try {
30
- const { codexDesktopCommand } = desktopLaunch ?? await import("../codex-desktop-launch-LHMHRVGF.js");
30
+ const { codexDesktopCommand } = desktopLaunch ?? await import("../codex-desktop-launch-UU6CPB2I.js");
31
31
  const desktop = await codexDesktopCommand(args, [process.execPath, ...process.execArgv, process.argv[1], "codex"], desktopAccount);
32
32
  if (desktop !== null) process.exitCode = desktop;
33
33
  else {
34
34
  const [{ getApiKey, getBaseUrl }, { getMachineId }, { resolveProviderBinary }, { codexSessionDirectory, launchCodexSession }] = await Promise.all([
35
- import("../config-MZDRETL2.js"),
36
- import("../identity-YZRDJOGY.js"),
37
- import("../live-capabilities-KSQDWVT6.js"),
38
- import("../codex-session-launch-MXUBSTL2.js")
35
+ import("../config-ESAAVJWO.js"),
36
+ import("../identity-IZVPSC7B.js"),
37
+ import("../live-capabilities-OEUPZX67.js"),
38
+ import("../codex-session-launch-66LBR4MG.js")
39
39
  ]);
40
40
  const binary = resolveProviderBinary("codex");
41
41
  if (!binary) throw new Error("Install Codex first, then run pushary codex");
@@ -1,33 +1,34 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  reportEvent
4
- } from "../chunk-FHPSVTS5.js";
5
- import "../chunk-M5XNFUXN.js";
4
+ } from "../chunk-JLJWVKMJ.js";
5
+ import "../chunk-3MWQZKIO.js";
6
+ import "../chunk-OGTZ7JR7.js";
6
7
  import {
7
8
  askUser,
8
9
  isDecisionStopped,
9
10
  waitForAnswer
10
- } from "../chunk-OIW3JAWH.js";
11
+ } from "../chunk-HWT42Z4O.js";
11
12
  import "../chunk-POFBE6ZY.js";
12
- import "../chunk-Z5HLACZT.js";
13
- import "../chunk-LNSCANYY.js";
14
- import "../chunk-JNCD2ZG3.js";
13
+ import "../chunk-ZWKF7WE4.js";
14
+ import "../chunk-BUS7MXEE.js";
15
+ import "../chunk-JJCMQRBF.js";
15
16
  import {
16
17
  getMachineId
17
- } from "../chunk-YAMNJXCD.js";
18
- import "../chunk-NPBPH7KI.js";
19
- import "../chunk-UOUUTDWF.js";
20
- import "../chunk-2BJZFA7X.js";
18
+ } from "../chunk-V4JZHAOY.js";
19
+ import "../chunk-UGELL4RB.js";
20
+ import "../chunk-PHBZK4SC.js";
21
+ import "../chunk-64XK7DLE.js";
21
22
  import {
22
23
  getApiKey
23
- } from "../chunk-ONUAAXAW.js";
24
+ } from "../chunk-JSZT4Q23.js";
24
25
  import "../chunk-PPY5N2E6.js";
25
26
  import "../chunk-KZERVKTD.js";
26
27
  import {
27
28
  NPX_LATEST_COMMAND
28
- } from "../chunk-TTTK44RK.js";
29
+ } from "../chunk-GGGOFJBL.js";
29
30
  import "../chunk-ZVU6WMMU.js";
30
- import "../chunk-WG67W43Y.js";
31
+ import "../chunk-JHWOM55B.js";
31
32
  import "../chunk-MLKGABMK.js";
32
33
 
33
34
  // bin/pushary-codex.ts
@@ -1,53 +1,54 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  printKeyCheck
4
- } from "../chunk-G5BYSS6C.js";
4
+ } from "../chunk-HVZJ2EEI.js";
5
5
  import {
6
6
  connectDevice,
7
7
  connectExistingApp,
8
8
  printConnectInstructions
9
- } from "../chunk-OXKVR2FP.js";
9
+ } from "../chunk-W2IRYDG5.js";
10
10
  import "../chunk-3EGEA4KH.js";
11
- import "../chunk-RRMRP62I.js";
12
- import "../chunk-AXE2ZOKS.js";
11
+ import "../chunk-G2GOVKBU.js";
12
+ import "../chunk-HLAW7HUT.js";
13
13
  import {
14
14
  CONNECTED_THROUGH_MAC_APP,
15
15
  PAIR_FROM_MAC_APP,
16
16
  readMacAppConnection
17
- } from "../chunk-J4TQYGHU.js";
18
- import "../chunk-C6FQ4YST.js";
17
+ } from "../chunk-QSDZE2B7.js";
18
+ import "../chunk-BS5MTP34.js";
19
19
  import "../chunk-QCGNGEGE.js";
20
- import "../chunk-CV56MBIZ.js";
20
+ import "../chunk-TSCFJJIB.js";
21
21
  import {
22
22
  createIo
23
23
  } from "../chunk-FO3MDD26.js";
24
24
  import {
25
25
  exitOnHelpFlag
26
- } from "../chunk-D3QGBMO3.js";
27
- import "../chunk-5TMGEQAC.js";
28
- import "../chunk-IEAABGST.js";
29
- import "../chunk-JXE4UQFJ.js";
30
- import "../chunk-4S5XVFDV.js";
26
+ } from "../chunk-QF6OJUWQ.js";
27
+ import "../chunk-VJZGR4N3.js";
28
+ import "../chunk-YU5ACKJP.js";
29
+ import "../chunk-HARHFDZM.js";
30
+ import "../chunk-RPNT4D3K.js";
31
31
  import {
32
32
  parseFlags
33
33
  } from "../chunk-NMUI3ZWG.js";
34
34
  import {
35
35
  readKeySource
36
- } from "../chunk-CXZAKS7S.js";
37
- import "../chunk-FHPSVTS5.js";
38
- import "../chunk-M5XNFUXN.js";
39
- import "../chunk-OIW3JAWH.js";
36
+ } from "../chunk-FRPR4OTH.js";
37
+ import "../chunk-JLJWVKMJ.js";
38
+ import "../chunk-3MWQZKIO.js";
39
+ import "../chunk-OGTZ7JR7.js";
40
+ import "../chunk-HWT42Z4O.js";
40
41
  import "../chunk-POFBE6ZY.js";
41
- import "../chunk-Z5HLACZT.js";
42
+ import "../chunk-ZWKF7WE4.js";
42
43
  import {
43
44
  checkApiKey
44
- } from "../chunk-LNSCANYY.js";
45
- import "../chunk-JNCD2ZG3.js";
46
- import "../chunk-YAMNJXCD.js";
47
- import "../chunk-NPBPH7KI.js";
48
- import "../chunk-UOUUTDWF.js";
49
- import "../chunk-2BJZFA7X.js";
50
- import "../chunk-ONUAAXAW.js";
45
+ } from "../chunk-BUS7MXEE.js";
46
+ import "../chunk-JJCMQRBF.js";
47
+ import "../chunk-V4JZHAOY.js";
48
+ import "../chunk-UGELL4RB.js";
49
+ import "../chunk-PHBZK4SC.js";
50
+ import "../chunk-64XK7DLE.js";
51
+ import "../chunk-JSZT4Q23.js";
51
52
  import {
52
53
  UsageError
53
54
  } from "../chunk-PPY5N2E6.js";
@@ -56,9 +57,9 @@ import {
56
57
  } from "../chunk-KZERVKTD.js";
57
58
  import {
58
59
  isInvocationOf
59
- } from "../chunk-TTTK44RK.js";
60
+ } from "../chunk-GGGOFJBL.js";
60
61
  import "../chunk-ZVU6WMMU.js";
61
- import "../chunk-WG67W43Y.js";
62
+ import "../chunk-JHWOM55B.js";
62
63
  import "../chunk-MLKGABMK.js";
63
64
 
64
65
  // bin/pushary-connect.ts
@@ -2,15 +2,15 @@
2
2
  import {
3
3
  coworkOutput,
4
4
  parseCoworkOptions
5
- } from "../chunk-IXVMMDIG.js";
5
+ } from "../chunk-6HBWJXU6.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-D3QGBMO3.js";
13
- import "../chunk-JXE4UQFJ.js";
12
+ } from "../chunk-QF6OJUWQ.js";
13
+ import "../chunk-HARHFDZM.js";
14
14
  import "../chunk-NMUI3ZWG.js";
15
15
  import {
16
16
  UsageError
@@ -18,11 +18,11 @@ import {
18
18
  import {
19
19
  EXIT
20
20
  } from "../chunk-KZERVKTD.js";
21
- import "../chunk-TTTK44RK.js";
21
+ import "../chunk-GGGOFJBL.js";
22
22
  import "../chunk-ZVU6WMMU.js";
23
23
  import {
24
24
  CLAUDE_CONNECTOR_GUIDE
25
- } from "../chunk-WG67W43Y.js";
25
+ } from "../chunk-JHWOM55B.js";
26
26
  import "../chunk-MLKGABMK.js";
27
27
 
28
28
  // bin/pushary-cowork.ts
@@ -1,30 +1,30 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  inspectConfiguredManagedProviders
4
- } from "../chunk-APSYBSMG.js";
4
+ } from "../chunk-QG5Y5A36.js";
5
5
  import {
6
6
  HEARTBEAT_INTERVAL_MS,
7
7
  sendHeartbeat
8
- } from "../chunk-3V6G2GBJ.js";
9
- import "../chunk-O6T3CLWT.js";
8
+ } from "../chunk-DNBBWBYA.js";
9
+ import "../chunk-5Z43EFX2.js";
10
10
  import {
11
11
  readSignedOutDiagnosis
12
- } from "../chunk-AXE2ZOKS.js";
12
+ } from "../chunk-HLAW7HUT.js";
13
13
  import {
14
14
  HERMES_INSTALL_MARKER_FILE,
15
15
  defaultHermesHome,
16
16
  parseHermesInstallMarker
17
- } from "../chunk-I4RNLK5G.js";
17
+ } from "../chunk-TNPKYKXU.js";
18
18
  import {
19
19
  writeHuman
20
20
  } from "../chunk-QCGNGEGE.js";
21
- import "../chunk-2TEX3APZ.js";
22
- import "../chunk-FJZSJZCT.js";
23
- import "../chunk-DS5BR4K6.js";
24
- import "../chunk-CV56MBIZ.js";
21
+ import "../chunk-4OP5GWHQ.js";
22
+ import "../chunk-CIICMXVH.js";
23
+ import "../chunk-4J3NGYHG.js";
24
+ import "../chunk-TSCFJJIB.js";
25
25
  import {
26
26
  exitOnHelpFlag
27
- } from "../chunk-D3QGBMO3.js";
27
+ } from "../chunk-QF6OJUWQ.js";
28
28
  import {
29
29
  codexBinaryIsBroken,
30
30
  detectProviderLiveCapabilities,
@@ -33,8 +33,8 @@ import {
33
33
  launchableProviders,
34
34
  resolveControlPolicy,
35
35
  trackProviderInventory
36
- } from "../chunk-UYTPCZ4M.js";
37
- import "../chunk-UB7VUSSX.js";
36
+ } from "../chunk-4QGV3II7.js";
37
+ import "../chunk-LUSWC2MV.js";
38
38
  import {
39
39
  SESSION_REAP_SILENCE_MS,
40
40
  describeIdleWindow,
@@ -42,17 +42,16 @@ import {
42
42
  listProcessProofs,
43
43
  ownsLiveProcess,
44
44
  silentSpawnedProofs
45
- } from "../chunk-DJILSCSU.js";
46
- import "../chunk-TO77OYLM.js";
45
+ } from "../chunk-YQCCJ6U5.js";
46
+ import "../chunk-7ZYVX2KN.js";
47
47
  import {
48
48
  readLocalAutoUpdateReport
49
- } from "../chunk-S2DLTWFG.js";
49
+ } from "../chunk-ZHL6F2KC.js";
50
50
  import {
51
51
  startRegisteredTranscripts
52
- } from "../chunk-WUS2LFTM.js";
53
- import "../chunk-VHLRXIMC.js";
54
- import "../chunk-MHUKYYYR.js";
55
- import "../chunk-5TMGEQAC.js";
52
+ } from "../chunk-ZUZ7NTWO.js";
53
+ import "../chunk-4TMKTLQX.js";
54
+ import "../chunk-VJZGR4N3.js";
56
55
  import {
57
56
  DAEMON_LEASE_RENEW_INTERVAL_MS,
58
57
  acquireDaemonLease,
@@ -69,53 +68,54 @@ import {
69
68
  requestDaemonHandoff,
70
69
  stopDaemonRunning,
71
70
  writeDaemonNeedsLogin
72
- } from "../chunk-6L2U3TP3.js";
71
+ } from "../chunk-SAPRO7FI.js";
73
72
  import {
74
73
  hookOwnerOf
75
- } from "../chunk-IEAABGST.js";
76
- import "../chunk-JXE4UQFJ.js";
77
- import "../chunk-4S5XVFDV.js";
74
+ } from "../chunk-YU5ACKJP.js";
75
+ import "../chunk-HARHFDZM.js";
76
+ import "../chunk-RPNT4D3K.js";
78
77
  import "../chunk-NMUI3ZWG.js";
79
- import "../chunk-W3VRQEL3.js";
78
+ import "../chunk-7GYDMVHV.js";
80
79
  import "../chunk-XMSDA5WA.js";
81
- import "../chunk-OXTRF7CP.js";
80
+ import "../chunk-GWHZUHIK.js";
82
81
  import {
83
82
  spawnClaude
84
83
  } from "../chunk-XHKBHWLX.js";
85
84
  import {
86
85
  readControlMode
87
- } from "../chunk-CXZAKS7S.js";
86
+ } from "../chunk-FRPR4OTH.js";
88
87
  import {
89
88
  pendingCommandReceipts,
90
89
  removePendingCommand
91
- } from "../chunk-FHPSVTS5.js";
92
- import "../chunk-M5XNFUXN.js";
93
- import "../chunk-OIW3JAWH.js";
90
+ } from "../chunk-JLJWVKMJ.js";
91
+ import "../chunk-3MWQZKIO.js";
92
+ import "../chunk-OGTZ7JR7.js";
93
+ import "../chunk-HWT42Z4O.js";
94
94
  import "../chunk-POFBE6ZY.js";
95
- import "../chunk-Z5HLACZT.js";
96
- import "../chunk-LNSCANYY.js";
97
- import "../chunk-JNCD2ZG3.js";
95
+ import "../chunk-ZWKF7WE4.js";
96
+ import "../chunk-BUS7MXEE.js";
97
+ import "../chunk-JJCMQRBF.js";
98
98
  import {
99
99
  getMachineId
100
- } from "../chunk-YAMNJXCD.js";
101
- import "../chunk-NPBPH7KI.js";
100
+ } from "../chunk-V4JZHAOY.js";
101
+ import "../chunk-UGELL4RB.js";
102
102
  import {
103
103
  claudeConfigDir,
104
104
  codexHome
105
- } from "../chunk-UOUUTDWF.js";
105
+ } from "../chunk-PHBZK4SC.js";
106
106
  import {
107
107
  resolveBinary,
108
108
  writeJsonAtomicDurable
109
- } from "../chunk-2BJZFA7X.js";
109
+ } from "../chunk-64XK7DLE.js";
110
110
  import {
111
111
  getApiKey,
112
112
  getBaseUrl
113
- } from "../chunk-ONUAAXAW.js";
113
+ } from "../chunk-JSZT4Q23.js";
114
114
  import "../chunk-PPY5N2E6.js";
115
115
  import {
116
116
  EXIT
117
117
  } from "../chunk-KZERVKTD.js";
118
- import "../chunk-TTTK44RK.js";
118
+ import "../chunk-GGGOFJBL.js";
119
119
  import "../chunk-ZVU6WMMU.js";
120
120
  import {
121
121
  CLAUDE_INBOX,
@@ -145,7 +145,7 @@ import {
145
145
  parseHermesAdmission,
146
146
  parseHermesReplayCursor,
147
147
  qualifyHermesReceiptMode
148
- } from "../chunk-WG67W43Y.js";
148
+ } from "../chunk-JHWOM55B.js";
149
149
  import "../chunk-MLKGABMK.js";
150
150
 
151
151
  // src/native-host-receiver.ts
@@ -415,7 +415,7 @@ var NativeHostClient = class {
415
415
  (row) => nativeRecord(row) && nativeIdentifier(row.session_id) && (row.source === "cli" || row.source === "local")
416
416
  ).map((row) => ({
417
417
  sessionId: String(row.session_id),
418
- cwd: this.options.home,
418
+ cwd: null,
419
419
  agent: this.options.agent
420
420
  }));
421
421
  }
@@ -725,6 +725,7 @@ var readHookOwner = (file) => {
725
725
 
726
726
  // src/native-input-receiver.ts
727
727
  import { basename } from "path";
728
+ var heartbeatAgentName = (agentName, cwd) => cwd === null ? agentName : `${agentName} - ${basename(cwd)}`;
728
729
  var startNativeInputReceiver = (apiKey, machineId, options) => {
729
730
  const client = options.client;
730
731
  const baseUrl = options.baseUrl ?? getBaseUrl();
@@ -827,10 +828,10 @@ var startNativeInputReceiver = (apiKey, machineId, options) => {
827
828
  await post("/api/agent/event", {
828
829
  event: "heartbeat",
829
830
  agentType: options.agentType ?? "claude_code",
830
- agentName: `${options.agentName ?? "Claude Code"} - ${basename(session.cwd)}`,
831
+ agentName: heartbeatAgentName(options.agentName ?? "Claude Code", session.cwd),
831
832
  sessionId: session.sessionId,
832
833
  machineId,
833
- cwd: session.cwd,
834
+ cwd: session.cwd ?? void 0,
834
835
  sentAt: (/* @__PURE__ */ new Date()).toISOString(),
835
836
  canDrainCommand: false
836
837
  });
@@ -1276,6 +1277,15 @@ var ClaudeInboxClient = class {
1276
1277
  };
1277
1278
 
1278
1279
  // src/claude-inbox-receiver.ts
1280
+ var MAXIMUM_ACCEPTED_WAKES_WHILE_PENDING = 3;
1281
+ var REPEATED_WAKE_PAUSE_MS = 30 * 6e4;
1282
+ var repeatedWakesPaused = (wakes, nowMs) => wakes !== void 0 && wakes.accepted >= MAXIMUM_ACCEPTED_WAKES_WHILE_PENDING && nowMs - wakes.firstAcceptedAtMs < REPEATED_WAKE_PAUSE_MS;
1283
+ var afterAcceptedWake = (wakes, nowMs) => {
1284
+ if (!wakes || nowMs - wakes.firstAcceptedAtMs >= REPEATED_WAKE_PAUSE_MS) return { accepted: 1, firstAcceptedAtMs: nowMs, lastAcceptedAtMs: nowMs };
1285
+ if (nowMs - wakes.lastAcceptedAtMs < CLAUDE_WAKE.debounceMs) return wakes;
1286
+ return { ...wakes, accepted: wakes.accepted + 1, lastAcceptedAtMs: nowMs };
1287
+ };
1288
+ var pausedWakeReportDue = (wakes, nowMs) => nowMs - (wakes.pauseReportedAtMs ?? wakes.lastAcceptedAtMs) >= CLAUDE_WAKE.debounceMs;
1279
1289
  var ownsSession = (session) => {
1280
1290
  const files = [
1281
1291
  join4(claudeConfigDir(), "settings.json"),
@@ -1295,6 +1305,7 @@ var startClaudeInboxReceiver = (apiKey, machineId, options = {}) => {
1295
1305
  let scanning = false;
1296
1306
  let cursor = 0;
1297
1307
  const heartbeats = /* @__PURE__ */ new Map();
1308
+ const wakesWhilePending = /* @__PURE__ */ new Map();
1298
1309
  const post = async (body, path = CLAUDE_WAKE_API) => {
1299
1310
  const response = await fetch(`${baseUrl}${path}`, {
1300
1311
  method: "POST",
@@ -1331,7 +1342,10 @@ var startClaudeInboxReceiver = (apiKey, machineId, options = {}) => {
1331
1342
  abort.signal
1332
1343
  );
1333
1344
  const sessions = client.sessions().filter(options.ownsSession ?? ownsSession).slice(0, CLAUDE_INBOX_MAX_SESSIONS);
1334
- if (!sessions.length) return;
1345
+ if (!sessions.length) {
1346
+ wakesWhilePending.clear();
1347
+ return;
1348
+ }
1335
1349
  for (const session of sessions) {
1336
1350
  if (Date.now() - (heartbeats.get(session.sessionId) ?? 0) < CLAUDE_INBOX_RECEIVER.heartbeatMs)
1337
1351
  continue;
@@ -1358,6 +1372,9 @@ var startClaudeInboxReceiver = (apiKey, machineId, options = {}) => {
1358
1372
  });
1359
1373
  const pending = parseClaudeInboxPoll(raw);
1360
1374
  if (!pending) throw new Error("Claude wake protocol mismatch");
1375
+ for (const sessionId of [...wakesWhilePending.keys()]) {
1376
+ if (!pending.includes(sessionId)) wakesWhilePending.delete(sessionId);
1377
+ }
1361
1378
  const rotated = [...pending.slice(cursor), ...pending.slice(0, cursor)];
1362
1379
  const batch = rotated.slice(0, CLAUDE_INBOX_RECEIVER.maxConcurrent);
1363
1380
  cursor = pending.length ? (cursor + batch.length) % pending.length : 0;
@@ -1365,8 +1382,18 @@ var startClaudeInboxReceiver = (apiKey, machineId, options = {}) => {
1365
1382
  batch.map(async (sessionId) => {
1366
1383
  if (!sessions.some((session) => session.sessionId === sessionId) || abort.signal.aborted)
1367
1384
  return;
1385
+ const wakes = wakesWhilePending.get(sessionId);
1386
+ const nowMs = Date.now();
1387
+ if (wakes && repeatedWakesPaused(wakes, nowMs)) {
1388
+ if (!pausedWakeReportDue(wakes, nowMs)) return;
1389
+ wakesWhilePending.set(sessionId, { ...wakes, pauseReportedAtMs: nowMs });
1390
+ await report(sessionId, "local_use" /* localUse */);
1391
+ return;
1392
+ }
1368
1393
  await report(sessionId, "waking" /* waking */);
1369
1394
  const outcome = await client.wake(sessionId, abort.signal);
1395
+ if (outcome === "wake_accepted" /* accepted */)
1396
+ wakesWhilePending.set(sessionId, afterAcceptedWake(wakesWhilePending.get(sessionId), Date.now()));
1370
1397
  await report(sessionId, claudeWakeWaitingOn(outcome));
1371
1398
  })
1372
1399
  );