very-happy-cli 0.2.180 → 0.2.182

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 (202) hide show
  1. package/dist/{AcpBackend-B8Zi30Zh.mjs → AcpBackend-DLk3gMYH.mjs} +3 -3
  2. package/dist/{AcpBackend-DfRDtMcG.cjs → AcpBackend-JA5eu8Y0.cjs} +3 -3
  3. package/dist/{AcpSessionManager-CASKOnOj.cjs → AcpSessionManager-DjYidq4C.cjs} +1 -1
  4. package/dist/{AcpSessionManager-i8Rab0xT.mjs → AcpSessionManager-OrCww-Qv.mjs} +1 -1
  5. package/dist/{BasePermissionHandler-BlM_tfej.cjs → BasePermissionHandler-D3PMKLBS.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-26fKbRCm.mjs → BasePermissionHandler-u-neo-iN.mjs} +1 -1
  7. package/dist/{acpSessionResume-CR5pmgVo.cjs → acpSessionResume-Dxo8222T.cjs} +1 -1
  8. package/dist/{acpSessionResume-B9l54P-X.mjs → acpSessionResume-u2TwX5Jd.mjs} +1 -1
  9. package/dist/{agentHome-C7Sb7-Tz.cjs → agentHome-CP1tCBXz.cjs} +4 -4
  10. package/dist/{agentHome-CmGy0NWv.mjs → agentHome-D3hNrnoA.mjs} +4 -4
  11. package/dist/{api-DM7b1OKj.cjs → api-CZWcG7uh.cjs} +10 -10
  12. package/dist/{api-Hov8p7CA.mjs → api-C_YSQnsi.mjs} +10 -10
  13. package/dist/{apiMachine-CwGEhQDT.mjs → apiMachine-C_GA5Bm-.mjs} +59 -32
  14. package/dist/{apiMachine-DkGRj-Ai.cjs → apiMachine-DPGrED5C.cjs} +60 -33
  15. package/dist/{attachmentContent-CIn4iPEk.mjs → attachmentContent-Ckzyb1Uy.mjs} +2 -2
  16. package/dist/{attachmentContent-CEm13_gF.cjs → attachmentContent-I_dJIevE.cjs} +2 -2
  17. package/dist/{auth-Dawj7pP5.cjs → auth-BKnE7uv7.cjs} +8 -8
  18. package/dist/{auth-BG1DY0gj.mjs → auth-CGgpiJ5-.mjs} +5 -5
  19. package/dist/{auth-rggxMpEE.mjs → auth-DOXMI-xp.mjs} +8 -8
  20. package/dist/{auth-CBXnm-Mj.cjs → auth-Lw_utSMV.cjs} +5 -5
  21. package/dist/{auto-CbYOfoPS.cjs → auto-CIgFHIyQ.cjs} +18 -18
  22. package/dist/{auto-CXXLXGeL.mjs → auto-Z56mMZnH.mjs} +18 -18
  23. package/dist/{bootstrap-Dt5I1SOl.mjs → bootstrap-D3vlOROj.mjs} +2 -2
  24. package/dist/{bootstrap-DoA7okld.cjs → bootstrap-DsXp74wv.cjs} +2 -2
  25. package/dist/{browser-DUNetFT4.mjs → browser-CUxGoATV.mjs} +1 -1
  26. package/dist/{browser-DZ6qRtfH.cjs → browser-CZlA9AkO.cjs} +1 -1
  27. package/dist/{claudeLocal-OHWQigCl.mjs → claudeLocal-FnTUgwCi.mjs} +6 -6
  28. package/dist/{claudeLocal--DNyMOSv.cjs → claudeLocal-oELvwiZL.cjs} +6 -6
  29. package/dist/{claudeLocalLauncher-BStvfa7M.mjs → claudeLocalLauncher-CO5YHCzi.mjs} +11 -11
  30. package/dist/{claudeLocalLauncher-BhvPbcyH.cjs → claudeLocalLauncher-QsVXEVdE.cjs} +11 -11
  31. package/dist/{claudeSessionFork-Be16vzGc.cjs → claudeSessionFork-BA4GE5AL.cjs} +1 -1
  32. package/dist/{claudeSessionFork-GAVWhiKG.mjs → claudeSessionFork-Cspr6QW0.mjs} +1 -1
  33. package/dist/{client-D4uPb1uu.mjs → client-BGfmSbWc.mjs} +44 -9
  34. package/dist/{client-BWjaHKtj.cjs → client-CDuW4MS9.cjs} +2 -2
  35. package/dist/{client-CnB7kRCT.mjs → client-Ctbw05Xj.mjs} +2 -2
  36. package/dist/{client-DJplzPjD.cjs → client-DK8CzUry.cjs} +2 -2
  37. package/dist/{client-Ca5Pcgy_.mjs → client-o-meK7-a.mjs} +2 -2
  38. package/dist/{client-D_loZ9IK.cjs → client-xnWiHqdb.cjs} +44 -8
  39. package/dist/codex/happyMcpStdioBridge.cjs +21 -20
  40. package/dist/codex/happyMcpStdioBridge.mjs +21 -20
  41. package/dist/{codexAppServerClient-CO4G6OS4.mjs → codexAppServerClient-BlsOZLul.mjs} +3 -3
  42. package/dist/{codexAppServerClient-PE-12AsW.cjs → codexAppServerClient-DhNDTU_i.cjs} +3 -3
  43. package/dist/{codexCommand-B_xUH79E.mjs → codexCommand-BGx5NMQR.mjs} +49 -46
  44. package/dist/{codexCommand-BNoD1t1C.cjs → codexCommand-DJDPfpIs.cjs} +49 -46
  45. package/dist/{codexTermination-Dx48ma6e.mjs → codexTermination-CVhhwHZU.mjs} +1 -1
  46. package/dist/{codexTermination-BmBbizFK.cjs → codexTermination-CqPMuokw.cjs} +1 -1
  47. package/dist/{config-CtwEUxUP.cjs → config-CHpxzXBL.cjs} +3 -3
  48. package/dist/{config-DSu0Blos.mjs → config-CWAe08-Q.mjs} +3 -3
  49. package/dist/{configuration-CYO-kPOS.cjs → configuration-B-CugKJ3.cjs} +1 -1
  50. package/dist/{configuration-PxzEJumr.mjs → configuration-YXw_Dcsb.mjs} +1 -1
  51. package/dist/{connect-Dq7wndzR.cjs → connect-BmHvMXH2.cjs} +13 -13
  52. package/dist/{connect-BQrg3TB6.mjs → connect-CPeJXHha.mjs} +13 -13
  53. package/dist/{context-6TP-iz_c.cjs → context-BtIVqHI5.cjs} +1 -1
  54. package/dist/{context-CJGRRGWW.mjs → context-Drzs_Z38.mjs} +1 -1
  55. package/dist/{controlClient-DoeYovwP.mjs → controlClient-BL4hb4l3.mjs} +3 -3
  56. package/dist/{controlClient-Bqv5v5OM.cjs → controlClient-D0kGwKYx.cjs} +3 -3
  57. package/dist/{createSessionMetadata-DDIChCx8.mjs → createSessionMetadata-DvGDsnsn.mjs} +2 -2
  58. package/dist/{createSessionMetadata-xz767pcG.cjs → createSessionMetadata-L499emJn.cjs} +2 -2
  59. package/dist/{defaultPermissionMode-i5KzdK09.mjs → defaultPermissionMode-BLfxu-Yz.mjs} +2 -2
  60. package/dist/{defaultPermissionMode-PkZGsQDk.cjs → defaultPermissionMode-MXpZlXud.cjs} +2 -2
  61. package/dist/{deterministicJson-CTEJDqtS.mjs → deterministicJson-B_UAbmQ4.mjs} +87 -24
  62. package/dist/{deterministicJson-xqA6DaOm.cjs → deterministicJson-CfLkBRvU.cjs} +87 -22
  63. package/dist/{doctor-BrgSlfXn.cjs → doctor-DMvlzmnE.cjs} +8 -7
  64. package/dist/{doctor-IctjVh9T.mjs → doctor-bKScPtZu.mjs} +8 -8
  65. package/dist/{downloadTarget-CEb9che-.cjs → downloadTarget-D33BFvew.cjs} +6 -6
  66. package/dist/{downloadTarget-jbOz1egC.mjs → downloadTarget-J9j37eFG.mjs} +6 -6
  67. package/dist/{ensureDaemonRunning-D-HyjGIX.cjs → ensureDaemonRunning-2IqWROJp.cjs} +5 -5
  68. package/dist/{ensureDaemonRunning-b1e8LCSM.mjs → ensureDaemonRunning-DLvwhpNg.mjs} +5 -5
  69. package/dist/fileStore-5qpetZS0.mjs +146 -0
  70. package/dist/fileStore-7qhnbs6N.cjs +152 -0
  71. package/dist/fsMkdir-0K3yENml.cjs +56 -0
  72. package/dist/fsMkdir-DumgLTzR.mjs +53 -0
  73. package/dist/{handleResumeCommand-DpaZvm2c.mjs → handleResumeCommand-CjtjQ_I7.mjs} +5 -5
  74. package/dist/{handleResumeCommand-BvWVuRwH.cjs → handleResumeCommand-Dp2Y-p6V.cjs} +5 -5
  75. package/dist/{index-C6Vn5Eac.mjs → index-BI0h2Zks.mjs} +54 -6
  76. package/dist/{index-CMf5VbzG.mjs → index-BOT0Tg5E.mjs} +4 -4
  77. package/dist/{index-C64Ufj4D.cjs → index-B_aNaW9w.cjs} +4 -4
  78. package/dist/{index-F2UejqYs.cjs → index-CZC7egJA.cjs} +3 -3
  79. package/dist/{index-Bsvbgh9e.mjs → index-Cllzqoes.mjs} +4 -4
  80. package/dist/{index-B2p2Mut7.cjs → index-DYVIbhAJ.cjs} +78 -60
  81. package/dist/{index-wCbtF4BK.mjs → index-D_LvOWUN.mjs} +3 -3
  82. package/dist/{index-DmTlDRSL.cjs → index-DymOv3kK.cjs} +4 -4
  83. package/dist/{index-BUNnpGFF.mjs → index-kA46KMxN.mjs} +79 -61
  84. package/dist/{index-Dv0Q48P3.cjs → index-oh8XEozJ.cjs} +57 -6
  85. package/dist/index.cjs +2 -2
  86. package/dist/index.mjs +2 -2
  87. package/dist/{install-C0ANcEAW.cjs → install-BAa_Xmof.cjs} +3 -3
  88. package/dist/{install-CdzSV7qO.mjs → install-C46mkr9a.mjs} +3 -3
  89. package/dist/{install-BX3lv3NO.mjs → install-D0inLCv-.mjs} +1 -1
  90. package/dist/{install-BXvf2E3o.cjs → install-D2NCbeJ-.cjs} +1 -1
  91. package/dist/lib.cjs +12 -12
  92. package/dist/lib.d.cts +40 -1
  93. package/dist/lib.d.mts +40 -1
  94. package/dist/lib.mjs +12 -12
  95. package/dist/{lidState-bBrmaQd2.mjs → lidState-D8Iuvjgl.mjs} +1 -1
  96. package/dist/{lidState-DWGnm2H4.cjs → lidState-DcPvwniz.cjs} +1 -1
  97. package/dist/{localHappyAgentAuth-Dn1jYDpt.mjs → localHappyAgentAuth-D3rQDRd9.mjs} +1 -1
  98. package/dist/{localHappyAgentAuth-DZHQnIW9.cjs → localHappyAgentAuth-SD6GM97y.cjs} +1 -1
  99. package/dist/{logger-CphW5nUE.cjs → logger-DK1ytCz6.cjs} +2 -2
  100. package/dist/{logger-BUngm5Xg.mjs → logger-DpqihN1f.mjs} +2 -2
  101. package/dist/{machineMetadata-BXN_bKU3.mjs → machineMetadata-D4E3qoIG.mjs} +13 -4
  102. package/dist/{machineMetadata-BQm9YTcI.cjs → machineMetadata-IJc6_iyx.cjs} +13 -3
  103. package/dist/{main-DGkdYfEq.mjs → main-CpUmw7hm.mjs} +45 -45
  104. package/dist/{main-B2UV51nK.cjs → main-DUXh2rgW.cjs} +45 -45
  105. package/dist/{mcp-CbTtbs0f.mjs → mcp-66g1TJ8P.mjs} +17 -15
  106. package/dist/{mcp-BFvAEIRz.cjs → mcp-D5f3Vd-z.cjs} +17 -15
  107. package/dist/{mirrorProtocol-HKPivs5o.cjs → mirrorProtocol-DkWOcZh9.cjs} +16 -153
  108. package/dist/{mirrorProtocol-BR4luBC0.mjs → mirrorProtocol-bsCUcaCY.mjs} +19 -151
  109. package/dist/{package-KhLqBDX9.cjs → package-BfeqAzyJ.cjs} +8 -8
  110. package/dist/{package-7Ld1YMhh.mjs → package-CKj8zndE.mjs} +8 -8
  111. package/dist/{panels-Njf6GelF.cjs → panels-2PXsw9-d.cjs} +5 -5
  112. package/dist/{panels-C7IVqpJk.mjs → panels-r8LmaBs6.mjs} +5 -5
  113. package/dist/{peerTools-DQNlrcqM.cjs → peerTools-BVp1z0T_.cjs} +5 -5
  114. package/dist/{peerTools-BOlDRyhi.mjs → peerTools-D_id4d41.mjs} +5 -5
  115. package/dist/{persistence-9BMYspxG.cjs → persistence-BdpwWXKh.cjs} +2 -2
  116. package/dist/{persistence-BFUOHW5h.mjs → persistence-jOEuAFTS.mjs} +2 -2
  117. package/dist/pi-CqyoZMjI.mjs +380 -0
  118. package/dist/pi-DlsrPCTa.cjs +400 -0
  119. package/dist/{piRunnerArgs-H2pgpA5z.mjs → piRunnerArgs-68I5F_M1.mjs} +1 -1
  120. package/dist/{piRunnerArgs-DGaq6VYM.cjs → piRunnerArgs-vxCHKnSA.cjs} +1 -1
  121. package/dist/{piRuntime-CT5xv_3h.cjs → piRuntime-C3Dg5uni.cjs} +2 -2
  122. package/dist/{piRuntime-CdN0JAsa.mjs → piRuntime-DgLIard1.mjs} +2 -2
  123. package/dist/{piTerminal-0FBtXTHK.cjs → piTerminal-C135BcLP.cjs} +20 -18
  124. package/dist/{piTerminal-C4m9YXAV.mjs → piTerminal-DJL0w-uA.mjs} +20 -18
  125. package/dist/{prompt-lgF9IE82.cjs → prompt-Bof2aQkI.cjs} +7 -2
  126. package/dist/{prompt-BOouDaTM.mjs → prompt-QHuFx9j6.mjs} +7 -2
  127. package/dist/{pushNotifications-DCiBEVeC.mjs → pushNotifications-CMmRsbKv.mjs} +12 -4
  128. package/dist/{pushNotifications-DI92havG.cjs → pushNotifications-CyQVDThC.cjs} +12 -4
  129. package/dist/{query-BETKBrnz.cjs → query-CK--1fbL.cjs} +1 -1
  130. package/dist/{query-ywZbQUzR.mjs → query-CPXnDURZ.mjs} +1 -1
  131. package/dist/{rateLimitWindows-BkfuUB1a.mjs → rateLimitWindows-Cqa4AGaB.mjs} +1 -1
  132. package/dist/{rateLimitWindows-YRIYVdo4.cjs → rateLimitWindows-DJxnNw-X.cjs} +1 -1
  133. package/dist/{registerCommonHandlers-C7a_dUWs.cjs → registerCommonHandlers-DbNoM39q.cjs} +2 -2
  134. package/dist/{registerCommonHandlers-CTkCvjxt.mjs → registerCommonHandlers-K8dICQO2.mjs} +2 -2
  135. package/dist/{registerKillSessionHandler-CIsvBrVe.cjs → registerKillSessionHandler-DiS_go8d.cjs} +6 -6
  136. package/dist/{registerKillSessionHandler-CaqqRYq6.mjs → registerKillSessionHandler-O1iriOMO.mjs} +6 -6
  137. package/dist/{remoteSessionClient-PP-mOKmw.mjs → remoteSessionClient-BlURPulk.mjs} +5 -5
  138. package/dist/{remoteSessionClient-D843fkzL.cjs → remoteSessionClient-CtV9mDko.cjs} +5 -5
  139. package/dist/{reportProgressTool-14AXr959.cjs → reportProgressTool-DlD_xjzU.cjs} +4 -4
  140. package/dist/{reportProgressTool-ZOCNjWHr.mjs → reportProgressTool-nCExrHZH.mjs} +4 -4
  141. package/dist/{resources-CvIlkzpP.cjs → resources-BPyN59Iv.cjs} +23 -2
  142. package/dist/{resources-y9jfyO-_.mjs → resources-CH1iP6Cv.mjs} +22 -3
  143. package/dist/{run-CAOCYYfT.cjs → run-BBNrcCfI.cjs} +621 -594
  144. package/dist/{run-Dajw2E5j.mjs → run-drtwHYkO.mjs} +557 -530
  145. package/dist/{runClaude-CRRKt-tm.cjs → runClaude-B3KSeby4.cjs} +23 -22
  146. package/dist/{runClaude-C6oxWYbp.mjs → runClaude-CFp27Tyi.mjs} +23 -22
  147. package/dist/{runClaudeDeps-B1ysqTvx.cjs → runClaudeDeps-C_C9TCI0.cjs} +43 -41
  148. package/dist/{runClaudeDeps-BcZ68cX3.mjs → runClaudeDeps-DMcv93lA.mjs} +48 -46
  149. package/dist/{runGemini-D7yKc4wD.mjs → runGemini-Bc6SY-hd.mjs} +40 -37
  150. package/dist/{runGemini-DtKFXqf-.cjs → runGemini-DzdSBAr9.cjs} +40 -37
  151. package/dist/{runOpenClaw-C8ilyLP9.mjs → runOpenClaw-DI0qMlgF.mjs} +19 -18
  152. package/dist/{runOpenClaw-Cq29mryb.cjs → runOpenClaw-DN6rEVqC.cjs} +19 -18
  153. package/dist/{sandbox-gIj-EuF4.cjs → sandbox-DtttPBMA.cjs} +4 -4
  154. package/dist/{sandbox-CbCutma4.mjs → sandbox-v-ffe8LR.mjs} +4 -4
  155. package/dist/{selfCheck-BTGBVthv.cjs → selfCheck-B-yy6bW3.cjs} +36 -36
  156. package/dist/selfCheck-BDfTwxqB.mjs +85 -0
  157. package/dist/{send-YZRMQvMJ.mjs → send-DpBwSZuj.mjs} +8 -8
  158. package/dist/{send-CZf5lLw_.cjs → send-ShzXYPRu.cjs} +8 -8
  159. package/dist/{server-CknFq6xG.cjs → server-CEzKrfKj.cjs} +6 -6
  160. package/dist/{server-BqwXRzFZ.mjs → server-DScgJXxa.mjs} +4 -4
  161. package/dist/{sessionLock-nBXdJxJm.mjs → sessionLock-B6K4SBZD.mjs} +3 -3
  162. package/dist/{sessionLock-DRZUcKHT.cjs → sessionLock-Dc0fadGG.cjs} +3 -3
  163. package/dist/{sessionOps-C58iDeD5.mjs → sessionOps-D0BPWPoh.mjs} +4 -4
  164. package/dist/{sessionOps-BrGiU9-s.cjs → sessionOps-Dx7wARjI.cjs} +4 -4
  165. package/dist/{sessionScanner-Bm57LEXe.mjs → sessionScanner-9Fpgaxtf.mjs} +3 -3
  166. package/dist/{sessionScanner-CaO8bLaG.cjs → sessionScanner-BJ35TVG6.cjs} +3 -3
  167. package/dist/{sessions-BXyBHo8n.mjs → sessions-CFtDlyZd.mjs} +10 -10
  168. package/dist/{sessions-uzqPCc37.cjs → sessions-TZGGAry1.cjs} +10 -10
  169. package/dist/{setupOfflineReconnection-DvvVX3TB.cjs → setupOfflineReconnection-B1GsVA8P.cjs} +2 -2
  170. package/dist/{setupOfflineReconnection-1Qlek3wl.mjs → setupOfflineReconnection-Biaus-0T.mjs} +2 -2
  171. package/dist/{spawn-DBkodJEO.cjs → spawn-BRTuypQ2.cjs} +14 -14
  172. package/dist/{spawn-vn93PhYL.mjs → spawn-CsoQ-Ecz.mjs} +14 -14
  173. package/dist/{spawnAgents-DLNMlhWJ.cjs → spawnAgents-CG211IW7.cjs} +1 -1
  174. package/dist/{spawnAgents-CgPMWexP.mjs → spawnAgents-Co-SLcx-.mjs} +1 -1
  175. package/dist/{spawnHappyCLI-BjFZc_7V.mjs → spawnHappyCLI-D1doCjkZ.mjs} +1 -1
  176. package/dist/{spawnHappyCLI-DnUZv0X2.cjs → spawnHappyCLI-D47kX6jg.cjs} +1 -1
  177. package/dist/{specialCommands-BRufxlqe.cjs → specialCommands-Ch-Gvy-i.cjs} +3 -3
  178. package/dist/{specialCommands-D3ND9bdg.mjs → specialCommands-xSmqT_Fu.mjs} +3 -3
  179. package/dist/{startFileWatcher-DXJ7yB5v.mjs → startFileWatcher-CCl2fFxT.mjs} +1 -1
  180. package/dist/{startFileWatcher-D9cYzZOq.cjs → startFileWatcher-gKQTstR6.cjs} +1 -1
  181. package/dist/{startupSessionCreate-kdr3m1uX.cjs → startupSessionCreate-BXqoUX30.cjs} +1 -1
  182. package/dist/{startupSessionCreate-uZ6BM0ty.mjs → startupSessionCreate-DlZc8yPl.mjs} +1 -1
  183. package/dist/{streamRelay-Dy6amlzx.cjs → streamRelay-B-J-4St1.cjs} +1 -1
  184. package/dist/{streamRelay-DnMCMMfV.mjs → streamRelay-DnJXsi36.mjs} +1 -1
  185. package/dist/{sync-BvVhDO40.mjs → sync-BbjMC3sR.mjs} +1 -1
  186. package/dist/{sync-Bn-idAoy.cjs → sync-BxMdnZzz.cjs} +1 -1
  187. package/dist/{systemPrompt-DlyEk35T.cjs → systemPrompt-C2KojRmK.cjs} +3 -3
  188. package/dist/{systemPrompt-CIZcJuJF.mjs → systemPrompt-CmSDAoIx.mjs} +3 -3
  189. package/dist/{teams-BLeRpDxv.cjs → teams-DESdalox.cjs} +13 -10
  190. package/dist/{teams-DLY3B5yi.mjs → teams-lRy1MS0Z.mjs} +13 -10
  191. package/dist/{time-D3ETL7Jb.mjs → time-Cfknl7xG.mjs} +1 -1
  192. package/dist/{time-Cjv0zxQO.cjs → time-DNLeIRgR.cjs} +1 -1
  193. package/dist/{titleGenerator-Uzbd4utr.mjs → titleGenerator-ClnMSzwC.mjs} +1 -1
  194. package/dist/{titleGenerator-Cgp5ihFb.cjs → titleGenerator-YNutaU88.cjs} +2 -2
  195. package/dist/{todo-pOMcEECE.cjs → todo-DS75Mboz.cjs} +6 -6
  196. package/dist/{todo-C9Ga-oEM.mjs → todo-DZbK5POc.mjs} +6 -6
  197. package/dist/{tools-Cho7iIWf.mjs → tools-BgdU0dWp.mjs} +3 -3
  198. package/dist/{tools-BL7Byl_x.cjs → tools-ClYcb1YQ.cjs} +3 -3
  199. package/dist/{uninstall-CbayEVoV.cjs → uninstall-Di1vPBLV.cjs} +3 -3
  200. package/dist/{uninstall-CvZHVY9C.mjs → uninstall-bXenFevR.mjs} +3 -3
  201. package/package.json +8 -8
  202. package/dist/selfCheck-Smt-5Xiq.mjs +0 -85
