very-happy-cli 0.2.159 → 0.2.160

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/dist/{AcpBackend-DUYFlyfN.cjs → AcpBackend-Bm2rdke8.cjs} +78 -76
  2. package/dist/{AcpBackend-VsfkZiVF.mjs → AcpBackend-mzv8Dhba.mjs} +4 -2
  3. package/dist/{AcpSessionManager-Bdv8LWXh.cjs → AcpSessionManager-BAY1Pggx.cjs} +9 -9
  4. package/dist/{AcpSessionManager-rYtVb0kN.mjs → AcpSessionManager-CoMWFVw3.mjs} +1 -1
  5. package/dist/BasePermissionHandler-CFHAxumV.cjs +157 -0
  6. package/dist/BasePermissionHandler-m3WVholL.mjs +155 -0
  7. package/dist/BaseReasoningProcessor-BFa9_rZA.cjs +200 -0
  8. package/dist/BaseReasoningProcessor-CYrKBXGm.mjs +198 -0
  9. package/dist/RemoteModeDisplay-D-HewyXg.mjs +150 -0
  10. package/dist/RemoteModeDisplay-NC1gPHtj.cjs +153 -0
  11. package/dist/agentAttachments-Dbw8iMCZ.cjs +20 -0
  12. package/dist/agentAttachments-M_B5qEF2.mjs +18 -0
  13. package/dist/agentGuidance-B5NATuFa.cjs +28 -0
  14. package/dist/agentGuidance-CQuNlNx8.mjs +20 -0
  15. package/dist/{agentHome-CHh4lmjM.cjs → agentHome-CboCeKWq.cjs} +14 -28
  16. package/dist/{agentHome-CvsJyeQB.mjs → agentHome-Dj1C43aJ.mjs} +8 -22
  17. package/dist/api-CLMUr-SX.mjs +3339 -0
  18. package/dist/api-CgundNNX.cjs +3346 -0
  19. package/dist/{types-Dh-s4Lqs.mjs → apiMachine-B9dLW_p5.mjs} +9116 -16205
  20. package/dist/{types-BbvK1Tr_.cjs → apiMachine-Bn8482VM.cjs} +9104 -16247
  21. package/dist/assistantTools-BTqPnlFl.cjs +380 -0
  22. package/dist/assistantTools-D6tuc6o4.mjs +376 -0
  23. package/dist/attachmentContent-DpiTJZb4.cjs +88 -0
  24. package/dist/attachmentContent-_kxRznNf.mjs +82 -0
  25. package/dist/attachmentLimits-CzVrqgLR.cjs +354 -0
  26. package/dist/attachmentLimits-yba1uHFO.mjs +348 -0
  27. package/dist/auth-BDOVh5h5.cjs +220 -0
  28. package/dist/auth-Cwutmdsa.mjs +225 -0
  29. package/dist/auth-PYHZQNPp.mjs +218 -0
  30. package/dist/auth-ba4WMYrN.cjs +227 -0
  31. package/dist/authRelay-BdYkC1Po.cjs +156 -0
  32. package/dist/authRelay-DSAvg1uv.mjs +143 -0
  33. package/dist/{auto-DKmEls8Z.cjs → auto-BOX_fgmR.cjs} +70 -79
  34. package/dist/{auto-nb8GhRRy.mjs → auto-BXu14yP_.mjs} +27 -36
  35. package/dist/backgroundTaskActivity-8PdPxrvy.mjs +149 -0
  36. package/dist/backgroundTaskActivity-CBvUdj39.cjs +157 -0
  37. package/dist/bootstrap-B5G1TijC.cjs +116 -0
  38. package/dist/bootstrap-hxXPCFMx.mjs +112 -0
  39. package/dist/browser-Y6Bl8L_O.cjs +22 -0
  40. package/dist/browser-jh2P0UVZ.mjs +20 -0
  41. package/dist/claudeCliPath-BqkaH2oR.mjs +8 -0
  42. package/dist/claudeCliPath-U4HHmV4r.cjs +10 -0
  43. package/dist/claudeLocal-BaY4fZKi.mjs +339 -0
  44. package/dist/claudeLocal-CRGG4Pea.cjs +343 -0
  45. package/dist/claudeLocalLauncher-D4T7MTqd.mjs +152 -0
  46. package/dist/claudeLocalLauncher-DyEbVzUN.cjs +154 -0
  47. package/dist/cliUpdate-DsKXPFYp.cjs +120 -0
  48. package/dist/cliUpdate-Y34VGe9Y.mjs +112 -0
  49. package/dist/client-3Ac-O4pw.cjs +104 -0
  50. package/dist/client-BPNbmtvO.cjs +119 -0
  51. package/dist/client-CeGKqqcJ.mjs +100 -0
  52. package/dist/client-ClR0K8zX.mjs +112 -0
  53. package/dist/codex/happyMcpStdioBridge.cjs +33 -14
  54. package/dist/codex/happyMcpStdioBridge.mjs +26 -7
  55. package/dist/codexAppServerClient-I3teiV-N.mjs +1088 -0
  56. package/dist/codexAppServerClient-q2FjnRcK.cjs +1090 -0
  57. package/dist/codexCommand-4zcccIoq.cjs +2088 -0
  58. package/dist/codexCommand-Cc9gcbdX.mjs +2086 -0
  59. package/dist/codexThreadFork-BH9IZPqD.cjs +350 -0
  60. package/dist/codexThreadFork-slzAseLx.mjs +338 -0
  61. package/dist/{config-ClLtM6F3.mjs → config-CTx_jb-C.mjs} +7 -40
  62. package/dist/{config-DLx-vW3I.cjs → config-Ci9Kpgwa.cjs} +26 -59
  63. package/dist/configuration-BSYpcPwE.cjs +181 -0
  64. package/dist/configuration-RfeNjFmd.mjs +170 -0
  65. package/dist/connect-BpOdzNbE.mjs +682 -0
  66. package/dist/connect-C2CiOUFs.cjs +684 -0
  67. package/dist/constants-BC4St0xd.mjs +11 -0
  68. package/dist/constants-VJ0N6WuG.cjs +17 -0
  69. package/dist/contentLogMetadata-BlWI0egu.mjs +51 -0
  70. package/dist/contentLogMetadata-ZSFk_NjQ.cjs +54 -0
  71. package/dist/context-DsDr6E2t.cjs +69 -0
  72. package/dist/context-H0Bcb9S_.mjs +65 -0
  73. package/dist/controlClient-BGbDcgWS.mjs +260 -0
  74. package/dist/controlClient-Bcwv3D21.cjs +279 -0
  75. package/dist/createSessionMetadata-BJxEnM-o.cjs +58 -0
  76. package/dist/createSessionMetadata-CVVkGjxV.mjs +54 -0
  77. package/dist/defaultPermissionMode-BnxJPVHT.mjs +4 -0
  78. package/dist/defaultPermissionMode-CxmTXUQR.cjs +7 -0
  79. package/dist/detectCLI-CSGMlV51.mjs +58 -0
  80. package/dist/detectCLI-DR9ZaN6B.cjs +61 -0
  81. package/dist/deterministicJson-C5CYTVpm.cjs +507 -0
  82. package/dist/deterministicJson-CzkFJWw1.mjs +502 -0
  83. package/dist/doctor-BPkYWSuq.mjs +75 -0
  84. package/dist/doctor-D2YJ-Yn2.cjs +395 -0
  85. package/dist/doctor-DOvByjbk.mjs +391 -0
  86. package/dist/doctor-u46qYYKX.cjs +79 -0
  87. package/dist/doctorReadiness-BCZGcN0a.cjs +151 -0
  88. package/dist/doctorReadiness-C208SMN9.mjs +142 -0
  89. package/dist/editPaths-BVfS_FFL.mjs +68 -0
  90. package/dist/editPaths-Bqp4OFPw.cjs +73 -0
  91. package/dist/ensureDaemonRunning-BCwNrMyv.cjs +64 -0
  92. package/dist/ensureDaemonRunning-Dqa2pOjY.mjs +61 -0
  93. package/dist/handleResumeCommand-BvXYf5El.mjs +240 -0
  94. package/dist/handleResumeCommand-C2cKchpX.cjs +245 -0
  95. package/dist/ids-B6ZC0HGt.cjs +13 -0
  96. package/dist/ids-DU6sLx4C.mjs +10 -0
  97. package/dist/index-B6UGRQ7h.mjs +102 -0
  98. package/dist/{index-BEOMECtE.cjs → index-B6pAdvJx.cjs} +121 -91
  99. package/dist/index-Bu5Zi_a9.cjs +182 -0
  100. package/dist/index-D3kI0hDR.cjs +107 -0
  101. package/dist/index-DA7yINuk.cjs +994 -0
  102. package/dist/index-DDeHXrIX.cjs +71 -0
  103. package/dist/index-DKLU_fD0.mjs +158 -0
  104. package/dist/{index-2mCaeKyf.mjs → index-DMZqWwsP.mjs} +68 -38
  105. package/dist/index-DVkMGPyS.mjs +68 -0
  106. package/dist/index-qdS1friN.mjs +949 -0
  107. package/dist/index.cjs +5 -46
  108. package/dist/index.mjs +5 -46
  109. package/dist/{install-BPhJppvd.mjs → install-BO_W7VhL.mjs} +37 -37
  110. package/dist/install-BgoC2e_2.cjs +88 -0
  111. package/dist/install-CFY3tYtJ.mjs +86 -0
  112. package/dist/{install-BOHrUaFM.cjs → install-Cs5qAPrB.cjs} +38 -38
  113. package/dist/{installPiTools-DuZ6jZvX.cjs → installPiTools-BKnXjrVu.cjs} +2 -3
  114. package/dist/{installPiTools-Cj7yU9Fc.mjs → installPiTools-B_CdM5_2.mjs} +1 -2
  115. package/dist/{installTerminalHooks-Cou3WUf3.cjs → installTerminalHooks-BQZbvxsZ.cjs} +5 -40
  116. package/dist/{installTerminalHooks-WeznjkuC.mjs → installTerminalHooks-By7gBMEF.mjs} +3 -38
  117. package/dist/lib.cjs +28 -19
  118. package/dist/lib.d.cts +12 -2
  119. package/dist/lib.d.mts +12 -2
  120. package/dist/lib.mjs +23 -14
  121. package/dist/lidState-BeDfxxEX.cjs +305 -0
  122. package/dist/lidState-CeEt442o.mjs +297 -0
  123. package/dist/limits-C-a7gr04.cjs +43 -0
  124. package/dist/limits-DIo7rEBR.mjs +36 -0
  125. package/dist/localHappyAgentAuth-C-HQyiv6.mjs +82 -0
  126. package/dist/localHappyAgentAuth-D6rFhaoc.cjs +86 -0
  127. package/dist/logger-6HYUEXNk.mjs +271 -0
  128. package/dist/logger-CS0mw3fa.cjs +275 -0
  129. package/dist/loginShellEnv-BkuYtExZ.cjs +182 -0
  130. package/dist/loginShellEnv-Dw8M7tkI.mjs +167 -0
  131. package/dist/machineMetadata-DyDbODYd.cjs +41 -0
  132. package/dist/machineMetadata-oOzBfDfs.mjs +38 -0
  133. package/dist/main-BkxJP6JQ.cjs +941 -0
  134. package/dist/main-BwNIAI1A.mjs +939 -0
  135. package/dist/manager-BQ4flvQZ.mjs +101 -0
  136. package/dist/manager-Cly8xVIR.cjs +105 -0
  137. package/dist/{mcp-Dy3f_K0h.mjs → mcp-B1A4I3TK.mjs} +27 -33
  138. package/dist/{mcp-CPYbtsYG.cjs → mcp-Hszd7qpS.cjs} +42 -48
  139. package/dist/messageBuffer-BWlGgR3A.mjs +71 -0
  140. package/dist/messageBuffer-fJMH6uY8.cjs +73 -0
  141. package/dist/mirrorProtocol-BNLtoWjO.mjs +170 -0
  142. package/dist/mirrorProtocol-BUtmg1ws.cjs +186 -0
  143. package/dist/oneShotPrompts-CL0dip9C.cjs +16 -0
  144. package/dist/oneShotPrompts-DT4p6RNd.mjs +12 -0
  145. package/dist/package-BhaKlnxz.mjs +171 -0
  146. package/dist/package-BwMrPwqH.cjs +173 -0
  147. package/dist/path-B7zW-WwE.cjs +18 -0
  148. package/dist/path-D2wdaNSk.mjs +15 -0
  149. package/dist/peerTools-BTqw97Gb.mjs +272 -0
  150. package/dist/peerTools-BvKtHXj8.cjs +283 -0
  151. package/dist/permissionMode-Cr5JCbB7.mjs +80 -0
  152. package/dist/permissionMode-CrV-XuMs.cjs +87 -0
  153. package/dist/persistence-HGW_ZVs9.mjs +372 -0
  154. package/dist/persistence-yKTH3-5X.cjs +414 -0
  155. package/dist/piExtension.mjs +2 -1
  156. package/dist/piRunnerArgs-BNloJCCg.cjs +66 -0
  157. package/dist/piRunnerArgs-BuX1UFWy.mjs +59 -0
  158. package/dist/{piRuntime-kLZNpAAl.mjs → piRuntime-CSGkwCKQ.mjs} +2 -2
  159. package/dist/{piRuntime-NtF0YqjH.cjs → piRuntime-C_H7MJCM.cjs} +4 -4
  160. package/dist/{piTerminal-B0fEOV_2.mjs → piTerminal-C8a1OrNQ.mjs} +32 -35
  161. package/dist/{piTerminal-9J0GAKzb.cjs → piTerminal-DNCZ6yTM.cjs} +32 -35
  162. package/dist/previewPath-B0rBdhy1.cjs +83 -0
  163. package/dist/previewPath-CXN4Vag0.mjs +81 -0
  164. package/dist/projectPath-BTBIMB57.mjs +10 -0
  165. package/dist/projectPath-ChLhdOyt.cjs +13 -0
  166. package/dist/registerCommonHandlers-Ccvsz7Ou.mjs +536 -0
  167. package/dist/registerCommonHandlers-DskirN-_.cjs +538 -0
  168. package/dist/registerKillSessionHandler-DZeLXWcB.cjs +361 -0
  169. package/dist/registerKillSessionHandler-GYvHdipX.mjs +358 -0
  170. package/dist/remoteSessionClient-B0LraSB9.cjs +634 -0
  171. package/dist/remoteSessionClient-CYnXRynE.mjs +612 -0
  172. package/dist/resources-BdFBQi8r.mjs +117 -0
  173. package/dist/resources-JDPugcDq.cjs +120 -0
  174. package/dist/run-CJzxoHVh.cjs +5762 -0
  175. package/dist/run-D3ifupU3.mjs +5739 -0
  176. package/dist/runClaude-Ba01qT-u.mjs +848 -0
  177. package/dist/runClaude-Da3RirzE.cjs +850 -0
  178. package/dist/runClaudeDeps-DOt79DjU.mjs +3624 -0
  179. package/dist/runClaudeDeps-DOzEBMls.cjs +3649 -0
  180. package/dist/{runGemini-DV6Ouadt.mjs → runGemini-BGeTz57m.mjs} +58 -31
  181. package/dist/{runGemini-F-mqx3_K.cjs → runGemini-DSr9LIxL.cjs} +202 -175
  182. package/dist/{runOpenClaw-Qqo9j63M.cjs → runOpenClaw-B1mTxN35.cjs} +64 -65
  183. package/dist/{runOpenClaw-D7MlPS5n.mjs → runOpenClaw-CogSedIc.mjs} +31 -32
  184. package/dist/sandbox-CG7IyDTU.cjs +187 -0
  185. package/dist/sandbox-DTe6d54R.mjs +180 -0
  186. package/dist/selfCheck-C9mVrQwf.mjs +84 -0
  187. package/dist/selfCheck-Dc-mNSLb.cjs +87 -0
  188. package/dist/{send-4qJTCAYW.cjs → send-B7J_eaG3.cjs} +16 -9
  189. package/dist/{send-CLhYXNgy.mjs → send-CBXJKc6O.mjs} +12 -5
  190. package/dist/server-CZTP_iOn.cjs +407 -0
  191. package/dist/server-DcVBv04l.mjs +404 -0
  192. package/dist/sessionLock-Bys1PNSo.cjs +205 -0
  193. package/dist/sessionLock-D-EG2CfG.mjs +197 -0
  194. package/dist/sessionModeFile-DMl3dw3r.mjs +32 -0
  195. package/dist/sessionModeFile-RSm0NQkH.cjs +36 -0
  196. package/dist/sessionOps-Dn8z85h_.cjs +783 -0
  197. package/dist/sessionOps-SuHW8Dfe.mjs +760 -0
  198. package/dist/sessionScanner-BOrGjMXL.cjs +209 -0
  199. package/dist/sessionScanner-CX3onqXh.mjs +206 -0
  200. package/dist/{sessions-CzIH2rGp.mjs → sessions-BEG_HTSi.mjs} +17 -8
  201. package/dist/{sessions-Bh1pyddi.cjs → sessions-D74aJbhL.cjs} +37 -28
  202. package/dist/setupOfflineReconnection-ByElY60m.cjs +74 -0
  203. package/dist/setupOfflineReconnection-DpvWTt69.mjs +72 -0
  204. package/dist/smallFastModel-BLNgMrwR.mjs +18 -0
  205. package/dist/smallFastModel-D_uxGMo3.cjs +21 -0
  206. package/dist/{spawn-CPIWlPOM.mjs → spawn-B7yro0b2.mjs} +26 -38
  207. package/dist/{spawn-CmFOSVdW.cjs → spawn-DgR0RKRs.cjs} +52 -64
  208. package/dist/spawnAgents-BGQiEF-w.cjs +52 -0
  209. package/dist/spawnAgents-DZzZ9jMI.mjs +45 -0
  210. package/dist/spawnHappyCLI-B2H5s4B_.mjs +64 -0
  211. package/dist/spawnHappyCLI-DBhwZT7O.cjs +66 -0
  212. package/dist/specialCommands-BSqhYg5X.mjs +52 -0
  213. package/dist/specialCommands-DSsTeRej.cjs +54 -0
  214. package/dist/startFileWatcher-B4VsLgjD.cjs +71 -0
  215. package/dist/startFileWatcher-DErVWZE4.mjs +69 -0
  216. package/dist/startupPlan-BLMbfQIH.cjs +12 -0
  217. package/dist/startupPlan-DFMyNgAs.mjs +10 -0
  218. package/dist/streamRelay-BiKw59Cc.cjs +233 -0
  219. package/dist/streamRelay-FPVbHpbM.mjs +231 -0
  220. package/dist/sync-C8gyQFMc.mjs +69 -0
  221. package/dist/sync-DccIKZ5_.cjs +71 -0
  222. package/dist/systemPrompt-BwTPWfMu.cjs +97 -0
  223. package/dist/systemPrompt-DX521JJz.mjs +94 -0
  224. package/dist/{teams-CEahj4cm.mjs → teams-C32F1hqd.mjs} +9 -40
  225. package/dist/{teams-CB1R9-Z9.cjs → teams-Dl8g8kTI.cjs} +14 -45
  226. package/dist/template-BaHAmH2K.cjs +129 -0
  227. package/dist/template-CiOPa2rd.mjs +121 -0
  228. package/dist/{terminalTitleSuggest-DKgX3osW.mjs → terminalTitleSuggest-CeKsX_V6.mjs} +1 -9
  229. package/dist/{terminalTitleSuggest-Dji8I0Jy.cjs → terminalTitleSuggest-DhvRFX3H.cjs} +0 -10
  230. package/dist/terminals-B_bfC9c2.cjs +250 -0
  231. package/dist/terminals-Dlg0x3nY.mjs +235 -0
  232. package/dist/time-D0XyHOid.mjs +38 -0
  233. package/dist/time-DCuTyook.cjs +42 -0
  234. package/dist/titleGenerator-CQ8CoGhg.mjs +166 -0
  235. package/dist/titleGenerator-ChzMJsyg.cjs +172 -0
  236. package/dist/tmuxSocket-B8Yx20sT.mjs +19 -0
  237. package/dist/tmuxSocket-D-Xt6Vn-.cjs +24 -0
  238. package/dist/{todo-DqyRI4wP.cjs → todo-BvUOTa8G.cjs} +15 -12
  239. package/dist/{todo-Cknp5D4U.mjs → todo-CZ6cFrrn.mjs} +11 -8
  240. package/dist/tools-BZtHF_qQ.mjs +177 -0
  241. package/dist/tools-Be3AoAwu.cjs +63 -0
  242. package/dist/tools-DQj0AeLk.cjs +180 -0
  243. package/dist/tools-DkluDcG4.mjs +60 -0
  244. package/dist/trimIdent-4gvk9Wk6.cjs +22 -0
  245. package/dist/trimIdent-BAjmv_TG.mjs +20 -0
  246. package/dist/types-CRS-srZK.cjs +66 -0
  247. package/dist/types-CkqAACXx.mjs +64 -0
  248. package/dist/uninstall-BkLzaJ6I.mjs +47 -0
  249. package/dist/uninstall-x-TUtf5H.cjs +49 -0
  250. package/package.json +7 -7
  251. package/dist/agentGuidance-BRDN1NoZ.cjs +0 -2217
  252. package/dist/agentGuidance-KgvYuF3R.mjs +0 -2145
  253. package/dist/index-BF6WfgV5.mjs +0 -19624
  254. package/dist/index-C-JazrMB.mjs +0 -52
  255. package/dist/index-blDSadUR.cjs +0 -58
  256. package/dist/index-rH3DrQ5B.cjs +0 -19688
  257. package/dist/limits-BH5CV5vR.cjs +0 -2683
  258. package/dist/limits-CjRj8IX5.mjs +0 -2558
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ var _package = require('./package-BwMrPwqH.cjs');
4
+ var module$1 = require('node:module');
5
+ var node_fs = require('node:fs');
6
+ var promises = require('node:fs/promises');
7
+ var os = require('node:os');
8
+ var path = require('node:path');
9
+
10
+ function isStandaloneVersionRequest(args) {
11
+ return args.length === 1 && args[0] === "--version";
12
+ }
13
+ const SELF_CHECK_FLAG = "--self-check";
14
+ function isSelfCheckRequest(args) {
15
+ return args.length === 1 && args[0] === SELF_CHECK_FLAG;
16
+ }
17
+
18
+ function happyHomeDirFromEnv(env, home = os.homedir()) {
19
+ return env.HAPPY_HOME_DIR ? env.HAPPY_HOME_DIR.replace(/^~/, home) : path.join(home, ".happy");
20
+ }
21
+ function compileCacheRoot(happyHomeDir) {
22
+ return path.join(happyHomeDir, "cache", "compile");
23
+ }
24
+ function compileCacheDir(happyHomeDir, cliVersion) {
25
+ return path.join(compileCacheRoot(happyHomeDir), cliVersion.replace(/[^\w.+-]/g, "_"));
26
+ }
27
+ function enableCompileCacheIfPossible(cliVersion, env = process.env) {
28
+ try {
29
+ const enable = module$1.enableCompileCache;
30
+ if (typeof enable !== "function") return;
31
+ const happyHome = happyHomeDirFromEnv(env);
32
+ if (!node_fs.existsSync(happyHome)) return;
33
+ enable(compileCacheDir(happyHome, cliVersion));
34
+ } catch {
35
+ }
36
+ }
37
+ async function pruneStaleCompileCaches(happyHomeDir, cliVersion) {
38
+ const root = compileCacheRoot(happyHomeDir);
39
+ const keep = compileCacheDir(happyHomeDir, cliVersion);
40
+ const removed = [];
41
+ let entries;
42
+ try {
43
+ entries = await promises.readdir(root);
44
+ } catch {
45
+ return removed;
46
+ }
47
+ for (const name of entries) {
48
+ const dir = path.join(root, name);
49
+ if (dir === keep) continue;
50
+ try {
51
+ await promises.rm(dir, { recursive: true, force: true });
52
+ removed.push(name);
53
+ } catch {
54
+ }
55
+ }
56
+ return removed;
57
+ }
58
+
59
+ async function run(args) {
60
+ enableCompileCacheIfPossible(_package.packageJson.version);
61
+ if (isStandaloneVersionRequest(args) || isSelfCheckRequest(args)) {
62
+ const { selfCheckMain } = await Promise.resolve().then(function () { return require('./selfCheck-Dc-mNSLb.cjs'); });
63
+ process.exit(await selfCheckMain({ verbose: isSelfCheckRequest(args) }));
64
+ }
65
+ const { main } = await Promise.resolve().then(function () { return require('./main-BkxJP6JQ.cjs'); });
66
+ await main();
67
+ }
68
+ void run(process.argv.slice(2));
69
+
70
+ exports.isStandaloneVersionRequest = isStandaloneVersionRequest;
71
+ exports.pruneStaleCompileCaches = pruneStaleCompileCaches;
@@ -0,0 +1,158 @@
1
+ import { statSync, readdirSync } from 'node:fs';
2
+ import { homedir } from 'node:os';
3
+ import { l as logger } from './logger-6HYUEXNk.mjs';
4
+ import { readSettings } from './persistence-HGW_ZVs9.mjs';
5
+ import { d as describeAgentHome, C as CLAUDE_CONFIG_DIR_ENV, a as CODEX_HOME_ENV, f as findClaudeConversation, b as agentHomeCandidates, c as findCodexThread, r as resolveAgentHomes, A as AGENT_HOME_ENV_NAMES, g as agentHomeEnv, p as probeLoginShellEnv } from './loginShellEnv-Dw8M7tkI.mjs';
6
+ export { h as claudeConversationPath, i as claudeProjectDirName, j as codexRolloutFileMatches, e as expandHomePath } from './loginShellEnv-Dw8M7tkI.mjs';
7
+ import 'chalk';
8
+ import 'node:util';
9
+ import './configuration-RfeNjFmd.mjs';
10
+ import 'node:path';
11
+ import './package-BhaKlnxz.mjs';
12
+ import 'node:fs/promises';
13
+ import 'zod';
14
+ import './authRelay-DSAvg1uv.mjs';
15
+ import 'node:crypto';
16
+ import 'tweetnacl';
17
+ import 'node:child_process';
18
+
19
+ const AGENT_HOME_CACHE_MS = 6e4;
20
+ const AGENT_HOME_FAILURE_CACHE_MS = 5 * 6e4;
21
+ const AGENT_HOME_MAX_STALE_MS = 10 * 6e4;
22
+ function decideShellProbe(entry, now, allowStale) {
23
+ if (!entry) return "await-probe";
24
+ const age = now - entry.probedAt;
25
+ if (age < entry.ttlMs) return "use-cached";
26
+ if (allowStale && age < AGENT_HOME_MAX_STALE_MS) return "use-stale-and-revalidate";
27
+ return "await-probe";
28
+ }
29
+ let shellProbe = null;
30
+ let shellProbeInFlight = null;
31
+ let last = null;
32
+ let originalDaemonEnv = null;
33
+ function snapshotDaemonEnv() {
34
+ if (!originalDaemonEnv) {
35
+ originalDaemonEnv = {};
36
+ for (const name of AGENT_HOME_ENV_NAMES) originalDaemonEnv[name] = process.env[name];
37
+ }
38
+ return originalDaemonEnv;
39
+ }
40
+ function probeShell(now) {
41
+ if (!shellProbeInFlight) {
42
+ const run = probeLoginShellEnv(AGENT_HOME_ENV_NAMES).then((env) => {
43
+ const entry = { env, probedAt: now, ttlMs: env ? AGENT_HOME_CACHE_MS : AGENT_HOME_FAILURE_CACHE_MS };
44
+ shellProbe = entry;
45
+ return entry;
46
+ });
47
+ shellProbeInFlight = run;
48
+ void run.finally(() => {
49
+ if (shellProbeInFlight === run) shellProbeInFlight = null;
50
+ }).catch(() => {
51
+ });
52
+ }
53
+ return shellProbeInFlight;
54
+ }
55
+ async function loginShellEnvFor(now, allowStale) {
56
+ const decision = decideShellProbe(shellProbe, now, allowStale);
57
+ if (decision === "await-probe") return (await probeShell(now)).env;
58
+ if (decision === "use-stale-and-revalidate") {
59
+ probeShell(now).catch((error) => logger.debug("[AGENT HOME] background login-shell probe failed", error));
60
+ }
61
+ return shellProbe.env;
62
+ }
63
+ async function refreshAgentHomes(now = Date.now(), opts = {}) {
64
+ let input;
65
+ let homes;
66
+ try {
67
+ const loginShellEnv = await loginShellEnvFor(now, opts.allowStale === true);
68
+ const settings = await readSettings();
69
+ input = {
70
+ settings: { claudeConfigDir: settings.claudeConfigDir, codexHome: settings.codexHome },
71
+ daemonEnv: snapshotDaemonEnv(),
72
+ loginShellEnv,
73
+ homeDir: homedir()
74
+ };
75
+ homes = resolveAgentHomes(input);
76
+ } catch (error) {
77
+ logger.debug("[AGENT HOME] resolve failed, falling back", error);
78
+ if (last) return last.homes;
79
+ return resolveAgentHomes({ settings: {}, daemonEnv: snapshotDaemonEnv(), loginShellEnv: null, homeDir: homedir() });
80
+ }
81
+ const previous = last?.homes;
82
+ last = { input, homes };
83
+ applyAgentHomesToProcessEnv(homes);
84
+ if (!previous || previous.claudeConfigDir.path !== homes.claudeConfigDir.path || previous.codexHome.path !== homes.codexHome.path) {
85
+ logger.debug(`[AGENT HOME] Claude config dir: ${describeAgentHome(homes.claudeConfigDir)}; Codex home: ${describeAgentHome(homes.codexHome)}`);
86
+ }
87
+ return homes;
88
+ }
89
+ function currentAgentHomes() {
90
+ return last?.homes ?? null;
91
+ }
92
+ function resetAgentHomesCache() {
93
+ shellProbe = null;
94
+ shellProbeInFlight = null;
95
+ last = null;
96
+ originalDaemonEnv = null;
97
+ }
98
+ function applyAgentHomesToProcessEnv(homes) {
99
+ const overlay = agentHomeEnv(homes);
100
+ for (const name of AGENT_HOME_ENV_NAMES) {
101
+ const next = overlay[name];
102
+ if (next === void 0) {
103
+ const original = snapshotDaemonEnv()[name];
104
+ if (original === void 0) delete process.env[name];
105
+ else process.env[name] = original;
106
+ } else if (process.env[name] !== next) {
107
+ process.env[name] = next;
108
+ }
109
+ }
110
+ }
111
+ function listDirSafe(path) {
112
+ try {
113
+ return readdirSync(path);
114
+ } catch {
115
+ return [];
116
+ }
117
+ }
118
+ function fileSizeSafe(path) {
119
+ try {
120
+ const st = statSync(path);
121
+ return st.isFile() ? st.size : null;
122
+ } catch {
123
+ return null;
124
+ }
125
+ }
126
+ function locateClaudeConversation(workingDirectory, claudeSessionId) {
127
+ const entry = last;
128
+ if (!entry) {
129
+ const input = { settings: {}, daemonEnv: process.env, loginShellEnv: null, homeDir: homedir() };
130
+ return findClaudeConversation(claudeSessionId, workingDirectory, agentHomeCandidates("claude", input), fileSizeSafe);
131
+ }
132
+ return findClaudeConversation(claudeSessionId, workingDirectory, agentHomeCandidates("claude", entry.input, entry.homes), fileSizeSafe);
133
+ }
134
+ function locateCodexThread(codexThreadId) {
135
+ const entry = last;
136
+ const input = entry?.input ?? { settings: {}, daemonEnv: process.env, loginShellEnv: null, homeDir: homedir() };
137
+ return findCodexThread(codexThreadId, agentHomeCandidates("codex", input, entry?.homes), listDirSafe);
138
+ }
139
+ function agentHomeSpawnEnv(input) {
140
+ const env = {};
141
+ if (input.claudeSessionId) {
142
+ const hit = locateClaudeConversation(input.workingDirectory, input.claudeSessionId);
143
+ if (hit && !hit.resolved) {
144
+ env[CLAUDE_CONFIG_DIR_ENV] = hit.home;
145
+ logger.debug(`[AGENT HOME] Claude conversation ${input.claudeSessionId} found under ${hit.home}; overriding ${CLAUDE_CONFIG_DIR_ENV} for this spawn`);
146
+ }
147
+ }
148
+ if (input.codexThreadId) {
149
+ const hit = locateCodexThread(input.codexThreadId);
150
+ if (hit && !hit.resolved) {
151
+ env[CODEX_HOME_ENV] = hit.home;
152
+ logger.debug(`[AGENT HOME] Codex thread ${input.codexThreadId} found under ${hit.home}; overriding ${CODEX_HOME_ENV} for this spawn`);
153
+ }
154
+ }
155
+ return env;
156
+ }
157
+
158
+ export { AGENT_HOME_CACHE_MS, AGENT_HOME_ENV_NAMES, AGENT_HOME_FAILURE_CACHE_MS, AGENT_HOME_MAX_STALE_MS, CLAUDE_CONFIG_DIR_ENV, CODEX_HOME_ENV, agentHomeCandidates, agentHomeEnv, agentHomeSpawnEnv, currentAgentHomes, decideShellProbe, describeAgentHome, findClaudeConversation, findCodexThread, locateClaudeConversation, locateCodexThread, probeLoginShellEnv, refreshAgentHomes, resetAgentHomesCache, resolveAgentHomes };
@@ -1,56 +1,86 @@
1
- import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-VsfkZiVF.mjs';
2
- export { a as DEFAULT_IDLE_TIMEOUT_MS, b as DEFAULT_TOOL_CALL_TIMEOUT_MS, e as extractErrorDetail, f as formatDuration, c as formatDurationMinutes, h as handleAgentMessageChunk, d as handleAgentThoughtChunk, g as handleLegacyMessageChunk, i as handlePlanUpdate, j as handleThinkingUpdate, k as handleToolCall, l as handleToolCallUpdate, p as parseArgsFromContent } from './AcpBackend-VsfkZiVF.mjs';
3
- import { r as readSettings, v as notifyDaemonSessionStarted, w as encodeBase64, l as logger, x as BUILTIN_TODO_DISCOVERY, c as configuration, P as PROMPT_QUEUE_CAPABILITY, y as reportSessionEditToDaemon } from './limits-CjRj8IX5.mjs';
4
- import { A as AcpSessionManager } from './AcpSessionManager-rYtVb0kN.mjs';
5
- import { h as initialMachineMetadata, j as createSessionMetadata, k as setupOfflineReconnection, l as StreamRelay, M as MessageQueue2, m as hashObject, n as startHappyServer, o as registerAgentAttachmentDownloads, u as TitleGenerator, v as registerKillSessionHandler, C as CLAUDE_ATTACHMENT_KINDS, w as stageClaudeAttachments, x as appendStagedAttachmentsToPrompt, B as BasePermissionHandler, E as EditReportThrottle, y as extractAcpEditPaths, z as writeSessionModeFile, F as normalizeAcpPermissionMode, H as removeSessionModeFile } from './index-BF6WfgV5.mjs';
6
- import { p as preparePiTeamsRuntime } from './piRuntime-kLZNpAAl.mjs';
1
+ import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-mzv8Dhba.mjs';
2
+ export { a as DEFAULT_IDLE_TIMEOUT_MS, b as DEFAULT_TOOL_CALL_TIMEOUT_MS, e as extractErrorDetail, f as formatDuration, c as formatDurationMinutes, h as handleAgentMessageChunk, d as handleAgentThoughtChunk, g as handleLegacyMessageChunk, i as handlePlanUpdate, j as handleThinkingUpdate, k as handleToolCall, l as handleToolCallUpdate, p as parseArgsFromContent } from './AcpBackend-mzv8Dhba.mjs';
3
+ import { l as logger } from './logger-6HYUEXNk.mjs';
4
+ import { A as AcpSessionManager } from './AcpSessionManager-CoMWFVw3.mjs';
5
+ import { l as BUILTIN_TODO_DISCOVERY, P as PROMPT_QUEUE_CAPABILITY } from './index-qdS1friN.mjs';
6
+ import { r as registerAgentAttachmentDownloads } from './agentAttachments-M_B5qEF2.mjs';
7
+ import { c as configuration } from './configuration-RfeNjFmd.mjs';
8
+ import { C as CLAUDE_ATTACHMENT_KINDS, a as stageClaudeAttachments, b as appendStagedAttachmentsToPrompt } from './attachmentContent-_kxRznNf.mjs';
9
+ import { p as preparePiTeamsRuntime } from './piRuntime-CSGkwCKQ.mjs';
7
10
  import { randomUUID } from 'node:crypto';
