very-happy-cli 0.2.92 → 0.2.93

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-DDEsgc1c.mjs → AcpBackend-C5507ePk.mjs} +1 -1
  2. package/dist/{AcpBackend-BP7id8L6.cjs → AcpBackend-COv_3umE.cjs} +1 -1
  3. package/dist/{AcpSessionManager-C29t6wb_.mjs → AcpSessionManager-Bd1trXWx.mjs} +1 -1
  4. package/dist/{AcpSessionManager-Cys1Hsb8.cjs → AcpSessionManager-vm4rIcH0.cjs} +1 -1
  5. package/dist/{config-CJQw0z1o.mjs → config-BJjvra5x.mjs} +2 -2
  6. package/dist/{config-B77vhdwT.cjs → config-SZEQWS8k.cjs} +2 -2
  7. package/dist/{index-L3o5Gz-2.cjs → index-17NbIAkU.cjs} +4 -4
  8. package/dist/{index-8LDXVYWi.mjs → index-C00jxV83.mjs} +12 -12
  9. package/dist/{index-BP9pfzdZ.mjs → index-D-U-7DAy.mjs} +5 -5
  10. package/dist/{index-B63Vjt4W.cjs → index-DaVhaBF2.cjs} +15 -15
  11. package/dist/index.cjs +2 -2
  12. package/dist/index.mjs +2 -2
  13. package/dist/{installTerminalHooks-BBc2nij4.cjs → installTerminalHooks-CRjlRj9K.cjs} +2 -2
  14. package/dist/{installTerminalHooks-DDRrUG_n.mjs → installTerminalHooks-DsECLFy3.mjs} +2 -2
  15. package/dist/lib.cjs +1 -1
  16. package/dist/lib.mjs +1 -1
  17. package/dist/{mcp-CYJAl5pk.mjs → mcp-Bs6R9P7q.mjs} +2 -2
  18. package/dist/{mcp-DbYXyw1U.cjs → mcp-C-dDCrXm.cjs} +2 -2
  19. package/dist/{runGemini-DHYs_Beq.mjs → runGemini-CrSCxKqI.mjs} +4 -4
  20. package/dist/{runGemini-BDSWSID6.cjs → runGemini-DapsCPLi.cjs} +4 -4
  21. package/dist/{runOpenClaw-DC9gb1bd.cjs → runOpenClaw-C9dhyV4x.cjs} +3 -3
  22. package/dist/{runOpenClaw-DTaXxvNd.mjs → runOpenClaw-Cnagj-hv.mjs} +3 -3
  23. package/dist/{send-BQSaVz9r.mjs → send-DlHES1EO.mjs} +2 -2
  24. package/dist/{send-BEdGwmA-.cjs → send-PmtzSBVM.cjs} +2 -2
  25. package/dist/{spawn-DS-Uz_Hw.mjs → spawn-DgZUVvT2.mjs} +2 -2
  26. package/dist/{spawn-CK1ma_qc.cjs → spawn-OE9kENQi.cjs} +2 -2
  27. package/dist/{types-CjlB_fKT.cjs → types-BHVxYajT.cjs} +11 -11
  28. package/dist/{types-B_8X_rZk.mjs → types-Cx5wn5Hf.mjs} +10 -10
  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-B_8X_rZk.mjs';
4
+ import { l as logger, d as contentLogMetadata, e as errorLogMetadata, f as packageJson, g as delay } from './types-Cx5wn5Hf.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-CjlB_fKT.cjs');
6
+ var persistence = require('./types-BHVxYajT.cjs');
7
7
 
