very-happy-cli 0.2.163 → 0.2.164
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-CuOUXVRX.mjs → AcpBackend-B8l1ZePt.mjs} +3 -3
- package/dist/{AcpBackend-C2rzKnvT.cjs → AcpBackend-CHDqSii9.cjs} +3 -3
- package/dist/{AcpSessionManager-BvIuBzoO.cjs → AcpSessionManager-9yN2iH4b.cjs} +1 -1
- package/dist/{AcpSessionManager-BSIBnWUb.mjs → AcpSessionManager-BQnDJvct.mjs} +1 -1
- package/dist/{BasePermissionHandler-D6PdH-OU.cjs → BasePermissionHandler-DGQYvBPg.cjs} +1 -1
- package/dist/{BasePermissionHandler-Ng5h8JpY.mjs → BasePermissionHandler-DgtAtJTV.mjs} +1 -1
- package/dist/{BaseReasoningProcessor-C0cXz1mg.cjs → BaseReasoningProcessor-BqalZhQO.cjs} +1 -1
- package/dist/{BaseReasoningProcessor-CM-ijU4F.mjs → BaseReasoningProcessor-Dfacnfhj.mjs} +1 -1
- package/dist/{agentHome-Bt4lOwFE.mjs → agentHome-DM0urHEI.mjs} +4 -4
- package/dist/{agentHome-CAMEVRZZ.cjs → agentHome-DtsPKfTS.cjs} +4 -4
- package/dist/{api-DGFBAPr7.cjs → api-EKlS0r1w.cjs} +41 -15
- package/dist/{api-D5kfP3JF.mjs → api-Yoh_zKdR.mjs} +41 -15
- package/dist/{apiMachine-BxCy5_No.cjs → apiMachine-q71suojS.cjs} +20 -17
- package/dist/{apiMachine-C58eizxs.mjs → apiMachine-s3HiV-SL.mjs} +20 -17
- package/dist/{assistantTools-BvKH9eRc.mjs → assistantTools-BWfAV349.mjs} +6 -6
- package/dist/{assistantTools-NC7DMNvV.cjs → assistantTools-D3cZvgUX.cjs} +6 -6
- package/dist/{attachmentContent-CCE0Y3gR.mjs → attachmentContent-BLyyo1al.mjs} +2 -2
- package/dist/{attachmentContent-CUKdzh4v.cjs → attachmentContent-Bakb0XV3.cjs} +2 -2
- package/dist/{attachmentLimits-D5pgmASK.mjs → attachmentLimits-B8nzhw-i.mjs} +1 -1
- package/dist/{attachmentLimits-DzlBPyJP.cjs → attachmentLimits-eJZ4ZBjF.cjs} +1 -1
- package/dist/{auth-gdc8gI9D.mjs → auth-BTfv8yW0.mjs} +8 -8
- package/dist/{auth-Ddz597Rw.cjs → auth-Cn3dQInF.cjs} +5 -5
- package/dist/{auth-CRm8yNv6.mjs → auth-Cxhx5evk.mjs} +5 -5
- package/dist/{auth-CILb5DeW.cjs → auth-Hpg4Yxfa.cjs} +8 -8
- package/dist/{auto-lLjHfAOO.mjs → auto-BAAEVGZa.mjs} +14 -14
- package/dist/{auto-CXtt6MfS.cjs → auto-CK8irHum.cjs} +14 -14
- package/dist/{bootstrap-DSWZAtGy.mjs → bootstrap-CTNjn_aj.mjs} +2 -2
- package/dist/{bootstrap-CccIDvh4.cjs → bootstrap-D9SUykG_.cjs} +2 -2
- package/dist/{browser-lizgdXYj.cjs → browser-C8ztaIkm.cjs} +1 -1
- package/dist/{browser-DU9kI-Q-.mjs → browser-DydXWySF.mjs} +1 -1
- package/dist/{claudeLocal-CTR2xlPT.mjs → claudeLocal-CdJJovWq.mjs} +5 -5
- package/dist/{claudeLocal-Bp-lf6yb.cjs → claudeLocal-CsLFMvFU.cjs} +5 -5
- package/dist/{claudeLocalLauncher-DFkwLMqU.mjs → claudeLocalLauncher-CKazNnl0.mjs} +10 -10
- package/dist/{claudeLocalLauncher-aQyL3g7I.cjs → claudeLocalLauncher-DRc-tET5.cjs} +10 -10
- package/dist/{claudeSessionFork-DdJFvxwf.cjs → claudeSessionFork-BWdhyy9B.cjs} +1 -1
- package/dist/{claudeSessionFork-DABSCbkf.mjs → claudeSessionFork-BfPW9D2S.mjs} +1 -1
- package/dist/{client-CQzHoynf.cjs → client-BZtKFCJr.cjs} +2 -2
- package/dist/{client-CXvsRLAz.cjs → client-C1GAIJ04.cjs} +3 -3
- package/dist/{client-CyUhxs-0.mjs → client-DkoV3VWl.mjs} +2 -2
- package/dist/{client-BbNFS1WW.mjs → client-Do5CHQnZ.mjs} +3 -3
- package/dist/codex/happyMcpStdioBridge.cjs +15 -15
- package/dist/codex/happyMcpStdioBridge.mjs +15 -15
- package/dist/{codexAppServerClient-Dto99RVH.mjs → codexAppServerClient-CfF33X-8.mjs} +2 -2
- package/dist/{codexAppServerClient-5jNbTlE5.cjs → codexAppServerClient-JddkV_aP.cjs} +2 -2
- package/dist/{codexCommand-LUp0vkNi.cjs → codexCommand-Bdj3XZbi.cjs} +39 -39
- package/dist/{codexCommand-BHfrAyds.mjs → codexCommand-btJso8yC.mjs} +39 -39
- package/dist/{config-CAD5NR1h.cjs → config-DpCNivmg.cjs} +3 -3
- package/dist/{config-BEvt_OYR.mjs → config-nziuMb7g.mjs} +3 -3
- package/dist/{configuration-B0c-OP_h.mjs → configuration-CiBUH72C.mjs} +1 -1
- package/dist/{configuration-CepfrPZ_.cjs → configuration-PXAE4-FP.cjs} +1 -1
- package/dist/{connect-BPMzMoiQ.cjs → connect-D7ehaW2C.cjs} +13 -13
- package/dist/{connect-BeK0dMYB.mjs → connect-XHdi6Vtc.mjs} +13 -13
- package/dist/{context-mMg17HJv.mjs → context-BpEYcuLv.mjs} +1 -1
- package/dist/{context-BhZMRQho.cjs → context-DhvXl1oC.cjs} +1 -1
- package/dist/{controlClient-HPMsyxLb.cjs → controlClient-DI-Er-Ww.cjs} +3 -3
- package/dist/{controlClient-BKmjlbGs.mjs → controlClient-DzmCQrY_.mjs} +3 -3
- package/dist/{createSessionMetadata-KOL67aSN.mjs → createSessionMetadata-B47GrTX6.mjs} +2 -2
- package/dist/{createSessionMetadata-CGuyVxsM.cjs → createSessionMetadata-D04x6OMW.cjs} +2 -2
- package/dist/{deterministicJson-BFzPcsCh.cjs → deterministicJson-BM8e8QwP.cjs} +9 -9
- package/dist/{deterministicJson-CaWami7M.mjs → deterministicJson-CKqT3awl.mjs} +9 -9
- package/dist/{doctor-DX2P7IlL.mjs → doctor-CSgzbG5L.mjs} +6 -6
- package/dist/{doctor-BHNVY9DE.cjs → doctor-Cl6cqvok.cjs} +6 -6
- package/dist/{ensureDaemonRunning-BahhZpQ1.cjs → ensureDaemonRunning-CJ4-U32n.cjs} +5 -5
- package/dist/{ensureDaemonRunning-CnWMrL5b.mjs → ensureDaemonRunning-fPVSsjIm.mjs} +5 -5
- package/dist/{handleResumeCommand-bToC6FDH.mjs → handleResumeCommand-B84dt2aH.mjs} +5 -5
- package/dist/{handleResumeCommand-Ca334R4t.cjs → handleResumeCommand-bX-aNF_z.cjs} +5 -5
- package/dist/{index-B6MVw_Xb.cjs → index-B2UvSWo_.cjs} +3 -3
- package/dist/{index-vFMUVtSL.cjs → index-CP2fh7JX.cjs} +38 -38
- package/dist/{index-B5v5fZi6.mjs → index-CRJtZCK-.mjs} +39 -39
- package/dist/{index-D3AsOj4j.mjs → index-CbF87SeZ.mjs} +3 -3
- package/dist/{index-DoMsO8_G.cjs → index-DaTxsAC3.cjs} +4 -4
- package/dist/{index-DJ-oV52i.cjs → index-DqlyNgt4.cjs} +6 -1
- package/dist/{index-CpFreRx8.mjs → index-OEGj3BxE.mjs} +4 -4
- package/dist/{index-BBg9j0XK.mjs → index-vVWpCoTr.mjs} +6 -1
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{install-Dixfzmb_.mjs → install-CurvoW2u.mjs} +3 -3
- package/dist/{install-BnTP73AE.cjs → install-__Mni4NU.cjs} +3 -3
- package/dist/lib.cjs +17 -17
- package/dist/lib.d.cts +26 -0
- package/dist/lib.d.mts +26 -0
- package/dist/lib.mjs +17 -17
- package/dist/{lidState-X7iQg4y5.mjs → lidState-BbR6y9rq.mjs} +66 -2
- package/dist/{lidState-BGWXfx1e.cjs → lidState-De2HP6nu.cjs} +67 -1
- package/dist/{localHappyAgentAuth-r83bTscW.mjs → localHappyAgentAuth-C7rDePjF.mjs} +1 -1
- package/dist/{localHappyAgentAuth-D_Gc4K7h.cjs → localHappyAgentAuth-CboZb3_a.cjs} +1 -1
- package/dist/{logger-BIzr7JN0.mjs → logger-8dtZPn3n.mjs} +2 -2
- package/dist/{logger-Ca5eRZ2j.cjs → logger-B1k7eZnq.cjs} +2 -2
- package/dist/{machineMetadata-DakW9c61.mjs → machineMetadata-Bhp_w3-_.mjs} +3 -3
- package/dist/{machineMetadata-GlObivJ-.cjs → machineMetadata-C4OfKn6I.cjs} +3 -3
- package/dist/{main-BJlGidfv.mjs → main-BQTaUrz0.mjs} +44 -44
- package/dist/{main-BfA1Vtqq.cjs → main-eAiLspBM.cjs} +44 -44
- package/dist/{mcp-Bb7AD1SD.mjs → mcp-DXCdbQHM.mjs} +14 -14
- package/dist/{mcp-BVzt1llv.cjs → mcp-fapbM7Q4.cjs} +14 -14
- package/dist/{package-BfnmIH4b.cjs → package-CC_txQ31.cjs} +8 -8
- package/dist/{package-D-W_r_pd.mjs → package-tVYgFJoK.mjs} +8 -8
- package/dist/{peerTools-C1cELmtZ.mjs → peerTools-C1cduHh1.mjs} +4 -4
- package/dist/{peerTools-CADjnFDx.cjs → peerTools-CqIcCEIg.cjs} +4 -4
- package/dist/{persistence-DgBhXxu7.mjs → persistence-C_xFQLsD.mjs} +3 -3
- package/dist/{persistence-Ceb-BPk6.cjs → persistence-d3ZyER6o.cjs} +3 -3
- package/dist/{piRunnerArgs-Bem-saSg.cjs → piRunnerArgs-DSxolPlV.cjs} +1 -1
- package/dist/{piRunnerArgs-CH6oh6w0.mjs → piRunnerArgs-aq0zJX1Q.mjs} +1 -1
- package/dist/{piRuntime-BRKG6Yoz.mjs → piRuntime-BnNl5Lmb.mjs} +1 -1
- package/dist/{piRuntime-Be0UP44z.cjs → piRuntime-Dne1LPu-.cjs} +1 -1
- package/dist/{piTerminal-DVOAWiZx.mjs → piTerminal-CKWxWtW-.mjs} +16 -16
- package/dist/{piTerminal-ibKBMmuK.cjs → piTerminal-fjado4cR.cjs} +16 -16
- package/dist/{registerCommonHandlers-DPOHFlxp.cjs → registerCommonHandlers-Dausbdsb.cjs} +2 -2
- package/dist/{registerCommonHandlers-t15dS7xt.mjs → registerCommonHandlers-bSskMveZ.mjs} +2 -2
- package/dist/{registerKillSessionHandler-BS5afGeA.mjs → registerKillSessionHandler-Ben5lAsN.mjs} +6 -6
- package/dist/{registerKillSessionHandler-DGDubZLv.cjs → registerKillSessionHandler-CgKyzwqw.cjs} +6 -6
- package/dist/{remoteSessionClient-DbnVs1Tv.cjs → remoteSessionClient-BkJt8SHa.cjs} +5 -5
- package/dist/{remoteSessionClient-N7JsQ0XS.mjs → remoteSessionClient-DnCIuZpQ.mjs} +5 -5
- package/dist/{run-CptLbkQ4.cjs → run-B8dxbDsg.cjs} +33 -33
- package/dist/{run-FZRugy70.mjs → run-BEYMVE4J.mjs} +32 -32
- package/dist/{runClaude-Cnv0SnA4.cjs → runClaude-Cy_HzLyO.cjs} +22 -22
- package/dist/{runClaude-DNW3i-k4.mjs → runClaude-Dd_P1c0f.mjs} +22 -22
- package/dist/{runClaudeDeps-CpAiml84.mjs → runClaudeDeps-JG7EUH7B.mjs} +441 -49
- package/dist/{runClaudeDeps-lb6LlVPa.cjs → runClaudeDeps-dxv910DR.cjs} +436 -44
- package/dist/{runGemini-CRn8exeY.mjs → runGemini-CpaBuvoW.mjs} +34 -34
- package/dist/{runGemini-BzS_Yw3F.cjs → runGemini-DY1IDW_f.cjs} +34 -34
- package/dist/{runOpenClaw-QoDQpR9a.cjs → runOpenClaw-C0VARcYj.cjs} +20 -20
- package/dist/{runOpenClaw-DuS_zRVT.mjs → runOpenClaw-C7vrDQbq.mjs} +20 -20
- package/dist/{sandbox-CT9CGjEI.cjs → sandbox-Bx9-M9rN.cjs} +4 -4
- package/dist/{sandbox-DysMM_pn.mjs → sandbox-DRUJZuaM.mjs} +4 -4
- package/dist/{selfCheck-DIn7j8MD.cjs → selfCheck-Ba1sECTO.cjs} +34 -34
- package/dist/selfCheck-DdT8r263.mjs +84 -0
- package/dist/{send-CA6fSF3S.mjs → send-BrzkbMy2.mjs} +8 -8
- package/dist/{send-97xYN_Yw.cjs → send-Dqdpx-w5.cjs} +8 -8
- package/dist/{server-r50NNW9e.mjs → server-CPMPoEAA.mjs} +4 -4
- package/dist/{server-C67NGJoX.cjs → server-CfB8EWCg.cjs} +6 -6
- package/dist/{sessionLock-CS4fdsmu.cjs → sessionLock-BsP3Y_nG.cjs} +2 -2
- package/dist/{sessionLock-Dab6_dCd.mjs → sessionLock-DukLVzAQ.mjs} +2 -2
- package/dist/{sessionModeFile-3yV7P9R-.mjs → sessionModeFile-CSvi4H_t.mjs} +1 -1
- package/dist/{sessionModeFile-BhqlFlHZ.cjs → sessionModeFile-JWWF6Nn7.cjs} +1 -1
- package/dist/{sessionOps-DJSwzwP-.mjs → sessionOps-BlMg1uAa.mjs} +4 -4
- package/dist/{sessionOps-DWsGWwfZ.cjs → sessionOps-HuoMXcIZ.cjs} +4 -4
- package/dist/{sessionScanner-D6WqRtJQ.cjs → sessionScanner-BWU6KvZw.cjs} +3 -3
- package/dist/{sessionScanner-jilpq2aE.mjs → sessionScanner-Ct-JoNHP.mjs} +3 -3
- package/dist/{sessions-RXTp4x0o.mjs → sessions-3Hw1xXMV.mjs} +9 -9
- package/dist/{sessions-C22q-Z_s.cjs → sessions-AjflCj5y.cjs} +9 -9
- package/dist/{setupOfflineReconnection-rd1PCWiN.mjs → setupOfflineReconnection-B_9xp36H.mjs} +2 -2
- package/dist/{setupOfflineReconnection-BrnWBRUP.cjs → setupOfflineReconnection-Cxh9Sz9M.cjs} +2 -2
- package/dist/{spawn-D8CEQPbN.mjs → spawn-BXEVKCQK.mjs} +12 -12
- package/dist/{spawn-Ccy5qAtp.cjs → spawn-CN8PH11G.cjs} +12 -12
- package/dist/{spawnAgents-Y1LjnCt9.mjs → spawnAgents-Czi2VDzj.mjs} +1 -1
- package/dist/{spawnAgents-iSu1Xzs5.cjs → spawnAgents-McixdtV1.cjs} +1 -1
- package/dist/{spawnHappyCLI-wowHF2IL.mjs → spawnHappyCLI-BFN0h2fK.mjs} +1 -1
- package/dist/{spawnHappyCLI-Dz2ZHrsN.cjs → spawnHappyCLI-Cj-9-d_7.cjs} +1 -1
- package/dist/{startFileWatcher-Ce17H9pG.cjs → startFileWatcher-BfMu444W.cjs} +1 -1
- package/dist/{startFileWatcher-C1wjDI_o.mjs → startFileWatcher-Csql7gdv.mjs} +1 -1
- package/dist/{streamRelay-BLgU9X3R.mjs → streamRelay-BzMEEvJU.mjs} +1 -1
- package/dist/{streamRelay-DnObXZZj.cjs → streamRelay-C0AffuX6.cjs} +1 -1
- package/dist/{sync-fDRF_nO1.cjs → sync--uxtLWbo.cjs} +1 -1
- package/dist/{sync-DnmsgL3w.mjs → sync-SCvDzRy6.mjs} +1 -1
- package/dist/{systemPrompt-9PWg4OU6.cjs → systemPrompt-C1tRiZ-u.cjs} +2 -2
- package/dist/{systemPrompt-Db9O7KGe.mjs → systemPrompt-D0KMySrK.mjs} +2 -2
- package/dist/{teams-C5PwKr4K.mjs → teams-By-hcvMF.mjs} +6 -6
- package/dist/{teams-DkHPUc6j.cjs → teams-CYDIFXEC.cjs} +6 -6
- package/dist/{time-xNkWLTSj.cjs → time-C7BplxuS.cjs} +1 -1
- package/dist/{time-TxDyvAKk.mjs → time-CRvAaC5H.mjs} +1 -1
- package/dist/{titleGenerator-oK414IZc.mjs → titleGenerator-CUG-n2r3.mjs} +1 -1
- package/dist/{titleGenerator-C8arvXNG.cjs → titleGenerator-Kw3sTnNQ.cjs} +2 -2
- package/dist/{todo-VqQuYyFq.cjs → todo-B7a7J5Ng.cjs} +6 -6
- package/dist/{todo-CLHIGRUf.mjs → todo-yuIsUvU8.mjs} +6 -6
- package/dist/{tools-GnqHEZHb.cjs → tools-BTBgpiRc.cjs} +2 -2
- package/dist/{tools-xQ38ufgo.cjs → tools-D7UeLMZ7.cjs} +1 -1
- package/dist/{tools-sPgOmLr_.mjs → tools-RvMKw7yx.mjs} +1 -1
- package/dist/{tools-BSzD246o.mjs → tools-gUjkPpCw.mjs} +2 -2
- package/dist/{uninstall-DKM0j1qI.cjs → uninstall-D5D16-KM.cjs} +3 -3
- package/dist/{uninstall-DyoXxpgI.mjs → uninstall-Dx9FmLXs.mjs} +3 -3
- package/package.json +8 -8
- package/dist/selfCheck-BTltA-ZZ.mjs +0 -84
package/dist/lib.cjs
CHANGED
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var api = require('./api-
|
|
4
|
-
var logger = require('./logger-
|
|
5
|
-
var configuration = require('./configuration-
|
|
3
|
+
var api = require('./api-EKlS0r1w.cjs');
|
|
4
|
+
var logger = require('./logger-B1k7eZnq.cjs');
|
|
5
|
+
var configuration = require('./configuration-PXAE4-FP.cjs');
|
|
6
6
|
var types = require('./types-CRS-srZK.cjs');
|
|
7
7
|
require('axios');
|
|
8
|
-
require('
|
|
9
|
-
require('socket.io-client');
|
|
10
|
-
require('./attachmentLimits-DzlBPyJP.cjs');
|
|
11
|
-
require('zod');
|
|
12
|
-
require('./index-DJ-oV52i.cjs');
|
|
13
|
-
require('@paralleldrive/cuid2');
|
|
8
|
+
require('./lidState-De2HP6nu.cjs');
|
|
14
9
|
require('./authRelay-BdYkC1Po.cjs');
|
|
15
10
|
require('node:crypto');
|
|
16
11
|
require('tweetnacl');
|
|
17
|
-
require('./limits-C-a7gr04.cjs');
|
|
18
|
-
require('./time-xNkWLTSj.cjs');
|
|
19
|
-
require('./lidState-BGWXfx1e.cjs');
|
|
20
12
|
require('os');
|
|
21
13
|
require('child_process');
|
|
22
|
-
require('
|
|
14
|
+
require('node:events');
|
|
15
|
+
require('socket.io-client');
|
|
16
|
+
require('./attachmentLimits-eJZ4ZBjF.cjs');
|
|
17
|
+
require('zod');
|
|
18
|
+
require('./index-DqlyNgt4.cjs');
|
|
19
|
+
require('@paralleldrive/cuid2');
|
|
20
|
+
require('./limits-C-a7gr04.cjs');
|
|
21
|
+
require('./time-C7BplxuS.cjs');
|
|
22
|
+
require('./registerCommonHandlers-Dausbdsb.cjs');
|
|
23
23
|
require('util');
|
|
24
24
|
require('fs/promises');
|
|
25
25
|
require('crypto');
|
|
@@ -27,10 +27,10 @@ require('path');
|
|
|
27
27
|
require('cross-spawn');
|
|
28
28
|
require('./projectPath-ChLhdOyt.cjs');
|
|
29
29
|
require('url');
|
|
30
|
-
require('./sync
|
|
30
|
+
require('./sync--uxtLWbo.cjs');
|
|
31
31
|
require('./backgroundTaskActivity-CBvUdj39.cjs');
|
|
32
|
-
require('./controlClient-
|
|
33
|
-
require('./persistence-
|
|
32
|
+
require('./controlClient-DI-Er-Ww.cjs');
|
|
33
|
+
require('./persistence-d3ZyER6o.cjs');
|
|
34
34
|
require('node:fs/promises');
|
|
35
35
|
require('node:fs');
|
|
36
36
|
require('./contentLogMetadata-ZSFk_NjQ.cjs');
|
|
@@ -38,7 +38,7 @@ require('chalk');
|
|
|
38
38
|
require('node:util');
|
|
39
39
|
require('node:path');
|
|
40
40
|
require('node:os');
|
|
41
|
-
require('./package-
|
|
41
|
+
require('./package-CC_txQ31.cjs');
|
|
42
42
|
|
|
43
43
|
|
|
44
44
|
|
package/dist/lib.d.cts
CHANGED
|
@@ -164,6 +164,7 @@ declare const sessionEnvelopeSchema: z.ZodObject<{
|
|
|
164
164
|
fromSeq: z.ZodNumber;
|
|
165
165
|
toSeq: z.ZodOptional<z.ZodNumber>;
|
|
166
166
|
reason: z.ZodOptional<z.ZodString>;
|
|
167
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
167
168
|
}, z.core.$strip>], "t">;
|
|
168
169
|
}, z.core.$strip>;
|
|
169
170
|
type SessionEnvelope = z.infer<typeof sessionEnvelopeSchema>;
|
|
@@ -731,6 +732,21 @@ type Metadata = {
|
|
|
731
732
|
failed?: boolean;
|
|
732
733
|
completedAt: number;
|
|
733
734
|
};
|
|
735
|
+
/**
|
|
736
|
+
* B-544: the newest in-place rewind (conversation-rewind with a requestId).
|
|
737
|
+
* `pending` until the web's transcript-drop tombstone with the same
|
|
738
|
+
* requestId confirms it; otherwise the wrapper switches back to
|
|
739
|
+
* `sourceClaudeSessionId` (`reverted`). The web reads `requestId` when the
|
|
740
|
+
* RPC ack was lost. Plain strings throughout; old web/CLI ignore it.
|
|
741
|
+
*/
|
|
742
|
+
rewind?: {
|
|
743
|
+
requestId: string;
|
|
744
|
+
action: string;
|
|
745
|
+
sourceClaudeSessionId: string;
|
|
746
|
+
claudeSessionId: string | null;
|
|
747
|
+
at: number;
|
|
748
|
+
state: string;
|
|
749
|
+
} | null;
|
|
734
750
|
/**
|
|
735
751
|
* B-290: the Claude conversation this session was imported from (the
|
|
736
752
|
* on-disk transcript written by claude CLI / desktop / claude.ai that was
|
|
@@ -1331,6 +1347,16 @@ declare class ApiSessionClient extends EventEmitter {
|
|
|
1331
1347
|
*/
|
|
1332
1348
|
suppressNextArchiveSignal(): void;
|
|
1333
1349
|
skipExistingMessages(): void;
|
|
1350
|
+
/**
|
|
1351
|
+
* B-544: the newest `limit` session records, decrypted, ascending seq.
|
|
1352
|
+
* Read-only (no routing, no lastSeq change) — rewind reconcile reads the
|
|
1353
|
+
* durable log with it. Undecryptable records come back with `body: null`.
|
|
1354
|
+
*/
|
|
1355
|
+
readLogTail(limit: number): Promise<Array<{
|
|
1356
|
+
seq: number;
|
|
1357
|
+
localId: string | null;
|
|
1358
|
+
body: unknown;
|
|
1359
|
+
}>>;
|
|
1334
1360
|
updateMetadata(handler: (metadata: Metadata) => Metadata): void;
|
|
1335
1361
|
/**
|
|
1336
1362
|
* Update session agent state
|
package/dist/lib.d.mts
CHANGED
|
@@ -164,6 +164,7 @@ declare const sessionEnvelopeSchema: z.ZodObject<{
|
|
|
164
164
|
fromSeq: z.ZodNumber;
|
|
165
165
|
toSeq: z.ZodOptional<z.ZodNumber>;
|
|
166
166
|
reason: z.ZodOptional<z.ZodString>;
|
|
167
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
167
168
|
}, z.core.$strip>], "t">;
|
|
168
169
|
}, z.core.$strip>;
|
|
169
170
|
type SessionEnvelope = z.infer<typeof sessionEnvelopeSchema>;
|
|
@@ -731,6 +732,21 @@ type Metadata = {
|
|
|
731
732
|
failed?: boolean;
|
|
732
733
|
completedAt: number;
|
|
733
734
|
};
|
|
735
|
+
/**
|
|
736
|
+
* B-544: the newest in-place rewind (conversation-rewind with a requestId).
|
|
737
|
+
* `pending` until the web's transcript-drop tombstone with the same
|
|
738
|
+
* requestId confirms it; otherwise the wrapper switches back to
|
|
739
|
+
* `sourceClaudeSessionId` (`reverted`). The web reads `requestId` when the
|
|
740
|
+
* RPC ack was lost. Plain strings throughout; old web/CLI ignore it.
|
|
741
|
+
*/
|
|
742
|
+
rewind?: {
|
|
743
|
+
requestId: string;
|
|
744
|
+
action: string;
|
|
745
|
+
sourceClaudeSessionId: string;
|
|
746
|
+
claudeSessionId: string | null;
|
|
747
|
+
at: number;
|
|
748
|
+
state: string;
|
|
749
|
+
} | null;
|
|
734
750
|
/**
|
|
735
751
|
* B-290: the Claude conversation this session was imported from (the
|
|
736
752
|
* on-disk transcript written by claude CLI / desktop / claude.ai that was
|
|
@@ -1331,6 +1347,16 @@ declare class ApiSessionClient extends EventEmitter {
|
|
|
1331
1347
|
*/
|
|
1332
1348
|
suppressNextArchiveSignal(): void;
|
|
1333
1349
|
skipExistingMessages(): void;
|
|
1350
|
+
/**
|
|
1351
|
+
* B-544: the newest `limit` session records, decrypted, ascending seq.
|
|
1352
|
+
* Read-only (no routing, no lastSeq change) — rewind reconcile reads the
|
|
1353
|
+
* durable log with it. Undecryptable records come back with `body: null`.
|
|
1354
|
+
*/
|
|
1355
|
+
readLogTail(limit: number): Promise<Array<{
|
|
1356
|
+
seq: number;
|
|
1357
|
+
localId: string | null;
|
|
1358
|
+
body: unknown;
|
|
1359
|
+
}>>;
|
|
1334
1360
|
updateMetadata(handler: (metadata: Metadata) => Metadata): void;
|
|
1335
1361
|
/**
|
|
1336
1362
|
* Update session agent state
|
package/dist/lib.mjs
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
export { A as ApiClient, a as ApiSessionClient } from './api-
|
|
2
|
-
export { l as logger } from './logger-
|
|
3
|
-
export { c as configuration } from './configuration-
|
|
1
|
+
export { A as ApiClient, a as ApiSessionClient } from './api-Yoh_zKdR.mjs';
|
|
2
|
+
export { l as logger } from './logger-8dtZPn3n.mjs';
|
|
3
|
+
export { c as configuration } from './configuration-CiBUH72C.mjs';
|
|
4
4
|
export { R as RawJSONLinesSchema } from './types-CkqAACXx.mjs';
|
|
5
5
|
import 'axios';
|
|
6
|
-
import '
|
|
7
|
-
import 'socket.io-client';
|
|
8
|
-
import './attachmentLimits-D5pgmASK.mjs';
|
|
9
|
-
import 'zod';
|
|
10
|
-
import './index-BBg9j0XK.mjs';
|
|
11
|
-
import '@paralleldrive/cuid2';
|
|
6
|
+
import './lidState-BbR6y9rq.mjs';
|
|
12
7
|
import './authRelay-DSAvg1uv.mjs';
|
|
13
8
|
import 'node:crypto';
|
|
14
9
|
import 'tweetnacl';
|
|
15
|
-
import './limits-DIo7rEBR.mjs';
|
|
16
|
-
import './time-TxDyvAKk.mjs';
|
|
17
|
-
import './lidState-X7iQg4y5.mjs';
|
|
18
10
|
import 'os';
|
|
19
11
|
import 'child_process';
|
|
20
|
-
import '
|
|
12
|
+
import 'node:events';
|
|
13
|
+
import 'socket.io-client';
|
|
14
|
+
import './attachmentLimits-B8nzhw-i.mjs';
|
|
15
|
+
import 'zod';
|
|
16
|
+
import './index-vVWpCoTr.mjs';
|
|
17
|
+
import '@paralleldrive/cuid2';
|
|
18
|
+
import './limits-DIo7rEBR.mjs';
|
|
19
|
+
import './time-CRvAaC5H.mjs';
|
|
20
|
+
import './registerCommonHandlers-bSskMveZ.mjs';
|
|
21
21
|
import 'util';
|
|
22
22
|
import 'fs/promises';
|
|
23
23
|
import 'crypto';
|
|
@@ -25,10 +25,10 @@ import 'path';
|
|
|
25
25
|
import 'cross-spawn';
|
|
26
26
|
import './projectPath-BTBIMB57.mjs';
|
|
27
27
|
import 'url';
|
|
28
|
-
import './sync-
|
|
28
|
+
import './sync-SCvDzRy6.mjs';
|
|
29
29
|
import './backgroundTaskActivity-8PdPxrvy.mjs';
|
|
30
|
-
import './controlClient-
|
|
31
|
-
import './persistence-
|
|
30
|
+
import './controlClient-DzmCQrY_.mjs';
|
|
31
|
+
import './persistence-C_xFQLsD.mjs';
|
|
32
32
|
import 'node:fs/promises';
|
|
33
33
|
import 'node:fs';
|
|
34
34
|
import './contentLogMetadata-BlWI0egu.mjs';
|
|
@@ -36,4 +36,4 @@ import 'chalk';
|
|
|
36
36
|
import 'node:util';
|
|
37
37
|
import 'node:path';
|
|
38
38
|
import 'node:os';
|
|
39
|
-
import './package-
|
|
39
|
+
import './package-tVYgFJoK.mjs';
|
|
@@ -1,8 +1,72 @@
|
|
|
1
|
-
import { l as logger } from './logger-
|
|
1
|
+
import { l as logger } from './logger-8dtZPn3n.mjs';
|
|
2
2
|
import { e as encodeBase64, g as encrypt, h as decrypt, d as decodeBase64 } from './authRelay-DSAvg1uv.mjs';
|
|
3
3
|
import os from 'os';
|
|
4
4
|
import { execSync } from 'child_process';
|
|
5
5
|
|
|
6
|
+
const CONNECT_PENDING_MAX_MS = 15e3;
|
|
7
|
+
function decideConnect(input) {
|
|
8
|
+
if (input.connected) return "skip-connected";
|
|
9
|
+
if (input.pendingSince === null) return "connect";
|
|
10
|
+
const maxPendingMs = input.maxPendingMs ?? CONNECT_PENDING_MAX_MS;
|
|
11
|
+
const age = input.now - input.pendingSince;
|
|
12
|
+
if (age < 0 || age >= maxPendingMs) return "restart";
|
|
13
|
+
return "skip-pending";
|
|
14
|
+
}
|
|
15
|
+
class SocketConnectGuard {
|
|
16
|
+
constructor(socket, options = {}) {
|
|
17
|
+
this.socket = socket;
|
|
18
|
+
this.options = options;
|
|
19
|
+
this.now = options.now ?? Date.now;
|
|
20
|
+
const clear = () => {
|
|
21
|
+
this.pendingSince = null;
|
|
22
|
+
};
|
|
23
|
+
socket.on("connect", clear);
|
|
24
|
+
socket.on("connect_error", clear);
|
|
25
|
+
socket.on("disconnect", clear);
|
|
26
|
+
if (socket.active && !socket.connected) this.pendingSince = this.now();
|
|
27
|
+
}
|
|
28
|
+
pendingSince = null;
|
|
29
|
+
now;
|
|
30
|
+
connect(reason) {
|
|
31
|
+
const now = this.now();
|
|
32
|
+
const decision = decideConnect({
|
|
33
|
+
connected: this.socket.connected,
|
|
34
|
+
pendingSince: this.pendingSince,
|
|
35
|
+
now,
|
|
36
|
+
maxPendingMs: this.options.maxPendingMs
|
|
37
|
+
});
|
|
38
|
+
if (decision === "skip-connected") return decision;
|
|
39
|
+
if (decision === "skip-pending") {
|
|
40
|
+
this.options.log?.(`[socket-guard] ${reason}: CONNECT pending ${now - this.pendingSince}ms \u2014 not sending another`);
|
|
41
|
+
return decision;
|
|
42
|
+
}
|
|
43
|
+
if (decision === "restart") {
|
|
44
|
+
this.options.log?.(`[socket-guard] ${reason}: CONNECT pending ${now - this.pendingSince}ms \u2014 rebuilding the engine connection`);
|
|
45
|
+
this.pendingSince = null;
|
|
46
|
+
this.socket.disconnect();
|
|
47
|
+
}
|
|
48
|
+
this.pendingSince = now;
|
|
49
|
+
this.socket.connect();
|
|
50
|
+
return decision;
|
|
51
|
+
}
|
|
52
|
+
/** Test/diagnostic view. */
|
|
53
|
+
get pendingSinceMs() {
|
|
54
|
+
return this.pendingSince;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const guards = /* @__PURE__ */ new WeakMap();
|
|
58
|
+
function socketConnectGuard(socket, options) {
|
|
59
|
+
let guard = guards.get(socket);
|
|
60
|
+
if (!guard) {
|
|
61
|
+
guard = new SocketConnectGuard(socket, options);
|
|
62
|
+
guards.set(socket, guard);
|
|
63
|
+
}
|
|
64
|
+
return guard;
|
|
65
|
+
}
|
|
66
|
+
function connectGuarded(socket, reason, options) {
|
|
67
|
+
return socketConnectGuard(socket, options).connect(reason);
|
|
68
|
+
}
|
|
69
|
+
|
|
6
70
|
function isRateQuotaCode(code) {
|
|
7
71
|
return typeof code === "string" && code.endsWith("_rate_quota_exceeded");
|
|
8
72
|
}
|
|
@@ -294,4 +358,4 @@ function shouldReconnect() {
|
|
|
294
358
|
return true;
|
|
295
359
|
}
|
|
296
360
|
|
|
297
|
-
export { RpcHandlerManager as R, answerSocketRequest as a,
|
|
361
|
+
export { RpcHandlerManager as R, answerSocketRequest as a, safeAck as b, connectGuarded as c, describeSocketAckDrop as d, shouldReconnect as e, isRateQuotaCode as i, pauseForRateQuota as p, socketConnectGuard as s };
|
|
@@ -1,10 +1,74 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var logger = require('./logger-
|
|
3
|
+
var logger = require('./logger-B1k7eZnq.cjs');
|
|
4
4
|
var authRelay = require('./authRelay-BdYkC1Po.cjs');
|
|
5
5
|
var os = require('os');
|
|
6
6
|
var child_process = require('child_process');
|
|
7
7
|
|
|
8
|
+
const CONNECT_PENDING_MAX_MS = 15e3;
|
|
9
|
+
function decideConnect(input) {
|
|
10
|
+
if (input.connected) return "skip-connected";
|
|
11
|
+
if (input.pendingSince === null) return "connect";
|
|
12
|
+
const maxPendingMs = input.maxPendingMs ?? CONNECT_PENDING_MAX_MS;
|
|
13
|
+
const age = input.now - input.pendingSince;
|
|
14
|
+
if (age < 0 || age >= maxPendingMs) return "restart";
|
|
15
|
+
return "skip-pending";
|
|
16
|
+
}
|
|
17
|
+
class SocketConnectGuard {
|
|
18
|
+
constructor(socket, options = {}) {
|
|
19
|
+
this.socket = socket;
|
|
20
|
+
this.options = options;
|
|
21
|
+
this.now = options.now ?? Date.now;
|
|
22
|
+
const clear = () => {
|
|
23
|
+
this.pendingSince = null;
|
|
24
|
+
};
|
|
25
|
+
socket.on("connect", clear);
|
|
26
|
+
socket.on("connect_error", clear);
|
|
27
|
+
socket.on("disconnect", clear);
|
|
28
|
+
if (socket.active && !socket.connected) this.pendingSince = this.now();
|
|
29
|
+
}
|
|
30
|
+
pendingSince = null;
|
|
31
|
+
now;
|
|
32
|
+
connect(reason) {
|
|
33
|
+
const now = this.now();
|
|
34
|
+
const decision = decideConnect({
|
|
35
|
+
connected: this.socket.connected,
|
|
36
|
+
pendingSince: this.pendingSince,
|
|
37
|
+
now,
|
|
38
|
+
maxPendingMs: this.options.maxPendingMs
|
|
39
|
+
});
|
|
40
|
+
if (decision === "skip-connected") return decision;
|
|
41
|
+
if (decision === "skip-pending") {
|
|
42
|
+
this.options.log?.(`[socket-guard] ${reason}: CONNECT pending ${now - this.pendingSince}ms \u2014 not sending another`);
|
|
43
|
+
return decision;
|
|
44
|
+
}
|
|
45
|
+
if (decision === "restart") {
|
|
46
|
+
this.options.log?.(`[socket-guard] ${reason}: CONNECT pending ${now - this.pendingSince}ms \u2014 rebuilding the engine connection`);
|
|
47
|
+
this.pendingSince = null;
|
|
48
|
+
this.socket.disconnect();
|
|
49
|
+
}
|
|
50
|
+
this.pendingSince = now;
|
|
51
|
+
this.socket.connect();
|
|
52
|
+
return decision;
|
|
53
|
+
}
|
|
54
|
+
/** Test/diagnostic view. */
|
|
55
|
+
get pendingSinceMs() {
|
|
56
|
+
return this.pendingSince;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const guards = /* @__PURE__ */ new WeakMap();
|
|
60
|
+
function socketConnectGuard(socket, options) {
|
|
61
|
+
let guard = guards.get(socket);
|
|
62
|
+
if (!guard) {
|
|
63
|
+
guard = new SocketConnectGuard(socket, options);
|
|
64
|
+
guards.set(socket, guard);
|
|
65
|
+
}
|
|
66
|
+
return guard;
|
|
67
|
+
}
|
|
68
|
+
function connectGuarded(socket, reason, options) {
|
|
69
|
+
return socketConnectGuard(socket, options).connect(reason);
|
|
70
|
+
}
|
|
71
|
+
|
|
8
72
|
function isRateQuotaCode(code) {
|
|
9
73
|
return typeof code === "string" && code.endsWith("_rate_quota_exceeded");
|
|
10
74
|
}
|
|
@@ -298,8 +362,10 @@ function shouldReconnect() {
|
|
|
298
362
|
|
|
299
363
|
exports.RpcHandlerManager = RpcHandlerManager;
|
|
300
364
|
exports.answerSocketRequest = answerSocketRequest;
|
|
365
|
+
exports.connectGuarded = connectGuarded;
|
|
301
366
|
exports.describeSocketAckDrop = describeSocketAckDrop;
|
|
302
367
|
exports.isRateQuotaCode = isRateQuotaCode;
|
|
303
368
|
exports.pauseForRateQuota = pauseForRateQuota;
|
|
304
369
|
exports.safeAck = safeAck;
|
|
305
370
|
exports.shouldReconnect = shouldReconnect;
|
|
371
|
+
exports.socketConnectGuard = socketConnectGuard;
|
|
@@ -4,7 +4,7 @@ import { join } from 'node:path';
|
|
|
4
4
|
import tweetnacl from 'tweetnacl';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
import { c as credentialRelayProblem, d as decodeBase64 } from './authRelay-DSAvg1uv.mjs';
|
|
7
|
-
import { c as configuration } from './configuration-
|
|
7
|
+
import { c as configuration } from './configuration-CiBUH72C.mjs';
|
|
8
8
|
|
|
9
9
|
const AgentCredentialsSchema = z.object({
|
|
10
10
|
token: z.string().min(1),
|
|
@@ -6,7 +6,7 @@ var path = require('node:path');
|
|
|
6
6
|
var tweetnacl = require('tweetnacl');
|
|
7
7
|
var z = require('zod');
|
|
8
8
|
var authRelay = require('./authRelay-BdYkC1Po.cjs');
|
|
9
|
-
var configuration = require('./configuration-
|
|
9
|
+
var configuration = require('./configuration-PXAE4-FP.cjs');
|
|
10
10
|
|
|
11
11
|
const AgentCredentialsSchema = z.z.object({
|
|
12
12
|
token: z.z.string().min(1),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { inspect } from 'node:util';
|
|
3
|
-
import { d as appendPrivateFileSync, c as configuration } from './configuration-
|
|
3
|
+
import { d as appendPrivateFileSync, c as configuration } from './configuration-CiBUH72C.mjs';
|
|
4
4
|
import { existsSync, readdirSync, statSync } from 'node:fs';
|
|
5
5
|
import { join, basename } from 'node:path';
|
|
6
6
|
|
|
@@ -236,7 +236,7 @@ async function listDaemonLogFiles(limit = 50) {
|
|
|
236
236
|
return { file, path: fullPath, modified: stats.mtime };
|
|
237
237
|
}).sort((a, b) => b.modified.getTime() - a.modified.getTime());
|
|
238
238
|
try {
|
|
239
|
-
const { readDaemonState } = await import('./persistence-
|
|
239
|
+
const { readDaemonState } = await import('./persistence-C_xFQLsD.mjs');
|
|
240
240
|
const state = await readDaemonState();
|
|
241
241
|
if (!state) {
|
|
242
242
|
return logs;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var node_util = require('node:util');
|
|
5
|
-
var configuration = require('./configuration-
|
|
5
|
+
var configuration = require('./configuration-PXAE4-FP.cjs');
|
|
6
6
|
var node_fs = require('node:fs');
|
|
7
7
|
var path = require('node:path');
|
|
8
8
|
|
|
@@ -238,7 +238,7 @@ async function listDaemonLogFiles(limit = 50) {
|
|
|
238
238
|
return { file, path: fullPath, modified: stats.mtime };
|
|
239
239
|
}).sort((a, b) => b.modified.getTime() - a.modified.getTime());
|
|
240
240
|
try {
|
|
241
|
-
const { readDaemonState } = await Promise.resolve().then(function () { return require('./persistence-
|
|
241
|
+
const { readDaemonState } = await Promise.resolve().then(function () { return require('./persistence-d3ZyER6o.cjs'); });
|
|
242
242
|
const state = await readDaemonState();
|
|
243
243
|
if (!state) {
|
|
244
244
|
return logs;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import os from 'node:os';
|
|
2
|
-
import { p as packageJson } from './package-
|
|
3
|
-
import { c as configuration } from './configuration-
|
|
2
|
+
import { p as packageJson } from './package-tVYgFJoK.mjs';
|
|
3
|
+
import { c as configuration } from './configuration-CiBUH72C.mjs';
|
|
4
4
|
import { p as projectPath } from './projectPath-BTBIMB57.mjs';
|
|
5
5
|
import { d as detectCLIAvailability } from './detectCLI-CSGMlV51.mjs';
|
|
6
|
-
import { d as detectResumeSupport } from './localHappyAgentAuth-
|
|
6
|
+
import { d as detectResumeSupport } from './localHappyAgentAuth-C7rDePjF.mjs';
|
|
7
7
|
|
|
8
8
|
function buildInitialMachineMetadata(cliAvailability) {
|
|
9
9
|
const hostSuffix = process.env.HAPPY_VARIANT === "dev" ? "-dev" : "";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var os = require('node:os');
|
|
4
|
-
var _package = require('./package-
|
|
5
|
-
var configuration = require('./configuration-
|
|
4
|
+
var _package = require('./package-CC_txQ31.cjs');
|
|
5
|
+
var configuration = require('./configuration-PXAE4-FP.cjs');
|
|
6
6
|
var projectPath = require('./projectPath-ChLhdOyt.cjs');
|
|
7
7
|
var detectCLI = require('./detectCLI-DR9ZaN6B.cjs');
|
|
8
|
-
var localHappyAgentAuth = require('./localHappyAgentAuth-
|
|
8
|
+
var localHappyAgentAuth = require('./localHappyAgentAuth-CboZb3_a.cjs');
|
|
9
9
|
|
|
10
10
|
function buildInitialMachineMetadata(cliAvailability) {
|
|
11
11
|
const hostSuffix = process.env.HAPPY_VARIANT === "dev" ? "-dev" : "";
|