very-happy-cli 0.2.192 → 0.2.194
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.
- package/dist/{AcpBackend-CGHTDJd9.mjs → AcpBackend-C3Kx0QJb.mjs} +3 -3
- package/dist/{AcpBackend-BQO4ShOy.cjs → AcpBackend-DJzsue14.cjs} +3 -3
- package/dist/{AcpSessionManager-LlUMmcpB.cjs → AcpSessionManager-Bc3iafB1.cjs} +2 -2
- package/dist/{AcpSessionManager-G0xD6Jbq.mjs → AcpSessionManager-SteuoqMY.mjs} +2 -2
- package/dist/{BasePermissionHandler-BmTIg376.mjs → BasePermissionHandler-D2pNcAXn.mjs} +1 -1
- package/dist/{BasePermissionHandler-N6Ip3tFt.cjs → BasePermissionHandler-DKzNFVCh.cjs} +1 -1
- package/dist/{account-DtaouikP.cjs → account-ByVjlvFj.cjs} +84 -27
- package/dist/{account-CCVT-HO_.mjs → account-DC2YyU24.mjs} +84 -27
- package/dist/{accountService-Dd9uqde2.mjs → accountService-Cd7bnkfd.mjs} +369 -19
- package/dist/{accountService-Bddy0zwL.cjs → accountService-CuUSJDhP.cjs} +369 -19
- package/dist/{acpSessionResume-BWEUxNtC.mjs → acpSessionResume-B6VClxKQ.mjs} +1 -1
- package/dist/{acpSessionResume-BnHDk5eD.cjs → acpSessionResume-DHHgbNnk.cjs} +1 -1
- package/dist/{agentHome-B0VnjkZW.mjs → agentHome-9caXwo7k.mjs} +4 -4
- package/dist/{agentHome-CqQ29YY7.cjs → agentHome-Bov1aHYS.cjs} +4 -4
- package/dist/{api-_LeBScjg.mjs → api-aE60mNjs.mjs} +10 -10
- package/dist/{api-hMDsC6Wg.cjs → api-wYwQCJml.cjs} +10 -10
- package/dist/{apiMachine-CgRldeJ6.mjs → apiMachine-CvNB38Xg.mjs} +36 -19
- package/dist/{apiMachine-CqW2m6Zr.cjs → apiMachine-DwaqfM9Q.cjs} +36 -19
- package/dist/{attachmentContent-CyptLIfq.mjs → attachmentContent-C2ymY_-w.mjs} +2 -2
- package/dist/{attachmentContent-BEeT2J5n.cjs → attachmentContent-DB8ZsxGE.cjs} +2 -2
- package/dist/{auth-CFQikywl.mjs → auth-BYtmGgE1.mjs} +8 -8
- package/dist/{auth-CA1OClsW.cjs → auth-Bce0Zk3q.cjs} +8 -8
- package/dist/{auth-DL8_J9vu.mjs → auth-CWO6cQ4G.mjs} +5 -5
- package/dist/{auth-C9NvNHhL.cjs → auth-boIcb7iq.cjs} +5 -5
- package/dist/{auto-uQOxlxLp.cjs → auto-AaggdihK.cjs} +24 -22
- package/dist/{auto-CKI05w1D.mjs → auto-B-kopWQx.mjs} +24 -22
- package/dist/{bootstrap-DaZ0Np7X.mjs → bootstrap-CiWwfHB2.mjs} +2 -2
- package/dist/{bootstrap-DsZGc69k.cjs → bootstrap-kywZ0tvD.cjs} +2 -2
- package/dist/{browser-BUIaSHK2.mjs → browser-CFfZM3yg.mjs} +1 -1
- package/dist/{browser-Ft0ASDm7.cjs → browser-Do2MFdq6.cjs} +1 -1
- package/dist/{claudeAccountEnv-ON24i0qv.mjs → claudeAccountEnv-BL1pR_37.mjs} +2 -1
- package/dist/{claudeAccountEnv-BOBpJ3k8.cjs → claudeAccountEnv-CEX_EMZr.cjs} +2 -1
- package/dist/{claudeLocal-B1ZVtryl.mjs → claudeLocal-B47NjZfB.mjs} +5 -5
- package/dist/{claudeLocal-BMf9t4Fa.cjs → claudeLocal-DLd8ogcH.cjs} +5 -5
- package/dist/{claudeLocalLauncher-Bp8bqF4y.mjs → claudeLocalLauncher-5DDuHpCD.mjs} +10 -10
- package/dist/{claudeLocalLauncher-C8TeJcfF.cjs → claudeLocalLauncher-D_UTQ4o_.cjs} +10 -10
- package/dist/{claudeSessionFork-YiktY55n.cjs → claudeSessionFork-4g6-Sk3Q.cjs} +104 -38
- package/dist/{claudeSessionFork-8AA47z8Y.mjs → claudeSessionFork-BrJTncNL.mjs} +105 -40
- package/dist/{client-Crh8_cNx.cjs → client-BIg2LPVx.cjs} +2 -2
- package/dist/{client-CFHZfh9x.cjs → client-BfDga3xi.cjs} +4 -4
- package/dist/{client-Bm4oKvW7.mjs → client-Cbxr9VUE.mjs} +4 -2
- package/dist/{client-D8XROyZc.cjs → client-CsfPUxLy.cjs} +4 -2
- package/dist/{client-BmPaBnDK.mjs → client-DS5JEsHs.mjs} +4 -4
- package/dist/{client-Cxlp_D4I.mjs → client-OjYRPhZs.mjs} +2 -2
- package/dist/codex/happyMcpStdioBridge.cjs +16 -16
- package/dist/codex/happyMcpStdioBridge.mjs +16 -16
- package/dist/codexAccount-BDQjRbtI.cjs +1028 -0
- package/dist/codexAccount-NOX5pmQf.mjs +1015 -0
- package/dist/{codexAppServerClient-q8GHQhyC.cjs → codexAppServerClient-Bj5vN7sb.cjs} +18 -7
- package/dist/{codexAppServerClient-BWJbLCQn.mjs → codexAppServerClient-HKAm8f_D.mjs} +18 -7
- package/dist/{codexCommand-BfXfRQr4.mjs → codexCommand-655pR6CR.mjs} +188 -58
- package/dist/{codexCommand-BgpGg-Zy.cjs → codexCommand-DtbDjHZp.cjs} +187 -57
- package/dist/{codexTermination-CVUF0X75.cjs → codexTermination-CX_FHKT5.cjs} +1 -1
- package/dist/{codexTermination-s9fd1gkA.mjs → codexTermination-DxLR-bb5.mjs} +1 -1
- package/dist/{codexThreadFork-5kwoKjMu.cjs → codexThreadFork-C6ZmcT2z.cjs} +22 -1
- package/dist/{codexThreadFork-DobPd19R.mjs → codexThreadFork-CVzAqELg.mjs} +22 -2
- package/dist/{config-BF8XgLyc.mjs → config-CIvXVGlP.mjs} +3 -3
- package/dist/{config-BAjyTyYp.cjs → config-Cv-A-Bw0.cjs} +3 -3
- package/dist/{configuration-CXEVKAyF.cjs → configuration-2Pbg3a0H.cjs} +1 -1
- package/dist/{configuration-IhRiLDVe.mjs → configuration-rTcdHkhE.mjs} +1 -1
- package/dist/{connect-LZh1gr08.mjs → connect-B9Bl68PF.mjs} +13 -13
- package/dist/{connect-rCS56arw.cjs → connect-BAYNAE8A.cjs} +13 -13
- package/dist/{context-DO6F5YwH.mjs → context-C7QarZMk.mjs} +1 -1
- package/dist/{context-3_S_mWz9.cjs → context-CLTyu_tQ.cjs} +1 -1
- package/dist/{controlClient-8ILulwjc.mjs → controlClient-BIdGnYBo.mjs} +3 -3
- package/dist/{controlClient-j7p5p3_7.cjs → controlClient-CIqHL07h.cjs} +3 -3
- package/dist/{createSessionMetadata-DwdD_uVo.cjs → createSessionMetadata-BHjzRzPc.cjs} +2 -2
- package/dist/{createSessionMetadata-oyaTZm1b.mjs → createSessionMetadata-PrN-dT7K.mjs} +2 -2
- package/dist/{daemonAccounts-BCjDgoNt.cjs → daemonAccounts-CpGDY_4k.cjs} +4 -1
- package/dist/{daemonAccounts-BJgt6IJe.mjs → daemonAccounts-DwPwKxvv.mjs} +5 -2
- package/dist/{defaultPermissionMode-BFShzF55.cjs → defaultPermissionMode-BakXiqRr.cjs} +1 -1
- package/dist/{defaultPermissionMode-Lt3PUCwY.mjs → defaultPermissionMode-DF5AfeBb.mjs} +1 -1
- package/dist/{deterministicJson-Dfp-7wUZ.mjs → deterministicJson-DFwJ57jR.mjs} +13 -13
- package/dist/{deterministicJson-DUN0v3St.cjs → deterministicJson-ZBFn1jtS.cjs} +13 -13
- package/dist/{doctor-B_UwMcVT.mjs → doctor-CFYpAXvt.mjs} +7 -7
- package/dist/{doctor-FgUYTbAT.cjs → doctor-yyM-zii7.cjs} +7 -7
- package/dist/{downloadTarget-C0d6jRx-.mjs → downloadTarget-CVPBZMnY.mjs} +6 -6
- package/dist/{downloadTarget-BrrQEDxg.cjs → downloadTarget-DlmqPQp9.cjs} +6 -6
- package/dist/{ensureDaemonRunning-KUMFfIil.mjs → ensureDaemonRunning-B6Y-CMWe.mjs} +5 -5
- package/dist/{ensureDaemonRunning-Cq4FYI5Q.cjs → ensureDaemonRunning-D2ny0yon.cjs} +5 -5
- package/dist/{handleResumeCommand-Cl9GIL5F.cjs → handleResumeCommand-D-mGugcu.cjs} +5 -5
- package/dist/{handleResumeCommand-BGhVo3QH.mjs → handleResumeCommand-DlrDcV5B.mjs} +5 -5
- package/dist/{index-CQ_hLLCj.cjs → index-2Fcq3AGX.cjs} +3 -3
- package/dist/{index-CRipkiqo.cjs → index-5c33fqLQ.cjs} +4 -4
- package/dist/{index-JQDyJ3Li.mjs → index-BJsenPFp.mjs} +3 -3
- package/dist/{index-BzAYnYct.cjs → index-BUFrKZeQ.cjs} +198 -108
- package/dist/{index-D8ODb0_U.cjs → index-BWvmUCQF.cjs} +42 -42
- package/dist/{index-v5EmjT8l.mjs → index-Bi3dVJ0S.mjs} +4 -4
- package/dist/{index-CZaLMmPC.cjs → index-CPkSLWP_.cjs} +4 -4
- package/dist/{index-DYD3GM1m.mjs → index-D1YnIih6.mjs} +195 -109
- package/dist/{index-BjXjMhGY.mjs → index-DEN6vfEY.mjs} +4 -4
- package/dist/{index-Ca1Tt96A.mjs → index-DuDD9khO.mjs} +43 -43
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-ClUA9tbC.cjs → install-BOA4nEbm.cjs} +3 -3
- package/dist/{install-D6EHRtAN.mjs → install-BVYL-wSO.mjs} +3 -3
- package/dist/lib.cjs +12 -12
- package/dist/lib.d.cts +97 -25
- package/dist/lib.d.mts +97 -25
- package/dist/lib.mjs +12 -12
- package/dist/{lidState-DqoN7zH4.cjs → lidState-DYeb7Wud.cjs} +1 -1
- package/dist/{lidState-CZOXXdzv.mjs → lidState-zy20u7T3.mjs} +1 -1
- package/dist/{localHappyAgentAuth-YHxDZ4x4.mjs → localHappyAgentAuth-CBsX08VJ.mjs} +1 -1
- package/dist/{localHappyAgentAuth-BnGCpHRX.cjs → localHappyAgentAuth-CScN2McN.cjs} +1 -1
- package/dist/{logger-8su64lqR.cjs → logger-CepF8C5Z.cjs} +2 -2
- package/dist/{logger-Fd_rNvgd.mjs → logger-SGCwRIV5.mjs} +2 -2
- package/dist/{machineMetadata-1HIIC7Bc.mjs → machineMetadata-ClJfd7ay.mjs} +3 -3
- package/dist/{machineMetadata-DYXt3p6u.cjs → machineMetadata-ObK4hjF0.cjs} +3 -3
- package/dist/{main-BI6GIzUL.mjs → main-C7ZcZVBY.mjs} +47 -47
- package/dist/{main-C_GrcYkn.cjs → main-mhXOpUV7.cjs} +47 -47
- package/dist/{mcp-XGoxywno.mjs → mcp-BuCpkYTY.mjs} +18 -18
- package/dist/{mcp-BycIv9oQ.cjs → mcp-Zz7m0j8A.cjs} +18 -18
- package/dist/{mirrorProtocol-DXT3rv7T.mjs → mirrorProtocol-B0H9UTBM.mjs} +3 -3
- package/dist/{mirrorProtocol-DVnB8EO8.cjs → mirrorProtocol-IhICxf0K.cjs} +3 -3
- package/dist/{package-iuLlSiSF.cjs → package-C7WgesIw.cjs} +7 -7
- package/dist/{package-6KkRAops.mjs → package-Q_ELj5DL.mjs} +7 -7
- package/dist/{panels-B5Di2zb2.mjs → panels-Cm69UXgE.mjs} +5 -5
- package/dist/{panels-0C89q0Tu.cjs → panels-yyxpwZnk.cjs} +5 -5
- package/dist/{peerTools-CANTX_mG.cjs → peerTools-BcZAbqBL.cjs} +5 -5
- package/dist/{peerTools-CKJ-IDM4.mjs → peerTools-DUg9RduG.mjs} +5 -5
- package/dist/{persistence-B4ttN-fR.cjs → persistence-D0gNvqXe.cjs} +2 -2
- package/dist/{persistence-DWcHe035.mjs → persistence-mr4Y484W.mjs} +2 -2
- package/dist/{piRunnerArgs-Bl5GpBoN.mjs → piRunnerArgs-CGjpl4iF.mjs} +1 -1
- package/dist/{piRunnerArgs-BOkfxyak.cjs → piRunnerArgs-DK_DDkYW.cjs} +1 -1
- package/dist/{piRuntime-DzrIiZU8.cjs → piRuntime-CtZRNOEb.cjs} +1 -1
- package/dist/{piRuntime-BhwxzdQf.mjs → piRuntime-HUA19wG8.mjs} +1 -1
- package/dist/{piTerminal-DnA2CbGr.mjs → piTerminal-Bgy1W9mA.mjs} +20 -20
- package/dist/{piTerminal-BdS7ol7v.cjs → piTerminal-D9OPouek.cjs} +20 -20
- package/dist/{pushNotifications-BqFoLye2.cjs → pushNotifications-CH0XVPQe.cjs} +3 -3
- package/dist/{pushNotifications-DkQ0yvFs.mjs → pushNotifications-DjEl8G0a.mjs} +3 -3
- package/dist/{query-BQ4br3yn.cjs → query-Df3WhSA0.cjs} +1 -1
- package/dist/{query-BRJYSkb1.mjs → query-DmIo5OXf.mjs} +1 -1
- package/dist/{rateLimitReporter-BRbYkmuP.mjs → rateLimitReporter-B_PZClib.mjs} +3 -3
- package/dist/{rateLimitReporter-DK5SQuCc.cjs → rateLimitReporter-M_IKRRS7.cjs} +3 -3
- package/dist/{rateLimitWindows-DBfiuYeg.cjs → rateLimitWindows-B9PERFm1.cjs} +1 -1
- package/dist/{rateLimitWindows-Da5AR-4u.mjs → rateLimitWindows-a2yE3kCv.mjs} +1 -1
- package/dist/{registerCommonHandlers-yQ7Ru-l0.mjs → registerCommonHandlers-CND00Dpj.mjs} +2 -2
- package/dist/{registerCommonHandlers-m6pxxf2J.cjs → registerCommonHandlers-D4uXC0he.cjs} +2 -2
- package/dist/{registerKillSessionHandler-BDNpi7YO.mjs → registerKillSessionHandler-CwyHwm_n.mjs} +6 -6
- package/dist/{registerKillSessionHandler-BAOIa_Fs.cjs → registerKillSessionHandler-DQKsD9CW.cjs} +6 -6
- package/dist/{remoteSessionClient-iJMXRN_D.cjs → remoteSessionClient-DOWgca08.cjs} +5 -5
- package/dist/{remoteSessionClient-CZ7aaNgj.mjs → remoteSessionClient-mIr_9OL_.mjs} +5 -5
- package/dist/{reportProgressTool-DpFs7pSe.cjs → reportProgressTool-BLw2_Ohi.cjs} +3 -3
- package/dist/{reportProgressTool-DfQhPu0s.mjs → reportProgressTool-DTKlUlHv.mjs} +3 -3
- package/dist/{run-p-xp1_HY.cjs → run-1V6DLzTY.cjs} +178 -847
- package/dist/{run-CwN28mcj.mjs → run-bfxXYL5N.mjs} +176 -845
- package/dist/{runClaude-DRKtAGTm.mjs → runClaude-BgvDhl2p.mjs} +25 -25
- package/dist/{runClaude-D6U1Z575.cjs → runClaude-DuFgZZwO.cjs} +25 -25
- package/dist/{runClaudeDeps-BheVcIlD.mjs → runClaudeDeps-CX7GtH7O.mjs} +46 -46
- package/dist/{runClaudeDeps-Dkofokgb.cjs → runClaudeDeps-DeVinBmE.cjs} +41 -41
- package/dist/{runGemini-owbvhFbi.mjs → runGemini-Cd27u-7R.mjs} +33 -33
- package/dist/{runGemini-C8q3YCc0.cjs → runGemini-DiYSk3s1.cjs} +33 -33
- package/dist/{runOpenClaw-Dky3-mjO.mjs → runOpenClaw-CWkkfRSo.mjs} +18 -18
- package/dist/{runOpenClaw-DGeN66-t.cjs → runOpenClaw-DyQnBzpy.cjs} +18 -18
- package/dist/{sandbox-D2CPyoCA.cjs → sandbox-BAXXYewR.cjs} +4 -4
- package/dist/{sandbox-sq_wy9Gl.mjs → sandbox-C35zDrkc.mjs} +4 -4
- package/dist/selfCheck-DKMF0Dyu.mjs +88 -0
- package/dist/{selfCheck-BgLvQKSt.cjs → selfCheck-R71q-x7u.cjs} +39 -39
- package/dist/{send-Cd10YhXh.cjs → send-3Wa9th3D.cjs} +8 -8
- package/dist/{send-K9vg-8t-.mjs → send-DiSaR5Bk.mjs} +8 -8
- package/dist/{server-DRrV64r0.cjs → server-BJu2bFBy.cjs} +6 -6
- package/dist/{server-De4W1zuK.mjs → server-BxMJxaE6.mjs} +4 -4
- package/dist/{sessionLock-BDtSzzKS.cjs → sessionLock-BJ1ngLgm.cjs} +3 -3
- package/dist/{sessionLock-Dl6i7IgA.mjs → sessionLock-dbi4JPhP.mjs} +3 -3
- package/dist/{sessionOps-DvnEH4PL.cjs → sessionOps-BUlpeaUe.cjs} +50 -8
- package/dist/{sessionOps-gU88-W9F.mjs → sessionOps-C9wRmCBg.mjs} +51 -9
- package/dist/{sessionProvider-CKcIo7KO.mjs → sessionProvider-BEHfI5gs.mjs} +11 -9
- package/dist/{sessionProvider-CbSZeZrl.cjs → sessionProvider-DYD6JepE.cjs} +11 -9
- package/dist/{sessionScanner-7RtcCeyD.cjs → sessionScanner-BwbjEoSf.cjs} +3 -3
- package/dist/{sessionScanner-DR32uSby.mjs → sessionScanner-CFITViIZ.mjs} +3 -3
- package/dist/{sessions-BvuMjgvJ.cjs → sessions-C-wBd0fN.cjs} +10 -10
- package/dist/{sessions-DTt2Eguk.mjs → sessions-wOcO2X-k.mjs} +10 -10
- package/dist/{setupOfflineReconnection-DduOsw6p.cjs → setupOfflineReconnection-Bd6XsWhA.cjs} +2 -2
- package/dist/{setupOfflineReconnection-BGnvhRfb.mjs → setupOfflineReconnection-BrljmbqX.mjs} +2 -2
- package/dist/{spawn-CL3cUc7b.mjs → spawn-BPioepNz.mjs} +66 -22
- package/dist/{spawn-DMB6rRPA.cjs → spawn-Crprnq9Z.cjs} +66 -22
- package/dist/{spawnAgents-CClb7buD.cjs → spawnAgents-B9olJ8xn.cjs} +1 -1
- package/dist/{spawnAgents-CRMfOJhh.mjs → spawnAgents-I29H9nO8.mjs} +1 -1
- package/dist/{spawnHappyCLI-Cj_6IICe.mjs → spawnHappyCLI-BA1bTIiO.mjs} +1 -1
- package/dist/{spawnHappyCLI-DJdhX_Qx.cjs → spawnHappyCLI-C0XAWy8V.cjs} +1 -1
- package/dist/{startFileWatcher-DikVa8kg.mjs → startFileWatcher-COCEjNT8.mjs} +1 -1
- package/dist/{startFileWatcher-LnOmVW6H.cjs → startFileWatcher-Ca5izs24.cjs} +1 -1
- package/dist/{startupSessionCreate-CDdaLaMq.mjs → startupSessionCreate-BnEPBxsJ.mjs} +3 -3
- package/dist/{startupSessionCreate-B3ND-917.cjs → startupSessionCreate-Cmg1gkKS.cjs} +3 -3
- package/dist/{store-DV__wCvP.cjs → store-CkNa6oj4.cjs} +46 -9
- package/dist/{store--XN-7MS0.mjs → store-Vej_738f.mjs} +46 -10
- package/dist/{streamRelay-DFdOaLOn.cjs → streamRelay-C0G1HOOd.cjs} +1 -1
- package/dist/{streamRelay-sABnxEXq.mjs → streamRelay-C5U-C4GS.mjs} +1 -1
- package/dist/{sync-_2lsZ1U2.cjs → sync-BfrnSdL1.cjs} +1 -1
- package/dist/{sync-JoEZKRo8.mjs → sync-DVcNkv8e.mjs} +1 -1
- package/dist/{systemPrompt-Zq4HyrZ5.mjs → systemPrompt-BxZebU75.mjs} +2 -2
- package/dist/{systemPrompt-CJEvNCuW.cjs → systemPrompt-Os5ca7pu.cjs} +2 -2
- package/dist/{teams-BNZafnrT.cjs → teams--pv0QFMA.cjs} +7 -7
- package/dist/{teams-qz4LqKJ2.mjs → teams-CNB3DE_n.mjs} +7 -7
- package/dist/{template-LgvBbOna.cjs → template-B9pLEP8v.cjs} +2 -2
- package/dist/{template-CJ8BWSsc.mjs → template-CL9EvQLQ.mjs} +2 -2
- package/dist/{time-bzmet4s5.mjs → time-0Ru4clBD.mjs} +1 -1
- package/dist/{time-CaUlWSNJ.cjs → time-Da5GIiCa.cjs} +1 -1
- package/dist/{titleGenerator-BuIIu_JP.cjs → titleGenerator-9xIXHA5K.cjs} +3 -3
- package/dist/{titleGenerator-CbTtJ_1D.mjs → titleGenerator-CaCzpYyA.mjs} +2 -2
- package/dist/{todo-DIrVF_Ak.mjs → todo-CZXHl2Lg.mjs} +6 -6
- package/dist/{todo-CQ_BTf9C.cjs → todo-DUY_J3l_.cjs} +6 -6
- package/dist/{tools-cLOjBvPn.mjs → tools-DqA2Jt2R.mjs} +3 -2
- package/dist/{tools-BnmmFZji.cjs → tools-hPD2Hvei.cjs} +3 -2
- package/dist/{uninstall-C5OuW6dE.mjs → uninstall-CjMzELYw.mjs} +3 -3
- package/dist/{uninstall-uEEGKB84.cjs → uninstall-rTvdpRLt.cjs} +3 -3
- package/dist/{wrapperAccount-DXlD3bsO.mjs → wrapperAccount-BkufO_9g.mjs} +5 -4
- package/dist/{wrapperAccount-DzoGqS2b.cjs → wrapperAccount-D2A4DuZy.cjs} +6 -3
- package/package.json +7 -7
- package/dist/selfCheck-vkfrgQ7X.mjs +0 -88
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { readFileSync, existsSync, mkdirSync, chmodSync, writeFileSync, renameSync, rmSync } from 'node:fs';
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
3
|
import { join, dirname } from 'node:path';
|
|
4
|
+
import { t as AGENT_PROFILE_KINDS } from './index-D1YnIih6.mjs';
|
|
4
5
|
|
|
5
6
|
function providersPath(happyHomeDir) {
|
|
6
7
|
return join(happyHomeDir, "providers.json");
|
|
@@ -48,6 +49,15 @@ function parseSessionProvidersFile(raw) {
|
|
|
48
49
|
return out;
|
|
49
50
|
}
|
|
50
51
|
|
|
52
|
+
const KIND_AGENT = {
|
|
53
|
+
"claude-subscription": "claude",
|
|
54
|
+
"claude-api": "claude",
|
|
55
|
+
"codex-chatgpt": "codex",
|
|
56
|
+
"codex-provider": "codex"
|
|
57
|
+
};
|
|
58
|
+
function isApiKind(kind) {
|
|
59
|
+
return kind === "claude-api" || kind === "codex-provider";
|
|
60
|
+
}
|
|
51
61
|
const SPAWN_ACCOUNT_ENV = "VH_AGENT_PROFILE_ID";
|
|
52
62
|
const SUBSCRIPTION_TOKEN_TTL_MS = 365 * 24 * 60 * 60 * 1e3;
|
|
53
63
|
const ACCOUNT_ID_PATTERN = /^[a-z0-9][a-z0-9-]{0,47}$/;
|
|
@@ -58,6 +68,10 @@ function accountSecretPath(home, id) {
|
|
|
58
68
|
if (!ACCOUNT_ID_PATTERN.test(id)) throw new Error(`invalid account id "${id}"`);
|
|
59
69
|
return join(home, "accounts", id, "secret");
|
|
60
70
|
}
|
|
71
|
+
function accountCodexHomePath(home, id) {
|
|
72
|
+
if (!ACCOUNT_ID_PATTERN.test(id)) throw new Error(`invalid account id "${id}"`);
|
|
73
|
+
return join(home, "accounts", id, "codex-home");
|
|
74
|
+
}
|
|
61
75
|
function sessionAccountsPath(home) {
|
|
62
76
|
return join(home, "session-accounts.json");
|
|
63
77
|
}
|
|
@@ -95,14 +109,26 @@ function parseAccountsFile(raw) {
|
|
|
95
109
|
for (const [id, value] of Object.entries(src)) {
|
|
96
110
|
if (!ACCOUNT_ID_PATTERN.test(id) || !value || typeof value !== "object") continue;
|
|
97
111
|
const a = value;
|
|
98
|
-
|
|
112
|
+
const kind = a.kind;
|
|
113
|
+
if (typeof a.kind !== "string" || !(a.kind in KIND_AGENT) || a.agent !== KIND_AGENT[kind]) continue;
|
|
99
114
|
const label = typeof a.label === "string" && a.label.trim() ? a.label.trim() : id;
|
|
100
|
-
const rec = { label, agent:
|
|
101
|
-
|
|
102
|
-
|
|
115
|
+
const rec = { label, agent: KIND_AGENT[kind], kind, createdAt: typeof a.createdAt === "number" ? a.createdAt : 0 };
|
|
116
|
+
const baseUrl = typeof a.baseUrl === "string" && /^https?:\/\//.test(a.baseUrl) ? a.baseUrl.replace(/\/+$/, "") : void 0;
|
|
117
|
+
if (kind === "codex-provider") {
|
|
118
|
+
const provider = typeof a.provider === "string" && /^[A-Za-z0-9_-]{1,64}$/.test(a.provider) ? a.provider : void 0;
|
|
119
|
+
if (!provider && !baseUrl) continue;
|
|
120
|
+
if (provider) rec.provider = provider;
|
|
121
|
+
if (a.wireApi === "responses" || a.wireApi === "chat") rec.wireApi = a.wireApi;
|
|
122
|
+
}
|
|
123
|
+
if (kind === "codex-chatgpt") {
|
|
124
|
+
if (typeof a.email === "string" && a.email) rec.email = a.email;
|
|
125
|
+
if (typeof a.planType === "string" && a.planType) rec.planType = a.planType;
|
|
126
|
+
}
|
|
127
|
+
if (isApiKind(kind)) {
|
|
128
|
+
if (kind === "claude-api" && !baseUrl) continue;
|
|
103
129
|
const key = parseKey(a.key);
|
|
104
130
|
if (!key) continue;
|
|
105
|
-
rec.baseUrl =
|
|
131
|
+
if (baseUrl) rec.baseUrl = baseUrl;
|
|
106
132
|
rec.key = key;
|
|
107
133
|
if (Array.isArray(a.models)) rec.models = a.models.filter((m) => typeof m === "string" && m.length > 0);
|
|
108
134
|
if (a.contextWindows && typeof a.contextWindows === "object") {
|
|
@@ -206,15 +232,22 @@ function writeAccountSecret(home, id, secret) {
|
|
|
206
232
|
function removeAccountSecret(home, id) {
|
|
207
233
|
rmSync(dirname(accountSecretPath(home, id)), { recursive: true, force: true });
|
|
208
234
|
}
|
|
235
|
+
const KIND_ID_BASE = {
|
|
236
|
+
"claude-subscription": "claude-sub",
|
|
237
|
+
"claude-api": "claude-api",
|
|
238
|
+
"codex-chatgpt": "chatgpt",
|
|
239
|
+
"codex-provider": "codex-api"
|
|
240
|
+
};
|
|
209
241
|
function newAccountId(label, kind, taken) {
|
|
210
242
|
const used = new Set(taken);
|
|
211
243
|
const ascii = /^[\x20-\x7e]*$/.test(label);
|
|
212
244
|
const slug = ascii ? label.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 40) : "";
|
|
213
|
-
const base = slug && /^[a-z0-9]/.test(slug) ? slug : kind
|
|
245
|
+
const base = slug && /^[a-z0-9]/.test(slug) ? slug : KIND_ID_BASE[kind];
|
|
214
246
|
if (!used.has(base)) return base;
|
|
215
247
|
for (let n = 2; ; n++) if (!used.has(`${base}-${n}`)) return `${base}-${n}`;
|
|
216
248
|
}
|
|
217
249
|
function secretPresent(home, id, a, probe) {
|
|
250
|
+
if (a.kind === "codex-chatgpt") return probe.fileReadable(join(accountCodexHomePath(home, id), "auth.json"));
|
|
218
251
|
if (a.kind === "claude-subscription" || a.key?.source === "stored") return probe.fileReadable(accountSecretPath(home, id));
|
|
219
252
|
if (a.key?.source === "file") return probe.fileReadable(expandHome(a.key.path));
|
|
220
253
|
if (a.key?.source === "env") return !!probe.env[a.key.name]?.trim();
|
|
@@ -228,7 +261,7 @@ function accountStatus(home, id, a, probe, now) {
|
|
|
228
261
|
}
|
|
229
262
|
function summarizeAccount(home, id, a, probe, now) {
|
|
230
263
|
const { status, detail } = accountStatus(home, id, a, probe, now);
|
|
231
|
-
const keySource = a.kind === "claude-subscription" ? "stored" : a.key?.source;
|
|
264
|
+
const keySource = a.kind === "claude-subscription" || a.kind === "codex-chatgpt" ? "stored" : a.key?.source;
|
|
232
265
|
const keyRef = a.key?.source === "file" ? a.key.path : a.key?.source === "env" ? a.key.name : void 0;
|
|
233
266
|
return {
|
|
234
267
|
id,
|
|
@@ -244,7 +277,10 @@ function summarizeAccount(home, id, a, probe, now) {
|
|
|
244
277
|
...a.models ? { models: a.models } : {},
|
|
245
278
|
...keySource ? { keySource } : {},
|
|
246
279
|
...keyRef ? { keyRef } : {},
|
|
247
|
-
...a.legacy ? { legacy: true } : {}
|
|
280
|
+
...a.legacy ? { legacy: true } : {},
|
|
281
|
+
...a.provider ? { provider: a.provider } : {},
|
|
282
|
+
...a.email ? { email: a.email } : {},
|
|
283
|
+
...a.planType ? { planType: a.planType } : {}
|
|
248
284
|
};
|
|
249
285
|
}
|
|
250
286
|
function defaultSecretProbe(env = process.env) {
|
|
@@ -263,7 +299,7 @@ function buildAgentProfilesState(home, file, probe, now, daemonPid) {
|
|
|
263
299
|
const accounts = Object.entries(file.accounts).map(([id, a]) => summarizeAccount(home, id, a, probe, now)).sort((x, y) => (x.createdAt ?? 0) - (y.createdAt ?? 0) || x.id.localeCompare(y.id));
|
|
264
300
|
const defaults = {};
|
|
265
301
|
for (const [agent, id] of Object.entries(file.defaults)) if (file.accounts[id]) defaults[agent] = id;
|
|
266
|
-
return { daemonPid, updatedAt: now, accounts, defaults };
|
|
302
|
+
return { daemonPid, updatedAt: now, accounts, defaults, kinds: [...AGENT_PROFILE_KINDS] };
|
|
267
303
|
}
|
|
268
304
|
|
|
269
|
-
export { SPAWN_ACCOUNT_ENV as S, readAccounts as a, accountSecretPath as b, readAccountsFileV2 as c, defaultSecretProbe as d, expandHome as e, writeAccountsFile as f, accountsPath as g, buildAgentProfilesState as h, writeAccountSecret as i, sessionsBoundTo as j, removeAccountSecret as k,
|
|
305
|
+
export { SPAWN_ACCOUNT_ENV as S, readAccounts as a, accountSecretPath as b, readAccountsFileV2 as c, defaultSecretProbe as d, expandHome as e, writeAccountsFile as f, accountsPath as g, buildAgentProfilesState as h, writeAccountSecret as i, sessionsBoundTo as j, removeAccountSecret as k, accountCodexHomePath as l, SUBSCRIPTION_TOKEN_TTL_MS as m, newAccountId as n, readSessionBindingV2 as o, providersPath as p, readSessionBindings as r, summarizeAccount as s, writeSessionBinding as w };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { l as logger } from './logger-
|
|
1
|
+
import { l as logger } from './logger-SGCwRIV5.mjs';
|
|
2
2
|
import { existsSync, readFileSync } from 'node:fs';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { g as getProjectPath } from './path-D2wdaNSk.mjs';
|
|
5
|
-
import {
|
|
5
|
+
import { w as BUILTIN_TODO_DISCOVERY } from './index-D1YnIih6.mjs';
|
|
6
6
|
import { t as trimIdent } from './trimIdent-BAjmv_TG.mjs';
|
|
7
7
|
import { homedir } from 'node:os';
|
|
8
8
|
import { A as AGENT_GUIDANCE } from './agentGuidance-BDYt2Qy2.mjs';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var logger = require('./logger-
|
|
3
|
+
var logger = require('./logger-CepF8C5Z.cjs');
|
|
4
4
|
var node_fs = require('node:fs');
|
|
5
5
|
var path$1 = require('node:path');
|
|
6
6
|
var path = require('./path-B7zW-WwE.cjs');
|
|
7
|
-
var index = require('./index-
|
|
7
|
+
var index = require('./index-BUFrKZeQ.cjs');
|
|
8
8
|
var trimIdent = require('./trimIdent-4gvk9Wk6.cjs');
|
|
9
9
|
var os = require('node:os');
|
|
10
10
|
var agentGuidance = require('./agentGuidance-BtBx2xxE.cjs');
|
|
@@ -4,21 +4,21 @@ var os = require('node:os');
|
|
|
4
4
|
var promises = require('node:fs/promises');
|
|
5
5
|
var z = require('zod');
|
|
6
6
|
var node_crypto = require('node:crypto');
|
|
7
|
-
var client = require('./client-
|
|
8
|
-
var persistence = require('./persistence-
|
|
7
|
+
var client = require('./client-BfDga3xi.cjs');
|
|
8
|
+
var persistence = require('./persistence-D0gNvqXe.cjs');
|
|
9
9
|
var install = require('./install-BOHlqewf.cjs');
|
|
10
10
|
require('node:child_process');
|
|
11
11
|
require('node:util');
|
|
12
12
|
require('node:path');
|
|
13
|
-
require('./index-
|
|
13
|
+
require('./index-BUFrKZeQ.cjs');
|
|
14
14
|
require('@paralleldrive/cuid2');
|
|
15
|
-
require('./configuration-
|
|
15
|
+
require('./configuration-2Pbg3a0H.cjs');
|
|
16
16
|
require('node:fs');
|
|
17
|
-
require('./package-
|
|
18
|
-
require('./context-
|
|
17
|
+
require('./package-C7WgesIw.cjs');
|
|
18
|
+
require('./context-CLTyu_tQ.cjs');
|
|
19
19
|
require('./authRelay-Dy1qU9td.cjs');
|
|
20
20
|
require('tweetnacl');
|
|
21
|
-
require('./logger-
|
|
21
|
+
require('./logger-CepF8C5Z.cjs');
|
|
22
22
|
require('chalk');
|
|
23
23
|
require('./resources-BZ_Be0qM.cjs');
|
|
24
24
|
|
|
@@ -2,21 +2,21 @@ import { homedir } from 'node:os';
|
|
|
2
2
|
import { readFile } from 'node:fs/promises';
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
5
|
-
import { t as teamRequest, c as createTeamsClient } from './client-
|
|
6
|
-
import { b as readCredentialsForConfiguredRelay } from './persistence-
|
|
5
|
+
import { t as teamRequest, c as createTeamsClient } from './client-DS5JEsHs.mjs';
|
|
6
|
+
import { b as readCredentialsForConfiguredRelay } from './persistence-mr4Y484W.mjs';
|
|
7
7
|
import { a as installTeamSkill, i as installAutomationSkill } from './install-B8O1JpJH.mjs';
|
|
8
8
|
import 'node:child_process';
|
|
9
9
|
import 'node:util';
|
|
10
10
|
import 'node:path';
|
|
11
|
-
import './index-
|
|
11
|
+
import './index-D1YnIih6.mjs';
|
|
12
12
|
import '@paralleldrive/cuid2';
|
|
13
|
-
import './configuration-
|
|
13
|
+
import './configuration-rTcdHkhE.mjs';
|
|
14
14
|
import 'node:fs';
|
|
15
|
-
import './package-
|
|
16
|
-
import './context-
|
|
15
|
+
import './package-Q_ELj5DL.mjs';
|
|
16
|
+
import './context-C7QarZMk.mjs';
|
|
17
17
|
import './authRelay-DhQhkBvX.mjs';
|
|
18
18
|
import 'tweetnacl';
|
|
19
|
-
import './logger-
|
|
19
|
+
import './logger-SGCwRIV5.mjs';
|
|
20
20
|
import 'chalk';
|
|
21
21
|
import './resources-CLP_MpK4.mjs';
|
|
22
22
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-BUFrKZeQ.cjs');
|
|
4
4
|
|
|
5
5
|
function payloadJson(payload) {
|
|
6
6
|
if (!payload) return void 0;
|
|
@@ -143,7 +143,7 @@ function describeTrigger(trigger) {
|
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
145
|
function describeAction(action) {
|
|
146
|
-
if (action.kind === "spawn") return `spawn ${action.agent} in ${action.directory}${action.sticky ? ` (sticky ${action.sticky.key})` : ""}`;
|
|
146
|
+
if (action.kind === "spawn") return `spawn ${action.agent} in ${action.directory}${action.sticky ? ` (sticky ${action.sticky.key})` : ""}${action.agentProfile !== void 0 ? ` \xB7 account ${action.agentProfile === null ? "machine login" : action.agentProfile.label ?? action.agentProfile.id}` : ""}`;
|
|
147
147
|
if (action.kind === "send") return `send to session ${action.sessionId}`;
|
|
148
148
|
return `script ${action.command.join(" ")}`;
|
|
149
149
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h as AUTOMATION_ATTENTION_REASON_MAX_CHARS, j as AUTOMATION_SUMMARY_MAX_CHARS } from './index-
|
|
1
|
+
import { h as AUTOMATION_ATTENTION_REASON_MAX_CHARS, j as AUTOMATION_SUMMARY_MAX_CHARS } from './index-D1YnIih6.mjs';
|
|
2
2
|
|
|
3
3
|
function payloadJson(payload) {
|
|
4
4
|
if (!payload) return void 0;
|
|
@@ -141,7 +141,7 @@ function describeTrigger(trigger) {
|
|
|
141
141
|
}
|
|
142
142
|
}
|
|
143
143
|
function describeAction(action) {
|
|
144
|
-
if (action.kind === "spawn") return `spawn ${action.agent} in ${action.directory}${action.sticky ? ` (sticky ${action.sticky.key})` : ""}`;
|
|
144
|
+
if (action.kind === "spawn") return `spawn ${action.agent} in ${action.directory}${action.sticky ? ` (sticky ${action.sticky.key})` : ""}${action.agentProfile !== void 0 ? ` \xB7 account ${action.agentProfile === null ? "machine login" : action.agentProfile.label ?? action.agentProfile.id}` : ""}`;
|
|
145
145
|
if (action.kind === "send") return `send to session ${action.sessionId}`;
|
|
146
146
|
return `script ${action.command.join(" ")}`;
|
|
147
147
|
}
|
|
@@ -5,16 +5,16 @@ var module$1 = require('node:module');
|
|
|
5
5
|
var oneShotPrompts = require('./oneShotPrompts-CL0dip9C.cjs');
|
|
6
6
|
var node_crypto = require('node:crypto');
|
|
7
7
|
var path = require('node:path');
|
|
8
|
-
var logger = require('./logger-
|
|
8
|
+
var logger = require('./logger-CepF8C5Z.cjs');
|
|
9
9
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
10
|
-
var wrapperAccount = require('./wrapperAccount-
|
|
10
|
+
var wrapperAccount = require('./wrapperAccount-D2A4DuZy.cjs');
|
|
11
11
|
|
|
12
12
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
13
13
|
const MAX_PROMPT_SAMPLE_CHARS = 500;
|
|
14
14
|
const MAX_TITLE_CHARS = 60;
|
|
15
15
|
const GENERATION_TIMEOUT_MS = 3e4;
|
|
16
16
|
function loadClaudeVersionUtils() {
|
|
17
|
-
const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('titleGenerator-
|
|
17
|
+
const require$1 = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('titleGenerator-9xIXHA5K.cjs', document.baseURI).href)));
|
|
18
18
|
return require$1(path.resolve(path.join(projectPath.projectPath(), "scripts", "claude_version_utils.cjs")));
|
|
19
19
|
}
|
|
20
20
|
function resolveClaudeBinary(loadUtils = loadClaudeVersionUtils) {
|
|
@@ -3,9 +3,9 @@ import { createRequire } from 'node:module';
|
|
|
3
3
|
import { T as TITLE_PROMPT_PREFIX } from './oneShotPrompts-DT4p6RNd.mjs';
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
5
5
|
import { resolve, join } from 'node:path';
|
|
6
|
-
import { l as logger } from './logger-
|
|
6
|
+
import { l as logger } from './logger-SGCwRIV5.mjs';
|
|
7
7
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
8
|
-
import { a as accountClaudeSettings } from './wrapperAccount-
|
|
8
|
+
import { a as accountClaudeSettings } from './wrapperAccount-BkufO_9g.mjs';
|
|
9
9
|
|
|
10
10
|
const MAX_PROMPT_SAMPLE_CHARS = 500;
|
|
11
11
|
const MAX_TITLE_CHARS = 60;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { c as configuration } from './configuration-
|
|
2
|
-
import { q as createBuiltinTodoClient, B as BUILTIN_TODO_SKILL } from './index-
|
|
3
|
-
import { b as readCredentialsForConfiguredRelay } from './persistence-
|
|
4
|
-
import { r as readTeamScope, t as teamScopePath } from './context-
|
|
1
|
+
import { c as configuration } from './configuration-rTcdHkhE.mjs';
|
|
2
|
+
import { q as createBuiltinTodoClient, B as BUILTIN_TODO_SKILL } from './index-D1YnIih6.mjs';
|
|
3
|
+
import { b as readCredentialsForConfiguredRelay } from './persistence-mr4Y484W.mjs';
|
|
4
|
+
import { r as readTeamScope, t as teamScopePath } from './context-C7QarZMk.mjs';
|
|
5
5
|
import 'node:fs';
|
|
6
6
|
import 'node:os';
|
|
7
7
|
import 'node:path';
|
|
8
|
-
import './package-
|
|
8
|
+
import './package-Q_ELj5DL.mjs';
|
|
9
9
|
import 'node:fs/promises';
|
|
10
10
|
import 'zod';
|
|
11
11
|
import '@paralleldrive/cuid2';
|
|
12
12
|
import './authRelay-DhQhkBvX.mjs';
|
|
13
13
|
import 'node:crypto';
|
|
14
14
|
import 'tweetnacl';
|
|
15
|
-
import './logger-
|
|
15
|
+
import './logger-SGCwRIV5.mjs';
|
|
16
16
|
import 'chalk';
|
|
17
17
|
import 'node:util';
|
|
18
18
|
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var configuration = require('./configuration-
|
|
4
|
-
var index = require('./index-
|
|
5
|
-
var persistence = require('./persistence-
|
|
6
|
-
var context = require('./context-
|
|
3
|
+
var configuration = require('./configuration-2Pbg3a0H.cjs');
|
|
4
|
+
var index = require('./index-BUFrKZeQ.cjs');
|
|
5
|
+
var persistence = require('./persistence-D0gNvqXe.cjs');
|
|
6
|
+
var context = require('./context-CLTyu_tQ.cjs');
|
|
7
7
|
require('node:fs');
|
|
8
8
|
require('node:os');
|
|
9
9
|
require('node:path');
|
|
10
|
-
require('./package-
|
|
10
|
+
require('./package-C7WgesIw.cjs');
|
|
11
11
|
require('node:fs/promises');
|
|
12
12
|
require('zod');
|
|
13
13
|
require('@paralleldrive/cuid2');
|
|
14
14
|
require('./authRelay-Dy1qU9td.cjs');
|
|
15
15
|
require('node:crypto');
|
|
16
16
|
require('tweetnacl');
|
|
17
|
-
require('./logger-
|
|
17
|
+
require('./logger-CepF8C5Z.cjs');
|
|
18
18
|
require('chalk');
|
|
19
19
|
require('node:util');
|
|
20
20
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import { c as createTeamsClient } from './client-
|
|
2
|
+
import { c as createTeamsClient } from './client-DS5JEsHs.mjs';
|
|
3
3
|
|
|
4
4
|
const CLOSED_GOAL_CHARS = 200;
|
|
5
5
|
const closed = (task) => task.status === "done" || task.status === "cancelled";
|
|
@@ -119,7 +119,8 @@ function registerTeamsTools(server, sessionId, client = createTeamsClient(sessio
|
|
|
119
119
|
botName: id.optional(),
|
|
120
120
|
directory: z.string().min(1).optional(),
|
|
121
121
|
assistant: z.enum(["claude", "codex", "pi-acp"]).optional(),
|
|
122
|
-
model: z.string().trim().min(1).max(256).optional()
|
|
122
|
+
model: z.string().trim().min(1).max(256).optional(),
|
|
123
|
+
agentProfile: z.object({ id: z.string().min(1).max(64), label: z.string().min(1).max(200).optional() }).nullable().optional().describe("Account a member spawns on (id from `very-happy account list`; null = machine login; omit = team default). Unusable \u2192 the launch is refused, never the machine login.")
|
|
123
124
|
});
|
|
124
125
|
action("message", "Send a persistent task-related message. Delivery does not mean the model has read or acted on it.", { taskId: id, body: text, recipientBotId: id.optional() });
|
|
125
126
|
action("submit", "Submit evidence for your current attempt and goal version. The owner still has to accept it.", { taskId: id, attemptId: id, goalVersion: z.number().int().positive(), result: text });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var z = require('zod');
|
|
4
|
-
var client = require('./client-
|
|
4
|
+
var client = require('./client-BfDga3xi.cjs');
|
|
5
5
|
|
|
6
6
|
const CLOSED_GOAL_CHARS = 200;
|
|
7
7
|
const closed = (task) => task.status === "done" || task.status === "cancelled";
|
|
@@ -121,7 +121,8 @@ function registerTeamsTools(server, sessionId, client$1 = client.createTeamsClie
|
|
|
121
121
|
botName: id.optional(),
|
|
122
122
|
directory: z.z.string().min(1).optional(),
|
|
123
123
|
assistant: z.z.enum(["claude", "codex", "pi-acp"]).optional(),
|
|
124
|
-
model: z.z.string().trim().min(1).max(256).optional()
|
|
124
|
+
model: z.z.string().trim().min(1).max(256).optional(),
|
|
125
|
+
agentProfile: z.z.object({ id: z.z.string().min(1).max(64), label: z.z.string().min(1).max(200).optional() }).nullable().optional().describe("Account a member spawns on (id from `very-happy account list`; null = machine login; omit = team default). Unusable \u2192 the launch is refused, never the machine login.")
|
|
125
126
|
});
|
|
126
127
|
action("message", "Send a persistent task-related message. Delivery does not mean the model has read or acted on it.", { taskId: id, body: text, recipientBotId: id.optional() });
|
|
127
128
|
action("submit", "Submit evidence for your current attempt and goal version. The owner still has to accept it.", { taskId: id, attemptId: id, goalVersion: z.z.number().int().positive(), result: text });
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { l as logger } from './logger-
|
|
1
|
+
import { l as logger } from './logger-SGCwRIV5.mjs';
|
|
2
2
|
import { existsSync, unlinkSync } from 'fs';
|
|
3
3
|
import { execSync } from 'child_process';
|
|
4
4
|
import 'chalk';
|
|
5
5
|
import 'node:util';
|
|
6
|
-
import './configuration-
|
|
6
|
+
import './configuration-rTcdHkhE.mjs';
|
|
7
7
|
import 'node:fs';
|
|
8
8
|
import 'node:os';
|
|
9
9
|
import 'node:path';
|
|
10
|
-
import './package-
|
|
10
|
+
import './package-Q_ELj5DL.mjs';
|
|
11
11
|
import 'node:fs/promises';
|
|
12
12
|
|
|
13
13
|
const PLIST_LABEL = "com.happy-cli.daemon";
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var logger = require('./logger-
|
|
3
|
+
var logger = require('./logger-CepF8C5Z.cjs');
|
|
4
4
|
var require$$0 = require('fs');
|
|
5
5
|
var child_process = require('child_process');
|
|
6
6
|
require('chalk');
|
|
7
7
|
require('node:util');
|
|
8
|
-
require('./configuration-
|
|
8
|
+
require('./configuration-2Pbg3a0H.cjs');
|
|
9
9
|
require('node:fs');
|
|
10
10
|
require('node:os');
|
|
11
11
|
require('node:path');
|
|
12
|
-
require('./package-
|
|
12
|
+
require('./package-C7WgesIw.cjs');
|
|
13
13
|
require('node:fs/promises');
|
|
14
14
|
|
|
15
15
|
const PLIST_LABEL = "com.happy-cli.daemon";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { mkdirSync, writeFileSync, chmodSync, readFileSync, rmSync } from 'node:fs';
|
|
2
2
|
import { homedir } from 'node:os';
|
|
3
3
|
import { dirname, join } from 'node:path';
|
|
4
|
-
import { r as resolveClaudeAccount, a as applyAccountEnv, o as overridingUserSettings } from './claudeAccountEnv-
|
|
5
|
-
import { r as readSessionBindings, w as writeSessionBinding, d as defaultSecretProbe, a as readAccounts, c as readAccountsFileV2, f as writeAccountsFile } from './store
|
|
4
|
+
import { r as resolveClaudeAccount, a as applyAccountEnv, o as overridingUserSettings } from './claudeAccountEnv-BL1pR_37.mjs';
|
|
5
|
+
import { r as readSessionBindings, w as writeSessionBinding, d as defaultSecretProbe, a as readAccounts, c as readAccountsFileV2, f as writeAccountsFile } from './store-Vej_738f.mjs';
|
|
6
6
|
|
|
7
7
|
let current = null;
|
|
8
8
|
let home = null;
|
|
@@ -15,7 +15,8 @@ function unavailableNotice(profile) {
|
|
|
15
15
|
missing: "it no longer exists on this machine",
|
|
16
16
|
"missing-secret": "its key / token is missing on this machine",
|
|
17
17
|
expired: "its sign-in has expired \u2014 sign in again",
|
|
18
|
-
invalid: "its key was rejected \u2014 fix the key"
|
|
18
|
+
invalid: "its key was rejected \u2014 fix the key",
|
|
19
|
+
"agent-mismatch": "it belongs to another agent (Claude / Codex)"
|
|
19
20
|
};
|
|
20
21
|
return `Account "${profile.label}" is unavailable: ${why[profile.reason ?? ""] ?? profile.reason ?? "unknown reason"}. This session will not fall back to the machine login; switch accounts or fix it, and the session restarts in place.`;
|
|
21
22
|
}
|
|
@@ -103,4 +104,4 @@ function noteAccountAuthFailure(now = Date.now()) {
|
|
|
103
104
|
return { label: current.id, status };
|
|
104
105
|
}
|
|
105
106
|
|
|
106
|
-
export { accountClaudeSettings as a, loadWrapperAccount as l, noteAccountAuthFailure as n };
|
|
107
|
+
export { accountClaudeSettings as a, loadWrapperAccount as l, noteAccountAuthFailure as n, shouldRecordSpawnAccount as s, unavailableNotice as u };
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var node_fs = require('node:fs');
|
|
4
4
|
var os = require('node:os');
|
|
5
5
|
var path = require('node:path');
|
|
6
|
-
var claudeAccountEnv = require('./claudeAccountEnv-
|
|
7
|
-
var store = require('./store-
|
|
6
|
+
var claudeAccountEnv = require('./claudeAccountEnv-CEX_EMZr.cjs');
|
|
7
|
+
var store = require('./store-CkNa6oj4.cjs');
|
|
8
8
|
|
|
9
9
|
let current = null;
|
|
10
10
|
let home = null;
|
|
@@ -17,7 +17,8 @@ function unavailableNotice(profile) {
|
|
|
17
17
|
missing: "it no longer exists on this machine",
|
|
18
18
|
"missing-secret": "its key / token is missing on this machine",
|
|
19
19
|
expired: "its sign-in has expired \u2014 sign in again",
|
|
20
|
-
invalid: "its key was rejected \u2014 fix the key"
|
|
20
|
+
invalid: "its key was rejected \u2014 fix the key",
|
|
21
|
+
"agent-mismatch": "it belongs to another agent (Claude / Codex)"
|
|
21
22
|
};
|
|
22
23
|
return `Account "${profile.label}" is unavailable: ${why[profile.reason ?? ""] ?? profile.reason ?? "unknown reason"}. This session will not fall back to the machine login; switch accounts or fix it, and the session restarts in place.`;
|
|
23
24
|
}
|
|
@@ -108,3 +109,5 @@ function noteAccountAuthFailure(now = Date.now()) {
|
|
|
108
109
|
exports.accountClaudeSettings = accountClaudeSettings;
|
|
109
110
|
exports.loadWrapperAccount = loadWrapperAccount;
|
|
110
111
|
exports.noteAccountAuthFailure = noteAccountAuthFailure;
|
|
112
|
+
exports.shouldRecordSpawnAccount = shouldRecordSpawnAccount;
|
|
113
|
+
exports.unavailableNotice = unavailableNotice;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "very-happy-cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.194",
|
|
4
4
|
"description": "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.",
|
|
5
5
|
"author": "Kirill Dubovitskiy",
|
|
6
6
|
"contributors": [
|
|
@@ -117,12 +117,12 @@
|
|
|
117
117
|
"zod": "^4.6.7"
|
|
118
118
|
},
|
|
119
119
|
"optionalDependencies": {
|
|
120
|
-
"very-happy-tools-arm64-darwin": "0.2.
|
|
121
|
-
"very-happy-tools-x64-darwin": "0.2.
|
|
122
|
-
"very-happy-tools-arm64-linux": "0.2.
|
|
123
|
-
"very-happy-tools-x64-linux": "0.2.
|
|
124
|
-
"very-happy-tools-arm64-win32": "0.2.
|
|
125
|
-
"very-happy-tools-x64-win32": "0.2.
|
|
120
|
+
"very-happy-tools-arm64-darwin": "0.2.194",
|
|
121
|
+
"very-happy-tools-x64-darwin": "0.2.194",
|
|
122
|
+
"very-happy-tools-arm64-linux": "0.2.194",
|
|
123
|
+
"very-happy-tools-x64-linux": "0.2.194",
|
|
124
|
+
"very-happy-tools-arm64-win32": "0.2.194",
|
|
125
|
+
"very-happy-tools-x64-win32": "0.2.194"
|
|
126
126
|
},
|
|
127
127
|
"devDependencies": {
|
|
128
128
|
"@slopus/happy-wire": "workspace:*",
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { p as packageJson } from './package-6KkRAops.mjs';
|
|
2
|
-
|
|
3
|
-
const LAZY_MODULES = [
|
|
4
|
-
// Entry
|
|
5
|
-
["main", () => import('./main-BI6GIzUL.mjs')],
|
|
6
|
-
["selfCheck", () => Promise.resolve().then(function () { return selfCheck; })],
|
|
7
|
-
// Subcommands (main.ts)
|
|
8
|
-
["api/api", () => import('./api-_LeBScjg.mjs').then(function (n) { return n.e; })],
|
|
9
|
-
["claude/claudeCliPath", () => import('./claudeCliPath-BqkaH2oR.mjs')],
|
|
10
|
-
["claude/runClaude", () => import('./runClaude-DRKtAGTm.mjs')],
|
|
11
|
-
["commands/agentHome", () => import('./agentHome-B0VnjkZW.mjs')],
|
|
12
|
-
["commands/auth", () => import('./auth-CFQikywl.mjs')],
|
|
13
|
-
["commands/auto", () => import('./auto-CKI05w1D.mjs')],
|
|
14
|
-
["commands/codexCommand", () => import('./codexCommand-BfXfRQr4.mjs')],
|
|
15
|
-
["commands/connect", () => import('./connect-LZh1gr08.mjs')],
|
|
16
|
-
["commands/installPiTools", () => import('./installPiTools-B_CdM5_2.mjs')],
|
|
17
|
-
["commands/installTerminalHooks", () => import('./installTerminalHooks-By7gBMEF.mjs')],
|
|
18
|
-
["commands/mcp", () => import('./mcp-XGoxywno.mjs')],
|
|
19
|
-
["commands/panels", () => import('./panels-B5Di2zb2.mjs')],
|
|
20
|
-
["commands/piTerminal", () => import('./piTerminal-DnA2CbGr.mjs')],
|
|
21
|
-
["commands/sandbox", () => import('./sandbox-sq_wy9Gl.mjs')],
|
|
22
|
-
["commands/send", () => import('./send-K9vg-8t-.mjs')],
|
|
23
|
-
["commands/server", () => import('./server-De4W1zuK.mjs')],
|
|
24
|
-
["commands/sessions", () => import('./sessions-DTt2Eguk.mjs')],
|
|
25
|
-
["commands/sessionProvider", () => import('./sessionProvider-CKcIo7KO.mjs')],
|
|
26
|
-
["commands/account", () => import('./account-CCVT-HO_.mjs')],
|
|
27
|
-
["agentProfiles/daemonAccounts", () => import('./daemonAccounts-BJgt6IJe.mjs')],
|
|
28
|
-
["commands/spawn", () => import('./spawn-CL3cUc7b.mjs')],
|
|
29
|
-
["commands/teams", () => import('./teams-qz4LqKJ2.mjs')],
|
|
30
|
-
["commands/todo", () => import('./todo-DIrVF_Ak.mjs')],
|
|
31
|
-
["daemon/doctor", () => import('./doctor-BPkYWSuq.mjs')],
|
|
32
|
-
["daemon/install", () => import('./install-D6EHRtAN.mjs')],
|
|
33
|
-
["daemon/run", () => import('./run-CwN28mcj.mjs')],
|
|
34
|
-
["daemon/uninstall", () => import('./uninstall-C5OuW6dE.mjs')],
|
|
35
|
-
["resume/handleResumeCommand", () => import('./handleResumeCommand-BGhVo3QH.mjs')],
|
|
36
|
-
["ui/doctor", () => import('./doctor-B_UwMcVT.mjs').then(function (n) { return n.d; })],
|
|
37
|
-
["agent/acp", () => import('./index-Ca1Tt96A.mjs')],
|
|
38
|
-
["gemini/runGemini", () => import('./runGemini-owbvhFbi.mjs')],
|
|
39
|
-
["gemini/utils/config", () => import('./config-BF8XgLyc.mjs')],
|
|
40
|
-
["openclaw/runOpenClaw", () => import('./runOpenClaw-Dky3-mjO.mjs')],
|
|
41
|
-
["persistence", () => import('./persistence-DWcHe035.mjs').then(function (n) { return n.G; })],
|
|
42
|
-
// Deferred halves of the runners and clients
|
|
43
|
-
["api/apiMachine", () => import('./apiMachine-CgRldeJ6.mjs')],
|
|
44
|
-
["claude/runClaudeDeps", () => import('./runClaudeDeps-BheVcIlD.mjs')],
|
|
45
|
-
["claude/claudeLocal", () => import('./claudeLocal-B1ZVtryl.mjs')],
|
|
46
|
-
["claude/claudeLocalLauncher", () => import('./claudeLocalLauncher-Bp8bqF4y.mjs')],
|
|
47
|
-
["claude/sdk", () => import('./index-BjXjMhGY.mjs')],
|
|
48
|
-
["assistant/bootstrap", () => import('./bootstrap-DaZ0Np7X.mjs')],
|
|
49
|
-
["agentHome", () => import('./index-v5EmjT8l.mjs')],
|
|
50
|
-
["ui/ink/RemoteModeDisplay", () => import('./RemoteModeDisplay-D-HewyXg.mjs')],
|
|
51
|
-
// External packages imported on demand
|
|
52
|
-
["expo-server-sdk", () => import('expo-server-sdk')],
|
|
53
|
-
["ink", () => import('ink')],
|
|
54
|
-
["react", () => import('react')]
|
|
55
|
-
];
|
|
56
|
-
|
|
57
|
-
async function runSelfCheck(modules = LAZY_MODULES) {
|
|
58
|
-
const failures = [];
|
|
59
|
-
for (const [name, load] of modules) {
|
|
60
|
-
try {
|
|
61
|
-
await load();
|
|
62
|
-
} catch (error) {
|
|
63
|
-
failures.push({ name, error: error instanceof Error ? error.message : String(error) });
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
return failures;
|
|
67
|
-
}
|
|
68
|
-
async function selfCheckMain(opts = {}) {
|
|
69
|
-
const started = Date.now();
|
|
70
|
-
const failures = await runSelfCheck();
|
|
71
|
-
if (failures.length > 0) {
|
|
72
|
-
for (const failure of failures) {
|
|
73
|
-
console.error(`very-happy: failed to load ${failure.name}: ${failure.error}`);
|
|
74
|
-
}
|
|
75
|
-
return 1;
|
|
76
|
-
}
|
|
77
|
-
if (opts.verbose) console.log(`self-check: ${LAZY_MODULES.length} modules loaded in ${Date.now() - started}ms`);
|
|
78
|
-
console.log(`very-happy version: ${packageJson.version}`);
|
|
79
|
-
return 0;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
var selfCheck = /*#__PURE__*/Object.freeze({
|
|
83
|
-
__proto__: null,
|
|
84
|
-
runSelfCheck: runSelfCheck,
|
|
85
|
-
selfCheckMain: selfCheckMain
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
export { runSelfCheck, selfCheckMain };
|