very-happy-cli 0.2.139 → 0.2.141
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.
- package/dist/{AcpBackend-BwTEBAyP.mjs → AcpBackend-CWmjboOm.mjs} +2 -2
- package/dist/{AcpBackend-ioCPQLt4.cjs → AcpBackend-CnWSwaHk.cjs} +2 -2
- package/dist/{AcpSessionManager-Bh3KETfz.mjs → AcpSessionManager-CtXoi6PN.mjs} +1 -1
- package/dist/{AcpSessionManager-o9T6W69-.cjs → AcpSessionManager-Dxt78rPO.cjs} +1 -1
- package/dist/{agentGuidance-Dxt2uz3R.cjs → agentGuidance-B9ENxSaS.cjs} +1 -1
- package/dist/{agentGuidance-DRnXdFAY.mjs → agentGuidance-Do7cQka3.mjs} +1 -1
- package/dist/codex/happyMcpStdioBridge.cjs +2 -2
- package/dist/codex/happyMcpStdioBridge.mjs +2 -2
- package/dist/{config-o9NFsj8x.mjs → config-DY57frJF.mjs} +4 -4
- package/dist/{config-nyMHCx-i.cjs → config-Dn7nAHcA.cjs} +4 -4
- package/dist/{index-klhxcpC8.cjs → index-3STVDtNO.cjs} +6 -6
- package/dist/{index-gkFhwPXq.cjs → index-BSVgut_Y.cjs} +4 -4
- package/dist/{index-BZr5l8TH.mjs → index-C55sW8E9.mjs} +60 -22
- package/dist/{index-C3NtU4Ch.cjs → index-ChWePQEd.cjs} +64 -26
- package/dist/{index-CTemcNko.mjs → index-DhfgAB8K.mjs} +4 -4
- package/dist/{index-BkmfJyCf.mjs → index-Dz6FgNFg.mjs} +7 -7
- package/dist/index.cjs +4 -4
- package/dist/index.mjs +4 -4
- package/dist/{installTerminalHooks-DZUBgnFh.cjs → installTerminalHooks--jkP17uE.cjs} +4 -4
- package/dist/{installTerminalHooks-8CHTgUC-.mjs → installTerminalHooks-zmtIrf3E.mjs} +4 -4
- package/dist/lib.cjs +2 -2
- package/dist/lib.mjs +2 -2
- package/dist/{limits-DefXc1TL.mjs → limits-DT5Yk_UH.mjs} +7 -7
- package/dist/{limits-C_RGzva6.cjs → limits-DbLWXlJm.cjs} +7 -7
- package/dist/{mcp-8DcunR0J.mjs → mcp-Bzy-X9kI.mjs} +4 -4
- package/dist/{mcp-czNIfD59.cjs → mcp-kE0n1dBF.cjs} +4 -4
- package/dist/{runGemini-CDUObQTD.mjs → runGemini-BmdhYEzM.mjs} +6 -6
- package/dist/{runGemini-Dy3y-lD9.cjs → runGemini-CxUz95A1.cjs} +6 -6
- package/dist/{runOpenClaw-B6KMCsVB.mjs → runOpenClaw-CYpO3Vv8.mjs} +5 -5
- package/dist/{runOpenClaw-CJusckVM.cjs → runOpenClaw-RLIFJx61.cjs} +5 -5
- package/dist/{send-B4Qo-87h.cjs → send-BGcCrMUT.cjs} +4 -4
- package/dist/{send-BT32Jiel.mjs → send-DT04hV8o.mjs} +4 -4
- package/dist/{sessions-Dh0Lg-5z.mjs → sessions-DDWTq2AG.mjs} +4 -4
- package/dist/{sessions-CN2y0xBl.cjs → sessions-Jt9lrcrG.cjs} +4 -4
- package/dist/{spawn-DFIyobCt.mjs → spawn-Ca0A70dX.mjs} +4 -4
- package/dist/{spawn-jWj3xFhX.cjs → spawn-CdZgvthE.cjs} +4 -4
- package/dist/{teams-CZ9ICWeB.mjs → teams-CzK1zg0m.mjs} +4 -4
- package/dist/{teams-BhFspeAY.cjs → teams-DfVwVZ4x.cjs} +4 -4
- package/dist/{todo-jL3ttna3.mjs → todo-4WhOom8k.mjs} +3 -3
- package/dist/{todo-B0kvqUTQ.cjs → todo-D9nFaYpQ.cjs} +3 -3
- package/dist/{types-CxGm_YJ-.cjs → types-Bk3W89Z3.cjs} +2 -2
- package/dist/{types-CrKeJuyF.mjs → types-CLosaeZT.mjs} +1 -1
- 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-
|
|
5
|
-
import { j as contentLogMetadata, h as errorLogMetadata, m as delay } from './types-
|
|
4
|
+
import { l as logger, p as packageJson } from './limits-DT5Yk_UH.mjs';
|
|
5
|
+
import { j as contentLogMetadata, h as errorLogMetadata, m as delay } from './types-CLosaeZT.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-
|
|
7
|
-
var api = require('./types-
|
|
6
|
+
var persistence = require('./limits-DbLWXlJm.cjs');
|
|
7
|
+
var api = require('./types-Bk3W89Z3.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 { b as streamKeyOf, d as createEnvelope } from './types-
|
|
2
|
+
import { b as streamKeyOf, d as createEnvelope } from './types-CLosaeZT.mjs';
|
|
3
3
|
|
|
4
4
|
function turnOptions(turnId, time) {
|
|
5
5
|
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-
|
|
5
|
+
var persistence = require('./limits-DbLWXlJm.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-
|
|
3
|
+
import { n as normalizeHttpEndpoint, c as configuration, g as readSettings, r as readPersistedSessions, d as readCredentialsForConfiguredRelay } from './limits-DT5Yk_UH.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-
|
|
3
|
+
var agentGuidance = require('../agentGuidance-B9ENxSaS.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-
|
|
9
|
+
var persistence = require('../limits-DbLWXlJm.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-
|
|
1
|
+
import { P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, r as registerTeamsTools } from '../agentGuidance-Do7cQka3.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-
|
|
7
|
+
import { C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION } from '../limits-DT5Yk_UH.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-
|
|
6
|
-
import { g as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-
|
|
5
|
+
import { l as logger } from './limits-DT5Yk_UH.mjs';
|
|
6
|
+
import { g as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-C55sW8E9.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-
|
|
16
|
+
import './types-CLosaeZT.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-
|
|
31
|
+
import './agentGuidance-Do7cQka3.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-
|
|
8
|
-
var index = require('./index-
|
|
7
|
+
var persistence = require('./limits-DbLWXlJm.cjs');
|
|
8
|
+
var index = require('./index-ChWePQEd.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-
|
|
18
|
+
require('./types-Bk3W89Z3.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-
|
|
33
|
+
require('./agentGuidance-B9ENxSaS.cjs');
|
|
34
34
|
require('ink');
|
|
35
35
|
require('react');
|
|
36
36
|
require('@anthropic-ai/claude-agent-sdk');
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var AcpBackend = require('./AcpBackend-
|
|
4
|
-
var persistence = require('./limits-
|
|
5
|
-
var AcpSessionManager = require('./AcpSessionManager-
|
|
6
|
-
var api = require('./types-
|
|
7
|
-
var index = require('./index-
|
|
3
|
+
var AcpBackend = require('./AcpBackend-CnWSwaHk.cjs');
|
|
4
|
+
var persistence = require('./limits-DbLWXlJm.cjs');
|
|
5
|
+
var AcpSessionManager = require('./AcpSessionManager-Dxt78rPO.cjs');
|
|
6
|
+
var api = require('./types-Bk3W89Z3.cjs');
|
|
7
|
+
var index = require('./index-ChWePQEd.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-
|
|
36
|
+
require('./agentGuidance-B9ENxSaS.cjs');
|
|
37
37
|
require('ink');
|
|
38
38
|
require('react');
|
|
39
39
|
require('@anthropic-ai/claude-agent-sdk');
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-ChWePQEd.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-
|
|
8
|
+
require('./types-Bk3W89Z3.cjs');
|
|
9
9
|
require('axios');
|
|
10
|
-
require('./limits-
|
|
10
|
+
require('./limits-DbLWXlJm.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-
|
|
34
|
+
require('./agentGuidance-B9ENxSaS.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-
|
|
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-
|
|
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-CLosaeZT.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-DT5Yk_UH.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-
|
|
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-Do7cQka3.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';
|
|
@@ -1282,7 +1282,21 @@ function createRuntimeControls(isThinking) {
|
|
|
1282
1282
|
});
|
|
1283
1283
|
return { operationId: op.id };
|
|
1284
1284
|
}
|
|
1285
|
-
|
|
1285
|
+
async function stopRunningTasks() {
|
|
1286
|
+
const q = query, runGeneration = generation;
|
|
1287
|
+
if (!q || !q.canControl()) return [];
|
|
1288
|
+
const running = [...tasks.values()].filter((task) => task.status === "running" && text(task.id)).map((task) => String(task.id)).slice(0, 20);
|
|
1289
|
+
const stopped = [];
|
|
1290
|
+
await Promise.all(running.map(async (id) => {
|
|
1291
|
+
try {
|
|
1292
|
+
await q.stopTask(id);
|
|
1293
|
+
if (query === q && generation === runGeneration) stopped.push(id);
|
|
1294
|
+
} catch {
|
|
1295
|
+
}
|
|
1296
|
+
}));
|
|
1297
|
+
return stopped;
|
|
1298
|
+
}
|
|
1299
|
+
return { setQuery, observe, request, stopRunningTasks };
|
|
1286
1300
|
}
|
|
1287
1301
|
|
|
1288
1302
|
class MessageBuffer {
|
|
@@ -3696,6 +3710,7 @@ function applyClaudeSdkMetadata(current, update) {
|
|
|
3696
3710
|
function createTurnSteeringController() {
|
|
3697
3711
|
let interrupt = null;
|
|
3698
3712
|
let steering = false;
|
|
3713
|
+
let interrupting = false;
|
|
3699
3714
|
return {
|
|
3700
3715
|
setInterrupt(next) {
|
|
3701
3716
|
interrupt = next;
|
|
@@ -3720,17 +3735,31 @@ function createTurnSteeringController() {
|
|
|
3720
3735
|
*/
|
|
3721
3736
|
async interruptTurn() {
|
|
3722
3737
|
if (!interrupt) return false;
|
|
3723
|
-
|
|
3724
|
-
|
|
3738
|
+
interrupting = true;
|
|
3739
|
+
try {
|
|
3740
|
+
await interrupt();
|
|
3741
|
+
return true;
|
|
3742
|
+
} catch (error) {
|
|
3743
|
+
interrupting = false;
|
|
3744
|
+
throw error;
|
|
3745
|
+
}
|
|
3725
3746
|
},
|
|
3726
3747
|
consumeReady() {
|
|
3727
3748
|
if (!steering) return false;
|
|
3728
3749
|
steering = false;
|
|
3729
3750
|
return true;
|
|
3730
3751
|
},
|
|
3752
|
+
/** The next `result` belongs to a stop-button interrupt: close the
|
|
3753
|
+
* turn as cancelled and say "Aborted by user", not "failed". */
|
|
3754
|
+
consumeInterrupted() {
|
|
3755
|
+
if (!interrupting) return false;
|
|
3756
|
+
interrupting = false;
|
|
3757
|
+
return true;
|
|
3758
|
+
},
|
|
3731
3759
|
reset() {
|
|
3732
3760
|
interrupt = null;
|
|
3733
3761
|
steering = false;
|
|
3762
|
+
interrupting = false;
|
|
3734
3763
|
}
|
|
3735
3764
|
};
|
|
3736
3765
|
}
|
|
@@ -3882,6 +3911,9 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
|
|
|
3882
3911
|
logger.debug("[remote]: doAbort");
|
|
3883
3912
|
session.markAborting();
|
|
3884
3913
|
session.onAbort();
|
|
3914
|
+
void runtimeControls.stopRunningTasks().then((ids) => {
|
|
3915
|
+
if (ids.length > 0) logger.debug(`[remote]: stopped ${ids.length} background task(s) on abort: ${ids.join(", ")}`);
|
|
3916
|
+
}).catch((error) => logger.debug("[remote]: stopping background tasks on abort failed", error));
|
|
3885
3917
|
if (session.thinking) {
|
|
3886
3918
|
const interrupted = await turnSteering.interruptTurn().catch((e) => {
|
|
3887
3919
|
logger.debug("[remote]: interruptTurn threw, falling back to hard abort", e);
|
|
@@ -3892,6 +3924,7 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
|
|
|
3892
3924
|
return;
|
|
3893
3925
|
}
|
|
3894
3926
|
logger.debug("[remote]: interrupt did not stop the turn in time; escalating to hard abort");
|
|
3927
|
+
turnSteering.consumeInterrupted();
|
|
3895
3928
|
}
|
|
3896
3929
|
await abort();
|
|
3897
3930
|
}
|
|
@@ -4225,6 +4258,11 @@ async function claudeRemoteLauncher(session, onPermissionModeChange, onEffective
|
|
|
4225
4258
|
session.client.closeClaudeSessionTurn("cancelled");
|
|
4226
4259
|
return;
|
|
4227
4260
|
}
|
|
4261
|
+
if (turnSteering.consumeInterrupted()) {
|
|
4262
|
+
session.client.closeClaudeSessionTurn("cancelled");
|
|
4263
|
+
session.client.sendSessionEvent({ type: "message", message: "Aborted by user" });
|
|
4264
|
+
return;
|
|
4265
|
+
}
|
|
4228
4266
|
applyClaudeResultLifecycle(result, {
|
|
4229
4267
|
closeCompleted: () => session.client.closeClaudeSessionTurn("completed"),
|
|
4230
4268
|
closeFailed: (error) => session.client.closeClaudeSessionTurn("failed", { error }),
|
|
@@ -12284,7 +12322,7 @@ function registerSideQuestionHandler(rpc, deps) {
|
|
|
12284
12322
|
const retainMs = deps.retainMs ?? SIDE_QUESTION_RETAIN_MS;
|
|
12285
12323
|
const maxRunMs = deps.maxRunMs ?? SIDE_QUESTION_MAX_RUN_MS;
|
|
12286
12324
|
const run = deps.run ?? (async (input) => {
|
|
12287
|
-
const { query } = await import('./index-
|
|
12325
|
+
const { query } = await import('./index-DhfgAB8K.mjs');
|
|
12288
12326
|
return runSideQuestion(query, input);
|
|
12289
12327
|
});
|
|
12290
12328
|
const slots = /* @__PURE__ */ new Map();
|
|
@@ -17520,7 +17558,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17520
17558
|
process.exit(0);
|
|
17521
17559
|
} else if (subcommand === "install-terminal-hooks") {
|
|
17522
17560
|
try {
|
|
17523
|
-
const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-
|
|
17561
|
+
const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-zmtIrf3E.mjs');
|
|
17524
17562
|
const command = parseTerminalHooksArgs(args.slice(1));
|
|
17525
17563
|
if (command.action === "help") {
|
|
17526
17564
|
console.log(TERMINAL_HOOKS_HELP);
|
|
@@ -17537,7 +17575,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17537
17575
|
}
|
|
17538
17576
|
} else if (subcommand === "spawn") {
|
|
17539
17577
|
try {
|
|
17540
|
-
const { handleSpawnCommand } = await import('./spawn-
|
|
17578
|
+
const { handleSpawnCommand } = await import('./spawn-Ca0A70dX.mjs');
|
|
17541
17579
|
await handleSpawnCommand(args.slice(1));
|
|
17542
17580
|
} catch (error) {
|
|
17543
17581
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -17549,7 +17587,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17549
17587
|
return;
|
|
17550
17588
|
} else if (subcommand === "sessions") {
|
|
17551
17589
|
try {
|
|
17552
|
-
const { handleSessionsCommand } = await import('./sessions-
|
|
17590
|
+
const { handleSessionsCommand } = await import('./sessions-DDWTq2AG.mjs');
|
|
17553
17591
|
await handleSessionsCommand(args.slice(1));
|
|
17554
17592
|
} catch (error) {
|
|
17555
17593
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -17561,7 +17599,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17561
17599
|
return;
|
|
17562
17600
|
} else if (subcommand === "send") {
|
|
17563
17601
|
try {
|
|
17564
|
-
const { handleSendCommand } = await import('./send-
|
|
17602
|
+
const { handleSendCommand } = await import('./send-DT04hV8o.mjs');
|
|
17565
17603
|
await handleSendCommand(args.slice(1));
|
|
17566
17604
|
} catch (error) {
|
|
17567
17605
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -17667,9 +17705,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17667
17705
|
if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
|
|
17668
17706
|
const projectId = args[3];
|
|
17669
17707
|
try {
|
|
17670
|
-
const { saveGoogleCloudProjectToConfig } = await import('./config-
|
|
17671
|
-
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-
|
|
17672
|
-
const { ApiClient: ApiClient2 } = await import('./types-
|
|
17708
|
+
const { saveGoogleCloudProjectToConfig } = await import('./config-DY57frJF.mjs');
|
|
17709
|
+
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-DT5Yk_UH.mjs').then(function (n) { return n.X; });
|
|
17710
|
+
const { ApiClient: ApiClient2 } = await import('./types-CLosaeZT.mjs').then(function (n) { return n.ad; });
|
|
17673
17711
|
let userEmail = void 0;
|
|
17674
17712
|
try {
|
|
17675
17713
|
const credentials = await readCredentialsForConfiguredRelay2();
|
|
@@ -17700,7 +17738,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17700
17738
|
}
|
|
17701
17739
|
if (geminiSubcommand === "project" && args[2] === "get") {
|
|
17702
17740
|
try {
|
|
17703
|
-
const { readGeminiLocalConfig } = await import('./config-
|
|
17741
|
+
const { readGeminiLocalConfig } = await import('./config-DY57frJF.mjs');
|
|
17704
17742
|
const config = readGeminiLocalConfig();
|
|
17705
17743
|
if (config.googleCloudProject) {
|
|
17706
17744
|
console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
|
|
@@ -17740,7 +17778,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17740
17778
|
process.exit(0);
|
|
17741
17779
|
}
|
|
17742
17780
|
try {
|
|
17743
|
-
const { runGemini } = await import('./runGemini-
|
|
17781
|
+
const { runGemini } = await import('./runGemini-BmdhYEzM.mjs');
|
|
17744
17782
|
let startedBy = void 0;
|
|
17745
17783
|
for (let i = 1; i < args.length; i++) {
|
|
17746
17784
|
if (args[i] === "--started-by") {
|
|
@@ -17770,7 +17808,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17770
17808
|
}
|
|
17771
17809
|
};
|
|
17772
17810
|
try {
|
|
17773
|
-
const { runAcp, resolveAcpAgentConfig } = await import('./index-
|
|
17811
|
+
const { runAcp, resolveAcpAgentConfig } = await import('./index-Dz6FgNFg.mjs');
|
|
17774
17812
|
const parsed = parsePiRunnerArgs(args.slice(1));
|
|
17775
17813
|
const resolved = resolveAcpAgentConfig(["pi", ...parsed.passthrough]);
|
|
17776
17814
|
const { credentials } = await authAndSetupMachineIfNeeded();
|
|
@@ -17798,7 +17836,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17798
17836
|
return;
|
|
17799
17837
|
} else if (subcommand === "acp") {
|
|
17800
17838
|
try {
|
|
17801
|
-
const { runAcp, resolveAcpAgentConfig } = await import('./index-
|
|
17839
|
+
const { runAcp, resolveAcpAgentConfig } = await import('./index-Dz6FgNFg.mjs');
|
|
17802
17840
|
let startedBy = void 0;
|
|
17803
17841
|
let verbose = false;
|
|
17804
17842
|
const acpArgs = [];
|
|
@@ -17838,7 +17876,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17838
17876
|
return;
|
|
17839
17877
|
} else if (subcommand === "openclaw") {
|
|
17840
17878
|
try {
|
|
17841
|
-
const { runOpenClaw } = await import('./runOpenClaw-
|
|
17879
|
+
const { runOpenClaw } = await import('./runOpenClaw-CYpO3Vv8.mjs');
|
|
17842
17880
|
let startedBy = void 0;
|
|
17843
17881
|
let verbose = false;
|
|
17844
17882
|
let gatewayUrl;
|
|
@@ -17889,7 +17927,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17889
17927
|
return;
|
|
17890
17928
|
} else if (subcommand === "todo") {
|
|
17891
17929
|
try {
|
|
17892
|
-
const { handleTodoCommand } = await import('./todo-
|
|
17930
|
+
const { handleTodoCommand } = await import('./todo-4WhOom8k.mjs');
|
|
17893
17931
|
await handleTodoCommand(args.slice(1));
|
|
17894
17932
|
} catch (error) {
|
|
17895
17933
|
console.error(JSON.stringify({ error: error instanceof Error ? error.message : "Todo command failed" }));
|
|
@@ -17898,7 +17936,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17898
17936
|
return;
|
|
17899
17937
|
} else if (subcommand === "teams") {
|
|
17900
17938
|
try {
|
|
17901
|
-
const { handleTeamsCommand } = await import('./teams-
|
|
17939
|
+
const { handleTeamsCommand } = await import('./teams-CzK1zg0m.mjs');
|
|
17902
17940
|
await handleTeamsCommand(args.slice(1));
|
|
17903
17941
|
} catch (error) {
|
|
17904
17942
|
console.error(error instanceof Error ? error.message : "Teams command failed");
|
|
@@ -17907,7 +17945,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17907
17945
|
return;
|
|
17908
17946
|
} else if (subcommand === "mcp" && args.length === 1) {
|
|
17909
17947
|
try {
|
|
17910
|
-
const { handleMcpCommand } = await import('./mcp-
|
|
17948
|
+
const { handleMcpCommand } = await import('./mcp-Bzy-X9kI.mjs');
|
|
17911
17949
|
await handleMcpCommand();
|
|
17912
17950
|
} catch (error) {
|
|
17913
17951
|
process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}
|