very-happy-cli 0.2.149 → 0.2.150

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 (49) hide show
  1. package/dist/{AcpBackend-Baqb8dNm.mjs → AcpBackend-C-dhGJgd.mjs} +2 -2
  2. package/dist/{AcpBackend-CnZpEfGd.cjs → AcpBackend-CXawaWWx.cjs} +2 -2
  3. package/dist/{AcpSessionManager-CC6mdFXs.mjs → AcpSessionManager-DKOtSqJc.mjs} +1 -1
  4. package/dist/{AcpSessionManager-e2vxmIbj.cjs → AcpSessionManager-TrwEZR7y.cjs} +1 -1
  5. package/dist/{agentGuidance--QIi_rZ2.cjs → agentGuidance-Dla-BXO8.cjs} +1 -1
  6. package/dist/{agentGuidance-oMVJvUl7.mjs → agentGuidance-DrfhtVP1.mjs} +1 -1
  7. package/dist/{agentHome-CKSPsS8d.mjs → agentHome-Dm-Wjs38.mjs} +2 -2
  8. package/dist/{agentHome-3kRCtzOL.cjs → agentHome-rylNIkix.cjs} +2 -2
  9. package/dist/codex/happyMcpStdioBridge.cjs +2 -2
  10. package/dist/codex/happyMcpStdioBridge.mjs +2 -2
  11. package/dist/{config-CzJZcvTO.cjs → config-CgPu2wtS.cjs} +4 -4
  12. package/dist/{config-C8jpk6IA.mjs → config-Dhu6LU0h.mjs} +4 -4
  13. package/dist/{index-BPCXUrEe.mjs → index-BsYH1sjV.mjs} +4 -4
  14. package/dist/{index-Dfkyar7S.mjs → index-CpNYvMTJ.mjs} +147 -40
  15. package/dist/{index-DrVq0CqK.mjs → index-CzpooENj.mjs} +8 -8
  16. package/dist/{index-DgK4KX-Z.cjs → index-DEVkDRas.cjs} +7 -7
  17. package/dist/{index-DBN2Zpqc.cjs → index-DvfCUuDK.cjs} +4 -4
  18. package/dist/{index-CyfXsCXl.cjs → index-K6mUS0jF.cjs} +145 -38
  19. package/dist/index.cjs +4 -4
  20. package/dist/index.mjs +4 -4
  21. package/dist/{installTerminalHooks-COqkLz6f.mjs → installTerminalHooks-BF_tmw9V.mjs} +4 -4
  22. package/dist/{installTerminalHooks-kdAoTfNT.cjs → installTerminalHooks-NIbsQ1wi.cjs} +4 -4
  23. package/dist/lib.cjs +2 -2
  24. package/dist/lib.mjs +2 -2
  25. package/dist/{limits-FZWhlsBu.cjs → limits-Dyma1REp.cjs} +7 -7
  26. package/dist/{limits-BXI1Gzvd.mjs → limits-FThmm7WR.mjs} +7 -7
  27. package/dist/{mcp-Dfnoirpi.mjs → mcp-DzydgXpf.mjs} +4 -4
  28. package/dist/{mcp-DoLZbbZp.cjs → mcp-_TVUSg8W.cjs} +4 -4
  29. package/dist/{piRuntime-BK6YZm2X.mjs → piRuntime-ACOhil6t.mjs} +2 -2
  30. package/dist/{piRuntime-DmE4ysfG.cjs → piRuntime-CSAiJk0X.cjs} +2 -2
  31. package/dist/{piTerminal-Bczubq2n.mjs → piTerminal-BlE4vbvZ.mjs} +6 -6
  32. package/dist/{piTerminal-qQAzQwIU.cjs → piTerminal-DHxGB3Ic.cjs} +6 -6
  33. package/dist/{runGemini-ComTu0EB.cjs → runGemini-BMYCU16c.cjs} +6 -6
  34. package/dist/{runGemini-Cce_pjTs.mjs → runGemini-D5IV1MoF.mjs} +6 -6
  35. package/dist/{runOpenClaw-DXP5_chb.mjs → runOpenClaw-CWPXrKMJ.mjs} +5 -5
  36. package/dist/{runOpenClaw-M3YlDt8z.cjs → runOpenClaw-Qs4eFtcS.cjs} +5 -5
  37. package/dist/{send-DDD57Cr_.mjs → send-Dv0km8UI.mjs} +4 -4
  38. package/dist/{send-0LrSwGgr.cjs → send-qXWGilm8.cjs} +4 -4
  39. package/dist/{sessions-2Bkau9T4.cjs → sessions-CpIdDhH7.cjs} +4 -4
  40. package/dist/{sessions-ClBPEtz2.mjs → sessions-DoULfKui.mjs} +4 -4
  41. package/dist/{spawn-7lLymdT1.mjs → spawn-DQuOmUP7.mjs} +4 -4
  42. package/dist/{spawn-Cm3Da8Ge.cjs → spawn-DqzG1bTH.cjs} +4 -4
  43. package/dist/{teams-DyBjdXI3.mjs → teams-4mhNh5cj.mjs} +4 -4
  44. package/dist/{teams-DKKeIG-u.cjs → teams-ByEgUzsH.cjs} +4 -4
  45. package/dist/{todo-jXHGGH89.mjs → todo-C9IAUf0K.mjs} +3 -3
  46. package/dist/{todo-8RgCTDxH.cjs → todo-D7SDXL0c.cjs} +3 -3
  47. package/dist/{types-ipzMqciq.mjs → types-BD542hb1.mjs} +1 -1
  48. package/dist/{types-t1gxALVE.cjs → types-D2Gkpe0N.cjs} +1 -1
  49. package/package.json +7 -7
@@ -1,8 +1,8 @@
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, p as packageJson } from './limits-BXI1Gzvd.mjs';
5
- import { t as contentLogMetadata, q as errorLogMetadata, u as delay } from './types-ipzMqciq.mjs';
4
+ import { l as logger, p as packageJson } from './limits-FThmm7WR.mjs';
5
+ import { t as contentLogMetadata, q as errorLogMetadata, u as delay } from './types-BD542hb1.mjs';
6
6
 