8
8
  const DEFAULT_TIMEOUTS = {
9
9
  /** Default initialization timeout: 60 seconds */
@@ -1,5 +1,5 @@
1
1
  import { createId } from '@paralleldrive/cuid2';
2
- import { b as createEnvelope } from './types-B_8X_rZk.mjs';
2
+ import { b as createEnvelope } from './types-Cx5wn5Hf.mjs';
3
3
 
4
4
  function turnOptions(turnId, time) {
5
5
  return turnId ? { turn: turnId, time } : { time };
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var cuid2 = require('@paralleldrive/cuid2');
4
- var persistence = require('./types-CjlB_fKT.cjs');
4
+ var persistence = require('./types-BHVxYajT.cjs');
5
5
 
6
6
  function turnOptions(turnId, time) {
7
7
  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-B_8X_rZk.mjs';
6
- import { D as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-8LDXVYWi.mjs';
5
+ import { l as logger } from './types-Cx5wn5Hf.mjs';
6
+ import { D as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-C00jxV83.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-CjlB_fKT.cjs');
8
- var index = require('./index-B63Vjt4W.cjs');
7
+ var persistence = require('./types-BHVxYajT.cjs');
8
+ var index = require('./index-DaVhaBF2.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-BP7id8L6.cjs');
4
- var persistence = require('./types-CjlB_fKT.cjs');
5
- var AcpSessionManager = require('./AcpSessionManager-Cys1Hsb8.cjs');
3
+ var AcpBackend = require('./AcpBackend-COv_3umE.cjs');
4
+ var persistence = require('./types-BHVxYajT.cjs');
5
+ var AcpSessionManager = require('./AcpSessionManager-vm4rIcH0.cjs');
6
6
  var node_crypto = require('node:crypto');
7
7
  var path = require('node:path');
8
- var index = require('./index-B63Vjt4W.cjs');
8
+ var index = require('./index-DaVhaBF2.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 } 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 persistSession, Y as MIRROR_BACKFILL_LINES_DEFAULT, Z as mirrorLineKey, _ as mirrorLocalId, $ 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, w as writePrivateFileSync, ai as SandboxConfigSchema, b as createEnvelope, aj as CodexAppServerClient, ak as getLatestDaemonLog } from './types-B_8X_rZk.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 persistSession, Y as MIRROR_BACKFILL_LINES_DEFAULT, Z as mirrorLineKey, _ as mirrorLocalId, $ 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, w as writePrivateFileSync, ai as SandboxConfigSchema, b as createEnvelope, aj as CodexAppServerClient, ak as getLatestDaemonLog } from './types-Cx5wn5Hf.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';
@@ -13951,7 +13951,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
13951
13951
  process.exit(0);
13952
13952
  } else if (subcommand === "install-terminal-hooks") {
13953
13953
  try {
13954
- const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-DDRrUG_n.mjs');
13954
+ const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-DsECLFy3.mjs');
13955
13955
  const command = parseTerminalHooksArgs(args.slice(1));
13956
13956
  if (command.action === "help") {
13957
13957
  console.log(TERMINAL_HOOKS_HELP);
@@ -13968,7 +13968,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
13968
13968
  }
13969
13969
  } else if (subcommand === "spawn") {
13970
13970
  try {
13971
- const { handleSpawnCommand } = await import('./spawn-DS-Uz_Hw.mjs');
13971
+ const { handleSpawnCommand } = await import('./spawn-DgZUVvT2.mjs');
13972
13972
  await handleSpawnCommand(args.slice(1));
13973
13973
  } catch (error) {
13974
13974
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -13980,7 +13980,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
13980
13980
  return;
13981
13981
  } else if (subcommand === "send") {
13982
13982
  try {
13983
- const { handleSendCommand } = await import('./send-BQSaVz9r.mjs');
13983
+ const { handleSendCommand } = await import('./send-DlHES1EO.mjs');
13984
13984
  await handleSendCommand(args.slice(1));
13985
13985
  } catch (error) {
13986
13986
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -14086,9 +14086,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14086
14086
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
14087
14087
  const projectId = args[3];
14088
14088
  try {
14089
- const { saveGoogleCloudProjectToConfig } = await import('./config-CJQw0z1o.mjs');
14090
- const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./types-B_8X_rZk.mjs').then(function (n) { return n.al; });
14091
- const { ApiClient: ApiClient2 } = await import('./types-B_8X_rZk.mjs').then(function (n) { return n.am; });
14089
+ const { saveGoogleCloudProjectToConfig } = await import('./config-BJjvra5x.mjs');
14090
+ const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./types-Cx5wn5Hf.mjs').then(function (n) { return n.al; });
14091
+ const { ApiClient: ApiClient2 } = await import('./types-Cx5wn5Hf.mjs').then(function (n) { return n.am; });
14092
14092
  let userEmail = void 0;
14093
14093
  try {
14094
14094
  const credentials = await readCredentialsForConfiguredRelay2();
@@ -14119,7 +14119,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14119
14119
  }
14120
14120
  if (geminiSubcommand === "project" && args[2] === "get") {
14121
14121
  try {
14122
- const { readGeminiLocalConfig } = await import('./config-CJQw0z1o.mjs');
14122
+ const { readGeminiLocalConfig } = await import('./config-BJjvra5x.mjs');
14123
14123
  const config = readGeminiLocalConfig();
14124
14124
  if (config.googleCloudProject) {
14125
14125
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -14159,7 +14159,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14159
14159
  process.exit(0);
14160
14160
  }
14161
14161
  try {
14162
- const { runGemini } = await import('./runGemini-DHYs_Beq.mjs');
14162
+ const { runGemini } = await import('./runGemini-CrSCxKqI.mjs');
14163
14163
  let startedBy = void 0;
14164
14164
  for (let i = 1; i < args.length; i++) {
14165
14165
  if (args[i] === "--started-by") {
@@ -14181,7 +14181,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14181
14181
  return;
14182
14182
  } else if (subcommand === "acp") {
14183
14183
  try {
14184
- const { runAcp, resolveAcpAgentConfig } = await import('./index-BP9pfzdZ.mjs');
14184
+ const { runAcp, resolveAcpAgentConfig } = await import('./index-D-U-7DAy.mjs');
14185
14185
  let startedBy = void 0;
14186
14186
  let verbose = false;
14187
14187
  const acpArgs = [];
@@ -14221,7 +14221,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14221
14221
  return;
14222
14222
  } else if (subcommand === "openclaw") {
14223
14223
  try {
14224
- const { runOpenClaw } = await import('./runOpenClaw-DTaXxvNd.mjs');
14224
+ const { runOpenClaw } = await import('./runOpenClaw-Cnagj-hv.mjs');
14225
14225
  let startedBy = void 0;
14226
14226
  let verbose = false;
14227
14227
  let gatewayUrl;
@@ -14272,7 +14272,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14272
14272
  return;
14273
14273
  } else if (subcommand === "mcp" && args.length === 1) {
14274
14274
  try {
14275
- const { handleMcpCommand } = await import('./mcp-CYJAl5pk.mjs');
14275
+ const { handleMcpCommand } = await import('./mcp-Bs6R9P7q.mjs');
14276
14276
  await handleMcpCommand();
14277
14277
  } catch (error) {
14278
14278
  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-DDEsgc1c.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-DDEsgc1c.mjs';
3
- import { h as connectionState, A as ApiClient, i as readSettings, j as encodeBase64, l as logger, p as projectPath } from './types-B_8X_rZk.mjs';
4
- import { A as AcpSessionManager } from './AcpSessionManager-C29t6wb_.mjs';
1
+ import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-C5507ePk.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-C5507ePk.mjs';
3
+ import { h as connectionState, A as ApiClient, i as readSettings, j as encodeBase64, l as logger, p as projectPath } from './types-Cx5wn5Hf.mjs';
4
+ import { A as AcpSessionManager } from './AcpSessionManager-Bd1trXWx.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-8LDXVYWi.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-C00jxV83.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-CjlB_fKT.cjs');
6
+ var persistence = require('./types-BHVxYajT.cjs');
7
7
  var spawn = require('cross-spawn');
8
8
  var path = require('node:path');
9
9
  var node_readline = require('node:readline');
@@ -9156,7 +9156,7 @@ const MAX_TITLE_CHARS = 60;
9156
9156
  const GENERATION_TIMEOUT_MS = 3e4;
9157
9157
  function resolveClaudeBinary() {
9158
9158
  try {
9159
- 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-B63Vjt4W.cjs', document.baseURI).href)));
9159
+ 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-DaVhaBF2.cjs', document.baseURI).href)));
9160
9160
  const utilsPath = path.resolve(path.join(persistence.projectPath(), "scripts", "claude_version_utils.cjs"));
9161
9161
  const { getClaudeCliPath } = require$1(utilsPath);
9162
9162
  const path$1 = getClaudeCliPath();
@@ -11350,9 +11350,9 @@ function resolveLocalSignupBootstrap(configuredMode, configuredInviteCodes, gene
11350
11350
  };
11351
11351
  }
11352
11352
 
11353
- 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-B63Vjt4W.cjs', document.baseURI).href)));
11353
+ 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-DaVhaBF2.cjs', document.baseURI).href)));
11354
11354
  const __dirname$1 = path.dirname(__filename$1);
11355
- const require_ = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-B63Vjt4W.cjs', document.baseURI).href)));
11355
+ const require_ = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-DaVhaBF2.cjs', document.baseURI).href)));
11356
11356
  const PRISMA_QUERY_ENGINE_FILES = {
11357
11357
  "arm64-darwin": "libquery_engine-darwin-arm64.dylib.node",
11358
11358
  "x64-darwin": "libquery_engine-darwin.dylib.node",
@@ -13973,7 +13973,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
13973
13973
  process.exit(0);
13974
13974
  } else if (subcommand === "install-terminal-hooks") {
13975
13975
  try {
13976
- const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await Promise.resolve().then(function () { return require('./installTerminalHooks-BBc2nij4.cjs'); });
13976
+ const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await Promise.resolve().then(function () { return require('./installTerminalHooks-CRjlRj9K.cjs'); });
13977
13977
  const command = parseTerminalHooksArgs(args.slice(1));
13978
13978
  if (command.action === "help") {
13979
13979
  console.log(TERMINAL_HOOKS_HELP);
@@ -13990,7 +13990,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
13990
13990
  }
13991
13991
  } else if (subcommand === "spawn") {
13992
13992
  try {
13993
- const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-CK1ma_qc.cjs'); });
13993
+ const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-OE9kENQi.cjs'); });
13994
13994
  await handleSpawnCommand(args.slice(1));
13995
13995
  } catch (error) {
13996
13996
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -14002,7 +14002,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14002
14002
  return;
14003
14003
  } else if (subcommand === "send") {
14004
14004
  try {
14005
- const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-BEdGwmA-.cjs'); });
14005
+ const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-PmtzSBVM.cjs'); });
14006
14006
  await handleSendCommand(args.slice(1));
14007
14007
  } catch (error) {
14008
14008
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -14108,9 +14108,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14108
14108
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
14109
14109
  const projectId = args[3];
14110
14110
  try {
14111
- const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-B77vhdwT.cjs'); });
14112
- const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./types-CjlB_fKT.cjs'); }).then(function (n) { return n.persistence; });
14113
- const { ApiClient: ApiClient2 } = await Promise.resolve().then(function () { return require('./types-CjlB_fKT.cjs'); }).then(function (n) { return n.api; });
14111
+ const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-SZEQWS8k.cjs'); });
14112
+ const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./types-BHVxYajT.cjs'); }).then(function (n) { return n.persistence; });
14113
+ const { ApiClient: ApiClient2 } = await Promise.resolve().then(function () { return require('./types-BHVxYajT.cjs'); }).then(function (n) { return n.api; });
14114
14114
  let userEmail = void 0;
14115
14115
  try {
14116
14116
  const credentials = await readCredentialsForConfiguredRelay2();
@@ -14141,7 +14141,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14141
14141
  }
14142
14142
  if (geminiSubcommand === "project" && args[2] === "get") {
14143
14143
  try {
14144
- const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-B77vhdwT.cjs'); });
14144
+ const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-SZEQWS8k.cjs'); });
14145
14145
  const config = readGeminiLocalConfig();
14146
14146
  if (config.googleCloudProject) {
14147
14147
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -14181,7 +14181,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14181
14181
  process.exit(0);
14182
14182
  }
14183
14183
  try {
14184
- const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-BDSWSID6.cjs'); });
14184
+ const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-DapsCPLi.cjs'); });
14185
14185
  let startedBy = void 0;
14186
14186
  for (let i = 1; i < args.length; i++) {
14187
14187
  if (args[i] === "--started-by") {
@@ -14203,7 +14203,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14203
14203
  return;
14204
14204
  } else if (subcommand === "acp") {
14205
14205
  try {
14206
- const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-L3o5Gz-2.cjs'); });
14206
+ const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-17NbIAkU.cjs'); });
14207
14207
  let startedBy = void 0;
14208
14208
  let verbose = false;
14209
14209
  const acpArgs = [];
@@ -14243,7 +14243,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14243
14243
  return;
14244
14244
  } else if (subcommand === "openclaw") {
14245
14245
  try {
14246
- const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-DC9gb1bd.cjs'); });
14246
+ const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-C9dhyV4x.cjs'); });
14247
14247
  let startedBy = void 0;
14248
14248
  let verbose = false;
14249
14249
  let gatewayUrl;
@@ -14294,7 +14294,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
14294
14294
  return;
14295
14295
  } else if (subcommand === "mcp" && args.length === 1) {
14296
14296
  try {
14297
- const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-DbYXyw1U.cjs'); });
14297
+ const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-C-dDCrXm.cjs'); });
14298
14298
  await handleMcpCommand();
14299
14299
  } catch (error) {
14300
14300
  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-B63Vjt4W.cjs');
5
- require('./types-CjlB_fKT.cjs');
4
+ require('./index-DaVhaBF2.cjs');
5
+ require('./types-BHVxYajT.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-8LDXVYWi.mjs';
3
- import './types-B_8X_rZk.mjs';
2
+ import './index-C00jxV83.mjs';
3
+ import './types-Cx5wn5Hf.mjs';
4
4
  import 'zod';
5
5
  import 'node:child_process';
6
6
  import 'node:os';
@@ -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-CjlB_fKT.cjs');
9
- var index = require('./index-B63Vjt4W.cjs');
8
+ var persistence = require('./types-BHVxYajT.cjs');
9
+ var index = require('./index-DaVhaBF2.cjs');
10
10
  require('axios');
11
11
  require('node:util');
12
12
  require('node:fs/promises');
@@ -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-B_8X_rZk.mjs';
7
- import { t as tmuxSupportsSessionEnv } from './index-8LDXVYWi.mjs';
6
+ import { p as projectPath } from './types-Cx5wn5Hf.mjs';
7
+ import { t as tmuxSupportsSessionEnv } from './index-C00jxV83.mjs';
8
8
  import 'axios';
9
9
  import 'node:util';
10
10
  import 'node:fs/promises';
package/dist/lib.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var persistence = require('./types-CjlB_fKT.cjs');
3
+ var persistence = require('./types-BHVxYajT.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-B_8X_rZk.mjs';
1
+ export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema, c as configuration, l as logger } from './types-Cx5wn5Hf.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-8LDXVYWi.mjs';
4
+ import { p as pushClipboardViaDaemon } from './index-C00jxV83.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-B_8X_rZk.mjs';
6
+ import { l as logger } from './types-Cx5wn5Hf.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-B63Vjt4W.cjs');
6
+ var index = require('./index-DaVhaBF2.cjs');
7
7
  var limits = require('./limits-KdWKmwtH.cjs');
8
- var persistence = require('./types-CjlB_fKT.cjs');
8
+ var persistence = require('./types-BHVxYajT.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-B_8X_rZk.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-8LDXVYWi.mjs';
7
- import { A as AcpBackend } from './AcpBackend-DDEsgc1c.mjs';
8
- import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-CJQw0z1o.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-Cx5wn5Hf.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-C00jxV83.mjs';
7
+ import { A as AcpBackend } from './AcpBackend-C5507ePk.mjs';
8
+ import { readGeminiLocalConfig, determineGeminiModel, getGeminiModelSource, getInitialGeminiModel, saveGeminiModelToConfig } from './config-BJjvra5x.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-CjlB_fKT.cjs');
8
- var index = require('./index-B63Vjt4W.cjs');
9
- var AcpBackend = require('./AcpBackend-BP7id8L6.cjs');
10
- var config = require('./config-B77vhdwT.cjs');
7
+ var persistence = require('./types-BHVxYajT.cjs');
8
+ var index = require('./index-DaVhaBF2.cjs');
9
+ var AcpBackend = require('./AcpBackend-COv_3umE.cjs');
10
+ var config = require('./config-SZEQWS8k.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-CjlB_fKT.cjs');
9
- var AcpSessionManager = require('./AcpSessionManager-Cys1Hsb8.cjs');
10
- var index = require('./index-B63Vjt4W.cjs');
8
+ var persistence = require('./types-BHVxYajT.cjs');
9
+ var AcpSessionManager = require('./AcpSessionManager-vm4rIcH0.cjs');
10
+ var index = require('./index-DaVhaBF2.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-B_8X_rZk.mjs';
7
- import { A as AcpSessionManager } from './AcpSessionManager-C29t6wb_.mjs';
8
- import { i as initialMachineMetadata, d as createSessionMetadata, e as setupOfflineReconnection, n as notifyDaemonSessionStarted, M as MessageQueue2, r as registerKillSessionHandler } from './index-8LDXVYWi.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-Cx5wn5Hf.mjs';
7
+ import { A as AcpSessionManager } from './AcpSessionManager-Bd1trXWx.mjs';
8
+ import { i as initialMachineMetadata, d as createSessionMetadata, e as setupOfflineReconnection, n as notifyDaemonSessionStarted, M as MessageQueue2, r as registerKillSessionHandler } from './index-C00jxV83.mjs';
9
9
  import WebSocket from 'ws';
10
10
  import * as ed from '@noble/ed25519';
11
11
  import { sha512 } from '@noble/hashes/sha2.js';
@@ -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-B_8X_rZk.mjs';
5
- import { b as sendUserMessage, a as sessionWebUrl } from './index-8LDXVYWi.mjs';
4
+ import { r as readPersistedSessions, c as configuration } from './types-Cx5wn5Hf.mjs';
5
+ import { b as sendUserMessage, a as sessionWebUrl } from './index-C00jxV83.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 persistence = require('./types-CjlB_fKT.cjs');
7
- var index = require('./index-B63Vjt4W.cjs');
6
+ var persistence = require('./types-BHVxYajT.cjs');
7
+ var index = require('./index-DaVhaBF2.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, 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-8LDXVYWi.mjs';
5
- import { l as logger } from './types-B_8X_rZk.mjs';
4
+ import { c as checkIfDaemonRunningAndCleanupStaleState, s as spawnDaemonSession, a as sessionWebUrl, w as waitForSessionKey, b as sendUserMessage } from './index-C00jxV83.mjs';
5
+ import { l as logger } from './types-Cx5wn5Hf.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-B63Vjt4W.cjs');
7
- var persistence = require('./types-CjlB_fKT.cjs');
6
+ var index = require('./index-DaVhaBF2.cjs');
7
+ var persistence = require('./types-BHVxYajT.cjs');
8
8
  require('node:os');
9
9
  require('node:crypto');
10
10
  require('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.92";
54
+ var version = "0.2.93";
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.92",
168
- "very-happy-tools-x64-darwin": "0.2.92",
169
- "very-happy-tools-arm64-linux": "0.2.92",
170
- "very-happy-tools-x64-linux": "0.2.92",
171
- "very-happy-tools-arm64-win32": "0.2.92",
172
- "very-happy-tools-x64-win32": "0.2.92"
167
+ "very-happy-tools-arm64-darwin": "0.2.93",
168
+ "very-happy-tools-x64-darwin": "0.2.93",
169
+ "very-happy-tools-arm64-linux": "0.2.93",
170
+ "very-happy-tools-x64-linux": "0.2.93",
171
+ "very-happy-tools-arm64-win32": "0.2.93",
172
+ "very-happy-tools-x64-win32": "0.2.93"
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-CjlB_fKT.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-BHVxYajT.cjs', document.baseURI).href))));
1549
1549
  function projectPath() {
1550
1550
  const path = path$1.resolve(__dirname$1, "..");
1551
1551
  return path;
@@ -11494,7 +11494,7 @@ class WebTerminalManager {
11494
11494
  if (session.transport.kind !== "control") throw new Error("capture requires a control client");
11495
11495
  const { client } = session.transport;
11496
11496
  const batch = buildCaptureBatch({
11497
- paneTarget: `=${session.tmuxSession}:.0`,
11497
+ paneTarget: `=${session.tmuxSession}:`,
11498
11498
  historyLines: HEADLESS_SCROLLBACK,
11499
11499
  smallLines: SNAPSHOT_SCROLLBACK,
11500
11500
  cols: session.cols,
@@ -11589,7 +11589,7 @@ class WebTerminalManager {
11589
11589
  session.transport.pty.write(text);
11590
11590
  return;
11591
11591
  }
11592
- const target = session.paneId ?? `=${session.tmuxSession}:.0`;
11592
+ const target = session.paneId ?? `=${session.tmuxSession}:`;
11593
11593
  const { commands, dropped } = encodeTerminalWrite(text, target, { normalizeKeyNames: true });
11594
11594
  if (dropped) {
11595
11595
  logger.debug(`[WEB TERMINAL] dropped terminal auto-reply for ${terminalId}`);
@@ -11618,7 +11618,7 @@ class WebTerminalManager {
11618
11618
  session.transport.pty.write(text);
11619
11619
  return;
11620
11620
  }
11621
- const target = session.paneId ?? `=${session.tmuxSession}:.0`;
11621
+ const target = session.paneId ?? `=${session.tmuxSession}:`;
11622
11622
  const plan = buildPastePlan(text, target, { dir: pasteSpoolDir() });
11623
11623
  node_fs.writeFileSync(plan.path, plan.bytes, { mode: 384 });
11624
11624
  try {
@@ -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.92";
32
+ var version = "0.2.93";
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.92",
146
- "very-happy-tools-x64-darwin": "0.2.92",
147
- "very-happy-tools-arm64-linux": "0.2.92",
148
- "very-happy-tools-x64-linux": "0.2.92",
149
- "very-happy-tools-arm64-win32": "0.2.92",
150
- "very-happy-tools-x64-win32": "0.2.92"
145
+ "very-happy-tools-arm64-darwin": "0.2.93",
146
+ "very-happy-tools-x64-darwin": "0.2.93",
147
+ "very-happy-tools-arm64-linux": "0.2.93",
148
+ "very-happy-tools-x64-linux": "0.2.93",
149
+ "very-happy-tools-arm64-win32": "0.2.93",
150
+ "very-happy-tools-x64-win32": "0.2.93"
151
151
  };
152
152
  var devDependencies = {
153
153
  "@slopus/happy-wire": "workspace:*",
@@ -11472,7 +11472,7 @@ class WebTerminalManager {
11472
11472
  if (session.transport.kind !== "control") throw new Error("capture requires a control client");
11473
11473
  const { client } = session.transport;
11474
11474
  const batch = buildCaptureBatch({
11475
- paneTarget: `=${session.tmuxSession}:.0`,
11475
+ paneTarget: `=${session.tmuxSession}:`,
11476
11476
  historyLines: HEADLESS_SCROLLBACK,
11477
11477
  smallLines: SNAPSHOT_SCROLLBACK,
11478
11478
  cols: session.cols,
@@ -11567,7 +11567,7 @@ class WebTerminalManager {
11567
11567
  session.transport.pty.write(text);
11568
11568
  return;
11569
11569
  }
11570
- const target = session.paneId ?? `=${session.tmuxSession}:.0`;
11570
+ const target = session.paneId ?? `=${session.tmuxSession}:`;
11571
11571
  const { commands, dropped } = encodeTerminalWrite(text, target, { normalizeKeyNames: true });
11572
11572
  if (dropped) {
11573
11573
  logger.debug(`[WEB TERMINAL] dropped terminal auto-reply for ${terminalId}`);
@@ -11596,7 +11596,7 @@ class WebTerminalManager {
11596
11596
  session.transport.pty.write(text);
11597
11597
  return;
11598
11598
  }
11599
- const target = session.paneId ?? `=${session.tmuxSession}:.0`;
11599
+ const target = session.paneId ?? `=${session.tmuxSession}:`;
11600
11600
  const plan = buildPastePlan(text, target, { dir: pasteSpoolDir() });
11601
11601
  writeFileSync(plan.path, plan.bytes, { mode: 384 });
11602
11602
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "very-happy-cli",
3
- "version": "0.2.92",
3
+ "version": "0.2.93",
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.92",
117
- "very-happy-tools-x64-darwin": "0.2.92",
118
- "very-happy-tools-arm64-linux": "0.2.92",
119
- "very-happy-tools-x64-linux": "0.2.92",
120
- "very-happy-tools-arm64-win32": "0.2.92",
121
- "very-happy-tools-x64-win32": "0.2.92"
116
+ "very-happy-tools-arm64-darwin": "0.2.93",
117
+ "very-happy-tools-x64-darwin": "0.2.93",
118
+ "very-happy-tools-arm64-linux": "0.2.93",
119
+ "very-happy-tools-x64-linux": "0.2.93",
120
+ "very-happy-tools-arm64-win32": "0.2.93",
121
+ "very-happy-tools-x64-win32": "0.2.93"
122
122
  },
123
123
  "devDependencies": {
124
124
  "@slopus/happy-wire": "workspace:*",