@@ -1,90 +1,93 @@
1
- import { D as DefaultTransport, A as AcpBackend, i as isAgentExitError, a as acpNoticeMessage } from './AcpBackend-B8Zi30Zh.mjs';
2
- export { b as DEFAULT_IDLE_TIMEOUT_MS, c as DEFAULT_TOOL_CALL_TIMEOUT_MS, e as extractErrorDetail, f as formatDuration, d as formatDurationMinutes, h as handleAgentMessageChunk, g as handleAgentThoughtChunk, j as handleLegacyMessageChunk, k as handlePlanUpdate, l as handleThinkingUpdate, m as handleToolCall, n as handleToolCallUpdate, p as parseArgsFromContent } from './AcpBackend-B8Zi30Zh.mjs';
3
- import { l as logger } from './logger-BUngm5Xg.mjs';
4
- import { A as AcpSessionManager } from './AcpSessionManager-i8Rab0xT.mjs';
5
- import { q as PI_STEER_CAPABILITY, f as BUILTIN_TODO_DISCOVERY, P as PROMPT_QUEUE_CAPABILITY, a as PROJECT_SESSION_CAPABILITY } from './index-C6Vn5Eac.mjs';
1
+ import { D as DefaultTransport, A as AcpBackend, i as isAgentExitError, a as acpNoticeMessage } from './AcpBackend-DLk3gMYH.mjs';
2
+ export { b as DEFAULT_IDLE_TIMEOUT_MS, c as DEFAULT_TOOL_CALL_TIMEOUT_MS, e as extractErrorDetail, f as formatDuration, d as formatDurationMinutes, h as handleAgentMessageChunk, g as handleAgentThoughtChunk, j as handleLegacyMessageChunk, k as handlePlanUpdate, l as handleThinkingUpdate, m as handleToolCall, n as handleToolCallUpdate, p as parseArgsFromContent } from './AcpBackend-DLk3gMYH.mjs';
3
+ import { l as logger } from './logger-DpqihN1f.mjs';
4
+ import { A as AcpSessionManager } from './AcpSessionManager-OrCww-Qv.mjs';
5
+ import { t as PI_STEER_CAPABILITY, g as BUILTIN_TODO_DISCOVERY, P as PROMPT_QUEUE_CAPABILITY, a as PROJECT_SESSION_CAPABILITY } from './index-BI0h2Zks.mjs';
6
+ import { h as hashObject, s as startHappyServer, r as readPiModelsJson, a as resolvePiContextUsage, c as createProjectInjector } from './deterministicJson-B_UAbmQ4.mjs';
6
7
  import { r as registerAgentAttachmentDownloads } from './agentAttachments-M_B5qEF2.mjs';
