very-happy-cli 0.2.90 → 0.2.91

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 (31) hide show
  1. package/dist/{AcpBackend-BV4wSnJ3.mjs → AcpBackend-B5RRlzLU.mjs} +1 -1
  2. package/dist/{AcpBackend-CnYZFdd0.cjs → AcpBackend-GqveWg8u.cjs} +1 -1
  3. package/dist/{AcpSessionManager-Cyne6Rmg.mjs → AcpSessionManager-Ij1pI5Ex.mjs} +1 -1
  4. package/dist/{AcpSessionManager-BPBdrrME.cjs → AcpSessionManager-YcrSZwvq.cjs} +1 -1
  5. package/dist/{config-CgXitj0f.cjs → config-C4NCw7Dz.cjs} +2 -2
  6. package/dist/{config-BEdyyciP.mjs → config-ra8iKxdU.mjs} +2 -2
  7. package/dist/{index-B1wTVXjt.cjs → index-C1HIm7NY.cjs} +4 -4
  8. package/dist/{index-Dfu5uvjk.mjs → index-CB5H7YI6.mjs} +5 -5
  9. package/dist/{index-4YmVbx7j.cjs → index-FkXJNwiy.cjs} +87 -31
  10. package/dist/{index-an09rejO.mjs → index-UCYD5Wk3.mjs} +84 -28
  11. package/dist/index.cjs +2 -2
  12. package/dist/index.mjs +2 -2
  13. package/dist/{installTerminalHooks-DDpVxk8-.cjs → installTerminalHooks-CoK5wNcA.cjs} +2 -2
  14. package/dist/{installTerminalHooks-C-OgZr5k.mjs → installTerminalHooks-TkkGzzbI.mjs} +2 -2
  15. package/dist/lib.cjs +1 -1
  16. package/dist/lib.d.cts +34 -0
  17. package/dist/lib.d.mts +34 -0
  18. package/dist/lib.mjs +1 -1
  19. package/dist/{mcp-Du-N0qlK.mjs → mcp-C3MiqObi.mjs} +2 -2
  20. package/dist/{mcp-B6Nq-RUL.cjs → mcp-DcRvswVI.cjs} +2 -2
  21. package/dist/{runGemini-DBr_TiTL.mjs → runGemini-BbC0uwUj.mjs} +4 -4
  22. package/dist/{runGemini-ChG7cGMC.cjs → runGemini-Dnvd2gWq.cjs} +4 -4
  23. package/dist/{runOpenClaw-Cbde8t92.mjs → runOpenClaw--nbqTW3K.mjs} +3 -3
  24. package/dist/{runOpenClaw-D2jtVgpC.cjs → runOpenClaw-CnuTBNQW.cjs} +3 -3
  25. package/dist/{send-BHliX59m.mjs → send-9nJxn09Y.mjs} +2 -2
  26. package/dist/{send-Bjen1TUE.cjs → send-DkKOPatx.cjs} +2 -2
  27. package/dist/{spawn-JxaPHAoP.mjs → spawn-CRW4ioms.mjs} +2 -2
  28. package/dist/{spawn-CH1Rq-LW.cjs → spawn-DE7WhS8Y.cjs} +2 -2
  29. package/dist/{types-DS3i_5LV.mjs → types-BKyjG23_.mjs} +251 -15
  30. package/dist/{types-BNGeiP1C.cjs → types-ClDADuxP.cjs} +252 -16
  31. 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-DS3i_5LV.mjs';
4
+ import { l as logger, d as contentLogMetadata, e as errorLogMetadata, f as packageJson, g as delay } from './types-BKyjG23_.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-BNGeiP1C.cjs');
6
+ var persistence = require('./types-ClDADuxP.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-DS3i_5LV.mjs';
2
+ import { b as createEnvelope } from './types-BKyjG23_.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-BNGeiP1C.cjs');
4
+ var persistence = require('./types-ClDADuxP.cjs');
5
5
 
