very-happy-cli 0.2.203 → 0.2.204

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 (222) hide show
  1. package/dist/{AcpBackend-CAMuhS0Z.mjs → AcpBackend-BBfcpIDj.mjs} +3 -3
  2. package/dist/{AcpBackend-DReFgpYD.cjs → AcpBackend-BupxHXGp.cjs} +3 -3
  3. package/dist/{AcpSessionManager-CJOxMFCF.mjs → AcpSessionManager-B9UkPYGi.mjs} +2 -2
  4. package/dist/{AcpSessionManager-BZKM-sCt.cjs → AcpSessionManager-JJrnenKM.cjs} +2 -2
  5. package/dist/{BasePermissionHandler-BBR9Gkob.cjs → BasePermissionHandler-86_xnisC.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-BgX73mQ5.mjs → BasePermissionHandler-tGylJLUH.mjs} +1 -1
  7. package/dist/{account-hy0rztXY.mjs → account-BRqUOj_D.mjs} +11 -11
  8. package/dist/{account-41PkJ9nx.cjs → account-C91_R-kw.cjs} +11 -11
  9. package/dist/{accountService-DEpIq6CF.mjs → accountService-CqrWNH8K.mjs} +4 -4
  10. package/dist/{accountService-Cns8UYGI.cjs → accountService-SOeB_21A.cjs} +4 -4
  11. package/dist/{acpSessionResume-5El4xksf.mjs → acpSessionResume-CZQ91ano.mjs} +1 -1
  12. package/dist/{acpSessionResume-DmOPXKpC.cjs → acpSessionResume-DK8EjIY0.cjs} +1 -1
  13. package/dist/{agentHome-DUxArmak.mjs → agentHome-71zGywwx.mjs} +4 -4
  14. package/dist/{agentHome-BXaVMqHX.cjs → agentHome-BZvbPuy1.cjs} +4 -4
  15. package/dist/{api-D8ZDxBWw.mjs → api-BYh1VGBa.mjs} +107 -18
  16. package/dist/{api-ChhFBuB0.cjs → api-BoJA-zK3.cjs} +107 -18
  17. package/dist/{apiMachine-qav2pnk5.mjs → apiMachine--_eI4PTv.mjs} +105 -21
  18. package/dist/{apiMachine-MPwddFXq.cjs → apiMachine-CA58NM_V.cjs} +105 -21
  19. package/dist/{attachmentContent-BfSQxccA.mjs → attachmentContent-D95cCBX5.mjs} +2 -2
  20. package/dist/{attachmentContent-f5gwnv9J.cjs → attachmentContent-y621KwMz.cjs} +2 -2
  21. package/dist/{auth-thi2T_T8.cjs → auth-CAkpHr8F.cjs} +5 -5
  22. package/dist/{auth-BxNuFv_0.mjs → auth-DCzFx5BN.mjs} +8 -8
  23. package/dist/{auth-xW7SDE_7.mjs → auth-DRJ_WPn3.mjs} +5 -5
  24. package/dist/{auth-DkPAHXLj.cjs → auth-Dofm64Kp.cjs} +8 -8
  25. package/dist/{auto-DmXTwayU.mjs → auto-CrgOy5OR.mjs} +18 -18
  26. package/dist/{auto-BiRlQ4tm.cjs → auto-D4IBwJEE.cjs} +18 -18
  27. package/dist/{bootstrap-EGhaCmXy.cjs → bootstrap-D16MMPNP.cjs} +2 -2
  28. package/dist/{bootstrap-pGaFGbWO.mjs → bootstrap-PnL2FX64.mjs} +2 -2
  29. package/dist/{browser-BYSYzXvP.mjs → browser-D2enJJfv.mjs} +1 -1
  30. package/dist/{browser-DSxpOnPb.cjs → browser-DK2GfyEr.cjs} +1 -1
  31. package/dist/{claudeAccountEnv-Btp39mfa.cjs → claudeAccountEnv-BTZjHTpF.cjs} +1 -1
  32. package/dist/{claudeAccountEnv-DowsOlDB.mjs → claudeAccountEnv-C6Wl-ZbT.mjs} +1 -1
  33. package/dist/{claudeLocal-bDarWqaU.mjs → claudeLocal-BbzN1qly.mjs} +5 -5
  34. package/dist/{claudeLocal-ClqHmkk6.cjs → claudeLocal-DaqiRW9N.cjs} +5 -5
  35. package/dist/{claudeLocalLauncher-Bxi0_eW9.cjs → claudeLocalLauncher-B0qbyOUc.cjs} +10 -10
  36. package/dist/{claudeLocalLauncher-Ccpj2KgW.mjs → claudeLocalLauncher-D7bhZ9rp.mjs} +10 -10
  37. package/dist/claudeLongContext-BR_zdjUp.cjs +239 -0
  38. package/dist/claudeLongContext-CZ60xo5p.mjs +219 -0
  39. package/dist/{claudeSessionFork-Cize0Y2T.mjs → claudeSessionFork-BPF3cpGs.mjs} +1 -1
  40. package/dist/{claudeSessionFork-nyNFjgaf.cjs → claudeSessionFork-lcajftLB.cjs} +1 -1
  41. package/dist/{client-DO8DNDC3.mjs → client-BH4s6mzX.mjs} +2 -2
  42. package/dist/{client-CgMVIP7v.mjs → client-BHt14nix.mjs} +2 -2
  43. package/dist/{client-DP8FabOE.cjs → client-ByK8-iRd.cjs} +3 -3
  44. package/dist/{client-Cddb1dhi.cjs → client-CqmT_ur8.cjs} +2 -2
  45. package/dist/{client-6Y6O72Uq.cjs → client-D5_YDMpA.cjs} +2 -2
  46. package/dist/{client-Wr_BiOon.mjs → client-Og5iNZ6S.mjs} +16 -7
  47. package/dist/{client-CX8kRedW.mjs → client-t1vQ7gho.mjs} +3 -3
  48. package/dist/{client-CMKgB-76.cjs → client-xA44FUnf.cjs} +16 -7
  49. package/dist/codex/happyMcpStdioBridge.cjs +20 -19
  50. package/dist/codex/happyMcpStdioBridge.mjs +20 -19
  51. package/dist/{codexAccount-CieIQLOX.mjs → codexAccount-BPQ-lPhH.mjs} +1 -1
  52. package/dist/{codexAccount-D-OBY29W.cjs → codexAccount-BjaHvmKH.cjs} +1 -1
  53. package/dist/{codexAppServerClient-D-cD2Dfj.mjs → codexAppServerClient-CvL3eBlM.mjs} +3 -3
  54. package/dist/{codexAppServerClient-EzrHWYhX.cjs → codexAppServerClient-CyLtj1kP.cjs} +3 -3
  55. package/dist/{codexCommand-BMcXtvU3.cjs → codexCommand-B0Slfvne.cjs} +67 -56
  56. package/dist/{codexCommand-D79GnRhB.mjs → codexCommand-CXytYlk9.mjs} +67 -56
  57. package/dist/{codexTermination-CF6xiFbb.cjs → codexTermination-CykPnK3G.cjs} +1 -1
  58. package/dist/{codexTermination-CK1MYJT7.mjs → codexTermination-D0sBaTvW.mjs} +1 -1
  59. package/dist/{config-F6zSRyk2.cjs → config-7Z5qIB3k.cjs} +3 -3
  60. package/dist/{config-Crn1mNgr.mjs → config-DeXK_5y4.mjs} +3 -3
  61. package/dist/{configuration-Cl9kOv09.cjs → configuration-CDqmWkHO.cjs} +1 -1
  62. package/dist/{configuration-i9MVy0a5.mjs → configuration-D_YrWa_i.mjs} +1 -1
  63. package/dist/{connect-CiA13Xm4.mjs → connect-CivOym_v.mjs} +13 -13
  64. package/dist/{connect-ClklWmnI.cjs → connect-D_tzdR4l.cjs} +13 -13
  65. package/dist/{context-DvdZsGgl.mjs → context-DXfkj_FL.mjs} +1 -1
  66. package/dist/{context-BxODP3mG.cjs → context-k2CbuBtp.cjs} +1 -1
  67. package/dist/{controlClient-DxCQKfqe.cjs → controlClient-BS86Ksm8.cjs} +12 -3
  68. package/dist/{controlClient-D6vqMUfi.mjs → controlClient-Daki7wgo.mjs} +12 -4
  69. package/dist/{createSessionMetadata-B_NZvmhm.cjs → createSessionMetadata-2s80RDL1.cjs} +2 -2
  70. package/dist/{createSessionMetadata-BuAVB-xI.mjs → createSessionMetadata-B_hQ8lDn.mjs} +2 -2
  71. package/dist/{daemonAccounts-ciidbU2h.cjs → daemonAccounts-BOoI7-sw.cjs} +2 -2
  72. package/dist/{daemonAccounts-D5shoCLt.mjs → daemonAccounts-BtkmoJmC.mjs} +3 -3
  73. package/dist/{defaultPermissionMode-DgeiMMqy.mjs → defaultPermissionMode-CYQi7vqJ.mjs} +1 -1
  74. package/dist/{defaultPermissionMode-Cs_Tv83b.cjs → defaultPermissionMode-DmLYaaL8.cjs} +1 -1
  75. package/dist/{deterministicJson-B9XrEawW.mjs → deterministicJson-DKiOtrSA.mjs} +23 -16
  76. package/dist/{deterministicJson-kM2OdGZu.cjs → deterministicJson-lwG_VzWd.cjs} +23 -16
  77. package/dist/{doctor-DiPRqsqg.cjs → doctor-C0kONAQn.cjs} +7 -7
  78. package/dist/{doctor-HHS4YegX.mjs → doctor-DegBfYjz.mjs} +7 -7
  79. package/dist/{downloadTarget-osB-mGh0.cjs → downloadTarget-BTEVg8t6.cjs} +6 -6
  80. package/dist/{downloadTarget-Cd8hx54t.mjs → downloadTarget-osakJyyA.mjs} +6 -6
  81. package/dist/{ensureDaemonRunning-C0iDtuL7.mjs → ensureDaemonRunning-ED6UVEbk.mjs} +5 -5
  82. package/dist/{ensureDaemonRunning-CtBvPHVB.cjs → ensureDaemonRunning-vxHxmXo2.cjs} +5 -5
  83. package/dist/exitNotice-BhRrv8dx.cjs +88 -0
  84. package/dist/exitNotice-D1tMULzu.mjs +79 -0
  85. package/dist/{forkBackfill-DYIjlN1Z.mjs → forkBackfill-C9EfJ64O.mjs} +28 -2
  86. package/dist/{forkBackfill-8eLDeS73.cjs → forkBackfill-D2WW91fz.cjs} +28 -1
  87. package/dist/{format-B5V7ie8N.cjs → format-9KvRMdvY.cjs} +1 -1
  88. package/dist/{format-Dc5zMslz.mjs → format-DJwRUrQm.mjs} +1 -1
  89. package/dist/{handleResumeCommand-vcD2qcAM.cjs → handleResumeCommand-0lsgLgBB.cjs} +5 -5
  90. package/dist/{handleResumeCommand-xrOAA1qI.mjs → handleResumeCommand-PfKmR-hv.mjs} +5 -5
  91. package/dist/{index-iFVMrlPo.mjs → index-BNcFxRSt.mjs} +4 -4
  92. package/dist/{index-44o_qMvE.cjs → index-BYL_X3gP.cjs} +27 -6
  93. package/dist/{index-AyDwQ6FG.cjs → index-B_narjYR.cjs} +45 -44
  94. package/dist/{index-Cl-WkB_6.cjs → index-Bm_9wBaO.cjs} +4 -4
  95. package/dist/{index-C_ePuQwB.cjs → index-C7yXrMau.cjs} +3 -3
  96. package/dist/{index-B7pKBIcn.mjs → index-CUJZx4cs.mjs} +3 -3
  97. package/dist/{index-DIKJMfs2.mjs → index-CUeuMsap.mjs} +4 -4
  98. package/dist/{index-B7CXMlrz.mjs → index-D1rxFJ2b.mjs} +46 -45
  99. package/dist/{index-CiRMvS73.mjs → index-DWk-WTU-.mjs} +24 -7
  100. package/dist/{index-D0rCXp-e.cjs → index-l8Xg3Mbf.cjs} +4 -4
  101. package/dist/index.cjs +2 -2
  102. package/dist/index.mjs +2 -2
  103. package/dist/{install-yqS4y1cm.mjs → install-B593oYZs.mjs} +3 -3
  104. package/dist/{install-BgBgsOlS.cjs → install-C0I1a5sL.cjs} +3 -3
  105. package/dist/{issue-D7liK6bR.cjs → issue-CJrXCpnf.cjs} +8 -8
  106. package/dist/{issue-aKZd7J55.mjs → issue-D9ukoK-U.mjs} +8 -8
  107. package/dist/lib.cjs +12 -12
  108. package/dist/lib.d.cts +42 -1
  109. package/dist/lib.d.mts +42 -1
  110. package/dist/lib.mjs +12 -12
  111. package/dist/{localHappyAgentAuth-B2JJxlE9.mjs → localHappyAgentAuth-CxNcSjMM.mjs} +1 -1
  112. package/dist/{localHappyAgentAuth-Dm9obisi.cjs → localHappyAgentAuth-D3GKuEC2.cjs} +1 -1
  113. package/dist/{logger-BiKmiREe.mjs → logger-BcdURxNR.mjs} +2 -2
  114. package/dist/{logger-BtWBoP60.cjs → logger-C8anCmdW.cjs} +2 -2
  115. package/dist/{machineMetadata-CiyO9wm-.mjs → machineMetadata-BQaQQk6Z.mjs} +3 -3
  116. package/dist/{machineMetadata-C0-LyMsb.cjs → machineMetadata-DYWtdEtE.cjs} +3 -3
  117. package/dist/{main-C7hKf5hG.cjs → main-Bw7qSCWA.cjs} +48 -48
  118. package/dist/{main-BP2TBnp5.mjs → main-KsUdHnwc.mjs} +48 -48
  119. package/dist/{mcp-DO00rr9n.cjs → mcp-CxPUFOEd.cjs} +20 -18
  120. package/dist/{mcp-Cn4k-PXb.mjs → mcp-OeLaQ2XR.mjs} +20 -18
  121. package/dist/{mirrorProtocol-DDtEN49F.mjs → mirrorProtocol-Sj0yEHHU.mjs} +3 -3
  122. package/dist/{mirrorProtocol-DwO8QgLM.cjs → mirrorProtocol-cTQcrW55.cjs} +3 -3
  123. package/dist/{package-Djdgx8nb.cjs → package-DkpXQvp1.cjs} +7 -7
  124. package/dist/{package-CIW5lwaN.mjs → package-Dx3hbh9J.mjs} +7 -7
  125. package/dist/{panels-DMLtEOtJ.cjs → panels-CPNZnwCH.cjs} +5 -5
  126. package/dist/{panels-BpfVEvwF.mjs → panels-DKYO14Sq.mjs} +5 -5
  127. package/dist/{peerTools-CQ60fUPp.mjs → peerTools-DYFslv6R.mjs} +5 -5
  128. package/dist/{peerTools-fYuKq3ev.cjs → peerTools-DpCWFxI6.cjs} +5 -5
  129. package/dist/{persistence-D_zVC4Xz.mjs → persistence-3iZXGbfb.mjs} +2 -2
  130. package/dist/{persistence-BOEZtiKb.cjs → persistence-Ch78xygf.cjs} +2 -2
  131. package/dist/{piRunnerArgs-Dz9P62db.cjs → piRunnerArgs-CA6jqQ0k.cjs} +1 -1
  132. package/dist/{piRunnerArgs-DE_YXvS1.mjs → piRunnerArgs-DEuYl6FL.mjs} +1 -1
  133. package/dist/{piRuntime-Du62fjeU.cjs → piRuntime-BIVHf-hN.cjs} +1 -1
  134. package/dist/{piRuntime-8SbpRmNA.mjs → piRuntime-CyN43ILm.mjs} +1 -1
  135. package/dist/{piTerminal-Cl45kac0.mjs → piTerminal-DXz5L73L.mjs} +22 -20
  136. package/dist/{piTerminal-CGAw7WDW.cjs → piTerminal-Hw4StZWN.cjs} +22 -20
  137. package/dist/{pushNotifications-B19lT5mY.cjs → pushNotifications-D2ejrxlN.cjs} +17 -3
  138. package/dist/{pushNotifications-RVpbqrxR.mjs → pushNotifications-Db1NGJiA.mjs} +17 -3
  139. package/dist/{query-DBRR3TOO.mjs → query-CeYpZWVb.mjs} +1 -1
  140. package/dist/{query-CNWdX2r5.cjs → query-velpFYxW.cjs} +1 -1
  141. package/dist/{rateLimitWindows-DX5y23x_.mjs → rateLimitWindows-BSQttrPk.mjs} +1 -1
  142. package/dist/{rateLimitWindows-mfdokrkQ.cjs → rateLimitWindows-C78D8Uf-.cjs} +1 -1
  143. package/dist/{reconnectGate-DSxYUCWy.mjs → reconnectGate-Ie4nSKNl.mjs} +1 -1
  144. package/dist/{reconnectGate-B8ltzSJD.cjs → reconnectGate-S9yNiuY7.cjs} +1 -1
  145. package/dist/{registerCommonHandlers-Y2siJGwL.cjs → registerCommonHandlers-51llVpLx.cjs} +2 -2
  146. package/dist/{registerCommonHandlers-CQDRKlkG.mjs → registerCommonHandlers-BR7BeGX3.mjs} +2 -2
  147. package/dist/{registerKillSessionHandler-B0pMZOdH.cjs → registerKillSessionHandler-BjY79qBi.cjs} +6 -6
  148. package/dist/{registerKillSessionHandler-U4Dxtohy.mjs → registerKillSessionHandler-RbWPmKnK.mjs} +6 -6
  149. package/dist/{registerSideQuestionHandler--ruKhCdY.cjs → registerSideQuestionHandler-B1Xk7dFK.cjs} +4 -4
  150. package/dist/{registerSideQuestionHandler-DM1QqTxf.mjs → registerSideQuestionHandler-BbYT7QfR.mjs} +4 -4
  151. package/dist/{remoteSessionClient-T-Raoiy6.mjs → remoteSessionClient-Ddns3U8M.mjs} +5 -5
  152. package/dist/{remoteSessionClient-CjINaEs_.cjs → remoteSessionClient-r-UnqHor.cjs} +5 -5
  153. package/dist/{reportProgressTool-DDfL1OY7.cjs → reportProgressTool-ByadxJtc.cjs} +5 -5
  154. package/dist/{reportProgressTool-Stg0xrjF.mjs → reportProgressTool-C3sf9D8m.mjs} +5 -5
  155. package/dist/{run-Dq48xBtw.mjs → run-jsINwBOz.mjs} +200 -55
  156. package/dist/{run-BoSVfVCZ.cjs → run-r5sY3wHk.cjs} +200 -55
  157. package/dist/{runClaude-D8ScJdJU.cjs → runClaude-CRKsRfnq.cjs} +53 -38
  158. package/dist/{runClaude-CJe5atrS.mjs → runClaude-D8CuiZhi.mjs} +44 -29
  159. package/dist/{runClaudeDeps-4RFRR4cY.cjs → runClaudeDeps-BiVzNIE6.cjs} +129 -61
  160. package/dist/{runClaudeDeps-CL3goCXG.mjs → runClaudeDeps-CUuPWcg9.mjs} +125 -57
  161. package/dist/{runGemini-BcbNxgsA.cjs → runGemini-DANnc0BW.cjs} +36 -35
  162. package/dist/{runGemini-DZv6jPxV.mjs → runGemini-cqVZjPT6.mjs} +36 -35
  163. package/dist/{runOpenClaw-CRqCoj-_.mjs → runOpenClaw-B6V2nz8J.mjs} +18 -18
  164. package/dist/{runOpenClaw-BeSivE0X.cjs → runOpenClaw-CGwc6mfJ.cjs} +18 -18
  165. package/dist/{sandbox-xflHChws.cjs → sandbox-CNheYPva.cjs} +4 -4
  166. package/dist/{sandbox-DAvJJZcV.mjs → sandbox-JYBMckKE.mjs} +4 -4
  167. package/dist/{selfCheck-DZwdgBg0.cjs → selfCheck-DtSEBt0g.cjs} +40 -40
  168. package/dist/selfCheck-Jjy_wMw3.mjs +89 -0
  169. package/dist/{send-Co_l_Nmg.mjs → send-BHrbbGJ7.mjs} +8 -8
  170. package/dist/{send-ConAuYqL.cjs → send-DNdJR3n8.cjs} +8 -8
  171. package/dist/{server-by6kezmM.cjs → server-CvP_b3eb.cjs} +6 -6
  172. package/dist/{server-D1Qrmxl7.mjs → server-DhQjVsyZ.mjs} +4 -4
  173. package/dist/{sessionLock-DFrwAnwR.mjs → sessionLock-5i516L-w.mjs} +21 -4
  174. package/dist/{sessionLock-Db_uQcUP.cjs → sessionLock-UkF8M3j5.cjs} +22 -3
  175. package/dist/{sessionOps-CptDjoZi.cjs → sessionOps-D77IeFSt.cjs} +4 -4
  176. package/dist/{sessionOps-C7nps7qG.mjs → sessionOps-DX49XNAT.mjs} +4 -4
  177. package/dist/{sessionProvider-BaJq1AnY.mjs → sessionProvider-C5xW4Dt3.mjs} +10 -10
  178. package/dist/{sessionProvider-D9nsAE14.cjs → sessionProvider-mSI2UgLX.cjs} +10 -10
  179. package/dist/{sessionScanner-C6OVO0Ne.cjs → sessionScanner-B1Am8D4Y.cjs} +3 -3
  180. package/dist/{sessionScanner-BOb33NVJ.mjs → sessionScanner-BZkOnp5a.mjs} +3 -3
  181. package/dist/{sessions-GCql_3Dl.mjs → sessions-ClQFpjcA.mjs} +10 -10
  182. package/dist/{sessions-qVHDXJa6.cjs → sessions-DDDEiHVR.cjs} +10 -10
  183. package/dist/{setupOfflineReconnection-B8QKqc9a.cjs → setupOfflineReconnection-Cn2_vuvO.cjs} +2 -2
  184. package/dist/{setupOfflineReconnection-lu0YbS7m.mjs → setupOfflineReconnection-PjK9laDd.mjs} +2 -2
  185. package/dist/{spawn-C9NSlg99.mjs → spawn-BJGaxdot.mjs} +15 -15
  186. package/dist/{spawn-tL-724RS.cjs → spawn-DOj-sY6W.cjs} +15 -15
  187. package/dist/{spawnAgents-BclZYkov.mjs → spawnAgents-CcFKtKdX.mjs} +2 -1
  188. package/dist/{spawnAgents-DvbEDCIq.cjs → spawnAgents-D4lR468W.cjs} +2 -1
  189. package/dist/{spawnHappyCLI-jXUKLUT5.mjs → spawnHappyCLI-CpOMz9hX.mjs} +1 -1
  190. package/dist/{spawnHappyCLI-D7EO8s4E.cjs → spawnHappyCLI-DvxZ7elP.cjs} +1 -1
  191. package/dist/{startFileWatcher-6NpLGxg5.cjs → startFileWatcher-1ar7WS96.cjs} +1 -1
  192. package/dist/{startFileWatcher-C7eFs4hA.mjs → startFileWatcher-CPbPNFGY.mjs} +1 -1
  193. package/dist/{startupSessionCreate-C5wdvraY.cjs → startupSessionCreate-COc5Nnr9.cjs} +3 -3
  194. package/dist/{startupSessionCreate-D3ph1DtL.mjs → startupSessionCreate-CnVaUZ16.mjs} +3 -3
  195. package/dist/{store-Cpb1LMNW.cjs → store-DGMILdMn.cjs} +1 -1
  196. package/dist/{store-DWmjM4Ex.mjs → store-Fge1h9wy.mjs} +1 -1
  197. package/dist/{streamRelay-DdGOsW8v.mjs → streamRelay-MaaYNNuh.mjs} +1 -1
  198. package/dist/{streamRelay-4XiiNB3N.cjs → streamRelay-keuifCPQ.cjs} +1 -1
  199. package/dist/{sync-BIXH8ijr.mjs → sync-BZji3J2r.mjs} +1 -1
  200. package/dist/{sync-ni64k2OI.cjs → sync-DzInYE_l.cjs} +1 -1
  201. package/dist/{systemPrompt-DuoULaqr.cjs → systemPrompt-CvpjNmQL.cjs} +2 -2
  202. package/dist/{systemPrompt-B_vnlIr1.mjs → systemPrompt-Dhdq8hGf.mjs} +2 -2
  203. package/dist/{teams-DLfcbOMh.cjs → teams-CRCbDPob.cjs} +20 -9
  204. package/dist/{teams-CsR_8p3Q.mjs → teams-CVW4ZvmW.mjs} +20 -9
  205. package/dist/{template-3fV9bi0X.cjs → template-ChUotPTL.cjs} +1 -1
  206. package/dist/{template-CtRLg2PG.mjs → template-D8fzlO58.mjs} +1 -1
  207. package/dist/{time-Che8GhII.mjs → time-BWVJTcWI.mjs} +1 -1
  208. package/dist/{time-BMCY7zJL.cjs → time-UUMqbIq8.cjs} +1 -1
  209. package/dist/{titleGenerator-HVEN1e7o.cjs → titleGenerator-BHOA2Wkx.cjs} +3 -3
  210. package/dist/{titleGenerator-B9LckLDq.mjs → titleGenerator-Ck82YoB7.mjs} +2 -2
  211. package/dist/{todo-bc7db5NN.mjs → todo-Cf52TlmX.mjs} +8 -8
  212. package/dist/{todo-B8byb_cy.cjs → todo-Cwo7joub.cjs} +8 -8
  213. package/dist/{tools--RN1SFkD.cjs → tools-DEErCtZG.cjs} +1 -1
  214. package/dist/{tools-BAMaBbbP.mjs → tools-DmNaOlUF.mjs} +1 -1
  215. package/dist/{uninstall-Dv4C-W9z.mjs → uninstall-B85MiNK2.mjs} +3 -3
  216. package/dist/{uninstall-UC0Q8YTj.cjs → uninstall-CoAK4ANz.cjs} +3 -3
  217. package/dist/{wrapperAccount-nGGMJDBF.cjs → wrapperAccount-BHMM9I6g.cjs} +2 -2
  218. package/dist/{wrapperAccount-z8Swrd08.mjs → wrapperAccount-CwaA-n1S.mjs} +2 -2
  219. package/package.json +7 -7
  220. package/dist/permissionMode-CH4FoZfU.mjs +0 -80
  221. package/dist/permissionMode-CrV-XuMs.cjs +0 -87
  222. package/dist/selfCheck-BKOIROoJ.mjs +0 -89
