very-happy-cli 0.2.200 → 0.2.201

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 (216) hide show
  1. package/dist/{AcpBackend-Cnp6WNn8.mjs → AcpBackend-BNinFMHZ.mjs} +3 -3
  2. package/dist/{AcpBackend-CwSShYPI.cjs → AcpBackend-CMFlng3C.cjs} +3 -3
  3. package/dist/{AcpSessionManager-DqW99tOL.cjs → AcpSessionManager-CPgoICjp.cjs} +2 -2
  4. package/dist/{AcpSessionManager-C4O3jhT_.mjs → AcpSessionManager-Dg6gKavf.mjs} +2 -2
  5. package/dist/{BasePermissionHandler-8Msj0Z8j.mjs → BasePermissionHandler-DwcfWUjr.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-CgqjIUyG.cjs → BasePermissionHandler-c-NaRa_E.cjs} +1 -1
  7. package/dist/{account-DcNh2_SN.cjs → account-D23SGj7p.cjs} +11 -11
  8. package/dist/{account-BIxPuBEs.mjs → account-pzgzyIXW.mjs} +11 -11
  9. package/dist/{accountService-BDJo14mY.cjs → accountService-Cns8UYGI.cjs} +4 -4
  10. package/dist/{accountService-ELazcp3V.mjs → accountService-DEpIq6CF.mjs} +4 -4
  11. package/dist/{acpSessionResume-B_W8uTI6.cjs → acpSessionResume-DklOhwir.cjs} +1 -1
  12. package/dist/{acpSessionResume-De_sTG30.mjs → acpSessionResume-urFpnGsk.mjs} +1 -1
  13. package/dist/{agentHome-C-usjJwB.cjs → agentHome-BTwMaYw1.cjs} +4 -4
  14. package/dist/{agentHome-C-900jC1.mjs → agentHome-DyrLqr8b.mjs} +4 -4
  15. package/dist/{api-DCUiAds-.mjs → api-1CD4oRSW.mjs} +10 -10
  16. package/dist/{api-BPWRzeNF.cjs → api-KVVs-GkM.cjs} +10 -10
  17. package/dist/{apiMachine-DjhbA1rL.cjs → apiMachine-1sd5IVIB.cjs} +18 -18
  18. package/dist/{apiMachine-CJl4m3V3.mjs → apiMachine-BDVE6MOn.mjs} +18 -18
  19. package/dist/{attachmentContent-BKIq6EXR.mjs → attachmentContent-CeF54XeO.mjs} +2 -2
  20. package/dist/{attachmentContent-C2f1UEP9.cjs → attachmentContent-f3BbOKqz.cjs} +2 -2
  21. package/dist/{auth-uLRHXOGY.mjs → auth-CV2H-smf.mjs} +8 -8
  22. package/dist/{auth-oAnLi4Tl.cjs → auth-CXCX-iJ-.cjs} +5 -5
  23. package/dist/{auth-8jKFCZOX.mjs → auth-WCd2S1zA.mjs} +5 -5
  24. package/dist/{auth-h6oU63Ni.cjs → auth-eielZ6Sc.cjs} +8 -8
  25. package/dist/{auto-Bpa5iA1A.cjs → auto-49cRCADN.cjs} +17 -17
  26. package/dist/{auto-A5arQ-bI.mjs → auto-BsCE_UHT.mjs} +17 -17
  27. package/dist/{bootstrap-BkLFgEGF.mjs → bootstrap-D_1MskAl.mjs} +2 -2
  28. package/dist/{bootstrap-DUKAKxrJ.cjs → bootstrap-N1PY4ypX.cjs} +2 -2
  29. package/dist/{browser-Ds-N-Dup.cjs → browser-B0SEB6r3.cjs} +1 -1
  30. package/dist/{browser-BAlw0rns.mjs → browser-DL3QIQLS.mjs} +1 -1
  31. package/dist/{claudeAccountEnv-D33xXRE7.cjs → claudeAccountEnv-Btp39mfa.cjs} +1 -1
  32. package/dist/{claudeAccountEnv-CI8RlIB9.mjs → claudeAccountEnv-DowsOlDB.mjs} +1 -1
  33. package/dist/{claudeLocal-X48n0RhP.mjs → claudeLocal-DRMWkdCC.mjs} +5 -5
  34. package/dist/{claudeLocal-BbsOT-EF.cjs → claudeLocal-Ix69XJ1t.cjs} +5 -5
  35. package/dist/{claudeLocalLauncher-D18gRtxz.mjs → claudeLocalLauncher-D4tU6R5n.mjs} +10 -10
  36. package/dist/{claudeLocalLauncher-D1jS3iK4.cjs → claudeLocalLauncher-rDojqNoa.cjs} +10 -10
  37. package/dist/{claudeSessionFork-Bkxn40Y8.cjs → claudeSessionFork-C_X08LFh.cjs} +1 -1
  38. package/dist/{claudeSessionFork-n1vMiFcP.mjs → claudeSessionFork-H0ZVQALg.mjs} +1 -1
  39. package/dist/{client-Blpuk2Hr.mjs → client-4YWjreN3.mjs} +2 -2
  40. package/dist/{client-BXwIqRha.mjs → client-BgInTvr6.mjs} +2 -2
  41. package/dist/{client-BnoN4P4t.cjs → client-BoymtYLP.cjs} +2 -2
  42. package/dist/{client-C0qjAgZ_.mjs → client-CK-jvgM1.mjs} +4 -4
  43. package/dist/{client-BgxQ9aej.mjs → client-CMUlpYcy.mjs} +3 -3
  44. package/dist/{client-C8BTmcrh.cjs → client-DGqnrSg4.cjs} +4 -4
  45. package/dist/{client-1zIbVVX5.cjs → client-DI8Rxsbw.cjs} +3 -3
  46. package/dist/{client-D0_UOmC1.cjs → client-P1VkI76z.cjs} +2 -2
  47. package/dist/codex/happyMcpStdioBridge.cjs +18 -18
  48. package/dist/codex/happyMcpStdioBridge.mjs +18 -18
  49. package/dist/{codexAccount-BAezf1fY.mjs → codexAccount-CieIQLOX.mjs} +1 -1
  50. package/dist/{codexAccount-DfeCHUOU.cjs → codexAccount-D-OBY29W.cjs} +1 -1
  51. package/dist/{codexAppServerClient-xBeqblCj.cjs → codexAppServerClient-BnMR-DRn.cjs} +3 -3
  52. package/dist/{codexAppServerClient-By4ntTIr.mjs → codexAppServerClient-aDrsSyjS.mjs} +3 -3
  53. package/dist/{codexCommand-C7BVsmPu.mjs → codexCommand-BCpJzf3q.mjs} +49 -48
  54. package/dist/{codexCommand-CgzJe-Ti.cjs → codexCommand-C3oEEpOa.cjs} +53 -52
  55. package/dist/{codexTermination-BS0sLBKS.mjs → codexTermination-B5haG5wJ.mjs} +1 -1
  56. package/dist/{codexTermination-DVrdQx3Q.cjs → codexTermination-DXhw5Pzi.cjs} +1 -1
  57. package/dist/{config-4R0rnthZ.cjs → config-CdGiZZKy.cjs} +3 -3
  58. package/dist/{config-D3jidXDu.mjs → config-D9wjo4oa.mjs} +3 -3
  59. package/dist/{configuration-4pG95tsq.mjs → configuration-DhEqAYzz.mjs} +1 -1
  60. package/dist/{configuration-ClUt7pqs.cjs → configuration-LWFmTxty.cjs} +1 -1
  61. package/dist/{connect-Da2NQJ3K.cjs → connect-BZLD0aVm.cjs} +13 -13
  62. package/dist/{connect-Do5qcqmg.mjs → connect-CY_EMXQs.mjs} +13 -13
  63. package/dist/{context-wMsIGwBw.cjs → context-BbZ18lX0.cjs} +1 -1
  64. package/dist/{context-Cf05DtNM.mjs → context-UzqWaA7f.mjs} +1 -1
  65. package/dist/{controlClient-bqCKl9Nv.mjs → controlClient-PaIiDxM6.mjs} +3 -3
  66. package/dist/{controlClient-SYDFcIkk.cjs → controlClient-TVMpETsR.cjs} +3 -3
  67. package/dist/{createSessionMetadata-CQkxe_4T.mjs → createSessionMetadata-BWb81WZg.mjs} +2 -2
  68. package/dist/{createSessionMetadata-msQTEvvn.cjs → createSessionMetadata-hGZeo_nR.cjs} +2 -2
  69. package/dist/{daemonAccounts-B8xnkprW.mjs → daemonAccounts-D5shoCLt.mjs} +3 -3
  70. package/dist/{daemonAccounts-Ch_rSTSX.cjs → daemonAccounts-ciidbU2h.cjs} +2 -2
  71. package/dist/{defaultPermissionMode-BETWd5Lf.cjs → defaultPermissionMode-Cs_Tv83b.cjs} +1 -1
  72. package/dist/{defaultPermissionMode-Cl3OvdHp.mjs → defaultPermissionMode-DgeiMMqy.mjs} +1 -1
  73. package/dist/{deterministicJson-CQ8jkArF.cjs → deterministicJson-BpDDS7c9.cjs} +67 -20
  74. package/dist/{deterministicJson-BRAeReBK.mjs → deterministicJson-Cg3z7uUX.mjs} +68 -21
  75. package/dist/{doctor-Dy7z3qvy.mjs → doctor-BanQ3jQg.mjs} +7 -7
  76. package/dist/{doctor-C9D-t20z.cjs → doctor-DOzji0f7.cjs} +7 -7
  77. package/dist/{downloadTarget-Diq-GBu4.mjs → downloadTarget-BCSXmPRE.mjs} +6 -6
  78. package/dist/{downloadTarget-DfoOSrYi.cjs → downloadTarget-BhIAhyEV.cjs} +6 -6
  79. package/dist/{ensureDaemonRunning-LqrgqVG3.mjs → ensureDaemonRunning-BZGBE838.mjs} +5 -5
  80. package/dist/{ensureDaemonRunning-Df76EtKd.cjs → ensureDaemonRunning-DMOCzvQP.cjs} +5 -5
  81. package/dist/{format-CbliQN8V.mjs → format-BxGkJUki.mjs} +2 -1
  82. package/dist/{format-P9_M_7ga.cjs → format-CgiY6uup.cjs} +2 -1
  83. package/dist/{handleResumeCommand-Dz4Aw_aZ.mjs → handleResumeCommand-BRV-9h0o.mjs} +5 -5
  84. package/dist/{handleResumeCommand-CjCtwrrm.cjs → handleResumeCommand-ChnR-12l.cjs} +5 -5
  85. package/dist/{index-BiutHOAO.cjs → index-44o_qMvE.cjs} +14 -4
  86. package/dist/{index-CdOnhx2X.cjs → index-B7HlUXOX.cjs} +4 -4
  87. package/dist/{index-CbzettaI.cjs → index-BuOzDU17.cjs} +4 -4
  88. package/dist/{index-Sdvy1Lsf.mjs → index-C_Y9426m.mjs} +3 -3
  89. package/dist/{index-kwsivEs-.mjs → index-CiRMvS73.mjs} +14 -5
  90. package/dist/{index-CjMA70-R.mjs → index-D5abHQNL.mjs} +46 -45
  91. package/dist/{index-DUwOmhnq.cjs → index-DnEgpRo4.cjs} +3 -3
  92. package/dist/{index-BNBXrqRE.mjs → index-Do1r62PF.mjs} +4 -4
  93. package/dist/{index-ByBOdEvG.cjs → index-DuOthh8V.cjs} +47 -46
  94. package/dist/{index-XP-qcJQ3.mjs → index-HJFzeG0B.mjs} +4 -4
  95. package/dist/index.cjs +2 -2
  96. package/dist/index.mjs +2 -2
  97. package/dist/{install-DMXd8Z4c.mjs → install-BurTXawL.mjs} +3 -3
  98. package/dist/{install-C4dKrmxR.cjs → install-CUAUG3u4.cjs} +3 -3
  99. package/dist/{issue-COytLvGE.mjs → issue-DpMsnOFm.mjs} +8 -8
  100. package/dist/{issue-BijeNKIT.cjs → issue-feEUrjV0.cjs} +8 -8
  101. package/dist/lib.cjs +12 -12
  102. package/dist/lib.d.cts +1 -0
  103. package/dist/lib.d.mts +1 -0
  104. package/dist/lib.mjs +12 -12
  105. package/dist/{localHappyAgentAuth-CjtNcaI0.cjs → localHappyAgentAuth-DxlQgaer.cjs} +1 -1
  106. package/dist/{localHappyAgentAuth-DeDQjw24.mjs → localHappyAgentAuth-kg2RFvOy.mjs} +1 -1
  107. package/dist/{logger-BLMi8oJK.mjs → logger-CFrzcRHD.mjs} +17 -3
  108. package/dist/{logger-D28MY1Bv.cjs → logger-Hyhy2boA.cjs} +17 -2
  109. package/dist/{machineMetadata-BzjrIn_N.cjs → machineMetadata-BLymhM03.cjs} +3 -3
  110. package/dist/{machineMetadata-D8OWVD4l.mjs → machineMetadata-DiStbYik.mjs} +3 -3
  111. package/dist/{main-DoJIcSOh.cjs → main-7G17Noc3.cjs} +49 -49
  112. package/dist/{main-c0fCuBON.mjs → main-D1rk-68I.mjs} +49 -49
  113. package/dist/{mcp-DKkBFGUa.mjs → mcp-C0DMPeTt.mjs} +18 -18
  114. package/dist/{mcp-CEtvR6tG.cjs → mcp-DUeAS-D6.cjs} +18 -18
  115. package/dist/{mirrorProtocol-CCl9dtzh.cjs → mirrorProtocol-YUoEuIYO.cjs} +3 -3
  116. package/dist/{mirrorProtocol-DFQLXDBI.mjs → mirrorProtocol-dRyartIG.mjs} +3 -3
  117. package/dist/{package-BFSsS_dl.cjs → package-06cGlmeD.cjs} +7 -7
  118. package/dist/{package-DbGqY8Ej.mjs → package-DxE8PttX.mjs} +7 -7
  119. package/dist/{panels-2yIO9FxQ.mjs → panels-BUqmsRE0.mjs} +5 -5
  120. package/dist/{panels-BqLXIQif.cjs → panels-D0GHfIJC.cjs} +5 -5
  121. package/dist/{peerTools-4GYKxr8J.mjs → peerTools-BiFpxXdf.mjs} +5 -5
  122. package/dist/{peerTools-Z8V2E0AF.cjs → peerTools-CTCyRdg2.cjs} +5 -5
  123. package/dist/{persistence-DbOKjdUD.mjs → persistence-CF7oV1oH.mjs} +3 -3
  124. package/dist/{persistence-TpVFA5-I.cjs → persistence-_W9tE-bW.cjs} +2 -2
  125. package/dist/{piRunnerArgs-Bdj0sjAT.mjs → piRunnerArgs-Cfc-F-FJ.mjs} +1 -1
  126. package/dist/{piRunnerArgs-DOEJJymf.cjs → piRunnerArgs-T2cAiaGW.cjs} +1 -1
  127. package/dist/{piRuntime-DiRayy91.cjs → piRuntime-BzECTca4.cjs} +1 -1
  128. package/dist/{piRuntime-B0QZykV7.mjs → piRuntime-CzYkZrYV.mjs} +1 -1
  129. package/dist/{piTerminal-DGF4X7C-.mjs → piTerminal-0tOAYsFm.mjs} +20 -20
  130. package/dist/{piTerminal-DciFqPEi.cjs → piTerminal-WF--dHaC.cjs} +20 -20
  131. package/dist/{pushNotifications-CrCTpDiN.mjs → pushNotifications-CxX10K6n.mjs} +3 -3
  132. package/dist/{pushNotifications-C1i2W1GQ.cjs → pushNotifications-DdzTbrA3.cjs} +3 -3
  133. package/dist/{query-CrSvcV32.mjs → query-Bkh7d52V.mjs} +1 -1
  134. package/dist/{query-BkOpCpRo.cjs → query-Cwx4pv91.cjs} +1 -1
  135. package/dist/{rateLimitWindows-DZVrafmm.mjs → rateLimitWindows-DdUMUEoy.mjs} +1 -1
  136. package/dist/{rateLimitWindows-BREA7OZj.cjs → rateLimitWindows-DjJjgjt4.cjs} +1 -1
  137. package/dist/{reconnectGate-YQ5jXJfY.cjs → reconnectGate-DeDhtQJW.cjs} +1 -1
  138. package/dist/{reconnectGate-COxAZTv8.mjs → reconnectGate-uTLj82tS.mjs} +1 -1
  139. package/dist/{registerCommonHandlers-Cfl_dEWs.mjs → registerCommonHandlers-BYrmi-A4.mjs} +2 -2
  140. package/dist/{registerCommonHandlers-D95IxqDN.cjs → registerCommonHandlers-BrEtSwNk.cjs} +2 -2
  141. package/dist/{registerKillSessionHandler-DJJXtc_L.cjs → registerKillSessionHandler-Bp3g11wW.cjs} +6 -6
  142. package/dist/{registerKillSessionHandler-DoE6xgH3.mjs → registerKillSessionHandler-Cuzq6ecP.mjs} +6 -6
  143. package/dist/{registerSideQuestionHandler-Dv00rqcy.mjs → registerSideQuestionHandler-BmEWWaZW.mjs} +4 -4
  144. package/dist/{registerSideQuestionHandler-DsRz-aD9.cjs → registerSideQuestionHandler-ChIbHl_g.cjs} +4 -4
  145. package/dist/{remoteSessionClient-BFd_D9ka.mjs → remoteSessionClient-Dj2rV8Az.mjs} +5 -5
  146. package/dist/{remoteSessionClient-DleOeQlN.cjs → remoteSessionClient-DoxfnpnK.cjs} +5 -5
  147. package/dist/{reportProgressTool-DtEpDqv3.cjs → reportProgressTool-DvZhaEiN.cjs} +5 -5
  148. package/dist/{reportProgressTool-D4xKY9Ur.mjs → reportProgressTool-qo0QIFNd.mjs} +5 -5
  149. package/dist/{run-CVAIFpsp.cjs → run-BqlWdDTL.cjs} +109 -61
  150. package/dist/{run-iDEMW4js.mjs → run-mHeOSOEt.mjs} +109 -61
  151. package/dist/{runClaude-gucCQBma.cjs → runClaude-MjIrNrxT.cjs} +29 -28
  152. package/dist/{runClaude-DvHdLJaV.mjs → runClaude-Z4BVFEdC.mjs} +26 -25
  153. package/dist/{runClaudeDeps-DkFWFwVc.mjs → runClaudeDeps-8RXtu0Zc.mjs} +49 -48
  154. package/dist/{runClaudeDeps-CQ8vvqUQ.cjs → runClaudeDeps-tPqwAl_m.cjs} +43 -42
  155. package/dist/{runGemini-B2lXQDru.mjs → runGemini-DG3jIxWv.mjs} +36 -35
  156. package/dist/{runGemini-C0vqJYtS.cjs → runGemini-uc-fViXY.cjs} +36 -35
  157. package/dist/{runOpenClaw-Ddb6sOkY.mjs → runOpenClaw-C4676Sdl.mjs} +18 -18
  158. package/dist/{runOpenClaw-DNV7GX73.cjs → runOpenClaw-DZtoCmSG.cjs} +18 -18
  159. package/dist/{sandbox-FA0RlaZg.cjs → sandbox-DS7uZ71y.cjs} +4 -4
  160. package/dist/{sandbox-Cw0cPDDh.mjs → sandbox-r29ys6I4.mjs} +4 -4
  161. package/dist/selfCheck-BmT9ihpR.mjs +89 -0
  162. package/dist/{selfCheck-DFC8fzhF.cjs → selfCheck-CSZ-wx1W.cjs} +40 -40
  163. package/dist/{send-CwgqPftE.mjs → send-BGApHm-z.mjs} +8 -8
  164. package/dist/{send-BFd-5b_Q.cjs → send-CrmLy9lW.cjs} +8 -8
  165. package/dist/{server-DwOdMGAP.cjs → server-CjwXsTKP.cjs} +6 -6
  166. package/dist/{server-C_4Fk45r.mjs → server-hutEAAn1.mjs} +4 -4
  167. package/dist/{sessionLock-CphKQyav.mjs → sessionLock-Dj9_lShU.mjs} +3 -3
  168. package/dist/{sessionLock-DglhFHzB.cjs → sessionLock-unMOEniJ.cjs} +3 -3
  169. package/dist/sessionMetadata-B44cL4Xj.cjs +29 -0
  170. package/dist/sessionMetadata-C1eoAi89.mjs +25 -0
  171. package/dist/{sessionOps-D-uFSTHk.mjs → sessionOps-BmhqmPPd.mjs} +4 -4
  172. package/dist/{sessionOps-CIFvoFPA.cjs → sessionOps-SxZr9veq.cjs} +4 -4
  173. package/dist/{sessionProvider-D8y7K8bK.mjs → sessionProvider-CPlvR0nT.mjs} +10 -10
  174. package/dist/{sessionProvider-B0daO-Ln.cjs → sessionProvider-DLlqS4y6.cjs} +10 -10
  175. package/dist/{sessionScanner-CWflbWoH.cjs → sessionScanner-B7nZ1i40.cjs} +3 -3
  176. package/dist/{sessionScanner-DQAOP6pU.mjs → sessionScanner-DvVZpLHG.mjs} +3 -3
  177. package/dist/{sessions-CaO_-AI7.mjs → sessions-BIYm43CM.mjs} +10 -10
  178. package/dist/{sessions-CzpI76qj.cjs → sessions-CQQW7u6X.cjs} +10 -10
  179. package/dist/{setupOfflineReconnection-Ck-p0YPb.mjs → setupOfflineReconnection-BELrtMGG.mjs} +2 -2
  180. package/dist/{setupOfflineReconnection-BZHRoKDx.cjs → setupOfflineReconnection-D7WJTAi_.cjs} +2 -2
  181. package/dist/{spawn-DyjOa4nf.cjs → spawn-CuWcPkkN.cjs} +14 -14
  182. package/dist/{spawn-BEJxfj60.mjs → spawn-DnPu7h2o.mjs} +14 -14
  183. package/dist/{spawnAgents-XObVj6zN.mjs → spawnAgents-BclZYkov.mjs} +1 -1
  184. package/dist/{spawnAgents-IiuqX0S5.cjs → spawnAgents-DvbEDCIq.cjs} +1 -1
  185. package/dist/{spawnHappyCLI-C3XuIB2N.cjs → spawnHappyCLI-CI7Ax4mF.cjs} +1 -1
  186. package/dist/{spawnHappyCLI-Cc9kKpcq.mjs → spawnHappyCLI-D6OcgFDR.mjs} +1 -1
  187. package/dist/{startFileWatcher-t3K1y9kY.mjs → startFileWatcher-BiWGhlGW.mjs} +1 -1
  188. package/dist/{startFileWatcher-CeDJl9mN.cjs → startFileWatcher-DBW14aP2.cjs} +1 -1
  189. package/dist/{sessionMetadata-DyTJ0Ki5.cjs → startupSessionCreate-DFl54ozj.cjs} +3 -14
  190. package/dist/{sessionMetadata-V7Z7F-cj.mjs → startupSessionCreate-DbBpGQo9.mjs} +4 -14
  191. package/dist/{store-DOZAMV4W.cjs → store-Cpb1LMNW.cjs} +1 -1
  192. package/dist/{store-CqNAE-0v.mjs → store-DWmjM4Ex.mjs} +1 -1
  193. package/dist/{streamRelay-Dyp4x44P.cjs → streamRelay-4XiiNB3N.cjs} +1 -1
  194. package/dist/{streamRelay-7D7v0hvk.mjs → streamRelay-DdGOsW8v.mjs} +1 -1
  195. package/dist/{sync-BvxhuW9R.cjs → sync-C764ZzE6.cjs} +1 -1
  196. package/dist/{sync-s1pUqWGm.mjs → sync-CcBrziWp.mjs} +1 -1
  197. package/dist/{systemPrompt-CLYTbBhV.mjs → systemPrompt-9i7bQypR.mjs} +2 -2
  198. package/dist/{systemPrompt-CCdSrtn3.cjs → systemPrompt-Xy3Dfj1l.cjs} +2 -2
  199. package/dist/{teams-BVp5F_xN.mjs → teams-BAWOVbdF.mjs} +7 -7
  200. package/dist/{teams-D2q1DQWz.cjs → teams-VlmzLDSs.cjs} +7 -7
  201. package/dist/{template-M1YGFYUT.cjs → template-3fV9bi0X.cjs} +1 -1
  202. package/dist/{template-oBrR0saD.mjs → template-CtRLg2PG.mjs} +1 -1
  203. package/dist/{time-D-v2Cd9e.cjs → time-CDBZWYDb.cjs} +1 -1
  204. package/dist/{time-qd46L189.mjs → time-DJF2csbV.mjs} +1 -1
  205. package/dist/{titleGenerator-CSYqcorn.cjs → titleGenerator-BYP3fNFo.cjs} +3 -3
  206. package/dist/{titleGenerator-BdeHi3IY.mjs → titleGenerator-DR9evHBh.mjs} +2 -2
  207. package/dist/{todo-Dq_YuJvj.cjs → todo-BkFvwx_z.cjs} +26 -18
  208. package/dist/{todo-DiEhLgUZ.mjs → todo-DDDQdB-G.mjs} +26 -18
  209. package/dist/{tools-CY2zrdd5.cjs → tools-BjiRW_Rg.cjs} +1 -1
  210. package/dist/{tools-DR7GWBBV.mjs → tools-CDktvjWL.mjs} +1 -1
  211. package/dist/{uninstall-BvwDZVU9.mjs → uninstall-BcMGkwJ0.mjs} +3 -3
  212. package/dist/{uninstall-BHhHjbzE.cjs → uninstall-D5INt3TC.cjs} +3 -3
  213. package/dist/{wrapperAccount-ejUjAQaM.cjs → wrapperAccount-nGGMJDBF.cjs} +2 -2
  214. package/dist/{wrapperAccount-CpDsQL15.mjs → wrapperAccount-z8Swrd08.mjs} +2 -2
  215. package/package.json +7 -7
  216. package/dist/selfCheck-B-hKig8I.mjs +0 -89
