very-happy-cli 0.2.139 → 0.2.140

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 (43) hide show
  1. package/dist/{AcpBackend-ioCPQLt4.cjs → AcpBackend-C0Lq4uoA.cjs} +2 -2
  2. package/dist/{AcpBackend-BwTEBAyP.mjs → AcpBackend-DsSYq8T-.mjs} +2 -2
  3. package/dist/{AcpSessionManager-Bh3KETfz.mjs → AcpSessionManager-BAErE9s0.mjs} +1 -1
  4. package/dist/{AcpSessionManager-o9T6W69-.cjs → AcpSessionManager-DIqByTH7.cjs} +1 -1
  5. package/dist/{agentGuidance-Dxt2uz3R.cjs → agentGuidance-Dl3apItH.cjs} +1 -1
  6. package/dist/{agentGuidance-DRnXdFAY.mjs → agentGuidance-xk3v4_7E.mjs} +1 -1
  7. package/dist/codex/happyMcpStdioBridge.cjs +2 -2
  8. package/dist/codex/happyMcpStdioBridge.mjs +2 -2
  9. package/dist/{config-o9NFsj8x.mjs → config-BVoHul9V.mjs} +4 -4
  10. package/dist/{config-nyMHCx-i.cjs → config-D0-jnCOC.cjs} +4 -4
  11. package/dist/{index-BkmfJyCf.mjs → index-BNydKYvS.mjs} +7 -7
  12. package/dist/{index-CTemcNko.mjs → index-BPnAbcz_.mjs} +4 -4
  13. package/dist/{index-gkFhwPXq.cjs → index-BuQn9kUK.cjs} +4 -4
  14. package/dist/{index-BZr5l8TH.mjs → index-D0IP7gXG.mjs} +42 -21
  15. package/dist/{index-klhxcpC8.cjs → index-DJvzGXVN.cjs} +6 -6
  16. package/dist/{index-C3NtU4Ch.cjs → index-__h-pCTK.cjs} +46 -25
  17. package/dist/index.cjs +4 -4
  18. package/dist/index.mjs +4 -4
  19. package/dist/{installTerminalHooks-8CHTgUC-.mjs → installTerminalHooks-D2ice1a-.mjs} +4 -4
  20. package/dist/{installTerminalHooks-DZUBgnFh.cjs → installTerminalHooks-D3jfvbyY.cjs} +4 -4
  21. package/dist/lib.cjs +2 -2
  22. package/dist/lib.mjs +2 -2
  23. package/dist/{limits-C_RGzva6.cjs → limits-Dbip6eVO.cjs} +7 -7
  24. package/dist/{limits-DefXc1TL.mjs → limits-nhD0Wran.mjs} +7 -7
  25. package/dist/{mcp-czNIfD59.cjs → mcp-DeapmTWN.cjs} +4 -4
  26. package/dist/{mcp-8DcunR0J.mjs → mcp-V26C05fN.mjs} +4 -4
  27. package/dist/{runGemini-Dy3y-lD9.cjs → runGemini-D34eCFpz.cjs} +6 -6
  28. package/dist/{runGemini-CDUObQTD.mjs → runGemini-sa5kAgPe.mjs} +6 -6
  29. package/dist/{runOpenClaw-CJusckVM.cjs → runOpenClaw-B8F8D--R.cjs} +5 -5
  30. package/dist/{runOpenClaw-B6KMCsVB.mjs → runOpenClaw-Bdsq8KBa.mjs} +5 -5
  31. package/dist/{send-B4Qo-87h.cjs → send-DP_S3wn0.cjs} +4 -4
  32. package/dist/{send-BT32Jiel.mjs → send-KICC_ACz.mjs} +4 -4
  33. package/dist/{sessions-Dh0Lg-5z.mjs → sessions-C6EvnC4B.mjs} +4 -4
  34. package/dist/{sessions-CN2y0xBl.cjs → sessions-CGBBgVZn.cjs} +4 -4
  35. package/dist/{spawn-jWj3xFhX.cjs → spawn-BhUK0Vt2.cjs} +4 -4
  36. package/dist/{spawn-DFIyobCt.mjs → spawn-C1OqXJNb.mjs} +4 -4
  37. package/dist/{teams-BhFspeAY.cjs → teams-C29nEHFD.cjs} +4 -4
  38. package/dist/{teams-CZ9ICWeB.mjs → teams-Dm5HGpNz.mjs} +4 -4
  39. package/dist/{todo-jL3ttna3.mjs → todo-C-vovA0N.mjs} +3 -3
  40. package/dist/{todo-B0kvqUTQ.cjs → todo-CeJX0z_2.cjs} +3 -3
  41. package/dist/{types-CxGm_YJ-.cjs → types-DCVS050m.cjs} +2 -2
  42. package/dist/{types-CrKeJuyF.mjs → types-thyvQB2a.mjs} +1 -1
  43. package/package.json +7 -7