8
11
  import { join } from 'node:path';
9
- import { h as connectionState, A as ApiClient } from './types-Dh-s4Lqs.mjs';
10
- import { p as projectPath } from './terminalTitleSuggest-DKgX3osW.mjs';
12
+ import { c as connectionState, A as ApiClient } from './api-CLMUr-SX.mjs';
13
+ import { M as MessageQueue2, r as registerKillSessionHandler } from './registerKillSessionHandler-GYvHdipX.mjs';
14
+ import { h as hashObject, s as startHappyServer } from './deterministicJson-CzkFJWw1.mjs';
15
+ import { readSettings } from './persistence-HGW_ZVs9.mjs';
16
+ import { g as getInitialMachineMetadata } from './machineMetadata-oOzBfDfs.mjs';
17
+ import { c as createSessionMetadata } from './createSessionMetadata-CVVkGjxV.mjs';
18
+ import { s as setupOfflineReconnection } from './setupOfflineReconnection-DpvWTt69.mjs';
19
+ import { n as notifyDaemonSessionStarted, g as reportSessionEditToDaemon } from './controlClient-BGbDcgWS.mjs';
20
+ import { e as encodeBase64 } from './authRelay-DSAvg1uv.mjs';
21
+ import { S as StreamRelay } from './streamRelay-FPVbHpbM.mjs';
22
+ import { p as projectPath } from './projectPath-BTBIMB57.mjs';
23
+ import { B as BasePermissionHandler } from './BasePermissionHandler-m3WVholL.mjs';
24
+ import { T as TitleGenerator } from './titleGenerator-CQ8CoGhg.mjs';
25
+ import { w as writeSessionModeFile, n as normalizeAcpPermissionMode, r as removeSessionModeFile } from './sessionModeFile-DMl3dw3r.mjs';
26
+ import { E as EditReportThrottle, e as extractAcpEditPaths } from './editPaths-BVfS_FFL.mjs';
11
27
  import 'node:child_process';
