very-happy-cli 0.2.157 → 0.2.158

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/{AcpBackend-BymWX-LI.cjs → AcpBackend-DIDRig5G.cjs} +2 -2
  2. package/dist/{AcpBackend-Cy18U7yw.mjs → AcpBackend-vDVLHuYJ.mjs} +2 -2
  3. package/dist/{AcpSessionManager-BF7zBGAi.cjs → AcpSessionManager-C44U99CC.cjs} +1 -1
  4. package/dist/{AcpSessionManager-Ds8rcp95.mjs → AcpSessionManager-CmRjfhn3.mjs} +1 -1
  5. package/dist/{agentGuidance-CU6YD_Ms.mjs → agentGuidance-CrR9l62U.mjs} +3 -2
  6. package/dist/{agentGuidance-Db76O1kw.cjs → agentGuidance-DwOWbX55.cjs} +3 -2
  7. package/dist/{agentHome-BaJ9xtxB.mjs → agentHome-CyLmGH5L.mjs} +2 -2
  8. package/dist/{agentHome-B0CLy0Qx.cjs → agentHome-Dw8Jx_CJ.cjs} +2 -2
  9. package/dist/{auto-B1YAwaeU.mjs → auto-BlMZPwOk.mjs} +19 -10
  10. package/dist/{auto-DqKGFq8U.cjs → auto-DZbNcTXx.cjs} +19 -10
  11. package/dist/codex/happyMcpStdioBridge.cjs +2 -2
  12. package/dist/codex/happyMcpStdioBridge.mjs +2 -2
  13. package/dist/{config-aAbhJllb.mjs → config-BtPArqRH.mjs} +4 -4
  14. package/dist/{config-CzkBjZnV.cjs → config-DG84bjwF.cjs} +4 -4
  15. package/dist/{index-C9QzZsUQ.cjs → index-BG932eCh.cjs} +29 -28
  16. package/dist/{index-BYU1e81k.mjs → index-CVCt3kSt.mjs} +25 -24
  17. package/dist/{index-Cz-uqnJk.cjs → index-D5ScEErM.cjs} +4 -4
  18. package/dist/{index-CTbGqVFY.cjs → index-DPCsWlWK.cjs} +7 -7
  19. package/dist/{index-DQcRkI9r.mjs → index-DgO0FHOx.mjs} +4 -4
  20. package/dist/{index-BVu8Cufk.mjs → index-ZChGsuB7.mjs} +8 -8
  21. package/dist/index.cjs +4 -4
  22. package/dist/index.mjs +4 -4
  23. package/dist/{install-BuYnqtVa.mjs → install-DarS_Wco.mjs} +1 -1
  24. package/dist/{install-BMlV0Tnr.cjs → install-wKQGgXvN.cjs} +1 -1
  25. package/dist/{installTerminalHooks-ELDoqh0A.mjs → installTerminalHooks-CpNbRFPz.mjs} +4 -4
  26. package/dist/{installTerminalHooks-BVVOEGhG.cjs → installTerminalHooks-DcQfee_O.cjs} +4 -4
  27. package/dist/lib.cjs +2 -2
  28. package/dist/lib.mjs +2 -2
  29. package/dist/{limits-A2c-3M-_.mjs → limits-D2uN090G.mjs} +8 -7
  30. package/dist/{limits-CyuIt-Vl.cjs → limits-kqFqhfsh.cjs} +8 -7
  31. package/dist/{mcp-Bo934Kpy.mjs → mcp-BN6bKIGb.mjs} +4 -4
  32. package/dist/{mcp-CXkvnztT.cjs → mcp-DGdeUUDJ.cjs} +4 -4
  33. package/dist/{piRuntime-CJjA26oD.cjs → piRuntime-3qtbKujX.cjs} +2 -2
  34. package/dist/{piRuntime-DdEY2mE9.mjs → piRuntime-bkw2NAZU.mjs} +2 -2
  35. package/dist/{piTerminal-CpU3hzrX.cjs → piTerminal-BYxp3LMr.cjs} +6 -6
  36. package/dist/{piTerminal-DwWmgumi.mjs → piTerminal-DilKwM7B.mjs} +6 -6
  37. package/dist/{runGemini-DS-0qm0L.cjs → runGemini-28O2sqyI.cjs} +6 -6
  38. package/dist/{runGemini-Cj6oJQ-I.mjs → runGemini-Cjii069p.mjs} +6 -6
  39. package/dist/{runOpenClaw-CvSm8oTc.cjs → runOpenClaw-CiMZad-H.cjs} +5 -5
  40. package/dist/{runOpenClaw-DUCQxkI-.mjs → runOpenClaw-jaLr7KF1.mjs} +5 -5
  41. package/dist/{send-D5CyRyZ_.mjs → send-C9mOtChi.mjs} +2 -2
  42. package/dist/{send-CHxobaoI.cjs → send-D5ejHPXG.cjs} +2 -2
  43. package/dist/{sessions-BFlIrKCY.cjs → sessions-BNMPQoLE.cjs} +2 -2
  44. package/dist/{sessions-DsE01xKc.mjs → sessions-W6771g3X.mjs} +2 -2
  45. package/dist/{spawn-CdihhwHs.mjs → spawn-D0QVhzRb.mjs} +4 -4
  46. package/dist/{spawn-HV345RN-.cjs → spawn-Ddtom1cb.cjs} +4 -4
  47. package/dist/{teams-BahinMnH.cjs → teams-BZ1tayg_.cjs} +5 -5
  48. package/dist/{teams-BE8nMB6O.mjs → teams-CqSwtw2O.mjs} +5 -5
  49. package/dist/{todo-CMMQ6yhU.cjs → todo-BYMg0fR0.cjs} +2 -2
  50. package/dist/{todo-CuQAkSp2.mjs → todo-BbusB1zM.mjs} +2 -2
  51. package/dist/{types-BrGJ7PJz.mjs → types-DIBF4U0Y.mjs} +2 -2
  52. package/dist/{types-B0sSi6eM.cjs → types-DnrPeN80.cjs} +2 -2
  53. 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, hostname, userInfo, tmpdir } from 'node:os';
