vivus-agent 1.1.4 → 1.1.6

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 +105 -90
  2. package/package.json +2 -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-06-15T14:50:53.611Z
3
+ // Built from source at 2026-06-18T01:30:36.555Z
4
4
  import { createRequire } from "node:module";
5
5
  var __create = Object.create;
6
6
  var __getProtoOf = Object.getPrototypeOf;
@@ -115978,7 +115978,7 @@ var init_auth = __esm(() => {
115978
115978
 
115979
115979
  // src/utils/userAgent.ts
115980
115980
  function getVivusCodeUserAgent() {
115981
- return `vivus/${"1.1.4+6101dad"}`;
115981
+ return `vivus/${"1.1.6+93550c9-dirty"}`;
115982
115982
  }
115983
115983
 
115984
115984
  // src/utils/workloadContext.ts
@@ -116000,7 +116000,7 @@ function getUserAgent() {
116000
116000
  const clientApp = process.env.VIVUS_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.VIVUS_AGENT_SDK_CLIENT_APP}` : "";
116001
116001
  const workload = getWorkload();
116002
116002
  const workloadSuffix = workload ? `, workload/${workload}` : "";
116003
- return `vivus-cli/${"1.1.4+6101dad"} (${process.env.USER_TYPE}, ${process.env.VIVUS_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
116003
+ return `vivus-cli/${"1.1.6+93550c9-dirty"} (${process.env.USER_TYPE}, ${process.env.VIVUS_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
116004
116004
  }
116005
116005
  function getMCPUserAgent() {
116006
116006
  const parts = [];
@@ -116014,7 +116014,7 @@ function getMCPUserAgent() {
116014
116014
  parts.push(`client-app/${process.env.VIVUS_AGENT_SDK_CLIENT_APP}`);
116015
116015
  }
116016
116016
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
116017
- return `vivus/${"1.1.4+6101dad"}${suffix}`;
116017
+ return `vivus/${"1.1.6+93550c9-dirty"}${suffix}`;
116018
116018
  }
116019
116019
  function getWebFetchUserAgent() {
116020
116020
  return `Vivus-User (${getVivusCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -116152,7 +116152,7 @@ var init_user = __esm(() => {
116152
116152
  deviceId,
116153
116153
  sessionId: getSessionId(),
116154
116154
  email: getEmail(),
116155
- appVersion: "1.1.4+6101dad",
116155
+ appVersion: "1.1.6+93550c9-dirty",
116156
116156
  platform: getHostPlatformForAnalytics(),
116157
116157
  organizationUuid,
116158
116158
  accountUuid,
@@ -127818,7 +127818,7 @@ var init_metadata = __esm(() => {
127818
127818
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
127819
127819
  WHITESPACE_REGEX = /\s+/;
127820
127820
  getVersionBase = memoize_default(() => {
127821
- const match = "1.1.4+6101dad".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
127821
+ const match = "1.1.6+93550c9-dirty".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
127822
127822
  return match ? match[0] : undefined;
127823
127823
  });
127824
127824
  buildEnvContext = memoize_default(async () => {
@@ -127858,9 +127858,9 @@ var init_metadata = __esm(() => {
127858
127858
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
127859
127859
  isVivusCodeAction: isEnvTruthy(process.env.VIVUS_CODE_ACTION),
127860
127860
  isVivusAiAuth: isVivusAISubscriber(),
127861
- version: "1.1.4+6101dad",
127861
+ version: "1.1.6+93550c9-dirty",
127862
127862
  versionBase: getVersionBase(),
127863
- buildTime: "2026-06-15T14:50:53.085Z",
127863
+ buildTime: "2026-06-18T01:30:36.107Z",
127864
127864
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
127865
127865
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
127866
127866
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -128528,7 +128528,7 @@ function initialize1PEventLogging() {
128528
128528
  const platform2 = getPlatform();
128529
128529
  const attributes = {
128530
128530
  [import_semantic_conventions.ATTR_SERVICE_NAME]: "vivus",
128531
- [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.1.4+6101dad"
128531
+ [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.1.6+93550c9-dirty"
128532
128532
  };
128533
128533
  if (platform2 === "wsl") {
128534
128534
  const wslVersion = getWslVersion();
@@ -128555,7 +128555,7 @@ function initialize1PEventLogging() {
128555
128555
  })
128556
128556
  ]
128557
128557
  });
128558
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.vivus_code.events", "1.1.4+6101dad");
128558
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.vivus_code.events", "1.1.6+93550c9-dirty");
128559
128559
  }
128560
128560
  async function reinitialize1PEventLoggingIfConfigChanged() {
128561
128561
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -129362,6 +129362,13 @@ var init_pdfUtils = __esm(() => {
129362
129362
  });
129363
129363
 
129364
129364
  // src/tools/FileReadTool/prompt.ts
129365
+ function fileUnchangedStub(filePath, totalLines, snippet) {
129366
+ return `File unchanged since last read (${totalLines} line${totalLines === 1 ? "" : "s"}). ` + `The full content is already in this conversation — refer to the earlier Read result for ${filePath} instead of re-reading.
129367
+
129368
+ ` + `First lines for context:
129369
+ ${snippet}${totalLines > 10 ? `
129370
+ ... (${totalLines - 10} more lines)` : ""}`;
129371
+ }
129365
129372
  function renderPromptTemplate(lineFormat, maxSizeInstruction, offsetInstruction) {
129366
129373
  return `Reads a file from the local filesystem. You can access any file directly by using this tool.
129367
129374
  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.
@@ -162660,7 +162667,7 @@ function getAttributionHeader(fingerprint) {
162660
162667
  if (!isAttributionHeaderEnabled()) {
162661
162668
  return "";
162662
162669
  }
162663
- const version2 = `${"1.1.4+6101dad"}.${fingerprint}`;
162670
+ const version2 = `${"1.1.6+93550c9-dirty"}.${fingerprint}`;
162664
162671
  const entrypoint = process.env.VIVUS_CODE_ENTRYPOINT ?? "unknown";
162665
162672
  const cch = "";
162666
162673
  const workload = getWorkload();
@@ -175823,7 +175830,7 @@ function getTelemetryAttributes() {
175823
175830
  attributes["session.id"] = sessionId;
175824
175831
  }
175825
175832
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
175826
- attributes["app.version"] = "1.1.4+6101dad";
175833
+ attributes["app.version"] = "1.1.6+93550c9-dirty";
175827
175834
  }
175828
175835
  const oauthAccount = getOauthAccountInfo();
175829
175836
  if (oauthAccount) {
@@ -214925,7 +214932,9 @@ var init_FileReadTool = __esm(() => {
214925
214932
  exports_external.object({
214926
214933
  type: exports_external.literal("file_unchanged"),
214927
214934
  file: exports_external.object({
214928
- filePath: exports_external.string().describe("The path to the file")
214935
+ filePath: exports_external.string().describe("The path to the file"),
214936
+ totalLines: exports_external.number().describe("Total number of lines in the file"),
214937
+ snippet: exports_external.string().describe("First few lines of the file for context")
214929
214938
  })
214930
214939
  })
214931
214940
  ]);
@@ -215065,10 +215074,16 @@ var init_FileReadTool = __esm(() => {
215065
215074
  logEvent("tengu_file_read_dedup", {
215066
215075
  ...analyticsExt !== undefined && { ext: analyticsExt }
215067
215076
  });
215077
+ const lines = existingState.content.split(`
215078
+ `);
215079
+ const totalLines = lines.length;
215080
+ const SNIPPET_LINES = 10;
215081
+ const snippet = lines.slice(0, SNIPPET_LINES).map((l, i2) => `${String(i2 + 1).padStart(4)}: ${l}`).join(`
215082
+ `);
215068
215083
  return {
215069
215084
  data: {
215070
215085
  type: "file_unchanged",
215071
- file: { filePath: file_path }
215086
+ file: { filePath: file_path, totalLines, snippet }
215072
215087
  }
215073
215088
  };
215074
215089
  }
@@ -215150,7 +215165,7 @@ var init_FileReadTool = __esm(() => {
215150
215165
  return {
215151
215166
  tool_use_id: toolUseID,
215152
215167
  type: "tool_result",
215153
- content: FILE_UNCHANGED_STUB
215168
+ content: fileUnchangedStub(data.file.filePath, data.file.totalLines, data.file.snippet)
215154
215169
  };
215155
215170
  case "text": {
215156
215171
  let content;
@@ -242372,7 +242387,7 @@ function computeFingerprint(messageText, version2) {
242372
242387
  }
242373
242388
  function computeFingerprintFromMessages(messages) {
242374
242389
  const firstMessageText = extractFirstMessageText(messages);
242375
- return computeFingerprint(firstMessageText, "1.1.4+6101dad");
242390
+ return computeFingerprint(firstMessageText, "1.1.6+93550c9-dirty");
242376
242391
  }
242377
242392
  var FINGERPRINT_SALT = "59cf53e54c78";
242378
242393
  var init_fingerprint = () => {};
@@ -242414,7 +242429,7 @@ async function sideQuery(opts) {
242414
242429
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
242415
242430
  }
242416
242431
  const messageText = extractFirstUserMessageText(messages);
242417
- const fingerprint = computeFingerprint(messageText, "1.1.4+6101dad");
242432
+ const fingerprint = computeFingerprint(messageText, "1.1.6+93550c9-dirty");
242418
242433
  const attributionHeader = getAttributionHeader(fingerprint);
242419
242434
  const systemBlocks = [
242420
242435
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -243566,7 +243581,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
243566
243581
  const client2 = new Client({
243567
243582
  name: "vivus",
243568
243583
  title: "Vivus",
243569
- version: "1.1.4+6101dad",
243584
+ version: "1.1.6+93550c9-dirty",
243570
243585
  description: "Anthropic's agentic coding tool",
243571
243586
  websiteUrl: PRODUCT_URL
243572
243587
  }, {
@@ -243920,7 +243935,7 @@ var init_client6 = __esm(() => {
243920
243935
  const client2 = new Client({
243921
243936
  name: "vivus",
243922
243937
  title: "Vivus",
243923
- version: "1.1.4+6101dad",
243938
+ version: "1.1.6+93550c9-dirty",
243924
243939
  description: "Anthropic's agentic coding tool",
243925
243940
  websiteUrl: PRODUCT_URL
243926
243941
  }, {
@@ -245978,7 +245993,7 @@ function getInstallationEnv() {
245978
245993
  return;
245979
245994
  }
245980
245995
  function getVivusCodeVersion() {
245981
- return "1.1.4+6101dad";
245996
+ return "1.1.6+93550c9-dirty";
245982
245997
  }
245983
245998
  async function getInstalledVSCodeExtensionVersion(command) {
245984
245999
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -278468,7 +278483,7 @@ async function initializeBetaTracing(resource) {
278468
278483
  });
278469
278484
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
278470
278485
  setLoggerProvider(loggerProvider);
278471
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.4+6101dad");
278486
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.6+93550c9-dirty");
278472
278487
  setEventLogger(eventLogger);
278473
278488
  process.on("beforeExit", async () => {
278474
278489
  await loggerProvider?.forceFlush();
@@ -278508,7 +278523,7 @@ async function initializeTelemetry() {
278508
278523
  const platform5 = getPlatform();
278509
278524
  const baseAttributes = {
278510
278525
  [import_semantic_conventions2.ATTR_SERVICE_NAME]: "vivus",
278511
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.1.4+6101dad"
278526
+ [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.1.6+93550c9-dirty"
278512
278527
  };
278513
278528
  if (platform5 === "wsl") {
278514
278529
  const wslVersion = getWslVersion();
@@ -278553,7 +278568,7 @@ async function initializeTelemetry() {
278553
278568
  } catch {}
278554
278569
  };
278555
278570
  registerCleanup(shutdownTelemetry2);
278556
- return meterProvider2.getMeter("com.anthropic.vivus_code", "1.1.4+6101dad");
278571
+ return meterProvider2.getMeter("com.anthropic.vivus_code", "1.1.6+93550c9-dirty");
278557
278572
  }
278558
278573
  const meterProvider = new import_sdk_metrics2.MeterProvider({
278559
278574
  resource,
@@ -278573,7 +278588,7 @@ async function initializeTelemetry() {
278573
278588
  });
278574
278589
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
278575
278590
  setLoggerProvider(loggerProvider);
278576
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.4+6101dad");
278591
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.6+93550c9-dirty");
278577
278592
  setEventLogger(eventLogger);
278578
278593
  logForDebugging("[3P telemetry] Event logger set successfully");
278579
278594
  process.on("beforeExit", async () => {
@@ -278635,7 +278650,7 @@ Current timeout: ${timeoutMs}ms
278635
278650
  }
278636
278651
  };
278637
278652
  registerCleanup(shutdownTelemetry);
278638
- return meterProvider.getMeter("com.anthropic.vivus_code", "1.1.4+6101dad");
278653
+ return meterProvider.getMeter("com.anthropic.vivus_code", "1.1.6+93550c9-dirty");
278639
278654
  }
278640
278655
  async function flushTelemetry() {
278641
278656
  const meterProvider = getMeterProvider();
@@ -279321,9 +279336,9 @@ async function assertMinVersion() {
279321
279336
  if (false) {}
279322
279337
  try {
279323
279338
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
279324
- if (versionConfig.minVersion && lt("1.1.4+6101dad", versionConfig.minVersion)) {
279339
+ if (versionConfig.minVersion && lt("1.1.6+93550c9-dirty", versionConfig.minVersion)) {
279325
279340
  console.error(`
279326
- It looks like your version of Vivus (${"1.1.4+6101dad"}) needs an update.
279341
+ It looks like your version of Vivus (${"1.1.6+93550c9-dirty"}) needs an update.
279327
279342
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
279328
279343
 
279329
279344
  To update, please run:
@@ -279539,7 +279554,7 @@ async function installGlobalPackage(specificVersion) {
279539
279554
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
279540
279555
  logEvent("tengu_auto_updater_lock_contention", {
279541
279556
  pid: process.pid,
279542
- currentVersion: "1.1.4+6101dad"
279557
+ currentVersion: "1.1.6+93550c9-dirty"
279543
279558
  });
279544
279559
  return "in_progress";
279545
279560
  }
@@ -279548,7 +279563,7 @@ async function installGlobalPackage(specificVersion) {
279548
279563
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
279549
279564
  logError2(new Error("Windows NPM detected in WSL environment"));
279550
279565
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
279551
- currentVersion: "1.1.4+6101dad"
279566
+ currentVersion: "1.1.6+93550c9-dirty"
279552
279567
  });
279553
279568
  console.error(`
279554
279569
  Error: Windows NPM detected in WSL
@@ -280081,7 +280096,7 @@ function detectLinuxGlobPatternWarnings() {
280081
280096
  }
280082
280097
  async function getDoctorDiagnostic() {
280083
280098
  const installationType = await getCurrentInstallationType();
280084
- const version2 = typeof MACRO !== "undefined" ? "1.1.4+6101dad" : "unknown";
280099
+ const version2 = typeof MACRO !== "undefined" ? "1.1.6+93550c9-dirty" : "unknown";
280085
280100
  const installationPath = await getInstallationPath();
280086
280101
  const invokedBinary = getInvokedBinary();
280087
280102
  const multipleInstallations = await detectMultipleInstallations();
@@ -281014,8 +281029,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
281014
281029
  const maxVersion = await getMaxVersion();
281015
281030
  if (maxVersion && gt(version2, maxVersion)) {
281016
281031
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
281017
- if (gte("1.1.4+6101dad", maxVersion)) {
281018
- logForDebugging(`Native installer: current version ${"1.1.4+6101dad"} is already at or above maxVersion ${maxVersion}, skipping update`);
281032
+ if (gte("1.1.6+93550c9-dirty", maxVersion)) {
281033
+ logForDebugging(`Native installer: current version ${"1.1.6+93550c9-dirty"} is already at or above maxVersion ${maxVersion}, skipping update`);
281019
281034
  logEvent("tengu_native_update_skipped_max_version", {
281020
281035
  latency_ms: Date.now() - startTime,
281021
281036
  max_version: maxVersion,
@@ -281026,7 +281041,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
281026
281041
  version2 = maxVersion;
281027
281042
  }
281028
281043
  }
281029
- if (!forceReinstall && version2 === "1.1.4+6101dad" && await versionIsAvailable(version2) && await isPossibleVivusBinary(executablePath)) {
281044
+ if (!forceReinstall && version2 === "1.1.6+93550c9-dirty" && await versionIsAvailable(version2) && await isPossibleVivusBinary(executablePath)) {
281030
281045
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
281031
281046
  logEvent("tengu_native_update_complete", {
281032
281047
  latency_ms: Date.now() - startTime,
@@ -336939,7 +336954,7 @@ function getAnthropicEnvMetadata() {
336939
336954
  function getBuildAgeMinutes() {
336940
336955
  if (false)
336941
336956
  ;
336942
- const buildTime = new Date("2026-06-15T14:50:53.085Z").getTime();
336957
+ const buildTime = new Date("2026-06-18T01:30:36.107Z").getTime();
336943
336958
  if (isNaN(buildTime))
336944
336959
  return;
336945
336960
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -384155,7 +384170,7 @@ var init_filesystem = __esm(() => {
384155
384170
  });
384156
384171
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
384157
384172
  const nonce = randomBytes17(16).toString("hex");
384158
- return join106(getVivusTempDir(), "bundled-skills", "1.1.4+6101dad", nonce);
384173
+ return join106(getVivusTempDir(), "bundled-skills", "1.1.6+93550c9-dirty", nonce);
384159
384174
  });
384160
384175
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
384161
384176
  });
@@ -385915,7 +385930,7 @@ function Feedback({
385915
385930
  platform: env2.platform,
385916
385931
  gitRepo: envInfo.isGit,
385917
385932
  terminal: env2.terminal,
385918
- version: "1.1.4+6101dad",
385933
+ version: "1.1.6+93550c9-dirty",
385919
385934
  transcript: normalizeMessagesForAPI(messages),
385920
385935
  errors: sanitizedErrors,
385921
385936
  lastApiRequest: getLastAPIRequest(),
@@ -386107,7 +386122,7 @@ function Feedback({
386107
386122
  ", ",
386108
386123
  env2.terminal,
386109
386124
  ", v",
386110
- "1.1.4+6101dad"
386125
+ "1.1.6+93550c9-dirty"
386111
386126
  ]
386112
386127
  }, undefined, true, undefined, this)
386113
386128
  ]
@@ -386213,7 +386228,7 @@ ${sanitizedDescription}
386213
386228
  ` + `**Environment Info**
386214
386229
  ` + `- Platform: ${env2.platform}
386215
386230
  ` + `- Terminal: ${env2.terminal}
386216
- ` + `- Version: ${"1.1.4+6101dad"}
386231
+ ` + `- Version: ${"1.1.6+93550c9-dirty"}
386217
386232
  ` + `- Feedback ID: ${feedbackId}
386218
386233
  ` + `
386219
386234
  **Errors**
@@ -389344,7 +389359,7 @@ function buildPrimarySection() {
389344
389359
  }, undefined, false, undefined, this);
389345
389360
  return [{
389346
389361
  label: "Version",
389347
- value: "1.1.4+6101dad"
389362
+ value: "1.1.6+93550c9-dirty"
389348
389363
  }, {
389349
389364
  label: "Session name",
389350
389365
  value: nameValue
@@ -393095,7 +393110,7 @@ function Config({
393095
393110
  }
393096
393111
  }, undefined, false, undefined, this)
393097
393112
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime178.jsxDEV(ChannelDowngradeDialog, {
393098
- currentVersion: "1.1.4+6101dad",
393113
+ currentVersion: "1.1.6+93550c9-dirty",
393099
393114
  onChoice: (choice) => {
393100
393115
  setShowSubmenu(null);
393101
393116
  setTabsHidden(false);
@@ -393107,7 +393122,7 @@ function Config({
393107
393122
  autoUpdatesChannel: "stable"
393108
393123
  };
393109
393124
  if (choice === "stay") {
393110
- newSettings.minimumVersion = "1.1.4+6101dad";
393125
+ newSettings.minimumVersion = "1.1.6+93550c9-dirty";
393111
393126
  }
393112
393127
  updateSettingsForSource("userSettings", newSettings);
393113
393128
  setSettingsData((prev_27) => ({
@@ -401193,7 +401208,7 @@ function HelpV2(t0) {
401193
401208
  let t6;
401194
401209
  if ($2[31] !== tabs) {
401195
401210
  t6 = /* @__PURE__ */ jsx_dev_runtime205.jsxDEV(Tabs, {
401196
- title: `Vivus v${"1.1.4+6101dad"}`,
401211
+ title: `Vivus v${"1.1.6+93550c9-dirty"}`,
401197
401212
  color: "professionalBlue",
401198
401213
  defaultTab: "general",
401199
401214
  children: tabs
@@ -425419,7 +425434,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
425419
425434
  return [];
425420
425435
  }
425421
425436
  }
425422
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.4+6101dad") {
425437
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.6+93550c9-dirty") {
425423
425438
  if (process.env.USER_TYPE === "ant") {
425424
425439
  const changelog = "";
425425
425440
  if (changelog) {
@@ -425446,7 +425461,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.4+610
425446
425461
  releaseNotes
425447
425462
  };
425448
425463
  }
425449
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.4+6101dad") {
425464
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.6+93550c9-dirty") {
425450
425465
  if (process.env.USER_TYPE === "ant") {
425451
425466
  const changelog = "";
425452
425467
  if (changelog) {
@@ -426616,7 +426631,7 @@ function getRecentActivitySync() {
426616
426631
  return cachedActivity;
426617
426632
  }
426618
426633
  function getLogoDisplayData() {
426619
- const version2 = process.env.DEMO_VERSION ?? "1.1.4+6101dad";
426634
+ const version2 = process.env.DEMO_VERSION ?? "1.1.6+93550c9-dirty";
426620
426635
  const serverUrl = getDirectConnectServerUrl();
426621
426636
  const displayPath = process.env.DEMO_VERSION ? "/code/vivus" : getDisplayPath(getCwd());
426622
426637
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -428143,7 +428158,7 @@ function LogoV2() {
428143
428158
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
428144
428159
  t2 = () => {
428145
428160
  const currentConfig = getGlobalConfig();
428146
- if (currentConfig.lastReleaseNotesSeen === "1.1.4+6101dad") {
428161
+ if (currentConfig.lastReleaseNotesSeen === "1.1.6+93550c9-dirty") {
428147
428162
  return;
428148
428163
  }
428149
428164
  saveGlobalConfig(_temp329);
@@ -428819,12 +428834,12 @@ function LogoV2() {
428819
428834
  return t41;
428820
428835
  }
428821
428836
  function _temp329(current) {
428822
- if (current.lastReleaseNotesSeen === "1.1.4+6101dad") {
428837
+ if (current.lastReleaseNotesSeen === "1.1.6+93550c9-dirty") {
428823
428838
  return current;
428824
428839
  }
428825
428840
  return {
428826
428841
  ...current,
428827
- lastReleaseNotesSeen: "1.1.4+6101dad"
428842
+ lastReleaseNotesSeen: "1.1.6+93550c9-dirty"
428828
428843
  };
428829
428844
  }
428830
428845
  function _temp245(s_0) {
@@ -455121,7 +455136,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
455121
455136
  smapsRollup,
455122
455137
  platform: process.platform,
455123
455138
  nodeVersion: process.version,
455124
- ccVersion: "1.1.4+6101dad"
455139
+ ccVersion: "1.1.6+93550c9-dirty"
455125
455140
  };
455126
455141
  }
455127
455142
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -455707,7 +455722,7 @@ var init_bridge_kick = __esm(() => {
455707
455722
  var call56 = async () => {
455708
455723
  return {
455709
455724
  type: "text",
455710
- value: `${"1.1.4+6101dad"} (built ${"2026-06-15T14:50:53.085Z"})`
455725
+ value: `${"1.1.6+93550c9-dirty"} (built ${"2026-06-18T01:30:36.107Z"})`
455711
455726
  };
455712
455727
  }, version2, version_default;
455713
455728
  var init_version = __esm(() => {
@@ -464670,7 +464685,7 @@ function generateHtmlReport(data, insights) {
464670
464685
  </html>`;
464671
464686
  }
464672
464687
  function buildExportData(data, insights, facets, remoteStats) {
464673
- const version3 = typeof MACRO !== "undefined" ? "1.1.4+6101dad" : "unknown";
464688
+ const version3 = typeof MACRO !== "undefined" ? "1.1.6+93550c9-dirty" : "unknown";
464674
464689
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
464675
464690
  const facets_summary = {
464676
464691
  total: facets.size,
@@ -468779,7 +468794,7 @@ var init_sessionStorage = __esm(() => {
468779
468794
  init_settings2();
468780
468795
  init_slowOperations();
468781
468796
  init_uuid();
468782
- VERSION5 = typeof MACRO !== "undefined" ? "1.1.4+6101dad" : "unknown";
468797
+ VERSION5 = typeof MACRO !== "undefined" ? "1.1.6+93550c9-dirty" : "unknown";
468783
468798
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
468784
468799
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
468785
468800
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -471650,7 +471665,7 @@ function buildSystemInitMessage(inputs) {
471650
471665
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
471651
471666
  apiKeySource: getAnthropicApiKeyWithSource().source,
471652
471667
  betas: getSdkBetas(),
471653
- vivus_code_version: "1.1.4+6101dad",
471668
+ vivus_code_version: "1.1.6+93550c9-dirty",
471654
471669
  output_style: outputStyle2,
471655
471670
  agents: inputs.agents.map((agent) => agent.agentType),
471656
471671
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -486278,7 +486293,7 @@ var init_useVoiceEnabled = __esm(() => {
486278
486293
  function getSemverPart(version3) {
486279
486294
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
486280
486295
  }
486281
- function useUpdateNotification(updatedVersion, initialVersion = "1.1.4+6101dad") {
486296
+ function useUpdateNotification(updatedVersion, initialVersion = "1.1.6+93550c9-dirty") {
486282
486297
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react227.useState(() => getSemverPart(initialVersion));
486283
486298
  if (!updatedVersion) {
486284
486299
  return null;
@@ -486318,7 +486333,7 @@ function AutoUpdater({
486318
486333
  return;
486319
486334
  }
486320
486335
  if (false) {}
486321
- const currentVersion = "1.1.4+6101dad";
486336
+ const currentVersion = "1.1.6+93550c9-dirty";
486322
486337
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
486323
486338
  let latestVersion = await getLatestVersion(channel);
486324
486339
  const isDisabled = isAutoUpdaterDisabled();
@@ -486531,12 +486546,12 @@ function NativeAutoUpdater({
486531
486546
  logEvent("tengu_native_auto_updater_start", {});
486532
486547
  try {
486533
486548
  const maxVersion = await getMaxVersion();
486534
- if (maxVersion && gt("1.1.4+6101dad", maxVersion)) {
486549
+ if (maxVersion && gt("1.1.6+93550c9-dirty", maxVersion)) {
486535
486550
  const msg = await getMaxVersionMessage();
486536
486551
  setMaxVersionIssue(msg ?? "affects your version");
486537
486552
  }
486538
486553
  const result = await installLatest(channel);
486539
- const currentVersion = "1.1.4+6101dad";
486554
+ const currentVersion = "1.1.6+93550c9-dirty";
486540
486555
  const latencyMs = Date.now() - startTime;
486541
486556
  if (result.lockFailed) {
486542
486557
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -486673,17 +486688,17 @@ function PackageManagerAutoUpdater(t0) {
486673
486688
  const maxVersion = await getMaxVersion();
486674
486689
  if (maxVersion && latest && gt(latest, maxVersion)) {
486675
486690
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
486676
- if (gte("1.1.4+6101dad", maxVersion)) {
486677
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.4+6101dad"} is already at or above maxVersion ${maxVersion}, skipping update`);
486691
+ if (gte("1.1.6+93550c9-dirty", maxVersion)) {
486692
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.6+93550c9-dirty"} is already at or above maxVersion ${maxVersion}, skipping update`);
486678
486693
  setUpdateAvailable(false);
486679
486694
  return;
486680
486695
  }
486681
486696
  latest = maxVersion;
486682
486697
  }
486683
- const hasUpdate = latest && !gte("1.1.4+6101dad", latest) && !shouldSkipVersion(latest);
486698
+ const hasUpdate = latest && !gte("1.1.6+93550c9-dirty", latest) && !shouldSkipVersion(latest);
486684
486699
  setUpdateAvailable(!!hasUpdate);
486685
486700
  if (hasUpdate) {
486686
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.4+6101dad"} -> ${latest}`);
486701
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.6+93550c9-dirty"} -> ${latest}`);
486687
486702
  }
486688
486703
  };
486689
486704
  $2[0] = t1;
@@ -486717,7 +486732,7 @@ function PackageManagerAutoUpdater(t0) {
486717
486732
  wrap: "truncate",
486718
486733
  children: [
486719
486734
  "currentVersion: ",
486720
- "1.1.4+6101dad"
486735
+ "1.1.6+93550c9-dirty"
486721
486736
  ]
486722
486737
  }, undefined, true, undefined, this);
486723
486738
  $2[3] = verbose;
@@ -494885,7 +494900,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
494885
494900
  project_dir: getOriginalCwd(),
494886
494901
  added_dirs: addedDirs
494887
494902
  },
494888
- version: "1.1.4+6101dad",
494903
+ version: "1.1.6+93550c9-dirty",
494889
494904
  output_style: {
494890
494905
  name: outputStyleName
494891
494906
  },
@@ -506369,7 +506384,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
506369
506384
  } catch {}
506370
506385
  const data = {
506371
506386
  trigger,
506372
- version: "1.1.4+6101dad",
506387
+ version: "1.1.6+93550c9-dirty",
506373
506388
  platform: process.platform,
506374
506389
  transcript,
506375
506390
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -517785,7 +517800,7 @@ function WelcomeV2() {
517785
517800
  dimColor: true,
517786
517801
  children: [
517787
517802
  "v",
517788
- "1.1.4+6101dad",
517803
+ "1.1.6+93550c9-dirty",
517789
517804
  " "
517790
517805
  ]
517791
517806
  }, undefined, true, undefined, this)
@@ -517985,7 +518000,7 @@ function WelcomeV2() {
517985
518000
  dimColor: true,
517986
518001
  children: [
517987
518002
  "v",
517988
- "1.1.4+6101dad",
518003
+ "1.1.6+93550c9-dirty",
517989
518004
  " "
517990
518005
  ]
517991
518006
  }, undefined, true, undefined, this)
@@ -518211,7 +518226,7 @@ function AppleTerminalWelcomeV2(t0) {
518211
518226
  dimColor: true,
518212
518227
  children: [
518213
518228
  "v",
518214
- "1.1.4+6101dad",
518229
+ "1.1.6+93550c9-dirty",
518215
518230
  " "
518216
518231
  ]
518217
518232
  }, undefined, true, undefined, this);
@@ -518465,7 +518480,7 @@ function AppleTerminalWelcomeV2(t0) {
518465
518480
  dimColor: true,
518466
518481
  children: [
518467
518482
  "v",
518468
- "1.1.4+6101dad",
518483
+ "1.1.6+93550c9-dirty",
518469
518484
  " "
518470
518485
  ]
518471
518486
  }, undefined, true, undefined, this);
@@ -521529,7 +521544,7 @@ function appendToLog(path25, message) {
521529
521544
  cwd: getFsImplementation().cwd(),
521530
521545
  userType: process.env.USER_TYPE,
521531
521546
  sessionId: getSessionId(),
521532
- version: "1.1.4+6101dad"
521547
+ version: "1.1.6+93550c9-dirty"
521533
521548
  };
521534
521549
  getLogWriter(path25).write(messageWithTimestamp);
521535
521550
  }
@@ -525514,8 +525529,8 @@ async function getEnvLessBridgeConfig() {
525514
525529
  }
525515
525530
  async function checkEnvLessBridgeMinVersion() {
525516
525531
  const cfg = await getEnvLessBridgeConfig();
525517
- if (cfg.min_version && lt("1.1.4+6101dad", cfg.min_version)) {
525518
- return `Your version of Vivus (${"1.1.4+6101dad"}) is too old for Remote Control.
525532
+ if (cfg.min_version && lt("1.1.6+93550c9-dirty", cfg.min_version)) {
525533
+ return `Your version of Vivus (${"1.1.6+93550c9-dirty"}) is too old for Remote Control.
525519
525534
  Version ${cfg.min_version} or higher is required. Run \`vivus update\` to update.`;
525520
525535
  }
525521
525536
  return null;
@@ -525989,7 +526004,7 @@ async function initBridgeCore(params) {
525989
526004
  const rawApi = createBridgeApiClient({
525990
526005
  baseUrl,
525991
526006
  getAccessToken,
525992
- runnerVersion: "1.1.4+6101dad",
526007
+ runnerVersion: "1.1.6+93550c9-dirty",
525993
526008
  onDebug: logForDebugging,
525994
526009
  onAuth401,
525995
526010
  getTrustedDeviceToken
@@ -531653,7 +531668,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
531653
531668
  setCwd(cwd3);
531654
531669
  const server = new Server({
531655
531670
  name: "vivus/tengu",
531656
- version: "1.1.4+6101dad"
531671
+ version: "1.1.6+93550c9-dirty"
531657
531672
  }, {
531658
531673
  capabilities: {
531659
531674
  tools: {}
@@ -533264,7 +533279,7 @@ __export(exports_update, {
533264
533279
  });
533265
533280
  async function update() {
533266
533281
  logEvent("tengu_update_check", {});
533267
- writeToStdout(`Current version: ${"1.1.4+6101dad"}
533282
+ writeToStdout(`Current version: ${"1.1.6+93550c9-dirty"}
533268
533283
  `);
533269
533284
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
533270
533285
  writeToStdout(`Checking for updates to ${channel} version...
@@ -533339,8 +533354,8 @@ async function update() {
533339
533354
  writeToStdout(`Vivus is managed by Homebrew.
533340
533355
  `);
533341
533356
  const latest = await getLatestVersion(channel);
533342
- if (latest && !gte("1.1.4+6101dad", latest)) {
533343
- writeToStdout(`Update available: ${"1.1.4+6101dad"} → ${latest}
533357
+ if (latest && !gte("1.1.6+93550c9-dirty", latest)) {
533358
+ writeToStdout(`Update available: ${"1.1.6+93550c9-dirty"} → ${latest}
533344
533359
  `);
533345
533360
  writeToStdout(`
533346
533361
  `);
@@ -533356,8 +533371,8 @@ async function update() {
533356
533371
  writeToStdout(`Vivus is managed by winget.
533357
533372
  `);
533358
533373
  const latest = await getLatestVersion(channel);
533359
- if (latest && !gte("1.1.4+6101dad", latest)) {
533360
- writeToStdout(`Update available: ${"1.1.4+6101dad"} → ${latest}
533374
+ if (latest && !gte("1.1.6+93550c9-dirty", latest)) {
533375
+ writeToStdout(`Update available: ${"1.1.6+93550c9-dirty"} → ${latest}
533361
533376
  `);
533362
533377
  writeToStdout(`
533363
533378
  `);
@@ -533373,8 +533388,8 @@ async function update() {
533373
533388
  writeToStdout(`Vivus is managed by apk.
533374
533389
  `);
533375
533390
  const latest = await getLatestVersion(channel);
533376
- if (latest && !gte("1.1.4+6101dad", latest)) {
533377
- writeToStdout(`Update available: ${"1.1.4+6101dad"} → ${latest}
533391
+ if (latest && !gte("1.1.6+93550c9-dirty", latest)) {
533392
+ writeToStdout(`Update available: ${"1.1.6+93550c9-dirty"} → ${latest}
533378
533393
  `);
533379
533394
  writeToStdout(`
533380
533395
  `);
@@ -533439,11 +533454,11 @@ async function update() {
533439
533454
  `);
533440
533455
  await gracefulShutdown(1);
533441
533456
  }
533442
- if (result.latestVersion === "1.1.4+6101dad") {
533443
- writeToStdout(source_default.green(`Vivus is up to date (${"1.1.4+6101dad"})`) + `
533457
+ if (result.latestVersion === "1.1.6+93550c9-dirty") {
533458
+ writeToStdout(source_default.green(`Vivus is up to date (${"1.1.6+93550c9-dirty"})`) + `
533444
533459
  `);
533445
533460
  } else {
533446
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.4+6101dad"} to version ${result.latestVersion}`) + `
533461
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.6+93550c9-dirty"} to version ${result.latestVersion}`) + `
533447
533462
  `);
533448
533463
  await regenerateCompletionCache();
533449
533464
  }
@@ -533500,12 +533515,12 @@ async function update() {
533500
533515
  `);
533501
533516
  await gracefulShutdown(1);
533502
533517
  }
533503
- if (latestVersion === "1.1.4+6101dad") {
533504
- writeToStdout(source_default.green(`Vivus is up to date (${"1.1.4+6101dad"})`) + `
533518
+ if (latestVersion === "1.1.6+93550c9-dirty") {
533519
+ writeToStdout(source_default.green(`Vivus is up to date (${"1.1.6+93550c9-dirty"})`) + `
533505
533520
  `);
533506
533521
  await gracefulShutdown(0);
533507
533522
  }
533508
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.4+6101dad"})
533523
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.6+93550c9-dirty"})
533509
533524
  `);
533510
533525
  writeToStdout(`Installing update...
533511
533526
  `);
@@ -533550,7 +533565,7 @@ async function update() {
533550
533565
  logForDebugging(`update: Installation status: ${status2}`);
533551
533566
  switch (status2) {
533552
533567
  case "success":
533553
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.4+6101dad"} to version ${latestVersion}`) + `
533568
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.6+93550c9-dirty"} to version ${latestVersion}`) + `
533554
533569
  `);
533555
533570
  await regenerateCompletionCache();
533556
533571
  break;
@@ -534521,7 +534536,7 @@ function completeOnboarding() {
534521
534536
  saveGlobalConfig((current) => ({
534522
534537
  ...current,
534523
534538
  hasCompletedOnboarding: true,
534524
- lastOnboardingVersion: "1.1.4+6101dad"
534539
+ lastOnboardingVersion: "1.1.6+93550c9-dirty"
534525
534540
  }));
534526
534541
  }
534527
534542
  function showDialog(root2, renderer) {
@@ -538691,7 +538706,7 @@ ${customInstructions}` : customInstructions;
538691
538706
  }
538692
538707
  }
538693
538708
  logForDiagnosticsNoPII("info", "started", {
538694
- version: "1.1.4+6101dad",
538709
+ version: "1.1.6+93550c9-dirty",
538695
538710
  is_native_binary: isInBundledMode()
538696
538711
  });
538697
538712
  registerCleanup(async () => {
@@ -539475,7 +539490,7 @@ Usage: vivus --remote "your task description"`, () => gracefulShutdown(1));
539475
539490
  pendingHookMessages
539476
539491
  }, renderAndRun);
539477
539492
  }
539478
- }).version("1.1.4+6101dad (Vivus)", "-v, --version", "Output the version number");
539493
+ }).version("1.1.6+93550c9-dirty (Vivus)", "-v, --version", "Output the version number");
539479
539494
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
539480
539495
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
539481
539496
  if (canUserConfigureAdvisor()) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vivus-agent",
3
- "version": "1.1.4",
3
+ "version": "1.1.6",
4
4
  "description": "Vivus — local AI coding agent",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",
@@ -67,6 +67,7 @@
67
67
  "@opentelemetry/sdk-metrics": "^2.6.1",
68
68
  "@opentelemetry/sdk-trace-base": "^2.6.1",
69
69
  "@types/bun": "^1.1.0",
70
+ "@types/lodash-es": "^4.17.12",
70
71
  "@types/react": "^19.0.0",
71
72
  "ajv": "^8.17.0",
72
73
  "asciichart": "^1.5.25",