@@ -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-C_RGzva6.cjs');
7
- var api = require('./types-CxGm_YJ-.cjs');
6
+ var persistence = require('./limits-Dbip6eVO.cjs');
7
+ var api = require('./types-DCVS050m.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,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-DefXc1TL.mjs';
5
- import { j as contentLogMetadata, h as errorLogMetadata, m as delay } from './types-CrKeJuyF.mjs';
4
+ import { l as logger, p as packageJson } from './limits-nhD0Wran.mjs';
5
+ import { j as contentLogMetadata, h as errorLogMetadata, m as delay } from './types-thyvQB2a.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) => {
@@ -1,5 +1,5 @@
1
1
  import { createId } from '@paralleldrive/cuid2';
2
- import { b as streamKeyOf, d as createEnvelope } from './types-CrKeJuyF.mjs';
2
+ import { b as streamKeyOf, d as createEnvelope } from './types-thyvQB2a.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 api = require('./types-CxGm_YJ-.cjs');
4
+ var api = require('./types-DCVS050m.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-C_RGzva6.cjs');
5
+ var persistence = require('./limits-Dbip6eVO.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, g as readSettings, r as readPersistedSessions, d as readCredentialsForConfiguredRelay } from './limits-DefXc1TL.mjs';
3
+ import { n as normalizeHttpEndpoint, c as configuration, g as readSettings, r as readPersistedSessions, d as readCredentialsForConfiguredRelay } from './limits-nhD0Wran.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,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var agentGuidance = require('../agentGuidance-Dxt2uz3R.cjs');
3
+ var agentGuidance = require('../agentGuidance-Dl3apItH.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-C_RGzva6.cjs');
9
+ var persistence = require('../limits-Dbip6eVO.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-DRnXdFAY.mjs';
1
+ import { P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, r as registerTeamsTools } from '../agentGuidance-xk3v4_7E.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-DefXc1TL.mjs';
7
+ import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION } from '../limits-nhD0Wran.mjs';
8
8
  import 'node:crypto';
9
9
  import 'node:fs/promises';
10
10
  import 'node:fs';
@@ -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-DefXc1TL.mjs';
6
- import { g as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-BZr5l8TH.mjs';
5
+ import { l as logger } from './limits-nhD0Wran.mjs';
6
+ import { g as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-D0IP7gXG.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-CrKeJuyF.mjs';
16
+ import './types-thyvQB2a.mjs';
17
17
  import 'axios';
18
18
  import 'node:events';
19
19
  import 'socket.io-client';
@@ -28,7 +28,7 @@ import 'node-pty';
28
28
  import 'node:readline';
29
29
  import '@anthropic-ai/sandbox-runtime';
30
30
  import 'expo-server-sdk';
31
- import './agentGuidance-DRnXdFAY.mjs';
31
+ import './agentGuidance-xk3v4_7E.mjs';
32
32
  import 'ink';
33
33
  import 'react';
34
34
  import '@anthropic-ai/claude-agent-sdk';
@@ -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-C_RGzva6.cjs');
8
- var index = require('./index-C3NtU4Ch.cjs');
7
+ var persistence = require('./limits-Dbip6eVO.cjs');
8
+ var index = require('./index-__h-pCTK.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-CxGm_YJ-.cjs');
18
+ require('./types-DCVS050m.cjs');
19
19
  require('axios');
20
20
  require('node:events');
21
21
  require('socket.io-client');
@@ -30,7 +30,7 @@ require('node-pty');
30
30
  require('node:readline');
31
31
  require('@anthropic-ai/sandbox-runtime');
32
32
  require('expo-server-sdk');
33
- require('./agentGuidance-Dxt2uz3R.cjs');
33
+ require('./agentGuidance-Dl3apItH.cjs');
34
34
  require('ink');
35
35
  require('react');
36
36
  require('@anthropic-ai/claude-agent-sdk');
@@ -1,9 +1,9 @@
1
- import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-BwTEBAyP.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-BwTEBAyP.mjs';
3
- import { c as configuration, g as readSettings, i as encodeBase64, l as logger } from './limits-DefXc1TL.mjs';
4
- import { A as AcpSessionManager } from './AcpSessionManager-Bh3KETfz.mjs';
5
- import { k as connectionState, A as ApiClient, n as notifyDaemonSessionStarted, p as projectPath, l as BUILTIN_TODO_DISCOVERY } from './types-CrKeJuyF.mjs';
6
- import { P as PI_TEAMS_EXTENSION, j as initialMachineMetadata, k as createSessionMetadata, m as setupOfflineReconnection, p as StreamRelay, n as MessageQueue2, u as hashObject, v as startHappyServer, x as registerAgentAttachmentDownloads, y as TitleGenerator, o as registerKillSessionHandler, C as CLAUDE_ATTACHMENT_KINDS, z as stageClaudeAttachments, B as appendStagedAttachmentsToPrompt, E as BasePermissionHandler, F as writeSessionModeFile, H as normalizeAcpPermissionMode, I as removeSessionModeFile } from './index-BZr5l8TH.mjs';
1
+ import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-DsSYq8T-.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-DsSYq8T-.mjs';
3
+ import { c as configuration, g as readSettings, i as encodeBase64, l as logger } from './limits-nhD0Wran.mjs';
4
+ import { A as AcpSessionManager } from './AcpSessionManager-BAErE9s0.mjs';
5
+ import { k as connectionState, A as ApiClient, n as notifyDaemonSessionStarted, p as projectPath, l as BUILTIN_TODO_DISCOVERY } from './types-thyvQB2a.mjs';
6
+ import { P as PI_TEAMS_EXTENSION, j as initialMachineMetadata, k as createSessionMetadata, m as setupOfflineReconnection, p as StreamRelay, n as MessageQueue2, u as hashObject, v as startHappyServer, x as registerAgentAttachmentDownloads, y as TitleGenerator, o as registerKillSessionHandler, C as CLAUDE_ATTACHMENT_KINDS, z as stageClaudeAttachments, B as appendStagedAttachmentsToPrompt, E as BasePermissionHandler, F as writeSessionModeFile, H as normalizeAcpPermissionMode, I as removeSessionModeFile } from './index-D0IP7gXG.mjs';
7
7
  import { mkdir, chmod, writeFile, rename } from 'node:fs/promises';
8
8
  import { randomUUID } from 'node:crypto';
9
9
  import { join } from 'node:path';
@@ -32,7 +32,7 @@ import 'fs';
32
32
  import 'node:readline';
33
33
  import '@anthropic-ai/sandbox-runtime';
34
34
  import 'expo-server-sdk';
35
- import './agentGuidance-DRnXdFAY.mjs';
35
+ import './agentGuidance-xk3v4_7E.mjs';
36
36
  import 'ink';
37
37
  import 'react';
38
38
  import '@anthropic-ai/claude-agent-sdk';
@@ -1,11 +1,11 @@
1
- import { q as query } from './index-BZr5l8TH.mjs';
1
+ import { q as query } from './index-D0IP7gXG.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-CrKeJuyF.mjs';
6
+ import './types-thyvQB2a.mjs';
7
7
  import 'axios';
8
- import './limits-DefXc1TL.mjs';
8
+ import './limits-nhD0Wran.mjs';
9
9
  import 'node:fs/promises';
10
10
  import 'node:fs';
11
11
  import 'node:path';
@@ -29,7 +29,7 @@ import 'fs';
29
29
  import 'node:readline';
30
30
  import '@anthropic-ai/sandbox-runtime';
31
31
  import 'expo-server-sdk';
32
- import './agentGuidance-DRnXdFAY.mjs';
32
+ import './agentGuidance-xk3v4_7E.mjs';
33
33
  import 'ink';
34
34
  import 'react';
35
35
  import 'ps-list';
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-C3NtU4Ch.cjs');
3
+ var index = require('./index-__h-pCTK.cjs');
4
4
  var claudeAgentSdk = require('@anthropic-ai/claude-agent-sdk');
5
5
  require('chalk');
6
6
  require('node:os');
7
7
  require('node:crypto');
8
- require('./types-CxGm_YJ-.cjs');
8
+ require('./types-DCVS050m.cjs');
9
9
  require('axios');
10
- require('./limits-C_RGzva6.cjs');
10
+ require('./limits-Dbip6eVO.cjs');
11
11
  require('node:fs/promises');
12
12
  require('node:fs');
13
13
  require('node:path');
@@ -31,7 +31,7 @@ require('fs');
31
31
  require('node:readline');
32
32
  require('@anthropic-ai/sandbox-runtime');
33
33
  require('expo-server-sdk');
34
- require('./agentGuidance-Dxt2uz3R.cjs');
34
+ require('./agentGuidance-Dl3apItH.cjs');
35
35
  require('ink');
36
36
  require('react');
37
37
  require('ps-list');
@@ -1,13 +1,13 @@
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 { o as notifyDaemonSessionEvent, q as getProjectPath, l as BUILTIN_TODO_DISCOVERY, p as projectPath, r as initializeSandbox, w as wrapCommand, j as contentLogMetadata, I as InvalidateSync, R as RawJSONLinesSchema, m as delay, t as AsyncLock, S as STREAM_DELTA_MAX_CHARS, M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES, u as notifyDaemonClaudeAuthFailed, v as commandOnPath, c as checkIfDaemonRunningAndCleanupStaleState, x as deriveLocalCliUpdateSummary, y as AGENT_VERSION_SOURCES, z as isClaudeSessionId, C as getLocalHappyAgentCredentialPath, D as readLocalHappyAgentCredentials, E as parseExactVersion, F as compareExactVersions, G as extractCompleteLines, H as decideBackfill, J as parseTerminalHookPayload, K as tmuxArgs, L as scrubTmuxClientEnv, N as decideMirrorBinding, O as MIRROR_BACKFILL_LINES_DEFAULT, P as mirrorLineKey, Q as mirrorLocalId, T as listDaemonSessions, U as stopDaemonSession, V as detectCLIAvailability, W as detectResumeSupport, X as isDaemonRunningCurrentlyInstalledHappyVersion, Y as stopDaemon, Z as TurnActivityTracker, _ as summarizeSpawnSessionForLog, $ as shellescape, A as ApiClient, a0 as fetchCliUpdateState, a1 as resolveCliUpdateCheckInterval, a2 as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS, a3 as cleanupDaemonState, i as isValidSessionId, s as spawnDaemonSession, a4 as listVhTerminals, a5 as isValidTerminalId, a6 as readVhTerminal, a7 as sendToVhTerminal, a8 as ContextUsageSchema, a9 as TITLE_PROMPT_PREFIX, aa as BOARD_ANALYZER_PROMPT_PREFIX, k as connectionState, ab as startOfflineReconnection, n as notifyDaemonSessionStarted, d as createEnvelope, ac as CodexAppServerClient } from './types-CrKeJuyF.mjs';
5
- import { l as logger, D as ensurePrivateDirectory, E as hardenPrivateFile, c as configuration, p as packageJson, g as readSettings, F as readCredentials, u as credentialRelayProblem, o as readDaemonState, i as encodeBase64, G as readSettingsOutcome, H as updateSettings, I as encodeBase64Url, m as decodeBase64, J as writeCredentialsLegacy, K as writeCredentialsDataKey, d as readCredentialsForConfiguredRelay, j as encrypt, r as readPersistedSessions, w as writePrivateFileSync, L as decryptWithDataKey, M as decryptLegacy, N as persistSession, k as decrypt, f as ensurePrivateDirectorySync, O as acquireDaemonLock, P as deletePersistedSessions, Q as writeDaemonState, R as writeSettings, S as releaseDaemonLock, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, e as CLIPBOARD_MAX_BYTES, T as clearCredentials, U as clearMachineId, V as SandboxConfigSchema, W as getLatestDaemonLog } from './limits-DefXc1TL.mjs';
4
+ import { o as notifyDaemonSessionEvent, q as getProjectPath, l as BUILTIN_TODO_DISCOVERY, p as projectPath, r as initializeSandbox, w as wrapCommand, j as contentLogMetadata, I as InvalidateSync, R as RawJSONLinesSchema, m as delay, t as AsyncLock, S as STREAM_DELTA_MAX_CHARS, M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES, u as notifyDaemonClaudeAuthFailed, v as commandOnPath, c as checkIfDaemonRunningAndCleanupStaleState, x as deriveLocalCliUpdateSummary, y as AGENT_VERSION_SOURCES, z as isClaudeSessionId, C as getLocalHappyAgentCredentialPath, D as readLocalHappyAgentCredentials, E as parseExactVersion, F as compareExactVersions, G as extractCompleteLines, H as decideBackfill, J as parseTerminalHookPayload, K as tmuxArgs, L as scrubTmuxClientEnv, N as decideMirrorBinding, O as MIRROR_BACKFILL_LINES_DEFAULT, P as mirrorLineKey, Q as mirrorLocalId, T as listDaemonSessions, U as stopDaemonSession, V as detectCLIAvailability, W as detectResumeSupport, X as isDaemonRunningCurrentlyInstalledHappyVersion, Y as stopDaemon, Z as TurnActivityTracker, _ as summarizeSpawnSessionForLog, $ as shellescape, A as ApiClient, a0 as fetchCliUpdateState, a1 as resolveCliUpdateCheckInterval, a2 as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS, a3 as cleanupDaemonState, i as isValidSessionId, s as spawnDaemonSession, a4 as listVhTerminals, a5 as isValidTerminalId, a6 as readVhTerminal, a7 as sendToVhTerminal, a8 as ContextUsageSchema, a9 as TITLE_PROMPT_PREFIX, aa as BOARD_ANALYZER_PROMPT_PREFIX, k as connectionState, ab as startOfflineReconnection, n as notifyDaemonSessionStarted, d as createEnvelope, ac as CodexAppServerClient } from './types-thyvQB2a.mjs';
5
+ import { l as logger, D as ensurePrivateDirectory, E as hardenPrivateFile, c as configuration, p as packageJson, g as readSettings, F as readCredentials, u as credentialRelayProblem, o as readDaemonState, i as encodeBase64, G as readSettingsOutcome, H as updateSettings, I as encodeBase64Url, m as decodeBase64, J as writeCredentialsLegacy, K as writeCredentialsDataKey, d as readCredentialsForConfiguredRelay, j as encrypt, r as readPersistedSessions, w as writePrivateFileSync, L as decryptWithDataKey, M as decryptLegacy, N as persistSession, k as decrypt, f as ensurePrivateDirectorySync, O as acquireDaemonLock, P as deletePersistedSessions, Q as writeDaemonState, R as writeSettings, S as releaseDaemonLock, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, e as CLIPBOARD_MAX_BYTES, T as clearCredentials, U as clearMachineId, V as SandboxConfigSchema, W as getLatestDaemonLog } from './limits-nhD0Wran.mjs';
6
6
  import spawn$1, { spawn } from 'cross-spawn';
7
7
  import path, { join, resolve, basename, isAbsolute, dirname, sep, delimiter, normalize } from 'node:path';
8
8
  import { createInterface } from 'node:readline';
9
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';
10
- 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-DRnXdFAY.mjs';
10
+ 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-xk3v4_7E.mjs';
11
11
  import { readFile, writeFile, rename, unlink, mkdir, symlink, rm, readlink, lstat, stat, open as open$1, appendFile } from 'node:fs/promises';
12
12
  import fs, { watch, access } from 'fs/promises';
13
13
  import { useStdout, useInput, Box, Text, render } from 'ink';
@@ -3696,6 +3696,7 @@ function applyClaudeSdkMetadata(current, update) {
3696
3696
  function createTurnSteeringController() {
3697
3697
  let interrupt = null;
3698
3698
  let steering = false;
3699
+ let interrupting = false;
3699
3700
  return {
3700
3701
  setInterrupt(next) {
3701
3702
  interrupt = next;
@@ -3720,17 +3721,31 @@ function createTurnSteeringController() {
3720
3721
  */
3721
3722
  async interruptTurn() {
3722
3723
  if (!interrupt) return false;
3723
- await interrupt();
3724
- return true;
3724
+ interrupting = true;
3725
+ try {
3726
+ await interrupt();
3727
+ return true;
3728
+ } catch (error) {
3729
+ interrupting = false;
3730
+ throw error;
3731
+ }
3725
3732
  },
3726
3733
  consumeReady() {
3727
3734
  if (!steering) return false;
3728
3735
  steering = false;
3729
3736
  return true;
3730
3737
  },
3738
+ /** The next `result` belongs to a stop-button interrupt: close the
3739
+ * turn as cancelled and say "Aborted by user", not "failed". */
3740
+ consumeInterrupted() {
3741
+ if (!interrupting) return false;
3742
+ interrupting = false;
3743
+ return true;
3744
+ },
3731
3745
  reset() {
3732
3746
  interrupt = null;
3733
3747
  steering = false;
3748
+ interrupting = false;
3734
3749
  }
3735
3750
  };
3736
3751
  }
@@ -3892,6 +3907,7 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
3892
3907
  return;
3893
3908
  }
3894
3909
  logger.debug("[remote]: interrupt did not stop the turn in time; escalating to hard abort");
3910
+ turnSteering.consumeInterrupted();
3895
3911
  }
3896
3912
  await abort();
3897
3913
  }
@@ -4225,6 +4241,11 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
4225
4241
  session.client.closeClaudeSessionTurn("cancelled");
4226
4242
  return;
4227
4243
  }
4244
+ if (turnSteering.consumeInterrupted()) {
4245
+ session.client.closeClaudeSessionTurn("cancelled");
4246
+ session.client.sendSessionEvent({ type: "message", message: "Aborted by user" });
4247
+ return;
4248
+ }
4228
4249
  applyClaudeResultLifecycle(result, {
4229
4250
  closeCompleted: () => session.client.closeClaudeSessionTurn("completed"),
4230
4251
  closeFailed: (error) => session.client.closeClaudeSessionTurn("failed", { error }),
@@ -12284,7 +12305,7 @@ function registerSideQuestionHandler(rpc, deps) {
12284
12305
  const retainMs = deps.retainMs ?? SIDE_QUESTION_RETAIN_MS;
12285
12306
  const maxRunMs = deps.maxRunMs ?? SIDE_QUESTION_MAX_RUN_MS;
12286
12307
  const run = deps.run ?? (async (input) => {
12287
- const { query } = await import('./index-CTemcNko.mjs');
12308
+ const { query } = await import('./index-BPnAbcz_.mjs');
12288
12309
  return runSideQuestion(query, input);
12289
12310
  });
12290
12311
  const slots = /* @__PURE__ */ new Map();
@@ -17520,7 +17541,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17520
17541
  process.exit(0);
17521
17542
  } else if (subcommand === "install-terminal-hooks") {
17522
17543
  try {
17523
- const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-8CHTgUC-.mjs');
17544
+ const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-D2ice1a-.mjs');
17524
17545
  const command = parseTerminalHooksArgs(args.slice(1));
17525
17546
  if (command.action === "help") {
17526
17547
  console.log(TERMINAL_HOOKS_HELP);
@@ -17537,7 +17558,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17537
17558
  }
17538
17559
  } else if (subcommand === "spawn") {
17539
17560
  try {
17540
- const { handleSpawnCommand } = await import('./spawn-DFIyobCt.mjs');
17561
+ const { handleSpawnCommand } = await import('./spawn-C1OqXJNb.mjs');
17541
17562
  await handleSpawnCommand(args.slice(1));
17542
17563
  } catch (error) {
17543
17564
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -17549,7 +17570,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17549
17570
  return;
17550
17571
  } else if (subcommand === "sessions") {
17551
17572
  try {
17552
- const { handleSessionsCommand } = await import('./sessions-Dh0Lg-5z.mjs');
17573
+ const { handleSessionsCommand } = await import('./sessions-C6EvnC4B.mjs');
17553
17574
  await handleSessionsCommand(args.slice(1));
17554
17575
  } catch (error) {
17555
17576
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -17561,7 +17582,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17561
17582
  return;
17562
17583
  } else if (subcommand === "send") {
17563
17584
  try {
17564
- const { handleSendCommand } = await import('./send-BT32Jiel.mjs');
17585
+ const { handleSendCommand } = await import('./send-KICC_ACz.mjs');
17565
17586
  await handleSendCommand(args.slice(1));
17566
17587
  } catch (error) {
17567
17588
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -17667,9 +17688,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17667
17688
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
17668
17689
  const projectId = args[3];
17669
17690
  try {
17670
- const { saveGoogleCloudProjectToConfig } = await import('./config-o9NFsj8x.mjs');
17671
- const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-DefXc1TL.mjs').then(function (n) { return n.X; });
17672
- const { ApiClient: ApiClient2 } = await import('./types-CrKeJuyF.mjs').then(function (n) { return n.ad; });
17691
+ const { saveGoogleCloudProjectToConfig } = await import('./config-BVoHul9V.mjs');
17692
+ const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-nhD0Wran.mjs').then(function (n) { return n.X; });
17693
+ const { ApiClient: ApiClient2 } = await import('./types-thyvQB2a.mjs').then(function (n) { return n.ad; });
17673
17694
  let userEmail = void 0;
17674
17695
  try {
17675
17696
  const credentials = await readCredentialsForConfiguredRelay2();
@@ -17700,7 +17721,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17700
17721
  }
17701
17722
  if (geminiSubcommand === "project" && args[2] === "get") {
17702
17723
  try {
17703
- const { readGeminiLocalConfig } = await import('./config-o9NFsj8x.mjs');
17724
+ const { readGeminiLocalConfig } = await import('./config-BVoHul9V.mjs');
17704
17725
  const config = readGeminiLocalConfig();
17705
17726
  if (config.googleCloudProject) {
17706
17727
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -17740,7 +17761,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17740
17761
  process.exit(0);
17741
17762
  }
17742
17763
  try {
17743
- const { runGemini } = await import('./runGemini-CDUObQTD.mjs');
17764
+ const { runGemini } = await import('./runGemini-sa5kAgPe.mjs');
17744
17765
  let startedBy = void 0;
17745
17766
  for (let i = 1; i < args.length; i++) {
17746
17767
  if (args[i] === "--started-by") {
@@ -17770,7 +17791,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17770
17791
  }
17771
17792
  };
17772
17793
  try {
17773
- const { runAcp, resolveAcpAgentConfig } = await import('./index-BkmfJyCf.mjs');
17794
+ const { runAcp, resolveAcpAgentConfig } = await import('./index-BNydKYvS.mjs');
17774
17795
  const parsed = parsePiRunnerArgs(args.slice(1));
17775
17796
  const resolved = resolveAcpAgentConfig(["pi", ...parsed.passthrough]);
17776
17797
  const { credentials } = await authAndSetupMachineIfNeeded();
@@ -17798,7 +17819,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17798
17819
  return;
17799
17820
  } else if (subcommand === "acp") {
17800
17821
  try {
17801
- const { runAcp, resolveAcpAgentConfig } = await import('./index-BkmfJyCf.mjs');
17822
+ const { runAcp, resolveAcpAgentConfig } = await import('./index-BNydKYvS.mjs');
17802
17823
  let startedBy = void 0;
17803
17824
  let verbose = false;
17804
17825
  const acpArgs = [];
@@ -17838,7 +17859,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17838
17859
  return;
17839
17860
  } else if (subcommand === "openclaw") {
17840
17861
  try {
17841
- const { runOpenClaw } = await import('./runOpenClaw-B6KMCsVB.mjs');
17862
+ const { runOpenClaw } = await import('./runOpenClaw-Bdsq8KBa.mjs');
17842
17863
  let startedBy = void 0;
17843
17864
  let verbose = false;
17844
17865
  let gatewayUrl;
@@ -17889,7 +17910,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17889
17910
  return;
17890
17911
  } else if (subcommand === "todo") {
17891
17912
  try {
17892
- const { handleTodoCommand } = await import('./todo-jL3ttna3.mjs');
17913
+ const { handleTodoCommand } = await import('./todo-C-vovA0N.mjs');
17893
17914
  await handleTodoCommand(args.slice(1));
17894
17915
  } catch (error) {
17895
17916
  console.error(JSON.stringify({ error: error instanceof Error ? error.message : "Todo command failed" }));
@@ -17898,7 +17919,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17898
17919
  return;
17899
17920
  } else if (subcommand === "teams") {
17900
17921
  try {
17901
- const { handleTeamsCommand } = await import('./teams-CZ9ICWeB.mjs');
17922
+ const { handleTeamsCommand } = await import('./teams-Dm5HGpNz.mjs');
17902
17923
  await handleTeamsCommand(args.slice(1));
17903
17924
  } catch (error) {
17904
17925
  console.error(error instanceof Error ? error.message : "Teams command failed");
@@ -17907,7 +17928,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
17907
17928
  return;
17908
17929
  } else if (subcommand === "mcp" && args.length === 1) {
17909
17930
  try {
17910
- const { handleMcpCommand } = await import('./mcp-8DcunR0J.mjs');
17931
+ const { handleMcpCommand } = await import('./mcp-V26C05fN.mjs');
17911
17932
  await handleMcpCommand();
17912
17933
  } catch (error) {
17913
17934
  process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var AcpBackend = require('./AcpBackend-ioCPQLt4.cjs');
4
- var persistence = require('./limits-C_RGzva6.cjs');
5
- var AcpSessionManager = require('./AcpSessionManager-o9T6W69-.cjs');
6
- var api = require('./types-CxGm_YJ-.cjs');
7
- var index = require('./index-C3NtU4Ch.cjs');
3
+ var AcpBackend = require('./AcpBackend-C0Lq4uoA.cjs');
4
+ var persistence = require('./limits-Dbip6eVO.cjs');
5
+ var AcpSessionManager = require('./AcpSessionManager-DIqByTH7.cjs');
6
+ var api = require('./types-DCVS050m.cjs');
7
+ var index = require('./index-__h-pCTK.cjs');
8
8
  var promises = require('node:fs/promises');
9
9
  var node_crypto = require('node:crypto');
10
10
  var path = require('node:path');
@@ -33,7 +33,7 @@ require('fs');
33
33
  require('node:readline');
34
34
  require('@anthropic-ai/sandbox-runtime');
35
35
  require('expo-server-sdk');
36
- require('./agentGuidance-Dxt2uz3R.cjs');
36
+ require('./agentGuidance-Dl3apItH.cjs');
37
37
  require('ink');
38
38
  require('react');
39
39
  require('@anthropic-ai/claude-agent-sdk');