@duheso/zerocli 0.9.6 → 0.9.8
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/cli.mjs +320 -164
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -119192,7 +119192,7 @@ function buildProviderInfoLines() {
|
|
|
119192
119192
|
const sLen = ` ● ${sL} ${sReady}`.length;
|
|
119193
119193
|
out.push(boxRow(sRow, W2, sLen));
|
|
119194
119194
|
out.push(`${rgb(...BORDER)}╚${"═".repeat(W2 - 2)}╝${RESET}`);
|
|
119195
|
-
out.push(` ${DIM}${rgb(...DIMCOL)}zero ${RESET}${rgb(...ACCENT)}v${"0.9.
|
|
119195
|
+
out.push(` ${DIM}${rgb(...DIMCOL)}zero ${RESET}${rgb(...ACCENT)}v${"0.9.8"}${RESET}`);
|
|
119196
119196
|
return out;
|
|
119197
119197
|
}
|
|
119198
119198
|
function printStartupScreen() {}
|
|
@@ -147383,7 +147383,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
147383
147383
|
if (!isAttributionHeaderEnabled()) {
|
|
147384
147384
|
return "";
|
|
147385
147385
|
}
|
|
147386
|
-
const version2 = `${"0.9.
|
|
147386
|
+
const version2 = `${"0.9.8"}.${fingerprint}`;
|
|
147387
147387
|
const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
|
|
147388
147388
|
const cch = "";
|
|
147389
147389
|
const workload = getWorkload();
|
|
@@ -190393,7 +190393,7 @@ var init_imageValidation = __esm(() => {
|
|
|
190393
190393
|
|
|
190394
190394
|
// src/utils/userAgent.ts
|
|
190395
190395
|
function getZeroCodeUserAgent() {
|
|
190396
|
-
return `claude-code/${"0.9.
|
|
190396
|
+
return `claude-code/${"0.9.8"}`;
|
|
190397
190397
|
}
|
|
190398
190398
|
|
|
190399
190399
|
// src/utils/http.ts
|
|
@@ -190402,7 +190402,7 @@ function getUserAgent() {
|
|
|
190402
190402
|
const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
|
|
190403
190403
|
const workload = getWorkload();
|
|
190404
190404
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
190405
|
-
return `claude-cli/${"0.9.
|
|
190405
|
+
return `claude-cli/${"0.9.8"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
190406
190406
|
}
|
|
190407
190407
|
function getMCPUserAgent() {
|
|
190408
190408
|
const parts = [];
|
|
@@ -190416,7 +190416,7 @@ function getMCPUserAgent() {
|
|
|
190416
190416
|
parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
|
|
190417
190417
|
}
|
|
190418
190418
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
190419
|
-
return `claude-code/${"0.9.
|
|
190419
|
+
return `claude-code/${"0.9.8"}${suffix}`;
|
|
190420
190420
|
}
|
|
190421
190421
|
function getWebFetchUserAgent() {
|
|
190422
190422
|
const supportUrl = getAPIProvider() === "firstParty" ? "https://support.anthropic.com/" : "https://github.com/Duheso/ZeroCLI";
|
|
@@ -192892,8 +192892,9 @@ async function* openaiStreamToAnthropic(response, model, signal) {
|
|
|
192892
192892
|
return;
|
|
192893
192893
|
const decoder = new TextDecoder;
|
|
192894
192894
|
let buffer = "";
|
|
192895
|
-
const STREAM_IDLE_TIMEOUT_MS =
|
|
192895
|
+
const STREAM_IDLE_TIMEOUT_MS = parseInt(process.env.OPENAI_STREAM_IDLE_TIMEOUT_MS ?? "300000", 10) || 300000;
|
|
192896
192896
|
let lastDataTime = Date.now();
|
|
192897
|
+
let lastStallWarningTime = 0;
|
|
192897
192898
|
async function readWithTimeout() {
|
|
192898
192899
|
return new Promise((resolve19, reject) => {
|
|
192899
192900
|
const timeoutId = setTimeout(() => {
|
|
@@ -192904,23 +192905,33 @@ async function* openaiStreamToAnthropic(response, model, signal) {
|
|
|
192904
192905
|
` + `[ZERO-DEBUG] ENCERRAMENTO DETECTADO: STREAM IDLE TIMEOUT
|
|
192905
192906
|
` + `========================================================================
|
|
192906
192907
|
` + `CAUSA: O stream SSE ficou ${elapsed}s sem receber dados do modelo (vLLM/OpenAI).
|
|
192907
|
-
` + `LIMITE ATUAL: ${STREAM_IDLE_TIMEOUT_MS / 1000}s (
|
|
192908
|
+
` + `LIMITE ATUAL: ${STREAM_IDLE_TIMEOUT_MS / 1000}s (configuravel via OPENAI_STREAM_IDLE_TIMEOUT_MS).
|
|
192908
192909
|
` + `EFEITO: Zero encerrou o processamento porque assumiu que a conexao caiu.
|
|
192909
|
-
` + `CORRECAO: Aumentar
|
|
192910
|
-
` + ` ou tornar configuravel via env var OPENAI_STREAM_IDLE_TIMEOUT_MS.
|
|
192910
|
+
` + `CORRECAO: Aumentar o timeout via env var OPENAI_STREAM_IDLE_TIMEOUT_MS (em ms).
|
|
192911
192911
|
` + ` Modelos locais (vLLM) podem demorar mais que 120s entre chunks.
|
|
192912
192912
|
` + `========================================================================`, { level: "error" });
|
|
192913
192913
|
reject(new Error(msg));
|
|
192914
192914
|
}, STREAM_IDLE_TIMEOUT_MS);
|
|
192915
|
+
const STALL_WARNING_INTERVAL_MS = 30000;
|
|
192916
|
+
const stallWarningId = setInterval(() => {
|
|
192917
|
+
const idleSeconds = Math.round((Date.now() - lastDataTime) / 1000);
|
|
192918
|
+
const now2 = Date.now();
|
|
192919
|
+
if (idleSeconds >= 30 && now2 - lastStallWarningTime >= STALL_WARNING_INTERVAL_MS) {
|
|
192920
|
+
lastStallWarningTime = now2;
|
|
192921
|
+
logForDebugging(`[ZERO-DEBUG] STALL WARNING: Stream sem dados há ${idleSeconds}s. ` + `Timeout em ${Math.round((STREAM_IDLE_TIMEOUT_MS - (now2 - lastDataTime)) / 1000)}s. ` + `Modelo ainda pode estar processando (vLLM/local models são lentos).`, { level: "warn" });
|
|
192922
|
+
}
|
|
192923
|
+
}, STALL_WARNING_INTERVAL_MS);
|
|
192915
192924
|
let abortCleanup;
|
|
192916
192925
|
if (signal) {
|
|
192917
192926
|
abortCleanup = () => {
|
|
192918
192927
|
clearTimeout(timeoutId);
|
|
192928
|
+
clearInterval(stallWarningId);
|
|
192919
192929
|
};
|
|
192920
192930
|
signal.addEventListener("abort", abortCleanup, { once: true });
|
|
192921
192931
|
}
|
|
192922
192932
|
reader.read().then((result) => {
|
|
192923
192933
|
clearTimeout(timeoutId);
|
|
192934
|
+
clearInterval(stallWarningId);
|
|
192924
192935
|
if (signal && abortCleanup)
|
|
192925
192936
|
signal.removeEventListener("abort", abortCleanup);
|
|
192926
192937
|
if (result.value)
|
|
@@ -192928,6 +192939,7 @@ async function* openaiStreamToAnthropic(response, model, signal) {
|
|
|
192928
192939
|
resolve19(result);
|
|
192929
192940
|
}, (err2) => {
|
|
192930
192941
|
clearTimeout(timeoutId);
|
|
192942
|
+
clearInterval(stallWarningId);
|
|
192931
192943
|
if (signal && abortCleanup)
|
|
192932
192944
|
signal.removeEventListener("abort", abortCleanup);
|
|
192933
192945
|
reject(err2);
|
|
@@ -244890,7 +244902,7 @@ function getTelemetryAttributes() {
|
|
|
244890
244902
|
attributes["session.id"] = sessionId;
|
|
244891
244903
|
}
|
|
244892
244904
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
244893
|
-
attributes["app.version"] = "0.9.
|
|
244905
|
+
attributes["app.version"] = "0.9.8";
|
|
244894
244906
|
}
|
|
244895
244907
|
const oauthAccount = getOauthAccountInfo();
|
|
244896
244908
|
if (oauthAccount) {
|
|
@@ -257129,7 +257141,7 @@ function computeFingerprint(messageText, version2) {
|
|
|
257129
257141
|
}
|
|
257130
257142
|
function computeFingerprintFromMessages(messages) {
|
|
257131
257143
|
const firstMessageText = extractFirstMessageText(messages);
|
|
257132
|
-
return computeFingerprint(firstMessageText, "0.9.
|
|
257144
|
+
return computeFingerprint(firstMessageText, "0.9.8");
|
|
257133
257145
|
}
|
|
257134
257146
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
257135
257147
|
var init_fingerprint = () => {};
|
|
@@ -257171,7 +257183,7 @@ async function sideQuery(opts) {
|
|
|
257171
257183
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
257172
257184
|
}
|
|
257173
257185
|
const messageText = extractFirstUserMessageText(messages);
|
|
257174
|
-
const fingerprint = computeFingerprint(messageText, "0.9.
|
|
257186
|
+
const fingerprint = computeFingerprint(messageText, "0.9.8");
|
|
257175
257187
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
257176
257188
|
const systemBlocks = [
|
|
257177
257189
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -266073,7 +266085,7 @@ var init_user = __esm(() => {
|
|
|
266073
266085
|
deviceId,
|
|
266074
266086
|
sessionId: getSessionId(),
|
|
266075
266087
|
email: getEmail(),
|
|
266076
|
-
appVersion: "0.9.
|
|
266088
|
+
appVersion: "0.9.8",
|
|
266077
266089
|
platform: getHostPlatformForAnalytics(),
|
|
266078
266090
|
organizationUuid,
|
|
266079
266091
|
accountUuid,
|
|
@@ -266467,7 +266479,7 @@ async function initializeBetaTracing(resource) {
|
|
|
266467
266479
|
});
|
|
266468
266480
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
266469
266481
|
setLoggerProvider(loggerProvider);
|
|
266470
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.
|
|
266482
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.8");
|
|
266471
266483
|
setEventLogger(eventLogger);
|
|
266472
266484
|
process.on("beforeExit", async () => {
|
|
266473
266485
|
await loggerProvider?.forceFlush();
|
|
@@ -266507,7 +266519,7 @@ async function initializeTelemetry() {
|
|
|
266507
266519
|
const platform3 = getPlatform();
|
|
266508
266520
|
const baseAttributes = {
|
|
266509
266521
|
[ATTR_SERVICE_NAME3]: "claude-code",
|
|
266510
|
-
[ATTR_SERVICE_VERSION3]: "0.9.
|
|
266522
|
+
[ATTR_SERVICE_VERSION3]: "0.9.8"
|
|
266511
266523
|
};
|
|
266512
266524
|
if (platform3 === "wsl") {
|
|
266513
266525
|
const wslVersion = getWslVersion();
|
|
@@ -266552,7 +266564,7 @@ async function initializeTelemetry() {
|
|
|
266552
266564
|
} catch {}
|
|
266553
266565
|
};
|
|
266554
266566
|
registerCleanup(shutdownTelemetry2);
|
|
266555
|
-
return meterProvider2.getMeter("com.anthropic.claude_code", "0.9.
|
|
266567
|
+
return meterProvider2.getMeter("com.anthropic.claude_code", "0.9.8");
|
|
266556
266568
|
}
|
|
266557
266569
|
const meterProvider = new MeterProvider3({
|
|
266558
266570
|
resource,
|
|
@@ -266572,7 +266584,7 @@ async function initializeTelemetry() {
|
|
|
266572
266584
|
});
|
|
266573
266585
|
logs.setGlobalLoggerProvider(loggerProvider);
|
|
266574
266586
|
setLoggerProvider(loggerProvider);
|
|
266575
|
-
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.
|
|
266587
|
+
const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.8");
|
|
266576
266588
|
setEventLogger(eventLogger);
|
|
266577
266589
|
logForDebugging("[3P telemetry] Event logger set successfully");
|
|
266578
266590
|
process.on("beforeExit", async () => {
|
|
@@ -266634,7 +266646,7 @@ Current timeout: ${timeoutMs}ms
|
|
|
266634
266646
|
}
|
|
266635
266647
|
};
|
|
266636
266648
|
registerCleanup(shutdownTelemetry);
|
|
266637
|
-
return meterProvider.getMeter("com.anthropic.claude_code", "0.9.
|
|
266649
|
+
return meterProvider.getMeter("com.anthropic.claude_code", "0.9.8");
|
|
266638
266650
|
}
|
|
266639
266651
|
async function flushTelemetry() {
|
|
266640
266652
|
const meterProvider = getMeterProvider();
|
|
@@ -267446,9 +267458,9 @@ async function assertMinVersion() {
|
|
|
267446
267458
|
}
|
|
267447
267459
|
try {
|
|
267448
267460
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
267449
|
-
if (versionConfig.minVersion && lt("0.9.
|
|
267461
|
+
if (versionConfig.minVersion && lt("0.9.8", versionConfig.minVersion)) {
|
|
267450
267462
|
console.error(`
|
|
267451
|
-
It looks like your version of ZeroCLI (${"0.9.
|
|
267463
|
+
It looks like your version of ZeroCLI (${"0.9.8"}) needs an update.
|
|
267452
267464
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
267453
267465
|
|
|
267454
267466
|
To update, please run:
|
|
@@ -267664,7 +267676,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
267664
267676
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
267665
267677
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
267666
267678
|
pid: process.pid,
|
|
267667
|
-
currentVersion: "0.9.
|
|
267679
|
+
currentVersion: "0.9.8"
|
|
267668
267680
|
});
|
|
267669
267681
|
return "in_progress";
|
|
267670
267682
|
}
|
|
@@ -267673,7 +267685,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
267673
267685
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
267674
267686
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
267675
267687
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
267676
|
-
currentVersion: "0.9.
|
|
267688
|
+
currentVersion: "0.9.8"
|
|
267677
267689
|
});
|
|
267678
267690
|
console.error(`
|
|
267679
267691
|
Error: Windows NPM detected in WSL
|
|
@@ -268227,7 +268239,7 @@ async function getDoctorDiagnostic() {
|
|
|
268227
268239
|
const installationType = await getCurrentInstallationType();
|
|
268228
268240
|
let version2;
|
|
268229
268241
|
try {
|
|
268230
|
-
version2 = "0.9.
|
|
268242
|
+
version2 = "0.9.8";
|
|
268231
268243
|
} catch {
|
|
268232
268244
|
version2 = "unknown";
|
|
268233
268245
|
}
|
|
@@ -269721,7 +269733,7 @@ function getInstallationEnv() {
|
|
|
269721
269733
|
return;
|
|
269722
269734
|
}
|
|
269723
269735
|
function getZeroCodeVersion() {
|
|
269724
|
-
return "0.9.
|
|
269736
|
+
return "0.9.8";
|
|
269725
269737
|
}
|
|
269726
269738
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
269727
269739
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -271088,8 +271100,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
271088
271100
|
const maxVersion = await getMaxVersion();
|
|
271089
271101
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
271090
271102
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
271091
|
-
if (gte("0.9.
|
|
271092
|
-
logForDebugging(`Native installer: current version ${"0.9.
|
|
271103
|
+
if (gte("0.9.8", maxVersion)) {
|
|
271104
|
+
logForDebugging(`Native installer: current version ${"0.9.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
271093
271105
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
271094
271106
|
latency_ms: Date.now() - startTime2,
|
|
271095
271107
|
max_version: maxVersion,
|
|
@@ -271100,7 +271112,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
271100
271112
|
version2 = maxVersion;
|
|
271101
271113
|
}
|
|
271102
271114
|
}
|
|
271103
|
-
if (!forceReinstall && version2 === "0.9.
|
|
271115
|
+
if (!forceReinstall && version2 === "0.9.8" && await versionIsAvailable(version2) && await isPossibleZeroBinary(executablePath)) {
|
|
271104
271116
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
271105
271117
|
logEvent("tengu_native_update_complete", {
|
|
271106
271118
|
latency_ms: Date.now() - startTime2,
|
|
@@ -372694,8 +372706,77 @@ function getSchemaValidationToolUseResult(tool, input, fallbackMessage) {
|
|
|
372694
372706
|
const override = getSchemaValidationErrorOverride(tool, input);
|
|
372695
372707
|
return `InputValidationError: ${override ?? fallbackMessage ?? ""}`;
|
|
372696
372708
|
}
|
|
372709
|
+
function tryRepairToolInput(tool, input) {
|
|
372710
|
+
const shape = tool.inputSchema.shape;
|
|
372711
|
+
if (!shape)
|
|
372712
|
+
return input;
|
|
372713
|
+
const expectedKeys = new Set(Object.keys(shape));
|
|
372714
|
+
const inputKeys = Object.keys(input);
|
|
372715
|
+
const unrecognizedKeys = inputKeys.filter((k) => !expectedKeys.has(k));
|
|
372716
|
+
if (unrecognizedKeys.length === 0)
|
|
372717
|
+
return input;
|
|
372718
|
+
const missingKeys = [...expectedKeys].filter((k) => !(k in input) || input[k] === undefined);
|
|
372719
|
+
if (missingKeys.length === 0)
|
|
372720
|
+
return input;
|
|
372721
|
+
const repaired = { ...input };
|
|
372722
|
+
let anyRepaired = false;
|
|
372723
|
+
for (const badKey of unrecognizedKeys) {
|
|
372724
|
+
let bestMatch = null;
|
|
372725
|
+
let bestScore = Infinity;
|
|
372726
|
+
for (const expectedKey of missingKeys) {
|
|
372727
|
+
if (badKey === `${expectedKey}_${expectedKey}` || badKey === `${expectedKey}_${expectedKey.split("_").pop()}` || badKey.startsWith(expectedKey + "_") && badKey.replace(expectedKey + "_", "") === expectedKey.split("_").pop()) {
|
|
372728
|
+
bestMatch = expectedKey;
|
|
372729
|
+
bestScore = 0;
|
|
372730
|
+
break;
|
|
372731
|
+
}
|
|
372732
|
+
if (badKey.startsWith(expectedKey) && badKey.length > expectedKey.length) {
|
|
372733
|
+
const suffix = badKey.slice(expectedKey.length + 1);
|
|
372734
|
+
if (expectedKey.endsWith(suffix) || expectedKey.includes(suffix)) {
|
|
372735
|
+
bestMatch = expectedKey;
|
|
372736
|
+
bestScore = 0;
|
|
372737
|
+
break;
|
|
372738
|
+
}
|
|
372739
|
+
}
|
|
372740
|
+
const dist = levenshteinDistance(badKey, expectedKey);
|
|
372741
|
+
if (dist <= 3 && dist < bestScore) {
|
|
372742
|
+
bestMatch = expectedKey;
|
|
372743
|
+
bestScore = dist;
|
|
372744
|
+
}
|
|
372745
|
+
if ((badKey.includes(expectedKey) || expectedKey.includes(badKey)) && bestScore > 1) {
|
|
372746
|
+
bestMatch = expectedKey;
|
|
372747
|
+
bestScore = 1;
|
|
372748
|
+
}
|
|
372749
|
+
}
|
|
372750
|
+
if (bestMatch) {
|
|
372751
|
+
repaired[bestMatch] = repaired[badKey];
|
|
372752
|
+
delete repaired[badKey];
|
|
372753
|
+
anyRepaired = true;
|
|
372754
|
+
const idx = missingKeys.indexOf(bestMatch);
|
|
372755
|
+
if (idx >= 0)
|
|
372756
|
+
missingKeys.splice(idx, 1);
|
|
372757
|
+
logForDebugging(`[ZERO-DEBUG] Tool param auto-repair: "${badKey}" → "${bestMatch}" (tool: ${tool.name})`);
|
|
372758
|
+
}
|
|
372759
|
+
}
|
|
372760
|
+
return anyRepaired ? repaired : input;
|
|
372761
|
+
}
|
|
372762
|
+
function levenshteinDistance(a2, b) {
|
|
372763
|
+
const m = a2.length;
|
|
372764
|
+
const n2 = b.length;
|
|
372765
|
+
const dp = Array.from({ length: m + 1 }, () => Array(n2 + 1).fill(0));
|
|
372766
|
+
for (let i3 = 0;i3 <= m; i3++)
|
|
372767
|
+
dp[i3][0] = i3;
|
|
372768
|
+
for (let j = 0;j <= n2; j++)
|
|
372769
|
+
dp[0][j] = j;
|
|
372770
|
+
for (let i3 = 1;i3 <= m; i3++) {
|
|
372771
|
+
for (let j = 1;j <= n2; j++) {
|
|
372772
|
+
dp[i3][j] = a2[i3 - 1] === b[j - 1] ? dp[i3 - 1][j - 1] : 1 + Math.min(dp[i3 - 1][j], dp[i3][j - 1], dp[i3 - 1][j - 1]);
|
|
372773
|
+
}
|
|
372774
|
+
}
|
|
372775
|
+
return dp[m][n2];
|
|
372776
|
+
}
|
|
372697
372777
|
async function checkPermissionsAndCallTool(tool, toolUseID, input, toolUseContext, canUseTool, assistantMessage, messageId, requestId, mcpServerType, mcpServerBaseUrl, onToolProgress) {
|
|
372698
|
-
const
|
|
372778
|
+
const repairedInput = tryRepairToolInput(tool, input);
|
|
372779
|
+
const parsedInput = tool.inputSchema.safeParse(repairedInput);
|
|
372699
372780
|
if (!parsedInput.success) {
|
|
372700
372781
|
const fallbackErrorContent = formatZodValidationError(tool.name, parsedInput.error);
|
|
372701
372782
|
let errorContent = getSchemaValidationErrorOverride(tool, input) ?? fallbackErrorContent;
|
|
@@ -375901,8 +375982,9 @@ async function* queryLoop(params, consumedCommandUuids) {
|
|
|
375901
375982
|
continue;
|
|
375902
375983
|
}
|
|
375903
375984
|
if (maxOutputTokensRecoveryCount < MAX_OUTPUT_TOKENS_RECOVERY_LIMIT) {
|
|
375985
|
+
logForDebugging(`[ZERO-DEBUG] MAX_TOKENS recovery attempt ${maxOutputTokensRecoveryCount + 1}/${MAX_OUTPUT_TOKENS_RECOVERY_LIMIT}. Enviando nudge para o modelo continuar de onde parou.`);
|
|
375904
375986
|
const recoveryMessage = createUserMessage({
|
|
375905
|
-
content: `Output token limit hit. Resume directly — no apology, no recap of what you were doing. ` + `Pick up mid-thought if that is where the cut happened. Break remaining work into smaller pieces.`,
|
|
375987
|
+
content: `Output token limit hit. Resume directly — no apology, no recap of what you were doing. ` + `Pick up mid-thought if that is where the cut happened. Break remaining work into smaller pieces. Use tool calls (one at a time) rather than generating large blocks of text or code inline.`,
|
|
375906
375988
|
isMeta: true
|
|
375907
375989
|
});
|
|
375908
375990
|
const next2 = {
|
|
@@ -376343,7 +376425,7 @@ function getAnthropicEnvMetadata() {
|
|
|
376343
376425
|
function getBuildAgeMinutes() {
|
|
376344
376426
|
if (false)
|
|
376345
376427
|
;
|
|
376346
|
-
const buildTime = new Date("2026-05-
|
|
376428
|
+
const buildTime = new Date("2026-05-18T18:56:23.679Z").getTime();
|
|
376347
376429
|
if (isNaN(buildTime))
|
|
376348
376430
|
return;
|
|
376349
376431
|
return Math.floor((Date.now() - buildTime) / 60000);
|
|
@@ -380295,6 +380377,29 @@ async function countMessagesTokensWithAPI(messages, tools) {
|
|
|
380295
380377
|
containsThinking
|
|
380296
380378
|
});
|
|
380297
380379
|
}
|
|
380380
|
+
const provider = getAPIProvider();
|
|
380381
|
+
const openAICompatProviders = new Set([
|
|
380382
|
+
"openai",
|
|
380383
|
+
"github",
|
|
380384
|
+
"codex",
|
|
380385
|
+
"nvidia-nim",
|
|
380386
|
+
"minimax",
|
|
380387
|
+
"mistral",
|
|
380388
|
+
"gemini"
|
|
380389
|
+
]);
|
|
380390
|
+
if (openAICompatProviders.has(provider)) {
|
|
380391
|
+
logForDebugging(`[ZERO-DEBUG] countTokens: provider="${provider}" não suporta countTokens API. Usando estimativa local.`);
|
|
380392
|
+
let total = 0;
|
|
380393
|
+
const bytesPerToken = getBytesPerTokenForModel(model);
|
|
380394
|
+
for (const msg of messages) {
|
|
380395
|
+
const content = typeof msg.content === "string" ? msg.content : Array.isArray(msg.content) ? msg.content.map((b) => typeof b === "string" ? b : JSON.stringify(b)).join("") : "";
|
|
380396
|
+
total += roughTokenCountEstimation(content, bytesPerToken);
|
|
380397
|
+
}
|
|
380398
|
+
if (tools.length > 0) {
|
|
380399
|
+
total += roughTokenCountEstimation(JSON.stringify(tools), bytesPerToken);
|
|
380400
|
+
}
|
|
380401
|
+
return total;
|
|
380402
|
+
}
|
|
380298
380403
|
const anthropic = await getAnthropicClient({
|
|
380299
380404
|
maxRetries: 1,
|
|
380300
380405
|
model,
|
|
@@ -380336,6 +380441,18 @@ function bytesPerTokenForFileType(fileExtension2) {
|
|
|
380336
380441
|
return 4;
|
|
380337
380442
|
}
|
|
380338
380443
|
}
|
|
380444
|
+
function getTokenizerConfig(model) {
|
|
380445
|
+
const lower = model.toLowerCase();
|
|
380446
|
+
for (const config2 of MODEL_TOKENIZER_CONFIGS) {
|
|
380447
|
+
if (lower.includes(config2.modelFamily)) {
|
|
380448
|
+
return config2;
|
|
380449
|
+
}
|
|
380450
|
+
}
|
|
380451
|
+
return { modelFamily: "unknown", bytesPerToken: 4, supportsJson: true, supportsCode: true };
|
|
380452
|
+
}
|
|
380453
|
+
function getBytesPerTokenForModel(model) {
|
|
380454
|
+
return getTokenizerConfig(model).bytesPerToken;
|
|
380455
|
+
}
|
|
380339
380456
|
function roughTokenCountEstimationForFileType(content, fileExtension2) {
|
|
380340
380457
|
return roughTokenCountEstimation(content, bytesPerTokenForFileType(fileExtension2));
|
|
380341
380458
|
}
|
|
@@ -380476,11 +380593,12 @@ async function countTokensWithBedrock({
|
|
|
380476
380593
|
return null;
|
|
380477
380594
|
}
|
|
380478
380595
|
}
|
|
380479
|
-
var TOKEN_COUNT_THINKING_BUDGET = 1024, TOKEN_COUNT_MAX_TOKENS = 2048;
|
|
380596
|
+
var TOKEN_COUNT_THINKING_BUDGET = 1024, TOKEN_COUNT_MAX_TOKENS = 2048, MODEL_TOKENIZER_CONFIGS;
|
|
380480
380597
|
var init_tokenEstimation = __esm(() => {
|
|
380481
380598
|
init_providers();
|
|
380482
380599
|
init_betas();
|
|
380483
380600
|
init_betas2();
|
|
380601
|
+
init_debug();
|
|
380484
380602
|
init_envUtils();
|
|
380485
380603
|
init_log3();
|
|
380486
380604
|
init_messages3();
|
|
@@ -380491,6 +380609,17 @@ var init_tokenEstimation = __esm(() => {
|
|
|
380491
380609
|
init_claude();
|
|
380492
380610
|
init_client6();
|
|
380493
380611
|
init_vcr();
|
|
380612
|
+
MODEL_TOKENIZER_CONFIGS = [
|
|
380613
|
+
{ modelFamily: "claude", bytesPerToken: 3.5, supportsJson: true, supportsCode: true },
|
|
380614
|
+
{ modelFamily: "gpt-4", bytesPerToken: 4, supportsJson: true, supportsCode: true },
|
|
380615
|
+
{ modelFamily: "gpt-3.5", bytesPerToken: 4, supportsJson: true, supportsCode: true },
|
|
380616
|
+
{ modelFamily: "gemini", bytesPerToken: 3.5, supportsJson: true, supportsCode: true },
|
|
380617
|
+
{ modelFamily: "llama", bytesPerToken: 3.8, supportsJson: true, supportsCode: true },
|
|
380618
|
+
{ modelFamily: "deepseek", bytesPerToken: 3.5, supportsJson: true, supportsCode: true },
|
|
380619
|
+
{ modelFamily: "minimax", bytesPerToken: 3.2, supportsJson: true, supportsCode: true },
|
|
380620
|
+
{ modelFamily: "qwen", bytesPerToken: 3.5, supportsJson: true, supportsCode: true },
|
|
380621
|
+
{ modelFamily: "mistral", bytesPerToken: 3.5, supportsJson: true, supportsCode: true }
|
|
380622
|
+
];
|
|
380494
380623
|
});
|
|
380495
380624
|
|
|
380496
380625
|
// src/utils/pdf.ts
|
|
@@ -403779,7 +403908,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
403779
403908
|
const client2 = new Client({
|
|
403780
403909
|
name: "claude-code",
|
|
403781
403910
|
title: "ZeroCLI",
|
|
403782
|
-
version: "0.9.
|
|
403911
|
+
version: "0.9.8",
|
|
403783
403912
|
description: "Anthropic's agentic coding tool",
|
|
403784
403913
|
websiteUrl: PRODUCT_URL
|
|
403785
403914
|
}, {
|
|
@@ -404131,7 +404260,7 @@ var init_client7 = __esm(() => {
|
|
|
404131
404260
|
const client2 = new Client({
|
|
404132
404261
|
name: "claude-code",
|
|
404133
404262
|
title: "ZeroCLI",
|
|
404134
|
-
version: "0.9.
|
|
404263
|
+
version: "0.9.8",
|
|
404135
404264
|
description: "Anthropic's agentic coding tool",
|
|
404136
404265
|
websiteUrl: PRODUCT_URL
|
|
404137
404266
|
}, {
|
|
@@ -414866,7 +414995,7 @@ function Feedback({
|
|
|
414866
414995
|
platform: env2.platform,
|
|
414867
414996
|
gitRepo: envInfo.isGit,
|
|
414868
414997
|
terminal: env2.terminal,
|
|
414869
|
-
version: "0.9.
|
|
414998
|
+
version: "0.9.8",
|
|
414870
414999
|
transcript: normalizeMessagesForAPI(messages),
|
|
414871
415000
|
errors: sanitizedErrors,
|
|
414872
415001
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -415059,7 +415188,7 @@ function Feedback({
|
|
|
415059
415188
|
", ",
|
|
415060
415189
|
env2.terminal,
|
|
415061
415190
|
", v",
|
|
415062
|
-
"0.9.
|
|
415191
|
+
"0.9.8"
|
|
415063
415192
|
]
|
|
415064
415193
|
})
|
|
415065
415194
|
]
|
|
@@ -415167,7 +415296,7 @@ ${sanitizedDescription}
|
|
|
415167
415296
|
` + `**Environment Info**
|
|
415168
415297
|
` + `- Platform: ${env2.platform}
|
|
415169
415298
|
` + `- Terminal: ${env2.terminal}
|
|
415170
|
-
` + `- Version: ${"0.9.
|
|
415299
|
+
` + `- Version: ${"0.9.8"}
|
|
415171
415300
|
` + feedbackIdLine + `
|
|
415172
415301
|
**Errors**
|
|
415173
415302
|
\`\`\`json
|
|
@@ -418320,7 +418449,7 @@ function buildPrimarySection() {
|
|
|
418320
418449
|
});
|
|
418321
418450
|
return [{
|
|
418322
418451
|
label: "Version",
|
|
418323
|
-
value: "0.9.
|
|
418452
|
+
value: "0.9.8"
|
|
418324
418453
|
}, {
|
|
418325
418454
|
label: "Session name",
|
|
418326
418455
|
value: nameValue
|
|
@@ -423090,7 +423219,7 @@ function Config({
|
|
|
423090
423219
|
}
|
|
423091
423220
|
})
|
|
423092
423221
|
}) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime181.jsx(ChannelDowngradeDialog, {
|
|
423093
|
-
currentVersion: "0.9.
|
|
423222
|
+
currentVersion: "0.9.8",
|
|
423094
423223
|
onChoice: (choice) => {
|
|
423095
423224
|
setShowSubmenu(null);
|
|
423096
423225
|
setTabsHidden(false);
|
|
@@ -423102,7 +423231,7 @@ function Config({
|
|
|
423102
423231
|
autoUpdatesChannel: "stable"
|
|
423103
423232
|
};
|
|
423104
423233
|
if (choice === "stay") {
|
|
423105
|
-
newSettings.minimumVersion = "0.9.
|
|
423234
|
+
newSettings.minimumVersion = "0.9.8";
|
|
423106
423235
|
}
|
|
423107
423236
|
updateSettingsForSource("userSettings", newSettings);
|
|
423108
423237
|
setSettingsData((prev_27) => ({
|
|
@@ -430043,7 +430172,7 @@ function UpdateScreen({ onDone }) {
|
|
|
430043
430172
|
setState({ type: "dev-build" });
|
|
430044
430173
|
return;
|
|
430045
430174
|
}
|
|
430046
|
-
const currentVersion = "0.9.
|
|
430175
|
+
const currentVersion = "0.9.8";
|
|
430047
430176
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
430048
430177
|
const latestVersion = await getLatestVersion(channel2);
|
|
430049
430178
|
if (!latestVersion) {
|
|
@@ -432154,7 +432283,7 @@ function HelpV2(t0) {
|
|
|
432154
432283
|
let t6;
|
|
432155
432284
|
if ($2[31] !== tabs) {
|
|
432156
432285
|
t6 = /* @__PURE__ */ jsx_runtime211.jsx(Tabs, {
|
|
432157
|
-
title: `ZeroCLI v${"0.9.
|
|
432286
|
+
title: `ZeroCLI v${"0.9.8"}`,
|
|
432158
432287
|
color: "professionalBlue",
|
|
432159
432288
|
defaultTab: "general",
|
|
432160
432289
|
children: tabs
|
|
@@ -456998,7 +457127,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
456998
457127
|
return [];
|
|
456999
457128
|
}
|
|
457000
457129
|
}
|
|
457001
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.9.
|
|
457130
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.9.8") {
|
|
457002
457131
|
if (process.env.USER_TYPE === "ant") {
|
|
457003
457132
|
const changelog = MACRO.VERSION_CHANGELOG;
|
|
457004
457133
|
if (changelog) {
|
|
@@ -486036,7 +486165,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
|
|
|
486036
486165
|
smapsRollup,
|
|
486037
486166
|
platform: process.platform,
|
|
486038
486167
|
nodeVersion: process.version,
|
|
486039
|
-
ccVersion: "0.9.
|
|
486168
|
+
ccVersion: "0.9.8"
|
|
486040
486169
|
};
|
|
486041
486170
|
}
|
|
486042
486171
|
async function performHeapDump(trigger = "manual", dumpNumber = 0) {
|
|
@@ -486623,7 +486752,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
486623
486752
|
var call60 = async () => {
|
|
486624
486753
|
return {
|
|
486625
486754
|
type: "text",
|
|
486626
|
-
value: `${"0.9.
|
|
486755
|
+
value: `${"0.9.8"} (built ${"2026-05-18T18:56:23.679Z"})`
|
|
486627
486756
|
};
|
|
486628
486757
|
}, version2, version_default;
|
|
486629
486758
|
var init_version = __esm(() => {
|
|
@@ -496780,7 +496909,7 @@ function generateHtmlReport(data, insights) {
|
|
|
496780
496909
|
function buildExportData(data, insights, facets) {
|
|
496781
496910
|
let version3;
|
|
496782
496911
|
try {
|
|
496783
|
-
version3 = "0.9.
|
|
496912
|
+
version3 = "0.9.8";
|
|
496784
496913
|
} catch {
|
|
496785
496914
|
version3 = "unknown";
|
|
496786
496915
|
}
|
|
@@ -500976,7 +501105,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
500976
501105
|
init_slowOperations();
|
|
500977
501106
|
init_uuid();
|
|
500978
501107
|
try {
|
|
500979
|
-
VERSION7 = "0.9.
|
|
501108
|
+
VERSION7 = "0.9.8";
|
|
500980
501109
|
} catch {
|
|
500981
501110
|
VERSION7 = "unknown";
|
|
500982
501111
|
}
|
|
@@ -502297,7 +502426,7 @@ var init_filesystem = __esm(() => {
|
|
|
502297
502426
|
});
|
|
502298
502427
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
502299
502428
|
const nonce = randomBytes17(16).toString("hex");
|
|
502300
|
-
return join137(getZeroTempDir(), "bundled-skills", "0.9.
|
|
502429
|
+
return join137(getZeroTempDir(), "bundled-skills", "0.9.8", nonce);
|
|
502301
502430
|
});
|
|
502302
502431
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
502303
502432
|
});
|
|
@@ -513317,7 +513446,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
513317
513446
|
slash_commands: inputs.commands.filter((c6) => c6.userInvocable !== false).map((c6) => c6.name),
|
|
513318
513447
|
apiKeySource: getAnthropicApiKeyWithSource().source,
|
|
513319
513448
|
betas: getSdkBetas(),
|
|
513320
|
-
claude_code_version: "0.9.
|
|
513449
|
+
claude_code_version: "0.9.8",
|
|
513321
513450
|
output_style: outputStyle2,
|
|
513322
513451
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
513323
513452
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -528632,7 +528761,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
528632
528761
|
function getSemverPart(version3) {
|
|
528633
528762
|
return `${import_semver12.major(version3, { loose: true })}.${import_semver12.minor(version3, { loose: true })}.${import_semver12.patch(version3, { loose: true })}`;
|
|
528634
528763
|
}
|
|
528635
|
-
function useUpdateNotification(updatedVersion, initialVersion = "0.9.
|
|
528764
|
+
function useUpdateNotification(updatedVersion, initialVersion = "0.9.8") {
|
|
528636
528765
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
|
|
528637
528766
|
if (!updatedVersion) {
|
|
528638
528767
|
return null;
|
|
@@ -528675,7 +528804,7 @@ function AutoUpdater({
|
|
|
528675
528804
|
return;
|
|
528676
528805
|
}
|
|
528677
528806
|
if (false) {}
|
|
528678
|
-
const currentVersion = "0.9.
|
|
528807
|
+
const currentVersion = "0.9.8";
|
|
528679
528808
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
528680
528809
|
let latestVersion = await getLatestVersion(channel2);
|
|
528681
528810
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -528896,12 +529025,12 @@ function NativeAutoUpdater({
|
|
|
528896
529025
|
logEvent("tengu_native_auto_updater_start", {});
|
|
528897
529026
|
try {
|
|
528898
529027
|
const maxVersion = await getMaxVersion();
|
|
528899
|
-
if (maxVersion && gt("0.9.
|
|
529028
|
+
if (maxVersion && gt("0.9.8", maxVersion)) {
|
|
528900
529029
|
const msg = await getMaxVersionMessage();
|
|
528901
529030
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
528902
529031
|
}
|
|
528903
529032
|
const result = await installLatest(channel2);
|
|
528904
|
-
const currentVersion = "0.9.
|
|
529033
|
+
const currentVersion = "0.9.8";
|
|
528905
529034
|
const latencyMs = Date.now() - startTime2;
|
|
528906
529035
|
if (result.lockFailed) {
|
|
528907
529036
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -529043,17 +529172,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
529043
529172
|
const maxVersion = await getMaxVersion();
|
|
529044
529173
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
529045
529174
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
529046
|
-
if (gte("0.9.
|
|
529047
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.9.
|
|
529175
|
+
if (gte("0.9.8", maxVersion)) {
|
|
529176
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"0.9.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
529048
529177
|
setUpdateAvailable(false);
|
|
529049
529178
|
return;
|
|
529050
529179
|
}
|
|
529051
529180
|
latest = maxVersion;
|
|
529052
529181
|
}
|
|
529053
|
-
const hasUpdate = latest && !gte("0.9.
|
|
529182
|
+
const hasUpdate = latest && !gte("0.9.8", latest) && !shouldSkipVersion(latest);
|
|
529054
529183
|
setUpdateAvailable(!!hasUpdate);
|
|
529055
529184
|
if (hasUpdate) {
|
|
529056
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.9.
|
|
529185
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.9.8"} -> ${latest}`);
|
|
529057
529186
|
}
|
|
529058
529187
|
};
|
|
529059
529188
|
$2[0] = t1;
|
|
@@ -529087,7 +529216,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
529087
529216
|
wrap: "truncate",
|
|
529088
529217
|
children: [
|
|
529089
529218
|
"currentVersion: ",
|
|
529090
|
-
"0.9.
|
|
529219
|
+
"0.9.8"
|
|
529091
529220
|
]
|
|
529092
529221
|
});
|
|
529093
529222
|
$2[3] = verbose;
|
|
@@ -529256,7 +529385,33 @@ function IdeStatusIndicator({
|
|
|
529256
529385
|
}) {
|
|
529257
529386
|
const { status: ideStatus } = useIdeConnectionStatus(mcpClients);
|
|
529258
529387
|
const shouldShowIdeSelection = ideStatus === "connected" && (ideSelection?.filePath || ideSelection?.text && ideSelection.lineCount > 0);
|
|
529259
|
-
const
|
|
529388
|
+
const [displayedTokenUsage, setDisplayedTokenUsage] = React136.useState(tokenUsage);
|
|
529389
|
+
const lastTokenUpdateRef = React136.useRef(0);
|
|
529390
|
+
const throttleTimerRef = React136.useRef(undefined);
|
|
529391
|
+
React136.useEffect(() => {
|
|
529392
|
+
if (throttleTimerRef.current)
|
|
529393
|
+
clearTimeout(throttleTimerRef.current);
|
|
529394
|
+
if (tokenUsage === undefined || displayedTokenUsage === undefined) {
|
|
529395
|
+
lastTokenUpdateRef.current = Date.now();
|
|
529396
|
+
setDisplayedTokenUsage(tokenUsage);
|
|
529397
|
+
return;
|
|
529398
|
+
}
|
|
529399
|
+
const elapsed = Date.now() - lastTokenUpdateRef.current;
|
|
529400
|
+
if (elapsed >= TOKEN_THROTTLE_MS) {
|
|
529401
|
+
lastTokenUpdateRef.current = Date.now();
|
|
529402
|
+
setDisplayedTokenUsage(tokenUsage);
|
|
529403
|
+
} else {
|
|
529404
|
+
throttleTimerRef.current = setTimeout(() => {
|
|
529405
|
+
lastTokenUpdateRef.current = Date.now();
|
|
529406
|
+
setDisplayedTokenUsage(tokenUsage);
|
|
529407
|
+
}, TOKEN_THROTTLE_MS - elapsed);
|
|
529408
|
+
}
|
|
529409
|
+
return () => {
|
|
529410
|
+
if (throttleTimerRef.current)
|
|
529411
|
+
clearTimeout(throttleTimerRef.current);
|
|
529412
|
+
};
|
|
529413
|
+
}, [tokenUsage]);
|
|
529414
|
+
const tokenSuffix = displayedTokenUsage !== undefined && mainLoopModel ? ` · ${mainLoopModel} · ${formatTokenInfo(displayedTokenUsage, mainLoopModel)}` : "";
|
|
529260
529415
|
if (!shouldShowIdeSelection || !ideSelection) {
|
|
529261
529416
|
if (!tokenSuffix)
|
|
529262
529417
|
return null;
|
|
@@ -529266,7 +529421,7 @@ function IdeStatusIndicator({
|
|
|
529266
529421
|
children: [
|
|
529267
529422
|
mainLoopModel,
|
|
529268
529423
|
" · ",
|
|
529269
|
-
|
|
529424
|
+
displayedTokenUsage !== undefined && mainLoopModel ? formatTokenInfo(displayedTokenUsage, mainLoopModel) : ""
|
|
529270
529425
|
]
|
|
529271
529426
|
}, "token-indicator");
|
|
529272
529427
|
}
|
|
@@ -529301,13 +529456,14 @@ function IdeStatusIndicator({
|
|
|
529301
529456
|
}, "selection-indicator");
|
|
529302
529457
|
}
|
|
529303
529458
|
}
|
|
529304
|
-
var jsx_runtime407;
|
|
529459
|
+
var React136, jsx_runtime407, TOKEN_THROTTLE_MS = 800;
|
|
529305
529460
|
var init_IdeStatusIndicator = __esm(() => {
|
|
529306
529461
|
init_useIdeConnectionStatus();
|
|
529307
529462
|
init_ink2();
|
|
529308
529463
|
init_i18n();
|
|
529309
529464
|
init_context();
|
|
529310
529465
|
init_format2();
|
|
529466
|
+
React136 = __toESM(require_react(), 1);
|
|
529311
529467
|
jsx_runtime407 = __toESM(require_jsx_runtime(), 1);
|
|
529312
529468
|
});
|
|
529313
529469
|
|
|
@@ -534374,10 +534530,10 @@ function CoordinatorTaskPanel() {
|
|
|
534374
534530
|
const setAppState = useSetAppState();
|
|
534375
534531
|
const visibleTasks = getVisibleAgentTasks(tasks2);
|
|
534376
534532
|
const hasTasks = Object.values(tasks2).some(isPanelAgentTask);
|
|
534377
|
-
const tasksRef =
|
|
534533
|
+
const tasksRef = React139.useRef(tasks2);
|
|
534378
534534
|
tasksRef.current = tasks2;
|
|
534379
|
-
const [, setTick] =
|
|
534380
|
-
|
|
534535
|
+
const [, setTick] = React139.useState(0);
|
|
534536
|
+
React139.useEffect(() => {
|
|
534381
534537
|
if (!hasTasks)
|
|
534382
534538
|
return;
|
|
534383
534539
|
const interval = setInterval((tasksRef_0, setAppState_0, setTick_0) => {
|
|
@@ -534391,7 +534547,7 @@ function CoordinatorTaskPanel() {
|
|
|
534391
534547
|
}, 1000, tasksRef, setAppState, setTick);
|
|
534392
534548
|
return () => clearInterval(interval);
|
|
534393
534549
|
}, [hasTasks, setAppState]);
|
|
534394
|
-
const nameByAgentId =
|
|
534550
|
+
const nameByAgentId = React139.useMemo(() => {
|
|
534395
534551
|
const inv = new Map;
|
|
534396
534552
|
for (const [n3, id] of agentNameRegistry)
|
|
534397
534553
|
inv.set(id, n3);
|
|
@@ -534435,7 +534591,7 @@ function MainLine(t0) {
|
|
|
534435
534591
|
isViewed,
|
|
534436
534592
|
onClick
|
|
534437
534593
|
} = t0;
|
|
534438
|
-
const [hover, setHover] =
|
|
534594
|
+
const [hover, setHover] = React139.useState(false);
|
|
534439
534595
|
const prefix = isSelected || hover ? figures_default.pointer + " " : " ";
|
|
534440
534596
|
const bullet2 = isViewed ? BLACK_CIRCLE : figures_default.circle;
|
|
534441
534597
|
let t1;
|
|
@@ -534497,7 +534653,7 @@ function AgentLine(t0) {
|
|
|
534497
534653
|
const {
|
|
534498
534654
|
columns
|
|
534499
534655
|
} = useTerminalSize();
|
|
534500
|
-
const [hover, setHover] =
|
|
534656
|
+
const [hover, setHover] = React139.useState(false);
|
|
534501
534657
|
const isRunning = !isTerminalStatus(task.status);
|
|
534502
534658
|
const pausedMs = task.totalPausedMs ?? 0;
|
|
534503
534659
|
const elapsedMs = Math.max(0, isRunning ? Date.now() - task.startTime - pausedMs : (task.endTime ?? task.startTime) - task.startTime - pausedMs);
|
|
@@ -534652,7 +534808,7 @@ function AgentLine(t0) {
|
|
|
534652
534808
|
}
|
|
534653
534809
|
return t11;
|
|
534654
534810
|
}
|
|
534655
|
-
var import_react_compiler_runtime306,
|
|
534811
|
+
var import_react_compiler_runtime306, React139, jsx_runtime416;
|
|
534656
534812
|
var init_CoordinatorAgentStatus = __esm(() => {
|
|
534657
534813
|
init_figures();
|
|
534658
534814
|
init_figures2();
|
|
@@ -534666,7 +534822,7 @@ var init_CoordinatorAgentStatus = __esm(() => {
|
|
|
534666
534822
|
init_framework();
|
|
534667
534823
|
init_taskStatusUtils();
|
|
534668
534824
|
import_react_compiler_runtime306 = __toESM(require_dist3(), 1);
|
|
534669
|
-
|
|
534825
|
+
React139 = __toESM(require_react(), 1);
|
|
534670
534826
|
jsx_runtime416 = __toESM(require_jsx_runtime(), 1);
|
|
534671
534827
|
});
|
|
534672
534828
|
|
|
@@ -538116,7 +538272,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
538116
538272
|
project_dir: getOriginalCwd(),
|
|
538117
538273
|
added_dirs: addedDirs
|
|
538118
538274
|
},
|
|
538119
|
-
version: "0.9.
|
|
538275
|
+
version: "0.9.8",
|
|
538120
538276
|
output_style: {
|
|
538121
538277
|
name: outputStyleName
|
|
538122
538278
|
},
|
|
@@ -538546,7 +538702,7 @@ function BackgroundTaskStatus(t0) {
|
|
|
538546
538702
|
if ($2[25] !== selectedIdx || $2[26] !== setAppState || $2[27] !== viewedIdx || $2[28] !== visiblePills) {
|
|
538547
538703
|
t13 = visiblePills.map((pill_1, i_1) => {
|
|
538548
538704
|
const needsSeparator = i_1 > 0;
|
|
538549
|
-
return /* @__PURE__ */ jsx_runtime426.jsxs(
|
|
538705
|
+
return /* @__PURE__ */ jsx_runtime426.jsxs(React142.Fragment, {
|
|
538550
538706
|
children: [
|
|
538551
538707
|
needsSeparator && /* @__PURE__ */ jsx_runtime426.jsx(ThemedText, {
|
|
538552
538708
|
children: " "
|
|
@@ -538916,7 +539072,7 @@ function getAgentThemeColor(colorName) {
|
|
|
538916
539072
|
}
|
|
538917
539073
|
return;
|
|
538918
539074
|
}
|
|
538919
|
-
var import_react_compiler_runtime313,
|
|
539075
|
+
var import_react_compiler_runtime313, React142, import_react251, jsx_runtime426;
|
|
538920
539076
|
var init_BackgroundTaskStatus = __esm(() => {
|
|
538921
539077
|
init_figures();
|
|
538922
539078
|
init_useTerminalSize();
|
|
@@ -538930,7 +539086,7 @@ var init_BackgroundTaskStatus = __esm(() => {
|
|
|
538930
539086
|
init_KeyboardShortcutHint();
|
|
538931
539087
|
init_taskStatusUtils();
|
|
538932
539088
|
import_react_compiler_runtime313 = __toESM(require_dist3(), 1);
|
|
538933
|
-
|
|
539089
|
+
React142 = __toESM(require_react(), 1);
|
|
538934
539090
|
import_react251 = __toESM(require_react(), 1);
|
|
538935
539091
|
jsx_runtime426 = __toESM(require_jsx_runtime(), 1);
|
|
538936
539092
|
});
|
|
@@ -540073,7 +540229,7 @@ function PromptInputQueuedCommandsImpl() {
|
|
|
540073
540229
|
]
|
|
540074
540230
|
});
|
|
540075
540231
|
}
|
|
540076
|
-
var
|
|
540232
|
+
var React143, import_react255, jsx_runtime433, EMPTY_SET2, MAX_VISIBLE_NOTIFICATIONS = 3, PromptInputQueuedCommands;
|
|
540077
540233
|
var init_PromptInputQueuedCommands = __esm(() => {
|
|
540078
540234
|
init_ink2();
|
|
540079
540235
|
init_AppState();
|
|
@@ -540084,11 +540240,11 @@ var init_PromptInputQueuedCommands = __esm(() => {
|
|
|
540084
540240
|
init_messages3();
|
|
540085
540241
|
init_slowOperations();
|
|
540086
540242
|
init_Message();
|
|
540087
|
-
|
|
540243
|
+
React143 = __toESM(require_react(), 1);
|
|
540088
540244
|
import_react255 = __toESM(require_react(), 1);
|
|
540089
540245
|
jsx_runtime433 = __toESM(require_jsx_runtime(), 1);
|
|
540090
540246
|
EMPTY_SET2 = new Set;
|
|
540091
|
-
PromptInputQueuedCommands =
|
|
540247
|
+
PromptInputQueuedCommands = React143.memo(PromptInputQueuedCommandsImpl);
|
|
540092
540248
|
});
|
|
540093
540249
|
|
|
540094
540250
|
// src/components/PromptInput/PromptInputStashNotice.tsx
|
|
@@ -540427,8 +540583,8 @@ function useSwarmBanner() {
|
|
|
540427
540583
|
const agent2 = useAppState((s) => s.agent);
|
|
540428
540584
|
useAppState((s) => s.viewingAgentTaskId);
|
|
540429
540585
|
const store = useAppStateStore();
|
|
540430
|
-
const [insideTmux, setInsideTmux] =
|
|
540431
|
-
|
|
540586
|
+
const [insideTmux, setInsideTmux] = React144.useState(null);
|
|
540587
|
+
React144.useEffect(() => {
|
|
540432
540588
|
isInsideTmux().then(setInsideTmux);
|
|
540433
540589
|
}, []);
|
|
540434
540590
|
const state2 = store.getState();
|
|
@@ -540495,7 +540651,7 @@ function useSwarmBanner() {
|
|
|
540495
540651
|
function toThemeColor(colorName, fallback = "cyan_FOR_SUBAGENTS_ONLY") {
|
|
540496
540652
|
return colorName && AGENT_COLORS.includes(colorName) ? AGENT_COLOR_TO_THEME_COLOR[colorName] : fallback;
|
|
540497
540653
|
}
|
|
540498
|
-
var
|
|
540654
|
+
var React144;
|
|
540499
540655
|
var init_useSwarmBanner = __esm(() => {
|
|
540500
540656
|
init_AppState();
|
|
540501
540657
|
init_selectors();
|
|
@@ -540505,7 +540661,7 @@ var init_useSwarmBanner = __esm(() => {
|
|
|
540505
540661
|
init_registry();
|
|
540506
540662
|
init_teammate();
|
|
540507
540663
|
init_teammateContext();
|
|
540508
|
-
|
|
540664
|
+
React144 = __toESM(require_react(), 1);
|
|
540509
540665
|
});
|
|
540510
540666
|
|
|
540511
540667
|
// src/components/PromptInput/PromptInput.tsx
|
|
@@ -540561,9 +540717,9 @@ function PromptInput({
|
|
|
540561
540717
|
show: false
|
|
540562
540718
|
});
|
|
540563
540719
|
const [cursorOffset, setCursorOffset] = import_react259.useState(input.length);
|
|
540564
|
-
const lastInternalInputRef =
|
|
540565
|
-
const lastPropInputRef =
|
|
540566
|
-
|
|
540720
|
+
const lastInternalInputRef = React145.useRef(input);
|
|
540721
|
+
const lastPropInputRef = React145.useRef(input);
|
|
540722
|
+
React145.useLayoutEffect(() => {
|
|
540567
540723
|
if (input === lastPropInputRef.current) {
|
|
540568
540724
|
return;
|
|
540569
540725
|
}
|
|
@@ -540574,7 +540730,7 @@ function PromptInput({
|
|
|
540574
540730
|
lastInternalInputRef.current = input;
|
|
540575
540731
|
setCursorOffset((prev) => prev === input.length ? prev : input.length);
|
|
540576
540732
|
}, [input]);
|
|
540577
|
-
const trackAndSetInput =
|
|
540733
|
+
const trackAndSetInput = React145.useCallback((value) => {
|
|
540578
540734
|
lastInternalInputRef.current = value;
|
|
540579
540735
|
onInputChange(value);
|
|
540580
540736
|
}, [onInputChange]);
|
|
@@ -542394,7 +542550,7 @@ function buildBorderText(showFastIcon, showFastIconHint, fastModeCooldown) {
|
|
|
542394
542550
|
offset: 0
|
|
542395
542551
|
};
|
|
542396
542552
|
}
|
|
542397
|
-
var
|
|
542553
|
+
var React145, import_react259, jsx_runtime435, PROMPT_FOOTER_LINES = 5, MIN_INPUT_VIEWPORT_LINES = 3, PromptInput_default;
|
|
542398
542554
|
var init_PromptInput = __esm(() => {
|
|
542399
542555
|
init_source2();
|
|
542400
542556
|
init_notifications();
|
|
@@ -542491,10 +542647,10 @@ var init_PromptInput = __esm(() => {
|
|
|
542491
542647
|
init_useShowFastIconHint();
|
|
542492
542648
|
init_useSwarmBanner();
|
|
542493
542649
|
init_utils12();
|
|
542494
|
-
|
|
542650
|
+
React145 = __toESM(require_react(), 1);
|
|
542495
542651
|
import_react259 = __toESM(require_react(), 1);
|
|
542496
542652
|
jsx_runtime435 = __toESM(require_jsx_runtime(), 1);
|
|
542497
|
-
PromptInput_default =
|
|
542653
|
+
PromptInput_default = React145.memo(PromptInput);
|
|
542498
542654
|
});
|
|
542499
542655
|
|
|
542500
542656
|
// src/utils/controlMessageCompat.ts
|
|
@@ -553774,7 +553930,7 @@ function useLspInitializationNotification() {
|
|
|
553774
553930
|
addNotification
|
|
553775
553931
|
} = useNotifications();
|
|
553776
553932
|
const setAppState = useSetAppState();
|
|
553777
|
-
const [shouldPoll, setShouldPoll] =
|
|
553933
|
+
const [shouldPoll, setShouldPoll] = React150.useState(_temp204);
|
|
553778
553934
|
let t0;
|
|
553779
553935
|
if ($2[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
553780
553936
|
t0 = new Set;
|
|
@@ -553782,7 +553938,7 @@ function useLspInitializationNotification() {
|
|
|
553782
553938
|
} else {
|
|
553783
553939
|
t0 = $2[0];
|
|
553784
553940
|
}
|
|
553785
|
-
const notifiedErrorsRef =
|
|
553941
|
+
const notifiedErrorsRef = React150.useRef(t0);
|
|
553786
553942
|
let t1;
|
|
553787
553943
|
if ($2[1] !== addNotification || $2[2] !== setAppState) {
|
|
553788
553944
|
t1 = (source, errorMessage4) => {
|
|
@@ -553893,7 +554049,7 @@ function useLspInitializationNotification() {
|
|
|
553893
554049
|
t3 = $2[8];
|
|
553894
554050
|
t4 = $2[9];
|
|
553895
554051
|
}
|
|
553896
|
-
|
|
554052
|
+
React150.useEffect(t3, t4);
|
|
553897
554053
|
}
|
|
553898
554054
|
function _temp287(e2) {
|
|
553899
554055
|
if (e2.type === "generic-error") {
|
|
@@ -553904,7 +554060,7 @@ function _temp287(e2) {
|
|
|
553904
554060
|
function _temp204() {
|
|
553905
554061
|
return isEnvTruthy("true");
|
|
553906
554062
|
}
|
|
553907
|
-
var import_react_compiler_runtime337,
|
|
554063
|
+
var import_react_compiler_runtime337, React150, jsx_runtime453, LSP_POLL_INTERVAL_MS = 5000;
|
|
553908
554064
|
var init_useLspInitializationNotification = __esm(() => {
|
|
553909
554065
|
init_dist();
|
|
553910
554066
|
init_state();
|
|
@@ -553915,7 +554071,7 @@ var init_useLspInitializationNotification = __esm(() => {
|
|
|
553915
554071
|
init_debug();
|
|
553916
554072
|
init_envUtils();
|
|
553917
554073
|
import_react_compiler_runtime337 = __toESM(require_dist3(), 1);
|
|
553918
|
-
|
|
554074
|
+
React150 = __toESM(require_react(), 1);
|
|
553919
554075
|
jsx_runtime453 = __toESM(require_jsx_runtime(), 1);
|
|
553920
554076
|
});
|
|
553921
554077
|
|
|
@@ -554128,8 +554284,8 @@ var init_lspRecommendation = __esm(() => {
|
|
|
554128
554284
|
// src/hooks/usePluginRecommendationBase.tsx
|
|
554129
554285
|
function usePluginRecommendationBase() {
|
|
554130
554286
|
const $2 = import_react_compiler_runtime338.c(6);
|
|
554131
|
-
const [recommendation, setRecommendation] =
|
|
554132
|
-
const isCheckingRef =
|
|
554287
|
+
const [recommendation, setRecommendation] = React151.useState(null);
|
|
554288
|
+
const isCheckingRef = React151.useRef(false);
|
|
554133
554289
|
let t0;
|
|
554134
554290
|
if ($2[0] !== recommendation) {
|
|
554135
554291
|
t0 = (resolve45) => {
|
|
@@ -554217,7 +554373,7 @@ async function installPluginAndNotify(pluginId, pluginName, keyPrefix, addNotifi
|
|
|
554217
554373
|
});
|
|
554218
554374
|
}
|
|
554219
554375
|
}
|
|
554220
|
-
var import_react_compiler_runtime338,
|
|
554376
|
+
var import_react_compiler_runtime338, React151, jsx_runtime454;
|
|
554221
554377
|
var init_usePluginRecommendationBase = __esm(() => {
|
|
554222
554378
|
init_figures();
|
|
554223
554379
|
init_state();
|
|
@@ -554225,7 +554381,7 @@ var init_usePluginRecommendationBase = __esm(() => {
|
|
|
554225
554381
|
init_log3();
|
|
554226
554382
|
init_marketplaceManager();
|
|
554227
554383
|
import_react_compiler_runtime338 = __toESM(require_dist3(), 1);
|
|
554228
|
-
|
|
554384
|
+
React151 = __toESM(require_react(), 1);
|
|
554229
554385
|
jsx_runtime454 = __toESM(require_jsx_runtime(), 1);
|
|
554230
554386
|
});
|
|
554231
554387
|
|
|
@@ -554244,7 +554400,7 @@ function useLspPluginRecommendation() {
|
|
|
554244
554400
|
} else {
|
|
554245
554401
|
t0 = $2[0];
|
|
554246
554402
|
}
|
|
554247
|
-
const checkedFilesRef =
|
|
554403
|
+
const checkedFilesRef = React152.useRef(t0);
|
|
554248
554404
|
const {
|
|
554249
554405
|
recommendation,
|
|
554250
554406
|
clearRecommendation,
|
|
@@ -554297,7 +554453,7 @@ function useLspPluginRecommendation() {
|
|
|
554297
554453
|
t1 = $2[3];
|
|
554298
554454
|
t2 = $2[4];
|
|
554299
554455
|
}
|
|
554300
|
-
|
|
554456
|
+
React152.useEffect(t1, t2);
|
|
554301
554457
|
let t3;
|
|
554302
554458
|
if ($2[5] !== addNotification || $2[6] !== clearRecommendation || $2[7] !== recommendation) {
|
|
554303
554459
|
t3 = (response) => {
|
|
@@ -554380,7 +554536,7 @@ function _temp288(current) {
|
|
|
554380
554536
|
function _temp205(s) {
|
|
554381
554537
|
return s.fileHistory.trackedFiles;
|
|
554382
554538
|
}
|
|
554383
|
-
var import_react_compiler_runtime339,
|
|
554539
|
+
var import_react_compiler_runtime339, React152, TIMEOUT_THRESHOLD_MS = 28000;
|
|
554384
554540
|
var init_useLspPluginRecommendation = __esm(() => {
|
|
554385
554541
|
init_state();
|
|
554386
554542
|
init_notifications();
|
|
@@ -554393,7 +554549,7 @@ var init_useLspPluginRecommendation = __esm(() => {
|
|
|
554393
554549
|
init_settings2();
|
|
554394
554550
|
init_usePluginRecommendationBase();
|
|
554395
554551
|
import_react_compiler_runtime339 = __toESM(require_dist3(), 1);
|
|
554396
|
-
|
|
554552
|
+
React152 = __toESM(require_react(), 1);
|
|
554397
554553
|
});
|
|
554398
554554
|
|
|
554399
554555
|
// src/components/LspRecommendation/LspRecommendationMenu.tsx
|
|
@@ -554403,9 +554559,9 @@ function LspRecommendationMenu({
|
|
|
554403
554559
|
fileExtension: fileExtension3,
|
|
554404
554560
|
onResponse
|
|
554405
554561
|
}) {
|
|
554406
|
-
const onResponseRef =
|
|
554562
|
+
const onResponseRef = React153.useRef(onResponse);
|
|
554407
554563
|
onResponseRef.current = onResponse;
|
|
554408
|
-
|
|
554564
|
+
React153.useEffect(() => {
|
|
554409
554565
|
const timeoutId = setTimeout((ref) => ref.current("no"), AUTO_DISMISS_MS2, onResponseRef);
|
|
554410
554566
|
return () => clearTimeout(timeoutId);
|
|
554411
554567
|
}, []);
|
|
@@ -554520,19 +554676,19 @@ function LspRecommendationMenu({
|
|
|
554520
554676
|
})
|
|
554521
554677
|
});
|
|
554522
554678
|
}
|
|
554523
|
-
var
|
|
554679
|
+
var React153, jsx_runtime455, AUTO_DISMISS_MS2 = 30000;
|
|
554524
554680
|
var init_LspRecommendationMenu = __esm(() => {
|
|
554525
554681
|
init_ink2();
|
|
554526
554682
|
init_select();
|
|
554527
554683
|
init_PermissionDialog();
|
|
554528
|
-
|
|
554684
|
+
React153 = __toESM(require_react(), 1);
|
|
554529
554685
|
jsx_runtime455 = __toESM(require_jsx_runtime(), 1);
|
|
554530
554686
|
});
|
|
554531
554687
|
|
|
554532
554688
|
// src/hooks/useZeroCodeHintRecommendation.tsx
|
|
554533
554689
|
function useZeroCodeHintRecommendation() {
|
|
554534
554690
|
const $2 = import_react_compiler_runtime340.c(11);
|
|
554535
|
-
const pendingHint2 =
|
|
554691
|
+
const pendingHint2 = React154.useSyncExternalStore(subscribeToPendingHint, getPendingHintSnapshot);
|
|
554536
554692
|
const {
|
|
554537
554693
|
addNotification
|
|
554538
554694
|
} = useNotifications();
|
|
@@ -554569,7 +554725,7 @@ function useZeroCodeHintRecommendation() {
|
|
|
554569
554725
|
t0 = $2[2];
|
|
554570
554726
|
t1 = $2[3];
|
|
554571
554727
|
}
|
|
554572
|
-
|
|
554728
|
+
React154.useEffect(t0, t1);
|
|
554573
554729
|
let t2;
|
|
554574
554730
|
if ($2[4] !== addNotification || $2[5] !== clearRecommendation || $2[6] !== recommendation) {
|
|
554575
554731
|
t2 = (response) => {
|
|
@@ -554634,7 +554790,7 @@ function useZeroCodeHintRecommendation() {
|
|
|
554634
554790
|
}
|
|
554635
554791
|
return t3;
|
|
554636
554792
|
}
|
|
554637
|
-
var import_react_compiler_runtime340,
|
|
554793
|
+
var import_react_compiler_runtime340, React154;
|
|
554638
554794
|
var init_useZeroCodeHintRecommendation = __esm(() => {
|
|
554639
554795
|
init_notifications();
|
|
554640
554796
|
init_claudeCodeHints();
|
|
@@ -554643,7 +554799,7 @@ var init_useZeroCodeHintRecommendation = __esm(() => {
|
|
|
554643
554799
|
init_pluginInstallationHelpers();
|
|
554644
554800
|
init_usePluginRecommendationBase();
|
|
554645
554801
|
import_react_compiler_runtime340 = __toESM(require_dist3(), 1);
|
|
554646
|
-
|
|
554802
|
+
React154 = __toESM(require_react(), 1);
|
|
554647
554803
|
});
|
|
554648
554804
|
|
|
554649
554805
|
// src/components/ZeroCodeHint/PluginHintMenu.tsx
|
|
@@ -554654,9 +554810,9 @@ function PluginHintMenu({
|
|
|
554654
554810
|
sourceCommand,
|
|
554655
554811
|
onResponse
|
|
554656
554812
|
}) {
|
|
554657
|
-
const onResponseRef =
|
|
554813
|
+
const onResponseRef = React155.useRef(onResponse);
|
|
554658
554814
|
onResponseRef.current = onResponse;
|
|
554659
|
-
|
|
554815
|
+
React155.useEffect(() => {
|
|
554660
554816
|
const timeoutId = setTimeout((ref) => ref.current("no"), AUTO_DISMISS_MS3, onResponseRef);
|
|
554661
554817
|
return () => clearTimeout(timeoutId);
|
|
554662
554818
|
}, []);
|
|
@@ -554762,12 +554918,12 @@ function PluginHintMenu({
|
|
|
554762
554918
|
})
|
|
554763
554919
|
});
|
|
554764
554920
|
}
|
|
554765
|
-
var
|
|
554921
|
+
var React155, jsx_runtime456, AUTO_DISMISS_MS3 = 30000;
|
|
554766
554922
|
var init_PluginHintMenu = __esm(() => {
|
|
554767
554923
|
init_ink2();
|
|
554768
554924
|
init_select();
|
|
554769
554925
|
init_PermissionDialog();
|
|
554770
|
-
|
|
554926
|
+
React155 = __toESM(require_react(), 1);
|
|
554771
554927
|
jsx_runtime456 = __toESM(require_jsx_runtime(), 1);
|
|
554772
554928
|
});
|
|
554773
554929
|
|
|
@@ -557813,8 +557969,8 @@ function TranscriptSearchBar({
|
|
|
557813
557969
|
onExit: () => onClose(query2),
|
|
557814
557970
|
onCancel
|
|
557815
557971
|
});
|
|
557816
|
-
const [indexStatus, setIndexStatus] =
|
|
557817
|
-
|
|
557972
|
+
const [indexStatus, setIndexStatus] = React160.useState("building");
|
|
557973
|
+
React160.useEffect(() => {
|
|
557818
557974
|
let alive = true;
|
|
557819
557975
|
const warm = jumpRef.current?.warmSearchIndex;
|
|
557820
557976
|
if (!warm) {
|
|
@@ -558026,7 +558182,7 @@ function REPL({
|
|
|
558026
558182
|
const mainLoopModel = useMainLoopModel();
|
|
558027
558183
|
const [localCommands, setLocalCommands] = import_react318.useState(initialCommands);
|
|
558028
558184
|
useSkillsChange(isRemoteSession ? undefined : getProjectRoot(), setLocalCommands);
|
|
558029
|
-
const proactiveActive =
|
|
558185
|
+
const proactiveActive = React160.useSyncExternalStore(proactiveModule5?.subscribeToProactiveChanges ?? PROACTIVE_NO_OP_SUBSCRIBE, proactiveModule5?.isProactiveActive ?? PROACTIVE_FALSE);
|
|
558030
558186
|
const isBriefOnly = useAppState((s) => s.isBriefOnly);
|
|
558031
558187
|
const localTools = import_react318.useMemo(() => getTools(toolPermissionContext), [toolPermissionContext, proactiveActive, isBriefOnly]);
|
|
558032
558188
|
useKickOffCheckAndDisableBypassPermissionsIfNeeded();
|
|
@@ -558151,36 +558307,36 @@ function REPL({
|
|
|
558151
558307
|
const scrollRef = import_react318.useRef(null);
|
|
558152
558308
|
const modalScrollRef = import_react318.useRef(null);
|
|
558153
558309
|
const lastUserScrollTsRef = import_react318.useRef(0);
|
|
558154
|
-
const queryGuard =
|
|
558155
|
-
const isQueryActive =
|
|
558156
|
-
const [isExternalLoading, setIsExternalLoadingRaw] =
|
|
558310
|
+
const queryGuard = React160.useRef(new QueryGuard).current;
|
|
558311
|
+
const isQueryActive = React160.useSyncExternalStore(queryGuard.subscribe, queryGuard.getSnapshot);
|
|
558312
|
+
const [isExternalLoading, setIsExternalLoadingRaw] = React160.useState(remoteSessionConfig?.hasInitialPrompt ?? false);
|
|
558157
558313
|
const isLoading = isQueryActive || isExternalLoading;
|
|
558158
|
-
const [userInputOnProcessing, setUserInputOnProcessingRaw] =
|
|
558159
|
-
const userInputBaselineRef =
|
|
558160
|
-
const userMessagePendingRef =
|
|
558161
|
-
const loadingStartTimeRef =
|
|
558162
|
-
const totalPausedMsRef =
|
|
558163
|
-
const pauseStartTimeRef =
|
|
558164
|
-
const resetTimingRefs =
|
|
558314
|
+
const [userInputOnProcessing, setUserInputOnProcessingRaw] = React160.useState(undefined);
|
|
558315
|
+
const userInputBaselineRef = React160.useRef(0);
|
|
558316
|
+
const userMessagePendingRef = React160.useRef(false);
|
|
558317
|
+
const loadingStartTimeRef = React160.useRef(0);
|
|
558318
|
+
const totalPausedMsRef = React160.useRef(0);
|
|
558319
|
+
const pauseStartTimeRef = React160.useRef(null);
|
|
558320
|
+
const resetTimingRefs = React160.useCallback(() => {
|
|
558165
558321
|
loadingStartTimeRef.current = Date.now();
|
|
558166
558322
|
totalPausedMsRef.current = 0;
|
|
558167
558323
|
pauseStartTimeRef.current = null;
|
|
558168
558324
|
}, []);
|
|
558169
|
-
const wasQueryActiveRef =
|
|
558325
|
+
const wasQueryActiveRef = React160.useRef(false);
|
|
558170
558326
|
if (isQueryActive && !wasQueryActiveRef.current) {
|
|
558171
558327
|
resetTimingRefs();
|
|
558172
558328
|
}
|
|
558173
558329
|
wasQueryActiveRef.current = isQueryActive;
|
|
558174
|
-
const setIsExternalLoading =
|
|
558330
|
+
const setIsExternalLoading = React160.useCallback((value) => {
|
|
558175
558331
|
setIsExternalLoadingRaw(value);
|
|
558176
558332
|
if (value)
|
|
558177
558333
|
resetTimingRefs();
|
|
558178
558334
|
}, [resetTimingRefs]);
|
|
558179
|
-
const swarmStartTimeRef =
|
|
558180
|
-
const swarmBudgetInfoRef =
|
|
558181
|
-
const focusedInputDialogRef =
|
|
558335
|
+
const swarmStartTimeRef = React160.useRef(null);
|
|
558336
|
+
const swarmBudgetInfoRef = React160.useRef(undefined);
|
|
558337
|
+
const focusedInputDialogRef = React160.useRef(undefined);
|
|
558182
558338
|
const PROMPT_SUPPRESSION_MS = 1500;
|
|
558183
|
-
const [isPromptInputActive, setIsPromptInputActive] =
|
|
558339
|
+
const [isPromptInputActive, setIsPromptInputActive] = React160.useState(false);
|
|
558184
558340
|
const [autoUpdaterResult, setAutoUpdaterResult] = import_react318.useState(null);
|
|
558185
558341
|
import_react318.useEffect(() => {
|
|
558186
558342
|
if (autoUpdaterResult?.notifications) {
|
|
@@ -558419,7 +558575,7 @@ function REPL({
|
|
|
558419
558575
|
const activeRemote = sshRemote.isRemoteMode ? sshRemote : directConnect.isRemoteMode ? directConnect : remoteSession;
|
|
558420
558576
|
const [pastedContents, setPastedContents] = import_react318.useState({});
|
|
558421
558577
|
const [submitCount, setSubmitCount] = import_react318.useState(0);
|
|
558422
|
-
const startupChecksStartedRef =
|
|
558578
|
+
const startupChecksStartedRef = React160.useRef(false);
|
|
558423
558579
|
const hasHadFirstSubmission = (submitCount ?? 0) > 0;
|
|
558424
558580
|
import_react318.useEffect(() => {
|
|
558425
558581
|
if (isRemoteSession)
|
|
@@ -558488,7 +558644,7 @@ function REPL({
|
|
|
558488
558644
|
const terminalFocusRef = import_react318.useRef(isTerminalFocused);
|
|
558489
558645
|
terminalFocusRef.current = isTerminalFocused;
|
|
558490
558646
|
const [theme2] = useTheme();
|
|
558491
|
-
const tipPickedThisTurnRef =
|
|
558647
|
+
const tipPickedThisTurnRef = React160.useRef(false);
|
|
558492
558648
|
const pickNewSpinnerTip = import_react318.useCallback(() => {
|
|
558493
558649
|
if (tipPickedThisTurnRef.current)
|
|
558494
558650
|
return;
|
|
@@ -560338,8 +560494,8 @@ Note: ctrl + z now suspends ZeroCLI, ctrl + _ undoes input.
|
|
|
560338
560494
|
setPositions
|
|
560339
560495
|
} = useSearchHighlight();
|
|
560340
560496
|
const transcriptCols = useTerminalSize().columns;
|
|
560341
|
-
const prevColsRef =
|
|
560342
|
-
|
|
560497
|
+
const prevColsRef = React160.useRef(transcriptCols);
|
|
560498
|
+
React160.useEffect(() => {
|
|
560343
560499
|
if (prevColsRef.current !== transcriptCols) {
|
|
560344
560500
|
prevColsRef.current = transcriptCols;
|
|
560345
560501
|
if (searchQuery || searchOpen) {
|
|
@@ -561151,7 +561307,7 @@ Note: ctrl + z now suspends ZeroCLI, ctrl + _ undoes input.
|
|
|
561151
561307
|
}
|
|
561152
561308
|
return mainReturn;
|
|
561153
561309
|
}
|
|
561154
|
-
var import_react_compiler_runtime351,
|
|
561310
|
+
var import_react_compiler_runtime351, React160, import_react318, jsx_runtime466, useFrustrationDetection = () => ({
|
|
561155
561311
|
state: "closed",
|
|
561156
561312
|
handleTranscriptSelect: () => {}
|
|
561157
561313
|
}), useAntOrgWarningNotification = () => {}, getCoordinatorUserContext2, proactiveModule5 = null, PROACTIVE_NO_OP_SUBSCRIBE = (_cb) => () => {}, PROACTIVE_FALSE = () => false, SUGGEST_BG_PR_NOOP = (_p, _n) => false, useScheduledTasks2, EMPTY_MCP_CLIENTS2, HISTORY_STUB, RECENT_SCROLL_REPIN_WINDOW_MS = 3000, TITLE_ANIMATION_FRAMES, TITLE_STATIC_PREFIX = "⚡", TITLE_ANIMATION_INTERVAL_MS = 960;
|
|
@@ -561359,7 +561515,7 @@ var init_REPL = __esm(() => {
|
|
|
561359
561515
|
init_osc();
|
|
561360
561516
|
init_attachments2();
|
|
561361
561517
|
import_react_compiler_runtime351 = __toESM(require_dist3(), 1);
|
|
561362
|
-
|
|
561518
|
+
React160 = __toESM(require_react(), 1);
|
|
561363
561519
|
import_react318 = __toESM(require_react(), 1);
|
|
561364
561520
|
jsx_runtime466 = __toESM(require_jsx_runtime(), 1);
|
|
561365
561521
|
getCoordinatorUserContext2 = (init_coordinatorMode(), __toCommonJS(exports_coordinatorMode)).getCoordinatorUserContext;
|
|
@@ -562619,7 +562775,7 @@ function WelcomeV2() {
|
|
|
562619
562775
|
dimColor: true,
|
|
562620
562776
|
children: [
|
|
562621
562777
|
"v",
|
|
562622
|
-
"0.9.
|
|
562778
|
+
"0.9.8",
|
|
562623
562779
|
" "
|
|
562624
562780
|
]
|
|
562625
562781
|
})
|
|
@@ -562853,7 +563009,7 @@ function WelcomeV2() {
|
|
|
562853
563009
|
dimColor: true,
|
|
562854
563010
|
children: [
|
|
562855
563011
|
"v",
|
|
562856
|
-
"0.9.
|
|
563012
|
+
"0.9.8",
|
|
562857
563013
|
" "
|
|
562858
563014
|
]
|
|
562859
563015
|
})
|
|
@@ -563100,7 +563256,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
563100
563256
|
dimColor: true,
|
|
563101
563257
|
children: [
|
|
563102
563258
|
"v",
|
|
563103
|
-
"0.9.
|
|
563259
|
+
"0.9.8",
|
|
563104
563260
|
" "
|
|
563105
563261
|
]
|
|
563106
563262
|
});
|
|
@@ -563373,7 +563529,7 @@ function AppleTerminalWelcomeV2(t0) {
|
|
|
563373
563529
|
dimColor: true,
|
|
563374
563530
|
children: [
|
|
563375
563531
|
"v",
|
|
563376
|
-
"0.9.
|
|
563532
|
+
"0.9.8",
|
|
563377
563533
|
" "
|
|
563378
563534
|
]
|
|
563379
563535
|
});
|
|
@@ -564885,7 +565041,7 @@ function completeOnboarding() {
|
|
|
564885
565041
|
saveGlobalConfig((current) => ({
|
|
564886
565042
|
...current,
|
|
564887
565043
|
hasCompletedOnboarding: true,
|
|
564888
|
-
lastOnboardingVersion: "0.9.
|
|
565044
|
+
lastOnboardingVersion: "0.9.8"
|
|
564889
565045
|
}));
|
|
564890
565046
|
}
|
|
564891
565047
|
function showDialog(root2, renderer) {
|
|
@@ -569136,7 +569292,7 @@ function appendToLog(path24, message) {
|
|
|
569136
569292
|
cwd: getFsImplementation().cwd(),
|
|
569137
569293
|
userType: process.env.USER_TYPE,
|
|
569138
569294
|
sessionId: getSessionId(),
|
|
569139
|
-
version: "0.9.
|
|
569295
|
+
version: "0.9.8"
|
|
569140
569296
|
};
|
|
569141
569297
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
569142
569298
|
}
|
|
@@ -569742,7 +569898,7 @@ async function startMCPServer(cwd2, debug, verbose) {
|
|
|
569742
569898
|
setCwd(cwd2);
|
|
569743
569899
|
const server = new Server({
|
|
569744
569900
|
name: "claude/tengu",
|
|
569745
|
-
version: "0.9.
|
|
569901
|
+
version: "0.9.8"
|
|
569746
569902
|
}, {
|
|
569747
569903
|
capabilities: {
|
|
569748
569904
|
tools: {}
|
|
@@ -574381,8 +574537,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
574381
574537
|
}
|
|
574382
574538
|
async function checkEnvLessBridgeMinVersion() {
|
|
574383
574539
|
const cfg = await getEnvLessBridgeConfig();
|
|
574384
|
-
if (cfg.min_version && lt("0.9.
|
|
574385
|
-
return `Your version of ZeroCLI (${"0.9.
|
|
574540
|
+
if (cfg.min_version && lt("0.9.8", cfg.min_version)) {
|
|
574541
|
+
return `Your version of ZeroCLI (${"0.9.8"}) is too old for Remote Control.
|
|
574386
574542
|
Version ${cfg.min_version} or higher is required. Run \`zero update\` to update.`;
|
|
574387
574543
|
}
|
|
574388
574544
|
return null;
|
|
@@ -574857,7 +575013,7 @@ async function initBridgeCore(params) {
|
|
|
574857
575013
|
const rawApi = createBridgeApiClient({
|
|
574858
575014
|
baseUrl,
|
|
574859
575015
|
getAccessToken,
|
|
574860
|
-
runnerVersion: "0.9.
|
|
575016
|
+
runnerVersion: "0.9.8",
|
|
574861
575017
|
onDebug: logForDebugging,
|
|
574862
575018
|
onAuth401,
|
|
574863
575019
|
getTrustedDeviceToken
|
|
@@ -581145,7 +581301,7 @@ __export(exports_update2, {
|
|
|
581145
581301
|
});
|
|
581146
581302
|
async function update2() {
|
|
581147
581303
|
logEvent("tengu_update_check", {});
|
|
581148
|
-
writeToStdout(`Current version: ${"0.9.
|
|
581304
|
+
writeToStdout(`Current version: ${"0.9.8"}
|
|
581149
581305
|
`);
|
|
581150
581306
|
const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
581151
581307
|
writeToStdout(`Checking for updates to ${channel2} version...
|
|
@@ -581220,8 +581376,8 @@ async function update2() {
|
|
|
581220
581376
|
writeToStdout(`Zero is managed by Homebrew.
|
|
581221
581377
|
`);
|
|
581222
581378
|
const latest = await getLatestVersion(channel2);
|
|
581223
|
-
if (latest && !gte("0.9.
|
|
581224
|
-
writeToStdout(`Update available: ${"0.9.
|
|
581379
|
+
if (latest && !gte("0.9.8", latest)) {
|
|
581380
|
+
writeToStdout(`Update available: ${"0.9.8"} → ${latest}
|
|
581225
581381
|
`);
|
|
581226
581382
|
writeToStdout(`
|
|
581227
581383
|
`);
|
|
@@ -581237,8 +581393,8 @@ async function update2() {
|
|
|
581237
581393
|
writeToStdout(`Zero is managed by winget.
|
|
581238
581394
|
`);
|
|
581239
581395
|
const latest = await getLatestVersion(channel2);
|
|
581240
|
-
if (latest && !gte("0.9.
|
|
581241
|
-
writeToStdout(`Update available: ${"0.9.
|
|
581396
|
+
if (latest && !gte("0.9.8", latest)) {
|
|
581397
|
+
writeToStdout(`Update available: ${"0.9.8"} → ${latest}
|
|
581242
581398
|
`);
|
|
581243
581399
|
writeToStdout(`
|
|
581244
581400
|
`);
|
|
@@ -581254,8 +581410,8 @@ async function update2() {
|
|
|
581254
581410
|
writeToStdout(`Zero is managed by apk.
|
|
581255
581411
|
`);
|
|
581256
581412
|
const latest = await getLatestVersion(channel2);
|
|
581257
|
-
if (latest && !gte("0.9.
|
|
581258
|
-
writeToStdout(`Update available: ${"0.9.
|
|
581413
|
+
if (latest && !gte("0.9.8", latest)) {
|
|
581414
|
+
writeToStdout(`Update available: ${"0.9.8"} → ${latest}
|
|
581259
581415
|
`);
|
|
581260
581416
|
writeToStdout(`
|
|
581261
581417
|
`);
|
|
@@ -581320,11 +581476,11 @@ async function update2() {
|
|
|
581320
581476
|
`);
|
|
581321
581477
|
await gracefulShutdown(1);
|
|
581322
581478
|
}
|
|
581323
|
-
if (result.latestVersion === "0.9.
|
|
581324
|
-
writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.
|
|
581479
|
+
if (result.latestVersion === "0.9.8") {
|
|
581480
|
+
writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.8"})`) + `
|
|
581325
581481
|
`);
|
|
581326
581482
|
} else {
|
|
581327
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.9.
|
|
581483
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.9.8"} to version ${result.latestVersion}`) + `
|
|
581328
581484
|
`);
|
|
581329
581485
|
await regenerateCompletionCache();
|
|
581330
581486
|
}
|
|
@@ -581384,12 +581540,12 @@ async function update2() {
|
|
|
581384
581540
|
`);
|
|
581385
581541
|
await gracefulShutdown(1);
|
|
581386
581542
|
}
|
|
581387
|
-
if (latestVersion === "0.9.
|
|
581388
|
-
writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.
|
|
581543
|
+
if (latestVersion === "0.9.8") {
|
|
581544
|
+
writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.8"})`) + `
|
|
581389
581545
|
`);
|
|
581390
581546
|
await gracefulShutdown(0);
|
|
581391
581547
|
}
|
|
581392
|
-
writeToStdout(`New version available: ${latestVersion} (current: ${"0.9.
|
|
581548
|
+
writeToStdout(`New version available: ${latestVersion} (current: ${"0.9.8"})
|
|
581393
581549
|
`);
|
|
581394
581550
|
writeToStdout(`Installing update...
|
|
581395
581551
|
`);
|
|
@@ -581434,7 +581590,7 @@ async function update2() {
|
|
|
581434
581590
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
581435
581591
|
switch (status2) {
|
|
581436
581592
|
case "success":
|
|
581437
|
-
writeToStdout(source_default.green(`Successfully updated from ${"0.9.
|
|
581593
|
+
writeToStdout(source_default.green(`Successfully updated from ${"0.9.8"} to version ${latestVersion}`) + `
|
|
581438
581594
|
`);
|
|
581439
581595
|
await regenerateCompletionCache();
|
|
581440
581596
|
break;
|
|
@@ -582735,7 +582891,7 @@ ${customInstructions}` : customInstructions;
|
|
|
582735
582891
|
}
|
|
582736
582892
|
}
|
|
582737
582893
|
logForDiagnosticsNoPII("info", "started", {
|
|
582738
|
-
version: "0.9.
|
|
582894
|
+
version: "0.9.8",
|
|
582739
582895
|
is_native_binary: isInBundledMode()
|
|
582740
582896
|
});
|
|
582741
582897
|
registerCleanup(async () => {
|
|
@@ -583618,7 +583774,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
583618
583774
|
pendingHookMessages
|
|
583619
583775
|
}, renderAndRun);
|
|
583620
583776
|
}
|
|
583621
|
-
}).version("0.9.
|
|
583777
|
+
}).version("0.9.8", "-v, --version", "Output the version number");
|
|
583622
583778
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
583623
583779
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
583624
583780
|
if (canUserConfigureAdvisor()) {
|
|
@@ -584284,7 +584440,7 @@ if (false) {}
|
|
|
584284
584440
|
async function main2() {
|
|
584285
584441
|
const args = process.argv.slice(2);
|
|
584286
584442
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
584287
|
-
console.log(`${"0.9.
|
|
584443
|
+
console.log(`${"0.9.8"} (ZeroCLI)`);
|
|
584288
584444
|
return;
|
|
584289
584445
|
}
|
|
584290
584446
|
if (args.includes("--provider")) {
|
|
@@ -584426,4 +584582,4 @@ async function main2() {
|
|
|
584426
584582
|
}
|
|
584427
584583
|
main2();
|
|
584428
584584
|
|
|
584429
|
-
//# debugId=
|
|
584585
|
+
//# debugId=72DEA435624F630C64756E2164756E21
|