@@ -1,26 +1,27 @@
1
- import { i as isClaudeSessionId, h as extractCompleteLines, j as decideBackfill, k as parseTerminalHookPayload, m as decideMirrorBinding, M as MIRROR_BACKFILL_LINES_DEFAULT, n as mirrorLineKey, o as mirrorLocalId, q as initializeOwnedWorktree, f as summarizeSpawnSessionForLog, t as startAgentVersionChecks, W as WORKTREE_CAPABILITY_VERSION, u as currentWorktreeService } from './mirrorProtocol-DFQLXDBI.mjs';
1
+ import { i as isClaudeSessionId, h as extractCompleteLines, j as decideBackfill, k as parseTerminalHookPayload, m as decideMirrorBinding, M as MIRROR_BACKFILL_LINES_DEFAULT, n as mirrorLineKey, o as mirrorLocalId, q as initializeOwnedWorktree, f as summarizeSpawnSessionForLog, t as startAgentVersionChecks, W as WORKTREE_CAPABILITY_VERSION, u as currentWorktreeService } from './mirrorProtocol-dRyartIG.mjs';
2
2
  import { F as FS_MKDIR_CAPABILITY_VERSION } from './fsMkdir-DumgLTzR.mjs';
3
- import { P as PI_ADAPTER_INSTALL_HINT, s as sanitizeSpawnModel } from './piRunnerArgs-Bdj0sjAT.mjs';
3
+ import { P as PI_ADAPTER_INSTALL_HINT, s as sanitizeSpawnModel } from './piRunnerArgs-Cfc-F-FJ.mjs';
4
4
  import fs from 'fs/promises';