6
6
  function turnOptions(turnId, time) {
7
7
  return turnId ? { turn: turnId, time } : { time };
@@ -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-BNGeiP1C.cjs');
8
- var index = require('./index-4YmVbx7j.cjs');
7
+ var persistence = require('./types-ClDADuxP.cjs');
8
+ var index = require('./index-FkXJNwiy.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-DS3i_5LV.mjs';
6
- import { D as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-an09rejO.mjs';
5
+ import { l as logger } from './types-BKyjG23_.mjs';
6
+ import { D as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-UCYD5Wk3.mjs';
7
7
  import 'axios';
8
8
  import 'chalk';
9
9
  import 'node:util';
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var AcpBackend = require('./AcpBackend-CnYZFdd0.cjs');
4
- var persistence = require('./types-BNGeiP1C.cjs');
5
- var AcpSessionManager = require('./AcpSessionManager-BPBdrrME.cjs');
3
+ var AcpBackend = require('./AcpBackend-GqveWg8u.cjs');
4
+ var persistence = require('./types-ClDADuxP.cjs');
5
+ var AcpSessionManager = require('./AcpSessionManager-YcrSZwvq.cjs');
6
6
  var node_crypto = require('node:crypto');
7
7
  var path = require('node:path');
8
- var index = require('./index-4YmVbx7j.cjs');
8
+ var index = require('./index-FkXJNwiy.cjs');
9
9
  require('node:child_process');
10
10
  require('@agentclientprotocol/sdk');
11
11
  require('axios');
@@ -1,10 +1,10 @@
1
- import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-BV4wSnJ3.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-BV4wSnJ3.mjs';
3
- import { h as connectionState, A as ApiClient, i as readSettings, j as encodeBase64, l as logger, p as projectPath } from './types-DS3i_5LV.mjs';
4
- import { A as AcpSessionManager } from './AcpSessionManager-Cyne6Rmg.mjs';
1
+ import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-B5RRlzLU.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-B5RRlzLU.mjs';
3
+ import { h as connectionState, A as ApiClient, i as readSettings, j as encodeBase64, l as logger, p as projectPath } from './types-BKyjG23_.mjs';
4
+ import { A as AcpSessionManager } from './AcpSessionManager-Ij1pI5Ex.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-an09rejO.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-UCYD5Wk3.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-BNGeiP1C.cjs');
6
+ var persistence = require('./types-ClDADuxP.cjs');
7
7
  var spawn = require('cross-spawn');
8
8
  var path = require('node:path');
9
9
  var node_readline = require('node:readline');
@@ -1655,6 +1655,12 @@ function resolveRemoteClaudePermissionMode(currentMode, incomingMode, sandboxEna
1655
1655
  }
1656
1656
  return nextMode;
1657
1657
  }
1658
+ function reconcilePublishedPermissionMode(input) {
1659
+ if (!input.effective) return null;
1660
+ const mismatch = input.effective !== input.intent;
1661
+ if (input.effective === input.published) return mismatch ? { publish: input.effective, mismatch } : null;
1662
+ return { publish: input.effective, mismatch };
1663
+ }
1658
1664
 
1659
1665
  function parseCompact(message) {
1660
1666
  const trimmed = message.trim();
@@ -1984,7 +1990,12 @@ async function claudeRemote(opts) {
1984
1990
  mcpServers: systemInit.mcp_servers?.map((s) => ({ name: s.name, status: s.status })),
1985
1991
  skills: systemInit.skills,
1986
1992
  model: systemInit.model,
1987
- modelIsDefault: initial.mode.model == null
1993
+ modelIsDefault: initial.mode.model == null,
1994
+ // The SDK's own verdict on the mode it will enforce —
1995
+ // settings (permissions.deny/ask/defaultMode/
1996
+ // disableBypassPermissionsMode) can override what we
1997
+ // asked for. runClaude publishes THIS, not our intent.
1998
+ permissionMode: systemInit.permissionMode
1988
1999
  });
1989
2000
  }
1990
2001
  if (systemInit.session_id) {
@@ -2002,6 +2013,10 @@ async function claudeRemote(opts) {
2002
2013
  if (message.type === "result") {
2003
2014
  updateThinking(false);
2004
2015
  persistence.logger.debug("[claudeRemote] Result received");
2016
+ const denials = message.permission_denials;
2017
+ if (denials && denials.length > 0) {
2018
+ persistence.logger.warn(`[claudeRemote] ${denials.length} tool call(s) auto-denied by Claude Code policy: ${denials.map((d) => d.tool_name ?? "?").join(", ")}`);
2019
+ }
2005
2020
  if (isCompactCommand) {
2006
2021
  const compactSucceeded = message.subtype === "success";
2007
2022
  persistence.logger.debug(`[claudeRemote] Compaction ${compactSucceeded ? "completed" : "failed"}`);
@@ -2212,16 +2227,9 @@ class PermissionHandler {
2212
2227
  }
2213
2228
  } else {
2214
2229
  if (response.approved && response.mode) {
2215
- try {
2216
- if (!this.setPermissionModeCallback) throw new Error("permission mode updater unavailable");
2217
- await this.setPermissionModeCallback(response.mode);
2218
- this.permissionMode = response.mode;
2219
- this.onModeChangedCallback?.(response.mode);
2220
- } catch (err) {
2221
- const reason = `Failed to switch permission mode: ${err instanceof Error ? err.message : String(err)}`;
2222
- pending.resolve({ behavior: "deny", message: reason });
2223
- return { ...response, approved: false, reason };
2224
- }
2230
+ this.permissionMode = response.mode;
2231
+ this.deferredPermissionMode = response.mode;
2232
+ this.onModeChangedCallback?.(response.mode);
2225
2233
  }
2226
2234
  if (response.approved && !pending.suggestions?.length && response.allowTools?.length) {
2227
2235
  response.allowTools.forEach((tool) => {
@@ -2562,6 +2570,17 @@ class PermissionHandler {
2562
2570
  }
2563
2571
  }
2564
2572
 
2573
+ function rewriteQueuedPermissionMode(queue, hasher, permissionMode) {
2574
+ let rewritten = 0;
2575
+ for (const item of queue) {
2576
+ if (item.mode.permissionMode === permissionMode) continue;
2577
+ item.mode = { ...item.mode, permissionMode };
2578
+ item.modeHash = hasher(item.mode);
2579
+ rewritten += 1;
2580
+ }
2581
+ return rewritten;
2582
+ }
2583
+
2565
2584
  function formatClaudeMessageForInk(message, messageBuffer, onAssistantResult) {
2566
2585
  persistence.logger.debugLargeJson("[CLAUDE INK] Message from remote mode:", message);
2567
2586
  switch (message.type) {
@@ -2816,7 +2835,13 @@ class SDKToLogConverter {
2816
2835
  type: "user",
2817
2836
  message: userMsg.message,
2818
2837
  ...userMsg.parent_tool_use_id ? { parent_tool_use_id: userMsg.parent_tool_use_id } : {},
2819
- ...meta ? { isMeta: true } : {}
2838
+ ...meta ? { isMeta: true } : {},
2839
+ // B-260-P2: structured tool output (Agent/Task final report +
2840
+ // run totals, or the `async_launched` stub marker) and the
2841
+ // message origin (task-notification). Both are consumed by
2842
+ // sessionProtocolMapper; the raw-line schema is passthrough.
2843
+ ...userMsg.tool_use_result !== void 0 ? { tool_use_result: userMsg.tool_use_result } : {},
2844
+ ...userMsg.origin ? { origin: userMsg.origin } : {}
2820
2845
  };
2821
2846
  if (Array.isArray(userMsg.message.content)) {
2822
2847
  for (const content of userMsg.message.content) {
@@ -3327,7 +3352,7 @@ function createTurnSteeringController() {
3327
3352
  };
3328
3353
  }
3329
3354
 
3330
- async function claudeRemoteLauncher(session, onPermissionModeChange) {
3355
+ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffectivePermissionMode) {
3331
3356
  persistence.logger.debug("[claudeRemoteLauncher] Starting remote launcher");
3332
3357
  const hasTTY = process.stdout.isTTY && process.stdin.isTTY;
3333
3358
  persistence.logger.debug(`[claudeRemoteLauncher] TTY available: ${hasTTY}`);
@@ -3561,6 +3586,10 @@ async function claudeRemoteLauncher(session, onPermissionModeChange) {
3561
3586
  mode = { ...mode, permissionMode: nextMode };
3562
3587
  modeHash = session.queue.modeHasher(mode);
3563
3588
  }
3589
+ rewriteQueuedPermissionMode(session.queue.queue, session.queue.modeHasher, nextMode);
3590
+ if (pending) {
3591
+ pending = { ...pending, mode: { ...pending.mode, permissionMode: nextMode } };
3592
+ }
3564
3593
  onPermissionModeChange?.(nextMode);
3565
3594
  return nextMode;
3566
3595
  };
@@ -3633,6 +3662,7 @@ async function claudeRemoteLauncher(session, onPermissionModeChange) {
3633
3662
  skillCount: metadata.skills?.length ?? 0
3634
3663
  });
3635
3664
  session.client.updateMetadata((currentMetadata) => applyClaudeSdkMetadata(currentMetadata, metadata));
3665
+ if (metadata.permissionMode) onEffectivePermissionMode?.(metadata.permissionMode);
3636
3666
  },
3637
3667
  onQueryReady: (q) => {
3638
3668
  turnSteering.setInterrupt(q.interrupt);
@@ -3810,7 +3840,7 @@ async function loop(opts) {
3810
3840
  break;
3811
3841
  }
3812
3842
  case "remote": {
3813
- const reason = await claudeRemoteLauncher(session, opts.onPermissionModeChange);
3843
+ const reason = await claudeRemoteLauncher(session, opts.onPermissionModeChange, opts.onEffectivePermissionMode);
3814
3844
  switch (reason) {
3815
3845
  case "exit":
3816
3846
  return 0;
@@ -8843,7 +8873,7 @@ const MAX_TITLE_CHARS = 60;
8843
8873
  const GENERATION_TIMEOUT_MS = 3e4;
8844
8874
  function resolveClaudeBinary() {
8845
8875
  try {
8846
- 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-4YmVbx7j.cjs', document.baseURI).href)));
8876
+ 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-FkXJNwiy.cjs', document.baseURI).href)));
8847
8877
  const utilsPath = path.resolve(path.join(persistence.projectPath(), "scripts", "claude_version_utils.cjs"));
8848
8878
  const { getClaudeCliPath } = require$1(utilsPath);
8849
8879
  const path$1 = getClaudeCliPath();
@@ -9408,7 +9438,11 @@ async function runClaude(credentials, options = {}) {
9408
9438
  ...meta,
9409
9439
  lifecycleState: "running",
9410
9440
  archivedBy: void 0,
9411
- queueCancellation: true
9441
+ queueCancellation: true,
9442
+ // B-262 batch 2 (B5): a reconnected process re-publishes the mode
9443
+ // IT enforces; the server copy may still carry the previous
9444
+ // process's value.
9445
+ permissionMode: mapToClaudeMode(initialPermissionMode ?? "default")
9412
9446
  }));
9413
9447
  }
9414
9448
  const forkClaudeSessionId = process.env.HAPPY_FORK_CLAUDE_SESSION_ID;
@@ -9548,6 +9582,22 @@ async function runClaude(credentials, options = {}) {
9548
9582
  publishedPermissionMode = published;
9549
9583
  session.updateMetadata((meta) => ({ ...meta, permissionMode: published }));
9550
9584
  };
9585
+ const publishEffectivePermissionMode = (effective) => {
9586
+ const decision = reconcilePublishedPermissionMode({
9587
+ intent: mapToClaudeMode(currentPermissionMode ?? "default"),
9588
+ published: publishedPermissionMode,
9589
+ effective
9590
+ });
9591
+ if (!decision) return;
9592
+ if (decision.mismatch) {
9593
+ persistence.logger.warn(`[loop] Claude Code enforces permission mode '${effective}' but this process asked for '${mapToClaudeMode(currentPermissionMode ?? "default")}' \u2014 check ~/.claude settings (permissions.deny/ask/defaultMode/disableBypassPermissionsMode). Publishing the effective mode.`);
9594
+ }
9595
+ if (decision.publish !== publishedPermissionMode) {
9596
+ publishedPermissionMode = decision.publish;
9597
+ session.updateMetadata((meta) => ({ ...meta, permissionMode: decision.publish }));
9598
+ }
9599
+ };
9600
+ let lastExplicitModeSwitchAt = 0;
9551
9601
  let currentModel = options.model ?? DEFAULT_CLAUDE_MODEL;
9552
9602
  let currentFallbackModel = void 0;
9553
9603
  let currentCustomSystemPrompt = void 0;
@@ -9592,7 +9642,11 @@ async function runClaude(credentials, options = {}) {
9592
9642
  }
9593
9643
  const attachmentsForThisMessage = await session.drainAttachmentsForUserMessage();
9594
9644
  let messagePermissionMode = currentPermissionMode;
9595
- if (message.meta?.permissionMode) {
9645
+ const messageCreatedAt = message.createdAt;
9646
+ const staleModeSnapshot = message.meta?.permissionMode !== void 0 && typeof messageCreatedAt === "number" && messageCreatedAt < lastExplicitModeSwitchAt;
9647
+ if (staleModeSnapshot) {
9648
+ persistence.logger.debug(`[loop] Ignoring stale meta.permissionMode=${message.meta?.permissionMode} (message ${messageCreatedAt} predates explicit switch ${lastExplicitModeSwitchAt}); keeping ${currentPermissionMode}`);
9649
+ } else if (message.meta?.permissionMode) {
9596
9650
  const previousPermissionMode = currentPermissionMode;
9597
9651
  messagePermissionMode = resolveRemoteClaudePermissionMode(
9598
9652
  currentPermissionMode,
@@ -9856,9 +9910,11 @@ async function runClaude(credentials, options = {}) {
9856
9910
  },
9857
9911
  onAbort: resetCurrentModeDefaults,
9858
9912
  onPermissionModeChange: (mode) => {
9913
+ lastExplicitModeSwitchAt = Date.now();
9859
9914
  publishPermissionMode(mode);
9860
9915
  persistence.logger.debug(`[loop] Permission mode updated from session RPC / approval to: ${mode}`);
9861
9916
  },
9917
+ onEffectivePermissionMode: (mode) => publishEffectivePermissionMode(mode),
9862
9918
  mcpServers: {
9863
9919
  "happy": {
9864
9920
  type: "http",
@@ -11001,9 +11057,9 @@ function resolveLocalSignupBootstrap(configuredMode, configuredInviteCodes, gene
11001
11057
  };
11002
11058
  }
11003
11059
 
11004
- 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-4YmVbx7j.cjs', document.baseURI).href)));
11060
+ 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-FkXJNwiy.cjs', document.baseURI).href)));
11005
11061
  const __dirname$1 = path.dirname(__filename$1);
11006
- const require_ = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-4YmVbx7j.cjs', document.baseURI).href)));
11062
+ const require_ = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index-FkXJNwiy.cjs', document.baseURI).href)));
11007
11063
  const PRISMA_QUERY_ENGINE_FILES = {
11008
11064
  "arm64-darwin": "libquery_engine-darwin-arm64.dylib.node",
11009
11065
  "x64-darwin": "libquery_engine-darwin.dylib.node",
@@ -13615,7 +13671,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
13615
13671
  process.exit(0);
13616
13672
  } else if (subcommand === "install-terminal-hooks") {
13617
13673
  try {
13618
- const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await Promise.resolve().then(function () { return require('./installTerminalHooks-DDpVxk8-.cjs'); });
13674
+ const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await Promise.resolve().then(function () { return require('./installTerminalHooks-CoK5wNcA.cjs'); });
13619
13675
  const command = parseTerminalHooksArgs(args.slice(1));
13620
13676
  if (command.action === "help") {
13621
13677
  console.log(TERMINAL_HOOKS_HELP);
@@ -13632,7 +13688,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
13632
13688
  }
13633
13689
  } else if (subcommand === "spawn") {
13634
13690
  try {
13635
- const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-CH1Rq-LW.cjs'); });
13691
+ const { handleSpawnCommand } = await Promise.resolve().then(function () { return require('./spawn-DE7WhS8Y.cjs'); });
13636
13692
  await handleSpawnCommand(args.slice(1));
13637
13693
  } catch (error) {
13638
13694
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -13644,7 +13700,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
13644
13700
  return;
13645
13701
  } else if (subcommand === "send") {
13646
13702
  try {
13647
- const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-Bjen1TUE.cjs'); });
13703
+ const { handleSendCommand } = await Promise.resolve().then(function () { return require('./send-DkKOPatx.cjs'); });
13648
13704
  await handleSendCommand(args.slice(1));
13649
13705
  } catch (error) {
13650
13706
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -13750,9 +13806,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
13750
13806
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
13751
13807
  const projectId = args[3];
13752
13808
  try {
13753
- const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-CgXitj0f.cjs'); });
13754
- const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./types-BNGeiP1C.cjs'); }).then(function (n) { return n.persistence; });
13755
- const { ApiClient: ApiClient2 } = await Promise.resolve().then(function () { return require('./types-BNGeiP1C.cjs'); }).then(function (n) { return n.api; });
13809
+ const { saveGoogleCloudProjectToConfig } = await Promise.resolve().then(function () { return require('./config-C4NCw7Dz.cjs'); });
13810
+ const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await Promise.resolve().then(function () { return require('./types-ClDADuxP.cjs'); }).then(function (n) { return n.persistence; });
13811
+ const { ApiClient: ApiClient2 } = await Promise.resolve().then(function () { return require('./types-ClDADuxP.cjs'); }).then(function (n) { return n.api; });
13756
13812
  let userEmail = void 0;
13757
13813
  try {
13758
13814
  const credentials = await readCredentialsForConfiguredRelay2();
@@ -13783,7 +13839,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
13783
13839
  }
13784
13840
  if (geminiSubcommand === "project" && args[2] === "get") {
13785
13841
  try {
13786
- const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-CgXitj0f.cjs'); });
13842
+ const { readGeminiLocalConfig } = await Promise.resolve().then(function () { return require('./config-C4NCw7Dz.cjs'); });
13787
13843
  const config = readGeminiLocalConfig();
13788
13844
  if (config.googleCloudProject) {
13789
13845
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -13823,7 +13879,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
13823
13879
  process.exit(0);
13824
13880
  }
13825
13881
  try {
13826
- const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-ChG7cGMC.cjs'); });
13882
+ const { runGemini } = await Promise.resolve().then(function () { return require('./runGemini-Dnvd2gWq.cjs'); });
13827
13883
  let startedBy = void 0;
13828
13884
  for (let i = 1; i < args.length; i++) {
13829
13885
  if (args[i] === "--started-by") {
@@ -13845,7 +13901,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
13845
13901
  return;
13846
13902
  } else if (subcommand === "acp") {
13847
13903
  try {
13848
- const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-B1wTVXjt.cjs'); });
13904
+ const { runAcp, resolveAcpAgentConfig } = await Promise.resolve().then(function () { return require('./index-C1HIm7NY.cjs'); });
13849
13905
  let startedBy = void 0;
13850
13906
  let verbose = false;
13851
13907
  const acpArgs = [];
@@ -13885,7 +13941,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
13885
13941
  return;
13886
13942
  } else if (subcommand === "openclaw") {
13887
13943
  try {
13888
- const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-D2jtVgpC.cjs'); });
13944
+ const { runOpenClaw } = await Promise.resolve().then(function () { return require('./runOpenClaw-CnuTBNQW.cjs'); });
13889
13945
  let startedBy = void 0;
13890
13946
  let verbose = false;
13891
13947
  let gatewayUrl;
@@ -13936,7 +13992,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
13936
13992
  return;
13937
13993
  } else if (subcommand === "mcp" && args.length === 1) {
13938
13994
  try {
13939
- const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-B6Nq-RUL.cjs'); });
13995
+ const { handleMcpCommand } = await Promise.resolve().then(function () { return require('./mcp-DcRvswVI.cjs'); });
13940
13996
  await handleMcpCommand();
13941
13997
  } catch (error) {
13942
13998
  process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}