very-happy-cli 0.2.182 → 0.2.184

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 (204) hide show
  1. package/dist/{AcpBackend-DLk3gMYH.mjs → AcpBackend-Csg7Sy2P.mjs} +3 -3
  2. package/dist/{AcpBackend-JA5eu8Y0.cjs → AcpBackend-DOzn74zn.cjs} +3 -3
  3. package/dist/{AcpSessionManager-OrCww-Qv.mjs → AcpSessionManager-BRK2F2yN.mjs} +10 -3
  4. package/dist/{AcpSessionManager-DjYidq4C.cjs → AcpSessionManager-CJXDNNtq.cjs} +10 -3
  5. package/dist/{BasePermissionHandler-u-neo-iN.mjs → BasePermissionHandler-BqYwrCra.mjs} +1 -1
  6. package/dist/{BasePermissionHandler-D3PMKLBS.cjs → BasePermissionHandler-CfrnkG3v.cjs} +1 -1
  7. package/dist/{acpSessionResume-Dxo8222T.cjs → acpSessionResume-DZ65DBeE.cjs} +1 -1
  8. package/dist/{acpSessionResume-u2TwX5Jd.mjs → acpSessionResume-Dz1myMbR.mjs} +1 -1
  9. package/dist/{agentHome-D3hNrnoA.mjs → agentHome-B_tu3tFJ.mjs} +4 -4
  10. package/dist/{agentHome-CP1tCBXz.cjs → agentHome-CKAXhc8P.cjs} +4 -4
  11. package/dist/{api-C_YSQnsi.mjs → api-BpTDU2BO.mjs} +79 -12
  12. package/dist/{api-CZWcG7uh.cjs → api-rw5xkzxo.cjs} +81 -11
  13. package/dist/{apiMachine-DPGrED5C.cjs → apiMachine-Bs1XXHKs.cjs} +14 -14
  14. package/dist/{apiMachine-C_GA5Bm-.mjs → apiMachine-wp0hWG3F.mjs} +14 -14
  15. package/dist/{attachmentContent-Ckzyb1Uy.mjs → attachmentContent-CWSSGMMo.mjs} +2 -2
  16. package/dist/{attachmentContent-I_dJIevE.cjs → attachmentContent-K_Up4InS.cjs} +2 -2
  17. package/dist/{auth-BKnE7uv7.cjs → auth-C4_mXYgj.cjs} +8 -8
  18. package/dist/{auth-DOXMI-xp.mjs → auth-CBESCCCn.mjs} +8 -8
  19. package/dist/{auth-CGgpiJ5-.mjs → auth-D6kSt2sR.mjs} +5 -5
  20. package/dist/{auth-Lw_utSMV.cjs → auth-gGryJImw.cjs} +5 -5
  21. package/dist/{auto-Z56mMZnH.mjs → auto-CEucVmFR.mjs} +32 -26
  22. package/dist/{auto-CIgFHIyQ.cjs → auto-Do43AOza.cjs} +32 -25
  23. package/dist/{bootstrap-DsXp74wv.cjs → bootstrap-BPz1iX77.cjs} +2 -2
  24. package/dist/{bootstrap-D3vlOROj.mjs → bootstrap-CodyCmGt.mjs} +2 -2
  25. package/dist/{browser-CUxGoATV.mjs → browser-CqMhj8Gm.mjs} +1 -1
  26. package/dist/{browser-CZlA9AkO.cjs → browser-D9D-1eqa.cjs} +1 -1
  27. package/dist/{claudeLocal-FnTUgwCi.mjs → claudeLocal-BgIRtT3Q.mjs} +5 -5
  28. package/dist/{claudeLocal-oELvwiZL.cjs → claudeLocal-Dywp8NKr.cjs} +5 -5
  29. package/dist/{claudeLocalLauncher-CO5YHCzi.mjs → claudeLocalLauncher-CaHjZ8HW.mjs} +10 -10
  30. package/dist/{claudeLocalLauncher-QsVXEVdE.cjs → claudeLocalLauncher-_TOL73g5.cjs} +10 -10
  31. package/dist/{claudeSessionFork-Cspr6QW0.mjs → claudeSessionFork-C9nB7fs5.mjs} +1 -1
  32. package/dist/{claudeSessionFork-BA4GE5AL.cjs → claudeSessionFork-jq-_WiAu.cjs} +1 -1
  33. package/dist/{client-CDuW4MS9.cjs → client-BFDji81N.cjs} +15 -7
  34. package/dist/{client-Ctbw05Xj.mjs → client-BdbVizjk.mjs} +15 -7
  35. package/dist/{client-xnWiHqdb.cjs → client-ByZFACEw.cjs} +18 -5
  36. package/dist/{client-DK8CzUry.cjs → client-C49zFRkX.cjs} +2 -2
  37. package/dist/{client-o-meK7-a.mjs → client-CX-_2myt.mjs} +2 -2
  38. package/dist/{client-BGfmSbWc.mjs → client-DwlYk8uJ.mjs} +18 -5
  39. package/dist/codex/happyMcpStdioBridge.cjs +16 -16
  40. package/dist/codex/happyMcpStdioBridge.mjs +16 -16
  41. package/dist/{codexAppServerClient-BlsOZLul.mjs → codexAppServerClient-CmOIqiNQ.mjs} +3 -3
  42. package/dist/{codexAppServerClient-DhNDTU_i.cjs → codexAppServerClient-DF12ZSw1.cjs} +3 -3
  43. package/dist/{codexCommand-BGx5NMQR.mjs → codexCommand-BN05uEyv.mjs} +94 -60
  44. package/dist/{codexCommand-DJDPfpIs.cjs → codexCommand-H-ObWTtx.cjs} +94 -60
  45. package/dist/{codexTermination-CVhhwHZU.mjs → codexTermination-Byohgj8h.mjs} +1 -1
  46. package/dist/{codexTermination-CqPMuokw.cjs → codexTermination-RwKa8pKk.cjs} +1 -1
  47. package/dist/{config-CWAe08-Q.mjs → config-ChHLh-hf.mjs} +3 -3
  48. package/dist/{config-CHpxzXBL.cjs → config-D_wNqwxX.cjs} +3 -3
  49. package/dist/{configuration-B-CugKJ3.cjs → configuration-C9Sx-Foo.cjs} +1 -1
  50. package/dist/{configuration-YXw_Dcsb.mjs → configuration-CVgUe2qN.mjs} +1 -1
  51. package/dist/{connect-BmHvMXH2.cjs → connect-B61xJDRq.cjs} +13 -13
  52. package/dist/{connect-CPeJXHha.mjs → connect-DJEQjS7C.mjs} +13 -13
  53. package/dist/{context-BtIVqHI5.cjs → context-Bf3BG7w8.cjs} +1 -1
  54. package/dist/{context-Drzs_Z38.mjs → context-CDPfhHTo.mjs} +1 -1
  55. package/dist/{controlClient-D0kGwKYx.cjs → controlClient-BLO1_pPx.cjs} +14 -3
  56. package/dist/{controlClient-BL4hb4l3.mjs → controlClient-DMCxtwq2.mjs} +14 -4
  57. package/dist/{createSessionMetadata-L499emJn.cjs → createSessionMetadata-5Mde6Dfh.cjs} +2 -2
  58. package/dist/{createSessionMetadata-DvGDsnsn.mjs → createSessionMetadata-BYroCdrU.mjs} +2 -2
  59. package/dist/daemonSupervisor-57JYYzMf.cjs +268 -0
  60. package/dist/daemonSupervisor-DfzrtNhM.mjs +245 -0
  61. package/dist/{defaultPermissionMode-MXpZlXud.cjs → defaultPermissionMode-B7mjHQKp.cjs} +2 -2
  62. package/dist/{defaultPermissionMode-BLfxu-Yz.mjs → defaultPermissionMode-CTdxUV_3.mjs} +2 -2
  63. package/dist/{deterministicJson-CfLkBRvU.cjs → deterministicJson-C1Z9MlDX.cjs} +569 -17
  64. package/dist/{deterministicJson-B_UAbmQ4.mjs → deterministicJson-C3QXOc1N.mjs} +572 -21
  65. package/dist/{doctor-DMvlzmnE.cjs → doctor-DRdV3thy.cjs} +7 -7
  66. package/dist/{doctor-bKScPtZu.mjs → doctor-OwNmTpYh.mjs} +7 -7
  67. package/dist/{downloadTarget-J9j37eFG.mjs → downloadTarget-CNtQ8rhV.mjs} +6 -6
  68. package/dist/{downloadTarget-D33BFvew.cjs → downloadTarget-Di5bf7r0.cjs} +6 -6
  69. package/dist/{ensureDaemonRunning-2IqWROJp.cjs → ensureDaemonRunning-CMY--T9Q.cjs} +5 -5
  70. package/dist/{ensureDaemonRunning-DLvwhpNg.mjs → ensureDaemonRunning-IRV-w0wH.mjs} +5 -5
  71. package/dist/{handleResumeCommand-CjtjQ_I7.mjs → handleResumeCommand-BO00SYjG.mjs} +5 -5
  72. package/dist/{handleResumeCommand-Dp2Y-p6V.cjs → handleResumeCommand-z7wY7QVM.cjs} +5 -5
  73. package/dist/{index-DYVIbhAJ.cjs → index-B4cyX2by.cjs} +40 -40
  74. package/dist/{index-B_aNaW9w.cjs → index-BsoUsrKS.cjs} +4 -4
  75. package/dist/{index-Cllzqoes.mjs → index-C7zgeuLP.mjs} +4 -4
  76. package/dist/{index-D_LvOWUN.mjs → index-CVUiytNq.mjs} +3 -3
  77. package/dist/{index-BOT0Tg5E.mjs → index-DZvi6_tB.mjs} +4 -4
  78. package/dist/{index-BI0h2Zks.mjs → index-DisBaRvM.mjs} +277 -77
  79. package/dist/{index-CZC7egJA.cjs → index-NhmqjrGv.cjs} +3 -3
  80. package/dist/{index-oh8XEozJ.cjs → index-Ub-5xbcU.cjs} +286 -76
  81. package/dist/{index-kA46KMxN.mjs → index-_LfuIz-O.mjs} +41 -41
  82. package/dist/{index-DymOv3kK.cjs → index-wYJu2yGc.cjs} +4 -4
  83. package/dist/index.cjs +2 -2
  84. package/dist/index.mjs +2 -2
  85. package/dist/{install-D2NCbeJ-.cjs → install-BATFlr_l.cjs} +2 -2
  86. package/dist/{install-BAa_Xmof.cjs → install-CGYDeYes.cjs} +3 -3
  87. package/dist/{install-C46mkr9a.mjs → install-DeUM6h8X.mjs} +3 -3
  88. package/dist/{install-D0inLCv-.mjs → install-F3rP8tBU.mjs} +2 -2
  89. package/dist/lib.cjs +12 -12
  90. package/dist/lib.d.cts +1 -1
  91. package/dist/lib.d.mts +1 -1
  92. package/dist/lib.mjs +12 -12
  93. package/dist/{lidState-DcPvwniz.cjs → lidState-C4YgPn6y.cjs} +1 -1
  94. package/dist/{lidState-D8Iuvjgl.mjs → lidState-CBjQEwTt.mjs} +1 -1
  95. package/dist/{localHappyAgentAuth-SD6GM97y.cjs → localHappyAgentAuth-BzCuIkzi.cjs} +1 -1
  96. package/dist/{localHappyAgentAuth-D3rQDRd9.mjs → localHappyAgentAuth-CcWGU_lS.mjs} +1 -1
  97. package/dist/{logger-DK1ytCz6.cjs → logger-CrtT0opS.cjs} +2 -2
  98. package/dist/{logger-DpqihN1f.mjs → logger-D2qd0mMg.mjs} +2 -2
  99. package/dist/{machineMetadata-D4E3qoIG.mjs → machineMetadata-B2czDiTd.mjs} +3 -3
  100. package/dist/{machineMetadata-IJc6_iyx.cjs → machineMetadata-D1hlm_oF.cjs} +3 -3
  101. package/dist/{main-CpUmw7hm.mjs → main-BNYWELul.mjs} +69 -56
  102. package/dist/{main-DUXh2rgW.cjs → main-BWgWN5d1.cjs} +69 -56
  103. package/dist/{mcp-D5f3Vd-z.cjs → mcp-C18unjs1.cjs} +15 -15
  104. package/dist/{mcp-66g1TJ8P.mjs → mcp-ColtiH23.mjs} +15 -15
  105. package/dist/{mirrorProtocol-DkWOcZh9.cjs → mirrorProtocol-D4CR5I5W.cjs} +3 -3
  106. package/dist/{mirrorProtocol-bsCUcaCY.mjs → mirrorProtocol-DTHWtAE5.mjs} +3 -3
  107. package/dist/{package-BfeqAzyJ.cjs → package-DczR1k0c.cjs} +7 -7
  108. package/dist/{package-CKj8zndE.mjs → package-Ek5FOyEo.mjs} +7 -7
  109. package/dist/{panels-r8LmaBs6.mjs → panels-BIQ7FrCB.mjs} +5 -5
  110. package/dist/{panels-2PXsw9-d.cjs → panels-DYSMHhdb.cjs} +5 -5
  111. package/dist/{peerTools-D_id4d41.mjs → peerTools-CABQ6iKd.mjs} +5 -5
  112. package/dist/{peerTools-BVp1z0T_.cjs → peerTools-Cufh4Qp_.cjs} +5 -5
  113. package/dist/{persistence-jOEuAFTS.mjs → persistence-DFtgQvr6.mjs} +2 -2
  114. package/dist/{persistence-BdpwWXKh.cjs → persistence-IYH6bAXY.cjs} +2 -2
  115. package/dist/{piRunnerArgs-68I5F_M1.mjs → piRunnerArgs-CIWprC1S.mjs} +1 -1
  116. package/dist/{piRunnerArgs-vxCHKnSA.cjs → piRunnerArgs-Dgjmj8KL.cjs} +1 -1
  117. package/dist/{piRuntime-C3Dg5uni.cjs → piRuntime-C_nX977w.cjs} +2 -2
  118. package/dist/{piRuntime-DgLIard1.mjs → piRuntime-K6o4GPZ9.mjs} +2 -2
  119. package/dist/{piTerminal-DJL0w-uA.mjs → piTerminal-CRl0EZc3.mjs} +18 -18
  120. package/dist/{piTerminal-C135BcLP.cjs → piTerminal-CYhcmkyi.cjs} +18 -18
  121. package/dist/providerBinding-B-Qbx9W2.cjs +140 -0
  122. package/dist/providerBinding-CYubGg-Z.mjs +132 -0
  123. package/dist/{pushNotifications-CyQVDThC.cjs → pushNotifications-BgQ_QTgS.cjs} +3 -3
  124. package/dist/{pushNotifications-CMmRsbKv.mjs → pushNotifications-gVJWGFBP.mjs} +3 -3
  125. package/dist/{query-CPXnDURZ.mjs → query-CGp9vY4e.mjs} +1 -1
  126. package/dist/{query-CK--1fbL.cjs → query-DFreaScb.cjs} +1 -1
  127. package/dist/{rateLimitWindows-DJxnNw-X.cjs → rateLimitWindows-CeogT1b6.cjs} +1 -1
  128. package/dist/{rateLimitWindows-Cqa4AGaB.mjs → rateLimitWindows-DM_gshI4.mjs} +1 -1
  129. package/dist/{registerCommonHandlers-DbNoM39q.cjs → registerCommonHandlers-CRqKXwQt.cjs} +2 -2
  130. package/dist/{registerCommonHandlers-K8dICQO2.mjs → registerCommonHandlers-CyAtDNvs.mjs} +2 -2
  131. package/dist/{registerKillSessionHandler-DiS_go8d.cjs → registerKillSessionHandler-CX49N52L.cjs} +6 -6
  132. package/dist/{registerKillSessionHandler-O1iriOMO.mjs → registerKillSessionHandler-DGWADNla.mjs} +6 -6
  133. package/dist/{remoteSessionClient-BlURPulk.mjs → remoteSessionClient-1nycIdrG.mjs} +5 -5
  134. package/dist/{remoteSessionClient-CtV9mDko.cjs → remoteSessionClient-CuAkp19e.cjs} +5 -5
  135. package/dist/{reportProgressTool-DlD_xjzU.cjs → reportProgressTool-BS7TkeEk.cjs} +4 -4
  136. package/dist/{reportProgressTool-nCExrHZH.mjs → reportProgressTool-CdSi-uSC.mjs} +4 -4
  137. package/dist/{resources-CH1iP6Cv.mjs → resources-CLdQfe3b.mjs} +1 -1
  138. package/dist/{resources-BPyN59Iv.cjs → resources-CqwHPhdK.cjs} +1 -1
  139. package/dist/{run-drtwHYkO.mjs → run-DqjEj8M2.mjs} +101 -248
  140. package/dist/{run-BBNrcCfI.cjs → run-gVwkplx0.cjs} +111 -259
  141. package/dist/{runClaude-B3KSeby4.cjs → runClaude-CtVoFstP.cjs} +39 -24
  142. package/dist/{runClaude-CFp27Tyi.mjs → runClaude-CuSjrZSf.mjs} +39 -24
  143. package/dist/{runClaudeDeps-C_C9TCI0.cjs → runClaudeDeps-DqOgRuKq.cjs} +49 -40
  144. package/dist/{runClaudeDeps-DMcv93lA.mjs → runClaudeDeps-eazOhb6g.mjs} +54 -45
  145. package/dist/{runGemini-DzdSBAr9.cjs → runGemini-81wkPvMv.cjs} +37 -35
  146. package/dist/{runGemini-Bc6SY-hd.mjs → runGemini-B4EqAd1U.mjs} +37 -35
  147. package/dist/{runOpenClaw-DN6rEVqC.cjs → runOpenClaw-BK7ZQEKj.cjs} +18 -18
  148. package/dist/{runOpenClaw-DI0qMlgF.mjs → runOpenClaw-Brb1KKAA.mjs} +18 -18
  149. package/dist/{sandbox-DtttPBMA.cjs → sandbox-DFD6an8o.cjs} +4 -4
  150. package/dist/{sandbox-v-ffe8LR.mjs → sandbox-t43Exd4t.mjs} +4 -4
  151. package/dist/{selfCheck-B-yy6bW3.cjs → selfCheck-Bel50SH3.cjs} +37 -36
  152. package/dist/selfCheck-CwpZepG-.mjs +86 -0
  153. package/dist/{send-DpBwSZuj.mjs → send-Co9jxmc4.mjs} +8 -8
  154. package/dist/{send-ShzXYPRu.cjs → send-IR5DnG9V.cjs} +8 -8
  155. package/dist/{server-CEzKrfKj.cjs → server-CAo6a3Vw.cjs} +6 -6
  156. package/dist/{server-DScgJXxa.mjs → server-KnIeKeTb.mjs} +4 -4
  157. package/dist/{sessionLock-Dc0fadGG.cjs → sessionLock-DNGDn9oj.cjs} +3 -3
  158. package/dist/{sessionLock-B6K4SBZD.mjs → sessionLock-ha9gsQEn.mjs} +3 -3
  159. package/dist/{sessionOps-D0BPWPoh.mjs → sessionOps-Di9MC0FP.mjs} +4 -4
  160. package/dist/{sessionOps-Dx7wARjI.cjs → sessionOps-hRqzcMXB.cjs} +4 -4
  161. package/dist/sessionProvider-4Nn6e9Kd.mjs +109 -0
  162. package/dist/sessionProvider-LqE7Y_cf.cjs +114 -0
  163. package/dist/{sessionScanner-BJ35TVG6.cjs → sessionScanner-BzEtrHB8.cjs} +3 -3
  164. package/dist/{sessionScanner-9Fpgaxtf.mjs → sessionScanner-DKFKDsrW.mjs} +3 -3
  165. package/dist/{sessions-TZGGAry1.cjs → sessions-CmLiagcb.cjs} +10 -10
  166. package/dist/{sessions-CFtDlyZd.mjs → sessions-DzgMNXo5.mjs} +10 -10
  167. package/dist/{setupOfflineReconnection-Biaus-0T.mjs → setupOfflineReconnection-D4NGi3Jf.mjs} +2 -2
  168. package/dist/{setupOfflineReconnection-B1GsVA8P.cjs → setupOfflineReconnection-Dq4N2Txp.cjs} +2 -2
  169. package/dist/{spawn-CsoQ-Ecz.mjs → spawn-C6CE5PsI.mjs} +14 -14
  170. package/dist/{spawn-BRTuypQ2.cjs → spawn-tmoekkOW.cjs} +14 -14
  171. package/dist/{spawnAgents-CG211IW7.cjs → spawnAgents-D15n6tAj.cjs} +1 -1
  172. package/dist/{spawnAgents-Co-SLcx-.mjs → spawnAgents-jXo9jIYo.mjs} +1 -1
  173. package/dist/{spawnHappyCLI-D1doCjkZ.mjs → spawnHappyCLI-66grqHO0.mjs} +1 -1
  174. package/dist/{spawnHappyCLI-D47kX6jg.cjs → spawnHappyCLI-8NcKgkuy.cjs} +1 -1
  175. package/dist/{specialCommands-xSmqT_Fu.mjs → specialCommands-BO8ipH0n.mjs} +3 -3
  176. package/dist/{specialCommands-Ch-Gvy-i.cjs → specialCommands-Dq0TmY1Z.cjs} +3 -3
  177. package/dist/{startFileWatcher-CCl2fFxT.mjs → startFileWatcher-BLDkieUW.mjs} +1 -1
  178. package/dist/{startFileWatcher-gKQTstR6.cjs → startFileWatcher-CjgKvec9.cjs} +1 -1
  179. package/dist/{startupSessionCreate-DlZc8yPl.mjs → startupSessionCreate-B60THeNz.mjs} +1 -1
  180. package/dist/{startupSessionCreate-BXqoUX30.cjs → startupSessionCreate-CXRVahaU.cjs} +1 -1
  181. package/dist/{streamRelay-B-J-4St1.cjs → streamRelay-CtTpf-Li.cjs} +1 -1
  182. package/dist/{streamRelay-DnJXsi36.mjs → streamRelay-GzHxvMem.mjs} +1 -1
  183. package/dist/{sync-BbjMC3sR.mjs → sync-DJvx7RbO.mjs} +1 -1
  184. package/dist/{sync-BxMdnZzz.cjs → sync-DKSZOi6w.cjs} +1 -1
  185. package/dist/{systemPrompt-C2KojRmK.cjs → systemPrompt-Duos1BtM.cjs} +2 -2
  186. package/dist/{systemPrompt-CmSDAoIx.mjs → systemPrompt-dOOpz8L7.mjs} +2 -2
  187. package/dist/{teams-DESdalox.cjs → teams-pO5rjvPO.cjs} +9 -9
  188. package/dist/{teams-lRy1MS0Z.mjs → teams-uWiMJEe1.mjs} +9 -9
  189. package/dist/{template-BaHAmH2K.cjs → template-BLJxflCH.cjs} +32 -2
  190. package/dist/{template-CiOPa2rd.mjs → template-YlpbYGeQ.mjs} +31 -3
  191. package/dist/{time-DNLeIRgR.cjs → time-D-8GFCE7.cjs} +1 -1
  192. package/dist/{time-Cfknl7xG.mjs → time-Du0scQeJ.mjs} +1 -1
  193. package/dist/{titleGenerator-ClnMSzwC.mjs → titleGenerator-DKYj8rLY.mjs} +1 -1
  194. package/dist/{titleGenerator-YNutaU88.cjs → titleGenerator-DnKygjBP.cjs} +2 -2
  195. package/dist/{todo-DS75Mboz.cjs → todo-BFDb7O8q.cjs} +6 -6
  196. package/dist/{todo-DZbK5POc.mjs → todo-Du5dAwnt.mjs} +6 -6
  197. package/dist/{tools-BgdU0dWp.mjs → tools-DHvMVL0a.mjs} +1 -1
  198. package/dist/{tools-ClYcb1YQ.cjs → tools-DK_x86Kl.cjs} +1 -1
  199. package/dist/{uninstall-bXenFevR.mjs → uninstall-CLDEXir0.mjs} +3 -3
  200. package/dist/{uninstall-Di1vPBLV.cjs → uninstall-c3zjum2o.cjs} +3 -3
  201. package/package.json +7 -7
  202. package/dist/daemonSupervisor-B-SPSqhs.cjs +0 -13
  203. package/dist/daemonSupervisor-C6urv3_8.mjs +0 -10
  204. package/dist/selfCheck-BDfTwxqB.mjs +0 -85