@@ -3,12 +3,12 @@
3
3
  var chalk = require('chalk');
4
4
  var os = require('os');
5
5
  var require$$1 = require('path');
6
- var persistence = require('./persistence-BOEZtiKb.cjs');
7
- var api = require('./api-ChhFBuB0.cjs');
8
- var configuration = require('./configuration-Cl9kOv09.cjs');
6
+ var persistence = require('./persistence-Ch78xygf.cjs');
7
+ var api = require('./api-BoJA-zK3.cjs');
8
+ var configuration = require('./configuration-CDqmWkHO.cjs');
9
9
  var http = require('http');
10
10
  var require$$3 = require('crypto');
11
- var browser = require('./browser-DSxpOnPb.cjs');
11
+ var browser = require('./browser-DK2GfyEr.cjs');
12
12
  var child_process = require('child_process');
13
13
  var util = require('util');
14
14
  require('node:fs/promises');
@@ -17,29 +17,29 @@ require('zod');
17
17
  require('./authRelay-Dy1qU9td.cjs');
18
18
  require('node:crypto');
19
19
  require('tweetnacl');
20
- require('./logger-BtWBoP60.cjs');
20
+ require('./logger-C8anCmdW.cjs');
21
21
  require('node:util');
22
22
  require('node:path');
23
23
  require('axios');
