very-happy-cli 0.2.142 → 0.2.143
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-DJsqfgjD.cjs → AcpBackend-B8oehrfU.cjs} +2 -2
- package/dist/{AcpBackend-D2LqY2to.mjs → AcpBackend-LEgn9vol.mjs} +2 -2
- package/dist/{AcpSessionManager-CTfDxziP.cjs → AcpSessionManager-BomdfyhZ.cjs} +1 -1
- package/dist/{AcpSessionManager-CdeM5KD9.mjs → AcpSessionManager-Yfbs5bi2.mjs} +1 -1
- package/dist/{agentGuidance-Cz8QVcX3.mjs → agentGuidance-BU4hxm8M.mjs} +1 -1
- package/dist/{agentGuidance-Bi8iBjy3.cjs → agentGuidance-CJSl54ua.cjs} +1 -1
- package/dist/codex/happyMcpStdioBridge.cjs +2 -2
- package/dist/codex/happyMcpStdioBridge.mjs +2 -2
- package/dist/{config-BIbYBmTd.cjs → config-CfqWoHmO.cjs} +4 -4
- package/dist/{config-ZsBeq10u.mjs → config-euZ_K5Lo.mjs} +4 -4
- package/dist/{index-Bom8mTuS.cjs → index-BREtikhm.cjs} +4 -4
- package/dist/{index-BPTPrjhL.cjs → index-Bj68y6ee.cjs} +7 -7
- package/dist/{index-CSQZhQ0C.cjs → index-C510dSUn.cjs} +32 -28
- package/dist/{index-CYFendNf.mjs → index-DoiG88oX.mjs} +28 -24
- package/dist/{index-CNARLBax.mjs → index-PM_SsRpw.mjs} +4 -4
- package/dist/{index-CY0zmhIp.mjs → index-ZOMC8Gzn.mjs} +8 -8
- package/dist/index.cjs +4 -4
- package/dist/index.mjs +4 -4
- package/dist/{installTerminalHooks-BPJu2WVz.mjs → installTerminalHooks-BGVQqbgq.mjs} +4 -4
- package/dist/{installTerminalHooks-DA7SyFYW.cjs → installTerminalHooks-C_jraM1j.cjs} +4 -4
- package/dist/lib.cjs +2 -2
- package/dist/lib.mjs +2 -2
- package/dist/{limits-B3hngubn.cjs → limits-B3oVgqBJ.cjs} +7 -7
- package/dist/{limits-CHsz3Ba-.mjs → limits-uABU-yq3.mjs} +7 -7
- package/dist/{mcp-BkWBRWFe.mjs → mcp-CfbTQXyh.mjs} +4 -4
- package/dist/{mcp-ySrfNOYl.cjs → mcp-G-3lL_KH.cjs} +4 -4
- package/dist/{piRuntime-DBLUyXFr.mjs → piRuntime-BE6iYQwU.mjs} +2 -2
- package/dist/{piRuntime-uX0WHVr4.cjs → piRuntime-CWE-1W-y.cjs} +2 -2
- package/dist/{piTerminal-DNr3hkzY.cjs → piTerminal-Dyc_9pGP.cjs} +6 -6
- package/dist/{piTerminal-Bc3jSCnY.mjs → piTerminal-rqKn1_Zy.mjs} +6 -6
- package/dist/{runGemini-rgFHTnG7.mjs → runGemini-BMlXIaTL.mjs} +6 -6
- package/dist/{runGemini-eJ08cXk7.cjs → runGemini-C6qMFzcn.cjs} +6 -6
- package/dist/{runOpenClaw-D0LVzxqM.cjs → runOpenClaw-C2_aCP7v.cjs} +5 -5
- package/dist/{runOpenClaw-GjLWwjas.mjs → runOpenClaw-CoO5Vp3S.mjs} +5 -5
- package/dist/{send-DV8liaRN.mjs → send-CBrJylJc.mjs} +4 -4
- package/dist/{send-Bg2oqt7f.cjs → send-DGVwmB-p.cjs} +4 -4
- package/dist/{sessions-JiL4aJkC.mjs → sessions-DbLubh2N.mjs} +4 -4
- package/dist/{sessions-DPimBZ8H.cjs → sessions-DyQXMN-8.cjs} +4 -4
- package/dist/{spawn-COOcUwkG.cjs → spawn-DIyFOn3W.cjs} +4 -4
- package/dist/{spawn-CnMk3LFG.mjs → spawn-wkkxEGdF.mjs} +4 -4
- package/dist/{teams-uHZcdX9j.mjs → teams-BTyVFK3P.mjs} +4 -4
- package/dist/{teams-DSQgHBLE.cjs → teams-QOkGFjkJ.cjs} +4 -4
- package/dist/{todo-oHWNpEx_.mjs → todo-DoLkqdBe.mjs} +3 -3
- package/dist/{todo-DeauuUd6.cjs → todo-Du6pjwx_.cjs} +3 -3
- package/dist/{types-Xd_LJRJN.cjs → types-6__wqmmP.cjs} +52 -5
- package/dist/{types-Dnoxgb7G.mjs → types-BG4gFjLL.mjs} +52 -5
- package/package.json +7 -7
|
@@ -4,15 +4,15 @@ var os = require('node:os');
|
|
|
4
4
|
var promises = require('node:fs/promises');
|
|
5
5
|
var z = require('zod');
|
|
6
6
|
var node_crypto = require('node:crypto');
|
|
7
|
-
var agentGuidance = require('./agentGuidance-
|
|
8
|
-
var persistence = require('./limits-
|
|
7
|
+
var agentGuidance = require('./agentGuidance-CJSl54ua.cjs');
|
|
8
|
+
var persistence = require('./limits-B3oVgqBJ.cjs');
|
|
9
9
|
var path = require('node:path');
|
|
10
|
-
var index = require('./index-
|
|
10
|
+
var index = require('./index-C510dSUn.cjs');
|
|
11
11
|
require('node:fs');
|
|
12
12
|
require('tweetnacl');
|
|
13
13
|
require('chalk');
|
|
14
14
|
require('node:util');
|
|
15
|
-
require('./types-
|
|
15
|
+
require('./types-6__wqmmP.cjs');
|
|
16
16
|
require('axios');
|
|
17
17
|
require('node:events');
|
|
18
18
|
require('socket.io-client');
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { d as readCredentialsForConfiguredRelay, c as configuration } from './limits-
|
|
2
|
-
import { e as createBuiltinTodoClient, B as BUILTIN_TODO_SKILL } from './types-
|
|
3
|
-
import { c as readTeamScope, t as teamScopePath } from './agentGuidance-
|
|
1
|
+
import { d as readCredentialsForConfiguredRelay, c as configuration } from './limits-uABU-yq3.mjs';
|
|
2
|
+
import { e as createBuiltinTodoClient, B as BUILTIN_TODO_SKILL } from './types-BG4gFjLL.mjs';
|
|
3
|
+
import { c as readTeamScope, t as teamScopePath } from './agentGuidance-BU4hxm8M.mjs';
|
|
4
4
|
import 'node:fs/promises';
|
|
5
5
|
import 'node:fs';
|
|
6
6
|
import 'node:os';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var persistence = require('./limits-
|
|
4
|
-
var api = require('./types-
|
|
5
|
-
var agentGuidance = require('./agentGuidance-
|
|
3
|
+
var persistence = require('./limits-B3oVgqBJ.cjs');
|
|
4
|
+
var api = require('./types-6__wqmmP.cjs');
|
|
5
|
+
var agentGuidance = require('./agentGuidance-CJSl54ua.cjs');
|
|
6
6
|
require('node:fs/promises');
|
|
7
7
|
require('node:fs');
|
|
8
8
|
require('node:os');
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var axios = require('axios');
|
|
4
|
-
var persistence = require('./limits-
|
|
4
|
+
var persistence = require('./limits-B3oVgqBJ.cjs');
|
|
5
5
|
var node_events = require('node:events');
|
|
6
6
|
var socket_ioClient = require('socket.io-client');
|
|
7
7
|
var z = require('zod');
|
|
@@ -1377,6 +1377,40 @@ class RpcHandlerManager {
|
|
|
1377
1377
|
}
|
|
1378
1378
|
}
|
|
1379
1379
|
|
|
1380
|
+
function describeSocketAckDrop(drop) {
|
|
1381
|
+
switch (drop.reason) {
|
|
1382
|
+
case "no-ack":
|
|
1383
|
+
return "no ack callback on the frame (re-delivered after a transport close?); response dropped";
|
|
1384
|
+
case "handler-threw":
|
|
1385
|
+
return `handler threw: ${drop.error instanceof Error ? drop.error.message : String(drop.error)}`;
|
|
1386
|
+
case "ack-threw":
|
|
1387
|
+
return `ack callback threw: ${drop.error instanceof Error ? drop.error.message : String(drop.error)}`;
|
|
1388
|
+
}
|
|
1389
|
+
}
|
|
1390
|
+
function safeAck(ack, onDrop) {
|
|
1391
|
+
return (value) => {
|
|
1392
|
+
if (typeof ack !== "function") {
|
|
1393
|
+
onDrop({ reason: "no-ack" });
|
|
1394
|
+
return;
|
|
1395
|
+
}
|
|
1396
|
+
try {
|
|
1397
|
+
ack(value);
|
|
1398
|
+
} catch (error) {
|
|
1399
|
+
onDrop({ reason: "ack-threw", error });
|
|
1400
|
+
}
|
|
1401
|
+
};
|
|
1402
|
+
}
|
|
1403
|
+
async function answerSocketRequest(ack, run, onDrop) {
|
|
1404
|
+
let value;
|
|
1405
|
+
try {
|
|
1406
|
+
value = await run();
|
|
1407
|
+
} catch (error) {
|
|
1408
|
+
onDrop({ reason: "handler-threw", error });
|
|
1409
|
+
return;
|
|
1410
|
+
}
|
|
1411
|
+
safeAck(ack, onDrop)(value);
|
|
1412
|
+
}
|
|
1413
|
+
|
|
1380
1414
|
function run$1(args, options) {
|
|
1381
1415
|
const RUNNER_PATH = path.resolve(path.join(projectPath.projectPath(), "scripts", "ripgrep_launcher.cjs"));
|
|
1382
1416
|
return new Promise((resolve2, reject) => {
|
|
@@ -3279,7 +3313,11 @@ class ApiSessionClient extends node_events.EventEmitter {
|
|
|
3279
3313
|
void this.connectSessionRelay();
|
|
3280
3314
|
});
|
|
3281
3315
|
this.socket.on("rpc-request", async (data, callback) => {
|
|
3282
|
-
|
|
3316
|
+
await answerSocketRequest(
|
|
3317
|
+
callback,
|
|
3318
|
+
() => this.rpcHandlerManager.handleRequest(data),
|
|
3319
|
+
(drop) => persistence.logger.debug(`[API] RPC ${data?.method} unanswered \u2014 ${describeSocketAckDrop(drop)}`)
|
|
3320
|
+
);
|
|
3283
3321
|
});
|
|
3284
3322
|
this.socket.on("disconnect", (reason) => {
|
|
3285
3323
|
persistence.logger.debug(`[API] Socket disconnected: ${reason}`);
|
|
@@ -3715,9 +3753,14 @@ class ApiSessionClient extends node_events.EventEmitter {
|
|
|
3715
3753
|
persistence.logger.debug(`[API] Session connected to regional relay ${assignment.relayId}`);
|
|
3716
3754
|
});
|
|
3717
3755
|
relaySocket.on("rpc-request", async (data, callback) => {
|
|
3718
|
-
|
|
3756
|
+
await answerSocketRequest(
|
|
3757
|
+
callback,
|
|
3758
|
+
() => this.rpcHandlerManager.handleRequest(data),
|
|
3759
|
+
(drop) => persistence.logger.debug(`[API] Relay RPC ${data?.method} unanswered \u2014 ${describeSocketAckDrop(drop)}`)
|
|
3760
|
+
);
|
|
3719
3761
|
});
|
|
3720
|
-
relaySocket.on("session-message-deliver", async (data,
|
|
3762
|
+
relaySocket.on("session-message-deliver", async (data, rawCallback) => {
|
|
3763
|
+
const callback = safeAck(rawCallback, (drop) => persistence.logger.debug(`[API] session-message-deliver unanswered \u2014 ${describeSocketAckDrop(drop)}`));
|
|
3721
3764
|
if (data?.sessionId !== this.sessionId || !Array.isArray(data.messages) || data.messages.length === 0 || data.messages.length > 50) {
|
|
3722
3765
|
callback({ ok: false, error: "Invalid session message request" });
|
|
3723
3766
|
return;
|
|
@@ -15750,7 +15793,11 @@ class ApiMachineClient {
|
|
|
15750
15793
|
bindRpcRequestHandler(socket, transport) {
|
|
15751
15794
|
socket.on("rpc-request", async (data, callback) => {
|
|
15752
15795
|
persistence.logger.debugLargeJson(`[API MACHINE] Received RPC request via ${transport}:`, data);
|
|
15753
|
-
|
|
15796
|
+
await answerSocketRequest(
|
|
15797
|
+
callback,
|
|
15798
|
+
() => this.rpcHandlerManager.handleRequest(data),
|
|
15799
|
+
(drop) => persistence.logger.debug(`[API MACHINE] RPC ${data?.method} via ${transport} unanswered \u2014 ${describeSocketAckDrop(drop)}`)
|
|
15800
|
+
);
|
|
15754
15801
|
});
|
|
15755
15802
|
}
|
|
15756
15803
|
bindMachineCommandHandlers(socket) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
-
import { l as logger, g as encodeBase64, j as encrypt, k as decrypt, m as decodeBase64, c as configuration, o as readDaemonState, q as clearDaemonState, s as decryptBlob, t as prepareClipboardText, u as prepareClipboardHistoryText, f as readSettings, r as readPersistedSessions, v as credentialRelayProblem, p as packageJson, x as readTrackedClaudeSessionIds, y as readTrackedCodexThreadIds, z as libsodiumEncryptForPublicKey, A as libsodiumPublicKeyFromSecretKey, B as getRandomBytes, D as redactLogValue } from './limits-
|
|
2
|
+
import { l as logger, g as encodeBase64, j as encrypt, k as decrypt, m as decodeBase64, c as configuration, o as readDaemonState, q as clearDaemonState, s as decryptBlob, t as prepareClipboardText, u as prepareClipboardHistoryText, f as readSettings, r as readPersistedSessions, v as credentialRelayProblem, p as packageJson, x as readTrackedClaudeSessionIds, y as readTrackedCodexThreadIds, z as libsodiumEncryptForPublicKey, A as libsodiumPublicKeyFromSecretKey, B as getRandomBytes, D as redactLogValue } from './limits-uABU-yq3.mjs';
|
|
3
3
|
import { EventEmitter } from 'node:events';
|
|
4
4
|
import { io } from 'socket.io-client';
|
|
5
5
|
import * as z from 'zod';
|
|
@@ -1356,6 +1356,40 @@ class RpcHandlerManager {
|
|
|
1356
1356
|
}
|
|
1357
1357
|
}
|
|
1358
1358
|
|
|
1359
|
+
function describeSocketAckDrop(drop) {
|
|
1360
|
+
switch (drop.reason) {
|
|
1361
|
+
case "no-ack":
|
|
1362
|
+
return "no ack callback on the frame (re-delivered after a transport close?); response dropped";
|
|
1363
|
+
case "handler-threw":
|
|
1364
|
+
return `handler threw: ${drop.error instanceof Error ? drop.error.message : String(drop.error)}`;
|
|
1365
|
+
case "ack-threw":
|
|
1366
|
+
return `ack callback threw: ${drop.error instanceof Error ? drop.error.message : String(drop.error)}`;
|
|
1367
|
+
}
|
|
1368
|
+
}
|
|
1369
|
+
function safeAck(ack, onDrop) {
|
|
1370
|
+
return (value) => {
|
|
1371
|
+
if (typeof ack !== "function") {
|
|
1372
|
+
onDrop({ reason: "no-ack" });
|
|
1373
|
+
return;
|
|
1374
|
+
}
|
|
1375
|
+
try {
|
|
1376
|
+
ack(value);
|
|
1377
|
+
} catch (error) {
|
|
1378
|
+
onDrop({ reason: "ack-threw", error });
|
|
1379
|
+
}
|
|
1380
|
+
};
|
|
1381
|
+
}
|
|
1382
|
+
async function answerSocketRequest(ack, run, onDrop) {
|
|
1383
|
+
let value;
|
|
1384
|
+
try {
|
|
1385
|
+
value = await run();
|
|
1386
|
+
} catch (error) {
|
|
1387
|
+
onDrop({ reason: "handler-threw", error });
|
|
1388
|
+
return;
|
|
1389
|
+
}
|
|
1390
|
+
safeAck(ack, onDrop)(value);
|
|
1391
|
+
}
|
|
1392
|
+
|
|
1359
1393
|
function run$1(args, options) {
|
|
1360
1394
|
const RUNNER_PATH = resolve(join(projectPath(), "scripts", "ripgrep_launcher.cjs"));
|
|
1361
1395
|
return new Promise((resolve2, reject) => {
|
|
@@ -3258,7 +3292,11 @@ class ApiSessionClient extends EventEmitter {
|
|
|
3258
3292
|
void this.connectSessionRelay();
|
|
3259
3293
|
});
|
|
3260
3294
|
this.socket.on("rpc-request", async (data, callback) => {
|
|
3261
|
-
|
|
3295
|
+
await answerSocketRequest(
|
|
3296
|
+
callback,
|
|
3297
|
+
() => this.rpcHandlerManager.handleRequest(data),
|
|
3298
|
+
(drop) => logger.debug(`[API] RPC ${data?.method} unanswered \u2014 ${describeSocketAckDrop(drop)}`)
|
|
3299
|
+
);
|
|
3262
3300
|
});
|
|
3263
3301
|
this.socket.on("disconnect", (reason) => {
|
|
3264
3302
|
logger.debug(`[API] Socket disconnected: ${reason}`);
|
|
@@ -3694,9 +3732,14 @@ class ApiSessionClient extends EventEmitter {
|
|
|
3694
3732
|
logger.debug(`[API] Session connected to regional relay ${assignment.relayId}`);
|
|
3695
3733
|
});
|
|
3696
3734
|
relaySocket.on("rpc-request", async (data, callback) => {
|
|
3697
|
-
|
|
3735
|
+
await answerSocketRequest(
|
|
3736
|
+
callback,
|
|
3737
|
+
() => this.rpcHandlerManager.handleRequest(data),
|
|
3738
|
+
(drop) => logger.debug(`[API] Relay RPC ${data?.method} unanswered \u2014 ${describeSocketAckDrop(drop)}`)
|
|
3739
|
+
);
|
|
3698
3740
|
});
|
|
3699
|
-
relaySocket.on("session-message-deliver", async (data,
|
|
3741
|
+
relaySocket.on("session-message-deliver", async (data, rawCallback) => {
|
|
3742
|
+
const callback = safeAck(rawCallback, (drop) => logger.debug(`[API] session-message-deliver unanswered \u2014 ${describeSocketAckDrop(drop)}`));
|
|
3700
3743
|
if (data?.sessionId !== this.sessionId || !Array.isArray(data.messages) || data.messages.length === 0 || data.messages.length > 50) {
|
|
3701
3744
|
callback({ ok: false, error: "Invalid session message request" });
|
|
3702
3745
|
return;
|
|
@@ -15729,7 +15772,11 @@ class ApiMachineClient {
|
|
|
15729
15772
|
bindRpcRequestHandler(socket, transport) {
|
|
15730
15773
|
socket.on("rpc-request", async (data, callback) => {
|
|
15731
15774
|
logger.debugLargeJson(`[API MACHINE] Received RPC request via ${transport}:`, data);
|
|
15732
|
-
|
|
15775
|
+
await answerSocketRequest(
|
|
15776
|
+
callback,
|
|
15777
|
+
() => this.rpcHandlerManager.handleRequest(data),
|
|
15778
|
+
(drop) => logger.debug(`[API MACHINE] RPC ${data?.method} via ${transport} unanswered \u2014 ${describeSocketAckDrop(drop)}`)
|
|
15779
|
+
);
|
|
15733
15780
|
});
|
|
15734
15781
|
}
|
|
15735
15782
|
bindMachineCommandHandlers(socket) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "very-happy-cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.143",
|
|
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.143",
|
|
121
|
+
"very-happy-tools-x64-darwin": "0.2.143",
|
|
122
|
+
"very-happy-tools-arm64-linux": "0.2.143",
|
|
123
|
+
"very-happy-tools-x64-linux": "0.2.143",
|
|
124
|
+
"very-happy-tools-arm64-win32": "0.2.143",
|
|
125
|
+
"very-happy-tools-x64-win32": "0.2.143"
|
|
126
126
|
},
|
|
127
127
|
"devDependencies": {
|
|
128
128
|
"@slopus/happy-wire": "workspace:*",
|