@@ -4,13 +4,13 @@ var node_crypto = require('node:crypto');
4
4
  var os = require('node:os');
5
5
  var z = require('zod');
6
6
  var ids = require('./ids-B6ZC0HGt.cjs');
7
- var controlClient = require('./controlClient-D0kGwKYx.cjs');
8
- var persistence = require('./persistence-BdpwWXKh.cjs');
9
- var sessionOps = require('./sessionOps-Dx7wARjI.cjs');
10
- var remoteSessionClient = require('./remoteSessionClient-CtV9mDko.cjs');
7
+ var controlClient = require('./controlClient-BLO1_pPx.cjs');
8
+ var persistence = require('./persistence-IYH6bAXY.cjs');
9
+ var sessionOps = require('./sessionOps-hRqzcMXB.cjs');
10
+ var remoteSessionClient = require('./remoteSessionClient-CuAkp19e.cjs');
11
11
  var node_fs = require('node:fs');
12
12
  var path = require('node:path');
13
- var client = require('./client-DK8CzUry.cjs');
13
+ var client = require('./client-C49zFRkX.cjs');
14
14
 
15
15
  const SESSION_PEER_SENT_FROM = "session-peer";
16
16
  const CLI_PEER_SENDER_ID = "cli";
@@ -1,9 +1,9 @@
1
1
  import { readFile, open, unlink, stat, rename } from 'node:fs/promises';