24
- require('./pushNotifications-B19lT5mY.cjs');
25
- require('./index-44o_qMvE.cjs');
24
+ require('./pushNotifications-D2ejrxlN.cjs');
25
+ require('./index-BYL_X3gP.cjs');
26
26
  require('@paralleldrive/cuid2');
27
27
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
28
- require('./reconnectGate-B8ltzSJD.cjs');
28
+ require('./reconnectGate-S9yNiuY7.cjs');
29
29
  require('node:events');
30
30
  require('socket.io-client');
31
31
  require('./limits-C-a7gr04.cjs');
32
- require('./time-BMCY7zJL.cjs');
33
- require('./registerCommonHandlers-Y2siJGwL.cjs');
32
+ require('./time-UUMqbIq8.cjs');
33
+ require('./registerCommonHandlers-51llVpLx.cjs');
34
34
  require('fs/promises');
35
35
  require('cross-spawn');
36
36
  require('./projectPath-C3ioB4Bu.cjs');
37
37
  require('url');
38
- require('./sync-ni64k2OI.cjs');
38
+ require('./sync-DzInYE_l.cjs');
39
39
  require('./backgroundTaskActivity-CBvUdj39.cjs');
40
- require('./controlClient-DxCQKfqe.cjs');
40
+ require('./controlClient-BS86Ksm8.cjs');
41
41
  require('node:os');
