very-happy-cli 0.2.179 → 0.2.181

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 (214) hide show
  1. package/dist/{AcpBackend-DFipFF7-.cjs → AcpBackend-CgHb_ya5.cjs} +3 -3
  2. package/dist/{AcpBackend-CHp3y7cb.mjs → AcpBackend-DZGCSuXF.mjs} +3 -3
  3. package/dist/{AcpSessionManager-0zpvRJXc.cjs → AcpSessionManager-CacC2EVn.cjs} +1 -1
  4. package/dist/{AcpSessionManager-d2-rKWWa.mjs → AcpSessionManager-DwuPzWBh.mjs} +1 -1
  5. package/dist/{BasePermissionHandler-CH3zuEkA.cjs → BasePermissionHandler-DCP8ZEB4.cjs} +1 -1
  6. package/dist/{BasePermissionHandler-DdZBYIR4.mjs → BasePermissionHandler-Uo-GUjbb.mjs} +1 -1
  7. package/dist/{acpSessionResume-DTGmAPLt.mjs → acpSessionResume-9OLTD6kT.mjs} +1 -1
  8. package/dist/{acpSessionResume-oiCBnAVA.cjs → acpSessionResume-BaVMD80f.cjs} +1 -1
  9. package/dist/{agentHome-CghLvL_1.mjs → agentHome-B1BsKeqD.mjs} +4 -4
  10. package/dist/{agentHome-BWcz8mz0.cjs → agentHome-BtUmGcPX.cjs} +4 -4
  11. package/dist/{api-Cmjfr8Z7.cjs → api-COHFAkb_.cjs} +20 -12
  12. package/dist/{api-CzwFpJQc.mjs → api-Dr3wXL_7.mjs} +21 -13
  13. package/dist/{apiMachine-DJkTEiqy.mjs → apiMachine-CHEzPQdS.mjs} +73 -32
  14. package/dist/{apiMachine-G6OogT08.cjs → apiMachine-D8H7CXaz.cjs} +75 -34
  15. package/dist/{attachmentContent-B2os4HbA.mjs → attachmentContent-1YwtKgWl.mjs} +2 -2
  16. package/dist/{attachmentContent-Bo0UAsSu.cjs → attachmentContent-mIhbtRKl.cjs} +2 -2
  17. package/dist/{auth-DMX0xPNK.mjs → auth-CbZkcMAb.mjs} +8 -8
  18. package/dist/{auth-D6bBUwZa.cjs → auth-CgQP7d0q.cjs} +5 -5
  19. package/dist/{auth-BS6PaOOG.mjs → auth-DZsthtSk.mjs} +5 -5
  20. package/dist/{auth-HEhRaNgL.cjs → auth-Fg8fLadK.cjs} +8 -8
  21. package/dist/{auto-C6I55iOh.cjs → auto-BB7kqSh5.cjs} +19 -19
  22. package/dist/{auto-Cl1SEDcD.mjs → auto-_T-Ud-z5.mjs} +19 -19
  23. package/dist/{backgroundTaskActivity-BVwJBl02.mjs → backgroundTaskActivity-8PdPxrvy.mjs} +1 -1
  24. package/dist/{bootstrap-iuyufnp3.mjs → bootstrap-B6EkZh4u.mjs} +2 -2
  25. package/dist/{bootstrap-exVucYav.cjs → bootstrap-CYtOtbi7.cjs} +2 -2
  26. package/dist/{browser-CSYum7xH.mjs → browser-C2qhUHSE.mjs} +1 -1
  27. package/dist/{browser-BohJK12g.cjs → browser-DjNNQQk2.cjs} +1 -1
  28. package/dist/{claudeCliPath-U4HHmV4r.cjs → claudeCliPath-GaP3UUz1.cjs} +1 -1
  29. package/dist/{claudeLocal-Dq_R3Ax_.mjs → claudeLocal-BAFjWhZ8.mjs} +6 -6
  30. package/dist/{claudeLocal-re4yjSTx.cjs → claudeLocal-O_w7-fBh.cjs} +8 -8
  31. package/dist/{claudeLocalLauncher-CN67lN7-.mjs → claudeLocalLauncher-CWn30LZR.mjs} +11 -11
  32. package/dist/{claudeLocalLauncher-B4hJHpCA.cjs → claudeLocalLauncher-Df3zg1q0.cjs} +13 -13
  33. package/dist/{claudeSessionFork-BihfD0Ik.mjs → claudeSessionFork-2ZkSTOGn.mjs} +1 -1
  34. package/dist/{claudeSessionFork-DiSMYerV.cjs → claudeSessionFork-pwcKqB-e.cjs} +1 -1
  35. package/dist/{client-BhoEBnuN.mjs → client-BKyU66lg.mjs} +2 -2
  36. package/dist/{client-BKcK1Bi-.cjs → client-CUO3ItoB.cjs} +34 -8
  37. package/dist/{client-wo9nbxuf.mjs → client-CXOnzuOy.mjs} +2 -2
  38. package/dist/{client-ZjOsn6nZ.cjs → client-DWs6k041.cjs} +2 -2
  39. package/dist/{client-CuVdN6PP.cjs → client-D_U2VjO3.cjs} +2 -2
  40. package/dist/{client-DuTDwWSQ.mjs → client-DsQcxVUV.mjs} +34 -9
  41. package/dist/codex/happyMcpStdioBridge.cjs +17 -17
  42. package/dist/codex/happyMcpStdioBridge.mjs +18 -18
  43. package/dist/{codexAppServerClient-Dt5zxrun.cjs → codexAppServerClient-BRX3JZ_5.cjs} +3 -3
  44. package/dist/{codexAppServerClient-BK3zra_1.mjs → codexAppServerClient-C3JO3pwM.mjs} +3 -3
  45. package/dist/{codexCommand-B6pY7CMh.mjs → codexCommand-BZIAAqKS.mjs} +59 -51
  46. package/dist/{codexCommand-CAZ1SLjg.cjs → codexCommand-dKOc5iQl.cjs} +85 -77
  47. package/dist/{codexTermination-DmGbHxcD.cjs → codexTermination-BVR9HeVI.cjs} +7 -2
  48. package/dist/{codexTermination-Cd1Eon_4.mjs → codexTermination-ztFkwHrG.mjs} +7 -2
  49. package/dist/{config-2oMG_fEI.mjs → config-NbHjx8ge.mjs} +3 -3
  50. package/dist/{config-B0uK6K7n.cjs → config-cftYxLC7.cjs} +26 -26
  51. package/dist/{configuration-WMi4idBB.mjs → configuration-BPrfb17M.mjs} +1 -1
  52. package/dist/{configuration-CMHZnp6G.cjs → configuration-C8JgseHy.cjs} +1 -1
  53. package/dist/{connect-uaglGrde.cjs → connect-Br8VMrK1.cjs} +27 -27
  54. package/dist/{connect-BLVHhHzA.mjs → connect-CLD1ai0k.mjs} +14 -14
  55. package/dist/{context-DXzU5bFM.cjs → context-D1lgQTJC.cjs} +1 -1
  56. package/dist/{context-DploEcoN.mjs → context-_YGq8xdH.mjs} +1 -1
  57. package/dist/{controlClient-BWUJrj3t.mjs → controlClient-CkNpT5zS.mjs} +4 -4
  58. package/dist/{controlClient-C-5qCt8W.cjs → controlClient-D68Zj7Q-.cjs} +3 -3
  59. package/dist/{createSessionMetadata-3uXrJgOW.mjs → createSessionMetadata-3WAj3_xl.mjs} +2 -2
  60. package/dist/{createSessionMetadata-BkIzHALd.cjs → createSessionMetadata-DNIbKLHg.cjs} +3 -3
  61. package/dist/{defaultPermissionMode-pS3vmiSg.cjs → defaultPermissionMode-BmvjP32v.cjs} +2 -2
  62. package/dist/{defaultPermissionMode-BzxLh20a.mjs → defaultPermissionMode-DXMznl8v.mjs} +2 -2
  63. package/dist/{detectCLI-DR9ZaN6B.cjs → detectCLI-BuYR_Qxe.cjs} +4 -4
  64. package/dist/{deterministicJson-B8z2GPi9.cjs → deterministicJson-BS7D7URE.cjs} +89 -24
  65. package/dist/{deterministicJson-D_whDMFd.mjs → deterministicJson-BcBIKKf1.mjs} +87 -24
  66. package/dist/{doctor-Br1Kcy2J.cjs → doctor-Be7zC0AF.cjs} +10 -9
  67. package/dist/{doctor-CmtSsR2-.mjs → doctor-CoOaPq6w.mjs} +8 -8
  68. package/dist/{doctorReadiness-BCZGcN0a.cjs → doctorReadiness-Dl6yRQCy.cjs} +1 -1
  69. package/dist/{downloadTarget-BoNwTIH_.mjs → downloadTarget-CeaAXdJj.mjs} +6 -6
  70. package/dist/{downloadTarget-BQJK_6oH.cjs → downloadTarget-LyOiucn_.cjs} +6 -6
  71. package/dist/{ensureDaemonRunning-Czo9IHJQ.mjs → ensureDaemonRunning--98j7-17.mjs} +5 -5
  72. package/dist/{ensureDaemonRunning-BRUmsq6J.cjs → ensureDaemonRunning-B8z37VKD.cjs} +6 -6
  73. package/dist/fileStore-5qpetZS0.mjs +146 -0
  74. package/dist/fileStore-7qhnbs6N.cjs +152 -0
  75. package/dist/{handleResumeCommand-tKD_Hpxc.cjs → handleResumeCommand-BFZlrFVH.cjs} +7 -7
  76. package/dist/{handleResumeCommand-C8thKjqf.mjs → handleResumeCommand-gO8I4keP.mjs} +6 -6
  77. package/dist/{index-DMqDMT1Q.cjs → index-B5PXbZjW.cjs} +80 -62
  78. package/dist/{index-D09T1m8Y.cjs → index-BRMq9gOe.cjs} +3 -3
  79. package/dist/{index-B0UjHlAe.cjs → index-BkluinoS.cjs} +4 -4
  80. package/dist/{index-CdQI0C9p.mjs → index-CO0n9ue6.mjs} +4 -4
  81. package/dist/{index-DPOa4NhL.mjs → index-CeRXrGnH.mjs} +41 -6
  82. package/dist/{index-C6O2vVjm.cjs → index-Df2eHm3O.cjs} +42 -6
  83. package/dist/{index-BTxHphpV.mjs → index-DneHoQXf.mjs} +80 -62
  84. package/dist/{index-BiyC7cZ3.mjs → index-WUj3954m.mjs} +4 -4
  85. package/dist/{index-D3bidoG8.mjs → index-hQ8LP1C2.mjs} +3 -3
  86. package/dist/{index-CUuc6iCn.cjs → index-jF2t3ACW.cjs} +4 -4
  87. package/dist/index.cjs +2 -2
  88. package/dist/index.mjs +2 -2
  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/{install-hnve_9vq.mjs → install-DkYFiVK4.mjs} +3 -3
  92. package/dist/{install-CYRZxS87.cjs → install-FqkSUjPC.cjs} +7 -7
  93. package/dist/{installPiTools-BKnXjrVu.cjs → installPiTools-CL_axh_6.cjs} +1 -1
  94. package/dist/{installTerminalHooks-BQZbvxsZ.cjs → installTerminalHooks-BETLKAtd.cjs} +3 -3
  95. package/dist/lib.cjs +13 -13
  96. package/dist/lib.d.cts +216 -2
  97. package/dist/lib.d.mts +216 -2
  98. package/dist/lib.mjs +13 -13
  99. package/dist/{lidState-Bb8fgXg3.mjs → lidState-DghbfRbr.mjs} +1 -1
  100. package/dist/{lidState-Dv2wwFTj.cjs → lidState-x8cJ8J_9.cjs} +1 -1
  101. package/dist/{localHappyAgentAuth-DjYvkXvV.cjs → localHappyAgentAuth-DZ2kb9uq.cjs} +1 -1
  102. package/dist/{localHappyAgentAuth-NEU7fax7.mjs → localHappyAgentAuth-IKmeRpuQ.mjs} +1 -1
  103. package/dist/{logger-C1GWx3gi.cjs → logger-DgBwUSgS.cjs} +2 -2
  104. package/dist/{logger-BtVhHnD8.mjs → logger-LFr8iPgl.mjs} +2 -2
  105. package/dist/machineMetadata-BglCsfvf.mjs +75 -0
  106. package/dist/machineMetadata-DB03ez4K.cjs +87 -0
  107. package/dist/{main-CWhSsbtU.cjs → main-YQ-Vkakw.cjs} +99 -132
  108. package/dist/{main-B2LWV8DI.mjs → main-_1LSzlLv.mjs} +93 -126
  109. package/dist/{mcp-CARUsXHV.cjs → mcp-BIY80jSc.cjs} +15 -15
  110. package/dist/{mcp-ext92q3Y.mjs → mcp-Csj-mT5Y.mjs} +15 -15
  111. package/dist/{mirrorProtocol-DEy2g1CB.cjs → mirrorProtocol-BphKIAK9.cjs} +15 -6
  112. package/dist/{mirrorProtocol-BwYibqry.mjs → mirrorProtocol-CAxOMBkb.mjs} +15 -6
  113. package/dist/{package-BPPebGQF.mjs → package-DYGwlmXl.mjs} +9 -8
  114. package/dist/{package-SgqTYsjn.cjs → package-NoD8QOOM.cjs} +9 -8
  115. package/dist/{panels-BZ0_Tt7B.mjs → panels-B8zRm7_d.mjs} +5 -5
  116. package/dist/{panels-D1c7q2dD.cjs → panels-DYEc1NyQ.cjs} +5 -5
  117. package/dist/{peerTools-CWKzcQ7u.mjs → peerTools-CK3JYu1k.mjs} +5 -5
  118. package/dist/{peerTools-DRQETXaz.cjs → peerTools-CP-x-Peu.cjs} +5 -5
  119. package/dist/{persistence-BegE7NPa.cjs → persistence-BY-D00wT.cjs} +2 -2
  120. package/dist/{persistence-Cr-wutZ4.mjs → persistence-D2Djrf7t.mjs} +2 -2
  121. package/dist/pi-CqyoZMjI.mjs +380 -0
  122. package/dist/pi-DlsrPCTa.cjs +400 -0
  123. package/dist/{piRunnerArgs-DwvM_yWA.mjs → piRunnerArgs-IZLoL7TG.mjs} +1 -1
  124. package/dist/{piRunnerArgs-Cs-378Vz.cjs → piRunnerArgs-gxLYIZH4.cjs} +1 -1
  125. package/dist/{piRuntime-Bue5mnlc.mjs → piRuntime-D7Y4oHVL.mjs} +2 -2
  126. package/dist/{piRuntime-BG-1td_n.cjs → piRuntime-o5L8uX-W.cjs} +2 -2
  127. package/dist/{piTerminal-G4z-xVyy.cjs → piTerminal-C_-JDkLN.cjs} +18 -18
  128. package/dist/{piTerminal-B5x9X5yV.mjs → piTerminal-Kphx8Uhw.mjs} +18 -18
  129. package/dist/projectPath-C3ioB4Bu.cjs +13 -0
  130. package/dist/{prompt-lgF9IE82.cjs → prompt-Bof2aQkI.cjs} +7 -2
  131. package/dist/{prompt-BOouDaTM.mjs → prompt-QHuFx9j6.mjs} +7 -2
  132. package/dist/{pushNotifications-DaLQUyi0.cjs → pushNotifications-BXoOSq_G.cjs} +14 -4
  133. package/dist/{pushNotifications-BdFjDjQe.mjs → pushNotifications-DXGIhE-A.mjs} +14 -4
  134. package/dist/{query-DYP_W1wp.mjs → query-CcA6DVZK.mjs} +1 -1
  135. package/dist/{query-Ctfg-5gy.cjs → query-CdCxzuaB.cjs} +1 -1
  136. package/dist/{rateLimitWindows-Dj_8voBK.cjs → rateLimitWindows-OpAmdOtC.cjs} +1 -1
  137. package/dist/{rateLimitWindows-CuEqk_0g.mjs → rateLimitWindows-ZtHZHe-l.mjs} +1 -1
  138. package/dist/{registerCommonHandlers-Cj084Sg7.cjs → registerCommonHandlers-CRjBoJLK.cjs} +30 -30
  139. package/dist/{registerCommonHandlers-BAlP7SGc.mjs → registerCommonHandlers-DF6bdDtd.mjs} +2 -2
  140. package/dist/{registerKillSessionHandler-qMju0ZfF.cjs → registerKillSessionHandler-7fOm6ooh.cjs} +6 -6
  141. package/dist/{registerKillSessionHandler-PD0jWtQo.mjs → registerKillSessionHandler-DDCKL3wf.mjs} +6 -6
  142. package/dist/{remoteSessionClient-Bn2qu5C5.mjs → remoteSessionClient-B2POSKFT.mjs} +5 -5
  143. package/dist/{remoteSessionClient-B7i7MkYV.cjs → remoteSessionClient-CFCn42bs.cjs} +5 -5
  144. package/dist/{reportProgressTool-gHItlSzz.mjs → reportProgressTool-tPxEvh6x.mjs} +4 -4
  145. package/dist/{reportProgressTool-CM1JFAHg.cjs → reportProgressTool-th4trcET.cjs} +4 -4
  146. package/dist/{resources-CvIlkzpP.cjs → resources-BPyN59Iv.cjs} +23 -2
  147. package/dist/{resources-y9jfyO-_.mjs → resources-CH1iP6Cv.mjs} +22 -3
  148. package/dist/{run-CNXwIe0A.cjs → run-C_FumCQk.cjs} +2767 -183
  149. package/dist/{run-BM4TxiyN.mjs → run-cKQBbVi4.mjs} +2762 -178
  150. package/dist/{runClaude-C_3I8hvR.mjs → runClaude-CYnM6krL.mjs} +34 -28
  151. package/dist/{runClaude-CWhj2V4Q.cjs → runClaude-z_2YC_aa.cjs} +35 -29
  152. package/dist/{runClaudeDeps-B81cOKnH.cjs → runClaudeDeps-CLubzWnA.cjs} +59 -122
  153. package/dist/{runClaudeDeps-QGrOeDe2.mjs → runClaudeDeps-duS06Pb4.mjs} +52 -114
  154. package/dist/{runGemini-BEdWEZLR.mjs → runGemini-C_Pc2EhH.mjs} +39 -37
  155. package/dist/{runGemini-CgRLYbt5.cjs → runGemini-vEoXV6qT.cjs} +67 -65
  156. package/dist/{runOpenClaw-C1NVmzOL.cjs → runOpenClaw-CXJCtMgB.cjs} +20 -20
  157. package/dist/{runOpenClaw-DdQZAYj1.mjs → runOpenClaw-Cxun1qLC.mjs} +19 -19
  158. package/dist/{sandbox-nocIjliq.cjs → sandbox-CO46H2tK.cjs} +4 -4
  159. package/dist/{sandbox-DjQUdCMG.mjs → sandbox-CsvPnTmz.mjs} +4 -4
  160. package/dist/{selfCheck-DCt4Uzbq.cjs → selfCheck-DIr7Gc0i.cjs} +39 -39
  161. package/dist/selfCheck-NamtBHVB.mjs +85 -0
  162. package/dist/{send-Ct7X4pPU.mjs → send-DMoFg6F1.mjs} +9 -9
  163. package/dist/{send-Dydf_hwZ.cjs → send-X2mfVEyr.cjs} +8 -8
  164. package/dist/{server-CosABFbd.cjs → server-BwTEdbkr.cjs} +6 -6
  165. package/dist/{server-DTQGZMxh.mjs → server-CkqQ0sRH.mjs} +4 -4
  166. package/dist/sessionExitLifecycle-CzkLIgNZ.mjs +142 -0
  167. package/dist/sessionExitLifecycle-DFltxXU8.cjs +148 -0
  168. package/dist/{sessionLock-DokGab2R.cjs → sessionLock-CdIRJlHH.cjs} +25 -5
  169. package/dist/{sessionLock-WYIyaVO4.mjs → sessionLock-JIfwCqMk.mjs} +24 -5
  170. package/dist/{sessionOps-S-qPBLFf.cjs → sessionOps-DVA-00nR.cjs} +4 -4
  171. package/dist/{sessionOps-BIGgRube.mjs → sessionOps-DqlftXxe.mjs} +5 -5
  172. package/dist/{sessionScanner-o5hnMi5e.mjs → sessionScanner-BI0Vo1xT.mjs} +3 -3
  173. package/dist/{sessionScanner-CIMM2hvZ.cjs → sessionScanner-BMwgGAhY.cjs} +3 -3
  174. package/dist/{sessions-BJHEZpi2.mjs → sessions-D6IimX7b.mjs} +11 -11
  175. package/dist/{sessions-JchI1w3z.cjs → sessions-DjgEcHaT.cjs} +10 -10
  176. package/dist/{setupOfflineReconnection-CNiAt5ZP.cjs → setupOfflineReconnection-CjuCiKY3.cjs} +2 -2
  177. package/dist/{setupOfflineReconnection-DMiBO2y9.mjs → setupOfflineReconnection-DgJK_4m1.mjs} +2 -2
  178. package/dist/{spawn-DgvUNYEo.mjs → spawn-Dvzy-tzc.mjs} +15 -15
  179. package/dist/{spawn-6PD7nnoC.cjs → spawn-rhF28shY.cjs} +15 -15
  180. package/dist/{spawnAgents-P006Hqio.mjs → spawnAgents-CCnlq-FI.mjs} +1 -1
  181. package/dist/{spawnAgents-DsXgegHM.cjs → spawnAgents-iwuqrgR9.cjs} +1 -1
  182. package/dist/{spawnHappyCLI-Dywezwk6.cjs → spawnHappyCLI-DnKmIsEt.cjs} +2 -2
  183. package/dist/{spawnHappyCLI-CCOrEtf9.mjs → spawnHappyCLI-Dq3LLXLb.mjs} +1 -1
  184. package/dist/{specialCommands-DPcd9edP.mjs → specialCommands-CcyZ1hGA.mjs} +3 -3
  185. package/dist/{specialCommands-QxPpkGKf.cjs → specialCommands-Zwr2C6A2.cjs} +3 -3
  186. package/dist/{startFileWatcher-DghDOCO4.mjs → startFileWatcher-4thXDK9d.mjs} +1 -1
  187. package/dist/{startFileWatcher-RECH5qY8.cjs → startFileWatcher-K6hJSyiR.cjs} +1 -1
  188. package/dist/startupSessionCreate-BfByJ16A.mjs +24 -0
  189. package/dist/startupSessionCreate-CKEbq0tL.cjs +26 -0
  190. package/dist/{streamRelay-DlUWKUpo.cjs → streamRelay-Gy8Xfnon.cjs} +1 -1
  191. package/dist/{streamRelay-DMV_TXfS.mjs → streamRelay-LcDvyEjK.mjs} +1 -1
  192. package/dist/{sync-D23jbqVa.cjs → sync-1hQ5KHpL.cjs} +1 -1
  193. package/dist/{sync-CSe0Rf45.mjs → sync-DO-2PU45.mjs} +1 -1
  194. package/dist/{systemPrompt-CFNKnh65.mjs → systemPrompt-BctLfMZs.mjs} +3 -3
  195. package/dist/{systemPrompt-BOy4kU4P.cjs → systemPrompt-Dj7pgkMK.cjs} +3 -3
  196. package/dist/{teams-DyY669f0.mjs → teams-Bu8YeOoF.mjs} +8 -8
  197. package/dist/{teams-Ov2BDT-A.cjs → teams-uQxUlyyz.cjs} +8 -8
  198. package/dist/{time-65DcU6Jx.mjs → time-BcoJaG8E.mjs} +1 -1
  199. package/dist/{time-CrwIMHta.cjs → time-nqa9shu8.cjs} +1 -1
  200. package/dist/{titleGenerator-CS_rh2_J.cjs → titleGenerator-D09XyYYG.cjs} +3 -3
  201. package/dist/{titleGenerator-CiAMxf7s.mjs → titleGenerator-D5r06bhf.mjs} +1 -1
  202. package/dist/{todo-KY-okGii.cjs → todo-CCOnL7pT.cjs} +6 -6
  203. package/dist/{todo-BDONw0sK.mjs → todo-D1q8146q.mjs} +6 -6
  204. package/dist/{tools-D8-PnZEG.mjs → tools-D2E--n1x.mjs} +3 -3
  205. package/dist/{tools-_w52DZG6.cjs → tools-DiCXnAC5.cjs} +3 -3
  206. package/dist/{uninstall-8vnLN-IE.cjs → uninstall-BrNwwwSD.cjs} +6 -6
  207. package/dist/{uninstall-_fjGRP9b.mjs → uninstall-CtwXi1Rt.mjs} +3 -3
  208. package/package.json +9 -8
  209. package/dist/machineMetadata-CLHS9sv_.cjs +0 -42
  210. package/dist/machineMetadata-D-g--oU_.mjs +0 -39
  211. package/dist/messageBuffer-BWlGgR3A.mjs +0 -71
  212. package/dist/messageBuffer-fJMH6uY8.cjs +0 -73
  213. package/dist/projectPath-ChLhdOyt.cjs +0 -13
  214. package/dist/selfCheck-CjCF4C3v.mjs +0 -85
