vivus-agent 1.1.5 → 1.1.7

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 +112 -90
  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-06-18T00:28:09.607Z
3
+ // Built from source at 2026-06-18T13:35:58.857Z
4
4
  import { createRequire } from "node:module";
5
5
  var __create = Object.create;
6
6
  var __getProtoOf = Object.getPrototypeOf;
@@ -10102,6 +10102,10 @@ function getOauthConfig() {
10102
10102
  OAUTH_FILE_SUFFIX: "-custom-oauth"
10103
10103
  };
10104
10104
  }
10105
+ const apiBaseUrl = process.env.VIVUS_CODE_API_BASE_URL;
10106
+ if (apiBaseUrl) {
10107
+ config = { ...config, BASE_API_URL: apiBaseUrl.replace(/\/$/, "") };
10108
+ }
10105
10109
  const clientIdOverride = process.env.VIVUS_CODE_OAUTH_CLIENT_ID;
10106
10110
  if (clientIdOverride) {
10107
10111
  config = {
@@ -111975,6 +111979,9 @@ function getAPIProviderForStatsig() {
111975
111979
  return getAPIProvider();
111976
111980
  }
111977
111981
  function isFirstPartyAnthropicBaseUrl() {
111982
+ if (process.env.VIVUS_CODE_IS_FIRST_PARTY === "1") {
111983
+ return true;
111984
+ }
111978
111985
  const baseUrl = process.env.ANTHROPIC_BASE_URL;
111979
111986
  if (!baseUrl) {
111980
111987
  return true;
@@ -115978,7 +115985,7 @@ var init_auth = __esm(() => {
115978
115985
 
115979
115986
  // src/utils/userAgent.ts
115980
115987
  function getVivusCodeUserAgent() {
115981
- return `vivus/${"1.1.5+326dcfc-dirty"}`;
115988
+ return `vivus/${"1.1.7+93550c9-dirty"}`;
115982
115989
  }
115983
115990
 
115984
115991
  // src/utils/workloadContext.ts
@@ -116000,7 +116007,7 @@ function getUserAgent() {
116000
116007
  const clientApp = process.env.VIVUS_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.VIVUS_AGENT_SDK_CLIENT_APP}` : "";
116001
116008
  const workload = getWorkload();
116002
116009
  const workloadSuffix = workload ? `, workload/${workload}` : "";
116003
- return `vivus-cli/${"1.1.5+326dcfc-dirty"} (${process.env.USER_TYPE}, ${process.env.VIVUS_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
116010
+ return `vivus-cli/${"1.1.7+93550c9-dirty"} (${process.env.USER_TYPE}, ${process.env.VIVUS_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
116004
116011
  }
116005
116012
  function getMCPUserAgent() {
116006
116013
  const parts = [];
@@ -116014,7 +116021,7 @@ function getMCPUserAgent() {
116014
116021
  parts.push(`client-app/${process.env.VIVUS_AGENT_SDK_CLIENT_APP}`);
116015
116022
  }
116016
116023
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
116017
- return `vivus/${"1.1.5+326dcfc-dirty"}${suffix}`;
116024
+ return `vivus/${"1.1.7+93550c9-dirty"}${suffix}`;
116018
116025
  }
116019
116026
  function getWebFetchUserAgent() {
116020
116027
  return `Vivus-User (${getVivusCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -116152,7 +116159,7 @@ var init_user = __esm(() => {
116152
116159
  deviceId,
116153
116160
  sessionId: getSessionId(),
116154
116161
  email: getEmail(),
116155
- appVersion: "1.1.5+326dcfc-dirty",
116162
+ appVersion: "1.1.7+93550c9-dirty",
116156
116163
  platform: getHostPlatformForAnalytics(),
116157
116164
  organizationUuid,
116158
116165
  accountUuid,
@@ -127818,7 +127825,7 @@ var init_metadata = __esm(() => {
127818
127825
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
127819
127826
  WHITESPACE_REGEX = /\s+/;
127820
127827
  getVersionBase = memoize_default(() => {
127821
- const match = "1.1.5+326dcfc-dirty".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
127828
+ const match = "1.1.7+93550c9-dirty".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
127822
127829
  return match ? match[0] : undefined;
127823
127830
  });
127824
127831
  buildEnvContext = memoize_default(async () => {
@@ -127858,9 +127865,9 @@ var init_metadata = __esm(() => {
127858
127865
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
127859
127866
  isVivusCodeAction: isEnvTruthy(process.env.VIVUS_CODE_ACTION),
127860
127867
  isVivusAiAuth: isVivusAISubscriber(),
127861
- version: "1.1.5+326dcfc-dirty",
127868
+ version: "1.1.7+93550c9-dirty",
127862
127869
  versionBase: getVersionBase(),
127863
- buildTime: "2026-06-18T00:28:09.014Z",
127870
+ buildTime: "2026-06-18T13:35:58.345Z",
127864
127871
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
127865
127872
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
127866
127873
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -128528,7 +128535,7 @@ function initialize1PEventLogging() {
128528
128535
  const platform2 = getPlatform();
128529
128536
  const attributes = {
128530
128537
  [import_semantic_conventions.ATTR_SERVICE_NAME]: "vivus",
128531
- [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.1.5+326dcfc-dirty"
128538
+ [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.1.7+93550c9-dirty"
128532
128539
  };
128533
128540
  if (platform2 === "wsl") {
128534
128541
  const wslVersion = getWslVersion();
@@ -128555,7 +128562,7 @@ function initialize1PEventLogging() {
128555
128562
  })
128556
128563
  ]
128557
128564
  });
128558
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.vivus_code.events", "1.1.5+326dcfc-dirty");
128565
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.vivus_code.events", "1.1.7+93550c9-dirty");
128559
128566
  }
128560
128567
  async function reinitialize1PEventLoggingIfConfigChanged() {
128561
128568
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -129362,6 +129369,13 @@ var init_pdfUtils = __esm(() => {
129362
129369
  });
129363
129370
 
129364
129371
  // src/tools/FileReadTool/prompt.ts
129372
+ function fileUnchangedStub(filePath, totalLines, snippet) {
129373
+ 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.
129374
+
129375
+ ` + `First lines for context:
129376
+ ${snippet}${totalLines > 10 ? `
129377
+ ... (${totalLines - 10} more lines)` : ""}`;
129378
+ }
129365
129379
  function renderPromptTemplate(lineFormat, maxSizeInstruction, offsetInstruction) {
129366
129380
  return `Reads a file from the local filesystem. You can access any file directly by using this tool.
129367
129381
  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 +162674,7 @@ function getAttributionHeader(fingerprint) {
162660
162674
  if (!isAttributionHeaderEnabled()) {
162661
162675
  return "";
162662
162676
  }
162663
- const version2 = `${"1.1.5+326dcfc-dirty"}.${fingerprint}`;
162677
+ const version2 = `${"1.1.7+93550c9-dirty"}.${fingerprint}`;
162664
162678
  const entrypoint = process.env.VIVUS_CODE_ENTRYPOINT ?? "unknown";
162665
162679
  const cch = "";
162666
162680
  const workload = getWorkload();
@@ -175823,7 +175837,7 @@ function getTelemetryAttributes() {
175823
175837
  attributes["session.id"] = sessionId;
175824
175838
  }
175825
175839
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
175826
- attributes["app.version"] = "1.1.5+326dcfc-dirty";
175840
+ attributes["app.version"] = "1.1.7+93550c9-dirty";
175827
175841
  }
175828
175842
  const oauthAccount = getOauthAccountInfo();
175829
175843
  if (oauthAccount) {
@@ -214925,7 +214939,9 @@ var init_FileReadTool = __esm(() => {
214925
214939
  exports_external.object({
214926
214940
  type: exports_external.literal("file_unchanged"),
214927
214941
  file: exports_external.object({
214928
- filePath: exports_external.string().describe("The path to the file")
214942
+ filePath: exports_external.string().describe("The path to the file"),
214943
+ totalLines: exports_external.number().describe("Total number of lines in the file"),
214944
+ snippet: exports_external.string().describe("First few lines of the file for context")
214929
214945
  })
214930
214946
  })
214931
214947
  ]);
@@ -215065,10 +215081,16 @@ var init_FileReadTool = __esm(() => {
215065
215081
  logEvent("tengu_file_read_dedup", {
215066
215082
  ...analyticsExt !== undefined && { ext: analyticsExt }
215067
215083
  });
215084
+ const lines = existingState.content.split(`
215085
+ `);
215086
+ const totalLines = lines.length;
215087
+ const SNIPPET_LINES = 10;
215088
+ const snippet = lines.slice(0, SNIPPET_LINES).map((l, i2) => `${String(i2 + 1).padStart(4)}: ${l}`).join(`
215089
+ `);
215068
215090
  return {
215069
215091
  data: {
215070
215092
  type: "file_unchanged",
215071
- file: { filePath: file_path }
215093
+ file: { filePath: file_path, totalLines, snippet }
215072
215094
  }
215073
215095
  };
215074
215096
  }
@@ -215150,7 +215172,7 @@ var init_FileReadTool = __esm(() => {
215150
215172
  return {
215151
215173
  tool_use_id: toolUseID,
215152
215174
  type: "tool_result",
215153
- content: FILE_UNCHANGED_STUB
215175
+ content: fileUnchangedStub(data.file.filePath, data.file.totalLines, data.file.snippet)
215154
215176
  };
215155
215177
  case "text": {
215156
215178
  let content;
@@ -242372,7 +242394,7 @@ function computeFingerprint(messageText, version2) {
242372
242394
  }
242373
242395
  function computeFingerprintFromMessages(messages) {
242374
242396
  const firstMessageText = extractFirstMessageText(messages);
242375
- return computeFingerprint(firstMessageText, "1.1.5+326dcfc-dirty");
242397
+ return computeFingerprint(firstMessageText, "1.1.7+93550c9-dirty");
242376
242398
  }
242377
242399
  var FINGERPRINT_SALT = "59cf53e54c78";
242378
242400
  var init_fingerprint = () => {};
@@ -242414,7 +242436,7 @@ async function sideQuery(opts) {
242414
242436
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
242415
242437
  }
242416
242438
  const messageText = extractFirstUserMessageText(messages);
242417
- const fingerprint = computeFingerprint(messageText, "1.1.5+326dcfc-dirty");
242439
+ const fingerprint = computeFingerprint(messageText, "1.1.7+93550c9-dirty");
242418
242440
  const attributionHeader = getAttributionHeader(fingerprint);
242419
242441
  const systemBlocks = [
242420
242442
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -243566,7 +243588,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
243566
243588
  const client2 = new Client({
243567
243589
  name: "vivus",
243568
243590
  title: "Vivus",
243569
- version: "1.1.5+326dcfc-dirty",
243591
+ version: "1.1.7+93550c9-dirty",
243570
243592
  description: "Anthropic's agentic coding tool",
243571
243593
  websiteUrl: PRODUCT_URL
243572
243594
  }, {
@@ -243920,7 +243942,7 @@ var init_client6 = __esm(() => {
243920
243942
  const client2 = new Client({
243921
243943
  name: "vivus",
243922
243944
  title: "Vivus",
243923
- version: "1.1.5+326dcfc-dirty",
243945
+ version: "1.1.7+93550c9-dirty",
243924
243946
  description: "Anthropic's agentic coding tool",
243925
243947
  websiteUrl: PRODUCT_URL
243926
243948
  }, {
@@ -245978,7 +246000,7 @@ function getInstallationEnv() {
245978
246000
  return;
245979
246001
  }
245980
246002
  function getVivusCodeVersion() {
245981
- return "1.1.5+326dcfc-dirty";
246003
+ return "1.1.7+93550c9-dirty";
245982
246004
  }
245983
246005
  async function getInstalledVSCodeExtensionVersion(command) {
245984
246006
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -278468,7 +278490,7 @@ async function initializeBetaTracing(resource) {
278468
278490
  });
278469
278491
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
278470
278492
  setLoggerProvider(loggerProvider);
278471
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.5+326dcfc-dirty");
278493
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.7+93550c9-dirty");
278472
278494
  setEventLogger(eventLogger);
278473
278495
  process.on("beforeExit", async () => {
278474
278496
  await loggerProvider?.forceFlush();
@@ -278508,7 +278530,7 @@ async function initializeTelemetry() {
278508
278530
  const platform5 = getPlatform();
278509
278531
  const baseAttributes = {
278510
278532
  [import_semantic_conventions2.ATTR_SERVICE_NAME]: "vivus",
278511
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.1.5+326dcfc-dirty"
278533
+ [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.1.7+93550c9-dirty"
278512
278534
  };
278513
278535
  if (platform5 === "wsl") {
278514
278536
  const wslVersion = getWslVersion();
@@ -278553,7 +278575,7 @@ async function initializeTelemetry() {
278553
278575
  } catch {}
278554
278576
  };
278555
278577
  registerCleanup(shutdownTelemetry2);
278556
- return meterProvider2.getMeter("com.anthropic.vivus_code", "1.1.5+326dcfc-dirty");
278578
+ return meterProvider2.getMeter("com.anthropic.vivus_code", "1.1.7+93550c9-dirty");
278557
278579
  }
278558
278580
  const meterProvider = new import_sdk_metrics2.MeterProvider({
278559
278581
  resource,
@@ -278573,7 +278595,7 @@ async function initializeTelemetry() {
278573
278595
  });
278574
278596
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
278575
278597
  setLoggerProvider(loggerProvider);
278576
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.5+326dcfc-dirty");
278598
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.7+93550c9-dirty");
278577
278599
  setEventLogger(eventLogger);
278578
278600
  logForDebugging("[3P telemetry] Event logger set successfully");
278579
278601
  process.on("beforeExit", async () => {
@@ -278635,7 +278657,7 @@ Current timeout: ${timeoutMs}ms
278635
278657
  }
278636
278658
  };
278637
278659
  registerCleanup(shutdownTelemetry);
278638
- return meterProvider.getMeter("com.anthropic.vivus_code", "1.1.5+326dcfc-dirty");
278660
+ return meterProvider.getMeter("com.anthropic.vivus_code", "1.1.7+93550c9-dirty");
278639
278661
  }
278640
278662
  async function flushTelemetry() {
278641
278663
  const meterProvider = getMeterProvider();
@@ -279321,9 +279343,9 @@ async function assertMinVersion() {
279321
279343
  if (false) {}
279322
279344
  try {
279323
279345
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
279324
- if (versionConfig.minVersion && lt("1.1.5+326dcfc-dirty", versionConfig.minVersion)) {
279346
+ if (versionConfig.minVersion && lt("1.1.7+93550c9-dirty", versionConfig.minVersion)) {
279325
279347
  console.error(`
279326
- It looks like your version of Vivus (${"1.1.5+326dcfc-dirty"}) needs an update.
279348
+ It looks like your version of Vivus (${"1.1.7+93550c9-dirty"}) needs an update.
279327
279349
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
279328
279350
 
279329
279351
  To update, please run:
@@ -279539,7 +279561,7 @@ async function installGlobalPackage(specificVersion) {
279539
279561
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
279540
279562
  logEvent("tengu_auto_updater_lock_contention", {
279541
279563
  pid: process.pid,
279542
- currentVersion: "1.1.5+326dcfc-dirty"
279564
+ currentVersion: "1.1.7+93550c9-dirty"
279543
279565
  });
279544
279566
  return "in_progress";
279545
279567
  }
@@ -279548,7 +279570,7 @@ async function installGlobalPackage(specificVersion) {
279548
279570
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
279549
279571
  logError2(new Error("Windows NPM detected in WSL environment"));
279550
279572
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
279551
- currentVersion: "1.1.5+326dcfc-dirty"
279573
+ currentVersion: "1.1.7+93550c9-dirty"
279552
279574
  });
279553
279575
  console.error(`
279554
279576
  Error: Windows NPM detected in WSL
@@ -280081,7 +280103,7 @@ function detectLinuxGlobPatternWarnings() {
280081
280103
  }
280082
280104
  async function getDoctorDiagnostic() {
280083
280105
  const installationType = await getCurrentInstallationType();
280084
- const version2 = typeof MACRO !== "undefined" ? "1.1.5+326dcfc-dirty" : "unknown";
280106
+ const version2 = typeof MACRO !== "undefined" ? "1.1.7+93550c9-dirty" : "unknown";
280085
280107
  const installationPath = await getInstallationPath();
280086
280108
  const invokedBinary = getInvokedBinary();
280087
280109
  const multipleInstallations = await detectMultipleInstallations();
@@ -281014,8 +281036,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
281014
281036
  const maxVersion = await getMaxVersion();
281015
281037
  if (maxVersion && gt(version2, maxVersion)) {
281016
281038
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
281017
- if (gte("1.1.5+326dcfc-dirty", maxVersion)) {
281018
- logForDebugging(`Native installer: current version ${"1.1.5+326dcfc-dirty"} is already at or above maxVersion ${maxVersion}, skipping update`);
281039
+ if (gte("1.1.7+93550c9-dirty", maxVersion)) {
281040
+ logForDebugging(`Native installer: current version ${"1.1.7+93550c9-dirty"} is already at or above maxVersion ${maxVersion}, skipping update`);
281019
281041
  logEvent("tengu_native_update_skipped_max_version", {
281020
281042
  latency_ms: Date.now() - startTime,
281021
281043
  max_version: maxVersion,
@@ -281026,7 +281048,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
281026
281048
  version2 = maxVersion;
281027
281049
  }
281028
281050
  }
281029
- if (!forceReinstall && version2 === "1.1.5+326dcfc-dirty" && await versionIsAvailable(version2) && await isPossibleVivusBinary(executablePath)) {
281051
+ if (!forceReinstall && version2 === "1.1.7+93550c9-dirty" && await versionIsAvailable(version2) && await isPossibleVivusBinary(executablePath)) {
281030
281052
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
281031
281053
  logEvent("tengu_native_update_complete", {
281032
281054
  latency_ms: Date.now() - startTime,
@@ -336939,7 +336961,7 @@ function getAnthropicEnvMetadata() {
336939
336961
  function getBuildAgeMinutes() {
336940
336962
  if (false)
336941
336963
  ;
336942
- const buildTime = new Date("2026-06-18T00:28:09.014Z").getTime();
336964
+ const buildTime = new Date("2026-06-18T13:35:58.345Z").getTime();
336943
336965
  if (isNaN(buildTime))
336944
336966
  return;
336945
336967
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -384155,7 +384177,7 @@ var init_filesystem = __esm(() => {
384155
384177
  });
384156
384178
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
384157
384179
  const nonce = randomBytes17(16).toString("hex");
384158
- return join106(getVivusTempDir(), "bundled-skills", "1.1.5+326dcfc-dirty", nonce);
384180
+ return join106(getVivusTempDir(), "bundled-skills", "1.1.7+93550c9-dirty", nonce);
384159
384181
  });
384160
384182
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
384161
384183
  });
@@ -385915,7 +385937,7 @@ function Feedback({
385915
385937
  platform: env2.platform,
385916
385938
  gitRepo: envInfo.isGit,
385917
385939
  terminal: env2.terminal,
385918
- version: "1.1.5+326dcfc-dirty",
385940
+ version: "1.1.7+93550c9-dirty",
385919
385941
  transcript: normalizeMessagesForAPI(messages),
385920
385942
  errors: sanitizedErrors,
385921
385943
  lastApiRequest: getLastAPIRequest(),
@@ -386107,7 +386129,7 @@ function Feedback({
386107
386129
  ", ",
386108
386130
  env2.terminal,
386109
386131
  ", v",
386110
- "1.1.5+326dcfc-dirty"
386132
+ "1.1.7+93550c9-dirty"
386111
386133
  ]
386112
386134
  }, undefined, true, undefined, this)
386113
386135
  ]
@@ -386213,7 +386235,7 @@ ${sanitizedDescription}
386213
386235
  ` + `**Environment Info**
386214
386236
  ` + `- Platform: ${env2.platform}
386215
386237
  ` + `- Terminal: ${env2.terminal}
386216
- ` + `- Version: ${"1.1.5+326dcfc-dirty"}
386238
+ ` + `- Version: ${"1.1.7+93550c9-dirty"}
386217
386239
  ` + `- Feedback ID: ${feedbackId}
386218
386240
  ` + `
386219
386241
  **Errors**
@@ -389344,7 +389366,7 @@ function buildPrimarySection() {
389344
389366
  }, undefined, false, undefined, this);
389345
389367
  return [{
389346
389368
  label: "Version",
389347
- value: "1.1.5+326dcfc-dirty"
389369
+ value: "1.1.7+93550c9-dirty"
389348
389370
  }, {
389349
389371
  label: "Session name",
389350
389372
  value: nameValue
@@ -393095,7 +393117,7 @@ function Config({
393095
393117
  }
393096
393118
  }, undefined, false, undefined, this)
393097
393119
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime178.jsxDEV(ChannelDowngradeDialog, {
393098
- currentVersion: "1.1.5+326dcfc-dirty",
393120
+ currentVersion: "1.1.7+93550c9-dirty",
393099
393121
  onChoice: (choice) => {
393100
393122
  setShowSubmenu(null);
393101
393123
  setTabsHidden(false);
@@ -393107,7 +393129,7 @@ function Config({
393107
393129
  autoUpdatesChannel: "stable"
393108
393130
  };
393109
393131
  if (choice === "stay") {
393110
- newSettings.minimumVersion = "1.1.5+326dcfc-dirty";
393132
+ newSettings.minimumVersion = "1.1.7+93550c9-dirty";
393111
393133
  }
393112
393134
  updateSettingsForSource("userSettings", newSettings);
393113
393135
  setSettingsData((prev_27) => ({
@@ -401193,7 +401215,7 @@ function HelpV2(t0) {
401193
401215
  let t6;
401194
401216
  if ($2[31] !== tabs) {
401195
401217
  t6 = /* @__PURE__ */ jsx_dev_runtime205.jsxDEV(Tabs, {
401196
- title: `Vivus v${"1.1.5+326dcfc-dirty"}`,
401218
+ title: `Vivus v${"1.1.7+93550c9-dirty"}`,
401197
401219
  color: "professionalBlue",
401198
401220
  defaultTab: "general",
401199
401221
  children: tabs
@@ -425419,7 +425441,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
425419
425441
  return [];
425420
425442
  }
425421
425443
  }
425422
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.5+326dcfc-dirty") {
425444
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.7+93550c9-dirty") {
425423
425445
  if (process.env.USER_TYPE === "ant") {
425424
425446
  const changelog = "";
425425
425447
  if (changelog) {
@@ -425446,7 +425468,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.5+326
425446
425468
  releaseNotes
425447
425469
  };
425448
425470
  }
425449
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.5+326dcfc-dirty") {
425471
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.7+93550c9-dirty") {
425450
425472
  if (process.env.USER_TYPE === "ant") {
425451
425473
  const changelog = "";
425452
425474
  if (changelog) {
@@ -426616,7 +426638,7 @@ function getRecentActivitySync() {
426616
426638
  return cachedActivity;
426617
426639
  }
426618
426640
  function getLogoDisplayData() {
426619
- const version2 = process.env.DEMO_VERSION ?? "1.1.5+326dcfc-dirty";
426641
+ const version2 = process.env.DEMO_VERSION ?? "1.1.7+93550c9-dirty";
426620
426642
  const serverUrl = getDirectConnectServerUrl();
426621
426643
  const displayPath = process.env.DEMO_VERSION ? "/code/vivus" : getDisplayPath(getCwd());
426622
426644
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -428143,7 +428165,7 @@ function LogoV2() {
428143
428165
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
428144
428166
  t2 = () => {
428145
428167
  const currentConfig = getGlobalConfig();
428146
- if (currentConfig.lastReleaseNotesSeen === "1.1.5+326dcfc-dirty") {
428168
+ if (currentConfig.lastReleaseNotesSeen === "1.1.7+93550c9-dirty") {
428147
428169
  return;
428148
428170
  }
428149
428171
  saveGlobalConfig(_temp329);
@@ -428819,12 +428841,12 @@ function LogoV2() {
428819
428841
  return t41;
428820
428842
  }
428821
428843
  function _temp329(current) {
428822
- if (current.lastReleaseNotesSeen === "1.1.5+326dcfc-dirty") {
428844
+ if (current.lastReleaseNotesSeen === "1.1.7+93550c9-dirty") {
428823
428845
  return current;
428824
428846
  }
428825
428847
  return {
428826
428848
  ...current,
428827
- lastReleaseNotesSeen: "1.1.5+326dcfc-dirty"
428849
+ lastReleaseNotesSeen: "1.1.7+93550c9-dirty"
428828
428850
  };
428829
428851
  }
428830
428852
  function _temp245(s_0) {
@@ -455121,7 +455143,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
455121
455143
  smapsRollup,
455122
455144
  platform: process.platform,
455123
455145
  nodeVersion: process.version,
455124
- ccVersion: "1.1.5+326dcfc-dirty"
455146
+ ccVersion: "1.1.7+93550c9-dirty"
455125
455147
  };
455126
455148
  }
455127
455149
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -455707,7 +455729,7 @@ var init_bridge_kick = __esm(() => {
455707
455729
  var call56 = async () => {
455708
455730
  return {
455709
455731
  type: "text",
455710
- value: `${"1.1.5+326dcfc-dirty"} (built ${"2026-06-18T00:28:09.014Z"})`
455732
+ value: `${"1.1.7+93550c9-dirty"} (built ${"2026-06-18T13:35:58.345Z"})`
455711
455733
  };
455712
455734
  }, version2, version_default;
455713
455735
  var init_version = __esm(() => {
@@ -464670,7 +464692,7 @@ function generateHtmlReport(data, insights) {
464670
464692
  </html>`;
464671
464693
  }
464672
464694
  function buildExportData(data, insights, facets, remoteStats) {
464673
- const version3 = typeof MACRO !== "undefined" ? "1.1.5+326dcfc-dirty" : "unknown";
464695
+ const version3 = typeof MACRO !== "undefined" ? "1.1.7+93550c9-dirty" : "unknown";
464674
464696
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
464675
464697
  const facets_summary = {
464676
464698
  total: facets.size,
@@ -468779,7 +468801,7 @@ var init_sessionStorage = __esm(() => {
468779
468801
  init_settings2();
468780
468802
  init_slowOperations();
468781
468803
  init_uuid();
468782
- VERSION5 = typeof MACRO !== "undefined" ? "1.1.5+326dcfc-dirty" : "unknown";
468804
+ VERSION5 = typeof MACRO !== "undefined" ? "1.1.7+93550c9-dirty" : "unknown";
468783
468805
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
468784
468806
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
468785
468807
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -471650,7 +471672,7 @@ function buildSystemInitMessage(inputs) {
471650
471672
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
471651
471673
  apiKeySource: getAnthropicApiKeyWithSource().source,
471652
471674
  betas: getSdkBetas(),
471653
- vivus_code_version: "1.1.5+326dcfc-dirty",
471675
+ vivus_code_version: "1.1.7+93550c9-dirty",
471654
471676
  output_style: outputStyle2,
471655
471677
  agents: inputs.agents.map((agent) => agent.agentType),
471656
471678
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -486278,7 +486300,7 @@ var init_useVoiceEnabled = __esm(() => {
486278
486300
  function getSemverPart(version3) {
486279
486301
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
486280
486302
  }
486281
- function useUpdateNotification(updatedVersion, initialVersion = "1.1.5+326dcfc-dirty") {
486303
+ function useUpdateNotification(updatedVersion, initialVersion = "1.1.7+93550c9-dirty") {
486282
486304
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react227.useState(() => getSemverPart(initialVersion));
486283
486305
  if (!updatedVersion) {
486284
486306
  return null;
@@ -486318,7 +486340,7 @@ function AutoUpdater({
486318
486340
  return;
486319
486341
  }
486320
486342
  if (false) {}
486321
- const currentVersion = "1.1.5+326dcfc-dirty";
486343
+ const currentVersion = "1.1.7+93550c9-dirty";
486322
486344
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
486323
486345
  let latestVersion = await getLatestVersion(channel);
486324
486346
  const isDisabled = isAutoUpdaterDisabled();
@@ -486531,12 +486553,12 @@ function NativeAutoUpdater({
486531
486553
  logEvent("tengu_native_auto_updater_start", {});
486532
486554
  try {
486533
486555
  const maxVersion = await getMaxVersion();
486534
- if (maxVersion && gt("1.1.5+326dcfc-dirty", maxVersion)) {
486556
+ if (maxVersion && gt("1.1.7+93550c9-dirty", maxVersion)) {
486535
486557
  const msg = await getMaxVersionMessage();
486536
486558
  setMaxVersionIssue(msg ?? "affects your version");
486537
486559
  }
486538
486560
  const result = await installLatest(channel);
486539
- const currentVersion = "1.1.5+326dcfc-dirty";
486561
+ const currentVersion = "1.1.7+93550c9-dirty";
486540
486562
  const latencyMs = Date.now() - startTime;
486541
486563
  if (result.lockFailed) {
486542
486564
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -486673,17 +486695,17 @@ function PackageManagerAutoUpdater(t0) {
486673
486695
  const maxVersion = await getMaxVersion();
486674
486696
  if (maxVersion && latest && gt(latest, maxVersion)) {
486675
486697
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
486676
- if (gte("1.1.5+326dcfc-dirty", maxVersion)) {
486677
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.5+326dcfc-dirty"} is already at or above maxVersion ${maxVersion}, skipping update`);
486698
+ if (gte("1.1.7+93550c9-dirty", maxVersion)) {
486699
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.7+93550c9-dirty"} is already at or above maxVersion ${maxVersion}, skipping update`);
486678
486700
  setUpdateAvailable(false);
486679
486701
  return;
486680
486702
  }
486681
486703
  latest = maxVersion;
486682
486704
  }
486683
- const hasUpdate = latest && !gte("1.1.5+326dcfc-dirty", latest) && !shouldSkipVersion(latest);
486705
+ const hasUpdate = latest && !gte("1.1.7+93550c9-dirty", latest) && !shouldSkipVersion(latest);
486684
486706
  setUpdateAvailable(!!hasUpdate);
486685
486707
  if (hasUpdate) {
486686
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.5+326dcfc-dirty"} -> ${latest}`);
486708
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.7+93550c9-dirty"} -> ${latest}`);
486687
486709
  }
486688
486710
  };
486689
486711
  $2[0] = t1;
@@ -486717,7 +486739,7 @@ function PackageManagerAutoUpdater(t0) {
486717
486739
  wrap: "truncate",
486718
486740
  children: [
486719
486741
  "currentVersion: ",
486720
- "1.1.5+326dcfc-dirty"
486742
+ "1.1.7+93550c9-dirty"
486721
486743
  ]
486722
486744
  }, undefined, true, undefined, this);
486723
486745
  $2[3] = verbose;
@@ -494885,7 +494907,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
494885
494907
  project_dir: getOriginalCwd(),
494886
494908
  added_dirs: addedDirs
494887
494909
  },
494888
- version: "1.1.5+326dcfc-dirty",
494910
+ version: "1.1.7+93550c9-dirty",
494889
494911
  output_style: {
494890
494912
  name: outputStyleName
494891
494913
  },
@@ -506369,7 +506391,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
506369
506391
  } catch {}
506370
506392
  const data = {
506371
506393
  trigger,
506372
- version: "1.1.5+326dcfc-dirty",
506394
+ version: "1.1.7+93550c9-dirty",
506373
506395
  platform: process.platform,
506374
506396
  transcript,
506375
506397
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -517785,7 +517807,7 @@ function WelcomeV2() {
517785
517807
  dimColor: true,
517786
517808
  children: [
517787
517809
  "v",
517788
- "1.1.5+326dcfc-dirty",
517810
+ "1.1.7+93550c9-dirty",
517789
517811
  " "
517790
517812
  ]
517791
517813
  }, undefined, true, undefined, this)
@@ -517985,7 +518007,7 @@ function WelcomeV2() {
517985
518007
  dimColor: true,
517986
518008
  children: [
517987
518009
  "v",
517988
- "1.1.5+326dcfc-dirty",
518010
+ "1.1.7+93550c9-dirty",
517989
518011
  " "
517990
518012
  ]
517991
518013
  }, undefined, true, undefined, this)
@@ -518211,7 +518233,7 @@ function AppleTerminalWelcomeV2(t0) {
518211
518233
  dimColor: true,
518212
518234
  children: [
518213
518235
  "v",
518214
- "1.1.5+326dcfc-dirty",
518236
+ "1.1.7+93550c9-dirty",
518215
518237
  " "
518216
518238
  ]
518217
518239
  }, undefined, true, undefined, this);
@@ -518465,7 +518487,7 @@ function AppleTerminalWelcomeV2(t0) {
518465
518487
  dimColor: true,
518466
518488
  children: [
518467
518489
  "v",
518468
- "1.1.5+326dcfc-dirty",
518490
+ "1.1.7+93550c9-dirty",
518469
518491
  " "
518470
518492
  ]
518471
518493
  }, undefined, true, undefined, this);
@@ -521529,7 +521551,7 @@ function appendToLog(path25, message) {
521529
521551
  cwd: getFsImplementation().cwd(),
521530
521552
  userType: process.env.USER_TYPE,
521531
521553
  sessionId: getSessionId(),
521532
- version: "1.1.5+326dcfc-dirty"
521554
+ version: "1.1.7+93550c9-dirty"
521533
521555
  };
521534
521556
  getLogWriter(path25).write(messageWithTimestamp);
521535
521557
  }
@@ -525514,8 +525536,8 @@ async function getEnvLessBridgeConfig() {
525514
525536
  }
525515
525537
  async function checkEnvLessBridgeMinVersion() {
525516
525538
  const cfg = await getEnvLessBridgeConfig();
525517
- if (cfg.min_version && lt("1.1.5+326dcfc-dirty", cfg.min_version)) {
525518
- return `Your version of Vivus (${"1.1.5+326dcfc-dirty"}) is too old for Remote Control.
525539
+ if (cfg.min_version && lt("1.1.7+93550c9-dirty", cfg.min_version)) {
525540
+ return `Your version of Vivus (${"1.1.7+93550c9-dirty"}) is too old for Remote Control.
525519
525541
  Version ${cfg.min_version} or higher is required. Run \`vivus update\` to update.`;
525520
525542
  }
525521
525543
  return null;
@@ -525989,7 +526011,7 @@ async function initBridgeCore(params) {
525989
526011
  const rawApi = createBridgeApiClient({
525990
526012
  baseUrl,
525991
526013
  getAccessToken,
525992
- runnerVersion: "1.1.5+326dcfc-dirty",
526014
+ runnerVersion: "1.1.7+93550c9-dirty",
525993
526015
  onDebug: logForDebugging,
525994
526016
  onAuth401,
525995
526017
  getTrustedDeviceToken
@@ -531653,7 +531675,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
531653
531675
  setCwd(cwd3);
531654
531676
  const server = new Server({
531655
531677
  name: "vivus/tengu",
531656
- version: "1.1.5+326dcfc-dirty"
531678
+ version: "1.1.7+93550c9-dirty"
531657
531679
  }, {
531658
531680
  capabilities: {
531659
531681
  tools: {}
@@ -533264,7 +533286,7 @@ __export(exports_update, {
533264
533286
  });
533265
533287
  async function update() {
533266
533288
  logEvent("tengu_update_check", {});
533267
- writeToStdout(`Current version: ${"1.1.5+326dcfc-dirty"}
533289
+ writeToStdout(`Current version: ${"1.1.7+93550c9-dirty"}
533268
533290
  `);
533269
533291
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
533270
533292
  writeToStdout(`Checking for updates to ${channel} version...
@@ -533339,8 +533361,8 @@ async function update() {
533339
533361
  writeToStdout(`Vivus is managed by Homebrew.
533340
533362
  `);
533341
533363
  const latest = await getLatestVersion(channel);
533342
- if (latest && !gte("1.1.5+326dcfc-dirty", latest)) {
533343
- writeToStdout(`Update available: ${"1.1.5+326dcfc-dirty"} → ${latest}
533364
+ if (latest && !gte("1.1.7+93550c9-dirty", latest)) {
533365
+ writeToStdout(`Update available: ${"1.1.7+93550c9-dirty"} → ${latest}
533344
533366
  `);
533345
533367
  writeToStdout(`
533346
533368
  `);
@@ -533356,8 +533378,8 @@ async function update() {
533356
533378
  writeToStdout(`Vivus is managed by winget.
533357
533379
  `);
533358
533380
  const latest = await getLatestVersion(channel);
533359
- if (latest && !gte("1.1.5+326dcfc-dirty", latest)) {
533360
- writeToStdout(`Update available: ${"1.1.5+326dcfc-dirty"} → ${latest}
533381
+ if (latest && !gte("1.1.7+93550c9-dirty", latest)) {
533382
+ writeToStdout(`Update available: ${"1.1.7+93550c9-dirty"} → ${latest}
533361
533383
  `);
533362
533384
  writeToStdout(`
533363
533385
  `);
@@ -533373,8 +533395,8 @@ async function update() {
533373
533395
  writeToStdout(`Vivus is managed by apk.
533374
533396
  `);
533375
533397
  const latest = await getLatestVersion(channel);
533376
- if (latest && !gte("1.1.5+326dcfc-dirty", latest)) {
533377
- writeToStdout(`Update available: ${"1.1.5+326dcfc-dirty"} → ${latest}
533398
+ if (latest && !gte("1.1.7+93550c9-dirty", latest)) {
533399
+ writeToStdout(`Update available: ${"1.1.7+93550c9-dirty"} → ${latest}
533378
533400
  `);
533379
533401
  writeToStdout(`
533380
533402
  `);
@@ -533439,11 +533461,11 @@ async function update() {
533439
533461
  `);
533440
533462
  await gracefulShutdown(1);
533441
533463
  }
533442
- if (result.latestVersion === "1.1.5+326dcfc-dirty") {
533443
- writeToStdout(source_default.green(`Vivus is up to date (${"1.1.5+326dcfc-dirty"})`) + `
533464
+ if (result.latestVersion === "1.1.7+93550c9-dirty") {
533465
+ writeToStdout(source_default.green(`Vivus is up to date (${"1.1.7+93550c9-dirty"})`) + `
533444
533466
  `);
533445
533467
  } else {
533446
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.5+326dcfc-dirty"} to version ${result.latestVersion}`) + `
533468
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.7+93550c9-dirty"} to version ${result.latestVersion}`) + `
533447
533469
  `);
533448
533470
  await regenerateCompletionCache();
533449
533471
  }
@@ -533500,12 +533522,12 @@ async function update() {
533500
533522
  `);
533501
533523
  await gracefulShutdown(1);
533502
533524
  }
533503
- if (latestVersion === "1.1.5+326dcfc-dirty") {
533504
- writeToStdout(source_default.green(`Vivus is up to date (${"1.1.5+326dcfc-dirty"})`) + `
533525
+ if (latestVersion === "1.1.7+93550c9-dirty") {
533526
+ writeToStdout(source_default.green(`Vivus is up to date (${"1.1.7+93550c9-dirty"})`) + `
533505
533527
  `);
533506
533528
  await gracefulShutdown(0);
533507
533529
  }
533508
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.5+326dcfc-dirty"})
533530
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.7+93550c9-dirty"})
533509
533531
  `);
533510
533532
  writeToStdout(`Installing update...
533511
533533
  `);
@@ -533550,7 +533572,7 @@ async function update() {
533550
533572
  logForDebugging(`update: Installation status: ${status2}`);
533551
533573
  switch (status2) {
533552
533574
  case "success":
533553
- writeToStdout(source_default.green(`Successfully updated from ${"1.1.5+326dcfc-dirty"} to version ${latestVersion}`) + `
533575
+ writeToStdout(source_default.green(`Successfully updated from ${"1.1.7+93550c9-dirty"} to version ${latestVersion}`) + `
533554
533576
  `);
533555
533577
  await regenerateCompletionCache();
533556
533578
  break;
@@ -534521,7 +534543,7 @@ function completeOnboarding() {
534521
534543
  saveGlobalConfig((current) => ({
534522
534544
  ...current,
534523
534545
  hasCompletedOnboarding: true,
534524
- lastOnboardingVersion: "1.1.5+326dcfc-dirty"
534546
+ lastOnboardingVersion: "1.1.7+93550c9-dirty"
534525
534547
  }));
534526
534548
  }
534527
534549
  function showDialog(root2, renderer) {
@@ -538691,7 +538713,7 @@ ${customInstructions}` : customInstructions;
538691
538713
  }
538692
538714
  }
538693
538715
  logForDiagnosticsNoPII("info", "started", {
538694
- version: "1.1.5+326dcfc-dirty",
538716
+ version: "1.1.7+93550c9-dirty",
538695
538717
  is_native_binary: isInBundledMode()
538696
538718
  });
538697
538719
  registerCleanup(async () => {
@@ -539475,7 +539497,7 @@ Usage: vivus --remote "your task description"`, () => gracefulShutdown(1));
539475
539497
  pendingHookMessages
539476
539498
  }, renderAndRun);
539477
539499
  }
539478
- }).version("1.1.5+326dcfc-dirty (Vivus)", "-v, --version", "Output the version number");
539500
+ }).version("1.1.7+93550c9-dirty (Vivus)", "-v, --version", "Output the version number");
539479
539501
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
539480
539502
  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
539503
  if (canUserConfigureAdvisor()) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vivus-agent",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "Vivus — local AI coding agent",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",