12
28
  import '@agentclientprotocol/sdk';
13
- import 'zod';
14
- import '@paralleldrive/cuid2';
15
- import 'node:fs/promises';
16
- import 'node:fs';
17
- import 'tweetnacl';
29
+ import './time-D0XyHOid.mjs';
30
+ import './contentLogMetadata-BlWI0egu.mjs';
31
+ import './package-BhaKlnxz.mjs';
18
32
  import 'chalk';
19
33
  import 'node:util';
34
+ import 'node:fs';
35
+ import '@paralleldrive/cuid2';
36
+ import 'zod';
20
37
  import 'node:os';
21
- import 'cross-spawn';
22
- import 'node:readline';
23
- import './agentGuidance-KgvYuF3R.mjs';
38
+ import 'node:fs/promises';
39
+ import './attachmentLimits-yba1uHFO.mjs';
40
+ import './resources-BdFBQi8r.mjs';
24
41
  import 'axios';
25
- import 'socket.io-client';
26
- import 'fs/promises';
27
- import 'ink';
28
- import 'react';
29
- import '@anthropic-ai/claude-agent-sdk';
30
42
  import 'node:events';
43
+ import 'socket.io-client';
44
+ import './limits-DIo7rEBR.mjs';
45
+ import './lidState-CeEt442o.mjs';
31
46
  import 'os';
