very-happy-cli 0.2.178 → 0.2.180

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 (217) hide show
  1. package/dist/{AcpBackend-DCQXHRzT.mjs → AcpBackend-B8Zi30Zh.mjs} +135 -16
  2. package/dist/{AcpBackend-CDkAQXYf.cjs → AcpBackend-DfRDtMcG.cjs} +135 -16
  3. package/dist/{AcpSessionManager-DckmUZza.cjs → AcpSessionManager-CASKOnOj.cjs} +38 -4
  4. package/dist/{AcpSessionManager-BXrQcqwC.mjs → AcpSessionManager-i8Rab0xT.mjs} +38 -4
  5. package/dist/{BasePermissionHandler-BVlrEhIi.mjs → BasePermissionHandler-26fKbRCm.mjs} +5 -2
  6. package/dist/{BasePermissionHandler-DyLmKKtO.cjs → BasePermissionHandler-BlM_tfej.cjs} +5 -2
  7. package/dist/acpSessionResume-B9l54P-X.mjs +67 -0
  8. package/dist/acpSessionResume-CR5pmgVo.cjs +74 -0
  9. package/dist/{agentHome-CEp9RMyK.cjs → agentHome-C7Sb7-Tz.cjs} +4 -4
  10. package/dist/{agentHome-C1xi37as.mjs → agentHome-CmGy0NWv.mjs} +4 -4
  11. package/dist/{api-JANhFdZV.cjs → api-DM7b1OKj.cjs} +38 -262
  12. package/dist/{api-Dib0dmqC.mjs → api-Hov8p7CA.mjs} +32 -256
  13. package/dist/{apiMachine-DNTJidYH.mjs → apiMachine-CwGEhQDT.mjs} +62 -15
  14. package/dist/{apiMachine-QhK-sKcr.cjs → apiMachine-DkGRj-Ai.cjs} +64 -17
  15. package/dist/{attachmentContent-bpQTBJ0y.cjs → attachmentContent-CEm13_gF.cjs} +4 -4
  16. package/dist/{attachmentContent-DkkdpSSJ.mjs → attachmentContent-CIn4iPEk.mjs} +2 -2
  17. package/dist/{auth-BRjd2esb.mjs → auth-BG1DY0gj.mjs} +5 -5
  18. package/dist/{auth-DgIV0Cvt.cjs → auth-CBXnm-Mj.cjs} +5 -5
  19. package/dist/{auth-omWDtgR8.cjs → auth-Dawj7pP5.cjs} +8 -8
  20. package/dist/{auth-DNct7VUi.mjs → auth-rggxMpEE.mjs} +8 -8
  21. package/dist/{auto-DKGFOJBo.mjs → auto-CXXLXGeL.mjs} +19 -18
  22. package/dist/{auto-CI16FZmX.cjs → auto-CbYOfoPS.cjs} +19 -18
  23. package/dist/{backgroundTaskActivity-BVwJBl02.mjs → backgroundTaskActivity-8PdPxrvy.mjs} +1 -1
  24. package/dist/{bootstrap-DCQ87Aan.cjs → bootstrap-DoA7okld.cjs} +2 -2
  25. package/dist/{bootstrap-BUagGC_-.mjs → bootstrap-Dt5I1SOl.mjs} +2 -2
  26. package/dist/{browser-Dj_DYQEh.mjs → browser-DUNetFT4.mjs} +1 -1
  27. package/dist/{browser-CSKhc0Bl.cjs → browser-DZ6qRtfH.cjs} +1 -1
  28. package/dist/{claudeCliPath-U4HHmV4r.cjs → claudeCliPath-GaP3UUz1.cjs} +1 -1
  29. package/dist/{claudeLocal-CdIVnOZp.cjs → claudeLocal--DNyMOSv.cjs} +8 -7
  30. package/dist/{claudeLocal-CCCvAeMd.mjs → claudeLocal-OHWQigCl.mjs} +6 -5
  31. package/dist/{claudeLocalLauncher-BmrpaRYJ.mjs → claudeLocalLauncher-BStvfa7M.mjs} +11 -10
  32. package/dist/{claudeLocalLauncher-21-xh5gc.cjs → claudeLocalLauncher-BhvPbcyH.cjs} +13 -12
  33. package/dist/{claudeSessionFork-kYCP1IJB.cjs → claudeSessionFork-Be16vzGc.cjs} +1 -1
  34. package/dist/{claudeSessionFork-DvxMKAmY.mjs → claudeSessionFork-GAVWhiKG.mjs} +1 -1
  35. package/dist/{client-C4zKGjiJ.cjs → client-BWjaHKtj.cjs} +2 -2
  36. package/dist/client-Ca5Pcgy_.mjs +71 -0
  37. package/dist/{client-CnlkkrZO.mjs → client-CnB7kRCT.mjs} +2 -2
  38. package/dist/{client-BTX9hsbr.mjs → client-D4uPb1uu.mjs} +3 -3
  39. package/dist/client-DJplzPjD.cjs +76 -0
  40. package/dist/{client-Dnza1hgN.cjs → client-D_loZ9IK.cjs} +3 -3
  41. package/dist/codex/happyMcpStdioBridge.cjs +24 -15
  42. package/dist/codex/happyMcpStdioBridge.mjs +25 -16
  43. package/dist/{codexAppServerClient-DvkpQgyv.mjs → codexAppServerClient-CO4G6OS4.mjs} +3 -3
  44. package/dist/{codexAppServerClient-CRlBWGn3.cjs → codexAppServerClient-PE-12AsW.cjs} +3 -3
  45. package/dist/{codexCommand-DzxIWXIT.cjs → codexCommand-BNoD1t1C.cjs} +127 -116
  46. package/dist/{codexCommand-BxjogBzU.mjs → codexCommand-B_xUH79E.mjs} +77 -66
  47. package/dist/{codexTermination-C28FzlLb.cjs → codexTermination-BmBbizFK.cjs} +7 -2
  48. package/dist/{codexTermination-ySDNMEhd.mjs → codexTermination-Dx48ma6e.mjs} +7 -2
  49. package/dist/{config-BFB5uJ4t.cjs → config-CtwEUxUP.cjs} +26 -26
  50. package/dist/{config-DwfEpFr3.mjs → config-DSu0Blos.mjs} +3 -3
  51. package/dist/{configuration-4TGMrjul.cjs → configuration-CYO-kPOS.cjs} +1 -1
  52. package/dist/{configuration-DVrb61aY.mjs → configuration-PxzEJumr.mjs} +1 -1
  53. package/dist/{connect-C7FPY0PI.mjs → connect-BQrg3TB6.mjs} +15 -15
  54. package/dist/{connect-QH2VJGBG.cjs → connect-Dq7wndzR.cjs} +28 -28
  55. package/dist/{context-JoKu0V54.cjs → context-6TP-iz_c.cjs} +1 -1
  56. package/dist/{context-B3XPVJlj.mjs → context-CJGRRGWW.mjs} +1 -1
  57. package/dist/{controlClient-BTaZlbC6.cjs → controlClient-Bqv5v5OM.cjs} +3 -3
  58. package/dist/{controlClient-BYKyGyxj.mjs → controlClient-DoeYovwP.mjs} +4 -4
  59. package/dist/{createSessionMetadata-8Fuj2-IV.mjs → createSessionMetadata-DDIChCx8.mjs} +2 -2
  60. package/dist/{createSessionMetadata-B2NynaWZ.cjs → createSessionMetadata-xz767pcG.cjs} +3 -3
  61. package/dist/{defaultPermissionMode-BEWCqJU-.cjs → defaultPermissionMode-PkZGsQDk.cjs} +2 -2
  62. package/dist/{defaultPermissionMode-B8kJG9uI.mjs → defaultPermissionMode-i5KzdK09.mjs} +2 -2
  63. package/dist/{detectCLI-DR9ZaN6B.cjs → detectCLI-BuYR_Qxe.cjs} +4 -4
  64. package/dist/{deterministicJson-C5ZwZ7hu.mjs → deterministicJson-CTEJDqtS.mjs} +217 -12
  65. package/dist/{deterministicJson-BjNQsAjO.cjs → deterministicJson-xqA6DaOm.cjs} +222 -16
  66. package/dist/{doctor-BshRnjLi.cjs → doctor-BrgSlfXn.cjs} +9 -9
  67. package/dist/{doctor-0BiGwJXk.mjs → doctor-IctjVh9T.mjs} +8 -8
  68. package/dist/{doctorReadiness-BCZGcN0a.cjs → doctorReadiness-Dl6yRQCy.cjs} +1 -1
  69. package/dist/{downloadTarget-BN5vZt3K.cjs → downloadTarget-CEb9che-.cjs} +6 -6
  70. package/dist/{downloadTarget-DJPwAZlu.mjs → downloadTarget-jbOz1egC.mjs} +6 -6
  71. package/dist/{ensureDaemonRunning-C5QfToCe.cjs → ensureDaemonRunning-D-HyjGIX.cjs} +6 -6
  72. package/dist/{ensureDaemonRunning-CSmb_mqt.mjs → ensureDaemonRunning-b1e8LCSM.mjs} +5 -5
  73. package/dist/{handleResumeCommand-BwnUZmbo.cjs → handleResumeCommand-BvWVuRwH.cjs} +23 -7
  74. package/dist/{handleResumeCommand-CgjpsdDe.mjs → handleResumeCommand-DpaZvm2c.mjs} +22 -6
  75. package/dist/{index-piJPsTsm.cjs → index-B2p2Mut7.cjs} +259 -53
  76. package/dist/{index-BehVbAsA.mjs → index-BUNnpGFF.mjs} +256 -50
  77. package/dist/{index-Bvldtdny.mjs → index-Bsvbgh9e.mjs} +4 -4
  78. package/dist/{index-BYOZ_8WZ.cjs → index-C64Ufj4D.cjs} +4 -4
  79. package/dist/{index-Clqlu17M.mjs → index-C6Vn5Eac.mjs} +155 -34
  80. package/dist/index-CMf5VbzG.mjs +18 -0
  81. package/dist/index-DmTlDRSL.cjs +24 -0
  82. package/dist/{index-_l1Sdmbi.cjs → index-Dv0Q48P3.cjs} +156 -33
  83. package/dist/{index-BRClDe07.cjs → index-F2UejqYs.cjs} +3 -3
  84. package/dist/{index-BYgfern_.mjs → index-wCbtF4BK.mjs} +3 -3
  85. package/dist/index.cjs +2 -2
  86. package/dist/index.mjs +2 -2
  87. package/dist/{install-BdvKiOQw.mjs → install-BX3lv3NO.mjs} +1 -1
  88. package/dist/{install-Cf6AFSWC.cjs → install-BXvf2E3o.cjs} +1 -1
  89. package/dist/{install-TO4taKW7.cjs → install-C0ANcEAW.cjs} +7 -7
  90. package/dist/{install-fYWHrPcC.mjs → install-CdzSV7qO.mjs} +3 -3
  91. package/dist/{installPiTools-BKnXjrVu.cjs → installPiTools-CL_axh_6.cjs} +1 -1
  92. package/dist/{installTerminalHooks-BQZbvxsZ.cjs → installTerminalHooks-BETLKAtd.cjs} +3 -3
  93. package/dist/lib.cjs +14 -14
  94. package/dist/lib.d.cts +239 -2
  95. package/dist/lib.d.mts +239 -2
  96. package/dist/lib.mjs +14 -14
  97. package/dist/{lidState-BeOwj6eW.cjs → lidState-DWGnm2H4.cjs} +1 -1
  98. package/dist/{lidState-DNMlIhX0.mjs → lidState-bBrmaQd2.mjs} +1 -1
  99. package/dist/{localHappyAgentAuth-Br-mgogg.cjs → localHappyAgentAuth-DZHQnIW9.cjs} +1 -1
  100. package/dist/{localHappyAgentAuth-BezKSFDi.mjs → localHappyAgentAuth-Dn1jYDpt.mjs} +1 -1
  101. package/dist/{logger--vAVtXB_.mjs → logger-BUngm5Xg.mjs} +2 -2
  102. package/dist/{logger-DXTWlPzP.cjs → logger-CphW5nUE.cjs} +2 -2
  103. package/dist/machineMetadata-BQm9YTcI.cjs +79 -0
  104. package/dist/machineMetadata-BXN_bKU3.mjs +68 -0
  105. package/dist/{main-DoMFJ2Cl.cjs → main-B2UV51nK.cjs} +112 -132
  106. package/dist/{main-CshDb5-1.mjs → main-DGkdYfEq.mjs} +106 -126
  107. package/dist/{mcp-pNc1EbQf.cjs → mcp-BFvAEIRz.cjs} +15 -15
  108. package/dist/{mcp-DKT_lrvQ.mjs → mcp-CbTtbs0f.mjs} +15 -15
  109. package/dist/{mirrorProtocol-6IFGPpjJ.mjs → mirrorProtocol-BR4luBC0.mjs} +148 -7
  110. package/dist/{mirrorProtocol-qKflWTX_.cjs → mirrorProtocol-HKPivs5o.cjs} +150 -4
  111. package/dist/{package-B7B03ejW.mjs → package-7Ld1YMhh.mjs} +8 -7
  112. package/dist/{package-DY4zTbKS.cjs → package-KhLqBDX9.cjs} +8 -7
  113. package/dist/panels-C7IVqpJk.mjs +137 -0
  114. package/dist/panels-Njf6GelF.cjs +142 -0
  115. package/dist/{peerTools-3R9RUARX.mjs → peerTools-BOlDRyhi.mjs} +60 -10
  116. package/dist/{peerTools-iy3_6Yc5.cjs → peerTools-DQNlrcqM.cjs} +60 -9
  117. package/dist/{persistence-BfX72dne.cjs → persistence-9BMYspxG.cjs} +2 -2
  118. package/dist/{persistence-DTk4sNpd.mjs → persistence-BFUOHW5h.mjs} +3 -3
  119. package/dist/{piRunnerArgs-CRQVR9o-.cjs → piRunnerArgs-DGaq6VYM.cjs} +8 -2
  120. package/dist/{piRunnerArgs-AT8QJY7x.mjs → piRunnerArgs-H2pgpA5z.mjs} +7 -1
  121. package/dist/{piRuntime-BHRT5MKO.cjs → piRuntime-CT5xv_3h.cjs} +2 -2
  122. package/dist/{piRuntime-E44qTVQ4.mjs → piRuntime-CdN0JAsa.mjs} +2 -2
  123. package/dist/{piTerminal-hI4WFdWm.cjs → piTerminal-0FBtXTHK.cjs} +18 -18
  124. package/dist/{piTerminal-De8nbciM.mjs → piTerminal-C4m9YXAV.mjs} +18 -18
  125. package/dist/processTreeSnapshot-CuLJDNC-.mjs +101 -0
  126. package/dist/processTreeSnapshot-mDbnuojn.cjs +105 -0
  127. package/dist/projectPath-C3ioB4Bu.cjs +13 -0
  128. package/dist/prompt-BOouDaTM.mjs +99 -0
  129. package/dist/prompt-lgF9IE82.cjs +105 -0
  130. package/dist/{attachmentLimits-UyFn8fkQ.mjs → pushNotifications-DCiBEVeC.mjs} +307 -3
  131. package/dist/{attachmentLimits-SqeAHrVC.cjs → pushNotifications-DI92havG.cjs} +308 -2
  132. package/dist/{index-DFPT4HOO.cjs → query-BETKBrnz.cjs} +25 -5
  133. package/dist/{index-CEjJnq05.mjs → query-ywZbQUzR.mjs} +26 -3
  134. package/dist/{rateLimitWindows-XrJiiBpU.mjs → rateLimitWindows-BkfuUB1a.mjs} +1 -1
  135. package/dist/{rateLimitWindows-Czb7_7cK.cjs → rateLimitWindows-YRIYVdo4.cjs} +1 -1
  136. package/dist/{registerCommonHandlers-C0_fyBQ0.cjs → registerCommonHandlers-C7a_dUWs.cjs} +30 -30
  137. package/dist/{registerCommonHandlers-CvIedVRf.mjs → registerCommonHandlers-CTkCvjxt.mjs} +2 -2
  138. package/dist/{registerKillSessionHandler-DYl7l4Ts.cjs → registerKillSessionHandler-CIsvBrVe.cjs} +6 -6
  139. package/dist/{registerKillSessionHandler-gwJ5lTf0.mjs → registerKillSessionHandler-CaqqRYq6.mjs} +6 -6
  140. package/dist/{remoteSessionClient-BRTIOX5b.cjs → remoteSessionClient-D843fkzL.cjs} +5 -5
  141. package/dist/{remoteSessionClient-DRb2Jr5s.mjs → remoteSessionClient-PP-mOKmw.mjs} +5 -5
  142. package/dist/{reportProgressTool-B9nCzbkL.cjs → reportProgressTool-14AXr959.cjs} +84 -2
  143. package/dist/{reportProgressTool-D5tEoXMW.mjs → reportProgressTool-ZOCNjWHr.mjs} +82 -3
  144. package/dist/{resources-JDPugcDq.cjs → resources-CvIlkzpP.cjs} +30 -0
  145. package/dist/{resources-BdFBQi8r.mjs → resources-y9jfyO-_.mjs} +30 -0
  146. package/dist/{run-CKe_WeLW.cjs → run-CAOCYYfT.cjs} +2806 -110
  147. package/dist/{run-BQ_FGaOL.mjs → run-Dajw2E5j.mjs} +2787 -91
  148. package/dist/{runClaude-zrrNcQC_.mjs → runClaude-C6oxWYbp.mjs} +49 -47
  149. package/dist/{runClaude-MHI5IKM-.cjs → runClaude-CRRKt-tm.cjs} +50 -48
  150. package/dist/{runClaudeDeps-RRw-Nusc.cjs → runClaudeDeps-B1ysqTvx.cjs} +310 -237
  151. package/dist/{runClaudeDeps-CVBCokOS.mjs → runClaudeDeps-BcZ68cX3.mjs} +297 -226
  152. package/dist/{runGemini-kipag2ag.mjs → runGemini-D7yKc4wD.mjs} +61 -55
  153. package/dist/{runGemini-D7Lg9yCr.cjs → runGemini-DtKFXqf-.cjs} +89 -83
  154. package/dist/{runOpenClaw-C_lRY3Do.mjs → runOpenClaw-C8ilyLP9.mjs} +19 -19
  155. package/dist/{runOpenClaw-DCcQ0L2N.cjs → runOpenClaw-Cq29mryb.cjs} +20 -20
  156. package/dist/{sandbox-BSyXFVFp.mjs → sandbox-CbCutma4.mjs} +4 -4
  157. package/dist/{sandbox-dMwPTmjm.cjs → sandbox-gIj-EuF4.cjs} +4 -4
  158. package/dist/{selfCheck-DkzDDUsE.cjs → selfCheck-BTGBVthv.cjs} +39 -38
  159. package/dist/selfCheck-Smt-5Xiq.mjs +85 -0
  160. package/dist/{send-dxC0miIA.cjs → send-CZf5lLw_.cjs} +8 -8
  161. package/dist/{send-C-k9nsd3.mjs → send-YZRMQvMJ.mjs} +9 -9
  162. package/dist/{server-DxoTYNlw.mjs → server-BqwXRzFZ.mjs} +4 -4
  163. package/dist/{server-B-W6P7Qr.cjs → server-CknFq6xG.cjs} +6 -6
  164. package/dist/sessionExitLifecycle-CzkLIgNZ.mjs +142 -0
  165. package/dist/sessionExitLifecycle-DFltxXU8.cjs +148 -0
  166. package/dist/{sessionLock-DWX6BbiU.cjs → sessionLock-DRZUcKHT.cjs} +38 -5
  167. package/dist/{sessionLock-DBdtZGOL.mjs → sessionLock-nBXdJxJm.mjs} +36 -5
  168. package/dist/{sessionOps-BAnr7n8t.cjs → sessionOps-BrGiU9-s.cjs} +10 -5
  169. package/dist/{sessionOps-BVoXe12O.mjs → sessionOps-C58iDeD5.mjs} +11 -6
  170. package/dist/{sessionScanner-BtxoeluY.mjs → sessionScanner-Bm57LEXe.mjs} +3 -3
  171. package/dist/{sessionScanner-CDOYsEUD.cjs → sessionScanner-CaO8bLaG.cjs} +3 -3
  172. package/dist/{sessions-C3sZJkzI.mjs → sessions-BXyBHo8n.mjs} +40 -18
  173. package/dist/{sessions-hAitoN-m.cjs → sessions-uzqPCc37.cjs} +39 -16
  174. package/dist/{setupOfflineReconnection-_eD4cuUT.mjs → setupOfflineReconnection-1Qlek3wl.mjs} +2 -2
  175. package/dist/{setupOfflineReconnection-C2EeYTFH.cjs → setupOfflineReconnection-DvvVX3TB.cjs} +2 -2
  176. package/dist/{spawn-Bc9v7pIf.cjs → spawn-DBkodJEO.cjs} +49 -18
  177. package/dist/{spawn-qNrB2CD_.mjs → spawn-vn93PhYL.mjs} +49 -18
  178. package/dist/spawnAgents-CgPMWexP.mjs +79 -0
  179. package/dist/{spawnAgents-BVEaz35W.cjs → spawnAgents-DLNMlhWJ.cjs} +37 -1
  180. package/dist/{spawnHappyCLI-C2stUioM.mjs → spawnHappyCLI-BjFZc_7V.mjs} +1 -1
  181. package/dist/{spawnHappyCLI-fzUagkKV.cjs → spawnHappyCLI-DnUZv0X2.cjs} +2 -2
  182. package/dist/{specialCommands-BJ-nqY4s.cjs → specialCommands-BRufxlqe.cjs} +3 -3
  183. package/dist/{specialCommands-C6W-rVyh.mjs → specialCommands-D3ND9bdg.mjs} +3 -3
  184. package/dist/{startFileWatcher-Bqlqjt93.cjs → startFileWatcher-D9cYzZOq.cjs} +1 -1
  185. package/dist/{startFileWatcher-CR09Snmz.mjs → startFileWatcher-DXJ7yB5v.mjs} +1 -1
  186. package/dist/startupSessionCreate-kdr3m1uX.cjs +26 -0
  187. package/dist/startupSessionCreate-uZ6BM0ty.mjs +24 -0
  188. package/dist/{streamRelay-CJoMk_d2.mjs → streamRelay-DnMCMMfV.mjs} +1 -1
  189. package/dist/{streamRelay-9kBPpbvU.cjs → streamRelay-Dy6amlzx.cjs} +1 -1
  190. package/dist/{sync-Dhmtk66S.cjs → sync-Bn-idAoy.cjs} +1 -1
  191. package/dist/{sync-DbW07iQS.mjs → sync-BvVhDO40.mjs} +1 -1
  192. package/dist/{systemPrompt-CQcuUmVp.mjs → systemPrompt-CIZcJuJF.mjs} +4 -3
  193. package/dist/{systemPrompt-3PYi3EUY.cjs → systemPrompt-DlyEk35T.cjs} +4 -3
  194. package/dist/{teams-DpxLcUU_.cjs → teams-BLeRpDxv.cjs} +8 -8
  195. package/dist/{teams-CwF4Z2fA.mjs → teams-DLY3B5yi.mjs} +8 -8
  196. package/dist/{time-A6zR3Iy6.cjs → time-Cjv0zxQO.cjs} +1 -1
  197. package/dist/{time-BuGWTVP6.mjs → time-D3ETL7Jb.mjs} +1 -1
  198. package/dist/{titleGenerator-D26gvNaS.cjs → titleGenerator-Cgp5ihFb.cjs} +10 -9
  199. package/dist/{titleGenerator-BGEzNWC9.mjs → titleGenerator-Uzbd4utr.mjs} +9 -8
  200. package/dist/{todo-DrZc76H5.mjs → todo-C9Ga-oEM.mjs} +6 -6
  201. package/dist/{todo-73g3NCIO.cjs → todo-pOMcEECE.cjs} +6 -6
  202. package/dist/{tools-CxJp4T1T.cjs → tools-BL7Byl_x.cjs} +1 -1
  203. package/dist/{tools-BtsrQnNS.mjs → tools-Cho7iIWf.mjs} +1 -1
  204. package/dist/{uninstall-DWNYvewQ.cjs → uninstall-CbayEVoV.cjs} +6 -6
  205. package/dist/{uninstall-DOb2mTwV.mjs → uninstall-CvZHVY9C.mjs} +3 -3
  206. package/dist/webPanels-B2_C2-3g.mjs +49 -0
  207. package/dist/webPanels-FCgFKvVe.cjs +53 -0
  208. package/package.json +8 -7
  209. package/dist/machineMetadata-B1H9gNbN.mjs +0 -39
  210. package/dist/machineMetadata-DcUupMje.cjs +0 -42
  211. package/dist/messageBuffer-BWlGgR3A.mjs +0 -71
  212. package/dist/messageBuffer-fJMH6uY8.cjs +0 -73
  213. package/dist/projectPath-ChLhdOyt.cjs +0 -13
  214. package/dist/selfCheck-CF7XGJPb.mjs +0 -84
  215. package/dist/sessionModeFile-ByLbXTbg.mjs +0 -32
  216. package/dist/sessionModeFile-CLLdidiJ.cjs +0 -36
  217. package/dist/spawnAgents-Bw6j4tqz.mjs +0 -45