7
- import { c as configuration } from './configuration-PxzEJumr.mjs';
8
- import { a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt, C as CLAUDE_ATTACHMENT_KINDS } from './attachmentContent-CIn4iPEk.mjs';
9
- import { p as preparePiTeamsRuntime } from './piRuntime-CdN0JAsa.mjs';
8
+ import { c as configuration } from './configuration-YXw_Dcsb.mjs';
9
+ import { a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt, C as CLAUDE_ATTACHMENT_KINDS } from './attachmentContent-Ckzyb1Uy.mjs';
10
+ import { p as preparePiTeamsRuntime } from './piRuntime-DgLIard1.mjs';
10
11
  import { randomUUID } from 'node:crypto';
11
12
  import { join } from 'node:path';
12
- import { c as connectionState, A as ApiClient } from './api-Hov8p7CA.mjs';
13
- import { h as hashObject, s as startHappyServer, c as createProjectInjector } from './deterministicJson-CTEJDqtS.mjs';
14
- import { s as sharedProjectsClient } from './client-Ca5Pcgy_.mjs';
15
- import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-CaqqRYq6.mjs';
16
- import { r as readSettings } from './persistence-BFUOHW5h.mjs';
17
- import { g as getInitialMachineMetadata } from './machineMetadata-BXN_bKU3.mjs';
18
- import { c as createSessionMetadata } from './createSessionMetadata-DDIChCx8.mjs';
19
- import { s as setupOfflineReconnection } from './setupOfflineReconnection-1Qlek3wl.mjs';
20
- import { c as createSessionForStartup } from './startupSessionCreate-uZ6BM0ty.mjs';
21
- import { n as notifyDaemonSessionStarted, j as reportSessionEditToDaemon } from './controlClient-DoeYovwP.mjs';
13
+ import { c as connectionState, A as ApiClient } from './api-C_YSQnsi.mjs';
14
+ import { s as sharedProjectsClient } from './client-o-meK7-a.mjs';
15
+ import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-O1iriOMO.mjs';
16
+ import { r as readSettings } from './persistence-jOEuAFTS.mjs';
17
+ import { g as getInitialMachineMetadata } from './machineMetadata-D4E3qoIG.mjs';
18
+ import { c as createSessionMetadata } from './createSessionMetadata-DvGDsnsn.mjs';
19
+ import { s as setupOfflineReconnection } from './setupOfflineReconnection-Biaus-0T.mjs';
20
+ import { c as createSessionForStartup } from './startupSessionCreate-DlZc8yPl.mjs';
21
+ import { n as notifyDaemonSessionStarted, j as reportSessionEditToDaemon } from './controlClient-BL4hb4l3.mjs';
22
22
  import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