32
47
  import 'child_process';
33
- import 'fs';
34
- import 'path';
35
- import '@anthropic-ai/sandbox-runtime';
36
- import 'expo-server-sdk';
48
+ import './registerCommonHandlers-Ccvsz7Ou.mjs';
49
+ import 'util';
50
+ import 'fs/promises';
37
51
  import 'crypto';
38
- import 'ps-list';
39
- import 'tmp';
40
- import 'open';
41
- import 'fastify';
42
- import 'fastify-type-provider-zod';
43
- import 'node:module';
52
+ import 'path';
53
+ import 'cross-spawn';
54
+ import './sync-C8gyQFMc.mjs';
55
+ import './backgroundTaskActivity-8PdPxrvy.mjs';
56
+ import 'tweetnacl';
57
+ import './types-CkqAACXx.mjs';
58
+ import './client-CeGKqqcJ.mjs';
59
+ import './context-H0Bcb9S_.mjs';
60
+ import './sessionOps-SuHW8Dfe.mjs';
61
+ import './tools-DkluDcG4.mjs';
62
+ import './tools-BZtHF_qQ.mjs';
63
+ import './client-ClR0K8zX.mjs';
64
+ import './peerTools-BTqw97Gb.mjs';
65
+ import './ids-DU6sLx4C.mjs';
66
+ import './remoteSessionClient-CYnXRynE.mjs';
44
67
  import '@modelcontextprotocol/sdk/server/mcp.js';
