very-happy-cli 0.2.142 → 0.2.144
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-D2LqY2to.mjs → AcpBackend-DLsPpWnc.mjs} +2 -2
- package/dist/{AcpBackend-DJsqfgjD.cjs → AcpBackend-DssrjZDS.cjs} +30 -30
- package/dist/{AcpSessionManager-CdeM5KD9.mjs → AcpSessionManager-1pAH8SdV.mjs} +1 -1
- package/dist/{AcpSessionManager-CTfDxziP.cjs → AcpSessionManager-DkBV80Rr.cjs} +9 -9
- package/dist/{agentGuidance-Cz8QVcX3.mjs → agentGuidance-CupQ9Lve.mjs} +1 -1
- package/dist/{agentGuidance-Bi8iBjy3.cjs → agentGuidance-D1PDVswF.cjs} +1 -1
- package/dist/agentHome-BaSxP7lQ.mjs +107 -0
- package/dist/agentHome-uf1zs2Fi.cjs +113 -0
- package/dist/codex/happyMcpStdioBridge.cjs +2 -2
- package/dist/codex/happyMcpStdioBridge.mjs +2 -2
- package/dist/{config-ZsBeq10u.mjs → config-CxHoQo52.mjs} +4 -4
- package/dist/{config-BIbYBmTd.cjs → config-kx4y9oAI.cjs} +4 -4
- package/dist/{index-Bom8mTuS.cjs → index-DIoSNgtt.cjs} +4 -4
- package/dist/{index-CYFendNf.mjs → index-Diu81aSC.mjs} +77 -28
- package/dist/{index-CSQZhQ0C.cjs → index-Dn0JMM8l.cjs} +250 -201
- package/dist/{index-BPTPrjhL.cjs → index-Dox9iD5R.cjs} +31 -31
- package/dist/{index-CNARLBax.mjs → index-DxEaiVzX.mjs} +4 -4
- package/dist/{index-CY0zmhIp.mjs → index-J6a8OHS6.mjs} +8 -8
- package/dist/index.cjs +4 -4
- package/dist/index.mjs +4 -4
- package/dist/{installTerminalHooks-BPJu2WVz.mjs → installTerminalHooks-BBMGk3q5.mjs} +4 -4
- package/dist/{installTerminalHooks-DA7SyFYW.cjs → installTerminalHooks-De7_iOOC.cjs} +4 -4
- package/dist/lib.cjs +5 -5
- package/dist/lib.mjs +2 -2
- package/dist/{limits-B3hngubn.cjs → limits-C_Sklt--.cjs} +7 -7
- package/dist/{limits-CHsz3Ba-.mjs → limits-DxArdmkZ.mjs} +8 -8
- package/dist/{mcp-BkWBRWFe.mjs → mcp-C1oNnlw5.mjs} +4 -4
- package/dist/{mcp-ySrfNOYl.cjs → mcp-xyb8dYIQ.cjs} +9 -9
- package/dist/{piRuntime-uX0WHVr4.cjs → piRuntime-3Vbdgv6X.cjs} +2 -2
- package/dist/{piRuntime-DBLUyXFr.mjs → piRuntime-CzJdE4z4.mjs} +2 -2
- package/dist/{piTerminal-DNr3hkzY.cjs → piTerminal-BFpwVGWr.cjs} +6 -6
- package/dist/{piTerminal-Bc3jSCnY.mjs → piTerminal-Do2GiKMN.mjs} +6 -6
- package/dist/{runGemini-eJ08cXk7.cjs → runGemini-CCdGxTF2.cjs} +24 -24
- package/dist/{runGemini-rgFHTnG7.mjs → runGemini-De5NRMT9.mjs} +6 -6
- package/dist/{runOpenClaw-GjLWwjas.mjs → runOpenClaw-C2t4DRyi.mjs} +5 -5
- package/dist/{runOpenClaw-D0LVzxqM.cjs → runOpenClaw-CRMUfrWk.cjs} +26 -26
- package/dist/{send-Bg2oqt7f.cjs → send-BA1Dgpgn.cjs} +4 -4
- package/dist/{send-DV8liaRN.mjs → send-l6Rj09c0.mjs} +4 -4
- package/dist/{sessions-DPimBZ8H.cjs → sessions-CtVcoXvG.cjs} +5 -5
- package/dist/{sessions-JiL4aJkC.mjs → sessions-MWLDqQk-.mjs} +4 -4
- package/dist/{spawn-COOcUwkG.cjs → spawn-Be4nsNuQ.cjs} +6 -6
- package/dist/{spawn-CnMk3LFG.mjs → spawn-DKWR-6Qc.mjs} +4 -4
- package/dist/{teams-DSQgHBLE.cjs → teams-CcjjNLi8.cjs} +4 -4
- package/dist/{teams-uHZcdX9j.mjs → teams-DMf9GNGE.mjs} +4 -4
- package/dist/{todo-oHWNpEx_.mjs → todo-BEXZRm1A.mjs} +3 -3
- package/dist/{todo-DeauuUd6.cjs → todo-EffYAnre.cjs} +5 -5
- package/dist/{types-Dnoxgb7G.mjs → types-D6YKR7wo.mjs} +372 -15
- package/dist/{types-Xd_LJRJN.cjs → types-DZ5c-9f3.cjs} +379 -13
- package/package.json +7 -7
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var AcpBackend = require('./AcpBackend-
|
|
4
|
-
var persistence = require('./limits-
|
|
5
|
-
var AcpSessionManager = require('./AcpSessionManager-
|
|
6
|
-
var
|
|
7
|
-
var index = require('./index-
|
|
8
|
-
var piRuntime = require('./piRuntime-
|
|
3
|
+
var AcpBackend = require('./AcpBackend-DssrjZDS.cjs');
|
|
4
|
+
var persistence = require('./limits-C_Sklt--.cjs');
|
|
5
|
+
var AcpSessionManager = require('./AcpSessionManager-DkBV80Rr.cjs');
|
|
6
|
+
var index = require('./types-DZ5c-9f3.cjs');
|
|
7
|
+
var index$1 = require('./index-Dn0JMM8l.cjs');
|
|
8
|
+
var piRuntime = require('./piRuntime-3Vbdgv6X.cjs');
|
|
9
9
|
var node_crypto = require('node:crypto');
|
|
10
10
|
var path = require('node:path');
|
|
11
11
|
var projectPath = require('./projectPath-ChLhdOyt.cjs');
|
|
@@ -34,7 +34,7 @@ require('fs');
|
|
|
34
34
|
require('node:readline');
|
|
35
35
|
require('@anthropic-ai/sandbox-runtime');
|
|
36
36
|
require('expo-server-sdk');
|
|
37
|
-
require('./agentGuidance-
|
|
37
|
+
require('./agentGuidance-D1PDVswF.cjs');
|
|
38
38
|
require('ink');
|
|
39
39
|
require('react');
|
|
40
40
|
require('@anthropic-ai/claude-agent-sdk');
|
|
@@ -555,7 +555,7 @@ function resolveRequestedLegacyModelCode(models, requested) {
|
|
|
555
555
|
}
|
|
556
556
|
return null;
|
|
557
557
|
}
|
|
558
|
-
class GenericAcpPermissionHandler extends index.BasePermissionHandler {
|
|
558
|
+
class GenericAcpPermissionHandler extends index$1.BasePermissionHandler {
|
|
559
559
|
logPrefix;
|
|
560
560
|
constructor(session, agentName) {
|
|
561
561
|
super(session);
|
|
@@ -589,17 +589,17 @@ function resolveSessionFlavor(agentName) {
|
|
|
589
589
|
async function runAcp(opts) {
|
|
590
590
|
const verbose = opts.verbose === true;
|
|
591
591
|
const sessionTag = node_crypto.randomUUID();
|
|
592
|
-
|
|
593
|
-
const api
|
|
592
|
+
index.connectionState.setBackend(opts.agentName);
|
|
593
|
+
const api = await index.ApiClient.create(opts.credentials);
|
|
594
594
|
const settings = await persistence.readSettings();
|
|
595
595
|
if (!settings?.machineId) {
|
|
596
596
|
throw new Error("No machine ID found in settings");
|
|
597
597
|
}
|
|
598
|
-
await api
|
|
598
|
+
await api.getOrCreateMachine({
|
|
599
599
|
machineId: settings.machineId,
|
|
600
|
-
metadata: index.initialMachineMetadata
|
|
600
|
+
metadata: index$1.initialMachineMetadata
|
|
601
601
|
});
|
|
602
|
-
const { state, metadata } = index.createSessionMetadata({
|
|
602
|
+
const { state, metadata } = index$1.createSessionMetadata({
|
|
603
603
|
flavor: resolveSessionFlavor(opts.agentName),
|
|
604
604
|
...process.env.VH_TEAM_OPERATION_ID ? { teamOperationId: process.env.VH_TEAM_OPERATION_ID } : {},
|
|
605
605
|
machineId: settings.machineId,
|
|
@@ -607,14 +607,14 @@ async function runAcp(opts) {
|
|
|
607
607
|
sandbox: settings.sandboxConfig
|
|
608
608
|
});
|
|
609
609
|
metadata.attachmentKinds = [];
|
|
610
|
-
const response = await api
|
|
610
|
+
const response = await api.getOrCreateSession({ tag: sessionTag, metadata, state });
|
|
611
611
|
if (response) {
|
|
612
612
|
logAcp("muted", `Happy Session ID: ${response.id}`);
|
|
613
613
|
}
|
|
614
614
|
let session;
|
|
615
615
|
let permissionHandler;
|
|
616
|
-
const { session: initialSession, reconnectionHandle } = index.setupOfflineReconnection({
|
|
617
|
-
api
|
|
616
|
+
const { session: initialSession, reconnectionHandle } = index$1.setupOfflineReconnection({
|
|
617
|
+
api,
|
|
618
618
|
sessionTag,
|
|
619
619
|
metadata,
|
|
620
620
|
state,
|
|
@@ -629,7 +629,7 @@ async function runAcp(opts) {
|
|
|
629
629
|
session = initialSession;
|
|
630
630
|
if (response) {
|
|
631
631
|
try {
|
|
632
|
-
await
|
|
632
|
+
await index.notifyDaemonSessionStarted(response.id, metadata, {
|
|
633
633
|
encryptionKey: persistence.encodeBase64(response.encryptionKey),
|
|
634
634
|
encryptionVariant: response.encryptionVariant,
|
|
635
635
|
seq: response.seq,
|
|
@@ -643,11 +643,11 @@ async function runAcp(opts) {
|
|
|
643
643
|
permissionHandler = new GenericAcpPermissionHandler(session, opts.agentName);
|
|
644
644
|
permissionHandler.reset("Previous CLI process exited before responding");
|
|
645
645
|
const streamingEnabled = process.env.HAPPY_SESSION_STREAM_DISABLED !== "1";
|
|
646
|
-
const streamRelay = new index.StreamRelay({
|
|
646
|
+
const streamRelay = new index$1.StreamRelay({
|
|
647
647
|
send: (frame) => session.sendStreamFrame(frame)
|
|
648
648
|
});
|
|
649
649
|
const sessionManager = new AcpSessionManager.AcpSessionManager(streamingEnabled ? { stream: streamRelay } : {});
|
|
650
|
-
const messageQueue = new index.MessageQueue2((mode) => index.hashObject(mode));
|
|
650
|
+
const messageQueue = new index$1.MessageQueue2((mode) => index$1.hashObject(mode));
|
|
651
651
|
let currentPermissionMode;
|
|
652
652
|
let currentModel;
|
|
653
653
|
let modeSelector = null;
|
|
@@ -668,7 +668,7 @@ async function runAcp(opts) {
|
|
|
668
668
|
return true;
|
|
669
669
|
}
|
|
670
670
|
try {
|
|
671
|
-
index.writeSessionModeFile(session.sessionId, mode);
|
|
671
|
+
index$1.writeSessionModeFile(session.sessionId, mode);
|
|
672
672
|
} catch (error) {
|
|
673
673
|
persistence.logger.debug(`[${opts.agentName}] Failed to write session mode file:`, error);
|
|
674
674
|
return false;
|
|
@@ -679,7 +679,7 @@ async function runAcp(opts) {
|
|
|
679
679
|
return true;
|
|
680
680
|
};
|
|
681
681
|
const isAssistantVariant = process.env.HAPPY_SESSION_VARIANT === "assistant";
|
|
682
|
-
const happyServer = await index.startHappyServer(session, {
|
|
682
|
+
const happyServer = await index$1.startHappyServer(session, {
|
|
683
683
|
assistant: isAssistantVariant,
|
|
684
684
|
...opts.agentName === "pi" ? { onContextUsage: (contextUsage) => {
|
|
685
685
|
session.updateAgentState((state2) => ({ ...state2, contextUsage }));
|
|
@@ -767,7 +767,7 @@ async function runAcp(opts) {
|
|
|
767
767
|
return;
|
|
768
768
|
}
|
|
769
769
|
if (permissionModeIsFileBacked()) {
|
|
770
|
-
const mode = index.normalizeAcpPermissionMode(requestedMode);
|
|
770
|
+
const mode = index$1.normalizeAcpPermissionMode(requestedMode);
|
|
771
771
|
if (!mode) {
|
|
772
772
|
persistence.logger.debug(`[${opts.agentName}] Ignoring unknown file-backed permission mode request: ${requestedMode}`);
|
|
773
773
|
return;
|
|
@@ -1031,8 +1031,8 @@ async function runAcp(opts) {
|
|
|
1031
1031
|
sendEnvelopes(sessionManager.mapMessage(msg));
|
|
1032
1032
|
};
|
|
1033
1033
|
backend.onMessage(onBackendMessage);
|
|
1034
|
-
const titleGenerator = new index.TitleGenerator(session);
|
|
1035
|
-
index.registerAgentAttachmentDownloads(session);
|
|
1034
|
+
const titleGenerator = new index$1.TitleGenerator(session);
|
|
1035
|
+
index$1.registerAgentAttachmentDownloads(session);
|
|
1036
1036
|
let userMessageDelivery = Promise.resolve();
|
|
1037
1037
|
session.onUserMessage((message) => {
|
|
1038
1038
|
const downloads = session.drainAttachmentsForUserMessage();
|
|
@@ -1088,7 +1088,7 @@ async function runAcp(opts) {
|
|
|
1088
1088
|
if (!fileBackedModeActive) {
|
|
1089
1089
|
throw new Error(`${opts.agentName} does not support live permission mode changes`);
|
|
1090
1090
|
}
|
|
1091
|
-
const mode = typeof request?.mode === "string" ? index.normalizeAcpPermissionMode(request.mode) : null;
|
|
1091
|
+
const mode = typeof request?.mode === "string" ? index$1.normalizeAcpPermissionMode(request.mode) : null;
|
|
1092
1092
|
if (!mode) {
|
|
1093
1093
|
throw new Error("Invalid permission mode");
|
|
1094
1094
|
}
|
|
@@ -1098,7 +1098,7 @@ async function runAcp(opts) {
|
|
|
1098
1098
|
return { mode };
|
|
1099
1099
|
}
|
|
1100
1100
|
);
|
|
1101
|
-
const disposeTermination = index.registerKillSessionHandler(session.rpcHandlerManager, async () => {
|
|
1101
|
+
const disposeTermination = index$1.registerKillSessionHandler(session.rpcHandlerManager, async () => {
|
|
1102
1102
|
shouldExit = true;
|
|
1103
1103
|
messageQueue.close();
|
|
1104
1104
|
clearPendingTurn(new Error("Session terminated"));
|
|
@@ -1114,7 +1114,7 @@ async function runAcp(opts) {
|
|
|
1114
1114
|
}
|
|
1115
1115
|
session.updateMetadata((current) => ({
|
|
1116
1116
|
...current,
|
|
1117
|
-
attachmentKinds: opts.agentName === "pi" && backend.supportsImageAttachments ? [...index.CLAUDE_ATTACHMENT_KINDS] : []
|
|
1117
|
+
attachmentKinds: opts.agentName === "pi" && backend.supportsImageAttachments ? [...index$1.CLAUDE_ATTACHMENT_KINDS] : []
|
|
1118
1118
|
}));
|
|
1119
1119
|
if (permissionModeIsFileBacked()) {
|
|
1120
1120
|
fileBackedModeActive = true;
|
|
@@ -1164,13 +1164,13 @@ async function runAcp(opts) {
|
|
|
1164
1164
|
}
|
|
1165
1165
|
const prompt = todoDiscoverySent ? batch.message : `${batch.message}
|
|
1166
1166
|
|
|
1167
|
-
${
|
|
1167
|
+
${index.BUILTIN_TODO_DISCOVERY}`;
|
|
1168
1168
|
const attachments = batch.attachments ?? [];
|
|
1169
|
-
const staged = attachments.length ? await index.stageClaudeAttachments(attachments, {
|
|
1169
|
+
const staged = attachments.length ? await index$1.stageClaudeAttachments(attachments, {
|
|
1170
1170
|
happyHomeDir: persistence.configuration.happyHomeDir,
|
|
1171
1171
|
sessionId: session.sessionId
|
|
1172
1172
|
}) : [];
|
|
1173
|
-
await backend.sendPrompt(acpSessionId, index.appendStagedAttachmentsToPrompt(prompt, staged), attachments);
|
|
1173
|
+
await backend.sendPrompt(acpSessionId, index$1.appendStagedAttachmentsToPrompt(prompt, staged), attachments);
|
|
1174
1174
|
todoDiscoverySent = true;
|
|
1175
1175
|
await turnEnded;
|
|
1176
1176
|
sendEnvelopes(sessionManager.endTurn(turnCancelled ? "cancelled" : "completed"));
|
|
@@ -1208,7 +1208,7 @@ ${api.BUILTIN_TODO_DISCOVERY}`;
|
|
|
1208
1208
|
await backend.dispose();
|
|
1209
1209
|
if (fileBackedPermissionMode) {
|
|
1210
1210
|
try {
|
|
1211
|
-
index.removeSessionModeFile(session.sessionId);
|
|
1211
|
+
index$1.removeSessionModeFile(session.sessionId);
|
|
1212
1212
|
} catch (error) {
|
|
1213
1213
|
persistence.logger.debug(`[${opts.agentName}] Failed to remove session mode file:`, error);
|
|
1214
1214
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { q as query } from './index-
|
|
1
|
+
import { q as query } from './index-Diu81aSC.mjs';
|
|
2
2
|
export { AbortError } from '@anthropic-ai/claude-agent-sdk';
|
|
3
3
|
import 'chalk';
|
|
4
4
|
import 'node:os';
|
|
5
5
|
import 'node:crypto';
|
|
6
|
-
import './types-
|
|
6
|
+
import './types-D6YKR7wo.mjs';
|
|
7
7
|
import 'axios';
|
|
8
|
-
import './limits-
|
|
8
|
+
import './limits-DxArdmkZ.mjs';
|
|
9
9
|
import 'node:fs/promises';
|
|
10
10
|
import 'node:fs';
|
|
11
11
|
import 'node:path';
|
|
@@ -30,7 +30,7 @@ import 'fs';
|
|
|
30
30
|
import 'node:readline';
|
|
31
31
|
import '@anthropic-ai/sandbox-runtime';
|
|
32
32
|
import 'expo-server-sdk';
|
|
33
|
-
import './agentGuidance-
|
|
33
|
+
import './agentGuidance-CupQ9Lve.mjs';
|
|
34
34
|
import 'ink';
|
|
35
35
|
import 'react';
|
|
36
36
|
import 'ps-list';
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-
|
|
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-
|
|
3
|
-
import {
|
|
4
|
-
import { A as AcpSessionManager } from './AcpSessionManager-
|
|
5
|
-
import {
|
|
6
|
-
import { k as initialMachineMetadata, m as createSessionMetadata, n as setupOfflineReconnection, o as StreamRelay, p as MessageQueue2, u as hashObject, v as startHappyServer, x as registerAgentAttachmentDownloads, T as TitleGenerator, y as registerKillSessionHandler, C as CLAUDE_ATTACHMENT_KINDS, z as stageClaudeAttachments, B as appendStagedAttachmentsToPrompt, E as BasePermissionHandler, F as writeSessionModeFile, H as normalizeAcpPermissionMode, I as removeSessionModeFile } from './index-
|
|
7
|
-
import { p as preparePiTeamsRuntime } from './piRuntime-
|
|
1
|
+
import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-DLsPpWnc.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-DLsPpWnc.mjs';
|
|
3
|
+
import { r as readSettings, g as encodeBase64, l as logger, c as configuration } from './limits-DxArdmkZ.mjs';
|
|
4
|
+
import { A as AcpSessionManager } from './AcpSessionManager-1pAH8SdV.mjs';
|
|
5
|
+
import { m as connectionState, A as ApiClient, n as notifyDaemonSessionStarted, o as BUILTIN_TODO_DISCOVERY } from './types-D6YKR7wo.mjs';
|
|
6
|
+
import { k as initialMachineMetadata, m as createSessionMetadata, n as setupOfflineReconnection, o as StreamRelay, p as MessageQueue2, u as hashObject, v as startHappyServer, x as registerAgentAttachmentDownloads, T as TitleGenerator, y as registerKillSessionHandler, C as CLAUDE_ATTACHMENT_KINDS, z as stageClaudeAttachments, B as appendStagedAttachmentsToPrompt, E as BasePermissionHandler, F as writeSessionModeFile, H as normalizeAcpPermissionMode, I as removeSessionModeFile } from './index-Diu81aSC.mjs';
|
|
7
|
+
import { p as preparePiTeamsRuntime } from './piRuntime-CzJdE4z4.mjs';
|
|
8
8
|
import { randomUUID } from 'node:crypto';
|
|
9
9
|
import { join } from 'node:path';
|
|
10
10
|
import { p as projectPath } from './projectPath-CSpqWdxp.mjs';
|
|
@@ -33,7 +33,7 @@ import 'fs';
|
|
|
33
33
|
import 'node:readline';
|
|
34
34
|
import '@anthropic-ai/sandbox-runtime';
|
|
35
35
|
import 'expo-server-sdk';
|
|
36
|
-
import './agentGuidance-
|
|
36
|
+
import './agentGuidance-CupQ9Lve.mjs';
|
|
37
37
|
import 'ink';
|
|
38
38
|
import 'react';
|
|
39
39
|
import '@anthropic-ai/claude-agent-sdk';
|
package/dist/index.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
require('chalk');
|
|
4
|
-
require('./index-
|
|
5
|
-
require('./limits-
|
|
4
|
+
require('./index-Dn0JMM8l.cjs');
|
|
5
|
+
require('./limits-C_Sklt--.cjs');
|
|
6
6
|
require('zod');
|
|
7
|
-
require('./types-
|
|
7
|
+
require('./types-DZ5c-9f3.cjs');
|
|
8
8
|
require('node:child_process');
|
|
9
9
|
require('node:os');
|
|
10
10
|
require('node:crypto');
|
|
@@ -15,7 +15,7 @@ require('node:fs');
|
|
|
15
15
|
require('./projectPath-ChLhdOyt.cjs');
|
|
16
16
|
require('path');
|
|
17
17
|
require('url');
|
|
18
|
-
require('./agentGuidance-
|
|
18
|
+
require('./agentGuidance-D1PDVswF.cjs');
|
|
19
19
|
require('node:fs/promises');
|
|
20
20
|
require('fs/promises');
|
|
21
21
|
require('ink');
|
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import 'chalk';
|
|
2
|
-
import './index-
|
|
3
|
-
import './limits-
|
|
2
|
+
import './index-Diu81aSC.mjs';
|
|
3
|
+
import './limits-DxArdmkZ.mjs';
|
|
4
4
|
import 'zod';
|
|
5
|
-
import './types-
|
|
5
|
+
import './types-D6YKR7wo.mjs';
|
|
6
6
|
import 'node:child_process';
|
|
7
7
|
import 'node:os';
|
|
8
8
|
import 'node:crypto';
|
|
@@ -13,7 +13,7 @@ import 'node:fs';
|
|
|
13
13
|
import './projectPath-CSpqWdxp.mjs';
|
|
14
14
|
import 'path';
|
|
15
15
|
import 'url';
|
|
16
|
-
import './agentGuidance-
|
|
16
|
+
import './agentGuidance-CupQ9Lve.mjs';
|
|
17
17
|
import 'node:fs/promises';
|
|
18
18
|
import 'fs/promises';
|
|
19
19
|
import 'ink';
|
|
@@ -4,13 +4,13 @@ import { homedir } from 'node:os';
|
|
|
4
4
|
import { spawnSync } from 'node:child_process';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import { p as projectPath } from './projectPath-CSpqWdxp.mjs';
|
|
7
|
-
import { t as tmuxSupportsSessionEnv } from './index-
|
|
7
|
+
import { t as tmuxSupportsSessionEnv } from './index-Diu81aSC.mjs';
|
|
8
8
|
import 'path';
|
|
9
9
|
import 'url';
|
|
10
10
|
import 'node:crypto';
|
|
11
|
-
import './types-
|
|
11
|
+
import './types-D6YKR7wo.mjs';
|
|
12
12
|
import 'axios';
|
|
13
|
-
import './limits-
|
|
13
|
+
import './limits-DxArdmkZ.mjs';
|
|
14
14
|
import 'node:fs/promises';
|
|
15
15
|
import 'zod';
|
|
16
16
|
import 'tweetnacl';
|
|
@@ -29,7 +29,7 @@ import 'fs';
|
|
|
29
29
|
import 'node:readline';
|
|
30
30
|
import '@anthropic-ai/sandbox-runtime';
|
|
31
31
|
import 'expo-server-sdk';
|
|
32
|
-
import './agentGuidance-
|
|
32
|
+
import './agentGuidance-CupQ9Lve.mjs';
|
|
33
33
|
import 'ink';
|
|
34
34
|
import 'react';
|
|
35
35
|
import '@anthropic-ai/claude-agent-sdk';
|
|
@@ -6,13 +6,13 @@ var os = require('node:os');
|
|
|
6
6
|
var node_child_process = require('node:child_process');
|
|
7
7
|
var chalk = require('chalk');
|
|
8
8
|
var projectPath = require('./projectPath-ChLhdOyt.cjs');
|
|
9
|
-
var index = require('./index-
|
|
9
|
+
var index = require('./index-Dn0JMM8l.cjs');
|
|
10
10
|
require('path');
|
|
11
11
|
require('url');
|
|
12
12
|
require('node:crypto');
|
|
13
|
-
require('./types-
|
|
13
|
+
require('./types-DZ5c-9f3.cjs');
|
|
14
14
|
require('axios');
|
|
15
|
-
require('./limits-
|
|
15
|
+
require('./limits-C_Sklt--.cjs');
|
|
16
16
|
require('node:fs/promises');
|
|
17
17
|
require('zod');
|
|
18
18
|
require('tweetnacl');
|
|
@@ -31,7 +31,7 @@ require('fs');
|
|
|
31
31
|
require('node:readline');
|
|
32
32
|
require('@anthropic-ai/sandbox-runtime');
|
|
33
33
|
require('expo-server-sdk');
|
|
34
|
-
require('./agentGuidance-
|
|
34
|
+
require('./agentGuidance-D1PDVswF.cjs');
|
|
35
35
|
require('ink');
|
|
36
36
|
require('react');
|
|
37
37
|
require('@anthropic-ai/claude-agent-sdk');
|
package/dist/lib.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var persistence = require('./limits-
|
|
3
|
+
var index = require('./types-DZ5c-9f3.cjs');
|
|
4
|
+
var persistence = require('./limits-C_Sklt--.cjs');
|
|
5
5
|
require('axios');
|
|
6
6
|
require('node:events');
|
|
7
7
|
require('socket.io-client');
|
|
@@ -33,8 +33,8 @@ require('node:util');
|
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
exports.ApiClient =
|
|
37
|
-
exports.ApiSessionClient =
|
|
38
|
-
exports.RawJSONLinesSchema =
|
|
36
|
+
exports.ApiClient = index.ApiClient;
|
|
37
|
+
exports.ApiSessionClient = index.ApiSessionClient;
|
|
38
|
+
exports.RawJSONLinesSchema = index.RawJSONLinesSchema;
|
|
39
39
|
exports.configuration = persistence.configuration;
|
|
40
40
|
exports.logger = persistence.logger;
|
package/dist/lib.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema } from './types-
|
|
2
|
-
export { c as configuration, l as logger } from './limits-
|
|
1
|
+
export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema } from './types-D6YKR7wo.mjs';
|
|
2
|
+
export { c as configuration, l as logger } from './limits-DxArdmkZ.mjs';
|
|
3
3
|
import 'axios';
|
|
4
4
|
import 'node:events';
|
|
5
5
|
import 'socket.io-client';
|
|
@@ -30,7 +30,7 @@ function _interopNamespaceDefault(e) {
|
|
|
30
30
|
var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
|
|
31
31
|
|
|
32
32
|
var name = "very-happy-cli";
|
|
33
|
-
var version = "0.2.
|
|
33
|
+
var version = "0.2.144";
|
|
34
34
|
var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
|
|
35
35
|
var author = "Kirill Dubovitskiy";
|
|
36
36
|
var contributors = [
|
|
@@ -147,12 +147,12 @@ var dependencies = {
|
|
|
147
147
|
zod: "^4.0.0"
|
|
148
148
|
};
|
|
149
149
|
var optionalDependencies = {
|
|
150
|
-
"very-happy-tools-arm64-darwin": "0.2.
|
|
151
|
-
"very-happy-tools-x64-darwin": "0.2.
|
|
152
|
-
"very-happy-tools-arm64-linux": "0.2.
|
|
153
|
-
"very-happy-tools-x64-linux": "0.2.
|
|
154
|
-
"very-happy-tools-arm64-win32": "0.2.
|
|
155
|
-
"very-happy-tools-x64-win32": "0.2.
|
|
150
|
+
"very-happy-tools-arm64-darwin": "0.2.144",
|
|
151
|
+
"very-happy-tools-x64-darwin": "0.2.144",
|
|
152
|
+
"very-happy-tools-arm64-linux": "0.2.144",
|
|
153
|
+
"very-happy-tools-x64-linux": "0.2.144",
|
|
154
|
+
"very-happy-tools-arm64-win32": "0.2.144",
|
|
155
|
+
"very-happy-tools-x64-win32": "0.2.144"
|
|
156
156
|
};
|
|
157
157
|
var devDependencies = {
|
|
158
158
|
"@slopus/happy-wire": "workspace:*",
|
|
@@ -9,7 +9,7 @@ import chalk from 'chalk';
|
|
|
9
9
|
import { inspect } from 'node:util';
|
|
10
10
|
|
|
11
11
|
var name = "very-happy-cli";
|
|
12
|
-
var version = "0.2.
|
|
12
|
+
var version = "0.2.144";
|
|
13
13
|
var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
|
|
14
14
|
var author = "Kirill Dubovitskiy";
|
|
15
15
|
var contributors = [
|
|
@@ -126,12 +126,12 @@ var dependencies = {
|
|
|
126
126
|
zod: "^4.0.0"
|
|
127
127
|
};
|
|
128
128
|
var optionalDependencies = {
|
|
129
|
-
"very-happy-tools-arm64-darwin": "0.2.
|
|
130
|
-
"very-happy-tools-x64-darwin": "0.2.
|
|
131
|
-
"very-happy-tools-arm64-linux": "0.2.
|
|
132
|
-
"very-happy-tools-x64-linux": "0.2.
|
|
133
|
-
"very-happy-tools-arm64-win32": "0.2.
|
|
134
|
-
"very-happy-tools-x64-win32": "0.2.
|
|
129
|
+
"very-happy-tools-arm64-darwin": "0.2.144",
|
|
130
|
+
"very-happy-tools-x64-darwin": "0.2.144",
|
|
131
|
+
"very-happy-tools-arm64-linux": "0.2.144",
|
|
132
|
+
"very-happy-tools-x64-linux": "0.2.144",
|
|
133
|
+
"very-happy-tools-arm64-win32": "0.2.144",
|
|
134
|
+
"very-happy-tools-x64-win32": "0.2.144"
|
|
135
135
|
};
|
|
136
136
|
var devDependencies = {
|
|
137
137
|
"@slopus/happy-wire": "workspace:*",
|
|
@@ -1162,4 +1162,4 @@ function prepareClipboardHistoryText(input) {
|
|
|
1162
1162
|
return { text, truncated: true, totalBytes: prepared.totalBytes };
|
|
1163
1163
|
}
|
|
1164
1164
|
|
|
1165
|
-
export {
|
|
1165
|
+
export { libsodiumEncryptForPublicKey as A, libsodiumPublicKeyFromSecretKey as B, CLIPBOARD_TOOL_NAME as C, getRandomBytes as D, redactLogValue as E, ensurePrivateDirectory as F, hardenPrivateFile as G, readCredentials as H, readSettingsOutcome as I, encodeBase64Url as J, writeCredentialsLegacy as K, writeCredentialsDataKey as L, decryptWithDataKey as M, decryptLegacy as N, persistSession as O, acquireDaemonLock as P, deletePersistedSessions as Q, writeDaemonState as R, writeSettings as S, releaseDaemonLock as T, clearCredentials as U, clearMachineId as V, SandboxConfigSchema as W, getLatestDaemonLog as X, persistence as Y, CLIPBOARD_TOOL_TITLE as a, CLIPBOARD_TOOL_DESCRIPTION as b, configuration as c, readPersistedSessions as d, readCredentialsForConfiguredRelay as e, CLIPBOARD_MAX_BYTES as f, encodeBase64 as g, ensurePrivateDirectorySync as h, hardenPrivateFileSync as i, encrypt as j, decrypt as k, logger as l, decodeBase64 as m, normalizeHttpEndpoint as n, readDaemonState as o, packageJson as p, clearDaemonState as q, readSettings as r, decryptBlob as s, prepareClipboardText as t, updateSettings as u, prepareClipboardHistoryText as v, writePrivateFileSync as w, credentialRelayProblem as x, readTrackedClaudeSessionIds as y, readTrackedCodexThreadIds as z };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { r as registerTeamsTools, P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION } from './agentGuidance-
|
|
1
|
+
import { r as registerTeamsTools, P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION } from './agentGuidance-CupQ9Lve.mjs';
|
|
2
2
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
-
import {
|
|
6
|
-
import { l as logger, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION,
|
|
7
|
-
import { h as checkPreviewPath, j as registerAssistantSessionTools } from './index-
|
|
5
|
+
import { j as pushClipboardViaDaemon, k as pushFilePreviewViaDaemon, l as setTerminalTitleViaDaemon } from './types-D6YKR7wo.mjs';
|
|
6
|
+
import { l as logger, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, f as CLIPBOARD_MAX_BYTES } from './limits-DxArdmkZ.mjs';
|
|
7
|
+
import { h as checkPreviewPath, j as registerAssistantSessionTools } from './index-Diu81aSC.mjs';
|
|
8
8
|
import 'node:fs/promises';
|
|
9
9
|
import 'node:os';
|
|
10
10
|
import 'node:crypto';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var agentGuidance = require('./agentGuidance-
|
|
3
|
+
var agentGuidance = require('./agentGuidance-D1PDVswF.cjs');
|
|
4
4
|
var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
5
5
|
var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
|
|
6
6
|
var z = require('zod');
|
|
7
|
-
var
|
|
8
|
-
var persistence = require('./limits-
|
|
9
|
-
var index = require('./index-
|
|
7
|
+
var index = require('./types-DZ5c-9f3.cjs');
|
|
8
|
+
var persistence = require('./limits-C_Sklt--.cjs');
|
|
9
|
+
var index$1 = require('./index-Dn0JMM8l.cjs');
|
|
10
10
|
require('node:fs/promises');
|
|
11
11
|
require('node:os');
|
|
12
12
|
require('node:crypto');
|
|
@@ -67,7 +67,7 @@ function registerMcpTools(server, surface, terminalId = null) {
|
|
|
67
67
|
}
|
|
68
68
|
}, async (args) => {
|
|
69
69
|
persistence.logger.debug(`[MCP] copy_to_clipboard called (${args.text.length} chars)`);
|
|
70
|
-
const result = await
|
|
70
|
+
const result = await index.pushClipboardViaDaemon(args.text, terminalId ?? void 0);
|
|
71
71
|
if (result.delivered) {
|
|
72
72
|
const note = result.truncated ? ` (truncated to ${persistence.CLIPBOARD_MAX_BYTES / 1024}KB \u2014 original was ${result.totalBytes} bytes)` : "";
|
|
73
73
|
return {
|
|
@@ -95,9 +95,9 @@ function registerMcpTools(server, surface, terminalId = null) {
|
|
|
95
95
|
mode: z.z.enum(["file", "diff"]).optional().describe("'file' (default) previews the file; 'diff' is reserved and currently falls back to 'file'")
|
|
96
96
|
}
|
|
97
97
|
}, async (args) => {
|
|
98
|
-
const verdict = index.checkPreviewPath(args.path);
|
|
98
|
+
const verdict = index$1.checkPreviewPath(args.path);
|
|
99
99
|
if (verdict.deniedReason) return { content: [{ type: "text", text: verdict.deniedReason }], isError: true };
|
|
100
|
-
const result = await
|
|
100
|
+
const result = await index.pushFilePreviewViaDaemon(terminalId, verdict.resolved, args.mode ?? "file");
|
|
101
101
|
return {
|
|
102
102
|
content: [{ type: "text", text: result.delivered ? `Queued a preview request for ${verdict.resolved}. This does not confirm that a browser opened it.` : `Failed to request preview: ${result.error || "unknown error"}` }],
|
|
103
103
|
isError: !result.delivered
|
|
@@ -111,7 +111,7 @@ function registerMcpTools(server, surface, terminalId = null) {
|
|
|
111
111
|
}
|
|
112
112
|
}, async (args) => {
|
|
113
113
|
persistence.logger.debug(`[MCP] change_title called for terminal ${terminalId}`);
|
|
114
|
-
const result = await
|
|
114
|
+
const result = await index.setTerminalTitleViaDaemon(terminalId, args.title);
|
|
115
115
|
if (result.ok) {
|
|
116
116
|
return {
|
|
117
117
|
content: [{ type: "text", text: `Successfully changed terminal title to: "${args.title}"` }],
|
|
@@ -128,7 +128,7 @@ function registerMcpTools(server, surface, terminalId = null) {
|
|
|
128
128
|
});
|
|
129
129
|
}
|
|
130
130
|
if (surface === "assistant" && !process.env.VH_TEAM_SCOPE_FILE) {
|
|
131
|
-
index.registerAssistantSessionTools(server);
|
|
131
|
+
index$1.registerAssistantSessionTools(server);
|
|
132
132
|
}
|
|
133
133
|
}
|
|
134
134
|
async function handleMcpCommand(terminalToolsOnly = false) {
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var promises = require('node:fs/promises');
|
|
4
4
|
var node_crypto = require('node:crypto');
|
|
5
5
|
var path = require('node:path');
|
|
6
|
-
var persistence = require('./limits-
|
|
7
|
-
var index = require('./index-
|
|
6
|
+
var persistence = require('./limits-C_Sklt--.cjs');
|
|
7
|
+
var index = require('./index-Dn0JMM8l.cjs');
|
|
8
8
|
|
|
9
9
|
async function publish(path, content, mode) {
|
|
10
10
|
const temporary = `${path}.${node_crypto.randomUUID()}.new`;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { mkdir, chmod, writeFile, rename } from 'node:fs/promises';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
-
import { c as configuration } from './limits-
|
|
5
|
-
import { P as PI_TEAMS_EXTENSION } from './index-
|
|
4
|
+
import { c as configuration } from './limits-DxArdmkZ.mjs';
|
|
5
|
+
import { P as PI_TEAMS_EXTENSION } from './index-Diu81aSC.mjs';
|
|
6
6
|
|
|
7
7
|
async function publish(path, content, mode) {
|
|
8
8
|
const temporary = `${path}.${randomUUID()}.new`;
|
|
@@ -5,21 +5,21 @@ var node_crypto = require('node:crypto');
|
|
|
5
5
|
var node_http = require('node:http');
|
|
6
6
|
var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
7
7
|
var streamableHttp_js = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
|
|
8
|
-
var piRuntime = require('./piRuntime-
|
|
9
|
-
var mcp = require('./mcp-
|
|
10
|
-
require('./agentGuidance-
|
|
8
|
+
var piRuntime = require('./piRuntime-3Vbdgv6X.cjs');
|
|
9
|
+
var mcp = require('./mcp-xyb8dYIQ.cjs');
|
|
10
|
+
require('./agentGuidance-D1PDVswF.cjs');
|
|
11
11
|
require('node:fs/promises');
|
|
12
12
|
require('node:os');
|
|
13
13
|
require('zod');
|
|
14
|
-
require('./limits-
|
|
14
|
+
require('./limits-C_Sklt--.cjs');
|
|
15
15
|
require('axios');
|
|
16
16
|
require('tweetnacl');
|
|
17
17
|
require('socket.io-client');
|
|
18
|
-
require('./types-
|
|
18
|
+
require('./types-DZ5c-9f3.cjs');
|
|
19
19
|
require('node:fs');
|
|
20
20
|
require('node:path');
|
|
21
21
|
var terminalToolContext = require('./terminalToolContext-DoV9Gs7K.cjs');
|
|
22
|
-
require('./index-
|
|
22
|
+
require('./index-Dn0JMM8l.cjs');
|
|
23
23
|
require('chalk');
|
|
24
24
|
require('cross-spawn');
|
|
25
25
|
require('node:readline');
|
|
@@ -3,21 +3,21 @@ import { randomUUID } from 'node:crypto';
|
|
|
3
3
|
import { createServer } from 'node:http';
|
|
4
4
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
5
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
6
|
-
import { p as preparePiTeamsRuntime } from './piRuntime-
|
|
7
|
-
import { registerMcpTools } from './mcp-
|
|
8
|
-
import './agentGuidance-
|
|
6
|
+
import { p as preparePiTeamsRuntime } from './piRuntime-CzJdE4z4.mjs';
|
|
7
|
+
import { registerMcpTools } from './mcp-C1oNnlw5.mjs';
|
|
8
|
+
import './agentGuidance-CupQ9Lve.mjs';
|
|
9
9
|
import 'node:fs/promises';
|
|
10
10
|
import 'node:os';
|
|
11
11
|
import 'zod';
|
|
12
|
-
import './limits-
|
|
12
|
+
import './limits-DxArdmkZ.mjs';
|
|
13
13
|
import 'axios';
|
|
14
14
|
import 'tweetnacl';
|
|
15
15
|
import 'socket.io-client';
|
|
16
|
-
import './types-
|
|
16
|
+
import './types-D6YKR7wo.mjs';
|
|
17
17
|
import 'node:fs';
|
|
18
18
|
import 'node:path';
|
|
19
19
|
import { r as resolveMcpTerminalId } from './terminalToolContext-CFeGeaNm.mjs';
|
|
20
|
-
import './index-
|
|
20
|
+
import './index-Diu81aSC.mjs';
|
|
21
21
|
import 'chalk';
|
|
22
22
|
import 'cross-spawn';
|
|
23
23
|
import 'node:readline';
|