very-happy-cli 0.2.200 → 0.2.202
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-CwSShYPI.cjs → AcpBackend-BRcPXur6.cjs} +3 -3
- package/dist/{AcpBackend-Cnp6WNn8.mjs → AcpBackend-Z51picBa.mjs} +3 -3
- package/dist/{AcpSessionManager-C4O3jhT_.mjs → AcpSessionManager-BCGqL1Em.mjs} +2 -2
- package/dist/{AcpSessionManager-DqW99tOL.cjs → AcpSessionManager-BckOYH3I.cjs} +2 -2
- package/dist/{BasePermissionHandler-CgqjIUyG.cjs → BasePermissionHandler-BYIY3kxs.cjs} +1 -1
- package/dist/{BasePermissionHandler-8Msj0Z8j.mjs → BasePermissionHandler-BhJjr-wB.mjs} +1 -1
- package/dist/{account-BIxPuBEs.mjs → account-B-HTHZKw.mjs} +11 -11
- package/dist/{account-DcNh2_SN.cjs → account-B0Wu7rJR.cjs} +11 -11
- package/dist/{accountService-BDJo14mY.cjs → accountService-Cns8UYGI.cjs} +4 -4
- package/dist/{accountService-ELazcp3V.mjs → accountService-DEpIq6CF.mjs} +4 -4
- package/dist/{acpSessionResume-De_sTG30.mjs → acpSessionResume-BKjQRT4V.mjs} +1 -1
- package/dist/{acpSessionResume-B_W8uTI6.cjs → acpSessionResume-C8Kd8eK6.cjs} +1 -1
- package/dist/{agentHome-C-900jC1.mjs → agentHome-BXiCouR4.mjs} +4 -4
- package/dist/{agentHome-C-usjJwB.cjs → agentHome-DnxSf1ox.cjs} +4 -4
- package/dist/{api-BPWRzeNF.cjs → api-B-FB-s4z.cjs} +10 -10
- package/dist/{api-DCUiAds-.mjs → api-Cu1OFHDM.mjs} +10 -10
- package/dist/{apiMachine-DjhbA1rL.cjs → apiMachine-DCWgI1l_.cjs} +28 -18
- package/dist/{apiMachine-CJl4m3V3.mjs → apiMachine-DYGPILVb.mjs} +28 -18
- package/dist/{attachmentContent-BKIq6EXR.mjs → attachmentContent-Dq8P5ODq.mjs} +2 -2
- package/dist/{attachmentContent-C2f1UEP9.cjs → attachmentContent-dXwHB_3C.cjs} +2 -2
- package/dist/{auth-h6oU63Ni.cjs → auth-BVNBE4B1.cjs} +8 -8
- package/dist/{auth-8jKFCZOX.mjs → auth-CgdE-j7z.mjs} +5 -5
- package/dist/{auth-uLRHXOGY.mjs → auth-D11uvx2P.mjs} +8 -8
- package/dist/{auth-oAnLi4Tl.cjs → auth-DpIHm7Lb.cjs} +5 -5
- package/dist/{auto-Bpa5iA1A.cjs → auto-Ba2b-il4.cjs} +17 -17
- package/dist/{auto-A5arQ-bI.mjs → auto-WdjHKP9R.mjs} +17 -17
- package/dist/{bootstrap-BkLFgEGF.mjs → bootstrap-BTYJf2w8.mjs} +2 -2
- package/dist/{bootstrap-DUKAKxrJ.cjs → bootstrap-CsZO_jkL.cjs} +2 -2
- package/dist/{browser-Ds-N-Dup.cjs → browser-DgufCq1K.cjs} +1 -1
- package/dist/{browser-BAlw0rns.mjs → browser-Dx3UOVPP.mjs} +1 -1
- package/dist/{claudeAccountEnv-D33xXRE7.cjs → claudeAccountEnv-Btp39mfa.cjs} +1 -1
- package/dist/{claudeAccountEnv-CI8RlIB9.mjs → claudeAccountEnv-DowsOlDB.mjs} +1 -1
- package/dist/{claudeLocal-BbsOT-EF.cjs → claudeLocal-Q0FgzhTu.cjs} +5 -5
- package/dist/{claudeLocal-X48n0RhP.mjs → claudeLocal-ylDKcvX0.mjs} +5 -5
- package/dist/{claudeLocalLauncher-D18gRtxz.mjs → claudeLocalLauncher-CtybsaR8.mjs} +10 -10
- package/dist/{claudeLocalLauncher-D1jS3iK4.cjs → claudeLocalLauncher-D2rZvuaW.cjs} +10 -10
- package/dist/{claudeSessionFork-Bkxn40Y8.cjs → claudeSessionFork-BrstQPE4.cjs} +1 -1
- package/dist/{claudeSessionFork-n1vMiFcP.mjs → claudeSessionFork-DRLxmv9j.mjs} +1 -1
- package/dist/{client-BnoN4P4t.cjs → client-CNWx72ZT.cjs} +2 -2
- package/dist/{client-C8BTmcrh.cjs → client-Ch4Azlny.cjs} +4 -4
- package/dist/{client-BgxQ9aej.mjs → client-Cj7D61by.mjs} +3 -3
- package/dist/{client-Blpuk2Hr.mjs → client-D0oBXuEe.mjs} +2 -2
- package/dist/{client-C0qjAgZ_.mjs → client-DJsXNJWO.mjs} +4 -4
- package/dist/{client-BXwIqRha.mjs → client-DfT_CRwl.mjs} +2 -2
- package/dist/{client-D0_UOmC1.cjs → client-Dq7jaxb2.cjs} +2 -2
- package/dist/{client-1zIbVVX5.cjs → client-xV99weGP.cjs} +3 -3
- package/dist/codex/happyMcpStdioBridge.cjs +18 -18
- package/dist/codex/happyMcpStdioBridge.mjs +18 -18
- package/dist/{codexAccount-BAezf1fY.mjs → codexAccount-CieIQLOX.mjs} +1 -1
- package/dist/{codexAccount-DfeCHUOU.cjs → codexAccount-D-OBY29W.cjs} +1 -1
- package/dist/{codexAppServerClient-xBeqblCj.cjs → codexAppServerClient-BwBPZonh.cjs} +3 -3
- package/dist/{codexAppServerClient-By4ntTIr.mjs → codexAppServerClient-DtdCZ7_b.mjs} +3 -3
- package/dist/{codexCommand-CgzJe-Ti.cjs → codexCommand-CsY9YFiG.cjs} +53 -52
- package/dist/{codexCommand-C7BVsmPu.mjs → codexCommand-D92AQCLU.mjs} +49 -48
- package/dist/{codexTermination-DVrdQx3Q.cjs → codexTermination-BbXG2oFT.cjs} +1 -1
- package/dist/{codexTermination-BS0sLBKS.mjs → codexTermination-rhIxjRMJ.mjs} +1 -1
- package/dist/{config-D3jidXDu.mjs → config-BnN1yFyi.mjs} +3 -3
- package/dist/{config-4R0rnthZ.cjs → config-Zhkmfb3O.cjs} +3 -3
- package/dist/{configuration-4pG95tsq.mjs → configuration-CQaLZMa-.mjs} +1 -1
- package/dist/{configuration-ClUt7pqs.cjs → configuration-DZUnfWp2.cjs} +1 -1
- package/dist/{connect-Da2NQJ3K.cjs → connect-BToTf3Gy.cjs} +13 -13
- package/dist/{connect-Do5qcqmg.mjs → connect-DY5QLfbI.mjs} +13 -13
- package/dist/{context-wMsIGwBw.cjs → context-BHydzPZw.cjs} +1 -1
- package/dist/{context-Cf05DtNM.mjs → context-ByTvtMXZ.mjs} +1 -1
- package/dist/{controlClient-SYDFcIkk.cjs → controlClient-Bfwe0Xpt.cjs} +3 -3
- package/dist/{controlClient-bqCKl9Nv.mjs → controlClient-Cqhd8ynk.mjs} +3 -3
- package/dist/{createSessionMetadata-msQTEvvn.cjs → createSessionMetadata-D_qa01wq.cjs} +2 -2
- package/dist/{createSessionMetadata-CQkxe_4T.mjs → createSessionMetadata-tmhDzhJZ.mjs} +2 -2
- package/dist/{daemonAccounts-B8xnkprW.mjs → daemonAccounts-D5shoCLt.mjs} +3 -3
- package/dist/{daemonAccounts-Ch_rSTSX.cjs → daemonAccounts-ciidbU2h.cjs} +2 -2
- package/dist/{defaultPermissionMode-BETWd5Lf.cjs → defaultPermissionMode-Cs_Tv83b.cjs} +1 -1
- package/dist/{defaultPermissionMode-Cl3OvdHp.mjs → defaultPermissionMode-DgeiMMqy.mjs} +1 -1
- package/dist/{deterministicJson-CQ8jkArF.cjs → deterministicJson-CbUdClvO.cjs} +67 -20
- package/dist/{deterministicJson-BRAeReBK.mjs → deterministicJson-DRL1Gs_c.mjs} +68 -21
- package/dist/{doctor-C9D-t20z.cjs → doctor-DHCmWcwR.cjs} +7 -7
- package/dist/{doctor-Dy7z3qvy.mjs → doctor-Wu0yZ80l.mjs} +7 -7
- package/dist/{downloadTarget-DfoOSrYi.cjs → downloadTarget-BoJrjpEe.cjs} +6 -6
- package/dist/{downloadTarget-Diq-GBu4.mjs → downloadTarget-G72yKQcM.mjs} +6 -6
- package/dist/{ensureDaemonRunning-LqrgqVG3.mjs → ensureDaemonRunning-BKGybp3s.mjs} +5 -5
- package/dist/{ensureDaemonRunning-Df76EtKd.cjs → ensureDaemonRunning-CnkyGd9x.cjs} +5 -5
- package/dist/{format-CbliQN8V.mjs → format-BSx-Nv2p.mjs} +2 -1
- package/dist/{format-P9_M_7ga.cjs → format-DePME4uu.cjs} +2 -1
- package/dist/{handleResumeCommand-Dz4Aw_aZ.mjs → handleResumeCommand-DrJdhjLD.mjs} +5 -5
- package/dist/{handleResumeCommand-CjCtwrrm.cjs → handleResumeCommand-uKzhaOVC.cjs} +5 -5
- package/dist/{index-BiutHOAO.cjs → index-44o_qMvE.cjs} +14 -4
- package/dist/{index-CdOnhx2X.cjs → index-BKXqaux4.cjs} +4 -4
- package/dist/{index-Sdvy1Lsf.mjs → index-BcYJJV-f.mjs} +3 -3
- package/dist/{index-ByBOdEvG.cjs → index-Bi7Lmykl.cjs} +47 -46
- package/dist/{index-BNBXrqRE.mjs → index-C-eSUhXW.mjs} +4 -4
- package/dist/{index-kwsivEs-.mjs → index-CiRMvS73.mjs} +14 -5
- package/dist/{index-DUwOmhnq.cjs → index-CoBaGAA4.cjs} +3 -3
- package/dist/{index-CjMA70-R.mjs → index-CowtCbZ_.mjs} +46 -45
- package/dist/{index-CbzettaI.cjs → index-DDOCSeEj.cjs} +4 -4
- package/dist/{index-XP-qcJQ3.mjs → index-fNsf-8K-.mjs} +4 -4
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-DMXd8Z4c.mjs → install-0TkucJrC.mjs} +3 -3
- package/dist/{install-C4dKrmxR.cjs → install-Ddc8TlWE.cjs} +3 -3
- package/dist/{issue-BijeNKIT.cjs → issue-CIfzJuaS.cjs} +8 -8
- package/dist/{issue-COytLvGE.mjs → issue-CML2xa46.mjs} +8 -8
- package/dist/lib.cjs +12 -12
- package/dist/lib.d.cts +4 -0
- package/dist/lib.d.mts +4 -0
- package/dist/lib.mjs +12 -12
- package/dist/{localHappyAgentAuth-DeDQjw24.mjs → localHappyAgentAuth-BUX4E1ug.mjs} +1 -1
- package/dist/{localHappyAgentAuth-CjtNcaI0.cjs → localHappyAgentAuth-WLqXQbc6.cjs} +1 -1
- package/dist/{logger-BLMi8oJK.mjs → logger-BEVIGYKL.mjs} +17 -3
- package/dist/{logger-D28MY1Bv.cjs → logger-Dhc0l3xH.cjs} +17 -2
- package/dist/{machineMetadata-D8OWVD4l.mjs → machineMetadata-BQdp_ihk.mjs} +3 -3
- package/dist/{machineMetadata-BzjrIn_N.cjs → machineMetadata-ixKckJ7k.cjs} +3 -3
- package/dist/{main-DoJIcSOh.cjs → main-BNBYOcQb.cjs} +49 -49
- package/dist/{main-c0fCuBON.mjs → main-BzQSe4Zu.mjs} +49 -49
- package/dist/{mcp-DKkBFGUa.mjs → mcp-BueI4Bel.mjs} +18 -18
- package/dist/{mcp-CEtvR6tG.cjs → mcp-BwskAxOK.cjs} +18 -18
- package/dist/{mirrorProtocol-DFQLXDBI.mjs → mirrorProtocol-5aFYsCCe.mjs} +3 -3
- package/dist/{mirrorProtocol-CCl9dtzh.cjs → mirrorProtocol-DGMmhArw.cjs} +3 -3
- package/dist/{package-BFSsS_dl.cjs → package-CAmlKYcH.cjs} +7 -7
- package/dist/{package-DbGqY8Ej.mjs → package-aOUtHYRZ.mjs} +7 -7
- package/dist/{panels-2yIO9FxQ.mjs → panels-BeVMgmRW.mjs} +5 -5
- package/dist/{panels-BqLXIQif.cjs → panels-By2IDfXv.cjs} +5 -5
- package/dist/{peerTools-4GYKxr8J.mjs → peerTools-BkRgJomj.mjs} +5 -5
- package/dist/{peerTools-Z8V2E0AF.cjs → peerTools-dgllF1wT.cjs} +5 -5
- package/dist/{persistence-TpVFA5-I.cjs → persistence-05BAS4Ou.cjs} +12 -2
- package/dist/{persistence-DbOKjdUD.mjs → persistence-EuUaQKL7.mjs} +12 -3
- package/dist/{piRunnerArgs-Bdj0sjAT.mjs → piRunnerArgs-CygWrAwY.mjs} +1 -1
- package/dist/{piRunnerArgs-DOEJJymf.cjs → piRunnerArgs-DkjCRPYn.cjs} +1 -1
- package/dist/{piRuntime-B0QZykV7.mjs → piRuntime-LRW_t6ME.mjs} +1 -1
- package/dist/{piRuntime-DiRayy91.cjs → piRuntime-zY2jIQod.cjs} +1 -1
- package/dist/{piTerminal-DciFqPEi.cjs → piTerminal-BfZshXGh.cjs} +20 -20
- package/dist/{piTerminal-DGF4X7C-.mjs → piTerminal-BhlPA1HR.mjs} +20 -20
- package/dist/{pushNotifications-CrCTpDiN.mjs → pushNotifications-B7Ga8Zyf.mjs} +3 -3
- package/dist/{pushNotifications-C1i2W1GQ.cjs → pushNotifications-DaVlLe7N.cjs} +3 -3
- package/dist/{query-CrSvcV32.mjs → query-BQLtwpr9.mjs} +1 -1
- package/dist/{query-BkOpCpRo.cjs → query-CX0Of89i.cjs} +1 -1
- package/dist/{rateLimitWindows-BREA7OZj.cjs → rateLimitWindows-CpSOlXBt.cjs} +1 -1
- package/dist/{rateLimitWindows-DZVrafmm.mjs → rateLimitWindows-hv2zLYid.mjs} +1 -1
- package/dist/{reconnectGate-YQ5jXJfY.cjs → reconnectGate-B_aJrehH.cjs} +1 -1
- package/dist/{reconnectGate-COxAZTv8.mjs → reconnectGate-DO_ZQmJE.mjs} +1 -1
- package/dist/{registerCommonHandlers-Cfl_dEWs.mjs → registerCommonHandlers-BEpK4WD2.mjs} +2 -2
- package/dist/{registerCommonHandlers-D95IxqDN.cjs → registerCommonHandlers-em2elV3l.cjs} +2 -2
- package/dist/{registerKillSessionHandler-DoE6xgH3.mjs → registerKillSessionHandler-D-dDzI2n.mjs} +6 -6
- package/dist/{registerKillSessionHandler-DJJXtc_L.cjs → registerKillSessionHandler-D4ZQvsH2.cjs} +6 -6
- package/dist/{registerSideQuestionHandler-DsRz-aD9.cjs → registerSideQuestionHandler-BIOLUe2U.cjs} +4 -4
- package/dist/{registerSideQuestionHandler-Dv00rqcy.mjs → registerSideQuestionHandler-okUy9Q_-.mjs} +4 -4
- package/dist/{remoteSessionClient-DleOeQlN.cjs → remoteSessionClient-BLWFXMBo.cjs} +5 -5
- package/dist/{remoteSessionClient-BFd_D9ka.mjs → remoteSessionClient-CzjLyL9c.mjs} +5 -5
- package/dist/{reportProgressTool-D4xKY9Ur.mjs → reportProgressTool-CNi0Vqqm.mjs} +5 -5
- package/dist/{reportProgressTool-DtEpDqv3.cjs → reportProgressTool-DcNBXBw8.cjs} +5 -5
- package/dist/{run-iDEMW4js.mjs → run-D59Gb4SQ.mjs} +272 -73
- package/dist/{run-CVAIFpsp.cjs → run-bzlz4DI1.cjs} +272 -73
- package/dist/{runClaude-DvHdLJaV.mjs → runClaude-DZtdmcXK.mjs} +26 -25
- package/dist/{runClaude-gucCQBma.cjs → runClaude-kVp1PKab.cjs} +29 -28
- package/dist/{runClaudeDeps-CQ8vvqUQ.cjs → runClaudeDeps-BHv9FkVz.cjs} +43 -42
- package/dist/{runClaudeDeps-DkFWFwVc.mjs → runClaudeDeps-D83tR1KP.mjs} +49 -48
- package/dist/{runGemini-B2lXQDru.mjs → runGemini-DLc_bL4E.mjs} +36 -35
- package/dist/{runGemini-C0vqJYtS.cjs → runGemini-W-0t7skM.cjs} +36 -35
- package/dist/{runOpenClaw-DNV7GX73.cjs → runOpenClaw-BsqbOw8R.cjs} +18 -18
- package/dist/{runOpenClaw-Ddb6sOkY.mjs → runOpenClaw-mm-hKxMC.mjs} +18 -18
- package/dist/{sandbox-Cw0cPDDh.mjs → sandbox-DXbKl-Os.mjs} +4 -4
- package/dist/{sandbox-FA0RlaZg.cjs → sandbox-DrWJss7J.cjs} +4 -4
- package/dist/selfCheck-B1XdrEbN.mjs +89 -0
- package/dist/{selfCheck-DFC8fzhF.cjs → selfCheck-CVXucSXR.cjs} +40 -40
- package/dist/{send-CwgqPftE.mjs → send-Cdda78Iw.mjs} +8 -8
- package/dist/{send-BFd-5b_Q.cjs → send-D7pRBaht.cjs} +8 -8
- package/dist/{server-DwOdMGAP.cjs → server-BI6defPs.cjs} +6 -6
- package/dist/{server-C_4Fk45r.mjs → server-CNilQcJK.mjs} +4 -4
- package/dist/{sessionLock-DglhFHzB.cjs → sessionLock-Bjsy90aM.cjs} +3 -3
- package/dist/{sessionLock-CphKQyav.mjs → sessionLock-CVjlaRSL.mjs} +3 -3
- package/dist/sessionMetadata-B44cL4Xj.cjs +29 -0
- package/dist/sessionMetadata-C1eoAi89.mjs +25 -0
- package/dist/{sessionOps-D-uFSTHk.mjs → sessionOps-CV5RUpwG.mjs} +4 -4
- package/dist/{sessionOps-CIFvoFPA.cjs → sessionOps-CvmOHwGP.cjs} +4 -4
- package/dist/{sessionProvider-B0daO-Ln.cjs → sessionProvider-4sWr0Myr.cjs} +10 -10
- package/dist/{sessionProvider-D8y7K8bK.mjs → sessionProvider-BmO4ahnt.mjs} +10 -10
- package/dist/{sessionScanner-DQAOP6pU.mjs → sessionScanner-34Q0vTR3.mjs} +3 -3
- package/dist/{sessionScanner-CWflbWoH.cjs → sessionScanner-DZBiEOyb.cjs} +3 -3
- package/dist/{sessions-CaO_-AI7.mjs → sessions-Cl435KQT.mjs} +10 -10
- package/dist/{sessions-CzpI76qj.cjs → sessions-DjAXZWTX.cjs} +10 -10
- package/dist/{setupOfflineReconnection-Ck-p0YPb.mjs → setupOfflineReconnection-BC5FJTkc.mjs} +2 -2
- package/dist/{setupOfflineReconnection-BZHRoKDx.cjs → setupOfflineReconnection-zebrb6U_.cjs} +2 -2
- package/dist/{spawn-DyjOa4nf.cjs → spawn-C8cJK9-m.cjs} +14 -14
- package/dist/{spawn-BEJxfj60.mjs → spawn-DqWdgMt_.mjs} +14 -14
- package/dist/{spawnAgents-XObVj6zN.mjs → spawnAgents-BclZYkov.mjs} +1 -1
- package/dist/{spawnAgents-IiuqX0S5.cjs → spawnAgents-DvbEDCIq.cjs} +1 -1
- package/dist/{spawnHappyCLI-Cc9kKpcq.mjs → spawnHappyCLI-BckHSjR0.mjs} +1 -1
- package/dist/{spawnHappyCLI-C3XuIB2N.cjs → spawnHappyCLI-CeWgULMt.cjs} +1 -1
- package/dist/{startFileWatcher-t3K1y9kY.mjs → startFileWatcher-BXiBlfVr.mjs} +1 -1
- package/dist/{startFileWatcher-CeDJl9mN.cjs → startFileWatcher-CXZYt0y9.cjs} +1 -1
- package/dist/{sessionMetadata-DyTJ0Ki5.cjs → startupSessionCreate-CycB-kwu.cjs} +3 -14
- package/dist/{sessionMetadata-V7Z7F-cj.mjs → startupSessionCreate-D8hODW7I.mjs} +4 -14
- package/dist/{store-DOZAMV4W.cjs → store-Cpb1LMNW.cjs} +1 -1
- package/dist/{store-CqNAE-0v.mjs → store-DWmjM4Ex.mjs} +1 -1
- package/dist/{streamRelay-Dyp4x44P.cjs → streamRelay-4XiiNB3N.cjs} +1 -1
- package/dist/{streamRelay-7D7v0hvk.mjs → streamRelay-DdGOsW8v.mjs} +1 -1
- package/dist/{sync-s1pUqWGm.mjs → sync-BfM5OKSS.mjs} +1 -1
- package/dist/{sync-BvxhuW9R.cjs → sync-CyUWevwD.cjs} +1 -1
- package/dist/{systemPrompt-CCdSrtn3.cjs → systemPrompt-BUZQDf4k.cjs} +2 -2
- package/dist/{systemPrompt-CLYTbBhV.mjs → systemPrompt-Tu_2ixE3.mjs} +2 -2
- package/dist/{teams-BVp5F_xN.mjs → teams-Cpdqvfe3.mjs} +7 -7
- package/dist/{teams-D2q1DQWz.cjs → teams-KjHee0Vg.cjs} +7 -7
- package/dist/{template-M1YGFYUT.cjs → template-3fV9bi0X.cjs} +1 -1
- package/dist/{template-oBrR0saD.mjs → template-CtRLg2PG.mjs} +1 -1
- package/dist/{time-qd46L189.mjs → time-BQWf06hA.mjs} +1 -1
- package/dist/{time-D-v2Cd9e.cjs → time-CbOTVtAt.cjs} +1 -1
- package/dist/{titleGenerator-CSYqcorn.cjs → titleGenerator-CpiQkf_r.cjs} +3 -3
- package/dist/{titleGenerator-BdeHi3IY.mjs → titleGenerator-DYnqd0oI.mjs} +2 -2
- package/dist/{todo-Dq_YuJvj.cjs → todo-Cp6bRp62.cjs} +26 -18
- package/dist/{todo-DiEhLgUZ.mjs → todo-DVrsXyKn.mjs} +26 -18
- package/dist/{tools-CY2zrdd5.cjs → tools-BFQm7xny.cjs} +1 -1
- package/dist/{tools-DR7GWBBV.mjs → tools-XGAJepvT.mjs} +1 -1
- package/dist/{uninstall-BvwDZVU9.mjs → uninstall-C2LF0vtR.mjs} +3 -3
- package/dist/{uninstall-BHhHjbzE.cjs → uninstall-Cyqq90JW.cjs} +3 -3
- package/dist/{wrapperAccount-ejUjAQaM.cjs → wrapperAccount-nGGMJDBF.cjs} +2 -2
- package/dist/{wrapperAccount-CpDsQL15.mjs → wrapperAccount-z8Swrd08.mjs} +2 -2
- package/package.json +7 -7
- package/dist/selfCheck-B-hKig8I.mjs +0 -89
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { homedir } from 'os';
|
|
3
3
|
import { join } from 'path';
|
|
4
|
-
import { b as readCredentialsForConfiguredRelay } from './persistence-
|
|
5
|
-
import { A as ApiClient } from './api-
|
|
6
|
-
import { f as ensurePrivateDirectorySync, w as writePrivateFileSync } from './configuration-
|
|
4
|
+
import { b as readCredentialsForConfiguredRelay } from './persistence-EuUaQKL7.mjs';
|
|
5
|
+
import { A as ApiClient } from './api-Cu1OFHDM.mjs';
|
|
6
|
+
import { f as ensurePrivateDirectorySync, w as writePrivateFileSync } from './configuration-CQaLZMa-.mjs';
|
|
7
7
|
import { createServer } from 'http';
|
|
8
8
|
import { randomBytes, createHash } from 'crypto';
|
|
9
|
-
import { o as openBrowser } from './browser-
|
|
9
|
+
import { o as openBrowser } from './browser-Dx3UOVPP.mjs';
|
|
10
10
|
import { exec } from 'child_process';
|
|
11
11
|
import { promisify } from 'util';
|
|
12
12
|
import 'node:fs/promises';
|
|
@@ -15,29 +15,29 @@ import 'zod';
|
|
|
15
15
|
import './authRelay-DhQhkBvX.mjs';
|
|
16
16
|
import 'node:crypto';
|
|
17
17
|
import 'tweetnacl';
|
|
18
|
-
import './logger-
|
|
18
|
+
import './logger-BEVIGYKL.mjs';
|
|
19
19
|
import 'node:util';
|
|
20
20
|
import 'node:path';
|
|
21
21
|
import 'axios';
|
|
22
|
-
import './pushNotifications-
|
|
23
|
-
import './index-
|
|
22
|
+
import './pushNotifications-B7Ga8Zyf.mjs';
|
|
23
|
+
import './index-CiRMvS73.mjs';
|
|
24
24
|
import '@paralleldrive/cuid2';
|
|
25
25
|
import './contentLogMetadata-BlWI0egu.mjs';
|
|
26
|
-
import './reconnectGate-
|
|
26
|
+
import './reconnectGate-DO_ZQmJE.mjs';
|
|
27
27
|
import 'node:events';
|
|
28
28
|
import 'socket.io-client';
|
|
29
29
|
import './limits-DIo7rEBR.mjs';
|
|
30
|
-
import './time-
|
|
31
|
-
import './registerCommonHandlers-
|
|
30
|
+
import './time-BQWf06hA.mjs';
|
|
31
|
+
import './registerCommonHandlers-BEpK4WD2.mjs';
|
|
32
32
|
import 'fs/promises';
|
|
33
33
|
import 'cross-spawn';
|
|
34
34
|
import './projectPath-BTBIMB57.mjs';
|
|
35
35
|
import 'url';
|
|
36
|
-
import './sync-
|
|
36
|
+
import './sync-BfM5OKSS.mjs';
|
|
37
37
|
import './backgroundTaskActivity-8PdPxrvy.mjs';
|
|
38
|
-
import './controlClient-
|
|
38
|
+
import './controlClient-Cqhd8ynk.mjs';
|
|
39
39
|
import 'node:os';
|
|
40
|
-
import './package-
|
|
40
|
+
import './package-aOUtHYRZ.mjs';
|
|
41
41
|
import 'open';
|
|
42
42
|
|
|
43
43
|
const CLIENT_ID$2 = "app_EMoamEEZ73f0CkXaXp7hrann";
|
|
@@ -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-DZUnfWp2.cjs');
|
|
9
9
|
|
|
10
10
|
const TeamScopeSchema = z.z.object({
|
|
11
11
|
serverUrl: z.z.string(),
|
|
@@ -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-CQaLZMa-.mjs';
|
|
7
7
|
|
|
8
8
|
const TeamScopeSchema = z.object({
|
|
9
9
|
serverUrl: 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-Dhc0l3xH.cjs');
|
|
4
|
+
var persistence = require('./persistence-05BAS4Ou.cjs');
|
|
5
|
+
var configuration = require('./configuration-DZUnfWp2.cjs');
|
|
6
6
|
|
|
7
7
|
function daemonControlHeaders(controlToken) {
|
|
8
8
|
return {
|
|
@@ -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-BEVIGYKL.mjs';
|
|
2
|
+
import { d as readDaemonState, f as clearDaemonState } from './persistence-EuUaQKL7.mjs';
|
|
3
|
+
import { c as configuration } from './configuration-CQaLZMa-.mjs';
|
|
4
4
|
|
|
5
5
|
function daemonControlHeaders(controlToken) {
|
|
6
6
|
return {
|
|
@@ -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-DZUnfWp2.cjs');
|
|
6
6
|
var projectPath = require('./projectPath-C3ioB4Bu.cjs');
|
|
7
|
-
var _package = require('./package-
|
|
7
|
+
var _package = require('./package-CAmlKYcH.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-CQaLZMa-.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-aOUtHYRZ.mjs';
|
|
6
6
|
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
7
7
|
|
|
8
8
|
const realFs = {
|
|
@@ -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-DWmjM4Ex.mjs';
|
|
4
|
+
export { S as SPAWN_ACCOUNT_ENV } from './store-DWmjM4Ex.mjs';
|
|
5
5
|
import 'node:os';
|
|
6
6
|
import 'node:path';
|
|
7
|
-
import './index-
|
|
7
|
+
import './index-CiRMvS73.mjs';
|
|
8
8
|
import 'zod';
|
|
9
9
|
import '@paralleldrive/cuid2';
|
|
10
10
|
|
|
@@ -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-Cpb1LMNW.cjs');
|
|
6
6
|
require('node:os');
|
|
7
7
|
require('node:path');
|
|
8
|
-
require('./index-
|
|
8
|
+
require('./index-44o_qMvE.cjs');
|
|
9
9
|
require('zod');
|
|
10
10
|
require('@paralleldrive/cuid2');
|
|
11
11
|
|
|
@@ -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-CiRMvS73.mjs';
|
|
2
2
|
|
|
3
3
|
function currentRunIntents(metadata) {
|
|
4
4
|
return {
|
|
@@ -1,35 +1,36 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var logger = require('./logger-
|
|
3
|
+
var logger = require('./logger-Dhc0l3xH.cjs');
|
|
4
4
|
var prompt = require('./prompt-Bof2aQkI.cjs');
|
|
5
|
-
var client$1 = require('./client-
|
|
6
|
-
var client = require('./client-
|
|
7
|
-
var
|
|
5
|
+
var client$1 = require('./client-CNWx72ZT.cjs');
|
|
6
|
+
var client = require('./client-xV99weGP.cjs');
|
|
7
|
+
var sessionMetadata = require('./sessionMetadata-B44cL4Xj.cjs');
|
|
8
|
+
var configuration = require('./configuration-DZUnfWp2.cjs');
|
|
9
|
+
var path = require('node:path');
|
|
8
10
|
var node_fs = require('node:fs');
|
|
11
|
+
var reportProgressTool = require('./reportProgressTool-DcNBXBw8.cjs');
|
|
9
12
|
var os = require('node:os');
|
|
10
|
-
var path = require('node:path');
|
|
11
13
|
var z = require('zod');
|
|
12
14
|
var pi = require('./pi-DlsrPCTa.cjs');
|
|
13
15
|
var promises = require('node:fs/promises');
|
|
14
16
|
var node_crypto = require('node:crypto');
|
|
15
|
-
var client$2 = require('./client-
|
|
16
|
-
var context = require('./context-
|
|
17
|
-
var sessionOps = require('./sessionOps-
|
|
17
|
+
var client$2 = require('./client-Ch4Azlny.cjs');
|
|
18
|
+
var context = require('./context-BHydzPZw.cjs');
|
|
19
|
+
var sessionOps = require('./sessionOps-CvmOHwGP.cjs');
|
|
18
20
|
var resources = require('./resources-BZ_Be0qM.cjs');
|
|
19
|
-
var tools = require('./tools-
|
|
20
|
-
var peerTools = require('./peerTools-
|
|
21
|
+
var tools = require('./tools-BFQm7xny.cjs');
|
|
22
|
+
var peerTools = require('./peerTools-dgllF1wT.cjs');
|
|
21
23
|
var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
22
24
|
var node_http = require('node:http');
|
|
23
25
|
var streamableHttp_js = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
24
26
|
var limits = require('./limits-C-a7gr04.cjs');
|
|
25
|
-
var downloadTarget = require('./downloadTarget-
|
|
27
|
+
var downloadTarget = require('./downloadTarget-BoJrjpEe.cjs');
|
|
26
28
|
var agentGuidance = require('./agentGuidance-BtBx2xxE.cjs');
|
|
27
29
|
var webPanels = require('./webPanels-FCgFKvVe.cjs');
|
|
28
|
-
var persistence = require('./persistence-
|
|
29
|
-
var pushNotifications = require('./pushNotifications-
|
|
30
|
+
var persistence = require('./persistence-05BAS4Ou.cjs');
|
|
31
|
+
var pushNotifications = require('./pushNotifications-DaVlLe7N.cjs');
|
|
30
32
|
var previewPath = require('./previewPath-B0rBdhy1.cjs');
|
|
31
|
-
var index = require('./index-
|
|
32
|
-
var configuration = require('./configuration-ClUt7pqs.cjs');
|
|
33
|
+
var index = require('./index-44o_qMvE.cjs');
|
|
33
34
|
var require$$3 = require('crypto');
|
|
34
35
|
|
|
35
36
|
function buildIssueDigestLine(issue, entries) {
|
|
@@ -49,25 +50,71 @@ function buildIssueDigestLine(issue, entries) {
|
|
|
49
50
|
if (!parts.length) return null;
|
|
50
51
|
return `[Issue ${issue.key} ${parts.join("; ")}]`;
|
|
51
52
|
}
|
|
53
|
+
const SESSION_ID = /^[A-Za-z0-9_-]{1,128}$/;
|
|
54
|
+
const ISSUE_DIGEST_CURSOR_TTL_MS = 30 * 24 * 36e5;
|
|
55
|
+
function fileIssueDigestCursorStore(home, now = Date.now) {
|
|
56
|
+
const dir = path.join(home, "issues", "digest");
|
|
57
|
+
let pruned = false;
|
|
58
|
+
return {
|
|
59
|
+
read(sessionId) {
|
|
60
|
+
if (!SESSION_ID.test(sessionId)) return null;
|
|
61
|
+
try {
|
|
62
|
+
const asOf = JSON.parse(node_fs.readFileSync(path.join(dir, `${sessionId}.json`), "utf8")).asOf;
|
|
63
|
+
return typeof asOf === "number" && Number.isFinite(asOf) ? asOf : null;
|
|
64
|
+
} catch {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
write(sessionId, asOf) {
|
|
69
|
+
if (!SESSION_ID.test(sessionId)) return;
|
|
70
|
+
try {
|
|
71
|
+
configuration.ensurePrivateDirectorySync(dir);
|
|
72
|
+
configuration.writePrivateFileSync(path.join(dir, `${sessionId}.json`), JSON.stringify({ asOf }));
|
|
73
|
+
if (!pruned) {
|
|
74
|
+
pruned = true;
|
|
75
|
+
for (const file of node_fs.readdirSync(dir)) {
|
|
76
|
+
const path$1 = path.join(dir, file);
|
|
77
|
+
try {
|
|
78
|
+
if (now() - node_fs.statSync(path$1).mtimeMs > ISSUE_DIGEST_CURSOR_TTL_MS) node_fs.unlinkSync(path$1);
|
|
79
|
+
} catch {
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
} catch (error) {
|
|
84
|
+
logger.logger.debug(`[issues] digest cursor not saved: ${String(error)}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
52
89
|
function createIssueDigest(deps) {
|
|
53
90
|
const client$1 = deps.client ?? client.sharedIssuesClient();
|
|
54
|
-
const enabled = deps.enabled ?? (() => !!process.env.VH_ISSUE_ID);
|
|
91
|
+
const enabled = deps.enabled ?? (() => !!process.env.VH_ISSUE_ID || sessionMetadata.readSessionIssueMetadata(deps.metadata?.()) !== null);
|
|
55
92
|
const timeoutMs = deps.timeoutMs ?? 1500;
|
|
93
|
+
const store = deps.cursorStore === void 0 ? fileIssueDigestCursorStore(configuration.configuration.happyHomeDir) : deps.cursorStore;
|
|
56
94
|
let cursor = null;
|
|
95
|
+
let loadedFor = null;
|
|
96
|
+
const advance = (sid, asOf) => {
|
|
97
|
+
cursor = asOf;
|
|
98
|
+
store?.write(sid, asOf);
|
|
99
|
+
};
|
|
57
100
|
return {
|
|
58
101
|
cursor: () => cursor,
|
|
59
102
|
async decorate(message) {
|
|
60
103
|
const sid = deps.sessionId();
|
|
61
104
|
if (!sid || !enabled() || client$1.isDisabled()) return message;
|
|
105
|
+
if (loadedFor !== sid) {
|
|
106
|
+
loadedFor = sid;
|
|
107
|
+
cursor = store?.read(sid) ?? null;
|
|
108
|
+
}
|
|
62
109
|
try {
|
|
63
110
|
if (cursor === null) {
|
|
64
111
|
const ctx2 = await client$1.session(sid, void 0, timeoutMs);
|
|
65
|
-
if (ctx2.issue)
|
|
112
|
+
if (ctx2.issue) advance(sid, ctx2.asOf);
|
|
66
113
|
return message;
|
|
67
114
|
}
|
|
68
115
|
const ctx = await client$1.session(sid, cursor, timeoutMs);
|
|
69
116
|
if (!ctx.issue) return message;
|
|
70
|
-
|
|
117
|
+
advance(sid, ctx.asOf);
|
|
71
118
|
return prompt.prependToMessage(message, buildIssueDigestLine(ctx.issue, ctx.comments));
|
|
72
119
|
} catch (error) {
|
|
73
120
|
if (!(error instanceof client.IssuesUnsupportedError)) logger.logger.debug(`[issues] digest skipped: ${String(error)}`);
|
|
@@ -86,7 +133,7 @@ function createProjectInjector(deps) {
|
|
|
86
133
|
let lastPresenceAt = 0;
|
|
87
134
|
let lastPresenceVersion = null;
|
|
88
135
|
const label = (id) => titles.get(id) ?? id.slice(0, 8);
|
|
89
|
-
const issueDigest = deps.issueDigest === void 0 ? createIssueDigest({ sessionId: deps.sessionId, timeoutMs }) : deps.issueDigest;
|
|
136
|
+
const issueDigest = deps.issueDigest === void 0 ? createIssueDigest({ sessionId: deps.sessionId, metadata: () => deps.metadata?.() ?? null, timeoutMs }) : deps.issueDigest;
|
|
90
137
|
function withTimeout(p) {
|
|
91
138
|
return Promise.race([p, new Promise((_, reject) => setTimeout(() => reject(new Error("project injection timeout")), timeoutMs).unref?.())]);
|
|
92
139
|
}
|
|
@@ -1101,7 +1148,7 @@ async function startHappyServer(client, options) {
|
|
|
1101
1148
|
}
|
|
1102
1149
|
},
|
|
1103
1150
|
changeTitle: async (title) => {
|
|
1104
|
-
logger.logger.debug(
|
|
1151
|
+
logger.logger.debug(`[happyMCP] Changing title (${title.length} chars)`);
|
|
1105
1152
|
try {
|
|
1106
1153
|
client.sendClaudeSessionMessage({
|
|
1107
1154
|
type: "summary",
|
|
@@ -1,33 +1,34 @@
|
|
|
1
|
-
import { l as logger } from './logger-
|
|
1
|
+
import { l as logger } from './logger-BEVIGYKL.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-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { homedir } from 'node:os';
|
|
3
|
+
import { P as ProjectsUnsupportedError } from './client-DfT_CRwl.mjs';
|
|
4
|
+
import { s as sharedIssuesClient, I as IssuesUnsupportedError } from './client-Cj7D61by.mjs';
|
|
5
|
+
import { r as readSessionIssueMetadata } from './sessionMetadata-C1eoAi89.mjs';
|
|
6
|
+
import { c as configuration, f as ensurePrivateDirectorySync, w as writePrivateFileSync } from './configuration-CQaLZMa-.mjs';
|
|
8
7
|
import { join, dirname } from 'node:path';
|
|
8
|
+
import { readdirSync, statSync, unlinkSync, readFileSync, constants } from 'node:fs';
|
|
9
|
+
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-CNi0Vqqm.mjs';
|
|
10
|
+
import { homedir } from 'node:os';
|
|
9
11
|
import { z } from 'zod';
|
|
10
12
|
import { p as piAgentDir } from './pi-CqyoZMjI.mjs';
|
|
11
13
|
import { unlink, mkdir, open, rename } from 'node:fs/promises';
|
|
12
14
|
import { randomUUID, createHash } from 'node:crypto';
|
|
13
|
-
import { T as TeamConnectionPreflightError, S as SessionInOtherTeamError, c as createTeamsClient, t as teamRequest } from './client-
|
|
14
|
-
import { t as teamScopePath, r as readTeamScope } from './context-
|
|
15
|
-
import { g as waitForSessionKey, e as sendUserMessage } from './sessionOps-
|
|
15
|
+
import { T as TeamConnectionPreflightError, S as SessionInOtherTeamError, c as createTeamsClient, t as teamRequest } from './client-DJsXNJWO.mjs';
|
|
16
|
+
import { t as teamScopePath, r as readTeamScope } from './context-ByTvtMXZ.mjs';
|
|
17
|
+
import { g as waitForSessionKey, e as sendUserMessage } from './sessionOps-CV5RUpwG.mjs';
|
|
16
18
|
import { T as TEAM_SKILL, a as TEAM_LEAD_PLAYBOOK } from './resources-CLP_MpK4.mjs';
|
|
17
|
-
import { T as TEAM_TOOL_NAMES, r as registerTeamsTools } from './tools-
|
|
18
|
-
import { S as SESSION_PEER_TOOL_NAMES, r as registerSessionPeerTools, a as createSessionPeerToolExecutor } from './peerTools-
|
|
19
|
+
import { T as TEAM_TOOL_NAMES, r as registerTeamsTools } from './tools-XGAJepvT.mjs';
|
|
20
|
+
import { S as SESSION_PEER_TOOL_NAMES, r as registerSessionPeerTools, a as createSessionPeerToolExecutor } from './peerTools-BkRgJomj.mjs';
|
|
19
21
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
20
22
|
import { createServer } from 'node:http';
|
|
21
23
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
22
24
|
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';
|
|
23
|
-
import { A as ASSISTANT_TOOL_NAMES, a as registerAssistantTools, c as checkDownloadTarget } from './downloadTarget-
|
|
25
|
+
import { A as ASSISTANT_TOOL_NAMES, a as registerAssistantTools, c as checkDownloadTarget } from './downloadTarget-G72yKQcM.mjs';
|
|
24
26
|
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';
|
|
25
27
|
import { n as normalizeWebPanels, w as webPanelPath } from './webPanels-B2_C2-3g.mjs';
|
|
26
|
-
import { b as readCredentialsForConfiguredRelay, r as readSettings } from './persistence-
|
|
27
|
-
import { g as getSessionNotificationBody } from './pushNotifications-
|
|
28
|
+
import { b as readCredentialsForConfiguredRelay, r as readSettings } from './persistence-EuUaQKL7.mjs';
|
|
29
|
+
import { g as getSessionNotificationBody } from './pushNotifications-B7Ga8Zyf.mjs';
|
|
28
30
|
import { c as checkPreviewPath } from './previewPath-CXN4Vag0.mjs';
|
|
29
|
-
import {
|
|
30
|
-
import { c as configuration } from './configuration-4pG95tsq.mjs';
|
|
31
|
+
import { a6 as ATTENTION_DISABLED_ERROR, a7 as ATTENTION_LIMITS, a8 as ownerBoardPostToRest, a9 as isAttentionBoardLocalId, aa as OwnerBoardPostInputSchema, ab as OwnerBoardUpdateInputSchema, ac as OwnerBoardResolveInputSchema, ad as OwnerBoardListInputSchema, ae as ATTENTION_SESSION_CAPABILITY } from './index-CiRMvS73.mjs';
|
|
31
32
|
import { createHash as createHash$1 } from 'crypto';
|
|
32
33
|
|
|
33
34
|
function buildIssueDigestLine(issue, entries) {
|
|
@@ -47,25 +48,71 @@ function buildIssueDigestLine(issue, entries) {
|
|
|
47
48
|
if (!parts.length) return null;
|
|
48
49
|
return `[Issue ${issue.key} ${parts.join("; ")}]`;
|
|
49
50
|
}
|
|
51
|
+
const SESSION_ID = /^[A-Za-z0-9_-]{1,128}$/;
|
|
52
|
+
const ISSUE_DIGEST_CURSOR_TTL_MS = 30 * 24 * 36e5;
|
|
53
|
+
function fileIssueDigestCursorStore(home, now = Date.now) {
|
|
54
|
+
const dir = join(home, "issues", "digest");
|
|
55
|
+
let pruned = false;
|
|
56
|
+
return {
|
|
57
|
+
read(sessionId) {
|
|
58
|
+
if (!SESSION_ID.test(sessionId)) return null;
|
|
59
|
+
try {
|
|
60
|
+
const asOf = JSON.parse(readFileSync(join(dir, `${sessionId}.json`), "utf8")).asOf;
|
|
61
|
+
return typeof asOf === "number" && Number.isFinite(asOf) ? asOf : null;
|
|
62
|
+
} catch {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
write(sessionId, asOf) {
|
|
67
|
+
if (!SESSION_ID.test(sessionId)) return;
|
|
68
|
+
try {
|
|
69
|
+
ensurePrivateDirectorySync(dir);
|
|
70
|
+
writePrivateFileSync(join(dir, `${sessionId}.json`), JSON.stringify({ asOf }));
|
|
71
|
+
if (!pruned) {
|
|
72
|
+
pruned = true;
|
|
73
|
+
for (const file of readdirSync(dir)) {
|
|
74
|
+
const path = join(dir, file);
|
|
75
|
+
try {
|
|
76
|
+
if (now() - statSync(path).mtimeMs > ISSUE_DIGEST_CURSOR_TTL_MS) unlinkSync(path);
|
|
77
|
+
} catch {
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
} catch (error) {
|
|
82
|
+
logger.debug(`[issues] digest cursor not saved: ${String(error)}`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
}
|
|
50
87
|
function createIssueDigest(deps) {
|
|
51
88
|
const client = deps.client ?? sharedIssuesClient();
|
|
52
|
-
const enabled = deps.enabled ?? (() => !!process.env.VH_ISSUE_ID);
|
|
89
|
+
const enabled = deps.enabled ?? (() => !!process.env.VH_ISSUE_ID || readSessionIssueMetadata(deps.metadata?.()) !== null);
|
|
53
90
|
const timeoutMs = deps.timeoutMs ?? 1500;
|
|
91
|
+
const store = deps.cursorStore === void 0 ? fileIssueDigestCursorStore(configuration.happyHomeDir) : deps.cursorStore;
|
|
54
92
|
let cursor = null;
|
|
93
|
+
let loadedFor = null;
|
|
94
|
+
const advance = (sid, asOf) => {
|
|
95
|
+
cursor = asOf;
|
|
96
|
+
store?.write(sid, asOf);
|
|
97
|
+
};
|
|
55
98
|
return {
|
|
56
99
|
cursor: () => cursor,
|
|
57
100
|
async decorate(message) {
|
|
58
101
|
const sid = deps.sessionId();
|
|
59
102
|
if (!sid || !enabled() || client.isDisabled()) return message;
|
|
103
|
+
if (loadedFor !== sid) {
|
|
104
|
+
loadedFor = sid;
|
|
105
|
+
cursor = store?.read(sid) ?? null;
|
|
106
|
+
}
|
|
60
107
|
try {
|
|
61
108
|
if (cursor === null) {
|
|
62
109
|
const ctx2 = await client.session(sid, void 0, timeoutMs);
|
|
63
|
-
if (ctx2.issue)
|
|
110
|
+
if (ctx2.issue) advance(sid, ctx2.asOf);
|
|
64
111
|
return message;
|
|
65
112
|
}
|
|
66
113
|
const ctx = await client.session(sid, cursor, timeoutMs);
|
|
67
114
|
if (!ctx.issue) return message;
|
|
68
|
-
|
|
115
|
+
advance(sid, ctx.asOf);
|
|
69
116
|
return prependToMessage(message, buildIssueDigestLine(ctx.issue, ctx.comments));
|
|
70
117
|
} catch (error) {
|
|
71
118
|
if (!(error instanceof IssuesUnsupportedError)) logger.debug(`[issues] digest skipped: ${String(error)}`);
|
|
@@ -84,7 +131,7 @@ function createProjectInjector(deps) {
|
|
|
84
131
|
let lastPresenceAt = 0;
|
|
85
132
|
let lastPresenceVersion = null;
|
|
86
133
|
const label = (id) => titles.get(id) ?? id.slice(0, 8);
|
|
87
|
-
const issueDigest = deps.issueDigest === void 0 ? createIssueDigest({ sessionId: deps.sessionId, timeoutMs }) : deps.issueDigest;
|
|
134
|
+
const issueDigest = deps.issueDigest === void 0 ? createIssueDigest({ sessionId: deps.sessionId, metadata: () => deps.metadata?.() ?? null, timeoutMs }) : deps.issueDigest;
|
|
88
135
|
function withTimeout(p) {
|
|
89
136
|
return Promise.race([p, new Promise((_, reject) => setTimeout(() => reject(new Error("project injection timeout")), timeoutMs).unref?.())]);
|
|
90
137
|
}
|
|
@@ -1099,7 +1146,7 @@ async function startHappyServer(client, options) {
|
|
|
1099
1146
|
}
|
|
1100
1147
|
},
|
|
1101
1148
|
changeTitle: async (title) => {
|
|
1102
|
-
logger.debug(
|
|
1149
|
+
logger.debug(`[happyMCP] Changing title (${title.length} chars)`);
|
|
1103
1150
|
try {
|
|
1104
1151
|
client.sendClaudeSessionMessage({
|
|
1105
1152
|
type: "summary",
|
|
@@ -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-DZUnfWp2.cjs');
|
|
5
|
+
var persistence = require('./persistence-05BAS4Ou.cjs');
|
|
6
|
+
var controlClient = require('./controlClient-Bfwe0Xpt.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-CAmlKYcH.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-DkjCRPYn.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-DnxSf1ox.cjs'); });
|
|
317
|
+
const { describeAgentHome } = await Promise.resolve().then(function () { return require('./index-DDOCSeEj.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-CQaLZMa-.mjs';
|
|
3
|
+
import { r as readSettings, g as readCredentials, d as readDaemonState } from './persistence-EuUaQKL7.mjs';
|
|
4
|
+
import { a as checkIfDaemonRunningAndCleanupStaleState } from './controlClient-Cqhd8ynk.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-aOUtHYRZ.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-CygWrAwY.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-BXiCouR4.mjs');
|
|
315
|
+
const { describeAgentHome } = await import('./index-fNsf-8K-.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-Dhc0l3xH.cjs');
|
|
7
|
+
var persistence = require('./persistence-05BAS4Ou.cjs');
|
|
8
|
+
var controlClient = require('./controlClient-Bfwe0Xpt.cjs');
|
|
9
|
+
var sessionOps = require('./sessionOps-CvmOHwGP.cjs');
|
|
10
|
+
var remoteSessionClient = require('./remoteSessionClient-BLWFXMBo.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-CsZO_jkL.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-BEVIGYKL.mjs';
|
|
5
|
+
import { c as readPersistedSessions } from './persistence-EuUaQKL7.mjs';
|
|
6
|
+
import { e as spawnDaemonSession } from './controlClient-Cqhd8ynk.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-CV5RUpwG.mjs';
|
|
8
|
+
import { r as readRemoteTranscript, s as sendRemoteMessage, d as deliverToSession, R as RemoteSessionOpsError } from './remoteSessionClient-CzjLyL9c.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-BTYJf2w8.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-BEVIGYKL.mjs';
|
|
2
|
+
import { i as isDaemonRunningCurrentlyInstalledHappyVersion, a as checkIfDaemonRunningAndCleanupStaleState, s as stopDaemon } from './controlClient-Cqhd8ynk.mjs';
|
|
3
|
+
import { s as spawnHappyCLI } from './spawnHappyCLI-BckHSjR0.mjs';
|
|
4
|
+
import { d as readDaemonState } from './persistence-EuUaQKL7.mjs';
|
|
5
|
+
import { c as configuration } from './configuration-CQaLZMa-.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-Dhc0l3xH.cjs');
|
|
4
|
+
var controlClient = require('./controlClient-Bfwe0Xpt.cjs');
|
|
5
|
+
var spawnHappyCLI = require('./spawnHappyCLI-CeWgULMt.cjs');
|
|
6
|
+
var persistence = require('./persistence-05BAS4Ou.cjs');
|
|
7
|
+
var configuration = require('./configuration-DZUnfWp2.cjs');
|
|
8
8
|
var doctorReadiness = require('./doctorReadiness-Dl6yRQCy.cjs');
|
|
9
9
|
|
|
10
10
|
function extractNoSandboxFlag(args) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { I as IssuesUnsupportedError, a as IssueRequestError } from './client-
|
|
1
|
+
import { I as IssuesUnsupportedError, a as IssueRequestError } from './client-Cj7D61by.mjs';
|
|
2
2
|
|
|
3
3
|
const MESSAGES = {
|
|
4
4
|
issue_status_forbidden: "Agents may only set in_progress, in_review or blocked. Only the owner sets done or cancelled; move it to in_review with a summary instead.",
|
|
@@ -8,6 +8,7 @@ const MESSAGES = {
|
|
|
8
8
|
issue_run_not_current: "This issue has moved to a newer run; stop changing it.",
|
|
9
9
|
issue_comment_quota_exceeded: "Too many issue comments from this run in the last hour; wait before commenting again.",
|
|
10
10
|
issue_not_found: "No such issue (it may have been deleted).",
|
|
11
|
+
issue_todo_deleted: "This todo id belongs to a deleted todo and cannot be reused; add with a new UUID.",
|
|
11
12
|
issue_version_conflict: "The issue changed since you read it; read it again before deciding what to change.",
|
|
12
13
|
issue_assignee_unsupported: "That assignee is not supported.",
|
|
13
14
|
issue_agent_unsupported: "That agent cannot be assigned an issue (Claude, Codex or pi only).",
|