5
5
  import os from 'os';
6
6
  import * as tmp from 'tmp';
7
7
  import axios from 'axios';
8
+ import { a as issueRelaunchEnv } from './sessionMetadata-C1eoAi89.mjs';
8
9
  import { readFileSync, openSync, fsyncSync, closeSync, renameSync, existsSync, readdirSync, statSync, unlinkSync, readSync, writeSync, ftruncateSync, utimesSync, realpathSync, promises, constants as constants$1, writeFileSync, mkdirSync, accessSync, rmdirSync } from 'node:fs';
9
10
  import { join, isAbsolute, resolve, dirname, sep, basename, relative } from 'node:path';
10
- import { f as ensurePrivateDirectorySync, w as writePrivateFileSync, c as configuration } from './configuration-4pG95tsq.mjs';
11
- import { T as TurnActivityTracker, A as ApiClient } from './api-DCUiAds-.mjs';
12
- import { S as SPAWN_AGENTS, i as isSpawnAgent, s as sanitizeSpawnPermissionMode, r as resolveSpawnPermissionMode, a as resolveFirstMessageMeta, j as joinProject } from './spawnAgents-XObVj6zN.mjs';
13
- import { l as logger } from './logger-BLMi8oJK.mjs';
14
- import { p as pruneStaleCompileCaches } from './index-Sdvy1Lsf.mjs';
15
- import { a as authAndSetupMachineIfNeeded } from './auth-8jKFCZOX.mjs';
11
+ import { f as ensurePrivateDirectorySync, w as writePrivateFileSync, c as configuration } from './configuration-DhEqAYzz.mjs';
12
+ import { T as TurnActivityTracker, A as ApiClient } from './api-1CD4oRSW.mjs';
13
+ import { S as SPAWN_AGENTS, i as isSpawnAgent, s as sanitizeSpawnPermissionMode, r as resolveSpawnPermissionMode, a as resolveFirstMessageMeta, j as joinProject } from './spawnAgents-BclZYkov.mjs';
14
+ import { l as logger } from './logger-CFrzcRHD.mjs';
15
+ import { p as pruneStaleCompileCaches } from './index-C_Y9426m.mjs';
16
+ import { a as authAndSetupMachineIfNeeded } from './auth-WCd2S1zA.mjs';
16
17
  import { spawn, execSync } from 'child_process';
