@pushary/agent-hooks 1.9.73 → 1.9.75

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 (125) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/{api-JVWXPKEW.js → api-L3BIISGS.js} +10 -10
  3. package/dist/bin/pushary-bell-hook.js +26 -25
  4. package/dist/bin/pushary-bell.js +14 -14
  5. package/dist/bin/pushary-claude.js +54 -82
  6. package/dist/bin/pushary-clean.js +37 -37
  7. package/dist/bin/pushary-codex-bridge.js +24 -24
  8. package/dist/bin/pushary-codex-hook.js +35 -34
  9. package/dist/bin/pushary-codex-session.js +8 -8
  10. package/dist/bin/pushary-codex.js +15 -15
  11. package/dist/bin/pushary-connect.js +26 -26
  12. package/dist/bin/pushary-cowork.js +5 -5
  13. package/dist/bin/pushary-daemon.js +1292 -63
  14. package/dist/bin/pushary-disconnect.js +31 -31
  15. package/dist/bin/pushary-display-hook.d.ts +1 -0
  16. package/dist/bin/pushary-display-hook.js +57 -0
  17. package/dist/bin/pushary-doctor.js +50 -50
  18. package/dist/bin/pushary-elicitation-hook.js +28 -27
  19. package/dist/bin/pushary-gemini-bridge.js +16 -16
  20. package/dist/bin/pushary-gemini-hook.js +30 -29
  21. package/dist/bin/pushary-hook.js +30 -29
  22. package/dist/bin/pushary-login.js +20 -20
  23. package/dist/bin/pushary-logout.js +30 -30
  24. package/dist/bin/pushary-mcp.js +14 -14
  25. package/dist/bin/pushary-mode.js +18 -18
  26. package/dist/bin/pushary-notification-hook.js +25 -24
  27. package/dist/bin/pushary-opencode-hook.js +29 -28
  28. package/dist/bin/pushary-permission-denied-hook.js +30 -29
  29. package/dist/bin/pushary-permission-hook.js +30 -29
  30. package/dist/bin/pushary-post-hook.js +31 -29
  31. package/dist/bin/pushary-prompt-hook.js +31 -29
  32. package/dist/bin/pushary-session-end-hook.js +27 -26
  33. package/dist/bin/pushary-session-start-hook.js +35 -34
  34. package/dist/bin/pushary-setup.js +61 -60
  35. package/dist/bin/pushary-stats.js +6 -6
  36. package/dist/bin/pushary-status.js +31 -31
  37. package/dist/bin/pushary-stop-hook.js +31 -26
  38. package/dist/bin/pushary-stopfailure-hook.js +25 -24
  39. package/dist/bin/pushary-suggestions.js +18 -18
  40. package/dist/bin/pushary-transcript-register.js +17 -16
  41. package/dist/bin/pushary-transcripts.js +19 -19
  42. package/dist/bin/pushary-upgrade.js +45 -45
  43. package/dist/bin/pushary-wait.js +18 -18
  44. package/dist/bin/pushary.js +7 -7
  45. package/dist/{chunk-TQ2L3ECX.js → chunk-2DB7TBA7.js} +2 -2
  46. package/dist/{chunk-7S46LCKD.js → chunk-2J4IVUEA.js} +3 -2
  47. package/dist/{chunk-7M4AA7QF.js → chunk-32JJ5KV3.js} +4 -4
  48. package/dist/{chunk-PM2MHBMF.js → chunk-3PPL64AG.js} +3 -3
  49. package/dist/{chunk-UIF7HWHX.js → chunk-3SAF4QXU.js} +4 -4
  50. package/dist/{chunk-BLX6KRK5.js → chunk-4DH54LS7.js} +1 -1
  51. package/dist/{chunk-N4VRSFRZ.js → chunk-4GWKKUQ5.js} +5 -5
  52. package/dist/{chunk-4LAD5A2Q.js → chunk-4T25BBBO.js} +4 -4
  53. package/dist/{chunk-R5PZPROX.js → chunk-53D6FFVE.js} +1 -1
  54. package/dist/{chunk-U3EBM73X.js → chunk-5EQOUZYE.js} +2 -2
  55. package/dist/{chunk-WXV7J3DG.js → chunk-6BFLDHPM.js} +3 -3
  56. package/dist/{chunk-NJSW2REO.js → chunk-7FNSQMQ2.js} +4 -4
  57. package/dist/{chunk-EUEGCEA7.js → chunk-7O54GE5C.js} +3 -3
  58. package/dist/{chunk-RZVWEDIS.js → chunk-AUDYAVNM.js} +3 -3
  59. package/dist/{chunk-UUCRWEEU.js → chunk-BGEUAJYL.js} +2 -2
  60. package/dist/{chunk-4UIR25GA.js → chunk-BRG4XS2H.js} +1 -1
  61. package/dist/{chunk-F3WI32HG.js → chunk-CI6MDBQB.js} +7 -7
  62. package/dist/{chunk-SQ5XCMPB.js → chunk-CLHRSK5L.js} +4 -4
  63. package/dist/{chunk-JNTYPMVU.js → chunk-D4X4BQVQ.js} +10 -10
  64. package/dist/{chunk-7FROPPIH.js → chunk-DARPCQPY.js} +2 -2
  65. package/dist/{chunk-WJJVCDEU.js → chunk-DCHZ5JOI.js} +6 -6
  66. package/dist/{chunk-KDQLKND5.js → chunk-DOG3BQFO.js} +6 -6
  67. package/dist/{chunk-QMPM3CAN.js → chunk-DUOBFECC.js} +1 -1
  68. package/dist/{chunk-3QBKMSOZ.js → chunk-DX65IDBI.js} +1 -1
  69. package/dist/{chunk-3RAWW5DH.js → chunk-E5XYFIYL.js} +6 -6
  70. package/dist/{chunk-Z7AIYWZ2.js → chunk-EH5OLIP2.js} +2 -2
  71. package/dist/{chunk-IN3MPEFA.js → chunk-EM2RSWDA.js} +5 -5
  72. package/dist/{chunk-CMYFV3VC.js → chunk-EOGVWCLF.js} +5 -5
  73. package/dist/{chunk-CGWUVEOB.js → chunk-EVBG5YUO.js} +3 -3
  74. package/dist/{chunk-PNXNWZ5P.js → chunk-FEC3JUIH.js} +3 -3
  75. package/dist/{chunk-3JJI5O5N.js → chunk-GAAN3Y7V.js} +1 -1
  76. package/dist/{chunk-VBSPP4QY.js → chunk-HRRGIVIL.js} +3 -3
  77. package/dist/{chunk-2QB7HJVJ.js → chunk-HXV2SY2V.js} +2 -2
  78. package/dist/{chunk-JWBZUTYF.js → chunk-I6TIZMM3.js} +5 -5
  79. package/dist/{chunk-AXZ67XVN.js → chunk-I73UQU7K.js} +1 -1
  80. package/dist/{chunk-ZBZBYUNZ.js → chunk-JCZWWBBA.js} +5 -5
  81. package/dist/{chunk-AJWGZJFS.js → chunk-JFVLMWKY.js} +131 -28
  82. package/dist/{chunk-GBR6E7AY.js → chunk-JOMG6J64.js} +1 -1
  83. package/dist/{chunk-EITOMPFB.js → chunk-KDUWFGY2.js} +4 -4
  84. package/dist/{chunk-NGNBX3YH.js → chunk-LIDUPDEY.js} +4 -4
  85. package/dist/{chunk-YZ6DMGZZ.js → chunk-LRYZXY4V.js} +1 -1
  86. package/dist/{chunk-TTGBS5JB.js → chunk-M7BXAWUC.js} +3 -3
  87. package/dist/{chunk-KSLBS3II.js → chunk-MD4UJICD.js} +6 -5
  88. package/dist/{chunk-2HFC4W6J.js → chunk-NCTABQMC.js} +4 -3
  89. package/dist/{chunk-PGJMSREY.js → chunk-P4TWTQ6V.js} +8 -8
  90. package/dist/{chunk-XKQ7CQGG.js → chunk-PGLNE556.js} +1 -1
  91. package/dist/{chunk-2NG3ANMT.js → chunk-PV5XEBFI.js} +9 -9
  92. package/dist/{chunk-JYOR57ZW.js → chunk-QDUDXJAF.js} +3 -3
  93. package/dist/{chunk-AVHL2ZTS.js → chunk-QRS7FQHE.js} +455 -172
  94. package/dist/{chunk-TFDMJHAB.js → chunk-R7V6BPEV.js} +1 -1
  95. package/dist/{chunk-S63VIM7E.js → chunk-RPKFXNOJ.js} +1 -1
  96. package/dist/{chunk-56GK65Z6.js → chunk-SFJOGZQV.js} +3 -3
  97. package/dist/{chunk-VJUDBZGC.js → chunk-SHW6KK2K.js} +2 -2
  98. package/dist/{chunk-S7VMHSJW.js → chunk-SIJHPGUW.js} +5 -5
  99. package/dist/{chunk-7RX5TOU3.js → chunk-SNUHX5GQ.js} +6 -6
  100. package/dist/{chunk-O4EAMVSC.js → chunk-SOHJ37NA.js} +5 -5
  101. package/dist/{chunk-JC7XUZST.js → chunk-SONZCJY5.js} +22 -3
  102. package/dist/{chunk-FB262EOM.js → chunk-T6RWREWU.js} +1 -1
  103. package/dist/{chunk-QAWWTRDD.js → chunk-TPYZFYQ5.js} +4 -4
  104. package/dist/{chunk-FK3JSDH5.js → chunk-UBANQ4EZ.js} +13 -13
  105. package/dist/{chunk-EUHTC7K5.js → chunk-UEJTWQVF.js} +1 -1
  106. package/dist/{chunk-PPKIL4EL.js → chunk-UIS332AZ.js} +1 -1
  107. package/dist/{chunk-W47XZJSH.js → chunk-UU3CDLIX.js} +2 -2
  108. package/dist/{chunk-FAKEKFCI.js → chunk-VGHWK5Z2.js} +5 -3
  109. package/dist/{chunk-2JFEMKDG.js → chunk-WL3V2UV4.js} +6 -6
  110. package/dist/{chunk-OJ3ZD5VX.js → chunk-XO7LP3JC.js} +1 -1
  111. package/dist/{chunk-DT6VCMXS.js → chunk-Z7ORL6SC.js} +2 -2
  112. package/dist/{chunk-AC5TVOAH.js → chunk-ZX3KEXO3.js} +343 -84
  113. package/dist/{codex-app-cards-switch-M7VH7AZH.js → codex-app-cards-switch-CN3G7GZW.js} +11 -11
  114. package/dist/{codex-desktop-launch-6DASTBBA.js → codex-desktop-launch-GFZXCDSL.js} +1 -1
  115. package/dist/{codex-session-launch-2XSMFA4K.js → codex-session-launch-4F2UGQYE.js} +18 -18
  116. package/dist/{config-7QQOIFTW.js → config-BLHDUDCS.js} +3 -3
  117. package/dist/{global-upgrade-XAKX26AN.js → global-upgrade-IZEC22BQ.js} +10 -10
  118. package/dist/{identity-7AS5MBNM.js → identity-3HGTEP5Q.js} +4 -4
  119. package/dist/{live-capabilities-DV4F7MIB.js → live-capabilities-AZK664T7.js} +5 -5
  120. package/dist/{paths-GSMXYKT5.js → paths-ROMZUSEX.js} +3 -3
  121. package/dist/{reapply-MR7UWBXR.js → reapply-IJYRR4YK.js} +27 -27
  122. package/dist/src/index.js +31 -30
  123. package/dist/{upgrade-lock-6OTHLCBZ.js → upgrade-lock-FGEZPX56.js} +4 -4
  124. package/dist/{usage-H53PO3VQ.js → usage-HCURE44F.js} +3 -3
  125. package/package.json +4 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.75
