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.
- package/dist/{AcpBackend-Baqb8dNm.mjs → AcpBackend-C-dhGJgd.mjs} +2 -2
- package/dist/{AcpBackend-CnZpEfGd.cjs → AcpBackend-CXawaWWx.cjs} +2 -2
- package/dist/{AcpSessionManager-CC6mdFXs.mjs → AcpSessionManager-DKOtSqJc.mjs} +1 -1
- package/dist/{AcpSessionManager-e2vxmIbj.cjs → AcpSessionManager-TrwEZR7y.cjs} +1 -1
- package/dist/{agentGuidance--QIi_rZ2.cjs → agentGuidance-Dla-BXO8.cjs} +1 -1
- package/dist/{agentGuidance-oMVJvUl7.mjs → agentGuidance-DrfhtVP1.mjs} +1 -1
- package/dist/{agentHome-CKSPsS8d.mjs → agentHome-Dm-Wjs38.mjs} +2 -2
- package/dist/{agentHome-3kRCtzOL.cjs → agentHome-rylNIkix.cjs} +2 -2
- package/dist/codex/happyMcpStdioBridge.cjs +2 -2
- package/dist/codex/happyMcpStdioBridge.mjs +2 -2
- package/dist/{config-CzJZcvTO.cjs → config-CgPu2wtS.cjs} +4 -4
- package/dist/{config-C8jpk6IA.mjs → config-Dhu6LU0h.mjs} +4 -4
- package/dist/{index-BPCXUrEe.mjs → index-BsYH1sjV.mjs} +4 -4
- package/dist/{index-Dfkyar7S.mjs → index-CpNYvMTJ.mjs} +147 -40
- package/dist/{index-DrVq0CqK.mjs → index-CzpooENj.mjs} +8 -8
- package/dist/{index-DgK4KX-Z.cjs → index-DEVkDRas.cjs} +7 -7
- package/dist/{index-DBN2Zpqc.cjs → index-DvfCUuDK.cjs} +4 -4
- package/dist/{index-CyfXsCXl.cjs → index-K6mUS0jF.cjs} +145 -38
- package/dist/index.cjs +4 -4
- package/dist/index.mjs +4 -4
- package/dist/{installTerminalHooks-COqkLz6f.mjs → installTerminalHooks-BF_tmw9V.mjs} +4 -4
- package/dist/{installTerminalHooks-kdAoTfNT.cjs → installTerminalHooks-NIbsQ1wi.cjs} +4 -4
- package/dist/lib.cjs +2 -2
- package/dist/lib.mjs +2 -2
- package/dist/{limits-FZWhlsBu.cjs → limits-Dyma1REp.cjs} +7 -7
- package/dist/{limits-BXI1Gzvd.mjs → limits-FThmm7WR.mjs} +7 -7
- package/dist/{mcp-Dfnoirpi.mjs → mcp-DzydgXpf.mjs} +4 -4
- package/dist/{mcp-DoLZbbZp.cjs → mcp-_TVUSg8W.cjs} +4 -4
- package/dist/{piRuntime-BK6YZm2X.mjs → piRuntime-ACOhil6t.mjs} +2 -2
- package/dist/{piRuntime-DmE4ysfG.cjs → piRuntime-CSAiJk0X.cjs} +2 -2
- package/dist/{piTerminal-Bczubq2n.mjs → piTerminal-BlE4vbvZ.mjs} +6 -6
- package/dist/{piTerminal-qQAzQwIU.cjs → piTerminal-DHxGB3Ic.cjs} +6 -6
- package/dist/{runGemini-ComTu0EB.cjs → runGemini-BMYCU16c.cjs} +6 -6
- package/dist/{runGemini-Cce_pjTs.mjs → runGemini-D5IV1MoF.mjs} +6 -6
- package/dist/{runOpenClaw-DXP5_chb.mjs → runOpenClaw-CWPXrKMJ.mjs} +5 -5
- package/dist/{runOpenClaw-M3YlDt8z.cjs → runOpenClaw-Qs4eFtcS.cjs} +5 -5
- package/dist/{send-DDD57Cr_.mjs → send-Dv0km8UI.mjs} +4 -4
- package/dist/{send-0LrSwGgr.cjs → send-qXWGilm8.cjs} +4 -4
- package/dist/{sessions-2Bkau9T4.cjs → sessions-CpIdDhH7.cjs} +4 -4
- package/dist/{sessions-ClBPEtz2.mjs → sessions-DoULfKui.mjs} +4 -4
- package/dist/{spawn-7lLymdT1.mjs → spawn-DQuOmUP7.mjs} +4 -4
- package/dist/{spawn-Cm3Da8Ge.cjs → spawn-DqzG1bTH.cjs} +4 -4
- package/dist/{teams-DyBjdXI3.mjs → teams-4mhNh5cj.mjs} +4 -4
- package/dist/{teams-DKKeIG-u.cjs → teams-ByEgUzsH.cjs} +4 -4
- package/dist/{todo-jXHGGH89.mjs → todo-C9IAUf0K.mjs} +3 -3
- package/dist/{todo-8RgCTDxH.cjs → todo-D7SDXL0c.cjs} +3 -3
- package/dist/{types-ipzMqciq.mjs → types-BD542hb1.mjs} +1 -1
- package/dist/{types-t1gxALVE.cjs → types-D2Gkpe0N.cjs} +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 { t as contentLogMetadata, q as errorLogMetadata, u as delay } from './types-
|
|
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-
|
|
7
|
-
var index = require('./types-
|
|
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-
|
|
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 };
|
|
@@ -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-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-
|
|
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-
|
|
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-
|
|
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-
|
|
5
|
+
var persistence = require('./limits-Dyma1REp.cjs');
|
|
6
6
|
require('node:fs');
|
|
7
|
-
var index = require('./types-
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
8
|
-
var index = require('./index-
|
|
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-
|
|
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
|
|
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-
|
|
6
|
-
import { g as DEFAULT_GEMINI_MODEL, G as GEMINI_MODEL_ENV } from './index-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
6
|
+
import './types-BD542hb1.mjs';
|
|
7
7
|
import 'axios';
|
|
8
|
-
import './limits-
|
|
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-
|
|
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-
|
|
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-
|
|
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,
|
|
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-
|
|
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-
|
|
5317
|
-
const { describeAgentHome } = await import('./types-
|
|
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 = {
|
|
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(
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
17918
|
-
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-
|
|
17919
|
-
const { ApiClient: ApiClient2 } = await import('./types-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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)}
|