very-happy-cli 0.2.144 → 0.2.146
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-DLsPpWnc.mjs → AcpBackend--1XmtY13.mjs} +2 -2
- package/dist/{AcpBackend-DssrjZDS.cjs → AcpBackend-D4J-b7TB.cjs} +2 -2
- package/dist/{AcpSessionManager-DkBV80Rr.cjs → AcpSessionManager-BUh-XYb7.cjs} +1 -1
- package/dist/{AcpSessionManager-1pAH8SdV.mjs → AcpSessionManager-BXHAABP5.mjs} +1 -1
- package/dist/{agentGuidance-D1PDVswF.cjs → agentGuidance-BI4l2HRo.cjs} +1 -1
- package/dist/{agentGuidance-CupQ9Lve.mjs → agentGuidance-BL1SZ7I3.mjs} +1 -1
- package/dist/{agentHome-BaSxP7lQ.mjs → agentHome-BdFP00V7.mjs} +2 -2
- package/dist/{agentHome-uf1zs2Fi.cjs → agentHome-Ck-uqSJ2.cjs} +2 -2
- package/dist/codex/happyMcpStdioBridge.cjs +2 -2
- package/dist/codex/happyMcpStdioBridge.mjs +2 -2
- package/dist/{config-CxHoQo52.mjs → config-1MpGxQ9y.mjs} +4 -4
- package/dist/{config-kx4y9oAI.cjs → config-CpY7JwBj.cjs} +4 -4
- package/dist/{index-Dox9iD5R.cjs → index-BDts8AaI.cjs} +7 -7
- package/dist/{index-DIoSNgtt.cjs → index-BEpwCxqf.cjs} +4 -4
- package/dist/{index-Dn0JMM8l.cjs → index-BRygi44L.cjs} +94 -42
- package/dist/{index-DxEaiVzX.mjs → index-BnkxOdPZ.mjs} +4 -4
- package/dist/{index-Diu81aSC.mjs → index-GZ--m9D1.mjs} +90 -38
- package/dist/{index-J6a8OHS6.mjs → index-k5Q1BYVe.mjs} +8 -8
- package/dist/index.cjs +4 -4
- package/dist/index.mjs +4 -4
- package/dist/{installTerminalHooks-BBMGk3q5.mjs → installTerminalHooks-BYMuFagt.mjs} +4 -4
- package/dist/{installTerminalHooks-De7_iOOC.cjs → installTerminalHooks-CcDZxqew.cjs} +4 -4
- package/dist/lib.cjs +2 -2
- package/dist/lib.mjs +2 -2
- package/dist/{limits-C_Sklt--.cjs → limits-Cs9ZqLsR.cjs} +7 -7
- package/dist/{limits-DxArdmkZ.mjs → limits-DNPVbu0o.mjs} +7 -7
- package/dist/{mcp-xyb8dYIQ.cjs → mcp-B0SoNWuQ.cjs} +4 -4
- package/dist/{mcp-C1oNnlw5.mjs → mcp-BtuzLwSL.mjs} +4 -4
- package/dist/{piRuntime-3Vbdgv6X.cjs → piRuntime-C52DKuoS.cjs} +2 -2
- package/dist/{piRuntime-CzJdE4z4.mjs → piRuntime-RzukAlha.mjs} +2 -2
- package/dist/{piTerminal-Do2GiKMN.mjs → piTerminal-BhHNN6o7.mjs} +6 -6
- package/dist/{piTerminal-BFpwVGWr.cjs → piTerminal-BjATNNi_.cjs} +6 -6
- package/dist/{runGemini-CCdGxTF2.cjs → runGemini-CSbocY0x.cjs} +6 -6
- package/dist/{runGemini-De5NRMT9.mjs → runGemini-H0nzGgAr.mjs} +6 -6
- package/dist/{runOpenClaw-CRMUfrWk.cjs → runOpenClaw-DTf27x3y.cjs} +5 -5
- package/dist/{runOpenClaw-C2t4DRyi.mjs → runOpenClaw-DgLSw9ye.mjs} +5 -5
- package/dist/{send-l6Rj09c0.mjs → send-B1xGe7BR.mjs} +4 -4
- package/dist/{send-BA1Dgpgn.cjs → send-D_gFbnUb.cjs} +4 -4
- package/dist/{sessions-MWLDqQk-.mjs → sessions-C_5xh0tc.mjs} +4 -4
- package/dist/{sessions-CtVcoXvG.cjs → sessions-DTef64KU.cjs} +4 -4
- package/dist/{spawn-Be4nsNuQ.cjs → spawn-CaClsWIZ.cjs} +4 -4
- package/dist/{spawn-DKWR-6Qc.mjs → spawn-jDF92zCE.mjs} +4 -4
- package/dist/{teams-DMf9GNGE.mjs → teams-BL-EFcfu.mjs} +4 -4
- package/dist/{teams-CcjjNLi8.cjs → teams-CA6BHcPk.cjs} +4 -4
- package/dist/{todo-EffYAnre.cjs → todo-B-CAD9Y3.cjs} +3 -3
- package/dist/{todo-BEXZRm1A.mjs → todo-DxNoHaPw.mjs} +3 -3
- package/dist/{types-DZ5c-9f3.cjs → types-CgOMSh1y.cjs} +1 -1
- package/dist/{types-D6YKR7wo.mjs → types-DjB5fcAr.mjs} +1 -1
- package/package.json +7 -7
|
@@ -1,14 +1,14 @@
|
|
|
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-DjB5fcAr.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-DNPVbu0o.mjs';
|
|
6
6
|
import spawn$1, { spawn } from 'cross-spawn';
|
|
7
7
|
import path, { join, resolve, basename, isAbsolute, sep, dirname, 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
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-
|
|
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-BL1SZ7I3.mjs';
|
|
12
12
|
import { readFile, writeFile, rename, unlink, mkdir, symlink, rm, readlink, lstat, 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';
|
|
@@ -5295,8 +5295,8 @@ ${typeLabels[type] || type}:`));
|
|
|
5295
5295
|
}
|
|
5296
5296
|
console.log(chalk.gray(" An external claude command is only needed for native terminal/mirror use."));
|
|
5297
5297
|
try {
|
|
5298
|
-
const { resolveAgentHomesForCli } = await import('./agentHome-
|
|
5299
|
-
const { describeAgentHome } = await import('./types-
|
|
5298
|
+
const { resolveAgentHomesForCli } = await import('./agentHome-BdFP00V7.mjs');
|
|
5299
|
+
const { describeAgentHome } = await import('./types-DjB5fcAr.mjs').then(function (n) { return n.al; });
|
|
5300
5300
|
const homes = await resolveAgentHomesForCli();
|
|
5301
5301
|
console.log(chalk.green(`\u2713 Claude config dir: ${describeAgentHome(homes.claudeConfigDir)}`));
|
|
5302
5302
|
console.log(chalk.green(`\u2713 Codex home: ${describeAgentHome(homes.codexHome)}`));
|
|
@@ -12277,13 +12277,27 @@ function registerKillSessionHandler(rpcHandlerManager, killThisHappy, archiveEve
|
|
|
12277
12277
|
}
|
|
12278
12278
|
|
|
12279
12279
|
const SIDE_QUESTION_SYSTEM_PROMPT = [
|
|
12280
|
-
"
|
|
12281
|
-
"
|
|
12282
|
-
"Side questions cannot use tools: do not attempt to read files, run commands, or call tools \u2014 if",
|
|
12283
|
-
"the answer would require that, say what you would check and why.",
|
|
12284
|
-
"Do NOT continue, resume, or reference progress on the main task; the main conversation is",
|
|
12285
|
-
"unaffected by this exchange."
|
|
12280
|
+
"A user message wrapped in a side-question system-reminder is a SIDE QUESTION: answer it",
|
|
12281
|
+
"directly in one response from the conversation context, with no tools and no action on the main task."
|
|
12286
12282
|
].join(" ");
|
|
12283
|
+
const SIDE_QUESTION_REMINDER = [
|
|
12284
|
+
"<system-reminder>This is a side question from the user. You must answer this question directly in a single response.",
|
|
12285
|
+
"",
|
|
12286
|
+
"IMPORTANT CONTEXT:",
|
|
12287
|
+
"- You are a separate, lightweight agent spawned to answer this one question",
|
|
12288
|
+
"- The main agent is NOT interrupted - it continues working independently in the background",
|
|
12289
|
+
"- You share the conversation context but are a completely separate instance",
|
|
12290
|
+
'- Do NOT reference being interrupted or what you were "previously doing" - that framing is incorrect',
|
|
12291
|
+
"",
|
|
12292
|
+
"CRITICAL CONSTRAINTS:",
|
|
12293
|
+
"- You have NO tools available - you cannot read files, run commands, search, or take any actions",
|
|
12294
|
+
"- This is a one-off response - there will be no follow-up turns",
|
|
12295
|
+
"- You can ONLY provide information based on what you already know from the conversation context",
|
|
12296
|
+
`- NEVER say things like "Let me try...", "I'll now...", "Let me check...", or promise to take any action`,
|
|
12297
|
+
"- If you don't know the answer, say so - do not offer to look it up or investigate",
|
|
12298
|
+
"",
|
|
12299
|
+
"Simply answer the question with the information you have.</system-reminder>"
|
|
12300
|
+
].join("\n");
|
|
12287
12301
|
const MAX_HISTORY_CHARS = 2e3;
|
|
12288
12302
|
function clip(text, max) {
|
|
12289
12303
|
return text.length > max ? `${text.slice(0, max)}\u2026` : text;
|
|
@@ -12291,14 +12305,17 @@ function clip(text, max) {
|
|
|
12291
12305
|
function buildSideQuestionPrompt(question, history = []) {
|
|
12292
12306
|
const trimmed = question.trim();
|
|
12293
12307
|
const prior = history.filter((h) => h.question.trim() && h.answer.trim()).slice(-12);
|
|
12294
|
-
|
|
12308
|
+
const body = `${SIDE_QUESTION_REMINDER}
|
|
12309
|
+
|
|
12310
|
+
${trimmed}`;
|
|
12311
|
+
if (prior.length === 0) return body;
|
|
12295
12312
|
const lines = prior.map((h) => `Q: ${clip(h.question.trim(), MAX_HISTORY_CHARS)}
|
|
12296
12313
|
A: ${clip(h.answer.trim(), MAX_HISTORY_CHARS)}`);
|
|
12297
12314
|
return `<earlier-side-questions>
|
|
12298
12315
|
${lines.join("\n\n")}
|
|
12299
12316
|
</earlier-side-questions>
|
|
12300
12317
|
|
|
12301
|
-
${
|
|
12318
|
+
${body}`;
|
|
12302
12319
|
}
|
|
12303
12320
|
function sideQuestionQueryOptions(input) {
|
|
12304
12321
|
return {
|
|
@@ -12319,17 +12336,36 @@ function sideQuestionQueryOptions(input) {
|
|
|
12319
12336
|
abort: input.signal
|
|
12320
12337
|
};
|
|
12321
12338
|
}
|
|
12322
|
-
function
|
|
12323
|
-
if (message.type !== "assistant") return
|
|
12339
|
+
function assistantBlocks(message) {
|
|
12340
|
+
if (message.type !== "assistant") return [];
|
|
12324
12341
|
const content = message.message?.content;
|
|
12325
|
-
|
|
12326
|
-
|
|
12342
|
+
return Array.isArray(content) ? content.filter((b) => Boolean(b) && typeof b === "object") : [];
|
|
12343
|
+
}
|
|
12344
|
+
function textFromAssistant(message) {
|
|
12345
|
+
return assistantBlocks(message).map((block) => block.type === "text" ? String(block.text ?? "") : "").join("");
|
|
12346
|
+
}
|
|
12347
|
+
function toolUseFromAssistant(message) {
|
|
12348
|
+
const block = assistantBlocks(message).find((b) => b.type === "tool_use");
|
|
12349
|
+
return block ? String(block.name ?? "a tool") : null;
|
|
12350
|
+
}
|
|
12351
|
+
function toolAttemptNotice(toolName) {
|
|
12352
|
+
return `(The model tried to call ${toolName} instead of answering directly. Try rephrasing or ask in the main conversation.)`;
|
|
12353
|
+
}
|
|
12354
|
+
function apiErrorFromSystem(message) {
|
|
12355
|
+
if (message.type !== "system") return null;
|
|
12356
|
+
const m = message;
|
|
12357
|
+
if (m.subtype !== "api_error") return null;
|
|
12358
|
+
if (typeof m.error === "string") return m.error;
|
|
12359
|
+
const detail = m.error?.formatted ?? m.error?.message;
|
|
12360
|
+
return typeof detail === "string" && detail ? detail : "API error";
|
|
12327
12361
|
}
|
|
12328
12362
|
async function runSideQuestion(query, input) {
|
|
12329
12363
|
const options = sideQuestionQueryOptions(input);
|
|
12330
12364
|
const stream = query({ prompt: buildSideQuestionPrompt(input.question, input.history), options });
|
|
12331
12365
|
let streamed = "";
|
|
12332
12366
|
let final = "";
|
|
12367
|
+
let toolAttempt = null;
|
|
12368
|
+
let lastApiError = null;
|
|
12333
12369
|
let resultSeen = false;
|
|
12334
12370
|
for await (const message of stream) {
|
|
12335
12371
|
if (message.type === "stream_event") {
|
|
@@ -12348,20 +12384,31 @@ async function runSideQuestion(query, input) {
|
|
|
12348
12384
|
${text}` : text;
|
|
12349
12385
|
input.onText?.(final);
|
|
12350
12386
|
}
|
|
12387
|
+
toolAttempt ??= toolUseFromAssistant(message);
|
|
12388
|
+
continue;
|
|
12389
|
+
}
|
|
12390
|
+
if (message.type === "system") {
|
|
12391
|
+
lastApiError = apiErrorFromSystem(message) ?? lastApiError;
|
|
12351
12392
|
continue;
|
|
12352
12393
|
}
|
|
12353
12394
|
if (message.type === "result") {
|
|
12354
12395
|
resultSeen = true;
|
|
12355
12396
|
const result = message;
|
|
12356
12397
|
if (result.subtype !== "success") {
|
|
12357
|
-
|
|
12398
|
+
if (toolAttempt && result.subtype === "error_max_turns") break;
|
|
12399
|
+
const detail = Array.isArray(result.errors) && result.errors.length > 0 ? String(result.errors[0]) : typeof result.result === "string" && result.result ? result.result : lastApiError ?? result.subtype ?? "unknown";
|
|
12358
12400
|
throw new Error(`Side question failed: ${detail}`);
|
|
12359
12401
|
}
|
|
12360
12402
|
if (!final && typeof result.result === "string") final = result.result;
|
|
12361
12403
|
}
|
|
12362
12404
|
}
|
|
12363
12405
|
if (input.signal?.aborted) throw new Error("Side question cancelled");
|
|
12364
|
-
if (
|
|
12406
|
+
if (toolAttempt && !final.trim() && !streamed.trim()) {
|
|
12407
|
+
const notice = toolAttemptNotice(toolAttempt);
|
|
12408
|
+
input.onText?.(notice);
|
|
12409
|
+
return { answer: notice, hadContext: Boolean(input.resumeSessionId) };
|
|
12410
|
+
}
|
|
12411
|
+
if (!resultSeen && !final && !streamed) throw new Error(`Side question ended without a result${lastApiError ? `: ${lastApiError}` : ""}`);
|
|
12365
12412
|
return { answer: final || streamed, hadContext: Boolean(input.resumeSessionId) };
|
|
12366
12413
|
}
|
|
12367
12414
|
|
|
@@ -12388,7 +12435,7 @@ function registerSideQuestionHandler(rpc, deps) {
|
|
|
12388
12435
|
const retainMs = deps.retainMs ?? SIDE_QUESTION_RETAIN_MS;
|
|
12389
12436
|
const maxRunMs = deps.maxRunMs ?? SIDE_QUESTION_MAX_RUN_MS;
|
|
12390
12437
|
const run = deps.run ?? (async (input) => {
|
|
12391
|
-
const { query } = await import('./index-
|
|
12438
|
+
const { query } = await import('./index-BnkxOdPZ.mjs');
|
|
12392
12439
|
return runSideQuestion(query, input);
|
|
12393
12440
|
});
|
|
12394
12441
|
const slots = /* @__PURE__ */ new Map();
|
|
@@ -12411,7 +12458,12 @@ function registerSideQuestionHandler(rpc, deps) {
|
|
|
12411
12458
|
if (!question) throw new Error("Side question is empty");
|
|
12412
12459
|
if (question.length > SIDE_QUESTION_MAX_CHARS) throw new Error("Side question is too long");
|
|
12413
12460
|
prune();
|
|
12414
|
-
if (active)
|
|
12461
|
+
if (active) {
|
|
12462
|
+
const stale = active;
|
|
12463
|
+
stale.abort.abort("superseded");
|
|
12464
|
+
finish(stale, "cancelled");
|
|
12465
|
+
logger.debug(`[btw] side question ${stale.requestId} superseded by a new ask`);
|
|
12466
|
+
}
|
|
12415
12467
|
const resumeSessionId = deps.getClaudeSessionId() ?? null;
|
|
12416
12468
|
const slot = {
|
|
12417
12469
|
requestId: randomUUID(),
|
|
@@ -17633,7 +17685,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17633
17685
|
return;
|
|
17634
17686
|
} else if (subcommand === "install-terminal-hooks") {
|
|
17635
17687
|
try {
|
|
17636
|
-
const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-
|
|
17688
|
+
const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-BYMuFagt.mjs');
|
|
17637
17689
|
const command = parseTerminalHooksArgs(args.slice(1));
|
|
17638
17690
|
if (command.action === "help") {
|
|
17639
17691
|
console.log(TERMINAL_HOOKS_HELP);
|
|
@@ -17650,7 +17702,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17650
17702
|
}
|
|
17651
17703
|
} else if (subcommand === "agent-home") {
|
|
17652
17704
|
try {
|
|
17653
|
-
const { parseAgentHomeArgs, runAgentHomeCommand } = await import('./agentHome-
|
|
17705
|
+
const { parseAgentHomeArgs, runAgentHomeCommand } = await import('./agentHome-BdFP00V7.mjs');
|
|
17654
17706
|
await runAgentHomeCommand(parseAgentHomeArgs(args.slice(1)));
|
|
17655
17707
|
process.exit(0);
|
|
17656
17708
|
} catch (error) {
|
|
@@ -17659,7 +17711,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17659
17711
|
}
|
|
17660
17712
|
} else if (subcommand === "spawn") {
|
|
17661
17713
|
try {
|
|
17662
|
-
const { handleSpawnCommand } = await import('./spawn-
|
|
17714
|
+
const { handleSpawnCommand } = await import('./spawn-jDF92zCE.mjs');
|
|
17663
17715
|
await handleSpawnCommand(args.slice(1));
|
|
17664
17716
|
} catch (error) {
|
|
17665
17717
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -17671,7 +17723,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17671
17723
|
return;
|
|
17672
17724
|
} else if (subcommand === "sessions") {
|
|
17673
17725
|
try {
|
|
17674
|
-
const { handleSessionsCommand } = await import('./sessions-
|
|
17726
|
+
const { handleSessionsCommand } = await import('./sessions-C_5xh0tc.mjs');
|
|
17675
17727
|
await handleSessionsCommand(args.slice(1));
|
|
17676
17728
|
} catch (error) {
|
|
17677
17729
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -17683,7 +17735,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17683
17735
|
return;
|
|
17684
17736
|
} else if (subcommand === "send") {
|
|
17685
17737
|
try {
|
|
17686
|
-
const { handleSendCommand } = await import('./send-
|
|
17738
|
+
const { handleSendCommand } = await import('./send-B1xGe7BR.mjs');
|
|
17687
17739
|
await handleSendCommand(args.slice(1));
|
|
17688
17740
|
} catch (error) {
|
|
17689
17741
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -17789,9 +17841,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17789
17841
|
if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
|
|
17790
17842
|
const projectId = args[3];
|
|
17791
17843
|
try {
|
|
17792
|
-
const { saveGoogleCloudProjectToConfig } = await import('./config-
|
|
17793
|
-
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-
|
|
17794
|
-
const { ApiClient: ApiClient2 } = await import('./types-
|
|
17844
|
+
const { saveGoogleCloudProjectToConfig } = await import('./config-1MpGxQ9y.mjs');
|
|
17845
|
+
const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-DNPVbu0o.mjs').then(function (n) { return n.Y; });
|
|
17846
|
+
const { ApiClient: ApiClient2 } = await import('./types-DjB5fcAr.mjs').then(function (n) { return n.am; });
|
|
17795
17847
|
let userEmail = void 0;
|
|
17796
17848
|
try {
|
|
17797
17849
|
const credentials = await readCredentialsForConfiguredRelay2();
|
|
@@ -17822,7 +17874,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17822
17874
|
}
|
|
17823
17875
|
if (geminiSubcommand === "project" && args[2] === "get") {
|
|
17824
17876
|
try {
|
|
17825
|
-
const { readGeminiLocalConfig } = await import('./config-
|
|
17877
|
+
const { readGeminiLocalConfig } = await import('./config-1MpGxQ9y.mjs');
|
|
17826
17878
|
const config = readGeminiLocalConfig();
|
|
17827
17879
|
if (config.googleCloudProject) {
|
|
17828
17880
|
console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
|
|
@@ -17862,7 +17914,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17862
17914
|
process.exit(0);
|
|
17863
17915
|
}
|
|
17864
17916
|
try {
|
|
17865
|
-
const { runGemini } = await import('./runGemini-
|
|
17917
|
+
const { runGemini } = await import('./runGemini-H0nzGgAr.mjs');
|
|
17866
17918
|
let startedBy = void 0;
|
|
17867
17919
|
for (let i = 1; i < args.length; i++) {
|
|
17868
17920
|
if (args[i] === "--started-by") {
|
|
@@ -17885,7 +17937,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17885
17937
|
} else if (subcommand === "pi") {
|
|
17886
17938
|
if (args[1] === "--terminal") {
|
|
17887
17939
|
try {
|
|
17888
|
-
const { runPiTerminal } = await import('./piTerminal-
|
|
17940
|
+
const { runPiTerminal } = await import('./piTerminal-BhHNN6o7.mjs');
|
|
17889
17941
|
process.exitCode = await runPiTerminal(args.slice(2));
|
|
17890
17942
|
} catch (error) {
|
|
17891
17943
|
console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
|
|
@@ -17902,7 +17954,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17902
17954
|
}
|
|
17903
17955
|
};
|
|
17904
17956
|
try {
|
|
17905
|
-
const { runAcp, resolveAcpAgentConfig } = await import('./index-
|
|
17957
|
+
const { runAcp, resolveAcpAgentConfig } = await import('./index-k5Q1BYVe.mjs');
|
|
17906
17958
|
const parsed = parsePiRunnerArgs(args.slice(1));
|
|
17907
17959
|
const resolved = resolveAcpAgentConfig(["pi", ...parsed.passthrough]);
|
|
17908
17960
|
const { credentials } = await authAndSetupMachineIfNeeded();
|
|
@@ -17930,7 +17982,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17930
17982
|
return;
|
|
17931
17983
|
} else if (subcommand === "acp") {
|
|
17932
17984
|
try {
|
|
17933
|
-
const { runAcp, resolveAcpAgentConfig } = await import('./index-
|
|
17985
|
+
const { runAcp, resolveAcpAgentConfig } = await import('./index-k5Q1BYVe.mjs');
|
|
17934
17986
|
let startedBy = void 0;
|
|
17935
17987
|
let verbose = false;
|
|
17936
17988
|
const acpArgs = [];
|
|
@@ -17970,7 +18022,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
17970
18022
|
return;
|
|
17971
18023
|
} else if (subcommand === "openclaw") {
|
|
17972
18024
|
try {
|
|
17973
|
-
const { runOpenClaw } = await import('./runOpenClaw-
|
|
18025
|
+
const { runOpenClaw } = await import('./runOpenClaw-DgLSw9ye.mjs');
|
|
17974
18026
|
let startedBy = void 0;
|
|
17975
18027
|
let verbose = false;
|
|
17976
18028
|
let gatewayUrl;
|
|
@@ -18021,7 +18073,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18021
18073
|
return;
|
|
18022
18074
|
} else if (subcommand === "todo") {
|
|
18023
18075
|
try {
|
|
18024
|
-
const { handleTodoCommand } = await import('./todo-
|
|
18076
|
+
const { handleTodoCommand } = await import('./todo-DxNoHaPw.mjs');
|
|
18025
18077
|
await handleTodoCommand(args.slice(1));
|
|
18026
18078
|
} catch (error) {
|
|
18027
18079
|
console.error(JSON.stringify({ error: error instanceof Error ? error.message : "Todo command failed" }));
|
|
@@ -18030,7 +18082,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18030
18082
|
return;
|
|
18031
18083
|
} else if (subcommand === "teams") {
|
|
18032
18084
|
try {
|
|
18033
|
-
const { handleTeamsCommand } = await import('./teams-
|
|
18085
|
+
const { handleTeamsCommand } = await import('./teams-BL-EFcfu.mjs');
|
|
18034
18086
|
await handleTeamsCommand(args.slice(1));
|
|
18035
18087
|
} catch (error) {
|
|
18036
18088
|
console.error(error instanceof Error ? error.message : "Teams command failed");
|
|
@@ -18039,7 +18091,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
|
|
|
18039
18091
|
return;
|
|
18040
18092
|
} else if (subcommand === "mcp" && (args.length === 1 || args.length === 2 && args[1] === "--terminal-tools")) {
|
|
18041
18093
|
try {
|
|
18042
|
-
const { handleMcpCommand } = await import('./mcp-
|
|
18094
|
+
const { handleMcpCommand } = await import('./mcp-BtuzLwSL.mjs');
|
|
18043
18095
|
await handleMcpCommand(args[1] === "--terminal-tools");
|
|
18044
18096
|
} catch (error) {
|
|
18045
18097
|
process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { D as DefaultTransport, A as AcpBackend } from './AcpBackend
|
|
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
|
|
3
|
-
import { r as readSettings, g as encodeBase64, l as logger, c as configuration } from './limits-
|
|
4
|
-
import { A as AcpSessionManager } from './AcpSessionManager-
|
|
5
|
-
import { m as connectionState, A as ApiClient, n as notifyDaemonSessionStarted, o as BUILTIN_TODO_DISCOVERY } from './types-
|
|
6
|
-
import { k as initialMachineMetadata, m as createSessionMetadata, n as setupOfflineReconnection, o as StreamRelay, p as MessageQueue2, u as hashObject, v as startHappyServer, x as registerAgentAttachmentDownloads, T as TitleGenerator, y 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-
|
|
7
|
-
import { p as preparePiTeamsRuntime } from './piRuntime-
|
|
1
|
+
import { D as DefaultTransport, A as AcpBackend } from './AcpBackend--1XmtY13.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--1XmtY13.mjs';
|
|
3
|
+
import { r as readSettings, g as encodeBase64, l as logger, c as configuration } from './limits-DNPVbu0o.mjs';
|
|
4
|
+
import { A as AcpSessionManager } from './AcpSessionManager-BXHAABP5.mjs';
|
|
5
|
+
import { m as connectionState, A as ApiClient, n as notifyDaemonSessionStarted, o as BUILTIN_TODO_DISCOVERY } from './types-DjB5fcAr.mjs';
|
|
6
|
+
import { k as initialMachineMetadata, m as createSessionMetadata, n as setupOfflineReconnection, o as StreamRelay, p as MessageQueue2, u as hashObject, v as startHappyServer, x as registerAgentAttachmentDownloads, T as TitleGenerator, y 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-GZ--m9D1.mjs';
|
|
7
|
+
import { p as preparePiTeamsRuntime } from './piRuntime-RzukAlha.mjs';
|
|
8
8
|
import { randomUUID } from 'node:crypto';
|
|
9
9
|
import { join } from 'node:path';
|
|
10
10
|
import { p as projectPath } from './projectPath-CSpqWdxp.mjs';
|
|
@@ -33,7 +33,7 @@ import 'fs';
|
|
|
33
33
|
import 'node:readline';
|
|
34
34
|
import '@anthropic-ai/sandbox-runtime';
|
|
35
35
|
import 'expo-server-sdk';
|
|
36
|
-
import './agentGuidance-
|
|
36
|
+
import './agentGuidance-BL1SZ7I3.mjs';
|
|
37
37
|
import 'ink';
|
|
38
38
|
import 'react';
|
|
39
39
|
import '@anthropic-ai/claude-agent-sdk';
|
package/dist/index.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
require('chalk');
|
|
4
|
-
require('./index-
|
|
5
|
-
require('./limits-
|
|
4
|
+
require('./index-BRygi44L.cjs');
|
|
5
|
+
require('./limits-Cs9ZqLsR.cjs');
|
|
6
6
|
require('zod');
|
|
7
|
-
require('./types-
|
|
7
|
+
require('./types-CgOMSh1y.cjs');
|
|
8
8
|
require('node:child_process');
|
|
9
9
|
require('node:os');
|
|
10
10
|
require('node:crypto');
|
|
@@ -15,7 +15,7 @@ require('node:fs');
|
|
|
15
15
|
require('./projectPath-ChLhdOyt.cjs');
|
|
16
16
|
require('path');
|
|
17
17
|
require('url');
|
|
18
|
-
require('./agentGuidance-
|
|
18
|
+
require('./agentGuidance-BI4l2HRo.cjs');
|
|
19
19
|
require('node:fs/promises');
|
|
20
20
|
require('fs/promises');
|
|
21
21
|
require('ink');
|
package/dist/index.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import 'chalk';
|
|
2
|
-
import './index-
|
|
3
|
-
import './limits-
|
|
2
|
+
import './index-GZ--m9D1.mjs';
|
|
3
|
+
import './limits-DNPVbu0o.mjs';
|
|
4
4
|
import 'zod';
|
|
5
|
-
import './types-
|
|
5
|
+
import './types-DjB5fcAr.mjs';
|
|
6
6
|
import 'node:child_process';
|
|
7
7
|
import 'node:os';
|
|
8
8
|
import 'node:crypto';
|
|
@@ -13,7 +13,7 @@ import 'node:fs';
|
|
|
13
13
|
import './projectPath-CSpqWdxp.mjs';
|
|
14
14
|
import 'path';
|
|
15
15
|
import 'url';
|
|
16
|
-
import './agentGuidance-
|
|
16
|
+
import './agentGuidance-BL1SZ7I3.mjs';
|
|
17
17
|
import 'node:fs/promises';
|
|
18
18
|
import 'fs/promises';
|
|
19
19
|
import 'ink';
|
|
@@ -4,13 +4,13 @@ import { homedir } from 'node:os';
|
|
|
4
4
|
import { spawnSync } from 'node:child_process';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import { p as projectPath } from './projectPath-CSpqWdxp.mjs';
|
|
7
|
-
import { t as tmuxSupportsSessionEnv } from './index-
|
|
7
|
+
import { t as tmuxSupportsSessionEnv } from './index-GZ--m9D1.mjs';
|
|
8
8
|
import 'path';
|
|
9
9
|
import 'url';
|
|
10
10
|
import 'node:crypto';
|
|
11
|
-
import './types-
|
|
11
|
+
import './types-DjB5fcAr.mjs';
|
|
12
12
|
import 'axios';
|
|
13
|
-
import './limits-
|
|
13
|
+
import './limits-DNPVbu0o.mjs';
|
|
14
14
|
import 'node:fs/promises';
|
|
15
15
|
import 'zod';
|
|
16
16
|
import 'tweetnacl';
|
|
@@ -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-
|
|
32
|
+
import './agentGuidance-BL1SZ7I3.mjs';
|
|
33
33
|
import 'ink';
|
|
34
34
|
import 'react';
|
|
35
35
|
import '@anthropic-ai/claude-agent-sdk';
|
|
@@ -6,13 +6,13 @@ var os = require('node:os');
|
|
|
6
6
|
var node_child_process = require('node:child_process');
|
|
7
7
|
var chalk = require('chalk');
|
|
8
8
|
var projectPath = require('./projectPath-ChLhdOyt.cjs');
|
|
9
|
-
var index = require('./index-
|
|
9
|
+
var index = require('./index-BRygi44L.cjs');
|
|
10
10
|
require('path');
|
|
11
11
|
require('url');
|
|
12
12
|
require('node:crypto');
|
|
13
|
-
require('./types-
|
|
13
|
+
require('./types-CgOMSh1y.cjs');
|
|
14
14
|
require('axios');
|
|
15
|
-
require('./limits-
|
|
15
|
+
require('./limits-Cs9ZqLsR.cjs');
|
|
16
16
|
require('node:fs/promises');
|
|
17
17
|
require('zod');
|
|
18
18
|
require('tweetnacl');
|
|
@@ -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-BI4l2HRo.cjs');
|
|
35
35
|
require('ink');
|
|
36
36
|
require('react');
|
|
37
37
|
require('@anthropic-ai/claude-agent-sdk');
|
package/dist/lib.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./types-
|
|
4
|
-
var persistence = require('./limits-
|
|
3
|
+
var index = require('./types-CgOMSh1y.cjs');
|
|
4
|
+
var persistence = require('./limits-Cs9ZqLsR.cjs');
|
|
5
5
|
require('axios');
|
|
6
6
|
require('node:events');
|
|
7
7
|
require('socket.io-client');
|
package/dist/lib.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema } from './types-
|
|
2
|
-
export { c as configuration, l as logger } from './limits-
|
|
1
|
+
export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema } from './types-DjB5fcAr.mjs';
|
|
2
|
+
export { c as configuration, l as logger } from './limits-DNPVbu0o.mjs';
|
|
3
3
|
import 'axios';
|
|
4
4
|
import 'node:events';
|
|
5
5
|
import 'socket.io-client';
|
|
@@ -30,7 +30,7 @@ function _interopNamespaceDefault(e) {
|
|
|
30
30
|
var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
|
|
31
31
|
|
|
32
32
|
var name = "very-happy-cli";
|
|
33
|
-
var version = "0.2.
|
|
33
|
+
var version = "0.2.146";
|
|
34
34
|
var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
|
|
35
35
|
var author = "Kirill Dubovitskiy";
|
|
36
36
|
var contributors = [
|
|
@@ -147,12 +147,12 @@ var dependencies = {
|
|
|
147
147
|
zod: "^4.0.0"
|
|
148
148
|
};
|
|
149
149
|
var optionalDependencies = {
|
|
150
|
-
"very-happy-tools-arm64-darwin": "0.2.
|
|
151
|
-
"very-happy-tools-x64-darwin": "0.2.
|
|
152
|
-
"very-happy-tools-arm64-linux": "0.2.
|
|
153
|
-
"very-happy-tools-x64-linux": "0.2.
|
|
154
|
-
"very-happy-tools-arm64-win32": "0.2.
|
|
155
|
-
"very-happy-tools-x64-win32": "0.2.
|
|
150
|
+
"very-happy-tools-arm64-darwin": "0.2.146",
|
|
151
|
+
"very-happy-tools-x64-darwin": "0.2.146",
|
|
152
|
+
"very-happy-tools-arm64-linux": "0.2.146",
|
|
153
|
+
"very-happy-tools-x64-linux": "0.2.146",
|
|
154
|
+
"very-happy-tools-arm64-win32": "0.2.146",
|
|
155
|
+
"very-happy-tools-x64-win32": "0.2.146"
|
|
156
156
|
};
|
|
157
157
|
var devDependencies = {
|
|
158
158
|
"@slopus/happy-wire": "workspace:*",
|
|
@@ -9,7 +9,7 @@ import chalk from 'chalk';
|
|
|
9
9
|
import { inspect } from 'node:util';
|
|
10
10
|
|
|
11
11
|
var name = "very-happy-cli";
|
|
12
|
-
var version = "0.2.
|
|
12
|
+
var version = "0.2.146";
|
|
13
13
|
var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
|
|
14
14
|
var author = "Kirill Dubovitskiy";
|
|
15
15
|
var contributors = [
|
|
@@ -126,12 +126,12 @@ var dependencies = {
|
|
|
126
126
|
zod: "^4.0.0"
|
|
127
127
|
};
|
|
128
128
|
var optionalDependencies = {
|
|
129
|
-
"very-happy-tools-arm64-darwin": "0.2.
|
|
130
|
-
"very-happy-tools-x64-darwin": "0.2.
|
|
131
|
-
"very-happy-tools-arm64-linux": "0.2.
|
|
132
|
-
"very-happy-tools-x64-linux": "0.2.
|
|
133
|
-
"very-happy-tools-arm64-win32": "0.2.
|
|
134
|
-
"very-happy-tools-x64-win32": "0.2.
|
|
129
|
+
"very-happy-tools-arm64-darwin": "0.2.146",
|
|
130
|
+
"very-happy-tools-x64-darwin": "0.2.146",
|
|
131
|
+
"very-happy-tools-arm64-linux": "0.2.146",
|
|
132
|
+
"very-happy-tools-x64-linux": "0.2.146",
|
|
133
|
+
"very-happy-tools-arm64-win32": "0.2.146",
|
|
134
|
+
"very-happy-tools-x64-win32": "0.2.146"
|
|
135
135
|
};
|
|
136
136
|
var devDependencies = {
|
|
137
137
|
"@slopus/happy-wire": "workspace:*",
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var agentGuidance = require('./agentGuidance-
|
|
3
|
+
var agentGuidance = require('./agentGuidance-BI4l2HRo.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 z = require('zod');
|
|
7
|
-
var index = require('./types-
|
|
8
|
-
var persistence = require('./limits-
|
|
9
|
-
var index$1 = require('./index-
|
|
7
|
+
var index = require('./types-CgOMSh1y.cjs');
|
|
8
|
+
var persistence = require('./limits-Cs9ZqLsR.cjs');
|
|
9
|
+
var index$1 = require('./index-BRygi44L.cjs');
|
|
10
10
|
require('node:fs/promises');
|
|
11
11
|
require('node:os');
|
|
12
12
|
require('node:crypto');
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { r as registerTeamsTools, P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION } from './agentGuidance-
|
|
1
|
+
import { r as registerTeamsTools, P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION } from './agentGuidance-BL1SZ7I3.mjs';
|
|
2
2
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
-
import { j as pushClipboardViaDaemon, k as pushFilePreviewViaDaemon, l as setTerminalTitleViaDaemon } from './types-
|
|
6
|
-
import { l as logger, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, f as CLIPBOARD_MAX_BYTES } from './limits-
|
|
7
|
-
import { h as checkPreviewPath, j as registerAssistantSessionTools } from './index-
|
|
5
|
+
import { j as pushClipboardViaDaemon, k as pushFilePreviewViaDaemon, l as setTerminalTitleViaDaemon } from './types-DjB5fcAr.mjs';
|
|
6
|
+
import { l as logger, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, f as CLIPBOARD_MAX_BYTES } from './limits-DNPVbu0o.mjs';
|
|
7
|
+
import { h as checkPreviewPath, j as registerAssistantSessionTools } from './index-GZ--m9D1.mjs';
|
|
8
8
|
import 'node:fs/promises';
|
|
9
9
|
import 'node:os';
|
|
10
10
|
import 'node:crypto';
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
var promises = require('node:fs/promises');
|
|
4
4
|
var node_crypto = require('node:crypto');
|
|
5
5
|
var path = require('node:path');
|
|
6
|
-
var persistence = require('./limits-
|
|
7
|
-
var index = require('./index-
|
|
6
|
+
var persistence = require('./limits-Cs9ZqLsR.cjs');
|
|
7
|
+
var index = require('./index-BRygi44L.cjs');
|
|
8
8
|
|
|
9
9
|
async function publish(path, content, mode) {
|
|
10
10
|
const temporary = `${path}.${node_crypto.randomUUID()}.new`;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { mkdir, chmod, writeFile, rename } from 'node:fs/promises';
|
|
2
2
|
import { randomUUID } from 'node:crypto';
|
|
3
3
|
import { join } from 'node:path';
|
|
4
|
-
import { c as configuration } from './limits-
|
|
5
|
-
import { P as PI_TEAMS_EXTENSION } from './index-
|
|
4
|
+
import { c as configuration } from './limits-DNPVbu0o.mjs';
|
|
5
|
+
import { P as PI_TEAMS_EXTENSION } from './index-GZ--m9D1.mjs';
|
|
6
6
|
|
|
7
7
|
async function publish(path, content, mode) {
|
|
8
8
|
const temporary = `${path}.${randomUUID()}.new`;
|
|
@@ -3,21 +3,21 @@ import { randomUUID } from 'node:crypto';
|
|
|
3
3
|
import { createServer } from 'node:http';
|
|
4
4
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
5
|
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
6
|
-
import { p as preparePiTeamsRuntime } from './piRuntime-
|
|
7
|
-
import { registerMcpTools } from './mcp-
|
|
8
|
-
import './agentGuidance-
|
|
6
|
+
import { p as preparePiTeamsRuntime } from './piRuntime-RzukAlha.mjs';
|
|
7
|
+
import { registerMcpTools } from './mcp-BtuzLwSL.mjs';
|
|
8
|
+
import './agentGuidance-BL1SZ7I3.mjs';
|
|
9
9
|
import 'node:fs/promises';
|
|
10
10
|
import 'node:os';
|
|
11
11
|
import 'zod';
|
|
12
|
-
import './limits-
|
|
12
|
+
import './limits-DNPVbu0o.mjs';
|
|
13
13
|
import 'axios';
|
|
14
14
|
import 'tweetnacl';
|
|
15
15
|
import 'socket.io-client';
|
|
16
|
-
import './types-
|
|
16
|
+
import './types-DjB5fcAr.mjs';
|
|
17
17
|
import 'node:fs';
|
|
18
18
|
import 'node:path';
|
|
19
19
|
import { r as resolveMcpTerminalId } from './terminalToolContext-CFeGeaNm.mjs';
|
|
20
|
-
import './index-
|
|
20
|
+
import './index-GZ--m9D1.mjs';
|
|
21
21
|
import 'chalk';
|
|
22
22
|
import 'cross-spawn';
|
|
23
23
|
import 'node:readline';
|