4
+
5
+ - Stream completed Claude display lines from directly started sessions through the existing encrypted transcript path.
6
+ - Share native and SDK preview retries, preserve newer replies when old batches arrive, and recover snapshots after receiver replacement.
7
+ - Include durable idle instruction delivery and recovery for the compatible Claude, Codex and Hermes controllers merged in #2251.
8
+
9
+ ## 1.9.74
10
+
11
+ - Improve instruction delivery to supported running Claude Code, Codex and Hermes sessions on macOS, including recovery after lost acknowledgements and receiver restarts. Uncertain delivery stays pending instead of reporting success or submitting the instruction again.
12
+ - Keep instructions bound to the intended session and acknowledge delivery only after the required hook or native receipt.
13
+ - Continue CLI setup automatically after successful phone pairing.
14
+ - Add durable receipt recovery for the qualified Hermes development build. Its upstream fixes are awaiting release; other Hermes builds keep their existing compatibility limits. Native delivery on Linux and Windows remains unqualified.
15
+
3
16
  ## 1.9.73
4
17
 
5
18
  - Claude Code: an instruction from your phone or the Mac app that arrives as a session finishes its turn no longer shows in the terminal as "Stop hook blocking error". On Claude Code 2.1.163 and later Pushary hands it to Claude as context, and the turn carries on. On older versions, or when Pushary cannot read the session's version, it is still the reason the turn continues, which every version reads. Pushary reads the version from the file Claude Code keeps for the running session.