17
- import { p as packageJson } from './package-DbGqY8Ej.mjs';
18
- import { a as globalPrefixForPackage, N as NPM_SAFE_ARG, g as getEnvironmentInfo } from './doctor-Dy7z3qvy.mjs';
19
- import { s as spawnHappyCLI } from './spawnHappyCLI-Cc9kKpcq.mjs';
20
- import { c as readPersistedSessions, r as readSettings, l as latchKeepAwake, s as reportSignature, t as decideDaemonHibernation, v as nextCheckDelay, x as persistSession, d as readDaemonState, y as acquireDaemonLock, a as resolveCheckMs, z as resolveIdleMs, A as deletePersistedSessions, B as writeDaemonState, C as writeSettings, D as settingIdleMs, u as updateSettings, E as rewriteCredentialsForRelay, g as readCredentials, F as releaseDaemonLock } from './persistence-DbOKjdUD.mjs';
21
- import { i as isDaemonRunningCurrentlyInstalledHappyVersion, s as stopDaemon, w as cleanupDaemonState } from './controlClient-bqCKl9Nv.mjs';
22
- import { e as sendUserMessage, f as readSessionMetadata, r as readSessionTranscript, l as listAccountSessions, a as listSessions, M as MAX_READ_LIMIT, s as sessionWebUrl, n as lineageOf, g as waitForSessionKey, d as archiveSession, h as analyzeLatestTurn, i as readSessionLog, j as TURN_WINDOW, p as userPromptText } from './sessionOps-D-uFSTHk.mjs';
23
- import { a1 as AgentProfilesStateSchema, am as ServerMigrateNoticeSchema, an as isHarnessInstallId, ao as agentProfileUnavailableReason, ap as MODEL_INTENT_CONFIG, q as AUTOMATION_SUMMARY_MAX_CHARS, aq as AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS, ar as AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS, d as AUTOMATION_PRECHECK_MAX_TIMEOUT_MS, as as AUTOMATION_CLAIM_MAX_RUNS, at as AUTOMATION_DAEMON_CAPABILITY_PRECHECK, au as AUTOMATION_DEFAULT_LEASE_MS, i as isAutomationRunTerminal, D as resolveLaunchAgentProfile, av as ISSUE_SENT_FROM, aw as ISSUE_DISPATCH_LOCAL_ID_PREFIX, f as ISSUE_ASSIGNABLE_AGENTS, ax as HARNESS_INSTALL_CAPABILITY_VERSION } from './index-kwsivEs-.mjs';
18
+ import { p as packageJson } from './package-DxE8PttX.mjs';
19
+ import { a as globalPrefixForPackage, N as NPM_SAFE_ARG, g as getEnvironmentInfo } from './doctor-BanQ3jQg.mjs';
20
+ import { s as spawnHappyCLI } from './spawnHappyCLI-D6OcgFDR.mjs';
21
+ import { c as readPersistedSessions, r as readSettings, l as latchKeepAwake, s as reportSignature, t as decideDaemonHibernation, v as nextCheckDelay, x as persistSession, d as readDaemonState, y as acquireDaemonLock, a as resolveCheckMs, z as resolveIdleMs, A as deletePersistedSessions, B as writeDaemonState, C as writeSettings, D as settingIdleMs, u as updateSettings, E as rewriteCredentialsForRelay, g as readCredentials, F as releaseDaemonLock } from './persistence-CF7oV1oH.mjs';
22
+ import { i as isDaemonRunningCurrentlyInstalledHappyVersion, s as stopDaemon, w as cleanupDaemonState } from './controlClient-PaIiDxM6.mjs';
23
+ import { e as sendUserMessage, f as readSessionMetadata, r as readSessionTranscript, l as listAccountSessions, a as listSessions, M as MAX_READ_LIMIT, s as sessionWebUrl, n as lineageOf, g as waitForSessionKey, d as archiveSession, h as analyzeLatestTurn, i as readSessionLog, j as TURN_WINDOW, p as userPromptText } from './sessionOps-BmhqmPPd.mjs';
24
+ import { a2 as AgentProfilesStateSchema, an as ServerMigrateNoticeSchema, ao as isHarnessInstallId, ap as agentProfileUnavailableReason, aq as MODEL_INTENT_CONFIG, q as AUTOMATION_SUMMARY_MAX_CHARS, ar as AUTOMATION_PRECHECK_OUTPUT_MAX_CHARS, as as AUTOMATION_PRECHECK_DEFAULT_TIMEOUT_MS, d as AUTOMATION_PRECHECK_MAX_TIMEOUT_MS, at as AUTOMATION_CLAIM_MAX_RUNS, au as AUTOMATION_DAEMON_CAPABILITY_PRECHECK, av as AUTOMATION_DEFAULT_LEASE_MS, i as isAutomationRunTerminal, D as resolveLaunchAgentProfile, aw as ISSUE_SENT_FROM, ax as ISSUE_DISPATCH_LOCAL_ID_PREFIX, f as ISSUE_ASSIGNABLE_AGENTS, ay as HARNESS_INSTALL_CAPABILITY_VERSION } from './index-CiRMvS73.mjs';
24
25
  import fastify from 'fastify';
25
26
  import { z } from 'zod';
26
27
  import { validatorCompiler, serializerCompiler } from 'fastify-type-provider-zod';
@@ -28,69 +29,69 @@ import { d as decodeBase64, s as sameRelay, e as encodeBase64, h as decrypt } fr
28
29
  import { randomBytes, createHash, timingSafeEqual, randomUUID } from 'node:crypto';
29
30
  import { c as checkPreviewPath } from './previewPath-CXN4Vag0.mjs';
30
31
  import { a as BACKGROUND_TASKS_MAX, d as BACKGROUND_TASK_DESCRIPTION_MAX, e as BackgroundTaskTracker } from './backgroundTaskActivity-8PdPxrvy.mjs';
31
- import { b as sanitizeRateLimitReport } from './rateLimitWindows-DZVrafmm.mjs';
32
- import { f as formatEditConflictNotice, b as SESSION_PEER_SENT_FROM, s as sendPeerMessage, l as listPeerSessions, C as CLI_PEER_SENDER_ID } from './peerTools-4GYKxr8J.mjs';
32
+ import { b as sanitizeRateLimitReport } from './rateLimitWindows-DdUMUEoy.mjs';
33
+ import { f as formatEditConflictNotice, b as SESSION_PEER_SENT_FROM, s as sendPeerMessage, l as listPeerSessions, C as CLI_PEER_SENDER_ID } from './peerTools-BiFpxXdf.mjs';
33
34
  import os$1, { hostname, homedir, tmpdir } from 'node:os';
34
- import { c as RemoteCallBudget, e as REMOTE_WRITE_CALLS_PER_MINUTE, d as deliverToSession, g as guardRemoteSessionOpsRequest, h as remoteError, i as REMOTE_OP_DEADLINE_MS, j as formatRemoteAuditLine, k as REMOTE_SEND_COMMIT_DEADLINE_MS, m as REMOTE_RESUME_WAIT_MS, n as capRemoteTranscript, o as capRemoteText, p as REMOTE_ANSWER_MAX_BYTES, q as REMOTE_TITLE_MAX_BYTES } from './remoteSessionClient-BFd_D9ka.mjs';
35
- import { assistantHome, bootstrapAssistantHome } from './bootstrap-BkLFgEGF.mjs';
36
- import { refreshAgentHomes, locateClaudeConversation, agentHomeSpawnEnv } from './index-XP-qcJQ3.mjs';
35
+ import { c as RemoteCallBudget, e as REMOTE_WRITE_CALLS_PER_MINUTE, d as deliverToSession, g as guardRemoteSessionOpsRequest, h as remoteError, i as REMOTE_OP_DEADLINE_MS, j as formatRemoteAuditLine, k as REMOTE_SEND_COMMIT_DEADLINE_MS, m as REMOTE_RESUME_WAIT_MS, n as capRemoteTranscript, o as capRemoteText, p as REMOTE_ANSWER_MAX_BYTES, q as REMOTE_TITLE_MAX_BYTES } from './remoteSessionClient-Dj2rV8Az.mjs';
36
+ import { assistantHome, bootstrapAssistantHome } from './bootstrap-D_1MskAl.mjs';
37
+ import { refreshAgentHomes, locateClaudeConversation, agentHomeSpawnEnv } from './index-HJFzeG0B.mjs';
37
38
  import require$$0, { existsSync as existsSync$1, statSync as statSync$1, mkdtempSync, rmSync } from 'fs';
38
39
  import require$$1, { join as join$1 } from 'path';
39
40
  import { spawn as spawn$1, execFile, spawnSync } from 'node:child_process';
40
41
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
41
42
  import { d as daemonEndpointsMatch, r as resolveClaudeCredentialReadiness } from './doctorReadiness-C208SMN9.mjs';