3
3
  import { randomUUID, randomInt, randomBytes, createHash as createHash$1, timingSafeEqual } from 'node:crypto';
4
- import { g as getProjectPath, k as initializeSandbox, w as wrapCommand, j as contentLogMetadata, I as InvalidateSync, R as RawJSONLinesSchema, l as AsyncLock, M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES, m as commandOnPath, n as deriveLocalCliUpdateSummary, o as isClaudeSessionId, q as getLocalHappyAgentCredentialPath, s as readLocalHappyAgentCredentials, t as parseExactVersion, u as compareExactVersions, v as extractCompleteLines, x as decideBackfill, y as parseTerminalHookPayload, z as tmuxArgs, B as scrubTmuxClientEnv, D as decideMirrorBinding, E as MIRROR_BACKFILL_LINES_DEFAULT, G as mirrorLineKey, H as mirrorLocalId, J as detectCLIAvailability, K as detectResumeSupport, L as refreshAgentHomes, d as describeAgentHome, T as TurnActivityTracker, N as summarizeSpawnSessionForLog, O as locateClaudeConversation, P as agentHomeSpawnEnv, Q as shellescape, A as ApiClient, S as fetchCliUpdateState, U as resolveCliUpdateCheckInterval, V as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS, W as listVhTerminals, X as readVhTerminal, Y as sendToVhTerminal, Z as TITLE_PROMPT_PREFIX, _ as BOARD_ANALYZER_PROMPT_PREFIX, h as connectionState, $ as startOfflineReconnection, C as CodexAppServerClient } from './types-BrGJ7PJz.mjs';
5
- import { l as logger, aa as sameBackgroundTasks, ab as notifyDaemonSessionEvent, x as BUILTIN_TODO_DISCOVERY, g as delay, ac as STREAM_DELTA_MAX_CHARS, ad as ensurePrivateDirectory, ae as hardenPrivateFile, c as configuration, af as notifyDaemonClaudeAuthFailed, ag as createBackgroundTaskTracker, F as packageJson, r as readSettings, ah as readCredentials, a0 as credentialRelayProblem, k as checkIfDaemonRunningAndCleanupStaleState, ai as readDaemonState, aj as AGENT_VERSION_SOURCES, w as encodeBase64, ak as readSettingsOutcome, u as updateSettings, al as encodeBase64Url, M as decodeBase64, am as writeCredentialsLegacy, an as writeCredentialsDataKey, ao as BACKGROUND_TASK_DESCRIPTION_MAX, ap as BACKGROUND_TASKS_MAX, d as readPersistedSessions, E as writePrivateFileSync, aq as decryptWithDataKey, ar as decryptLegacy, as as persistSession, z as ensurePrivateDirectorySync, at as getAgentCodeDefaults, au as normalizeAgentKey, av as isClaudeOpus55Model, aw as supportsClaudeOpus55, ax as AUTOMATION_SUMMARY_MAX_CHARS, ay as AUTOMATION_CLAIM_MAX_RUNS, az as AUTOMATION_DEFAULT_LEASE_MS, f as isAutomationRunTerminal, aA as isDaemonRunningCurrentlyInstalledHappyVersion, aB as stopDaemon, aC as acquireDaemonLock, aD as BackgroundTaskTracker, aE as deletePersistedSessions, N as decrypt, aF as writeDaemonState, aG as writeSettings, aH as cleanupDaemonState, aI as releaseDaemonLock, i as isValidSessionId, m as spawnDaemonSession, a4 as isValidTerminalId, aJ as ContextUsageSchema, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, o as CLIPBOARD_MAX_BYTES, v as notifyDaemonSessionStarted, y as reportSessionEditToDaemon, aK as clearCredentials, aL as clearMachineId, h as readCredentialsForConfiguredRelay, aM as SandboxConfigSchema, e as createEnvelope, O as listDaemonSessions, n as stopDaemonSession, aN as getLatestDaemonLog } from './limits-A2c-3M-_.mjs';
4
+ import { g as getProjectPath, k as initializeSandbox, w as wrapCommand, j as contentLogMetadata, I as InvalidateSync, R as RawJSONLinesSchema, l as AsyncLock, M as MAX_CHAT_ATTACHMENT_SOURCE_BYTES, m as commandOnPath, n as deriveLocalCliUpdateSummary, o as isClaudeSessionId, q as getLocalHappyAgentCredentialPath, s as readLocalHappyAgentCredentials, t as parseExactVersion, u as compareExactVersions, v as extractCompleteLines, x as decideBackfill, y as parseTerminalHookPayload, z as tmuxArgs, B as scrubTmuxClientEnv, D as decideMirrorBinding, E as MIRROR_BACKFILL_LINES_DEFAULT, G as mirrorLineKey, H as mirrorLocalId, J as detectCLIAvailability, K as detectResumeSupport, L as refreshAgentHomes, d as describeAgentHome, T as TurnActivityTracker, N as summarizeSpawnSessionForLog, O as locateClaudeConversation, P as agentHomeSpawnEnv, Q as shellescape, A as ApiClient, S as fetchCliUpdateState, U as resolveCliUpdateCheckInterval, V as DEFAULT_CLI_UPDATE_CHECK_INTERVAL_MS, W as listVhTerminals, X as readVhTerminal, Y as sendToVhTerminal, Z as TITLE_PROMPT_PREFIX, _ as BOARD_ANALYZER_PROMPT_PREFIX, h as connectionState, $ as startOfflineReconnection, C as CodexAppServerClient } from './types-DIBF4U0Y.mjs';
5
+ import { l as logger, aa as sameBackgroundTasks, ab as notifyDaemonSessionEvent, x as BUILTIN_TODO_DISCOVERY, g as delay, ac as STREAM_DELTA_MAX_CHARS, ad as ensurePrivateDirectory, ae as hardenPrivateFile, c as configuration, af as notifyDaemonClaudeAuthFailed, ag as createBackgroundTaskTracker, F as packageJson, r as readSettings, ah as readCredentials, a0 as credentialRelayProblem, k as checkIfDaemonRunningAndCleanupStaleState, ai as readDaemonState, aj as AGENT_VERSION_SOURCES, w as encodeBase64, ak as readSettingsOutcome, u as updateSettings, al as encodeBase64Url, M as decodeBase64, am as writeCredentialsLegacy, an as writeCredentialsDataKey, ao as BACKGROUND_TASK_DESCRIPTION_MAX, ap as BACKGROUND_TASKS_MAX, d as readPersistedSessions, E as writePrivateFileSync, aq as decryptWithDataKey, ar as decryptLegacy, as as persistSession, z as ensurePrivateDirectorySync, at as getAgentCodeDefaults, au as normalizeAgentKey, av as isClaudeOpus55Model, aw as supportsClaudeOpus55, ax as AUTOMATION_SUMMARY_MAX_CHARS, ay as AUTOMATION_CLAIM_MAX_RUNS, az as AUTOMATION_DEFAULT_LEASE_MS, f as isAutomationRunTerminal, aA as isDaemonRunningCurrentlyInstalledHappyVersion, aB as stopDaemon, aC as acquireDaemonLock, aD as BackgroundTaskTracker, aE as deletePersistedSessions, N as decrypt, aF as writeDaemonState, aG as writeSettings, aH as cleanupDaemonState, aI as releaseDaemonLock, i as isValidSessionId, m as spawnDaemonSession, a4 as isValidTerminalId, aJ as ContextUsageSchema, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, o as CLIPBOARD_MAX_BYTES, v as notifyDaemonSessionStarted, y as reportSessionEditToDaemon, aK as clearCredentials, aL as clearMachineId, h as readCredentialsForConfiguredRelay, aM as SandboxConfigSchema, e as createEnvelope, O as listDaemonSessions, n as stopDaemonSession, aN as getLatestDaemonLog } from './limits-D2uN090G.mjs';
6
6
  import spawn$1, { spawn } from 'cross-spawn';
