vivus-agent 1.1.11 → 1.1.13
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/bin/vivus.mjs +117 -19
- package/dist/main.js +121 -99
- package/package.json +1 -1
package/bin/vivus.mjs
CHANGED
|
@@ -5,11 +5,23 @@
|
|
|
5
5
|
// Why this exists: `npm install -g vivus-agent` installs only dist/main.js,
|
|
6
6
|
// which is the raw (unconfigured) Anthropic-style CLI. Without this wrapper it
|
|
7
7
|
// runs a connectivity preflight against agent.vivus.ai (404 → ERR_BAD_REQUEST)
|
|
8
|
-
// and tries to reach api.anthropic.com for inference.
|
|
9
|
-
//
|
|
10
|
-
//
|
|
8
|
+
// and tries to reach api.anthropic.com for inference.
|
|
9
|
+
//
|
|
10
|
+
// Two auth modes, chosen automatically:
|
|
11
|
+
// • API-key mode — when VIVUS_API_KEY / ANTHROPIC_API_KEY is set. Runs the
|
|
12
|
+
// REPL in hermetic `--bare` mode (fast; OAuth/keychain never read). Ideal
|
|
13
|
+
// for CI / headless servers.
|
|
14
|
+
// • OAuth mode — when no key is set. Runs the normal onboarding so the
|
|
15
|
+
// user gets the "nice" sign-in flow: pick the service, the browser opens
|
|
16
|
+
// agent.vivus.ai, the connection is authorized, and a key is minted and
|
|
17
|
+
// stored. We must NOT pass --bare here (it disables OAuth) and must NOT
|
|
18
|
+
// put a key in env (an env key disables the OAuth onboarding step).
|
|
19
|
+
// `vivus login` and other management subcommands always run this way.
|
|
11
20
|
|
|
12
21
|
import { spawn } from 'node:child_process'
|
|
22
|
+
import { readFileSync, writeFileSync } from 'node:fs'
|
|
23
|
+
import { homedir } from 'node:os'
|
|
24
|
+
import { join } from 'node:path'
|
|
13
25
|
import { fileURLToPath } from 'node:url'
|
|
14
26
|
|
|
15
27
|
const PROXY = process.env.VIVUS_PROXY_URL || 'https://proxy.vivus.ai'
|
|
@@ -22,8 +34,10 @@ function setDefault(key, val) {
|
|
|
22
34
|
}
|
|
23
35
|
}
|
|
24
36
|
|
|
25
|
-
// --- Connection + feature configuration ---
|
|
26
|
-
|
|
37
|
+
// --- Connection + feature configuration (applies to BOTH auth modes) ---
|
|
38
|
+
// Setting ANTHROPIC_BASE_URL routes inference through the proxy AND skips the
|
|
39
|
+
// Anthropic connectivity preflight. It does NOT disable the OAuth flow.
|
|
40
|
+
setDefault('ANTHROPIC_BASE_URL', PROXY)
|
|
27
41
|
setDefault('VIVUS_CODE_API_BASE_URL', PROXY) // feedback / bootstrap / policy limits / metrics
|
|
28
42
|
setDefault('VIVUS_CODE_IS_FIRST_PARTY', '1') // enable Vivus features (policy/feedback/bootstrap)
|
|
29
43
|
setDefault('VIVUS_CODE_DISABLE_EXPERIMENTAL_BETAS', '1') // proxy can't do tool-search/defer_loading
|
|
@@ -36,16 +50,6 @@ setDefault('DISABLE_AUTOUPDATER', '1')
|
|
|
36
50
|
setDefault('DISABLE_INSTALLATION_CHECKS', '1')
|
|
37
51
|
setDefault('DO_NOT_TRACK', '1')
|
|
38
52
|
|
|
39
|
-
// --- API key is required ---
|
|
40
|
-
const apiKey = process.env.VIVUS_API_KEY || process.env.ANTHROPIC_API_KEY
|
|
41
|
-
if (!apiKey) {
|
|
42
|
-
console.error('ERROR: VIVUS_API_KEY is not set.')
|
|
43
|
-
console.error('Get an API key at https://agent.vivus.ai then add it to your shell profile:')
|
|
44
|
-
console.error(' export VIVUS_API_KEY="sk-vivus-..."')
|
|
45
|
-
process.exit(1)
|
|
46
|
-
}
|
|
47
|
-
process.env.ANTHROPIC_API_KEY = apiKey
|
|
48
|
-
|
|
49
53
|
// --- Default agent definitions (mirrors ts/proxy/agents.json) ---
|
|
50
54
|
const AGENTS = {
|
|
51
55
|
coder: {
|
|
@@ -74,19 +78,113 @@ const AGENTS = {
|
|
|
74
78
|
},
|
|
75
79
|
}
|
|
76
80
|
|
|
77
|
-
//
|
|
81
|
+
// CLI management subcommands. When one of these is invoked we pass through
|
|
82
|
+
// untouched (no REPL flags) — e.g. `vivus login`, `vivus logout`, `vivus mcp …`.
|
|
83
|
+
const SUBCOMMANDS = new Set([
|
|
84
|
+
'login', 'logout', 'auth', 'mcp', 'server', 'ssh', 'open', 'plugin',
|
|
85
|
+
'plugins', 'setup-token', 'agents', 'auto-mode', 'doctor', 'update',
|
|
86
|
+
'upgrade', 'install', 'completion',
|
|
87
|
+
])
|
|
88
|
+
|
|
78
89
|
const userArgs = process.argv.slice(2)
|
|
79
90
|
const has = flag => userArgs.some(a => a === flag || a.startsWith(flag + '='))
|
|
91
|
+
const firstPositional = userArgs.find(a => !a.startsWith('-'))
|
|
92
|
+
const isHelpOrVersion = userArgs.some(a =>
|
|
93
|
+
['--help', '-h', '--version', '-v'].includes(a),
|
|
94
|
+
)
|
|
95
|
+
const isManagementCmd =
|
|
96
|
+
isHelpOrVersion ||
|
|
97
|
+
(firstPositional !== undefined && SUBCOMMANDS.has(firstPositional))
|
|
98
|
+
const isRepl = !isManagementCmd
|
|
99
|
+
|
|
100
|
+
// Auth-mode selection: an explicit env key means API-key mode.
|
|
101
|
+
const envKey = process.env.VIVUS_API_KEY || process.env.ANTHROPIC_API_KEY
|
|
102
|
+
const apiKeyMode = !!envKey
|
|
103
|
+
|
|
80
104
|
const injected = []
|
|
81
|
-
if (
|
|
82
|
-
if (
|
|
83
|
-
|
|
105
|
+
if (isRepl) {
|
|
106
|
+
if (apiKeyMode) {
|
|
107
|
+
// API-key mode: hermetic + fast. --bare makes auth strictly the env key.
|
|
108
|
+
process.env.ANTHROPIC_API_KEY = envKey
|
|
109
|
+
if (!has('--bare')) injected.push('--bare')
|
|
110
|
+
}
|
|
111
|
+
// else OAuth mode — leave ANTHROPIC_API_KEY UNSET (an env key disables the
|
|
112
|
+
// OAuth onboarding step) and do NOT pass --bare (it disables OAuth).
|
|
113
|
+
if (!has('--permission-mode')) injected.push('--permission-mode', 'acceptEdits')
|
|
114
|
+
if (!has('--agents')) injected.push('--agents', JSON.stringify(AGENTS))
|
|
115
|
+
} else if (apiKeyMode) {
|
|
116
|
+
// Management subcommand with a key available — make it usable for auth.
|
|
117
|
+
process.env.ANTHROPIC_API_KEY = envKey
|
|
118
|
+
}
|
|
84
119
|
|
|
85
120
|
// --- Heap headroom for large sessions (applied to the child node process) ---
|
|
86
121
|
if (!(process.env.NODE_OPTIONS || '').includes('max-old-space-size')) {
|
|
87
122
|
process.env.NODE_OPTIONS = `${process.env.NODE_OPTIONS || ''} --max-old-space-size=8192`.trim()
|
|
88
123
|
}
|
|
89
124
|
|
|
125
|
+
// Format a token count as a compact context-window string: 262144 → "256K",
|
|
126
|
+
// 1048576 → "1M". Returns '' for unknown/zero.
|
|
127
|
+
function formatCtx(n) {
|
|
128
|
+
const t = Number(n)
|
|
129
|
+
if (!t || t <= 0) return ''
|
|
130
|
+
if (t >= 1_000_000) return `${(t / 1_048_576).toFixed(t % 1_048_576 ? 1 : 0)}M`
|
|
131
|
+
if (t >= 1000) return `${Math.round(t / 1024)}K`
|
|
132
|
+
return String(t)
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Pull the proxy's model list and write it into the global config's
|
|
136
|
+
// additionalModelOptionsCache so the /model picker shows every model the
|
|
137
|
+
// proxy serves, with friendly names, context windows, and sizes from Ollama.
|
|
138
|
+
// This is what the old vivus.sh launcher did; the CLI's own refresh is gated
|
|
139
|
+
// behind non-bare mode, so doing it here covers API-key (bare) sessions too.
|
|
140
|
+
async function syncModels() {
|
|
141
|
+
try {
|
|
142
|
+
const resp = await fetch(`${PROXY}/v1/models`, { signal: AbortSignal.timeout(3000) })
|
|
143
|
+
if (!resp.ok) return
|
|
144
|
+
const body = await resp.json()
|
|
145
|
+
const models = Array.isArray(body.data) ? body.data : []
|
|
146
|
+
if (!models.length) return
|
|
147
|
+
|
|
148
|
+
const options = []
|
|
149
|
+
const seen = new Set()
|
|
150
|
+
for (const m of models) {
|
|
151
|
+
const id = typeof m.id === 'string' ? m.id : ''
|
|
152
|
+
if (!id || seen.has(id)) continue
|
|
153
|
+
seen.add(id)
|
|
154
|
+
const label = m.label || m.display_name || id
|
|
155
|
+
const ctx = formatCtx(m.max_input_tokens)
|
|
156
|
+
const sizeNum = parseFloat(m.size_gb)
|
|
157
|
+
const size = Number.isFinite(sizeNum) && sizeNum > 0 ? `${m.size_gb}GB` : ''
|
|
158
|
+
const desc = [m.description, ctx ? `${ctx} context` : '', size]
|
|
159
|
+
.filter(Boolean)
|
|
160
|
+
.join(' · ')
|
|
161
|
+
options.push({ value: id, label, description: desc || id })
|
|
162
|
+
}
|
|
163
|
+
if (!options.length) return
|
|
164
|
+
|
|
165
|
+
const cfgPath = join(process.env.VIVUS_CONFIG_DIR || homedir(), '.vivus.json')
|
|
166
|
+
let cfg = {}
|
|
167
|
+
try {
|
|
168
|
+
cfg = JSON.parse(readFileSync(cfgPath, 'utf8'))
|
|
169
|
+
} catch {
|
|
170
|
+
cfg = {}
|
|
171
|
+
}
|
|
172
|
+
cfg.additionalModelOptionsCache = options
|
|
173
|
+
writeFileSync(cfgPath, JSON.stringify(cfg, null, 2))
|
|
174
|
+
} catch {
|
|
175
|
+
// Network/parse errors are non-fatal — a stale cache from a previous run
|
|
176
|
+
// (or the CLI's own refresh) still populates the picker.
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// Refresh the model list before launching so the picker is current. Bounded by
|
|
181
|
+
// syncModels' own 3s timeout; failures are swallowed so launch never blocks.
|
|
182
|
+
// Only for REPL sessions — management subcommands (login, --version, mcp …)
|
|
183
|
+
// don't show the picker and shouldn't pay the latency.
|
|
184
|
+
if (isRepl) {
|
|
185
|
+
await syncModels()
|
|
186
|
+
}
|
|
187
|
+
|
|
90
188
|
const mainPath = fileURLToPath(new URL('../dist/main.js', import.meta.url))
|
|
91
189
|
const child = spawn(process.execPath, [mainPath, ...injected, ...userArgs], {
|
|
92
190
|
stdio: 'inherit',
|
package/dist/main.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env -S node --max-old-space-size=8192 --expose-gc
|
|
2
2
|
// Vivus CLI — local AI coding agent
|
|
3
|
-
// Built from source at 2026-06-19T09:
|
|
3
|
+
// Built from source at 2026-06-19T09:48:05.614Z
|
|
4
4
|
import { createRequire } from "node:module";
|
|
5
5
|
var __create = Object.create;
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
@@ -112013,6 +112013,21 @@ function isFirstPartyAnthropicBaseUrl() {
|
|
|
112013
112013
|
return false;
|
|
112014
112014
|
}
|
|
112015
112015
|
}
|
|
112016
|
+
function isUsingProxyBaseUrl() {
|
|
112017
|
+
const baseUrl = process.env.ANTHROPIC_BASE_URL;
|
|
112018
|
+
if (!baseUrl)
|
|
112019
|
+
return false;
|
|
112020
|
+
try {
|
|
112021
|
+
const host = new URL(baseUrl).host;
|
|
112022
|
+
if (host === "api.anthropic.com")
|
|
112023
|
+
return false;
|
|
112024
|
+
if (host === "api-staging.anthropic.com")
|
|
112025
|
+
return false;
|
|
112026
|
+
return true;
|
|
112027
|
+
} catch {
|
|
112028
|
+
return false;
|
|
112029
|
+
}
|
|
112030
|
+
}
|
|
112016
112031
|
var init_providers = __esm(() => {
|
|
112017
112032
|
init_envUtils();
|
|
112018
112033
|
});
|
|
@@ -116001,7 +116016,7 @@ var init_auth = __esm(() => {
|
|
|
116001
116016
|
|
|
116002
116017
|
// src/utils/userAgent.ts
|
|
116003
116018
|
function getVivusCodeUserAgent() {
|
|
116004
|
-
return `vivus/${"1.1.
|
|
116019
|
+
return `vivus/${"1.1.13+5e0e0cd-dirty"}`;
|
|
116005
116020
|
}
|
|
116006
116021
|
|
|
116007
116022
|
// src/utils/workloadContext.ts
|
|
@@ -116023,7 +116038,7 @@ function getUserAgent() {
|
|
|
116023
116038
|
const clientApp = process.env.VIVUS_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.VIVUS_AGENT_SDK_CLIENT_APP}` : "";
|
|
116024
116039
|
const workload = getWorkload();
|
|
116025
116040
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
116026
|
-
return `vivus-cli/${"1.1.
|
|
116041
|
+
return `vivus-cli/${"1.1.13+5e0e0cd-dirty"} (${process.env.USER_TYPE}, ${process.env.VIVUS_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
116027
116042
|
}
|
|
116028
116043
|
function getMCPUserAgent() {
|
|
116029
116044
|
const parts = [];
|
|
@@ -116037,7 +116052,7 @@ function getMCPUserAgent() {
|
|
|
116037
116052
|
parts.push(`client-app/${process.env.VIVUS_AGENT_SDK_CLIENT_APP}`);
|
|
116038
116053
|
}
|
|
116039
116054
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
116040
|
-
return `vivus/${"1.1.
|
|
116055
|
+
return `vivus/${"1.1.13+5e0e0cd-dirty"}${suffix}`;
|
|
116041
116056
|
}
|
|
116042
116057
|
function getWebFetchUserAgent() {
|
|
116043
116058
|
return `Vivus-User (${getVivusCodeUserAgent()}; +https://support.anthropic.com/)`;
|
|
@@ -116175,7 +116190,7 @@ var init_user = __esm(() => {
|
|
|
116175
116190
|
deviceId,
|
|
116176
116191
|
sessionId: getSessionId(),
|
|
116177
116192
|
email: getEmail(),
|
|
116178
|
-
appVersion: "1.1.
|
|
116193
|
+
appVersion: "1.1.13+5e0e0cd-dirty",
|
|
116179
116194
|
platform: getHostPlatformForAnalytics(),
|
|
116180
116195
|
organizationUuid,
|
|
116181
116196
|
accountUuid,
|
|
@@ -127841,7 +127856,7 @@ var init_metadata = __esm(() => {
|
|
|
127841
127856
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
127842
127857
|
WHITESPACE_REGEX = /\s+/;
|
|
127843
127858
|
getVersionBase = memoize_default(() => {
|
|
127844
|
-
const match = "1.1.
|
|
127859
|
+
const match = "1.1.13+5e0e0cd-dirty".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
127845
127860
|
return match ? match[0] : undefined;
|
|
127846
127861
|
});
|
|
127847
127862
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -127881,9 +127896,9 @@ var init_metadata = __esm(() => {
|
|
|
127881
127896
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
127882
127897
|
isVivusCodeAction: isEnvTruthy(process.env.VIVUS_CODE_ACTION),
|
|
127883
127898
|
isVivusAiAuth: isVivusAISubscriber(),
|
|
127884
|
-
version: "1.1.
|
|
127899
|
+
version: "1.1.13+5e0e0cd-dirty",
|
|
127885
127900
|
versionBase: getVersionBase(),
|
|
127886
|
-
buildTime: "2026-06-19T09:
|
|
127901
|
+
buildTime: "2026-06-19T09:48:05.089Z",
|
|
127887
127902
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
127888
127903
|
...isEnvTruthy(process.env.GITHUB_ACTIONS) && {
|
|
127889
127904
|
githubEventName: process.env.GITHUB_EVENT_NAME,
|
|
@@ -128551,7 +128566,7 @@ function initialize1PEventLogging() {
|
|
|
128551
128566
|
const platform2 = getPlatform();
|
|
128552
128567
|
const attributes = {
|
|
128553
128568
|
[import_semantic_conventions.ATTR_SERVICE_NAME]: "vivus",
|
|
128554
|
-
[import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.1.
|
|
128569
|
+
[import_semantic_conventions.ATTR_SERVICE_VERSION]: "1.1.13+5e0e0cd-dirty"
|
|
128555
128570
|
};
|
|
128556
128571
|
if (platform2 === "wsl") {
|
|
128557
128572
|
const wslVersion = getWslVersion();
|
|
@@ -128578,7 +128593,7 @@ function initialize1PEventLogging() {
|
|
|
128578
128593
|
})
|
|
128579
128594
|
]
|
|
128580
128595
|
});
|
|
128581
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.vivus_code.events", "1.1.
|
|
128596
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.anthropic.vivus_code.events", "1.1.13+5e0e0cd-dirty");
|
|
128582
128597
|
}
|
|
128583
128598
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
128584
128599
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -162690,7 +162705,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
162690
162705
|
if (!isAttributionHeaderEnabled()) {
|
|
162691
162706
|
return "";
|
|
162692
162707
|
}
|
|
162693
|
-
const version2 = `${"1.1.
|
|
162708
|
+
const version2 = `${"1.1.13+5e0e0cd-dirty"}.${fingerprint}`;
|
|
162694
162709
|
const entrypoint = process.env.VIVUS_CODE_ENTRYPOINT ?? "unknown";
|
|
162695
162710
|
const cch = "";
|
|
162696
162711
|
const workload = getWorkload();
|
|
@@ -175853,7 +175868,7 @@ function getTelemetryAttributes() {
|
|
|
175853
175868
|
attributes["session.id"] = sessionId;
|
|
175854
175869
|
}
|
|
175855
175870
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
175856
|
-
attributes["app.version"] = "1.1.
|
|
175871
|
+
attributes["app.version"] = "1.1.13+5e0e0cd-dirty";
|
|
175857
175872
|
}
|
|
175858
175873
|
const oauthAccount = getOauthAccountInfo();
|
|
175859
175874
|
if (oauthAccount) {
|
|
@@ -242410,7 +242425,7 @@ function computeFingerprint(messageText, version2) {
|
|
|
242410
242425
|
}
|
|
242411
242426
|
function computeFingerprintFromMessages(messages) {
|
|
242412
242427
|
const firstMessageText = extractFirstMessageText(messages);
|
|
242413
|
-
return computeFingerprint(firstMessageText, "1.1.
|
|
242428
|
+
return computeFingerprint(firstMessageText, "1.1.13+5e0e0cd-dirty");
|
|
242414
242429
|
}
|
|
242415
242430
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
242416
242431
|
var init_fingerprint = () => {};
|
|
@@ -242452,7 +242467,7 @@ async function sideQuery(opts) {
|
|
|
242452
242467
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
242453
242468
|
}
|
|
242454
242469
|
const messageText = extractFirstUserMessageText(messages);
|
|
242455
|
-
const fingerprint = computeFingerprint(messageText, "1.1.
|
|
242470
|
+
const fingerprint = computeFingerprint(messageText, "1.1.13+5e0e0cd-dirty");
|
|
242456
242471
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
242457
242472
|
const systemBlocks = [
|
|
242458
242473
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -243604,7 +243619,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
243604
243619
|
const client2 = new Client({
|
|
243605
243620
|
name: "vivus",
|
|
243606
243621
|
title: "Vivus",
|
|
243607
|
-
version: "1.1.
|
|
243622
|
+
version: "1.1.13+5e0e0cd-dirty",
|
|
243608
243623
|
description: "Anthropic's agentic coding tool",
|
|
243609
243624
|
websiteUrl: PRODUCT_URL
|
|
243610
243625
|
}, {
|
|
@@ -243958,7 +243973,7 @@ var init_client6 = __esm(() => {
|
|
|
243958
243973
|
const client2 = new Client({
|
|
243959
243974
|
name: "vivus",
|
|
243960
243975
|
title: "Vivus",
|
|
243961
|
-
version: "1.1.
|
|
243976
|
+
version: "1.1.13+5e0e0cd-dirty",
|
|
243962
243977
|
description: "Anthropic's agentic coding tool",
|
|
243963
243978
|
websiteUrl: PRODUCT_URL
|
|
243964
243979
|
}, {
|
|
@@ -246016,7 +246031,7 @@ function getInstallationEnv() {
|
|
|
246016
246031
|
return;
|
|
246017
246032
|
}
|
|
246018
246033
|
function getVivusCodeVersion() {
|
|
246019
|
-
return "1.1.
|
|
246034
|
+
return "1.1.13+5e0e0cd-dirty";
|
|
246020
246035
|
}
|
|
246021
246036
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
246022
246037
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -278506,7 +278521,7 @@ async function initializeBetaTracing(resource) {
|
|
|
278506
278521
|
});
|
|
278507
278522
|
import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
|
|
278508
278523
|
setLoggerProvider(loggerProvider);
|
|
278509
|
-
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.
|
|
278524
|
+
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.13+5e0e0cd-dirty");
|
|
278510
278525
|
setEventLogger(eventLogger);
|
|
278511
278526
|
process.on("beforeExit", async () => {
|
|
278512
278527
|
await loggerProvider?.forceFlush();
|
|
@@ -278546,7 +278561,7 @@ async function initializeTelemetry() {
|
|
|
278546
278561
|
const platform5 = getPlatform();
|
|
278547
278562
|
const baseAttributes = {
|
|
278548
278563
|
[import_semantic_conventions2.ATTR_SERVICE_NAME]: "vivus",
|
|
278549
|
-
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.1.
|
|
278564
|
+
[import_semantic_conventions2.ATTR_SERVICE_VERSION]: "1.1.13+5e0e0cd-dirty"
|
|
278550
278565
|
};
|
|
278551
278566
|
if (platform5 === "wsl") {
|
|
278552
278567
|
const wslVersion = getWslVersion();
|
|
@@ -278591,7 +278606,7 @@ async function initializeTelemetry() {
|
|
|
278591
278606
|
} catch {}
|
|
278592
278607
|
};
|
|
278593
278608
|
registerCleanup(shutdownTelemetry2);
|
|
278594
|
-
return meterProvider2.getMeter("com.anthropic.vivus_code", "1.1.
|
|
278609
|
+
return meterProvider2.getMeter("com.anthropic.vivus_code", "1.1.13+5e0e0cd-dirty");
|
|
278595
278610
|
}
|
|
278596
278611
|
const meterProvider = new import_sdk_metrics2.MeterProvider({
|
|
278597
278612
|
resource,
|
|
@@ -278611,7 +278626,7 @@ async function initializeTelemetry() {
|
|
|
278611
278626
|
});
|
|
278612
278627
|
import_api_logs.logs.setGlobalLoggerProvider(loggerProvider);
|
|
278613
278628
|
setLoggerProvider(loggerProvider);
|
|
278614
|
-
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.
|
|
278629
|
+
const eventLogger = import_api_logs.logs.getLogger("com.anthropic.vivus_code.events", "1.1.13+5e0e0cd-dirty");
|
|
278615
278630
|
setEventLogger(eventLogger);
|
|
278616
278631
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
278617
278632
|
process.on("beforeExit", async () => {
|
|
@@ -278673,7 +278688,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
278673
278688
|
}
|
|
278674
278689
|
};
|
|
278675
278690
|
registerCleanup(shutdownTelemetry);
|
|
278676
|
-
return meterProvider.getMeter("com.anthropic.vivus_code", "1.1.
|
|
278691
|
+
return meterProvider.getMeter("com.anthropic.vivus_code", "1.1.13+5e0e0cd-dirty");
|
|
278677
278692
|
}
|
|
278678
278693
|
async function flushTelemetry() {
|
|
278679
278694
|
const meterProvider = getMeterProvider();
|
|
@@ -279359,9 +279374,9 @@ async function assertMinVersion() {
|
|
|
279359
279374
|
if (false) {}
|
|
279360
279375
|
try {
|
|
279361
279376
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
279362
|
-
if (versionConfig.minVersion && lt("1.1.
|
|
279377
|
+
if (versionConfig.minVersion && lt("1.1.13+5e0e0cd-dirty", versionConfig.minVersion)) {
|
|
279363
279378
|
console.error(`
|
|
279364
|
-
It looks like your version of Vivus (${"1.1.
|
|
279379
|
+
It looks like your version of Vivus (${"1.1.13+5e0e0cd-dirty"}) needs an update.
|
|
279365
279380
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
279366
279381
|
|
|
279367
279382
|
To update, please run:
|
|
@@ -279577,7 +279592,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
279577
279592
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
279578
279593
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
279579
279594
|
pid: process.pid,
|
|
279580
|
-
currentVersion: "1.1.
|
|
279595
|
+
currentVersion: "1.1.13+5e0e0cd-dirty"
|
|
279581
279596
|
});
|
|
279582
279597
|
return "in_progress";
|
|
279583
279598
|
}
|
|
@@ -279586,7 +279601,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
279586
279601
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
279587
279602
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
279588
279603
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
279589
|
-
currentVersion: "1.1.
|
|
279604
|
+
currentVersion: "1.1.13+5e0e0cd-dirty"
|
|
279590
279605
|
});
|
|
279591
279606
|
console.error(`
|
|
279592
279607
|
Error: Windows NPM detected in WSL
|
|
@@ -280119,7 +280134,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
280119
280134
|
}
|
|
280120
280135
|
async function getDoctorDiagnostic() {
|
|
280121
280136
|
const installationType = await getCurrentInstallationType();
|
|
280122
|
-
const version2 = typeof MACRO !== "undefined" ? "1.1.
|
|
280137
|
+
const version2 = typeof MACRO !== "undefined" ? "1.1.13+5e0e0cd-dirty" : "unknown";
|
|
280123
280138
|
const installationPath = await getInstallationPath();
|
|
280124
280139
|
const invokedBinary = getInvokedBinary();
|
|
280125
280140
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -281052,8 +281067,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
281052
281067
|
const maxVersion = await getMaxVersion();
|
|
281053
281068
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
281054
281069
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
281055
|
-
if (gte("1.1.
|
|
281056
|
-
logForDebugging(`Native installer: current version ${"1.1.
|
|
281070
|
+
if (gte("1.1.13+5e0e0cd-dirty", maxVersion)) {
|
|
281071
|
+
logForDebugging(`Native installer: current version ${"1.1.13+5e0e0cd-dirty"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
281057
281072
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
281058
281073
|
latency_ms: Date.now() - startTime,
|
|
281059
281074
|
max_version: maxVersion,
|
|
@@ -281064,7 +281079,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
281064
281079
|
version2 = maxVersion;
|
|
281065
281080
|
}
|
|
281066
281081
|
}
|
|
281067
|
-
if (!forceReinstall && version2 === "1.1.
|
|
281082
|
+
if (!forceReinstall && version2 === "1.1.13+5e0e0cd-dirty" && await versionIsAvailable(version2) && await isPossibleVivusBinary(executablePath)) {
|
|
281068
281083
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
281069
281084
|
logEvent("tengu_native_update_complete", {
|
|
281070
281085
|
latency_ms: Date.now() - startTime,
|
|
@@ -336977,7 +336992,7 @@ function getAnthropicEnvMetadata() {
|
|
|
336977
336992
|
function getBuildAgeMinutes() {
|
|
336978
336993
|
if (false)
|
|
336979
336994
|
;
|
|
336980
|
-
const buildTime = new Date("2026-06-19T09:
|
|
336995
|
+
const buildTime = new Date("2026-06-19T09:48:05.089Z").getTime();
|
|
336981
336996
|
if (isNaN(buildTime))
|
|
336982
336997
|
return;
|
|
336983
336998
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -367288,6 +367303,9 @@ function getOpusPlanOption() {
|
|
|
367288
367303
|
};
|
|
367289
367304
|
}
|
|
367290
367305
|
function getModelOptionsBase(fastMode = false) {
|
|
367306
|
+
if (isUsingProxyBaseUrl()) {
|
|
367307
|
+
return [];
|
|
367308
|
+
}
|
|
367291
367309
|
if (process.env.USER_TYPE === "ant") {
|
|
367292
367310
|
const antModelOptions = getAntModels().map((m) => ({
|
|
367293
367311
|
value: m.alias,
|
|
@@ -384193,7 +384211,7 @@ var init_filesystem = __esm(() => {
|
|
|
384193
384211
|
});
|
|
384194
384212
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
384195
384213
|
const nonce = randomBytes17(16).toString("hex");
|
|
384196
|
-
return join106(getVivusTempDir(), "bundled-skills", "1.1.
|
|
384214
|
+
return join106(getVivusTempDir(), "bundled-skills", "1.1.13+5e0e0cd-dirty", nonce);
|
|
384197
384215
|
});
|
|
384198
384216
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
384199
384217
|
});
|
|
@@ -385953,7 +385971,7 @@ function Feedback({
|
|
|
385953
385971
|
platform: env2.platform,
|
|
385954
385972
|
gitRepo: envInfo.isGit,
|
|
385955
385973
|
terminal: env2.terminal,
|
|
385956
|
-
version: "1.1.
|
|
385974
|
+
version: "1.1.13+5e0e0cd-dirty",
|
|
385957
385975
|
transcript: normalizeMessagesForAPI(messages),
|
|
385958
385976
|
errors: sanitizedErrors,
|
|
385959
385977
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -386145,7 +386163,7 @@ function Feedback({
|
|
|
386145
386163
|
", ",
|
|
386146
386164
|
env2.terminal,
|
|
386147
386165
|
", v",
|
|
386148
|
-
"1.1.
|
|
386166
|
+
"1.1.13+5e0e0cd-dirty"
|
|
386149
386167
|
]
|
|
386150
386168
|
}, undefined, true, undefined, this)
|
|
386151
386169
|
]
|
|
@@ -386251,7 +386269,7 @@ ${sanitizedDescription}
|
|
|
386251
386269
|
` + `**Environment Info**
|
|
386252
386270
|
` + `- Platform: ${env2.platform}
|
|
386253
386271
|
` + `- Terminal: ${env2.terminal}
|
|
386254
|
-
` + `- Version: ${"1.1.
|
|
386272
|
+
` + `- Version: ${"1.1.13+5e0e0cd-dirty"}
|
|
386255
386273
|
` + `- Feedback ID: ${feedbackId}
|
|
386256
386274
|
` + `
|
|
386257
386275
|
**Errors**
|
|
@@ -389383,7 +389401,7 @@ function buildPrimarySection() {
|
|
|
389383
389401
|
}, undefined, false, undefined, this);
|
|
389384
389402
|
return [{
|
|
389385
389403
|
label: "Version",
|
|
389386
|
-
value: "1.1.
|
|
389404
|
+
value: "1.1.13+5e0e0cd-dirty"
|
|
389387
389405
|
}, {
|
|
389388
389406
|
label: "Session name",
|
|
389389
389407
|
value: nameValue
|
|
@@ -393134,7 +393152,7 @@ function Config({
|
|
|
393134
393152
|
}
|
|
393135
393153
|
}, undefined, false, undefined, this)
|
|
393136
393154
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime178.jsxDEV(ChannelDowngradeDialog, {
|
|
393137
|
-
currentVersion: "1.1.
|
|
393155
|
+
currentVersion: "1.1.13+5e0e0cd-dirty",
|
|
393138
393156
|
onChoice: (choice) => {
|
|
393139
393157
|
setShowSubmenu(null);
|
|
393140
393158
|
setTabsHidden(false);
|
|
@@ -393146,7 +393164,7 @@ function Config({
|
|
|
393146
393164
|
autoUpdatesChannel: "stable"
|
|
393147
393165
|
};
|
|
393148
393166
|
if (choice === "stay") {
|
|
393149
|
-
newSettings.minimumVersion = "1.1.
|
|
393167
|
+
newSettings.minimumVersion = "1.1.13+5e0e0cd-dirty";
|
|
393150
393168
|
}
|
|
393151
393169
|
updateSettingsForSource("userSettings", newSettings);
|
|
393152
393170
|
setSettingsData((prev_27) => ({
|
|
@@ -401232,7 +401250,7 @@ function HelpV2(t0) {
|
|
|
401232
401250
|
let t6;
|
|
401233
401251
|
if ($2[31] !== tabs) {
|
|
401234
401252
|
t6 = /* @__PURE__ */ jsx_dev_runtime205.jsxDEV(Tabs, {
|
|
401235
|
-
title: `Vivus v${"1.1.
|
|
401253
|
+
title: `Vivus v${"1.1.13+5e0e0cd-dirty"}`,
|
|
401236
401254
|
color: "professionalBlue",
|
|
401237
401255
|
defaultTab: "general",
|
|
401238
401256
|
children: tabs
|
|
@@ -425458,7 +425476,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
425458
425476
|
return [];
|
|
425459
425477
|
}
|
|
425460
425478
|
}
|
|
425461
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.
|
|
425479
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.13+5e0e0cd-dirty") {
|
|
425462
425480
|
if (process.env.USER_TYPE === "ant") {
|
|
425463
425481
|
const changelog = "";
|
|
425464
425482
|
if (changelog) {
|
|
@@ -425485,7 +425503,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.1.11+1b
|
|
|
425485
425503
|
releaseNotes
|
|
425486
425504
|
};
|
|
425487
425505
|
}
|
|
425488
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.
|
|
425506
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.1.13+5e0e0cd-dirty") {
|
|
425489
425507
|
if (process.env.USER_TYPE === "ant") {
|
|
425490
425508
|
const changelog = "";
|
|
425491
425509
|
if (changelog) {
|
|
@@ -426655,7 +426673,7 @@ function getRecentActivitySync() {
|
|
|
426655
426673
|
return cachedActivity;
|
|
426656
426674
|
}
|
|
426657
426675
|
function getLogoDisplayData() {
|
|
426658
|
-
const version2 = process.env.DEMO_VERSION ?? "1.1.
|
|
426676
|
+
const version2 = process.env.DEMO_VERSION ?? "1.1.13+5e0e0cd-dirty";
|
|
426659
426677
|
const serverUrl = getDirectConnectServerUrl();
|
|
426660
426678
|
const displayPath = process.env.DEMO_VERSION ? "/code/vivus" : getDisplayPath(getCwd());
|
|
426661
426679
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -428182,7 +428200,7 @@ function LogoV2() {
|
|
|
428182
428200
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
428183
428201
|
t2 = () => {
|
|
428184
428202
|
const currentConfig = getGlobalConfig();
|
|
428185
|
-
if (currentConfig.lastReleaseNotesSeen === "1.1.
|
|
428203
|
+
if (currentConfig.lastReleaseNotesSeen === "1.1.13+5e0e0cd-dirty") {
|
|
428186
428204
|
return;
|
|
428187
428205
|
}
|
|
428188
428206
|
saveGlobalConfig(_temp329);
|
|
@@ -428858,12 +428876,12 @@ function LogoV2() {
|
|
|
428858
428876
|
return t41;
|
|
428859
428877
|
}
|
|
428860
428878
|
function _temp329(current) {
|
|
428861
|
-
if (current.lastReleaseNotesSeen === "1.1.
|
|
428879
|
+
if (current.lastReleaseNotesSeen === "1.1.13+5e0e0cd-dirty") {
|
|
428862
428880
|
return current;
|
|
428863
428881
|
}
|
|
428864
428882
|
return {
|
|
428865
428883
|
...current,
|
|
428866
|
-
lastReleaseNotesSeen: "1.1.
|
|
428884
|
+
lastReleaseNotesSeen: "1.1.13+5e0e0cd-dirty"
|
|
428867
428885
|
};
|
|
428868
428886
|
}
|
|
428869
428887
|
function _temp245(s_0) {
|
|
@@ -455160,7 +455178,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
455160
455178
|
smapsRollup,
|
|
455161
455179
|
platform: process.platform,
|
|
455162
455180
|
nodeVersion: process.version,
|
|
455163
|
-
ccVersion: "1.1.
|
|
455181
|
+
ccVersion: "1.1.13+5e0e0cd-dirty"
|
|
455164
455182
|
};
|
|
455165
455183
|
}
|
|
455166
455184
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -455746,7 +455764,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
455746
455764
|
var call56 = async () => {
|
|
455747
455765
|
return {
|
|
455748
455766
|
type: "text",
|
|
455749
|
-
value: `${"1.1.
|
|
455767
|
+
value: `${"1.1.13+5e0e0cd-dirty"} (built ${"2026-06-19T09:48:05.089Z"})`
|
|
455750
455768
|
};
|
|
455751
455769
|
}, version2, version_default;
|
|
455752
455770
|
var init_version = __esm(() => {
|
|
@@ -464709,7 +464727,7 @@ function generateHtmlReport(data, insights) {
|
|
|
464709
464727
|
</html>`;
|
|
464710
464728
|
}
|
|
464711
464729
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
464712
|
-
const version3 = typeof MACRO !== "undefined" ? "1.1.
|
|
464730
|
+
const version3 = typeof MACRO !== "undefined" ? "1.1.13+5e0e0cd-dirty" : "unknown";
|
|
464713
464731
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
464714
464732
|
const facets_summary = {
|
|
464715
464733
|
total: facets.size,
|
|
@@ -468818,7 +468836,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
468818
468836
|
init_settings2();
|
|
468819
468837
|
init_slowOperations();
|
|
468820
468838
|
init_uuid();
|
|
468821
|
-
VERSION5 = typeof MACRO !== "undefined" ? "1.1.
|
|
468839
|
+
VERSION5 = typeof MACRO !== "undefined" ? "1.1.13+5e0e0cd-dirty" : "unknown";
|
|
468822
468840
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
468823
468841
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
468824
468842
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -471689,7 +471707,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
471689
471707
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
471690
471708
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
471691
471709
|
betas: getSdkBetas(),
|
|
471692
|
-
vivus_code_version: "1.1.
|
|
471710
|
+
vivus_code_version: "1.1.13+5e0e0cd-dirty",
|
|
471693
471711
|
output_style: outputStyle2,
|
|
471694
471712
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
471695
471713
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -486317,7 +486335,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
486317
486335
|
function getSemverPart(version3) {
|
|
486318
486336
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
486319
486337
|
}
|
|
486320
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.1.
|
|
486338
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.1.13+5e0e0cd-dirty") {
|
|
486321
486339
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react227.useState(() => getSemverPart(initialVersion));
|
|
486322
486340
|
if (!updatedVersion) {
|
|
486323
486341
|
return null;
|
|
@@ -486357,7 +486375,7 @@ function AutoUpdater({
|
|
|
486357
486375
|
return;
|
|
486358
486376
|
}
|
|
486359
486377
|
if (false) {}
|
|
486360
|
-
const currentVersion = "1.1.
|
|
486378
|
+
const currentVersion = "1.1.13+5e0e0cd-dirty";
|
|
486361
486379
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
486362
486380
|
let latestVersion = await getLatestVersion(channel);
|
|
486363
486381
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -486570,12 +486588,12 @@ function NativeAutoUpdater({
|
|
|
486570
486588
|
logEvent("tengu_native_auto_updater_start", {});
|
|
486571
486589
|
try {
|
|
486572
486590
|
const maxVersion = await getMaxVersion();
|
|
486573
|
-
if (maxVersion && gt("1.1.
|
|
486591
|
+
if (maxVersion && gt("1.1.13+5e0e0cd-dirty", maxVersion)) {
|
|
486574
486592
|
const msg = await getMaxVersionMessage();
|
|
486575
486593
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
486576
486594
|
}
|
|
486577
486595
|
const result = await installLatest(channel);
|
|
486578
|
-
const currentVersion = "1.1.
|
|
486596
|
+
const currentVersion = "1.1.13+5e0e0cd-dirty";
|
|
486579
486597
|
const latencyMs = Date.now() - startTime;
|
|
486580
486598
|
if (result.lockFailed) {
|
|
486581
486599
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -486712,17 +486730,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
486712
486730
|
const maxVersion = await getMaxVersion();
|
|
486713
486731
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
486714
486732
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
486715
|
-
if (gte("1.1.
|
|
486716
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.
|
|
486733
|
+
if (gte("1.1.13+5e0e0cd-dirty", maxVersion)) {
|
|
486734
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.1.13+5e0e0cd-dirty"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
486717
486735
|
setUpdateAvailable(false);
|
|
486718
486736
|
return;
|
|
486719
486737
|
}
|
|
486720
486738
|
latest = maxVersion;
|
|
486721
486739
|
}
|
|
486722
|
-
const hasUpdate = latest && !gte("1.1.
|
|
486740
|
+
const hasUpdate = latest && !gte("1.1.13+5e0e0cd-dirty", latest) && !shouldSkipVersion(latest);
|
|
486723
486741
|
setUpdateAvailable(!!hasUpdate);
|
|
486724
486742
|
if (hasUpdate) {
|
|
486725
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.
|
|
486743
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.1.13+5e0e0cd-dirty"} -> ${latest}`);
|
|
486726
486744
|
}
|
|
486727
486745
|
};
|
|
486728
486746
|
$2[0] = t1;
|
|
@@ -486756,7 +486774,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
486756
486774
|
wrap: "truncate",
|
|
486757
486775
|
children: [
|
|
486758
486776
|
"currentVersion: ",
|
|
486759
|
-
"1.1.
|
|
486777
|
+
"1.1.13+5e0e0cd-dirty"
|
|
486760
486778
|
]
|
|
486761
486779
|
}, undefined, true, undefined, this);
|
|
486762
486780
|
$2[3] = verbose;
|
|
@@ -494924,7 +494942,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
494924
494942
|
project_dir: getOriginalCwd(),
|
|
494925
494943
|
added_dirs: addedDirs
|
|
494926
494944
|
},
|
|
494927
|
-
version: "1.1.
|
|
494945
|
+
version: "1.1.13+5e0e0cd-dirty",
|
|
494928
494946
|
output_style: {
|
|
494929
494947
|
name: outputStyleName
|
|
494930
494948
|
},
|
|
@@ -506408,7 +506426,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
|
|
|
506408
506426
|
} catch {}
|
|
506409
506427
|
const data = {
|
|
506410
506428
|
trigger,
|
|
506411
|
-
version: "1.1.
|
|
506429
|
+
version: "1.1.13+5e0e0cd-dirty",
|
|
506412
506430
|
platform: process.platform,
|
|
506413
506431
|
transcript,
|
|
506414
506432
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -517825,7 +517843,7 @@ function WelcomeV2() {
|
|
|
517825
517843
|
dimColor: true,
|
|
517826
517844
|
children: [
|
|
517827
517845
|
"v",
|
|
517828
|
-
"1.1.
|
|
517846
|
+
"1.1.13+5e0e0cd-dirty",
|
|
517829
517847
|
" "
|
|
517830
517848
|
]
|
|
517831
517849
|
}, undefined, true, undefined, this)
|
|
@@ -518025,7 +518043,7 @@ function WelcomeV2() {
|
|
|
518025
518043
|
dimColor: true,
|
|
518026
518044
|
children: [
|
|
518027
518045
|
"v",
|
|
518028
|
-
"1.1.
|
|
518046
|
+
"1.1.13+5e0e0cd-dirty",
|
|
518029
518047
|
" "
|
|
518030
518048
|
]
|
|
518031
518049
|
}, undefined, true, undefined, this)
|
|
@@ -518251,7 +518269,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
518251
518269
|
dimColor: true,
|
|
518252
518270
|
children: [
|
|
518253
518271
|
"v",
|
|
518254
|
-
"1.1.
|
|
518272
|
+
"1.1.13+5e0e0cd-dirty",
|
|
518255
518273
|
" "
|
|
518256
518274
|
]
|
|
518257
518275
|
}, undefined, true, undefined, this);
|
|
@@ -518505,7 +518523,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
518505
518523
|
dimColor: true,
|
|
518506
518524
|
children: [
|
|
518507
518525
|
"v",
|
|
518508
|
-
"1.1.
|
|
518526
|
+
"1.1.13+5e0e0cd-dirty",
|
|
518509
518527
|
" "
|
|
518510
518528
|
]
|
|
518511
518529
|
}, undefined, true, undefined, this);
|
|
@@ -521569,7 +521587,7 @@ function appendToLog(path25, message) {
|
|
|
521569
521587
|
cwd: getFsImplementation().cwd(),
|
|
521570
521588
|
userType: process.env.USER_TYPE,
|
|
521571
521589
|
sessionId: getSessionId(),
|
|
521572
|
-
version: "1.1.
|
|
521590
|
+
version: "1.1.13+5e0e0cd-dirty"
|
|
521573
521591
|
};
|
|
521574
521592
|
getLogWriter(path25).write(messageWithTimestamp);
|
|
521575
521593
|
}
|
|
@@ -525554,8 +525572,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
525554
525572
|
}
|
|
525555
525573
|
async function checkEnvLessBridgeMinVersion() {
|
|
525556
525574
|
const cfg = await getEnvLessBridgeConfig();
|
|
525557
|
-
if (cfg.min_version && lt("1.1.
|
|
525558
|
-
return `Your version of Vivus (${"1.1.
|
|
525575
|
+
if (cfg.min_version && lt("1.1.13+5e0e0cd-dirty", cfg.min_version)) {
|
|
525576
|
+
return `Your version of Vivus (${"1.1.13+5e0e0cd-dirty"}) is too old for Remote Control.
|
|
525559
525577
|
Version ${cfg.min_version} or higher is required. Run \`vivus update\` to update.`;
|
|
525560
525578
|
}
|
|
525561
525579
|
return null;
|
|
@@ -526029,7 +526047,7 @@ async function initBridgeCore(params) {
|
|
|
526029
526047
|
const rawApi = createBridgeApiClient({
|
|
526030
526048
|
baseUrl,
|
|
526031
526049
|
getAccessToken,
|
|
526032
|
-
runnerVersion: "1.1.
|
|
526050
|
+
runnerVersion: "1.1.13+5e0e0cd-dirty",
|
|
526033
526051
|
onDebug: logForDebugging,
|
|
526034
526052
|
onAuth401,
|
|
526035
526053
|
getTrustedDeviceToken
|
|
@@ -531693,7 +531711,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
|
|
|
531693
531711
|
setCwd(cwd3);
|
|
531694
531712
|
const server = new Server({
|
|
531695
531713
|
name: "vivus/tengu",
|
|
531696
|
-
version: "1.1.
|
|
531714
|
+
version: "1.1.13+5e0e0cd-dirty"
|
|
531697
531715
|
}, {
|
|
531698
531716
|
capabilities: {
|
|
531699
531717
|
tools: {}
|
|
@@ -533304,7 +533322,7 @@ __export(exports_update, {
|
|
|
533304
533322
|
});
|
|
533305
533323
|
async function update() {
|
|
533306
533324
|
logEvent("tengu_update_check", {});
|
|
533307
|
-
writeToStdout(`Current version: ${"1.1.
|
|
533325
|
+
writeToStdout(`Current version: ${"1.1.13+5e0e0cd-dirty"}
|
|
533308
533326
|
`);
|
|
533309
533327
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
533310
533328
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -533379,8 +533397,8 @@ async function update() {
|
|
|
533379
533397
|
writeToStdout(`Vivus is managed by Homebrew.
|
|
533380
533398
|
`);
|
|
533381
533399
|
const latest = await getLatestVersion(channel);
|
|
533382
|
-
if (latest && !gte("1.1.
|
|
533383
|
-
writeToStdout(`Update available: ${"1.1.
|
|
533400
|
+
if (latest && !gte("1.1.13+5e0e0cd-dirty", latest)) {
|
|
533401
|
+
writeToStdout(`Update available: ${"1.1.13+5e0e0cd-dirty"} → ${latest}
|
|
533384
533402
|
`);
|
|
533385
533403
|
writeToStdout(`
|
|
533386
533404
|
`);
|
|
@@ -533396,8 +533414,8 @@ async function update() {
|
|
|
533396
533414
|
writeToStdout(`Vivus is managed by winget.
|
|
533397
533415
|
`);
|
|
533398
533416
|
const latest = await getLatestVersion(channel);
|
|
533399
|
-
if (latest && !gte("1.1.
|
|
533400
|
-
writeToStdout(`Update available: ${"1.1.
|
|
533417
|
+
if (latest && !gte("1.1.13+5e0e0cd-dirty", latest)) {
|
|
533418
|
+
writeToStdout(`Update available: ${"1.1.13+5e0e0cd-dirty"} → ${latest}
|
|
533401
533419
|
`);
|
|
533402
533420
|
writeToStdout(`
|
|
533403
533421
|
`);
|
|
@@ -533413,8 +533431,8 @@ async function update() {
|
|
|
533413
533431
|
writeToStdout(`Vivus is managed by apk.
|
|
533414
533432
|
`);
|
|
533415
533433
|
const latest = await getLatestVersion(channel);
|
|
533416
|
-
if (latest && !gte("1.1.
|
|
533417
|
-
writeToStdout(`Update available: ${"1.1.
|
|
533434
|
+
if (latest && !gte("1.1.13+5e0e0cd-dirty", latest)) {
|
|
533435
|
+
writeToStdout(`Update available: ${"1.1.13+5e0e0cd-dirty"} → ${latest}
|
|
533418
533436
|
`);
|
|
533419
533437
|
writeToStdout(`
|
|
533420
533438
|
`);
|
|
@@ -533479,11 +533497,11 @@ async function update() {
|
|
|
533479
533497
|
`);
|
|
533480
533498
|
await gracefulShutdown(1);
|
|
533481
533499
|
}
|
|
533482
|
-
if (result.latestVersion === "1.1.
|
|
533483
|
-
writeToStdout(source_default.green(`Vivus is up to date (${"1.1.
|
|
533500
|
+
if (result.latestVersion === "1.1.13+5e0e0cd-dirty") {
|
|
533501
|
+
writeToStdout(source_default.green(`Vivus is up to date (${"1.1.13+5e0e0cd-dirty"})`) + `
|
|
533484
533502
|
`);
|
|
533485
533503
|
} else {
|
|
533486
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.1.
|
|
533504
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.1.13+5e0e0cd-dirty"} to version ${result.latestVersion}`) + `
|
|
533487
533505
|
`);
|
|
533488
533506
|
await regenerateCompletionCache();
|
|
533489
533507
|
}
|
|
@@ -533540,12 +533558,12 @@ async function update() {
|
|
|
533540
533558
|
`);
|
|
533541
533559
|
await gracefulShutdown(1);
|
|
533542
533560
|
}
|
|
533543
|
-
if (latestVersion === "1.1.
|
|
533544
|
-
writeToStdout(source_default.green(`Vivus is up to date (${"1.1.
|
|
533561
|
+
if (latestVersion === "1.1.13+5e0e0cd-dirty") {
|
|
533562
|
+
writeToStdout(source_default.green(`Vivus is up to date (${"1.1.13+5e0e0cd-dirty"})`) + `
|
|
533545
533563
|
`);
|
|
533546
533564
|
await gracefulShutdown(0);
|
|
533547
533565
|
}
|
|
533548
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.
|
|
533566
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"1.1.13+5e0e0cd-dirty"})
|
|
533549
533567
|
`);
|
|
533550
533568
|
writeToStdout(`Installing update...
|
|
533551
533569
|
`);
|
|
@@ -533590,7 +533608,7 @@ async function update() {
|
|
|
533590
533608
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
533591
533609
|
switch (status2) {
|
|
533592
533610
|
case "success":
|
|
533593
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.1.
|
|
533611
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.1.13+5e0e0cd-dirty"} to version ${latestVersion}`) + `
|
|
533594
533612
|
`);
|
|
533595
533613
|
await regenerateCompletionCache();
|
|
533596
533614
|
break;
|
|
@@ -534561,7 +534579,7 @@ function completeOnboarding() {
|
|
|
534561
534579
|
saveGlobalConfig((current) => ({
|
|
534562
534580
|
...current,
|
|
534563
534581
|
hasCompletedOnboarding: true,
|
|
534564
|
-
lastOnboardingVersion: "1.1.
|
|
534582
|
+
lastOnboardingVersion: "1.1.13+5e0e0cd-dirty"
|
|
534565
534583
|
}));
|
|
534566
534584
|
}
|
|
534567
534585
|
function showDialog(root2, renderer) {
|
|
@@ -537124,17 +537142,17 @@ init_providers();
|
|
|
537124
537142
|
function isProxyModelOptionsEligible() {
|
|
537125
537143
|
if (isEnvTruthy(process.env.VIVUS_CODE_DISABLE_PROXY_CAPABILITIES))
|
|
537126
537144
|
return false;
|
|
537127
|
-
|
|
537128
|
-
|
|
537129
|
-
|
|
537130
|
-
|
|
537131
|
-
|
|
537132
|
-
|
|
537133
|
-
|
|
537134
|
-
return
|
|
537135
|
-
|
|
537136
|
-
return
|
|
537137
|
-
|
|
537145
|
+
return isUsingProxyBaseUrl();
|
|
537146
|
+
}
|
|
537147
|
+
function formatContextWindow(n3) {
|
|
537148
|
+
const t = typeof n3 === "number" ? n3 : Number(n3);
|
|
537149
|
+
if (!t || t <= 0)
|
|
537150
|
+
return "";
|
|
537151
|
+
if (t >= 1e6)
|
|
537152
|
+
return `${(t / 1048576).toFixed(t % 1048576 ? 1 : 0)}M`;
|
|
537153
|
+
if (t >= 1000)
|
|
537154
|
+
return `${Math.round(t / 1024)}K`;
|
|
537155
|
+
return String(t);
|
|
537138
537156
|
}
|
|
537139
537157
|
function humanizeModelId(id) {
|
|
537140
537158
|
try {
|
|
@@ -537173,7 +537191,11 @@ async function refreshProxyModelOptions() {
|
|
|
537173
537191
|
continue;
|
|
537174
537192
|
seen.add(id);
|
|
537175
537193
|
const label = typeof entry.label === "string" && entry.label ? entry.label : humanizeModelId(id);
|
|
537176
|
-
const
|
|
537194
|
+
const baseDesc = typeof entry.description === "string" && entry.description !== "Custom model" ? entry.description : "";
|
|
537195
|
+
const ctx = formatContextWindow(entry.max_input_tokens);
|
|
537196
|
+
const sizeNum = typeof entry.size_gb === "string" || typeof entry.size_gb === "number" ? Number(entry.size_gb) : NaN;
|
|
537197
|
+
const size = Number.isFinite(sizeNum) && sizeNum > 0 ? `${entry.size_gb}GB` : "";
|
|
537198
|
+
const description = [baseDesc, ctx ? `${ctx} context` : "", size].filter(Boolean).join(" · ") || "Custom model";
|
|
537177
537199
|
options2.push({ value: id, label, description });
|
|
537178
537200
|
}
|
|
537179
537201
|
if (options2.length === 0)
|
|
@@ -538731,7 +538753,7 @@ ${customInstructions}` : customInstructions;
|
|
|
538731
538753
|
}
|
|
538732
538754
|
}
|
|
538733
538755
|
logForDiagnosticsNoPII("info", "started", {
|
|
538734
|
-
version: "1.1.
|
|
538756
|
+
version: "1.1.13+5e0e0cd-dirty",
|
|
538735
538757
|
is_native_binary: isInBundledMode()
|
|
538736
538758
|
});
|
|
538737
538759
|
registerCleanup(async () => {
|
|
@@ -539515,7 +539537,7 @@ Usage: vivus --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
539515
539537
|
pendingHookMessages
|
|
539516
539538
|
}, renderAndRun);
|
|
539517
539539
|
}
|
|
539518
|
-
}).version("1.1.
|
|
539540
|
+
}).version("1.1.13+5e0e0cd-dirty (Vivus)", "-v, --version", "Output the version number");
|
|
539519
539541
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
539520
539542
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
539521
539543
|
if (canUserConfigureAdvisor()) {
|