very-happy-cli 0.2.158 → 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.
- package/dist/{AcpBackend-DIDRig5G.cjs → AcpBackend-Bm2rdke8.cjs} +78 -76
- package/dist/{AcpBackend-vDVLHuYJ.mjs → AcpBackend-mzv8Dhba.mjs} +4 -2
- package/dist/{AcpSessionManager-C44U99CC.cjs → AcpSessionManager-BAY1Pggx.cjs} +9 -9
- package/dist/{AcpSessionManager-CmRjfhn3.mjs → AcpSessionManager-CoMWFVw3.mjs} +1 -1
- package/dist/BasePermissionHandler-CFHAxumV.cjs +157 -0
- package/dist/BasePermissionHandler-m3WVholL.mjs +155 -0
- package/dist/BaseReasoningProcessor-BFa9_rZA.cjs +200 -0
- package/dist/BaseReasoningProcessor-CYrKBXGm.mjs +198 -0
- package/dist/RemoteModeDisplay-D-HewyXg.mjs +150 -0
- package/dist/RemoteModeDisplay-NC1gPHtj.cjs +153 -0
- package/dist/agentAttachments-Dbw8iMCZ.cjs +20 -0
- package/dist/agentAttachments-M_B5qEF2.mjs +18 -0
- package/dist/agentGuidance-B5NATuFa.cjs +28 -0
- package/dist/agentGuidance-CQuNlNx8.mjs +20 -0
- package/dist/{agentHome-Dw8Jx_CJ.cjs → agentHome-CboCeKWq.cjs} +14 -28
- package/dist/{agentHome-CyLmGH5L.mjs → agentHome-Dj1C43aJ.mjs} +8 -22
- package/dist/api-CLMUr-SX.mjs +3339 -0
- package/dist/api-CgundNNX.cjs +3346 -0
- package/dist/{types-DIBF4U0Y.mjs → apiMachine-B9dLW_p5.mjs} +9116 -16015
- package/dist/{types-DnrPeN80.cjs → apiMachine-Bn8482VM.cjs} +9104 -16057
- package/dist/assistantTools-BTqPnlFl.cjs +380 -0
- package/dist/assistantTools-D6tuc6o4.mjs +376 -0
- package/dist/attachmentContent-DpiTJZb4.cjs +88 -0
- package/dist/attachmentContent-_kxRznNf.mjs +82 -0
- package/dist/attachmentLimits-CzVrqgLR.cjs +354 -0
- package/dist/attachmentLimits-yba1uHFO.mjs +348 -0
- package/dist/auth-BDOVh5h5.cjs +220 -0
- package/dist/auth-Cwutmdsa.mjs +225 -0
- package/dist/auth-PYHZQNPp.mjs +218 -0
- package/dist/auth-ba4WMYrN.cjs +227 -0
- package/dist/authRelay-BdYkC1Po.cjs +156 -0
- package/dist/authRelay-DSAvg1uv.mjs +143 -0
- package/dist/{auto-DZbNcTXx.cjs → auto-BOX_fgmR.cjs} +70 -79
- package/dist/{auto-BlMZPwOk.mjs → auto-BXu14yP_.mjs} +27 -36
- package/dist/backgroundTaskActivity-8PdPxrvy.mjs +149 -0
- package/dist/backgroundTaskActivity-CBvUdj39.cjs +157 -0
- package/dist/bootstrap-B5G1TijC.cjs +116 -0
- package/dist/bootstrap-hxXPCFMx.mjs +112 -0
- package/dist/browser-Y6Bl8L_O.cjs +22 -0
- package/dist/browser-jh2P0UVZ.mjs +20 -0
- package/dist/claudeCliPath-BqkaH2oR.mjs +8 -0
- package/dist/claudeCliPath-U4HHmV4r.cjs +10 -0
- package/dist/claudeLocal-BaY4fZKi.mjs +339 -0
- package/dist/claudeLocal-CRGG4Pea.cjs +343 -0
- package/dist/claudeLocalLauncher-D4T7MTqd.mjs +152 -0
- package/dist/claudeLocalLauncher-DyEbVzUN.cjs +154 -0
- package/dist/cliUpdate-DsKXPFYp.cjs +120 -0
- package/dist/cliUpdate-Y34VGe9Y.mjs +112 -0
- package/dist/client-3Ac-O4pw.cjs +104 -0
- package/dist/client-BPNbmtvO.cjs +119 -0
- package/dist/client-CeGKqqcJ.mjs +100 -0
- package/dist/client-ClR0K8zX.mjs +112 -0
- package/dist/codex/happyMcpStdioBridge.cjs +33 -14
- package/dist/codex/happyMcpStdioBridge.mjs +26 -7
- package/dist/codexAppServerClient-I3teiV-N.mjs +1088 -0
- package/dist/codexAppServerClient-q2FjnRcK.cjs +1090 -0
- package/dist/codexCommand-4zcccIoq.cjs +2088 -0
- package/dist/codexCommand-Cc9gcbdX.mjs +2086 -0
- package/dist/codexThreadFork-BH9IZPqD.cjs +350 -0
- package/dist/codexThreadFork-slzAseLx.mjs +338 -0
- package/dist/{config-BtPArqRH.mjs → config-CTx_jb-C.mjs} +7 -40
- package/dist/{config-DG84bjwF.cjs → config-Ci9Kpgwa.cjs} +26 -59
- package/dist/configuration-BSYpcPwE.cjs +181 -0
- package/dist/configuration-RfeNjFmd.mjs +170 -0
- package/dist/connect-BpOdzNbE.mjs +682 -0
- package/dist/connect-C2CiOUFs.cjs +684 -0
- package/dist/constants-BC4St0xd.mjs +11 -0
- package/dist/constants-VJ0N6WuG.cjs +17 -0
- package/dist/contentLogMetadata-BlWI0egu.mjs +51 -0
- package/dist/contentLogMetadata-ZSFk_NjQ.cjs +54 -0
- package/dist/context-DsDr6E2t.cjs +69 -0
- package/dist/context-H0Bcb9S_.mjs +65 -0
- package/dist/controlClient-BGbDcgWS.mjs +260 -0
- package/dist/controlClient-Bcwv3D21.cjs +279 -0
- package/dist/createSessionMetadata-BJxEnM-o.cjs +58 -0
- package/dist/createSessionMetadata-CVVkGjxV.mjs +54 -0
- package/dist/defaultPermissionMode-BnxJPVHT.mjs +4 -0
- package/dist/defaultPermissionMode-CxmTXUQR.cjs +7 -0
- package/dist/detectCLI-CSGMlV51.mjs +58 -0
- package/dist/detectCLI-DR9ZaN6B.cjs +61 -0
- package/dist/deterministicJson-C5CYTVpm.cjs +507 -0
- package/dist/deterministicJson-CzkFJWw1.mjs +502 -0
- package/dist/doctor-BPkYWSuq.mjs +75 -0
- package/dist/doctor-D2YJ-Yn2.cjs +395 -0
- package/dist/doctor-DOvByjbk.mjs +391 -0
- package/dist/doctor-u46qYYKX.cjs +79 -0
- package/dist/doctorReadiness-BCZGcN0a.cjs +151 -0
- package/dist/doctorReadiness-C208SMN9.mjs +142 -0
- package/dist/editPaths-BVfS_FFL.mjs +68 -0
- package/dist/editPaths-Bqp4OFPw.cjs +73 -0
- package/dist/ensureDaemonRunning-BCwNrMyv.cjs +64 -0
- package/dist/ensureDaemonRunning-Dqa2pOjY.mjs +61 -0
- package/dist/handleResumeCommand-BvXYf5El.mjs +240 -0
- package/dist/handleResumeCommand-C2cKchpX.cjs +245 -0
- package/dist/ids-B6ZC0HGt.cjs +13 -0
- package/dist/ids-DU6sLx4C.mjs +10 -0
- package/dist/index-B6UGRQ7h.mjs +102 -0
- package/dist/{index-DPCsWlWK.cjs → index-B6pAdvJx.cjs} +131 -91
- package/dist/index-Bu5Zi_a9.cjs +182 -0
- package/dist/index-D3kI0hDR.cjs +107 -0
- package/dist/index-DA7yINuk.cjs +994 -0
- package/dist/index-DDeHXrIX.cjs +71 -0
- package/dist/index-DKLU_fD0.mjs +158 -0
- package/dist/{index-ZChGsuB7.mjs → index-DMZqWwsP.mjs} +79 -39
- package/dist/index-DVkMGPyS.mjs +68 -0
- package/dist/index-qdS1friN.mjs +949 -0
- package/dist/index.cjs +5 -46
- package/dist/index.mjs +5 -46
- package/dist/{install-DarS_Wco.mjs → install-BO_W7VhL.mjs} +37 -37
- package/dist/install-BgoC2e_2.cjs +88 -0
- package/dist/install-CFY3tYtJ.mjs +86 -0
- package/dist/{install-wKQGgXvN.cjs → install-Cs5qAPrB.cjs} +38 -38
- package/dist/{installPiTools-DuZ6jZvX.cjs → installPiTools-BKnXjrVu.cjs} +2 -3
- package/dist/{installPiTools-Cj7yU9Fc.mjs → installPiTools-B_CdM5_2.mjs} +1 -2
- package/dist/{installTerminalHooks-DcQfee_O.cjs → installTerminalHooks-BQZbvxsZ.cjs} +5 -40
- package/dist/{installTerminalHooks-CpNbRFPz.mjs → installTerminalHooks-By7gBMEF.mjs} +3 -38
- package/dist/lib.cjs +28 -19
- package/dist/lib.d.cts +126 -2
- package/dist/lib.d.mts +126 -2
- package/dist/lib.mjs +23 -14
- package/dist/lidState-BeDfxxEX.cjs +305 -0
- package/dist/lidState-CeEt442o.mjs +297 -0
- package/dist/limits-C-a7gr04.cjs +43 -0
- package/dist/limits-DIo7rEBR.mjs +36 -0
- package/dist/localHappyAgentAuth-C-HQyiv6.mjs +82 -0
- package/dist/localHappyAgentAuth-D6rFhaoc.cjs +86 -0
- package/dist/logger-6HYUEXNk.mjs +271 -0
- package/dist/logger-CS0mw3fa.cjs +275 -0
- package/dist/loginShellEnv-BkuYtExZ.cjs +182 -0
- package/dist/loginShellEnv-Dw8M7tkI.mjs +167 -0
- package/dist/machineMetadata-DyDbODYd.cjs +41 -0
- package/dist/machineMetadata-oOzBfDfs.mjs +38 -0
- package/dist/main-BkxJP6JQ.cjs +941 -0
- package/dist/main-BwNIAI1A.mjs +939 -0
- package/dist/manager-BQ4flvQZ.mjs +101 -0
- package/dist/manager-Cly8xVIR.cjs +105 -0
- package/dist/{mcp-BN6bKIGb.mjs → mcp-B1A4I3TK.mjs} +27 -33
- package/dist/{mcp-DGdeUUDJ.cjs → mcp-Hszd7qpS.cjs} +42 -48
- package/dist/messageBuffer-BWlGgR3A.mjs +71 -0
- package/dist/messageBuffer-fJMH6uY8.cjs +73 -0
- package/dist/mirrorProtocol-BNLtoWjO.mjs +170 -0
- package/dist/mirrorProtocol-BUtmg1ws.cjs +186 -0
- package/dist/oneShotPrompts-CL0dip9C.cjs +16 -0
- package/dist/oneShotPrompts-DT4p6RNd.mjs +12 -0
- package/dist/package-BhaKlnxz.mjs +171 -0
- package/dist/package-BwMrPwqH.cjs +173 -0
- package/dist/path-B7zW-WwE.cjs +18 -0
- package/dist/path-D2wdaNSk.mjs +15 -0
- package/dist/peerTools-BTqw97Gb.mjs +272 -0
- package/dist/peerTools-BvKtHXj8.cjs +283 -0
- package/dist/permissionMode-Cr5JCbB7.mjs +80 -0
- package/dist/permissionMode-CrV-XuMs.cjs +87 -0
- package/dist/persistence-HGW_ZVs9.mjs +372 -0
- package/dist/persistence-yKTH3-5X.cjs +414 -0
- package/dist/piExtension.mjs +2 -1
- package/dist/piRunnerArgs-BNloJCCg.cjs +66 -0
- package/dist/piRunnerArgs-BuX1UFWy.mjs +59 -0
- package/dist/{piRuntime-bkw2NAZU.mjs → piRuntime-CSGkwCKQ.mjs} +2 -2
- package/dist/{piRuntime-3qtbKujX.cjs → piRuntime-C_H7MJCM.cjs} +4 -4
- package/dist/{piTerminal-DilKwM7B.mjs → piTerminal-C8a1OrNQ.mjs} +32 -35
- package/dist/{piTerminal-BYxp3LMr.cjs → piTerminal-DNCZ6yTM.cjs} +32 -35
- package/dist/previewPath-B0rBdhy1.cjs +83 -0
- package/dist/previewPath-CXN4Vag0.mjs +81 -0
- package/dist/projectPath-BTBIMB57.mjs +10 -0
- package/dist/projectPath-ChLhdOyt.cjs +13 -0
- package/dist/registerCommonHandlers-Ccvsz7Ou.mjs +536 -0
- package/dist/registerCommonHandlers-DskirN-_.cjs +538 -0
- package/dist/registerKillSessionHandler-DZeLXWcB.cjs +361 -0
- package/dist/registerKillSessionHandler-GYvHdipX.mjs +358 -0
- package/dist/remoteSessionClient-B0LraSB9.cjs +634 -0
- package/dist/remoteSessionClient-CYnXRynE.mjs +612 -0
- package/dist/resources-BdFBQi8r.mjs +117 -0
- package/dist/resources-JDPugcDq.cjs +120 -0
- package/dist/run-CJzxoHVh.cjs +5762 -0
- package/dist/run-D3ifupU3.mjs +5739 -0
- package/dist/runClaude-Ba01qT-u.mjs +848 -0
- package/dist/runClaude-Da3RirzE.cjs +850 -0
- package/dist/runClaudeDeps-DOt79DjU.mjs +3624 -0
- package/dist/runClaudeDeps-DOzEBMls.cjs +3649 -0
- package/dist/{runGemini-Cjii069p.mjs → runGemini-BGeTz57m.mjs} +58 -31
- package/dist/{runGemini-28O2sqyI.cjs → runGemini-DSr9LIxL.cjs} +202 -175
- package/dist/{runOpenClaw-CiMZad-H.cjs → runOpenClaw-B1mTxN35.cjs} +64 -65
- package/dist/{runOpenClaw-jaLr7KF1.mjs → runOpenClaw-CogSedIc.mjs} +31 -32
- package/dist/sandbox-CG7IyDTU.cjs +187 -0
- package/dist/sandbox-DTe6d54R.mjs +180 -0
- package/dist/selfCheck-C9mVrQwf.mjs +84 -0
- package/dist/selfCheck-Dc-mNSLb.cjs +87 -0
- package/dist/{send-D5ejHPXG.cjs → send-B7J_eaG3.cjs} +16 -9
- package/dist/{send-C9mOtChi.mjs → send-CBXJKc6O.mjs} +12 -5
- package/dist/server-CZTP_iOn.cjs +407 -0
- package/dist/server-DcVBv04l.mjs +404 -0
- package/dist/sessionLock-Bys1PNSo.cjs +205 -0
- package/dist/sessionLock-D-EG2CfG.mjs +197 -0
- package/dist/sessionModeFile-DMl3dw3r.mjs +32 -0
- package/dist/sessionModeFile-RSm0NQkH.cjs +36 -0
- package/dist/sessionOps-Dn8z85h_.cjs +783 -0
- package/dist/sessionOps-SuHW8Dfe.mjs +760 -0
- package/dist/sessionScanner-BOrGjMXL.cjs +209 -0
- package/dist/sessionScanner-CX3onqXh.mjs +206 -0
- package/dist/{sessions-W6771g3X.mjs → sessions-BEG_HTSi.mjs} +17 -8
- package/dist/{sessions-BNMPQoLE.cjs → sessions-D74aJbhL.cjs} +37 -28
- package/dist/setupOfflineReconnection-ByElY60m.cjs +74 -0
- package/dist/setupOfflineReconnection-DpvWTt69.mjs +72 -0
- package/dist/smallFastModel-BLNgMrwR.mjs +18 -0
- package/dist/smallFastModel-D_uxGMo3.cjs +21 -0
- package/dist/{spawn-D0QVhzRb.mjs → spawn-B7yro0b2.mjs} +26 -38
- package/dist/{spawn-Ddtom1cb.cjs → spawn-DgR0RKRs.cjs} +52 -64
- package/dist/spawnAgents-BGQiEF-w.cjs +52 -0
- package/dist/spawnAgents-DZzZ9jMI.mjs +45 -0
- package/dist/spawnHappyCLI-B2H5s4B_.mjs +64 -0
- package/dist/spawnHappyCLI-DBhwZT7O.cjs +66 -0
- package/dist/specialCommands-BSqhYg5X.mjs +52 -0
- package/dist/specialCommands-DSsTeRej.cjs +54 -0
- package/dist/startFileWatcher-B4VsLgjD.cjs +71 -0
- package/dist/startFileWatcher-DErVWZE4.mjs +69 -0
- package/dist/startupPlan-BLMbfQIH.cjs +12 -0
- package/dist/startupPlan-DFMyNgAs.mjs +10 -0
- package/dist/streamRelay-BiKw59Cc.cjs +233 -0
- package/dist/streamRelay-FPVbHpbM.mjs +231 -0
- package/dist/sync-C8gyQFMc.mjs +69 -0
- package/dist/sync-DccIKZ5_.cjs +71 -0
- package/dist/systemPrompt-BwTPWfMu.cjs +97 -0
- package/dist/systemPrompt-DX521JJz.mjs +94 -0
- package/dist/{teams-CqSwtw2O.mjs → teams-C32F1hqd.mjs} +9 -40
- package/dist/{teams-BZ1tayg_.cjs → teams-Dl8g8kTI.cjs} +14 -45
- package/dist/template-BaHAmH2K.cjs +129 -0
- package/dist/template-CiOPa2rd.mjs +121 -0
- package/dist/{terminalTitleSuggest-DKgX3osW.mjs → terminalTitleSuggest-CeKsX_V6.mjs} +1 -9
- package/dist/{terminalTitleSuggest-Dji8I0Jy.cjs → terminalTitleSuggest-DhvRFX3H.cjs} +0 -10
- package/dist/terminals-B_bfC9c2.cjs +250 -0
- package/dist/terminals-Dlg0x3nY.mjs +235 -0
- package/dist/time-D0XyHOid.mjs +38 -0
- package/dist/time-DCuTyook.cjs +42 -0
- package/dist/titleGenerator-CQ8CoGhg.mjs +166 -0
- package/dist/titleGenerator-ChzMJsyg.cjs +172 -0
- package/dist/tmuxSocket-B8Yx20sT.mjs +19 -0
- package/dist/tmuxSocket-D-Xt6Vn-.cjs +24 -0
- package/dist/{todo-BYMg0fR0.cjs → todo-BvUOTa8G.cjs} +15 -12
- package/dist/{todo-BbusB1zM.mjs → todo-CZ6cFrrn.mjs} +11 -8
- package/dist/tools-BZtHF_qQ.mjs +177 -0
- package/dist/tools-Be3AoAwu.cjs +63 -0
- package/dist/tools-DQj0AeLk.cjs +180 -0
- package/dist/tools-DkluDcG4.mjs +60 -0
- package/dist/trimIdent-4gvk9Wk6.cjs +22 -0
- package/dist/trimIdent-BAjmv_TG.mjs +20 -0
- package/dist/types-CRS-srZK.cjs +66 -0
- package/dist/types-CkqAACXx.mjs +64 -0
- package/dist/uninstall-BkLzaJ6I.mjs +47 -0
- package/dist/uninstall-x-TUtf5H.cjs +49 -0
- package/package.json +7 -7
- package/dist/agentGuidance-CrR9l62U.mjs +0 -2145
- package/dist/agentGuidance-DwOWbX55.cjs +0 -2217
- package/dist/index-BG932eCh.cjs +0 -19655
- package/dist/index-CVCt3kSt.mjs +0 -19591
- package/dist/index-D5ScEErM.cjs +0 -58
- package/dist/index-DgO0FHOx.mjs +0 -52
- package/dist/limits-D2uN090G.mjs +0 -2528
- package/dist/limits-kqFqhfsh.cjs +0 -2652
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var z = require('zod');
|
|
4
|
+
|
|
5
|
+
const UsageSchema = z.z.object({
|
|
6
|
+
input_tokens: z.z.number().int().nonnegative(),
|
|
7
|
+
cache_creation_input_tokens: z.z.number().int().nonnegative().optional(),
|
|
8
|
+
cache_read_input_tokens: z.z.number().int().nonnegative().optional(),
|
|
9
|
+
output_tokens: z.z.number().int().nonnegative(),
|
|
10
|
+
service_tier: z.z.string().optional()
|
|
11
|
+
}).passthrough();
|
|
12
|
+
const RawJSONLinesSchema = z.z.discriminatedUnion("type", [
|
|
13
|
+
// User message - validates uuid and message.content
|
|
14
|
+
z.z.object({
|
|
15
|
+
type: z.z.literal("user"),
|
|
16
|
+
isSidechain: z.z.boolean().optional(),
|
|
17
|
+
isMeta: z.z.boolean().optional(),
|
|
18
|
+
uuid: z.z.string(),
|
|
19
|
+
// Used in getMessageKey()
|
|
20
|
+
message: z.z.object({
|
|
21
|
+
content: z.z.union([z.z.string(), z.z.any()])
|
|
22
|
+
// Used in sessionScanner.ts
|
|
23
|
+
}).passthrough()
|
|
24
|
+
}).passthrough(),
|
|
25
|
+
// Assistant message - only validates uuid and type
|
|
26
|
+
// message object is optional to handle synthetic error messages (isApiErrorMessage: true)
|
|
27
|
+
// which may have different structure than normal assistant messages
|
|
28
|
+
z.z.object({
|
|
29
|
+
uuid: z.z.string(),
|
|
30
|
+
type: z.z.literal("assistant"),
|
|
31
|
+
message: z.z.object({
|
|
32
|
+
usage: UsageSchema.optional(),
|
|
33
|
+
// Used in apiSession.ts
|
|
34
|
+
model: z.z.string().optional()
|
|
35
|
+
// Used for cost calculation
|
|
36
|
+
}).passthrough().optional()
|
|
37
|
+
}).passthrough(),
|
|
38
|
+
// Summary message - validates summary and leafUuid
|
|
39
|
+
z.z.object({
|
|
40
|
+
type: z.z.literal("summary"),
|
|
41
|
+
summary: z.z.string(),
|
|
42
|
+
// Used in apiSession.ts
|
|
43
|
+
leafUuid: z.z.string()
|
|
44
|
+
// Used in getMessageKey()
|
|
45
|
+
}).passthrough(),
|
|
46
|
+
// System message - validates uuid
|
|
47
|
+
z.z.object({
|
|
48
|
+
type: z.z.literal("system"),
|
|
49
|
+
uuid: z.z.string()
|
|
50
|
+
// Used in getMessageKey()
|
|
51
|
+
}).passthrough(),
|
|
52
|
+
// Result message - SDK turn-completion summary. Carries per-turn cost,
|
|
53
|
+
// duration, turn count and cumulative usage so the app can render them.
|
|
54
|
+
z.z.object({
|
|
55
|
+
type: z.z.literal("result"),
|
|
56
|
+
subtype: z.z.string().optional(),
|
|
57
|
+
is_error: z.z.boolean().optional(),
|
|
58
|
+
result: z.z.string().optional(),
|
|
59
|
+
total_cost_usd: z.z.number().optional(),
|
|
60
|
+
duration_ms: z.z.number().optional(),
|
|
61
|
+
num_turns: z.z.number().optional(),
|
|
62
|
+
usage: UsageSchema.optional()
|
|
63
|
+
}).passthrough()
|
|
64
|
+
]);
|
|
65
|
+
|
|
66
|
+
exports.RawJSONLinesSchema = RawJSONLinesSchema;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
|
|
3
|
+
const UsageSchema = z.object({
|
|
4
|
+
input_tokens: z.number().int().nonnegative(),
|
|
5
|
+
cache_creation_input_tokens: z.number().int().nonnegative().optional(),
|
|
6
|
+
cache_read_input_tokens: z.number().int().nonnegative().optional(),
|
|
7
|
+
output_tokens: z.number().int().nonnegative(),
|
|
8
|
+
service_tier: z.string().optional()
|
|
9
|
+
}).passthrough();
|
|
10
|
+
const RawJSONLinesSchema = z.discriminatedUnion("type", [
|
|
11
|
+
// User message - validates uuid and message.content
|
|
12
|
+
z.object({
|
|
13
|
+
type: z.literal("user"),
|
|
14
|
+
isSidechain: z.boolean().optional(),
|
|
15
|
+
isMeta: z.boolean().optional(),
|
|
16
|
+
uuid: z.string(),
|
|
17
|
+
// Used in getMessageKey()
|
|
18
|
+
message: z.object({
|
|
19
|
+
content: z.union([z.string(), z.any()])
|
|
20
|
+
// Used in sessionScanner.ts
|
|
21
|
+
}).passthrough()
|
|
22
|
+
}).passthrough(),
|
|
23
|
+
// Assistant message - only validates uuid and type
|
|
24
|
+
// message object is optional to handle synthetic error messages (isApiErrorMessage: true)
|
|
25
|
+
// which may have different structure than normal assistant messages
|
|
26
|
+
z.object({
|
|
27
|
+
uuid: z.string(),
|
|
28
|
+
type: z.literal("assistant"),
|
|
29
|
+
message: z.object({
|
|
30
|
+
usage: UsageSchema.optional(),
|
|
31
|
+
// Used in apiSession.ts
|
|
32
|
+
model: z.string().optional()
|
|
33
|
+
// Used for cost calculation
|
|
34
|
+
}).passthrough().optional()
|
|
35
|
+
}).passthrough(),
|
|
36
|
+
// Summary message - validates summary and leafUuid
|
|
37
|
+
z.object({
|
|
38
|
+
type: z.literal("summary"),
|
|
39
|
+
summary: z.string(),
|
|
40
|
+
// Used in apiSession.ts
|
|
41
|
+
leafUuid: z.string()
|
|
42
|
+
// Used in getMessageKey()
|
|
43
|
+
}).passthrough(),
|
|
44
|
+
// System message - validates uuid
|
|
45
|
+
z.object({
|
|
46
|
+
type: z.literal("system"),
|
|
47
|
+
uuid: z.string()
|
|
48
|
+
// Used in getMessageKey()
|
|
49
|
+
}).passthrough(),
|
|
50
|
+
// Result message - SDK turn-completion summary. Carries per-turn cost,
|
|
51
|
+
// duration, turn count and cumulative usage so the app can render them.
|
|
52
|
+
z.object({
|
|
53
|
+
type: z.literal("result"),
|
|
54
|
+
subtype: z.string().optional(),
|
|
55
|
+
is_error: z.boolean().optional(),
|
|
56
|
+
result: z.string().optional(),
|
|
57
|
+
total_cost_usd: z.number().optional(),
|
|
58
|
+
duration_ms: z.number().optional(),
|
|
59
|
+
num_turns: z.number().optional(),
|
|
60
|
+
usage: UsageSchema.optional()
|
|
61
|
+
}).passthrough()
|
|
62
|
+
]);
|
|
63
|
+
|
|
64
|
+
export { RawJSONLinesSchema as R };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { l as logger } from './logger-6HYUEXNk.mjs';
|
|
2
|
+
import { existsSync, unlinkSync } from 'fs';
|
|
3
|
+
import { execSync } from 'child_process';
|
|
4
|
+
import 'chalk';
|
|
5
|
+
import 'node:util';
|
|
6
|
+
import './configuration-RfeNjFmd.mjs';
|
|
7
|
+
import 'node:fs';
|
|
8
|
+
import 'node:os';
|
|
9
|
+
import 'node:path';
|
|
10
|
+
import './package-BhaKlnxz.mjs';
|
|
11
|
+
import 'node:fs/promises';
|
|
12
|
+
|
|
13
|
+
const PLIST_LABEL = "com.happy-cli.daemon";
|
|
14
|
+
const PLIST_FILE = `/Library/LaunchDaemons/${PLIST_LABEL}.plist`;
|
|
15
|
+
async function uninstall$1() {
|
|
16
|
+
try {
|
|
17
|
+
if (!existsSync(PLIST_FILE)) {
|
|
18
|
+
logger.info("Daemon plist not found. Nothing to uninstall.");
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
try {
|
|
22
|
+
execSync(`launchctl unload ${PLIST_FILE}`, { stdio: "inherit" });
|
|
23
|
+
logger.info("Daemon stopped successfully");
|
|
24
|
+
} catch (error) {
|
|
25
|
+
logger.info("Failed to unload daemon (it might not be running)");
|
|
26
|
+
}
|
|
27
|
+
unlinkSync(PLIST_FILE);
|
|
28
|
+
logger.info(`Removed daemon plist from ${PLIST_FILE}`);
|
|
29
|
+
logger.info("Daemon uninstalled successfully");
|
|
30
|
+
} catch (error) {
|
|
31
|
+
logger.debug("Failed to uninstall daemon:", error);
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async function uninstall() {
|
|
37
|
+
if (process.platform !== "darwin") {
|
|
38
|
+
throw new Error("Daemon uninstallation is currently only supported on macOS");
|
|
39
|
+
}
|
|
40
|
+
if (process.getuid && process.getuid() !== 0) {
|
|
41
|
+
throw new Error("Daemon uninstallation requires sudo privileges. Please run with sudo.");
|
|
42
|
+
}
|
|
43
|
+
logger.info("Uninstalling Happy CLI daemon for macOS...");
|
|
44
|
+
await uninstall$1();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { uninstall };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var logger = require('./logger-CS0mw3fa.cjs');
|
|
4
|
+
var fs = require('fs');
|
|
5
|
+
var child_process = require('child_process');
|
|
6
|
+
require('chalk');
|
|
7
|
+
require('node:util');
|
|
8
|
+
require('./configuration-BSYpcPwE.cjs');
|
|
9
|
+
require('node:fs');
|
|
10
|
+
require('node:os');
|
|
11
|
+
require('node:path');
|
|
12
|
+
require('./package-BwMrPwqH.cjs');
|
|
13
|
+
require('node:fs/promises');
|
|
14
|
+
|
|
15
|
+
const PLIST_LABEL = "com.happy-cli.daemon";
|
|
16
|
+
const PLIST_FILE = `/Library/LaunchDaemons/${PLIST_LABEL}.plist`;
|
|
17
|
+
async function uninstall$1() {
|
|
18
|
+
try {
|
|
19
|
+
if (!fs.existsSync(PLIST_FILE)) {
|
|
20
|
+
logger.logger.info("Daemon plist not found. Nothing to uninstall.");
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
child_process.execSync(`launchctl unload ${PLIST_FILE}`, { stdio: "inherit" });
|
|
25
|
+
logger.logger.info("Daemon stopped successfully");
|
|
26
|
+
} catch (error) {
|
|
27
|
+
logger.logger.info("Failed to unload daemon (it might not be running)");
|
|
28
|
+
}
|
|
29
|
+
fs.unlinkSync(PLIST_FILE);
|
|
30
|
+
logger.logger.info(`Removed daemon plist from ${PLIST_FILE}`);
|
|
31
|
+
logger.logger.info("Daemon uninstalled successfully");
|
|
32
|
+
} catch (error) {
|
|
33
|
+
logger.logger.debug("Failed to uninstall daemon:", error);
|
|
34
|
+
throw error;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
async function uninstall() {
|
|
39
|
+
if (process.platform !== "darwin") {
|
|
40
|
+
throw new Error("Daemon uninstallation is currently only supported on macOS");
|
|
41
|
+
}
|
|
42
|
+
if (process.getuid && process.getuid() !== 0) {
|
|
43
|
+
throw new Error("Daemon uninstallation requires sudo privileges. Please run with sudo.");
|
|
44
|
+
}
|
|
45
|
+
logger.logger.info("Uninstalling Happy CLI daemon for macOS...");
|
|
46
|
+
await uninstall$1();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
exports.uninstall = uninstall;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "very-happy-cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.160",
|
|
4
4
|
"description": "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.",
|
|
5
5
|
"author": "Kirill Dubovitskiy",
|
|
6
6
|
"contributors": [
|
|
@@ -117,12 +117,12 @@
|
|
|
117
117
|
"zod": "^4.0.0"
|
|
118
118
|
},
|
|
119
119
|
"optionalDependencies": {
|
|
120
|
-
"very-happy-tools-arm64-darwin": "0.2.
|
|
121
|
-
"very-happy-tools-x64-darwin": "0.2.
|
|
122
|
-
"very-happy-tools-arm64-linux": "0.2.
|
|
123
|
-
"very-happy-tools-x64-linux": "0.2.
|
|
124
|
-
"very-happy-tools-arm64-win32": "0.2.
|
|
125
|
-
"very-happy-tools-x64-win32": "0.2.
|
|
120
|
+
"very-happy-tools-arm64-darwin": "0.2.160",
|
|
121
|
+
"very-happy-tools-x64-darwin": "0.2.160",
|
|
122
|
+
"very-happy-tools-arm64-linux": "0.2.160",
|
|
123
|
+
"very-happy-tools-x64-linux": "0.2.160",
|
|
124
|
+
"very-happy-tools-arm64-win32": "0.2.160",
|
|
125
|
+
"very-happy-tools-x64-win32": "0.2.160"
|
|
126
126
|
},
|
|
127
127
|
"devDependencies": {
|
|
128
128
|
"@slopus/happy-wire": "workspace:*",
|