very-happy-cli 0.2.95 → 0.2.96

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.
Files changed (29) hide show
  1. package/dist/{AcpBackend-Cuiff4Nu.mjs → AcpBackend-B5Eh8G3W.mjs} +1 -1
  2. package/dist/{AcpBackend-BXsbwTbl.cjs → AcpBackend-BaCt4_zS.cjs} +1 -1
  3. package/dist/{AcpSessionManager-BXGmMoe8.cjs → AcpSessionManager-CvgmPlXB.cjs} +1 -1
  4. package/dist/{AcpSessionManager-BU69q_vR.mjs → AcpSessionManager-grr_aJEI.mjs} +1 -1
  5. package/dist/{config-2GD21yg_.mjs → config-B69TZlJj.mjs} +2 -2
  6. package/dist/{config-BVOE0pni.cjs → config-BjsUeQPA.cjs} +2 -2
  7. package/dist/{index-DVEdpWq0.mjs → index-BMmbxCTq.mjs} +12 -12
  8. package/dist/{index-DZ0uw6ef.mjs → index-C-uJXSm3.mjs} +5 -5
  9. package/dist/{index-CbPc1iVx.cjs → index-DID1FV_n.cjs} +4 -4
  10. package/dist/{index-BzbaMrIa.cjs → index-uc-dtu-3.cjs} +15 -15
  11. package/dist/index.cjs +2 -2
  12. package/dist/index.mjs +2 -2
  13. package/dist/{installTerminalHooks-FiujjEvb.mjs → installTerminalHooks-CBHjEQ-a.mjs} +2 -2
  14. package/dist/{installTerminalHooks-BrrsyTMd.cjs → installTerminalHooks-CepXxAM_.cjs} +2 -2
  15. package/dist/lib.cjs +1 -1
  16. package/dist/lib.mjs +1 -1
  17. package/dist/{mcp-0mZcHPtz.mjs → mcp-BdSHqi2d.mjs} +2 -2
  18. package/dist/{mcp-ziyMk3eS.cjs → mcp-CAtbtTXF.cjs} +2 -2
  19. package/dist/{runGemini-D_InkOhk.mjs → runGemini-cMZ3_CRf.mjs} +4 -4
  20. package/dist/{runGemini-C91O1oxi.cjs → runGemini-qStPY5fH.cjs} +4 -4
  21. package/dist/{runOpenClaw-B1RRfA1V.cjs → runOpenClaw-B8HR6GnX.cjs} +3 -3
  22. package/dist/{runOpenClaw-BjebGmV6.mjs → runOpenClaw-BJ36wEbk.mjs} +3 -3
  23. package/dist/{send-DgK6MtgT.cjs → send-6eY55o3C.cjs} +2 -2
  24. package/dist/{send-CxLL0z9J.mjs → send-TX13v8Xe.mjs} +2 -2
  25. package/dist/{spawn-uTPD3qOt.mjs → spawn-CfCE6JAv.mjs} +2 -2
  26. package/dist/{spawn-Dian7x_g.cjs → spawn-vOZA0kOi.cjs} +2 -2
  27. package/dist/{types-BLE8Hfmh.mjs → types-CLRl0ET3.mjs} +18 -8
  28. package/dist/{types-HRuZ13LS.cjs → types-okYCRlgl.cjs} +19 -9
  29. package/package.json +7 -7
@@ -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-BLE8Hfmh.mjs';
4
+ import { l as logger, d as contentLogMetadata, e as errorLogMetadata, f as packageJson, g as delay } from './types-CLRl0ET3.mjs';
5
5
 