2
2
  import { existsSync, constants, readFileSync, unlinkSync, renameSync } from 'node:fs';
3
- import { c as configuration, P as PRIVATE_FILE_MODE, w as writePrivateFileSync, a as hardenPrivateFileSync, e as ensurePrivateDirectory, b as writePrivateFile, h as hardenPrivateFile } from './configuration-YXw_Dcsb.mjs';
3
+ import { c as configuration, P as PRIVATE_FILE_MODE, w as writePrivateFileSync, a as hardenPrivateFileSync, e as ensurePrivateDirectory, b as writePrivateFile, h as hardenPrivateFile } from './configuration-CVgUe2qN.mjs';
4
4
  import * as z from 'zod';
5
5
  import { c as credentialRelayProblem, e as encodeBase64 } from './authRelay-DhQhkBvX.mjs';
6
- import { l as logger } from './logger-DpqihN1f.mjs';
6
+ import { l as logger } from './logger-D2qd0mMg.mjs';
7
7
 
8
8
  const HIBERNATION_CAPABILITY = "agent-hibernation-v1";
9
9
  const HOUR_MS = 60 * 60 * 1e3;
@@ -2,10 +2,10 @@
2
2
 
3
3
  var promises = require('node:fs/promises');
4
4
  var node_fs = require('node:fs');