@@ -17,23 +17,23 @@ import {
17
17
  waitForQuestion,
18
18
  waitsForThePhone,
19
19
  withdrawQuestion
20
- } from "./chunk-CMYFV3VC.js";
20
+ } from "./chunk-EOGVWCLF.js";
21
21
  import "./chunk-POFBE6ZY.js";
22
- import "./chunk-7M4AA7QF.js";
23
- import "./chunk-S7VMHSJW.js";
24
- import "./chunk-O4EAMVSC.js";
25
- import "./chunk-UUCRWEEU.js";
22
+ import "./chunk-32JJ5KV3.js";
23
+ import "./chunk-SIJHPGUW.js";
24
+ import "./chunk-SOHJ37NA.js";
25
+ import "./chunk-BGEUAJYL.js";
26
+ import "./chunk-2J4IVUEA.js";
27
+ import "./chunk-AUDYAVNM.js";
28
+ import "./chunk-53D6FFVE.js";
26
29
  import "./chunk-PPY5N2E6.js";
27
30
  import "./chunk-KZERVKTD.js";
28
- import "./chunk-7S46LCKD.js";
29
- import "./chunk-RZVWEDIS.js";
30
- import "./chunk-R5PZPROX.js";
31
- import "./chunk-PPKIL4EL.js";
31
+ import "./chunk-UIS332AZ.js";
32
32
  import "./chunk-QTOLNRET.js";
33
33
  import {
34
34
  DECISION_STOP_REASON,
35
35
  UNVERIFIABLE_APPROVAL_REASON
36
- } from "./chunk-AVHL2ZTS.js";
36
+ } from "./chunk-QRS7FQHE.js";
37
37
  import "./chunk-MLKGABMK.js";
38
38
  export {
39
39
  ABANDONED_WAIT,
@@ -1,39 +1,40 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  handleBell
4
- } from "../chunk-4UIR25GA.js";
4
+ } from "../chunk-BRG4XS2H.js";
5
5
  import {
6
6
  readHookInput
7
- } from "../chunk-F3WI32HG.js";
8
- import "../chunk-AC5TVOAH.js";
9
- import "../chunk-FB262EOM.js";
10
- import "../chunk-UIF7HWHX.js";
11
- import "../chunk-WJJVCDEU.js";
12
- import "../chunk-QAWWTRDD.js";
13
- import "../chunk-2HFC4W6J.js";
14
- import "../chunk-BLX6KRK5.js";
7
+ } from "../chunk-CI6MDBQB.js";
8
+ import "../chunk-ZX3KEXO3.js";
9
+ import "../chunk-T6RWREWU.js";
10
+ import "../chunk-3SAF4QXU.js";
11
+ import "../chunk-DCHZ5JOI.js";
12
+ import "../chunk-TPYZFYQ5.js";
13
+ import "../chunk-NCTABQMC.js";
14
+ import "../chunk-4DH54LS7.js";
15
15
  import "../chunk-NMUI3ZWG.js";
