very-happy-cli 0.2.115 → 0.2.116
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-BrZN8KM-.cjs → AcpBackend-CauAQpC1.cjs} +1 -1
- package/dist/{AcpBackend-DEZTWZZu.mjs → AcpBackend-CfKPvoTU.mjs} +1 -1
- package/dist/{AcpSessionManager-BzP3eiOG.mjs → AcpSessionManager-BQ6pBRW4.mjs} +1 -1
- package/dist/{AcpSessionManager-DjulpKY0.cjs → AcpSessionManager-CA6xeET_.cjs} +1 -1
- package/dist/{config-BNAsx9Wg.cjs → config-BoteFn-v.cjs} +2 -2
- package/dist/{config-CMgRBQMS.mjs → config-BpR_CwZu.mjs} +2 -2
- package/dist/{index-tPXwlc_t.cjs → index-4jiUeiUz.cjs} +110 -18
- package/dist/{index-CpGR7rIw.mjs → index-C45xN8s0.mjs} +5 -5
- package/dist/{index-B2KfhNku.mjs → index-D7azxfcs.mjs} +2 -2
- package/dist/{index-ClR0jhjm.cjs → index-DWmhmji9.cjs} +4 -4
- package/dist/{index-BHNEb4bc.mjs → index-Dq-eFp89.mjs} +106 -14
- package/dist/{index-B3UkbonP.cjs → index-lX1UliOs.cjs} +2 -2
- package/dist/index.cjs +2 -2
- package/dist/index.mjs +2 -2
- package/dist/{installTerminalHooks-CWfCF68p.cjs → installTerminalHooks-DnaFkrTF.cjs} +2 -2
- package/dist/{installTerminalHooks-DD6QuHfT.mjs → installTerminalHooks-k3TrBHD0.mjs} +2 -2
- package/dist/lib.cjs +1 -1
- package/dist/lib.d.cts +25 -0
- package/dist/lib.d.mts +25 -0
- package/dist/lib.mjs +1 -1
- package/dist/{mcp-CiNrjYox.mjs → mcp-DRePTOap.mjs} +2 -2
- package/dist/{mcp-CqjiDRnG.cjs → mcp-DSpEpM_2.cjs} +2 -2
- package/dist/{runGemini-UN5IznJp.cjs → runGemini-IWHyBq0A.cjs} +4 -4
- package/dist/{runGemini-DdJqpywr.mjs → runGemini-_9-a7duU.mjs} +4 -4
- package/dist/{runOpenClaw-9hhfGllZ.cjs → runOpenClaw-0myYIz1U.cjs} +3 -3
- package/dist/{runOpenClaw-CM5UrVBy.mjs → runOpenClaw-Boq6LQ9a.mjs} +3 -3
- package/dist/{send-CnVtXOj0.cjs → send-CwWvFfay.cjs} +2 -2
- package/dist/{send-C6G2jsQp.mjs → send-Cyo6mgMl.mjs} +2 -2
- package/dist/{sessions-CGdcF05T.cjs → sessions-CbzqYiAy.cjs} +2 -2
- package/dist/{sessions-CmabJzYS.mjs → sessions-lvfTH_ql.mjs} +2 -2
- package/dist/{spawn-qb344Y5E.mjs → spawn-CU0DMauA.mjs} +2 -2
- package/dist/{spawn-CfYddkS_.cjs → spawn-DQ6FTUK9.cjs} +2 -2
- package/dist/{types-CpnzfHHS.cjs → types-C5kEpkcZ.cjs} +150 -15
- package/dist/{types-B3qx8Ga1.mjs → types-Ds0SiQ1D.mjs} +149 -14
- 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-C5kEpkcZ.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-Ds0SiQ1D.mjs';
|
|
5
5
|
|
|
6
6
|
const DEFAULT_TIMEOUTS = {
|
|
7
7
|
/** Default initialization timeout: 60 seconds */
|
|
@@ -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-C5kEpkcZ.cjs');
|
|
8
|
+
var index = require('./index-4jiUeiUz.cjs');
|
|
9
9
|
require('axios');
|
|
10
10
|
require('chalk');
|
|
11
11
|
require('node:util');
|
|
@@ -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 { g as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-
|
|
5
|
+
import { l as logger } from './types-Ds0SiQ1D.mjs';
|
|
6
|
+
import { g as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-Dq-eFp89.mjs';
|
|
7
7
|
import 'axios';
|
|
8
8
|
import 'chalk';
|
|
9
9
|
import 'node:util';
|
|
@@ -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-C5kEpkcZ.cjs');
|
|
7
7
|
var spawn = require('cross-spawn');
|
|
8
8
|
var path = require('node:path');
|
|
9
9
|
var node_readline = require('node:readline');
|
|
@@ -7119,6 +7119,21 @@ function decideHandover(run) {
|
|
|
7119
7119
|
return { action: "handover" };
|
|
7120
7120
|
}
|
|
7121
7121
|
|
|
7122
|
+
function decideAutoUpdate(context) {
|
|
7123
|
+
if (!context.enabled) return { action: "skip", reason: "auto-update disabled" };
|
|
7124
|
+
const target = context.recommendedVersion;
|
|
7125
|
+
if (!target) return { action: "skip", reason: "no recommended version published" };
|
|
7126
|
+
if (target === context.currentVersion) return { action: "skip", reason: "already current" };
|
|
7127
|
+
if (context.failedVersion === target) {
|
|
7128
|
+
return { action: "skip", reason: `already failed to install ${target} once` };
|
|
7129
|
+
}
|
|
7130
|
+
if (!context.idle) return { action: "skip", reason: "machine is busy" };
|
|
7131
|
+
return { action: "install", version: target };
|
|
7132
|
+
}
|
|
7133
|
+
function autoUpdateInstallArgs(version) {
|
|
7134
|
+
return ["i", "-g", "--allow-scripts=very-happy-cli,node-pty", `very-happy-cli@${version}`];
|
|
7135
|
+
}
|
|
7136
|
+
|
|
7122
7137
|
const CLAUDE_KEYCHAIN_SERVICE_PREFIX = "Claude Code";
|
|
7123
7138
|
function keychainIdentity(env = process.env, deps = {}) {
|
|
7124
7139
|
const home = deps.home ?? os.homedir();
|
|
@@ -7182,7 +7197,7 @@ function parseJsonObject(text) {
|
|
|
7182
7197
|
return null;
|
|
7183
7198
|
}
|
|
7184
7199
|
}
|
|
7185
|
-
function resolveSdkClaudeBinary(platform = process.platform, arch = process.arch, resolver = (s) => node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-
|
|
7200
|
+
function resolveSdkClaudeBinary(platform = process.platform, arch = process.arch, resolver = (s) => node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-4jiUeiUz.cjs', document.baseURI).href))).resolve(s)) {
|
|
7186
7201
|
const platformArch = `${platform}-${arch}`;
|
|
7187
7202
|
const candidates = [
|
|
7188
7203
|
`@anthropic-ai/claude-agent-sdk-${platformArch}/claude`,
|
|
@@ -8399,6 +8414,40 @@ function withHandoverHold(state, reason) {
|
|
|
8399
8414
|
return reason ? { ...state, handoverHold: { reason, at: Date.now() } } : { ...state, handoverHold: null };
|
|
8400
8415
|
}
|
|
8401
8416
|
const HANDOVER_PREFLIGHT_TIMEOUT_MS = 3e4;
|
|
8417
|
+
function runNpmInstall(args) {
|
|
8418
|
+
return new Promise((resolve) => {
|
|
8419
|
+
let settled = false;
|
|
8420
|
+
const done = (code) => {
|
|
8421
|
+
if (!settled) {
|
|
8422
|
+
settled = true;
|
|
8423
|
+
resolve(code);
|
|
8424
|
+
}
|
|
8425
|
+
};
|
|
8426
|
+
let child;
|
|
8427
|
+
try {
|
|
8428
|
+
child = node_child_process.spawn("npm", args, { stdio: "ignore", env: process.env });
|
|
8429
|
+
} catch {
|
|
8430
|
+
done(null);
|
|
8431
|
+
return;
|
|
8432
|
+
}
|
|
8433
|
+
const timer = setTimeout(() => {
|
|
8434
|
+
try {
|
|
8435
|
+
child.kill("SIGKILL");
|
|
8436
|
+
} catch {
|
|
8437
|
+
}
|
|
8438
|
+
done(null);
|
|
8439
|
+
}, AUTO_UPDATE_INSTALL_TIMEOUT_MS);
|
|
8440
|
+
child.on("error", () => {
|
|
8441
|
+
clearTimeout(timer);
|
|
8442
|
+
done(null);
|
|
8443
|
+
});
|
|
8444
|
+
child.on("close", (code) => {
|
|
8445
|
+
clearTimeout(timer);
|
|
8446
|
+
done(code);
|
|
8447
|
+
});
|
|
8448
|
+
});
|
|
8449
|
+
}
|
|
8450
|
+
const AUTO_UPDATE_INSTALL_TIMEOUT_MS = 10 * 6e4;
|
|
8402
8451
|
async function startDaemon() {
|
|
8403
8452
|
let claudeAuthServiceRef = null;
|
|
8404
8453
|
let cliUpdateStateRef = null;
|
|
@@ -9465,6 +9514,48 @@ async function startDaemon() {
|
|
|
9465
9514
|
host: initialMachineMetadata.host
|
|
9466
9515
|
})).then(() => persistence.logger.debug(`[DAEMON RUN] claimed the machine record for host ${initialMachineMetadata.host}`)).catch((error) => persistence.logger.debug("[DAEMON RUN] could not refresh the recorded host:", error));
|
|
9467
9516
|
}
|
|
9517
|
+
let autoUpdateFailedVersion = null;
|
|
9518
|
+
let autoUpdateRunning = false;
|
|
9519
|
+
const maybeAutoUpdate = async (cliUpdate) => {
|
|
9520
|
+
if (autoUpdateRunning) return;
|
|
9521
|
+
const settings = await persistence.readSettings();
|
|
9522
|
+
const decision = decideAutoUpdate({
|
|
9523
|
+
enabled: (settings.cliAutoUpdate ?? "idle") !== "off",
|
|
9524
|
+
currentVersion: cliUpdate.currentVersion,
|
|
9525
|
+
recommendedVersion: cliUpdate.recommendedVersion,
|
|
9526
|
+
idle: pidToTrackedSession.size === 0 && !apiMachine.hasLiveTerminals(),
|
|
9527
|
+
failedVersion: autoUpdateFailedVersion
|
|
9528
|
+
});
|
|
9529
|
+
if (decision.action === "skip") {
|
|
9530
|
+
persistence.logger.debug(`[DAEMON RUN] auto-update skipped: ${decision.reason}`);
|
|
9531
|
+
return;
|
|
9532
|
+
}
|
|
9533
|
+
autoUpdateRunning = true;
|
|
9534
|
+
const target = decision.version;
|
|
9535
|
+
const report = (state, detail) => {
|
|
9536
|
+
cliUpdateStateRef = { ...cliUpdate, autoUpdate: { state, version: target, detail, at: Date.now() } };
|
|
9537
|
+
void apiMachine.setCliUpdateState(cliUpdateStateRef);
|
|
9538
|
+
};
|
|
9539
|
+
persistence.logger.warn(`[DAEMON RUN] auto-updating CLI to ${target} (machine idle)`);
|
|
9540
|
+
report("installing");
|
|
9541
|
+
try {
|
|
9542
|
+
const code = await runNpmInstall(autoUpdateInstallArgs(target));
|
|
9543
|
+
if (code === 0) {
|
|
9544
|
+
persistence.logger.warn(`[DAEMON RUN] auto-update installed ${target}; handover follows once it verifies`);
|
|
9545
|
+
report("installed");
|
|
9546
|
+
} else {
|
|
9547
|
+
autoUpdateFailedVersion = target;
|
|
9548
|
+
persistence.logger.warn(`[DAEMON RUN] auto-update of ${target} failed with exit ${code}`);
|
|
9549
|
+
report("failed", `npm exited ${code}`);
|
|
9550
|
+
}
|
|
9551
|
+
} catch (error) {
|
|
9552
|
+
autoUpdateFailedVersion = target;
|
|
9553
|
+
persistence.logger.warn(`[DAEMON RUN] auto-update of ${target} could not run:`, error);
|
|
9554
|
+
report("failed", String(error).slice(0, 200));
|
|
9555
|
+
} finally {
|
|
9556
|
+
autoUpdateRunning = false;
|
|
9557
|
+
}
|
|
9558
|
+
};
|
|
9468
9559
|
let cliUpdateCheckRunning = false;
|
|
9469
9560
|
const refreshCliUpdate = async () => {
|
|
9470
9561
|
if (cliUpdateCheckRunning) return;
|
|
@@ -9477,6 +9568,7 @@ async function startDaemon() {
|
|
|
9477
9568
|
cliUpdateStateRef = cliUpdate;
|
|
9478
9569
|
apiMachine.setCliUpdateState(cliUpdate);
|
|
9479
9570
|
persistence.logger.debug(`[DAEMON RUN] CLI update policy checked: ${cliUpdate.status} (recommended=${cliUpdate.recommendedVersion ?? "none"}, minimum=${cliUpdate.minimumVersion ?? "none"})`);
|
|
9571
|
+
await maybeAutoUpdate(cliUpdate);
|
|
9480
9572
|
} catch (error) {
|
|
9481
9573
|
persistence.logger.debug("[DAEMON RUN] CLI update policy check failed:", error);
|
|
9482
9574
|
} finally {
|
|
@@ -10693,7 +10785,7 @@ function registerSideQuestionHandler(rpc, deps) {
|
|
|
10693
10785
|
const retainMs = deps.retainMs ?? SIDE_QUESTION_RETAIN_MS;
|
|
10694
10786
|
const maxRunMs = deps.maxRunMs ?? SIDE_QUESTION_MAX_RUN_MS;
|
|
10695
10787
|
const run = deps.run ?? (async (input) => {
|
|
10696
|
-
const { query } = await Promise.resolve().then(function () { return require('./index-
|
|
10788
|
+
const { query } = await Promise.resolve().then(function () { return require('./index-lX1UliOs.cjs'); });
|
|
10697
10789
|
return runSideQuestion(query, input);
|
|
10698
10790
|
});
|
|
10699
10791
|
const slots = /* @__PURE__ */ new Map();
|
|
@@ -10795,7 +10887,7 @@ const MAX_TITLE_CHARS = 60;
|
|
|
10795
10887
|
const GENERATION_TIMEOUT_MS = 3e4;
|
|
10796
10888
|
function resolveClaudeBinary() {
|
|
10797
10889
|
try {
|
|
10798
|
-
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-
|
|
10890
|
+
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-4jiUeiUz.cjs', document.baseURI).href)));
|
|
10799
10891
|
const utilsPath = path.resolve(path.join(persistence.projectPath(), "scripts", "claude_version_utils.cjs"));
|
|
10800
10892
|
const { getClaudeCliPath } = require$1(utilsPath);
|
|
10801
10893
|
const path$1 = getClaudeCliPath();
|
|
@@ -12997,9 +13089,9 @@ function resolveLocalSignupBootstrap(configuredMode, configuredInviteCodes, gene
|
|
|
12997
13089
|
};
|
|
12998
13090
|
}
|
|
12999
13091
|
|
|
13000
|
-
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-
|
|
13092
|
+
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-4jiUeiUz.cjs', document.baseURI).href)));
|
|
13001
13093
|
const __dirname$1 = path.dirname(__filename$1);
|
|
13002
|
-
const require_ = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-
|
|
13094
|
+
const require_ = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-4jiUeiUz.cjs', document.baseURI).href)));
|
|
13003
13095
|
const PRISMA_QUERY_ENGINE_FILES = {
|
|
13004
13096
|
"arm64-darwin": "libquery_engine-darwin-arm64.dylib.node",
|
|
13005
13097
|
"x64-darwin": "libquery_engine-darwin.dylib.node",
|
|
@@ -15623,7 +15715,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15623
15715
|
process.exit(0);
|
|
15624
15716
|
} else if (subcommand === "install-terminal-hooks") {
|
|
15625
15717
|
try {
|
|
15626
|
-
const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await Promise.resolve().then(function () { return require('./installTerminalHooks-
|
|
15718
|
+
const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await Promise.resolve().then(function () { return require('./installTerminalHooks-DnaFkrTF.cjs'); });
|
|
15627
15719
|
const command = parseTerminalHooksArgs(args.slice(1));
|
|
15628
15720
|
if (command.action === "help") {
|
|
15629
15721
|
console.log(TERMINAL_HOOKS_HELP);
|
|
@@ -15640,7 +15732,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15640
15732
|
}
|
|
15641
15733
|
} else if (subcommand === "spawn") {
|
|
15642
15734
|
try {
|
|
15643
|
-
const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-
|
|
15735
|
+
const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-DQ6FTUK9.cjs'); });
|
|
15644
15736
|
await handleSpawnCommand(args.slice(1));
|
|
15645
15737
|
} catch (error) {
|
|
15646
15738
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -15652,7 +15744,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15652
15744
|
return;
|
|
15653
15745
|
} else if (subcommand === "sessions") {
|
|
15654
15746
|
try {
|
|
15655
|
-
const { handleSessionsCommand } = await Promise.resolve().then(function () { return require('./sessions-
|
|
15747
|
+
const { handleSessionsCommand } = await Promise.resolve().then(function () { return require('./sessions-CbzqYiAy.cjs'); });
|
|
15656
15748
|
await handleSessionsCommand(args.slice(1));
|
|
15657
15749
|
} catch (error) {
|
|
15658
15750
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -15664,7 +15756,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15664
15756
|
return;
|
|
15665
15757
|
} else if (subcommand === "send") {
|
|
15666
15758
|
try {
|
|
15667
|
-
const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-
|
|
15759
|
+
const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-CwWvFfay.cjs'); });
|
|
15668
15760
|
await handleSendCommand(args.slice(1));
|
|
15669
15761
|
} catch (error) {
|
|
15670
15762
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -15770,9 +15862,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15770
15862
|
if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
|
|
15771
15863
|
const projectId = args[3];
|
|
15772
15864
|
try {
|
|
15773
|
-
const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-
|
|
15774
|
-
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./types-
|
|
15775
|
-
const { ApiClient: ApiClient2 } = await Promise.resolve().then(function () { return require('./types-
|
|
15865
|
+
const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-BoteFn-v.cjs'); });
|
|
15866
|
+
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./types-C5kEpkcZ.cjs'); }).then(function (n) { return n.persistence; });
|
|
15867
|
+
const { ApiClient: ApiClient2 } = await Promise.resolve().then(function () { return require('./types-C5kEpkcZ.cjs'); }).then(function (n) { return n.api; });
|
|
15776
15868
|
let userEmail = void 0;
|
|
15777
15869
|
try {
|
|
15778
15870
|
const credentials = await readCredentialsForConfiguredRelay2();
|
|
@@ -15803,7 +15895,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15803
15895
|
}
|
|
15804
15896
|
if (geminiSubcommand === "project" && args[2] === "get") {
|
|
15805
15897
|
try {
|
|
15806
|
-
const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-
|
|
15898
|
+
const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-BoteFn-v.cjs'); });
|
|
15807
15899
|
const config = readGeminiLocalConfig();
|
|
15808
15900
|
if (config.googleCloudProject) {
|
|
15809
15901
|
console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
|
|
@@ -15843,7 +15935,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15843
15935
|
process.exit(0);
|
|
15844
15936
|
}
|
|
15845
15937
|
try {
|
|
15846
|
-
const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-
|
|
15938
|
+
const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-IWHyBq0A.cjs'); });
|
|
15847
15939
|
let startedBy = void 0;
|
|
15848
15940
|
for (let i = 1; i < args.length; i++) {
|
|
15849
15941
|
if (args[i] === "--started-by") {
|
|
@@ -15865,7 +15957,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15865
15957
|
return;
|
|
15866
15958
|
} else if (subcommand === "acp") {
|
|
15867
15959
|
try {
|
|
15868
|
-
const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-
|
|
15960
|
+
const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-DWmhmji9.cjs'); });
|
|
15869
15961
|
let startedBy = void 0;
|
|
15870
15962
|
let verbose = false;
|
|
15871
15963
|
const acpArgs = [];
|
|
@@ -15905,7 +15997,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15905
15997
|
return;
|
|
15906
15998
|
} else if (subcommand === "openclaw") {
|
|
15907
15999
|
try {
|
|
15908
|
-
const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-
|
|
16000
|
+
const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-0myYIz1U.cjs'); });
|
|
15909
16001
|
let startedBy = void 0;
|
|
15910
16002
|
let verbose = false;
|
|
15911
16003
|
let gatewayUrl;
|
|
@@ -15956,7 +16048,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15956
16048
|
return;
|
|
15957
16049
|
} else if (subcommand === "mcp" && args.length === 1) {
|
|
15958
16050
|
try {
|
|
15959
|
-
const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-
|
|
16051
|
+
const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-DSpEpM_2.cjs'); });
|
|
15960
16052
|
await handleMcpCommand();
|
|
15961
16053
|
} catch (error) {
|
|
15962
16054
|
process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}
|
|
@@ -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, j as readSettings, k 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-CfKPvoTU.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-CfKPvoTU.mjs';
|
|
3
|
+
import { h as connectionState, A as ApiClient, j as readSettings, k as encodeBase64, l as logger, p as projectPath } from './types-Ds0SiQ1D.mjs';
|
|
4
|
+
import { A as AcpSessionManager } from './AcpSessionManager-BQ6pBRW4.mjs';
|
|
5
5
|
import { randomUUID } from 'node:crypto';
|
|
6
6
|
import { join } from 'node:path';
|
|
7
|
-
import { h as initialMachineMetadata, j as createSessionMetadata, k as setupOfflineReconnection, n as notifyDaemonSessionStarted, m as MessageQueue2, o as hashObject, u as startHappyServer, v as registerKillSessionHandler, B as BasePermissionHandler } from './index-
|
|
7
|
+
import { h as initialMachineMetadata, j as createSessionMetadata, k as setupOfflineReconnection, n as notifyDaemonSessionStarted, m as MessageQueue2, o as hashObject, u as startHappyServer, v as registerKillSessionHandler, B as BasePermissionHandler } from './index-Dq-eFp89.mjs';
|
|
8
8
|
import 'node:child_process';
|
|
9
9
|
import '@agentclientprotocol/sdk';
|
|
10
10
|
import 'axios';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { q as query } from './index-
|
|
1
|
+
import { q as query } from './index-Dq-eFp89.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-Ds0SiQ1D.mjs';
|
|
7
7
|
import 'axios';
|
|
8
8
|
import 'node:util';
|
|
9
9
|
import 'node:fs';
|
|
@@ -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-CauAQpC1.cjs');
|
|
4
|
+
var persistence = require('./types-C5kEpkcZ.cjs');
|
|
5
|
+
var AcpSessionManager = require('./AcpSessionManager-CA6xeET_.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-4jiUeiUz.cjs');
|
|
9
9
|
require('node:child_process');
|
|
10
10
|
require('@agentclientprotocol/sdk');
|
|
11
11
|
require('axios');
|
|
@@ -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, userInfo, tmpdir } from 'node:os';
|
|
3
3
|
import { randomUUID, randomBytes, createHash as createHash$1, timingSafeEqual } from 'node:crypto';
|
|
4
|
-
import { o as readDaemonState, l as logger, c as configuration, q as clearDaemonState, s as getProjectPath, p as projectPath, t as initializeSandbox, u as wrapCommand, d as contentLogMetadata, I as InvalidateSync, R as RawJSONLinesSchema, g as delay, v as AsyncLock, S as STREAM_DELTA_MAX_CHARS, x as ensurePrivateDirectory, M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES, y as hardenPrivateFile, f as packageJson, j as readSettings, z as readCredentials, B as credentialRelayProblem, C as deriveLocalCliUpdateSummary, k as encodeBase64, D as updateSettings, E as encodeBase64Url, F as decodeBase64, G as writeCredentialsLegacy, H as writeCredentialsDataKey, J as readCredentialsForConfiguredRelay, K as encrypt, r as readPersistedSessions, L as isClaudeSessionId, N as getLocalHappyAgentCredentialPath, O as readLocalHappyAgentCredentials, P as decryptWithDataKey, Q as decryptLegacy, T as extractCompleteLines, U as decideBackfill, V as parseTerminalHookPayload, W as tmuxArgs, X as scrubTmuxClientEnv, Y as decideMirrorBinding, Z as MIRROR_BACKFILL_LINES_DEFAULT, _ as persistSession, $ as mirrorLineKey, a0 as mirrorLocalId, w as writePrivateFileSync, a1 as detectResumeSupport, a2 as detectCLIAvailability, a3 as acquireDaemonLock, a4 as summarizeSpawnSessionForLog, a5 as deletePersistedSessions, a6 as shellescape, a7 as decrypt, a8 as writeDaemonState, A as ApiClient, a9 as writeSettings, aa as fetchCliUpdateState, ab as resolveCliUpdateCheckInterval, ac as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS, ad as releaseDaemonLock, i as isValidSessionId, ae as listVhTerminals, af as isValidTerminalId, ag as readVhTerminal, ah as sendToVhTerminal, ai as TITLE_PROMPT_PREFIX, aj as BOARD_ANALYZER_PROMPT_PREFIX, h as connectionState, ak as startOfflineReconnection, al as clearCredentials, am as clearMachineId, m as ensurePrivateDirectorySync, an as SandboxConfigSchema, b as createEnvelope, ao as CodexAppServerClient, ap as getLatestDaemonLog } from './types-
|
|
4
|
+
import { o as readDaemonState, l as logger, c as configuration, q as clearDaemonState, s as getProjectPath, p as projectPath, t as initializeSandbox, u as wrapCommand, d as contentLogMetadata, I as InvalidateSync, R as RawJSONLinesSchema, g as delay, v as AsyncLock, S as STREAM_DELTA_MAX_CHARS, x as ensurePrivateDirectory, M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES, y as hardenPrivateFile, f as packageJson, j as readSettings, z as readCredentials, B as credentialRelayProblem, C as deriveLocalCliUpdateSummary, k as encodeBase64, D as updateSettings, E as encodeBase64Url, F as decodeBase64, G as writeCredentialsLegacy, H as writeCredentialsDataKey, J as readCredentialsForConfiguredRelay, K as encrypt, r as readPersistedSessions, L as isClaudeSessionId, N as getLocalHappyAgentCredentialPath, O as readLocalHappyAgentCredentials, P as decryptWithDataKey, Q as decryptLegacy, T as extractCompleteLines, U as decideBackfill, V as parseTerminalHookPayload, W as tmuxArgs, X as scrubTmuxClientEnv, Y as decideMirrorBinding, Z as MIRROR_BACKFILL_LINES_DEFAULT, _ as persistSession, $ as mirrorLineKey, a0 as mirrorLocalId, w as writePrivateFileSync, a1 as detectResumeSupport, a2 as detectCLIAvailability, a3 as acquireDaemonLock, a4 as summarizeSpawnSessionForLog, a5 as deletePersistedSessions, a6 as shellescape, a7 as decrypt, a8 as writeDaemonState, A as ApiClient, a9 as writeSettings, aa as fetchCliUpdateState, ab as resolveCliUpdateCheckInterval, ac as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS, ad as releaseDaemonLock, i as isValidSessionId, ae as listVhTerminals, af as isValidTerminalId, ag as readVhTerminal, ah as sendToVhTerminal, ai as TITLE_PROMPT_PREFIX, aj as BOARD_ANALYZER_PROMPT_PREFIX, h as connectionState, ak as startOfflineReconnection, al as clearCredentials, am as clearMachineId, m as ensurePrivateDirectorySync, an as SandboxConfigSchema, b as createEnvelope, ao as CodexAppServerClient, ap as getLatestDaemonLog } from './types-Ds0SiQ1D.mjs';
|
|
5
5
|
import spawn$1, { spawn } from 'cross-spawn';
|
|
6
6
|
import path, { join, resolve, basename, delimiter, isAbsolute, normalize, sep, dirname } from 'node:path';
|
|
7
7
|
import { createInterface } from 'node:readline';
|
|
@@ -7097,6 +7097,21 @@ function decideHandover(run) {
|
|
|
7097
7097
|
return { action: "handover" };
|
|
7098
7098
|
}
|
|
7099
7099
|
|
|
7100
|
+
function decideAutoUpdate(context) {
|
|
7101
|
+
if (!context.enabled) return { action: "skip", reason: "auto-update disabled" };
|
|
7102
|
+
const target = context.recommendedVersion;
|
|
7103
|
+
if (!target) return { action: "skip", reason: "no recommended version published" };
|
|
7104
|
+
if (target === context.currentVersion) return { action: "skip", reason: "already current" };
|
|
7105
|
+
if (context.failedVersion === target) {
|
|
7106
|
+
return { action: "skip", reason: `already failed to install ${target} once` };
|
|
7107
|
+
}
|
|
7108
|
+
if (!context.idle) return { action: "skip", reason: "machine is busy" };
|
|
7109
|
+
return { action: "install", version: target };
|
|
7110
|
+
}
|
|
7111
|
+
function autoUpdateInstallArgs(version) {
|
|
7112
|
+
return ["i", "-g", "--allow-scripts=very-happy-cli,node-pty", `very-happy-cli@${version}`];
|
|
7113
|
+
}
|
|
7114
|
+
|
|
7100
7115
|
const CLAUDE_KEYCHAIN_SERVICE_PREFIX = "Claude Code";
|
|
7101
7116
|
function keychainIdentity(env = process.env, deps = {}) {
|
|
7102
7117
|
const home = deps.home ?? homedir();
|
|
@@ -8377,6 +8392,40 @@ function withHandoverHold(state, reason) {
|
|
|
8377
8392
|
return reason ? { ...state, handoverHold: { reason, at: Date.now() } } : { ...state, handoverHold: null };
|
|
8378
8393
|
}
|
|
8379
8394
|
const HANDOVER_PREFLIGHT_TIMEOUT_MS = 3e4;
|
|
8395
|
+
function runNpmInstall(args) {
|
|
8396
|
+
return new Promise((resolve) => {
|
|
8397
|
+
let settled = false;
|
|
8398
|
+
const done = (code) => {
|
|
8399
|
+
if (!settled) {
|
|
8400
|
+
settled = true;
|
|
8401
|
+
resolve(code);
|
|
8402
|
+
}
|
|
8403
|
+
};
|
|
8404
|
+
let child;
|
|
8405
|
+
try {
|
|
8406
|
+
child = spawn$3("npm", args, { stdio: "ignore", env: process.env });
|
|
8407
|
+
} catch {
|
|
8408
|
+
done(null);
|
|
8409
|
+
return;
|
|
8410
|
+
}
|
|
8411
|
+
const timer = setTimeout(() => {
|
|
8412
|
+
try {
|
|
8413
|
+
child.kill("SIGKILL");
|
|
8414
|
+
} catch {
|
|
8415
|
+
}
|
|
8416
|
+
done(null);
|
|
8417
|
+
}, AUTO_UPDATE_INSTALL_TIMEOUT_MS);
|
|
8418
|
+
child.on("error", () => {
|
|
8419
|
+
clearTimeout(timer);
|
|
8420
|
+
done(null);
|
|
8421
|
+
});
|
|
8422
|
+
child.on("close", (code) => {
|
|
8423
|
+
clearTimeout(timer);
|
|
8424
|
+
done(code);
|
|
8425
|
+
});
|
|
8426
|
+
});
|
|
8427
|
+
}
|
|
8428
|
+
const AUTO_UPDATE_INSTALL_TIMEOUT_MS = 10 * 6e4;
|
|
8380
8429
|
async function startDaemon() {
|
|
8381
8430
|
let claudeAuthServiceRef = null;
|
|
8382
8431
|
let cliUpdateStateRef = null;
|
|
@@ -9443,6 +9492,48 @@ async function startDaemon() {
|
|
|
9443
9492
|
host: initialMachineMetadata.host
|
|
9444
9493
|
})).then(() => logger.debug(`[DAEMON RUN] claimed the machine record for host ${initialMachineMetadata.host}`)).catch((error) => logger.debug("[DAEMON RUN] could not refresh the recorded host:", error));
|
|
9445
9494
|
}
|
|
9495
|
+
let autoUpdateFailedVersion = null;
|
|
9496
|
+
let autoUpdateRunning = false;
|
|
9497
|
+
const maybeAutoUpdate = async (cliUpdate) => {
|
|
9498
|
+
if (autoUpdateRunning) return;
|
|
9499
|
+
const settings = await readSettings();
|
|
9500
|
+
const decision = decideAutoUpdate({
|
|
9501
|
+
enabled: (settings.cliAutoUpdate ?? "idle") !== "off",
|
|
9502
|
+
currentVersion: cliUpdate.currentVersion,
|
|
9503
|
+
recommendedVersion: cliUpdate.recommendedVersion,
|
|
9504
|
+
idle: pidToTrackedSession.size === 0 && !apiMachine.hasLiveTerminals(),
|
|
9505
|
+
failedVersion: autoUpdateFailedVersion
|
|
9506
|
+
});
|
|
9507
|
+
if (decision.action === "skip") {
|
|
9508
|
+
logger.debug(`[DAEMON RUN] auto-update skipped: ${decision.reason}`);
|
|
9509
|
+
return;
|
|
9510
|
+
}
|
|
9511
|
+
autoUpdateRunning = true;
|
|
9512
|
+
const target = decision.version;
|
|
9513
|
+
const report = (state, detail) => {
|
|
9514
|
+
cliUpdateStateRef = { ...cliUpdate, autoUpdate: { state, version: target, detail, at: Date.now() } };
|
|
9515
|
+
void apiMachine.setCliUpdateState(cliUpdateStateRef);
|
|
9516
|
+
};
|
|
9517
|
+
logger.warn(`[DAEMON RUN] auto-updating CLI to ${target} (machine idle)`);
|
|
9518
|
+
report("installing");
|
|
9519
|
+
try {
|
|
9520
|
+
const code = await runNpmInstall(autoUpdateInstallArgs(target));
|
|
9521
|
+
if (code === 0) {
|
|
9522
|
+
logger.warn(`[DAEMON RUN] auto-update installed ${target}; handover follows once it verifies`);
|
|
9523
|
+
report("installed");
|
|
9524
|
+
} else {
|
|
9525
|
+
autoUpdateFailedVersion = target;
|
|
9526
|
+
logger.warn(`[DAEMON RUN] auto-update of ${target} failed with exit ${code}`);
|
|
9527
|
+
report("failed", `npm exited ${code}`);
|
|
9528
|
+
}
|
|
9529
|
+
} catch (error) {
|
|
9530
|
+
autoUpdateFailedVersion = target;
|
|
9531
|
+
logger.warn(`[DAEMON RUN] auto-update of ${target} could not run:`, error);
|
|
9532
|
+
report("failed", String(error).slice(0, 200));
|
|
9533
|
+
} finally {
|
|
9534
|
+
autoUpdateRunning = false;
|
|
9535
|
+
}
|
|
9536
|
+
};
|
|
9446
9537
|
let cliUpdateCheckRunning = false;
|
|
9447
9538
|
const refreshCliUpdate = async () => {
|
|
9448
9539
|
if (cliUpdateCheckRunning) return;
|
|
@@ -9455,6 +9546,7 @@ async function startDaemon() {
|
|
|
9455
9546
|
cliUpdateStateRef = cliUpdate;
|
|
9456
9547
|
apiMachine.setCliUpdateState(cliUpdate);
|
|
9457
9548
|
logger.debug(`[DAEMON RUN] CLI update policy checked: ${cliUpdate.status} (recommended=${cliUpdate.recommendedVersion ?? "none"}, minimum=${cliUpdate.minimumVersion ?? "none"})`);
|
|
9549
|
+
await maybeAutoUpdate(cliUpdate);
|
|
9458
9550
|
} catch (error) {
|
|
9459
9551
|
logger.debug("[DAEMON RUN] CLI update policy check failed:", error);
|
|
9460
9552
|
} finally {
|
|
@@ -10671,7 +10763,7 @@ function registerSideQuestionHandler(rpc, deps) {
|
|
|
10671
10763
|
const retainMs = deps.retainMs ?? SIDE_QUESTION_RETAIN_MS;
|
|
10672
10764
|
const maxRunMs = deps.maxRunMs ?? SIDE_QUESTION_MAX_RUN_MS;
|
|
10673
10765
|
const run = deps.run ?? (async (input) => {
|
|
10674
|
-
const { query } = await import('./index-
|
|
10766
|
+
const { query } = await import('./index-D7azxfcs.mjs');
|
|
10675
10767
|
return runSideQuestion(query, input);
|
|
10676
10768
|
});
|
|
10677
10769
|
const slots = /* @__PURE__ */ new Map();
|
|
@@ -15601,7 +15693,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15601
15693
|
process.exit(0);
|
|
15602
15694
|
} else if (subcommand === "install-terminal-hooks") {
|
|
15603
15695
|
try {
|
|
15604
|
-
const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-
|
|
15696
|
+
const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-k3TrBHD0.mjs');
|
|
15605
15697
|
const command = parseTerminalHooksArgs(args.slice(1));
|
|
15606
15698
|
if (command.action === "help") {
|
|
15607
15699
|
console.log(TERMINAL_HOOKS_HELP);
|
|
@@ -15618,7 +15710,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15618
15710
|
}
|
|
15619
15711
|
} else if (subcommand === "spawn") {
|
|
15620
15712
|
try {
|
|
15621
|
-
const { handleSpawnCommand } = await import('./spawn-
|
|
15713
|
+
const { handleSpawnCommand } = await import('./spawn-CU0DMauA.mjs');
|
|
15622
15714
|
await handleSpawnCommand(args.slice(1));
|
|
15623
15715
|
} catch (error) {
|
|
15624
15716
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -15630,7 +15722,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15630
15722
|
return;
|
|
15631
15723
|
} else if (subcommand === "sessions") {
|
|
15632
15724
|
try {
|
|
15633
|
-
const { handleSessionsCommand } = await import('./sessions-
|
|
15725
|
+
const { handleSessionsCommand } = await import('./sessions-lvfTH_ql.mjs');
|
|
15634
15726
|
await handleSessionsCommand(args.slice(1));
|
|
15635
15727
|
} catch (error) {
|
|
15636
15728
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -15642,7 +15734,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15642
15734
|
return;
|
|
15643
15735
|
} else if (subcommand === "send") {
|
|
15644
15736
|
try {
|
|
15645
|
-
const { handleSendCommand } = await import('./send-
|
|
15737
|
+
const { handleSendCommand } = await import('./send-Cyo6mgMl.mjs');
|
|
15646
15738
|
await handleSendCommand(args.slice(1));
|
|
15647
15739
|
} catch (error) {
|
|
15648
15740
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -15748,9 +15840,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15748
15840
|
if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
|
|
15749
15841
|
const projectId = args[3];
|
|
15750
15842
|
try {
|
|
15751
|
-
const { saveGoogleCloudProjectToConfig } = await import('./config-
|
|
15752
|
-
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./types-
|
|
15753
|
-
const { ApiClient: ApiClient2 } = await import('./types-
|
|
15843
|
+
const { saveGoogleCloudProjectToConfig } = await import('./config-BpR_CwZu.mjs');
|
|
15844
|
+
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./types-Ds0SiQ1D.mjs').then(function (n) { return n.aq; });
|
|
15845
|
+
const { ApiClient: ApiClient2 } = await import('./types-Ds0SiQ1D.mjs').then(function (n) { return n.ar; });
|
|
15754
15846
|
let userEmail = void 0;
|
|
15755
15847
|
try {
|
|
15756
15848
|
const credentials = await readCredentialsForConfiguredRelay2();
|
|
@@ -15781,7 +15873,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15781
15873
|
}
|
|
15782
15874
|
if (geminiSubcommand === "project" && args[2] === "get") {
|
|
15783
15875
|
try {
|
|
15784
|
-
const { readGeminiLocalConfig } = await import('./config-
|
|
15876
|
+
const { readGeminiLocalConfig } = await import('./config-BpR_CwZu.mjs');
|
|
15785
15877
|
const config = readGeminiLocalConfig();
|
|
15786
15878
|
if (config.googleCloudProject) {
|
|
15787
15879
|
console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
|
|
@@ -15821,7 +15913,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15821
15913
|
process.exit(0);
|
|
15822
15914
|
}
|
|
15823
15915
|
try {
|
|
15824
|
-
const { runGemini } = await import('./runGemini-
|
|
15916
|
+
const { runGemini } = await import('./runGemini-_9-a7duU.mjs');
|
|
15825
15917
|
let startedBy = void 0;
|
|
15826
15918
|
for (let i = 1; i < args.length; i++) {
|
|
15827
15919
|
if (args[i] === "--started-by") {
|
|
@@ -15843,7 +15935,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15843
15935
|
return;
|
|
15844
15936
|
} else if (subcommand === "acp") {
|
|
15845
15937
|
try {
|
|
15846
|
-
const { runAcp, resolveAcpAgentConfig } = await import('./index-
|
|
15938
|
+
const { runAcp, resolveAcpAgentConfig } = await import('./index-C45xN8s0.mjs');
|
|
15847
15939
|
let startedBy = void 0;
|
|
15848
15940
|
let verbose = false;
|
|
15849
15941
|
const acpArgs = [];
|
|
@@ -15883,7 +15975,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15883
15975
|
return;
|
|
15884
15976
|
} else if (subcommand === "openclaw") {
|
|
15885
15977
|
try {
|
|
15886
|
-
const { runOpenClaw } = await import('./runOpenClaw-
|
|
15978
|
+
const { runOpenClaw } = await import('./runOpenClaw-Boq6LQ9a.mjs');
|
|
15887
15979
|
let startedBy = void 0;
|
|
15888
15980
|
let verbose = false;
|
|
15889
15981
|
let gatewayUrl;
|
|
@@ -15934,7 +16026,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
15934
16026
|
return;
|
|
15935
16027
|
} else if (subcommand === "mcp" && args.length === 1) {
|
|
15936
16028
|
try {
|
|
15937
|
-
const { handleMcpCommand } = await import('./mcp-
|
|
16029
|
+
const { handleMcpCommand } = await import('./mcp-DRePTOap.mjs');
|
|
15938
16030
|
await handleMcpCommand();
|
|
15939
16031
|
} catch (error) {
|
|
15940
16032
|
process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-4jiUeiUz.cjs');
|
|
4
4
|
var claudeAgentSdk = require('@anthropic-ai/claude-agent-sdk');
|
|
5
5
|
require('chalk');
|
|
6
6
|
require('node:os');
|
|
7
7
|
require('node:crypto');
|
|
8
|
-
require('./types-
|
|
8
|
+
require('./types-C5kEpkcZ.cjs');
|
|
9
9
|
require('axios');
|
|
10
10
|
require('node:util');
|
|
11
11
|
require('node:fs');
|
package/dist/index.cjs
CHANGED
package/dist/index.mjs
CHANGED