7
7
  function acpImageBlocks(attachments, supportsImages) {
8
8
  return attachments.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => {
@@ -3,8 +3,8 @@
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('./limits-FZWhlsBu.cjs');
7
- var index = require('./types-t1gxALVE.cjs');
6
+ var persistence = require('./limits-Dyma1REp.cjs');
7
+ var index = require('./types-D2Gkpe0N.cjs');
8
8
 
9
9
  function acpImageBlocks(attachments, supportsImages) {
10
10
  return attachments.filter((file) => ["image/jpeg", "image/png", "image/gif", "image/webp"].includes(file.mimeType)).map((file) => {
@@ -1,5 +1,5 @@
1
1
  import { createId } from '@paralleldrive/cuid2';
2
- import { f as streamKeyOf, g as createEnvelope } from './types-ipzMqciq.mjs';
2
+ import { f as streamKeyOf, g as createEnvelope } from './types-BD542hb1.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 index = require('./types-t1gxALVE.cjs');
4
+ var index = require('./types-D2Gkpe0N.cjs');
5
5
 
6
6
  function turnOptions(turnId, time) {
7
7
  return turnId ? { turn: turnId, time } : { time };
@@ -2,7 +2,7 @@
2
2
 
3
3
  var z = require('zod');
4
4
  var node_crypto = require('node:crypto');
5
- var persistence = require('./limits-FZWhlsBu.cjs');
5
+ var persistence = require('./limits-Dyma1REp.cjs');
6
6
  var promises = require('node:fs/promises');
7
7
  var node_fs = require('node:fs');
8
8
  var path = require('node:path');
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { randomUUID } from 'node:crypto';
3
- import { n as normalizeHttpEndpoint, c as configuration, r as readSettings, d as readPersistedSessions, e as readCredentialsForConfiguredRelay } from './limits-BXI1Gzvd.mjs';
3
+ import { n as normalizeHttpEndpoint, c as configuration, r as readSettings, d as readPersistedSessions, e as readCredentialsForConfiguredRelay } from './limits-FThmm7WR.mjs';
4
4
  import { open, mkdir, rename, unlink } from 'node:fs/promises';
5
5
  import { constants } from 'node:fs';
6
6
  import { isAbsolute, join, dirname } from 'node:path';
@@ -1,8 +1,8 @@
1
1
  import chalk from 'chalk';
2
2
  import { homedir } from 'node:os';
3
- import { r as readSettings, u as updateSettings } from './limits-BXI1Gzvd.mjs';
3
+ import { r as readSettings, u as updateSettings } from './limits-FThmm7WR.mjs';
4
4
  import 'node:fs';
5
- import { d as describeAgentHome, p as probeLoginShellEnv, r as resolveAgentHomes, e as expandHomePath, b as AGENT_HOME_ENV_NAMES } from './types-ipzMqciq.mjs';
5
+ import { d as describeAgentHome, p as probeLoginShellEnv, r as resolveAgentHomes, e as expandHomePath, b as AGENT_HOME_ENV_NAMES } from './types-BD542hb1.mjs';
6
6
  import 'node:fs/promises';
7
7
  import 'node:path';
8
8
  import 'zod';
@@ -2,9 +2,9 @@
2
2
 
3
3
  var chalk = require('chalk');
4
4
  var os = require('node:os');
5
- var persistence = require('./limits-FZWhlsBu.cjs');
5
+ var persistence = require('./limits-Dyma1REp.cjs');
6
6
  require('node:fs');
7
- var index = require('./types-t1gxALVE.cjs');
7
+ var index = require('./types-D2Gkpe0N.cjs');
8
8
  require('node:fs/promises');
9
9
  require('node:path');
10
10
  require('zod');
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var agentGuidance = require('../agentGuidance--QIi_rZ2.cjs');
3
+ var agentGuidance = require('../agentGuidance-Dla-BXO8.cjs');
4
4
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
5
5
  var stdio_js = require('@modelcontextprotocol/sdk/server/stdio.js');
6
6
  var index_js = require('@modelcontextprotocol/sdk/client/index.js');
7
7
  var streamableHttp_js = require('@modelcontextprotocol/sdk/client/streamableHttp.js');
8
8
  var z = require('zod');
9
- var persistence = require('../limits-FZWhlsBu.cjs');
9
+ var persistence = require('../limits-Dyma1REp.cjs');
10
10
  require('node:crypto');
11
11
  require('node:fs/promises');
12
12
  require('node:fs');
@@ -1,10 +1,10 @@
1
- import { P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, r as registerTeamsTools } from '../agentGuidance-oMVJvUl7.mjs';
1
+ import { P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, r as registerTeamsTools } from '../agentGuidance-DrfhtVP1.mjs';
2
2
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
3
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
4
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
5
5
  import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
6
6
  import { z } from 'zod';
7
- import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION } from '../limits-BXI1Gzvd.mjs';
7
+ import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION } from '../limits-FThmm7WR.mjs';
8
8
  import 'node:crypto';
9
9
  import 'node:fs/promises';
10
10
  import 'node:fs';
@@ -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('./limits-FZWhlsBu.cjs');
8
- var index = require('./index-CyfXsCXl.cjs');
7
+ var persistence = require('./limits-Dyma1REp.cjs');
8
+ var index = require('./index-K6mUS0jF.cjs');
9
9
  require('node:fs/promises');
10
10
  require('node:fs');
11
11
  require('node:os');
@@ -15,7 +15,7 @@ require('node:crypto');
15
15
  require('tweetnacl');
16
16
  require('chalk');
17
17
  require('node:util');
18
- require('./types-t1gxALVE.cjs');
18
+ require('./types-D2Gkpe0N.cjs');
19
19
  require('axios');
20
20
  require('node:events');
21
21
  require('socket.io-client');
@@ -31,7 +31,7 @@ require('node-pty');
31
31
  require('node:readline');
32
32
  require('@anthropic-ai/sandbox-runtime');
33
33
  require('expo-server-sdk');
34
- require('./agentGuidance--QIi_rZ2.cjs');
34
+ require('./agentGuidance-Dla-BXO8.cjs');
35
35
  require('ink');
36
36
  require('react');
37
37
  require('@anthropic-ai/claude-agent-sdk');
@@ -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 './limits-BXI1Gzvd.mjs';
6
- import { g as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-Dfkyar7S.mjs';
5
+ import { l as logger } from './limits-FThmm7WR.mjs';
6
+ import { g as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-CpNYvMTJ.mjs';
7
7
  import 'node:fs/promises';
8
8
  import 'node:fs';
9
9
  import 'node:os';
@@ -13,7 +13,7 @@ import 'node:crypto';
13
13
  import 'tweetnacl';
14
14
  import 'chalk';
15
15
  import 'node:util';
16
- import './types-ipzMqciq.mjs';
16
+ import './types-BD542hb1.mjs';
17
17
  import 'axios';
18
18
  import 'node:events';
19
19
  import 'socket.io-client';
@@ -29,7 +29,7 @@ import 'node-pty';
29
29
  import 'node:readline';
30
30
  import '@anthropic-ai/sandbox-runtime';
31
31
  import 'expo-server-sdk';
32
- import './agentGuidance-oMVJvUl7.mjs';
32
+ import './agentGuidance-DrfhtVP1.mjs';
33
33
  import 'ink';
34
34
  import 'react';
35
35
  import '@anthropic-ai/claude-agent-sdk';
@@ -1,11 +1,11 @@
1
- import { q as query } from './index-Dfkyar7S.mjs';
1
+ import { q as query } from './index-CpNYvMTJ.mjs';
2
2
  export { AbortError } from '@anthropic-ai/claude-agent-sdk';
3
3
  import 'chalk';
4
4
  import 'node:os';
5
5
  import 'node:crypto';
6
- import './types-ipzMqciq.mjs';
6
+ import './types-BD542hb1.mjs';
7
7
  import 'axios';
8
- import './limits-BXI1Gzvd.mjs';
8
+ import './limits-FThmm7WR.mjs';
9
9
  import 'node:fs/promises';
10
10
  import 'node:fs';
11
11
  import 'node:path';
@@ -30,7 +30,7 @@ import 'fs';
30
30
  import 'node:readline';
31
31
  import '@anthropic-ai/sandbox-runtime';
32
32
  import 'expo-server-sdk';
33
- import './agentGuidance-oMVJvUl7.mjs';
33
+ import './agentGuidance-DrfhtVP1.mjs';
34
34
  import 'ink';
35
35
  import 'react';
36
36
  import 'ps-list';
@@ -1,15 +1,15 @@
1
1
  import{createRequire as _pkgrollCR}from"node:module";const require=_pkgrollCR(import.meta.url);import chalk from 'chalk';
2
2
  import os, { homedir, userInfo, tmpdir } from 'node:os';
3
3
  import { randomUUID, randomInt, randomBytes, createHash as createHash$1, timingSafeEqual } from 'node:crypto';
4
- import { v as notifyDaemonSessionEvent, w as getProjectPath, o as BUILTIN_TODO_DISCOVERY, x as initializeSandbox, y as wrapCommand, t as contentLogMetadata, I as InvalidateSync, R as RawJSONLinesSchema, u as delay, z as AsyncLock, S as STREAM_DELTA_MAX_CHARS, M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES, C as notifyDaemonClaudeAuthFailed, D as commandOnPath, c as checkIfDaemonRunningAndCleanupStaleState, E as deriveLocalCliUpdateSummary, F as AGENT_VERSION_SOURCES, G as isClaudeSessionId, H as getLocalHappyAgentCredentialPath, J as readLocalHappyAgentCredentials, K as parseExactVersion, L as compareExactVersions, N as extractCompleteLines, O as decideBackfill, P as parseTerminalHookPayload, Q as tmuxArgs, T as scrubTmuxClientEnv, U as decideMirrorBinding, V as MIRROR_BACKFILL_LINES_DEFAULT, W as mirrorLineKey, X as mirrorLocalId, Y as listDaemonSessions, Z as stopDaemonSession, _ as detectCLIAvailability, $ as detectResumeSupport, a0 as refreshAgentHomes, d as describeAgentHome, a1 as isDaemonRunningCurrentlyInstalledHappyVersion, a2 as stopDaemon, a3 as TurnActivityTracker, a4 as summarizeSpawnSessionForLog, a5 as locateClaudeConversation, a6 as agentHomeSpawnEnv, a7 as shellescape, A as ApiClient, a8 as fetchCliUpdateState, a9 as resolveCliUpdateCheckInterval, aa as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS, ab as cleanupDaemonState, i as isValidSessionId, s as spawnDaemonSession, ac as listVhTerminals, ad as isValidTerminalId, ae as readVhTerminal, af as sendToVhTerminal, ag as ContextUsageSchema, ah as TITLE_PROMPT_PREFIX, ai as BOARD_ANALYZER_PROMPT_PREFIX, m as connectionState, aj as startOfflineReconnection, n as notifyDaemonSessionStarted, g as createEnvelope, ak as CodexAppServerClient } from './types-ipzMqciq.mjs';
5
- import { l as logger, F as ensurePrivateDirectory, G as hardenPrivateFile, c as configuration, p as packageJson, r as readSettings, H as readCredentials, x as credentialRelayProblem, o as readDaemonState, g as encodeBase64, I as readSettingsOutcome, u as updateSettings, J as encodeBase64Url, m as decodeBase64, K as writeCredentialsLegacy, L as writeCredentialsDataKey, e as readCredentialsForConfiguredRelay, j as encrypt, d as readPersistedSessions, w as writePrivateFileSync, M as decryptWithDataKey, N as decryptLegacy, O as persistSession, k as decrypt, h as ensurePrivateDirectorySync, P as acquireDaemonLock, Q as deletePersistedSessions, R as writeDaemonState, S as writeSettings, T as releaseDaemonLock, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, f as CLIPBOARD_MAX_BYTES, U as clearCredentials, V as clearMachineId, W as SandboxConfigSchema, X as getLatestDaemonLog } from './limits-BXI1Gzvd.mjs';
4
+ import { v as notifyDaemonSessionEvent, w as getProjectPath, o as BUILTIN_TODO_DISCOVERY, x as initializeSandbox, y as wrapCommand, t as contentLogMetadata, I as InvalidateSync, R as RawJSONLinesSchema, u as delay, z as AsyncLock, S as STREAM_DELTA_MAX_CHARS, M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES, C as notifyDaemonClaudeAuthFailed, D as commandOnPath, c as checkIfDaemonRunningAndCleanupStaleState, E as deriveLocalCliUpdateSummary, F as AGENT_VERSION_SOURCES, G as isClaudeSessionId, H as getLocalHappyAgentCredentialPath, J as readLocalHappyAgentCredentials, K as parseExactVersion, L as compareExactVersions, N as extractCompleteLines, O as decideBackfill, P as parseTerminalHookPayload, Q as tmuxArgs, T as scrubTmuxClientEnv, U as decideMirrorBinding, V as MIRROR_BACKFILL_LINES_DEFAULT, W as mirrorLineKey, X as mirrorLocalId, Y as listDaemonSessions, Z as stopDaemonSession, _ as detectCLIAvailability, $ as detectResumeSupport, a0 as refreshAgentHomes, d as describeAgentHome, a1 as isDaemonRunningCurrentlyInstalledHappyVersion, a2 as stopDaemon, a3 as TurnActivityTracker, a4 as summarizeSpawnSessionForLog, a5 as locateClaudeConversation, a6 as agentHomeSpawnEnv, a7 as shellescape, A as ApiClient, a8 as fetchCliUpdateState, a9 as resolveCliUpdateCheckInterval, aa as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS, ab as cleanupDaemonState, i as isValidSessionId, s as spawnDaemonSession, ac as listVhTerminals, ad as isValidTerminalId, ae as readVhTerminal, af as sendToVhTerminal, ag as ContextUsageSchema, ah as TITLE_PROMPT_PREFIX, ai as BOARD_ANALYZER_PROMPT_PREFIX, m as connectionState, aj as startOfflineReconnection, n as notifyDaemonSessionStarted, g as createEnvelope, ak as CodexAppServerClient } from './types-BD542hb1.mjs';
5
+ import { l as logger, F as ensurePrivateDirectory, G as hardenPrivateFile, c as configuration, p as packageJson, r as readSettings, H as readCredentials, x as credentialRelayProblem, o as readDaemonState, g as encodeBase64, I as readSettingsOutcome, u as updateSettings, J as encodeBase64Url, m as decodeBase64, K as writeCredentialsLegacy, L as writeCredentialsDataKey, e as readCredentialsForConfiguredRelay, j as encrypt, d as readPersistedSessions, w as writePrivateFileSync, M as decryptWithDataKey, N as decryptLegacy, O as persistSession, k as decrypt, h as ensurePrivateDirectorySync, P as acquireDaemonLock, Q as deletePersistedSessions, R as writeDaemonState, S as writeSettings, T as releaseDaemonLock, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, f as CLIPBOARD_MAX_BYTES, U as clearCredentials, V as clearMachineId, W as SandboxConfigSchema, X as getLatestDaemonLog } from './limits-FThmm7WR.mjs';
6
6
  import spawn$1, { spawn } from 'cross-spawn';
7
- import path, { join, resolve, basename, isAbsolute, sep, dirname, delimiter, normalize } from 'node:path';
7
+ import path, { join, resolve, basename, delimiter, isAbsolute, dirname, sep, normalize } from 'node:path';
8
8
  import { createInterface } from 'node:readline';
9
- import { existsSync, readFileSync, readdirSync, statSync, mkdirSync, unlinkSync, renameSync, writeFileSync, accessSync, constants, openSync, fsyncSync, closeSync, rmSync as rmSync$1, chmodSync as chmodSync$1 } from 'node:fs';
9
+ import { existsSync, readFileSync, readdirSync, statSync, mkdirSync, realpathSync, unlinkSync, renameSync, writeFileSync, accessSync, constants as constants$1, openSync, fsyncSync, closeSync, rmSync as rmSync$1, chmodSync as chmodSync$1 } from 'node:fs';
10
10
  import { p as projectPath } from './projectPath-CSpqWdxp.mjs';
11
- import { f as trimIdent, A as AGENT_GUIDANCE, t as teamScopePath, T as TeamConnectionPreflightError, e as createTeamsClient, P as PREVIEW_TOOL_NAME, R as REPORT_PROGRESS_TOOL_NAME, g as TEAM_TOOL_NAMES, r as registerTeamsTools, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, h as REPORT_PROGRESS_TOOL_TITLE, i as REPORT_PROGRESS_TOOL_DESCRIPTION } from './agentGuidance-oMVJvUl7.mjs';
12
- import { readFile, writeFile, rename, unlink, mkdir, symlink, rm, readlink, lstat, stat, open as open$1, appendFile } from 'node:fs/promises';
11
+ import { f as trimIdent, A as AGENT_GUIDANCE, t as teamScopePath, T as TeamConnectionPreflightError, e as createTeamsClient, P as PREVIEW_TOOL_NAME, R as REPORT_PROGRESS_TOOL_NAME, g as TEAM_TOOL_NAMES, r as registerTeamsTools, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, h as REPORT_PROGRESS_TOOL_TITLE, i as REPORT_PROGRESS_TOOL_DESCRIPTION } from './agentGuidance-DrfhtVP1.mjs';
12
+ import { readFile, writeFile, rename, unlink, mkdir, access as access$1, symlink, rm, readlink, lstat, constants, stat, open as open$1, appendFile } from 'node:fs/promises';
13
13
  import fs, { watch, access } from 'fs/promises';
14
14
  import { useStdout, useInput, Box, Text, render } from 'ink';
15
15
  import React, { useState, useRef, useEffect, useCallback } from 'react';
@@ -5104,6 +5104,61 @@ function shareSafeEnvironmentInfo(env = process.env, runtime = process) {
5104
5104
  };
5105
5105
  }
5106
5106
 
5107
+ const NPM_SAFE_ARG = /^[A-Za-z0-9@=.,+/_-]+$/;
5108
+ function globalPrefixForPackage(packageDir) {
5109
+ if (!isAbsolute(packageDir)) return null;
5110
+ const dir = resolve(packageDir);
5111
+ const nodeModules = dirname(dir);
5112
+ const lib = dirname(nodeModules);
5113
+ const prefix = dirname(lib);
5114
+ if (basename(dir) !== "very-happy-cli" || basename(nodeModules) !== "node_modules" || basename(lib) !== "lib") return null;
5115
+ if (prefix === lib || resolve(prefix) === "/" || !NPM_SAFE_ARG.test(prefix)) return null;
5116
+ return prefix;
5117
+ }
5118
+ function packageDirForBin(realBin) {
5119
+ const packageDir = dirname(dirname(realBin));
5120
+ return basename(dirname(realBin)) === "bin" && basename(packageDir) === "very-happy-cli" ? packageDir : null;
5121
+ }
5122
+ function installLocationWarnings(facts, version) {
5123
+ const warnings = [];
5124
+ const running = resolve(facts.runningPackageDir);
5125
+ const packages = [...new Set(facts.onPath.map(packageDirForBin).filter((dir) => Boolean(dir)).map((dir) => resolve(dir)))];
5126
+ if (packages.length > 1) {
5127
+ warnings.push(`Found ${packages.length} very-happy installs on PATH (first one wins): ${packages.join(", ")}. Updating one does not update the others; remove the ones you do not use.`);
5128
+ }
5129
+ if (packages[0] && packages[0] !== running) {
5130
+ warnings.push(`The very-happy command runs ${packages[0]}, but this CLI runs from ${running}.`);
5131
+ }
5132
+ const prefix = globalPrefixForPackage(running);
5133
+ if (prefix && facts.npmGlobalPrefix && resolve(facts.npmGlobalPrefix) !== resolve(prefix)) {
5134
+ const target = version ? `very-happy-cli@${version}` : "very-happy-cli@latest";
5135
+ warnings.push(`npm install -g writes to ${facts.npmGlobalPrefix}, but this CLI runs from ${prefix}; a plain update will not take effect. Update with: npm install -g --prefix ${prefix} --allow-scripts=very-happy-cli,node-pty ${target} && very-happy daemon start`);
5136
+ }
5137
+ return warnings;
5138
+ }
5139
+ function gatherInstallLocationFacts(runningPackageDir, env = process.env) {
5140
+ if (process.platform === "win32") return null;
5141
+ const onPath = [];
5142
+ for (const dir of (env.PATH ?? "").split(delimiter)) {
5143
+ if (!dir) continue;
5144
+ try {
5145
+ const candidate = join(dir, "very-happy");
5146
+ if (!statSync(candidate).isFile()) continue;
5147
+ const real = realpathSync(candidate);
5148
+ if (!onPath.includes(real)) onPath.push(real);
5149
+ } catch {
5150
+ }
5151
+ }
5152
+ let npmGlobalPrefix = null;
5153
+ try {
5154
+ const result = spawnSync("npm", ["prefix", "-g"], { encoding: "utf8", timeout: 5e3, env });
5155
+ const out = result.status === 0 ? result.stdout.trim() : "";
5156
+ npmGlobalPrefix = out && isAbsolute(out) && !out.includes("\n") ? out : null;
5157
+ } catch {
5158
+ }
5159
+ return { runningPackageDir, onPath, npmGlobalPrefix };
5160
+ }
5161
+
5107
5162
  function printCliUpdateStatus(state) {
5108
5163
  const installed = configuration.currentCliVersion;
5109
5164
  const running = state?.startedWithCliVersion ?? null;
@@ -5121,6 +5176,10 @@ function printCliUpdateStatus(state) {
5121
5176
  console.log(chalk.yellow(" \u25B3 A newer CLI is available."));
5122
5177
  }
5123
5178
  if (summary.installCommand) console.log(` Update: ${summary.installCommand}`);
5179
+ const facts = gatherInstallLocationFacts(projectPath());
5180
+ for (const warning of facts ? installLocationWarnings(facts, state?.cliUpdate?.recommendedVersion ?? void 0) : []) {
5181
+ console.log(chalk.yellow(` \u26A0 ${warning}`));
5182
+ }
5124
5183
  }
5125
5184
  function getEnvironmentInfo() {
5126
5185
  return shareSafeEnvironmentInfo();
@@ -5313,8 +5372,8 @@ ${typeLabels[type] || type}:`));
5313
5372
  }
5314
5373
  console.log(chalk.gray(" An external claude command is only needed for native terminal/mirror use."));
5315
5374
  try {
5316
- const { resolveAgentHomesForCli } = await import('./agentHome-CKSPsS8d.mjs');
5317
- const { describeAgentHome } = await import('./types-ipzMqciq.mjs').then(function (n) { return n.al; });
5375
+ const { resolveAgentHomesForCli } = await import('./agentHome-Dm-Wjs38.mjs');
5376
+ const { describeAgentHome } = await import('./types-BD542hb1.mjs').then(function (n) { return n.al; });
5318
5377
  const homes = await resolveAgentHomesForCli();
5319
5378
  console.log(chalk.green(`\u2713 Claude config dir: ${describeAgentHome(homes.claudeConfigDir)}`));
5320
5379
  console.log(chalk.green(`\u2713 Codex home: ${describeAgentHome(homes.codexHome)}`));
@@ -7617,8 +7676,8 @@ function serialTask(task) {
7617
7676
  };
7618
7677
  }
7619
7678
 
7620
- function autoUpdateInstallArgs(version) {
7621
- return ["i", "-g", "--allow-scripts=very-happy-cli,node-pty", `very-happy-cli@${version}`];
7679
+ function autoUpdateInstallArgs(version, prefix) {
7680
+ return ["i", "-g", ...prefix ? [`--prefix=${prefix}`] : [], "--allow-scripts=very-happy-cli,node-pty", `very-happy-cli@${version}`];
7622
7681
  }
7623
7682
 
7624
7683
  const processDefaults = {
@@ -7678,7 +7737,34 @@ const runNpmProcess = (args, deps = processDefaults) => new Promise((resolveResu
7678
7737
  child.on("close", (code) => done({ code: timedOut ? null : code, stdout, stderr, terminationConfirmed: !timedOut || treeKilled }));
7679
7738
  });
7680
7739
  const runNpm = (args) => runNpmProcess(args);
7681
- const defaults = { npm: runNpm, fs: { lstat, readlink, unlink, rm, readFile, symlink }, platform: process.platform };
7740
+ const defaults = {
7741
+ npm: runNpm,
7742
+ fs: { lstat, readlink, unlink, rm, readFile, symlink, access: access$1 },
7743
+ platform: process.platform,
7744
+ runningPackageDir: projectPath()
7745
+ };
7746
+ async function runningVersion(deps) {
7747
+ if (!deps.runningPackageDir) return null;
7748
+ try {
7749
+ const manifest = JSON.parse(await deps.fs.readFile(join(deps.runningPackageDir, "package.json"), "utf8"));
7750
+ return manifest?.name === "very-happy-cli" && typeof manifest.version === "string" ? manifest.version : null;
7751
+ } catch {
7752
+ return null;
7753
+ }
7754
+ }
7755
+ async function verifyRunningCopy(code, version, deps) {
7756
+ if (code !== 0 || !deps.runningPackageDir) return code;
7757
+ return await runningVersion(deps) === version ? 0 : { failed: "installed_elsewhere" };
7758
+ }
7759
+ async function writable(path, deps) {
7760
+ if (!deps.fs.access) return true;
7761
+ try {
7762
+ await deps.fs.access(path, constants.W_OK);
7763
+ return true;
7764
+ } catch (error) {
7765
+ return error.code === "ENOENT";
7766
+ }
7767
+ }
7682
7768
  function ownedCliLink(link, target, packageDir) {
7683
7769
  const resolved = resolve(dirname(link), target);
7684
7770
  return resolved.startsWith(join(packageDir, "bin") + sep);
@@ -7686,14 +7772,27 @@ function ownedCliLink(link, target, packageDir) {
7686
7772
  async function installCliSafely(version, deps = defaults) {
7687
7773
  const parsed = parseExactVersion(version);
7688
7774
  if (!parsed) throw new Error("Invalid exact CLI version");
7689
- const args = autoUpdateInstallArgs(parsed.exact);
7690
7775
  if (deps.platform === "win32") {
7691
- const result2 = await deps.npm(args);
7692
- return result2.terminationConfirmed === false ? "blocked" : result2.code;
7776
+ const result2 = await deps.npm(autoUpdateInstallArgs(parsed.exact));
7777
+ return result2.terminationConfirmed === false ? "blocked" : verifyRunningCopy(result2.code, parsed.exact, deps);
7778
+ }
7779
+ let pinnedPrefix;
7780
+ if (deps.runningPackageDir) {
7781
+ const running = globalPrefixForPackage(deps.runningPackageDir);
7782
+ const runningStat = running ? await deps.fs.lstat(deps.runningPackageDir).catch(() => null) : null;
7783
+ if (!running || !runningStat?.isDirectory() || runningStat.isSymbolicLink() || !await runningVersion(deps)) {
7784
+ return { manual: "install_location_unverified" };
7785
+ }
7786
+ for (const path of [dirname(deps.runningPackageDir), deps.runningPackageDir, join(running, "bin")]) {
7787
+ if (!await writable(path, deps)) return { manual: "install_location_not_writable" };
7788
+ }
7789
+ pinnedPrefix = running;
7693
7790
  }
7694
- const rootResult = await deps.npm(["root", "-g"]);
7791
+ const prefixArgs = pinnedPrefix ? [`--prefix=${pinnedPrefix}`] : [];
7792
+ const args = autoUpdateInstallArgs(parsed.exact, pinnedPrefix);
7793
+ const rootResult = await deps.npm(["root", "-g", ...prefixArgs]);
7695
7794
  if (rootResult.terminationConfirmed === false) return "blocked";
7696
- const prefixResult = await deps.npm(["prefix", "-g"]);
7795
+ const prefixResult = await deps.npm(["prefix", "-g", ...prefixArgs]);
7697
7796
  if (prefixResult.terminationConfirmed === false) return "blocked";
7698
7797
  const root = rootResult.stdout.trim();
7699
7798
  const prefix = prefixResult.stdout.trim();
@@ -7702,6 +7801,9 @@ async function installCliSafely(version, deps = defaults) {
7702
7801
  }
7703
7802
  if (resolve(root) !== resolve(prefix, "lib/node_modules")) throw new Error("Unexpected npm root/prefix relationship");
7704
7803
  const packageDir = join(root, "very-happy-cli");
7804
+ if (deps.runningPackageDir && resolve(packageDir) !== resolve(deps.runningPackageDir)) {
7805
+ return { manual: "install_location_unverified" };
7806
+ }
7705
7807
  const packageStat = await deps.fs.lstat(packageDir).catch((error) => {
7706
7808
  if (error.code === "ENOENT") return null;
7707
7809
  throw error;
@@ -7736,7 +7838,7 @@ async function installCliSafely(version, deps = defaults) {
7736
7838
  return "blocked";
7737
7839
  }
7738
7840
  result = first.code;
7739
- if (first.code === 0 || first.code === null) return first.code;
7841
+ if (first.code === 0 || first.code === null) return await verifyRunningCopy(first.code, parsed.exact, deps);
7740
7842
  if (!/\b(?:EEXIST|ENOTEMPTY)\b/.test(first.stderr ?? "")) return first.code;
7741
7843
  const failedStat = await deps.fs.lstat(packageDir).catch((error) => {
7742
7844
  if (error.code === "ENOENT") return null;
@@ -7752,7 +7854,7 @@ async function installCliSafely(version, deps = defaults) {
7752
7854
  safeToRestore = false;
7753
7855
  return "blocked";
7754
7856
  }
7755
- return result;
7857
+ return await verifyRunningCopy(result, parsed.exact, deps);
7756
7858
  } finally {
7757
7859
  if (result !== 0 && safeToRestore) {
7758
7860
  for (const { link, target } of ownLinks) {
@@ -7788,7 +7890,7 @@ function createUpdateController(deps) {
7788
7890
  async function evaluate() {
7789
7891
  if (!policy || running) return;
7790
7892
  const target = manualVersion ?? policy.autoUpdateVersion ?? null;
7791
- if (outcome?.version === target && ["failed", "installed"].includes(outcome.state)) {
7893
+ if (outcome?.version === target && ["failed", "installed", "manual_required"].includes(outcome.state)) {
7792
7894
  const fingerprint = JSON.stringify([policy.checkedAt, outcome.state, outcome.version, outcome.detail, manualVersion]);
7793
7895
  if (fingerprint !== lastPublished) {
7794
7896
  lastPublished = fingerprint;
@@ -7826,6 +7928,11 @@ function createUpdateController(deps) {
7826
7928
  publish("installing", target);
7827
7929
  try {
7828
7930
  const code = await deps.install(target);
7931
+ if (code && typeof code === "object") {
7932
+ if ("manual" in code) publish("manual_required", target, code.manual);
7933
+ else publish("failed", target, code.failed);
7934
+ return;
7935
+ }
7829
7936
  blocked = code === "blocked";
7830
7937
  publish(
7831
7938
  blocked ? "manual_required" : code === 0 ? "installed" : "failed",
@@ -8219,7 +8326,7 @@ class ClaudeAuthService {
8219
8326
  const bin = join(dir, "security");
8220
8327
  try {
8221
8328
  if (!statSync(bin).isFile()) return null;
8222
- accessSync(bin, constants.X_OK);
8329
+ accessSync(bin, constants$1.X_OK);
8223
8330
  return dir;
8224
8331
  } catch {
8225
8332
  return null;
@@ -11433,7 +11540,7 @@ async function retainIntent(path, input) {
11433
11540
  await mkdir(dirname(path), { recursive: true, mode: 448 });
11434
11541
  let file;
11435
11542
  try {
11436
- file = await open$1(path, constants.O_WRONLY | constants.O_CREAT | constants.O_EXCL, 384);
11543
+ file = await open$1(path, constants$1.O_WRONLY | constants$1.O_CREAT | constants$1.O_EXCL, 384);
11437
11544
  } catch (error) {
11438
11545
  if (error.code !== "EEXIST") throw new Error("Cannot retain team connection request");
11439
11546
  }
@@ -11446,7 +11553,7 @@ async function retainIntent(path, input) {
11446
11553
  }
11447
11554
  return { fresh: true };
11448
11555
  }
11449
- const existing = await open$1(path, constants.O_RDONLY | (constants.O_NOFOLLOW ?? 0));
11556
+ const existing = await open$1(path, constants$1.O_RDONLY | (constants$1.O_NOFOLLOW ?? 0));
11450
11557
  try {
11451
11558
  const stat = await existing.stat();
11452
11559
  if (!stat.isFile() || process.platform !== "win32" && (stat.mode & 63) !== 0 || typeof process.getuid === "function" && stat.uid !== process.getuid()) throw new Error("Unsafe team connection receipt");
@@ -12470,7 +12577,7 @@ function registerSideQuestionHandler(rpc, deps) {
12470
12577
  const retainMs = deps.retainMs ?? SIDE_QUESTION_RETAIN_MS;
12471
12578
  const maxRunMs = deps.maxRunMs ?? SIDE_QUESTION_MAX_RUN_MS;
12472
12579
  const fork = deps.run ?? (async (input) => {
12473
- const { query } = await import('./index-BPCXUrEe.mjs');
12580
+ const { query } = await import('./index-BsYH1sjV.mjs');
12474
12581
  return runSideQuestion(query, input);
12475
12582
  });
12476
12583
  const run = async (input, live) => {
@@ -17758,7 +17865,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17758
17865
  return;
17759
17866
  } else if (subcommand === "install-terminal-hooks") {
17760
17867
  try {
17761
- const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-COqkLz6f.mjs');
17868
+ const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-BF_tmw9V.mjs');
17762
17869
  const command = parseTerminalHooksArgs(args.slice(1));
17763
17870
  if (command.action === "help") {
17764
17871
  console.log(TERMINAL_HOOKS_HELP);
@@ -17775,7 +17882,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17775
17882
  }
17776
17883
  } else if (subcommand === "agent-home") {
17777
17884
  try {
17778
- const { parseAgentHomeArgs, runAgentHomeCommand } = await import('./agentHome-CKSPsS8d.mjs');
17885
+ const { parseAgentHomeArgs, runAgentHomeCommand } = await import('./agentHome-Dm-Wjs38.mjs');
17779
17886
  await runAgentHomeCommand(parseAgentHomeArgs(args.slice(1)));
17780
17887
  process.exit(0);
17781
17888
  } catch (error) {
@@ -17784,7 +17891,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17784
17891
  }
17785
17892
  } else if (subcommand === "spawn") {
17786
17893
  try {
17787
- const { handleSpawnCommand } = await import('./spawn-7lLymdT1.mjs');
17894
+ const { handleSpawnCommand } = await import('./spawn-DQuOmUP7.mjs');
17788
17895
  await handleSpawnCommand(args.slice(1));
17789
17896
  } catch (error) {
17790
17897
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -17796,7 +17903,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17796
17903
  return;
17797
17904
  } else if (subcommand === "sessions") {
17798
17905
  try {
17799
- const { handleSessionsCommand } = await import('./sessions-ClBPEtz2.mjs');
17906
+ const { handleSessionsCommand } = await import('./sessions-DoULfKui.mjs');
17800
17907
  await handleSessionsCommand(args.slice(1));
17801
17908
  } catch (error) {
17802
17909
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -17808,7 +17915,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17808
17915
  return;
17809
17916
  } else if (subcommand === "send") {
17810
17917
  try {
17811
- const { handleSendCommand } = await import('./send-DDD57Cr_.mjs');
17918
+ const { handleSendCommand } = await import('./send-Dv0km8UI.mjs');
17812
17919
  await handleSendCommand(args.slice(1));
17813
17920
  } catch (error) {
17814
17921
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -17914,9 +18021,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17914
18021
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
17915
18022
  const projectId = args[3];
17916
18023
  try {
17917
- const { saveGoogleCloudProjectToConfig } = await import('./config-C8jpk6IA.mjs');
17918
- const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-BXI1Gzvd.mjs').then(function (n) { return n.Y; });
17919
- const { ApiClient: ApiClient2 } = await import('./types-ipzMqciq.mjs').then(function (n) { return n.am; });
18024
+ const { saveGoogleCloudProjectToConfig } = await import('./config-Dhu6LU0h.mjs');
18025
+ const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-FThmm7WR.mjs').then(function (n) { return n.Y; });
18026
+ const { ApiClient: ApiClient2 } = await import('./types-BD542hb1.mjs').then(function (n) { return n.am; });
17920
18027
  let userEmail = void 0;
17921
18028
  try {
17922
18029
  const credentials = await readCredentialsForConfiguredRelay2();
@@ -17947,7 +18054,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17947
18054
  }
17948
18055
  if (geminiSubcommand === "project" && args[2] === "get") {
17949
18056
  try {
17950
- const { readGeminiLocalConfig } = await import('./config-C8jpk6IA.mjs');
18057
+ const { readGeminiLocalConfig } = await import('./config-Dhu6LU0h.mjs');
17951
18058
  const config = readGeminiLocalConfig();
17952
18059
  if (config.googleCloudProject) {
17953
18060
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -17987,7 +18094,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17987
18094
  process.exit(0);
17988
18095
  }
17989
18096
  try {
17990
- const { runGemini } = await import('./runGemini-Cce_pjTs.mjs');
18097
+ const { runGemini } = await import('./runGemini-D5IV1MoF.mjs');
17991
18098
  let startedBy = void 0;
17992
18099
  for (let i = 1; i < args.length; i++) {
17993
18100
  if (args[i] === "--started-by") {
@@ -18010,7 +18117,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18010
18117
  } else if (subcommand === "pi") {
18011
18118
  if (args[1] === "--terminal") {
18012
18119
  try {
18013
- const { runPiTerminal } = await import('./piTerminal-Bczubq2n.mjs');
18120
+ const { runPiTerminal } = await import('./piTerminal-BlE4vbvZ.mjs');
18014
18121
  process.exitCode = await runPiTerminal(args.slice(2));
18015
18122
  } catch (error) {
18016
18123
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -18027,7 +18134,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18027
18134
  }
18028
18135
  };
18029
18136
  try {
18030
- const { runAcp, resolveAcpAgentConfig } = await import('./index-DrVq0CqK.mjs');
18137
+ const { runAcp, resolveAcpAgentConfig } = await import('./index-CzpooENj.mjs');
18031
18138
  const parsed = parsePiRunnerArgs(args.slice(1));
18032
18139
  const resolved = resolveAcpAgentConfig(["pi", ...parsed.passthrough]);
18033
18140
  const { credentials } = await authAndSetupMachineIfNeeded();
@@ -18055,7 +18162,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18055
18162
  return;
18056
18163
  } else if (subcommand === "acp") {
18057
18164
  try {
18058
- const { runAcp, resolveAcpAgentConfig } = await import('./index-DrVq0CqK.mjs');
18165
+ const { runAcp, resolveAcpAgentConfig } = await import('./index-CzpooENj.mjs');
18059
18166
  let startedBy = void 0;
18060
18167
  let verbose = false;
18061
18168
  const acpArgs = [];
@@ -18095,7 +18202,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18095
18202
  return;
18096
18203
  } else if (subcommand === "openclaw") {
18097
18204
  try {
18098
- const { runOpenClaw } = await import('./runOpenClaw-DXP5_chb.mjs');
18205
+ const { runOpenClaw } = await import('./runOpenClaw-CWPXrKMJ.mjs');
18099
18206
  let startedBy = void 0;
18100
18207
  let verbose = false;
18101
18208
  let gatewayUrl;
@@ -18146,7 +18253,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18146
18253
  return;
18147
18254
  } else if (subcommand === "todo") {
18148
18255
  try {
18149
- const { handleTodoCommand } = await import('./todo-jXHGGH89.mjs');
18256
+ const { handleTodoCommand } = await import('./todo-C9IAUf0K.mjs');
18150
18257
  await handleTodoCommand(args.slice(1));
18151
18258
  } catch (error) {
18152
18259
  console.error(JSON.stringify({ error: error instanceof Error ? error.message : "Todo command failed" }));
@@ -18155,7 +18262,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18155
18262
  return;
18156
18263
  } else if (subcommand === "teams") {
18157
18264
  try {
18158
- const { handleTeamsCommand } = await import('./teams-DyBjdXI3.mjs');
18265
+ const { handleTeamsCommand } = await import('./teams-4mhNh5cj.mjs');
18159
18266
  await handleTeamsCommand(args.slice(1));
18160
18267
  } catch (error) {
18161
18268
  console.error(error instanceof Error ? error.message : "Teams command failed");
@@ -18164,7 +18271,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18164
18271
  return;
18165
18272
  } else if (subcommand === "mcp" && (args.length === 1 || args.length === 2 && args[1] === "--terminal-tools")) {
18166
18273
  try {
18167
- const { handleMcpCommand } = await import('./mcp-Dfnoirpi.mjs');
18274
+ const { handleMcpCommand } = await import('./mcp-DzydgXpf.mjs');
18168
18275
  await handleMcpCommand(args[1] === "--terminal-tools");
18169
18276
  } catch (error) {
18170
18277
  process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}