16
- import "../chunk-JC7XUZST.js";
17
- import "../chunk-S63VIM7E.js";
16
+ import "../chunk-SONZCJY5.js";
17
+ import "../chunk-XMSDA5WA.js";
18
+ import "../chunk-RPKFXNOJ.js";
18
19
  import "../chunk-XHKBHWLX.js";
19
- import "../chunk-NGNBX3YH.js";
20
- import "../chunk-AJWGZJFS.js";
21
- import "../chunk-QMPM3CAN.js";
22
- import "../chunk-CMYFV3VC.js";
20
+ import "../chunk-LIDUPDEY.js";
21
+ import "../chunk-JFVLMWKY.js";
22
+ import "../chunk-DUOBFECC.js";
23
+ import "../chunk-EOGVWCLF.js";
23
24
  import "../chunk-POFBE6ZY.js";
24
- import "../chunk-7M4AA7QF.js";
25
- import "../chunk-S7VMHSJW.js";
26
- import "../chunk-O4EAMVSC.js";
27
- import "../chunk-UUCRWEEU.js";
25
+ import "../chunk-32JJ5KV3.js";
26
+ import "../chunk-SIJHPGUW.js";
27
+ import "../chunk-SOHJ37NA.js";
28
+ import "../chunk-BGEUAJYL.js";
29
+ import "../chunk-DARPCQPY.js";
30
+ import "../chunk-2J4IVUEA.js";
31
+ import "../chunk-AUDYAVNM.js";
32
+ import "../chunk-53D6FFVE.js";
28
33
  import "../chunk-PPY5N2E6.js";
29
34
  import "../chunk-KZERVKTD.js";
30
- import "../chunk-7FROPPIH.js";
31
- import "../chunk-7S46LCKD.js";
32
- import "../chunk-RZVWEDIS.js";
33
- import "../chunk-R5PZPROX.js";
34
- import "../chunk-PPKIL4EL.js";
35
+ import "../chunk-UIS332AZ.js";
35
36
  import "../chunk-QTOLNRET.js";
36
- import "../chunk-AVHL2ZTS.js";
37
+ import "../chunk-QRS7FQHE.js";
37
38
  import "../chunk-MLKGABMK.js";
38
39
 
39
40
  // bin/pushary-bell-hook.ts
@@ -5,40 +5,40 @@ import {
5
5
  liveAgentCount,
6
6
  ring,
7
7
  upgradeThreshold
8
- } from "../chunk-4UIR25GA.js";
8
+ } from "../chunk-BRG4XS2H.js";
9
9
  import {
10
10
  createIo
11
11
  } from "../chunk-FO3MDD26.js";
12
12
  import {
13
13
  exitOnHelpFlag
14
- } from "../chunk-OJ3ZD5VX.js";
14
+ } from "../chunk-XO7LP3JC.js";
15
15
  import {
16
16
  addBellHooks,
17
17
  bellInstalled,
18
18
  removeBellHooks
19
- } from "../chunk-BLX6KRK5.js";
19
+ } from "../chunk-4DH54LS7.js";
20
20
  import {
21
21
  parseFlags
22
22
  } from "../chunk-NMUI3ZWG.js";
23
- import "../chunk-NGNBX3YH.js";
24
- import "../chunk-PPY5N2E6.js";
25
- import {
26
- EXIT
27
- } from "../chunk-KZERVKTD.js";
28
- import "../chunk-7FROPPIH.js";
23
+ import "../chunk-LIDUPDEY.js";
24
+ import "../chunk-DARPCQPY.js";
29
25
  import {
30
26
  claudeSettings
31
- } from "../chunk-7S46LCKD.js";
27
+ } from "../chunk-2J4IVUEA.js";
32
28
  import {
33
29
  readJsonSafe,
34
30
  writeJsonAtomic
35
- } from "../chunk-RZVWEDIS.js";
36
- import "../chunk-R5PZPROX.js";
37
- import "../chunk-PPKIL4EL.js";
31
+ } from "../chunk-AUDYAVNM.js";
32
+ import "../chunk-53D6FFVE.js";
33
+ import "../chunk-PPY5N2E6.js";
34
+ import {
35
+ EXIT
36
+ } from "../chunk-KZERVKTD.js";
37
+ import "../chunk-UIS332AZ.js";
38
38
  import "../chunk-QTOLNRET.js";
39
39
  import {
40
40
  isRecord
41
- } from "../chunk-AVHL2ZTS.js";
41
+ } from "../chunk-QRS7FQHE.js";
42
42
  import "../chunk-MLKGABMK.js";
43
43
 
44
44
  // bin/pushary-bell.ts
@@ -2,50 +2,49 @@
2
2
  import {
3
3
  WRAPPER_ACTIVE_ENV,
4
4
  findClaudeBinary
5
- } from "../chunk-U3EBM73X.js";
5
+ } from "../chunk-5EQOUZYE.js";
6
6
  import {
7
7
  CommandReceipts,
8
8
  controllerCommandSchema
9
9
  } from "../chunk-N5P2FLOJ.js";