@@ -1,80 +1,83 @@
1
1
  import { useStdout, useInput, Box, Text, render } from 'ink';
2
2
  import React, { useState, useRef, useEffect, useCallback } from 'react';
3
3
  import { randomUUID } from 'node:crypto';
4
+ import { a as PROJECT_SESSION_CAPABILITY } from './index-C6Vn5Eac.mjs';
5
+ import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-CTEJDqtS.mjs';
6
+ import { s as sharedProjectsClient } from './client-Ca5Pcgy_.mjs';
4
7
  import { join } from 'node:path';
5
- import { c as connectionState, A as ApiClient } from './api-Dib0dmqC.mjs';
6
- import { l as logger } from './logger--vAVtXB_.mjs';
7
- import { r as readSettings } from './persistence-DTk4sNpd.mjs';
8
- import { c as createSessionMetadata } from './createSessionMetadata-8Fuj2-IV.mjs';
8
+ import { c as connectionState, A as ApiClient } from './api-Hov8p7CA.mjs';
9
+ import { l as logger } from './logger-BUngm5Xg.mjs';
10
+ import { r as readSettings } from './persistence-BFUOHW5h.mjs';
11
+ import { c as createSessionMetadata } from './createSessionMetadata-DDIChCx8.mjs';
9
12
  import { e as errorLogMetadata, c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
10
- import { g as getInitialMachineMetadata } from './machineMetadata-B1H9gNbN.mjs';
11
- import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-gwJ5lTf0.mjs';
12
- import { h as hashObject, s as startHappyServer } from './deterministicJson-C5ZwZ7hu.mjs';
13
+ import { g as getInitialMachineMetadata } from './machineMetadata-BXN_bKU3.mjs';
14
+ import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-CaqqRYq6.mjs';
13
15
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
14
- import { M as MessageBuffer } from './messageBuffer-BWlGgR3A.mjs';
15
- import { n as notifyDaemonSessionStarted } from './controlClient-BYKyGyxj.mjs';
16
+ import { M as MessageBuffer } from './sessionExitLifecycle-CzkLIgNZ.mjs';
17
+ import { n as notifyDaemonSessionStarted } from './controlClient-DoeYovwP.mjs';
16
18
  import { e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
17
- import { s as setupOfflineReconnection } from './setupOfflineReconnection-_eD4cuUT.mjs';
18
- import { A as AcpBackend, i as isAgentExitError } from './AcpBackend-DCQXHRzT.mjs';
19
+ import { s as setupOfflineReconnection } from './setupOfflineReconnection-1Qlek3wl.mjs';
20
+ import { A as AcpBackend, i as isAgentExitError } from './AcpBackend-B8Zi30Zh.mjs';
19
21
  import { a as GEMINI_API_KEY_ENV, b as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, C as CHANGE_TITLE_INSTRUCTION } from './constants-BC4St0xd.mjs';
20
- import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-DwfEpFr3.mjs';
21
- import { B as BasePermissionHandler } from './BasePermissionHandler-BVlrEhIi.mjs';
22
- import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-ySDNMEhd.mjs';
23
- import 'axios';
24
- import './lidState-DNMlIhX0.mjs';
25
- import 'os';
26
- import 'child_process';
27
- import 'node:events';
28
- import 'socket.io-client';
29
- import './attachmentLimits-UyFn8fkQ.mjs';
22
+ import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-DSu0Blos.mjs';
23
+ import { B as BasePermissionHandler } from './BasePermissionHandler-26fKbRCm.mjs';
24
+ import { B as BaseReasoningProcessor, s as settleCodexSession } from './codexTermination-Dx48ma6e.mjs';
30
25
  import 'zod';
31
- import './index-Clqlu17M.mjs';
32
26
  import '@paralleldrive/cuid2';
33
- import './limits-DIo7rEBR.mjs';
34
- import './time-BuGWTVP6.mjs';
35
- import './configuration-DVrb61aY.mjs';
27
+ import './prompt-BOouDaTM.mjs';
28
+ import './reportProgressTool-ZOCNjWHr.mjs';
29
+ import './client-CnB7kRCT.mjs';
30
+ import './configuration-PxzEJumr.mjs';
36
31
  import 'node:fs';
37
32
  import 'node:os';
38
- import './package-B7B03ejW.mjs';
33
+ import './package-7Ld1YMhh.mjs';
39
34
  import 'node:fs/promises';
40
- import './registerCommonHandlers-CvIedVRf.mjs';
41
- import 'util';
42
- import 'fs/promises';
43
- import 'crypto';
44
- import 'path';
45
- import 'cross-spawn';
46
- import './sync-DbW07iQS.mjs';
47
- import './backgroundTaskActivity-BVwJBl02.mjs';
48
- import 'chalk';
49
- import 'node:util';
50
- import './detectCLI-CSGMlV51.mjs';
51
- import 'fs';
52
- import './localHappyAgentAuth-BezKSFDi.mjs';
53
- import 'tweetnacl';
54
- import './types-CkqAACXx.mjs';
55
- import './client-BTX9hsbr.mjs';
56
- import './context-B3XPVJlj.mjs';
57
- import './sessionOps-BVoXe12O.mjs';
58
- import './resources-BdFBQi8r.mjs';
59
- import './tools-BtsrQnNS.mjs';
60
- import './reportProgressTool-D5tEoXMW.mjs';
61
- import './client-CnlkkrZO.mjs';
62
35
  import './precheckCompat-DeEbilbr.mjs';
63
36
  import './agentGuidance-BDYt2Qy2.mjs';
64
37
  import './trimIdent-BAjmv_TG.mjs';
65
- import './peerTools-3R9RUARX.mjs';
38
+ import './client-D4uPb1uu.mjs';
39
+ import './context-CJGRRGWW.mjs';
40
+ import './sessionOps-C58iDeD5.mjs';
41
+ import 'axios';
42
+ import './time-D3ETL7Jb.mjs';
43
+ import 'socket.io-client';
44
+ import './backgroundTaskActivity-8PdPxrvy.mjs';
45
+ import './resources-y9jfyO-_.mjs';
46
+ import './tools-Cho7iIWf.mjs';
47
+ import './peerTools-BOlDRyhi.mjs';
66
48
  import './ids-DU6sLx4C.mjs';
67
- import './remoteSessionClient-DRb2Jr5s.mjs';
49
+ import './remoteSessionClient-PP-mOKmw.mjs';
68
50
  import '@modelcontextprotocol/sdk/server/mcp.js';
69
51
  import 'node:http';
70
52
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
71
- import './downloadTarget-DJPwAZlu.mjs';
53
+ import './limits-DIo7rEBR.mjs';
54
+ import './downloadTarget-jbOz1egC.mjs';
72
55
  import './terminals-Dlg0x3nY.mjs';
73
56
  import 'node:child_process';
74
57
  import './terminalTitleSuggest-CeKsX_V6.mjs';
75
58
  import './tmuxSocket-B8Yx20sT.mjs';
76
- import './bootstrap-BUagGC_-.mjs';
59
+ import './bootstrap-Dt5I1SOl.mjs';
60
+ import './webPanels-B2_C2-3g.mjs';
61
+ import './pushNotifications-DCiBEVeC.mjs';
77
62
  import './previewPath-CXN4Vag0.mjs';
63
+ import 'crypto';
64
+ import './lidState-bBrmaQd2.mjs';
65
+ import 'os';
66
+ import 'child_process';
67
+ import 'node:events';
68
+ import './registerCommonHandlers-CTkCvjxt.mjs';
69
+ import 'util';
70
+ import 'fs/promises';
71
+ import 'path';
72
+ import 'cross-spawn';
73
+ import './sync-BvVhDO40.mjs';
74
+ import 'chalk';
75
+ import 'node:util';
76
+ import './detectCLI-CSGMlV51.mjs';
77
+ import 'fs';
78
+ import './localHappyAgentAuth-Dn1jYDpt.mjs';
79
+ import 'tweetnacl';
80
+ import './types-CkqAACXx.mjs';
78
81
  import 'url';
79
82
  import '@agentclientprotocol/sdk';
80
83
  import './processTree-CP5IvQ2Z.mjs';
@@ -1005,7 +1008,8 @@ async function runGemini(opts) {
1005
1008
  flavor: "gemini",
1006
1009
  machineId,
1007
1010
  startedBy: opts.startedBy,
1008
- sandbox: sandboxConfig
1011
+ sandbox: sandboxConfig,
1012
+ capabilities: [PROJECT_SESSION_CAPABILITY]
1009
1013
  });
1010
1014
  const response = await api.getOrCreateSession({ tag: sessionTag, metadata, state });
1011
1015
  let session;
@@ -1265,7 +1269,7 @@ async function runGemini(opts) {
1265
1269
  }
1266
1270
  process.stdin.setEncoding("utf8");
1267
1271
  }