23
- import { c as claimSessionOrExit, a as applyServerSnapshot, w as withoutServerSnapshot, m as mergeReconnectMetadata } from './sessionLock-nBXdJxJm.mjs';
24
- import { r as readAcpReconnectEnv, n as normalizeAcpPermissionMode, p as piRestartNotice, w as writeSessionModeFile, a as removeSessionModeFile } from './acpSessionResume-B9l54P-X.mjs';
25
- import { S as StreamRelay } from './streamRelay-DnMCMMfV.mjs';
23
+ import { c as claimSessionOrExit, a as applyServerSnapshot, w as withoutServerSnapshot, m as mergeReconnectMetadata } from './sessionLock-B6K4SBZD.mjs';
24
+ import { r as readAcpReconnectEnv, n as normalizeAcpPermissionMode, p as piRestartNotice, w as writeSessionModeFile, a as removeSessionModeFile } from './acpSessionResume-u2TwX5Jd.mjs';
25
+ import { S as StreamRelay } from './streamRelay-DnJXsi36.mjs';
26
26
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
27
- import { B as BasePermissionHandler } from './BasePermissionHandler-26fKbRCm.mjs';
28
- import { T as TitleGenerator } from './titleGenerator-Uzbd4utr.mjs';
27
+ import { B as BasePermissionHandler } from './BasePermissionHandler-u-neo-iN.mjs';
28
+ import { T as TitleGenerator } from './titleGenerator-ClnMSzwC.mjs';
29
29
  import { E as EditReportThrottle, e as extractAcpEditPaths } from './editPaths-BVfS_FFL.mjs';
