vivus-agent 1.0.4 → 1.0.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 +286 -93
  2. package/package.json +1 -1
package/dist/main.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  // Vivus CLI — local AI coding agent
3
- // Built from source at 2026-06-05T22:56:05.279Z
3
+ // Built from source at 2026-06-05T23:17:49.924Z
4
4
  import { createRequire } from "node:module";
5
5
  var __create = Object.create;
6
6
  var __getProtoOf = Object.getPrototypeOf;
@@ -113373,6 +113373,117 @@ var init_modelAllowlist = __esm(() => {
113373
113373
  init_modelStrings();
113374
113374
  });
113375
113375
 
113376
+ // src/utils/model/proxyModelLabels.ts
113377
+ function stripTag(name) {
113378
+ const i2 = name.indexOf(":");
113379
+ return i2 === -1 ? name : name.slice(0, i2);
113380
+ }
113381
+ function titleCaseFromName(stripped) {
113382
+ return stripped.split(/[-_/]/).filter(Boolean).map((p) => p.charAt(0).toUpperCase() + p.slice(1)).join(" ");
113383
+ }
113384
+ function extractSizeFromTag(name) {
113385
+ const i2 = name.indexOf(":");
113386
+ if (i2 === -1)
113387
+ return null;
113388
+ const tag2 = name.slice(i2 + 1);
113389
+ const m = tag2.match(/^(\d+(?:\.\d+)?)b\b/i);
113390
+ return m ? `${m[1]}B` : null;
113391
+ }
113392
+ function lookupProxyModelLabel(name, fallback) {
113393
+ const base2 = stripTag(name).toLowerCase();
113394
+ const sizeFromTag = extractSizeFromTag(name);
113395
+ const entry = PROXY_MODEL_LABELS[base2];
113396
+ if (entry) {
113397
+ return {
113398
+ label: entry.label + (sizeFromTag ? ` (${sizeFromTag})` : ""),
113399
+ description: entry.description
113400
+ };
113401
+ }
113402
+ const label = titleCaseFromName(stripTag(name));
113403
+ const size = sizeFromTag ?? fallback?.parameterSize?.replace(/\s+/g, "") ?? null;
113404
+ const descParts = [];
113405
+ if (fallback?.family)
113406
+ descParts.push(fallback.family);
113407
+ if (size)
113408
+ descParts.push(size);
113409
+ return {
113410
+ label: label + (sizeFromTag ? ` (${sizeFromTag})` : ""),
113411
+ description: descParts.length > 0 ? descParts.join(" · ") : "Custom model"
113412
+ };
113413
+ }
113414
+ function isProxyModelName(name) {
113415
+ if (!name)
113416
+ return false;
113417
+ if (name.includes(":"))
113418
+ return true;
113419
+ return PROXY_MODEL_LABELS[name.toLowerCase()] !== undefined;
113420
+ }
113421
+ var PROXY_MODEL_LABELS;
113422
+ var init_proxyModelLabels = __esm(() => {
113423
+ PROXY_MODEL_LABELS = {
113424
+ "minimax-m3": {
113425
+ label: "MiniMax M3",
113426
+ description: "Balanced default · strong general reasoning, long context"
113427
+ },
113428
+ "qwen3-coder-next": {
113429
+ label: "Qwen3 Coder Next",
113430
+ description: "Latest coding model · best for code tasks"
113431
+ },
113432
+ "qwen3-coder": {
113433
+ label: "Qwen3 Coder",
113434
+ description: "Coding-focused MoE"
113435
+ },
113436
+ "qwen3-vl": {
113437
+ label: "Qwen3 VL",
113438
+ description: "Vision-capable · multimodal input"
113439
+ },
113440
+ qwen3: {
113441
+ label: "Qwen3",
113442
+ description: "General-purpose Alibaba Qwen"
113443
+ },
113444
+ "qwen3.6": {
113445
+ label: "Qwen 3.6",
113446
+ description: "Latest Qwen · improved reasoning"
113447
+ },
113448
+ "deepseek-v4-flash": {
113449
+ label: "DeepSeek V4 Flash",
113450
+ description: "Fast responses · low latency"
113451
+ },
113452
+ "deepseek-v4-pro": {
113453
+ label: "DeepSeek V4 Pro",
113454
+ description: "Advanced reasoning · deep analysis"
113455
+ },
113456
+ "deepseek-v3.1": {
113457
+ label: "DeepSeek V3.1",
113458
+ description: "Strong reasoning · MoE"
113459
+ },
113460
+ "glm-5.1": {
113461
+ label: "GLM 5.1",
113462
+ description: "General-purpose · long context"
113463
+ },
113464
+ "kimi-k2.6": {
113465
+ label: "Kimi K2.6",
113466
+ description: "Deep reasoning · trillion-parameter scale"
113467
+ },
113468
+ "gpt-oss": {
113469
+ label: "GPT-OSS",
113470
+ description: "Open-weight GPT-style model"
113471
+ },
113472
+ gemma4: {
113473
+ label: "Gemma 4",
113474
+ description: "Google Gemma · compact and capable"
113475
+ },
113476
+ "granite4.1": {
113477
+ label: "Granite 4.1",
113478
+ description: "IBM Granite · enterprise coder"
113479
+ },
113480
+ nemotron3: {
113481
+ label: "Nemotron 3",
113482
+ description: "NVIDIA Nemotron · multimodal"
113483
+ }
113484
+ };
113485
+ });
113486
+
113376
113487
  // src/utils/model/model.ts
113377
113488
  var exports_model = {};
