vivus-agent 1.1.40 → 1.1.42

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 (2) hide show
  1. package/dist/main.js +113 -110
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env -S node --max-old-space-size=8192 --expose-gc
2
2
  // Vivus CLI — local AI coding agent
3
- // Built from source at 2026-08-06T21:07:27.446Z
3
+ // Built from source at 2026-09-17T00:45:26.407Z
4
4
  import { createRequire } from "node:module";
5
5
  var __create = Object.create;
6
6
  var __getProtoOf = Object.getPrototypeOf;
@@ -108228,7 +108228,7 @@ var init_auth = __esm(() => {
108228
108228
 
108229
108229
  // src/utils/userAgent.ts
108230
108230
  function getVivusCodeUserAgent() {
108231
- return `vivus/${"1.1.40+7a4108d"}`;
108231
+ return `vivus/${"1.1.42+bc7dcc4"}`;
108232
108232
  }
108233
108233
 
108234
108234
  // src/utils/workloadContext.ts
@@ -108250,7 +108250,7 @@ function getUserAgent() {
108250
108250
  const clientApp = process.env.VIVUS_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.VIVUS_AGENT_SDK_CLIENT_APP}` : "";
108251
108251
  const workload = getWorkload();
108252
108252
  const workloadSuffix = workload ? `, workload/${workload}` : "";
108253
- return `vivus-cli/${"1.1.40+7a4108d"} (${process.env.USER_TYPE}, ${process.env.VIVUS_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
108253
+ return `vivus-cli/${"1.1.42+bc7dcc4"} (${process.env.USER_TYPE}, ${process.env.VIVUS_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
108254
108254
  }
108255
108255
  function getMCPUserAgent() {
108256
108256
  const parts = [];
@@ -108264,7 +108264,7 @@ function getMCPUserAgent() {
108264
108264
  parts.push(`client-app/${process.env.VIVUS_AGENT_SDK_CLIENT_APP}`);
108265
108265
  }
108266
108266
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
108267
- return `vivus/${"1.1.40+7a4108d"}${suffix}`;
108267
+ return `vivus/${"1.1.42+bc7dcc4"}${suffix}`;
108268
108268
  }
108269
108269
  function getWebFetchUserAgent() {
108270
108270
  return `Vivus-User (${getVivusCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -108402,7 +108402,7 @@ var init_user = __esm(() => {
108402
108402
  deviceId,
108403
108403
  sessionId: getSessionId(),
108404
108404
  email: getEmail(),
108405
- appVersion: "1.1.40+7a4108d",
108405
+ appVersion: "1.1.42+bc7dcc4",
108406
108406
  platform: getHostPlatformForAnalytics(),
108407
108407
  organizationUuid,
108408
108408
  accountUuid,
@@ -119713,7 +119713,7 @@ var init_metadata = __esm(() => {
119713
119713
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
119714
119714
  WHITESPACE_REGEX = /\s+/;
119715
119715
  getVersionBase = memoize_default(() => {
119716
- const match = "1.1.40+7a4108d".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
119716
+ const match = "1.1.42+bc7dcc4".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
119717
119717
  return match ? match[0] : undefined;
119718
119718
  });
119719
119719
  buildEnvContext = memoize_default(async () => {
@@ -119753,9 +119753,9 @@ var init_metadata = __esm(() => {
119753
119753
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
119754
119754
  isVivusCodeAction: isEnvTruthy(process.env.VIVUS_CODE_ACTION),
119755
119755
  isVivusAiAuth: isVivusAISubscriber(),
119756
- version: "1.1.40+7a4108d",
119756
+ version: "1.1.42+bc7dcc4",
119757
119757
  versionBase: getVersionBase(),
119758
- buildTime: "2026-08-06T21:07:26.990Z",
119758
+ buildTime: "2026-09-17T00:45:25.657Z",
119759
119759
  deploymentEnvironment: env3.detectDeploymentEnvironment(),
119760
119760
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
119761
119761
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -120423,7 +120423,7 @@ function initialize1PEventLogging() {
120423
120423
  const platform2 = getPlatform();
120424
120424
  const attributes = {
120425
120425
  [import_semantic_conventions.ATTR_SERVICE_NAME]: "vivus",
120426
- [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.1.40+7a4108d"
120426
+ [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.1.42+bc7dcc4"
120427
120427
  };
120428
120428
  if (platform2 === "wsl") {
120429
120429
  const wslVersion = getWslVersion();
@@ -120450,7 +120450,7 @@ function initialize1PEventLogging() {
120450
120450
  })
120451
120451
  ]
120452
120452
  });
120453
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.vivus_code.events", "1.1.40+7a4108d");
120453
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.vivus_code.events", "1.1.42+bc7dcc4");
120454
120454
  }
120455
120455
  async function reinitialize1PEventLoggingIfConfigChanged() {
120456
120456
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -129269,8 +129269,8 @@ function getDescription() {
129269
129269
  return `A powerful search tool built on ripgrep
129270
129270
 
129271
129271
  Usage:
129272
- - ALWAYS use ${GREP_TOOL_NAME} for search tasks. NEVER invoke \`grep\` or \`rg\` as a ${BASH_TOOL_NAME} command. The ${GREP_TOOL_NAME} tool has been optimized for correct permissions and access.
129273
- - Supports full regex syntax (e.g., "log.*Error", "function\\s+\\w+")
129272
+ - Prefer ${GREP_TOOL_NAME} over invoking \`grep\` or \`rg\` as a ${BASH_TOOL_NAME} command — it is optimized for correct permissions and access. Only reach for the shell equivalents if the user explicitly asks for them.
129273
+ - Supports ripgrep's default regex engine (e.g., "log.*Error", "function\\s+\\w+"). It does NOT support lookaround ((?=...), (?!...)) or backreferences (\\1) — a pattern using those fails to parse; rewrite it without them rather than assuming the search is broken.
129274
129274
  - Filter files with glob parameter (e.g., "*.js", "**/*.tsx") or type parameter (e.g., "js", "py", "rust")
129275
129275
  - Output modes: "content" shows matching lines, "files_with_matches" shows only file paths (default), "count" shows match counts
129276
129276
  - Use ${AGENT_TOOL_NAME} tool for open-ended searches requiring multiple rounds
@@ -129336,8 +129336,8 @@ ${snippet}${totalLines > 10 ? `
129336
129336
  ... (${totalLines - 10} more lines)` : ""}`;
129337
129337
  }
129338
129338
  function renderPromptTemplate(lineFormat, maxSizeInstruction, offsetInstruction) {
129339
- return `Reads a file from the local filesystem. You can access any file directly by using this tool.
129340
- Assume this tool is able to read all files on the machine. If the User provides a path to a file assume that path is valid. It is okay to read a file that does not exist; an error will be returned.
129339
+ return `Reads a file from the local filesystem. You do not need to check whether a path exists or is readable before calling this tool.
129340
+ If the User provides a path to a file assume that path is valid. It is okay to read a file that does not exist; an error will be returned. Reads can also be refused by the user's permission settings, and a few special paths (e.g. character devices like /dev/tty) are always rejected — treat such a refusal as a normal, expected result to report, not as a broken tool to retry.
129341
129341
 
129342
129342
  Usage:
129343
129343
  - The file_path parameter must be an absolute path, not a relative path
@@ -162670,7 +162670,7 @@ function getAttributionHeader(fingerprint) {
162670
162670
  if (!isAttributionHeaderEnabled()) {
162671
162671
  return "";
162672
162672
  }
162673
- const version2 = `${"1.1.40+7a4108d"}.${fingerprint}`;
162673
+ const version2 = `${"1.1.42+bc7dcc4"}.${fingerprint}`;
162674
162674
  const entrypoint = process.env.VIVUS_CODE_ENTRYPOINT ?? "unknown";
162675
162675
  const cch = "";
162676
162676
  const workload = getWorkload();
@@ -162679,7 +162679,7 @@ function getAttributionHeader(fingerprint) {
162679
162679
  logForDebugging(`attribution header ${header}`);
162680
162680
  return header;
162681
162681
  }
162682
- var DEFAULT_PREFIX = `You are Vivus, Anthropic's official CLI for Vivus.`, AGENT_SDK_VIVUS_CODE_PRESET_PREFIX = `You are Vivus, Anthropic's official CLI for Vivus, running within the Vivus Agent SDK.`, AGENT_SDK_PREFIX = `You are a Vivus agent, built on Anthropic's Vivus Agent SDK.`, CLI_SYSPROMPT_PREFIX_VALUES, CLI_SYSPROMPT_PREFIXES;
162682
+ var DEFAULT_PREFIX = `You are Vivus, an AI coding agent for the command line.`, AGENT_SDK_VIVUS_CODE_PRESET_PREFIX = `You are Vivus, an AI coding agent for the command line, running within the Vivus Agent SDK.`, AGENT_SDK_PREFIX = `You are a Vivus agent, built on the Vivus Agent SDK.`, CLI_SYSPROMPT_PREFIX_VALUES, CLI_SYSPROMPT_PREFIXES;
162683
162683
  var init_system = __esm(() => {
162684
162684
  init_growthbook();
162685
162685
  init_debug();
@@ -175833,7 +175833,7 @@ function getTelemetryAttributes() {
175833
175833
  attributes["session.id"] = sessionId;
175834
175834
  }
175835
175835
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
175836
- attributes["app.version"] = "1.1.40+7a4108d";
175836
+ attributes["app.version"] = "1.1.42+bc7dcc4";
175837
175837
  }
175838
175838
  const oauthAccount = getOauthAccountInfo();
175839
175839
  if (oauthAccount) {
@@ -208452,7 +208452,7 @@ function getExploreSystemPrompt() {
208452
208452
  const embedded = hasEmbeddedSearchTools();
208453
208453
  const globGuidance = embedded ? `- Use \`find\` via ${BASH_TOOL_NAME} for broad file pattern matching` : `- Use ${GLOB_TOOL_NAME} for broad file pattern matching`;
208454
208454
  const grepGuidance = embedded ? `- Use \`grep\` via ${BASH_TOOL_NAME} for searching file contents with regex` : `- Use ${GREP_TOOL_NAME} for searching file contents with regex`;
208455
- return `You are a file search specialist for Vivus, Anthropic's official CLI for Vivus. You excel at thoroughly navigating and exploring codebases.
208455
+ return `You are a file search specialist for Vivus, an AI coding agent for the command line. You excel at thoroughly navigating and exploring codebases.
208456
208456
 
208457
208457
  === CRITICAL: READ-ONLY MODE - NO FILE MODIFICATIONS ===
208458
208458
  This is a READ-ONLY exploration task. You are STRICTLY PROHIBITED from:
@@ -208516,7 +208516,7 @@ function getGeneralPurposeSystemPrompt() {
208516
208516
 
208517
208517
  ${SHARED_GUIDELINES}`;
208518
208518
  }
208519
- var SHARED_PREFIX = `You are an agent for Vivus, Anthropic's official CLI for Vivus. Given the user's message, you should use the tools available to complete the task. Complete the task fully—don't gold-plate, but don't leave it half-done.`, SHARED_GUIDELINES = `Your strengths:
208519
+ var SHARED_PREFIX = `You are an agent for Vivus, an AI coding agent for the command line. Given the user's message, you should use the tools available to complete the task. Complete the task fully—don't gold-plate, but don't leave it half-done.`, SHARED_GUIDELINES = `Your strengths:
208520
208520
  - Searching for code, configurations, and patterns across large codebases
208521
208521
  - Analyzing multiple files to understand system architecture
208522
208522
  - Investigating complex questions that require exploring many files
@@ -242403,7 +242403,7 @@ function computeFingerprint(messageText, version2) {
242403
242403
  }
242404
242404
  function computeFingerprintFromMessages(messages) {
242405
242405
  const firstMessageText = extractFirstMessageText(messages);
242406
- return computeFingerprint(firstMessageText, "1.1.40+7a4108d");
242406
+ return computeFingerprint(firstMessageText, "1.1.42+bc7dcc4");
242407
242407
  }
242408
242408
  var FINGERPRINT_SALT = "59cf53e54c78";
242409
242409
  var init_fingerprint = () => {};
@@ -242445,7 +242445,7 @@ async function sideQuery(opts) {
242445
242445
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
242446
242446
  }
242447
242447
  const messageText = extractFirstUserMessageText(messages);
242448
- const fingerprint = computeFingerprint(messageText, "1.1.40+7a4108d");
242448
+ const fingerprint = computeFingerprint(messageText, "1.1.42+bc7dcc4");
242449
242449
  const attributionHeader = getAttributionHeader(fingerprint);
242450
242450
  const systemBlocks = [
242451
242451
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -243597,7 +243597,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
243597
243597
  const client2 = new Client({
243598
243598
  name: "vivus",
243599
243599
  title: "Vivus",
243600
- version: "1.1.40+7a4108d",
243600
+ version: "1.1.42+bc7dcc4",
243601
243601
  description: "Anthropic's agentic coding tool",
243602
243602
  websiteUrl: PRODUCT_URL
243603
243603
  }, {
@@ -243951,7 +243951,7 @@ var init_client6 = __esm(() => {
243951
243951
  const client2 = new Client({
243952
243952
  name: "vivus",
243953
243953
  title: "Vivus",
243954
- version: "1.1.40+7a4108d",
243954
+ version: "1.1.42+bc7dcc4",
243955
243955
  description: "Anthropic's agentic coding tool",
243956
243956
  websiteUrl: PRODUCT_URL
243957
243957
  }, {
@@ -246012,7 +246012,7 @@ function getInstallationEnv() {
246012
246012
  return;
246013
246013
  }
246014
246014
  function getVivusCodeVersion() {
246015
- return "1.1.40+7a4108d";
246015
+ return "1.1.42+bc7dcc4";
246016
246016
  }
246017
246017
  async function getInstalledVSCodeExtensionVersion(command) {
246018
246018
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -302099,7 +302099,7 @@ async function initializeBetaTracing(resource) {
302099
302099
  });
302100
302100
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
302101
302101
  setLoggerProvider(loggerProvider);
302102
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.40+7a4108d");
302102
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.42+bc7dcc4");
302103
302103
  setEventLogger(eventLogger);
302104
302104
  process.on("beforeExit", async () => {
302105
302105
  await loggerProvider?.forceFlush();
@@ -302139,7 +302139,7 @@ async function initializeTelemetry() {
302139
302139
  const platform5 = getPlatform();
302140
302140
  const baseAttributes = {
302141
302141
  [import_semantic_conventions2.ATTR_SERVICE_NAME]: "vivus",
302142
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.1.40+7a4108d"
302142
+ [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.1.42+bc7dcc4"
302143
302143
  };
302144
302144
  if (platform5 === "wsl") {
302145
302145
  const wslVersion = getWslVersion();
@@ -302184,7 +302184,7 @@ async function initializeTelemetry() {
302184
302184
  } catch {}
302185
302185
  };
302186
302186
  registerCleanup(shutdownTelemetry2);
302187
- return meterProvider2.getMeter("com.anthropic.vivus_code", "1.1.40+7a4108d");
302187
+ return meterProvider2.getMeter("com.anthropic.vivus_code", "1.1.42+bc7dcc4");
302188
302188
  }
302189
302189
  const meterProvider = new import_sdk_metrics2.MeterProvider({
302190
302190
  resource,
@@ -302204,7 +302204,7 @@ async function initializeTelemetry() {
302204
302204
  });
302205
302205
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
302206
302206
  setLoggerProvider(loggerProvider);
302207
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.40+7a4108d");
302207
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.42+bc7dcc4");
302208
302208
  setEventLogger(eventLogger);
302209
302209
  logForDebugging("[3P telemetry] Event logger set successfully");
302210
302210
  process.on("beforeExit", async () => {
@@ -302266,7 +302266,7 @@ Current timeout: ${timeoutMs}ms
302266
302266
  }
302267
302267
  };
302268
302268
  registerCleanup(shutdownTelemetry);
302269
- return meterProvider.getMeter("com.anthropic.vivus_code", "1.1.40+7a4108d");
302269
+ return meterProvider.getMeter("com.anthropic.vivus_code", "1.1.42+bc7dcc4");
302270
302270
  }
302271
302271
  async function flushTelemetry() {
302272
302272
  const meterProvider = getMeterProvider();
@@ -302952,9 +302952,9 @@ async function assertMinVersion() {
302952
302952
  if (false) {}
302953
302953
  try {
302954
302954
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
302955
- if (versionConfig.minVersion && lt("1.1.40+7a4108d", versionConfig.minVersion)) {
302955
+ if (versionConfig.minVersion && lt("1.1.42+bc7dcc4", versionConfig.minVersion)) {
302956
302956
  console.error(`
302957
- It looks like your version of Vivus (${"1.1.40+7a4108d"}) needs an update.
302957
+ It looks like your version of Vivus (${"1.1.42+bc7dcc4"}) needs an update.
302958
302958
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
302959
302959
 
302960
302960
  To update, please run:
@@ -303170,7 +303170,7 @@ async function installGlobalPackage(specificVersion) {
303170
303170
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
303171
303171
  logEvent("tengu_auto_updater_lock_contention", {
303172
303172
  pid: process.pid,
303173
- currentVersion: "1.1.40+7a4108d"
303173
+ currentVersion: "1.1.42+bc7dcc4"
303174
303174
  });
303175
303175
  return "in_progress";
303176
303176
  }
@@ -303179,7 +303179,7 @@ async function installGlobalPackage(specificVersion) {
303179
303179
  if (!env3.isRunningWithBun() && env3.isNpmFromWindowsPath()) {
303180
303180
  logError2(new Error("Windows NPM detected in WSL environment"));
303181
303181
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
303182
- currentVersion: "1.1.40+7a4108d"
303182
+ currentVersion: "1.1.42+bc7dcc4"
303183
303183
  });
303184
303184
  console.error(`
303185
303185
  Error: Windows NPM detected in WSL
@@ -303712,7 +303712,7 @@ function detectLinuxGlobPatternWarnings() {
303712
303712
  }
303713
303713
  async function getDoctorDiagnostic() {
303714
303714
  const installationType = await getCurrentInstallationType();
303715
- const version2 = typeof MACRO !== "undefined" ? "1.1.40+7a4108d" : "unknown";
303715
+ const version2 = typeof MACRO !== "undefined" ? "1.1.42+bc7dcc4" : "unknown";
303716
303716
  const installationPath = await getInstallationPath();
303717
303717
  const invokedBinary = getInvokedBinary();
303718
303718
  const multipleInstallations = await detectMultipleInstallations();
@@ -304645,8 +304645,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
304645
304645
  const maxVersion = await getMaxVersion();
304646
304646
  if (maxVersion && gt(version2, maxVersion)) {
304647
304647
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
304648
- if (gte("1.1.40+7a4108d", maxVersion)) {
304649
- logForDebugging(`Native installer: current version ${"1.1.40+7a4108d"} is already at or above maxVersion ${maxVersion}, skipping update`);
304648
+ if (gte("1.1.42+bc7dcc4", maxVersion)) {
304649
+ logForDebugging(`Native installer: current version ${"1.1.42+bc7dcc4"} is already at or above maxVersion ${maxVersion}, skipping update`);
304650
304650
  logEvent("tengu_native_update_skipped_max_version", {
304651
304651
  latency_ms: Date.now() - startTime,
304652
304652
  max_version: maxVersion,
@@ -304657,7 +304657,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
304657
304657
  version2 = maxVersion;
304658
304658
  }
304659
304659
  }
304660
- if (!forceReinstall && version2 === "1.1.40+7a4108d" && await versionIsAvailable(version2) && await isPossibleVivusBinary(executablePath)) {
304660
+ if (!forceReinstall && version2 === "1.1.42+bc7dcc4" && await versionIsAvailable(version2) && await isPossibleVivusBinary(executablePath)) {
304661
304661
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
304662
304662
  logEvent("tengu_native_update_complete", {
304663
304663
  latency_ms: Date.now() - startTime,
@@ -344612,12 +344612,11 @@ Git Safety Protocol:
344612
344612
  - Do not commit files that likely contain secrets (.env, credentials.json, etc). Warn the user if they specifically request to commit those files
344613
344613
  - Draft a concise (1-2 sentences) commit message that focuses on the "why" rather than the "what"
344614
344614
  - Ensure it accurately reflects the changes and their purpose
344615
- 3. Run the following commands in parallel:
344615
+ 3. Run the following commands in sequence, each waiting for the previous to finish (they are order-dependent — staging must complete before the commit reads the index, and the commit must complete before its result can be checked):
344616
344616
  - Add relevant untracked files to the staging area.
344617
344617
  - Create the commit with a message${commitAttribution ? ` ending with:
344618
344618
  ${commitAttribution}` : "."}
344619
- - Run git status after the commit completes to verify success.
344620
- Note: git status depends on the commit completing, so run it sequentially after the commit.
344619
+ - Run git status to verify the commit succeeded.
344621
344620
  4. If the commit fails due to pre-commit hook: fix the issue and create a NEW commit
344622
344621
 
344623
344622
  Important notes:
@@ -344650,7 +344649,7 @@ IMPORTANT: When the user asks you to create a pull request, follow these steps c
344650
344649
  2. Analyze all changes that will be included in the pull request, making sure to look at all relevant commits (NOT just the latest commit, but ALL commits that will be included in the pull request!!!), and draft a pull request title and summary:
344651
344650
  - Keep the PR title short (under 70 characters)
344652
344651
  - Use the description/body for details, not the title
344653
- 3. Run the following commands in parallel:
344652
+ 3. Run the following commands in sequence, each waiting for the previous to finish (they are order-dependent — the branch must exist before it can be pushed, and must be pushed before a PR can be opened against it):
344654
344653
  - Create new branch if needed
344655
344654
  - Push to remote with -u flag if needed
344656
344655
  - Create PR using gh pr create with the format below. Use a HEREDOC to pass the body to ensure correct formatting.
@@ -344805,6 +344804,7 @@ function getSimplePrompt() {
344805
344804
  "If your command will create new directories or files, first use this tool to run `ls` to verify the parent directory exists and is the correct location.",
344806
344805
  'Always quote file paths that contain spaces with double quotes in your command (e.g., cd "path with spaces/file.txt")',
344807
344806
  "Try to maintain your current working directory throughout the session by using absolute paths and avoiding usage of `cd`. You may use `cd` if the User explicitly requests it.",
344807
+ "This \"avoid `cd`\" guidance is about THIS persistent local shell. It does NOT apply inside a remote command run via `ssh host '<command>'` — each such invocation is a brand-new non-interactive shell that always starts in the remote user's home directory, never wherever a previous SSH call left off. A bare `ssh host 'git log'` (no `cd`) will fail with \"not a git repository\" even when the target repo is perfectly fine — that failure means the command needs `cd /path/to/repo && ` (or `git -C /path/to/repo`), not that the remote repo/server is broken. Always include the `cd`/`-C` for any project-relative remote command.",
344808
344808
  `You may specify an optional timeout in milliseconds (up to ${getMaxTimeoutMs()}ms / ${getMaxTimeoutMs() / 60000} minutes). By default, your command will timeout after ${getDefaultTimeoutMs()}ms (${getDefaultTimeoutMs() / 60000} minutes).`,
344809
344809
  ...backgroundNote !== null ? [backgroundNote] : [],
344810
344810
  "When issuing multiple commands:",
@@ -357304,7 +357304,12 @@ var init_autoCompact = __esm(() => {
357304
357304
  // src/services/tools/repetitionTracker.ts
357305
357305
  import { createHash as createHash21 } from "crypto";
357306
357306
  function hashToolCall(toolName, input) {
357307
- const payload = toolName + "\x00" + JSON.stringify(input);
357307
+ const significant = {};
357308
+ for (const key of Object.keys(input).sort()) {
357309
+ if (!COSMETIC_INPUT_KEYS.has(key))
357310
+ significant[key] = input[key];
357311
+ }
357312
+ const payload = toolName + "\x00" + JSON.stringify(significant);
357308
357313
  return createHash21("sha256").update(payload).digest("hex").slice(0, 16);
357309
357314
  }
357310
357315
  function checkRepetition(toolName, input) {
@@ -357342,9 +357347,10 @@ function resetRepetitionTracker() {
357342
357347
  recentCalls.clear();
357343
357348
  lastHash = null;
357344
357349
  }
357345
- var WARN_THRESHOLD = 2, BLOCK_THRESHOLD = 4, recentCalls, lastHash = null;
357350
+ var WARN_THRESHOLD = 2, BLOCK_THRESHOLD = 4, recentCalls, lastHash = null, COSMETIC_INPUT_KEYS;
357346
357351
  var init_repetitionTracker = __esm(() => {
357347
357352
  recentCalls = new Map;
357353
+ COSMETIC_INPUT_KEYS = new Set(["description", "timeout"]);
357348
357354
  });
357349
357355
 
357350
357356
  // src/constants/errorIds.ts
@@ -361944,7 +361950,7 @@ function getAnthropicEnvMetadata() {
361944
361950
  function getBuildAgeMinutes() {
361945
361951
  if (false)
361946
361952
  ;
361947
- const buildTime = new Date("2026-08-06T21:07:26.990Z").getTime();
361953
+ const buildTime = new Date("2026-09-17T00:45:25.657Z").getTime();
361948
361954
  if (isNaN(buildTime))
361949
361955
  return;
361950
361956
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -397057,7 +397063,8 @@ function isClassifierDenial(content) {
397057
397063
  function buildYoloRejectionMessage(reason) {
397058
397064
  const prefix = AUTO_MODE_REJECTION_PREFIX;
397059
397065
  const ruleHint = `To allow this type of action in the future, the user can add a Bash permission rule to their settings.`;
397060
- return `${prefix}${reason}. ` + `If you have other tasks that don't depend on this action, continue working on those. ` + `${DENIAL_WORKAROUND_GUIDANCE} ` + ruleHint;
397066
+ const retryHint = `If you believe this action is necessary, use ${ASK_USER_QUESTION_TOOL_NAME} to ask the user specifically whether to retry it ` + `(don't bury this in an unrelated question). If they say yes, retry the exact same action — retrying a classifier-denied action ` + `up to a few times (after explicit user confirmation) is the correct way to reach a real permission prompt, unlike blindly retrying ` + `a failed execution.`;
397067
+ return `${prefix}${reason}. ` + `If you have other tasks that don't depend on this action, continue working on those. ` + `${DENIAL_WORKAROUND_GUIDANCE} ` + `${retryHint} ` + ruleHint;
397061
397068
  }
397062
397069
  function buildClassifierUnavailableMessage(toolName, classifierModel) {
397063
397070
  return `${classifierModel} is temporarily unavailable, so auto mode cannot determine the safety of ${toolName} right now. ` + `Wait briefly and then try this action again. ` + `If it keeps failing, continue with other tasks that don't require this action and come back to it later. ` + `Note: reading files, searching code, and other read-only operations do not require the classifier and can still be used.`;
@@ -399473,7 +399480,7 @@ You have exited auto mode. The user may now want to interact more directly. You
399473
399480
  case "compaction_reminder": {
399474
399481
  return wrapMessagesInSystemReminder([
399475
399482
  createUserMessage({
399476
- content: "Auto-compact is enabled. When the context window is nearly full, older messages will be automatically summarized so you can continue working seamlessly. There is no need to stop or rush — you have unlimited context through automatic compaction.",
399483
+ content: "Auto-compact is enabled. When the context window is nearly full, older messages will be automatically summarized so you can continue working seamlessly. There is no need to stop or rush — but summarizing is lossy, so persist durable findings (file paths, commands that worked, conclusions) into notes or files rather than relying on recalling them from earlier turns.",
399477
399484
  isMeta: true
399478
399485
  })
399479
399486
  ]);
@@ -404831,9 +404838,7 @@ function getSimpleDoingTasksSection() {
404831
404838
  const items = [
404832
404839
  `The user will primarily request you to perform software engineering tasks. These may include solving bugs, adding new functionality, refactoring code, explaining code, and more. When given an unclear or generic instruction, consider it in the context of these software engineering tasks and the current working directory. For example, if the user asks you to change "methodName" to snake case, do not reply with just "method_name", instead find the method in the code and modify the code.`,
404833
404840
  `You are highly capable and often allow users to complete ambitious tasks that would otherwise be too complex or take too long. You should defer to user judgement about whether a task is too large to attempt.`,
404834
- ...process.env.USER_TYPE === "ant" ? [
404835
- `If you notice the user's request is based on a misconception, or spot a bug adjacent to what they asked about, say so. You're a collaborator, not just an executor—users benefit from your judgment, not just your compliance.`
404836
- ] : [],
404841
+ `If you notice the user's request is based on a misconception, or spot a bug adjacent to what they asked about, say so. You're a collaborator, not just an executor—users benefit from your judgment, not just your compliance.`,
404837
404842
  `In general, do not propose changes to code you haven't read. If a user asks about or wants you to modify a file, read it first. Understand existing code before suggesting modifications.`,
404838
404843
  `Do not create files unless they're absolutely necessary for achieving your goal. Generally prefer editing an existing file to creating a new one, as this prevents file bloat and builds on existing work more effectively.`,
404839
404844
  `Avoid giving time estimates or predictions for how long tasks will take, whether for your own work or for users planning projects. Focus on what needs to be done, not how long it might take.`,
@@ -404841,9 +404846,7 @@ function getSimpleDoingTasksSection() {
404841
404846
  `Be careful not to introduce security vulnerabilities such as command injection, XSS, SQL injection, and other OWASP top 10 vulnerabilities. If you notice that you wrote insecure code, immediately fix it. Prioritize writing safe, secure, and correct code.`,
404842
404847
  ...codeStyleSubitems,
404843
404848
  `Avoid backwards-compatibility hacks like renaming unused _vars, re-exporting types, adding // removed comments for removed code, etc. If you are certain that something is unused, you can delete it completely.`,
404844
- ...process.env.USER_TYPE === "ant" ? [
404845
- `Report outcomes faithfully: if tests fail, say so with the relevant output; if you did not run a verification step, say that rather than implying it succeeded. Never claim "all tests pass" when output shows failures, never suppress or simplify failing checks (tests, lints, type errors) to manufacture a green result, and never characterize incomplete or broken work as done. Equally, when a check did pass or a task is complete, state it plainly — do not hedge confirmed results with unnecessary disclaimers, downgrade finished work to "partial," or re-verify things you already checked. The goal is an accurate report, not a defensive one.`
404846
- ] : [],
404849
+ `Report outcomes faithfully: if tests fail, say so with the relevant output; if you did not run a verification step, say that rather than implying it succeeded. Never claim "all tests pass" when output shows failures, never suppress or simplify failing checks (tests, lints, type errors) to manufacture a green result, and never characterize incomplete or broken work as done. Equally, when a check did pass or a task is complete, state it plainly — do not hedge confirmed results with unnecessary disclaimers, downgrade finished work to "partial," or re-verify things you already checked. The goal is an accurate report, not a defensive one.`,
404847
404850
  ...process.env.USER_TYPE === "ant" ? [
404848
404851
  `If the user reports a bug, slowness, or unexpected behavior with Vivus itself (as opposed to asking you to fix their own code), recommend the appropriate slash command: /issue for model-related problems (odd outputs, wrong tool choices, hallucinations, refusals), or /share to upload the full session transcript for product bugs, crashes, slowness, or general issues. Only recommend these when the user is describing a problem with Vivus. After /share produces a ccshare link, if you have a Slack MCP tool available, offer to post the link to #vivus-feedback (channel ID C07VBSHV7EV) for the user.`
404849
404852
  ] : [],
@@ -404966,7 +404969,7 @@ function getSimpleToneAndStyleSection() {
404966
404969
  async function getSystemPrompt(tools, model, additionalWorkingDirectories, mcpClients) {
404967
404970
  if (isEnvTruthy(process.env.VIVUS_CODE_SIMPLE)) {
404968
404971
  return [
404969
- `You are Vivus, Anthropic's official CLI for Vivus.
404972
+ `You are Vivus, an AI coding agent for the command line.
404970
404973
 
404971
404974
  CWD: ${getCwd()}
404972
404975
  Date: ${getSessionStartDate()}`
@@ -405165,7 +405168,7 @@ function getFunctionResultClearingSection(model) {
405165
405168
 
405166
405169
  Old tool results will be automatically cleared from context to free up space. The ${config3.keepRecent} most recent results are always kept.`;
405167
405170
  }
405168
- var getCachedMCConfigForFRC = null, DISCOVER_SKILLS_TOOL_NAME = null, SYSTEM_PROMPT_DYNAMIC_BOUNDARY = "__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__", FRONTIER_MODEL_NAME = "Vivus Opus 4.6", VIVUS_4_5_OR_4_6_MODEL_IDS, DEFAULT_AGENT_PROMPT = `You are an agent for Vivus, Anthropic's official CLI for Vivus. Given the user's message, you should use the tools available to complete the task. Complete the task fully—don't gold-plate, but don't leave it half-done. When you complete the task, respond with a concise report covering what was done and any key findings — the caller will relay this to the user, so it only needs the essentials.`, SUMMARIZE_TOOL_RESULTS_SECTION = `When working with tool results, write down any important information you might need later in your response, as the original tool result may be cleared later.`;
405171
+ var getCachedMCConfigForFRC = null, DISCOVER_SKILLS_TOOL_NAME = null, SYSTEM_PROMPT_DYNAMIC_BOUNDARY = "__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__", FRONTIER_MODEL_NAME = "Vivus Opus 4.6", VIVUS_4_5_OR_4_6_MODEL_IDS, DEFAULT_AGENT_PROMPT = `You are an agent for Vivus, an AI coding agent for the command line. Given the user's message, you should use the tools available to complete the task. Complete the task fully—don't gold-plate, but don't leave it half-done. When you complete the task, respond with a concise report covering what was done and any key findings — the caller will relay this to the user, so it only needs the essentials.`, SUMMARIZE_TOOL_RESULTS_SECTION = `When working with tool results, write down any important information you might need later in your response, as the original tool result may be cleared later.`;
405169
405172
  var init_prompts3 = __esm(() => {
405170
405173
  init_env();
405171
405174
  init_git();
@@ -410096,7 +410099,7 @@ var init_filesystem = __esm(() => {
410096
410099
  });
410097
410100
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
410098
410101
  const nonce = randomBytes17(16).toString("hex");
410099
- return join108(getVivusTempDir(), "bundled-skills", "1.1.40+7a4108d", nonce);
410102
+ return join108(getVivusTempDir(), "bundled-skills", "1.1.42+bc7dcc4", nonce);
410100
410103
  });
410101
410104
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
410102
410105
  });
@@ -411856,7 +411859,7 @@ function Feedback({
411856
411859
  platform: env3.platform,
411857
411860
  gitRepo: envInfo.isGit,
411858
411861
  terminal: env3.terminal,
411859
- version: "1.1.40+7a4108d",
411862
+ version: "1.1.42+bc7dcc4",
411860
411863
  transcript: normalizeMessagesForAPI(messages),
411861
411864
  errors: sanitizedErrors,
411862
411865
  lastApiRequest: getLastAPIRequest(),
@@ -412048,7 +412051,7 @@ function Feedback({
412048
412051
  ", ",
412049
412052
  env3.terminal,
412050
412053
  ", v",
412051
- "1.1.40+7a4108d"
412054
+ "1.1.42+bc7dcc4"
412052
412055
  ]
412053
412056
  }, undefined, true, undefined, this)
412054
412057
  ]
@@ -412154,7 +412157,7 @@ ${sanitizedDescription}
412154
412157
  ` + `**Environment Info**
412155
412158
  ` + `- Platform: ${env3.platform}
412156
412159
  ` + `- Terminal: ${env3.terminal}
412157
- ` + `- Version: ${"1.1.40+7a4108d"}
412160
+ ` + `- Version: ${"1.1.42+bc7dcc4"}
412158
412161
  ` + `- Feedback ID: ${feedbackId}
412159
412162
  ` + `
412160
412163
  **Errors**
@@ -415286,7 +415289,7 @@ function buildPrimarySection() {
415286
415289
  }, undefined, false, undefined, this);
415287
415290
  return [{
415288
415291
  label: "Version",
415289
- value: "1.1.40+7a4108d"
415292
+ value: "1.1.42+bc7dcc4"
415290
415293
  }, {
415291
415294
  label: "Session name",
415292
415295
  value: nameValue
@@ -419068,7 +419071,7 @@ function Config({
419068
419071
  }
419069
419072
  }, undefined, false, undefined, this)
419070
419073
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
419071
- currentVersion: "1.1.40+7a4108d",
419074
+ currentVersion: "1.1.42+bc7dcc4",
419072
419075
  onChoice: (choice) => {
419073
419076
  setShowSubmenu(null);
419074
419077
  setTabsHidden(false);
@@ -419080,7 +419083,7 @@ function Config({
419080
419083
  autoUpdatesChannel: "stable"
419081
419084
  };
419082
419085
  if (choice === "stay") {
419083
- newSettings.minimumVersion = "1.1.40+7a4108d";
419086
+ newSettings.minimumVersion = "1.1.42+bc7dcc4";
419084
419087
  }
419085
419088
  updateSettingsForSource("userSettings", newSettings);
419086
419089
  setSettingsData((prev_27) => ({
@@ -427275,7 +427278,7 @@ function HelpV2(t0) {
427275
427278
  let t6;
427276
427279
  if ($2[31] !== tabs) {
427277
427280
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
427278
- title: `Vivus v${"1.1.40+7a4108d"}`,
427281
+ title: `Vivus v${"1.1.42+bc7dcc4"}`,
427279
427282
  color: "professionalBlue",
427280
427283
  defaultTab: "general",
427281
427284
  children: tabs
@@ -451501,7 +451504,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
451501
451504
  return [];
451502
451505
  }
451503
451506
  }
451504
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.40+7a4108d") {
451507
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.42+bc7dcc4") {
451505
451508
  if (process.env.USER_TYPE === "ant") {
451506
451509
  const changelog = "";
451507
451510
  if (changelog) {
@@ -451528,7 +451531,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.40+7a
451528
451531
  releaseNotes
451529
451532
  };
451530
451533
  }
451531
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.40+7a4108d") {
451534
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.42+bc7dcc4") {
451532
451535
  if (process.env.USER_TYPE === "ant") {
451533
451536
  const changelog = "";
451534
451537
  if (changelog) {
@@ -452698,7 +452701,7 @@ function getRecentActivitySync() {
452698
452701
  return cachedActivity;
452699
452702
  }
452700
452703
  function getLogoDisplayData() {
452701
- const version2 = process.env.DEMO_VERSION ?? "1.1.40+7a4108d";
452704
+ const version2 = process.env.DEMO_VERSION ?? "1.1.42+bc7dcc4";
452702
452705
  const serverUrl = getDirectConnectServerUrl();
452703
452706
  const displayPath = process.env.DEMO_VERSION ? "/code/vivus" : getDisplayPath(getCwd());
452704
452707
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -454225,7 +454228,7 @@ function LogoV2() {
454225
454228
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
454226
454229
  t2 = () => {
454227
454230
  const currentConfig = getGlobalConfig();
454228
- if (currentConfig.lastReleaseNotesSeen === "1.1.40+7a4108d") {
454231
+ if (currentConfig.lastReleaseNotesSeen === "1.1.42+bc7dcc4") {
454229
454232
  return;
454230
454233
  }
454231
454234
  saveGlobalConfig(_temp329);
@@ -454901,12 +454904,12 @@ function LogoV2() {
454901
454904
  return t41;
454902
454905
  }
454903
454906
  function _temp329(current) {
454904
- if (current.lastReleaseNotesSeen === "1.1.40+7a4108d") {
454907
+ if (current.lastReleaseNotesSeen === "1.1.42+bc7dcc4") {
454905
454908
  return current;
454906
454909
  }
454907
454910
  return {
454908
454911
  ...current,
454909
- lastReleaseNotesSeen: "1.1.40+7a4108d"
454912
+ lastReleaseNotesSeen: "1.1.42+bc7dcc4"
454910
454913
  };
454911
454914
  }
454912
454915
  function _temp245(s_0) {
@@ -481208,7 +481211,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
481208
481211
  smapsRollup,
481209
481212
  platform: process.platform,
481210
481213
  nodeVersion: process.version,
481211
- ccVersion: "1.1.40+7a4108d"
481214
+ ccVersion: "1.1.42+bc7dcc4"
481212
481215
  };
481213
481216
  }
481214
481217
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -481794,7 +481797,7 @@ var init_bridge_kick = __esm(() => {
481794
481797
  var call56 = async () => {
481795
481798
  return {
481796
481799
  type: "text",
481797
- value: `${"1.1.40+7a4108d"} (built ${"2026-08-06T21:07:26.990Z"})`
481800
+ value: `${"1.1.42+bc7dcc4"} (built ${"2026-09-17T00:45:25.657Z"})`
481798
481801
  };
481799
481802
  }, version2, version_default;
481800
481803
  var init_version = __esm(() => {
@@ -491114,7 +491117,7 @@ function generateHtmlReport(data, insights) {
491114
491117
  </html>`;
491115
491118
  }
491116
491119
  function buildExportData(data, insights, facets, remoteStats) {
491117
- const version3 = typeof MACRO !== "undefined" ? "1.1.40+7a4108d" : "unknown";
491120
+ const version3 = typeof MACRO !== "undefined" ? "1.1.42+bc7dcc4" : "unknown";
491118
491121
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
491119
491122
  const facets_summary = {
491120
491123
  total: facets.size,
@@ -495226,7 +495229,7 @@ var init_sessionStorage = __esm(() => {
495226
495229
  init_settings2();
495227
495230
  init_slowOperations();
495228
495231
  init_uuid();
495229
- VERSION5 = typeof MACRO !== "undefined" ? "1.1.40+7a4108d" : "unknown";
495232
+ VERSION5 = typeof MACRO !== "undefined" ? "1.1.42+bc7dcc4" : "unknown";
495230
495233
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
495231
495234
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
495232
495235
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -498098,7 +498101,7 @@ function buildSystemInitMessage(inputs) {
498098
498101
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
498099
498102
  apiKeySource: getAnthropicApiKeyWithSource().source,
498100
498103
  betas: getSdkBetas(),
498101
- vivus_code_version: "1.1.40+7a4108d",
498104
+ vivus_code_version: "1.1.42+bc7dcc4",
498102
498105
  output_style: outputStyle2,
498103
498106
  agents: inputs.agents.map((agent) => agent.agentType),
498104
498107
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -512810,7 +512813,7 @@ var init_useVoiceEnabled = __esm(() => {
512810
512813
  function getSemverPart(version3) {
512811
512814
  return `${import_semver12.major(version3, { loose: true })}.${import_semver12.minor(version3, { loose: true })}.${import_semver12.patch(version3, { loose: true })}`;
512812
512815
  }
512813
- function useUpdateNotification(updatedVersion, initialVersion = "1.1.40+7a4108d") {
512816
+ function useUpdateNotification(updatedVersion, initialVersion = "1.1.42+bc7dcc4") {
512814
512817
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react228.useState(() => getSemverPart(initialVersion));
512815
512818
  if (!updatedVersion) {
512816
512819
  return null;
@@ -512850,7 +512853,7 @@ function AutoUpdater({
512850
512853
  return;
512851
512854
  }
512852
512855
  if (false) {}
512853
- const currentVersion = "1.1.40+7a4108d";
512856
+ const currentVersion = "1.1.42+bc7dcc4";
512854
512857
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
512855
512858
  let latestVersion = await getLatestVersion(channel);
512856
512859
  const isDisabled = isAutoUpdaterDisabled();
@@ -513063,12 +513066,12 @@ function NativeAutoUpdater({
513063
513066
  logEvent("tengu_native_auto_updater_start", {});
513064
513067
  try {
513065
513068
  const maxVersion = await getMaxVersion();
513066
- if (maxVersion && gt("1.1.40+7a4108d", maxVersion)) {
513069
+ if (maxVersion && gt("1.1.42+bc7dcc4", maxVersion)) {
513067
513070
  const msg = await getMaxVersionMessage();
513068
513071
  setMaxVersionIssue(msg ?? "affects your version");
513069
513072
  }
513070
513073
  const result = await installLatest(channel);
513071
- const currentVersion = "1.1.40+7a4108d";
513074
+ const currentVersion = "1.1.42+bc7dcc4";
513072
513075
  const latencyMs = Date.now() - startTime;
513073
513076
  if (result.lockFailed) {
513074
513077
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -513205,17 +513208,17 @@ function PackageManagerAutoUpdater(t0) {
513205
513208
  const maxVersion = await getMaxVersion();
513206
513209
  if (maxVersion && latest && gt(latest, maxVersion)) {
513207
513210
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
513208
- if (gte("1.1.40+7a4108d", maxVersion)) {
513209
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.40+7a4108d"} is already at or above maxVersion ${maxVersion}, skipping update`);
513211
+ if (gte("1.1.42+bc7dcc4", maxVersion)) {
513212
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.42+bc7dcc4"} is already at or above maxVersion ${maxVersion}, skipping update`);
513210
513213
  setUpdateAvailable(false);
513211
513214
  return;
513212
513215
  }
513213
513216
  latest = maxVersion;
513214
513217
  }
513215
- const hasUpdate = latest && !gte("1.1.40+7a4108d", latest) && !shouldSkipVersion(latest);
513218
+ const hasUpdate = latest && !gte("1.1.42+bc7dcc4", latest) && !shouldSkipVersion(latest);
513216
513219
  setUpdateAvailable(!!hasUpdate);
513217
513220
  if (hasUpdate) {
513218
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.40+7a4108d"} -> ${latest}`);
513221
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.42+bc7dcc4"} -> ${latest}`);
513219
513222
  }
513220
513223
  };
513221
513224
  $2[0] = t1;
@@ -513249,7 +513252,7 @@ function PackageManagerAutoUpdater(t0) {
513249
513252
  wrap: "truncate",
513250
513253
  children: [
513251
513254
  "currentVersion: ",
513252
- "1.1.40+7a4108d"
513255
+ "1.1.42+bc7dcc4"
513253
513256
  ]
513254
513257
  }, undefined, true, undefined, this);
513255
513258
  $2[3] = verbose;
@@ -521433,7 +521436,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
521433
521436
  project_dir: getOriginalCwd(),
521434
521437
  added_dirs: addedDirs
521435
521438
  },
521436
- version: "1.1.40+7a4108d",
521439
+ version: "1.1.42+bc7dcc4",
521437
521440
  output_style: {
521438
521441
  name: outputStyleName
521439
521442
  },
@@ -533085,7 +533088,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
533085
533088
  } catch {}
533086
533089
  const data = {
533087
533090
  trigger,
533088
- version: "1.1.40+7a4108d",
533091
+ version: "1.1.42+bc7dcc4",
533089
533092
  platform: process.platform,
533090
533093
  transcript,
533091
533094
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -544556,7 +544559,7 @@ function WelcomeV2() {
544556
544559
  dimColor: true,
544557
544560
  children: [
544558
544561
  "v",
544559
- "1.1.40+7a4108d",
544562
+ "1.1.42+bc7dcc4",
544560
544563
  " "
544561
544564
  ]
544562
544565
  }, undefined, true, undefined, this)
@@ -544756,7 +544759,7 @@ function WelcomeV2() {
544756
544759
  dimColor: true,
544757
544760
  children: [
544758
544761
  "v",
544759
- "1.1.40+7a4108d",
544762
+ "1.1.42+bc7dcc4",
544760
544763
  " "
544761
544764
  ]
544762
544765
  }, undefined, true, undefined, this)
@@ -544982,7 +544985,7 @@ function AppleTerminalWelcomeV2(t0) {
544982
544985
  dimColor: true,
544983
544986
  children: [
544984
544987
  "v",
544985
- "1.1.40+7a4108d",
544988
+ "1.1.42+bc7dcc4",
544986
544989
  " "
544987
544990
  ]
544988
544991
  }, undefined, true, undefined, this);
@@ -545236,7 +545239,7 @@ function AppleTerminalWelcomeV2(t0) {
545236
545239
  dimColor: true,
545237
545240
  children: [
545238
545241
  "v",
545239
- "1.1.40+7a4108d",
545242
+ "1.1.42+bc7dcc4",
545240
545243
  " "
545241
545244
  ]
545242
545245
  }, undefined, true, undefined, this);
@@ -548309,7 +548312,7 @@ function appendToLog(path25, message) {
548309
548312
  cwd: getFsImplementation().cwd(),
548310
548313
  userType: process.env.USER_TYPE,
548311
548314
  sessionId: getSessionId(),
548312
- version: "1.1.40+7a4108d"
548315
+ version: "1.1.42+bc7dcc4"
548313
548316
  };
548314
548317
  getLogWriter(path25).write(messageWithTimestamp);
548315
548318
  }
@@ -552304,8 +552307,8 @@ async function getEnvLessBridgeConfig() {
552304
552307
  }
552305
552308
  async function checkEnvLessBridgeMinVersion() {
552306
552309
  const cfg = await getEnvLessBridgeConfig();
552307
- if (cfg.min_version && lt("1.1.40+7a4108d", cfg.min_version)) {
552308
- return `Your version of Vivus (${"1.1.40+7a4108d"}) is too old for Remote Control.
552310
+ if (cfg.min_version && lt("1.1.42+bc7dcc4", cfg.min_version)) {
552311
+ return `Your version of Vivus (${"1.1.42+bc7dcc4"}) is too old for Remote Control.
552309
552312
  Version ${cfg.min_version} or higher is required. Run \`vivus update\` to update.`;
552310
552313
  }
552311
552314
  return null;
@@ -552779,7 +552782,7 @@ async function initBridgeCore(params) {
552779
552782
  const rawApi = createBridgeApiClient({
552780
552783
  baseUrl,
552781
552784
  getAccessToken,
552782
- runnerVersion: "1.1.40+7a4108d",
552785
+ runnerVersion: "1.1.42+bc7dcc4",
552783
552786
  onDebug: logForDebugging,
552784
552787
  onAuth401,
552785
552788
  getTrustedDeviceToken
@@ -558458,7 +558461,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
558458
558461
  setCwd(cwd3);
558459
558462
  const server = new Server({
558460
558463
  name: "vivus/tengu",
558461
- version: "1.1.40+7a4108d"
558464
+ version: "1.1.42+bc7dcc4"
558462
558465
  }, {
558463
558466
  capabilities: {
558464
558467
  tools: {}
@@ -560191,7 +560194,7 @@ __export(exports_update, {
560191
560194
  });
560192
560195
  async function update() {
560193
560196
  logEvent("tengu_update_check", {});
560194
- writeToStdout(`Current version: ${"1.1.40+7a4108d"}
560197
+ writeToStdout(`Current version: ${"1.1.42+bc7dcc4"}
560195
560198
  `);
560196
560199
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
560197
560200
  writeToStdout(`Checking for updates to ${channel} version...
@@ -560266,8 +560269,8 @@ async function update() {
560266
560269
  writeToStdout(`Vivus is managed by Homebrew.
560267
560270
  `);
560268
560271
  const latest = await getLatestVersion(channel);
560269
- if (latest && !gte("1.1.40+7a4108d", latest)) {
560270
- writeToStdout(`Update available: ${"1.1.40+7a4108d"} → ${latest}
560272
+ if (latest && !gte("1.1.42+bc7dcc4", latest)) {
560273
+ writeToStdout(`Update available: ${"1.1.42+bc7dcc4"} → ${latest}
560271
560274
  `);
560272
560275
  writeToStdout(`
560273
560276
  `);
@@ -560283,8 +560286,8 @@ async function update() {
560283
560286
  writeToStdout(`Vivus is managed by winget.
560284
560287
  `);
560285
560288
  const latest = await getLatestVersion(channel);
560286
- if (latest && !gte("1.1.40+7a4108d", latest)) {
560287
- writeToStdout(`Update available: ${"1.1.40+7a4108d"} → ${latest}
560289
+ if (latest && !gte("1.1.42+bc7dcc4", latest)) {
560290
+ writeToStdout(`Update available: ${"1.1.42+bc7dcc4"} → ${latest}
560288
560291
  `);
560289
560292
  writeToStdout(`
560290
560293
  `);
@@ -560300,8 +560303,8 @@ async function update() {
560300
560303
  writeToStdout(`Vivus is managed by apk.
560301
560304
  `);
560302
560305
  const latest = await getLatestVersion(channel);
560303
- if (latest && !gte("1.1.40+7a4108d", latest)) {
560304
- writeToStdout(`Update available: ${"1.1.40+7a4108d"} → ${latest}
560306
+ if (latest && !gte("1.1.42+bc7dcc4", latest)) {
560307
+ writeToStdout(`Update available: ${"1.1.42+bc7dcc4"} → ${latest}
560305
560308
  `);
560306
560309
  writeToStdout(`
560307
560310
  `);
@@ -560366,11 +560369,11 @@ async function update() {
560366
560369
  `);
560367
560370
  await gracefulShutdown(1);
560368
560371
  }
560369
- if (result.latestVersion === "1.1.40+7a4108d") {
560370
- writeToStdout(source_default.green(`Vivus is up to date (${"1.1.40+7a4108d"})`) + `
560372
+ if (result.latestVersion === "1.1.42+bc7dcc4") {
560373
+ writeToStdout(source_default.green(`Vivus is up to date (${"1.1.42+bc7dcc4"})`) + `
560371
560374
  `);
560372
560375
  } else {
560373
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.40+7a4108d"} to version ${result.latestVersion}`) + `
560376
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.42+bc7dcc4"} to version ${result.latestVersion}`) + `
560374
560377
  `);
560375
560378
  await regenerateCompletionCache();
560376
560379
  }
@@ -560427,12 +560430,12 @@ async function update() {
560427
560430
  `);
560428
560431
  await gracefulShutdown(1);
560429
560432
  }
560430
- if (latestVersion === "1.1.40+7a4108d") {
560431
- writeToStdout(source_default.green(`Vivus is up to date (${"1.1.40+7a4108d"})`) + `
560433
+ if (latestVersion === "1.1.42+bc7dcc4") {
560434
+ writeToStdout(source_default.green(`Vivus is up to date (${"1.1.42+bc7dcc4"})`) + `
560432
560435
  `);
560433
560436
  await gracefulShutdown(0);
560434
560437
  }
560435
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.40+7a4108d"})
560438
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.42+bc7dcc4"})
560436
560439
  `);
560437
560440
  writeToStdout(`Installing update...
560438
560441
  `);
@@ -560477,7 +560480,7 @@ async function update() {
560477
560480
  logForDebugging(`update: Installation status: ${status2}`);
560478
560481
  switch (status2) {
560479
560482
  case "success":
560480
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.40+7a4108d"} to version ${latestVersion}`) + `
560483
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.42+bc7dcc4"} to version ${latestVersion}`) + `
560481
560484
  `);
560482
560485
  await regenerateCompletionCache();
560483
560486
  break;
@@ -561451,7 +561454,7 @@ function completeOnboarding() {
561451
561454
  saveGlobalConfig((current) => ({
561452
561455
  ...current,
561453
561456
  hasCompletedOnboarding: true,
561454
- lastOnboardingVersion: "1.1.40+7a4108d"
561457
+ lastOnboardingVersion: "1.1.42+bc7dcc4"
561455
561458
  }));
561456
561459
  }
561457
561460
  function showDialog(root2, renderer) {
@@ -565670,7 +565673,7 @@ ${customInstructions}` : customInstructions;
565670
565673
  }
565671
565674
  }
565672
565675
  logForDiagnosticsNoPII("info", "started", {
565673
- version: "1.1.40+7a4108d",
565676
+ version: "1.1.42+bc7dcc4",
565674
565677
  is_native_binary: isInBundledMode()
565675
565678
  });
565676
565679
  registerCleanup(async () => {
@@ -566468,7 +566471,7 @@ Usage: vivus --remote "your task description"`, () => gracefulShutdown(1));
566468
566471
  pendingHookMessages
566469
566472
  }, renderAndRun);
566470
566473
  }
566471
- }).version("1.1.40+7a4108d (Vivus)", "-v, --version", "Output the version number");
566474
+ }).version("1.1.42+bc7dcc4 (Vivus)", "-v, --version", "Output the version number");
566472
566475
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
566473
566476
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
566474
566477
  if (canUserConfigureAdvisor()) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vivus-agent",
3
- "version": "1.1.40",
3
+ "version": "1.1.42",
4
4
  "description": "Vivus — local AI coding agent",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",