30
30
  import 'node:child_process';
31
31
  import '@agentclientprotocol/sdk';
32
- import './time-D3ETL7Jb.mjs';
32
+ import './time-Cfknl7xG.mjs';
33
33
  import './contentLogMetadata-BlWI0egu.mjs';
34
34
  import './processTree-CP5IvQ2Z.mjs';
35
- import './package-7Ld1YMhh.mjs';
35
+ import './package-CKj8zndE.mjs';
36
36
  import 'chalk';
37
37
  import 'node:util';
38
38
  import 'node:fs';
39
39
  import '@paralleldrive/cuid2';
40
40
  import 'zod';
41
+ import './prompt-QHuFx9j6.mjs';
42
+ import './reportProgressTool-nCExrHZH.mjs';
43
+ import './client-Ctbw05Xj.mjs';
44
+ import './precheckCompat-DeEbilbr.mjs';
45
+ import './agentGuidance-BDYt2Qy2.mjs';
46
+ import './trimIdent-BAjmv_TG.mjs';
41
47
  import 'node:os';
48
+ import './pi-CqyoZMjI.mjs';
49
+ import './fileStore-5qpetZS0.mjs';
42
50
  import 'node:fs/promises';
43
- import './pushNotifications-DCiBEVeC.mjs';
51
+ import './client-BGfmSbWc.mjs';
52
+ import './context-Drzs_Z38.mjs';
53
+ import './sessionOps-D0BPWPoh.mjs';
44
54
  import 'axios';
45
- import './resources-y9jfyO-_.mjs';
46
- import './lidState-bBrmaQd2.mjs';
47
- import 'os';
48
- import 'child_process';
49
- import 'node:events';
50
55
  import 'socket.io-client';
51
- import './limits-DIo7rEBR.mjs';
52
- import './registerCommonHandlers-CTkCvjxt.mjs';
53
- import 'util';
54
- import 'fs/promises';
55
- import 'crypto';
56
- import 'path';
57
- import 'cross-spawn';
58
- import './sync-BvVhDO40.mjs';
59
56
  import './backgroundTaskActivity-8PdPxrvy.mjs';
60
- import './prompt-BOouDaTM.mjs';
61
- import './reportProgressTool-ZOCNjWHr.mjs';
62
- import './client-CnB7kRCT.mjs';
63
- import './precheckCompat-DeEbilbr.mjs';
64
- import './agentGuidance-BDYt2Qy2.mjs';
65
- import './trimIdent-BAjmv_TG.mjs';
66
- import './client-D4uPb1uu.mjs';
67
- import './context-CJGRRGWW.mjs';
68
- import './sessionOps-C58iDeD5.mjs';
69
- import './tools-Cho7iIWf.mjs';
70
- import './peerTools-BOlDRyhi.mjs';
57
+ import './resources-CH1iP6Cv.mjs';
58
+ import './tools-BgdU0dWp.mjs';
59
+ import './peerTools-D_id4d41.mjs';
71
60
  import './ids-DU6sLx4C.mjs';
72
- import './remoteSessionClient-PP-mOKmw.mjs';
61
+ import './remoteSessionClient-BlURPulk.mjs';
73
62
  import '@modelcontextprotocol/sdk/server/mcp.js';
74
63
  import 'node:http';
75
64
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
76
- import './downloadTarget-jbOz1egC.mjs';
65
+ import './limits-DIo7rEBR.mjs';
66
+ import './downloadTarget-J9j37eFG.mjs';
77
67
  import './terminals-Dlg0x3nY.mjs';
78
68
  import './terminalTitleSuggest-CeKsX_V6.mjs';
79
69
  import './tmuxSocket-B8Yx20sT.mjs';
80
- import './bootstrap-Dt5I1SOl.mjs';
70
+ import './bootstrap-D3vlOROj.mjs';
81
71
  import './webPanels-B2_C2-3g.mjs';
72
+ import './pushNotifications-CMmRsbKv.mjs';
82
73
  import './previewPath-CXN4Vag0.mjs';
74
+ import 'crypto';
75
+ import './lidState-D8Iuvjgl.mjs';
76
+ import 'os';
77
+ import 'child_process';
78
+ import 'node:events';
79
+ import './registerCommonHandlers-K8dICQO2.mjs';
80
+ import 'util';
81
+ import 'fs/promises';
82
+ import 'path';
83
+ import 'cross-spawn';
84
+ import './sync-BbjMC3sR.mjs';
83
85
  import 'tweetnacl';
84
86
  import './types-CkqAACXx.mjs';
85
87
  import './detectCLI-CSGMlV51.mjs';
86
88
  import 'fs';
87
- import './localHappyAgentAuth-Dn1jYDpt.mjs';
89
+ import './localHappyAgentAuth-D3rQDRd9.mjs';
90
+ import './fsMkdir-DumgLTzR.mjs';
88
91
  import './processTreeSnapshot-CuLJDNC-.mjs';
89
92
  import 'url';
90
93
  import 'node:module';
@@ -104,6 +107,18 @@ function createAcpBackend(options) {
104
107
  return new AcpBackend(backendOptions);
105
108
  }
106
109
 
110
+ const SLASH_COMMAND = /^\/[A-Za-z][A-Za-z0-9_.:-]*(?:\s|$)/;
111
+ function isAgentSlashCommand(message) {
112
+ return typeof message === "string" && SLASH_COMMAND.test(message.trimStart());
113
+ }
114
+ async function buildAcpPrompt(message, opts) {
115
+ if (isAgentSlashCommand(message)) return { prompt: message, slashCommand: true };
116
+ const projected = await opts.decorate(message);
117
+ return { prompt: opts.todoNoteSent ? projected : `${projected}
118
+
119
+ ${opts.todoNote}`, slashCommand: false };
120
+ }
121
+
107
122
  const MAX_DETAIL_CHARS = 400;