10
- import {
11
- external_exports
12
- } from "../chunk-XMSDA5WA.js";
13
10
  import {
14
11
  SESSION_IDLE_TIMEOUT_MS,
15
12
  describeIdleWindow,
16
13
  startProcessOwnership,
17
14
  withSpawnProcessOwnership
18
- } from "../chunk-PNXNWZ5P.js";
19
- import "../chunk-TFDMJHAB.js";
15
+ } from "../chunk-FEC3JUIH.js";
16
+ import "../chunk-R7V6BPEV.js";
20
17
  import {
21
18
  announceSubscriptionRequired,
22
19
  isDeferAnswer
23
- } from "../chunk-AXZ67XVN.js";
20
+ } from "../chunk-I73UQU7K.js";
24
21
  import {
25
22
  claudeTranscriptPath,
26
- loadSessionKey,
23
+ redactDraft,
27
24
  registerTranscript,
28
- registeredTranscriptEnabled
29
- } from "../chunk-AC5TVOAH.js";
30
- import "../chunk-FB262EOM.js";
25
+ registeredTranscriptEnabled,
26
+ startDraftPublisher
27
+ } from "../chunk-ZX3KEXO3.js";
28
+ import "../chunk-T6RWREWU.js";
31
29
  import {
32
30
  ensureDaemonRunning
33
- } from "../chunk-WJJVCDEU.js";
34
- import "../chunk-QAWWTRDD.js";
35
- import "../chunk-2HFC4W6J.js";
36
- import "../chunk-BLX6KRK5.js";
31
+ } from "../chunk-DCHZ5JOI.js";
32
+ import "../chunk-TPYZFYQ5.js";
33
+ import "../chunk-NCTABQMC.js";
34
+ import "../chunk-4DH54LS7.js";
37
35
  import "../chunk-NMUI3ZWG.js";
36
+ import "../chunk-SONZCJY5.js";
38
37
  import {
39
- encryptRecord
40
- } from "../chunk-JC7XUZST.js";
38
+ external_exports
39
+ } from "../chunk-XMSDA5WA.js";
41
40
  import {
42
41
  transcriptsEnabled
43
- } from "../chunk-S63VIM7E.js";
42
+ } from "../chunk-RPKFXNOJ.js";
44
43
  import {
45
44
  needsShell,
46
45
  spawnClaude
47
46
  } from "../chunk-XHKBHWLX.js";
48
- import "../chunk-NGNBX3YH.js";
47
+ import "../chunk-LIDUPDEY.js";
49
48
  import {
50
49
  DEFAULT_SESSION,
51
50
  UNNAMED_ACTION,
@@ -62,10 +61,10 @@ import {
62
61
  reportEvent,
63
62
  savePendingCommand,
64
63
  scopePathFor
65
- } from "../chunk-AJWGZJFS.js";
64
+ } from "../chunk-JFVLMWKY.js";
66
65
  import {
67
66
  repoKeyFor
68
- } from "../chunk-QMPM3CAN.js";
67
+ } from "../chunk-DUOBFECC.js";
69
68
  import {
70
69
  askUser,
71
70
  cancelQuestion,
@@ -77,30 +76,30 @@ import {
77
76
  waitForAnswer,
78
77
  waitsForThePhone,
79
78
  withdrawQuestion
80
- } from "../chunk-CMYFV3VC.js";
79
+ } from "../chunk-EOGVWCLF.js";
81
80
  import "../chunk-POFBE6ZY.js";
82
81
  import {
83
82
  SubscriptionRequiredError
84
- } from "../chunk-7M4AA7QF.js";
85
- import "../chunk-S7VMHSJW.js";
86
- import "../chunk-O4EAMVSC.js";
83
+ } from "../chunk-32JJ5KV3.js";
84
+ import "../chunk-SIJHPGUW.js";
85
+ import "../chunk-SOHJ37NA.js";
87
86
  import {
88
87
  getMachineId
89
- } from "../chunk-UUCRWEEU.js";
90
- import "../chunk-PPY5N2E6.js";
91
- import "../chunk-KZERVKTD.js";
92
- import "../chunk-7FROPPIH.js";
88
+ } from "../chunk-BGEUAJYL.js";
89
+ import "../chunk-DARPCQPY.js";
93
90
  import {
94
91
  claudeConfigDir
95
- } from "../chunk-7S46LCKD.js";
96
- import "../chunk-RZVWEDIS.js";
92
+ } from "../chunk-2J4IVUEA.js";
93
+ import "../chunk-AUDYAVNM.js";
97
94
  import {
98
95
  getApiKey,
99
96
  getBaseUrl
100
- } from "../chunk-R5PZPROX.js";
97
+ } from "../chunk-53D6FFVE.js";
98
+ import "../chunk-PPY5N2E6.js";
99
+ import "../chunk-KZERVKTD.js";
101
100
  import {
102
101
  NPX_LATEST_COMMAND
103
- } from "../chunk-PPKIL4EL.js";
102
+ } from "../chunk-UIS332AZ.js";
104
103
  import "../chunk-QTOLNRET.js";
105
104
  import {
106
105
  DECISION_STOP_REASON,
@@ -110,11 +109,10 @@ import {
110
109
  UNVERIFIABLE_APPROVAL_REASON,
111
110
  extractMessageText,
112
111
  questionLimitHandBack,
113
- redactSecretsFromContent,
114
112
  refusesWhenUnanswered,
115
113
  resolveGate,
116
114
  timeoutActionWithoutLocalPrompt
117
- } from "../chunk-AVHL2ZTS.js";
115
+ } from "../chunk-QRS7FQHE.js";
118
116
  import "../chunk-MLKGABMK.js";