113378
113489
  __export(exports_model, {
@@ -113469,6 +113580,9 @@ function getRuntimeMainLoopModel(params) {
113469
113580
  return mainLoopModel;
113470
113581
  }
113471
113582
  function getDefaultMainLoopModelSetting() {
113583
+ if (!isFirstPartyAnthropicBaseUrl()) {
113584
+ return process.env.VIVUS_DEFAULT_PROXY_MODEL || process.env.ANTHROPIC_MODEL || "minimax-m3:cloud";
113585
+ }
113472
113586
  if (process.env.USER_TYPE === "ant") {
113473
113587
  return getAntModelOverrideConfig()?.defaultModel ?? getDefaultOpusModel() + "[1m]";
113474
113588
  }
@@ -113618,6 +113732,9 @@ function maskModelCodename(baseName) {
113618
113732
  return [masked, ...rest].join("-");
113619
113733
  }
113620
113734
  function renderModelName(model) {
113735
+ if (isProxyModelName(model)) {
113736
+ return lookupProxyModelLabel(model).label;
113737
+ }
113621
113738
  const publicName = getPublicModelDisplayName(model);
113622
113739
  if (publicName) {
113623
113740
  return publicName;
@@ -113767,6 +113884,7 @@ var init_model = __esm(() => {
113767
113884
  init_modelAllowlist();
113768
113885
  init_aliases();
113769
113886
  init_stringUtils();
113887
+ init_proxyModelLabels();
113770
113888
  LEGACY_OPUS_FIRSTPARTY = [
113771
113889
  "vivus-opus-4-20250514",
113772
113890
  "vivus-opus-4-1-20250805",
@@ -115958,7 +116076,7 @@ var init_auth = __esm(() => {
115958
116076
 
115959
116077
  // src/utils/userAgent.ts
115960
116078
  function getVivusCodeUserAgent() {
115961
- return `vivus/${"1.0.4+b41f3f3"}`;
116079
+ return `vivus/${"1.0.6+40bcf59"}`;
115962
116080
  }
115963
116081
 
115964
116082
  // src/utils/workloadContext.ts
@@ -115980,7 +116098,7 @@ function getUserAgent() {
115980
116098
  const clientApp = process.env.VIVUS_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.VIVUS_AGENT_SDK_CLIENT_APP}` : "";
115981
116099
  const workload = getWorkload();
115982
116100
  const workloadSuffix = workload ? `, workload/${workload}` : "";
115983
- return `vivus-cli/${"1.0.4+b41f3f3"} (${process.env.USER_TYPE}, ${process.env.VIVUS_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
116101
+ return `vivus-cli/${"1.0.6+40bcf59"} (${process.env.USER_TYPE}, ${process.env.VIVUS_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
115984
116102
  }
115985
116103
  function getMCPUserAgent() {
115986
116104
  const parts = [];
@@ -115994,7 +116112,7 @@ function getMCPUserAgent() {
115994
116112
  parts.push(`client-app/${process.env.VIVUS_AGENT_SDK_CLIENT_APP}`);
115995
116113
  }
115996
116114
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
115997
- return `vivus/${"1.0.4+b41f3f3"}${suffix}`;
116115
+ return `vivus/${"1.0.6+40bcf59"}${suffix}`;
115998
116116
  }
115999
116117
  function getWebFetchUserAgent() {
116000
116118
  return `Vivus-User (${getVivusCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -116132,7 +116250,7 @@ var init_user = __esm(() => {
116132
116250
  deviceId,
116133
116251
  sessionId: getSessionId(),
116134
116252
  email: getEmail(),
116135
- appVersion: "1.0.4+b41f3f3",
116253
+ appVersion: "1.0.6+40bcf59",
116136
116254
  platform: getHostPlatformForAnalytics(),
116137
116255
  organizationUuid,
116138
116256
  accountUuid,
@@ -127798,7 +127916,7 @@ var init_metadata = __esm(() => {
127798
127916
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
127799
127917
  WHITESPACE_REGEX = /\s+/;
127800
127918
  getVersionBase = memoize_default(() => {
127801
- const match = "1.0.4+b41f3f3".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
127919
+ const match = "1.0.6+40bcf59".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
127802
127920
  return match ? match[0] : undefined;
127803
127921
  });
127804
127922
  buildEnvContext = memoize_default(async () => {
@@ -127838,9 +127956,9 @@ var init_metadata = __esm(() => {
127838
127956
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
127839
127957
  isVivusCodeAction: isEnvTruthy(process.env.VIVUS_CODE_ACTION),
127840
127958
  isVivusAiAuth: isVivusAISubscriber(),
127841
- version: "1.0.4+b41f3f3",
127959
+ version: "1.0.6+40bcf59",
127842
127960
  versionBase: getVersionBase(),
127843
- buildTime: "2026-06-05T22:56:04.667Z",
127961
+ buildTime: "2026-06-05T23:17:49.323Z",
127844
127962
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
127845
127963
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
127846
127964
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -128508,7 +128626,7 @@ function initialize1PEventLogging() {
128508
128626
  const platform2 = getPlatform();
128509
128627
  const attributes = {
128510
128628
  [import_semantic_conventions.ATTR_SERVICE_NAME]: "vivus",
128511
- [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.0.4+b41f3f3"
128629
+ [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.0.6+40bcf59"
128512
128630
  };
128513
128631
  if (platform2 === "wsl") {
128514
128632
  const wslVersion = getWslVersion();
@@ -128535,7 +128653,7 @@ function initialize1PEventLogging() {
128535
128653
  })
128536
128654
  ]
128537
128655
  });
128538
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.vivus_code.events", "1.0.4+b41f3f3");
128656
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.vivus_code.events", "1.0.6+40bcf59");
128539
128657
  }
128540
128658
  async function reinitialize1PEventLoggingIfConfigChanged() {
128541
128659
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -162624,7 +162742,7 @@ function getAttributionHeader(fingerprint) {
162624
162742
  if (!isAttributionHeaderEnabled()) {
162625
162743
  return "";
162626
162744
  }
162627
- const version2 = `${"1.0.4+b41f3f3"}.${fingerprint}`;
162745
+ const version2 = `${"1.0.6+40bcf59"}.${fingerprint}`;
162628
162746
  const entrypoint = process.env.VIVUS_CODE_ENTRYPOINT ?? "unknown";
162629
162747
  const cch = "";
162630
162748
  const workload = getWorkload();
@@ -175781,7 +175899,7 @@ function getTelemetryAttributes() {
175781
175899
  attributes["session.id"] = sessionId;
175782
175900
  }
175783
175901
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
175784
- attributes["app.version"] = "1.0.4+b41f3f3";
175902
+ attributes["app.version"] = "1.0.6+40bcf59";
175785
175903
  }
175786
175904
  const oauthAccount = getOauthAccountInfo();
175787
175905
  if (oauthAccount) {
@@ -235915,7 +236033,7 @@ function computeFingerprint(messageText, version2) {
235915
236033
  }
235916
236034
  function computeFingerprintFromMessages(messages) {
235917
236035
  const firstMessageText = extractFirstMessageText(messages);
235918
- return computeFingerprint(firstMessageText, "1.0.4+b41f3f3");
236036
+ return computeFingerprint(firstMessageText, "1.0.6+40bcf59");
235919
236037
  }
235920
236038
  var FINGERPRINT_SALT = "59cf53e54c78";
235921
236039
  var init_fingerprint = () => {};
@@ -235957,7 +236075,7 @@ async function sideQuery(opts) {
235957
236075
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
235958
236076
  }
235959
236077
  const messageText = extractFirstUserMessageText(messages);
235960
- const fingerprint = computeFingerprint(messageText, "1.0.4+b41f3f3");
236078
+ const fingerprint = computeFingerprint(messageText, "1.0.6+40bcf59");
235961
236079
  const attributionHeader = getAttributionHeader(fingerprint);
235962
236080
  const systemBlocks = [
235963
236081
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -237109,7 +237227,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
237109
237227
  const client2 = new Client({
237110
237228
  name: "vivus",
237111
237229
  title: "Vivus",
237112
- version: "1.0.4+b41f3f3",
237230
+ version: "1.0.6+40bcf59",
237113
237231
  description: "Anthropic's agentic coding tool",
237114
237232
  websiteUrl: PRODUCT_URL
237115
237233
  }, {
@@ -237463,7 +237581,7 @@ var init_client6 = __esm(() => {
237463
237581
  const client2 = new Client({
237464
237582
  name: "vivus",
237465
237583
  title: "Vivus",
237466
- version: "1.0.4+b41f3f3",
237584
+ version: "1.0.6+40bcf59",
237467
237585
  description: "Anthropic's agentic coding tool",
237468
237586
  websiteUrl: PRODUCT_URL
237469
237587
  }, {
@@ -239521,7 +239639,7 @@ function getInstallationEnv() {
239521
239639
  return;
239522
239640
  }
239523
239641
  function getVivusCodeVersion() {
239524
- return "1.0.4+b41f3f3";
239642
+ return "1.0.6+40bcf59";
239525
239643
  }
239526
239644
  async function getInstalledVSCodeExtensionVersion(command) {
239527
239645
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -272011,7 +272129,7 @@ async function initializeBetaTracing(resource) {
272011
272129
  });
272012
272130
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
272013
272131
  setLoggerProvider(loggerProvider);
272014
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.0.4+b41f3f3");
272132
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.0.6+40bcf59");
272015
272133
  setEventLogger(eventLogger);
272016
272134
  process.on("beforeExit", async () => {
272017
272135
  await loggerProvider?.forceFlush();
@@ -272051,7 +272169,7 @@ async function initializeTelemetry() {
272051
272169
  const platform5 = getPlatform();
272052
272170
  const baseAttributes = {
272053
272171
  [import_semantic_conventions2.ATTR_SERVICE_NAME]: "vivus",
272054
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.0.4+b41f3f3"
272172
+ [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.0.6+40bcf59"
272055
272173
  };
272056
272174
  if (platform5 === "wsl") {
272057
272175
  const wslVersion = getWslVersion();
@@ -272096,7 +272214,7 @@ async function initializeTelemetry() {
272096
272214
  } catch {}
272097
272215
  };
272098
272216
  registerCleanup(shutdownTelemetry2);
272099
- return meterProvider2.getMeter("com.anthropic.vivus_code", "1.0.4+b41f3f3");
272217
+ return meterProvider2.getMeter("com.anthropic.vivus_code", "1.0.6+40bcf59");
272100
272218
  }
272101
272219
  const meterProvider = new import_sdk_metrics2.MeterProvider({
272102
272220
  resource,
@@ -272116,7 +272234,7 @@ async function initializeTelemetry() {
272116
272234
  });
272117
272235
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
272118
272236
  setLoggerProvider(loggerProvider);
272119
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.0.4+b41f3f3");
272237
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.0.6+40bcf59");
272120
272238
  setEventLogger(eventLogger);
272121
272239
  logForDebugging("[3P telemetry] Event logger set successfully");
272122
272240
  process.on("beforeExit", async () => {
@@ -272178,7 +272296,7 @@ Current timeout: ${timeoutMs}ms
272178
272296
  }
272179
272297
  };
272180
272298
  registerCleanup(shutdownTelemetry);
272181
- return meterProvider.getMeter("com.anthropic.vivus_code", "1.0.4+b41f3f3");
272299
+ return meterProvider.getMeter("com.anthropic.vivus_code", "1.0.6+40bcf59");
272182
272300
  }
272183
272301
  async function flushTelemetry() {
272184
272302
  const meterProvider = getMeterProvider();
@@ -272864,9 +272982,9 @@ async function assertMinVersion() {
272864
272982
  if (false) {}
272865
272983
  try {
272866
272984
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
272867
- if (versionConfig.minVersion && lt("1.0.4+b41f3f3", versionConfig.minVersion)) {
272985
+ if (versionConfig.minVersion && lt("1.0.6+40bcf59", versionConfig.minVersion)) {
272868
272986
  console.error(`
272869
- It looks like your version of Vivus (${"1.0.4+b41f3f3"}) needs an update.
272987
+ It looks like your version of Vivus (${"1.0.6+40bcf59"}) needs an update.
272870
272988
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
272871
272989
 
272872
272990
  To update, please run:
@@ -273082,7 +273200,7 @@ async function installGlobalPackage(specificVersion) {
273082
273200
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
273083
273201
  logEvent("tengu_auto_updater_lock_contention", {
273084
273202
  pid: process.pid,
273085
- currentVersion: "1.0.4+b41f3f3"
273203
+ currentVersion: "1.0.6+40bcf59"
273086
273204
  });
273087
273205
  return "in_progress";
273088
273206
  }
@@ -273091,7 +273209,7 @@ async function installGlobalPackage(specificVersion) {
273091
273209
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
273092
273210
  logError2(new Error("Windows NPM detected in WSL environment"));
273093
273211
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
273094
- currentVersion: "1.0.4+b41f3f3"
273212
+ currentVersion: "1.0.6+40bcf59"
273095
273213
  });
273096
273214
  console.error(`
273097
273215
  Error: Windows NPM detected in WSL
@@ -273624,7 +273742,7 @@ function detectLinuxGlobPatternWarnings() {
273624
273742
  }
273625
273743
  async function getDoctorDiagnostic() {
273626
273744
  const installationType = await getCurrentInstallationType();
273627
- const version2 = typeof MACRO !== "undefined" ? "1.0.4+b41f3f3" : "unknown";
273745
+ const version2 = typeof MACRO !== "undefined" ? "1.0.6+40bcf59" : "unknown";
273628
273746
  const installationPath = await getInstallationPath();
273629
273747
  const invokedBinary = getInvokedBinary();
273630
273748
  const multipleInstallations = await detectMultipleInstallations();
@@ -274557,8 +274675,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
274557
274675
  const maxVersion = await getMaxVersion();
274558
274676
  if (maxVersion && gt(version2, maxVersion)) {
274559
274677
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
274560
- if (gte("1.0.4+b41f3f3", maxVersion)) {
274561
- logForDebugging(`Native installer: current version ${"1.0.4+b41f3f3"} is already at or above maxVersion ${maxVersion}, skipping update`);
274678
+ if (gte("1.0.6+40bcf59", maxVersion)) {
274679
+ logForDebugging(`Native installer: current version ${"1.0.6+40bcf59"} is already at or above maxVersion ${maxVersion}, skipping update`);
274562
274680
  logEvent("tengu_native_update_skipped_max_version", {
274563
274681
  latency_ms: Date.now() - startTime,
274564
274682
  max_version: maxVersion,
@@ -274569,7 +274687,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
274569
274687
  version2 = maxVersion;
274570
274688
  }
274571
274689
  }
274572
- if (!forceReinstall && version2 === "1.0.4+b41f3f3" && await versionIsAvailable(version2) && await isPossibleVivusBinary(executablePath)) {
274690
+ if (!forceReinstall && version2 === "1.0.6+40bcf59" && await versionIsAvailable(version2) && await isPossibleVivusBinary(executablePath)) {
274573
274691
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
274574
274692
  logEvent("tengu_native_update_complete", {
274575
274693
  latency_ms: Date.now() - startTime,
@@ -330609,7 +330727,7 @@ function getAnthropicEnvMetadata() {
330609
330727
  function getBuildAgeMinutes() {
330610
330728
  if (false)
330611
330729
  ;
330612
- const buildTime = new Date("2026-06-05T22:56:04.667Z").getTime();
330730
+ const buildTime = new Date("2026-06-05T23:17:49.323Z").getTime();
330613
330731
  if (isNaN(buildTime))
330614
330732
  return;
330615
330733
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -360760,6 +360878,15 @@ function getDefaultOptionForUser(fastMode = false) {
360760
360878
  descriptionForModel: `Default model (currently ${currentModel})`
360761
360879
  };
360762
360880
  }
360881
+ if (!isFirstPartyAnthropicBaseUrl()) {
360882
+ const currentModel = renderDefaultModelSetting(getDefaultMainLoopModelSetting());
360883
+ return {
360884
+ value: null,
360885
+ label: "Default (recommended)",
360886
+ description: `Use the default model (currently ${currentModel})`,
360887
+ descriptionForModel: `Default model (currently ${currentModel})`
360888
+ };
360889
+ }
360763
360890
  if (isVivusAISubscriber()) {
360764
360891
  return {
360765
360892
  value: null,
@@ -360919,6 +361046,12 @@ function getOpusPlanOption() {
360919
361046
  };
360920
361047
  }
360921
361048
  function getModelOptionsBase(fastMode = false) {
361049
+ if (!isFirstPartyAnthropicBaseUrl()) {
361050
+ const proxyCache = getGlobalConfig().additionalModelOptionsCache ?? [];
361051
+ if (proxyCache.length > 0) {
361052
+ return [getDefaultOptionForUser(fastMode), ...proxyCache];
361053
+ }
361054
+ }
360922
361055
  if (process.env.USER_TYPE === "ant") {
360923
361056
  const antModelOptions = getAntModels().map((m) => ({
360924
361057
  value: m.alias,
@@ -377824,7 +377957,7 @@ var init_filesystem = __esm(() => {
377824
377957
  });
377825
377958
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
377826
377959
  const nonce = randomBytes17(16).toString("hex");
377827
- return join106(getVivusTempDir(), "bundled-skills", "1.0.4+b41f3f3", nonce);
377960
+ return join106(getVivusTempDir(), "bundled-skills", "1.0.6+40bcf59", nonce);
377828
377961
  });
377829
377962
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
377830
377963
  });
@@ -379584,7 +379717,7 @@ function Feedback({
379584
379717
  platform: env2.platform,
379585
379718
  gitRepo: envInfo.isGit,
379586
379719
  terminal: env2.terminal,
379587
- version: "1.0.4+b41f3f3",
379720
+ version: "1.0.6+40bcf59",
379588
379721
  transcript: normalizeMessagesForAPI(messages),
379589
379722
  errors: sanitizedErrors,
379590
379723
  lastApiRequest: getLastAPIRequest(),
@@ -379776,7 +379909,7 @@ function Feedback({
379776
379909
  ", ",
379777
379910
  env2.terminal,
379778
379911
  ", v",
379779
- "1.0.4+b41f3f3"
379912
+ "1.0.6+40bcf59"
379780
379913
  ]
379781
379914
  }, undefined, true, undefined, this)
379782
379915
  ]
@@ -379882,7 +380015,7 @@ ${sanitizedDescription}
379882
380015
  ` + `**Environment Info**
379883
380016
  ` + `- Platform: ${env2.platform}
379884
380017
  ` + `- Terminal: ${env2.terminal}
379885
- ` + `- Version: ${"1.0.4+b41f3f3"}
380018
+ ` + `- Version: ${"1.0.6+40bcf59"}
379886
380019
  ` + `- Feedback ID: ${feedbackId}
379887
380020
  ` + `
379888
380021
  **Errors**
@@ -383013,7 +383146,7 @@ function buildPrimarySection() {
383013
383146
  }, undefined, false, undefined, this);
383014
383147
  return [{
383015
383148
  label: "Version",
383016
- value: "1.0.4+b41f3f3"
383149
+ value: "1.0.6+40bcf59"
383017
383150
  }, {
383018
383151
  label: "Session name",
383019
383152
  value: nameValue
@@ -386764,7 +386897,7 @@ function Config({
386764
386897
  }
386765
386898
  }, undefined, false, undefined, this)
386766
386899
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime178.jsxDEV(ChannelDowngradeDialog, {
386767
- currentVersion: "1.0.4+b41f3f3",
386900
+ currentVersion: "1.0.6+40bcf59",
386768
386901
  onChoice: (choice) => {
386769
386902
  setShowSubmenu(null);
386770
386903
  setTabsHidden(false);
@@ -386776,7 +386909,7 @@ function Config({
386776
386909
  autoUpdatesChannel: "stable"
386777
386910
  };
386778
386911
  if (choice === "stay") {
386779
- newSettings.minimumVersion = "1.0.4+b41f3f3";
386912
+ newSettings.minimumVersion = "1.0.6+40bcf59";
386780
386913
  }
386781
386914
  updateSettingsForSource("userSettings", newSettings);
386782
386915
  setSettingsData((prev_27) => ({
@@ -394862,7 +394995,7 @@ function HelpV2(t0) {
394862
394995
  let t6;
394863
394996
  if ($2[31] !== tabs) {
394864
394997
  t6 = /* @__PURE__ */ jsx_dev_runtime205.jsxDEV(Tabs, {
394865
- title: `Vivus v${"1.0.4+b41f3f3"}`,
394998
+ title: `Vivus v${"1.0.6+40bcf59"}`,
394866
394999
  color: "professionalBlue",
394867
395000
  defaultTab: "general",
394868
395001
  children: tabs
@@ -419087,7 +419220,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
419087
419220
  return [];
419088
419221
  }
419089
419222
  }
419090
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.4+b41f3f3") {
419223
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.6+40bcf59") {
419091
419224
  if (process.env.USER_TYPE === "ant") {
419092
419225
  const changelog = "";
419093
419226
  if (changelog) {
@@ -419114,7 +419247,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.4+b41
419114
419247
  releaseNotes
419115
419248
  };
419116
419249
  }
419117
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0.4+b41f3f3") {
419250
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0.6+40bcf59") {
419118
419251
  if (process.env.USER_TYPE === "ant") {
419119
419252
  const changelog = "";
419120
419253
  if (changelog) {
@@ -420284,7 +420417,7 @@ function getRecentActivitySync() {
420284
420417
  return cachedActivity;
420285
420418
  }
420286
420419
  function getLogoDisplayData() {
420287
- const version2 = process.env.DEMO_VERSION ?? "1.0.4+b41f3f3";
420420
+ const version2 = process.env.DEMO_VERSION ?? "1.0.6+40bcf59";
420288
420421
  const serverUrl = getDirectConnectServerUrl();
420289
420422
  const displayPath = process.env.DEMO_VERSION ? "/code/vivus" : getDisplayPath(getCwd());
420290
420423
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -421811,7 +421944,7 @@ function LogoV2() {
421811
421944
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
421812
421945
  t2 = () => {
421813
421946
  const currentConfig = getGlobalConfig();
421814
- if (currentConfig.lastReleaseNotesSeen === "1.0.4+b41f3f3") {
421947
+ if (currentConfig.lastReleaseNotesSeen === "1.0.6+40bcf59") {
421815
421948
  return;
421816
421949
  }
421817
421950
  saveGlobalConfig(_temp329);
@@ -422487,12 +422620,12 @@ function LogoV2() {
422487
422620
  return t41;
422488
422621
  }
422489
422622
  function _temp329(current) {
422490
- if (current.lastReleaseNotesSeen === "1.0.4+b41f3f3") {
422623
+ if (current.lastReleaseNotesSeen === "1.0.6+40bcf59") {
422491
422624
  return current;
422492
422625
  }
422493
422626
  return {
422494
422627
  ...current,
422495
- lastReleaseNotesSeen: "1.0.4+b41f3f3"
422628
+ lastReleaseNotesSeen: "1.0.6+40bcf59"
422496
422629
  };
422497
422630
  }
422498
422631
  function _temp245(s_0) {
@@ -448789,7 +448922,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
448789
448922
  smapsRollup,
448790
448923
  platform: process.platform,
448791
448924
  nodeVersion: process.version,
448792
- ccVersion: "1.0.4+b41f3f3"
448925
+ ccVersion: "1.0.6+40bcf59"
448793
448926
  };
448794
448927
  }
448795
448928
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -449375,7 +449508,7 @@ var init_bridge_kick = __esm(() => {
449375
449508
  var call56 = async () => {
449376
449509
  return {
449377
449510
  type: "text",
449378
- value: `${"1.0.4+b41f3f3"} (built ${"2026-06-05T22:56:04.667Z"})`
449511
+ value: `${"1.0.6+40bcf59"} (built ${"2026-06-05T23:17:49.323Z"})`
449379
449512
  };
449380
449513
  }, version2, version_default;
449381
449514
  var init_version = __esm(() => {
@@ -458338,7 +458471,7 @@ function generateHtmlReport(data, insights) {
458338
458471
  </html>`;
458339
458472
  }
458340
458473
  function buildExportData(data, insights, facets, remoteStats) {
458341
- const version3 = typeof MACRO !== "undefined" ? "1.0.4+b41f3f3" : "unknown";
458474
+ const version3 = typeof MACRO !== "undefined" ? "1.0.6+40bcf59" : "unknown";
458342
458475
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
458343
458476
  const facets_summary = {
458344
458477
  total: facets.size,
@@ -462447,7 +462580,7 @@ var init_sessionStorage = __esm(() => {
462447
462580
  init_settings2();
462448
462581
  init_slowOperations();
462449
462582
  init_uuid();
462450
- VERSION5 = typeof MACRO !== "undefined" ? "1.0.4+b41f3f3" : "unknown";
462583
+ VERSION5 = typeof MACRO !== "undefined" ? "1.0.6+40bcf59" : "unknown";
462451
462584
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
462452
462585
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
462453
462586
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -465318,7 +465451,7 @@ function buildSystemInitMessage(inputs) {
465318
465451
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
465319
465452
  apiKeySource: getAnthropicApiKeyWithSource().source,
465320
465453
  betas: getSdkBetas(),
465321
- vivus_code_version: "1.0.4+b41f3f3",
465454
+ vivus_code_version: "1.0.6+40bcf59",
465322
465455
  output_style: outputStyle2,
465323
465456
  agents: inputs.agents.map((agent) => agent.agentType),
465324
465457
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -479946,7 +480079,7 @@ var init_useVoiceEnabled = __esm(() => {
479946
480079
  function getSemverPart(version3) {
479947
480080
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
479948
480081
  }
479949
- function useUpdateNotification(updatedVersion, initialVersion = "1.0.4+b41f3f3") {
480082
+ function useUpdateNotification(updatedVersion, initialVersion = "1.0.6+40bcf59") {
479950
480083
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react227.useState(() => getSemverPart(initialVersion));
479951
480084
  if (!updatedVersion) {
479952
480085
  return null;
@@ -479986,7 +480119,7 @@ function AutoUpdater({
479986
480119
  return;
479987
480120
  }
479988
480121
  if (false) {}
479989
- const currentVersion = "1.0.4+b41f3f3";
480122
+ const currentVersion = "1.0.6+40bcf59";
479990
480123
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
479991
480124
  let latestVersion = await getLatestVersion(channel);
479992
480125
  const isDisabled = isAutoUpdaterDisabled();
@@ -480199,12 +480332,12 @@ function NativeAutoUpdater({
480199
480332
  logEvent("tengu_native_auto_updater_start", {});
480200
480333
  try {
480201
480334
  const maxVersion = await getMaxVersion();
480202
- if (maxVersion && gt("1.0.4+b41f3f3", maxVersion)) {
480335
+ if (maxVersion && gt("1.0.6+40bcf59", maxVersion)) {
480203
480336
  const msg = await getMaxVersionMessage();
480204
480337
  setMaxVersionIssue(msg ?? "affects your version");
480205
480338
  }
480206
480339
  const result = await installLatest(channel);
480207
- const currentVersion = "1.0.4+b41f3f3";
480340
+ const currentVersion = "1.0.6+40bcf59";
480208
480341
  const latencyMs = Date.now() - startTime;
480209
480342
  if (result.lockFailed) {
480210
480343
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -480341,17 +480474,17 @@ function PackageManagerAutoUpdater(t0) {
480341
480474
  const maxVersion = await getMaxVersion();
480342
480475
  if (maxVersion && latest && gt(latest, maxVersion)) {
480343
480476
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
480344
- if (gte("1.0.4+b41f3f3", maxVersion)) {
480345
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.0.4+b41f3f3"} is already at or above maxVersion ${maxVersion}, skipping update`);
480477
+ if (gte("1.0.6+40bcf59", maxVersion)) {
480478
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.0.6+40bcf59"} is already at or above maxVersion ${maxVersion}, skipping update`);
480346
480479
  setUpdateAvailable(false);
480347
480480
  return;
480348
480481
  }
480349
480482
  latest = maxVersion;
480350
480483
  }
480351
- const hasUpdate = latest && !gte("1.0.4+b41f3f3", latest) && !shouldSkipVersion(latest);
480484
+ const hasUpdate = latest && !gte("1.0.6+40bcf59", latest) && !shouldSkipVersion(latest);
480352
480485
  setUpdateAvailable(!!hasUpdate);
480353
480486
  if (hasUpdate) {
480354
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.0.4+b41f3f3"} -> ${latest}`);
480487
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.0.6+40bcf59"} -> ${latest}`);
480355
480488
  }
480356
480489
  };
480357
480490
  $2[0] = t1;
@@ -480385,7 +480518,7 @@ function PackageManagerAutoUpdater(t0) {
480385
480518
  wrap: "truncate",
480386
480519
  children: [
480387
480520
  "currentVersion: ",
480388
- "1.0.4+b41f3f3"
480521
+ "1.0.6+40bcf59"
480389
480522
  ]
480390
480523
  }, undefined, true, undefined, this);
480391
480524
  $2[3] = verbose;
@@ -488553,7 +488686,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
488553
488686
  project_dir: getOriginalCwd(),
488554
488687
  added_dirs: addedDirs
488555
488688
  },
488556
- version: "1.0.4+b41f3f3",
488689
+ version: "1.0.6+40bcf59",
488557
488690
  output_style: {
488558
488691
  name: outputStyleName
488559
488692
  },
@@ -500037,7 +500170,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
500037
500170
  } catch {}
500038
500171
  const data = {
500039
500172
  trigger,
500040
- version: "1.0.4+b41f3f3",
500173
+ version: "1.0.6+40bcf59",
500041
500174
  platform: process.platform,
500042
500175
  transcript,
500043
500176
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -511443,7 +511576,7 @@ function WelcomeV2() {
511443
511576
  dimColor: true,
511444
511577
  children: [
511445
511578
  "v",
511446
- "1.0.4+b41f3f3",
511579
+ "1.0.6+40bcf59",
511447
511580
  " "
511448
511581
  ]
511449
511582
  }, undefined, true, undefined, this)
@@ -511643,7 +511776,7 @@ function WelcomeV2() {
511643
511776
  dimColor: true,
511644
511777
  children: [
511645
511778
  "v",
511646
- "1.0.4+b41f3f3",
511779
+ "1.0.6+40bcf59",
511647
511780
  " "
511648
511781
  ]
511649
511782
  }, undefined, true, undefined, this)
@@ -511869,7 +512002,7 @@ function AppleTerminalWelcomeV2(t0) {
511869
512002
  dimColor: true,
511870
512003
  children: [
511871
512004
  "v",
511872
- "1.0.4+b41f3f3",
512005
+ "1.0.6+40bcf59",
511873
512006
  " "
511874
512007
  ]
511875
512008
  }, undefined, true, undefined, this);
@@ -512123,7 +512256,7 @@ function AppleTerminalWelcomeV2(t0) {
512123
512256
  dimColor: true,
512124
512257
  children: [
512125
512258
  "v",
512126
- "1.0.4+b41f3f3",
512259
+ "1.0.6+40bcf59",
512127
512260
  " "
512128
512261
  ]
512129
512262
  }, undefined, true, undefined, this);
@@ -515187,7 +515320,7 @@ function appendToLog(path25, message) {
515187
515320
  cwd: getFsImplementation().cwd(),
515188
515321
  userType: process.env.USER_TYPE,
515189
515322
  sessionId: getSessionId(),
515190
- version: "1.0.4+b41f3f3"
515323
+ version: "1.0.6+40bcf59"
515191
515324
  };
515192
515325
  getLogWriter(path25).write(messageWithTimestamp);
515193
515326
  }
@@ -519172,8 +519305,8 @@ async function getEnvLessBridgeConfig() {
519172
519305
  }
519173
519306
  async function checkEnvLessBridgeMinVersion() {
519174
519307
  const cfg = await getEnvLessBridgeConfig();
519175
- if (cfg.min_version && lt("1.0.4+b41f3f3", cfg.min_version)) {
519176
- return `Your version of Vivus (${"1.0.4+b41f3f3"}) is too old for Remote Control.
519308
+ if (cfg.min_version && lt("1.0.6+40bcf59", cfg.min_version)) {
519309
+ return `Your version of Vivus (${"1.0.6+40bcf59"}) is too old for Remote Control.
519177
519310
  Version ${cfg.min_version} or higher is required. Run \`vivus update\` to update.`;
519178
519311
  }
519179
519312
  return null;
@@ -519647,7 +519780,7 @@ async function initBridgeCore(params) {
519647
519780
  const rawApi = createBridgeApiClient({
519648
519781
  baseUrl,
519649
519782
  getAccessToken,
519650
- runnerVersion: "1.0.4+b41f3f3",
519783
+ runnerVersion: "1.0.6+40bcf59",
519651
519784
  onDebug: logForDebugging,
519652
519785
  onAuth401,
519653
519786
  getTrustedDeviceToken
@@ -525311,7 +525444,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
525311
525444
  setCwd(cwd3);
525312
525445
  const server = new Server({
525313
525446
  name: "vivus/tengu",
525314
- version: "1.0.4+b41f3f3"
525447
+ version: "1.0.6+40bcf59"
525315
525448
  }, {
525316
525449
  capabilities: {
525317
525450
  tools: {}
@@ -526922,7 +527055,7 @@ __export(exports_update, {
526922
527055
  });
526923
527056
  async function update() {
526924
527057
  logEvent("tengu_update_check", {});
526925
- writeToStdout(`Current version: ${"1.0.4+b41f3f3"}
527058
+ writeToStdout(`Current version: ${"1.0.6+40bcf59"}
526926
527059
  `);
526927
527060
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
526928
527061
  writeToStdout(`Checking for updates to ${channel} version...
@@ -526997,8 +527130,8 @@ async function update() {
526997
527130
  writeToStdout(`Vivus is managed by Homebrew.
526998
527131
  `);
526999
527132
  const latest = await getLatestVersion(channel);
527000
- if (latest && !gte("1.0.4+b41f3f3", latest)) {
527001
- writeToStdout(`Update available: ${"1.0.4+b41f3f3"} → ${latest}
527133
+ if (latest && !gte("1.0.6+40bcf59", latest)) {
527134
+ writeToStdout(`Update available: ${"1.0.6+40bcf59"} → ${latest}
527002
527135
  `);
527003
527136
  writeToStdout(`
527004
527137
  `);
@@ -527014,8 +527147,8 @@ async function update() {
527014
527147
  writeToStdout(`Vivus is managed by winget.
527015
527148
  `);
527016
527149
  const latest = await getLatestVersion(channel);
527017
- if (latest && !gte("1.0.4+b41f3f3", latest)) {
527018
- writeToStdout(`Update available: ${"1.0.4+b41f3f3"} → ${latest}
527150
+ if (latest && !gte("1.0.6+40bcf59", latest)) {
527151
+ writeToStdout(`Update available: ${"1.0.6+40bcf59"} → ${latest}
527019
527152
  `);
527020
527153
  writeToStdout(`
527021
527154
  `);
@@ -527031,8 +527164,8 @@ async function update() {
527031
527164
  writeToStdout(`Vivus is managed by apk.
527032
527165
  `);
527033
527166
  const latest = await getLatestVersion(channel);
527034
- if (latest && !gte("1.0.4+b41f3f3", latest)) {
527035
- writeToStdout(`Update available: ${"1.0.4+b41f3f3"} → ${latest}
527167
+ if (latest && !gte("1.0.6+40bcf59", latest)) {
527168
+ writeToStdout(`Update available: ${"1.0.6+40bcf59"} → ${latest}
527036
527169
  `);
527037
527170
  writeToStdout(`
527038
527171
  `);
@@ -527097,11 +527230,11 @@ async function update() {
527097
527230
  `);
527098
527231
  await gracefulShutdown(1);
527099
527232
  }
527100
- if (result.latestVersion === "1.0.4+b41f3f3") {
527101
- writeToStdout(source_default.green(`Vivus is up to date (${"1.0.4+b41f3f3"})`) + `
527233
+ if (result.latestVersion === "1.0.6+40bcf59") {
527234
+ writeToStdout(source_default.green(`Vivus is up to date (${"1.0.6+40bcf59"})`) + `
527102
527235
  `);
527103
527236
  } else {
527104
- writeToStdout(source_default.green(`Successfully updated from ${"1.0.4+b41f3f3"} to version ${result.latestVersion}`) + `
527237
+ writeToStdout(source_default.green(`Successfully updated from ${"1.0.6+40bcf59"} to version ${result.latestVersion}`) + `
527105
527238
  `);
527106
527239
  await regenerateCompletionCache();
527107
527240
  }
@@ -527158,12 +527291,12 @@ async function update() {
527158
527291
  `);
527159
527292
  await gracefulShutdown(1);
527160
527293
  }
527161
- if (latestVersion === "1.0.4+b41f3f3") {
527162
- writeToStdout(source_default.green(`Vivus is up to date (${"1.0.4+b41f3f3"})`) + `
527294
+ if (latestVersion === "1.0.6+40bcf59") {
527295
+ writeToStdout(source_default.green(`Vivus is up to date (${"1.0.6+40bcf59"})`) + `
527163
527296
  `);
527164
527297
  await gracefulShutdown(0);
527165
527298
  }
527166
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.0.4+b41f3f3"})
527299
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.0.6+40bcf59"})
527167
527300
  `);
527168
527301
  writeToStdout(`Installing update...
527169
527302
  `);
@@ -527208,7 +527341,7 @@ async function update() {
527208
527341
  logForDebugging(`update: Installation status: ${status2}`);
527209
527342
  switch (status2) {
527210
527343
  case "success":
527211
- writeToStdout(source_default.green(`Successfully updated from ${"1.0.4+b41f3f3"} to version ${latestVersion}`) + `
527344
+ writeToStdout(source_default.green(`Successfully updated from ${"1.0.6+40bcf59"} to version ${latestVersion}`) + `
527212
527345
  `);
527213
527346
  await regenerateCompletionCache();
527214
527347
  break;
@@ -527571,6 +527704,7 @@ init_debug();
527571
527704
  init_http2();
527572
527705
  init_log3();
527573
527706
  init_providers();
527707
+ init_proxyModelLabels();
527574
527708
  var bootstrapResponseSchema = lazySchema(() => exports_external2.object({
527575
527709
  client_data: exports_external2.record(exports_external2.unknown()).nullish(),
527576
527710
  additional_model_options: exports_external2.array(exports_external2.object({
@@ -527636,15 +527770,74 @@ async function fetchBootstrapAPI() {
527636
527770
  throw error41;
527637
527771
  }
527638
527772
  }
527773
+ async function fetchProxyModelOptions() {
527774
+ if (isFirstPartyAnthropicBaseUrl())
527775
+ return null;
527776
+ const baseUrl = process.env.ANTHROPIC_BASE_URL;
527777
+ if (!baseUrl)
527778
+ return null;
527779
+ let tagsUrl;
527780
+ try {
527781
+ tagsUrl = new URL("/api/tags", baseUrl).toString();
527782
+ } catch {
527783
+ return null;
527784
+ }
527785
+ try {
527786
+ logForDebugging(`[Bootstrap] Probing proxy model list: ${tagsUrl}`);
527787
+ const response = await axios_default.get(tagsUrl, { timeout: 5000 });
527788
+ const data = response.data;
527789
+ const models = Array.isArray(data?.models) ? data.models : [];
527790
+ if (models.length === 0) {
527791
+ logForDebugging("[Bootstrap] Proxy returned empty model list");
527792
+ return [];
527793
+ }
527794
+ const options2 = [];
527795
+ const seen = new Set;
527796
+ for (const m of models) {
527797
+ const name = typeof m.name === "string" ? m.name : null;
527798
+ if (!name || seen.has(name))
527799
+ continue;
527800
+ seen.add(name);
527801
+ const details = m.details ?? {};
527802
+ const family = typeof details.family === "string" ? details.family : null;
527803
+ const paramSize = typeof details.parameter_size === "string" ? details.parameter_size : null;
527804
+ const { label, description } = lookupProxyModelLabel(name, {
527805
+ family,
527806
+ parameterSize: paramSize
527807
+ });
527808
+ options2.push({
527809
+ value: name,
527810
+ label,
527811
+ description
527812
+ });
527813
+ }
527814
+ logForDebugging(`[Bootstrap] Proxy model list: ${options2.map((o2) => o2.value).join(", ")}`);
527815
+ return options2;
527816
+ } catch (error41) {
527817
+ logForDebugging(`[Bootstrap] Proxy /api/tags fetch failed: ${axios_default.isAxiosError(error41) ? error41.response?.status ?? error41.code : "unknown"}`);
527818
+ return null;
527819
+ }
527820
+ }
527639
527821
  async function fetchBootstrapData() {
527640
527822
  try {
527641
- const response = await fetchBootstrapAPI();
527642
- if (!response)
527823
+ const [response, proxyModels] = await Promise.all([
527824
+ fetchBootstrapAPI().catch(() => null),
527825
+ fetchProxyModelOptions()
527826
+ ]);
527827
+ if (!response && !proxyModels)
527643
527828
  return;
527644
- const clientData = response.client_data ?? null;
527645
- const additionalModelOptions = response.additional_model_options ?? [];
527829
+ const clientData = response?.client_data ?? null;
527830
+ const apiOptions = response?.additional_model_options ?? [];
527831
+ const merged = [...apiOptions];
527832
+ if (proxyModels) {
527833
+ for (const opt of proxyModels) {
527834
+ if (!merged.some((existing) => existing.value === opt.value)) {
527835
+ merged.push(opt);
527836
+ }
527837
+ }
527838
+ }
527646
527839
  const config4 = getGlobalConfig();
527647
- if (isEqual_default(config4.clientDataCache, clientData) && isEqual_default(config4.additionalModelOptionsCache, additionalModelOptions)) {
527840
+ if (isEqual_default(config4.clientDataCache, clientData) && isEqual_default(config4.additionalModelOptionsCache, merged)) {
527648
527841
  logForDebugging("[Bootstrap] Cache unchanged, skipping write");
527649
527842
  return;
527650
527843
  }
@@ -527652,7 +527845,7 @@ async function fetchBootstrapData() {
527652
527845
  saveGlobalConfig((current) => ({
527653
527846
  ...current,
527654
527847
  clientDataCache: clientData,
527655
- additionalModelOptionsCache: additionalModelOptions
527848
+ additionalModelOptionsCache: merged
527656
527849
  }));
527657
527850
  } catch (error41) {
527658
527851
  logError2(error41);
@@ -528178,7 +528371,7 @@ function completeOnboarding() {
528178
528371
  saveGlobalConfig((current) => ({
528179
528372
  ...current,
528180
528373
  hasCompletedOnboarding: true,
528181
- lastOnboardingVersion: "1.0.4+b41f3f3"
528374
+ lastOnboardingVersion: "1.0.6+40bcf59"
528182
528375
  }));
528183
528376
  }
528184
528377
  function showDialog(root2, renderer) {
@@ -532267,7 +532460,7 @@ ${customInstructions}` : customInstructions;
532267
532460
  }
532268
532461
  }
532269
532462
  logForDiagnosticsNoPII("info", "started", {
532270
- version: "1.0.4+b41f3f3",
532463
+ version: "1.0.6+40bcf59",
532271
532464
  is_native_binary: isInBundledMode()
532272
532465
  });
532273
532466
  registerCleanup(async () => {
@@ -533051,7 +533244,7 @@ Usage: vivus --remote "your task description"`, () => gracefulShutdown(1));
533051
533244
  pendingHookMessages
533052
533245
  }, renderAndRun);
533053
533246
  }
533054
- }).version("1.0.4+b41f3f3 (Vivus)", "-v, --version", "Output the version number");
533247
+ }).version("1.0.6+40bcf59 (Vivus)", "-v, --version", "Output the version number");
533055
533248
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
533056
533249
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
533057
533250
  if (canUserConfigureAdvisor()) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vivus-agent",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "Vivus — local AI coding agent",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",