42
- import { o as ownerRetryPending, c as consumeOwnerRetry, s as spawnGate, a as afterStartupFailure, b as startupFailureMessage, T as TEAM_SPAWN_MAX_ATTEMPTS, d as TEAM_CLEANUP_RETRY_MS, g as getInitialMachineMetadata, e as getStartupCliAvailability, f as TEAM_RETRY_CAPABILITY_VERSION, w as withRunningCliFacts } from './machineMetadata-D8OWVD4l.mjs';
43
+ import { o as ownerRetryPending, c as consumeOwnerRetry, s as spawnGate, a as afterStartupFailure, b as startupFailureMessage, T as TEAM_SPAWN_MAX_ATTEMPTS, d as TEAM_CLEANUP_RETRY_MS, g as getInitialMachineMetadata, e as getStartupCliAvailability, f as TEAM_RETRY_CAPABILITY_VERSION, w as withRunningCliFacts } from './machineMetadata-DiStbYik.mjs';
43
44
  import { M as ModelConfigError, B as BackupStore, r as readConfigFile, s as sha256, a as atomicWriteFile } from './fileStore-5qpetZS0.mjs';
44
45
  import { c as collectSecretValues, a as parseJsonObject, b as childObject, s as setOrDelete, d as changedPaths, e as stringifyLike, f as fail, n as normalizeModelList, g as normalizeModelId, h as normalizeSecret, i as normalizeBaseUrl, u as uniq, j as baseUrlWarnings, m as maskSecret, k as getPath$1, l as normalizeProviderId, o as piAdapter, r as redactText } from './pi-CqyoZMjI.mjs';
45
- import { p as parse } from './codexAccount-BAezf1fY.mjs';
46
+ import { p as parse } from './codexAccount-CieIQLOX.mjs';
46
47
  import require$$3 from 'crypto';
47
48
  import { c as commandOnPath } from './detectCLI-CSGMlV51.mjs';
48
- import { buildResumeLaunch } from './handleResumeCommand-Dz4Aw_aZ.mjs';
49
+ import { buildResumeLaunch } from './handleResumeCommand-BRV-9h0o.mjs';
49
50
  import { n as normalizeWebPanels } from './webPanels-B2_C2-3g.mjs';
50
51
  import { access, symlink, readFile, rm, unlink, readlink, lstat, constants, rename, mkdir, copyFile, readdir, stat, open } from 'node:fs/promises';
51
52
  import { p as parseExactVersion, c as compareExactVersions, f as fetchCliUpdateState, r as resolveCliUpdateCheckInterval, D as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS } from './cliUpdate-Y34VGe9Y.mjs';
52
- import { P as ProjectsUnsupportedError, c as createProjectsClient } from './client-BXwIqRha.mjs';
53
- import { d as wrapperReportsIdle, f as decideAutoRestart, s as statusFromVerdict, g as autoRestartNextCheck, h as wrapperStaleness, r as recordAttempt, i as AUTO_RESTART_MAX_ATTEMPTS, j as AUTO_RESTART_MIN_GAP_MS, p as processIdentityFields, k as readSessionLock, l as AUTO_RESTARTED_ENV, n as encodeAutoRestarted, o as pendingUpgradeVersion, q as resolveQuietMs, u as AUTO_RESTART_RECHECK_CAP_MS } from './sessionLock-CphKQyav.mjs';
54
- import { c as createAutomationsClient, i as isAutomationsUnavailable, d as AutomationsRequestError } from './client-Blpuk2Hr.mjs';
53
+ import { P as ProjectsUnsupportedError, c as createProjectsClient } from './client-BgInTvr6.mjs';
54
+ import { d as wrapperReportsIdle, f as decideAutoRestart, s as statusFromVerdict, g as autoRestartNextCheck, h as wrapperStaleness, r as recordAttempt, i as AUTO_RESTART_MAX_ATTEMPTS, j as AUTO_RESTART_MIN_GAP_MS, p as processIdentityFields, k as readSessionLock, l as AUTO_RESTARTED_ENV, n as encodeAutoRestarted, o as pendingUpgradeVersion, q as resolveQuietMs, u as AUTO_RESTART_RECHECK_CAP_MS } from './sessionLock-Dj9_lShU.mjs';
55
+ import { c as createAutomationsClient, i as isAutomationsUnavailable, d as AutomationsRequestError } from './client-4YWjreN3.mjs';
55
56
  import { w as withKeychainOffPath, a as keychainIdentityFor, i as interpretSecurityRead, s as securityReadArgs, b as securityDeleteArgs, c as keychainOffShimDir, d as interpretCredentialsFile, C as CREDENTIALS_REJECTED_DETAIL, e as buildClaudeAuthState, f as claudeAuthStateChanged, r as resolveSdkClaudeBinary, g as classifyAuthStatus, h as diagnoseStores, p as parseLaunchctlPid, H as HAPPY_DAEMON_LAUNCHD_LABEL, j as classifyLineage, l as probeLaunchdJob, m as detectDaemonSupervisor, n as daemonLineage, o as probeSystemdKillMode, q as wrappersSurviveHandover, t as handoverWaitsForSessions } from './daemonSupervisor-BxohggqN.mjs';
56
- import { A as AccountService } from './accountService-ELazcp3V.mjs';
57
- import { spawnSetupTokenPty, watchAccountFiles } from './daemonAccounts-B8xnkprW.mjs';
57
+ import { A as AccountService } from './accountService-DEpIq6CF.mjs';
58
+ import { spawnSetupTokenPty, watchAccountFiles } from './daemonAccounts-D5shoCLt.mjs';
58
59
  import { g as getProjectPath } from './path-D2wdaNSk.mjs';
59
60
  import { b as extractClaudeEditPaths } from './editPaths-BVfS_FFL.mjs';
60
- import { s as startFileWatcher } from './startFileWatcher-t3K1y9kY.mjs';
61
- import { I as InvalidateSync } from './sync-s1pUqWGm.mjs';
61
+ import { s as startFileWatcher } from './startFileWatcher-BiWGhlGW.mjs';
62
+ import { I as InvalidateSync } from './sync-CcBrziWp.mjs';
62
63
  import { R as RawJSONLinesSchema } from './types-CkqAACXx.mjs';
63
64
  import { t as tmuxArgs, a as scrubTmuxClientEnv, s as shellescape } from './tmuxSocket-BmZyixRM.mjs';
64
65
  import { i as isProcessAlive, t as terminateProcessTree } from './processTermination-ChJG5SLW.mjs';
65
66
  import { findAllHappyProcesses } from './doctor-GN5mPOn5.mjs';
66
67
  import { T as TEAM_SKILL, a as TEAM_LEAD_PLAYBOOK, b as TEAM_MEMBER_RULES } from './resources-CLP_MpK4.mjs';
67
68
  import { promisify } from 'node:util';
68
- import { b as clipText, r as renderAction, c as clipAutomationReport, e as renderTemplate } from './template-oBrR0saD.mjs';
69
- import { I as IssuesUnsupportedError, a as IssueRequestError, c as createIssuesClient } from './client-BgxQ9aej.mjs';
69
+ import { b as clipText, r as renderAction, c as clipAutomationReport, e as renderTemplate } from './template-CtRLg2PG.mjs';
70
+ import { I as IssuesUnsupportedError, a as IssueRequestError, c as createIssuesClient } from './client-CMUlpYcy.mjs';
70
71
  import { d as describeAgentHome } from './loginShellEnv-Dw8M7tkI.mjs';
71
- import { S as SPAWN_ACCOUNT_ENV } from './store-CqNAE-0v.mjs';
72
- import './acpSessionResume-De_sTG30.mjs';
73
- import './pushNotifications-CrCTpDiN.mjs';
72
+ import { S as SPAWN_ACCOUNT_ENV } from './store-DWmjM4Ex.mjs';
73
+ import './acpSessionResume-urFpnGsk.mjs';
74
+ import './pushNotifications-CxX10K6n.mjs';
74
75
  import './contentLogMetadata-BlWI0egu.mjs';
75
- import './reconnectGate-COxAZTv8.mjs';
76
+ import './reconnectGate-uTLj82tS.mjs';
76
77
  import 'node:events';
77
78
  import 'socket.io-client';
78
79
  import './limits-DIo7rEBR.mjs';
79
- import './time-qd46L189.mjs';
80
- import './registerCommonHandlers-Cfl_dEWs.mjs';
80
+ import './time-DJF2csbV.mjs';
81
+ import './registerCommonHandlers-BYrmi-A4.mjs';
81
82
  import 'util';
82
83
  import 'cross-spawn';
83
84
  import '@paralleldrive/cuid2';
84
85
  import 'chalk';
85
86
  import 'node:module';
86
87
  import 'tweetnacl';
87
- import './browser-BAlw0rns.mjs';
88
+ import './browser-DL3QIQLS.mjs';
88
89
  import 'open';
89
90
  import './specialCommands-MXUN0wfI.mjs';
90
91
  import './ids-DU6sLx4C.mjs';
91
92
  import 'url';
92
- import './localHappyAgentAuth-DeDQjw24.mjs';
93
- import './claudeAccountEnv-CI8RlIB9.mjs';
93
+ import './localHappyAgentAuth-kg2RFvOy.mjs';
94
+ import './claudeAccountEnv-DowsOlDB.mjs';
94
95
  import 'node:readline';
95
96
  import 'node-pty';
96
97
  import './processTreeSnapshot-fuwxC0fr.mjs';
