very-happy-cli 0.2.85 → 0.2.87
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-B1l_WyZy.cjs → AcpBackend-DxNg9T6Z.cjs} +1 -1
- package/dist/{AcpBackend-CDclNgxu.mjs → AcpBackend-kotk9Pwu.mjs} +1 -1
- package/dist/{AcpSessionManager-PCdfo4gz.mjs → AcpSessionManager-DGY1Ss6H.mjs} +1 -1
- package/dist/{AcpSessionManager-dVX0uTo8.cjs → AcpSessionManager-Im0qDPE0.cjs} +1 -1
- package/dist/{config-DDsvmCxL.mjs → config-CDMM_UhY.mjs} +2 -2
- package/dist/{config-Ce5hbWlg.cjs → config-DcoxG-LO.cjs} +2 -2
- package/dist/{index-Syfrd3oP.cjs → index-DBYxKaw7.cjs} +4 -4
- package/dist/{index-CCQ2mqkA.mjs → index-DLI9RIsu.mjs} +5 -5
- package/dist/{index-DUcWAKZ0.cjs → index-DveDBCaA.cjs} +49 -19
- package/dist/{index-DVKieWPR.mjs → index-UiX6h05D.mjs} +46 -16
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{installTerminalHooks-BMTBsCfi.mjs → installTerminalHooks-BXxMZXNx.mjs} +2 -2
- package/dist/{installTerminalHooks-hcCRjxNy.cjs → installTerminalHooks-fuWRm0w5.cjs} +2 -2
- package/dist/lib.cjs +1 -1
- package/dist/lib.mjs +1 -1
- package/dist/{mcp-C2bERsV2.mjs → mcp-CgOiXU_f.mjs} +2 -2
- package/dist/{mcp-DGHMyTt-.cjs → mcp-YzpXuAUY.cjs} +2 -2
- package/dist/{runGemini-U5JI6rsK.cjs → runGemini-BBAR1VMh.cjs} +4 -4
- package/dist/{runGemini-CUpp6u-S.mjs → runGemini-C3jrBffn.mjs} +4 -4
- package/dist/{runOpenClaw-BHR7emaO.mjs → runOpenClaw-B7pEvhUJ.mjs} +3 -3
- package/dist/{runOpenClaw-DJYiIMrs.cjs → runOpenClaw-CaA37yjx.cjs} +3 -3
- package/dist/{send-iDuDd7yC.cjs → send-DHj783NY.cjs} +2 -2
- package/dist/{send-AIDeVBON.mjs → send-bhOlmnWQ.mjs} +2 -2
- package/dist/{spawn-Kklokpjz.cjs → spawn-CVUvoWvq.cjs} +2 -2
- package/dist/{spawn-DPz_3Q6B.mjs → spawn-DW_crRm0.mjs} +2 -2
- package/dist/{types-DJGEti9c.cjs → types-1ZueD6ob.cjs} +14 -10
- package/dist/{types-CkUHjxKz.mjs → types-DY9ef3Sf.mjs} +13 -9
- package/package.json +7 -7
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var node_child_process = require('node:child_process');
|
|
4
4
|
var sdk = require('@agentclientprotocol/sdk');
|
|
5
5
|
var node_crypto = require('node:crypto');
|
|
6
|
-
var persistence = require('./types-
|
|
6
|
+
var persistence = require('./types-1ZueD6ob.cjs');
|
|
7
7
|
|
|
8
8
|
const DEFAULT_TIMEOUTS = {
|
|
9
9
|
/** Default initialization timeout: 60 seconds */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
2
|
import { ndJsonStream, ClientSideConnection } from '@agentclientprotocol/sdk';
|
|
3
3
|
import { randomUUID } from 'node:crypto';
|
|
4
|
-
import { l as logger, d as contentLogMetadata, e as errorLogMetadata, f as packageJson, g as delay } from './types-
|
|
4
|
+
import { l as logger, d as contentLogMetadata, e as errorLogMetadata, f as packageJson, g as delay } from './types-DY9ef3Sf.mjs';
|
|
5
5
|
|
|
6
6
|
const DEFAULT_TIMEOUTS = {
|
|
7
7
|
/** Default initialization timeout: 60 seconds */
|
|
@@ -2,8 +2,8 @@ import { existsSync, readFileSync, mkdirSync, writeFileSync } from 'fs';
|
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
import { homedir } from 'os';
|
|
4
4
|
import { execSync } from 'child_process';
|
|
5
|
-
import { l as logger } from './types-
|
|
6
|
-
import { D as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-
|
|
5
|
+
import { l as logger } from './types-DY9ef3Sf.mjs';
|
|
6
|
+
import { D as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-UiX6h05D.mjs';
|
|
7
7
|
import 'axios';
|
|
8
8
|
import 'chalk';
|
|
9
9
|
import 'node:util';
|
|
@@ -4,8 +4,8 @@ var fs = require('fs');
|
|
|
4
4
|
var path = require('path');
|
|
5
5
|
var os = require('os');
|
|
6
6
|
var child_process = require('child_process');
|
|
7
|
-
var persistence = require('./types-
|
|
8
|
-
var index = require('./index-
|
|
7
|
+
var persistence = require('./types-1ZueD6ob.cjs');
|
|
8
|
+
var index = require('./index-DveDBCaA.cjs');
|
|
9
9
|
require('axios');
|
|
10
10
|
require('chalk');
|
|
11
11
|
require('node:util');
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var AcpBackend = require('./AcpBackend-
|
|
4
|
-
var persistence = require('./types-
|
|
5
|
-
var AcpSessionManager = require('./AcpSessionManager-
|
|
3
|
+
var AcpBackend = require('./AcpBackend-DxNg9T6Z.cjs');
|
|
4
|
+
var persistence = require('./types-1ZueD6ob.cjs');
|
|
5
|
+
var AcpSessionManager = require('./AcpSessionManager-Im0qDPE0.cjs');
|
|
6
6
|
var node_crypto = require('node:crypto');
|
|
7
7
|
var path = require('node:path');
|
|
8
|
-
var index = require('./index-
|
|
8
|
+
var index = require('./index-DveDBCaA.cjs');
|
|
9
9
|
require('node:child_process');
|
|
10
10
|
require('@agentclientprotocol/sdk');
|
|
11
11
|
require('axios');
|
|
@@ -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 { h as connectionState, A as ApiClient, i as readSettings, j as encodeBase64, l as logger, p as projectPath } from './types-
|
|
4
|
-
import { A as AcpSessionManager } from './AcpSessionManager-
|
|
1
|
+
import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-kotk9Pwu.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-kotk9Pwu.mjs';
|
|
3
|
+
import { h as connectionState, A as ApiClient, i as readSettings, j as encodeBase64, l as logger, p as projectPath } from './types-DY9ef3Sf.mjs';
|
|
4
|
+
import { A as AcpSessionManager } from './AcpSessionManager-DGY1Ss6H.mjs';
|
|
5
5
|
import { randomUUID } from 'node:crypto';
|
|
6
6
|
import { join } from 'node:path';
|
|
7
|
-
import { i as initialMachineMetadata, d as createSessionMetadata, e as setupOfflineReconnection, n as notifyDaemonSessionStarted, M as MessageQueue2, h as hashObject, f as startHappyServer, r as registerKillSessionHandler, B as BasePermissionHandler } from './index-
|
|
7
|
+
import { i as initialMachineMetadata, d as createSessionMetadata, e as setupOfflineReconnection, n as notifyDaemonSessionStarted, M as MessageQueue2, h as hashObject, f as startHappyServer, r as registerKillSessionHandler, B as BasePermissionHandler } from './index-UiX6h05D.mjs';
|
|
8
8
|
import 'node:child_process';
|
|
9
9
|
import '@agentclientprotocol/sdk';
|
|
10
10
|
import 'axios';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var os = require('node:os');
|
|
5
5
|
var node_crypto = require('node:crypto');
|
|
6
|
-
var persistence = require('./types-
|
|
6
|
+
var persistence = require('./types-1ZueD6ob.cjs');
|
|
7
7
|
var spawn = require('cross-spawn');
|
|
8
8
|
var path = require('node:path');
|
|
9
9
|
var node_readline = require('node:readline');
|
|
@@ -2575,6 +2575,9 @@ function formatClaudeMessageForInk(message, messageBuffer, onAssistantResult) {
|
|
|
2575
2575
|
const INTERRUPT_SENTINEL = /^\[Request interrupted by user(?: for tool use)?\]$/i;
|
|
2576
2576
|
const EDE_DIAGNOSTIC_PREFIX = "[ede_diagnostic]";
|
|
2577
2577
|
const SDK_ERROR_PREFIX = "Claude Code returned an error result:";
|
|
2578
|
+
function errorEntries(value) {
|
|
2579
|
+
return value.split(/[;\n]+/).map((entry) => entry.trim()).filter(Boolean);
|
|
2580
|
+
}
|
|
2578
2581
|
function textBlocks(content) {
|
|
2579
2582
|
if (!Array.isArray(content) || content.length === 0) return null;
|
|
2580
2583
|
const texts = [];
|
|
@@ -2607,12 +2610,23 @@ function isClaudeEdeOnlyResult(value) {
|
|
|
2607
2610
|
const errors = resultErrors(value);
|
|
2608
2611
|
return errors.length > 0 && errors.every((error) => error.startsWith(EDE_DIAGNOSTIC_PREFIX));
|
|
2609
2612
|
}
|
|
2613
|
+
function stripClaudeEdeDiagnosticText(value) {
|
|
2614
|
+
if (typeof value !== "string") return void 0;
|
|
2615
|
+
const trimmed = value.trim();
|
|
2616
|
+
if (!trimmed) return void 0;
|
|
2617
|
+
if (!trimmed.includes(EDE_DIAGNOSTIC_PREFIX)) return trimmed;
|
|
2618
|
+
const visible = errorEntries(trimmed).filter((entry) => !entry.startsWith(EDE_DIAGNOSTIC_PREFIX));
|
|
2619
|
+
return visible.length > 0 ? visible.join("\n") : void 0;
|
|
2620
|
+
}
|
|
2621
|
+
function stripClaudeEdeDiagnosticErrors(value) {
|
|
2622
|
+
return resultErrors({ errors: value }).filter((error) => !error.startsWith(EDE_DIAGNOSTIC_PREFIX));
|
|
2623
|
+
}
|
|
2610
2624
|
function isClaudeEdeOnlySdkError(error) {
|
|
2611
2625
|
if (!(error instanceof Error)) return false;
|
|
2612
2626
|
const message = error.message.trim();
|
|
2613
2627
|
if (!message.startsWith(SDK_ERROR_PREFIX)) return false;
|
|
2614
2628
|
const payload = message.slice(SDK_ERROR_PREFIX.length).trim();
|
|
2615
|
-
const entries = payload
|
|
2629
|
+
const entries = errorEntries(payload);
|
|
2616
2630
|
return entries.length > 0 && entries.every((entry) => entry.startsWith(EDE_DIAGNOSTIC_PREFIX));
|
|
2617
2631
|
}
|
|
2618
2632
|
|
|
@@ -2635,6 +2649,8 @@ class SDKToLogConverter {
|
|
|
2635
2649
|
responses;
|
|
2636
2650
|
sidechainLastUUID = /* @__PURE__ */ new Map();
|
|
2637
2651
|
sawInterruptSentinel = false;
|
|
2652
|
+
sawEdeOnlyAssistantError = false;
|
|
2653
|
+
sawVisibleAssistantError = false;
|
|
2638
2654
|
constructor(context, responses) {
|
|
2639
2655
|
this.context = {
|
|
2640
2656
|
...context,
|
|
@@ -2660,6 +2676,8 @@ class SDKToLogConverter {
|
|
|
2660
2676
|
/** Drop per-query markers that must never leak into the next SDK query. */
|
|
2661
2677
|
resetTransientState() {
|
|
2662
2678
|
this.sawInterruptSentinel = false;
|
|
2679
|
+
this.sawEdeOnlyAssistantError = false;
|
|
2680
|
+
this.sawVisibleAssistantError = false;
|
|
2663
2681
|
}
|
|
2664
2682
|
/**
|
|
2665
2683
|
* Convert SDK message to log format
|
|
@@ -2716,6 +2734,12 @@ class SDKToLogConverter {
|
|
|
2716
2734
|
}
|
|
2717
2735
|
case "assistant": {
|
|
2718
2736
|
const assistantMsg = sdkMessage;
|
|
2737
|
+
const assistantError = stripClaudeEdeDiagnosticText(assistantMsg.error);
|
|
2738
|
+
if (typeof assistantMsg.error === "string" && assistantMsg.error.trim() && !assistantError) {
|
|
2739
|
+
this.sawEdeOnlyAssistantError = true;
|
|
2740
|
+
} else if (assistantError) {
|
|
2741
|
+
this.sawVisibleAssistantError = true;
|
|
2742
|
+
}
|
|
2719
2743
|
logMessage = {
|
|
2720
2744
|
...baseFields,
|
|
2721
2745
|
type: "assistant",
|
|
@@ -2724,7 +2748,7 @@ class SDKToLogConverter {
|
|
|
2724
2748
|
requestId: assistantMsg.requestId,
|
|
2725
2749
|
...assistantMsg.isCompactSummary ? { isCompactSummary: true } : {},
|
|
2726
2750
|
...assistantMsg.parent_tool_use_id ? { parent_tool_use_id: assistantMsg.parent_tool_use_id } : {},
|
|
2727
|
-
...
|
|
2751
|
+
...assistantError ? { error: assistantError } : {}
|
|
2728
2752
|
};
|
|
2729
2753
|
break;
|
|
2730
2754
|
}
|
|
@@ -2746,8 +2770,14 @@ class SDKToLogConverter {
|
|
|
2746
2770
|
}
|
|
2747
2771
|
case "result": {
|
|
2748
2772
|
const resultMsg = sdkMessage;
|
|
2749
|
-
const
|
|
2773
|
+
const visibleErrors = stripClaudeEdeDiagnosticErrors(
|
|
2774
|
+
"errors" in resultMsg ? resultMsg.errors : void 0
|
|
2775
|
+
);
|
|
2776
|
+
const interruptionSignal = this.sawInterruptSentinel || this.sawEdeOnlyAssistantError || isClaudeEdeOnlyResult(resultMsg);
|
|
2777
|
+
const interrupted = interruptionSignal && !this.sawVisibleAssistantError && visibleErrors.length === 0;
|
|
2750
2778
|
this.sawInterruptSentinel = false;
|
|
2779
|
+
this.sawEdeOnlyAssistantError = false;
|
|
2780
|
+
this.sawVisibleAssistantError = false;
|
|
2751
2781
|
logMessage = {
|
|
2752
2782
|
...baseFields,
|
|
2753
2783
|
type: "result",
|
|
@@ -2758,7 +2788,7 @@ class SDKToLogConverter {
|
|
|
2758
2788
|
duration_ms: resultMsg.duration_ms,
|
|
2759
2789
|
num_turns: resultMsg.num_turns,
|
|
2760
2790
|
usage: resultMsg.usage,
|
|
2761
|
-
...
|
|
2791
|
+
...visibleErrors.length > 0 ? { errors: visibleErrors } : {},
|
|
2762
2792
|
..."terminal_reason" in resultMsg && resultMsg.terminal_reason ? { terminal_reason: resultMsg.terminal_reason } : {},
|
|
2763
2793
|
...interrupted ? { interrupted: true } : {}
|
|
2764
2794
|
};
|
|
@@ -8674,7 +8704,7 @@ const MAX_TITLE_CHARS = 60;
|
|
|
8674
8704
|
const GENERATION_TIMEOUT_MS = 3e4;
|
|
8675
8705
|
function resolveClaudeBinary() {
|
|
8676
8706
|
try {
|
|
8677
|
-
const require$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-
|
|
8707
|
+
const require$1 = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-DveDBCaA.cjs', document.baseURI).href)));
|
|
8678
8708
|
const utilsPath = path.resolve(path.join(persistence.projectPath(), "scripts", "claude_version_utils.cjs"));
|
|
8679
8709
|
const { getClaudeCliPath } = require$1(utilsPath);
|
|
8680
8710
|
const path$1 = getClaudeCliPath();
|
|
@@ -10818,9 +10848,9 @@ function resolveLocalSignupBootstrap(configuredMode, configuredInviteCodes, gene
|
|
|
10818
10848
|
};
|
|
10819
10849
|
}
|
|
10820
10850
|
|
|
10821
|
-
const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-
|
|
10851
|
+
const __filename$1 = node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-DveDBCaA.cjs', document.baseURI).href)));
|
|
10822
10852
|
const __dirname$1 = path.dirname(__filename$1);
|
|
10823
|
-
const require_ = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-
|
|
10853
|
+
const require_ = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-DveDBCaA.cjs', document.baseURI).href)));
|
|
10824
10854
|
const PRISMA_QUERY_ENGINE_FILES = {
|
|
10825
10855
|
"arm64-darwin": "libquery_engine-darwin-arm64.dylib.node",
|
|
10826
10856
|
"x64-darwin": "libquery_engine-darwin.dylib.node",
|
|
@@ -13432,7 +13462,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13432
13462
|
process.exit(0);
|
|
13433
13463
|
} else if (subcommand === "install-terminal-hooks") {
|
|
13434
13464
|
try {
|
|
13435
|
-
const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await Promise.resolve().then(function () { return require('./installTerminalHooks-
|
|
13465
|
+
const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await Promise.resolve().then(function () { return require('./installTerminalHooks-fuWRm0w5.cjs'); });
|
|
13436
13466
|
const command = parseTerminalHooksArgs(args.slice(1));
|
|
13437
13467
|
if (command.action === "help") {
|
|
13438
13468
|
console.log(TERMINAL_HOOKS_HELP);
|
|
@@ -13449,7 +13479,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13449
13479
|
}
|
|
13450
13480
|
} else if (subcommand === "spawn") {
|
|
13451
13481
|
try {
|
|
13452
|
-
const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-
|
|
13482
|
+
const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-CVUvoWvq.cjs'); });
|
|
13453
13483
|
await handleSpawnCommand(args.slice(1));
|
|
13454
13484
|
} catch (error) {
|
|
13455
13485
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -13461,7 +13491,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13461
13491
|
return;
|
|
13462
13492
|
} else if (subcommand === "send") {
|
|
13463
13493
|
try {
|
|
13464
|
-
const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-
|
|
13494
|
+
const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-DHj783NY.cjs'); });
|
|
13465
13495
|
await handleSendCommand(args.slice(1));
|
|
13466
13496
|
} catch (error) {
|
|
13467
13497
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -13567,9 +13597,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13567
13597
|
if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
|
|
13568
13598
|
const projectId = args[3];
|
|
13569
13599
|
try {
|
|
13570
|
-
const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-
|
|
13571
|
-
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./types-
|
|
13572
|
-
const { ApiClient: ApiClient2 } = await Promise.resolve().then(function () { return require('./types-
|
|
13600
|
+
const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-DcoxG-LO.cjs'); });
|
|
13601
|
+
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./types-1ZueD6ob.cjs'); }).then(function (n) { return n.persistence; });
|
|
13602
|
+
const { ApiClient: ApiClient2 } = await Promise.resolve().then(function () { return require('./types-1ZueD6ob.cjs'); }).then(function (n) { return n.api; });
|
|
13573
13603
|
let userEmail = void 0;
|
|
13574
13604
|
try {
|
|
13575
13605
|
const credentials = await readCredentialsForConfiguredRelay2();
|
|
@@ -13600,7 +13630,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13600
13630
|
}
|
|
13601
13631
|
if (geminiSubcommand === "project" && args[2] === "get") {
|
|
13602
13632
|
try {
|
|
13603
|
-
const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-
|
|
13633
|
+
const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-DcoxG-LO.cjs'); });
|
|
13604
13634
|
const config = readGeminiLocalConfig();
|
|
13605
13635
|
if (config.googleCloudProject) {
|
|
13606
13636
|
console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
|
|
@@ -13640,7 +13670,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13640
13670
|
process.exit(0);
|
|
13641
13671
|
}
|
|
13642
13672
|
try {
|
|
13643
|
-
const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-
|
|
13673
|
+
const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-BBAR1VMh.cjs'); });
|
|
13644
13674
|
let startedBy = void 0;
|
|
13645
13675
|
for (let i = 1; i < args.length; i++) {
|
|
13646
13676
|
if (args[i] === "--started-by") {
|
|
@@ -13662,7 +13692,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13662
13692
|
return;
|
|
13663
13693
|
} else if (subcommand === "acp") {
|
|
13664
13694
|
try {
|
|
13665
|
-
const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-
|
|
13695
|
+
const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-DBYxKaw7.cjs'); });
|
|
13666
13696
|
let startedBy = void 0;
|
|
13667
13697
|
let verbose = false;
|
|
13668
13698
|
const acpArgs = [];
|
|
@@ -13702,7 +13732,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13702
13732
|
return;
|
|
13703
13733
|
} else if (subcommand === "openclaw") {
|
|
13704
13734
|
try {
|
|
13705
|
-
const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-
|
|
13735
|
+
const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-CaA37yjx.cjs'); });
|
|
13706
13736
|
let startedBy = void 0;
|
|
13707
13737
|
let verbose = false;
|
|
13708
13738
|
let gatewayUrl;
|
|
@@ -13753,7 +13783,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13753
13783
|
return;
|
|
13754
13784
|
} else if (subcommand === "mcp" && args.length === 1) {
|
|
13755
13785
|
try {
|
|
13756
|
-
const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-
|
|
13786
|
+
const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-YzpXuAUY.cjs'); });
|
|
13757
13787
|
await handleMcpCommand();
|
|
13758
13788
|
} catch (error) {
|
|
13759
13789
|
process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import chalk from 'chalk';
|
|
2
2
|
import os, { homedir } from 'node:os';
|
|
3
3
|
import { randomUUID, randomBytes, createHash as createHash$1, timingSafeEqual } from 'node:crypto';
|
|
4
|
-
import { n as readDaemonState, l as logger, c as configuration, o as clearDaemonState, q as getProjectPath, p as projectPath, s as initializeSandbox, t as wrapCommand, d as contentLogMetadata, I as InvalidateSync, R as RawJSONLinesSchema, g as delay, u as AsyncLock, v as ensurePrivateDirectory, M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES, x as hardenPrivateFile, f as packageJson, i as readSettings, y as readCredentials, z as credentialRelayProblem, B as deriveLocalCliUpdateSummary, j as encodeBase64, C as updateSettings, D as encodeBase64Url, E as decodeBase64, F as writeCredentialsLegacy, G as writeCredentialsDataKey, H as readCredentialsForConfiguredRelay, J as encrypt, r as readPersistedSessions, K as getLocalHappyAgentCredentialPath, L as readLocalHappyAgentCredentials, N as decryptWithDataKey, O as decryptLegacy, P as extractCompleteLines, Q as decideBackfill, S as parseTerminalHookPayload, T as decideMirrorBinding, U as persistSession, V as MIRROR_BACKFILL_LINES_DEFAULT, W as mirrorLineKey, X as mirrorLocalId, Y as detectResumeSupport, Z as detectCLIAvailability, _ as acquireDaemonLock, $ as summarizeSpawnSessionForLog, a0 as deletePersistedSessions, a1 as decrypt, a2 as writeDaemonState, A as ApiClient, a3 as fetchCliUpdateState, a4 as resolveCliUpdateCheckInterval, a5 as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS, a6 as releaseDaemonLock, a7 as isValidSessionId, a8 as listVhTerminals, a9 as isValidTerminalId, aa as readVhTerminal, ab as sendToVhTerminal, h as connectionState, ac as startOfflineReconnection, ad as clearCredentials, ae as clearMachineId, k as ensurePrivateDirectorySync, w as writePrivateFileSync, af as SandboxConfigSchema, b as createEnvelope, ag as CodexAppServerClient, ah as getLatestDaemonLog } from './types-
|
|
4
|
+
import { n as readDaemonState, l as logger, c as configuration, o as clearDaemonState, q as getProjectPath, p as projectPath, s as initializeSandbox, t as wrapCommand, d as contentLogMetadata, I as InvalidateSync, R as RawJSONLinesSchema, g as delay, u as AsyncLock, v as ensurePrivateDirectory, M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES, x as hardenPrivateFile, f as packageJson, i as readSettings, y as readCredentials, z as credentialRelayProblem, B as deriveLocalCliUpdateSummary, j as encodeBase64, C as updateSettings, D as encodeBase64Url, E as decodeBase64, F as writeCredentialsLegacy, G as writeCredentialsDataKey, H as readCredentialsForConfiguredRelay, J as encrypt, r as readPersistedSessions, K as getLocalHappyAgentCredentialPath, L as readLocalHappyAgentCredentials, N as decryptWithDataKey, O as decryptLegacy, P as extractCompleteLines, Q as decideBackfill, S as parseTerminalHookPayload, T as decideMirrorBinding, U as persistSession, V as MIRROR_BACKFILL_LINES_DEFAULT, W as mirrorLineKey, X as mirrorLocalId, Y as detectResumeSupport, Z as detectCLIAvailability, _ as acquireDaemonLock, $ as summarizeSpawnSessionForLog, a0 as deletePersistedSessions, a1 as decrypt, a2 as writeDaemonState, A as ApiClient, a3 as fetchCliUpdateState, a4 as resolveCliUpdateCheckInterval, a5 as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS, a6 as releaseDaemonLock, a7 as isValidSessionId, a8 as listVhTerminals, a9 as isValidTerminalId, aa as readVhTerminal, ab as sendToVhTerminal, h as connectionState, ac as startOfflineReconnection, ad as clearCredentials, ae as clearMachineId, k as ensurePrivateDirectorySync, w as writePrivateFileSync, af as SandboxConfigSchema, b as createEnvelope, ag as CodexAppServerClient, ah as getLatestDaemonLog } from './types-DY9ef3Sf.mjs';
|
|
5
5
|
import spawn$1, { spawn } from 'cross-spawn';
|
|
6
6
|
import path, { join, resolve, basename, isAbsolute, normalize, sep, dirname } from 'node:path';
|
|
7
7
|
import { createInterface } from 'node:readline';
|
|
@@ -2553,6 +2553,9 @@ function formatClaudeMessageForInk(message, messageBuffer, onAssistantResult) {
|
|
|
2553
2553
|
const INTERRUPT_SENTINEL = /^\[Request interrupted by user(?: for tool use)?\]$/i;
|
|
2554
2554
|
const EDE_DIAGNOSTIC_PREFIX = "[ede_diagnostic]";
|
|
2555
2555
|
const SDK_ERROR_PREFIX = "Claude Code returned an error result:";
|
|
2556
|
+
function errorEntries(value) {
|
|
2557
|
+
return value.split(/[;\n]+/).map((entry) => entry.trim()).filter(Boolean);
|
|
2558
|
+
}
|
|
2556
2559
|
function textBlocks(content) {
|
|
2557
2560
|
if (!Array.isArray(content) || content.length === 0) return null;
|
|
2558
2561
|
const texts = [];
|
|
@@ -2585,12 +2588,23 @@ function isClaudeEdeOnlyResult(value) {
|
|
|
2585
2588
|
const errors = resultErrors(value);
|
|
2586
2589
|
return errors.length > 0 && errors.every((error) => error.startsWith(EDE_DIAGNOSTIC_PREFIX));
|
|
2587
2590
|
}
|
|
2591
|
+
function stripClaudeEdeDiagnosticText(value) {
|
|
2592
|
+
if (typeof value !== "string") return void 0;
|
|
2593
|
+
const trimmed = value.trim();
|
|
2594
|
+
if (!trimmed) return void 0;
|
|
2595
|
+
if (!trimmed.includes(EDE_DIAGNOSTIC_PREFIX)) return trimmed;
|
|
2596
|
+
const visible = errorEntries(trimmed).filter((entry) => !entry.startsWith(EDE_DIAGNOSTIC_PREFIX));
|
|
2597
|
+
return visible.length > 0 ? visible.join("\n") : void 0;
|
|
2598
|
+
}
|
|
2599
|
+
function stripClaudeEdeDiagnosticErrors(value) {
|
|
2600
|
+
return resultErrors({ errors: value }).filter((error) => !error.startsWith(EDE_DIAGNOSTIC_PREFIX));
|
|
2601
|
+
}
|
|
2588
2602
|
function isClaudeEdeOnlySdkError(error) {
|
|
2589
2603
|
if (!(error instanceof Error)) return false;
|
|
2590
2604
|
const message = error.message.trim();
|
|
2591
2605
|
if (!message.startsWith(SDK_ERROR_PREFIX)) return false;
|
|
2592
2606
|
const payload = message.slice(SDK_ERROR_PREFIX.length).trim();
|
|
2593
|
-
const entries = payload
|
|
2607
|
+
const entries = errorEntries(payload);
|
|
2594
2608
|
return entries.length > 0 && entries.every((entry) => entry.startsWith(EDE_DIAGNOSTIC_PREFIX));
|
|
2595
2609
|
}
|
|
2596
2610
|
|
|
@@ -2613,6 +2627,8 @@ class SDKToLogConverter {
|
|
|
2613
2627
|
responses;
|
|
2614
2628
|
sidechainLastUUID = /* @__PURE__ */ new Map();
|
|
2615
2629
|
sawInterruptSentinel = false;
|
|
2630
|
+
sawEdeOnlyAssistantError = false;
|
|
2631
|
+
sawVisibleAssistantError = false;
|
|
2616
2632
|
constructor(context, responses) {
|
|
2617
2633
|
this.context = {
|
|
2618
2634
|
...context,
|
|
@@ -2638,6 +2654,8 @@ class SDKToLogConverter {
|
|
|
2638
2654
|
/** Drop per-query markers that must never leak into the next SDK query. */
|
|
2639
2655
|
resetTransientState() {
|
|
2640
2656
|
this.sawInterruptSentinel = false;
|
|
2657
|
+
this.sawEdeOnlyAssistantError = false;
|
|
2658
|
+
this.sawVisibleAssistantError = false;
|
|
2641
2659
|
}
|
|
2642
2660
|
/**
|
|
2643
2661
|
* Convert SDK message to log format
|
|
@@ -2694,6 +2712,12 @@ class SDKToLogConverter {
|
|
|
2694
2712
|
}
|
|
2695
2713
|
case "assistant": {
|
|
2696
2714
|
const assistantMsg = sdkMessage;
|
|
2715
|
+
const assistantError = stripClaudeEdeDiagnosticText(assistantMsg.error);
|
|
2716
|
+
if (typeof assistantMsg.error === "string" && assistantMsg.error.trim() && !assistantError) {
|
|
2717
|
+
this.sawEdeOnlyAssistantError = true;
|
|
2718
|
+
} else if (assistantError) {
|
|
2719
|
+
this.sawVisibleAssistantError = true;
|
|
2720
|
+
}
|
|
2697
2721
|
logMessage = {
|
|
2698
2722
|
...baseFields,
|
|
2699
2723
|
type: "assistant",
|
|
@@ -2702,7 +2726,7 @@ class SDKToLogConverter {
|
|
|
2702
2726
|
requestId: assistantMsg.requestId,
|
|
2703
2727
|
...assistantMsg.isCompactSummary ? { isCompactSummary: true } : {},
|
|
2704
2728
|
...assistantMsg.parent_tool_use_id ? { parent_tool_use_id: assistantMsg.parent_tool_use_id } : {},
|
|
2705
|
-
...
|
|
2729
|
+
...assistantError ? { error: assistantError } : {}
|
|
2706
2730
|
};
|
|
2707
2731
|
break;
|
|
2708
2732
|
}
|
|
@@ -2724,8 +2748,14 @@ class SDKToLogConverter {
|
|
|
2724
2748
|
}
|
|
2725
2749
|
case "result": {
|
|
2726
2750
|
const resultMsg = sdkMessage;
|
|
2727
|
-
const
|
|
2751
|
+
const visibleErrors = stripClaudeEdeDiagnosticErrors(
|
|
2752
|
+
"errors" in resultMsg ? resultMsg.errors : void 0
|
|
2753
|
+
);
|
|
2754
|
+
const interruptionSignal = this.sawInterruptSentinel || this.sawEdeOnlyAssistantError || isClaudeEdeOnlyResult(resultMsg);
|
|
2755
|
+
const interrupted = interruptionSignal && !this.sawVisibleAssistantError && visibleErrors.length === 0;
|
|
2728
2756
|
this.sawInterruptSentinel = false;
|
|
2757
|
+
this.sawEdeOnlyAssistantError = false;
|
|
2758
|
+
this.sawVisibleAssistantError = false;
|
|
2729
2759
|
logMessage = {
|
|
2730
2760
|
...baseFields,
|
|
2731
2761
|
type: "result",
|
|
@@ -2736,7 +2766,7 @@ class SDKToLogConverter {
|
|
|
2736
2766
|
duration_ms: resultMsg.duration_ms,
|
|
2737
2767
|
num_turns: resultMsg.num_turns,
|
|
2738
2768
|
usage: resultMsg.usage,
|
|
2739
|
-
...
|
|
2769
|
+
...visibleErrors.length > 0 ? { errors: visibleErrors } : {},
|
|
2740
2770
|
..."terminal_reason" in resultMsg && resultMsg.terminal_reason ? { terminal_reason: resultMsg.terminal_reason } : {},
|
|
2741
2771
|
...interrupted ? { interrupted: true } : {}
|
|
2742
2772
|
};
|
|
@@ -13410,7 +13440,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13410
13440
|
process.exit(0);
|
|
13411
13441
|
} else if (subcommand === "install-terminal-hooks") {
|
|
13412
13442
|
try {
|
|
13413
|
-
const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-
|
|
13443
|
+
const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-BXxMZXNx.mjs');
|
|
13414
13444
|
const command = parseTerminalHooksArgs(args.slice(1));
|
|
13415
13445
|
if (command.action === "help") {
|
|
13416
13446
|
console.log(TERMINAL_HOOKS_HELP);
|
|
@@ -13427,7 +13457,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13427
13457
|
}
|
|
13428
13458
|
} else if (subcommand === "spawn") {
|
|
13429
13459
|
try {
|
|
13430
|
-
const { handleSpawnCommand } = await import('./spawn-
|
|
13460
|
+
const { handleSpawnCommand } = await import('./spawn-DW_crRm0.mjs');
|
|
13431
13461
|
await handleSpawnCommand(args.slice(1));
|
|
13432
13462
|
} catch (error) {
|
|
13433
13463
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -13439,7 +13469,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13439
13469
|
return;
|
|
13440
13470
|
} else if (subcommand === "send") {
|
|
13441
13471
|
try {
|
|
13442
|
-
const { handleSendCommand } = await import('./send-
|
|
13472
|
+
const { handleSendCommand } = await import('./send-bhOlmnWQ.mjs');
|
|
13443
13473
|
await handleSendCommand(args.slice(1));
|
|
13444
13474
|
} catch (error) {
|
|
13445
13475
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -13545,9 +13575,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13545
13575
|
if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
|
|
13546
13576
|
const projectId = args[3];
|
|
13547
13577
|
try {
|
|
13548
|
-
const { saveGoogleCloudProjectToConfig } = await import('./config-
|
|
13549
|
-
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./types-
|
|
13550
|
-
const { ApiClient: ApiClient2 } = await import('./types-
|
|
13578
|
+
const { saveGoogleCloudProjectToConfig } = await import('./config-CDMM_UhY.mjs');
|
|
13579
|
+
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./types-DY9ef3Sf.mjs').then(function (n) { return n.ai; });
|
|
13580
|
+
const { ApiClient: ApiClient2 } = await import('./types-DY9ef3Sf.mjs').then(function (n) { return n.aj; });
|
|
13551
13581
|
let userEmail = void 0;
|
|
13552
13582
|
try {
|
|
13553
13583
|
const credentials = await readCredentialsForConfiguredRelay2();
|
|
@@ -13578,7 +13608,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13578
13608
|
}
|
|
13579
13609
|
if (geminiSubcommand === "project" && args[2] === "get") {
|
|
13580
13610
|
try {
|
|
13581
|
-
const { readGeminiLocalConfig } = await import('./config-
|
|
13611
|
+
const { readGeminiLocalConfig } = await import('./config-CDMM_UhY.mjs');
|
|
13582
13612
|
const config = readGeminiLocalConfig();
|
|
13583
13613
|
if (config.googleCloudProject) {
|
|
13584
13614
|
console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
|
|
@@ -13618,7 +13648,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13618
13648
|
process.exit(0);
|
|
13619
13649
|
}
|
|
13620
13650
|
try {
|
|
13621
|
-
const { runGemini } = await import('./runGemini-
|
|
13651
|
+
const { runGemini } = await import('./runGemini-C3jrBffn.mjs');
|
|
13622
13652
|
let startedBy = void 0;
|
|
13623
13653
|
for (let i = 1; i < args.length; i++) {
|
|
13624
13654
|
if (args[i] === "--started-by") {
|
|
@@ -13640,7 +13670,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13640
13670
|
return;
|
|
13641
13671
|
} else if (subcommand === "acp") {
|
|
13642
13672
|
try {
|
|
13643
|
-
const { runAcp, resolveAcpAgentConfig } = await import('./index-
|
|
13673
|
+
const { runAcp, resolveAcpAgentConfig } = await import('./index-DLI9RIsu.mjs');
|
|
13644
13674
|
let startedBy = void 0;
|
|
13645
13675
|
let verbose = false;
|
|
13646
13676
|
const acpArgs = [];
|
|
@@ -13680,7 +13710,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13680
13710
|
return;
|
|
13681
13711
|
} else if (subcommand === "openclaw") {
|
|
13682
13712
|
try {
|
|
13683
|
-
const { runOpenClaw } = await import('./runOpenClaw-
|
|
13713
|
+
const { runOpenClaw } = await import('./runOpenClaw-B7pEvhUJ.mjs');
|
|
13684
13714
|
let startedBy = void 0;
|
|
13685
13715
|
let verbose = false;
|
|
13686
13716
|
let gatewayUrl;
|
|
@@ -13731,7 +13761,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
13731
13761
|
return;
|
|
13732
13762
|
} else if (subcommand === "mcp" && args.length === 1) {
|
|
13733
13763
|
try {
|
|
13734
|
-
const { handleMcpCommand } = await import('./mcp-
|
|
13764
|
+
const { handleMcpCommand } = await import('./mcp-CgOiXU_f.mjs');
|
|
13735
13765
|
await handleMcpCommand();
|
|
13736
13766
|
} catch (error) {
|
|
13737
13767
|
process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}
|
package/dist/index.cjs
CHANGED
package/dist/index.mjs
CHANGED
|
@@ -3,8 +3,8 @@ import { join, resolve } from 'node:path';
|
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import { spawnSync } from 'node:child_process';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import { p as projectPath } from './types-
|
|
7
|
-
import { t as tmuxSupportsSessionEnv } from './index-
|
|
6
|
+
import { p as projectPath } from './types-DY9ef3Sf.mjs';
|
|
7
|
+
import { t as tmuxSupportsSessionEnv } from './index-UiX6h05D.mjs';
|
|
8
8
|
import 'axios';
|
|
9
9
|
import 'node:util';
|
|
10
10
|
import 'node:fs/promises';
|
|
@@ -5,8 +5,8 @@ var path = require('node:path');
|
|
|
5
5
|
var os = require('node:os');
|
|
6
6
|
var node_child_process = require('node:child_process');
|
|
7
7
|
var chalk = require('chalk');
|
|
8
|
-
var persistence = require('./types-
|
|
9
|
-
var index = require('./index-
|
|
8
|
+
var persistence = require('./types-1ZueD6ob.cjs');
|
|
9
|
+
var index = require('./index-DveDBCaA.cjs');
|
|
10
10
|
require('axios');
|
|
11
11
|
require('node:util');
|
|
12
12
|
require('node:fs/promises');
|
package/dist/lib.cjs
CHANGED
package/dist/lib.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema, c as configuration, l as logger } from './types-
|
|
1
|
+
export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema, c as configuration, l as logger } from './types-DY9ef3Sf.mjs';
|
|
2
2
|
import 'axios';
|
|
3
3
|
import 'chalk';
|
|
4
4
|
import 'node:util';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
3
|
import { z } from 'zod';
|
|
4
|
-
import { p as pushClipboardViaDaemon } from './index-
|
|
4
|
+
import { p as pushClipboardViaDaemon } from './index-UiX6h05D.mjs';
|
|
5
5
|
import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, c as CLIPBOARD_MAX_BYTES } from './limits-CwFb5S2b.mjs';
|
|
6
|
-
import { l as logger } from './types-
|
|
6
|
+
import { l as logger } from './types-DY9ef3Sf.mjs';
|
|
7
7
|
import 'chalk';
|
|
8
8
|
import 'node:os';
|
|
9
9
|
import 'node:crypto';
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
|
|
4
4
|
var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
|
|
5
5
|
var z = require('zod');
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-DveDBCaA.cjs');
|
|
7
7
|
var limits = require('./limits-KdWKmwtH.cjs');
|
|
8
|
-
var persistence = require('./types-
|
|
8
|
+
var persistence = require('./types-1ZueD6ob.cjs');
|
|
9
9
|
require('chalk');
|
|
10
10
|
require('node:os');
|
|
11
11
|
require('node:crypto');
|
|
@@ -4,10 +4,10 @@ var ink = require('ink');
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var node_crypto = require('node:crypto');
|
|
6
6
|
var path = require('node:path');
|
|
7
|
-
var persistence = require('./types-
|
|
8
|
-
var index = require('./index-
|
|
9
|
-
var AcpBackend = require('./AcpBackend-
|
|
10
|
-
var config = require('./config-
|
|
7
|
+
var persistence = require('./types-1ZueD6ob.cjs');
|
|
8
|
+
var index = require('./index-DveDBCaA.cjs');
|
|
9
|
+
var AcpBackend = require('./AcpBackend-DxNg9T6Z.cjs');
|
|
10
|
+
var config = require('./config-DcoxG-LO.cjs');
|
|
11
11
|
require('axios');
|
|
12
12
|
require('chalk');
|
|
13
13
|
require('node:util');
|
|
@@ -2,10 +2,10 @@ import { useStdout, useInput, Box, Text, render } from 'ink';
|
|
|
2
2
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
3
3
|
import { randomUUID } from 'node:crypto';
|
|
4
4
|
import { join } from 'node:path';
|
|
5
|
-
import { l as logger, h as connectionState, A as ApiClient, i as readSettings, e as errorLogMetadata, j as encodeBase64, p as projectPath, d as contentLogMetadata } from './types-
|
|
6
|
-
import { g as GEMINI_API_KEY_ENV, j as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, B as BasePermissionHandler, k as BaseReasoningProcessor, i as initialMachineMetadata, d as createSessionMetadata, e as setupOfflineReconnection, n as notifyDaemonSessionStarted, M as MessageQueue2, h as hashObject, l as MessageBuffer, C as CHANGE_TITLE_INSTRUCTION, r as registerKillSessionHandler, f as startHappyServer } from './index-
|
|
7
|
-
import { A as AcpBackend } from './AcpBackend-
|
|
8
|
-
import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-
|
|
5
|
+
import { l as logger, h as connectionState, A as ApiClient, i as readSettings, e as errorLogMetadata, j as encodeBase64, p as projectPath, d as contentLogMetadata } from './types-DY9ef3Sf.mjs';
|
|
6
|
+
import { g as GEMINI_API_KEY_ENV, j as GOOGLE_API_KEY_ENV, G as GEMINI_MODEL_ENV, B as BasePermissionHandler, k as BaseReasoningProcessor, i as initialMachineMetadata, d as createSessionMetadata, e as setupOfflineReconnection, n as notifyDaemonSessionStarted, M as MessageQueue2, h as hashObject, l as MessageBuffer, C as CHANGE_TITLE_INSTRUCTION, r as registerKillSessionHandler, f as startHappyServer } from './index-UiX6h05D.mjs';
|
|
7
|
+
import { A as AcpBackend } from './AcpBackend-kotk9Pwu.mjs';
|
|
8
|
+
import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-CDMM_UhY.mjs';
|
|
9
9
|
import 'axios';
|
|
10
10
|
import 'chalk';
|
|
11
11
|
import 'node:util';
|
|
@@ -3,9 +3,9 @@ import { execFileSync } from 'node:child_process';
|
|
|
3
3
|
import os from 'node:os';
|
|
4
4
|
import { existsSync, readFileSync } from 'node:fs';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
|
-
import { k as ensurePrivateDirectorySync, m as hardenPrivateFileSync, w as writePrivateFileSync, e as errorLogMetadata, d as contentLogMetadata, h as connectionState, A as ApiClient, i as readSettings, j as encodeBase64, l as logger, c as configuration } from './types-
|
|
7
|
-
import { A as AcpSessionManager } from './AcpSessionManager-
|
|
8
|
-
import { i as initialMachineMetadata, d as createSessionMetadata, e as setupOfflineReconnection, n as notifyDaemonSessionStarted, M as MessageQueue2, r as registerKillSessionHandler } from './index-
|
|
6
|
+
import { k as ensurePrivateDirectorySync, m as hardenPrivateFileSync, w as writePrivateFileSync, e as errorLogMetadata, d as contentLogMetadata, h as connectionState, A as ApiClient, i as readSettings, j as encodeBase64, l as logger, c as configuration } from './types-DY9ef3Sf.mjs';
|
|
7
|
+
import { A as AcpSessionManager } from './AcpSessionManager-DGY1Ss6H.mjs';
|
|
8
|
+
import { i as initialMachineMetadata, d as createSessionMetadata, e as setupOfflineReconnection, n as notifyDaemonSessionStarted, M as MessageQueue2, r as registerKillSessionHandler } from './index-UiX6h05D.mjs';
|
|
9
9
|
import WebSocket from 'ws';
|
|
10
10
|
import * as ed from '@noble/ed25519';
|
|
11
11
|
import { sha512 } from '@noble/hashes/sha2.js';
|
|
@@ -5,9 +5,9 @@ var node_child_process = require('node:child_process');
|
|
|
5
5
|
var os = require('node:os');
|
|
6
6
|
var node_fs = require('node:fs');
|
|
7
7
|
var path = require('node:path');
|
|
8
|
-
var persistence = require('./types-
|
|
9
|
-
var AcpSessionManager = require('./AcpSessionManager-
|
|
10
|
-
var index = require('./index-
|
|
8
|
+
var persistence = require('./types-1ZueD6ob.cjs');
|
|
9
|
+
var AcpSessionManager = require('./AcpSessionManager-Im0qDPE0.cjs');
|
|
10
|
+
var index = require('./index-DveDBCaA.cjs');
|
|
11
11
|
var WebSocket = require('ws');
|
|
12
12
|
var ed = require('@noble/ed25519');
|
|
13
13
|
var sha2_js = require('@noble/hashes/sha2.js');
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var node_fs = require('node:fs');
|
|
5
5
|
var path = require('node:path');
|
|
6
|
-
var persistence = require('./types-
|
|
7
|
-
var index = require('./index-
|
|
6
|
+
var persistence = require('./types-1ZueD6ob.cjs');
|
|
7
|
+
var index = require('./index-DveDBCaA.cjs');
|
|
8
8
|
require('axios');
|
|
9
9
|
require('node:util');
|
|
10
10
|
require('node:os');
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { readFileSync } from 'node:fs';
|
|
3
3
|
import { resolve } from 'node:path';
|
|
4
|
-
import { r as readPersistedSessions, c as configuration } from './types-
|
|
5
|
-
import { b as sendUserMessage, a as sessionWebUrl } from './index-
|
|
4
|
+
import { r as readPersistedSessions, c as configuration } from './types-DY9ef3Sf.mjs';
|
|
5
|
+
import { b as sendUserMessage, a as sessionWebUrl } from './index-UiX6h05D.mjs';
|
|
6
6
|
import 'axios';
|
|
7
7
|
import 'node:util';
|
|
8
8
|
import 'node:os';
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var chalk = require('chalk');
|
|
4
4
|
var node_fs = require('node:fs');
|
|
5
5
|
var path = require('node:path');
|
|
6
|
-
var index = require('./index-
|
|
7
|
-
var persistence = require('./types-
|
|
6
|
+
var index = require('./index-DveDBCaA.cjs');
|
|
7
|
+
var persistence = require('./types-1ZueD6ob.cjs');
|
|
8
8
|
require('node:os');
|
|
9
9
|
require('node:crypto');
|
|
10
10
|
require('cross-spawn');
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { readFileSync, statSync } from 'node:fs';
|
|
3
3
|
import { resolve } from 'node:path';
|
|
4
|
-
import { c as checkIfDaemonRunningAndCleanupStaleState, s as spawnDaemonSession, a as sessionWebUrl, w as waitForSessionKey, b as sendUserMessage } from './index-
|
|
5
|
-
import { l as logger } from './types-
|
|
4
|
+
import { c as checkIfDaemonRunningAndCleanupStaleState, s as spawnDaemonSession, a as sessionWebUrl, w as waitForSessionKey, b as sendUserMessage } from './index-UiX6h05D.mjs';
|
|
5
|
+
import { l as logger } from './types-DY9ef3Sf.mjs';
|
|
6
6
|
import 'node:os';
|
|
7
7
|
import 'node:crypto';
|
|
8
8
|
import 'cross-spawn';
|
|
@@ -51,7 +51,7 @@ var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
|
|
|
51
51
|
var pty__namespace = /*#__PURE__*/_interopNamespaceDefault(pty);
|
|
52
52
|
|
|
53
53
|
var name = "very-happy-cli";
|
|
54
|
-
var version = "0.2.
|
|
54
|
+
var version = "0.2.87";
|
|
55
55
|
var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
|
|
56
56
|
var author = "Kirill Dubovitskiy";
|
|
57
57
|
var contributors = [
|
|
@@ -164,12 +164,12 @@ var dependencies = {
|
|
|
164
164
|
zod: "^4.0.0"
|
|
165
165
|
};
|
|
166
166
|
var optionalDependencies = {
|
|
167
|
-
"very-happy-tools-arm64-darwin": "0.2.
|
|
168
|
-
"very-happy-tools-x64-darwin": "0.2.
|
|
169
|
-
"very-happy-tools-arm64-linux": "0.2.
|
|
170
|
-
"very-happy-tools-x64-linux": "0.2.
|
|
171
|
-
"very-happy-tools-arm64-win32": "0.2.
|
|
172
|
-
"very-happy-tools-x64-win32": "0.2.
|
|
167
|
+
"very-happy-tools-arm64-darwin": "0.2.87",
|
|
168
|
+
"very-happy-tools-x64-darwin": "0.2.87",
|
|
169
|
+
"very-happy-tools-arm64-linux": "0.2.87",
|
|
170
|
+
"very-happy-tools-x64-linux": "0.2.87",
|
|
171
|
+
"very-happy-tools-arm64-win32": "0.2.87",
|
|
172
|
+
"very-happy-tools-x64-win32": "0.2.87"
|
|
173
173
|
};
|
|
174
174
|
var devDependencies = {
|
|
175
175
|
"@slopus/happy-wire": "workspace:*",
|
|
@@ -1484,7 +1484,7 @@ class RpcHandlerManager {
|
|
|
1484
1484
|
}
|
|
1485
1485
|
}
|
|
1486
1486
|
|
|
1487
|
-
const __dirname$1 = path$1.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('types-
|
|
1487
|
+
const __dirname$1 = path$1.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('types-1ZueD6ob.cjs', document.baseURI).href))));
|
|
1488
1488
|
function projectPath() {
|
|
1489
1489
|
const path = path$1.resolve(__dirname$1, "..");
|
|
1490
1490
|
return path;
|
|
@@ -3649,7 +3649,9 @@ class ApiSessionClient extends node_events.EventEmitter {
|
|
|
3649
3649
|
this.metadata = decrypt(this.encryptionKey, this.encryptionVariant, decodeBase64(answer.metadata));
|
|
3650
3650
|
}
|
|
3651
3651
|
throw new Error("Metadata version mismatch");
|
|
3652
|
-
} else if (answer.result === "error")
|
|
3652
|
+
} else if (answer.result === "error") {
|
|
3653
|
+
throw new Error("Metadata update failed");
|
|
3654
|
+
}
|
|
3653
3655
|
});
|
|
3654
3656
|
});
|
|
3655
3657
|
}
|
|
@@ -3673,7 +3675,9 @@ class ApiSessionClient extends node_events.EventEmitter {
|
|
|
3673
3675
|
this.agentState = answer.agentState ? decrypt(this.encryptionKey, this.encryptionVariant, decodeBase64(answer.agentState)) : null;
|
|
3674
3676
|
}
|
|
3675
3677
|
throw new Error("Agent state version mismatch");
|
|
3676
|
-
} else if (answer.result === "error")
|
|
3678
|
+
} else if (answer.result === "error") {
|
|
3679
|
+
throw new Error("Agent state update failed");
|
|
3680
|
+
}
|
|
3677
3681
|
});
|
|
3678
3682
|
});
|
|
3679
3683
|
}
|
|
@@ -29,7 +29,7 @@ import { SandboxManager } from '@anthropic-ai/sandbox-runtime';
|
|
|
29
29
|
import { Expo } from 'expo-server-sdk';
|
|
30
30
|
|
|
31
31
|
var name = "very-happy-cli";
|
|
32
|
-
var version = "0.2.
|
|
32
|
+
var version = "0.2.87";
|
|
33
33
|
var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
|
|
34
34
|
var author = "Kirill Dubovitskiy";
|
|
35
35
|
var contributors = [
|
|
@@ -142,12 +142,12 @@ var dependencies = {
|
|
|
142
142
|
zod: "^4.0.0"
|
|
143
143
|
};
|
|
144
144
|
var optionalDependencies = {
|
|
145
|
-
"very-happy-tools-arm64-darwin": "0.2.
|
|
146
|
-
"very-happy-tools-x64-darwin": "0.2.
|
|
147
|
-
"very-happy-tools-arm64-linux": "0.2.
|
|
148
|
-
"very-happy-tools-x64-linux": "0.2.
|
|
149
|
-
"very-happy-tools-arm64-win32": "0.2.
|
|
150
|
-
"very-happy-tools-x64-win32": "0.2.
|
|
145
|
+
"very-happy-tools-arm64-darwin": "0.2.87",
|
|
146
|
+
"very-happy-tools-x64-darwin": "0.2.87",
|
|
147
|
+
"very-happy-tools-arm64-linux": "0.2.87",
|
|
148
|
+
"very-happy-tools-x64-linux": "0.2.87",
|
|
149
|
+
"very-happy-tools-arm64-win32": "0.2.87",
|
|
150
|
+
"very-happy-tools-x64-win32": "0.2.87"
|
|
151
151
|
};
|
|
152
152
|
var devDependencies = {
|
|
153
153
|
"@slopus/happy-wire": "workspace:*",
|
|
@@ -3627,7 +3627,9 @@ class ApiSessionClient extends EventEmitter {
|
|
|
3627
3627
|
this.metadata = decrypt(this.encryptionKey, this.encryptionVariant, decodeBase64(answer.metadata));
|
|
3628
3628
|
}
|
|
3629
3629
|
throw new Error("Metadata version mismatch");
|
|
3630
|
-
} else if (answer.result === "error")
|
|
3630
|
+
} else if (answer.result === "error") {
|
|
3631
|
+
throw new Error("Metadata update failed");
|
|
3632
|
+
}
|
|
3631
3633
|
});
|
|
3632
3634
|
});
|
|
3633
3635
|
}
|
|
@@ -3651,7 +3653,9 @@ class ApiSessionClient extends EventEmitter {
|
|
|
3651
3653
|
this.agentState = answer.agentState ? decrypt(this.encryptionKey, this.encryptionVariant, decodeBase64(answer.agentState)) : null;
|
|
3652
3654
|
}
|
|
3653
3655
|
throw new Error("Agent state version mismatch");
|
|
3654
|
-
} else if (answer.result === "error")
|
|
3656
|
+
} else if (answer.result === "error") {
|
|
3657
|
+
throw new Error("Agent state update failed");
|
|
3658
|
+
}
|
|
3655
3659
|
});
|
|
3656
3660
|
});
|
|
3657
3661
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "very-happy-cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.87",
|
|
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": [
|
|
@@ -113,12 +113,12 @@
|
|
|
113
113
|
"zod": "^4.0.0"
|
|
114
114
|
},
|
|
115
115
|
"optionalDependencies": {
|
|
116
|
-
"very-happy-tools-arm64-darwin": "0.2.
|
|
117
|
-
"very-happy-tools-x64-darwin": "0.2.
|
|
118
|
-
"very-happy-tools-arm64-linux": "0.2.
|
|
119
|
-
"very-happy-tools-x64-linux": "0.2.
|
|
120
|
-
"very-happy-tools-arm64-win32": "0.2.
|
|
121
|
-
"very-happy-tools-x64-win32": "0.2.
|
|
116
|
+
"very-happy-tools-arm64-darwin": "0.2.87",
|
|
117
|
+
"very-happy-tools-x64-darwin": "0.2.87",
|
|
118
|
+
"very-happy-tools-arm64-linux": "0.2.87",
|
|
119
|
+
"very-happy-tools-x64-linux": "0.2.87",
|
|
120
|
+
"very-happy-tools-arm64-win32": "0.2.87",
|
|
121
|
+
"very-happy-tools-x64-win32": "0.2.87"
|
|
122
122
|
},
|
|
123
123
|
"devDependencies": {
|
|
124
124
|
"@slopus/happy-wire": "workspace:*",
|