42
- require('./package-Djdgx8nb.cjs');
42
+ require('./package-DkpXQvp1.cjs');
43
43
  require('open');
44
44
 
45
45
  const CLIENT_ID$2 = "app_EMoamEEZ73f0CkXaXp7hrann";
@@ -3,7 +3,7 @@ import { constants } from 'node:fs';
3
3
  import { isAbsolute, join, dirname } from 'node:path';
4
4
  import { randomUUID } from 'node:crypto';
5
5
  import { z } from 'zod';
6
- import { n as normalizeHttpEndpoint, c as configuration } from './configuration-i9MVy0a5.mjs';
6
+ import { n as normalizeHttpEndpoint, c as configuration } from './configuration-D_YrWa_i.mjs';
7
7
 
8
8
  const TeamScopeSchema = z.object({
9
9
  serverUrl: z.string(),
@@ -5,7 +5,7 @@ var node_fs = require('node:fs');
5
5
  var path = require('node:path');
6
6
  var node_crypto = require('node:crypto');
7
7
  var z = require('zod');
8
- var configuration = require('./configuration-Cl9kOv09.cjs');
8
+ var configuration = require('./configuration-CDqmWkHO.cjs');
9
9
 
10
10
  const TeamScopeSchema = z.z.object({
11
11
  serverUrl: z.z.string(),
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-BtWBoP60.cjs');
4
- var persistence = require('./persistence-BOEZtiKb.cjs');
5
- var configuration = require('./configuration-Cl9kOv09.cjs');
3
+ var logger = require('./logger-C8anCmdW.cjs');
4
+ var persistence = require('./persistence-Ch78xygf.cjs');
5
+ var configuration = require('./configuration-CDqmWkHO.cjs');
6
6
 
7
7
  function daemonControlHeaders(controlToken) {
8
8
  return {
@@ -132,6 +132,14 @@ async function restartDaemonSession(sessionId) {
132
132
  if (result?.success === true && typeof result.sessionId === "string") return { success: true, sessionId: result.sessionId };
133
133
  return { success: false, error: "unexpected daemon response" };
134
134
  }
135
+ async function exitDaemonTeamMode(sessionId) {
136
+ const result = await daemonPost("/team-exit-session", { sessionId });
137
+ if (result?.error) {
138
+ const raw = String(result.error);
139
+ return { success: false, error: ROUTE_NOT_FOUND_RE.test(raw) ? "daemon too old to exit team mode; upgrade very-happy-cli and run `very-happy daemon start`" : raw.replace(/^Request failed: \/team-exit-session, /, "") };
140
+ }
141
+ return result?.success === true ? result : { success: false, error: "unexpected daemon response" };
142
+ }
135
143
  async function notifyDaemonSessionEvent(sessionId, event, spawnedBy) {
136
144
  return daemonPost("/session-event", { sessionId, event, spawnedBy });
137
145
  }
@@ -314,6 +322,7 @@ async function checkDaemonHibernation(body) {
314
322
  exports.checkDaemonHibernation = checkDaemonHibernation;
315
323
  exports.checkIfDaemonRunningAndCleanupStaleState = checkIfDaemonRunningAndCleanupStaleState;
316
324
  exports.cleanupDaemonState = cleanupDaemonState;
325
+ exports.exitDaemonTeamMode = exitDaemonTeamMode;
317
326
  exports.getDaemonAgentProfiles = getDaemonAgentProfiles;
318
327
  exports.isDaemonRunningCurrentlyInstalledHappyVersion = isDaemonRunningCurrentlyInstalledHappyVersion;
319
328
  exports.listDaemonPeers = listDaemonPeers;
@@ -1,6 +1,6 @@
1
- import { l as logger } from './logger-BiKmiREe.mjs';
2
- import { d as readDaemonState, f as clearDaemonState } from './persistence-D_zVC4Xz.mjs';
3
- import { c as configuration } from './configuration-i9MVy0a5.mjs';
1
+ import { l as logger } from './logger-BcdURxNR.mjs';
2
+ import { d as readDaemonState, f as clearDaemonState } from './persistence-3iZXGbfb.mjs';
3
+ import { c as configuration } from './configuration-D_YrWa_i.mjs';
4
4
 
5
5
  function daemonControlHeaders(controlToken) {
6
6
  return {
@@ -130,6 +130,14 @@ async function restartDaemonSession(sessionId) {
130
130
  if (result?.success === true && typeof result.sessionId === "string") return { success: true, sessionId: result.sessionId };
131
131
  return { success: false, error: "unexpected daemon response" };
132
132
  }
133
+ async function exitDaemonTeamMode(sessionId) {
134
+ const result = await daemonPost("/team-exit-session", { sessionId });
135
+ if (result?.error) {
136
+ const raw = String(result.error);
137
+ return { success: false, error: ROUTE_NOT_FOUND_RE.test(raw) ? "daemon too old to exit team mode; upgrade very-happy-cli and run `very-happy daemon start`" : raw.replace(/^Request failed: \/team-exit-session, /, "") };
138
+ }
139
+ return result?.success === true ? result : { success: false, error: "unexpected daemon response" };
140
+ }
133
141
  async function notifyDaemonSessionEvent(sessionId, event, spawnedBy) {
134
142
  return daemonPost("/session-event", { sessionId, event, spawnedBy });
135
143
  }
@@ -309,4 +317,4 @@ async function checkDaemonHibernation(body) {
309
317
  };
310
318
  }
311
319
 
312
- export { checkIfDaemonRunningAndCleanupStaleState as a, pushFilePreviewViaDaemon as b, checkDaemonHibernation as c, setTerminalTitleViaDaemon as d, spawnDaemonSession as e, stopDaemonSession as f, getDaemonAgentProfiles as g, listDaemonPeers as h, isDaemonRunningCurrentlyInstalledHappyVersion as i, resumeDaemonSession as j, reportRateLimitsToDaemon as k, listDaemonSessions as l, listDaemonSessionsWithInfo as m, notifyDaemonSessionStarted as n, reportSessionEditToDaemon as o, pushClipboardViaDaemon as p, notifyDaemonTurnEvent as q, restartDaemonSession as r, stopDaemon as s, notifyDaemonBackgroundTasks as t, notifyDaemonSessionEvent as u, notifyDaemonClaudeAuthFailed as v, cleanupDaemonState as w };
320
+ export { checkIfDaemonRunningAndCleanupStaleState as a, pushFilePreviewViaDaemon as b, checkDaemonHibernation as c, setTerminalTitleViaDaemon as d, spawnDaemonSession as e, stopDaemonSession as f, getDaemonAgentProfiles as g, exitDaemonTeamMode as h, isDaemonRunningCurrentlyInstalledHappyVersion as i, listDaemonPeers as j, resumeDaemonSession as k, listDaemonSessions as l, reportRateLimitsToDaemon as m, notifyDaemonSessionStarted as n, listDaemonSessionsWithInfo as o, pushClipboardViaDaemon as p, reportSessionEditToDaemon as q, restartDaemonSession as r, stopDaemon as s, notifyDaemonTurnEvent as t, notifyDaemonBackgroundTasks as u, notifyDaemonSessionEvent as v, notifyDaemonClaudeAuthFailed as w, cleanupDaemonState as x };
@@ -2,9 +2,9 @@
2
2
 
3
3
  var os = require('node:os');
4
4
  var path = require('node:path');
5
- var configuration = require('./configuration-Cl9kOv09.cjs');
5
+ var configuration = require('./configuration-CDqmWkHO.cjs');
6
6
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
7
- var _package = require('./package-Djdgx8nb.cjs');
7
+ var _package = require('./package-DkpXQvp1.cjs');
8
8
  var node_fs = require('node:fs');
9
9
 
10
10
  const realFs = {
@@ -1,8 +1,8 @@
1
1
  import os from 'node:os';
2
2
  import { resolve, isAbsolute, dirname } from 'node:path';
3
- import { c as configuration } from './configuration-i9MVy0a5.mjs';
3
+ import { c as configuration } from './configuration-D_YrWa_i.mjs';
4
4
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
5
- import { p as packageJson } from './package-CIW5lwaN.mjs';
5
+ import { p as packageJson } from './package-Dx3hbh9J.mjs';
6
6
  import { existsSync, readFileSync, statSync } from 'node:fs';
7
7
 
8
8
  const realFs = {
@@ -2,10 +2,10 @@
2
2
 
3
3
  var node_fs = require('node:fs');
4
4
  var pty = require('node-pty');
5
- var store = require('./store-Cpb1LMNW.cjs');
5
+ var store = require('./store-DGMILdMn.cjs');
6
6
  require('node:os');
7
7
  require('node:path');
8
- require('./index-44o_qMvE.cjs');
8
+ require('./index-BYL_X3gP.cjs');
9
9
  require('zod');
10
10
  require('@paralleldrive/cuid2');
11
11
 
@@ -1,10 +1,10 @@
1
1
  import { watchFile, unwatchFile } from 'node:fs';
2
2
  import * as pty from 'node-pty';
3
- import { g as accountsPath, p as providersPath } from './store-DWmjM4Ex.mjs';
4
- export { S as SPAWN_ACCOUNT_ENV } from './store-DWmjM4Ex.mjs';
3
+ import { g as accountsPath, p as providersPath } from './store-Fge1h9wy.mjs';
4
+ export { S as SPAWN_ACCOUNT_ENV } from './store-Fge1h9wy.mjs';
5
5
  import 'node:os';
6
6
  import 'node:path';
7
- import './index-CiRMvS73.mjs';
7
+ import './index-DWk-WTU-.mjs';
8
8
  import 'zod';
9
9
  import '@paralleldrive/cuid2';
10
10
 
@@ -1,4 +1,4 @@
1
- import { u as RUN_INTENT_RPC, v as RunIntentRequestSchema, w as nextRunIntents, x as readEffortIntent, y as readModelIntent } from './index-CiRMvS73.mjs';
1
+ import { u as RUN_INTENT_RPC, v as RunIntentRequestSchema, w as nextRunIntents, x as readEffortIntent, y as readModelIntent } from './index-DWk-WTU-.mjs';
2
2
 
3
3
  function currentRunIntents(metadata) {
4
4
  return {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-44o_qMvE.cjs');
3
+ var index = require('./index-BYL_X3gP.cjs');
4
4
 
5
5
  function currentRunIntents(metadata) {
6
6
  return {
@@ -1,34 +1,35 @@
1
- import { l as logger } from './logger-BiKmiREe.mjs';
1
+ import { l as logger } from './logger-BcdURxNR.mjs';
2
2
  import { p as prependToMessage, b as buildDigestLine, a as buildFirstTurnPrefix } from './prompt-QHuFx9j6.mjs';
3
- import { P as ProjectsUnsupportedError } from './client-DO8DNDC3.mjs';
4
- import { s as sharedIssuesClient, I as IssuesUnsupportedError } from './client-CX8kRedW.mjs';
3
+ import { P as ProjectsUnsupportedError } from './client-BH4s6mzX.mjs';
4
+ import { s as sharedIssuesClient, I as IssuesUnsupportedError } from './client-t1vQ7gho.mjs';
5
5
  import { r as readSessionIssueMetadata } from './sessionMetadata-C1eoAi89.mjs';
6
- import { c as configuration, f as ensurePrivateDirectorySync, w as writePrivateFileSync } from './configuration-i9MVy0a5.mjs';
6
+ import { c as configuration, f as ensurePrivateDirectorySync, w as writePrivateFileSync } from './configuration-D_YrWa_i.mjs';
7
7
  import { join, dirname } from 'node:path';
8
8
  import { readdirSync, statSync, unlinkSync, readFileSync, constants } from 'node:fs';
9
- import { d as createSelfReportState, A as AUTOMATION_TOOL_NAMES, P as PROJECT_TOOL_NAMES, I as ISSUE_TOOL_NAMES, r as registerAutomationTools, a as registerProjectTools, e as createProjectToolExecutor, b as registerIssueTools, f as createIssueToolExecutor, c as registerReportProgressTool, n as normalizeAttention, g as normalizePhase, h as normalizeProgress, s as shouldAcceptSelfReport } from './reportProgressTool-Stg0xrjF.mjs';
9
+ import { c as createTeamExitNotice, a as teamLanguageRule } from './exitNotice-D1tMULzu.mjs';
10
+ import { d as createSelfReportState, A as AUTOMATION_TOOL_NAMES, P as PROJECT_TOOL_NAMES, I as ISSUE_TOOL_NAMES, r as registerAutomationTools, a as registerProjectTools, e as createProjectToolExecutor, b as registerIssueTools, f as createIssueToolExecutor, c as registerReportProgressTool, n as normalizeAttention, g as normalizePhase, h as normalizeProgress, s as shouldAcceptSelfReport } from './reportProgressTool-C3sf9D8m.mjs';
10
11
  import { homedir } from 'node:os';
11
12
  import { z } from 'zod';
12
13
  import { p as piAgentDir } from './pi-CqyoZMjI.mjs';
13
14
  import { unlink, mkdir, open, rename } from 'node:fs/promises';
14
15
  import { randomUUID, createHash } from 'node:crypto';
15
- import { T as TeamConnectionPreflightError, S as SessionInOtherTeamError, c as createTeamsClient, t as teamRequest } from './client-Wr_BiOon.mjs';
16
- import { t as teamScopePath, r as readTeamScope } from './context-DvdZsGgl.mjs';
17
- import { g as waitForSessionKey, e as sendUserMessage } from './sessionOps-C7nps7qG.mjs';
16
+ import { T as TeamConnectionPreflightError, S as SessionInOtherTeamError, c as createTeamsClient, t as teamRequest } from './client-Og5iNZ6S.mjs';
17
+ import { t as teamScopePath, r as readTeamScope } from './context-DXfkj_FL.mjs';
18
+ import { g as waitForSessionKey, e as sendUserMessage } from './sessionOps-DX49XNAT.mjs';
18
19
  import { T as TEAM_SKILL, a as TEAM_LEAD_PLAYBOOK } from './resources-CLP_MpK4.mjs';
19
- import { T as TEAM_TOOL_NAMES, r as registerTeamsTools } from './tools-BAMaBbbP.mjs';
20
- import { S as SESSION_PEER_TOOL_NAMES, r as registerSessionPeerTools, a as createSessionPeerToolExecutor } from './peerTools-CQ60fUPp.mjs';
20
+ import { T as TEAM_TOOL_NAMES, r as registerTeamsTools } from './tools-DmNaOlUF.mjs';
21
+ import { S as SESSION_PEER_TOOL_NAMES, r as registerSessionPeerTools, a as createSessionPeerToolExecutor } from './peerTools-DYFslv6R.mjs';
21
22
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
22
23
  import { createServer } from 'node:http';
23
24
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
24
25
  import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, c as CLIPBOARD_MAX_BYTES } from './limits-DIo7rEBR.mjs';
25
- import { A as ASSISTANT_TOOL_NAMES, a as registerAssistantTools, c as checkDownloadTarget } from './downloadTarget-Cd8hx54t.mjs';
26
+ import { A as ASSISTANT_TOOL_NAMES, a as registerAssistantTools, c as checkDownloadTarget } from './downloadTarget-osakJyyA.mjs';
26
27
  import { P as PREVIEW_TOOL_NAME, R as REPORT_PROGRESS_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, c as PREVIEW_DOWNLOAD_PARAM_DESCRIPTION } from './agentGuidance-BDYt2Qy2.mjs';
27
28
  import { n as normalizeWebPanels, w as webPanelPath } from './webPanels-B2_C2-3g.mjs';
28
- import { b as readCredentialsForConfiguredRelay, r as readSettings } from './persistence-D_zVC4Xz.mjs';
29
- import { g as getSessionNotificationBody } from './pushNotifications-RVpbqrxR.mjs';
29
+ import { b as readCredentialsForConfiguredRelay, r as readSettings } from './persistence-3iZXGbfb.mjs';
30
+ import { g as getSessionNotificationBody } from './pushNotifications-Db1NGJiA.mjs';
30
31
  import { c as checkPreviewPath } from './previewPath-CXN4Vag0.mjs';
31
- import { a6 as ATTENTION_DISABLED_ERROR, a7 as ATTENTION_LIMITS, a8 as ownerBoardPostToRest, a9 as isAttentionBoardLocalId, aa as OwnerBoardPostInputSchema, ab as OwnerBoardUpdateInputSchema, ac as OwnerBoardResolveInputSchema, ad as OwnerBoardListInputSchema, ae as ATTENTION_SESSION_CAPABILITY } from './index-CiRMvS73.mjs';
32
+ import { a7 as ATTENTION_DISABLED_ERROR, a8 as ATTENTION_LIMITS, a9 as ownerBoardPostToRest, aa as isAttentionBoardLocalId, ab as OwnerBoardPostInputSchema, ac as OwnerBoardUpdateInputSchema, ad as OwnerBoardResolveInputSchema, ae as OwnerBoardListInputSchema, af as ATTENTION_SESSION_CAPABILITY } from './index-DWk-WTU-.mjs';
32
33
  import { createHash as createHash$1 } from 'crypto';
33
34
 
34
35
  function buildIssueDigestLine(issue, entries) {
@@ -132,6 +133,7 @@ function createProjectInjector(deps) {
132
133
  let lastPresenceVersion = null;
133
134
  const label = (id) => titles.get(id) ?? id.slice(0, 8);
134
135
  const issueDigest = deps.issueDigest === void 0 ? createIssueDigest({ sessionId: deps.sessionId, metadata: () => deps.metadata?.() ?? null, timeoutMs }) : deps.issueDigest;
136
+ const teamExitNotice = deps.teamExitNotice === void 0 ? createTeamExitNotice({ sessionId: deps.sessionId }) : deps.teamExitNotice;
135
137
  function withTimeout(p) {
136
138
  return Promise.race([p, new Promise((_, reject) => setTimeout(() => reject(new Error("project injection timeout")), timeoutMs).unref?.())]);
137
139
  }
@@ -203,7 +205,10 @@ function createProjectInjector(deps) {
203
205
  },
204
206
  async decorate(message) {
205
207
  if (typeof message !== "string") return message;
206
- const withIssue = async (text) => issueDigest ? issueDigest.decorate(text) : text;
208
+ const withIssue = async (text) => {
209
+ const digested = issueDigest ? await issueDigest.decorate(text) : text;
210
+ return teamExitNotice ? teamExitNotice.decorate(digested) : digested;
211
+ };
207
212
  const sid = deps.sessionId();
208
213
  if (!sid || deps.client.isDisabled()) return await withIssue(message);
209
214
  let out = message;
@@ -362,7 +367,9 @@ function createTeamAdoption(sessionId) {
362
367
 
363
368
  This session is now connected as the team lead. Call team_inspect to read the authoritative state before continuing the user's goal. Do not call team_create or team_join again.
364
369
 
365
- ${TEAM_LEAD_PLAYBOOK}`;
370
+ ${TEAM_LEAD_PLAYBOOK}
371
+
372
+ ${teamLanguageRule(null)}`;
366
373
  if (!intent.guidanceDelivered) {
367
374
  const key = await waitForSessionKey(sessionId, 1e4);
368
375
  await sendUserMessage(sessionId, key, instructions, "teams", { localId: `teams-adopt-${input.requestId}`, sentFrom: "team" });
@@ -1,36 +1,37 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-BtWBoP60.cjs');
3
+ var logger = require('./logger-C8anCmdW.cjs');
4
4
  var prompt = require('./prompt-Bof2aQkI.cjs');
5
- var client$1 = require('./client-Cddb1dhi.cjs');
6
- var client = require('./client-DP8FabOE.cjs');
5
+ var client$1 = require('./client-CqmT_ur8.cjs');
6
+ var client = require('./client-ByK8-iRd.cjs');
7
7
  var sessionMetadata = require('./sessionMetadata-B44cL4Xj.cjs');
8
- var configuration = require('./configuration-Cl9kOv09.cjs');
8
+ var configuration = require('./configuration-CDqmWkHO.cjs');
9
9
  var path = require('node:path');
10
10
  var node_fs = require('node:fs');
11
- var reportProgressTool = require('./reportProgressTool-DDfL1OY7.cjs');
11
+ var exitNotice = require('./exitNotice-BhRrv8dx.cjs');
12
+ var reportProgressTool = require('./reportProgressTool-ByadxJtc.cjs');
12
13
  var os = require('node:os');
13
14
  var z = require('zod');
14
15
  var pi = require('./pi-DlsrPCTa.cjs');
15
16
  var promises = require('node:fs/promises');
16
17
  var node_crypto = require('node:crypto');
17
- var client$2 = require('./client-CMKgB-76.cjs');
18
- var context = require('./context-BxODP3mG.cjs');
19
- var sessionOps = require('./sessionOps-CptDjoZi.cjs');
18
+ var client$2 = require('./client-xA44FUnf.cjs');
19
+ var context = require('./context-k2CbuBtp.cjs');
20
+ var sessionOps = require('./sessionOps-D77IeFSt.cjs');
20
21
  var resources = require('./resources-BZ_Be0qM.cjs');
21
- var tools = require('./tools--RN1SFkD.cjs');
22
- var peerTools = require('./peerTools-fYuKq3ev.cjs');
22
+ var tools = require('./tools-DEErCtZG.cjs');
23
+ var peerTools = require('./peerTools-DpCWFxI6.cjs');
23
24
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
24
25
  var node_http = require('node:http');
25
26
  var streamableHttp_js = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
26
27
  var limits = require('./limits-C-a7gr04.cjs');
27
- var downloadTarget = require('./downloadTarget-osB-mGh0.cjs');
28
+ var downloadTarget = require('./downloadTarget-BTEVg8t6.cjs');
28
29
  var agentGuidance = require('./agentGuidance-BtBx2xxE.cjs');
29
30
  var webPanels = require('./webPanels-FCgFKvVe.cjs');
30
- var persistence = require('./persistence-BOEZtiKb.cjs');
31
- var pushNotifications = require('./pushNotifications-B19lT5mY.cjs');
31
+ var persistence = require('./persistence-Ch78xygf.cjs');
32
+ var pushNotifications = require('./pushNotifications-D2ejrxlN.cjs');
32
33
  var previewPath = require('./previewPath-B0rBdhy1.cjs');
33
- var index = require('./index-44o_qMvE.cjs');
34
+ var index = require('./index-BYL_X3gP.cjs');
34
35
  var require$$3 = require('crypto');
35
36
 
36
37
  function buildIssueDigestLine(issue, entries) {
@@ -134,6 +135,7 @@ function createProjectInjector(deps) {
134
135
  let lastPresenceVersion = null;
135
136
  const label = (id) => titles.get(id) ?? id.slice(0, 8);
136
137
  const issueDigest = deps.issueDigest === void 0 ? createIssueDigest({ sessionId: deps.sessionId, metadata: () => deps.metadata?.() ?? null, timeoutMs }) : deps.issueDigest;
138
+ const teamExitNotice = deps.teamExitNotice === void 0 ? exitNotice.createTeamExitNotice({ sessionId: deps.sessionId }) : deps.teamExitNotice;
137
139
  function withTimeout(p) {
138
140
  return Promise.race([p, new Promise((_, reject) => setTimeout(() => reject(new Error("project injection timeout")), timeoutMs).unref?.())]);
139
141
  }
@@ -205,7 +207,10 @@ function createProjectInjector(deps) {
205
207
  },
206
208
  async decorate(message) {
207
209
  if (typeof message !== "string") return message;
208
- const withIssue = async (text) => issueDigest ? issueDigest.decorate(text) : text;
210
+ const withIssue = async (text) => {
211
+ const digested = issueDigest ? await issueDigest.decorate(text) : text;
212
+ return teamExitNotice ? teamExitNotice.decorate(digested) : digested;
213
+ };
209
214
  const sid = deps.sessionId();
210
215
  if (!sid || deps.client.isDisabled()) return await withIssue(message);
211
216
  let out = message;
@@ -364,7 +369,9 @@ function createTeamAdoption(sessionId) {
364
369
 
365
370
  This session is now connected as the team lead. Call team_inspect to read the authoritative state before continuing the user's goal. Do not call team_create or team_join again.
366
371
 
367
- ${resources.TEAM_LEAD_PLAYBOOK}`;
372
+ ${resources.TEAM_LEAD_PLAYBOOK}
373
+
374
+ ${exitNotice.teamLanguageRule(null)}`;
368
375
  if (!intent.guidanceDelivered) {
369
376
  const key = await sessionOps.waitForSessionKey(sessionId, 1e4);
370
377
  await sessionOps.sendUserMessage(sessionId, key, instructions, "teams", { localId: `teams-adopt-${input.requestId}`, sentFrom: "team" });
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
3
  var chalk = require('chalk');
4
- var configuration = require('./configuration-Cl9kOv09.cjs');
5
- var persistence = require('./persistence-BOEZtiKb.cjs');
6
- var controlClient = require('./controlClient-DxCQKfqe.cjs');
4
+ var configuration = require('./configuration-CDqmWkHO.cjs');
5
+ var persistence = require('./persistence-Ch78xygf.cjs');
6
+ var controlClient = require('./controlClient-BS86Ksm8.cjs');
7
7
  var doctor$1 = require('./doctor-CJpFhHoK.cjs');
8
8
  var node_fs = require('node:fs');
9
9
  var path = require('node:path');
10
10
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
11
- var _package = require('./package-Djdgx8nb.cjs');
11
+ var _package = require('./package-DkpXQvp1.cjs');
12
12
  var doctorReadiness = require('./doctorReadiness-Dl6yRQCy.cjs');
13
13
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
14
14
  var cliUpdate = require('./cliUpdate-DsKXPFYp.cjs');
15
15
  var node_child_process = require('node:child_process');
16
- var piRunnerArgs = require('./piRunnerArgs-Dz9P62db.cjs');
16
+ var piRunnerArgs = require('./piRunnerArgs-CA6jqQ0k.cjs');
17
17
 
18
18
  function shareSafeProcessLine(process2) {
19
19
  return `PID ${process2.pid}: command arguments hidden for privacy`;
@@ -313,8 +313,8 @@ ${typeLabels[type] || type}:`));
313
313
  }
314
314
  console.log(chalk.gray(" An external claude command is only needed for native terminal/mirror use."));
315
315
  try {
316
- const { resolveAgentHomesForCli } = await Promise.resolve().then(function () { return require('./agentHome-BXaVMqHX.cjs'); });
317
- const { describeAgentHome } = await Promise.resolve().then(function () { return require('./index-Cl-WkB_6.cjs'); });
316
+ const { resolveAgentHomesForCli } = await Promise.resolve().then(function () { return require('./agentHome-BZvbPuy1.cjs'); });
317
+ const { describeAgentHome } = await Promise.resolve().then(function () { return require('./index-Bm_9wBaO.cjs'); });
318
318
  const homes = await resolveAgentHomesForCli();
319
319
  console.log(chalk.green(`\u2713 Claude config dir: ${describeAgentHome(homes.claudeConfigDir)}`));
320
320
  console.log(chalk.green(`\u2713 Codex home: ${describeAgentHome(homes.codexHome)}`));
@@ -1,17 +1,17 @@
1
1
  import chalk from 'chalk';
2
- import { c as configuration } from './configuration-i9MVy0a5.mjs';
3
- import { r as readSettings, g as readCredentials, d as readDaemonState } from './persistence-D_zVC4Xz.mjs';
4
- import { a as checkIfDaemonRunningAndCleanupStaleState } from './controlClient-D6vqMUfi.mjs';
2
+ import { c as configuration } from './configuration-D_YrWa_i.mjs';
3
+ import { r as readSettings, g as readCredentials, d as readDaemonState } from './persistence-3iZXGbfb.mjs';
4
+ import { a as checkIfDaemonRunningAndCleanupStaleState } from './controlClient-Daki7wgo.mjs';
5
5
  import { findAllHappyProcesses } from './doctor-GN5mPOn5.mjs';
6
6
  import { statSync, realpathSync, existsSync, readdirSync } from 'node:fs';
7
7
  import { isAbsolute, resolve, dirname, basename, delimiter, join } from 'node:path';
8
8
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
9
- import { p as packageJson } from './package-CIW5lwaN.mjs';
9
+ import { p as packageJson } from './package-Dx3hbh9J.mjs';
10
10
  import { s as shareableSettingsSummary, c as collectRuntimeReadiness, S as SUPPORTED_NODE_LABEL, r as resolveClaudeCredentialReadiness, a as toolProbeLabel, b as daemonReadiness, d as daemonEndpointsMatch } from './doctorReadiness-C208SMN9.mjs';
11
11
  import { c as credentialRelayProblem } from './authRelay-DhQhkBvX.mjs';
12
12
  import { d as deriveLocalCliUpdateSummary } from './cliUpdate-Y34VGe9Y.mjs';
13
13
  import { spawnSync } from 'node:child_process';
14
- import { p as piInstallCommand } from './piRunnerArgs-DE_YXvS1.mjs';
14
+ import { p as piInstallCommand } from './piRunnerArgs-DEuYl6FL.mjs';
15
15
 
16
16
  function shareSafeProcessLine(process2) {
17
17
  return `PID ${process2.pid}: command arguments hidden for privacy`;
@@ -311,8 +311,8 @@ ${typeLabels[type] || type}:`));
311
311
  }
312
312
  console.log(chalk.gray(" An external claude command is only needed for native terminal/mirror use."));
313
313
  try {
314
- const { resolveAgentHomesForCli } = await import('./agentHome-DUxArmak.mjs');
315
- const { describeAgentHome } = await import('./index-DIKJMfs2.mjs');
314
+ const { resolveAgentHomesForCli } = await import('./agentHome-71zGywwx.mjs');
315
+ const { describeAgentHome } = await import('./index-CUeuMsap.mjs');
316
316
  const homes = await resolveAgentHomesForCli();
317
317
  console.log(chalk.green(`\u2713 Claude config dir: ${describeAgentHome(homes.claudeConfigDir)}`));
318
318
  console.log(chalk.green(`\u2713 Codex home: ${describeAgentHome(homes.codexHome)}`));
@@ -3,14 +3,14 @@
3
3
  var promises = require('node:fs/promises');
4
4
  var os = require('node:os');
5
5
  var z = require('zod');
6
- var logger = require('./logger-BtWBoP60.cjs');
7
- var persistence = require('./persistence-BOEZtiKb.cjs');
8
- var controlClient = require('./controlClient-DxCQKfqe.cjs');
9
- var sessionOps = require('./sessionOps-CptDjoZi.cjs');
10
- var remoteSessionClient = require('./remoteSessionClient-CjINaEs_.cjs');
6
+ var logger = require('./logger-C8anCmdW.cjs');
7
+ var persistence = require('./persistence-Ch78xygf.cjs');
8
+ var controlClient = require('./controlClient-BS86Ksm8.cjs');
9
+ var sessionOps = require('./sessionOps-D77IeFSt.cjs');
10
+ var remoteSessionClient = require('./remoteSessionClient-r-UnqHor.cjs');
11
11
  var ids = require('./ids-B6ZC0HGt.cjs');
12
12
  var terminals = require('./terminals-dK3Lrjfp.cjs');
13
- var bootstrap = require('./bootstrap-EGhaCmXy.cjs');
13
+ var bootstrap = require('./bootstrap-D16MMPNP.cjs');
14
14
  var path = require('node:path');
15
15
 
16
16
  const PERSONAL_MEMORY_SOFT_LIMIT_CHARS = 2e3;
@@ -1,14 +1,14 @@
1
1
  import { readFile, writeFile, appendFile, stat } from 'node:fs/promises';
2
2
  import os from 'node:os';
3
3
  import { z } from 'zod';
4
- import { l as logger } from './logger-BiKmiREe.mjs';
5
- import { c as readPersistedSessions } from './persistence-D_zVC4Xz.mjs';
6
- import { e as spawnDaemonSession } from './controlClient-D6vqMUfi.mjs';
7
- import { a as listSessions, r as readSessionTranscript, s as sessionWebUrl, g as waitForSessionKey, e as sendUserMessage, b as stopSession, d as archiveSession } from './sessionOps-C7nps7qG.mjs';
8
- import { r as readRemoteTranscript, s as sendRemoteMessage, d as deliverToSession, R as RemoteSessionOpsError } from './remoteSessionClient-T-Raoiy6.mjs';
4
+ import { l as logger } from './logger-BcdURxNR.mjs';
5
+ import { c as readPersistedSessions } from './persistence-3iZXGbfb.mjs';
6
+ import { e as spawnDaemonSession } from './controlClient-Daki7wgo.mjs';
7
+ import { a as listSessions, r as readSessionTranscript, s as sessionWebUrl, g as waitForSessionKey, e as sendUserMessage, b as stopSession, d as archiveSession } from './sessionOps-DX49XNAT.mjs';
8
+ import { r as readRemoteTranscript, s as sendRemoteMessage, d as deliverToSession, R as RemoteSessionOpsError } from './remoteSessionClient-Ddns3U8M.mjs';
9
9
  import { i as isValidSessionId, a as isValidTerminalId } from './ids-DU6sLx4C.mjs';
10
10
  import { l as listVhTerminals, r as readVhTerminal, s as sendToVhTerminal } from './terminals-Dc38XmZv.mjs';
11
- import { bootstrapAssistantHome, assistantPersonalMemoryPath } from './bootstrap-pGaFGbWO.mjs';
11
+ import { bootstrapAssistantHome, assistantPersonalMemoryPath } from './bootstrap-PnL2FX64.mjs';
12
12
  import { join, isAbsolute, normalize } from 'node:path';
13
13
 
14
14
  const PERSONAL_MEMORY_SOFT_LIMIT_CHARS = 2e3;
@@ -1,8 +1,8 @@
1
- import { l as logger } from './logger-BiKmiREe.mjs';
2
- import { i as isDaemonRunningCurrentlyInstalledHappyVersion, a as checkIfDaemonRunningAndCleanupStaleState, s as stopDaemon } from './controlClient-D6vqMUfi.mjs';
3
- import { s as spawnHappyCLI } from './spawnHappyCLI-jXUKLUT5.mjs';
4
- import { d as readDaemonState } from './persistence-D_zVC4Xz.mjs';
5
- import { c as configuration } from './configuration-i9MVy0a5.mjs';
1
+ import { l as logger } from './logger-BcdURxNR.mjs';
2
+ import { i as isDaemonRunningCurrentlyInstalledHappyVersion, a as checkIfDaemonRunningAndCleanupStaleState, s as stopDaemon } from './controlClient-Daki7wgo.mjs';
3
+ import { s as spawnHappyCLI } from './spawnHappyCLI-CpOMz9hX.mjs';
4
+ import { d as readDaemonState } from './persistence-3iZXGbfb.mjs';
5
+ import { c as configuration } from './configuration-D_YrWa_i.mjs';
6
6
  import { d as daemonEndpointsMatch } from './doctorReadiness-C208SMN9.mjs';
7
7
 
8
8
  function extractNoSandboxFlag(args) {
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-BtWBoP60.cjs');
4
- var controlClient = require('./controlClient-DxCQKfqe.cjs');
5
- var spawnHappyCLI = require('./spawnHappyCLI-D7EO8s4E.cjs');
6
- var persistence = require('./persistence-BOEZtiKb.cjs');
7
- var configuration = require('./configuration-Cl9kOv09.cjs');
3
+ var logger = require('./logger-C8anCmdW.cjs');
4
+ var controlClient = require('./controlClient-BS86Ksm8.cjs');
5
+ var spawnHappyCLI = require('./spawnHappyCLI-DvxZ7elP.cjs');
6
+ var persistence = require('./persistence-Ch78xygf.cjs');
7
+ var configuration = require('./configuration-CDqmWkHO.cjs');
8
8
  var doctorReadiness = require('./doctorReadiness-Dl6yRQCy.cjs');
9
9
 
10
10
  function extractNoSandboxFlag(args) {
@@ -0,0 +1,88 @@
1
+ 'use strict';
2
+
3
+ var node_fs = require('node:fs');
4
+ var path = require('node:path');
5
+ var configuration = require('./configuration-CDqmWkHO.cjs');
6
+ var logger = require('./logger-C8anCmdW.cjs');
7
+ var prompt = require('./prompt-Bof2aQkI.cjs');
8
+
9
+ const PATH = /[\w.\-~@:…]*[\/\\][\w.\-~@:…\/\\]*/g;
10
+ const IDENTIFIER = /\b[\w$]*(?:[a-z][A-Z]|_|\.[A-Za-z]|\d[A-Za-z]|[A-Za-z]\d)[\w$.]*\b/g;
11
+ function detectTeamUserLanguage(text) {
12
+ if (!text) return null;
13
+ const stripped = text.replace(/```[\s\S]*?```/g, " ").replace(/`[^`]*`/g, " ").replace(/https?:\/\/\S+/g, " ").replace(PATH, " ").replace(IDENTIFIER, " ");
14
+ const kana = (stripped.match(/[぀-ヿ]/g) ?? []).length;
15
+ const hangul = (stripped.match(/[가-힯]/g) ?? []).length;
16
+ const han = (stripped.match(/[一-鿿]/g) ?? []).length;
17
+ const latin = (stripped.match(/[A-Za-z]/g) ?? []).length;
18
+ const words = latin / 5;
19
+ if (hangul >= 4 && hangul >= words) return { name: "Korean (\uD55C\uAD6D\uC5B4)", code: "ko" };
20
+ if (kana >= 1 && kana + han >= 4 && kana + han >= words) return { name: "Japanese (\u65E5\u672C\u8A9E)", code: "ja" };
21
+ if (han >= 4 && han >= words) return { name: "Chinese (\u4E2D\u6587)", code: "zh" };
22
+ return null;
23
+ }
24
+ function teamLanguageRule(language) {
25
+ const target = language ? language.name : "the language the user wrote the goal in";
26
+ return `## Language
27
+ The user works in ${target}. Write everything people read in ${language ? language.name : "that language"}: replies, notes between tool calls, task goals, messages, submissions and reports. Think in it too. The team instructions, tool texts and message envelopes are English only for maintenance; never switch language because of them. Code, commands, identifiers and quoted text stay as they are.`;
28
+ }
29
+ function teamLanguageReminder(language) {
30
+ return language ? `Reply in ${language.name}, the user's language.` : "Reply in the user's language, not this envelope's.";
31
+ }
32
+ function teamOwnerText(tasks) {
33
+ return tasks?.find((task) => task.ownerBotId === null)?.goal ?? null;
34
+ }
35
+
36
+ const SESSION_ID = /^[a-zA-Z0-9_-]{1,128}$/;
37
+ function teamExitMarkerPath(home, sessionId) {
38
+ if (!SESSION_ID.test(sessionId)) throw new Error("Invalid session id");
39
+ return path.join(home, "teams", "exited", `${sessionId}.json`);
40
+ }
41
+ function readTeamExitMarker(home, sessionId) {
42
+ if (!sessionId || !SESSION_ID.test(sessionId)) return null;
43
+ try {
44
+ const marker = JSON.parse(node_fs.readFileSync(teamExitMarkerPath(home, sessionId), "utf8"));
45
+ return typeof marker?.teamId === "string" ? marker : null;
46
+ } catch {
47
+ return null;
48
+ }
49
+ }
50
+ const teamLabel = (marker) => `"${(marker.teamName || marker.teamId).replace(/[\u0000-\u001f\u007f"]/g, " ").slice(0, 128)}"`;
51
+ function teamExitedMessage(marker) {
52
+ return `Team ${teamLabel(marker)} is archived and this session has left team mode; it is an ordinary session now. This is final, not a temporary failure or a missing permission: do not retry team tools, inspect or delegate to that team, or ask the user to restore team access. Do what the user asks yourself, in this session. Start a new team (team_create) only if the user explicitly asks for one. ${teamLanguageReminder(marker.language ?? null)}`;
53
+ }
54
+ function teamExitNoticeText(marker, language) {
55
+ const how = marker.reason === "archived" ? "was archived while this session was stopped" : "was archived when the user exited team mode";
56
+ return `[Very Happy: team mode ended] Team ${teamLabel(marker)} ${how}. This session is now an ordinary session: its members were stopped and their unfinished tasks cancelled, and team tools no longer work here. Do not delegate to or inspect the team, and do not wait for or ask the user to restore team access. If the user asks about the team or to continue its work, say plainly that team mode has ended and carry on with the work yourself (or ask whether they want you to). ${teamLanguageReminder(language)}`;
57
+ }
58
+ function noticeLanguage(message, marker) {
59
+ const detected = detectTeamUserLanguage(message);
60
+ if (detected) return detected;
61
+ return (message.match(/[A-Za-z]/g) ?? []).length >= 20 ? null : marker.language ?? null;
62
+ }
63
+ function createTeamExitNotice(deps) {
64
+ const home = deps.home ?? configuration.configuration.happyHomeDir;
65
+ return {
66
+ decorate(message) {
67
+ const sid = deps.sessionId();
68
+ const marker = readTeamExitMarker(home, sid);
69
+ if (!marker || marker.noticeAt !== void 0) return message;
70
+ try {
71
+ configuration.writePrivateFileSync(teamExitMarkerPath(home, sid), JSON.stringify({ ...marker, noticeAt: Date.now() }));
72
+ } catch (error) {
73
+ logger.logger.debug(`[teams] exit notice not recorded, skipping it: ${String(error)}`);
74
+ return message;
75
+ }
76
+ return prompt.prependToMessage(message, teamExitNoticeText(marker, noticeLanguage(message, marker)));
77
+ }
78
+ };
79
+ }
80
+
81
+ exports.createTeamExitNotice = createTeamExitNotice;
82
+ exports.detectTeamUserLanguage = detectTeamUserLanguage;
83
+ exports.readTeamExitMarker = readTeamExitMarker;
84
+ exports.teamExitMarkerPath = teamExitMarkerPath;
85
+ exports.teamExitedMessage = teamExitedMessage;
86
+ exports.teamLanguageReminder = teamLanguageReminder;
87
+ exports.teamLanguageRule = teamLanguageRule;
88
+ exports.teamOwnerText = teamOwnerText;