@@ -7053,6 +7054,7 @@ function listIssueReceipts(home, now = Date.now()) {
7053
7054
 
7054
7055
  const ISSUE_POLL_MS = 5e3;
7055
7056
  const ISSUE_SPAWNED_BY = "issue";
7057
+ const ISSUE_SPAWN_UNKNOWN_GRACE_MS = 6e4;
7056
7058
  const FIRST_MESSAGE_KEY_WAIT_MS = 1e4;
7057
7059
  function issueKeyFromPrompt(prompt) {
7058
7060
  return /^You are assigned issue ([A-Z]+-\d{1,9}):/.exec(prompt)?.[1] ?? null;
@@ -7104,10 +7106,35 @@ function createIssueWorker(deps) {
7104
7106
  writeIssueReceipt(home, receipt);
7105
7107
  return receipt;
7106
7108
  };
7107
- async function fail(receipt, error, unknown = false) {
7108
- await client.fail(receipt.dispatchId, { machineId: deps.machineId, claimId: receipt.claimId, error: error.slice(0, 4e3), ...unknown ? { unknown: true } : {} });
7109
- save({ ...receipt, phase: unknown ? receipt.phase : "failed" });
7110
- deps.log(`Issue dispatch ${receipt.dispatchId} ${unknown ? "outcome unknown" : "failed"}`);
7109
+ const now = deps.now ?? Date.now;
7110
+ const unknownSpawns = /* @__PURE__ */ new Map();
7111
+ async function fail(receipt, error) {
7112
+ await client.fail(receipt.dispatchId, { machineId: deps.machineId, claimId: receipt.claimId, error: error.slice(0, 4e3) });
7113
+ save({ ...receipt, phase: "failed" });
7114
+ deps.log(`Issue dispatch ${receipt.dispatchId} failed`);
7115
+ }
7116
+ function holdUnknown(view, receipt, reason) {
7117
+ const held = unknownSpawns.get(view.id);
7118
+ unknownSpawns.set(view.id, { view, receipt, reason, deadline: held?.deadline ?? now() + ISSUE_SPAWN_UNKNOWN_GRACE_MS });
7119
+ deps.log(`Issue dispatch ${view.id} spawn outcome unknown; re-checking`);
7120
+ }
7121
+ async function recheckUnknown() {
7122
+ for (const [id, held] of [...unknownSpawns]) {
7123
+ if (closed) return;
7124
+ const matches = persistedRunSessions(held.view.runId);
7125
+ try {
7126
+ if (matches.length === 1) {
7127
+ unknownSpawns.delete(id);
7128
+ await afterSpawn(held.view, save({ ...held.receipt, sessionId: matches[0], phase: "spawned" }));
7129
+ } else if (matches.length > 1 || now() >= held.deadline) {
7130
+ unknownSpawns.delete(id);
7131
+ await fail(held.receipt, matches.length > 1 ? `Spawn produced ${matches.length} sessions for this run; stop the extra ones and retry` : `Session did not start within ${Math.round(ISSUE_SPAWN_UNKNOWN_GRACE_MS / 1e3)} s (${held.reason}); check the machine before retrying`);
7132
+ }
7133
+ } catch (error) {
7134
+ if (httpCode(error) === "issue_dispatch_claim_mismatch" || error instanceof IssuesUnsupportedError) unknownSpawns.delete(id);
7135
+ deps.log(`Issue dispatch ${id} remains pending${error instanceof IssueRequestError && error.code ? ` (${error.code})` : ""}`);
7136
+ }
7137
+ }
7111
7138
  }
7112
7139
  async function complete(receipt) {
7113
7140
  let lastError;
@@ -7166,7 +7193,7 @@ function createIssueWorker(deps) {
7166
7193
  await fail({ ...receipt, phase: "claimed" }, accountUnavailableError(spawned.errorMessage, "issue") ?? spawned.errorMessage);
7167
7194
  return;
7168
7195
  }
7169
- if (spawned.type === "error" && spawned.startupExit?.exited) {
7196
+ if (spawned.type === "error" && (spawned.startupExit?.exited || spawned.notStarted)) {
7170
7197
  await fail(receipt, `Session failed to start: ${spawned.errorMessage}`);
7171
7198
  return;
7172
7199
  }
@@ -7177,25 +7204,36 @@ function createIssueWorker(deps) {
7177
7204
  if (spawned.type !== "success") {
7178
7205
  const matches = persistedRunSessions(view.runId);
7179
7206
  if (matches.length !== 1) {
7180
- await fail(receipt, `Spawn outcome unknown: ${spawned.errorMessage}`, true);
7207
+ holdUnknown(view, receipt, spawned.errorMessage);
7181
7208
  return;
7182
7209
  }
7183
7210
  receipt = save({ ...receipt, sessionId: matches[0], phase: "spawned" });
7184
7211
  } else {
7185
7212
  receipt = save({ ...receipt, sessionId: spawned.sessionId, phase: "spawned" });
7186
7213
  }
7187
- runBySession.set(receipt.sessionId, view.runId);
7188
- if (spawn.projectId && deps.joinProject) await deps.joinProject(receipt.sessionId, spawn.projectId).catch(() => void 0);
7189
- }
7190
- if (receipt.phase === "spawning") {
7214
+ } else if (receipt.phase === "spawning") {
7191
7215
  const matches = persistedRunSessions(view.runId);
7192
7216
  if (matches.length !== 1) {
7193
- await fail(receipt, "Spawn outcome unknown; verify the old process before retrying", true);
7217
+ holdUnknown(view, receipt, "the spawn was interrupted by a daemon restart");
7194
7218
  return;
7195
7219
  }
7196
7220
  receipt = save({ ...receipt, sessionId: matches[0], phase: "spawned" });
7197
- runBySession.set(receipt.sessionId, view.runId);
7221
+ } else {
7222
+ if (receipt.sessionId && !receipt.ended) runBySession.set(receipt.sessionId, view.runId);
7223
+ await deliverAndComplete(view, receipt);
7224
+ return;
7198
7225
  }
7226
+ await afterSpawn(view, receipt);
7227
+ }
7228
+ async function afterSpawn(view, receipt) {
7229
+ runBySession.set(receipt.sessionId, view.runId);
7230
+ const projectId = view.spawn?.projectId;
7231
+ if (projectId && deps.joinProject) await deps.joinProject(receipt.sessionId, projectId).catch(() => void 0);
7232
+ await deliverAndComplete(view, receipt);
7233
+ }
7234
+ async function deliverAndComplete(view, receipt) {
7235
+ const spawn = view.spawn;
7236
+ const agent = spawn.agent;
7199
7237
  if (receipt.phase === "spawned") {
7200
7238
  const sessionId = receipt.sessionId;
7201
7239
  const mode = sanitizeSpawnPermissionMode(spawn.permissionMode ?? void 0);
@@ -7286,6 +7324,7 @@ function createIssueWorker(deps) {
7286
7324
  if (running || closed || Date.now() < retryAt) return;
7287
7325
  running = true;
7288
7326
  try {
7327
+ await recheckUnknown();
7289
7328
  let dispatches;
7290
7329
  try {
7291
7330
  dispatches = (await client.poll(deps.machineId)).dispatches ?? [];
@@ -7767,7 +7806,8 @@ async function startDaemon() {
7767
7806
  logger.debug(`[DAEMON RUN] Directory creation failed: ${errorMessage}`);
7768
7807
  return {
7769
7808
  type: "error",
7770
- errorMessage
7809
+ errorMessage,
7810
+ notStarted: true
7771
7811
  };
7772
7812
  }
7773
7813
  }
@@ -7826,11 +7866,11 @@ async function startDaemon() {
7826
7866
  const requested = forkSpawnAccount(options.agentProfileId, options.parentSessionId, (id) => accountServiceRef.sessionAccount(id));
7827
7867
  spawnAccountId = accountServiceRef.resolveSpawnAccount(accountAgent, requested);
7828
7868
  } catch (error) {
7829
- return { type: "error", errorMessage: error instanceof Error ? error.message : String(error) };
7869
+ return { type: "error", errorMessage: error instanceof Error ? error.message : String(error), notStarted: true };
7830
7870
  }
7831
7871
  if (spawnAccountId) extraEnv[SPAWN_ACCOUNT_ENV] = spawnAccountId;
7832
7872
  } else if (options.agentProfileId) {
7833
- return { type: "error", errorMessage: `agent-profile-unavailable:agent-mismatch: accounts are not supported for ${options.agent} yet` };
7873
+ return { type: "error", errorMessage: `agent-profile-unavailable:agent-mismatch: accounts are not supported for ${options.agent} yet`, notStarted: true };
7834
7874
  }
7835
7875
  const claudeAuthStatus = claudeAuthServiceRef?.current()?.status;
7836
7876
  if ((options.agent ?? "claude") === "claude" && claudeAuthStatus && !spawnAccountId) {
@@ -7857,7 +7897,8 @@ async function startDaemon() {
7857
7897
  logger.warn(`[DAEMON RUN] ${errorMessage}`);
7858
7898
  return {
7859
7899
  type: "error",
7860
- errorMessage
7900
+ errorMessage,
7901
+ notStarted: true
7861
7902
  };
7862
7903
  }
7863
7904
  let tmuxSessionName = extraEnv.TMUX_SESSION_NAME;
@@ -7878,7 +7919,8 @@ async function startDaemon() {
7878
7919
  if (!isSpawnAgent(agent)) {
7879
7920
  return {
7880
7921
  type: "error",
7881
- errorMessage: `Unsupported agent type: '${options.agent}'. Please update your CLI to the latest version.`
7922
+ errorMessage: `Unsupported agent type: '${options.agent}'. Please update your CLI to the latest version.`,
7923
+ notStarted: true
7882
7924
  };
7883
7925
  }
7884
7926
  const resumeId = agent === "claude" ? options.resumeClaudeSessionId : agent === "codex" ? options.resumeCodexThreadId : void 0;
@@ -7964,7 +8006,8 @@ async function startDaemon() {
7964
8006
  default:
7965
8007
  return {
7966
8008
  type: "error",
7967
- errorMessage: `Unsupported agent type: '${options.agent}'. Please update your CLI to the latest version.`
8009
+ errorMessage: `Unsupported agent type: '${options.agent}'. Please update your CLI to the latest version.`,
8010
+ notStarted: true
7968
8011
  };
7969
8012
  }
7970
8013
  const args = [
@@ -8034,7 +8077,8 @@ async function startDaemon() {
8034
8077
  logger.debug("[DAEMON RUN] Failed to spawn process - no PID returned");
8035
8078
  return Promise.resolve({
8036
8079
  type: "error",
8037
- errorMessage: "Failed to spawn Happy process - no PID returned"
8080
+ errorMessage: "Failed to spawn Happy process - no PID returned",
8081
+ notStarted: true
8038
8082
  });
8039
8083
  }
8040
8084
  timer?.mark("spawned");
@@ -8260,7 +8304,9 @@ async function startDaemon() {
8260
8304
  HAPPY_RECONNECT_SEQ: String(tracked.encryption.seq),
8261
8305
  HAPPY_RECONNECT_METADATA_VERSION: String(tracked.encryption.metadataVersion),
8262
8306
  HAPPY_RECONNECT_AGENT_STATE_VERSION: String(tracked.encryption.agentStateVersion),
8263
- ...teamEnv
8307
+ ...teamEnv,
8308
+ // B-874c: an issue run's binding rides every relaunch (digest, MCP context).
8309
+ ...issueRelaunchEnv(metadata)
8264
8310
  }
8265
8311
  });
8266
8312
  if (result.type === "success") {
@@ -8402,6 +8448,8 @@ async function startDaemon() {
8402
8448
  HAPPY_RECONNECT_METADATA_VERSION: String(tracked.encryption.metadataVersion),
8403
8449
  HAPPY_RECONNECT_AGENT_STATE_VERSION: String(tracked.encryption.agentStateVersion),
8404
8450
  ...teamEnv,
8451
+ // B-874c: see resumeSessionImpl.
8452
+ ...issueRelaunchEnv(metadata),
8405
8453
  ...options?.auto ? { [AUTO_RESTARTED_ENV]: encodeAutoRestarted(options.auto.kind, options.auto.target) } : {}
8406
8454
  }
8407
8455
  });
@@ -1,31 +1,32 @@
1
1
  'use strict';
2
2
 
3
3
  var os = require('node:os');
4
- var sessionLock = require('./sessionLock-DglhFHzB.cjs');
5
- var persistence = require('./persistence-TpVFA5-I.cjs');
6
- var sessionMetadata = require('./sessionMetadata-DyTJ0Ki5.cjs');
4
+ var sessionLock = require('./sessionLock-unMOEniJ.cjs');
5
+ var persistence = require('./persistence-_W9tE-bW.cjs');
6
+ var startupSessionCreate = require('./startupSessionCreate-DFl54ozj.cjs');
7
7
  var node_crypto = require('node:crypto');
8
- var api = require('./api-BPWRzeNF.cjs');
9
- var logger = require('./logger-D28MY1Bv.cjs');
10
- var createSessionMetadata = require('./createSessionMetadata-msQTEvvn.cjs');
11
- var _package = require('./package-BFSsS_dl.cjs');
12
- var index = require('./index-BiutHOAO.cjs');
13
- var defaultPermissionMode = require('./defaultPermissionMode-BETWd5Lf.cjs');
8
+ var api = require('./api-KVVs-GkM.cjs');
9
+ var logger = require('./logger-Hyhy2boA.cjs');
10
+ var createSessionMetadata = require('./createSessionMetadata-hGZeo_nR.cjs');
11
+ var _package = require('./package-06cGlmeD.cjs');
12
+ var index = require('./index-44o_qMvE.cjs');
13
+ var defaultPermissionMode = require('./defaultPermissionMode-Cs_Tv83b.cjs');
14
14
  var forkBackfill = require('./forkBackfill-8eLDeS73.cjs');
15
- var configuration = require('./configuration-ClUt7pqs.cjs');
16
- var wrapperAccount = require('./wrapperAccount-ejUjAQaM.cjs');
17
- var store = require('./store-DOZAMV4W.cjs');
18
- var controlClient = require('./controlClient-SYDFcIkk.cjs');
19
- var machineMetadata = require('./machineMetadata-BzjrIn_N.cjs');
15
+ var configuration = require('./configuration-LWFmTxty.cjs');
16
+ var wrapperAccount = require('./wrapperAccount-nGGMJDBF.cjs');
17
+ var store = require('./store-Cpb1LMNW.cjs');
18
+ var controlClient = require('./controlClient-TVMpETsR.cjs');
19
+ var machineMetadata = require('./machineMetadata-BLymhM03.cjs');
20
20
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
21
21
  var path = require('node:path');
22
22
  var permissionMode = require('./permissionMode-CrV-XuMs.cjs');
23
23
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
24
24
  var promises = require('node:fs/promises');
25
- var attachmentContent = require('./attachmentContent-C2f1UEP9.cjs');
25
+ var attachmentContent = require('./attachmentContent-f3BbOKqz.cjs');
26
26
  var transcriptCursor = require('./transcriptCursor-DcXGLeSc.cjs');
27
27
  var startupPlan = require('./startupPlan-BLMbfQIH.cjs');
28
28
  var reconnectEnv = require('./reconnectEnv-B31lY4nR.cjs');
29
+ var sessionMetadata = require('./sessionMetadata-B44cL4Xj.cjs');
29
30
  require('./cliUpdate-DsKXPFYp.cjs');
30
31
  require('node:fs');
31
32
  require('./processTermination-f17wxlMb.cjs');
@@ -33,30 +34,30 @@ require('node:child_process');
33
34
  require('./processTreeSnapshot-D5iNblp6.cjs');
34
35
  require('zod');
35
36
  require('axios');
36
- require('./pushNotifications-C1i2W1GQ.cjs');
37
+ require('./pushNotifications-DdzTbrA3.cjs');
37
38
  require('./contentLogMetadata-ZSFk_NjQ.cjs');
38
- require('./reconnectGate-YQ5jXJfY.cjs');
39
+ require('./reconnectGate-DeDhtQJW.cjs');
39
40
  require('os');
40
41
  require('child_process');
41
42
  require('node:events');
42
43
  require('socket.io-client');
43
44
  require('./limits-C-a7gr04.cjs');
44
- require('./time-D-v2Cd9e.cjs');
45
- require('./registerCommonHandlers-D95IxqDN.cjs');
45
+ require('./time-CDBZWYDb.cjs');
46
+ require('./registerCommonHandlers-BrEtSwNk.cjs');
46
47
  require('util');
47
48
  require('fs/promises');
48
49
  require('crypto');
49
50
  require('path');
50
51
  require('cross-spawn');
51
52
  require('@paralleldrive/cuid2');
52
- require('./sync-BvxhuW9R.cjs');
53
+ require('./sync-C764ZzE6.cjs');
53
54
  require('./backgroundTaskActivity-CBvUdj39.cjs');
54
55
  require('chalk');
55
56
  require('node:util');
56
- require('./claudeAccountEnv-D33xXRE7.cjs');
57
+ require('./claudeAccountEnv-Btp39mfa.cjs');
57
58
  require('./detectCLI-BuYR_Qxe.cjs');
58
59
  require('fs');
59
- require('./localHappyAgentAuth-CjtNcaI0.cjs');
60
+ require('./localHappyAgentAuth-DxlQgaer.cjs');
60
61
  require('tweetnacl');
61
62
  require('./fsMkdir-0K3yENml.cjs');
62
63
  require('url');
@@ -67,7 +68,7 @@ const CLAUDE_EFFORTS = ["low", "medium", "high", "xhigh", "max"];
67
68
  function restoredClaudeEffort(effort) {
68
69
  return CLAUDE_EFFORTS.includes(effort ?? "") ? effort : void 0;
69
70
  }
70
- const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-CQ8vvqUQ.cjs'); });
71
+ const importRunClaudeDeps = () => Promise.resolve().then(function () { return require('./runClaudeDeps-tPqwAl_m.cjs'); });
71
72
  async function runClaude(credentials, options = {}) {
72
73
  logger.logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
73
74
  logger.logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
@@ -83,7 +84,7 @@ async function runClaude(credentials, options = {}) {
83
84
  const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
84
85
  if (isAssistantVariant) {
85
86
  try {
86
- const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-DUKAKxrJ.cjs'); });
87
+ const { bootstrapAssistantHome } = await Promise.resolve().then(function () { return require('./bootstrap-N1PY4ypX.cjs'); });
87
88
  await bootstrapAssistantHome();
88
89
  } catch (error) {
89
90
  logger.logger.debug("[START] Assistant home bootstrap failed:", error);
@@ -207,11 +208,11 @@ async function runClaude(credentials, options = {}) {
207
208
  agentStateVersion: parseInt(reconnectAgentStateVersion || "0", 10)
208
209
  };
209
210
  } else {
210
- response = await sessionMetadata.createSessionForStartup(() => api$1.getOrCreateSession({ tag: sessionTag, metadata, state }), { startedBy: options.startedBy, log: (m) => logger.logger.debug(m) });
211
+ response = await startupSessionCreate.createSessionForStartup(() => api$1.getOrCreateSession({ tag: sessionTag, metadata, state }), { startedBy: options.startedBy, log: (m) => logger.logger.debug(m) });
211
212
  }
212
213
  if (!response) {
213
214
  let offlineSessionId = null;
214
- const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-BbsOT-EF.cjs'); });
215
+ const { claudeLocal } = await Promise.resolve().then(function () { return require('./claudeLocal-Ix69XJ1t.cjs'); });
215
216
  const { createSessionScanner: createSessionScanner2 } = await loadDeps();
216
217
  const reconnection = api.startOfflineReconnection({
217
218
  serverUrl: configuration.configuration.serverUrl,
@@ -937,11 +938,11 @@ async function runClaude(credentials, options = {}) {
937
938
  };
938
939
  };
939
940
  if (options.startedBy === "daemon" && options.startingMode === "remote" && !isAssistantVariant) {
940
- hibernationProbe = new sessionMetadata.HibernationProbe({
941
+ hibernationProbe = new startupSessionCreate.HibernationProbe({
941
942
  checkMs: persistence.resolveCheckMs(),
942
943
  snapshot: hibernationSnapshot,
943
944
  ask: (report) => controlClient.checkDaemonHibernation({ sessionId: session.sessionId, pid: process.pid, report }),
944
- commit: (idleMs) => sessionMetadata.commitHibernation({
945
+ commit: (idleMs) => startupSessionCreate.commitHibernation({
945
946
  client: session,
946
947
  claimExit: () => exitGate.claim("hibernate") !== null,
947
948
  exitRequested: () => exitGate.exitRequested,
@@ -1,29 +1,30 @@
1
1
  import os from 'node:os';
2
- import { A as AUTO_RESTART_CAPABILITY, c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, t as takeAutoRestartedEvent, e as exitCursorStamp } from './sessionLock-CphKQyav.mjs';
3
- import { r as readSettings, H as HIBERNATION_CAPABILITY, a as resolveCheckMs, l as latchKeepAwake, e as evaluateWrapperIdle } from './persistence-DbOKjdUD.mjs';
4
- import { i as issueSessionMetadata, c as createSessionForStartup, H as HibernationProbe, a as commitHibernation } from './sessionMetadata-V7Z7F-cj.mjs';
2
+ import { A as AUTO_RESTART_CAPABILITY, c as claimSessionOrExit, a as applyServerSnapshot, b as applyReconnectReplay, w as withoutServerSnapshot, m as mergeReconnectMetadata, t as takeAutoRestartedEvent, e as exitCursorStamp } from './sessionLock-Dj9_lShU.mjs';
3
+ import { r as readSettings, H as HIBERNATION_CAPABILITY, a as resolveCheckMs, l as latchKeepAwake, e as evaluateWrapperIdle } from './persistence-CF7oV1oH.mjs';
4
+ import { c as createSessionForStartup, H as HibernationProbe, a as commitHibernation } from './startupSessionCreate-DbBpGQo9.mjs';
5
5
  import { randomUUID } from 'node:crypto';
6
- import { c as connectionState, A as ApiClient, s as startOfflineReconnection } from './api-DCUiAds-.mjs';
7
- import { l as logger } from './logger-BLMi8oJK.mjs';
8
- import { s as spawnOriginTags, a as sessionWorktreeMetadata } from './createSessionMetadata-CQkxe_4T.mjs';
9
- import { p as packageJson } from './package-DbGqY8Ej.mjs';
10
- import { P as PROMPT_QUEUE_CAPABILITY, a as PROJECT_SESSION_CAPABILITY, R as RUN_INTENT_CAPABILITY, C as CLAUDE_CONFIG_MODEL_CAPABILITY, A as AGENT_PROFILE_SESSION_CAPABILITY, I as ISSUE_SESSION_CAPABILITY, r as restoredEffort, b as restoredModel } from './index-kwsivEs-.mjs';
11
- import { D as DEFAULT_CLAUDE_PERMISSION_MODE, r as registerRunIntentRpc, a as recordRunIntents, w as withoutEffort } from './defaultPermissionMode-Cl3OvdHp.mjs';
6
+ import { c as connectionState, A as ApiClient, s as startOfflineReconnection } from './api-1CD4oRSW.mjs';
7
+ import { l as logger } from './logger-CFrzcRHD.mjs';
8
+ import { s as spawnOriginTags, a as sessionWorktreeMetadata } from './createSessionMetadata-BWb81WZg.mjs';
9
+ import { p as packageJson } from './package-DxE8PttX.mjs';
10
+ import { P as PROMPT_QUEUE_CAPABILITY, a as PROJECT_SESSION_CAPABILITY, R as RUN_INTENT_CAPABILITY, C as CLAUDE_CONFIG_MODEL_CAPABILITY, A as AGENT_PROFILE_SESSION_CAPABILITY, I as ISSUE_SESSION_CAPABILITY, r as restoredEffort, b as restoredModel } from './index-CiRMvS73.mjs';
11
+ import { D as DEFAULT_CLAUDE_PERMISSION_MODE, r as registerRunIntentRpc, a as recordRunIntents, w as withoutEffort } from './defaultPermissionMode-DgeiMMqy.mjs';
12
12
  import { F as FORK_BACKFILL_CAPABILITY, p as publishForkBackfillWhenCommitted } from './forkBackfill-DYIjlN1Z.mjs';
13
- import { c as configuration } from './configuration-4pG95tsq.mjs';
14
- import { l as loadWrapperAccount } from './wrapperAccount-CpDsQL15.mjs';
15
- import { S as SPAWN_ACCOUNT_ENV } from './store-CqNAE-0v.mjs';
16
- import { n as notifyDaemonSessionStarted, c as checkDaemonHibernation } from './controlClient-bqCKl9Nv.mjs';
17
- import { g as getInitialMachineMetadata } from './machineMetadata-D8OWVD4l.mjs';
13
+ import { c as configuration } from './configuration-DhEqAYzz.mjs';
14
+ import { l as loadWrapperAccount } from './wrapperAccount-z8Swrd08.mjs';
15
+ import { S as SPAWN_ACCOUNT_ENV } from './store-DWmjM4Ex.mjs';
16
+ import { n as notifyDaemonSessionStarted, c as checkDaemonHibernation } from './controlClient-PaIiDxM6.mjs';
17
+ import { g as getInitialMachineMetadata } from './machineMetadata-DiStbYik.mjs';
18
18
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
19
19
  import { resolve, join } from 'node:path';
20
20
  import { a as applySandboxPermissionPolicy, r as resolveInitialClaudePermissionMode, m as mapToClaudeMode, b as reconcilePublishedPermissionMode } from './permissionMode-CH4FoZfU.mjs';
21
21
  import { d as decodeBase64, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
22
22
  import { readFile } from 'node:fs/promises';
23
- import { C as CLAUDE_ATTACHMENT_KINDS, s as stripAttachmentManifest } from './attachmentContent-BKIq6EXR.mjs';
23
+ import { C as CLAUDE_ATTACHMENT_KINDS, s as stripAttachmentManifest } from './attachmentContent-CeF54XeO.mjs';
24
24
  import { T as TranscriptPathHints } from './transcriptCursor-B7T_gkQ0.mjs';
25
25
  import { p as planClaudeStartup } from './startupPlan-DFMyNgAs.mjs';
26
26
  import { t as takeReconnectEnv } from './reconnectEnv-DeSvHl3q.mjs';
27
+ import { i as issueSessionMetadata } from './sessionMetadata-C1eoAi89.mjs';
27
28
  import './cliUpdate-Y34VGe9Y.mjs';
28
29
  import 'node:fs';
29
30
  import './processTermination-ChJG5SLW.mjs';
@@ -31,30 +32,30 @@ import 'node:child_process';
31
32
  import './processTreeSnapshot-fuwxC0fr.mjs';
32
33
  import 'zod';
33
34
  import 'axios';
34
- import './pushNotifications-CrCTpDiN.mjs';
35
+ import './pushNotifications-CxX10K6n.mjs';
35
36
  import './contentLogMetadata-BlWI0egu.mjs';
36
- import './reconnectGate-COxAZTv8.mjs';
37
+ import './reconnectGate-uTLj82tS.mjs';
37
38
  import 'os';
38
39
  import 'child_process';
39
40
  import 'node:events';
40
41
  import 'socket.io-client';
41
42
  import './limits-DIo7rEBR.mjs';
42
- import './time-qd46L189.mjs';
43
- import './registerCommonHandlers-Cfl_dEWs.mjs';
43
+ import './time-DJF2csbV.mjs';
44
+ import './registerCommonHandlers-BYrmi-A4.mjs';
44
45
  import 'util';
45
46
  import 'fs/promises';
46
47
  import 'crypto';
47
48
  import 'path';
48
49
  import 'cross-spawn';
49
50
  import '@paralleldrive/cuid2';
50
- import './sync-s1pUqWGm.mjs';
51
+ import './sync-CcBrziWp.mjs';
51
52
  import './backgroundTaskActivity-8PdPxrvy.mjs';
52
53
  import 'chalk';
53
54
  import 'node:util';
54
- import './claudeAccountEnv-CI8RlIB9.mjs';
55
+ import './claudeAccountEnv-DowsOlDB.mjs';
55
56
  import './detectCLI-CSGMlV51.mjs';
56
57
  import 'fs';
57
- import './localHappyAgentAuth-DeDQjw24.mjs';
58
+ import './localHappyAgentAuth-kg2RFvOy.mjs';
58
59
  import 'tweetnacl';
59
60
  import './fsMkdir-DumgLTzR.mjs';
60
61
  import 'url';
@@ -65,7 +66,7 @@ const CLAUDE_EFFORTS = ["low", "medium", "high", "xhigh", "max"];
65
66
  function restoredClaudeEffort(effort) {
66
67
  return CLAUDE_EFFORTS.includes(effort ?? "") ? effort : void 0;
67
68
  }
68
- const importRunClaudeDeps = () => import('./runClaudeDeps-DkFWFwVc.mjs');
69
+ const importRunClaudeDeps = () => import('./runClaudeDeps-8RXtu0Zc.mjs');
69
70
  async function runClaude(credentials, options = {}) {
70
71
  logger.debug(`[CLAUDE] ===== CLAUDE MODE STARTING =====`);
71
72
  logger.debug(`[CLAUDE] This is the Claude agent, NOT Gemini`);
@@ -81,7 +82,7 @@ async function runClaude(credentials, options = {}) {
81
82
  const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
82
83
  if (isAssistantVariant) {
83
84
  try {
84
- const { bootstrapAssistantHome } = await import('./bootstrap-BkLFgEGF.mjs');
85
+ const { bootstrapAssistantHome } = await import('./bootstrap-D_1MskAl.mjs');
85
86
  await bootstrapAssistantHome();
86
87
  } catch (error) {
87
88
  logger.debug("[START] Assistant home bootstrap failed:", error);
@@ -209,7 +210,7 @@ async function runClaude(credentials, options = {}) {
209
210
  }
210
211
  if (!response) {
211
212
  let offlineSessionId = null;
212
- const { claudeLocal } = await import('./claudeLocal-X48n0RhP.mjs');
213
+ const { claudeLocal } = await import('./claudeLocal-DRMWkdCC.mjs');
213
214
  const { createSessionScanner: createSessionScanner2 } = await loadDeps();
214
215
  const reconnection = startOfflineReconnection({
215
216
  serverUrl: configuration.serverUrl,