@@ -1,24 +1,24 @@
1
1
  'use strict';
2
2
 
3
3
  var node_fs = require('node:fs');
4
- var spawnHappyCLI = require('./spawnHappyCLI-Dywezwk6.cjs');
4
+ var spawnHappyCLI = require('./spawnHappyCLI-DnKmIsEt.cjs');
5
5
  var axios = require('axios');
6
6
  var tweetnacl = require('tweetnacl');
7
7
  var z = require('zod');
8
8
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
9
- var configuration = require('./configuration-CMHZnp6G.cjs');
10
- var localHappyAgentAuth = require('./localHappyAgentAuth-DjYvkXvV.cjs');
9
+ var configuration = require('./configuration-C8JgseHy.cjs');
10
+ var localHappyAgentAuth = require('./localHappyAgentAuth-DZ2kb9uq.cjs');
11
11
  require('cross-spawn');
12
12
  require('node:path');
13
- require('./projectPath-ChLhdOyt.cjs');
13
+ require('./projectPath-C3ioB4Bu.cjs');
14
14
  require('path');
15
15
  require('url');
16
- require('./logger-C1GWx3gi.cjs');
16
+ require('./logger-DgBwUSgS.cjs');
17
17
  require('chalk');
18
18
  require('node:util');
19
19
  require('node:crypto');