119
117
 
120
118
  // src/wrapper/localPassthrough.ts
@@ -195,19 +193,6 @@ var historyAcceptedCommand = async (file, commandId) => {
195
193
  import { existsSync as existsSync2 } from "fs";
196
194
 
197
195
  // src/transcript-draft.ts
198
- var redactDraft = (text, complete = false) => {
199
- let end = complete ? text.length : text.lastIndexOf("\n") + 1;
200
- const pem = /-----BEGIN [^\n]*PRIVATE KEY-----/g;
201
- for (const match of text.matchAll(pem)) {
202
- if (!/-----END [^\n]*PRIVATE KEY-----/.test(text.slice(match.index, end))) end = Math.min(end, match.index);
203
- }
204
- const quoted = /(?:secret|token|password|passwd|api[_-]?key|access[_-]?key|client[_-]?secret|private[_-]?key)\s*[=:]\s*(["'])/gi;
205
- for (const match of text.matchAll(quoted)) {
206
- const close = text.indexOf(match[1], match.index + match[0].length);
207
- if (close < 0 || close >= end) end = Math.min(end, match.index);
208
- }
209
- return redactSecretsFromContent(text.slice(0, end));
210
- };
211
196
  var isDraftObject = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
212
197
  var DraftText = class {
213
198
  messageId = "";
@@ -254,39 +239,29 @@ var startTranscriptDraft = (apiKey, getSessionId, runtime = {}) => {
254
239
  const text = new DraftText();
255
240
  const startedAt = Date.now();
256
241
  let revision = 0;
257
- let stopped = false;
258
- let pending;
242
+ let lastSnapshot = "";
259
243
  let ending = false;
260
- let sent = "";
261
- const flush = async () => {
262
- if (stopped || pending || !(runtime.enabled ?? transcriptsEnabled)()) return;
263
- const sessionId = getSessionId();
264
- const snapshot = text.snapshot();
265
- if (!sessionId || !snapshot || !(runtime.registered ? runtime.registered(sessionId) : registeredTranscriptEnabled(apiKey, sessionId))) return;
266
- const raw = JSON.stringify(snapshot);
267
- if (raw === sent) return;
268
- const key = loadSessionKey(sessionId, runtime.keyDirectory);
269
- if (!key?.keyUploaded) return;
270
- pending = (async () => {
271
- try {
272
- const response = await fetch(`${runtime.baseUrl ?? getBaseUrl()}/api/agent/transcript`, {
273
- method: "POST",
274
- headers: { Authorization: `Bearer ${apiKey}`, "Content-Type": "application/json" },
275
- body: JSON.stringify({ sessionId, draft: { startedAt, revision: ++revision, content: encryptRecord(raw, key.sessionKey) } }),
276
- signal: AbortSignal.timeout(5e3)
277
- });
278
- if (response.ok) sent = raw;
279
- } catch {
244
+ const publisher = startDraftPublisher({
245
+ apiKey,
246
+ baseUrl: runtime.baseUrl ?? getBaseUrl(),
247
+ keyDirectory: runtime.keyDirectory,
248
+ sessionId: getSessionId,
249
+ enabled: () => {
250
+ if (!(runtime.enabled ?? transcriptsEnabled)()) return false;
251
+ const sessionId = getSessionId();
252
+ return Boolean(sessionId && (runtime.registered ? runtime.registered(sessionId) : registeredTranscriptEnabled(apiKey, sessionId)));
253
+ },
254
+ snapshot: () => {
255
+ const preview = text.snapshot();
256
+ if (!preview) return null;
257
+ const raw = JSON.stringify(preview);
258
+ if (raw !== lastSnapshot) {
259
+ revision++;
260
+ lastSnapshot = raw;
280
261
  }
281
- })();
282
- try {
283
- await pending;
284
- } finally {
285
- pending = void 0;
262
+ return { startedAt, revision, preview };
286
263
  }
287
- };
288
- const timer = setInterval(() => void flush(), 500);
289
- timer.unref();
264
+ });
290
265
  return {
291
266
  add: (message) => {
292
267
  if (!ending) text.add(message);
@@ -294,11 +269,8 @@ var startTranscriptDraft = (apiKey, getSessionId, runtime = {}) => {
294
269
  stop: async () => {
295
270
  if (ending) return;
296
271
  ending = true;
297
- clearInterval(timer);
298
272
  text.interrupt();
299
- await pending;
300
- await flush();
301
- stopped = true;
273
+ await publisher.finish();
302
274
  }
303
275
  };
304
276
  };
@@ -15,30 +15,30 @@ import {
15
15
  storedMacAppState,
16
16
  storedPusharyKeychainServices,
17
17
  waitForMacAppExit
18
- } from "../chunk-PM2MHBMF.js";
18
+ } from "../chunk-3PPL64AG.js";
19
19
  import {
20
20
  PUSHARY_SKILL_NAME,
21
21
  PUSHARY_SKILL_SOURCE,
22
22
  createGuards
23
23
  } from "../chunk-EUW7JL2K.js";
24
- import "../chunk-Z7AIYWZ2.js";
24
+ import "../chunk-EH5OLIP2.js";
25
25
  import "../chunk-XCEN33UP.js";
26
26
  import {
27
27
  describeCliKeyRevocation,
28
28
  planCliKeyRevocations,
29
29
  readCliHeldKeys,
30
30
  revokeCliKeys
31
- } from "../chunk-N4VRSFRZ.js";
31
+ } from "../chunk-4GWKKUQ5.js";
32
32
  import {
33
33
  isCursorPluginLeftover,
34
34
  releaseSoleGate,
35
35
  withoutPusharyCursorHooks
36
- } from "../chunk-4LAD5A2Q.js";
36
+ } from "../chunk-4T25BBBO.js";
37
37
  import {
38
38
  shortenHome,
39
39
  unregisterPluginLocation,
40
40
  vscodeSettingsTargets
41
- } from "../chunk-IN3MPEFA.js";
41
+ } from "../chunk-EM2RSWDA.js";
42
42
  import {
43
43
  configFileHoldsMacAppKey,
44
44
  macAppKeepsMcpEntry,
@@ -46,22 +46,22 @@ import {
46
46
  pusharyKey,
47
47
  readMacAppAgentKey,
48
48
  setupReceiptKey
49
- } from "../chunk-JWBZUTYF.js";
50
- import "../chunk-TQ2L3ECX.js";
49
+ } from "../chunk-I6TIZMM3.js";
50
+ import "../chunk-2DB7TBA7.js";
51
51
  import {
52
52
  HERMES_CONFIG_FILE,
53
53
  defaultHermesHome,
54
54
  hermesReceiptPaths,
55
55
  removeHermesWiring
56
- } from "../chunk-FAKEKFCI.js";
56
+ } from "../chunk-VGHWK5Z2.js";
57
57
  import "../chunk-QCGNGEGE.js";
58
58
  import {
59
59
  planClineRemoval,
60
60
  planFxRemoval,
61
61
  removeClineServer
62
- } from "../chunk-KSLBS3II.js";
63
- import "../chunk-EUEGCEA7.js";
64
- import "../chunk-W47XZJSH.js";
62
+ } from "../chunk-MD4UJICD.js";
63
+ import "../chunk-7O54GE5C.js";
64
+ import "../chunk-UU3CDLIX.js";
65
65
  import {
66
66
  OPENCODE_ASKED_PERMISSIONS,
67
67
  OPENCODE_PLUGIN_SIBLING,
@@ -75,15 +75,15 @@ import {
75
75
  openCodePluginDir,
76
76
  openCodePluginFile,
77
77
  removeOpenCodeMcpServer
78
- } from "../chunk-3RAWW5DH.js";
78
+ } from "../chunk-E5XYFIYL.js";
79
79
  import {
80
80
  ansiPainter,
81
81
  useColor
82
82
  } from "../chunk-FO3MDD26.js";
83
83
  import {
84
84
  exitOnHelpFlag
85
- } from "../chunk-OJ3ZD5VX.js";
86
- import "../chunk-TFDMJHAB.js";
85
+ } from "../chunk-XO7LP3JC.js";
86
+ import "../chunk-R7V6BPEV.js";
87
87
  import {
88
88
  compatibleConfigFile,
89
89
  compatibleDocuments,
@@ -95,10 +95,10 @@ import {
95
95
  removeCompatibleHooks,
96
96
  removeCompatibleMcpServer,
97
97
  serializeConfigDocument
98
- } from "../chunk-UIF7HWHX.js";
98
+ } from "../chunk-3SAF4QXU.js";
99
99
  import {
100
100
  disableDaemonService
101
- } from "../chunk-WJJVCDEU.js";
101
+ } from "../chunk-DCHZ5JOI.js";
102
102
  import {
103
103
  hookOwnerOf,
104
104
  isHookTakeoverReceipt,
@@ -107,9 +107,9 @@ import {
107
107
  resolveBridgeStub,
108
108
  restoreHookTakeover,
109
109
  restoreMcpServer
110
- } from "../chunk-QAWWTRDD.js";
111
- import "../chunk-2HFC4W6J.js";
112
- import "../chunk-BLX6KRK5.js";
110
+ } from "../chunk-TPYZFYQ5.js";
111
+ import "../chunk-NCTABQMC.js";
112
+ import "../chunk-4DH54LS7.js";
113
113
  import {
114
114
  parseFlags
115
115
  } from "../chunk-NMUI3ZWG.js";
