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