20
20
  require('node:os');
21
- require('./package-SgqTYsjn.cjs');
21
+ require('./package-NoD8QOOM.cjs');
22
22
  require('node:fs/promises');
23
23
 
24
24
  const ResumableMetadataSchema = z.z.object({
@@ -148,7 +148,7 @@ function resolveFlavor(metadata) {
148
148
  if (metadata.flavor === "codex" || metadata.codexThreadId) {
149
149
  return "codex";
150
150
  }
151
- if (metadata.flavor === "claude" || metadata.claudeSessionId) {
151
+ if (metadata.flavor === "claude" || metadata.claudeSessionId || metadata.flavor === void 0) {
152
152
  return "claude";
153
153
  }
154
154
  return null;
@@ -1,22 +1,22 @@
1
1
  import { existsSync } from 'node:fs';
2
- import { s as spawnHappyCLI } from './spawnHappyCLI-CCOrEtf9.mjs';
2
+ import { s as spawnHappyCLI } from './spawnHappyCLI-Dq3LLXLb.mjs';
3
3
  import axios, { AxiosError } from 'axios';
4
4
  import tweetnacl from 'tweetnacl';
5
5
  import { z } from 'zod';
6
6
  import { d as decodeBase64, a as decryptWithDataKey, b as decryptLegacy } from './authRelay-DhQhkBvX.mjs';
7
- import { c as configuration } from './configuration-WMi4idBB.mjs';
8
- import { g as getLocalHappyAgentCredentialPath, r as readLocalHappyAgentCredentials } from './localHappyAgentAuth-NEU7fax7.mjs';
7
+ import { c as configuration } from './configuration-BPrfb17M.mjs';
8
+ import { g as getLocalHappyAgentCredentialPath, r as readLocalHappyAgentCredentials } from './localHappyAgentAuth-IKmeRpuQ.mjs';
9
9
  import 'cross-spawn';
10
10
  import 'node:path';
11
11
  import './projectPath-BTBIMB57.mjs';
12
12
  import 'path';
13
13
  import 'url';
14
- import './logger-BtVhHnD8.mjs';
14
+ import './logger-LFr8iPgl.mjs';
15
15
  import 'chalk';
16
16
  import 'node:util';
17
17
  import 'node:crypto';
18
18
  import 'node:os';
19
- import './package-BPPebGQF.mjs';
19
+ import './package-DYGwlmXl.mjs';
20
20
  import 'node:fs/promises';
21
21
 
22
22
  const ResumableMetadataSchema = z.object({
@@ -146,7 +146,7 @@ function resolveFlavor(metadata) {
146
146
  if (metadata.flavor === "codex" || metadata.codexThreadId) {
147
147
  return "codex";
148
148
  }
149
- if (metadata.flavor === "claude" || metadata.claudeSessionId) {
149
+ if (metadata.flavor === "claude" || metadata.claudeSessionId || metadata.flavor === void 0) {
150
150
  return "claude";
151
151
  }
152
152
  return null;
@@ -1,90 +1,93 @@
1
1
  'use strict';
2
2
 
3
- var AcpBackend = require('./AcpBackend-DFipFF7-.cjs');
4
- var logger = require('./logger-C1GWx3gi.cjs');
5
- var AcpSessionManager = require('./AcpSessionManager-0zpvRJXc.cjs');
6
- var index = require('./index-C6O2vVjm.cjs');
3
+ var AcpBackend = require('./AcpBackend-CgHb_ya5.cjs');
4
+ var logger = require('./logger-DgBwUSgS.cjs');
5
+ var AcpSessionManager = require('./AcpSessionManager-CacC2EVn.cjs');
6
+ var index = require('./index-Df2eHm3O.cjs');
7
+ var deterministicJson = require('./deterministicJson-BS7D7URE.cjs');
7
8
  var agentAttachments = require('./agentAttachments-Dbw8iMCZ.cjs');
8
- var configuration = require('./configuration-CMHZnp6G.cjs');
9
- var attachmentContent = require('./attachmentContent-Bo0UAsSu.cjs');
10
- var piRuntime = require('./piRuntime-BG-1td_n.cjs');
9
+ var configuration = require('./configuration-C8JgseHy.cjs');
10
+ var attachmentContent = require('./attachmentContent-mIhbtRKl.cjs');
11
+ var piRuntime = require('./piRuntime-o5L8uX-W.cjs');
11
12
  var node_crypto = require('node:crypto');
12
13
  var path = require('node:path');
13
- var api = require('./api-Cmjfr8Z7.cjs');
14
- var deterministicJson = require('./deterministicJson-B8z2GPi9.cjs');
15
- var client = require('./client-ZjOsn6nZ.cjs');
16
- var registerKillSessionHandler = require('./registerKillSessionHandler-qMju0ZfF.cjs');
17
- var persistence = require('./persistence-BegE7NPa.cjs');
18
- var machineMetadata = require('./machineMetadata-CLHS9sv_.cjs');
19
- var createSessionMetadata = require('./createSessionMetadata-BkIzHALd.cjs');
20
- var setupOfflineReconnection = require('./setupOfflineReconnection-CNiAt5ZP.cjs');
21
- var controlClient = require('./controlClient-C-5qCt8W.cjs');
14
+ var api = require('./api-COHFAkb_.cjs');
15
+ var client = require('./client-DWs6k041.cjs');
16
+ var registerKillSessionHandler = require('./registerKillSessionHandler-7fOm6ooh.cjs');
17
+ var persistence = require('./persistence-BY-D00wT.cjs');
18
+ var machineMetadata = require('./machineMetadata-DB03ez4K.cjs');
19
+ var createSessionMetadata = require('./createSessionMetadata-DNIbKLHg.cjs');
20
+ var setupOfflineReconnection = require('./setupOfflineReconnection-CjuCiKY3.cjs');
21
+ var startupSessionCreate = require('./startupSessionCreate-CKEbq0tL.cjs');
22
+ var controlClient = require('./controlClient-D68Zj7Q-.cjs');
22
23
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
23
- var sessionLock = require('./sessionLock-DokGab2R.cjs');
24
- var acpSessionResume = require('./acpSessionResume-oiCBnAVA.cjs');
25
- var streamRelay = require('./streamRelay-DlUWKUpo.cjs');
26
- var projectPath = require('./projectPath-ChLhdOyt.cjs');
27
- var BasePermissionHandler = require('./BasePermissionHandler-CH3zuEkA.cjs');
28
- var titleGenerator = require('./titleGenerator-CS_rh2_J.cjs');
24
+ var sessionLock = require('./sessionLock-CdIRJlHH.cjs');
25
+ var acpSessionResume = require('./acpSessionResume-BaVMD80f.cjs');
26
+ var streamRelay = require('./streamRelay-Gy8Xfnon.cjs');
27
+ var projectPath = require('./projectPath-C3ioB4Bu.cjs');
28
+ var BasePermissionHandler = require('./BasePermissionHandler-DCP8ZEB4.cjs');
29
+ var titleGenerator = require('./titleGenerator-D09XyYYG.cjs');
29
30
  var editPaths = require('./editPaths-Bqp4OFPw.cjs');
30
31
  require('node:child_process');
31
32
  require('@agentclientprotocol/sdk');
32
- require('./time-CrwIMHta.cjs');
33
+ require('./time-nqa9shu8.cjs');
33
34
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
34
35
  require('./processTree-CMHWlVse.cjs');
35
- require('./package-SgqTYsjn.cjs');
36
+ require('./package-NoD8QOOM.cjs');
36
37
  require('chalk');
37
38
  require('node:util');
38
39
  require('node:fs');
39
40
  require('@paralleldrive/cuid2');
40
41
  require('zod');
42
+ require('./prompt-Bof2aQkI.cjs');
43
+ require('./reportProgressTool-th4trcET.cjs');
44
+ require('./client-D_U2VjO3.cjs');
45
+ require('./precheckCompat-CWOi5c9L.cjs');
46
+ require('./agentGuidance-BtBx2xxE.cjs');
47
+ require('./trimIdent-4gvk9Wk6.cjs');
41
48
  require('node:os');
49
+ require('./pi-DlsrPCTa.cjs');
50
+ require('./fileStore-7qhnbs6N.cjs');
42
51
  require('node:fs/promises');
43
- require('./pushNotifications-DaLQUyi0.cjs');
52
+ require('./client-CUO3ItoB.cjs');
53
+ require('./context-D1lgQTJC.cjs');
54
+ require('./sessionOps-DVA-00nR.cjs');
44
55
  require('axios');
45
- require('./resources-CvIlkzpP.cjs');
46
- require('./lidState-Dv2wwFTj.cjs');
47
- require('os');
48
- require('child_process');
49
- require('node:events');
50
56
  require('socket.io-client');
51
- require('./limits-C-a7gr04.cjs');
52
- require('./registerCommonHandlers-Cj084Sg7.cjs');
53
- require('util');
54
- require('fs/promises');
55
- require('crypto');
56
- require('path');
57
- require('cross-spawn');
58
- require('./sync-D23jbqVa.cjs');
59
57
  require('./backgroundTaskActivity-CBvUdj39.cjs');
60
- require('./prompt-lgF9IE82.cjs');
61
- require('./reportProgressTool-CM1JFAHg.cjs');
62
- require('./client-CuVdN6PP.cjs');
63
- require('./precheckCompat-CWOi5c9L.cjs');
64
- require('./agentGuidance-BtBx2xxE.cjs');
65
- require('./trimIdent-4gvk9Wk6.cjs');
66
- require('./client-BKcK1Bi-.cjs');
67
- require('./context-DXzU5bFM.cjs');
68
- require('./sessionOps-S-qPBLFf.cjs');
69
- require('./tools-_w52DZG6.cjs');
70
- require('./peerTools-DRQETXaz.cjs');
58
+ require('./resources-BPyN59Iv.cjs');
59
+ require('./tools-DiCXnAC5.cjs');
60
+ require('./peerTools-CP-x-Peu.cjs');
71
61
  require('./ids-B6ZC0HGt.cjs');
72
- require('./remoteSessionClient-B7i7MkYV.cjs');
62
+ require('./remoteSessionClient-CFCn42bs.cjs');
73
63
  require('@modelcontextprotocol/sdk/server/mcp.js');
74
64
  require('node:http');
75
65
  require('@modelcontextprotocol/sdk/server/streamableHttp.js');
76
- require('./downloadTarget-BQJK_6oH.cjs');
66
+ require('./limits-C-a7gr04.cjs');
67
+ require('./downloadTarget-LyOiucn_.cjs');
77
68
  require('./terminals-B_bfC9c2.cjs');
78
69
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
79
70
  require('./tmuxSocket-D-Xt6Vn-.cjs');
80
- require('./bootstrap-exVucYav.cjs');
71
+ require('./bootstrap-CYtOtbi7.cjs');
81
72
  require('./webPanels-FCgFKvVe.cjs');
73
+ require('./pushNotifications-BXoOSq_G.cjs');
82
74
  require('./previewPath-B0rBdhy1.cjs');
75
+ require('crypto');
76
+ require('./lidState-x8cJ8J_9.cjs');
77
+ require('os');
78
+ require('child_process');
79
+ require('node:events');
80
+ require('./registerCommonHandlers-CRjBoJLK.cjs');
81
+ require('util');
82
+ require('fs/promises');
83
+ require('path');
84
+ require('cross-spawn');
85
+ require('./sync-1hQ5KHpL.cjs');
83
86
  require('tweetnacl');
84
87
  require('./types-CRS-srZK.cjs');
85
- require('./detectCLI-DR9ZaN6B.cjs');
88
+ require('./detectCLI-BuYR_Qxe.cjs');
86
89
  require('fs');
87
- require('./localHappyAgentAuth-DjYvkXvV.cjs');
90
+ require('./localHappyAgentAuth-DZ2kb9uq.cjs');
88
91
  require('./processTreeSnapshot-mDbnuojn.cjs');
89
92
  require('url');
90
93
  require('node:module');
@@ -104,6 +107,18 @@ function createAcpBackend(options) {
104
107
  return new AcpBackend.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;
@@ -796,7 +811,7 @@ async function runAcp(opts) {
796
811
  agentStateVersion: reconnect.agentStateVersion
797
812
  };
798
813
  } else {
799
- response = await api$1.getOrCreateSession({ tag: sessionTag, metadata, state });
814
+ response = await startupSessionCreate.createSessionForStartup(() => api$1.getOrCreateSession({ tag: sessionTag, metadata, state }), { startedBy: opts.startedBy, log: (m) => logger.logger.debug(m) });
800
815
  }
801
816
  if (response) {
802
817
  logAcp("muted", `Happy Session ID: ${response.id}`);
@@ -910,8 +925,10 @@ async function runAcp(opts) {
910
925
  assistant: isAssistantVariant,
911
926
  ...piSteer ? { piSteer } : {},
912
927
  push: { sendAttention: (input) => api$1.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 = deterministicJson.readPiModelsJson();
931
+ session.updateAgentState((state2) => ({ ...state2, contextUsage: deterministicJson.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
- ${index.BUILTIN_TODO_DISCOVERY}`;
1474
+ const { prompt, slashCommand } = await buildAcpPrompt(batch.message, {
1475
+ todoNoteSent: todoDiscoverySent,
1476
+ todoNote: index.BUILTIN_TODO_DISCOVERY,
1477
+ decorate: (m) => projectInjector.decorate(m)
1478
+ });
1461
1479
  const attachments = batch.attachments ?? [];
1462
1480
  const staged = attachments.length ? await attachmentContent.stageClaudeAttachments(attachments, {
1463
1481
  happyHomeDir: configuration.configuration.happyHomeDir,
@@ -1470,7 +1488,7 @@ ${index.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");
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var _package = require('./package-SgqTYsjn.cjs');
3
+ var _package = require('./package-NoD8QOOM.cjs');
4
4
  var module$1 = require('node:module');
5
5
  var node_fs = require('node:fs');
6
6
  var promises = require('node:fs/promises');
@@ -59,10 +59,10 @@ async function pruneStaleCompileCaches(happyHomeDir, cliVersion) {
59
59
  async function run(args) {
60
60
  enableCompileCacheIfPossible(_package.packageJson.version);
61
61
  if (isStandaloneVersionRequest(args) || isSelfCheckRequest(args)) {
62
- const { selfCheckMain } = await Promise.resolve().then(function () { return require('./selfCheck-DCt4Uzbq.cjs'); });
62
+ const { selfCheckMain } = await Promise.resolve().then(function () { return require('./selfCheck-DIr7Gc0i.cjs'); });
63
63
  process.exit(await selfCheckMain({ verbose: isSelfCheckRequest(args) }));
64
64
  }
65
- const { main } = await Promise.resolve().then(function () { return require('./main-CWhSsbtU.cjs'); });
65
+ const { main } = await Promise.resolve().then(function () { return require('./main-YQ-Vkakw.cjs'); });
66
66
  await main();
67
67
  }
68
68
  void run(process.argv.slice(2));
@@ -2,14 +2,14 @@
2
2
 
3
3
  var node_fs = require('node:fs');
4
4
  var os = require('node:os');
5
- var logger = require('./logger-C1GWx3gi.cjs');
6
- var persistence = require('./persistence-BegE7NPa.cjs');
5
+ var logger = require('./logger-DgBwUSgS.cjs');
6
+ var persistence = require('./persistence-BY-D00wT.cjs');
7
7
  var loginShellEnv = require('./loginShellEnv-BkuYtExZ.cjs');
8
8
  require('chalk');
9
9
  require('node:util');
10
- require('./configuration-CMHZnp6G.cjs');
10
+ require('./configuration-C8JgseHy.cjs');
11
11
  require('node:path');
12
- require('./package-SgqTYsjn.cjs');
12
+ require('./package-NoD8QOOM.cjs');
13
13
  require('node:fs/promises');
14
14
  require('zod');
15
15
  require('./authRelay-Dy1qU9td.cjs');
@@ -1,14 +1,14 @@
1
1
  import { statSync, readdirSync } from 'node:fs';
2
2
  import { homedir } from 'node:os';
3
- import { l as logger } from './logger-BtVhHnD8.mjs';
4
- import { r as readSettings } from './persistence-Cr-wutZ4.mjs';
3
+ import { l as logger } from './logger-LFr8iPgl.mjs';
4
+ import { r as readSettings } from './persistence-D2Djrf7t.mjs';
5
5
  import { d as describeAgentHome, C as CLAUDE_CONFIG_DIR_ENV, a as CODEX_HOME_ENV, f as findClaudeConversation, b as agentHomeCandidates, c as findCodexThread, r as resolveAgentHomes, A as AGENT_HOME_ENV_NAMES, g as agentHomeEnv, p as probeLoginShellEnv } from './loginShellEnv-Dw8M7tkI.mjs';
6
6
  export { h as claudeConversationPath, i as claudeProjectDirName, j as codexRolloutFileMatches, e as expandHomePath } from './loginShellEnv-Dw8M7tkI.mjs';
7
7
  import 'chalk';
8
8
  import 'node:util';
9
- import './configuration-WMi4idBB.mjs';
9
+ import './configuration-BPrfb17M.mjs';
10
10
  import 'node:path';
11
- import './package-BPPebGQF.mjs';
11
+ import './package-DYGwlmXl.mjs';
12
12
  import 'node:fs/promises';
13
13
  import 'zod';
14
14
  import './authRelay-DhQhkBvX.mjs';
@@ -443,7 +443,10 @@ const TeamActionSchema = z$1.discriminatedUnion("type", [
443
443
  z$1.object({ type: z$1.literal("schedule-resume"), scheduleId: id$2, version: z$1.number().int().positive() }),
444
444
  z$1.object({ type: z$1.literal("schedule-cancel"), scheduleId: id$2, version: z$1.number().int().positive() }),
445
445
  z$1.object({ type: z$1.literal("reconcile-operation"), operationId: id$2, claimId: id$2, note: z$1.string().trim().min(1).max(4e3) }),
446
- z$1.object({ type: z$1.literal("join"), name: id$2, sessionId: id$2, botId: id$2.optional() }),
446
+ // B-689: owner asks the execution computer to run a failed/uncertain operation again.
447
+ z$1.object({ type: z$1.literal("retry-operation"), operationId: id$2, claimId: id$2 }),
448
+ /** 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. */
449
+ z$1.object({ type: z$1.literal("join"), name: id$2, sessionId: id$2, botId: id$2.optional(), transfer: z$1.literal(true).optional() }),
447
450
  z$1.object({ type: z$1.literal("delegate"), goal: text$1, acceptance: z$1.array(text$1).min(1).max(32), parentTaskId: id$2.optional(), assigneeBotId: id$2.optional(), botName: id$2.optional(), directory: z$1.string().min(1).max(4096).optional(), assistant: TeamAssistantSchema.optional(), model: TeamModelSchema.optional() }),
448
451
  z$1.object({ type: z$1.literal("message"), taskId: id$2, body: text$1, recipientBotId: id$2.optional() }),
449
452
  z$1.object({ type: z$1.literal("submit"), taskId: id$2, attemptId: id$2, goalVersion: z$1.number().int().positive(), result: text$1 }),
@@ -458,7 +461,18 @@ const TeamActionSchema = z$1.discriminatedUnion("type", [
458
461
  z$1.object({ type: z$1.literal("message-delivered"), messageId: id$2, recipientBotId: id$2, generation: z$1.number().int().positive(), sessionId: id$2 })
459
462
  ]);
460
463
  z$1.object({ requestId: id$2, action: TeamActionSchema });
461
- z$1.object({ name: id$2, machineId: id$2, requestId: id$2.optional(), launch: TeamLaunchSchema.optional() });
464
+ const TeamProjectChoiceSchema = z$1.object({
465
+ projectId: id$2.optional(),
466
+ inheritFromSessionId: id$2.optional(),
467
+ create: z$1.boolean().optional(),
468
+ directory: z$1.string().min(1).max(4096).optional()
469
+ });
470
+ z$1.object({ name: id$2, machineId: id$2, requestId: id$2.optional(), launch: TeamLaunchSchema.optional(), project: TeamProjectChoiceSchema.optional(), sessionId: id$2.optional(), transfer: z$1.literal(true).optional() });
471
+ z$1.object({
472
+ projectId: id$2.nullable().optional(),
473
+ create: z$1.boolean().optional(),
474
+ requestId: id$2.optional()
475
+ }).refine((v) => v.projectId !== void 0 !== (v.create === true), "exactly one of projectId / create");
462
476
  const id$1 = z$1.string().min(1).max(128);
463
477
  const text = z$1.string().min(1).max(32e3);
464
478
  const AUTOMATION_NAME_PATTERN = /^[a-z0-9][a-z0-9-_.]{0,63}$/;
@@ -1001,11 +1015,17 @@ For edit/status/delete, a conflict means the version changed. Read the task and
1001
1015
  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.
1002
1016
  `;
1003
1017
  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.";
1004
- const ContextUsageSchema = z$1.object({
1018
+ z$1.object({
1005
1019
  source: z$1.literal("pi"),
1006
1020
  tokens: z$1.number().finite().nonnegative().nullable(),
1007
1021
  contextWindow: z$1.number().finite().positive(),
1008
- updatedAt: z$1.number().finite().nonnegative()
1022
+ updatedAt: z$1.number().finite().nonnegative(),
1023
+ /** 'configured' (the harness's own model entry) | 'inferred' (same model id in a known table) | 'unknown' (harness default). Absent = older CLI → configured. */
1024
+ windowSource: z$1.string().nullable().optional(),
1025
+ /** Model id the snapshot was measured on (lets the web consult its own table when the window is unknown). */
1026
+ model: z$1.string().nullable().optional(),
1027
+ /** When the harness last compacted; tokens stay null until the next answer measures the new context. */
1028
+ compactedAt: z$1.number().finite().nonnegative().nullable().optional()
1009
1029
  });
1010
1030
  const AgentVersionsSchema = z$1.object({
1011
1031
  checkedAt: z$1.number(),
@@ -1020,12 +1040,27 @@ const AgentVersionsSchema = z$1.object({
1020
1040
  const AGENT_VERSION_SOURCES = [
1021
1041
  { id: "claude", label: "Claude Code", command: "claude", package: "@anthropic-ai/claude-code", docs: "https://code.claude.com/docs/en/setup" },
1022
1042
  { id: "codex", label: "Codex", command: "codex", package: "@openai/codex", docs: "https://github.com/openai/codex#installation-and-usage" },
1023
- { id: "pi", label: "Pi", command: "pi", package: "@mariozechner/pi-coding-agent", docs: "https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent" },
1043
+ // B-719: @mariozechner/pi-coding-agent is deprecated at 0.73.1 ("use @earendil-works/pi-coding-agent"),
1044
+ // so comparing against it reported every newer pi as current.
1045
+ { id: "pi", label: "Pi", command: "pi", package: "@earendil-works/pi-coding-agent", docs: "https://github.com/earendil-works/pi" },
1024
1046
  { id: "gemini", label: "Gemini CLI", command: "gemini", package: "@google/gemini-cli", docs: "https://github.com/google-gemini/gemini-cli#installation" },
1025
1047
  { id: "opencode", label: "OpenCode", command: "opencode", package: "opencode-ai", docs: "https://opencode.ai/docs/" },
1026
1048
  { id: "openclaw", label: "OpenClaw", command: "openclaw", package: "openclaw", docs: "https://docs.openclaw.ai/install/updating" },
1027
1049
  { id: "claude-sdk", label: "Claude Agent SDK", command: null, package: "@anthropic-ai/claude-agent-sdk", docs: "https://github.com/anthropics/claude-agent-sdk-typescript" }
1028
1050
  ];
1051
+ const HARNESS_INSTALL_IDS = ["claude", "codex", "gemini", "pi"];
1052
+ function isHarnessInstallId(value) {
1053
+ return typeof value === "string" && HARNESS_INSTALL_IDS.includes(value);
1054
+ }
1055
+ const HARNESS_INSTALL_CAPABILITY_VERSION = 1;
1056
+ z$1.object({
1057
+ harness: z$1.string(),
1058
+ state: z$1.string(),
1059
+ // 'installing' | 'installed' | 'failed' (open: older Web shows unknown states as failed)
1060
+ detail: z$1.string().optional(),
1061
+ startedAt: z$1.number(),
1062
+ at: z$1.number()
1063
+ });
1029
1064
  const CLAUDE_OPUS_55_MODEL = "claude-opus-5-5";
1030
1065
  const CLAUDE_OPUS_55_CAPABILITY = "claude-opus-5-5-v1";
1031
1066
  function supportsClaudeOpus55(metadata) {
@@ -1103,4 +1138,4 @@ const ServerMigrateNoticeSchema = z$1.object({
1103
1138
  issuedAt: z$1.number().int().positive()
1104
1139
  });
1105
1140
 
1106
- export { AUTOMATION_NAME_PATTERN as A, BUILTIN_TODO_SKILL as B, ContextUsageSchema as C, AUTOMATION_CLAIM_MAX_RUNS as D, AUTOMATION_DAEMON_CAPABILITY_PRECHECK as E, AUTOMATION_DEFAULT_LEASE_MS as F, PROMPT_QUEUE_CAPABILITY as P, ReleaseDrainNoticeSchema as R, STREAM_DELTA_MAX_CHARS as S, PROJECT_SESSION_CAPABILITY as a, AUTOMATION_PRECHECK_MAX_TIMEOUT_MS as b, AutomationPrecheckSchema as c, createEnvelope as d, createBuiltinTodoClient as e, BUILTIN_TODO_DISCOVERY as f, getAgentCodeDefaults as g, isClaudeOpus55Model as h, isAutomationRunTerminal as i, supportsClaudeOpus55 as j, AutomationNameSchema as k, AutomationConcurrencySchema as l, AutomationActionSchema as m, normalizeAgentKey as n, AutomationTriggerSchema as o, AgentVersionsSchema as p, PI_STEER_CAPABILITY as q, AGENT_VERSION_SOURCES as r, streamKeyOf as s, RelayAssignmentResponseSchema as t, CODEX_STEER_CAPABILITY as u, RelayCandidatesResponseSchema as v, ServerMigrateNoticeSchema as w, AUTOMATION_SUMMARY_MAX_CHARS as x, AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS as y, AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS as z };
1141
+ export { AUTOMATION_NAME_PATTERN as A, BUILTIN_TODO_SKILL as B, CODEX_STEER_CAPABILITY as C, AUTOMATION_CLAIM_MAX_RUNS as D, AUTOMATION_DAEMON_CAPABILITY_PRECHECK as E, AUTOMATION_DEFAULT_LEASE_MS as F, HARNESS_INSTALL_CAPABILITY_VERSION as H, PROMPT_QUEUE_CAPABILITY as P, ReleaseDrainNoticeSchema as R, STREAM_DELTA_MAX_CHARS as S, PROJECT_SESSION_CAPABILITY as a, AUTOMATION_PRECHECK_MAX_TIMEOUT_MS as b, AutomationPrecheckSchema as c, createEnvelope as d, createBuiltinTodoClient as e, BUILTIN_TODO_DISCOVERY as f, getAgentCodeDefaults as g, isClaudeOpus55Model as h, isAutomationRunTerminal as i, supportsClaudeOpus55 as j, AutomationNameSchema as k, AutomationConcurrencySchema as l, AutomationActionSchema as m, normalizeAgentKey as n, AutomationTriggerSchema as o, AgentVersionsSchema as p, PI_STEER_CAPABILITY as q, AGENT_VERSION_SOURCES as r, streamKeyOf as s, RelayAssignmentResponseSchema as t, RelayCandidatesResponseSchema as u, ServerMigrateNoticeSchema as v, isHarnessInstallId as w, AUTOMATION_SUMMARY_MAX_CHARS as x, AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS as y, AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS as z };
@@ -463,7 +463,10 @@ const TeamActionSchema = z.z.discriminatedUnion("type", [
463
463
  z.z.object({ type: z.z.literal("schedule-resume"), scheduleId: id$2, version: z.z.number().int().positive() }),
464
464
  z.z.object({ type: z.z.literal("schedule-cancel"), scheduleId: id$2, version: z.z.number().int().positive() }),
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
- z.z.object({ type: z.z.literal("join"), name: id$2, sessionId: id$2, botId: id$2.optional() }),
466
+ // B-689: owner asks the execution computer to run a failed/uncertain operation again.
467
+ z.z.object({ type: z.z.literal("retry-operation"), operationId: id$2, claimId: id$2 }),
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() }),
467
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() }),
468
471
  z.z.object({ type: z.z.literal("message"), taskId: id$2, body: text$1, recipientBotId: id$2.optional() }),
469
472
  z.z.object({ type: z.z.literal("submit"), taskId: id$2, attemptId: id$2, goalVersion: z.z.number().int().positive(), result: text$1 }),
@@ -478,7 +481,18 @@ const TeamActionSchema = z.z.discriminatedUnion("type", [
478
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 })
479
482
  ]);
480
483
  z.z.object({ requestId: id$2, action: TeamActionSchema });
481
- 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");
482
496
  const id$1 = z.z.string().min(1).max(128);
483
497
  const text = z.z.string().min(1).max(32e3);
484
498
  const AUTOMATION_NAME_PATTERN = /^[a-z0-9][a-z0-9-_.]{0,63}$/;
@@ -1021,11 +1035,17 @@ For edit/status/delete, a conflict means the version changed. Read the task and
1021
1035
  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.
1022
1036
  `;
1023
1037
  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.";
1024
- const ContextUsageSchema = z.z.object({
1038
+ z.z.object({
1025
1039
  source: z.z.literal("pi"),
1026
1040
  tokens: z.z.number().finite().nonnegative().nullable(),
1027
1041
  contextWindow: z.z.number().finite().positive(),
1028
- updatedAt: z.z.number().finite().nonnegative()
1042
+ updatedAt: z.z.number().finite().nonnegative(),
1043
+ /** 'configured' (the harness's own model entry) | 'inferred' (same model id in a known table) | 'unknown' (harness default). Absent = older CLI → configured. */
1044
+ windowSource: z.z.string().nullable().optional(),
1045
+ /** Model id the snapshot was measured on (lets the web consult its own table when the window is unknown). */
1046
+ model: z.z.string().nullable().optional(),
1047
+ /** When the harness last compacted; tokens stay null until the next answer measures the new context. */
1048
+ compactedAt: z.z.number().finite().nonnegative().nullable().optional()
1029
1049
  });
1030
1050
  const AgentVersionsSchema = z.z.object({
1031
1051
  checkedAt: z.z.number(),
@@ -1040,12 +1060,27 @@ const AgentVersionsSchema = z.z.object({
1040
1060
  const AGENT_VERSION_SOURCES = [
1041
1061
  { id: "claude", label: "Claude Code", command: "claude", package: "@anthropic-ai/claude-code", docs: "https://code.claude.com/docs/en/setup" },
1042
1062
  { id: "codex", label: "Codex", command: "codex", package: "@openai/codex", docs: "https://github.com/openai/codex#installation-and-usage" },
1043
- { id: "pi", label: "Pi", command: "pi", package: "@mariozechner/pi-coding-agent", docs: "https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent" },
1063
+ // B-719: @mariozechner/pi-coding-agent is deprecated at 0.73.1 ("use @earendil-works/pi-coding-agent"),
1064
+ // so comparing against it reported every newer pi as current.
1065
+ { id: "pi", label: "Pi", command: "pi", package: "@earendil-works/pi-coding-agent", docs: "https://github.com/earendil-works/pi" },
1044
1066
  { id: "gemini", label: "Gemini CLI", command: "gemini", package: "@google/gemini-cli", docs: "https://github.com/google-gemini/gemini-cli#installation" },
1045
1067
  { id: "opencode", label: "OpenCode", command: "opencode", package: "opencode-ai", docs: "https://opencode.ai/docs/" },
1046
1068
  { id: "openclaw", label: "OpenClaw", command: "openclaw", package: "openclaw", docs: "https://docs.openclaw.ai/install/updating" },
1047
1069
  { id: "claude-sdk", label: "Claude Agent SDK", command: null, package: "@anthropic-ai/claude-agent-sdk", docs: "https://github.com/anthropics/claude-agent-sdk-typescript" }
1048
1070
  ];
1071
+ const HARNESS_INSTALL_IDS = ["claude", "codex", "gemini", "pi"];
1072
+ function isHarnessInstallId(value) {
1073
+ return typeof value === "string" && HARNESS_INSTALL_IDS.includes(value);
1074
+ }
1075
+ const HARNESS_INSTALL_CAPABILITY_VERSION = 1;
1076
+ z.z.object({
1077
+ harness: z.z.string(),
1078
+ state: z.z.string(),
1079
+ // 'installing' | 'installed' | 'failed' (open: older Web shows unknown states as failed)
1080
+ detail: z.z.string().optional(),
1081
+ startedAt: z.z.number(),
1082
+ at: z.z.number()
1083
+ });
1049
1084
  const CLAUDE_OPUS_55_MODEL = "claude-opus-5-5";
1050
1085
  const CLAUDE_OPUS_55_CAPABILITY = "claude-opus-5-5-v1";
1051
1086
  function supportsClaudeOpus55(metadata) {
@@ -1141,7 +1176,7 @@ exports.AutomationTriggerSchema = AutomationTriggerSchema;
1141
1176
  exports.BUILTIN_TODO_DISCOVERY = BUILTIN_TODO_DISCOVERY;
1142
1177
  exports.BUILTIN_TODO_SKILL = BUILTIN_TODO_SKILL;
1143
1178
  exports.CODEX_STEER_CAPABILITY = CODEX_STEER_CAPABILITY;
1144
- exports.ContextUsageSchema = ContextUsageSchema;
1179
+ exports.HARNESS_INSTALL_CAPABILITY_VERSION = HARNESS_INSTALL_CAPABILITY_VERSION;
1145
1180
  exports.PI_STEER_CAPABILITY = PI_STEER_CAPABILITY;
1146
1181
  exports.PROJECT_SESSION_CAPABILITY = PROJECT_SESSION_CAPABILITY;
1147
1182
  exports.PROMPT_QUEUE_CAPABILITY = PROMPT_QUEUE_CAPABILITY;
@@ -1155,6 +1190,7 @@ exports.createEnvelope = createEnvelope;
1155
1190
  exports.getAgentCodeDefaults = getAgentCodeDefaults;
1156
1191
  exports.isAutomationRunTerminal = isAutomationRunTerminal;
1157
1192
  exports.isClaudeOpus55Model = isClaudeOpus55Model;
1193
+ exports.isHarnessInstallId = isHarnessInstallId;
1158
1194
  exports.normalizeAgentKey = normalizeAgentKey;
1159
1195
  exports.streamKeyOf = streamKeyOf;
1160
1196
  exports.supportsClaudeOpus55 = supportsClaudeOpus55;