very-happy-cli 0.2.144 → 0.2.145

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 (49) hide show
  1. package/dist/{AcpBackend-DLsPpWnc.mjs → AcpBackend-BITeBnbV.mjs} +2 -2
  2. package/dist/{AcpBackend-DssrjZDS.cjs → AcpBackend-FPv5uXFa.cjs} +2 -2
  3. package/dist/{AcpSessionManager-DkBV80Rr.cjs → AcpSessionManager-vqLzM219.cjs} +1 -1
  4. package/dist/{AcpSessionManager-1pAH8SdV.mjs → AcpSessionManager-w2srpWQJ.mjs} +1 -1
  5. package/dist/{agentGuidance-D1PDVswF.cjs → agentGuidance-Bd6GEiYp.cjs} +1 -1
  6. package/dist/{agentGuidance-CupQ9Lve.mjs → agentGuidance-HFHrz3C1.mjs} +1 -1
  7. package/dist/{agentHome-uf1zs2Fi.cjs → agentHome-CGl7FF7a.cjs} +2 -2
  8. package/dist/{agentHome-BaSxP7lQ.mjs → agentHome-DBqr8rpv.mjs} +2 -2
  9. package/dist/codex/happyMcpStdioBridge.cjs +2 -2
  10. package/dist/codex/happyMcpStdioBridge.mjs +2 -2
  11. package/dist/{config-CxHoQo52.mjs → config-B9zAvnGT.mjs} +4 -4
  12. package/dist/{config-kx4y9oAI.cjs → config-CPfFuHP6.cjs} +4 -4
  13. package/dist/{index-J6a8OHS6.mjs → index-BzLZu_aF.mjs} +8 -8
  14. package/dist/{index-DxEaiVzX.mjs → index-CxK0l_t0.mjs} +4 -4
  15. package/dist/{index-DIoSNgtt.cjs → index-D4Smqppj.cjs} +4 -4
  16. package/dist/{index-Dn0JMM8l.cjs → index-DhwtFJEe.cjs} +94 -42
  17. package/dist/{index-Dox9iD5R.cjs → index-avfJgX4p.cjs} +7 -7
  18. package/dist/{index-Diu81aSC.mjs → index-eBrE-0R1.mjs} +90 -38
  19. package/dist/index.cjs +4 -4
  20. package/dist/index.mjs +4 -4
  21. package/dist/{installTerminalHooks-BBMGk3q5.mjs → installTerminalHooks-Dq1MFFDQ.mjs} +4 -4
  22. package/dist/{installTerminalHooks-De7_iOOC.cjs → installTerminalHooks-DspFGxBI.cjs} +4 -4
  23. package/dist/lib.cjs +2 -2
  24. package/dist/lib.mjs +2 -2
  25. package/dist/{limits-DxArdmkZ.mjs → limits-CzWD9hWU.mjs} +7 -7
  26. package/dist/{limits-C_Sklt--.cjs → limits-DGZB-OVl.cjs} +7 -7
  27. package/dist/{mcp-xyb8dYIQ.cjs → mcp-BioGrTC_.cjs} +4 -4
  28. package/dist/{mcp-C1oNnlw5.mjs → mcp-L1Yq25LB.mjs} +4 -4
  29. package/dist/{piRuntime-3Vbdgv6X.cjs → piRuntime-DodWS0UI.cjs} +2 -2
  30. package/dist/{piRuntime-CzJdE4z4.mjs → piRuntime-UdVG4eJ7.mjs} +2 -2
  31. package/dist/{piTerminal-BFpwVGWr.cjs → piTerminal-6P00O_w8.cjs} +6 -6
  32. package/dist/{piTerminal-Do2GiKMN.mjs → piTerminal-BIRroC_N.mjs} +6 -6
  33. package/dist/{runGemini-De5NRMT9.mjs → runGemini-B-It6K8t.mjs} +6 -6
  34. package/dist/{runGemini-CCdGxTF2.cjs → runGemini-ChCHjnIh.cjs} +6 -6
  35. package/dist/{runOpenClaw-CRMUfrWk.cjs → runOpenClaw-Cc4_zmHz.cjs} +5 -5
  36. package/dist/{runOpenClaw-C2t4DRyi.mjs → runOpenClaw-DET6LY2v.mjs} +5 -5
  37. package/dist/{send-l6Rj09c0.mjs → send-CPayvXBm.mjs} +4 -4
  38. package/dist/{send-BA1Dgpgn.cjs → send-LBjLfAos.cjs} +4 -4
  39. package/dist/{sessions-MWLDqQk-.mjs → sessions-CJUEp43_.mjs} +4 -4
  40. package/dist/{sessions-CtVcoXvG.cjs → sessions-WBowxNO-.cjs} +4 -4
  41. package/dist/{spawn-Be4nsNuQ.cjs → spawn-BqgZc7YE.cjs} +4 -4
  42. package/dist/{spawn-DKWR-6Qc.mjs → spawn-Dcetf5Jt.mjs} +4 -4
  43. package/dist/{teams-DMf9GNGE.mjs → teams-CW_Zb2Q1.mjs} +4 -4
  44. package/dist/{teams-CcjjNLi8.cjs → teams-eIUxGmqg.cjs} +4 -4
  45. package/dist/{todo-BEXZRm1A.mjs → todo-CV5fwHg_.mjs} +3 -3
  46. package/dist/{todo-EffYAnre.cjs → todo-DeouLiGa.cjs} +3 -3
  47. package/dist/{types-D6YKR7wo.mjs → types-BbvxVQF3.mjs} +1 -1
  48. package/dist/{types-DZ5c-9f3.cjs → types-Bqo68u61.cjs} +1 -1
  49. 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-D6YKR7wo.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-DxArdmkZ.mjs';
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-BbvxVQF3.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-CzWD9hWU.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-CupQ9Lve.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-HFHrz3C1.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-BaSxP7lQ.mjs');
5299
- const { describeAgentHome } = await import('./types-D6YKR7wo.mjs').then(function (n) { return n.al; });
5298
+ const { resolveAgentHomesForCli } = await import('./agentHome-DBqr8rpv.mjs');
5299
+ const { describeAgentHome } = await import('./types-BbvxVQF3.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
- "This is a SIDE QUESTION from the user, asked next to the main conversation above.",
12281
- "Answer it directly in a single response, using the conversation context and your own knowledge.",
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
- if (prior.length === 0) return trimmed;
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
- ${trimmed}`;
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 textFromAssistant(message) {
12323
- if (message.type !== "assistant") return "";
12339
+ function assistantBlocks(message) {
12340
+ if (message.type !== "assistant") return [];
12324
12341
  const content = message.message?.content;
12325
- if (!Array.isArray(content)) return "";
12326
- return content.map((block) => block && typeof block === "object" && block.type === "text" ? String(block.text ?? "") : "").join("");
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
- const detail = Array.isArray(result.errors) && result.errors.length > 0 ? String(result.errors[0]) : typeof result.result === "string" && result.result ? result.result : result.subtype ?? "unknown";
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 (!resultSeen && !final && !streamed) throw new Error("Side question ended without a result");
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-DxEaiVzX.mjs');
12438
+ const { query } = await import('./index-CxK0l_t0.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) throw new Error("A side question is already running");
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-BBMGk3q5.mjs');
17688
+ const { installTerminalHooks, parseTerminalHooksArgs, TERMINAL_HOOKS_HELP } = await import('./installTerminalHooks-Dq1MFFDQ.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-BaSxP7lQ.mjs');
17705
+ const { parseAgentHomeArgs, runAgentHomeCommand } = await import('./agentHome-DBqr8rpv.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-DKWR-6Qc.mjs');
17714
+ const { handleSpawnCommand } = await import('./spawn-Dcetf5Jt.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-MWLDqQk-.mjs');
17726
+ const { handleSessionsCommand } = await import('./sessions-CJUEp43_.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-l6Rj09c0.mjs');
17738
+ const { handleSendCommand } = await import('./send-CPayvXBm.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-CxHoQo52.mjs');
17793
- const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-DxArdmkZ.mjs').then(function (n) { return n.Y; });
17794
- const { ApiClient: ApiClient2 } = await import('./types-D6YKR7wo.mjs').then(function (n) { return n.am; });
17844
+ const { saveGoogleCloudProjectToConfig } = await import('./config-B9zAvnGT.mjs');
17845
+ const { readCredentialsForConfiguredRelay: readCredentialsForConfiguredRelay2 } = await import('./limits-CzWD9hWU.mjs').then(function (n) { return n.Y; });
17846
+ const { ApiClient: ApiClient2 } = await import('./types-BbvxVQF3.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-CxHoQo52.mjs');
17877
+ const { readGeminiLocalConfig } = await import('./config-B9zAvnGT.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-De5NRMT9.mjs');
17917
+ const { runGemini } = await import('./runGemini-B-It6K8t.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-Do2GiKMN.mjs');
17940
+ const { runPiTerminal } = await import('./piTerminal-BIRroC_N.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-J6a8OHS6.mjs');
17957
+ const { runAcp, resolveAcpAgentConfig } = await import('./index-BzLZu_aF.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-J6a8OHS6.mjs');
17985
+ const { runAcp, resolveAcpAgentConfig } = await import('./index-BzLZu_aF.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-C2t4DRyi.mjs');
18025
+ const { runOpenClaw } = await import('./runOpenClaw-DET6LY2v.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-BEXZRm1A.mjs');
18076
+ const { handleTodoCommand } = await import('./todo-CV5fwHg_.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-DMf9GNGE.mjs');
18085
+ const { handleTeamsCommand } = await import('./teams-CW_Zb2Q1.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-C1oNnlw5.mjs');
18094
+ const { handleMcpCommand } = await import('./mcp-L1Yq25LB.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)}
package/dist/index.cjs CHANGED
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  require('chalk');
4
- require('./index-Dn0JMM8l.cjs');
5
- require('./limits-C_Sklt--.cjs');
4
+ require('./index-DhwtFJEe.cjs');
5
+ require('./limits-DGZB-OVl.cjs');
6
6
  require('zod');
7
- require('./types-DZ5c-9f3.cjs');
7
+ require('./types-Bqo68u61.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-D1PDVswF.cjs');
18
+ require('./agentGuidance-Bd6GEiYp.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-Diu81aSC.mjs';
3
- import './limits-DxArdmkZ.mjs';
2
+ import './index-eBrE-0R1.mjs';
3
+ import './limits-CzWD9hWU.mjs';
4
4
  import 'zod';
5
- import './types-D6YKR7wo.mjs';
5
+ import './types-BbvxVQF3.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-CupQ9Lve.mjs';
16
+ import './agentGuidance-HFHrz3C1.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-Diu81aSC.mjs';
7
+ import { t as tmuxSupportsSessionEnv } from './index-eBrE-0R1.mjs';
8
8
  import 'path';
9
9
  import 'url';
10
10
  import 'node:crypto';
11
- import './types-D6YKR7wo.mjs';
11
+ import './types-BbvxVQF3.mjs';
12
12
  import 'axios';
13
- import './limits-DxArdmkZ.mjs';
13
+ import './limits-CzWD9hWU.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-CupQ9Lve.mjs';
32
+ import './agentGuidance-HFHrz3C1.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-Dn0JMM8l.cjs');
9
+ var index = require('./index-DhwtFJEe.cjs');
10
10
  require('path');
11
11
  require('url');
12
12
  require('node:crypto');
13
- require('./types-DZ5c-9f3.cjs');
13
+ require('./types-Bqo68u61.cjs');
14
14
  require('axios');
15
- require('./limits-C_Sklt--.cjs');
15
+ require('./limits-DGZB-OVl.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-D1PDVswF.cjs');
34
+ require('./agentGuidance-Bd6GEiYp.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-DZ5c-9f3.cjs');
4
- var persistence = require('./limits-C_Sklt--.cjs');
3
+ var index = require('./types-Bqo68u61.cjs');
4
+ var persistence = require('./limits-DGZB-OVl.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-D6YKR7wo.mjs';
2
- export { c as configuration, l as logger } from './limits-DxArdmkZ.mjs';
1
+ export { A as ApiClient, a as ApiSessionClient, R as RawJSONLinesSchema } from './types-BbvxVQF3.mjs';
2
+ export { c as configuration, l as logger } from './limits-CzWD9hWU.mjs';
3
3
  import 'axios';
4
4
  import 'node:events';
5
5
  import 'socket.io-client';
@@ -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.144";
12
+ var version = "0.2.145";
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.144",
130
- "very-happy-tools-x64-darwin": "0.2.144",
131
- "very-happy-tools-arm64-linux": "0.2.144",
132
- "very-happy-tools-x64-linux": "0.2.144",
133
- "very-happy-tools-arm64-win32": "0.2.144",
134
- "very-happy-tools-x64-win32": "0.2.144"
129
+ "very-happy-tools-arm64-darwin": "0.2.145",
130
+ "very-happy-tools-x64-darwin": "0.2.145",
131
+ "very-happy-tools-arm64-linux": "0.2.145",
132
+ "very-happy-tools-x64-linux": "0.2.145",
133
+ "very-happy-tools-arm64-win32": "0.2.145",
134
+ "very-happy-tools-x64-win32": "0.2.145"
135
135
  };
136
136
  var devDependencies = {
137
137
  "@slopus/happy-wire": "workspace:*",
@@ -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.144";
33
+ var version = "0.2.145";
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.144",
151
- "very-happy-tools-x64-darwin": "0.2.144",
152
- "very-happy-tools-arm64-linux": "0.2.144",
153
- "very-happy-tools-x64-linux": "0.2.144",
154
- "very-happy-tools-arm64-win32": "0.2.144",
155
- "very-happy-tools-x64-win32": "0.2.144"
150
+ "very-happy-tools-arm64-darwin": "0.2.145",
151
+ "very-happy-tools-x64-darwin": "0.2.145",
152
+ "very-happy-tools-arm64-linux": "0.2.145",
153
+ "very-happy-tools-x64-linux": "0.2.145",
154
+ "very-happy-tools-arm64-win32": "0.2.145",
155
+ "very-happy-tools-x64-win32": "0.2.145"
156
156
  };
157
157
  var devDependencies = {
158
158
  "@slopus/happy-wire": "workspace:*",
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var agentGuidance = require('./agentGuidance-D1PDVswF.cjs');
3
+ var agentGuidance = require('./agentGuidance-Bd6GEiYp.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-DZ5c-9f3.cjs');
8
- var persistence = require('./limits-C_Sklt--.cjs');
9
- var index$1 = require('./index-Dn0JMM8l.cjs');
7
+ var index = require('./types-Bqo68u61.cjs');
8
+ var persistence = require('./limits-DGZB-OVl.cjs');
9
+ var index$1 = require('./index-DhwtFJEe.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-CupQ9Lve.mjs';
1
+ import { r as registerTeamsTools, P as PREVIEW_TOOL_NAME, a as PREVIEW_TOOL_TITLE, b as PREVIEW_TOOL_DESCRIPTION } from './agentGuidance-HFHrz3C1.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-D6YKR7wo.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-DxArdmkZ.mjs';
7
- import { h as checkPreviewPath, j as registerAssistantSessionTools } from './index-Diu81aSC.mjs';
5
+ import { j as pushClipboardViaDaemon, k as pushFilePreviewViaDaemon, l as setTerminalTitleViaDaemon } from './types-BbvxVQF3.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-CzWD9hWU.mjs';
7
+ import { h as checkPreviewPath, j as registerAssistantSessionTools } from './index-eBrE-0R1.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-C_Sklt--.cjs');
7
- var index = require('./index-Dn0JMM8l.cjs');
6
+ var persistence = require('./limits-DGZB-OVl.cjs');
7
+ var index = require('./index-DhwtFJEe.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-DxArdmkZ.mjs';
5
- import { P as PI_TEAMS_EXTENSION } from './index-Diu81aSC.mjs';
4
+ import { c as configuration } from './limits-CzWD9hWU.mjs';
5
+ import { P as PI_TEAMS_EXTENSION } from './index-eBrE-0R1.mjs';
6
6
 
7
7
  async function publish(path, content, mode) {
8
8
  const temporary = `${path}.${randomUUID()}.new`;
@@ -5,21 +5,21 @@ var node_crypto = require('node:crypto');
5
5
  var node_http = require('node:http');
6
6
  var mcp_js = require('@modelcontextprotocol/sdk/server/mcp.js');
7
7
  var streamableHttp_js = require('@modelcontextprotocol/sdk/server/streamableHttp.js');
8
- var piRuntime = require('./piRuntime-3Vbdgv6X.cjs');
9
- var mcp = require('./mcp-xyb8dYIQ.cjs');
10
- require('./agentGuidance-D1PDVswF.cjs');
8
+ var piRuntime = require('./piRuntime-DodWS0UI.cjs');
9
+ var mcp = require('./mcp-BioGrTC_.cjs');
10
+ require('./agentGuidance-Bd6GEiYp.cjs');
11
11
  require('node:fs/promises');
12
12
  require('node:os');
13
13
  require('zod');
14
- require('./limits-C_Sklt--.cjs');
14
+ require('./limits-DGZB-OVl.cjs');
15
15
  require('axios');
16
16
  require('tweetnacl');
17
17
  require('socket.io-client');
18
- require('./types-DZ5c-9f3.cjs');
18
+ require('./types-Bqo68u61.cjs');
19
19
  require('node:fs');
20
20
  require('node:path');
21
21
  var terminalToolContext = require('./terminalToolContext-DoV9Gs7K.cjs');
22
- require('./index-Dn0JMM8l.cjs');
22
+ require('./index-DhwtFJEe.cjs');
23
23
  require('chalk');
24
24
  require('cross-spawn');
25
25
  require('node:readline');
@@ -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-CzJdE4z4.mjs';
7
- import { registerMcpTools } from './mcp-C1oNnlw5.mjs';
8
- import './agentGuidance-CupQ9Lve.mjs';
6
+ import { p as preparePiTeamsRuntime } from './piRuntime-UdVG4eJ7.mjs';
7
+ import { registerMcpTools } from './mcp-L1Yq25LB.mjs';
8
+ import './agentGuidance-HFHrz3C1.mjs';
9
9
  import 'node:fs/promises';
10
10
  import 'node:os';
11
11
  import 'zod';
12
- import './limits-DxArdmkZ.mjs';
12
+ import './limits-CzWD9hWU.mjs';
13
13
  import 'axios';
14
14
  import 'tweetnacl';
15
15
  import 'socket.io-client';
16
- import './types-D6YKR7wo.mjs';
16
+ import './types-BbvxVQF3.mjs';
17
17
  import 'node:fs';
18
18
  import 'node:path';
19
19
  import { r as resolveMcpTerminalId } from './terminalToolContext-CFeGeaNm.mjs';
20
- import './index-Diu81aSC.mjs';
20
+ import './index-eBrE-0R1.mjs';
21
21
  import 'chalk';
22
22
  import 'cross-spawn';
23
23
  import 'node:readline';