5
- var configuration = require('./configuration-B-CugKJ3.cjs');
5
+ var configuration = require('./configuration-C9Sx-Foo.cjs');
6
6
  var z = require('zod');
7
7
  var authRelay = require('./authRelay-Dy1qU9td.cjs');
8
- var logger = require('./logger-DK1ytCz6.cjs');
8
+ var logger = require('./logger-CrtT0opS.cjs');
9
9
 
10
10
  function _interopNamespaceDefault(e) {
11
11
  var n = Object.create(null);
@@ -1,4 +1,4 @@
1
- import { s as sanitizeAgentSessionId, n as normalizeAcpPermissionMode } from './acpSessionResume-u2TwX5Jd.mjs';
1
+ import { s as sanitizeAgentSessionId, n as normalizeAcpPermissionMode } from './acpSessionResume-Dz1myMbR.mjs';
2
2
 
3
3
  function sanitizeSpawnModel(value) {
4
4
  if (typeof value !== "string") return null;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var acpSessionResume = require('./acpSessionResume-Dxo8222T.cjs');
3
+ var acpSessionResume = require('./acpSessionResume-DZ65DBeE.cjs');
4
4
 
5
5
  function sanitizeSpawnModel(value) {
6
6
  if (typeof value !== "string") return null;
@@ -3,8 +3,8 @@
3
3
  var promises = require('node:fs/promises');
4
4
  var node_crypto = require('node:crypto');
5
5
  var path = require('node:path');
6
- var configuration = require('./configuration-B-CugKJ3.cjs');
7
- var resources = require('./resources-BPyN59Iv.cjs');
6
+ var configuration = require('./configuration-C9Sx-Foo.cjs');
7
+ var resources = require('./resources-CqwHPhdK.cjs');
8
8
 
9
9
  async function publish(path, content, mode) {
10
10
  const temporary = `${path}.${node_crypto.randomUUID()}.new`;
@@ -1,8 +1,8 @@
1
1
  import { mkdir, chmod, writeFile, rename } from 'node:fs/promises';
2
2
  import { randomUUID } from 'node:crypto';
3
3
  import { join } from 'node:path';
4
- import { c as configuration } from './configuration-YXw_Dcsb.mjs';
5
- import { P as PI_TEAMS_EXTENSION } from './resources-CH1iP6Cv.mjs';
4
+ import { c as configuration } from './configuration-CVgUe2qN.mjs';
5
+ import { P as PI_TEAMS_EXTENSION } from './resources-CLdQfe3b.mjs';
6
6
 
7
7
  async function publish(path, content, mode) {
8
8
  const temporary = `${path}.${randomUUID()}.new`;
@@ -3,15 +3,15 @@ import { randomUUID } from 'node:crypto';
3
3
  import { createServer } from 'node:http';
4
4
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
5
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
6
- import { p as preparePiTeamsRuntime } from './piRuntime-DgLIard1.mjs';
7
- import { registerMcpTools, registerTerminalTitleSuggest } from './mcp-66g1TJ8P.mjs';
6
+ import { p as preparePiTeamsRuntime } from './piRuntime-K6o4GPZ9.mjs';
7
+ import { registerMcpTools, registerTerminalTitleSuggest } from './mcp-ColtiH23.mjs';
8
8
  import './agentGuidance-BDYt2Qy2.mjs';
9
9
  import 'node:fs/promises';
10
10
  import 'node:os';
11
11
  import 'zod';
12
- import './logger-DpqihN1f.mjs';
13
- import './persistence-jOEuAFTS.mjs';
14
- import './configuration-YXw_Dcsb.mjs';
12
+ import './logger-D2qd0mMg.mjs';
13
+ import './persistence-DFtgQvr6.mjs';
14
+ import './configuration-CVgUe2qN.mjs';
15
15
  import 'axios';
16
16
  import 'tweetnacl';
17
17
  import 'socket.io-client';
@@ -19,27 +19,27 @@ import './terminals-Dlg0x3nY.mjs';
19
19
  import 'node:fs';
20
20
  import 'node:path';
21
21
  import { r as resolveMcpTerminalId } from './terminalToolContext-CFeGeaNm.mjs';
22
- import './resources-CH1iP6Cv.mjs';
23
- import './tools-BgdU0dWp.mjs';
24
- import './client-BGfmSbWc.mjs';
22
+ import './resources-CLdQfe3b.mjs';
23
+ import './tools-DHvMVL0a.mjs';
24
+ import './client-DwlYk8uJ.mjs';
25
25
  import 'node:util';
26
- import './index-BI0h2Zks.mjs';
26
+ import './index-DisBaRvM.mjs';
27
27
  import '@paralleldrive/cuid2';
28
- import './context-Drzs_Z38.mjs';
28
+ import './context-CDPfhHTo.mjs';
29
29
  import '@modelcontextprotocol/sdk/server/stdio.js';
30
- import './controlClient-BL4hb4l3.mjs';
30
+ import './controlClient-DMCxtwq2.mjs';
31
31
  import './limits-DIo7rEBR.mjs';
32
- import './downloadTarget-J9j37eFG.mjs';
33
- import './sessionOps-D0BPWPoh.mjs';
32
+ import './downloadTarget-CNtQ8rhV.mjs';
33
+ import './sessionOps-Di9MC0FP.mjs';
34
34
  import './authRelay-DhQhkBvX.mjs';
35
- import './time-Cfknl7xG.mjs';
35
+ import './time-Du0scQeJ.mjs';
36
36
  import './backgroundTaskActivity-8PdPxrvy.mjs';
37
- import './remoteSessionClient-BlURPulk.mjs';
37
+ import './remoteSessionClient-1nycIdrG.mjs';
38
38
  import './ids-DU6sLx4C.mjs';
39
- import './bootstrap-D3vlOROj.mjs';
39
+ import './bootstrap-CodyCmGt.mjs';
40
40
  import './previewPath-CXN4Vag0.mjs';
41
41
  import './terminalTitleSuggest-CeKsX_V6.mjs';
42
- import './titleGenerator-ClnMSzwC.mjs';
42
+ import './titleGenerator-DKYj8rLY.mjs';
43
43
  import 'node:module';
44
44
  import './oneShotPrompts-DT4p6RNd.mjs';
45
45
  import './projectPath-BTBIMB57.mjs';
@@ -47,7 +47,7 @@ import 'path';
47
47
  import 'url';
48
48
  import './trimIdent-BAjmv_TG.mjs';
49
49
  import 'chalk';
50
- import './package-CKj8zndE.mjs';
50
+ import './package-Ek5FOyEo.mjs';
51
51
  import './tmuxSocket-B8Yx20sT.mjs';
52
52
 
53
53
  async function startPiTerminalTools(terminalId) {
@@ -5,15 +5,15 @@ var node_crypto = require('node:crypto');
5
5
  var node_http = require('node:http');
6
6
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
7
7
  var streamableHttp_js = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
8
- var piRuntime = require('./piRuntime-C3Dg5uni.cjs');
9
- var mcp = require('./mcp-D5f3Vd-z.cjs');
8
+ var piRuntime = require('./piRuntime-C_nX977w.cjs');
9
+ var mcp = require('./mcp-C18unjs1.cjs');
10
10
  require('./agentGuidance-BtBx2xxE.cjs');
11
11
  require('node:fs/promises');
12
12
  require('node:os');
13
13
  require('zod');
14
- require('./logger-DK1ytCz6.cjs');
15
- require('./persistence-BdpwWXKh.cjs');
16
- require('./configuration-B-CugKJ3.cjs');
14
+ require('./logger-CrtT0opS.cjs');
15
+ require('./persistence-IYH6bAXY.cjs');
16
+ require('./configuration-C9Sx-Foo.cjs');
17
17
  require('axios');
18
18
  require('tweetnacl');
19
19
  require('socket.io-client');
@@ -21,27 +21,27 @@ require('./terminals-B_bfC9c2.cjs');
21
21
  require('node:fs');
22
22
  require('node:path');
23
23
  var terminalToolContext = require('./terminalToolContext-DoV9Gs7K.cjs');
24
- require('./resources-BPyN59Iv.cjs');
25
- require('./tools-ClYcb1YQ.cjs');
26
- require('./client-xnWiHqdb.cjs');
24
+ require('./resources-CqwHPhdK.cjs');
25
+ require('./tools-DK_x86Kl.cjs');
26
+ require('./client-ByZFACEw.cjs');
27
27
  require('node:util');
28
- require('./index-oh8XEozJ.cjs');
28
+ require('./index-Ub-5xbcU.cjs');
29
29
  require('@paralleldrive/cuid2');
30
- require('./context-BtIVqHI5.cjs');
30
+ require('./context-Bf3BG7w8.cjs');
31
31
  require('@modelcontextprotocol/sdk/server/stdio.js');
32
- require('./controlClient-D0kGwKYx.cjs');
32
+ require('./controlClient-BLO1_pPx.cjs');
33
33
  require('./limits-C-a7gr04.cjs');
34
- require('./downloadTarget-D33BFvew.cjs');
35
- require('./sessionOps-Dx7wARjI.cjs');
34
+ require('./downloadTarget-Di5bf7r0.cjs');
35
+ require('./sessionOps-hRqzcMXB.cjs');
36
36
  require('./authRelay-Dy1qU9td.cjs');
37
- require('./time-DNLeIRgR.cjs');
37
+ require('./time-D-8GFCE7.cjs');
38
38
  require('./backgroundTaskActivity-CBvUdj39.cjs');
39
- require('./remoteSessionClient-CtV9mDko.cjs');
39
+ require('./remoteSessionClient-CuAkp19e.cjs');
40
40
  require('./ids-B6ZC0HGt.cjs');
41
- require('./bootstrap-DsXp74wv.cjs');
41
+ require('./bootstrap-BPz1iX77.cjs');
42
42
  require('./previewPath-B0rBdhy1.cjs');
43
43
  require('./terminalTitleSuggest-DhvRFX3H.cjs');
44
- require('./titleGenerator-YNutaU88.cjs');
44
+ require('./titleGenerator-DnKygjBP.cjs');
45
45
  require('node:module');
46
46
  require('./oneShotPrompts-CL0dip9C.cjs');
47
47
  require('./projectPath-C3ioB4Bu.cjs');
@@ -49,7 +49,7 @@ require('path');
49
49
  require('url');
50
50
  require('./trimIdent-4gvk9Wk6.cjs');
51
51
  require('chalk');
52
- require('./package-BfeqAzyJ.cjs');
52
+ require('./package-DczR1k0c.cjs');
53
53
  require('./tmuxSocket-D-Xt6Vn-.cjs');
54
54
 
55
55
  async function startPiTerminalTools(terminalId) {
@@ -0,0 +1,140 @@
1
+ 'use strict';
2
+
3
+ var node_fs = require('node:fs');
4
+ var os = require('node:os');
5
+ var path = require('node:path');
6
+
7
+ const PROVIDER_STRIPPED_ENV_KEYS = [
8
+ "ANTHROPIC_API_KEY",
9
+ "CLAUDE_CODE_OAUTH_TOKEN",
10
+ "CLAUDE_CODE_OAUTH_REFRESH_TOKEN",
11
+ "CLAUDE_CODE_OAUTH_SCOPES",
12
+ "CLAUDE_CODE_USE_BEDROCK",
13
+ "CLAUDE_CODE_USE_VERTEX",
14
+ "ANTHROPIC_CUSTOM_HEADERS",
15
+ "ANTHROPIC_SMALL_FAST_MODEL",
16
+ "CLAUDE_CODE_MAX_CONTEXT_TOKENS"
17
+ ];
18
+ function providersPath(happyHomeDir) {
19
+ return path.join(happyHomeDir, "providers.json");
20
+ }
21
+ function sessionProvidersPath(happyHomeDir) {
22
+ return path.join(happyHomeDir, "session-providers.json");
23
+ }
24
+ function expandHome(path$1, home = os.homedir()) {
25
+ return path$1 === "~" ? home : path$1.startsWith("~/") ? path.join(home, path$1.slice(2)) : path$1;
26
+ }
27
+ function readJson(path) {
28
+ if (!node_fs.existsSync(path)) return void 0;
29
+ return JSON.parse(node_fs.readFileSync(path, "utf8"));
30
+ }
31
+ function parseProvidersFile(raw) {
32
+ const profiles = {};
33
+ const src = raw && typeof raw === "object" ? raw.profiles : void 0;
34
+ if (src && typeof src === "object") {
35
+ for (const [id, p] of Object.entries(src)) {
36
+ if (!p || typeof p !== "object") continue;
37
+ const { name, baseUrl, apiKeyFile, models } = p;
38
+ if (typeof baseUrl !== "string" || !/^https?:\/\//.test(baseUrl) || typeof apiKeyFile !== "string" || !apiKeyFile) continue;
39
+ const ids = [];
40
+ const contextWindows = {};
41
+ for (const m of Array.isArray(models) ? models : []) {
42
+ if (typeof m === "string") ids.push(m);
43
+ else if (m && typeof m === "object" && typeof m.id === "string") {
44
+ const { id: modelId, contextWindow } = m;
45
+ ids.push(modelId);
46
+ if (typeof contextWindow === "number" && Number.isInteger(contextWindow) && contextWindow > 0) contextWindows[modelId] = contextWindow;
47
+ }
48
+ }
49
+ profiles[id] = {
50
+ ...typeof name === "string" ? { name } : {},
51
+ baseUrl: baseUrl.replace(/\/+$/, ""),
52
+ apiKeyFile,
53
+ ...Array.isArray(models) ? { models: ids } : {},
54
+ ...Object.keys(contextWindows).length > 0 ? { contextWindows } : {}
55
+ };
56
+ }
57
+ }
58
+ return { profiles };
59
+ }
60
+ function parseSessionProvidersFile(raw) {
61
+ const out = {};
62
+ if (!raw || typeof raw !== "object") return out;
63
+ for (const [sessionId, b] of Object.entries(raw)) {
64
+ if (!b || typeof b !== "object") continue;
65
+ const { profile, model } = b;
66
+ if (typeof profile === "string" && profile && typeof model === "string" && model) out[sessionId] = { profile, model };
67
+ }
68
+ return out;
69
+ }
70
+ function readProviders(happyHomeDir) {
71
+ return parseProvidersFile(readJson(providersPath(happyHomeDir)));
72
+ }
73
+ function readSessionProviders(happyHomeDir) {
74
+ return parseSessionProvidersFile(readJson(sessionProvidersPath(happyHomeDir)));
75
+ }
76
+ function buildProviderEnv(profile, model, token) {
77
+ const contextWindow = profile.contextWindows?.[model];
78
+ return {
79
+ ANTHROPIC_BASE_URL: profile.baseUrl,
80
+ ANTHROPIC_AUTH_TOKEN: token,
81
+ ANTHROPIC_MODEL: model,
82
+ ANTHROPIC_DEFAULT_OPUS_MODEL: model,
83
+ ANTHROPIC_DEFAULT_SONNET_MODEL: model,
84
+ ANTHROPIC_DEFAULT_HAIKU_MODEL: model,
85
+ ANTHROPIC_SMALL_FAST_MODEL: model,
86
+ CLAUDE_CODE_SUBAGENT_MODEL: model,
87
+ CLAUDE_CODE_NO_MODEL_FALLBACK: "1",
88
+ ...contextWindow ? { CLAUDE_CODE_MAX_CONTEXT_TOKENS: String(contextWindow) } : {}
89
+ };
90
+ }
91
+ function resolveSessionProvider(sessionId, deps) {
92
+ const binding = deps.bindings[sessionId];
93
+ if (!binding) return null;
94
+ const profile = deps.providers.profiles[binding.profile];
95
+ if (!profile) throw new Error(`provider profile "${binding.profile}" is not defined in providers.json`);
96
+ const token = deps.readKey(profile.apiKeyFile).trim();
97
+ if (!token) throw new Error(`provider profile "${binding.profile}": api key file is empty`);
98
+ return {
99
+ profile: binding.profile,
100
+ model: binding.model,
101
+ baseUrl: profile.baseUrl,
102
+ env: buildProviderEnv(profile, binding.model, token),
103
+ unset: PROVIDER_STRIPPED_ENV_KEYS
104
+ };
105
+ }
106
+ function loadSessionProvider(happyHomeDir, sessionId) {
107
+ const bindings = readSessionProviders(happyHomeDir);
108
+ if (!bindings[sessionId]) return null;
109
+ return resolveSessionProvider(sessionId, {
110
+ providers: readProviders(happyHomeDir),
111
+ bindings,
112
+ readKey: (p) => node_fs.readFileSync(expandHome(p), "utf8")
113
+ });
114
+ }
115
+ function applyProviderEnv(env, provider) {
116
+ for (const key of provider.unset) delete env[key];
117
+ Object.assign(env, provider.env);
118
+ }
119
+ function updateBindings(current, sessionId, binding) {
120
+ const next = { ...current };
121
+ if (binding) next[sessionId] = binding;
122
+ else delete next[sessionId];
123
+ return next;
124
+ }
125
+ function writeSessionProviders(happyHomeDir, bindings) {
126
+ const path$1 = sessionProvidersPath(happyHomeDir);
127
+ node_fs.mkdirSync(path.dirname(path$1), { recursive: true });
128
+ const tmp = `${path$1}.${process.pid}.tmp`;
129
+ node_fs.writeFileSync(tmp, JSON.stringify(bindings, null, 2) + "\n", { mode: 384 });
130
+ node_fs.chmodSync(tmp, 384);
131
+ node_fs.renameSync(tmp, path$1);
132
+ }
133
+
134
+ exports.applyProviderEnv = applyProviderEnv;
135
+ exports.loadSessionProvider = loadSessionProvider;
136
+ exports.readProviders = readProviders;
137
+ exports.readSessionProviders = readSessionProviders;
138
+ exports.sessionProvidersPath = sessionProvidersPath;
139
+ exports.updateBindings = updateBindings;
140
+ exports.writeSessionProviders = writeSessionProviders;
@@ -0,0 +1,132 @@
1
+ import { mkdirSync, writeFileSync, chmodSync, renameSync, existsSync, readFileSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { dirname, join } from 'node:path';
4
+
5
+ const PROVIDER_STRIPPED_ENV_KEYS = [
6
+ "ANTHROPIC_API_KEY",
7
+ "CLAUDE_CODE_OAUTH_TOKEN",
8
+ "CLAUDE_CODE_OAUTH_REFRESH_TOKEN",
9
+ "CLAUDE_CODE_OAUTH_SCOPES",
10
+ "CLAUDE_CODE_USE_BEDROCK",
11
+ "CLAUDE_CODE_USE_VERTEX",
12
+ "ANTHROPIC_CUSTOM_HEADERS",
13
+ "ANTHROPIC_SMALL_FAST_MODEL",
14
+ "CLAUDE_CODE_MAX_CONTEXT_TOKENS"
15
+ ];
16
+ function providersPath(happyHomeDir) {
17
+ return join(happyHomeDir, "providers.json");
18
+ }
19
+ function sessionProvidersPath(happyHomeDir) {
20
+ return join(happyHomeDir, "session-providers.json");
21
+ }
22
+ function expandHome(path, home = homedir()) {
23
+ return path === "~" ? home : path.startsWith("~/") ? join(home, path.slice(2)) : path;
24
+ }
25
+ function readJson(path) {
26
+ if (!existsSync(path)) return void 0;
27
+ return JSON.parse(readFileSync(path, "utf8"));
28
+ }
29
+ function parseProvidersFile(raw) {
30
+ const profiles = {};
31
+ const src = raw && typeof raw === "object" ? raw.profiles : void 0;
32
+ if (src && typeof src === "object") {
33
+ for (const [id, p] of Object.entries(src)) {
34
+ if (!p || typeof p !== "object") continue;
35
+ const { name, baseUrl, apiKeyFile, models } = p;
36
+ if (typeof baseUrl !== "string" || !/^https?:\/\//.test(baseUrl) || typeof apiKeyFile !== "string" || !apiKeyFile) continue;
37
+ const ids = [];
38
+ const contextWindows = {};
39
+ for (const m of Array.isArray(models) ? models : []) {
40
+ if (typeof m === "string") ids.push(m);
41
+ else if (m && typeof m === "object" && typeof m.id === "string") {
42
+ const { id: modelId, contextWindow } = m;
43
+ ids.push(modelId);
44
+ if (typeof contextWindow === "number" && Number.isInteger(contextWindow) && contextWindow > 0) contextWindows[modelId] = contextWindow;
45
+ }
46
+ }
47
+ profiles[id] = {
48
+ ...typeof name === "string" ? { name } : {},
49
+ baseUrl: baseUrl.replace(/\/+$/, ""),
50
+ apiKeyFile,
51
+ ...Array.isArray(models) ? { models: ids } : {},
52
+ ...Object.keys(contextWindows).length > 0 ? { contextWindows } : {}
53
+ };
54
+ }
55
+ }
56
+ return { profiles };
57
+ }
58
+ function parseSessionProvidersFile(raw) {
59
+ const out = {};
60
+ if (!raw || typeof raw !== "object") return out;
61
+ for (const [sessionId, b] of Object.entries(raw)) {
62
+ if (!b || typeof b !== "object") continue;
63
+ const { profile, model } = b;
64
+ if (typeof profile === "string" && profile && typeof model === "string" && model) out[sessionId] = { profile, model };
65
+ }
66
+ return out;
67
+ }
68
+ function readProviders(happyHomeDir) {
69
+ return parseProvidersFile(readJson(providersPath(happyHomeDir)));
70
+ }
71
+ function readSessionProviders(happyHomeDir) {
72
+ return parseSessionProvidersFile(readJson(sessionProvidersPath(happyHomeDir)));
73
+ }
74
+ function buildProviderEnv(profile, model, token) {
75
+ const contextWindow = profile.contextWindows?.[model];
76
+ return {
77
+ ANTHROPIC_BASE_URL: profile.baseUrl,
78
+ ANTHROPIC_AUTH_TOKEN: token,
79
+ ANTHROPIC_MODEL: model,
80
+ ANTHROPIC_DEFAULT_OPUS_MODEL: model,
81
+ ANTHROPIC_DEFAULT_SONNET_MODEL: model,
82
+ ANTHROPIC_DEFAULT_HAIKU_MODEL: model,
83
+ ANTHROPIC_SMALL_FAST_MODEL: model,
84
+ CLAUDE_CODE_SUBAGENT_MODEL: model,
85
+ CLAUDE_CODE_NO_MODEL_FALLBACK: "1",
86
+ ...contextWindow ? { CLAUDE_CODE_MAX_CONTEXT_TOKENS: String(contextWindow) } : {}
87
+ };
88
+ }
89
+ function resolveSessionProvider(sessionId, deps) {
90
+ const binding = deps.bindings[sessionId];
91
+ if (!binding) return null;
92
+ const profile = deps.providers.profiles[binding.profile];
93
+ if (!profile) throw new Error(`provider profile "${binding.profile}" is not defined in providers.json`);
94
+ const token = deps.readKey(profile.apiKeyFile).trim();
95
+ if (!token) throw new Error(`provider profile "${binding.profile}": api key file is empty`);
96
+ return {
97
+ profile: binding.profile,
98
+ model: binding.model,
99
+ baseUrl: profile.baseUrl,
100
+ env: buildProviderEnv(profile, binding.model, token),
101
+ unset: PROVIDER_STRIPPED_ENV_KEYS
102
+ };
103
+ }
104
+ function loadSessionProvider(happyHomeDir, sessionId) {
105
+ const bindings = readSessionProviders(happyHomeDir);
106
+ if (!bindings[sessionId]) return null;
107
+ return resolveSessionProvider(sessionId, {
108
+ providers: readProviders(happyHomeDir),
109
+ bindings,
110
+ readKey: (p) => readFileSync(expandHome(p), "utf8")
111
+ });
112
+ }
113
+ function applyProviderEnv(env, provider) {
114
+ for (const key of provider.unset) delete env[key];
115
+ Object.assign(env, provider.env);
116
+ }
117
+ function updateBindings(current, sessionId, binding) {
118
+ const next = { ...current };
119
+ if (binding) next[sessionId] = binding;
120
+ else delete next[sessionId];
121
+ return next;
122
+ }
123
+ function writeSessionProviders(happyHomeDir, bindings) {
124
+ const path = sessionProvidersPath(happyHomeDir);
125
+ mkdirSync(dirname(path), { recursive: true });
126
+ const tmp = `${path}.${process.pid}.tmp`;
127
+ writeFileSync(tmp, JSON.stringify(bindings, null, 2) + "\n", { mode: 384 });
128
+ chmodSync(tmp, 384);
129
+ renameSync(tmp, path);
130
+ }
131
+
132
+ export { applyProviderEnv as a, readProviders as b, loadSessionProvider as l, readSessionProviders as r, sessionProvidersPath as s, updateBindings as u, writeSessionProviders as w };
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var z = require('zod');
4
- var index = require('./index-oh8XEozJ.cjs');
4
+ var index = require('./index-Ub-5xbcU.cjs');
5
5
  var axios = require('axios');
6
- var logger = require('./logger-DK1ytCz6.cjs');
7
- var configuration = require('./configuration-B-CugKJ3.cjs');
6
+ var logger = require('./logger-CrtT0opS.cjs');
7
+ var configuration = require('./configuration-C9Sx-Foo.cjs');
8
8
  var contentLogMetadata = require('./contentLogMetadata-ZSFk_NjQ.cjs');
9
9
 
10
10
  z.z.object({
@@ -1,8 +1,8 @@
1
1
  import { z } from 'zod';
2
- import { q as AgentVersionsSchema } from './index-BI0h2Zks.mjs';
2
+ import { u as AgentVersionsSchema } from './index-DisBaRvM.mjs';
3
3
  import axios from 'axios';
4
- import { l as logger } from './logger-DpqihN1f.mjs';
5
- import { c as configuration } from './configuration-YXw_Dcsb.mjs';
4
+ import { l as logger } from './logger-D2qd0mMg.mjs';
5
+ import { c as configuration } from './configuration-CVgUe2qN.mjs';
6
6
  import { c as contentLogMetadata } from './contentLogMetadata-BlWI0egu.mjs';
7
7
 
8
8
  z.object({
@@ -1,6 +1,6 @@
1
1
  import { query as query$1 } from '@anthropic-ai/claude-agent-sdk';
2
2
  import { p as pinSmallFastModel, e as ensureLocalProxyBypass } from './smallFastModel-BLNgMrwR.mjs';
3
- import { l as logger } from './logger-DpqihN1f.mjs';
3
+ import { l as logger } from './logger-D2qd0mMg.mjs';
4
4
  import { s as snapshotTree, k as killSurvivors } from './processTreeSnapshot-CuLJDNC-.mjs';
5
5
 
6
6
  const HAPPY_DEFAULT_ENTRYPOINT = "remote_mobile";
@@ -2,7 +2,7 @@
2
2
 
3
3
  var claudeAgentSdk = require('@anthropic-ai/claude-agent-sdk');
4
4
  var smallFastModel = require('./smallFastModel-D_uxGMo3.cjs');
5
- var logger = require('./logger-DK1ytCz6.cjs');
5
+ var logger = require('./logger-CrtT0opS.cjs');
6
6
  var processTreeSnapshot = require('./processTreeSnapshot-mDbnuojn.cjs');
7
7
 
8
8
  const HAPPY_DEFAULT_ENTRYPOINT = "remote_mobile";
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-DK1ytCz6.cjs');
3
+ var logger = require('./logger-CrtT0opS.cjs');
4
4
 
5
5
  const MAX_WINDOWS_PER_PROVIDER = 8;
6
6
  function finite(value) {
@@ -1,4 +1,4 @@
1
- import { l as logger } from './logger-DpqihN1f.mjs';
1
+ import { l as logger } from './logger-D2qd0mMg.mjs';
2
2
 
3
3
  const MAX_WINDOWS_PER_PROVIDER = 8;
4
4
  function finite(value) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-DK1ytCz6.cjs');
3
+ var logger = require('./logger-CrtT0opS.cjs');
4
4
  var child_process = require('child_process');
5
5
  var util = require('util');
6
6
  var fs = require('fs/promises');
@@ -9,7 +9,7 @@ var require$$1 = require('path');
9
9
  var spawn = require('cross-spawn');
10
10
  var projectPath = require('./projectPath-C3ioB4Bu.cjs');
11
11
  var os = require('os');
12
- var configuration = require('./configuration-B-CugKJ3.cjs');
12
+ var configuration = require('./configuration-C9Sx-Foo.cjs');
13
13
 
14
14
  function run$1(args, options) {
15
15
  const RUNNER_PATH = require$$1.resolve(require$$1.join(projectPath.projectPath(), "scripts", "ripgrep_launcher.cjs"));
@@ -1,4 +1,4 @@
1
- import { l as logger } from './logger-DpqihN1f.mjs';
1
+ import { l as logger } from './logger-D2qd0mMg.mjs';
2
2
  import { spawn as spawn$1, exec } from 'child_process';
3
3
  import { promisify } from 'util';
4
4
  import { mkdir, writeFile, appendFile, stat, rename, unlink, readdir, readFile } from 'fs/promises';
@@ -7,7 +7,7 @@ import { resolve, join, sep } from 'path';
7
7
  import { spawn } from 'cross-spawn';
8
8
  import { p as projectPath } from './projectPath-BTBIMB57.mjs';
9
9
  import { platform } from 'os';
10
- import { c as configuration } from './configuration-YXw_Dcsb.mjs';
10
+ import { c as configuration } from './configuration-CVgUe2qN.mjs';
11
11
 
12
12
  function run$1(args, options) {
13
13
  const RUNNER_PATH = resolve(join(projectPath(), "scripts", "ripgrep_launcher.cjs"));
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var logger = require('./logger-DK1ytCz6.cjs');
3
+ var logger = require('./logger-CrtT0opS.cjs');
4
4
  require('axios');
5
5
  require('node:events');
6
6
  require('socket.io-client');
7
- require('./pushNotifications-CyQVDThC.cjs');
7
+ require('./pushNotifications-BgQ_QTgS.cjs');
8
8
  require('node:crypto');
9
9
  require('tweetnacl');
10
- require('./configuration-B-CugKJ3.cjs');
11
- require('./index-oh8XEozJ.cjs');
12
- require('./registerCommonHandlers-DbNoM39q.cjs');
10
+ require('./configuration-C9Sx-Foo.cjs');
11
+ require('./index-Ub-5xbcU.cjs');
12
+ require('./registerCommonHandlers-CRqKXwQt.cjs');
13
13
  require('os');
14
14
  require('child_process');
15
15
  require('@paralleldrive/cuid2');
16
- require('./persistence-BdpwWXKh.cjs');
16
+ require('./persistence-IYH6bAXY.cjs');
17
17
  require('chalk');
18
18
  require('./types-CRS-srZK.cjs');
19
19
 
@@ -1,17 +1,17 @@
1
- import { l as logger } from './logger-DpqihN1f.mjs';
1
+ import { l as logger } from './logger-D2qd0mMg.mjs';
2
2
  import 'axios';
3
3
  import 'node:events';
4
4
  import 'socket.io-client';
5
- import './pushNotifications-CMmRsbKv.mjs';
5
+ import './pushNotifications-gVJWGFBP.mjs';
6
6
  import 'node:crypto';
7
7
  import 'tweetnacl';
8
- import './configuration-YXw_Dcsb.mjs';
9
- import './index-BI0h2Zks.mjs';
10
- import './registerCommonHandlers-K8dICQO2.mjs';
8
+ import './configuration-CVgUe2qN.mjs';
9
+ import './index-DisBaRvM.mjs';
10
+ import './registerCommonHandlers-CyAtDNvs.mjs';
11
11
  import 'os';
12
12
  import 'child_process';
13
13
  import '@paralleldrive/cuid2';
14
- import './persistence-jOEuAFTS.mjs';
14
+ import './persistence-DFtgQvr6.mjs';
15
15
  import 'chalk';
16
16
  import './types-CkqAACXx.mjs';
17
17