@@ -119,21 +119,17 @@ import {
119
119
  isDisabledExport,
120
120
  removeClaudeAlias,
121
121
  shellProfileCandidates
122
- } from "../chunk-NGNBX3YH.js";
122
+ } from "../chunk-LIDUPDEY.js";
123
123
  import "../chunk-E46NE7FB.js";
124
- import "../chunk-AJWGZJFS.js";
125
- import "../chunk-QMPM3CAN.js";
126
- import "../chunk-CMYFV3VC.js";
124
+ import "../chunk-JFVLMWKY.js";
125
+ import "../chunk-DUOBFECC.js";
126
+ import "../chunk-EOGVWCLF.js";
127
127
  import "../chunk-POFBE6ZY.js";
128
- import "../chunk-7M4AA7QF.js";
129
- import "../chunk-S7VMHSJW.js";
130
- import "../chunk-O4EAMVSC.js";
131
- import "../chunk-UUCRWEEU.js";
132
- import "../chunk-PPY5N2E6.js";
133
- import {
134
- EXIT
135
- } from "../chunk-KZERVKTD.js";
136
- import "../chunk-7FROPPIH.js";
128
+ import "../chunk-32JJ5KV3.js";
129
+ import "../chunk-SIJHPGUW.js";
130
+ import "../chunk-SOHJ37NA.js";
131
+ import "../chunk-BGEUAJYL.js";
132
+ import "../chunk-DARPCQPY.js";
137
133
  import {
138
134
  claudeConfigDir,
139
135
  claudeJson,
@@ -176,20 +172,24 @@ import {
176
172
  restoreCodexHookTrust,
177
173
  vscodePluginDir,
178
174
  vscodePluginMcp
179
- } from "../chunk-7S46LCKD.js";
175
+ } from "../chunk-2J4IVUEA.js";
180
176
  import {
181
177
  cleanNpmEnv,
182
178
  globalPackageState,
183
179
  npmIsOnPath,
184
180
  readGlobalFolder,
185
181
  readGlobalPrefix
186
- } from "../chunk-RZVWEDIS.js";
182
+ } from "../chunk-AUDYAVNM.js";
187
183
  import {
188
184
  getBaseUrl
189
- } from "../chunk-R5PZPROX.js";
185
+ } from "../chunk-53D6FFVE.js";
186
+ import "../chunk-PPY5N2E6.js";
187
+ import {
188
+ EXIT
189
+ } from "../chunk-KZERVKTD.js";
190
190
  import {
191
191
  NPX_LATEST_COMMAND
192
- } from "../chunk-PPKIL4EL.js";
192
+ } from "../chunk-UIS332AZ.js";
193
193
  import {
194
194
  CLI_PACKAGE_NAMES,
195
195
  globalPackageFolder,
@@ -203,7 +203,7 @@ import {
203
203
  SUPPORT_EMAIL,
204
204
  isValidApiKey,
205
205
  redactSecrets
206
- } from "../chunk-AVHL2ZTS.js";
206
+ } from "../chunk-QRS7FQHE.js";
207
207
  import "../chunk-MLKGABMK.js";