45
68
  import 'node:http';
46
69
  import '@modelcontextprotocol/sdk/server/streamableHttp.js';
47
- import 'http';
48
- import 'util';
49
- import 'inquirer';
50
- import 'node:url';
51
- import 'node:readline/promises';
52
- import 'node-pty';
70
+ import './assistantTools-D6tuc6o4.mjs';
71
+ import './terminals-Dlg0x3nY.mjs';
72
+ import './terminalTitleSuggest-CeKsX_V6.mjs';
73
+ import './tmuxSocket-B8Yx20sT.mjs';
74
+ import './bootstrap-hxXPCFMx.mjs';
75
+ import './agentGuidance-CQuNlNx8.mjs';
76
+ import './trimIdent-BAjmv_TG.mjs';
77
+ import './previewPath-CXN4Vag0.mjs';
78
+ import './detectCLI-CSGMlV51.mjs';
79
+ import 'fs';
80
+ import './localHappyAgentAuth-C-HQyiv6.mjs';
53
81
  import 'url';
82
+ import 'node:module';
83
+ import './oneShotPrompts-DT4p6RNd.mjs';
54
84
 
55
85
  function createAcpBackend(options) {
56
86
  const backendOptions = {
@@ -596,7 +626,7 @@ async function runAcp(opts) {
596
626
  }
597
627
  await api.getOrCreateMachine({
598
628
  machineId: settings.machineId,
599
- metadata: initialMachineMetadata
629
+ metadata: getInitialMachineMetadata()
600
630
  });
601
631
  const { state, metadata } = createSessionMetadata({
602
632
  flavor: resolveSessionFlavor(opts.agentName),
@@ -0,0 +1,68 @@
1
+ import { p as packageJson } from './package-BhaKlnxz.mjs';
2
+ import module$1 from 'node:module';
3
+ import { existsSync } from 'node:fs';
4
+ import { readdir, rm } from 'node:fs/promises';
5
+ import { homedir } from 'node:os';
6
+ import { join } from 'node:path';
7
+
8
+ function isStandaloneVersionRequest(args) {
9
+ return args.length === 1 && args[0] === "--version";
10
+ }
11
+ const SELF_CHECK_FLAG = "--self-check";
12
+ function isSelfCheckRequest(args) {
13
+ return args.length === 1 && args[0] === SELF_CHECK_FLAG;
14
+ }
15
+
16
+ function happyHomeDirFromEnv(env, home = homedir()) {
17
+ return env.HAPPY_HOME_DIR ? env.HAPPY_HOME_DIR.replace(/^~/, home) : join(home, ".happy");
18
+ }
19
+ function compileCacheRoot(happyHomeDir) {
20
+ return join(happyHomeDir, "cache", "compile");
21
+ }
22
+ function compileCacheDir(happyHomeDir, cliVersion) {
23
+ return join(compileCacheRoot(happyHomeDir), cliVersion.replace(/[^\w.+-]/g, "_"));
24
+ }
25
+ function enableCompileCacheIfPossible(cliVersion, env = process.env) {
26
+ try {
27
+ const enable = module$1.enableCompileCache;
28
+ if (typeof enable !== "function") return;
29
+ const happyHome = happyHomeDirFromEnv(env);
30
+ if (!existsSync(happyHome)) return;
31
+ enable(compileCacheDir(happyHome, cliVersion));
32
+ } catch {
33
+ }
34
+ }
35
+ async function pruneStaleCompileCaches(happyHomeDir, cliVersion) {
36
+ const root = compileCacheRoot(happyHomeDir);
37
+ const keep = compileCacheDir(happyHomeDir, cliVersion);
38
+ const removed = [];
39
+ let entries;
40
+ try {
41
+ entries = await readdir(root);
42
+ } catch {
43
+ return removed;
44
+ }
45
+ for (const name of entries) {
46
+ const dir = join(root, name);
47
+ if (dir === keep) continue;
48
+ try {
49
+ await rm(dir, { recursive: true, force: true });
50
+ removed.push(name);
51
+ } catch {
52
+ }
53
+ }
54
+ return removed;
55
+ }
56
+
57
+ async function run(args) {
58
+ enableCompileCacheIfPossible(packageJson.version);
59
+ if (isStandaloneVersionRequest(args) || isSelfCheckRequest(args)) {
60
+ const { selfCheckMain } = await import('./selfCheck-C9mVrQwf.mjs');
61
+ process.exit(await selfCheckMain({ verbose: isSelfCheckRequest(args) }));
62
+ }
63
+ const { main } = await import('./main-BwNIAI1A.mjs');
64
+ await main();
65
+ }
66
+ void run(process.argv.slice(2));
67
+
68
+ export { isStandaloneVersionRequest as i, pruneStaleCompileCaches as p };