very-happy-cli 0.2.203 → 0.2.204
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-CAMuhS0Z.mjs → AcpBackend-BBfcpIDj.mjs} +3 -3
- package/dist/{AcpBackend-DReFgpYD.cjs → AcpBackend-BupxHXGp.cjs} +3 -3
- package/dist/{AcpSessionManager-CJOxMFCF.mjs → AcpSessionManager-B9UkPYGi.mjs} +2 -2
- package/dist/{AcpSessionManager-BZKM-sCt.cjs → AcpSessionManager-JJrnenKM.cjs} +2 -2
- package/dist/{BasePermissionHandler-BBR9Gkob.cjs → BasePermissionHandler-86_xnisC.cjs} +1 -1
- package/dist/{BasePermissionHandler-BgX73mQ5.mjs → BasePermissionHandler-tGylJLUH.mjs} +1 -1
- package/dist/{account-hy0rztXY.mjs → account-BRqUOj_D.mjs} +11 -11
- package/dist/{account-41PkJ9nx.cjs → account-C91_R-kw.cjs} +11 -11
- package/dist/{accountService-DEpIq6CF.mjs → accountService-CqrWNH8K.mjs} +4 -4
- package/dist/{accountService-Cns8UYGI.cjs → accountService-SOeB_21A.cjs} +4 -4
- package/dist/{acpSessionResume-5El4xksf.mjs → acpSessionResume-CZQ91ano.mjs} +1 -1
- package/dist/{acpSessionResume-DmOPXKpC.cjs → acpSessionResume-DK8EjIY0.cjs} +1 -1
- package/dist/{agentHome-DUxArmak.mjs → agentHome-71zGywwx.mjs} +4 -4
- package/dist/{agentHome-BXaVMqHX.cjs → agentHome-BZvbPuy1.cjs} +4 -4
- package/dist/{api-D8ZDxBWw.mjs → api-BYh1VGBa.mjs} +107 -18
- package/dist/{api-ChhFBuB0.cjs → api-BoJA-zK3.cjs} +107 -18
- package/dist/{apiMachine-qav2pnk5.mjs → apiMachine--_eI4PTv.mjs} +105 -21
- package/dist/{apiMachine-MPwddFXq.cjs → apiMachine-CA58NM_V.cjs} +105 -21
- package/dist/{attachmentContent-BfSQxccA.mjs → attachmentContent-D95cCBX5.mjs} +2 -2
- package/dist/{attachmentContent-f5gwnv9J.cjs → attachmentContent-y621KwMz.cjs} +2 -2
- package/dist/{auth-thi2T_T8.cjs → auth-CAkpHr8F.cjs} +5 -5
- package/dist/{auth-BxNuFv_0.mjs → auth-DCzFx5BN.mjs} +8 -8
- package/dist/{auth-xW7SDE_7.mjs → auth-DRJ_WPn3.mjs} +5 -5
- package/dist/{auth-DkPAHXLj.cjs → auth-Dofm64Kp.cjs} +8 -8
- package/dist/{auto-DmXTwayU.mjs → auto-CrgOy5OR.mjs} +18 -18
- package/dist/{auto-BiRlQ4tm.cjs → auto-D4IBwJEE.cjs} +18 -18
- package/dist/{bootstrap-EGhaCmXy.cjs → bootstrap-D16MMPNP.cjs} +2 -2
- package/dist/{bootstrap-pGaFGbWO.mjs → bootstrap-PnL2FX64.mjs} +2 -2
- package/dist/{browser-BYSYzXvP.mjs → browser-D2enJJfv.mjs} +1 -1
- package/dist/{browser-DSxpOnPb.cjs → browser-DK2GfyEr.cjs} +1 -1
- package/dist/{claudeAccountEnv-Btp39mfa.cjs → claudeAccountEnv-BTZjHTpF.cjs} +1 -1
- package/dist/{claudeAccountEnv-DowsOlDB.mjs → claudeAccountEnv-C6Wl-ZbT.mjs} +1 -1
- package/dist/{claudeLocal-bDarWqaU.mjs → claudeLocal-BbzN1qly.mjs} +5 -5
- package/dist/{claudeLocal-ClqHmkk6.cjs → claudeLocal-DaqiRW9N.cjs} +5 -5
- package/dist/{claudeLocalLauncher-Bxi0_eW9.cjs → claudeLocalLauncher-B0qbyOUc.cjs} +10 -10
- package/dist/{claudeLocalLauncher-Ccpj2KgW.mjs → claudeLocalLauncher-D7bhZ9rp.mjs} +10 -10
- package/dist/claudeLongContext-BR_zdjUp.cjs +239 -0
- package/dist/claudeLongContext-CZ60xo5p.mjs +219 -0
- package/dist/{claudeSessionFork-Cize0Y2T.mjs → claudeSessionFork-BPF3cpGs.mjs} +1 -1
- package/dist/{claudeSessionFork-nyNFjgaf.cjs → claudeSessionFork-lcajftLB.cjs} +1 -1
- package/dist/{client-DO8DNDC3.mjs → client-BH4s6mzX.mjs} +2 -2
- package/dist/{client-CgMVIP7v.mjs → client-BHt14nix.mjs} +2 -2
- package/dist/{client-DP8FabOE.cjs → client-ByK8-iRd.cjs} +3 -3
- package/dist/{client-Cddb1dhi.cjs → client-CqmT_ur8.cjs} +2 -2
- package/dist/{client-6Y6O72Uq.cjs → client-D5_YDMpA.cjs} +2 -2
- package/dist/{client-Wr_BiOon.mjs → client-Og5iNZ6S.mjs} +16 -7
- package/dist/{client-CX8kRedW.mjs → client-t1vQ7gho.mjs} +3 -3
- package/dist/{client-CMKgB-76.cjs → client-xA44FUnf.cjs} +16 -7
- package/dist/codex/happyMcpStdioBridge.cjs +20 -19
- package/dist/codex/happyMcpStdioBridge.mjs +20 -19
- package/dist/{codexAccount-CieIQLOX.mjs → codexAccount-BPQ-lPhH.mjs} +1 -1
- package/dist/{codexAccount-D-OBY29W.cjs → codexAccount-BjaHvmKH.cjs} +1 -1
- package/dist/{codexAppServerClient-D-cD2Dfj.mjs → codexAppServerClient-CvL3eBlM.mjs} +3 -3
- package/dist/{codexAppServerClient-EzrHWYhX.cjs → codexAppServerClient-CyLtj1kP.cjs} +3 -3
- package/dist/{codexCommand-BMcXtvU3.cjs → codexCommand-B0Slfvne.cjs} +67 -56
- package/dist/{codexCommand-D79GnRhB.mjs → codexCommand-CXytYlk9.mjs} +67 -56
- package/dist/{codexTermination-CF6xiFbb.cjs → codexTermination-CykPnK3G.cjs} +1 -1
- package/dist/{codexTermination-CK1MYJT7.mjs → codexTermination-D0sBaTvW.mjs} +1 -1
- package/dist/{config-F6zSRyk2.cjs → config-7Z5qIB3k.cjs} +3 -3
- package/dist/{config-Crn1mNgr.mjs → config-DeXK_5y4.mjs} +3 -3
- package/dist/{configuration-Cl9kOv09.cjs → configuration-CDqmWkHO.cjs} +1 -1
- package/dist/{configuration-i9MVy0a5.mjs → configuration-D_YrWa_i.mjs} +1 -1
- package/dist/{connect-CiA13Xm4.mjs → connect-CivOym_v.mjs} +13 -13
- package/dist/{connect-ClklWmnI.cjs → connect-D_tzdR4l.cjs} +13 -13
- package/dist/{context-DvdZsGgl.mjs → context-DXfkj_FL.mjs} +1 -1
- package/dist/{context-BxODP3mG.cjs → context-k2CbuBtp.cjs} +1 -1
- package/dist/{controlClient-DxCQKfqe.cjs → controlClient-BS86Ksm8.cjs} +12 -3
- package/dist/{controlClient-D6vqMUfi.mjs → controlClient-Daki7wgo.mjs} +12 -4
- package/dist/{createSessionMetadata-B_NZvmhm.cjs → createSessionMetadata-2s80RDL1.cjs} +2 -2
- package/dist/{createSessionMetadata-BuAVB-xI.mjs → createSessionMetadata-B_hQ8lDn.mjs} +2 -2
- package/dist/{daemonAccounts-ciidbU2h.cjs → daemonAccounts-BOoI7-sw.cjs} +2 -2
- package/dist/{daemonAccounts-D5shoCLt.mjs → daemonAccounts-BtkmoJmC.mjs} +3 -3
- package/dist/{defaultPermissionMode-DgeiMMqy.mjs → defaultPermissionMode-CYQi7vqJ.mjs} +1 -1
- package/dist/{defaultPermissionMode-Cs_Tv83b.cjs → defaultPermissionMode-DmLYaaL8.cjs} +1 -1
- package/dist/{deterministicJson-B9XrEawW.mjs → deterministicJson-DKiOtrSA.mjs} +23 -16
- package/dist/{deterministicJson-kM2OdGZu.cjs → deterministicJson-lwG_VzWd.cjs} +23 -16
- package/dist/{doctor-DiPRqsqg.cjs → doctor-C0kONAQn.cjs} +7 -7
- package/dist/{doctor-HHS4YegX.mjs → doctor-DegBfYjz.mjs} +7 -7
- package/dist/{downloadTarget-osB-mGh0.cjs → downloadTarget-BTEVg8t6.cjs} +6 -6
- package/dist/{downloadTarget-Cd8hx54t.mjs → downloadTarget-osakJyyA.mjs} +6 -6
- package/dist/{ensureDaemonRunning-C0iDtuL7.mjs → ensureDaemonRunning-ED6UVEbk.mjs} +5 -5
- package/dist/{ensureDaemonRunning-CtBvPHVB.cjs → ensureDaemonRunning-vxHxmXo2.cjs} +5 -5
- package/dist/exitNotice-BhRrv8dx.cjs +88 -0
- package/dist/exitNotice-D1tMULzu.mjs +79 -0
- package/dist/{forkBackfill-DYIjlN1Z.mjs → forkBackfill-C9EfJ64O.mjs} +28 -2
- package/dist/{forkBackfill-8eLDeS73.cjs → forkBackfill-D2WW91fz.cjs} +28 -1
- package/dist/{format-B5V7ie8N.cjs → format-9KvRMdvY.cjs} +1 -1
- package/dist/{format-Dc5zMslz.mjs → format-DJwRUrQm.mjs} +1 -1
- package/dist/{handleResumeCommand-vcD2qcAM.cjs → handleResumeCommand-0lsgLgBB.cjs} +5 -5
- package/dist/{handleResumeCommand-xrOAA1qI.mjs → handleResumeCommand-PfKmR-hv.mjs} +5 -5
- package/dist/{index-iFVMrlPo.mjs → index-BNcFxRSt.mjs} +4 -4
- package/dist/{index-44o_qMvE.cjs → index-BYL_X3gP.cjs} +27 -6
- package/dist/{index-AyDwQ6FG.cjs → index-B_narjYR.cjs} +45 -44
- package/dist/{index-Cl-WkB_6.cjs → index-Bm_9wBaO.cjs} +4 -4
- package/dist/{index-C_ePuQwB.cjs → index-C7yXrMau.cjs} +3 -3
- package/dist/{index-B7pKBIcn.mjs → index-CUJZx4cs.mjs} +3 -3
- package/dist/{index-DIKJMfs2.mjs → index-CUeuMsap.mjs} +4 -4
- package/dist/{index-B7CXMlrz.mjs → index-D1rxFJ2b.mjs} +46 -45
- package/dist/{index-CiRMvS73.mjs → index-DWk-WTU-.mjs} +24 -7
- package/dist/{index-D0rCXp-e.cjs → index-l8Xg3Mbf.cjs} +4 -4
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-yqS4y1cm.mjs → install-B593oYZs.mjs} +3 -3
- package/dist/{install-BgBgsOlS.cjs → install-C0I1a5sL.cjs} +3 -3
- package/dist/{issue-D7liK6bR.cjs → issue-CJrXCpnf.cjs} +8 -8
- package/dist/{issue-aKZd7J55.mjs → issue-D9ukoK-U.mjs} +8 -8
- package/dist/lib.cjs +12 -12
- package/dist/lib.d.cts +42 -1
- package/dist/lib.d.mts +42 -1
- package/dist/lib.mjs +12 -12
- package/dist/{localHappyAgentAuth-B2JJxlE9.mjs → localHappyAgentAuth-CxNcSjMM.mjs} +1 -1
- package/dist/{localHappyAgentAuth-Dm9obisi.cjs → localHappyAgentAuth-D3GKuEC2.cjs} +1 -1
- package/dist/{logger-BiKmiREe.mjs → logger-BcdURxNR.mjs} +2 -2
- package/dist/{logger-BtWBoP60.cjs → logger-C8anCmdW.cjs} +2 -2
- package/dist/{machineMetadata-CiyO9wm-.mjs → machineMetadata-BQaQQk6Z.mjs} +3 -3
- package/dist/{machineMetadata-C0-LyMsb.cjs → machineMetadata-DYWtdEtE.cjs} +3 -3
- package/dist/{main-C7hKf5hG.cjs → main-Bw7qSCWA.cjs} +48 -48
- package/dist/{main-BP2TBnp5.mjs → main-KsUdHnwc.mjs} +48 -48
- package/dist/{mcp-DO00rr9n.cjs → mcp-CxPUFOEd.cjs} +20 -18
- package/dist/{mcp-Cn4k-PXb.mjs → mcp-OeLaQ2XR.mjs} +20 -18
- package/dist/{mirrorProtocol-DDtEN49F.mjs → mirrorProtocol-Sj0yEHHU.mjs} +3 -3
- package/dist/{mirrorProtocol-DwO8QgLM.cjs → mirrorProtocol-cTQcrW55.cjs} +3 -3
- package/dist/{package-Djdgx8nb.cjs → package-DkpXQvp1.cjs} +7 -7
- package/dist/{package-CIW5lwaN.mjs → package-Dx3hbh9J.mjs} +7 -7
- package/dist/{panels-DMLtEOtJ.cjs → panels-CPNZnwCH.cjs} +5 -5
- package/dist/{panels-BpfVEvwF.mjs → panels-DKYO14Sq.mjs} +5 -5
- package/dist/{peerTools-CQ60fUPp.mjs → peerTools-DYFslv6R.mjs} +5 -5
- package/dist/{peerTools-fYuKq3ev.cjs → peerTools-DpCWFxI6.cjs} +5 -5
- package/dist/{persistence-D_zVC4Xz.mjs → persistence-3iZXGbfb.mjs} +2 -2
- package/dist/{persistence-BOEZtiKb.cjs → persistence-Ch78xygf.cjs} +2 -2
- package/dist/{piRunnerArgs-Dz9P62db.cjs → piRunnerArgs-CA6jqQ0k.cjs} +1 -1
- package/dist/{piRunnerArgs-DE_YXvS1.mjs → piRunnerArgs-DEuYl6FL.mjs} +1 -1
- package/dist/{piRuntime-Du62fjeU.cjs → piRuntime-BIVHf-hN.cjs} +1 -1
- package/dist/{piRuntime-8SbpRmNA.mjs → piRuntime-CyN43ILm.mjs} +1 -1
- package/dist/{piTerminal-Cl45kac0.mjs → piTerminal-DXz5L73L.mjs} +22 -20
- package/dist/{piTerminal-CGAw7WDW.cjs → piTerminal-Hw4StZWN.cjs} +22 -20
- package/dist/{pushNotifications-B19lT5mY.cjs → pushNotifications-D2ejrxlN.cjs} +17 -3
- package/dist/{pushNotifications-RVpbqrxR.mjs → pushNotifications-Db1NGJiA.mjs} +17 -3
- package/dist/{query-DBRR3TOO.mjs → query-CeYpZWVb.mjs} +1 -1
- package/dist/{query-CNWdX2r5.cjs → query-velpFYxW.cjs} +1 -1
- package/dist/{rateLimitWindows-DX5y23x_.mjs → rateLimitWindows-BSQttrPk.mjs} +1 -1
- package/dist/{rateLimitWindows-mfdokrkQ.cjs → rateLimitWindows-C78D8Uf-.cjs} +1 -1
- package/dist/{reconnectGate-DSxYUCWy.mjs → reconnectGate-Ie4nSKNl.mjs} +1 -1
- package/dist/{reconnectGate-B8ltzSJD.cjs → reconnectGate-S9yNiuY7.cjs} +1 -1
- package/dist/{registerCommonHandlers-Y2siJGwL.cjs → registerCommonHandlers-51llVpLx.cjs} +2 -2
- package/dist/{registerCommonHandlers-CQDRKlkG.mjs → registerCommonHandlers-BR7BeGX3.mjs} +2 -2
- package/dist/{registerKillSessionHandler-B0pMZOdH.cjs → registerKillSessionHandler-BjY79qBi.cjs} +6 -6
- package/dist/{registerKillSessionHandler-U4Dxtohy.mjs → registerKillSessionHandler-RbWPmKnK.mjs} +6 -6
- package/dist/{registerSideQuestionHandler--ruKhCdY.cjs → registerSideQuestionHandler-B1Xk7dFK.cjs} +4 -4
- package/dist/{registerSideQuestionHandler-DM1QqTxf.mjs → registerSideQuestionHandler-BbYT7QfR.mjs} +4 -4
- package/dist/{remoteSessionClient-T-Raoiy6.mjs → remoteSessionClient-Ddns3U8M.mjs} +5 -5
- package/dist/{remoteSessionClient-CjINaEs_.cjs → remoteSessionClient-r-UnqHor.cjs} +5 -5
- package/dist/{reportProgressTool-DDfL1OY7.cjs → reportProgressTool-ByadxJtc.cjs} +5 -5
- package/dist/{reportProgressTool-Stg0xrjF.mjs → reportProgressTool-C3sf9D8m.mjs} +5 -5
- package/dist/{run-Dq48xBtw.mjs → run-jsINwBOz.mjs} +200 -55
- package/dist/{run-BoSVfVCZ.cjs → run-r5sY3wHk.cjs} +200 -55
- package/dist/{runClaude-D8ScJdJU.cjs → runClaude-CRKsRfnq.cjs} +53 -38
- package/dist/{runClaude-CJe5atrS.mjs → runClaude-D8CuiZhi.mjs} +44 -29
- package/dist/{runClaudeDeps-4RFRR4cY.cjs → runClaudeDeps-BiVzNIE6.cjs} +129 -61
- package/dist/{runClaudeDeps-CL3goCXG.mjs → runClaudeDeps-CUuPWcg9.mjs} +125 -57
- package/dist/{runGemini-BcbNxgsA.cjs → runGemini-DANnc0BW.cjs} +36 -35
- package/dist/{runGemini-DZv6jPxV.mjs → runGemini-cqVZjPT6.mjs} +36 -35
- package/dist/{runOpenClaw-CRqCoj-_.mjs → runOpenClaw-B6V2nz8J.mjs} +18 -18
- package/dist/{runOpenClaw-BeSivE0X.cjs → runOpenClaw-CGwc6mfJ.cjs} +18 -18
- package/dist/{sandbox-xflHChws.cjs → sandbox-CNheYPva.cjs} +4 -4
- package/dist/{sandbox-DAvJJZcV.mjs → sandbox-JYBMckKE.mjs} +4 -4
- package/dist/{selfCheck-DZwdgBg0.cjs → selfCheck-DtSEBt0g.cjs} +40 -40
- package/dist/selfCheck-Jjy_wMw3.mjs +89 -0
- package/dist/{send-Co_l_Nmg.mjs → send-BHrbbGJ7.mjs} +8 -8
- package/dist/{send-ConAuYqL.cjs → send-DNdJR3n8.cjs} +8 -8
- package/dist/{server-by6kezmM.cjs → server-CvP_b3eb.cjs} +6 -6
- package/dist/{server-D1Qrmxl7.mjs → server-DhQjVsyZ.mjs} +4 -4
- package/dist/{sessionLock-DFrwAnwR.mjs → sessionLock-5i516L-w.mjs} +21 -4
- package/dist/{sessionLock-Db_uQcUP.cjs → sessionLock-UkF8M3j5.cjs} +22 -3
- package/dist/{sessionOps-CptDjoZi.cjs → sessionOps-D77IeFSt.cjs} +4 -4
- package/dist/{sessionOps-C7nps7qG.mjs → sessionOps-DX49XNAT.mjs} +4 -4
- package/dist/{sessionProvider-BaJq1AnY.mjs → sessionProvider-C5xW4Dt3.mjs} +10 -10
- package/dist/{sessionProvider-D9nsAE14.cjs → sessionProvider-mSI2UgLX.cjs} +10 -10
- package/dist/{sessionScanner-C6OVO0Ne.cjs → sessionScanner-B1Am8D4Y.cjs} +3 -3
- package/dist/{sessionScanner-BOb33NVJ.mjs → sessionScanner-BZkOnp5a.mjs} +3 -3
- package/dist/{sessions-GCql_3Dl.mjs → sessions-ClQFpjcA.mjs} +10 -10
- package/dist/{sessions-qVHDXJa6.cjs → sessions-DDDEiHVR.cjs} +10 -10
- package/dist/{setupOfflineReconnection-B8QKqc9a.cjs → setupOfflineReconnection-Cn2_vuvO.cjs} +2 -2
- package/dist/{setupOfflineReconnection-lu0YbS7m.mjs → setupOfflineReconnection-PjK9laDd.mjs} +2 -2
- package/dist/{spawn-C9NSlg99.mjs → spawn-BJGaxdot.mjs} +15 -15
- package/dist/{spawn-tL-724RS.cjs → spawn-DOj-sY6W.cjs} +15 -15
- package/dist/{spawnAgents-BclZYkov.mjs → spawnAgents-CcFKtKdX.mjs} +2 -1
- package/dist/{spawnAgents-DvbEDCIq.cjs → spawnAgents-D4lR468W.cjs} +2 -1
- package/dist/{spawnHappyCLI-jXUKLUT5.mjs → spawnHappyCLI-CpOMz9hX.mjs} +1 -1
- package/dist/{spawnHappyCLI-D7EO8s4E.cjs → spawnHappyCLI-DvxZ7elP.cjs} +1 -1
- package/dist/{startFileWatcher-6NpLGxg5.cjs → startFileWatcher-1ar7WS96.cjs} +1 -1
- package/dist/{startFileWatcher-C7eFs4hA.mjs → startFileWatcher-CPbPNFGY.mjs} +1 -1
- package/dist/{startupSessionCreate-C5wdvraY.cjs → startupSessionCreate-COc5Nnr9.cjs} +3 -3
- package/dist/{startupSessionCreate-D3ph1DtL.mjs → startupSessionCreate-CnVaUZ16.mjs} +3 -3
- package/dist/{store-Cpb1LMNW.cjs → store-DGMILdMn.cjs} +1 -1
- package/dist/{store-DWmjM4Ex.mjs → store-Fge1h9wy.mjs} +1 -1
- package/dist/{streamRelay-DdGOsW8v.mjs → streamRelay-MaaYNNuh.mjs} +1 -1
- package/dist/{streamRelay-4XiiNB3N.cjs → streamRelay-keuifCPQ.cjs} +1 -1
- package/dist/{sync-BIXH8ijr.mjs → sync-BZji3J2r.mjs} +1 -1
- package/dist/{sync-ni64k2OI.cjs → sync-DzInYE_l.cjs} +1 -1
- package/dist/{systemPrompt-DuoULaqr.cjs → systemPrompt-CvpjNmQL.cjs} +2 -2
- package/dist/{systemPrompt-B_vnlIr1.mjs → systemPrompt-Dhdq8hGf.mjs} +2 -2
- package/dist/{teams-DLfcbOMh.cjs → teams-CRCbDPob.cjs} +20 -9
- package/dist/{teams-CsR_8p3Q.mjs → teams-CVW4ZvmW.mjs} +20 -9
- package/dist/{template-3fV9bi0X.cjs → template-ChUotPTL.cjs} +1 -1
- package/dist/{template-CtRLg2PG.mjs → template-D8fzlO58.mjs} +1 -1
- package/dist/{time-Che8GhII.mjs → time-BWVJTcWI.mjs} +1 -1
- package/dist/{time-BMCY7zJL.cjs → time-UUMqbIq8.cjs} +1 -1
- package/dist/{titleGenerator-HVEN1e7o.cjs → titleGenerator-BHOA2Wkx.cjs} +3 -3
- package/dist/{titleGenerator-B9LckLDq.mjs → titleGenerator-Ck82YoB7.mjs} +2 -2
- package/dist/{todo-bc7db5NN.mjs → todo-Cf52TlmX.mjs} +8 -8
- package/dist/{todo-B8byb_cy.cjs → todo-Cwo7joub.cjs} +8 -8
- package/dist/{tools--RN1SFkD.cjs → tools-DEErCtZG.cjs} +1 -1
- package/dist/{tools-BAMaBbbP.mjs → tools-DmNaOlUF.mjs} +1 -1
- package/dist/{uninstall-Dv4C-W9z.mjs → uninstall-B85MiNK2.mjs} +3 -3
- package/dist/{uninstall-UC0Q8YTj.cjs → uninstall-CoAK4ANz.cjs} +3 -3
- package/dist/{wrapperAccount-nGGMJDBF.cjs → wrapperAccount-BHMM9I6g.cjs} +2 -2
- package/dist/{wrapperAccount-z8Swrd08.mjs → wrapperAccount-CwaA-n1S.mjs} +2 -2
- package/package.json +7 -7
- package/dist/permissionMode-CH4FoZfU.mjs +0 -80
- package/dist/permissionMode-CrV-XuMs.cjs +0 -87
- package/dist/selfCheck-BKOIROoJ.mjs +0 -89
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var os = require('os');
|
|
5
5
|
var require$$1 = require('path');
|
|
6
|
-
var persistence = require('./persistence-
|
|
7
|
-
var api = require('./api-
|
|
8
|
-
var configuration = require('./configuration-
|
|
6
|
+
var persistence = require('./persistence-Ch78xygf.cjs');
|
|
7
|
+
var api = require('./api-BoJA-zK3.cjs');
|
|
8
|
+
var configuration = require('./configuration-CDqmWkHO.cjs');
|
|
9
9
|
var http = require('http');
|
|
10
10
|
var require$$3 = require('crypto');
|
|
11
|
-
var browser = require('./browser-
|
|
11
|
+
var browser = require('./browser-DK2GfyEr.cjs');
|
|
12
12
|
var child_process = require('child_process');
|
|
13
13
|
var util = require('util');
|
|
14
14
|
require('node:fs/promises');
|
|
@@ -17,29 +17,29 @@ require('zod');
|
|
|
17
17
|
require('./authRelay-Dy1qU9td.cjs');
|
|
18
18
|
require('node:crypto');
|
|
19
19
|
require('tweetnacl');
|
|
20
|
-
require('./logger-
|
|
20
|
+
require('./logger-C8anCmdW.cjs');
|
|
21
21
|
require('node:util');
|
|
22
22
|
require('node:path');
|
|
23
23
|
require('axios');
|
|
24
|
-
require('./pushNotifications-
|
|
25
|
-
require('./index-
|
|
24
|
+
require('./pushNotifications-D2ejrxlN.cjs');
|
|
25
|
+
require('./index-BYL_X3gP.cjs');
|
|
26
26
|
require('@paralleldrive/cuid2');
|
|
27
27
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
28
|
-
require('./reconnectGate-
|
|
28
|
+
require('./reconnectGate-S9yNiuY7.cjs');
|
|
29
29
|
require('node:events');
|
|
30
30
|
require('socket.io-client');
|
|
31
31
|
require('./limits-C-a7gr04.cjs');
|
|
32
|
-
require('./time-
|
|
33
|
-
require('./registerCommonHandlers-
|
|
32
|
+
require('./time-UUMqbIq8.cjs');
|
|
33
|
+
require('./registerCommonHandlers-51llVpLx.cjs');
|
|
34
34
|
require('fs/promises');
|
|
35
35
|
require('cross-spawn');
|
|
36
36
|
require('./projectPath-C3ioB4Bu.cjs');
|
|
37
37
|
require('url');
|
|
38
|
-
require('./sync-
|
|
38
|
+
require('./sync-DzInYE_l.cjs');
|
|
39
39
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
40
|
-
require('./controlClient-
|
|
40
|
+
require('./controlClient-BS86Ksm8.cjs');
|
|
41
41
|
require('node:os');
|
|
42
|
-
require('./package-
|
|
42
|
+
require('./package-DkpXQvp1.cjs');
|
|
43
43
|
require('open');
|
|
44
44
|
|
|
45
45
|
const CLIENT_ID$2 = "app_EMoamEEZ73f0CkXaXp7hrann";
|
|
@@ -3,7 +3,7 @@ import { constants } from 'node:fs';
|
|
|
3
3
|
import { isAbsolute, join, dirname } from 'node:path';
|
|
4
4
|
import { randomUUID } from 'node:crypto';
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
-
import { n as normalizeHttpEndpoint, c as configuration } from './configuration-
|
|
6
|
+
import { n as normalizeHttpEndpoint, c as configuration } from './configuration-D_YrWa_i.mjs';
|
|
7
7
|
|
|
8
8
|
const TeamScopeSchema = z.object({
|
|
9
9
|
serverUrl: z.string(),
|
|
@@ -5,7 +5,7 @@ var node_fs = require('node:fs');
|
|
|
5
5
|
var path = require('node:path');
|
|
6
6
|
var node_crypto = require('node:crypto');
|
|
7
7
|
var z = require('zod');
|
|
8
|
-
var configuration = require('./configuration-
|
|
8
|
+
var configuration = require('./configuration-CDqmWkHO.cjs');
|
|
9
9
|
|
|
10
10
|
const TeamScopeSchema = z.z.object({
|
|
11
11
|
serverUrl: z.z.string(),
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var logger = require('./logger-
|
|
4
|
-
var persistence = require('./persistence-
|
|
5
|
-
var configuration = require('./configuration-
|
|
3
|
+
var logger = require('./logger-C8anCmdW.cjs');
|
|
4
|
+
var persistence = require('./persistence-Ch78xygf.cjs');
|
|
5
|
+
var configuration = require('./configuration-CDqmWkHO.cjs');
|
|
6
6
|
|
|
7
7
|
function daemonControlHeaders(controlToken) {
|
|
8
8
|
return {
|
|
@@ -132,6 +132,14 @@ async function restartDaemonSession(sessionId) {
|
|
|
132
132
|
if (result?.success === true && typeof result.sessionId === "string") return { success: true, sessionId: result.sessionId };
|
|
133
133
|
return { success: false, error: "unexpected daemon response" };
|
|
134
134
|
}
|
|
135
|
+
async function exitDaemonTeamMode(sessionId) {
|
|
136
|
+
const result = await daemonPost("/team-exit-session", { sessionId });
|
|
137
|
+
if (result?.error) {
|
|
138
|
+
const raw = String(result.error);
|
|
139
|
+
return { success: false, error: ROUTE_NOT_FOUND_RE.test(raw) ? "daemon too old to exit team mode; upgrade very-happy-cli and run `very-happy daemon start`" : raw.replace(/^Request failed: \/team-exit-session, /, "") };
|
|
140
|
+
}
|
|
141
|
+
return result?.success === true ? result : { success: false, error: "unexpected daemon response" };
|
|
142
|
+
}
|
|
135
143
|
async function notifyDaemonSessionEvent(sessionId, event, spawnedBy) {
|
|
136
144
|
return daemonPost("/session-event", { sessionId, event, spawnedBy });
|
|
137
145
|
}
|
|
@@ -314,6 +322,7 @@ async function checkDaemonHibernation(body) {
|
|
|
314
322
|
exports.checkDaemonHibernation = checkDaemonHibernation;
|
|
315
323
|
exports.checkIfDaemonRunningAndCleanupStaleState = checkIfDaemonRunningAndCleanupStaleState;
|
|
316
324
|
exports.cleanupDaemonState = cleanupDaemonState;
|
|
325
|
+
exports.exitDaemonTeamMode = exitDaemonTeamMode;
|
|
317
326
|
exports.getDaemonAgentProfiles = getDaemonAgentProfiles;
|
|
318
327
|
exports.isDaemonRunningCurrentlyInstalledHappyVersion = isDaemonRunningCurrentlyInstalledHappyVersion;
|
|
319
328
|
exports.listDaemonPeers = listDaemonPeers;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { l as logger } from './logger-
|
|
2
|
-
import { d as readDaemonState, f as clearDaemonState } from './persistence-
|
|
3
|
-
import { c as configuration } from './configuration-
|
|
1
|
+
import { l as logger } from './logger-BcdURxNR.mjs';
|
|
2
|
+
import { d as readDaemonState, f as clearDaemonState } from './persistence-3iZXGbfb.mjs';
|
|
3
|
+
import { c as configuration } from './configuration-D_YrWa_i.mjs';
|
|
4
4
|
|
|
5
5
|
function daemonControlHeaders(controlToken) {
|
|
6
6
|
return {
|
|
@@ -130,6 +130,14 @@ async function restartDaemonSession(sessionId) {
|
|
|
130
130
|
if (result?.success === true && typeof result.sessionId === "string") return { success: true, sessionId: result.sessionId };
|
|
131
131
|
return { success: false, error: "unexpected daemon response" };
|
|
132
132
|
}
|
|
133
|
+
async function exitDaemonTeamMode(sessionId) {
|
|
134
|
+
const result = await daemonPost("/team-exit-session", { sessionId });
|
|
135
|
+
if (result?.error) {
|
|
136
|
+
const raw = String(result.error);
|
|
137
|
+
return { success: false, error: ROUTE_NOT_FOUND_RE.test(raw) ? "daemon too old to exit team mode; upgrade very-happy-cli and run `very-happy daemon start`" : raw.replace(/^Request failed: \/team-exit-session, /, "") };
|
|
138
|
+
}
|
|
139
|
+
return result?.success === true ? result : { success: false, error: "unexpected daemon response" };
|
|
140
|
+
}
|
|
133
141
|
async function notifyDaemonSessionEvent(sessionId, event, spawnedBy) {
|
|
134
142
|
return daemonPost("/session-event", { sessionId, event, spawnedBy });
|
|
135
143
|
}
|
|
@@ -309,4 +317,4 @@ async function checkDaemonHibernation(body) {
|
|
|
309
317
|
};
|
|
310
318
|
}
|
|
311
319
|
|
|
312
|
-
export { checkIfDaemonRunningAndCleanupStaleState as a, pushFilePreviewViaDaemon as b, checkDaemonHibernation as c, setTerminalTitleViaDaemon as d, spawnDaemonSession as e, stopDaemonSession as f, getDaemonAgentProfiles as g,
|
|
320
|
+
export { checkIfDaemonRunningAndCleanupStaleState as a, pushFilePreviewViaDaemon as b, checkDaemonHibernation as c, setTerminalTitleViaDaemon as d, spawnDaemonSession as e, stopDaemonSession as f, getDaemonAgentProfiles as g, exitDaemonTeamMode as h, isDaemonRunningCurrentlyInstalledHappyVersion as i, listDaemonPeers as j, resumeDaemonSession as k, listDaemonSessions as l, reportRateLimitsToDaemon as m, notifyDaemonSessionStarted as n, listDaemonSessionsWithInfo as o, pushClipboardViaDaemon as p, reportSessionEditToDaemon as q, restartDaemonSession as r, stopDaemon as s, notifyDaemonTurnEvent as t, notifyDaemonBackgroundTasks as u, notifyDaemonSessionEvent as v, notifyDaemonClaudeAuthFailed as w, cleanupDaemonState as x };
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var os = require('node:os');
|
|
4
4
|
var path = require('node:path');
|
|
5
|
-
var configuration = require('./configuration-
|
|
5
|
+
var configuration = require('./configuration-CDqmWkHO.cjs');
|
|
6
6
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
7
|
-
var _package = require('./package-
|
|
7
|
+
var _package = require('./package-DkpXQvp1.cjs');
|
|
8
8
|
var node_fs = require('node:fs');
|
|
9
9
|
|
|
10
10
|
const realFs = {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import os from 'node:os';
|
|
2
2
|
import { resolve, isAbsolute, dirname } from 'node:path';
|
|
3
|
-
import { c as configuration } from './configuration-
|
|
3
|
+
import { c as configuration } from './configuration-D_YrWa_i.mjs';
|
|
4
4
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
5
|
-
import { p as packageJson } from './package-
|
|
5
|
+
import { p as packageJson } from './package-Dx3hbh9J.mjs';
|
|
6
6
|
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
7
7
|
|
|
8
8
|
const realFs = {
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var node_fs = require('node:fs');
|
|
4
4
|
var pty = require('node-pty');
|
|
5
|
-
var store = require('./store-
|
|
5
|
+
var store = require('./store-DGMILdMn.cjs');
|
|
6
6
|
require('node:os');
|
|
7
7
|
require('node:path');
|
|
8
|
-
require('./index-
|
|
8
|
+
require('./index-BYL_X3gP.cjs');
|
|
9
9
|
require('zod');
|
|
10
10
|
require('@paralleldrive/cuid2');
|
|
11
11
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { watchFile, unwatchFile } from 'node:fs';
|
|
2
2
|
import * as pty from 'node-pty';
|
|
3
|
-
import { g as accountsPath, p as providersPath } from './store-
|
|
4
|
-
export { S as SPAWN_ACCOUNT_ENV } from './store-
|
|
3
|
+
import { g as accountsPath, p as providersPath } from './store-Fge1h9wy.mjs';
|
|
4
|
+
export { S as SPAWN_ACCOUNT_ENV } from './store-Fge1h9wy.mjs';
|
|
5
5
|
import 'node:os';
|
|
6
6
|
import 'node:path';
|
|
7
|
-
import './index-
|
|
7
|
+
import './index-DWk-WTU-.mjs';
|
|
8
8
|
import 'zod';
|
|
9
9
|
import '@paralleldrive/cuid2';
|
|
10
10
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { u as RUN_INTENT_RPC, v as RunIntentRequestSchema, w as nextRunIntents, x as readEffortIntent, y as readModelIntent } from './index-
|
|
1
|
+
import { u as RUN_INTENT_RPC, v as RunIntentRequestSchema, w as nextRunIntents, x as readEffortIntent, y as readModelIntent } from './index-DWk-WTU-.mjs';
|
|
2
2
|
|
|
3
3
|
function currentRunIntents(metadata) {
|
|
4
4
|
return {
|
|
@@ -1,34 +1,35 @@
|
|
|
1
|
-
import { l as logger } from './logger-
|
|
1
|
+
import { l as logger } from './logger-BcdURxNR.mjs';
|
|
2
2
|
import { p as prependToMessage, b as buildDigestLine, a as buildFirstTurnPrefix } from './prompt-QHuFx9j6.mjs';
|
|
3
|
-
import { P as ProjectsUnsupportedError } from './client-
|
|
4
|
-
import { s as sharedIssuesClient, I as IssuesUnsupportedError } from './client-
|
|
3
|
+
import { P as ProjectsUnsupportedError } from './client-BH4s6mzX.mjs';
|
|
4
|
+
import { s as sharedIssuesClient, I as IssuesUnsupportedError } from './client-t1vQ7gho.mjs';
|
|
5
5
|
import { r as readSessionIssueMetadata } from './sessionMetadata-C1eoAi89.mjs';
|
|
6
|
-
import { c as configuration, f as ensurePrivateDirectorySync, w as writePrivateFileSync } from './configuration-
|
|
6
|
+
import { c as configuration, f as ensurePrivateDirectorySync, w as writePrivateFileSync } from './configuration-D_YrWa_i.mjs';
|
|
7
7
|
import { join, dirname } from 'node:path';
|
|
8
8
|
import { readdirSync, statSync, unlinkSync, readFileSync, constants } from 'node:fs';
|
|
9
|
-
import {
|
|
9
|
+
import { c as createTeamExitNotice, a as teamLanguageRule } from './exitNotice-D1tMULzu.mjs';
|
|
10
|
+
import { d as createSelfReportState, A as AUTOMATION_TOOL_NAMES, P as PROJECT_TOOL_NAMES, I as ISSUE_TOOL_NAMES, r as registerAutomationTools, a as registerProjectTools, e as createProjectToolExecutor, b as registerIssueTools, f as createIssueToolExecutor, c as registerReportProgressTool, n as normalizeAttention, g as normalizePhase, h as normalizeProgress, s as shouldAcceptSelfReport } from './reportProgressTool-C3sf9D8m.mjs';
|
|
10
11
|
import { homedir } from 'node:os';
|
|
11
12
|
import { z } from 'zod';
|
|
12
13
|
import { p as piAgentDir } from './pi-CqyoZMjI.mjs';
|
|
13
14
|
import { unlink, mkdir, open, rename } from 'node:fs/promises';
|
|
14
15
|
import { randomUUID, createHash } from 'node:crypto';
|
|
15
|
-
import { T as TeamConnectionPreflightError, S as SessionInOtherTeamError, c as createTeamsClient, t as teamRequest } from './client-
|
|
16
|
-
import { t as teamScopePath, r as readTeamScope } from './context-
|
|
17
|
-
import { g as waitForSessionKey, e as sendUserMessage } from './sessionOps-
|
|
16
|
+
import { T as TeamConnectionPreflightError, S as SessionInOtherTeamError, c as createTeamsClient, t as teamRequest } from './client-Og5iNZ6S.mjs';
|
|
17
|
+
import { t as teamScopePath, r as readTeamScope } from './context-DXfkj_FL.mjs';
|
|
18
|
+
import { g as waitForSessionKey, e as sendUserMessage } from './sessionOps-DX49XNAT.mjs';
|
|
18
19
|
import { T as TEAM_SKILL, a as TEAM_LEAD_PLAYBOOK } from './resources-CLP_MpK4.mjs';
|
|
19
|
-
import { T as TEAM_TOOL_NAMES, r as registerTeamsTools } from './tools-
|
|
20
|
-
import { S as SESSION_PEER_TOOL_NAMES, r as registerSessionPeerTools, a as createSessionPeerToolExecutor } from './peerTools-
|
|
20
|
+
import { T as TEAM_TOOL_NAMES, r as registerTeamsTools } from './tools-DmNaOlUF.mjs';
|
|
21
|
+
import { S as SESSION_PEER_TOOL_NAMES, r as registerSessionPeerTools, a as createSessionPeerToolExecutor } from './peerTools-DYFslv6R.mjs';
|
|
21
22
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
22
23
|
import { createServer } from 'node:http';
|
|
23
24
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
24
25
|
import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, c as CLIPBOARD_MAX_BYTES } from './limits-DIo7rEBR.mjs';
|
|
25
|
-
import { A as ASSISTANT_TOOL_NAMES, a as registerAssistantTools, c as checkDownloadTarget } from './downloadTarget-
|
|
26
|
+
import { A as ASSISTANT_TOOL_NAMES, a as registerAssistantTools, c as checkDownloadTarget } from './downloadTarget-osakJyyA.mjs';
|
|
26
27
|
import { P as PREVIEW_TOOL_NAME, R as REPORT_PROGRESS_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, c as PREVIEW_DOWNLOAD_PARAM_DESCRIPTION } from './agentGuidance-BDYt2Qy2.mjs';
|
|
27
28
|
import { n as normalizeWebPanels, w as webPanelPath } from './webPanels-B2_C2-3g.mjs';
|
|
28
|
-
import { b as readCredentialsForConfiguredRelay, r as readSettings } from './persistence-
|
|
29
|
-
import { g as getSessionNotificationBody } from './pushNotifications-
|
|
29
|
+
import { b as readCredentialsForConfiguredRelay, r as readSettings } from './persistence-3iZXGbfb.mjs';
|
|
30
|
+
import { g as getSessionNotificationBody } from './pushNotifications-Db1NGJiA.mjs';
|
|
30
31
|
import { c as checkPreviewPath } from './previewPath-CXN4Vag0.mjs';
|
|
31
|
-
import {
|
|
32
|
+
import { a7 as ATTENTION_DISABLED_ERROR, a8 as ATTENTION_LIMITS, a9 as ownerBoardPostToRest, aa as isAttentionBoardLocalId, ab as OwnerBoardPostInputSchema, ac as OwnerBoardUpdateInputSchema, ad as OwnerBoardResolveInputSchema, ae as OwnerBoardListInputSchema, af as ATTENTION_SESSION_CAPABILITY } from './index-DWk-WTU-.mjs';
|
|
32
33
|
import { createHash as createHash$1 } from 'crypto';
|
|
33
34
|
|
|
34
35
|
function buildIssueDigestLine(issue, entries) {
|
|
@@ -132,6 +133,7 @@ function createProjectInjector(deps) {
|
|
|
132
133
|
let lastPresenceVersion = null;
|
|
133
134
|
const label = (id) => titles.get(id) ?? id.slice(0, 8);
|
|
134
135
|
const issueDigest = deps.issueDigest === void 0 ? createIssueDigest({ sessionId: deps.sessionId, metadata: () => deps.metadata?.() ?? null, timeoutMs }) : deps.issueDigest;
|
|
136
|
+
const teamExitNotice = deps.teamExitNotice === void 0 ? createTeamExitNotice({ sessionId: deps.sessionId }) : deps.teamExitNotice;
|
|
135
137
|
function withTimeout(p) {
|
|
136
138
|
return Promise.race([p, new Promise((_, reject) => setTimeout(() => reject(new Error("project injection timeout")), timeoutMs).unref?.())]);
|
|
137
139
|
}
|
|
@@ -203,7 +205,10 @@ function createProjectInjector(deps) {
|
|
|
203
205
|
},
|
|
204
206
|
async decorate(message) {
|
|
205
207
|
if (typeof message !== "string") return message;
|
|
206
|
-
const withIssue = async (text) =>
|
|
208
|
+
const withIssue = async (text) => {
|
|
209
|
+
const digested = issueDigest ? await issueDigest.decorate(text) : text;
|
|
210
|
+
return teamExitNotice ? teamExitNotice.decorate(digested) : digested;
|
|
211
|
+
};
|
|
207
212
|
const sid = deps.sessionId();
|
|
208
213
|
if (!sid || deps.client.isDisabled()) return await withIssue(message);
|
|
209
214
|
let out = message;
|
|
@@ -362,7 +367,9 @@ function createTeamAdoption(sessionId) {
|
|
|
362
367
|
|
|
363
368
|
This session is now connected as the team lead. Call team_inspect to read the authoritative state before continuing the user's goal. Do not call team_create or team_join again.
|
|
364
369
|
|
|
365
|
-
${TEAM_LEAD_PLAYBOOK}
|
|
370
|
+
${TEAM_LEAD_PLAYBOOK}
|
|
371
|
+
|
|
372
|
+
${teamLanguageRule(null)}`;
|
|
366
373
|
if (!intent.guidanceDelivered) {
|
|
367
374
|
const key = await waitForSessionKey(sessionId, 1e4);
|
|
368
375
|
await sendUserMessage(sessionId, key, instructions, "teams", { localId: `teams-adopt-${input.requestId}`, sentFrom: "team" });
|
|
@@ -1,36 +1,37 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var logger = require('./logger-
|
|
3
|
+
var logger = require('./logger-C8anCmdW.cjs');
|
|
4
4
|
var prompt = require('./prompt-Bof2aQkI.cjs');
|
|
5
|
-
var client$1 = require('./client-
|
|
6
|
-
var client = require('./client-
|
|
5
|
+
var client$1 = require('./client-CqmT_ur8.cjs');
|
|
6
|
+
var client = require('./client-ByK8-iRd.cjs');
|
|
7
7
|
var sessionMetadata = require('./sessionMetadata-B44cL4Xj.cjs');
|
|
8
|
-
var configuration = require('./configuration-
|
|
8
|
+
var configuration = require('./configuration-CDqmWkHO.cjs');
|
|
9
9
|
var path = require('node:path');
|
|
10
10
|
var node_fs = require('node:fs');
|
|
11
|
-
var
|
|
11
|
+
var exitNotice = require('./exitNotice-BhRrv8dx.cjs');
|
|
12
|
+
var reportProgressTool = require('./reportProgressTool-ByadxJtc.cjs');
|
|
12
13
|
var os = require('node:os');
|
|
13
14
|
var z = require('zod');
|
|
14
15
|
var pi = require('./pi-DlsrPCTa.cjs');
|
|
15
16
|
var promises = require('node:fs/promises');
|
|
16
17
|
var node_crypto = require('node:crypto');
|
|
17
|
-
var client$2 = require('./client-
|
|
18
|
-
var context = require('./context-
|
|
19
|
-
var sessionOps = require('./sessionOps-
|
|
18
|
+
var client$2 = require('./client-xA44FUnf.cjs');
|
|
19
|
+
var context = require('./context-k2CbuBtp.cjs');
|
|
20
|
+
var sessionOps = require('./sessionOps-D77IeFSt.cjs');
|
|
20
21
|
var resources = require('./resources-BZ_Be0qM.cjs');
|
|
21
|
-
var tools = require('./tools
|
|
22
|
-
var peerTools = require('./peerTools-
|
|
22
|
+
var tools = require('./tools-DEErCtZG.cjs');
|
|
23
|
+
var peerTools = require('./peerTools-DpCWFxI6.cjs');
|
|
23
24
|
var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
24
25
|
var node_http = require('node:http');
|
|
25
26
|
var streamableHttp_js = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
26
27
|
var limits = require('./limits-C-a7gr04.cjs');
|
|
27
|
-
var downloadTarget = require('./downloadTarget-
|
|
28
|
+
var downloadTarget = require('./downloadTarget-BTEVg8t6.cjs');
|
|
28
29
|
var agentGuidance = require('./agentGuidance-BtBx2xxE.cjs');
|
|
29
30
|
var webPanels = require('./webPanels-FCgFKvVe.cjs');
|
|
30
|
-
var persistence = require('./persistence-
|
|
31
|
-
var pushNotifications = require('./pushNotifications-
|
|
31
|
+
var persistence = require('./persistence-Ch78xygf.cjs');
|
|
32
|
+
var pushNotifications = require('./pushNotifications-D2ejrxlN.cjs');
|
|
32
33
|
var previewPath = require('./previewPath-B0rBdhy1.cjs');
|
|
33
|
-
var index = require('./index-
|
|
34
|
+
var index = require('./index-BYL_X3gP.cjs');
|
|
34
35
|
var require$$3 = require('crypto');
|
|
35
36
|
|
|
36
37
|
function buildIssueDigestLine(issue, entries) {
|
|
@@ -134,6 +135,7 @@ function createProjectInjector(deps) {
|
|
|
134
135
|
let lastPresenceVersion = null;
|
|
135
136
|
const label = (id) => titles.get(id) ?? id.slice(0, 8);
|
|
136
137
|
const issueDigest = deps.issueDigest === void 0 ? createIssueDigest({ sessionId: deps.sessionId, metadata: () => deps.metadata?.() ?? null, timeoutMs }) : deps.issueDigest;
|
|
138
|
+
const teamExitNotice = deps.teamExitNotice === void 0 ? exitNotice.createTeamExitNotice({ sessionId: deps.sessionId }) : deps.teamExitNotice;
|
|
137
139
|
function withTimeout(p) {
|
|
138
140
|
return Promise.race([p, new Promise((_, reject) => setTimeout(() => reject(new Error("project injection timeout")), timeoutMs).unref?.())]);
|
|
139
141
|
}
|
|
@@ -205,7 +207,10 @@ function createProjectInjector(deps) {
|
|
|
205
207
|
},
|
|
206
208
|
async decorate(message) {
|
|
207
209
|
if (typeof message !== "string") return message;
|
|
208
|
-
const withIssue = async (text) =>
|
|
210
|
+
const withIssue = async (text) => {
|
|
211
|
+
const digested = issueDigest ? await issueDigest.decorate(text) : text;
|
|
212
|
+
return teamExitNotice ? teamExitNotice.decorate(digested) : digested;
|
|
213
|
+
};
|
|
209
214
|
const sid = deps.sessionId();
|
|
210
215
|
if (!sid || deps.client.isDisabled()) return await withIssue(message);
|
|
211
216
|
let out = message;
|
|
@@ -364,7 +369,9 @@ function createTeamAdoption(sessionId) {
|
|
|
364
369
|
|
|
365
370
|
This session is now connected as the team lead. Call team_inspect to read the authoritative state before continuing the user's goal. Do not call team_create or team_join again.
|
|
366
371
|
|
|
367
|
-
${resources.TEAM_LEAD_PLAYBOOK}
|
|
372
|
+
${resources.TEAM_LEAD_PLAYBOOK}
|
|
373
|
+
|
|
374
|
+
${exitNotice.teamLanguageRule(null)}`;
|
|
368
375
|
if (!intent.guidanceDelivered) {
|
|
369
376
|
const key = await sessionOps.waitForSessionKey(sessionId, 1e4);
|
|
370
377
|
await sessionOps.sendUserMessage(sessionId, key, instructions, "teams", { localId: `teams-adopt-${input.requestId}`, sentFrom: "team" });
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
|
-
var configuration = require('./configuration-
|
|
5
|
-
var persistence = require('./persistence-
|
|
6
|
-
var controlClient = require('./controlClient-
|
|
4
|
+
var configuration = require('./configuration-CDqmWkHO.cjs');
|
|
5
|
+
var persistence = require('./persistence-Ch78xygf.cjs');
|
|
6
|
+
var controlClient = require('./controlClient-BS86Ksm8.cjs');
|
|
7
7
|
var doctor$1 = require('./doctor-CJpFhHoK.cjs');
|
|
8
8
|
var node_fs = require('node:fs');
|
|
9
9
|
var path = require('node:path');
|
|
10
10
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
11
|
-
var _package = require('./package-
|
|
11
|
+
var _package = require('./package-DkpXQvp1.cjs');
|
|
12
12
|
var doctorReadiness = require('./doctorReadiness-Dl6yRQCy.cjs');
|
|
13
13
|
var authRelay = require('./authRelay-Dy1qU9td.cjs');
|
|
14
14
|
var cliUpdate = require('./cliUpdate-DsKXPFYp.cjs');
|
|
15
15
|
var node_child_process = require('node:child_process');
|
|
16
|
-
var piRunnerArgs = require('./piRunnerArgs-
|
|
16
|
+
var piRunnerArgs = require('./piRunnerArgs-CA6jqQ0k.cjs');
|
|
17
17
|
|
|
18
18
|
function shareSafeProcessLine(process2) {
|
|
19
19
|
return `PID ${process2.pid}: command arguments hidden for privacy`;
|
|
@@ -313,8 +313,8 @@ ${typeLabels[type] || type}:`));
|
|
|
313
313
|
}
|
|
314
314
|
console.log(chalk.gray(" An external claude command is only needed for native terminal/mirror use."));
|
|
315
315
|
try {
|
|
316
|
-
const { resolveAgentHomesForCli } = await Promise.resolve().then(function () { return require('./agentHome-
|
|
317
|
-
const { describeAgentHome } = await Promise.resolve().then(function () { return require('./index-
|
|
316
|
+
const { resolveAgentHomesForCli } = await Promise.resolve().then(function () { return require('./agentHome-BZvbPuy1.cjs'); });
|
|
317
|
+
const { describeAgentHome } = await Promise.resolve().then(function () { return require('./index-Bm_9wBaO.cjs'); });
|
|
318
318
|
const homes = await resolveAgentHomesForCli();
|
|
319
319
|
console.log(chalk.green(`\u2713 Claude config dir: ${describeAgentHome(homes.claudeConfigDir)}`));
|
|
320
320
|
console.log(chalk.green(`\u2713 Codex home: ${describeAgentHome(homes.codexHome)}`));
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
-
import { c as configuration } from './configuration-
|
|
3
|
-
import { r as readSettings, g as readCredentials, d as readDaemonState } from './persistence-
|
|
4
|
-
import { a as checkIfDaemonRunningAndCleanupStaleState } from './controlClient-
|
|
2
|
+
import { c as configuration } from './configuration-D_YrWa_i.mjs';
|
|
3
|
+
import { r as readSettings, g as readCredentials, d as readDaemonState } from './persistence-3iZXGbfb.mjs';
|
|
4
|
+
import { a as checkIfDaemonRunningAndCleanupStaleState } from './controlClient-Daki7wgo.mjs';
|
|
5
5
|
import { findAllHappyProcesses } from './doctor-GN5mPOn5.mjs';
|
|
6
6
|
import { statSync, realpathSync, existsSync, readdirSync } from 'node:fs';
|
|
7
7
|
import { isAbsolute, resolve, dirname, basename, delimiter, join } from 'node:path';
|
|
8
8
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
9
|
-
import { p as packageJson } from './package-
|
|
9
|
+
import { p as packageJson } from './package-Dx3hbh9J.mjs';
|
|
10
10
|
import { s as shareableSettingsSummary, c as collectRuntimeReadiness, S as SUPPORTED_NODE_LABEL, r as resolveClaudeCredentialReadiness, a as toolProbeLabel, b as daemonReadiness, d as daemonEndpointsMatch } from './doctorReadiness-C208SMN9.mjs';
|
|
11
11
|
import { c as credentialRelayProblem } from './authRelay-DhQhkBvX.mjs';
|
|
12
12
|
import { d as deriveLocalCliUpdateSummary } from './cliUpdate-Y34VGe9Y.mjs';
|
|
13
13
|
import { spawnSync } from 'node:child_process';
|
|
14
|
-
import { p as piInstallCommand } from './piRunnerArgs-
|
|
14
|
+
import { p as piInstallCommand } from './piRunnerArgs-DEuYl6FL.mjs';
|
|
15
15
|
|
|
16
16
|
function shareSafeProcessLine(process2) {
|
|
17
17
|
return `PID ${process2.pid}: command arguments hidden for privacy`;
|
|
@@ -311,8 +311,8 @@ ${typeLabels[type] || type}:`));
|
|
|
311
311
|
}
|
|
312
312
|
console.log(chalk.gray(" An external claude command is only needed for native terminal/mirror use."));
|
|
313
313
|
try {
|
|
314
|
-
const { resolveAgentHomesForCli } = await import('./agentHome-
|
|
315
|
-
const { describeAgentHome } = await import('./index-
|
|
314
|
+
const { resolveAgentHomesForCli } = await import('./agentHome-71zGywwx.mjs');
|
|
315
|
+
const { describeAgentHome } = await import('./index-CUeuMsap.mjs');
|
|
316
316
|
const homes = await resolveAgentHomesForCli();
|
|
317
317
|
console.log(chalk.green(`\u2713 Claude config dir: ${describeAgentHome(homes.claudeConfigDir)}`));
|
|
318
318
|
console.log(chalk.green(`\u2713 Codex home: ${describeAgentHome(homes.codexHome)}`));
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
var promises = require('node:fs/promises');
|
|
4
4
|
var os = require('node:os');
|
|
5
5
|
var z = require('zod');
|
|
6
|
-
var logger = require('./logger-
|
|
7
|
-
var persistence = require('./persistence-
|
|
8
|
-
var controlClient = require('./controlClient-
|
|
9
|
-
var sessionOps = require('./sessionOps-
|
|
10
|
-
var remoteSessionClient = require('./remoteSessionClient-
|
|
6
|
+
var logger = require('./logger-C8anCmdW.cjs');
|
|
7
|
+
var persistence = require('./persistence-Ch78xygf.cjs');
|
|
8
|
+
var controlClient = require('./controlClient-BS86Ksm8.cjs');
|
|
9
|
+
var sessionOps = require('./sessionOps-D77IeFSt.cjs');
|
|
10
|
+
var remoteSessionClient = require('./remoteSessionClient-r-UnqHor.cjs');
|
|
11
11
|
var ids = require('./ids-B6ZC0HGt.cjs');
|
|
12
12
|
var terminals = require('./terminals-dK3Lrjfp.cjs');
|
|
13
|
-
var bootstrap = require('./bootstrap-
|
|
13
|
+
var bootstrap = require('./bootstrap-D16MMPNP.cjs');
|
|
14
14
|
var path = require('node:path');
|
|
15
15
|
|
|
16
16
|
const PERSONAL_MEMORY_SOFT_LIMIT_CHARS = 2e3;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { readFile, writeFile, appendFile, stat } from 'node:fs/promises';
|
|
2
2
|
import os from 'node:os';
|
|
3
3
|
import { z } from 'zod';
|
|
4
|
-
import { l as logger } from './logger-
|
|
5
|
-
import { c as readPersistedSessions } from './persistence-
|
|
6
|
-
import { e as spawnDaemonSession } from './controlClient-
|
|
7
|
-
import { a as listSessions, r as readSessionTranscript, s as sessionWebUrl, g as waitForSessionKey, e as sendUserMessage, b as stopSession, d as archiveSession } from './sessionOps-
|
|
8
|
-
import { r as readRemoteTranscript, s as sendRemoteMessage, d as deliverToSession, R as RemoteSessionOpsError } from './remoteSessionClient-
|
|
4
|
+
import { l as logger } from './logger-BcdURxNR.mjs';
|
|
5
|
+
import { c as readPersistedSessions } from './persistence-3iZXGbfb.mjs';
|
|
6
|
+
import { e as spawnDaemonSession } from './controlClient-Daki7wgo.mjs';
|
|
7
|
+
import { a as listSessions, r as readSessionTranscript, s as sessionWebUrl, g as waitForSessionKey, e as sendUserMessage, b as stopSession, d as archiveSession } from './sessionOps-DX49XNAT.mjs';
|
|
8
|
+
import { r as readRemoteTranscript, s as sendRemoteMessage, d as deliverToSession, R as RemoteSessionOpsError } from './remoteSessionClient-Ddns3U8M.mjs';
|
|
9
9
|
import { i as isValidSessionId, a as isValidTerminalId } from './ids-DU6sLx4C.mjs';
|
|
10
10
|
import { l as listVhTerminals, r as readVhTerminal, s as sendToVhTerminal } from './terminals-Dc38XmZv.mjs';
|
|
11
|
-
import { bootstrapAssistantHome, assistantPersonalMemoryPath } from './bootstrap-
|
|
11
|
+
import { bootstrapAssistantHome, assistantPersonalMemoryPath } from './bootstrap-PnL2FX64.mjs';
|
|
12
12
|
import { join, isAbsolute, normalize } from 'node:path';
|
|
13
13
|
|
|
14
14
|
const PERSONAL_MEMORY_SOFT_LIMIT_CHARS = 2e3;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { l as logger } from './logger-
|
|
2
|
-
import { i as isDaemonRunningCurrentlyInstalledHappyVersion, a as checkIfDaemonRunningAndCleanupStaleState, s as stopDaemon } from './controlClient-
|
|
3
|
-
import { s as spawnHappyCLI } from './spawnHappyCLI-
|
|
4
|
-
import { d as readDaemonState } from './persistence-
|
|
5
|
-
import { c as configuration } from './configuration-
|
|
1
|
+
import { l as logger } from './logger-BcdURxNR.mjs';
|
|
2
|
+
import { i as isDaemonRunningCurrentlyInstalledHappyVersion, a as checkIfDaemonRunningAndCleanupStaleState, s as stopDaemon } from './controlClient-Daki7wgo.mjs';
|
|
3
|
+
import { s as spawnHappyCLI } from './spawnHappyCLI-CpOMz9hX.mjs';
|
|
4
|
+
import { d as readDaemonState } from './persistence-3iZXGbfb.mjs';
|
|
5
|
+
import { c as configuration } from './configuration-D_YrWa_i.mjs';
|
|
6
6
|
import { d as daemonEndpointsMatch } from './doctorReadiness-C208SMN9.mjs';
|
|
7
7
|
|
|
8
8
|
function extractNoSandboxFlag(args) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var logger = require('./logger-
|
|
4
|
-
var controlClient = require('./controlClient-
|
|
5
|
-
var spawnHappyCLI = require('./spawnHappyCLI-
|
|
6
|
-
var persistence = require('./persistence-
|
|
7
|
-
var configuration = require('./configuration-
|
|
3
|
+
var logger = require('./logger-C8anCmdW.cjs');
|
|
4
|
+
var controlClient = require('./controlClient-BS86Ksm8.cjs');
|
|
5
|
+
var spawnHappyCLI = require('./spawnHappyCLI-DvxZ7elP.cjs');
|
|
6
|
+
var persistence = require('./persistence-Ch78xygf.cjs');
|
|
7
|
+
var configuration = require('./configuration-CDqmWkHO.cjs');
|
|
8
8
|
var doctorReadiness = require('./doctorReadiness-Dl6yRQCy.cjs');
|
|
9
9
|
|
|
10
10
|
function extractNoSandboxFlag(args) {
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var node_fs = require('node:fs');
|
|
4
|
+
var path = require('node:path');
|
|
5
|
+
var configuration = require('./configuration-CDqmWkHO.cjs');
|
|
6
|
+
var logger = require('./logger-C8anCmdW.cjs');
|
|
7
|
+
var prompt = require('./prompt-Bof2aQkI.cjs');
|
|
8
|
+
|
|
9
|
+
const PATH = /[\w.\-~@:…]*[\/\\][\w.\-~@:…\/\\]*/g;
|
|
10
|
+
const IDENTIFIER = /\b[\w$]*(?:[a-z][A-Z]|_|\.[A-Za-z]|\d[A-Za-z]|[A-Za-z]\d)[\w$.]*\b/g;
|
|
11
|
+
function detectTeamUserLanguage(text) {
|
|
12
|
+
if (!text) return null;
|
|
13
|
+
const stripped = text.replace(/```[\s\S]*?```/g, " ").replace(/`[^`]*`/g, " ").replace(/https?:\/\/\S+/g, " ").replace(PATH, " ").replace(IDENTIFIER, " ");
|
|
14
|
+
const kana = (stripped.match(/[-ヿ]/g) ?? []).length;
|
|
15
|
+
const hangul = (stripped.match(/[가-]/g) ?? []).length;
|
|
16
|
+
const han = (stripped.match(/[一-鿿]/g) ?? []).length;
|
|
17
|
+
const latin = (stripped.match(/[A-Za-z]/g) ?? []).length;
|
|
18
|
+
const words = latin / 5;
|
|
19
|
+
if (hangul >= 4 && hangul >= words) return { name: "Korean (\uD55C\uAD6D\uC5B4)", code: "ko" };
|
|
20
|
+
if (kana >= 1 && kana + han >= 4 && kana + han >= words) return { name: "Japanese (\u65E5\u672C\u8A9E)", code: "ja" };
|
|
21
|
+
if (han >= 4 && han >= words) return { name: "Chinese (\u4E2D\u6587)", code: "zh" };
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
function teamLanguageRule(language) {
|
|
25
|
+
const target = language ? language.name : "the language the user wrote the goal in";
|
|
26
|
+
return `## Language
|
|
27
|
+
The user works in ${target}. Write everything people read in ${language ? language.name : "that language"}: replies, notes between tool calls, task goals, messages, submissions and reports. Think in it too. The team instructions, tool texts and message envelopes are English only for maintenance; never switch language because of them. Code, commands, identifiers and quoted text stay as they are.`;
|
|
28
|
+
}
|
|
29
|
+
function teamLanguageReminder(language) {
|
|
30
|
+
return language ? `Reply in ${language.name}, the user's language.` : "Reply in the user's language, not this envelope's.";
|
|
31
|
+
}
|
|
32
|
+
function teamOwnerText(tasks) {
|
|
33
|
+
return tasks?.find((task) => task.ownerBotId === null)?.goal ?? null;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const SESSION_ID = /^[a-zA-Z0-9_-]{1,128}$/;
|
|
37
|
+
function teamExitMarkerPath(home, sessionId) {
|
|
38
|
+
if (!SESSION_ID.test(sessionId)) throw new Error("Invalid session id");
|
|
39
|
+
return path.join(home, "teams", "exited", `${sessionId}.json`);
|
|
40
|
+
}
|
|
41
|
+
function readTeamExitMarker(home, sessionId) {
|
|
42
|
+
if (!sessionId || !SESSION_ID.test(sessionId)) return null;
|
|
43
|
+
try {
|
|
44
|
+
const marker = JSON.parse(node_fs.readFileSync(teamExitMarkerPath(home, sessionId), "utf8"));
|
|
45
|
+
return typeof marker?.teamId === "string" ? marker : null;
|
|
46
|
+
} catch {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
const teamLabel = (marker) => `"${(marker.teamName || marker.teamId).replace(/[\u0000-\u001f\u007f"]/g, " ").slice(0, 128)}"`;
|
|
51
|
+
function teamExitedMessage(marker) {
|
|
52
|
+
return `Team ${teamLabel(marker)} is archived and this session has left team mode; it is an ordinary session now. This is final, not a temporary failure or a missing permission: do not retry team tools, inspect or delegate to that team, or ask the user to restore team access. Do what the user asks yourself, in this session. Start a new team (team_create) only if the user explicitly asks for one. ${teamLanguageReminder(marker.language ?? null)}`;
|
|
53
|
+
}
|
|
54
|
+
function teamExitNoticeText(marker, language) {
|
|
55
|
+
const how = marker.reason === "archived" ? "was archived while this session was stopped" : "was archived when the user exited team mode";
|
|
56
|
+
return `[Very Happy: team mode ended] Team ${teamLabel(marker)} ${how}. This session is now an ordinary session: its members were stopped and their unfinished tasks cancelled, and team tools no longer work here. Do not delegate to or inspect the team, and do not wait for or ask the user to restore team access. If the user asks about the team or to continue its work, say plainly that team mode has ended and carry on with the work yourself (or ask whether they want you to). ${teamLanguageReminder(language)}`;
|
|
57
|
+
}
|
|
58
|
+
function noticeLanguage(message, marker) {
|
|
59
|
+
const detected = detectTeamUserLanguage(message);
|
|
60
|
+
if (detected) return detected;
|
|
61
|
+
return (message.match(/[A-Za-z]/g) ?? []).length >= 20 ? null : marker.language ?? null;
|
|
62
|
+
}
|
|
63
|
+
function createTeamExitNotice(deps) {
|
|
64
|
+
const home = deps.home ?? configuration.configuration.happyHomeDir;
|
|
65
|
+
return {
|
|
66
|
+
decorate(message) {
|
|
67
|
+
const sid = deps.sessionId();
|
|
68
|
+
const marker = readTeamExitMarker(home, sid);
|
|
69
|
+
if (!marker || marker.noticeAt !== void 0) return message;
|
|
70
|
+
try {
|
|
71
|
+
configuration.writePrivateFileSync(teamExitMarkerPath(home, sid), JSON.stringify({ ...marker, noticeAt: Date.now() }));
|
|
72
|
+
} catch (error) {
|
|
73
|
+
logger.logger.debug(`[teams] exit notice not recorded, skipping it: ${String(error)}`);
|
|
74
|
+
return message;
|
|
75
|
+
}
|
|
76
|
+
return prompt.prependToMessage(message, teamExitNoticeText(marker, noticeLanguage(message, marker)));
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
exports.createTeamExitNotice = createTeamExitNotice;
|
|
82
|
+
exports.detectTeamUserLanguage = detectTeamUserLanguage;
|
|
83
|
+
exports.readTeamExitMarker = readTeamExitMarker;
|
|
84
|
+
exports.teamExitMarkerPath = teamExitMarkerPath;
|
|
85
|
+
exports.teamExitedMessage = teamExitedMessage;
|
|
86
|
+
exports.teamLanguageReminder = teamLanguageReminder;
|
|
87
|
+
exports.teamLanguageRule = teamLanguageRule;
|
|
88
|
+
exports.teamOwnerText = teamOwnerText;
|