208
208
 
209
209
  // bin/pushary-clean.ts
@@ -1,45 +1,45 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  runCodexBridge
4
- } from "../chunk-KDQLKND5.js";
5
- import "../chunk-GBR6E7AY.js";
4
+ } from "../chunk-DOG3BQFO.js";
5
+ import "../chunk-JOMG6J64.js";
6
6
  import {
7
7
  resolveProviderBinary
8
- } from "../chunk-EITOMPFB.js";
9
- import "../chunk-JYOR57ZW.js";
8
+ } from "../chunk-KDUWFGY2.js";
9
+ import "../chunk-QDUDXJAF.js";
10
10
  import "../chunk-N5P2FLOJ.js";
11
- import "../chunk-XMSDA5WA.js";
12
11
  import {
13
12
  withSpawnProcessOwnership
14
- } from "../chunk-PNXNWZ5P.js";
15
- import "../chunk-TFDMJHAB.js";
16
- import "../chunk-JC7XUZST.js";
13
+ } from "../chunk-FEC3JUIH.js";
14
+ import "../chunk-R7V6BPEV.js";
15
+ import "../chunk-SONZCJY5.js";
16
+ import "../chunk-XMSDA5WA.js";
17
17
  import {
18
18
  transcriptsEnabled
19
- } from "../chunk-S63VIM7E.js";
19
+ } from "../chunk-RPKFXNOJ.js";
20
20
  import "../chunk-XHKBHWLX.js";
21
- import "../chunk-NGNBX3YH.js";
22
- import "../chunk-QMPM3CAN.js";
23
- import "../chunk-CMYFV3VC.js";
21
+ import "../chunk-LIDUPDEY.js";
22
+ import "../chunk-DUOBFECC.js";
23
+ import "../chunk-EOGVWCLF.js";
24
24
  import "../chunk-POFBE6ZY.js";
25
- import "../chunk-7M4AA7QF.js";
26
- import "../chunk-S7VMHSJW.js";
27
- import "../chunk-O4EAMVSC.js";
25
+ import "../chunk-32JJ5KV3.js";
26
+ import "../chunk-SIJHPGUW.js";
27
+ import "../chunk-SOHJ37NA.js";
28
28
  import {
29
29
  getMachineId
30
- } from "../chunk-UUCRWEEU.js";
31
- import "../chunk-PPY5N2E6.js";
32
- import "../chunk-KZERVKTD.js";
33
- import "../chunk-7FROPPIH.js";
34
- import "../chunk-7S46LCKD.js";
35
- import "../chunk-RZVWEDIS.js";
30
+ } from "../chunk-BGEUAJYL.js";
31
+ import "../chunk-DARPCQPY.js";
32
+ import "../chunk-2J4IVUEA.js";
33
+ import "../chunk-AUDYAVNM.js";
36
34
  import {
37
35
  getApiKey,
38
36
  getBaseUrl
39
- } from "../chunk-R5PZPROX.js";
40
- import "../chunk-PPKIL4EL.js";
37
+ } from "../chunk-53D6FFVE.js";
38
+ import "../chunk-PPY5N2E6.js";
39
+ import "../chunk-KZERVKTD.js";
40
+ import "../chunk-UIS332AZ.js";
41
41
  import "../chunk-QTOLNRET.js";
42
- import "../chunk-AVHL2ZTS.js";
42
+ import "../chunk-QRS7FQHE.js";
43
43
  import "../chunk-MLKGABMK.js";
44
44
 
45
45
  // bin/pushary-codex-bridge.ts