vivus-agent 1.0.3 → 1.0.5

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 +300 -100
  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:48:08.614Z
3
+ // Built from source at 2026-06-05T23:04:50.182Z
4
4
  import { createRequire } from "node:module";
5
5
  var __create = Object.create;
6
6
  var __getProtoOf = Object.getPrototypeOf;
@@ -115958,7 +115958,7 @@ var init_auth = __esm(() => {
115958
115958
 
115959
115959
  // src/utils/userAgent.ts
115960
115960
  function getVivusCodeUserAgent() {
115961
- return `vivus/${"1.0.3+aa285c3"}`;
115961
+ return `vivus/${"1.0.5+c258d3c"}`;
115962
115962
  }
115963
115963
 
115964
115964
  // src/utils/workloadContext.ts
@@ -115980,7 +115980,7 @@ function getUserAgent() {
115980
115980
  const clientApp = process.env.VIVUS_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.VIVUS_AGENT_SDK_CLIENT_APP}` : "";
115981
115981
  const workload = getWorkload();
115982
115982
  const workloadSuffix = workload ? `, workload/${workload}` : "";
115983
- return `vivus-cli/${"1.0.3+aa285c3"} (${process.env.USER_TYPE}, ${process.env.VIVUS_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
115983
+ return `vivus-cli/${"1.0.5+c258d3c"} (${process.env.USER_TYPE}, ${process.env.VIVUS_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
115984
115984
  }
115985
115985
  function getMCPUserAgent() {
115986
115986
  const parts = [];
@@ -115994,7 +115994,7 @@ function getMCPUserAgent() {
115994
115994
  parts.push(`client-app/${process.env.VIVUS_AGENT_SDK_CLIENT_APP}`);
115995
115995
  }
115996
115996
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
115997
- return `vivus/${"1.0.3+aa285c3"}${suffix}`;
115997
+ return `vivus/${"1.0.5+c258d3c"}${suffix}`;
115998
115998
  }
115999
115999
  function getWebFetchUserAgent() {
116000
116000
  return `Vivus-User (${getVivusCodeUserAgent()}; +https://support.anthropic.com/)`;
@@ -116132,7 +116132,7 @@ var init_user = __esm(() => {
116132
116132
  deviceId,
116133
116133
  sessionId: getSessionId(),
116134
116134
  email: getEmail(),
116135
- appVersion: "1.0.3+aa285c3",
116135
+ appVersion: "1.0.5+c258d3c",
116136
116136
  platform: getHostPlatformForAnalytics(),
116137
116137
  organizationUuid,
116138
116138
  accountUuid,
@@ -127798,7 +127798,7 @@ var init_metadata = __esm(() => {
127798
127798
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
127799
127799
  WHITESPACE_REGEX = /\s+/;
127800
127800
  getVersionBase = memoize_default(() => {
127801
- const match = "1.0.3+aa285c3".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
127801
+ const match = "1.0.5+c258d3c".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
127802
127802
  return match ? match[0] : undefined;
127803
127803
  });
127804
127804
  buildEnvContext = memoize_default(async () => {
@@ -127838,9 +127838,9 @@ var init_metadata = __esm(() => {
127838
127838
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
127839
127839
  isVivusCodeAction: isEnvTruthy(process.env.VIVUS_CODE_ACTION),
127840
127840
  isVivusAiAuth: isVivusAISubscriber(),
127841
- version: "1.0.3+aa285c3",
127841
+ version: "1.0.5+c258d3c",
127842
127842
  versionBase: getVersionBase(),
127843
- buildTime: "2026-06-05T22:48:08.076Z",
127843
+ buildTime: "2026-06-05T23:04:49.594Z",
127844
127844
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
127845
127845
  ...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
127846
127846
  githubEventName: process.env.GITHUB_EVENT_NAME,
@@ -128508,7 +128508,7 @@ function initialize1PEventLogging() {
128508
128508
  const platform2 = getPlatform();
128509
128509
  const attributes = {
128510
128510
  [import_semantic_conventions.ATTR_SERVICE_NAME]: "vivus",
128511
- [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.0.3+aa285c3"
128511
+ [import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.0.5+c258d3c"
128512
128512
  };
128513
128513
  if (platform2 === "wsl") {
128514
128514
  const wslVersion = getWslVersion();
@@ -128535,7 +128535,7 @@ function initialize1PEventLogging() {
128535
128535
  })
128536
128536
  ]
128537
128537
  });
128538
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.vivus_code.events", "1.0.3+aa285c3");
128538
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.vivus_code.events", "1.0.5+c258d3c");
128539
128539
  }
128540
128540
  async function reinitialize1PEventLoggingIfConfigChanged() {
128541
128541
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -162624,7 +162624,7 @@ function getAttributionHeader(fingerprint) {
162624
162624
  if (!isAttributionHeaderEnabled()) {
162625
162625
  return "";
162626
162626
  }
162627
- const version2 = `${"1.0.3+aa285c3"}.${fingerprint}`;
162627
+ const version2 = `${"1.0.5+c258d3c"}.${fingerprint}`;
162628
162628
  const entrypoint = process.env.VIVUS_CODE_ENTRYPOINT ?? "unknown";
162629
162629
  const cch = "";
162630
162630
  const workload = getWorkload();
@@ -175781,7 +175781,7 @@ function getTelemetryAttributes() {
175781
175781
  attributes["session.id"] = sessionId;
175782
175782
  }
175783
175783
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
175784
- attributes["app.version"] = "1.0.3+aa285c3";
175784
+ attributes["app.version"] = "1.0.5+c258d3c";
175785
175785
  }
175786
175786
  const oauthAccount = getOauthAccountInfo();
175787
175787
  if (oauthAccount) {
@@ -235915,7 +235915,7 @@ function computeFingerprint(messageText, version2) {
235915
235915
  }
235916
235916
  function computeFingerprintFromMessages(messages) {
235917
235917
  const firstMessageText = extractFirstMessageText(messages);
235918
- return computeFingerprint(firstMessageText, "1.0.3+aa285c3");
235918
+ return computeFingerprint(firstMessageText, "1.0.5+c258d3c");
235919
235919
  }
235920
235920
  var FINGERPRINT_SALT = "59cf53e54c78";
235921
235921
  var init_fingerprint = () => {};
@@ -235957,7 +235957,7 @@ async function sideQuery(opts) {
235957
235957
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
235958
235958
  }
235959
235959
  const messageText = extractFirstUserMessageText(messages);
235960
- const fingerprint = computeFingerprint(messageText, "1.0.3+aa285c3");
235960
+ const fingerprint = computeFingerprint(messageText, "1.0.5+c258d3c");
235961
235961
  const attributionHeader = getAttributionHeader(fingerprint);
235962
235962
  const systemBlocks = [
235963
235963
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -237109,7 +237109,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
237109
237109
  const client2 = new Client({
237110
237110
  name: "vivus",
237111
237111
  title: "Vivus",
237112
- version: "1.0.3+aa285c3",
237112
+ version: "1.0.5+c258d3c",
237113
237113
  description: "Anthropic's agentic coding tool",
237114
237114
  websiteUrl: PRODUCT_URL
237115
237115
  }, {
@@ -237463,7 +237463,7 @@ var init_client6 = __esm(() => {
237463
237463
  const client2 = new Client({
237464
237464
  name: "vivus",
237465
237465
  title: "Vivus",
237466
- version: "1.0.3+aa285c3",
237466
+ version: "1.0.5+c258d3c",
237467
237467
  description: "Anthropic's agentic coding tool",
237468
237468
  websiteUrl: PRODUCT_URL
237469
237469
  }, {
@@ -239521,7 +239521,7 @@ function getInstallationEnv() {
239521
239521
  return;
239522
239522
  }
239523
239523
  function getVivusCodeVersion() {
239524
- return "1.0.3+aa285c3";
239524
+ return "1.0.5+c258d3c";
239525
239525
  }
239526
239526
  async function getInstalledVSCodeExtensionVersion(command) {
239527
239527
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -272011,7 +272011,7 @@ async function initializeBetaTracing(resource) {
272011
272011
  });
272012
272012
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
272013
272013
  setLoggerProvider(loggerProvider);
272014
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.0.3+aa285c3");
272014
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.0.5+c258d3c");
272015
272015
  setEventLogger(eventLogger);
272016
272016
  process.on("beforeExit", async () => {
272017
272017
  await loggerProvider?.forceFlush();
@@ -272051,7 +272051,7 @@ async function initializeTelemetry() {
272051
272051
  const platform5 = getPlatform();
272052
272052
  const baseAttributes = {
272053
272053
  [import_semantic_conventions2.ATTR_SERVICE_NAME]: "vivus",
272054
- [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.0.3+aa285c3"
272054
+ [import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.0.5+c258d3c"
272055
272055
  };
272056
272056
  if (platform5 === "wsl") {
272057
272057
  const wslVersion = getWslVersion();
@@ -272096,7 +272096,7 @@ async function initializeTelemetry() {
272096
272096
  } catch {}
272097
272097
  };
272098
272098
  registerCleanup(shutdownTelemetry2);
272099
- return meterProvider2.getMeter("com.anthropic.vivus_code", "1.0.3+aa285c3");
272099
+ return meterProvider2.getMeter("com.anthropic.vivus_code", "1.0.5+c258d3c");
272100
272100
  }
272101
272101
  const meterProvider = new import_sdk_metrics2.MeterProvider({
272102
272102
  resource,
@@ -272116,7 +272116,7 @@ async function initializeTelemetry() {
272116
272116
  });
272117
272117
  import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
272118
272118
  setLoggerProvider(loggerProvider);
272119
- const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.0.3+aa285c3");
272119
+ const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.0.5+c258d3c");
272120
272120
  setEventLogger(eventLogger);
272121
272121
  logForDebugging("[3P telemetry] Event logger set successfully");
272122
272122
  process.on("beforeExit", async () => {
@@ -272178,7 +272178,7 @@ Current timeout: ${timeoutMs}ms
272178
272178
  }
272179
272179
  };
272180
272180
  registerCleanup(shutdownTelemetry);
272181
- return meterProvider.getMeter("com.anthropic.vivus_code", "1.0.3+aa285c3");
272181
+ return meterProvider.getMeter("com.anthropic.vivus_code", "1.0.5+c258d3c");
272182
272182
  }
272183
272183
  async function flushTelemetry() {
272184
272184
  const meterProvider = getMeterProvider();
@@ -272864,9 +272864,9 @@ async function assertMinVersion() {
272864
272864
  if (false) {}
272865
272865
  try {
272866
272866
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
272867
- if (versionConfig.minVersion && lt("1.0.3+aa285c3", versionConfig.minVersion)) {
272867
+ if (versionConfig.minVersion && lt("1.0.5+c258d3c", versionConfig.minVersion)) {
272868
272868
  console.error(`
272869
- It looks like your version of Vivus (${"1.0.3+aa285c3"}) needs an update.
272869
+ It looks like your version of Vivus (${"1.0.5+c258d3c"}) needs an update.
272870
272870
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
272871
272871
 
272872
272872
  To update, please run:
@@ -273082,7 +273082,7 @@ async function installGlobalPackage(specificVersion) {
273082
273082
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
273083
273083
  logEvent("tengu_auto_updater_lock_contention", {
273084
273084
  pid: process.pid,
273085
- currentVersion: "1.0.3+aa285c3"
273085
+ currentVersion: "1.0.5+c258d3c"
273086
273086
  });
273087
273087
  return "in_progress";
273088
273088
  }
@@ -273091,7 +273091,7 @@ async function installGlobalPackage(specificVersion) {
273091
273091
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
273092
273092
  logError2(new Error("Windows NPM detected in WSL environment"));
273093
273093
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
273094
- currentVersion: "1.0.3+aa285c3"
273094
+ currentVersion: "1.0.5+c258d3c"
273095
273095
  });
273096
273096
  console.error(`
273097
273097
  Error: Windows NPM detected in WSL
@@ -273624,7 +273624,7 @@ function detectLinuxGlobPatternWarnings() {
273624
273624
  }
273625
273625
  async function getDoctorDiagnostic() {
273626
273626
  const installationType = await getCurrentInstallationType();
273627
- const version2 = typeof MACRO !== "undefined" ? "1.0.3+aa285c3" : "unknown";
273627
+ const version2 = typeof MACRO !== "undefined" ? "1.0.5+c258d3c" : "unknown";
273628
273628
  const installationPath = await getInstallationPath();
273629
273629
  const invokedBinary = getInvokedBinary();
273630
273630
  const multipleInstallations = await detectMultipleInstallations();
@@ -274557,8 +274557,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
274557
274557
  const maxVersion = await getMaxVersion();
274558
274558
  if (maxVersion && gt(version2, maxVersion)) {
274559
274559
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
274560
- if (gte("1.0.3+aa285c3", maxVersion)) {
274561
- logForDebugging(`Native installer: current version ${"1.0.3+aa285c3"} is already at or above maxVersion ${maxVersion}, skipping update`);
274560
+ if (gte("1.0.5+c258d3c", maxVersion)) {
274561
+ logForDebugging(`Native installer: current version ${"1.0.5+c258d3c"} is already at or above maxVersion ${maxVersion}, skipping update`);
274562
274562
  logEvent("tengu_native_update_skipped_max_version", {
274563
274563
  latency_ms: Date.now() - startTime,
274564
274564
  max_version: maxVersion,
@@ -274569,7 +274569,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
274569
274569
  version2 = maxVersion;
274570
274570
  }
274571
274571
  }
274572
- if (!forceReinstall && version2 === "1.0.3+aa285c3" && await versionIsAvailable(version2) && await isPossibleVivusBinary(executablePath)) {
274572
+ if (!forceReinstall && version2 === "1.0.5+c258d3c" && await versionIsAvailable(version2) && await isPossibleVivusBinary(executablePath)) {
274573
274573
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
274574
274574
  logEvent("tengu_native_update_complete", {
274575
274575
  latency_ms: Date.now() - startTime,
@@ -289435,17 +289435,19 @@ function OAuthStatusMessage(t0) {
289435
289435
  setOAuthStatus({
289436
289436
  state: "platform_setup"
289437
289437
  });
289438
+ } else if (value_0 === "vivusai") {
289439
+ logEvent("tengu_oauth_vivusai_selected", {});
289440
+ setLoginWithVivusAi(true);
289441
+ setOAuthStatus({
289442
+ state: "manual_credentials",
289443
+ step: "url"
289444
+ });
289438
289445
  } else {
289446
+ logEvent("tengu_oauth_console_selected", {});
289447
+ setLoginWithVivusAi(false);
289439
289448
  setOAuthStatus({
289440
289449
  state: "ready_to_start"
289441
289450
  });
289442
- if (value_0 === "vivusai") {
289443
- logEvent("tengu_oauth_vivusai_selected", {});
289444
- setLoginWithVivusAi(true);
289445
- } else {
289446
- logEvent("tengu_oauth_console_selected", {});
289447
- setLoginWithVivusAi(false);
289448
- }
289449
289451
  }
289450
289452
  }
289451
289453
  }, undefined, false, undefined, this)
@@ -289608,6 +289610,27 @@ function OAuthStatusMessage(t0) {
289608
289610
  }
289609
289611
  return t8;
289610
289612
  }
289613
+ case "manual_credentials": {
289614
+ return /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(ManualCredentialsPrompt, {
289615
+ status: oauthStatus,
289616
+ setOAuthStatus,
289617
+ textInputColumns
289618
+ }, undefined, false, undefined, this);
289619
+ }
289620
+ case "manual_saving": {
289621
+ return /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(ThemedBox_default, {
289622
+ flexDirection: "column",
289623
+ gap: 1,
289624
+ children: /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(ThemedBox_default, {
289625
+ children: [
289626
+ /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(Spinner, {}, undefined, false, undefined, this),
289627
+ /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(ThemedText, {
289628
+ children: "Saving credentials…"
289629
+ }, undefined, false, undefined, this)
289630
+ ]
289631
+ }, undefined, true, undefined, this)
289632
+ }, undefined, false, undefined, this);
289633
+ }
289611
289634
  case "waiting_for_login": {
289612
289635
  let t1;
289613
289636
  if ($2[20] !== forcedMethodMessage) {
@@ -289831,6 +289854,110 @@ function OAuthStatusMessage(t0) {
289831
289854
  }
289832
289855
  }
289833
289856
  }
289857
+ function ManualCredentialsPrompt({
289858
+ status,
289859
+ setOAuthStatus,
289860
+ textInputColumns
289861
+ }) {
289862
+ const [value, setValue] = import_react70.useState("");
289863
+ const [cursor, setCursor] = import_react70.useState(0);
289864
+ const step = status.step;
289865
+ const isUrlStep = step === "url";
289866
+ const handleSubmit = async (raw) => {
289867
+ const trimmed = raw.trim();
289868
+ if (!trimmed)
289869
+ return;
289870
+ if (isUrlStep) {
289871
+ let normalized = trimmed;
289872
+ if (!/^https?:\/\//i.test(normalized)) {
289873
+ normalized = "https://" + normalized;
289874
+ }
289875
+ normalized = normalized.replace(/\/+$/, "");
289876
+ try {
289877
+ new URL(normalized);
289878
+ } catch {
289879
+ setOAuthStatus({
289880
+ state: "error",
289881
+ message: "Invalid URL. Please enter a valid http(s) URL.",
289882
+ toRetry: { state: "manual_credentials", step: "url" }
289883
+ });
289884
+ return;
289885
+ }
289886
+ setValue("");
289887
+ setCursor(0);
289888
+ setOAuthStatus({ state: "manual_credentials", step: "token", url: normalized });
289889
+ return;
289890
+ }
289891
+ setOAuthStatus({ state: "manual_saving" });
289892
+ try {
289893
+ const url3 = status.url ?? "";
289894
+ await saveApiKey(trimmed);
289895
+ const result = updateSettingsForSource("userSettings", {
289896
+ env: { ANTHROPIC_BASE_URL: url3, VIVUS_PROXY_URL: url3 }
289897
+ });
289898
+ if (result.error)
289899
+ throw result.error;
289900
+ logEvent("tengu_vivus_manual_credentials_saved", {});
289901
+ setOAuthStatus({ state: "success" });
289902
+ } catch (err) {
289903
+ logError2(err);
289904
+ setOAuthStatus({
289905
+ state: "error",
289906
+ message: err.message,
289907
+ toRetry: { state: "manual_credentials", step: "url" }
289908
+ });
289909
+ }
289910
+ };
289911
+ return /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(ThemedBox_default, {
289912
+ flexDirection: "column",
289913
+ gap: 1,
289914
+ marginTop: 1,
289915
+ children: [
289916
+ /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(ThemedText, {
289917
+ bold: true,
289918
+ children: "Configure your Vivus subscription endpoint"
289919
+ }, undefined, false, undefined, this),
289920
+ /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(ThemedBox_default, {
289921
+ flexDirection: "column",
289922
+ gap: 1,
289923
+ children: [
289924
+ isUrlStep ? /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(ThemedText, {
289925
+ children: "Enter your Vivus proxy URL (e.g. https://vivus.example.com):"
289926
+ }, undefined, false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(jsx_dev_runtime90.Fragment, {
289927
+ children: [
289928
+ /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(ThemedText, {
289929
+ dimColor: true,
289930
+ children: [
289931
+ "URL: ",
289932
+ status.url
289933
+ ]
289934
+ }, undefined, true, undefined, this),
289935
+ /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(ThemedText, {
289936
+ children: "Enter your API token:"
289937
+ }, undefined, false, undefined, this)
289938
+ ]
289939
+ }, undefined, true, undefined, this),
289940
+ /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(ThemedBox_default, {
289941
+ children: [
289942
+ /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(ThemedText, {
289943
+ children: isUrlStep ? "> " : "> "
289944
+ }, undefined, false, undefined, this),
289945
+ /* @__PURE__ */ jsx_dev_runtime90.jsxDEV(TextInput, {
289946
+ value,
289947
+ onChange: setValue,
289948
+ onSubmit: handleSubmit,
289949
+ cursorOffset: cursor,
289950
+ onChangeCursorOffset: setCursor,
289951
+ columns: textInputColumns,
289952
+ mask: isUrlStep ? undefined : "*"
289953
+ }, undefined, false, undefined, this)
289954
+ ]
289955
+ }, undefined, true, undefined, this)
289956
+ ]
289957
+ }, undefined, true, undefined, this)
289958
+ ]
289959
+ }, undefined, true, undefined, this);
289960
+ }
289834
289961
  var import_compiler_runtime76, import_react70, jsx_dev_runtime90, PASTE_HERE_MSG = "Paste code here if prompted > ";
289835
289962
  var init_ConsoleOAuthFlow = __esm(() => {
289836
289963
  init_analytics();
@@ -330482,7 +330609,7 @@ function getAnthropicEnvMetadata() {
330482
330609
  function getBuildAgeMinutes() {
330483
330610
  if (false)
330484
330611
  ;
330485
- const buildTime = new Date("2026-06-05T22:48:08.076Z").getTime();
330612
+ const buildTime = new Date("2026-06-05T23:04:49.594Z").getTime();
330486
330613
  if (isNaN(buildTime))
330487
330614
  return;
330488
330615
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -360792,6 +360919,12 @@ function getOpusPlanOption() {
360792
360919
  };
360793
360920
  }
360794
360921
  function getModelOptionsBase(fastMode = false) {
360922
+ if (!isFirstPartyAnthropicBaseUrl()) {
360923
+ const proxyCache = getGlobalConfig().additionalModelOptionsCache ?? [];
360924
+ if (proxyCache.length > 0) {
360925
+ return [getDefaultOptionForUser(fastMode), ...proxyCache];
360926
+ }
360927
+ }
360795
360928
  if (process.env.USER_TYPE === "ant") {
360796
360929
  const antModelOptions = getAntModels().map((m) => ({
360797
360930
  value: m.alias,
@@ -377697,7 +377830,7 @@ var init_filesystem = __esm(() => {
377697
377830
  });
377698
377831
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
377699
377832
  const nonce = randomBytes17(16).toString("hex");
377700
- return join106(getVivusTempDir(), "bundled-skills", "1.0.3+aa285c3", nonce);
377833
+ return join106(getVivusTempDir(), "bundled-skills", "1.0.5+c258d3c", nonce);
377701
377834
  });
377702
377835
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
377703
377836
  });
@@ -379457,7 +379590,7 @@ function Feedback({
379457
379590
  platform: env2.platform,
379458
379591
  gitRepo: envInfo.isGit,
379459
379592
  terminal: env2.terminal,
379460
- version: "1.0.3+aa285c3",
379593
+ version: "1.0.5+c258d3c",
379461
379594
  transcript: normalizeMessagesForAPI(messages),
379462
379595
  errors: sanitizedErrors,
379463
379596
  lastApiRequest: getLastAPIRequest(),
@@ -379649,7 +379782,7 @@ function Feedback({
379649
379782
  ", ",
379650
379783
  env2.terminal,
379651
379784
  ", v",
379652
- "1.0.3+aa285c3"
379785
+ "1.0.5+c258d3c"
379653
379786
  ]
379654
379787
  }, undefined, true, undefined, this)
379655
379788
  ]
@@ -379755,7 +379888,7 @@ ${sanitizedDescription}
379755
379888
  ` + `**Environment Info**
379756
379889
  ` + `- Platform: ${env2.platform}
379757
379890
  ` + `- Terminal: ${env2.terminal}
379758
- ` + `- Version: ${"1.0.3+aa285c3"}
379891
+ ` + `- Version: ${"1.0.5+c258d3c"}
379759
379892
  ` + `- Feedback ID: ${feedbackId}
379760
379893
  ` + `
379761
379894
  **Errors**
@@ -382886,7 +383019,7 @@ function buildPrimarySection() {
382886
383019
  }, undefined, false, undefined, this);
382887
383020
  return [{
382888
383021
  label: "Version",
382889
- value: "1.0.3+aa285c3"
383022
+ value: "1.0.5+c258d3c"
382890
383023
  }, {
382891
383024
  label: "Session name",
382892
383025
  value: nameValue
@@ -386637,7 +386770,7 @@ function Config({
386637
386770
  }
386638
386771
  }, undefined, false, undefined, this)
386639
386772
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime178.jsxDEV(ChannelDowngradeDialog, {
386640
- currentVersion: "1.0.3+aa285c3",
386773
+ currentVersion: "1.0.5+c258d3c",
386641
386774
  onChoice: (choice) => {
386642
386775
  setShowSubmenu(null);
386643
386776
  setTabsHidden(false);
@@ -386649,7 +386782,7 @@ function Config({
386649
386782
  autoUpdatesChannel: "stable"
386650
386783
  };
386651
386784
  if (choice === "stay") {
386652
- newSettings.minimumVersion = "1.0.3+aa285c3";
386785
+ newSettings.minimumVersion = "1.0.5+c258d3c";
386653
386786
  }
386654
386787
  updateSettingsForSource("userSettings", newSettings);
386655
386788
  setSettingsData((prev_27) => ({
@@ -394735,7 +394868,7 @@ function HelpV2(t0) {
394735
394868
  let t6;
394736
394869
  if ($2[31] !== tabs) {
394737
394870
  t6 = /* @__PURE__ */ jsx_dev_runtime205.jsxDEV(Tabs, {
394738
- title: `Vivus v${"1.0.3+aa285c3"}`,
394871
+ title: `Vivus v${"1.0.5+c258d3c"}`,
394739
394872
  color: "professionalBlue",
394740
394873
  defaultTab: "general",
394741
394874
  children: tabs
@@ -418960,7 +419093,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
418960
419093
  return [];
418961
419094
  }
418962
419095
  }
418963
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.3+aa285c3") {
419096
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.5+c258d3c") {
418964
419097
  if (process.env.USER_TYPE === "ant") {
418965
419098
  const changelog = "";
418966
419099
  if (changelog) {
@@ -418987,7 +419120,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.0.3+aa2
418987
419120
  releaseNotes
418988
419121
  };
418989
419122
  }
418990
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0.3+aa285c3") {
419123
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.0.5+c258d3c") {
418991
419124
  if (process.env.USER_TYPE === "ant") {
418992
419125
  const changelog = "";
418993
419126
  if (changelog) {
@@ -420157,7 +420290,7 @@ function getRecentActivitySync() {
420157
420290
  return cachedActivity;
420158
420291
  }
420159
420292
  function getLogoDisplayData() {
420160
- const version2 = process.env.DEMO_VERSION ?? "1.0.3+aa285c3";
420293
+ const version2 = process.env.DEMO_VERSION ?? "1.0.5+c258d3c";
420161
420294
  const serverUrl = getDirectConnectServerUrl();
420162
420295
  const displayPath = process.env.DEMO_VERSION ? "/code/vivus" : getDisplayPath(getCwd());
420163
420296
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -421684,7 +421817,7 @@ function LogoV2() {
421684
421817
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
421685
421818
  t2 = () => {
421686
421819
  const currentConfig = getGlobalConfig();
421687
- if (currentConfig.lastReleaseNotesSeen === "1.0.3+aa285c3") {
421820
+ if (currentConfig.lastReleaseNotesSeen === "1.0.5+c258d3c") {
421688
421821
  return;
421689
421822
  }
421690
421823
  saveGlobalConfig(_temp329);
@@ -422360,12 +422493,12 @@ function LogoV2() {
422360
422493
  return t41;
422361
422494
  }
422362
422495
  function _temp329(current) {
422363
- if (current.lastReleaseNotesSeen === "1.0.3+aa285c3") {
422496
+ if (current.lastReleaseNotesSeen === "1.0.5+c258d3c") {
422364
422497
  return current;
422365
422498
  }
422366
422499
  return {
422367
422500
  ...current,
422368
- lastReleaseNotesSeen: "1.0.3+aa285c3"
422501
+ lastReleaseNotesSeen: "1.0.5+c258d3c"
422369
422502
  };
422370
422503
  }
422371
422504
  function _temp245(s_0) {
@@ -448662,7 +448795,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
448662
448795
  smapsRollup,
448663
448796
  platform: process.platform,
448664
448797
  nodeVersion: process.version,
448665
- ccVersion: "1.0.3+aa285c3"
448798
+ ccVersion: "1.0.5+c258d3c"
448666
448799
  };
448667
448800
  }
448668
448801
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -449248,7 +449381,7 @@ var init_bridge_kick = __esm(() => {
449248
449381
  var call56 = async () => {
449249
449382
  return {
449250
449383
  type: "text",
449251
- value: `${"1.0.3+aa285c3"} (built ${"2026-06-05T22:48:08.076Z"})`
449384
+ value: `${"1.0.5+c258d3c"} (built ${"2026-06-05T23:04:49.594Z"})`
449252
449385
  };
449253
449386
  }, version2, version_default;
449254
449387
  var init_version = __esm(() => {
@@ -458211,7 +458344,7 @@ function generateHtmlReport(data, insights) {
458211
458344
  </html>`;
458212
458345
  }
458213
458346
  function buildExportData(data, insights, facets, remoteStats) {
458214
- const version3 = typeof MACRO !== "undefined" ? "1.0.3+aa285c3" : "unknown";
458347
+ const version3 = typeof MACRO !== "undefined" ? "1.0.5+c258d3c" : "unknown";
458215
458348
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
458216
458349
  const facets_summary = {
458217
458350
  total: facets.size,
@@ -462320,7 +462453,7 @@ var init_sessionStorage = __esm(() => {
462320
462453
  init_settings2();
462321
462454
  init_slowOperations();
462322
462455
  init_uuid();
462323
- VERSION5 = typeof MACRO !== "undefined" ? "1.0.3+aa285c3" : "unknown";
462456
+ VERSION5 = typeof MACRO !== "undefined" ? "1.0.5+c258d3c" : "unknown";
462324
462457
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
462325
462458
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
462326
462459
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -465191,7 +465324,7 @@ function buildSystemInitMessage(inputs) {
465191
465324
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
465192
465325
  apiKeySource: getAnthropicApiKeyWithSource().source,
465193
465326
  betas: getSdkBetas(),
465194
- vivus_code_version: "1.0.3+aa285c3",
465327
+ vivus_code_version: "1.0.5+c258d3c",
465195
465328
  output_style: outputStyle2,
465196
465329
  agents: inputs.agents.map((agent) => agent.agentType),
465197
465330
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -479819,7 +479952,7 @@ var init_useVoiceEnabled = __esm(() => {
479819
479952
  function getSemverPart(version3) {
479820
479953
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
479821
479954
  }
479822
- function useUpdateNotification(updatedVersion, initialVersion = "1.0.3+aa285c3") {
479955
+ function useUpdateNotification(updatedVersion, initialVersion = "1.0.5+c258d3c") {
479823
479956
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react227.useState(() => getSemverPart(initialVersion));
479824
479957
  if (!updatedVersion) {
479825
479958
  return null;
@@ -479859,7 +479992,7 @@ function AutoUpdater({
479859
479992
  return;
479860
479993
  }
479861
479994
  if (false) {}
479862
- const currentVersion = "1.0.3+aa285c3";
479995
+ const currentVersion = "1.0.5+c258d3c";
479863
479996
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
479864
479997
  let latestVersion = await getLatestVersion(channel);
479865
479998
  const isDisabled = isAutoUpdaterDisabled();
@@ -480072,12 +480205,12 @@ function NativeAutoUpdater({
480072
480205
  logEvent("tengu_native_auto_updater_start", {});
480073
480206
  try {
480074
480207
  const maxVersion = await getMaxVersion();
480075
- if (maxVersion && gt("1.0.3+aa285c3", maxVersion)) {
480208
+ if (maxVersion && gt("1.0.5+c258d3c", maxVersion)) {
480076
480209
  const msg = await getMaxVersionMessage();
480077
480210
  setMaxVersionIssue(msg ?? "affects your version");
480078
480211
  }
480079
480212
  const result = await installLatest(channel);
480080
- const currentVersion = "1.0.3+aa285c3";
480213
+ const currentVersion = "1.0.5+c258d3c";
480081
480214
  const latencyMs = Date.now() - startTime;
480082
480215
  if (result.lockFailed) {
480083
480216
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -480214,17 +480347,17 @@ function PackageManagerAutoUpdater(t0) {
480214
480347
  const maxVersion = await getMaxVersion();
480215
480348
  if (maxVersion && latest && gt(latest, maxVersion)) {
480216
480349
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
480217
- if (gte("1.0.3+aa285c3", maxVersion)) {
480218
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.0.3+aa285c3"} is already at or above maxVersion ${maxVersion}, skipping update`);
480350
+ if (gte("1.0.5+c258d3c", maxVersion)) {
480351
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.0.5+c258d3c"} is already at or above maxVersion ${maxVersion}, skipping update`);
480219
480352
  setUpdateAvailable(false);
480220
480353
  return;
480221
480354
  }
480222
480355
  latest = maxVersion;
480223
480356
  }
480224
- const hasUpdate = latest && !gte("1.0.3+aa285c3", latest) && !shouldSkipVersion(latest);
480357
+ const hasUpdate = latest && !gte("1.0.5+c258d3c", latest) && !shouldSkipVersion(latest);
480225
480358
  setUpdateAvailable(!!hasUpdate);
480226
480359
  if (hasUpdate) {
480227
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.0.3+aa285c3"} -> ${latest}`);
480360
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.0.5+c258d3c"} -> ${latest}`);
480228
480361
  }
480229
480362
  };
480230
480363
  $2[0] = t1;
@@ -480258,7 +480391,7 @@ function PackageManagerAutoUpdater(t0) {
480258
480391
  wrap: "truncate",
480259
480392
  children: [
480260
480393
  "currentVersion: ",
480261
- "1.0.3+aa285c3"
480394
+ "1.0.5+c258d3c"
480262
480395
  ]
480263
480396
  }, undefined, true, undefined, this);
480264
480397
  $2[3] = verbose;
@@ -488426,7 +488559,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
488426
488559
  project_dir: getOriginalCwd(),
488427
488560
  added_dirs: addedDirs
488428
488561
  },
488429
- version: "1.0.3+aa285c3",
488562
+ version: "1.0.5+c258d3c",
488430
488563
  output_style: {
488431
488564
  name: outputStyleName
488432
488565
  },
@@ -499910,7 +500043,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
499910
500043
  } catch {}
499911
500044
  const data = {
499912
500045
  trigger,
499913
- version: "1.0.3+aa285c3",
500046
+ version: "1.0.5+c258d3c",
499914
500047
  platform: process.platform,
499915
500048
  transcript,
499916
500049
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -511316,7 +511449,7 @@ function WelcomeV2() {
511316
511449
  dimColor: true,
511317
511450
  children: [
511318
511451
  "v",
511319
- "1.0.3+aa285c3",
511452
+ "1.0.5+c258d3c",
511320
511453
  " "
511321
511454
  ]
511322
511455
  }, undefined, true, undefined, this)
@@ -511516,7 +511649,7 @@ function WelcomeV2() {
511516
511649
  dimColor: true,
511517
511650
  children: [
511518
511651
  "v",
511519
- "1.0.3+aa285c3",
511652
+ "1.0.5+c258d3c",
511520
511653
  " "
511521
511654
  ]
511522
511655
  }, undefined, true, undefined, this)
@@ -511742,7 +511875,7 @@ function AppleTerminalWelcomeV2(t0) {
511742
511875
  dimColor: true,
511743
511876
  children: [
511744
511877
  "v",
511745
- "1.0.3+aa285c3",
511878
+ "1.0.5+c258d3c",
511746
511879
  " "
511747
511880
  ]
511748
511881
  }, undefined, true, undefined, this);
@@ -511996,7 +512129,7 @@ function AppleTerminalWelcomeV2(t0) {
511996
512129
  dimColor: true,
511997
512130
  children: [
511998
512131
  "v",
511999
- "1.0.3+aa285c3",
512132
+ "1.0.5+c258d3c",
512000
512133
  " "
512001
512134
  ]
512002
512135
  }, undefined, true, undefined, this);
@@ -515060,7 +515193,7 @@ function appendToLog(path25, message) {
515060
515193
  cwd: getFsImplementation().cwd(),
515061
515194
  userType: process.env.USER_TYPE,
515062
515195
  sessionId: getSessionId(),
515063
- version: "1.0.3+aa285c3"
515196
+ version: "1.0.5+c258d3c"
515064
515197
  };
515065
515198
  getLogWriter(path25).write(messageWithTimestamp);
515066
515199
  }
@@ -519045,8 +519178,8 @@ async function getEnvLessBridgeConfig() {
519045
519178
  }
519046
519179
  async function checkEnvLessBridgeMinVersion() {
519047
519180
  const cfg = await getEnvLessBridgeConfig();
519048
- if (cfg.min_version && lt("1.0.3+aa285c3", cfg.min_version)) {
519049
- return `Your version of Vivus (${"1.0.3+aa285c3"}) is too old for Remote Control.
519181
+ if (cfg.min_version && lt("1.0.5+c258d3c", cfg.min_version)) {
519182
+ return `Your version of Vivus (${"1.0.5+c258d3c"}) is too old for Remote Control.
519050
519183
  Version ${cfg.min_version} or higher is required. Run \`vivus update\` to update.`;
519051
519184
  }
519052
519185
  return null;
@@ -519520,7 +519653,7 @@ async function initBridgeCore(params) {
519520
519653
  const rawApi = createBridgeApiClient({
519521
519654
  baseUrl,
519522
519655
  getAccessToken,
519523
- runnerVersion: "1.0.3+aa285c3",
519656
+ runnerVersion: "1.0.5+c258d3c",
519524
519657
  onDebug: logForDebugging,
519525
519658
  onAuth401,
519526
519659
  getTrustedDeviceToken
@@ -525184,7 +525317,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
525184
525317
  setCwd(cwd3);
525185
525318
  const server = new Server({
525186
525319
  name: "vivus/tengu",
525187
- version: "1.0.3+aa285c3"
525320
+ version: "1.0.5+c258d3c"
525188
525321
  }, {
525189
525322
  capabilities: {
525190
525323
  tools: {}
@@ -526795,7 +526928,7 @@ __export(exports_update, {
526795
526928
  });
526796
526929
  async function update() {
526797
526930
  logEvent("tengu_update_check", {});
526798
- writeToStdout(`Current version: ${"1.0.3+aa285c3"}
526931
+ writeToStdout(`Current version: ${"1.0.5+c258d3c"}
526799
526932
  `);
526800
526933
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
526801
526934
  writeToStdout(`Checking for updates to ${channel} version...
@@ -526870,8 +527003,8 @@ async function update() {
526870
527003
  writeToStdout(`Vivus is managed by Homebrew.
526871
527004
  `);
526872
527005
  const latest = await getLatestVersion(channel);
526873
- if (latest && !gte("1.0.3+aa285c3", latest)) {
526874
- writeToStdout(`Update available: ${"1.0.3+aa285c3"} → ${latest}
527006
+ if (latest && !gte("1.0.5+c258d3c", latest)) {
527007
+ writeToStdout(`Update available: ${"1.0.5+c258d3c"} → ${latest}
526875
527008
  `);
526876
527009
  writeToStdout(`
526877
527010
  `);
@@ -526887,8 +527020,8 @@ async function update() {
526887
527020
  writeToStdout(`Vivus is managed by winget.
526888
527021
  `);
526889
527022
  const latest = await getLatestVersion(channel);
526890
- if (latest && !gte("1.0.3+aa285c3", latest)) {
526891
- writeToStdout(`Update available: ${"1.0.3+aa285c3"} → ${latest}
527023
+ if (latest && !gte("1.0.5+c258d3c", latest)) {
527024
+ writeToStdout(`Update available: ${"1.0.5+c258d3c"} → ${latest}
526892
527025
  `);
526893
527026
  writeToStdout(`
526894
527027
  `);
@@ -526904,8 +527037,8 @@ async function update() {
526904
527037
  writeToStdout(`Vivus is managed by apk.
526905
527038
  `);
526906
527039
  const latest = await getLatestVersion(channel);
526907
- if (latest && !gte("1.0.3+aa285c3", latest)) {
526908
- writeToStdout(`Update available: ${"1.0.3+aa285c3"} → ${latest}
527040
+ if (latest && !gte("1.0.5+c258d3c", latest)) {
527041
+ writeToStdout(`Update available: ${"1.0.5+c258d3c"} → ${latest}
526909
527042
  `);
526910
527043
  writeToStdout(`
526911
527044
  `);
@@ -526970,11 +527103,11 @@ async function update() {
526970
527103
  `);
526971
527104
  await gracefulShutdown(1);
526972
527105
  }
526973
- if (result.latestVersion === "1.0.3+aa285c3") {
526974
- writeToStdout(source_default.green(`Vivus is up to date (${"1.0.3+aa285c3"})`) + `
527106
+ if (result.latestVersion === "1.0.5+c258d3c") {
527107
+ writeToStdout(source_default.green(`Vivus is up to date (${"1.0.5+c258d3c"})`) + `
526975
527108
  `);
526976
527109
  } else {
526977
- writeToStdout(source_default.green(`Successfully updated from ${"1.0.3+aa285c3"} to version ${result.latestVersion}`) + `
527110
+ writeToStdout(source_default.green(`Successfully updated from ${"1.0.5+c258d3c"} to version ${result.latestVersion}`) + `
526978
527111
  `);
526979
527112
  await regenerateCompletionCache();
526980
527113
  }
@@ -527031,12 +527164,12 @@ async function update() {
527031
527164
  `);
527032
527165
  await gracefulShutdown(1);
527033
527166
  }
527034
- if (latestVersion === "1.0.3+aa285c3") {
527035
- writeToStdout(source_default.green(`Vivus is up to date (${"1.0.3+aa285c3"})`) + `
527167
+ if (latestVersion === "1.0.5+c258d3c") {
527168
+ writeToStdout(source_default.green(`Vivus is up to date (${"1.0.5+c258d3c"})`) + `
527036
527169
  `);
527037
527170
  await gracefulShutdown(0);
527038
527171
  }
527039
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.0.3+aa285c3"})
527172
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.0.5+c258d3c"})
527040
527173
  `);
527041
527174
  writeToStdout(`Installing update...
527042
527175
  `);
@@ -527081,7 +527214,7 @@ async function update() {
527081
527214
  logForDebugging(`update: Installation status: ${status2}`);
527082
527215
  switch (status2) {
527083
527216
  case "success":
527084
- writeToStdout(source_default.green(`Successfully updated from ${"1.0.3+aa285c3"} to version ${latestVersion}`) + `
527217
+ writeToStdout(source_default.green(`Successfully updated from ${"1.0.5+c258d3c"} to version ${latestVersion}`) + `
527085
527218
  `);
527086
527219
  await regenerateCompletionCache();
527087
527220
  break;
@@ -527509,15 +527642,82 @@ async function fetchBootstrapAPI() {
527509
527642
  throw error41;
527510
527643
  }
527511
527644
  }
527645
+ function titleCaseModelName(name) {
527646
+ const base2 = name.replace(/:latest$/, "");
527647
+ if (!base2)
527648
+ return name;
527649
+ return base2.split(/[-_/:]/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join(" ");
527650
+ }
527651
+ async function fetchProxyModelOptions() {
527652
+ if (isFirstPartyAnthropicBaseUrl())
527653
+ return null;
527654
+ const baseUrl = process.env.ANTHROPIC_BASE_URL;
527655
+ if (!baseUrl)
527656
+ return null;
527657
+ let tagsUrl;
527658
+ try {
527659
+ tagsUrl = new URL("/api/tags", baseUrl).toString();
527660
+ } catch {
527661
+ return null;
527662
+ }
527663
+ try {
527664
+ logForDebugging(`[Bootstrap] Probing proxy model list: ${tagsUrl}`);
527665
+ const response = await axios_default.get(tagsUrl, { timeout: 5000 });
527666
+ const data = response.data;
527667
+ const models = Array.isArray(data?.models) ? data.models : [];
527668
+ if (models.length === 0) {
527669
+ logForDebugging("[Bootstrap] Proxy returned empty model list");
527670
+ return [];
527671
+ }
527672
+ const options2 = [];
527673
+ const seen = new Set;
527674
+ for (const m of models) {
527675
+ const name = typeof m.name === "string" ? m.name : null;
527676
+ if (!name || seen.has(name))
527677
+ continue;
527678
+ seen.add(name);
527679
+ const details = m.details ?? {};
527680
+ const family = typeof details.family === "string" ? details.family : null;
527681
+ const paramSize = typeof details.parameter_size === "string" ? details.parameter_size : null;
527682
+ const descParts = [];
527683
+ if (family)
527684
+ descParts.push(family);
527685
+ if (paramSize)
527686
+ descParts.push(paramSize);
527687
+ const description = descParts.length > 0 ? descParts.join(" · ") : name;
527688
+ options2.push({
527689
+ value: name,
527690
+ label: titleCaseModelName(name),
527691
+ description
527692
+ });
527693
+ }
527694
+ logForDebugging(`[Bootstrap] Proxy model list: ${options2.map((o2) => o2.value).join(", ")}`);
527695
+ return options2;
527696
+ } catch (error41) {
527697
+ logForDebugging(`[Bootstrap] Proxy /api/tags fetch failed: ${axios_default.isAxiosError(error41) ? error41.response?.status ?? error41.code : "unknown"}`);
527698
+ return null;
527699
+ }
527700
+ }
527512
527701
  async function fetchBootstrapData() {
527513
527702
  try {
527514
- const response = await fetchBootstrapAPI();
527515
- if (!response)
527703
+ const [response, proxyModels] = await Promise.all([
527704
+ fetchBootstrapAPI().catch(() => null),
527705
+ fetchProxyModelOptions()
527706
+ ]);
527707
+ if (!response && !proxyModels)
527516
527708
  return;
527517
- const clientData = response.client_data ?? null;
527518
- const additionalModelOptions = response.additional_model_options ?? [];
527709
+ const clientData = response?.client_data ?? null;
527710
+ const apiOptions = response?.additional_model_options ?? [];
527711
+ const merged = [...apiOptions];
527712
+ if (proxyModels) {
527713
+ for (const opt of proxyModels) {
527714
+ if (!merged.some((existing) => existing.value === opt.value)) {
527715
+ merged.push(opt);
527716
+ }
527717
+ }
527718
+ }
527519
527719
  const config4 = getGlobalConfig();
527520
- if (isEqual_default(config4.clientDataCache, clientData) && isEqual_default(config4.additionalModelOptionsCache, additionalModelOptions)) {
527720
+ if (isEqual_default(config4.clientDataCache, clientData) && isEqual_default(config4.additionalModelOptionsCache, merged)) {
527521
527721
  logForDebugging("[Bootstrap] Cache unchanged, skipping write");
527522
527722
  return;
527523
527723
  }
@@ -527525,7 +527725,7 @@ async function fetchBootstrapData() {
527525
527725
  saveGlobalConfig((current) => ({
527526
527726
  ...current,
527527
527727
  clientDataCache: clientData,
527528
- additionalModelOptionsCache: additionalModelOptions
527728
+ additionalModelOptionsCache: merged
527529
527729
  }));
527530
527730
  } catch (error41) {
527531
527731
  logError2(error41);
@@ -528051,7 +528251,7 @@ function completeOnboarding() {
528051
528251
  saveGlobalConfig((current) => ({
528052
528252
  ...current,
528053
528253
  hasCompletedOnboarding: true,
528054
- lastOnboardingVersion: "1.0.3+aa285c3"
528254
+ lastOnboardingVersion: "1.0.5+c258d3c"
528055
528255
  }));
528056
528256
  }
528057
528257
  function showDialog(root2, renderer) {
@@ -532140,7 +532340,7 @@ ${customInstructions}` : customInstructions;
532140
532340
  }
532141
532341
  }
532142
532342
  logForDiagnosticsNoPII("info", "started", {
532143
- version: "1.0.3+aa285c3",
532343
+ version: "1.0.5+c258d3c",
532144
532344
  is_native_binary: isInBundledMode()
532145
532345
  });
532146
532346
  registerCleanup(async () => {
@@ -532924,7 +533124,7 @@ Usage: vivus --remote "your task description"`, () => gracefulShutdown(1));
532924
533124
  pendingHookMessages
532925
533125
  }, renderAndRun);
532926
533126
  }
532927
- }).version("1.0.3+aa285c3 (Vivus)", "-v, --version", "Output the version number");
533127
+ }).version("1.0.5+c258d3c (Vivus)", "-v, --version", "Output the version number");
532928
533128
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
532929
533129
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
532930
533130
  if (canUserConfigureAdvisor()) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vivus-agent",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "Vivus — local AI coding agent",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",