108
123
  function detailOf(error) {
109
124
  if (error instanceof Error) return error.message;
@@ -910,8 +925,10 @@ async function runAcp(opts) {
910
925
  assistant: isAssistantVariant,
911
926
  ...piSteer ? { piSteer } : {},
912
927
  push: { sendAttention: (input) => api.push().sendAttention(input) },
913
- ...opts.agentName === "pi" ? { onContextUsage: (contextUsage) => {
914
- session.updateAgentState((state2) => ({ ...state2, contextUsage }));
928
+ // B-727: pi's report is resolved against models.json (pi's 128k default ≠ a configured window).
929
+ ...opts.agentName === "pi" ? { onContextUsage: (report) => {
930
+ const modelsJson = readPiModelsJson();
931
+ session.updateAgentState((state2) => ({ ...state2, contextUsage: resolvePiContextUsage(report, modelsJson, state2.contextUsage, Date.now()) }));
915
932
  } } : {}
916
933
  });
917
934
  if (opts.agentName === "pi") session.updateAgentState((state2) => ({ ...state2, contextUsage: null }));
@@ -1454,10 +1471,11 @@ async function runAcp(opts) {
1454
1471
  if (typeof batch.mode.effort === "string") {
1455
1472
  await switchEffortIfRequested(batch.mode.effort, modelChanged);
1456
1473
  }
1457
- const projected = await projectInjector.decorate(batch.message);
1458
- const prompt = todoDiscoverySent ? projected : `${projected}
1459
-
1460
- ${BUILTIN_TODO_DISCOVERY}`;
1474
+ const { prompt, slashCommand } = await buildAcpPrompt(batch.message, {
1475
+ todoNoteSent: todoDiscoverySent,
1476
+ todoNote: BUILTIN_TODO_DISCOVERY,
1477
+ decorate: (m) => projectInjector.decorate(m)
1478
+ });
1461
1479
  const attachments = batch.attachments ?? [];
1462
1480
  const staged = attachments.length ? await stageClaudeAttachments(attachments, {
1463
1481
  happyHomeDir: configuration.happyHomeDir,
@@ -1470,7 +1488,7 @@ ${BUILTIN_TODO_DISCOVERY}`;
1470
1488
  } finally {
1471
1489
  promptInFlight = false;
1472
1490
  }
1473
- todoDiscoverySent = true;
1491
+ if (!slashCommand) todoDiscoverySent = true;
1474
1492
  const stopReason = outcome && typeof outcome === "object" ? outcome.stopReason : void 0;
1475
1493
  if (stopReason === "error") {
1476
1494
  throw new Error("the turn ended with an error reported by the agent");
@@ -465,7 +465,8 @@ const TeamActionSchema = z.z.discriminatedUnion("type", [
465
465
  z.z.object({ type: z.z.literal("reconcile-operation"), operationId: id$2, claimId: id$2, note: z.z.string().trim().min(1).max(4e3) }),
466
466
  // B-689: owner asks the execution computer to run a failed/uncertain operation again.
467
467
  z.z.object({ type: z.z.literal("retry-operation"), operationId: id$2, claimId: id$2 }),
468
- z.z.object({ type: z.z.literal("join"), name: id$2, sessionId: id$2, botId: id$2.optional() }),
468
+ /** B-730: `transfer` = the owner confirmed moving a session that is bound in another live team (Web adopt); without it the server answers `session_in_other_team`. An old server strips it. */
469
+ z.z.object({ type: z.z.literal("join"), name: id$2, sessionId: id$2, botId: id$2.optional(), transfer: z.z.literal(true).optional() }),
469
470
  z.z.object({ type: z.z.literal("delegate"), goal: text$1, acceptance: z.z.array(text$1).min(1).max(32), parentTaskId: id$2.optional(), assigneeBotId: id$2.optional(), botName: id$2.optional(), directory: z.z.string().min(1).max(4096).optional(), assistant: TeamAssistantSchema.optional(), model: TeamModelSchema.optional() }),
470
471
  z.z.object({ type: z.z.literal("message"), taskId: id$2, body: text$1, recipientBotId: id$2.optional() }),
471
472
  z.z.object({ type: z.z.literal("submit"), taskId: id$2, attemptId: id$2, goalVersion: z.z.number().int().positive(), result: text$1 }),
@@ -480,7 +481,33 @@ const TeamActionSchema = z.z.discriminatedUnion("type", [
480
481
  z.z.object({ type: z.z.literal("message-delivered"), messageId: id$2, recipientBotId: id$2, generation: z.z.number().int().positive(), sessionId: id$2 })
481
482
  ]);
482
483
  z.z.object({ requestId: id$2, action: TeamActionSchema });
483
- z.z.object({ name: id$2, machineId: id$2, requestId: id$2.optional(), launch: TeamLaunchSchema.optional() });
484
+ const TeamProjectChoiceSchema = z.z.object({
485
+ projectId: id$2.optional(),
486
+ inheritFromSessionId: id$2.optional(),
487
+ create: z.z.boolean().optional(),
488
+ directory: z.z.string().min(1).max(4096).optional()
489
+ });
490
+ z.z.object({ name: id$2, machineId: id$2, requestId: id$2.optional(), launch: TeamLaunchSchema.optional(), project: TeamProjectChoiceSchema.optional(), sessionId: id$2.optional(), transfer: z.z.literal(true).optional() });
491
+ z.z.object({
492
+ projectId: id$2.nullable().optional(),
493
+ create: z.z.boolean().optional(),
494
+ requestId: id$2.optional()
495
+ }).refine((v) => v.projectId !== void 0 !== (v.create === true), "exactly one of projectId / create");
496
+ const TEAM_WORKTREE = /\/teams\/worktrees\/([^/]+)(?:\/|$)/;
497
+ function teamWorktreeId(path) {
498
+ if (!path) return null;
499
+ return path.replace(/\\/g, "/").match(TEAM_WORKTREE)?.[1] ?? null;
500
+ }
501
+ function isInsideTeamWorktree(path) {
502
+ return teamWorktreeId(path) !== null;
503
+ }
504
+ function rebaseTeamWorktreePath(path, repository) {
505
+ const normalized = path.replace(/\\/g, "/");
506
+ const match = normalized.match(TEAM_WORKTREE);
507
+ if (!match || match.index === void 0) return path;
508
+ const rest = normalized.slice(match.index + match[0].length).replace(/\/+$/, "");
509
+ return rest ? `${repository.replace(/\/+$/, "")}/${rest}` : repository;
510
+ }
484
511
  const id$1 = z.z.string().min(1).max(128);
485
512
  const text = z.z.string().min(1).max(32e3);
486
513
  const AUTOMATION_NAME_PATTERN = /^[a-z0-9][a-z0-9-_.]{0,63}$/;
@@ -1023,11 +1050,17 @@ For edit/status/delete, a conflict means the version changed. Read the task and
1023
1050
  Restricted team workers cannot use account-wide Todo credentials. Ask the user or supervising session to perform the account operation; do not clear scope variables or seek another credential to bypass that boundary.
1024
1051
  `;
1025
1052
  const BUILTIN_TODO_DISCOVERY = "For the user\u2019s Very Happy My todos, run `very-happy todo skill` to read the official skill, then use its CLI commands. Do not confuse account todos with your execution plan; restricted team workers must not bypass their scope.";
1026
- const ContextUsageSchema = z.z.object({
1053
+ z.z.object({
1027
1054
  source: z.z.literal("pi"),
1028
1055
  tokens: z.z.number().finite().nonnegative().nullable(),
1029
1056
  contextWindow: z.z.number().finite().positive(),
1030
- updatedAt: z.z.number().finite().nonnegative()
1057
+ updatedAt: z.z.number().finite().nonnegative(),
1058
+ /** 'configured' (the harness's own model entry) | 'inferred' (same model id in a known table) | 'unknown' (harness default). Absent = older CLI → configured. */
1059
+ windowSource: z.z.string().nullable().optional(),
1060
+ /** Model id the snapshot was measured on (lets the web consult its own table when the window is unknown). */
1061
+ model: z.z.string().nullable().optional(),
1062
+ /** When the harness last compacted; tokens stay null until the next answer measures the new context. */
1063
+ compactedAt: z.z.number().finite().nonnegative().nullable().optional()
1031
1064
  });
1032
1065
  const AgentVersionsSchema = z.z.object({
1033
1066
  checkedAt: z.z.number(),
@@ -1042,12 +1075,27 @@ const AgentVersionsSchema = z.z.object({
1042
1075
  const AGENT_VERSION_SOURCES = [
1043
1076
  { id: "claude", label: "Claude Code", command: "claude", package: "@anthropic-ai/claude-code", docs: "https://code.claude.com/docs/en/setup" },
1044
1077
  { id: "codex", label: "Codex", command: "codex", package: "@openai/codex", docs: "https://github.com/openai/codex#installation-and-usage" },
1045
- { id: "pi", label: "Pi", command: "pi", package: "@mariozechner/pi-coding-agent", docs: "https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent" },
1078
+ // B-719: @mariozechner/pi-coding-agent is deprecated at 0.73.1 ("use @earendil-works/pi-coding-agent"),
1079
+ // so comparing against it reported every newer pi as current.
1080
+ { id: "pi", label: "Pi", command: "pi", package: "@earendil-works/pi-coding-agent", docs: "https://github.com/earendil-works/pi" },
1046
1081
  { id: "gemini", label: "Gemini CLI", command: "gemini", package: "@google/gemini-cli", docs: "https://github.com/google-gemini/gemini-cli#installation" },
1047
1082
  { id: "opencode", label: "OpenCode", command: "opencode", package: "opencode-ai", docs: "https://opencode.ai/docs/" },
1048
1083
  { id: "openclaw", label: "OpenClaw", command: "openclaw", package: "openclaw", docs: "https://docs.openclaw.ai/install/updating" },
1049
1084
  { id: "claude-sdk", label: "Claude Agent SDK", command: null, package: "@anthropic-ai/claude-agent-sdk", docs: "https://github.com/anthropics/claude-agent-sdk-typescript" }
1050
1085
  ];
1086
+ const HARNESS_INSTALL_IDS = ["claude", "codex", "gemini", "pi"];
1087
+ function isHarnessInstallId(value) {
1088
+ return typeof value === "string" && HARNESS_INSTALL_IDS.includes(value);
1089
+ }
1090
+ const HARNESS_INSTALL_CAPABILITY_VERSION = 1;
1091
+ z.z.object({
1092
+ harness: z.z.string(),
1093
+ state: z.z.string(),
1094
+ // 'installing' | 'installed' | 'failed' (open: older Web shows unknown states as failed)
1095
+ detail: z.z.string().optional(),
1096
+ startedAt: z.z.number(),
1097
+ at: z.z.number()
1098
+ });
1051
1099
  const CLAUDE_OPUS_55_MODEL = "claude-opus-5-5";
1052
1100
  const CLAUDE_OPUS_55_CAPABILITY = "claude-opus-5-5-v1";
1053
1101
  function supportsClaudeOpus55(metadata) {
@@ -1143,7 +1191,7 @@ exports.AutomationTriggerSchema = AutomationTriggerSchema;
1143
1191
  exports.BUILTIN_TODO_DISCOVERY = BUILTIN_TODO_DISCOVERY;
1144
1192
  exports.BUILTIN_TODO_SKILL = BUILTIN_TODO_SKILL;
1145
1193
  exports.CODEX_STEER_CAPABILITY = CODEX_STEER_CAPABILITY;
1146
- exports.ContextUsageSchema = ContextUsageSchema;
1194
+ exports.HARNESS_INSTALL_CAPABILITY_VERSION = HARNESS_INSTALL_CAPABILITY_VERSION;
1147
1195
  exports.PI_STEER_CAPABILITY = PI_STEER_CAPABILITY;
1148
1196
  exports.PROJECT_SESSION_CAPABILITY = PROJECT_SESSION_CAPABILITY;
1149
1197
  exports.PROMPT_QUEUE_CAPABILITY = PROMPT_QUEUE_CAPABILITY;
@@ -1157,6 +1205,9 @@ exports.createEnvelope = createEnvelope;
1157
1205
  exports.getAgentCodeDefaults = getAgentCodeDefaults;
1158
1206
  exports.isAutomationRunTerminal = isAutomationRunTerminal;
1159
1207
  exports.isClaudeOpus55Model = isClaudeOpus55Model;
1208
+ exports.isHarnessInstallId = isHarnessInstallId;
1209
+ exports.isInsideTeamWorktree = isInsideTeamWorktree;
1160
1210
  exports.normalizeAgentKey = normalizeAgentKey;
1211
+ exports.rebaseTeamWorktreePath = rebaseTeamWorktreePath;
1161
1212
  exports.streamKeyOf = streamKeyOf;
1162
1213
  exports.supportsClaudeOpus55 = supportsClaudeOpus55;
package/dist/index.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- require('./package-KhLqBDX9.cjs');
4
- require('./index-F2UejqYs.cjs');
3
+ require('./package-BfeqAzyJ.cjs');
4
+ require('./index-CZC7egJA.cjs');
5
5
  require('node:module');
6
6
  require('node:fs');
7
7
  require('node:fs/promises');
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import './package-7Ld1YMhh.mjs';
2
- import './index-wCbtF4BK.mjs';
1
+ import './package-CKj8zndE.mjs';
2
+ import './index-D_LvOWUN.mjs';
3
3
  import 'node:module';
4
4
  import 'node:fs';
5
5
  import 'node:fs/promises';
@@ -1,17 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-CphW5nUE.cjs');
3
+ var logger = require('./logger-DK1ytCz6.cjs');
4
4
  var require$$0 = require('fs');
5
5
  var child_process = require('child_process');
6
6
  var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
7
7
  var os = require('os');
8
8
  require('chalk');
9
9
  require('node:util');
10
- require('./configuration-CYO-kPOS.cjs');
10
+ require('./configuration-B-CugKJ3.cjs');
11
11
  require('node:fs');
12
12
  require('node:os');
13
13
  require('node:path');
14
- require('./package-KhLqBDX9.cjs');
14
+ require('./package-BfeqAzyJ.cjs');
15
15
  require('node:fs/promises');
16
16
 
17
17
  const PLIST_LABEL = "com.happy-cli.daemon";
@@ -1,15 +1,15 @@
1
- import { l as logger } from './logger-BUngm5Xg.mjs';
1
+ import { l as logger } from './logger-DpqihN1f.mjs';
2
2
  import { existsSync, writeFileSync, chmodSync } from 'fs';
3
3
  import { execSync } from 'child_process';
4
4
  import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
5
5
  import os from 'os';
6
6
  import 'chalk';
7
7
  import 'node:util';
8
- import './configuration-PxzEJumr.mjs';
8
+ import './configuration-YXw_Dcsb.mjs';
9
9
  import 'node:fs';
10
10
  import 'node:os';
11
11
  import 'node:path';
12
- import './package-7Ld1YMhh.mjs';
12
+ import './package-CKj8zndE.mjs';
13
13
  import 'node:fs/promises';
14
14
 
15
15
  const PLIST_LABEL = "com.happy-cli.daemon";
@@ -1,7 +1,7 @@
1
1
  import { createHash, randomUUID } from 'node:crypto';
2
2
  import { unlink, rmdir, mkdir, lstat, readFile, writeFile, rename } from 'node:fs/promises';
3
3
  import { join, resolve, dirname } from 'node:path';
4
- import { T as TEAM_SKILL } from './resources-y9jfyO-_.mjs';
4
+ import { T as TEAM_SKILL } from './resources-CH1iP6Cv.mjs';
5
5
 
6
6
  const AUTOMATION_SKILL = `---
7
7
  name: very-happy-automations
@@ -3,7 +3,7 @@
3
3
  var node_crypto = require('node:crypto');
4
4
  var promises = require('node:fs/promises');
5
5
  var path = require('node:path');
6
- var resources = require('./resources-CvIlkzpP.cjs');
6
+ var resources = require('./resources-BPyN59Iv.cjs');
7
7
 
8
8
  const AUTOMATION_SKILL = `---
9
9
  name: very-happy-automations
package/dist/lib.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var api = require('./api-DM7b1OKj.cjs');
4
- var logger = require('./logger-CphW5nUE.cjs');
5
- var configuration = require('./configuration-CYO-kPOS.cjs');
3
+ var api = require('./api-CZWcG7uh.cjs');
4
+ var logger = require('./logger-DK1ytCz6.cjs');
5
+ var configuration = require('./configuration-B-CugKJ3.cjs');
6
6
  var types = require('./types-CRS-srZK.cjs');
7
7
  require('axios');
8
- require('./lidState-DWGnm2H4.cjs');
8
+ require('./lidState-DcPvwniz.cjs');
9
9
  require('./authRelay-Dy1qU9td.cjs');
10
10
  require('node:crypto');
11
11
  require('tweetnacl');
@@ -13,14 +13,14 @@ require('os');
13
13
  require('child_process');
14
14
  require('node:events');
15
15
  require('socket.io-client');
16
- require('./pushNotifications-DI92havG.cjs');
16
+ require('./pushNotifications-CyQVDThC.cjs');
17
17
  require('zod');
18
- require('./index-Dv0Q48P3.cjs');
18
+ require('./index-oh8XEozJ.cjs');
19
19
  require('@paralleldrive/cuid2');
20
20
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
21
21
  require('./limits-C-a7gr04.cjs');
22
- require('./time-Cjv0zxQO.cjs');
23
- require('./registerCommonHandlers-C7a_dUWs.cjs');
22
+ require('./time-DNLeIRgR.cjs');
23
+ require('./registerCommonHandlers-DbNoM39q.cjs');
24
24
  require('util');
25
25
  require('fs/promises');
26
26
  require('crypto');
@@ -28,17 +28,17 @@ require('path');
28
28
  require('cross-spawn');
29
29
  require('./projectPath-C3ioB4Bu.cjs');
30
30
  require('url');
31
- require('./sync-Bn-idAoy.cjs');
31
+ require('./sync-BxMdnZzz.cjs');
32
32
  require('./backgroundTaskActivity-CBvUdj39.cjs');
33
- require('./controlClient-Bqv5v5OM.cjs');
34
- require('./persistence-9BMYspxG.cjs');
33
+ require('./controlClient-D0kGwKYx.cjs');
34
+ require('./persistence-BdpwWXKh.cjs');
35
35
  require('node:fs/promises');
36
36
  require('node:fs');
37
37
  require('chalk');
38
38
  require('node:util');
39
39
  require('node:path');
40
40
  require('node:os');
41
- require('./package-KhLqBDX9.cjs');
41
+ require('./package-BfeqAzyJ.cjs');
42
42
 
43
43
 
44
44
 
package/dist/lib.d.cts CHANGED
@@ -200,12 +200,22 @@ declare const sessionStreamFrameSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
200
200
  }, z.core.$strip>], "t">;
201
201
  type SessionStreamFrame = z.infer<typeof sessionStreamFrameSchema>;
202
202
 
203
- /** Runtime context occupancy, never cumulative billing. null after compaction is unknown. */
203
+ /**
204
+ * Runtime context occupancy, never cumulative billing. null after compaction is unknown.
205
+ *
206
+ * B-727 (specs/2026-10-pi-context-usage.md): `contextWindow` stays required so
207
+ * older webs keep rendering; `windowSource` says whether it may be used as a
208
+ * denominator. Free strings + read whitelist (iron rule 14): an unknown value
209
+ * must not make the whole agentState fail to parse.
210
+ */
204
211
  declare const ContextUsageSchema: z$1.ZodObject<{
205
212
  source: z$1.ZodLiteral<"pi">;
206
213
  tokens: z$1.ZodNullable<z$1.ZodNumber>;
207
214
  contextWindow: z$1.ZodNumber;
208
215
  updatedAt: z$1.ZodNumber;
216
+ windowSource: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
217
+ model: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
218
+ compactedAt: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodNumber>>;
209
219
  }, z$1.core.$strip>;
210
220
  type ContextUsage = z$1.infer<typeof ContextUsageSchema>;
211
221
 
@@ -369,7 +379,9 @@ declare const MachineMetadataSchema: z$1.ZodObject<{
369
379
  teamLaunchVersion: z$1.ZodOptional<z$1.ZodNumber>;
370
380
  teamRetryVersion: z$1.ZodOptional<z$1.ZodNumber>;
371
381
  worktreeVersion: z$1.ZodOptional<z$1.ZodNumber>;
382
+ fsMkdirVersion: z$1.ZodOptional<z$1.ZodNumber>;
372
383
  modelConfigVersion: z$1.ZodOptional<z$1.ZodNumber>;
384
+ harnessInstallVersion: z$1.ZodOptional<z$1.ZodNumber>;
373
385
  host: z$1.ZodString;
374
386
  platform: z$1.ZodString;
375
387
  happyCliVersion: z$1.ZodString;
@@ -422,6 +434,13 @@ declare const CliUpdateStateSchema: z$1.ZodObject<{
422
434
  detail: z$1.ZodOptional<z$1.ZodString>;
423
435
  at: z$1.ZodNumber;
424
436
  }, z$1.core.$strip>>>;
437
+ autoUpdateEnabled: z$1.ZodOptional<z$1.ZodBoolean>;
438
+ lastInstall: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodObject<{
439
+ from: z$1.ZodString;
440
+ to: z$1.ZodString;
441
+ at: z$1.ZodNumber;
442
+ source: z$1.ZodString;
443
+ }, z$1.core.$strip>>>;
425
444
  }, z$1.core.$strip>;
426
445
  type CliUpdateState = z$1.infer<typeof CliUpdateStateSchema>;
427
446
  /**
@@ -547,6 +566,13 @@ declare const DaemonStateSchema: z$1.ZodObject<{
547
566
  detail: z$1.ZodOptional<z$1.ZodString>;
548
567
  at: z$1.ZodNumber;
549
568
  }, z$1.core.$strip>>>;
569
+ autoUpdateEnabled: z$1.ZodOptional<z$1.ZodBoolean>;
570
+ lastInstall: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodObject<{
571
+ from: z$1.ZodString;
572
+ to: z$1.ZodString;
573
+ at: z$1.ZodNumber;
574
+ source: z$1.ZodString;
575
+ }, z$1.core.$strip>>>;
550
576
  }, z$1.core.$strip>>;
551
577
  claudeAuth: z$1.ZodOptional<z$1.ZodObject<{
552
578
  probeVersion: z$1.ZodNumber;
@@ -1675,6 +1701,8 @@ interface HarnessCurrent {
1675
1701
  providerName?: string | null;
1676
1702
  api?: string | null;
1677
1703
  models?: string[];
1704
+ /** pi: explicit `contextWindow` per model of the selected provider (B-727; absent on older daemons). */
1705
+ contextWindows?: Record<string, number>;
1678
1706
  defaultModel?: string | null;
1679
1707
  /** codex/pi: provider currently selected by the harness. */
1680
1708
  activeProvider?: string | null;
@@ -1958,6 +1986,8 @@ declare class ApiMachineClient {
1958
1986
  } | {
1959
1987
  error: string;
1960
1988
  }>): void;
1989
+ /** B-719: `harness-install` — the owner asked this machine to install one harness id. */
1990
+ setHarnessInstallHandler(handler: (params: unknown) => Promise<unknown>): void;
1961
1991
  setCliUpdateRetryHandler(handler: (version: unknown) => Promise<{
1962
1992
  accepted: true;
1963
1993
  } | {
@@ -2055,12 +2085,21 @@ declare class ApiMachineClient {
2055
2085
  private createControlSocket;
2056
2086
  private activateControlSocket;
2057
2087
  private bindControlDataHandlers;
2088
+ private cliUpdatePolicyHandler;
2089
+ /** B-718: the daemon decides what a policy announcement means (update/policyAnnouncement.ts). */
2090
+ setCliUpdatePolicyHandler(handler: ((payload: unknown) => void) | null): void;
2058
2091
  private serverMigrateHandler;
2059
2092
  /** B-635: the daemon decides what to do with a relay-migration notice (daemon/serverMigration.ts). */
2060
2093
  setServerMigrateHandler(handler: ((notice: unknown) => void) | null): void;
2061
2094
  private startReleaseHandover;
2062
2095
  private releaseHandover;
2063
2096
  private startKeepAlive;
2097
+ /**
2098
+ * Re-detect CLI availability and publish it when it changed. Called on the
2099
+ * throttled keep-alive and, B-719, right after the owner installed a
2100
+ * harness so the launcher enables it without waiting up to five minutes.
2101
+ */
2102
+ recheckCliAvailability(): void;
2064
2103
  private bindRpcRequestHandler;
2065
2104
  private bindMachineCommandHandlers;
2066
2105
  private unbindMachineCommandHandlers;