1268
- const happyServer = await startHappyServer(session);
1272
+ const happyServer = await startHappyServer(session, { push: { sendAttention: (input) => api.push().sendAttention(input) } });
1269
1273
  const bridgeCommand = join(projectPath(), "bin", "very-happy-mcp.mjs");
1270
1274
  const mcpServers = {
1271
1275
  happy: {
@@ -1498,6 +1502,7 @@ async function runGemini(opts) {
1498
1502
  });
1499
1503
  }
1500
1504
  let first = true;
1505
+ const projectInjector = createProjectInjector({ client: sharedProjectsClient(), sessionId: () => session?.sessionId, metadata: () => session?.getMetadata?.() ?? null, agent: "gemini" });
1501
1506
  try {
1502
1507
  let currentModeHash = null;
1503
1508
  let pending = null;
@@ -1628,7 +1633,8 @@ async function runGemini(opts) {
1628
1633
  if (!geminiBackend || !acpSessionId) {
1629
1634
  throw new Error("Gemini backend or session not initialized");
1630
1635
  }
1631
- let promptToSend = message.message;
1636
+ if (injectHistoryContext) projectInjector.reset();
1637
+ let promptToSend = await projectInjector.decorate(message.message);
1632
1638
  if (injectHistoryContext && conversationHistory.hasHistory()) {
1633
1639
  const historyContext = conversationHistory.getContextForNewSession();
1634
1640
  promptToSend = historyContext + promptToSend;
@@ -3,80 +3,83 @@
3
3
  var ink = require('ink');
4
4
  var React = require('react');
5
5
  var node_crypto = require('node:crypto');
6
+ var index = require('./index-Dv0Q48P3.cjs');
7
+ var deterministicJson = require('./deterministicJson-xqA6DaOm.cjs');
8
+ var client = require('./client-DJplzPjD.cjs');
6
9
  var path = require('node:path');
7
- var api = require('./api-JANhFdZV.cjs');
8
- var logger = require('./logger-DXTWlPzP.cjs');
9
- var persistence = require('./persistence-BfX72dne.cjs');
10
- var createSessionMetadata = require('./createSessionMetadata-B2NynaWZ.cjs');
10
+ var api = require('./api-DM7b1OKj.cjs');
11
+ var logger = require('./logger-CphW5nUE.cjs');
12
+ var persistence = require('./persistence-9BMYspxG.cjs');
13
+ var createSessionMetadata = require('./createSessionMetadata-xz767pcG.cjs');
11
14
  var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
12
- var machineMetadata = require('./machineMetadata-DcUupMje.cjs');
13
- var registerKillSessionHandler = require('./registerKillSessionHandler-DYl7l4Ts.cjs');
14
- var deterministicJson = require('./deterministicJson-BjNQsAjO.cjs');
15
- var projectPath = require('./projectPath-ChLhdOyt.cjs');
16
- var messageBuffer = require('./messageBuffer-fJMH6uY8.cjs');
17
- var controlClient = require('./controlClient-BTaZlbC6.cjs');
15
+ var machineMetadata = require('./machineMetadata-BQm9YTcI.cjs');
16
+ var registerKillSessionHandler = require('./registerKillSessionHandler-CIsvBrVe.cjs');
17
+ var projectPath = require('./projectPath-C3ioB4Bu.cjs');
18
+ var sessionExitLifecycle = require('./sessionExitLifecycle-DFltxXU8.cjs');
19
+ var controlClient = require('./controlClient-Bqv5v5OM.cjs');
18
20
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
19
- var setupOfflineReconnection = require('./setupOfflineReconnection-C2EeYTFH.cjs');
20
- var AcpBackend = require('./AcpBackend-CDkAQXYf.cjs');
21
+ var setupOfflineReconnection = require('./setupOfflineReconnection-DvvVX3TB.cjs');
22
+ var AcpBackend = require('./AcpBackend-DfRDtMcG.cjs');
21
23
  var constants = require('./constants-VJ0N6WuG.cjs');
22
- var config = require('./config-BFB5uJ4t.cjs');
23
- var BasePermissionHandler = require('./BasePermissionHandler-DyLmKKtO.cjs');
24
- var codexTermination = require('./codexTermination-C28FzlLb.cjs');
25
- require('axios');
26
- require('./lidState-BeOwj6eW.cjs');
27
- require('os');
28
- require('child_process');
29
- require('node:events');
30
- require('socket.io-client');
31
- require('./attachmentLimits-SqeAHrVC.cjs');
24
+ var config = require('./config-CtwEUxUP.cjs');
25
+ var BasePermissionHandler = require('./BasePermissionHandler-BlM_tfej.cjs');
26
+ var codexTermination = require('./codexTermination-BmBbizFK.cjs');
32
27
  require('zod');
33
- require('./index-_l1Sdmbi.cjs');
34
28
  require('@paralleldrive/cuid2');
35
- require('./limits-C-a7gr04.cjs');
36
- require('./time-A6zR3Iy6.cjs');
37
- require('./configuration-4TGMrjul.cjs');
29
+ require('./prompt-lgF9IE82.cjs');
30
+ require('./reportProgressTool-14AXr959.cjs');
31
+ require('./client-BWjaHKtj.cjs');
32
+ require('./configuration-CYO-kPOS.cjs');
38
33
  require('node:fs');
39
34
  require('node:os');
40
- require('./package-DY4zTbKS.cjs');
35
+ require('./package-KhLqBDX9.cjs');
41
36
  require('node:fs/promises');
42
- require('./registerCommonHandlers-C0_fyBQ0.cjs');
43
- require('util');
44
- require('fs/promises');
45
- require('crypto');
46
- require('path');
47
- require('cross-spawn');
48
- require('./sync-Dhmtk66S.cjs');
49
- require('./backgroundTaskActivity-CBvUdj39.cjs');
50
- require('chalk');
51
- require('node:util');
52
- require('./detectCLI-DR9ZaN6B.cjs');
53
- require('fs');
54
- require('./localHappyAgentAuth-Br-mgogg.cjs');
55
- require('tweetnacl');
56
- require('./types-CRS-srZK.cjs');
57
- require('./client-Dnza1hgN.cjs');
58
- require('./context-JoKu0V54.cjs');
59
- require('./sessionOps-BAnr7n8t.cjs');
60
- require('./resources-JDPugcDq.cjs');
61
- require('./tools-CxJp4T1T.cjs');
62
- require('./reportProgressTool-B9nCzbkL.cjs');
63
- require('./client-C4zKGjiJ.cjs');
64
37
  require('./precheckCompat-CWOi5c9L.cjs');
65
38
  require('./agentGuidance-BtBx2xxE.cjs');
66
39
  require('./trimIdent-4gvk9Wk6.cjs');
67
- require('./peerTools-iy3_6Yc5.cjs');
40
+ require('./client-D_loZ9IK.cjs');
41
+ require('./context-6TP-iz_c.cjs');
42
+ require('./sessionOps-BrGiU9-s.cjs');
43
+ require('axios');
44
+ require('./time-Cjv0zxQO.cjs');
45
+ require('socket.io-client');
46
+ require('./backgroundTaskActivity-CBvUdj39.cjs');
47
+ require('./resources-CvIlkzpP.cjs');
48
+ require('./tools-BL7Byl_x.cjs');
49
+ require('./peerTools-DQNlrcqM.cjs');
68
50
  require('./ids-B6ZC0HGt.cjs');
69
- require('./remoteSessionClient-BRTIOX5b.cjs');
51
+ require('./remoteSessionClient-D843fkzL.cjs');
70
52
  require('@modelcontextprotocol/sdk/server/mcp.js');
71
53
  require('node:http');
72
54
  require('@modelcontextprotocol/sdk/server/streamableHttp.js');
73
- require('./downloadTarget-BN5vZt3K.cjs');
55
+ require('./limits-C-a7gr04.cjs');
56
+ require('./downloadTarget-CEb9che-.cjs');
74
57
  require('./terminals-B_bfC9c2.cjs');
75
58
  require('node:child_process');
76
59
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
77
60
  require('./tmuxSocket-D-Xt6Vn-.cjs');
78
- require('./bootstrap-DCQ87Aan.cjs');
61
+ require('./bootstrap-DoA7okld.cjs');
62
+ require('./webPanels-FCgFKvVe.cjs');
63
+ require('./pushNotifications-DI92havG.cjs');
79
64
  require('./previewPath-B0rBdhy1.cjs');
65
+ require('crypto');
66
+ require('./lidState-DWGnm2H4.cjs');
67
+ require('os');
68
+ require('child_process');
69
+ require('node:events');
70
+ require('./registerCommonHandlers-C7a_dUWs.cjs');
71
+ require('util');
72
+ require('fs/promises');
73
+ require('path');
74
+ require('cross-spawn');
75
+ require('./sync-Bn-idAoy.cjs');
76
+ require('chalk');
77
+ require('node:util');
78
+ require('./detectCLI-BuYR_Qxe.cjs');
79
+ require('fs');
80
+ require('./localHappyAgentAuth-DZHQnIW9.cjs');
81
+ require('tweetnacl');
82
+ require('./types-CRS-srZK.cjs');
80
83
  require('url');
81
84
  require('@agentclientprotocol/sdk');
82
85
  require('./processTree-CMHWlVse.cjs');
@@ -1007,7 +1010,8 @@ async function runGemini(opts) {
1007
1010
  flavor: "gemini",
1008
1011
  machineId,
1009
1012
  startedBy: opts.startedBy,
1010
- sandbox: sandboxConfig
1013
+ sandbox: sandboxConfig,
1014
+ capabilities: [index.PROJECT_SESSION_CAPABILITY]
1011
1015
  });
1012
1016
  const response = await api$1.getOrCreateSession({ tag: sessionTag, metadata, state });
1013
1017
  let session;
@@ -1103,7 +1107,7 @@ async function runGemini(opts) {
1103
1107
  currentModel = messageModel;
1104
1108
  if (previousModel !== messageModel) {
1105
1109
  updateDisplayedModel(messageModel, true);
1106
- messageBuffer$1.addMessage(`Model changed to: ${messageModel}`, "system");
1110
+ messageBuffer.addMessage(`Model changed to: ${messageModel}`, "system");
1107
1111
  logger.logger.debug(`[Gemini] Model changed from ${previousModel} to ${messageModel}`);
1108
1112
  }
1109
1113
  }
@@ -1213,7 +1217,7 @@ async function runGemini(opts) {
1213
1217
  };
1214
1218
  session.rpcHandlerManager.registerHandler("abort", handleAbort);
1215
1219
  registerKillSessionHandler.registerKillSessionHandler(session.rpcHandlerManager, () => handleKillSession("archive"), session, { processSignals: true, onSignal: () => handleKillSession("offline") });
1216
- const messageBuffer$1 = new messageBuffer.MessageBuffer();
1220
+ const messageBuffer = new sessionExitLifecycle.MessageBuffer();
1217
1221
  const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
1218
1222
  let inkInstance = null;
1219
1223
  let displayedModel = config.getInitialGeminiModel();
@@ -1232,7 +1236,7 @@ async function runGemini(opts) {
1232
1236
  }
1233
1237
  if (hasTTY && oldModel !== model) {
1234
1238
  logger.logger.debug(`[gemini] Adding model update message to buffer: [MODEL:${model}]`);
1235
- messageBuffer$1.addMessage(`[MODEL:${model}]`, "system");
1239
+ messageBuffer.addMessage(`[MODEL:${model}]`, "system");
1236
1240
  } else if (hasTTY) {
1237
1241
  logger.logger.debug(`[gemini] Model unchanged, skipping update message`);
1238
1242
  }
@@ -1242,7 +1246,7 @@ async function runGemini(opts) {
1242
1246
  const DisplayComponent = () => {
1243
1247
  const currentModelValue = displayedModel || "gemini-2.5-pro";
1244
1248
  return React.createElement(GeminiDisplay, {
1245
- messageBuffer: messageBuffer$1,
1249
+ messageBuffer,
1246
1250
  logPath: process.env.DEBUG ? logger.logger.getLogPath() : void 0,
1247
1251
  currentModel: currentModelValue,
1248
1252
  onExit: async () => {
@@ -1258,7 +1262,7 @@ async function runGemini(opts) {
1258
1262
  });
1259
1263
  const initialModelName = displayedModel || "gemini-2.5-pro";
1260
1264
  logger.logger.debug(`[gemini] Sending initial model to UI: ${initialModelName}`);
1261
- messageBuffer$1.addMessage(`[MODEL:${initialModelName}]`, "system");
1265
+ messageBuffer.addMessage(`[MODEL:${initialModelName}]`, "system");
1262
1266
  }
1263
1267
  if (hasTTY) {
1264
1268
  process.stdin.resume();
@@ -1267,7 +1271,7 @@ async function runGemini(opts) {
1267
1271
  }
1268
1272
  process.stdin.setEncoding("utf8");
1269
1273
  }
1270
- const happyServer = await deterministicJson.startHappyServer(session);
1274
+ const happyServer = await deterministicJson.startHappyServer(session, { push: { sendAttention: (input) => api$1.push().sendAttention(input) } });
1271
1275
  const bridgeCommand = path.join(projectPath.projectPath(), "bin", "very-happy-mcp.mjs");
1272
1276
  const mcpServers = {
1273
1277
  happy: {
@@ -1297,12 +1301,12 @@ async function runGemini(opts) {
1297
1301
  case "model-output":
1298
1302
  if (msg.textDelta) {
1299
1303
  if (!isResponseInProgress) {
1300
- messageBuffer$1.removeLastMessage("system");
1301
- messageBuffer$1.addMessage(msg.textDelta, "assistant");
1304
+ messageBuffer.removeLastMessage("system");
1305
+ messageBuffer.addMessage(msg.textDelta, "assistant");
1302
1306
  isResponseInProgress = true;
1303
1307
  logger.logger.debug(`[gemini] Started new response, first chunk length: ${msg.textDelta.length}`);
1304
1308
  } else {
1305
- messageBuffer$1.updateLastMessage(msg.textDelta, "assistant");
1309
+ messageBuffer.updateLastMessage(msg.textDelta, "assistant");
1306
1310
  logger.logger.debug(`[gemini] Updated response, chunk length: ${msg.textDelta.length}, total accumulated: ${accumulatedResponse.length + msg.textDelta.length}`);
1307
1311
  }
1308
1312
  accumulatedResponse += msg.textDelta;
@@ -1329,7 +1333,7 @@ async function runGemini(opts) {
1329
1333
  });
1330
1334
  taskStartedSent = true;
1331
1335
  }
1332
- messageBuffer$1.addMessage("Thinking...", "system");
1336
+ messageBuffer.addMessage("Thinking...", "system");
1333
1337
  } else if (msg.status === "idle" || msg.status === "stopped") {
1334
1338
  reasoningProcessor.complete();
1335
1339
  }
@@ -1342,7 +1346,7 @@ async function runGemini(opts) {
1342
1346
  if (isInvestigationTool && msg.args && typeof msg.args === "object" && "objective" in msg.args) {
1343
1347
  logger.logger.debug("[gemini] Investigation objective received:", contentLogMetadata.contentLogMetadata(msg.args.objective));
1344
1348
  }
1345
- messageBuffer$1.addMessage(`Executing: ${msg.toolName}${toolArgs ? ` ${toolArgs}${toolArgs.length >= 100 ? "..." : ""}` : ""}`, "tool");
1349
+ messageBuffer.addMessage(`Executing: ${msg.toolName}${toolArgs ? ` ${toolArgs}${toolArgs.length >= 100 ? "..." : ""}` : ""}`, "tool");
1346
1350
  session.sendAgentMessage("gemini", {
1347
1351
  type: "tool-call",
1348
1352
  name: msg.toolName,
@@ -1367,12 +1371,12 @@ async function runGemini(opts) {
1367
1371
  if (isError) {
1368
1372
  const errorMsg = msg.result.error || "Tool call failed";
1369
1373
  logger.logger.debug("[gemini] Tool call error received:", contentLogMetadata.contentLogMetadata(errorMsg));
1370
- messageBuffer$1.addMessage(`Error: ${errorMsg}`, "status");
1374
+ messageBuffer.addMessage(`Error: ${errorMsg}`, "status");
1371
1375
  } else {
1372
1376
  if (resultSize > 1e3) {
1373
1377
  logger.logger.debug(`[gemini] Large tool result received (${resultSize} bytes)`);
1374
1378
  }
1375
- messageBuffer$1.addMessage(`Result: ${truncatedResult}`, "result");
1379
+ messageBuffer.addMessage(`Result: ${truncatedResult}`, "result");
1376
1380
  }
1377
1381
  session.sendAgentMessage("gemini", {
1378
1382
  type: "tool-result",
@@ -1382,7 +1386,7 @@ async function runGemini(opts) {
1382
1386
  });
1383
1387
  break;
1384
1388
  case "fs-edit":
1385
- messageBuffer$1.addMessage(`File edit: ${msg.description}`, "tool");
1389
+ messageBuffer.addMessage(`File edit: ${msg.description}`, "tool");
1386
1390
  diffProcessor.processFsEdit(msg.path || "", msg.description, msg.diff);
1387
1391
  session.sendAgentMessage("gemini", {
1388
1392
  type: "file-edit",
@@ -1403,7 +1407,7 @@ async function runGemini(opts) {
1403
1407
  }
1404
1408
  break;
1405
1409
  case "terminal-output":
1406
- messageBuffer$1.addMessage(msg.data, "result");
1410
+ messageBuffer.addMessage(msg.data, "result");
1407
1411
  session.sendAgentMessage("gemini", {
1408
1412
  type: "terminal-output",
1409
1413
  data: msg.data,
@@ -1425,7 +1429,7 @@ async function runGemini(opts) {
1425
1429
  const callId = execApprovalMsg.call_id || execApprovalMsg.callId || node_crypto.randomUUID();
1426
1430
  const { call_id, type, ...inputs } = execApprovalMsg;
1427
1431
  logger.logger.debug(`[gemini] Exec approval request received: ${callId}`);
1428
- messageBuffer$1.addMessage(`Exec approval requested: ${callId}`, "tool");
1432
+ messageBuffer.addMessage(`Exec approval requested: ${callId}`, "tool");
1429
1433
  session.sendAgentMessage("gemini", {
1430
1434
  type: "tool-call",
1431
1435
  name: "GeminiBash",
@@ -1441,7 +1445,7 @@ async function runGemini(opts) {
1441
1445
  const { call_id: patchCallIdVar, type: patchType, auto_approved, changes } = patchBeginMsg;
1442
1446
  const changeCount = changes ? Object.keys(changes).length : 0;
1443
1447
  const filesMsg = changeCount === 1 ? "1 file" : `${changeCount} files`;
1444
- messageBuffer$1.addMessage(`Modifying ${filesMsg}...`, "tool");
1448
+ messageBuffer.addMessage(`Modifying ${filesMsg}...`, "tool");
1445
1449
  logger.logger.debug(`[gemini] Patch apply begin: ${patchCallId}, files: ${changeCount}`);
1446
1450
  session.sendAgentMessage("gemini", {
1447
1451
  type: "tool-call",
@@ -1461,10 +1465,10 @@ async function runGemini(opts) {
1461
1465
  const { call_id: patchEndCallIdVar, type: patchEndType, stdout, stderr, success } = patchEndMsg;
1462
1466
  if (success) {
1463
1467
  const message = stdout || "Files modified successfully";
1464
- messageBuffer$1.addMessage(message.substring(0, 200), "result");
1468
+ messageBuffer.addMessage(message.substring(0, 200), "result");
1465
1469
  } else {
1466
1470
  const errorMsg = stderr || "Failed to modify files";
1467
- messageBuffer$1.addMessage(`Error: ${errorMsg.substring(0, 200)}`, "result");
1471
+ messageBuffer.addMessage(`Error: ${errorMsg.substring(0, 200)}`, "result");
1468
1472
  }
1469
1473
  logger.logger.debug(`[gemini] Patch apply end: ${patchEndCallId}, success: ${success}`);
1470
1474
  session.sendAgentMessage("gemini", {
@@ -1487,7 +1491,7 @@ async function runGemini(opts) {
1487
1491
  logger.logger.debug("[gemini] Thinking chunk received:", contentLogMetadata.contentLogMetadata(thinkingText));
1488
1492
  if (!thinkingText.startsWith("**")) {
1489
1493
  const thinkingPreview = thinkingText.substring(0, 100);
1490
- messageBuffer$1.updateLastMessage(`[Thinking] ${thinkingPreview}...`, "system");
1494
+ messageBuffer.updateLastMessage(`[Thinking] ${thinkingPreview}...`, "system");
1491
1495
  }
1492
1496
  }
1493
1497
  session.sendAgentMessage("gemini", {
@@ -1500,6 +1504,7 @@ async function runGemini(opts) {
1500
1504
  });
1501
1505
  }
1502
1506
  let first = true;
1507
+ const projectInjector = deterministicJson.createProjectInjector({ client: client.sharedProjectsClient(), sessionId: () => session?.sessionId, metadata: () => session?.getMetadata?.() ?? null, agent: "gemini" });
1503
1508
  try {
1504
1509
  let currentModeHash = null;
1505
1510
  let pending = null;
@@ -1533,7 +1538,7 @@ async function runGemini(opts) {
1533
1538
  let restartAfterExit = false;
1534
1539
  currentModeHash = message.hash;
1535
1540
  const userMessageToShow = message.mode?.originalUserMessage || message.message;
1536
- messageBuffer$1.addMessage(userMessageToShow, "user");
1541
+ messageBuffer.addMessage(userMessageToShow, "user");
1537
1542
  isProcessingMessage = true;
1538
1543
  try {
1539
1544
  restartAfterExit = backendGone !== null;
@@ -1544,13 +1549,13 @@ async function runGemini(opts) {
1544
1549
  }
1545
1550
  if (restartAfterExit || wasSessionCreated && currentModeHash && message.hash !== currentModeHash) {
1546
1551
  logger.logger.debug("[Gemini] Mode changed or process gone \u2013 restarting Gemini session");
1547
- messageBuffer$1.addMessage("\u2550".repeat(40), "status");
1552
+ messageBuffer.addMessage("\u2550".repeat(40), "status");
1548
1553
  if (conversationHistory.hasHistory()) {
1549
- messageBuffer$1.addMessage(`${restartAfterExit ? "Restarting Gemini" : "Switching model"} (preserving ${conversationHistory.size()} messages of context)...`, "status");
1554
+ messageBuffer.addMessage(`${restartAfterExit ? "Restarting Gemini" : "Switching model"} (preserving ${conversationHistory.size()} messages of context)...`, "status");
1550
1555
  injectHistoryContext = true;
1551
1556
  logger.logger.debug("[Gemini] Will inject conversation history");
1552
1557
  } else {
1553
- messageBuffer$1.addMessage(restartAfterExit ? "Restarting Gemini..." : "Starting new Gemini session (mode changed)...", "status");
1558
+ messageBuffer.addMessage(restartAfterExit ? "Restarting Gemini..." : "Starting new Gemini session (mode changed)...", "status");
1554
1559
  }
1555
1560
  permissionHandler.reset();
1556
1561
  reasoningProcessor.abort();
@@ -1630,7 +1635,8 @@ async function runGemini(opts) {
1630
1635
  if (!geminiBackend || !acpSessionId) {
1631
1636
  throw new Error("Gemini backend or session not initialized");
1632
1637
  }
1633
- let promptToSend = message.message;
1638
+ if (injectHistoryContext) projectInjector.reset();
1639
+ let promptToSend = await projectInjector.decorate(message.message);
1634
1640
  if (injectHistoryContext && conversationHistory.hasHistory()) {
1635
1641
  const historyContext = conversationHistory.getContextForNewSession();
1636
1642
  promptToSend = historyContext + promptToSend;
@@ -1661,7 +1667,7 @@ async function runGemini(opts) {
1661
1667
  if (isRetryableGeminiError(promptError) && attempt < MAX_RETRIES) {
1662
1668
  const notice = describeGeminiRetry(attempt, MAX_RETRIES, promptError);
1663
1669
  logger.logger.debug(`[gemini] Retryable error on attempt ${attempt}/${MAX_RETRIES}:`, contentLogMetadata.errorLogMetadata(promptError));
1664
- messageBuffer$1.addMessage(notice, "status");
1670
+ messageBuffer.addMessage(notice, "status");
1665
1671
  session.sendSessionEvent({ type: "message", message: notice });
1666
1672
  await new Promise((resolve2) => setTimeout(resolve2, RETRY_DELAY_MS * attempt));
1667
1673
  if (turnAborted()) throw promptError;
@@ -1678,7 +1684,7 @@ async function runGemini(opts) {
1678
1684
  const isAbortError = error instanceof Error && error.name === "AbortError";
1679
1685
  if (isAbortError) {
1680
1686
  turnEnding = "aborted";
1681
- messageBuffer$1.addMessage("Aborted by user", "status");
1687
+ messageBuffer.addMessage("Aborted by user", "status");
1682
1688
  session.sendSessionEvent({ type: "message", message: "Aborted by user" });
1683
1689
  } else {
1684
1690
  const failure = describeGeminiFailure(error, { model: displayedModel || "gemini-2.5-pro" });
@@ -1687,7 +1693,7 @@ async function runGemini(opts) {
1687
1693
  } else if (restartAfterExit && !acpSessionId && error instanceof Error) {
1688
1694
  backendGone = error;
1689
1695
  }
1690
- messageBuffer$1.addMessage(failure.message, "status");
1696
+ messageBuffer.addMessage(failure.message, "status");
1691
1697
  session.sendSessionEvent({ type: "message", message: failure.message });
1692
1698
  if (!turnAborted()) {
1693
1699
  turnEnding = "failed";
@@ -1771,7 +1777,7 @@ async function runGemini(opts) {
1771
1777
  if (inkInstance) {
1772
1778
  inkInstance.unmount();
1773
1779
  }
1774
- messageBuffer$1.clear();
1780
+ messageBuffer.clear();
1775
1781
  logger.logger.debug("[gemini]: Final cleanup completed");
1776
1782
  }
1777
1783
  }
@@ -3,34 +3,34 @@ import { execFileSync } from 'node:child_process';
3
3
  import os from 'node:os';
4
4
  import { existsSync, readFileSync } from 'node:fs';
5
5
  import { join } from 'node:path';
6
- import { c as connectionState, A as ApiClient } from './api-Dib0dmqC.mjs';
7
- import { A as AcpSessionManager } from './AcpSessionManager-BXrQcqwC.mjs';
8
- import { l as logger } from './logger--vAVtXB_.mjs';
9
- import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-gwJ5lTf0.mjs';
10
- import { r as readSettings } from './persistence-DTk4sNpd.mjs';
11
- import { g as getInitialMachineMetadata } from './machineMetadata-B1H9gNbN.mjs';
12
- import { c as createSessionMetadata } from './createSessionMetadata-8Fuj2-IV.mjs';
13
- import { s as setupOfflineReconnection } from './setupOfflineReconnection-_eD4cuUT.mjs';
14
- import { n as notifyDaemonSessionStarted } from './controlClient-BYKyGyxj.mjs';
6
+ import { c as connectionState, A as ApiClient } from './api-Hov8p7CA.mjs';
7
+ import { A as AcpSessionManager } from './AcpSessionManager-i8Rab0xT.mjs';
8
+ import { l as logger } from './logger-BUngm5Xg.mjs';
9
+ import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-CaqqRYq6.mjs';
10
+ import { r as readSettings } from './persistence-BFUOHW5h.mjs';
11
+ import { g as getInitialMachineMetadata } from './machineMetadata-BXN_bKU3.mjs';
12
+ import { c as createSessionMetadata } from './createSessionMetadata-DDIChCx8.mjs';
13
+ import { s as setupOfflineReconnection } from './setupOfflineReconnection-1Qlek3wl.mjs';
14
+ import { n as notifyDaemonSessionStarted } from './controlClient-DoeYovwP.mjs';
15
15
  import { e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
16
16
  import WebSocket from 'ws';
17
17
  import * as ed from '@noble/ed25519';
18
18
  import { sha512 } from '@noble/hashes/sha2.js';
19
- import { f as ensurePrivateDirectorySync, a as hardenPrivateFileSync, w as writePrivateFileSync, c as configuration } from './configuration-DVrb61aY.mjs';
19
+ import { f as ensurePrivateDirectorySync, a as hardenPrivateFileSync, w as writePrivateFileSync, c as configuration } from './configuration-PxzEJumr.mjs';
20
20
  import { e as errorLogMetadata, c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
21
21
  import 'axios';
22
- import './lidState-DNMlIhX0.mjs';
22
+ import './lidState-bBrmaQd2.mjs';
23
23
  import 'os';
24
24
  import 'child_process';
25
25
  import 'node:events';
26
26
  import 'socket.io-client';
27
- import './attachmentLimits-UyFn8fkQ.mjs';
27
+ import './pushNotifications-DCiBEVeC.mjs';
28
28
  import 'zod';
29
- import './index-Clqlu17M.mjs';
29
+ import './index-C6Vn5Eac.mjs';
30
30
  import '@paralleldrive/cuid2';
31
31
  import './limits-DIo7rEBR.mjs';
32
- import './time-BuGWTVP6.mjs';
33
- import './registerCommonHandlers-CvIedVRf.mjs';
32
+ import './time-D3ETL7Jb.mjs';
33
+ import './registerCommonHandlers-CTkCvjxt.mjs';
34
34
  import 'util';
35
35
  import 'fs/promises';
36
36
  import 'crypto';
@@ -38,17 +38,17 @@ import 'path';
38
38
  import 'cross-spawn';
39
39
  import './projectPath-BTBIMB57.mjs';
40
40
  import 'url';
41
- import './sync-DbW07iQS.mjs';
42
- import './backgroundTaskActivity-BVwJBl02.mjs';
41
+ import './sync-BvVhDO40.mjs';
42
+ import './backgroundTaskActivity-8PdPxrvy.mjs';
43
43
  import 'chalk';
44
44
  import 'node:util';
45
45
  import 'tweetnacl';
46
46
  import './types-CkqAACXx.mjs';
47
47
  import 'node:fs/promises';
48
- import './package-B7B03ejW.mjs';
48
+ import './package-7Ld1YMhh.mjs';
49
49
  import './detectCLI-CSGMlV51.mjs';
50
50
  import 'fs';
51
- import './localHappyAgentAuth-BezKSFDi.mjs';
51
+ import './localHappyAgentAuth-Dn1jYDpt.mjs';
52
52
 
53
53
  ed.hashes.sha512 = (message) => sha512(message);
54
54
  const { getPublicKeyAsync, signAsync, utils } = ed;