6
6
  const DEFAULT_TIMEOUTS = {
7
7
  /** Default initialization timeout: 60 seconds */
@@ -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-HRuZ13LS.cjs');
6
+ var persistence = require('./types-okYCRlgl.cjs');
7
7
 
8
8
  const DEFAULT_TIMEOUTS = {
9
9
  /** Default initialization timeout: 60 seconds */
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var cuid2 = require('@paralleldrive/cuid2');
4
- var persistence = require('./types-HRuZ13LS.cjs');
4
+ var persistence = require('./types-okYCRlgl.cjs');
5
5
 
6
6
  function turnOptions(turnId, time) {
7
7
  return turnId ? { turn: turnId, time } : { time };
@@ -1,5 +1,5 @@
1
1
  import { createId } from '@paralleldrive/cuid2';
2
- import { b as createEnvelope } from './types-BLE8Hfmh.mjs';
2
+ import { b as createEnvelope } from './types-CLRl0ET3.mjs';
3
3
 
4
4
  function turnOptions(turnId, time) {
5
5
  return turnId ? { turn: turnId, time } : { time };
@@ -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-BLE8Hfmh.mjs';
6
- import { D as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-DVEdpWq0.mjs';
5
+ import { l as logger } from './types-CLRl0ET3.mjs';
6
+ import { D as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-BMmbxCTq.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-HRuZ13LS.cjs');
8
- var index = require('./index-BzbaMrIa.cjs');
7
+ var persistence = require('./types-okYCRlgl.cjs');
8
+ var index = require('./index-uc-dtu-3.cjs');
9
9
  require('axios');
10
10
  require('chalk');
11
11
  require('node:util');
@@ -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 isClaudeSessionId, L as getLocalHappyAgentCredentialPath, N as readLocalHappyAgentCredentials, O as decryptWithDataKey, P as decryptLegacy, Q as extractCompleteLines, S as decideBackfill, T as parseTerminalHookPayload, U as tmuxArgs, V as scrubTmuxClientEnv, W as decideMirrorBinding, X as MIRROR_BACKFILL_LINES_DEFAULT, Y as persistSession, Z as mirrorLineKey, _ as mirrorLocalId, w as writePrivateFileSync, $ as detectResumeSupport, a0 as detectCLIAvailability, a1 as acquireDaemonLock, a2 as summarizeSpawnSessionForLog, a3 as deletePersistedSessions, a4 as decrypt, a5 as writeDaemonState, A as ApiClient, a6 as fetchCliUpdateState, a7 as resolveCliUpdateCheckInterval, a8 as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS, a9 as releaseDaemonLock, aa as isValidSessionId, ab as listVhTerminals, ac as isValidTerminalId, ad as readVhTerminal, ae as sendToVhTerminal, h as connectionState, af as startOfflineReconnection, ag as clearCredentials, ah as clearMachineId, k as ensurePrivateDirectorySync, ai as SandboxConfigSchema, b as createEnvelope, aj as CodexAppServerClient, ak as getLatestDaemonLog } from './types-BLE8Hfmh.mjs';
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 isClaudeSessionId, L as getLocalHappyAgentCredentialPath, N as readLocalHappyAgentCredentials, O as decryptWithDataKey, P as decryptLegacy, Q as extractCompleteLines, S as decideBackfill, T as parseTerminalHookPayload, U as tmuxArgs, V as scrubTmuxClientEnv, W as decideMirrorBinding, X as MIRROR_BACKFILL_LINES_DEFAULT, Y as persistSession, Z as mirrorLineKey, _ as mirrorLocalId, w as writePrivateFileSync, $ as detectResumeSupport, a0 as detectCLIAvailability, a1 as acquireDaemonLock, a2 as summarizeSpawnSessionForLog, a3 as deletePersistedSessions, a4 as decrypt, a5 as writeDaemonState, A as ApiClient, a6 as fetchCliUpdateState, a7 as resolveCliUpdateCheckInterval, a8 as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS, a9 as releaseDaemonLock, aa as isValidSessionId, ab as listVhTerminals, ac as isValidTerminalId, ad as readVhTerminal, ae as sendToVhTerminal, h as connectionState, af as startOfflineReconnection, ag as clearCredentials, ah as clearMachineId, k as ensurePrivateDirectorySync, ai as SandboxConfigSchema, b as createEnvelope, aj as CodexAppServerClient, ak as getLatestDaemonLog } from './types-CLRl0ET3.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';
@@ -14235,7 +14235,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14235
14235
  process.exit(0);
14236
14236
  } else if (subcommand === "install-terminal-hooks") {
14237
14237
  try {
14238
- const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-FiujjEvb.mjs');
14238
+ const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-CBHjEQ-a.mjs');
14239
14239
  const command = parseTerminalHooksArgs(args.slice(1));
14240
14240
  if (command.action === "help") {
14241
14241
  console.log(TERMINAL_HOOKS_HELP);
@@ -14252,7 +14252,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14252
14252
  }
14253
14253
  } else if (subcommand === "spawn") {
14254
14254
  try {
14255
- const { handleSpawnCommand } = await import('./spawn-uTPD3qOt.mjs');
14255
+ const { handleSpawnCommand } = await import('./spawn-CfCE6JAv.mjs');
14256
14256
  await handleSpawnCommand(args.slice(1));
14257
14257
  } catch (error) {
14258
14258
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -14264,7 +14264,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14264
14264
  return;
14265
14265
  } else if (subcommand === "send") {
14266
14266
  try {
14267
- const { handleSendCommand } = await import('./send-CxLL0z9J.mjs');
14267
+ const { handleSendCommand } = await import('./send-TX13v8Xe.mjs');
14268
14268
  await handleSendCommand(args.slice(1));
14269
14269
  } catch (error) {
14270
14270
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -14370,9 +14370,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14370
14370
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
14371
14371
  const projectId = args[3];
14372
14372
  try {
14373
- const { saveGoogleCloudProjectToConfig } = await import('./config-2GD21yg_.mjs');
14374
- const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./types-BLE8Hfmh.mjs').then(function (n) { return n.al; });
14375
- const { ApiClient: ApiClient2 } = await import('./types-BLE8Hfmh.mjs').then(function (n) { return n.am; });
14373
+ const { saveGoogleCloudProjectToConfig } = await import('./config-B69TZlJj.mjs');
14374
+ const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./types-CLRl0ET3.mjs').then(function (n) { return n.al; });
14375
+ const { ApiClient: ApiClient2 } = await import('./types-CLRl0ET3.mjs').then(function (n) { return n.am; });
14376
14376
  let userEmail = void 0;
14377
14377
  try {
14378
14378
  const credentials = await readCredentialsForConfiguredRelay2();
@@ -14403,7 +14403,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14403
14403
  }
14404
14404
  if (geminiSubcommand === "project" && args[2] === "get") {
14405
14405
  try {
14406
- const { readGeminiLocalConfig } = await import('./config-2GD21yg_.mjs');
14406
+ const { readGeminiLocalConfig } = await import('./config-B69TZlJj.mjs');
14407
14407
  const config = readGeminiLocalConfig();
14408
14408
  if (config.googleCloudProject) {
14409
14409
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -14443,7 +14443,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14443
14443
  process.exit(0);
14444
14444
  }
14445
14445
  try {
14446
- const { runGemini } = await import('./runGemini-D_InkOhk.mjs');
14446
+ const { runGemini } = await import('./runGemini-cMZ3_CRf.mjs');
14447
14447
  let startedBy = void 0;
14448
14448
  for (let i = 1; i < args.length; i++) {
14449
14449
  if (args[i] === "--started-by") {
@@ -14465,7 +14465,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14465
14465
  return;
14466
14466
  } else if (subcommand === "acp") {
14467
14467
  try {
14468
- const { runAcp, resolveAcpAgentConfig } = await import('./index-DZ0uw6ef.mjs');
14468
+ const { runAcp, resolveAcpAgentConfig } = await import('./index-C-uJXSm3.mjs');
14469
14469
  let startedBy = void 0;
14470
14470
  let verbose = false;
14471
14471
  const acpArgs = [];
@@ -14505,7 +14505,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14505
14505
  return;
14506
14506
  } else if (subcommand === "openclaw") {
14507
14507
  try {
14508
- const { runOpenClaw } = await import('./runOpenClaw-BjebGmV6.mjs');
14508
+ const { runOpenClaw } = await import('./runOpenClaw-BJ36wEbk.mjs');
14509
14509
  let startedBy = void 0;
14510
14510
  let verbose = false;
14511
14511
  let gatewayUrl;
@@ -14556,7 +14556,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14556
14556
  return;
14557
14557
  } else if (subcommand === "mcp" && args.length === 1) {
14558
14558
  try {
14559
- const { handleMcpCommand } = await import('./mcp-0mZcHPtz.mjs');
14559
+ const { handleMcpCommand } = await import('./mcp-BdSHqi2d.mjs');
14560
14560
  await handleMcpCommand();
14561
14561
  } catch (error) {
14562
14562
  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-Cuiff4Nu.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-Cuiff4Nu.mjs';
3
- import { h as connectionState, A as ApiClient, i as readSettings, j as encodeBase64, l as logger, p as projectPath } from './types-BLE8Hfmh.mjs';
4
- import { A as AcpSessionManager } from './AcpSessionManager-BU69q_vR.mjs';
1
+ import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-B5Eh8G3W.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-B5Eh8G3W.mjs';
3
+ import { h as connectionState, A as ApiClient, i as readSettings, j as encodeBase64, l as logger, p as projectPath } from './types-CLRl0ET3.mjs';
4
+ import { A as AcpSessionManager } from './AcpSessionManager-grr_aJEI.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-DVEdpWq0.mjs';
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-BMmbxCTq.mjs';
8
8
  import 'node:child_process';
9
9
  import '@agentclientprotocol/sdk';
10
10
  import 'axios';
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var AcpBackend = require('./AcpBackend-BXsbwTbl.cjs');
4
- var persistence = require('./types-HRuZ13LS.cjs');
5
- var AcpSessionManager = require('./AcpSessionManager-BXGmMoe8.cjs');
3
+ var AcpBackend = require('./AcpBackend-BaCt4_zS.cjs');
4
+ var persistence = require('./types-okYCRlgl.cjs');
5
+ var AcpSessionManager = require('./AcpSessionManager-CvgmPlXB.cjs');
6
6
  var node_crypto = require('node:crypto');
7
7
  var path = require('node:path');
8
- var index = require('./index-BzbaMrIa.cjs');
8
+ var index = require('./index-uc-dtu-3.cjs');
9
9
  require('node:child_process');
10
10
  require('@agentclientprotocol/sdk');
11
11
  require('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-HRuZ13LS.cjs');
6
+ var persistence = require('./types-okYCRlgl.cjs');
7
7
  var spawn = require('cross-spawn');
8
8
  var path = require('node:path');
9
9
  var node_readline = require('node:readline');
@@ -9436,7 +9436,7 @@ const MAX_TITLE_CHARS = 60;
9436
9436
  const GENERATION_TIMEOUT_MS = 3e4;
9437
9437
  function resolveClaudeBinary() {
9438
9438
  try {
9439
- 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-BzbaMrIa.cjs', document.baseURI).href)));
9439
+ 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-uc-dtu-3.cjs', document.baseURI).href)));
9440
9440
  const utilsPath = path.resolve(path.join(persistence.projectPath(), "scripts", "claude_version_utils.cjs"));
9441
9441
  const { getClaudeCliPath } = require$1(utilsPath);
9442
9442
  const path$1 = getClaudeCliPath();
@@ -11631,9 +11631,9 @@ function resolveLocalSignupBootstrap(configuredMode, configuredInviteCodes, gene
11631
11631
  };
11632
11632
  }
11633
11633
 
11634
- 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-BzbaMrIa.cjs', document.baseURI).href)));
11634
+ 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-uc-dtu-3.cjs', document.baseURI).href)));
11635
11635
  const __dirname$1 = path.dirname(__filename$1);
11636
- const require_ = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-BzbaMrIa.cjs', document.baseURI).href)));
11636
+ const require_ = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-uc-dtu-3.cjs', document.baseURI).href)));
11637
11637
  const PRISMA_QUERY_ENGINE_FILES = {
11638
11638
  "arm64-darwin": "libquery_engine-darwin-arm64.dylib.node",
11639
11639
  "x64-darwin": "libquery_engine-darwin.dylib.node",
@@ -14257,7 +14257,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14257
14257
  process.exit(0);
14258
14258
  } else if (subcommand === "install-terminal-hooks") {
14259
14259
  try {
14260
- const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await Promise.resolve().then(function () { return require('./installTerminalHooks-BrrsyTMd.cjs'); });
14260
+ const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await Promise.resolve().then(function () { return require('./installTerminalHooks-CepXxAM_.cjs'); });
14261
14261
  const command = parseTerminalHooksArgs(args.slice(1));
14262
14262
  if (command.action === "help") {
14263
14263
  console.log(TERMINAL_HOOKS_HELP);
@@ -14274,7 +14274,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14274
14274
  }
14275
14275
  } else if (subcommand === "spawn") {
14276
14276
  try {
14277
- const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-Dian7x_g.cjs'); });
14277
+ const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-vOZA0kOi.cjs'); });
14278
14278
  await handleSpawnCommand(args.slice(1));
14279
14279
  } catch (error) {
14280
14280
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -14286,7 +14286,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14286
14286
  return;
14287
14287
  } else if (subcommand === "send") {
14288
14288
  try {
14289
- const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-DgK6MtgT.cjs'); });
14289
+ const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-6eY55o3C.cjs'); });
14290
14290
  await handleSendCommand(args.slice(1));
14291
14291
  } catch (error) {
14292
14292
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -14392,9 +14392,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14392
14392
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
14393
14393
  const projectId = args[3];
14394
14394
  try {
14395
- const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-BVOE0pni.cjs'); });
14396
- const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./types-HRuZ13LS.cjs'); }).then(function (n) { return n.persistence; });
14397
- const { ApiClient: ApiClient2 } = await Promise.resolve().then(function () { return require('./types-HRuZ13LS.cjs'); }).then(function (n) { return n.api; });
14395
+ const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-BjsUeQPA.cjs'); });
14396
+ const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./types-okYCRlgl.cjs'); }).then(function (n) { return n.persistence; });
14397
+ const { ApiClient: ApiClient2 } = await Promise.resolve().then(function () { return require('./types-okYCRlgl.cjs'); }).then(function (n) { return n.api; });
14398
14398
  let userEmail = void 0;
14399
14399
  try {
14400
14400
  const credentials = await readCredentialsForConfiguredRelay2();
@@ -14425,7 +14425,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14425
14425
  }
14426
14426
  if (geminiSubcommand === "project" && args[2] === "get") {
14427
14427
  try {
14428
- const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-BVOE0pni.cjs'); });
14428
+ const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-BjsUeQPA.cjs'); });
14429
14429
  const config = readGeminiLocalConfig();
14430
14430
  if (config.googleCloudProject) {
14431
14431
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -14465,7 +14465,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14465
14465
  process.exit(0);
14466
14466
  }
14467
14467
  try {
14468
- const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-C91O1oxi.cjs'); });
14468
+ const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-qStPY5fH.cjs'); });
14469
14469
  let startedBy = void 0;
14470
14470
  for (let i = 1; i < args.length; i++) {
14471
14471
  if (args[i] === "--started-by") {
@@ -14487,7 +14487,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14487
14487
  return;
14488
14488
  } else if (subcommand === "acp") {
14489
14489
  try {
14490
- const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-CbPc1iVx.cjs'); });
14490
+ const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-DID1FV_n.cjs'); });
14491
14491
  let startedBy = void 0;
14492
14492
  let verbose = false;
14493
14493
  const acpArgs = [];
@@ -14527,7 +14527,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14527
14527
  return;
14528
14528
  } else if (subcommand === "openclaw") {
14529
14529
  try {
14530
- const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-B1RRfA1V.cjs'); });
14530
+ const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-B8HR6GnX.cjs'); });
14531
14531
  let startedBy = void 0;
14532
14532
  let verbose = false;
14533
14533
  let gatewayUrl;
@@ -14578,7 +14578,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14578
14578
  return;
14579
14579
  } else if (subcommand === "mcp" && args.length === 1) {
14580
14580
  try {
14581
- const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-ziyMk3eS.cjs'); });
14581
+ const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-CAtbtTXF.cjs'); });
14582
14582
  await handleMcpCommand();
14583
14583
  } catch (error) {
14584
14584
  process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}
package/dist/index.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  require('chalk');
4
- require('./index-BzbaMrIa.cjs');
5
- require('./types-HRuZ13LS.cjs');
4
+ require('./index-uc-dtu-3.cjs');
5
+ require('./types-okYCRlgl.cjs');
6
6
  require('zod');
7
7
  require('node:child_process');
8
8
  require('node:os');
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  import 'chalk';
2
- import './index-DVEdpWq0.mjs';
3
- import './types-BLE8Hfmh.mjs';
2
+ import './index-BMmbxCTq.mjs';
3
+ import './types-CLRl0ET3.mjs';
4
4
  import 'zod';
5
5
  import 'node:child_process';
6
6
  import 'node:os';
@@ -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-BLE8Hfmh.mjs';
7
- import { t as tmuxSupportsSessionEnv } from './index-DVEdpWq0.mjs';
6
+ import { p as projectPath } from './types-CLRl0ET3.mjs';
7
+ import { t as tmuxSupportsSessionEnv } from './index-BMmbxCTq.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-HRuZ13LS.cjs');
9
- var index = require('./index-BzbaMrIa.cjs');
8
+ var persistence = require('./types-okYCRlgl.cjs');
9
+ var index = require('./index-uc-dtu-3.cjs');
10
10
  require('axios');
11
11
  require('node:util');
12
12
  require('node:fs/promises');
package/dist/lib.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var persistence = require('./types-HRuZ13LS.cjs');
3
+ var persistence = require('./types-okYCRlgl.cjs');
4
4
  require('axios');
5
5
  require('chalk');
6
6
  require('node:util');
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-BLE8Hfmh.mjs';
1
+ export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema, c as configuration, l as logger } from './types-CLRl0ET3.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-DVEdpWq0.mjs';
4
+ import { p as pushClipboardViaDaemon } from './index-BMmbxCTq.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-BLE8Hfmh.mjs';
6
+ import { l as logger } from './types-CLRl0ET3.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-BzbaMrIa.cjs');
6
+ var index = require('./index-uc-dtu-3.cjs');
7
7
  var limits = require('./limits-KdWKmwtH.cjs');
8
- var persistence = require('./types-HRuZ13LS.cjs');
8
+ var persistence = require('./types-okYCRlgl.cjs');
9
9
  require('chalk');
10
10
  require('node:os');
11
11
  require('node:crypto');
@@ -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-BLE8Hfmh.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-DVEdpWq0.mjs';
7
- import { A as AcpBackend } from './AcpBackend-Cuiff4Nu.mjs';
8
- import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-2GD21yg_.mjs';
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-CLRl0ET3.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-BMmbxCTq.mjs';
7
+ import { A as AcpBackend } from './AcpBackend-B5Eh8G3W.mjs';
8
+ import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-B69TZlJj.mjs';
9
9
  import 'axios';
10
10
  import 'chalk';
11
11
  import 'node:util';
@@ -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-HRuZ13LS.cjs');
8
- var index = require('./index-BzbaMrIa.cjs');
9
- var AcpBackend = require('./AcpBackend-BXsbwTbl.cjs');
10
- var config = require('./config-BVOE0pni.cjs');
7
+ var persistence = require('./types-okYCRlgl.cjs');
8
+ var index = require('./index-uc-dtu-3.cjs');
9
+ var AcpBackend = require('./AcpBackend-BaCt4_zS.cjs');
10
+ var config = require('./config-BjsUeQPA.cjs');
11
11
  require('axios');
12
12
  require('chalk');
13
13
  require('node:util');
@@ -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-HRuZ13LS.cjs');
9
- var AcpSessionManager = require('./AcpSessionManager-BXGmMoe8.cjs');
10
- var index = require('./index-BzbaMrIa.cjs');
8
+ var persistence = require('./types-okYCRlgl.cjs');
9
+ var AcpSessionManager = require('./AcpSessionManager-CvgmPlXB.cjs');
10
+ var index = require('./index-uc-dtu-3.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,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-BLE8Hfmh.mjs';
7
- import { A as AcpSessionManager } from './AcpSessionManager-BU69q_vR.mjs';
8
- import { i as initialMachineMetadata, d as createSessionMetadata, e as setupOfflineReconnection, n as notifyDaemonSessionStarted, M as MessageQueue2, r as registerKillSessionHandler } from './index-DVEdpWq0.mjs';
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-CLRl0ET3.mjs';
7
+ import { A as AcpSessionManager } from './AcpSessionManager-grr_aJEI.mjs';
8
+ import { i as initialMachineMetadata, d as createSessionMetadata, e as setupOfflineReconnection, n as notifyDaemonSessionStarted, M as MessageQueue2, r as registerKillSessionHandler } from './index-BMmbxCTq.mjs';
9
9
  import WebSocket from 'ws';
10
10
  import * as ed from '@noble/ed25519';
11
11
  import { sha512 } from '@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-HRuZ13LS.cjs');
7
- var index = require('./index-BzbaMrIa.cjs');
6
+ var persistence = require('./types-okYCRlgl.cjs');
7
+ var index = require('./index-uc-dtu-3.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-BLE8Hfmh.mjs';
5
- import { b as sendUserMessage, a as sessionWebUrl } from './index-DVEdpWq0.mjs';
4
+ import { r as readPersistedSessions, c as configuration } from './types-CLRl0ET3.mjs';
5
+ import { b as sendUserMessage, a as sessionWebUrl } from './index-BMmbxCTq.mjs';
6
6
  import 'axios';
7
7
  import 'node:util';
8
8
  import 'node:os';
@@ -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-DVEdpWq0.mjs';
5
- import { l as logger } from './types-BLE8Hfmh.mjs';
4
+ import { c as checkIfDaemonRunningAndCleanupStaleState, s as spawnDaemonSession, a as sessionWebUrl, w as waitForSessionKey, b as sendUserMessage } from './index-BMmbxCTq.mjs';
5
+ import { l as logger } from './types-CLRl0ET3.mjs';
6
6
  import 'node:os';
7
7
  import 'node:crypto';
8
8
  import 'cross-spawn';
@@ -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-BzbaMrIa.cjs');
7
- var persistence = require('./types-HRuZ13LS.cjs');
6
+ var index = require('./index-uc-dtu-3.cjs');
7
+ var persistence = require('./types-okYCRlgl.cjs');
8
8
  require('node:os');
9
9
  require('node:crypto');
10
10
  require('cross-spawn');
@@ -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.95";
32
+ var version = "0.2.96";
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.95",
146
- "very-happy-tools-x64-darwin": "0.2.95",
147
- "very-happy-tools-arm64-linux": "0.2.95",
148
- "very-happy-tools-x64-linux": "0.2.95",
149
- "very-happy-tools-arm64-win32": "0.2.95",
150
- "very-happy-tools-x64-win32": "0.2.95"
145
+ "very-happy-tools-arm64-darwin": "0.2.96",
146
+ "very-happy-tools-x64-darwin": "0.2.96",
147
+ "very-happy-tools-arm64-linux": "0.2.96",
148
+ "very-happy-tools-x64-linux": "0.2.96",
149
+ "very-happy-tools-arm64-win32": "0.2.96",
150
+ "very-happy-tools-x64-win32": "0.2.96"
151
151
  };
152
152
  var devDependencies = {
153
153
  "@slopus/happy-wire": "workspace:*",
@@ -10346,8 +10346,18 @@ function resolveDefaultShell(platform, env, isExecutable = (path) => {
10346
10346
  function defaultShell() {
10347
10347
  return resolveDefaultShell(process.platform, process.env);
10348
10348
  }
10349
+ const VH_SESSION_OPTION_OVERRIDES = [
10350
+ ["session", "destroy-unattached", "off"],
10351
+ ["window", "remain-on-exit", "off"],
10352
+ ["window", "window-size", "latest"],
10353
+ ["window", "pane-border-status", "off"]
10354
+ ];
10349
10355
  function tmuxNewSessionArgs(session, cols, rows, cwd, envFlags, shell) {
10350
- return ["new-session", "-d", ...envFlags, "-s", session, "-x", String(cols), "-y", String(rows), "-c", cwd, shell];
10356
+ const args = ["new-session", "-d", ...envFlags, "-s", session, "-x", String(cols), "-y", String(rows), "-c", cwd, shell];
10357
+ for (const [scope, option, value] of VH_SESSION_OPTION_OVERRIDES) {
10358
+ args.push(";", "set-option", ...scope === "window" ? ["-w"] : [], "-q", "-t", `=${session}:`, option, value);
10359
+ }
10360
+ return args;
10351
10361
  }
10352
10362
  function shouldUseDirectPtyFallback(attachOnly, createdNew, sessionAlive) {
10353
10363
  return !attachOnly && !createdNew && !sessionAlive;
@@ -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.95";
54
+ var version = "0.2.96";
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.95",
168
- "very-happy-tools-x64-darwin": "0.2.95",
169
- "very-happy-tools-arm64-linux": "0.2.95",
170
- "very-happy-tools-x64-linux": "0.2.95",
171
- "very-happy-tools-arm64-win32": "0.2.95",
172
- "very-happy-tools-x64-win32": "0.2.95"
167
+ "very-happy-tools-arm64-darwin": "0.2.96",
168
+ "very-happy-tools-x64-darwin": "0.2.96",
169
+ "very-happy-tools-arm64-linux": "0.2.96",
170
+ "very-happy-tools-x64-linux": "0.2.96",
171
+ "very-happy-tools-arm64-win32": "0.2.96",
172
+ "very-happy-tools-x64-win32": "0.2.96"
173
173
  };
174
174
  var devDependencies = {
175
175
  "@slopus/happy-wire": "workspace:*",
@@ -1545,7 +1545,7 @@ class RpcHandlerManager {
1545
1545
  }
1546
1546
  }
1547
1547
 
1548
- 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-HRuZ13LS.cjs', document.baseURI).href))));
1548
+ 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-okYCRlgl.cjs', document.baseURI).href))));
1549
1549
  function projectPath() {
1550
1550
  const path = path$1.resolve(__dirname$1, "..");
1551
1551
  return path;
@@ -10368,8 +10368,18 @@ function resolveDefaultShell(platform, env, isExecutable = (path) => {
10368
10368
  function defaultShell() {
10369
10369
  return resolveDefaultShell(process.platform, process.env);
10370
10370
  }
10371
+ const VH_SESSION_OPTION_OVERRIDES = [
10372
+ ["session", "destroy-unattached", "off"],
10373
+ ["window", "remain-on-exit", "off"],
10374
+ ["window", "window-size", "latest"],
10375
+ ["window", "pane-border-status", "off"]
10376
+ ];
10371
10377
  function tmuxNewSessionArgs(session, cols, rows, cwd, envFlags, shell) {
10372
- return ["new-session", "-d", ...envFlags, "-s", session, "-x", String(cols), "-y", String(rows), "-c", cwd, shell];
10378
+ const args = ["new-session", "-d", ...envFlags, "-s", session, "-x", String(cols), "-y", String(rows), "-c", cwd, shell];
10379
+ for (const [scope, option, value] of VH_SESSION_OPTION_OVERRIDES) {
10380
+ args.push(";", "set-option", ...scope === "window" ? ["-w"] : [], "-q", "-t", `=${session}:`, option, value);
10381
+ }
10382
+ return args;
10373
10383
  }
10374
10384
  function shouldUseDirectPtyFallback(attachOnly, createdNew, sessionAlive) {
10375
10385
  return !attachOnly && !createdNew && !sessionAlive;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "very-happy-cli",
3
- "version": "0.2.95",
3
+ "version": "0.2.96",
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.95",
117
- "very-happy-tools-x64-darwin": "0.2.95",
118
- "very-happy-tools-arm64-linux": "0.2.95",
119
- "very-happy-tools-x64-linux": "0.2.95",
120
- "very-happy-tools-arm64-win32": "0.2.95",
121
- "very-happy-tools-x64-win32": "0.2.95"
116
+ "very-happy-tools-arm64-darwin": "0.2.96",
117
+ "very-happy-tools-x64-darwin": "0.2.96",
118
+ "very-happy-tools-arm64-linux": "0.2.96",
119
+ "very-happy-tools-x64-linux": "0.2.96",
120
+ "very-happy-tools-arm64-win32": "0.2.96",
121
+ "very-happy-tools-x64-win32": "0.2.96"
122
122
  },
123
123
  "devDependencies": {
124
124
  "@slopus/happy-wire": "workspace:*",