7
7
  import path, { join, resolve, basename, delimiter, isAbsolute, dirname, sep, normalize } from 'node:path';
8
8
  import { createInterface } from 'node:readline';
9
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 './terminalTitleSuggest-DKgX3osW.mjs';
11
- import { K as trimIdent, L as AGENT_GUIDANCE, N as formatEditConflictNotice, H as sendUserMessage, S as SESSION_PEER_SENT_FROM, F as readSessionMetadata, R as RemoteCallBudget, O as REMOTE_WRITE_CALLS_PER_MINUTE, s as sendPeerMessage, j as listPeerSessions, u as deliverToSession, k as readSessionTranscript, l as listAccountSessions, g as listSessions, Q as guardRemoteSessionOpsRequest, U as remoteError, V as REMOTE_OP_DEADLINE_MS, W as formatRemoteAuditLine, X as REMOTE_SEND_COMMIT_DEADLINE_MS, Y as REMOTE_RESUME_WAIT_MS, Z as CLI_PEER_SENDER_ID, M as MAX_READ_LIMIT, _ as capRemoteTranscript, $ as capRemoteText, x as sessionWebUrl, a0 as REMOTE_ANSWER_MAX_BYTES, a1 as REMOTE_TITLE_MAX_BYTES, G as waitForSessionKey, q as archiveSession, a2 as createAutomationsClient, A as isAutomationsUnavailable, a3 as AutomationsRequestError, a4 as analyzeLatestTurn, a5 as readSessionLog$1, a6 as TURN_WINDOW, a7 as userPromptText, E as teamScopePath, a8 as TeamConnectionPreflightError, J as createTeamsClient, n as readRemoteTranscript, v as sendRemoteMessage, a9 as RemoteSessionOpsError, o as stopSession, P as PREVIEW_TOOL_NAME, aa as REPORT_PROGRESS_TOOL_NAME, ab as TEAM_TOOL_NAMES, ac as AUTOMATION_TOOL_NAMES, ad as SESSION_PEER_TOOL_NAMES, r as registerTeamsTools, c as registerAutomationTools, d as registerSessionPeerTools, ae as createSessionPeerToolExecutor, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, af as REPORT_PROGRESS_TOOL_TITLE, ag as REPORT_PROGRESS_TOOL_DESCRIPTION } from './agentGuidance-CU6YD_Ms.mjs';
11
+ import { K as trimIdent, L as AGENT_GUIDANCE, N as formatEditConflictNotice, H as sendUserMessage, S as SESSION_PEER_SENT_FROM, F as readSessionMetadata, R as RemoteCallBudget, O as REMOTE_WRITE_CALLS_PER_MINUTE, s as sendPeerMessage, j as listPeerSessions, u as deliverToSession, k as readSessionTranscript, l as listAccountSessions, g as listSessions, Q as guardRemoteSessionOpsRequest, U as remoteError, V as REMOTE_OP_DEADLINE_MS, W as formatRemoteAuditLine, X as REMOTE_SEND_COMMIT_DEADLINE_MS, Y as REMOTE_RESUME_WAIT_MS, Z as CLI_PEER_SENDER_ID, M as MAX_READ_LIMIT, _ as capRemoteTranscript, $ as capRemoteText, x as sessionWebUrl, a0 as REMOTE_ANSWER_MAX_BYTES, a1 as REMOTE_TITLE_MAX_BYTES, G as waitForSessionKey, q as archiveSession, a2 as createAutomationsClient, A as isAutomationsUnavailable, a3 as AutomationsRequestError, a4 as analyzeLatestTurn, a5 as readSessionLog$1, a6 as TURN_WINDOW, a7 as userPromptText, E as teamScopePath, a8 as TeamConnectionPreflightError, J as createTeamsClient, n as readRemoteTranscript, v as sendRemoteMessage, a9 as RemoteSessionOpsError, o as stopSession, P as PREVIEW_TOOL_NAME, aa as REPORT_PROGRESS_TOOL_NAME, ab as TEAM_TOOL_NAMES, ac as AUTOMATION_TOOL_NAMES, ad as SESSION_PEER_TOOL_NAMES, r as registerTeamsTools, c as registerAutomationTools, d as registerSessionPeerTools, ae as createSessionPeerToolExecutor, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION, af as REPORT_PROGRESS_TOOL_TITLE, ag as REPORT_PROGRESS_TOOL_DESCRIPTION } from './agentGuidance-CrR9l62U.mjs';
12
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';
@@ -5402,8 +5402,8 @@ ${typeLabels[type] || type}:`));
5402
5402
  }
5403
5403
  console.log(chalk.gray(" An external claude command is only needed for native terminal/mirror use."));
5404
5404
  try {
5405
- const { resolveAgentHomesForCli } = await import('./agentHome-BaJ9xtxB.mjs');
5406
- const { describeAgentHome } = await import('./types-BrGJ7PJz.mjs').then(function (n) { return n.a0; });
5405
+ const { resolveAgentHomesForCli } = await import('./agentHome-CyLmGH5L.mjs');
5406
+ const { describeAgentHome } = await import('./types-DIBF4U0Y.mjs').then(function (n) { return n.a0; });
5407
5407
  const homes = await resolveAgentHomesForCli();
5408
5408
  console.log(chalk.green(`\u2713 Claude config dir: ${describeAgentHome(homes.claudeConfigDir)}`));
5409
5409
  console.log(chalk.green(`\u2713 Codex home: ${describeAgentHome(homes.codexHome)}`));
@@ -10895,6 +10895,7 @@ ${action.prompt}`, { localId: `automation-${run.id}`, ...meta });
10895
10895
  for (const item of tracked.values()) {
10896
10896
  if (item.sessionId !== sessionId) continue;
10897
10897
  if (event === "exited") item.exited = true;
10898
+ if (event === "idle") item.attentionReported = false;
10898
10899
  if (event === "blocked" && !item.attentionReported) {
10899
10900
  item.attentionReported = true;
10900
10901
  void client.report(item.runId, { claimId: item.claimId, needsAttention: true, attentionReason: "needs_input" }).catch(() => deps.log(`Automation run ${item.runId} attention report failed`));
@@ -13481,7 +13482,7 @@ function registerSideQuestionHandler(rpc, deps) {
13481
13482
  const retainMs = deps.retainMs ?? SIDE_QUESTION_RETAIN_MS;
13482
13483
  const maxRunMs = deps.maxRunMs ?? SIDE_QUESTION_MAX_RUN_MS;
13483
13484
  const fork = deps.run ?? (async (input) => {
13484
- const { query } = await import('./index-DQcRkI9r.mjs');
13485
+ const { query } = await import('./index-DgO0FHOx.mjs');
13485
13486
  return runSideQuestion(query, input);
13486
13487
  });
13487
13488
  const run = async (input, live) => {
@@ -18789,7 +18790,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18789
18790
  return;
18790
18791
  } else if (subcommand === "install-terminal-hooks") {
18791
18792
  try {
18792
- const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-ELDoqh0A.mjs');
18793
+ const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-CpNbRFPz.mjs');
18793
18794
  const command = parseTerminalHooksArgs(args.slice(1));
18794
18795
  if (command.action === "help") {
18795
18796
  console.log(TERMINAL_HOOKS_HELP);
@@ -18806,7 +18807,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18806
18807
  }
18807
18808
  } else if (subcommand === "agent-home") {
18808
18809
  try {
18809
- const { parseAgentHomeArgs, runAgentHomeCommand } = await import('./agentHome-BaJ9xtxB.mjs');
18810
+ const { parseAgentHomeArgs, runAgentHomeCommand } = await import('./agentHome-CyLmGH5L.mjs');
18810
18811
  await runAgentHomeCommand(parseAgentHomeArgs(args.slice(1)));
18811
18812
  process.exit(0);
18812
18813
  } catch (error) {
@@ -18815,7 +18816,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18815
18816
  }
18816
18817
  } else if (subcommand === "spawn") {
18817
18818
  try {
18818
- const { handleSpawnCommand } = await import('./spawn-CdihhwHs.mjs');
18819
+ const { handleSpawnCommand } = await import('./spawn-D0QVhzRb.mjs');
18819
18820
  await handleSpawnCommand(args.slice(1));
18820
18821
  } catch (error) {
18821
18822
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -18827,7 +18828,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18827
18828
  return;
18828
18829
  } else if (subcommand === "sessions") {
18829
18830
  try {
18830
- const { handleSessionsCommand } = await import('./sessions-DsE01xKc.mjs');
18831
+ const { handleSessionsCommand } = await import('./sessions-W6771g3X.mjs');
18831
18832
  await handleSessionsCommand(args.slice(1));
18832
18833
  } catch (error) {
18833
18834
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -18839,7 +18840,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18839
18840
  return;
18840
18841
  } else if (subcommand === "send") {
18841
18842
  try {
18842
- const { handleSendCommand } = await import('./send-D5CyRyZ_.mjs');
18843
+ const { handleSendCommand } = await import('./send-C9mOtChi.mjs');
18843
18844
  await handleSendCommand(args.slice(1));
18844
18845
  } catch (error) {
18845
18846
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -18945,9 +18946,9 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18945
18946
  if (geminiSubcommand === "project" && args[2] === "set" && args[3]) {
18946
18947
  const projectId = args[3];
18947
18948
  try {
18948
- const { saveGoogleCloudProjectToConfig } = await import('./config-aAbhJllb.mjs');
18949
- const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-A2c-3M-_.mjs').then(function (n) { return n.aO; });
18950
- const { ApiClient: ApiClient2 } = await import('./types-BrGJ7PJz.mjs').then(function (n) { return n.a1; });
18949
+ const { saveGoogleCloudProjectToConfig } = await import('./config-BtPArqRH.mjs');
18950
+ const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-D2uN090G.mjs').then(function (n) { return n.aO; });
18951
+ const { ApiClient: ApiClient2 } = await import('./types-DIBF4U0Y.mjs').then(function (n) { return n.a1; });
18951
18952
  let userEmail = void 0;
18952
18953
  try {
18953
18954
  const credentials = await readCredentialsForConfiguredRelay2();
@@ -18978,7 +18979,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
18978
18979
  }
18979
18980
  if (geminiSubcommand === "project" && args[2] === "get") {
18980
18981
  try {
18981
- const { readGeminiLocalConfig } = await import('./config-aAbhJllb.mjs');
18982
+ const { readGeminiLocalConfig } = await import('./config-BtPArqRH.mjs');
18982
18983
  const config = readGeminiLocalConfig();
18983
18984
  if (config.googleCloudProject) {
18984
18985
  console.log(`Current Google Cloud Project: ${config.googleCloudProject}`);
@@ -19018,7 +19019,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
19018
19019
  process.exit(0);
19019
19020
  }
19020
19021
  try {
19021
- const { runGemini } = await import('./runGemini-Cj6oJQ-I.mjs');
19022
+ const { runGemini } = await import('./runGemini-Cjii069p.mjs');
19022
19023
  let startedBy = void 0;
19023
19024
  for (let i = 1; i < args.length; i++) {
19024
19025
  if (args[i] === "--started-by") {
@@ -19041,7 +19042,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
19041
19042
  } else if (subcommand === "pi") {
19042
19043
  if (args[1] === "--terminal") {
19043
19044
  try {
19044
- const { runPiTerminal } = await import('./piTerminal-DwWmgumi.mjs');
19045
+ const { runPiTerminal } = await import('./piTerminal-DilKwM7B.mjs');
19045
19046
  process.exitCode = await runPiTerminal(args.slice(2));
19046
19047
  } catch (error) {
19047
19048
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Unknown error");
@@ -19058,7 +19059,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
19058
19059
  }
19059
19060
  };
19060
19061
  try {
19061
- const { runAcp, resolveAcpAgentConfig } = await import('./index-BVu8Cufk.mjs');
19062
+ const { runAcp, resolveAcpAgentConfig } = await import('./index-ZChGsuB7.mjs');
19062
19063
  const parsed = parsePiRunnerArgs(args.slice(1));
19063
19064
  const resolved = resolveAcpAgentConfig(["pi", ...parsed.passthrough]);
19064
19065
  const { credentials } = await authAndSetupMachineIfNeeded();
@@ -19086,7 +19087,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
19086
19087
  return;
19087
19088
  } else if (subcommand === "acp") {
19088
19089
  try {
19089
- const { runAcp, resolveAcpAgentConfig } = await import('./index-BVu8Cufk.mjs');
19090
+ const { runAcp, resolveAcpAgentConfig } = await import('./index-ZChGsuB7.mjs');
19090
19091
  let startedBy = void 0;
19091
19092
  let verbose = false;
19092
19093
  const acpArgs = [];
@@ -19126,7 +19127,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
19126
19127
  return;
19127
19128
  } else if (subcommand === "openclaw") {
19128
19129
  try {
19129
- const { runOpenClaw } = await import('./runOpenClaw-DUCQxkI-.mjs');
19130
+ const { runOpenClaw } = await import('./runOpenClaw-jaLr7KF1.mjs');
19130
19131
  let startedBy = void 0;
19131
19132
  let verbose = false;
19132
19133
  let gatewayUrl;
@@ -19177,7 +19178,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
19177
19178
  return;
19178
19179
  } else if (subcommand === "todo") {
19179
19180
  try {
19180
- const { handleTodoCommand } = await import('./todo-CuQAkSp2.mjs');
19181
+ const { handleTodoCommand } = await import('./todo-BbusB1zM.mjs');
19181
19182
  await handleTodoCommand(args.slice(1));
19182
19183
  } catch (error) {
19183
19184
  console.error(JSON.stringify({ error: error instanceof Error ? error.message : "Todo command failed" }));
@@ -19186,7 +19187,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
19186
19187
  return;
19187
19188
  } else if (subcommand === "teams") {
19188
19189
  try {
19189
- const { handleTeamsCommand } = await import('./teams-BE8nMB6O.mjs');
19190
+ const { handleTeamsCommand } = await import('./teams-CqSwtw2O.mjs');
19190
19191
  await handleTeamsCommand(args.slice(1));
19191
19192
  } catch (error) {
19192
19193
  console.error(error instanceof Error ? error.message : "Teams command failed");
@@ -19195,7 +19196,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
19195
19196
  return;
19196
19197
  } else if (subcommand === "auto") {
19197
19198
  try {
19198
- const { handleAutoCommand } = await import('./auto-B1YAwaeU.mjs');
19199
+ const { handleAutoCommand } = await import('./auto-BlMZPwOk.mjs');
19199
19200
  await handleAutoCommand(args.slice(1));
19200
19201
  } catch (error) {
19201
19202
  console.error(chalk.red("Error:"), error instanceof Error ? error.message : "Automation command failed");
@@ -19207,7 +19208,7 @@ Conversation history is preserved on the server, but in-flight tool calls are in
19207
19208
  return;
19208
19209
  } else if (subcommand === "mcp" && (args.length === 1 || args.length === 2 && args[1] === "--terminal-tools")) {
19209
19210
  try {
19210
- const { handleMcpCommand } = await import('./mcp-Bo934Kpy.mjs');
19211
+ const { handleMcpCommand } = await import('./mcp-BN6bKIGb.mjs');
19211
19212
  await handleMcpCommand(args[1] === "--terminal-tools");
19212
19213
  } catch (error) {
19213
19214
  process.stderr.write(`[very-happy mcp] Fatal: ${error instanceof Error ? error.message : String(error)}
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-C9QzZsUQ.cjs');
3
+ var index = require('./index-BG932eCh.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-B0sSi6eM.cjs');
8
+ require('./types-DnrPeN80.cjs');
9
9
  require('axios');
10
- require('./limits-CyuIt-Vl.cjs');
10
+ require('./limits-kqFqhfsh.cjs');
11
11
  require('zod');
12
12
  require('@paralleldrive/cuid2');
13
13
  require('node:fs/promises');
@@ -32,7 +32,7 @@ require('fs');
32
32
  require('node:readline');
33
33
  require('@anthropic-ai/sandbox-runtime');
34
34
  require('expo-server-sdk');
35
- require('./agentGuidance-Db76O1kw.cjs');
35
+ require('./agentGuidance-DwOWbX55.cjs');
36
36
  require('ink');
37
37
  require('react');
38
38
  require('ps-list');
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var AcpBackend = require('./AcpBackend-BymWX-LI.cjs');
4
- var persistence = require('./limits-CyuIt-Vl.cjs');
5
- var AcpSessionManager = require('./AcpSessionManager-BF7zBGAi.cjs');
6
- var index$1 = require('./index-C9QzZsUQ.cjs');
7
- var piRuntime = require('./piRuntime-CJjA26oD.cjs');
3
+ var AcpBackend = require('./AcpBackend-DIDRig5G.cjs');
4
+ var persistence = require('./limits-kqFqhfsh.cjs');
5
+ var AcpSessionManager = require('./AcpSessionManager-C44U99CC.cjs');
6
+ var index$1 = require('./index-BG932eCh.cjs');
7
+ var piRuntime = require('./piRuntime-3qtbKujX.cjs');
8
8
  var node_crypto = require('node:crypto');
9
9
  var path = require('node:path');
10
- var index = require('./types-B0sSi6eM.cjs');
10
+ var index = require('./types-DnrPeN80.cjs');
11
11
  var terminalTitleSuggest = require('./terminalTitleSuggest-Dji8I0Jy.cjs');
12
12
  require('node:child_process');
13
13
  require('@agentclientprotocol/sdk');
@@ -21,7 +21,7 @@ require('node:util');
21
21
  require('node:os');
22
22
  require('cross-spawn');
23
23
  require('node:readline');
24
- require('./agentGuidance-Db76O1kw.cjs');
24
+ require('./agentGuidance-DwOWbX55.cjs');
25
25
  require('axios');
26
26
  require('socket.io-client');
27
27
  require('fs/promises');
@@ -1,11 +1,11 @@
1
- import { q as query } from './index-BYU1e81k.mjs';
1
+ import { q as query } from './index-CVCt3kSt.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-BrGJ7PJz.mjs';
6
+ import './types-DIBF4U0Y.mjs';
7
7
  import 'axios';
8
- import './limits-A2c-3M-_.mjs';
8
+ import './limits-D2uN090G.mjs';
9
9
  import 'zod';
10
10
  import '@paralleldrive/cuid2';
11
11
  import 'node:fs/promises';
@@ -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-CU6YD_Ms.mjs';
33
+ import './agentGuidance-CrR9l62U.mjs';
34
34
  import 'ink';
35
35
  import 'react';
36
36
  import 'ps-list';
@@ -1,12 +1,12 @@
1
- import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-Cy18U7yw.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-Cy18U7yw.mjs';
3
- import { r as readSettings, v as notifyDaemonSessionStarted, w as encodeBase64, l as logger, x as BUILTIN_TODO_DISCOVERY, c as configuration, y as reportSessionEditToDaemon } from './limits-A2c-3M-_.mjs';
4
- import { A as AcpSessionManager } from './AcpSessionManager-Ds8rcp95.mjs';
5
- import { h as initialMachineMetadata, j as createSessionMetadata, k as setupOfflineReconnection, l as StreamRelay, M as MessageQueue2, m as hashObject, n as startHappyServer, o as registerAgentAttachmentDownloads, u as TitleGenerator, v as registerKillSessionHandler, C as CLAUDE_ATTACHMENT_KINDS, w as stageClaudeAttachments, x as appendStagedAttachmentsToPrompt, B as BasePermissionHandler, E as EditReportThrottle, y as extractAcpEditPaths, z as writeSessionModeFile, F as normalizeAcpPermissionMode, H as removeSessionModeFile } from './index-BYU1e81k.mjs';
6
- import { p as preparePiTeamsRuntime } from './piRuntime-DdEY2mE9.mjs';
1
+ import { D as DefaultTransport, A as AcpBackend } from './AcpBackend-vDVLHuYJ.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-vDVLHuYJ.mjs';
3
+ import { r as readSettings, v as notifyDaemonSessionStarted, w as encodeBase64, l as logger, x as BUILTIN_TODO_DISCOVERY, c as configuration, y as reportSessionEditToDaemon } from './limits-D2uN090G.mjs';
4
+ import { A as AcpSessionManager } from './AcpSessionManager-CmRjfhn3.mjs';
5
+ import { h as initialMachineMetadata, j as createSessionMetadata, k as setupOfflineReconnection, l as StreamRelay, M as MessageQueue2, m as hashObject, n as startHappyServer, o as registerAgentAttachmentDownloads, u as TitleGenerator, v as registerKillSessionHandler, C as CLAUDE_ATTACHMENT_KINDS, w as stageClaudeAttachments, x as appendStagedAttachmentsToPrompt, B as BasePermissionHandler, E as EditReportThrottle, y as extractAcpEditPaths, z as writeSessionModeFile, F as normalizeAcpPermissionMode, H as removeSessionModeFile } from './index-CVCt3kSt.mjs';
6
+ import { p as preparePiTeamsRuntime } from './piRuntime-bkw2NAZU.mjs';
7
7
  import { randomUUID } from 'node:crypto';
8
8
  import { join } from 'node:path';
9
- import { h as connectionState, A as ApiClient } from './types-BrGJ7PJz.mjs';
9
+ import { h as connectionState, A as ApiClient } from './types-DIBF4U0Y.mjs';
10
10
  import { p as projectPath } from './terminalTitleSuggest-DKgX3osW.mjs';
11
11
  import 'node:child_process';
12
12
  import '@agentclientprotocol/sdk';
@@ -20,7 +20,7 @@ import 'node:util';
20
20
  import 'node:os';
21
21
  import 'cross-spawn';
22
22
  import 'node:readline';
23
- import './agentGuidance-CU6YD_Ms.mjs';
23
+ import './agentGuidance-CrR9l62U.mjs';
24
24
  import 'axios';
25
25
  import 'socket.io-client';
26
26
  import 'fs/promises';
package/dist/index.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  require('chalk');
4
- require('./index-C9QzZsUQ.cjs');
5
- require('./limits-CyuIt-Vl.cjs');
4
+ require('./index-BG932eCh.cjs');
5
+ require('./limits-kqFqhfsh.cjs');
6
6
  require('zod');
7
- require('./types-B0sSi6eM.cjs');
7
+ require('./types-DnrPeN80.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('./terminalTitleSuggest-Dji8I0Jy.cjs');
16
16
  require('path');
17
17
  require('url');
18
- require('./agentGuidance-Db76O1kw.cjs');
18
+ require('./agentGuidance-DwOWbX55.cjs');
19
19
  require('node:fs/promises');
20
20
  require('axios');
21
21
  require('socket.io-client');
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import 'chalk';
2
- import './index-BYU1e81k.mjs';
3
- import './limits-A2c-3M-_.mjs';
2
+ import './index-CVCt3kSt.mjs';
3
+ import './limits-D2uN090G.mjs';
4
4
  import 'zod';
5
- import './types-BrGJ7PJz.mjs';
5
+ import './types-DIBF4U0Y.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 './terminalTitleSuggest-DKgX3osW.mjs';
14
14
  import 'path';
15
15
  import 'url';
16
- import './agentGuidance-CU6YD_Ms.mjs';
16
+ import './agentGuidance-CrR9l62U.mjs';
17
17
  import 'node:fs/promises';
18
18
  import 'axios';
19
19
  import 'socket.io-client';
@@ -1,7 +1,7 @@
1
1
  import { createHash, randomUUID } from 'node:crypto';
2
2
  import { unlink, rmdir, mkdir, lstat, readFile, writeFile, rename } from 'node:fs/promises';
3
3
  import { join, resolve, dirname } from 'node:path';
4
- import { T as TEAM_SKILL } from './index-BYU1e81k.mjs';
4
+ import { T as TEAM_SKILL } from './index-CVCt3kSt.mjs';
5
5
 
6
6
  async function assertPrivateDestination(directory) {
7
7
  for (let path = directory; ; path = dirname(path)) {
@@ -3,7 +3,7 @@
3
3
  var node_crypto = require('node:crypto');
4
4
  var promises = require('node:fs/promises');
5
5
  var path = require('node:path');
6
- var index = require('./index-C9QzZsUQ.cjs');
6
+ var index = require('./index-BG932eCh.cjs');
7
7
 
8
8
  async function assertPrivateDestination(directory) {
9
9
  for (let path$1 = directory; ; path$1 = path.dirname(path$1)) {
@@ -4,14 +4,14 @@ 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 './terminalTitleSuggest-DKgX3osW.mjs';
7
- import { b as tmuxSupportsSessionEnv } from './index-BYU1e81k.mjs';
7
+ import { b as tmuxSupportsSessionEnv } from './index-CVCt3kSt.mjs';
8
8
  import 'path';
9
9
  import 'url';
10
10
  import 'zod';
11
11
  import 'node:crypto';
12
- import './types-BrGJ7PJz.mjs';
12
+ import './types-DIBF4U0Y.mjs';
13
13
  import 'axios';
14
- import './limits-A2c-3M-_.mjs';
14
+ import './limits-D2uN090G.mjs';
15
15
  import '@paralleldrive/cuid2';
16
16
  import 'node:fs/promises';
17
17
  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-CU6YD_Ms.mjs';
32
+ import './agentGuidance-CrR9l62U.mjs';
33
33
  import 'ink';
34
34
  import 'react';
35
35
  import '@anthropic-ai/claude-agent-sdk';
@@ -6,14 +6,14 @@ var os = require('node:os');
6
6
  var node_child_process = require('node:child_process');
7
7
  var chalk = require('chalk');
8
8
  var terminalTitleSuggest = require('./terminalTitleSuggest-Dji8I0Jy.cjs');
9
- var index = require('./index-C9QzZsUQ.cjs');
9
+ var index = require('./index-BG932eCh.cjs');
10
10
  require('path');
11
11
  require('url');
12
12
  require('zod');
13
13
  require('node:crypto');
14
- require('./types-B0sSi6eM.cjs');
14
+ require('./types-DnrPeN80.cjs');
15
15
  require('axios');
16
- require('./limits-CyuIt-Vl.cjs');
16
+ require('./limits-kqFqhfsh.cjs');
17
17
  require('@paralleldrive/cuid2');
18
18
  require('node:fs/promises');
19
19
  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-Db76O1kw.cjs');
34
+ require('./agentGuidance-DwOWbX55.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-B0sSi6eM.cjs');
4
- var persistence = require('./limits-CyuIt-Vl.cjs');
3
+ var index = require('./types-DnrPeN80.cjs');
4
+ var persistence = require('./limits-kqFqhfsh.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-BrGJ7PJz.mjs';
2
- export { c as configuration, l as logger } from './limits-A2c-3M-_.mjs';
1
+ export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema } from './types-DIBF4U0Y.mjs';
2
+ export { c as configuration, l as logger } from './limits-D2uN090G.mjs';
3
3
  import 'axios';
4
4
  import 'node:events';
5
5
  import 'socket.io-client';
@@ -11,7 +11,7 @@ import { homedir } from 'node:os';
11
11
  import { join, basename } from 'node:path';
12
12
 
13
13
  var name = "very-happy-cli";
14
- var version = "0.2.157";
14
+ var version = "0.2.158";
15
15
  var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
16
16
  var author = "Kirill Dubovitskiy";
17
17
  var contributors = [
@@ -128,12 +128,12 @@ var dependencies = {
128
128
  zod: "^4.0.0"
129
129
  };
130
130
  var optionalDependencies = {
131
- "very-happy-tools-arm64-darwin": "0.2.157",
132
- "very-happy-tools-x64-darwin": "0.2.157",
133
- "very-happy-tools-arm64-linux": "0.2.157",
134
- "very-happy-tools-x64-linux": "0.2.157",
135
- "very-happy-tools-arm64-win32": "0.2.157",
136
- "very-happy-tools-x64-win32": "0.2.157"
131
+ "very-happy-tools-arm64-darwin": "0.2.158",
132
+ "very-happy-tools-x64-darwin": "0.2.158",
133
+ "very-happy-tools-arm64-linux": "0.2.158",
134
+ "very-happy-tools-x64-linux": "0.2.158",
135
+ "very-happy-tools-arm64-win32": "0.2.158",
136
+ "very-happy-tools-x64-win32": "0.2.158"
137
137
  };
138
138
  var devDependencies = {
139
139
  "@slopus/happy-wire": "workspace:*",
@@ -1661,6 +1661,7 @@ z$1.object({
1661
1661
  attentionReason: z$1.string().max(512).nullable().optional(),
1662
1662
  leaseMs: z$1.number().int().min(5e3).max(36e5).optional()
1663
1663
  });
1664
+ z$1.object({ by: z$1.string().min(1).max(64).optional() });
1664
1665
  z$1.object({ key: z$1.string().min(1).max(512), sessionId: id });
1665
1666
  z$1.object({ key: z$1.string().min(1).max(512) });
1666
1667
  z$1.object({
@@ -31,7 +31,7 @@ function _interopNamespaceDefault(e) {
31
31
  var z__namespace = /*#__PURE__*/_interopNamespaceDefault(z);
32
32
 
33
33
  var name = "very-happy-cli";
34
- var version = "0.2.157";
34
+ var version = "0.2.158";
35
35
  var description = "Remote multi-agent workspace CLI with deep Claude integration, native terminal streaming, and self-hosting.";
36
36
  var author = "Kirill Dubovitskiy";
37
37
  var contributors = [
@@ -148,12 +148,12 @@ var dependencies = {
148
148
  zod: "^4.0.0"
149
149
  };
150
150
  var optionalDependencies = {
151
- "very-happy-tools-arm64-darwin": "0.2.157",
152
- "very-happy-tools-x64-darwin": "0.2.157",
153
- "very-happy-tools-arm64-linux": "0.2.157",
154
- "very-happy-tools-x64-linux": "0.2.157",
155
- "very-happy-tools-arm64-win32": "0.2.157",
156
- "very-happy-tools-x64-win32": "0.2.157"
151
+ "very-happy-tools-arm64-darwin": "0.2.158",
152
+ "very-happy-tools-x64-darwin": "0.2.158",
153
+ "very-happy-tools-arm64-linux": "0.2.158",
154
+ "very-happy-tools-x64-linux": "0.2.158",
155
+ "very-happy-tools-arm64-win32": "0.2.158",
156
+ "very-happy-tools-x64-win32": "0.2.158"
157
157
  };
158
158
  var devDependencies = {
159
159
  "@slopus/happy-wire": "workspace:*",
@@ -1681,6 +1681,7 @@ z.z.object({
1681
1681
  attentionReason: z.z.string().max(512).nullable().optional(),
1682
1682
  leaseMs: z.z.number().int().min(5e3).max(36e5).optional()
1683
1683
  });
1684
+ z.z.object({ by: z.z.string().min(1).max(64).optional() });
1684
1685
  z.z.object({ key: z.z.string().min(1).max(512), sessionId: id });
1685
1686
  z.z.object({ key: z.z.string().min(1).max(512) });
1686
1687
  z.z.object({
@@ -1,9 +1,9 @@
1
- import { r as registerTeamsTools, P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION } from './agentGuidance-CU6YD_Ms.mjs';
1
+ import { r as registerTeamsTools, P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION } from './agentGuidance-CrR9l62U.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 { l as logger, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, p as pushClipboardViaDaemon, o as CLIPBOARD_MAX_BYTES, q as pushFilePreviewViaDaemon, t as setTerminalTitleViaDaemon } from './limits-A2c-3M-_.mjs';
6
- import { e as checkPreviewPath, f as registerAssistantSessionTools, g as suggestTitleForPrompt } from './index-BYU1e81k.mjs';
5
+ import { l as logger, C as CLIPBOARD_TOOL_NAME, a as CLIPBOARD_TOOL_TITLE, b as CLIPBOARD_TOOL_DESCRIPTION, p as pushClipboardViaDaemon, o as CLIPBOARD_MAX_BYTES, q as pushFilePreviewViaDaemon, t as setTerminalTitleViaDaemon } from './limits-D2uN090G.mjs';
6
+ import { e as checkPreviewPath, f as registerAssistantSessionTools, g as suggestTitleForPrompt } from './index-CVCt3kSt.mjs';
7
7
  import 'node:fs/promises';
8
8
  import 'node:os';
9
9
  import 'node:crypto';
@@ -11,7 +11,7 @@ import 'axios';
11
11
  import 'tweetnacl';
12
12
  import 'socket.io-client';
13
13
  import 'node:child_process';
14
- import './types-BrGJ7PJz.mjs';
14
+ import './types-DIBF4U0Y.mjs';
15
15
  import 'node:fs';
16
16
  import 'node:path';
17
17
  import { b as TerminalTitleSuggestRequestSchema } from './terminalTitleSuggest-DKgX3osW.mjs';
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var agentGuidance = require('./agentGuidance-Db76O1kw.cjs');
3
+ var agentGuidance = require('./agentGuidance-DwOWbX55.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 persistence = require('./limits-CyuIt-Vl.cjs');
8
- var index = require('./index-C9QzZsUQ.cjs');
7
+ var persistence = require('./limits-kqFqhfsh.cjs');
8
+ var index = require('./index-BG932eCh.cjs');
9
9
  require('node:fs/promises');
10
10
  require('node:os');
11
11
  require('node:crypto');
@@ -13,7 +13,7 @@ require('axios');
13
13
  require('tweetnacl');
14
14
  require('socket.io-client');
15
15
  require('node:child_process');
16
- require('./types-B0sSi6eM.cjs');
16
+ require('./types-DnrPeN80.cjs');
17
17
  require('node:fs');
18
18
  require('node:path');
19
19
  var terminalTitleSuggest = require('./terminalTitleSuggest-Dji8I0Jy.cjs');
@@ -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-CyuIt-Vl.cjs');
7
- var index = require('./index-C9QzZsUQ.cjs');
6
+ var persistence = require('./limits-kqFqhfsh.cjs');
7
+ var index = require('./index-BG932eCh.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-A2c-3M-_.mjs';
5
- import { P as PI_TEAMS_EXTENSION } from './index-BYU1e81k.mjs';
4
+ import { c as configuration } from './limits-D2uN090G.mjs';
5
+ import { P as PI_TEAMS_EXTENSION } from './index-CVCt3kSt.mjs';
6
6
 
7
7
  async function publish(path, content, mode) {
8
8
  const temporary = `${path}.${randomUUID()}.new`;