@duheso/zerocli 0.9.7 → 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.
Files changed (2) hide show
  1. package/dist/cli.mjs +184 -157
  2. 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.7"}${RESET}`);
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.7"}.${fingerprint}`;
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.7"}`;
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.7"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
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.7"}${suffix}`;
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";
@@ -244902,7 +244902,7 @@ function getTelemetryAttributes() {
244902
244902
  attributes["session.id"] = sessionId;
244903
244903
  }
244904
244904
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
244905
- attributes["app.version"] = "0.9.7";
244905
+ attributes["app.version"] = "0.9.8";
244906
244906
  }
244907
244907
  const oauthAccount = getOauthAccountInfo();
244908
244908
  if (oauthAccount) {
@@ -257141,7 +257141,7 @@ function computeFingerprint(messageText, version2) {
257141
257141
  }
257142
257142
  function computeFingerprintFromMessages(messages) {
257143
257143
  const firstMessageText = extractFirstMessageText(messages);
257144
- return computeFingerprint(firstMessageText, "0.9.7");
257144
+ return computeFingerprint(firstMessageText, "0.9.8");
257145
257145
  }
257146
257146
  var FINGERPRINT_SALT = "59cf53e54c78";
257147
257147
  var init_fingerprint = () => {};
@@ -257183,7 +257183,7 @@ async function sideQuery(opts) {
257183
257183
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
257184
257184
  }
257185
257185
  const messageText = extractFirstUserMessageText(messages);
257186
- const fingerprint = computeFingerprint(messageText, "0.9.7");
257186
+ const fingerprint = computeFingerprint(messageText, "0.9.8");
257187
257187
  const attributionHeader = getAttributionHeader(fingerprint);
257188
257188
  const systemBlocks = [
257189
257189
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -266085,7 +266085,7 @@ var init_user = __esm(() => {
266085
266085
  deviceId,
266086
266086
  sessionId: getSessionId(),
266087
266087
  email: getEmail(),
266088
- appVersion: "0.9.7",
266088
+ appVersion: "0.9.8",
266089
266089
  platform: getHostPlatformForAnalytics(),
266090
266090
  organizationUuid,
266091
266091
  accountUuid,
@@ -266479,7 +266479,7 @@ async function initializeBetaTracing(resource) {
266479
266479
  });
266480
266480
  logs.setGlobalLoggerProvider(loggerProvider);
266481
266481
  setLoggerProvider(loggerProvider);
266482
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.7");
266482
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.8");
266483
266483
  setEventLogger(eventLogger);
266484
266484
  process.on("beforeExit", async () => {
266485
266485
  await loggerProvider?.forceFlush();
@@ -266519,7 +266519,7 @@ async function initializeTelemetry() {
266519
266519
  const platform3 = getPlatform();
266520
266520
  const baseAttributes = {
266521
266521
  [ATTR_SERVICE_NAME3]: "claude-code",
266522
- [ATTR_SERVICE_VERSION3]: "0.9.7"
266522
+ [ATTR_SERVICE_VERSION3]: "0.9.8"
266523
266523
  };
266524
266524
  if (platform3 === "wsl") {
266525
266525
  const wslVersion = getWslVersion();
@@ -266564,7 +266564,7 @@ async function initializeTelemetry() {
266564
266564
  } catch {}
266565
266565
  };
266566
266566
  registerCleanup(shutdownTelemetry2);
266567
- return meterProvider2.getMeter("com.anthropic.claude_code", "0.9.7");
266567
+ return meterProvider2.getMeter("com.anthropic.claude_code", "0.9.8");
266568
266568
  }
266569
266569
  const meterProvider = new MeterProvider3({
266570
266570
  resource,
@@ -266584,7 +266584,7 @@ async function initializeTelemetry() {
266584
266584
  });
266585
266585
  logs.setGlobalLoggerProvider(loggerProvider);
266586
266586
  setLoggerProvider(loggerProvider);
266587
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.7");
266587
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.8");
266588
266588
  setEventLogger(eventLogger);
266589
266589
  logForDebugging("[3P telemetry] Event logger set successfully");
266590
266590
  process.on("beforeExit", async () => {
@@ -266646,7 +266646,7 @@ Current timeout: ${timeoutMs}ms
266646
266646
  }
266647
266647
  };
266648
266648
  registerCleanup(shutdownTelemetry);
266649
- return meterProvider.getMeter("com.anthropic.claude_code", "0.9.7");
266649
+ return meterProvider.getMeter("com.anthropic.claude_code", "0.9.8");
266650
266650
  }
266651
266651
  async function flushTelemetry() {
266652
266652
  const meterProvider = getMeterProvider();
@@ -267458,9 +267458,9 @@ async function assertMinVersion() {
267458
267458
  }
267459
267459
  try {
267460
267460
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
267461
- if (versionConfig.minVersion && lt("0.9.7", versionConfig.minVersion)) {
267461
+ if (versionConfig.minVersion && lt("0.9.8", versionConfig.minVersion)) {
267462
267462
  console.error(`
267463
- It looks like your version of ZeroCLI (${"0.9.7"}) needs an update.
267463
+ It looks like your version of ZeroCLI (${"0.9.8"}) needs an update.
267464
267464
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
267465
267465
 
267466
267466
  To update, please run:
@@ -267676,7 +267676,7 @@ async function installGlobalPackage(specificVersion) {
267676
267676
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
267677
267677
  logEvent("tengu_auto_updater_lock_contention", {
267678
267678
  pid: process.pid,
267679
- currentVersion: "0.9.7"
267679
+ currentVersion: "0.9.8"
267680
267680
  });
267681
267681
  return "in_progress";
267682
267682
  }
@@ -267685,7 +267685,7 @@ async function installGlobalPackage(specificVersion) {
267685
267685
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
267686
267686
  logError2(new Error("Windows NPM detected in WSL environment"));
267687
267687
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
267688
- currentVersion: "0.9.7"
267688
+ currentVersion: "0.9.8"
267689
267689
  });
267690
267690
  console.error(`
267691
267691
  Error: Windows NPM detected in WSL
@@ -268239,7 +268239,7 @@ async function getDoctorDiagnostic() {
268239
268239
  const installationType = await getCurrentInstallationType();
268240
268240
  let version2;
268241
268241
  try {
268242
- version2 = "0.9.7";
268242
+ version2 = "0.9.8";
268243
268243
  } catch {
268244
268244
  version2 = "unknown";
268245
268245
  }
@@ -269733,7 +269733,7 @@ function getInstallationEnv() {
269733
269733
  return;
269734
269734
  }
269735
269735
  function getZeroCodeVersion() {
269736
- return "0.9.7";
269736
+ return "0.9.8";
269737
269737
  }
269738
269738
  async function getInstalledVSCodeExtensionVersion(command) {
269739
269739
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -271100,8 +271100,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
271100
271100
  const maxVersion = await getMaxVersion();
271101
271101
  if (maxVersion && gt(version2, maxVersion)) {
271102
271102
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
271103
- if (gte("0.9.7", maxVersion)) {
271104
- logForDebugging(`Native installer: current version ${"0.9.7"} is already at or above maxVersion ${maxVersion}, skipping update`);
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`);
271105
271105
  logEvent("tengu_native_update_skipped_max_version", {
271106
271106
  latency_ms: Date.now() - startTime2,
271107
271107
  max_version: maxVersion,
@@ -271112,7 +271112,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
271112
271112
  version2 = maxVersion;
271113
271113
  }
271114
271114
  }
271115
- if (!forceReinstall && version2 === "0.9.7" && await versionIsAvailable(version2) && await isPossibleZeroBinary(executablePath)) {
271115
+ if (!forceReinstall && version2 === "0.9.8" && await versionIsAvailable(version2) && await isPossibleZeroBinary(executablePath)) {
271116
271116
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
271117
271117
  logEvent("tengu_native_update_complete", {
271118
271118
  latency_ms: Date.now() - startTime2,
@@ -376425,7 +376425,7 @@ function getAnthropicEnvMetadata() {
376425
376425
  function getBuildAgeMinutes() {
376426
376426
  if (false)
376427
376427
  ;
376428
- const buildTime = new Date("2026-05-14T00:59:01.796Z").getTime();
376428
+ const buildTime = new Date("2026-05-18T18:56:23.679Z").getTime();
376429
376429
  if (isNaN(buildTime))
376430
376430
  return;
376431
376431
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -403908,7 +403908,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
403908
403908
  const client2 = new Client({
403909
403909
  name: "claude-code",
403910
403910
  title: "ZeroCLI",
403911
- version: "0.9.7",
403911
+ version: "0.9.8",
403912
403912
  description: "Anthropic's agentic coding tool",
403913
403913
  websiteUrl: PRODUCT_URL
403914
403914
  }, {
@@ -404260,7 +404260,7 @@ var init_client7 = __esm(() => {
404260
404260
  const client2 = new Client({
404261
404261
  name: "claude-code",
404262
404262
  title: "ZeroCLI",
404263
- version: "0.9.7",
404263
+ version: "0.9.8",
404264
404264
  description: "Anthropic's agentic coding tool",
404265
404265
  websiteUrl: PRODUCT_URL
404266
404266
  }, {
@@ -414995,7 +414995,7 @@ function Feedback({
414995
414995
  platform: env2.platform,
414996
414996
  gitRepo: envInfo.isGit,
414997
414997
  terminal: env2.terminal,
414998
- version: "0.9.7",
414998
+ version: "0.9.8",
414999
414999
  transcript: normalizeMessagesForAPI(messages),
415000
415000
  errors: sanitizedErrors,
415001
415001
  lastApiRequest: getLastAPIRequest(),
@@ -415188,7 +415188,7 @@ function Feedback({
415188
415188
  ", ",
415189
415189
  env2.terminal,
415190
415190
  ", v",
415191
- "0.9.7"
415191
+ "0.9.8"
415192
415192
  ]
415193
415193
  })
415194
415194
  ]
@@ -415296,7 +415296,7 @@ ${sanitizedDescription}
415296
415296
  ` + `**Environment Info**
415297
415297
  ` + `- Platform: ${env2.platform}
415298
415298
  ` + `- Terminal: ${env2.terminal}
415299
- ` + `- Version: ${"0.9.7"}
415299
+ ` + `- Version: ${"0.9.8"}
415300
415300
  ` + feedbackIdLine + `
415301
415301
  **Errors**
415302
415302
  \`\`\`json
@@ -418449,7 +418449,7 @@ function buildPrimarySection() {
418449
418449
  });
418450
418450
  return [{
418451
418451
  label: "Version",
418452
- value: "0.9.7"
418452
+ value: "0.9.8"
418453
418453
  }, {
418454
418454
  label: "Session name",
418455
418455
  value: nameValue
@@ -423219,7 +423219,7 @@ function Config({
423219
423219
  }
423220
423220
  })
423221
423221
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime181.jsx(ChannelDowngradeDialog, {
423222
- currentVersion: "0.9.7",
423222
+ currentVersion: "0.9.8",
423223
423223
  onChoice: (choice) => {
423224
423224
  setShowSubmenu(null);
423225
423225
  setTabsHidden(false);
@@ -423231,7 +423231,7 @@ function Config({
423231
423231
  autoUpdatesChannel: "stable"
423232
423232
  };
423233
423233
  if (choice === "stay") {
423234
- newSettings.minimumVersion = "0.9.7";
423234
+ newSettings.minimumVersion = "0.9.8";
423235
423235
  }
423236
423236
  updateSettingsForSource("userSettings", newSettings);
423237
423237
  setSettingsData((prev_27) => ({
@@ -430172,7 +430172,7 @@ function UpdateScreen({ onDone }) {
430172
430172
  setState({ type: "dev-build" });
430173
430173
  return;
430174
430174
  }
430175
- const currentVersion = "0.9.7";
430175
+ const currentVersion = "0.9.8";
430176
430176
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
430177
430177
  const latestVersion = await getLatestVersion(channel2);
430178
430178
  if (!latestVersion) {
@@ -432283,7 +432283,7 @@ function HelpV2(t0) {
432283
432283
  let t6;
432284
432284
  if ($2[31] !== tabs) {
432285
432285
  t6 = /* @__PURE__ */ jsx_runtime211.jsx(Tabs, {
432286
- title: `ZeroCLI v${"0.9.7"}`,
432286
+ title: `ZeroCLI v${"0.9.8"}`,
432287
432287
  color: "professionalBlue",
432288
432288
  defaultTab: "general",
432289
432289
  children: tabs
@@ -457127,7 +457127,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
457127
457127
  return [];
457128
457128
  }
457129
457129
  }
457130
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.9.7") {
457130
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.9.8") {
457131
457131
  if (process.env.USER_TYPE === "ant") {
457132
457132
  const changelog = MACRO.VERSION_CHANGELOG;
457133
457133
  if (changelog) {
@@ -486165,7 +486165,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
486165
486165
  smapsRollup,
486166
486166
  platform: process.platform,
486167
486167
  nodeVersion: process.version,
486168
- ccVersion: "0.9.7"
486168
+ ccVersion: "0.9.8"
486169
486169
  };
486170
486170
  }
486171
486171
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -486752,7 +486752,7 @@ var init_bridge_kick = __esm(() => {
486752
486752
  var call60 = async () => {
486753
486753
  return {
486754
486754
  type: "text",
486755
- value: `${"0.9.7"} (built ${"2026-05-14T00:59:01.796Z"})`
486755
+ value: `${"0.9.8"} (built ${"2026-05-18T18:56:23.679Z"})`
486756
486756
  };
486757
486757
  }, version2, version_default;
486758
486758
  var init_version = __esm(() => {
@@ -496909,7 +496909,7 @@ function generateHtmlReport(data, insights) {
496909
496909
  function buildExportData(data, insights, facets) {
496910
496910
  let version3;
496911
496911
  try {
496912
- version3 = "0.9.7";
496912
+ version3 = "0.9.8";
496913
496913
  } catch {
496914
496914
  version3 = "unknown";
496915
496915
  }
@@ -501105,7 +501105,7 @@ var init_sessionStorage = __esm(() => {
501105
501105
  init_slowOperations();
501106
501106
  init_uuid();
501107
501107
  try {
501108
- VERSION7 = "0.9.7";
501108
+ VERSION7 = "0.9.8";
501109
501109
  } catch {
501110
501110
  VERSION7 = "unknown";
501111
501111
  }
@@ -502426,7 +502426,7 @@ var init_filesystem = __esm(() => {
502426
502426
  });
502427
502427
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
502428
502428
  const nonce = randomBytes17(16).toString("hex");
502429
- return join137(getZeroTempDir(), "bundled-skills", "0.9.7", nonce);
502429
+ return join137(getZeroTempDir(), "bundled-skills", "0.9.8", nonce);
502430
502430
  });
502431
502431
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
502432
502432
  });
@@ -513446,7 +513446,7 @@ function buildSystemInitMessage(inputs) {
513446
513446
  slash_commands: inputs.commands.filter((c6) => c6.userInvocable !== false).map((c6) => c6.name),
513447
513447
  apiKeySource: getAnthropicApiKeyWithSource().source,
513448
513448
  betas: getSdkBetas(),
513449
- claude_code_version: "0.9.7",
513449
+ claude_code_version: "0.9.8",
513450
513450
  output_style: outputStyle2,
513451
513451
  agents: inputs.agents.map((agent2) => agent2.agentType),
513452
513452
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -528761,7 +528761,7 @@ var init_useVoiceEnabled = __esm(() => {
528761
528761
  function getSemverPart(version3) {
528762
528762
  return `${import_semver12.major(version3, { loose: true })}.${import_semver12.minor(version3, { loose: true })}.${import_semver12.patch(version3, { loose: true })}`;
528763
528763
  }
528764
- function useUpdateNotification(updatedVersion, initialVersion = "0.9.7") {
528764
+ function useUpdateNotification(updatedVersion, initialVersion = "0.9.8") {
528765
528765
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
528766
528766
  if (!updatedVersion) {
528767
528767
  return null;
@@ -528804,7 +528804,7 @@ function AutoUpdater({
528804
528804
  return;
528805
528805
  }
528806
528806
  if (false) {}
528807
- const currentVersion = "0.9.7";
528807
+ const currentVersion = "0.9.8";
528808
528808
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
528809
528809
  let latestVersion = await getLatestVersion(channel2);
528810
528810
  const isDisabled = isAutoUpdaterDisabled();
@@ -529025,12 +529025,12 @@ function NativeAutoUpdater({
529025
529025
  logEvent("tengu_native_auto_updater_start", {});
529026
529026
  try {
529027
529027
  const maxVersion = await getMaxVersion();
529028
- if (maxVersion && gt("0.9.7", maxVersion)) {
529028
+ if (maxVersion && gt("0.9.8", maxVersion)) {
529029
529029
  const msg = await getMaxVersionMessage();
529030
529030
  setMaxVersionIssue(msg ?? "affects your version");
529031
529031
  }
529032
529032
  const result = await installLatest(channel2);
529033
- const currentVersion = "0.9.7";
529033
+ const currentVersion = "0.9.8";
529034
529034
  const latencyMs = Date.now() - startTime2;
529035
529035
  if (result.lockFailed) {
529036
529036
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -529172,17 +529172,17 @@ function PackageManagerAutoUpdater(t0) {
529172
529172
  const maxVersion = await getMaxVersion();
529173
529173
  if (maxVersion && latest && gt(latest, maxVersion)) {
529174
529174
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
529175
- if (gte("0.9.7", maxVersion)) {
529176
- logForDebugging(`PackageManagerAutoUpdater: current version ${"0.9.7"} is already at or above maxVersion ${maxVersion}, skipping update`);
529175
+ if (gte("0.9.8", maxVersion)) {
529176
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"0.9.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
529177
529177
  setUpdateAvailable(false);
529178
529178
  return;
529179
529179
  }
529180
529180
  latest = maxVersion;
529181
529181
  }
529182
- const hasUpdate = latest && !gte("0.9.7", latest) && !shouldSkipVersion(latest);
529182
+ const hasUpdate = latest && !gte("0.9.8", latest) && !shouldSkipVersion(latest);
529183
529183
  setUpdateAvailable(!!hasUpdate);
529184
529184
  if (hasUpdate) {
529185
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.9.7"} -> ${latest}`);
529185
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.9.8"} -> ${latest}`);
529186
529186
  }
529187
529187
  };
529188
529188
  $2[0] = t1;
@@ -529216,7 +529216,7 @@ function PackageManagerAutoUpdater(t0) {
529216
529216
  wrap: "truncate",
529217
529217
  children: [
529218
529218
  "currentVersion: ",
529219
- "0.9.7"
529219
+ "0.9.8"
529220
529220
  ]
529221
529221
  });
529222
529222
  $2[3] = verbose;
@@ -529385,7 +529385,33 @@ function IdeStatusIndicator({
529385
529385
  }) {
529386
529386
  const { status: ideStatus } = useIdeConnectionStatus(mcpClients);
529387
529387
  const shouldShowIdeSelection = ideStatus === "connected" && (ideSelection?.filePath || ideSelection?.text && ideSelection.lineCount > 0);
529388
- const tokenSuffix = tokenUsage !== undefined && mainLoopModel ? ` · ${mainLoopModel} · ${formatTokenInfo(tokenUsage, mainLoopModel)}` : "";
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)}` : "";
529389
529415
  if (!shouldShowIdeSelection || !ideSelection) {
529390
529416
  if (!tokenSuffix)
529391
529417
  return null;
@@ -529395,7 +529421,7 @@ function IdeStatusIndicator({
529395
529421
  children: [
529396
529422
  mainLoopModel,
529397
529423
  " · ",
529398
- tokenUsage !== undefined && mainLoopModel ? formatTokenInfo(tokenUsage, mainLoopModel) : ""
529424
+ displayedTokenUsage !== undefined && mainLoopModel ? formatTokenInfo(displayedTokenUsage, mainLoopModel) : ""
529399
529425
  ]
529400
529426
  }, "token-indicator");
529401
529427
  }
@@ -529430,13 +529456,14 @@ function IdeStatusIndicator({
529430
529456
  }, "selection-indicator");
529431
529457
  }
529432
529458
  }
529433
- var jsx_runtime407;
529459
+ var React136, jsx_runtime407, TOKEN_THROTTLE_MS = 800;
529434
529460
  var init_IdeStatusIndicator = __esm(() => {
529435
529461
  init_useIdeConnectionStatus();
529436
529462
  init_ink2();
529437
529463
  init_i18n();
529438
529464
  init_context();
529439
529465
  init_format2();
529466
+ React136 = __toESM(require_react(), 1);
529440
529467
  jsx_runtime407 = __toESM(require_jsx_runtime(), 1);
529441
529468
  });
529442
529469
 
@@ -534503,10 +534530,10 @@ function CoordinatorTaskPanel() {
534503
534530
  const setAppState = useSetAppState();
534504
534531
  const visibleTasks = getVisibleAgentTasks(tasks2);
534505
534532
  const hasTasks = Object.values(tasks2).some(isPanelAgentTask);
534506
- const tasksRef = React138.useRef(tasks2);
534533
+ const tasksRef = React139.useRef(tasks2);
534507
534534
  tasksRef.current = tasks2;
534508
- const [, setTick] = React138.useState(0);
534509
- React138.useEffect(() => {
534535
+ const [, setTick] = React139.useState(0);
534536
+ React139.useEffect(() => {
534510
534537
  if (!hasTasks)
534511
534538
  return;
534512
534539
  const interval = setInterval((tasksRef_0, setAppState_0, setTick_0) => {
@@ -534520,7 +534547,7 @@ function CoordinatorTaskPanel() {
534520
534547
  }, 1000, tasksRef, setAppState, setTick);
534521
534548
  return () => clearInterval(interval);
534522
534549
  }, [hasTasks, setAppState]);
534523
- const nameByAgentId = React138.useMemo(() => {
534550
+ const nameByAgentId = React139.useMemo(() => {
534524
534551
  const inv = new Map;
534525
534552
  for (const [n3, id] of agentNameRegistry)
534526
534553
  inv.set(id, n3);
@@ -534564,7 +534591,7 @@ function MainLine(t0) {
534564
534591
  isViewed,
534565
534592
  onClick
534566
534593
  } = t0;
534567
- const [hover, setHover] = React138.useState(false);
534594
+ const [hover, setHover] = React139.useState(false);
534568
534595
  const prefix = isSelected || hover ? figures_default.pointer + " " : " ";
534569
534596
  const bullet2 = isViewed ? BLACK_CIRCLE : figures_default.circle;
534570
534597
  let t1;
@@ -534626,7 +534653,7 @@ function AgentLine(t0) {
534626
534653
  const {
534627
534654
  columns
534628
534655
  } = useTerminalSize();
534629
- const [hover, setHover] = React138.useState(false);
534656
+ const [hover, setHover] = React139.useState(false);
534630
534657
  const isRunning = !isTerminalStatus(task.status);
534631
534658
  const pausedMs = task.totalPausedMs ?? 0;
534632
534659
  const elapsedMs = Math.max(0, isRunning ? Date.now() - task.startTime - pausedMs : (task.endTime ?? task.startTime) - task.startTime - pausedMs);
@@ -534781,7 +534808,7 @@ function AgentLine(t0) {
534781
534808
  }
534782
534809
  return t11;
534783
534810
  }
534784
- var import_react_compiler_runtime306, React138, jsx_runtime416;
534811
+ var import_react_compiler_runtime306, React139, jsx_runtime416;
534785
534812
  var init_CoordinatorAgentStatus = __esm(() => {
534786
534813
  init_figures();
534787
534814
  init_figures2();
@@ -534795,7 +534822,7 @@ var init_CoordinatorAgentStatus = __esm(() => {
534795
534822
  init_framework();
534796
534823
  init_taskStatusUtils();
534797
534824
  import_react_compiler_runtime306 = __toESM(require_dist3(), 1);
534798
- React138 = __toESM(require_react(), 1);
534825
+ React139 = __toESM(require_react(), 1);
534799
534826
  jsx_runtime416 = __toESM(require_jsx_runtime(), 1);
534800
534827
  });
534801
534828
 
@@ -538245,7 +538272,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
538245
538272
  project_dir: getOriginalCwd(),
538246
538273
  added_dirs: addedDirs
538247
538274
  },
538248
- version: "0.9.7",
538275
+ version: "0.9.8",
538249
538276
  output_style: {
538250
538277
  name: outputStyleName
538251
538278
  },
@@ -538675,7 +538702,7 @@ function BackgroundTaskStatus(t0) {
538675
538702
  if ($2[25] !== selectedIdx || $2[26] !== setAppState || $2[27] !== viewedIdx || $2[28] !== visiblePills) {
538676
538703
  t13 = visiblePills.map((pill_1, i_1) => {
538677
538704
  const needsSeparator = i_1 > 0;
538678
- return /* @__PURE__ */ jsx_runtime426.jsxs(React141.Fragment, {
538705
+ return /* @__PURE__ */ jsx_runtime426.jsxs(React142.Fragment, {
538679
538706
  children: [
538680
538707
  needsSeparator && /* @__PURE__ */ jsx_runtime426.jsx(ThemedText, {
538681
538708
  children: " "
@@ -539045,7 +539072,7 @@ function getAgentThemeColor(colorName) {
539045
539072
  }
539046
539073
  return;
539047
539074
  }
539048
- var import_react_compiler_runtime313, React141, import_react251, jsx_runtime426;
539075
+ var import_react_compiler_runtime313, React142, import_react251, jsx_runtime426;
539049
539076
  var init_BackgroundTaskStatus = __esm(() => {
539050
539077
  init_figures();
539051
539078
  init_useTerminalSize();
@@ -539059,7 +539086,7 @@ var init_BackgroundTaskStatus = __esm(() => {
539059
539086
  init_KeyboardShortcutHint();
539060
539087
  init_taskStatusUtils();
539061
539088
  import_react_compiler_runtime313 = __toESM(require_dist3(), 1);
539062
- React141 = __toESM(require_react(), 1);
539089
+ React142 = __toESM(require_react(), 1);
539063
539090
  import_react251 = __toESM(require_react(), 1);
539064
539091
  jsx_runtime426 = __toESM(require_jsx_runtime(), 1);
539065
539092
  });
@@ -540202,7 +540229,7 @@ function PromptInputQueuedCommandsImpl() {
540202
540229
  ]
540203
540230
  });
540204
540231
  }
540205
- var React142, import_react255, jsx_runtime433, EMPTY_SET2, MAX_VISIBLE_NOTIFICATIONS = 3, PromptInputQueuedCommands;
540232
+ var React143, import_react255, jsx_runtime433, EMPTY_SET2, MAX_VISIBLE_NOTIFICATIONS = 3, PromptInputQueuedCommands;
540206
540233
  var init_PromptInputQueuedCommands = __esm(() => {
540207
540234
  init_ink2();
540208
540235
  init_AppState();
@@ -540213,11 +540240,11 @@ var init_PromptInputQueuedCommands = __esm(() => {
540213
540240
  init_messages3();
540214
540241
  init_slowOperations();
540215
540242
  init_Message();
540216
- React142 = __toESM(require_react(), 1);
540243
+ React143 = __toESM(require_react(), 1);
540217
540244
  import_react255 = __toESM(require_react(), 1);
540218
540245
  jsx_runtime433 = __toESM(require_jsx_runtime(), 1);
540219
540246
  EMPTY_SET2 = new Set;
540220
- PromptInputQueuedCommands = React142.memo(PromptInputQueuedCommandsImpl);
540247
+ PromptInputQueuedCommands = React143.memo(PromptInputQueuedCommandsImpl);
540221
540248
  });
540222
540249
 
540223
540250
  // src/components/PromptInput/PromptInputStashNotice.tsx
@@ -540556,8 +540583,8 @@ function useSwarmBanner() {
540556
540583
  const agent2 = useAppState((s) => s.agent);
540557
540584
  useAppState((s) => s.viewingAgentTaskId);
540558
540585
  const store = useAppStateStore();
540559
- const [insideTmux, setInsideTmux] = React143.useState(null);
540560
- React143.useEffect(() => {
540586
+ const [insideTmux, setInsideTmux] = React144.useState(null);
540587
+ React144.useEffect(() => {
540561
540588
  isInsideTmux().then(setInsideTmux);
540562
540589
  }, []);
540563
540590
  const state2 = store.getState();
@@ -540624,7 +540651,7 @@ function useSwarmBanner() {
540624
540651
  function toThemeColor(colorName, fallback = "cyan_FOR_SUBAGENTS_ONLY") {
540625
540652
  return colorName && AGENT_COLORS.includes(colorName) ? AGENT_COLOR_TO_THEME_COLOR[colorName] : fallback;
540626
540653
  }
540627
- var React143;
540654
+ var React144;
540628
540655
  var init_useSwarmBanner = __esm(() => {
540629
540656
  init_AppState();
540630
540657
  init_selectors();
@@ -540634,7 +540661,7 @@ var init_useSwarmBanner = __esm(() => {
540634
540661
  init_registry();
540635
540662
  init_teammate();
540636
540663
  init_teammateContext();
540637
- React143 = __toESM(require_react(), 1);
540664
+ React144 = __toESM(require_react(), 1);
540638
540665
  });
540639
540666
 
540640
540667
  // src/components/PromptInput/PromptInput.tsx
@@ -540690,9 +540717,9 @@ function PromptInput({
540690
540717
  show: false
540691
540718
  });
540692
540719
  const [cursorOffset, setCursorOffset] = import_react259.useState(input.length);
540693
- const lastInternalInputRef = React144.useRef(input);
540694
- const lastPropInputRef = React144.useRef(input);
540695
- React144.useLayoutEffect(() => {
540720
+ const lastInternalInputRef = React145.useRef(input);
540721
+ const lastPropInputRef = React145.useRef(input);
540722
+ React145.useLayoutEffect(() => {
540696
540723
  if (input === lastPropInputRef.current) {
540697
540724
  return;
540698
540725
  }
@@ -540703,7 +540730,7 @@ function PromptInput({
540703
540730
  lastInternalInputRef.current = input;
540704
540731
  setCursorOffset((prev) => prev === input.length ? prev : input.length);
540705
540732
  }, [input]);
540706
- const trackAndSetInput = React144.useCallback((value) => {
540733
+ const trackAndSetInput = React145.useCallback((value) => {
540707
540734
  lastInternalInputRef.current = value;
540708
540735
  onInputChange(value);
540709
540736
  }, [onInputChange]);
@@ -542523,7 +542550,7 @@ function buildBorderText(showFastIcon, showFastIconHint, fastModeCooldown) {
542523
542550
  offset: 0
542524
542551
  };
542525
542552
  }
542526
- var React144, import_react259, jsx_runtime435, PROMPT_FOOTER_LINES = 5, MIN_INPUT_VIEWPORT_LINES = 3, PromptInput_default;
542553
+ var React145, import_react259, jsx_runtime435, PROMPT_FOOTER_LINES = 5, MIN_INPUT_VIEWPORT_LINES = 3, PromptInput_default;
542527
542554
  var init_PromptInput = __esm(() => {
542528
542555
  init_source2();
542529
542556
  init_notifications();
@@ -542620,10 +542647,10 @@ var init_PromptInput = __esm(() => {
542620
542647
  init_useShowFastIconHint();
542621
542648
  init_useSwarmBanner();
542622
542649
  init_utils12();
542623
- React144 = __toESM(require_react(), 1);
542650
+ React145 = __toESM(require_react(), 1);
542624
542651
  import_react259 = __toESM(require_react(), 1);
542625
542652
  jsx_runtime435 = __toESM(require_jsx_runtime(), 1);
542626
- PromptInput_default = React144.memo(PromptInput);
542653
+ PromptInput_default = React145.memo(PromptInput);
542627
542654
  });
542628
542655
 
542629
542656
  // src/utils/controlMessageCompat.ts
@@ -553903,7 +553930,7 @@ function useLspInitializationNotification() {
553903
553930
  addNotification
553904
553931
  } = useNotifications();
553905
553932
  const setAppState = useSetAppState();
553906
- const [shouldPoll, setShouldPoll] = React149.useState(_temp204);
553933
+ const [shouldPoll, setShouldPoll] = React150.useState(_temp204);
553907
553934
  let t0;
553908
553935
  if ($2[0] === Symbol.for("react.memo_cache_sentinel")) {
553909
553936
  t0 = new Set;
@@ -553911,7 +553938,7 @@ function useLspInitializationNotification() {
553911
553938
  } else {
553912
553939
  t0 = $2[0];
553913
553940
  }
553914
- const notifiedErrorsRef = React149.useRef(t0);
553941
+ const notifiedErrorsRef = React150.useRef(t0);
553915
553942
  let t1;
553916
553943
  if ($2[1] !== addNotification || $2[2] !== setAppState) {
553917
553944
  t1 = (source, errorMessage4) => {
@@ -554022,7 +554049,7 @@ function useLspInitializationNotification() {
554022
554049
  t3 = $2[8];
554023
554050
  t4 = $2[9];
554024
554051
  }
554025
- React149.useEffect(t3, t4);
554052
+ React150.useEffect(t3, t4);
554026
554053
  }
554027
554054
  function _temp287(e2) {
554028
554055
  if (e2.type === "generic-error") {
@@ -554033,7 +554060,7 @@ function _temp287(e2) {
554033
554060
  function _temp204() {
554034
554061
  return isEnvTruthy("true");
554035
554062
  }
554036
- var import_react_compiler_runtime337, React149, jsx_runtime453, LSP_POLL_INTERVAL_MS = 5000;
554063
+ var import_react_compiler_runtime337, React150, jsx_runtime453, LSP_POLL_INTERVAL_MS = 5000;
554037
554064
  var init_useLspInitializationNotification = __esm(() => {
554038
554065
  init_dist();
554039
554066
  init_state();
@@ -554044,7 +554071,7 @@ var init_useLspInitializationNotification = __esm(() => {
554044
554071
  init_debug();
554045
554072
  init_envUtils();
554046
554073
  import_react_compiler_runtime337 = __toESM(require_dist3(), 1);
554047
- React149 = __toESM(require_react(), 1);
554074
+ React150 = __toESM(require_react(), 1);
554048
554075
  jsx_runtime453 = __toESM(require_jsx_runtime(), 1);
554049
554076
  });
554050
554077
 
@@ -554257,8 +554284,8 @@ var init_lspRecommendation = __esm(() => {
554257
554284
  // src/hooks/usePluginRecommendationBase.tsx
554258
554285
  function usePluginRecommendationBase() {
554259
554286
  const $2 = import_react_compiler_runtime338.c(6);
554260
- const [recommendation, setRecommendation] = React150.useState(null);
554261
- const isCheckingRef = React150.useRef(false);
554287
+ const [recommendation, setRecommendation] = React151.useState(null);
554288
+ const isCheckingRef = React151.useRef(false);
554262
554289
  let t0;
554263
554290
  if ($2[0] !== recommendation) {
554264
554291
  t0 = (resolve45) => {
@@ -554346,7 +554373,7 @@ async function installPluginAndNotify(pluginId, pluginName, keyPrefix, addNotifi
554346
554373
  });
554347
554374
  }
554348
554375
  }
554349
- var import_react_compiler_runtime338, React150, jsx_runtime454;
554376
+ var import_react_compiler_runtime338, React151, jsx_runtime454;
554350
554377
  var init_usePluginRecommendationBase = __esm(() => {
554351
554378
  init_figures();
554352
554379
  init_state();
@@ -554354,7 +554381,7 @@ var init_usePluginRecommendationBase = __esm(() => {
554354
554381
  init_log3();
554355
554382
  init_marketplaceManager();
554356
554383
  import_react_compiler_runtime338 = __toESM(require_dist3(), 1);
554357
- React150 = __toESM(require_react(), 1);
554384
+ React151 = __toESM(require_react(), 1);
554358
554385
  jsx_runtime454 = __toESM(require_jsx_runtime(), 1);
554359
554386
  });
554360
554387
 
@@ -554373,7 +554400,7 @@ function useLspPluginRecommendation() {
554373
554400
  } else {
554374
554401
  t0 = $2[0];
554375
554402
  }
554376
- const checkedFilesRef = React151.useRef(t0);
554403
+ const checkedFilesRef = React152.useRef(t0);
554377
554404
  const {
554378
554405
  recommendation,
554379
554406
  clearRecommendation,
@@ -554426,7 +554453,7 @@ function useLspPluginRecommendation() {
554426
554453
  t1 = $2[3];
554427
554454
  t2 = $2[4];
554428
554455
  }
554429
- React151.useEffect(t1, t2);
554456
+ React152.useEffect(t1, t2);
554430
554457
  let t3;
554431
554458
  if ($2[5] !== addNotification || $2[6] !== clearRecommendation || $2[7] !== recommendation) {
554432
554459
  t3 = (response) => {
@@ -554509,7 +554536,7 @@ function _temp288(current) {
554509
554536
  function _temp205(s) {
554510
554537
  return s.fileHistory.trackedFiles;
554511
554538
  }
554512
- var import_react_compiler_runtime339, React151, TIMEOUT_THRESHOLD_MS = 28000;
554539
+ var import_react_compiler_runtime339, React152, TIMEOUT_THRESHOLD_MS = 28000;
554513
554540
  var init_useLspPluginRecommendation = __esm(() => {
554514
554541
  init_state();
554515
554542
  init_notifications();
@@ -554522,7 +554549,7 @@ var init_useLspPluginRecommendation = __esm(() => {
554522
554549
  init_settings2();
554523
554550
  init_usePluginRecommendationBase();
554524
554551
  import_react_compiler_runtime339 = __toESM(require_dist3(), 1);
554525
- React151 = __toESM(require_react(), 1);
554552
+ React152 = __toESM(require_react(), 1);
554526
554553
  });
554527
554554
 
554528
554555
  // src/components/LspRecommendation/LspRecommendationMenu.tsx
@@ -554532,9 +554559,9 @@ function LspRecommendationMenu({
554532
554559
  fileExtension: fileExtension3,
554533
554560
  onResponse
554534
554561
  }) {
554535
- const onResponseRef = React152.useRef(onResponse);
554562
+ const onResponseRef = React153.useRef(onResponse);
554536
554563
  onResponseRef.current = onResponse;
554537
- React152.useEffect(() => {
554564
+ React153.useEffect(() => {
554538
554565
  const timeoutId = setTimeout((ref) => ref.current("no"), AUTO_DISMISS_MS2, onResponseRef);
554539
554566
  return () => clearTimeout(timeoutId);
554540
554567
  }, []);
@@ -554649,19 +554676,19 @@ function LspRecommendationMenu({
554649
554676
  })
554650
554677
  });
554651
554678
  }
554652
- var React152, jsx_runtime455, AUTO_DISMISS_MS2 = 30000;
554679
+ var React153, jsx_runtime455, AUTO_DISMISS_MS2 = 30000;
554653
554680
  var init_LspRecommendationMenu = __esm(() => {
554654
554681
  init_ink2();
554655
554682
  init_select();
554656
554683
  init_PermissionDialog();
554657
- React152 = __toESM(require_react(), 1);
554684
+ React153 = __toESM(require_react(), 1);
554658
554685
  jsx_runtime455 = __toESM(require_jsx_runtime(), 1);
554659
554686
  });
554660
554687
 
554661
554688
  // src/hooks/useZeroCodeHintRecommendation.tsx
554662
554689
  function useZeroCodeHintRecommendation() {
554663
554690
  const $2 = import_react_compiler_runtime340.c(11);
554664
- const pendingHint2 = React153.useSyncExternalStore(subscribeToPendingHint, getPendingHintSnapshot);
554691
+ const pendingHint2 = React154.useSyncExternalStore(subscribeToPendingHint, getPendingHintSnapshot);
554665
554692
  const {
554666
554693
  addNotification
554667
554694
  } = useNotifications();
@@ -554698,7 +554725,7 @@ function useZeroCodeHintRecommendation() {
554698
554725
  t0 = $2[2];
554699
554726
  t1 = $2[3];
554700
554727
  }
554701
- React153.useEffect(t0, t1);
554728
+ React154.useEffect(t0, t1);
554702
554729
  let t2;
554703
554730
  if ($2[4] !== addNotification || $2[5] !== clearRecommendation || $2[6] !== recommendation) {
554704
554731
  t2 = (response) => {
@@ -554763,7 +554790,7 @@ function useZeroCodeHintRecommendation() {
554763
554790
  }
554764
554791
  return t3;
554765
554792
  }
554766
- var import_react_compiler_runtime340, React153;
554793
+ var import_react_compiler_runtime340, React154;
554767
554794
  var init_useZeroCodeHintRecommendation = __esm(() => {
554768
554795
  init_notifications();
554769
554796
  init_claudeCodeHints();
@@ -554772,7 +554799,7 @@ var init_useZeroCodeHintRecommendation = __esm(() => {
554772
554799
  init_pluginInstallationHelpers();
554773
554800
  init_usePluginRecommendationBase();
554774
554801
  import_react_compiler_runtime340 = __toESM(require_dist3(), 1);
554775
- React153 = __toESM(require_react(), 1);
554802
+ React154 = __toESM(require_react(), 1);
554776
554803
  });
554777
554804
 
554778
554805
  // src/components/ZeroCodeHint/PluginHintMenu.tsx
@@ -554783,9 +554810,9 @@ function PluginHintMenu({
554783
554810
  sourceCommand,
554784
554811
  onResponse
554785
554812
  }) {
554786
- const onResponseRef = React154.useRef(onResponse);
554813
+ const onResponseRef = React155.useRef(onResponse);
554787
554814
  onResponseRef.current = onResponse;
554788
- React154.useEffect(() => {
554815
+ React155.useEffect(() => {
554789
554816
  const timeoutId = setTimeout((ref) => ref.current("no"), AUTO_DISMISS_MS3, onResponseRef);
554790
554817
  return () => clearTimeout(timeoutId);
554791
554818
  }, []);
@@ -554891,12 +554918,12 @@ function PluginHintMenu({
554891
554918
  })
554892
554919
  });
554893
554920
  }
554894
- var React154, jsx_runtime456, AUTO_DISMISS_MS3 = 30000;
554921
+ var React155, jsx_runtime456, AUTO_DISMISS_MS3 = 30000;
554895
554922
  var init_PluginHintMenu = __esm(() => {
554896
554923
  init_ink2();
554897
554924
  init_select();
554898
554925
  init_PermissionDialog();
554899
- React154 = __toESM(require_react(), 1);
554926
+ React155 = __toESM(require_react(), 1);
554900
554927
  jsx_runtime456 = __toESM(require_jsx_runtime(), 1);
554901
554928
  });
554902
554929
 
@@ -557942,8 +557969,8 @@ function TranscriptSearchBar({
557942
557969
  onExit: () => onClose(query2),
557943
557970
  onCancel
557944
557971
  });
557945
- const [indexStatus, setIndexStatus] = React159.useState("building");
557946
- React159.useEffect(() => {
557972
+ const [indexStatus, setIndexStatus] = React160.useState("building");
557973
+ React160.useEffect(() => {
557947
557974
  let alive = true;
557948
557975
  const warm = jumpRef.current?.warmSearchIndex;
557949
557976
  if (!warm) {
@@ -558155,7 +558182,7 @@ function REPL({
558155
558182
  const mainLoopModel = useMainLoopModel();
558156
558183
  const [localCommands, setLocalCommands] = import_react318.useState(initialCommands);
558157
558184
  useSkillsChange(isRemoteSession ? undefined : getProjectRoot(), setLocalCommands);
558158
- const proactiveActive = React159.useSyncExternalStore(proactiveModule5?.subscribeToProactiveChanges ?? PROACTIVE_NO_OP_SUBSCRIBE, proactiveModule5?.isProactiveActive ?? PROACTIVE_FALSE);
558185
+ const proactiveActive = React160.useSyncExternalStore(proactiveModule5?.subscribeToProactiveChanges ?? PROACTIVE_NO_OP_SUBSCRIBE, proactiveModule5?.isProactiveActive ?? PROACTIVE_FALSE);
558159
558186
  const isBriefOnly = useAppState((s) => s.isBriefOnly);
558160
558187
  const localTools = import_react318.useMemo(() => getTools(toolPermissionContext), [toolPermissionContext, proactiveActive, isBriefOnly]);
558161
558188
  useKickOffCheckAndDisableBypassPermissionsIfNeeded();
@@ -558280,36 +558307,36 @@ function REPL({
558280
558307
  const scrollRef = import_react318.useRef(null);
558281
558308
  const modalScrollRef = import_react318.useRef(null);
558282
558309
  const lastUserScrollTsRef = import_react318.useRef(0);
558283
- const queryGuard = React159.useRef(new QueryGuard).current;
558284
- const isQueryActive = React159.useSyncExternalStore(queryGuard.subscribe, queryGuard.getSnapshot);
558285
- const [isExternalLoading, setIsExternalLoadingRaw] = React159.useState(remoteSessionConfig?.hasInitialPrompt ?? false);
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);
558286
558313
  const isLoading = isQueryActive || isExternalLoading;
558287
- const [userInputOnProcessing, setUserInputOnProcessingRaw] = React159.useState(undefined);
558288
- const userInputBaselineRef = React159.useRef(0);
558289
- const userMessagePendingRef = React159.useRef(false);
558290
- const loadingStartTimeRef = React159.useRef(0);
558291
- const totalPausedMsRef = React159.useRef(0);
558292
- const pauseStartTimeRef = React159.useRef(null);
558293
- const resetTimingRefs = React159.useCallback(() => {
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(() => {
558294
558321
  loadingStartTimeRef.current = Date.now();
558295
558322
  totalPausedMsRef.current = 0;
558296
558323
  pauseStartTimeRef.current = null;
558297
558324
  }, []);
558298
- const wasQueryActiveRef = React159.useRef(false);
558325
+ const wasQueryActiveRef = React160.useRef(false);
558299
558326
  if (isQueryActive && !wasQueryActiveRef.current) {
558300
558327
  resetTimingRefs();
558301
558328
  }
558302
558329
  wasQueryActiveRef.current = isQueryActive;
558303
- const setIsExternalLoading = React159.useCallback((value) => {
558330
+ const setIsExternalLoading = React160.useCallback((value) => {
558304
558331
  setIsExternalLoadingRaw(value);
558305
558332
  if (value)
558306
558333
  resetTimingRefs();
558307
558334
  }, [resetTimingRefs]);
558308
- const swarmStartTimeRef = React159.useRef(null);
558309
- const swarmBudgetInfoRef = React159.useRef(undefined);
558310
- const focusedInputDialogRef = React159.useRef(undefined);
558335
+ const swarmStartTimeRef = React160.useRef(null);
558336
+ const swarmBudgetInfoRef = React160.useRef(undefined);
558337
+ const focusedInputDialogRef = React160.useRef(undefined);
558311
558338
  const PROMPT_SUPPRESSION_MS = 1500;
558312
- const [isPromptInputActive, setIsPromptInputActive] = React159.useState(false);
558339
+ const [isPromptInputActive, setIsPromptInputActive] = React160.useState(false);
558313
558340
  const [autoUpdaterResult, setAutoUpdaterResult] = import_react318.useState(null);
558314
558341
  import_react318.useEffect(() => {
558315
558342
  if (autoUpdaterResult?.notifications) {
@@ -558548,7 +558575,7 @@ function REPL({
558548
558575
  const activeRemote = sshRemote.isRemoteMode ? sshRemote : directConnect.isRemoteMode ? directConnect : remoteSession;
558549
558576
  const [pastedContents, setPastedContents] = import_react318.useState({});
558550
558577
  const [submitCount, setSubmitCount] = import_react318.useState(0);
558551
- const startupChecksStartedRef = React159.useRef(false);
558578
+ const startupChecksStartedRef = React160.useRef(false);
558552
558579
  const hasHadFirstSubmission = (submitCount ?? 0) > 0;
558553
558580
  import_react318.useEffect(() => {
558554
558581
  if (isRemoteSession)
@@ -558617,7 +558644,7 @@ function REPL({
558617
558644
  const terminalFocusRef = import_react318.useRef(isTerminalFocused);
558618
558645
  terminalFocusRef.current = isTerminalFocused;
558619
558646
  const [theme2] = useTheme();
558620
- const tipPickedThisTurnRef = React159.useRef(false);
558647
+ const tipPickedThisTurnRef = React160.useRef(false);
558621
558648
  const pickNewSpinnerTip = import_react318.useCallback(() => {
558622
558649
  if (tipPickedThisTurnRef.current)
558623
558650
  return;
@@ -560467,8 +560494,8 @@ Note: ctrl + z now suspends ZeroCLI, ctrl + _ undoes input.
560467
560494
  setPositions
560468
560495
  } = useSearchHighlight();
560469
560496
  const transcriptCols = useTerminalSize().columns;
560470
- const prevColsRef = React159.useRef(transcriptCols);
560471
- React159.useEffect(() => {
560497
+ const prevColsRef = React160.useRef(transcriptCols);
560498
+ React160.useEffect(() => {
560472
560499
  if (prevColsRef.current !== transcriptCols) {
560473
560500
  prevColsRef.current = transcriptCols;
560474
560501
  if (searchQuery || searchOpen) {
@@ -561280,7 +561307,7 @@ Note: ctrl + z now suspends ZeroCLI, ctrl + _ undoes input.
561280
561307
  }
561281
561308
  return mainReturn;
561282
561309
  }
561283
- var import_react_compiler_runtime351, React159, import_react318, jsx_runtime466, useFrustrationDetection = () => ({
561310
+ var import_react_compiler_runtime351, React160, import_react318, jsx_runtime466, useFrustrationDetection = () => ({
561284
561311
  state: "closed",
561285
561312
  handleTranscriptSelect: () => {}
561286
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;
@@ -561488,7 +561515,7 @@ var init_REPL = __esm(() => {
561488
561515
  init_osc();
561489
561516
  init_attachments2();
561490
561517
  import_react_compiler_runtime351 = __toESM(require_dist3(), 1);
561491
- React159 = __toESM(require_react(), 1);
561518
+ React160 = __toESM(require_react(), 1);
561492
561519
  import_react318 = __toESM(require_react(), 1);
561493
561520
  jsx_runtime466 = __toESM(require_jsx_runtime(), 1);
561494
561521
  getCoordinatorUserContext2 = (init_coordinatorMode(), __toCommonJS(exports_coordinatorMode)).getCoordinatorUserContext;
@@ -562748,7 +562775,7 @@ function WelcomeV2() {
562748
562775
  dimColor: true,
562749
562776
  children: [
562750
562777
  "v",
562751
- "0.9.7",
562778
+ "0.9.8",
562752
562779
  " "
562753
562780
  ]
562754
562781
  })
@@ -562982,7 +563009,7 @@ function WelcomeV2() {
562982
563009
  dimColor: true,
562983
563010
  children: [
562984
563011
  "v",
562985
- "0.9.7",
563012
+ "0.9.8",
562986
563013
  " "
562987
563014
  ]
562988
563015
  })
@@ -563229,7 +563256,7 @@ function AppleTerminalWelcomeV2(t0) {
563229
563256
  dimColor: true,
563230
563257
  children: [
563231
563258
  "v",
563232
- "0.9.7",
563259
+ "0.9.8",
563233
563260
  " "
563234
563261
  ]
563235
563262
  });
@@ -563502,7 +563529,7 @@ function AppleTerminalWelcomeV2(t0) {
563502
563529
  dimColor: true,
563503
563530
  children: [
563504
563531
  "v",
563505
- "0.9.7",
563532
+ "0.9.8",
563506
563533
  " "
563507
563534
  ]
563508
563535
  });
@@ -565014,7 +565041,7 @@ function completeOnboarding() {
565014
565041
  saveGlobalConfig((current) => ({
565015
565042
  ...current,
565016
565043
  hasCompletedOnboarding: true,
565017
- lastOnboardingVersion: "0.9.7"
565044
+ lastOnboardingVersion: "0.9.8"
565018
565045
  }));
565019
565046
  }
565020
565047
  function showDialog(root2, renderer) {
@@ -569265,7 +569292,7 @@ function appendToLog(path24, message) {
569265
569292
  cwd: getFsImplementation().cwd(),
569266
569293
  userType: process.env.USER_TYPE,
569267
569294
  sessionId: getSessionId(),
569268
- version: "0.9.7"
569295
+ version: "0.9.8"
569269
569296
  };
569270
569297
  getLogWriter(path24).write(messageWithTimestamp);
569271
569298
  }
@@ -569871,7 +569898,7 @@ async function startMCPServer(cwd2, debug, verbose) {
569871
569898
  setCwd(cwd2);
569872
569899
  const server = new Server({
569873
569900
  name: "claude/tengu",
569874
- version: "0.9.7"
569901
+ version: "0.9.8"
569875
569902
  }, {
569876
569903
  capabilities: {
569877
569904
  tools: {}
@@ -574510,8 +574537,8 @@ async function getEnvLessBridgeConfig() {
574510
574537
  }
574511
574538
  async function checkEnvLessBridgeMinVersion() {
574512
574539
  const cfg = await getEnvLessBridgeConfig();
574513
- if (cfg.min_version && lt("0.9.7", cfg.min_version)) {
574514
- return `Your version of ZeroCLI (${"0.9.7"}) is too old for Remote Control.
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.
574515
574542
  Version ${cfg.min_version} or higher is required. Run \`zero update\` to update.`;
574516
574543
  }
574517
574544
  return null;
@@ -574986,7 +575013,7 @@ async function initBridgeCore(params) {
574986
575013
  const rawApi = createBridgeApiClient({
574987
575014
  baseUrl,
574988
575015
  getAccessToken,
574989
- runnerVersion: "0.9.7",
575016
+ runnerVersion: "0.9.8",
574990
575017
  onDebug: logForDebugging,
574991
575018
  onAuth401,
574992
575019
  getTrustedDeviceToken
@@ -581274,7 +581301,7 @@ __export(exports_update2, {
581274
581301
  });
581275
581302
  async function update2() {
581276
581303
  logEvent("tengu_update_check", {});
581277
- writeToStdout(`Current version: ${"0.9.7"}
581304
+ writeToStdout(`Current version: ${"0.9.8"}
581278
581305
  `);
581279
581306
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
581280
581307
  writeToStdout(`Checking for updates to ${channel2} version...
@@ -581349,8 +581376,8 @@ async function update2() {
581349
581376
  writeToStdout(`Zero is managed by Homebrew.
581350
581377
  `);
581351
581378
  const latest = await getLatestVersion(channel2);
581352
- if (latest && !gte("0.9.7", latest)) {
581353
- writeToStdout(`Update available: ${"0.9.7"} → ${latest}
581379
+ if (latest && !gte("0.9.8", latest)) {
581380
+ writeToStdout(`Update available: ${"0.9.8"} → ${latest}
581354
581381
  `);
581355
581382
  writeToStdout(`
581356
581383
  `);
@@ -581366,8 +581393,8 @@ async function update2() {
581366
581393
  writeToStdout(`Zero is managed by winget.
581367
581394
  `);
581368
581395
  const latest = await getLatestVersion(channel2);
581369
- if (latest && !gte("0.9.7", latest)) {
581370
- writeToStdout(`Update available: ${"0.9.7"} → ${latest}
581396
+ if (latest && !gte("0.9.8", latest)) {
581397
+ writeToStdout(`Update available: ${"0.9.8"} → ${latest}
581371
581398
  `);
581372
581399
  writeToStdout(`
581373
581400
  `);
@@ -581383,8 +581410,8 @@ async function update2() {
581383
581410
  writeToStdout(`Zero is managed by apk.
581384
581411
  `);
581385
581412
  const latest = await getLatestVersion(channel2);
581386
- if (latest && !gte("0.9.7", latest)) {
581387
- writeToStdout(`Update available: ${"0.9.7"} → ${latest}
581413
+ if (latest && !gte("0.9.8", latest)) {
581414
+ writeToStdout(`Update available: ${"0.9.8"} → ${latest}
581388
581415
  `);
581389
581416
  writeToStdout(`
581390
581417
  `);
@@ -581449,11 +581476,11 @@ async function update2() {
581449
581476
  `);
581450
581477
  await gracefulShutdown(1);
581451
581478
  }
581452
- if (result.latestVersion === "0.9.7") {
581453
- writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.7"})`) + `
581479
+ if (result.latestVersion === "0.9.8") {
581480
+ writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.8"})`) + `
581454
581481
  `);
581455
581482
  } else {
581456
- writeToStdout(source_default.green(`Successfully updated from ${"0.9.7"} to version ${result.latestVersion}`) + `
581483
+ writeToStdout(source_default.green(`Successfully updated from ${"0.9.8"} to version ${result.latestVersion}`) + `
581457
581484
  `);
581458
581485
  await regenerateCompletionCache();
581459
581486
  }
@@ -581513,12 +581540,12 @@ async function update2() {
581513
581540
  `);
581514
581541
  await gracefulShutdown(1);
581515
581542
  }
581516
- if (latestVersion === "0.9.7") {
581517
- writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.7"})`) + `
581543
+ if (latestVersion === "0.9.8") {
581544
+ writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.8"})`) + `
581518
581545
  `);
581519
581546
  await gracefulShutdown(0);
581520
581547
  }
581521
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.9.7"})
581548
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.9.8"})
581522
581549
  `);
581523
581550
  writeToStdout(`Installing update...
581524
581551
  `);
@@ -581563,7 +581590,7 @@ async function update2() {
581563
581590
  logForDebugging(`update: Installation status: ${status2}`);
581564
581591
  switch (status2) {
581565
581592
  case "success":
581566
- writeToStdout(source_default.green(`Successfully updated from ${"0.9.7"} to version ${latestVersion}`) + `
581593
+ writeToStdout(source_default.green(`Successfully updated from ${"0.9.8"} to version ${latestVersion}`) + `
581567
581594
  `);
581568
581595
  await regenerateCompletionCache();
581569
581596
  break;
@@ -582864,7 +582891,7 @@ ${customInstructions}` : customInstructions;
582864
582891
  }
582865
582892
  }
582866
582893
  logForDiagnosticsNoPII("info", "started", {
582867
- version: "0.9.7",
582894
+ version: "0.9.8",
582868
582895
  is_native_binary: isInBundledMode()
582869
582896
  });
582870
582897
  registerCleanup(async () => {
@@ -583747,7 +583774,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
583747
583774
  pendingHookMessages
583748
583775
  }, renderAndRun);
583749
583776
  }
583750
- }).version("0.9.7", "-v, --version", "Output the version number");
583777
+ }).version("0.9.8", "-v, --version", "Output the version number");
583751
583778
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
583752
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.");
583753
583780
  if (canUserConfigureAdvisor()) {
@@ -584413,7 +584440,7 @@ if (false) {}
584413
584440
  async function main2() {
584414
584441
  const args = process.argv.slice(2);
584415
584442
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
584416
- console.log(`${"0.9.7"} (ZeroCLI)`);
584443
+ console.log(`${"0.9.8"} (ZeroCLI)`);
584417
584444
  return;
584418
584445
  }
584419
584446
  if (args.includes("--provider")) {
@@ -584555,4 +584582,4 @@ async function main2() {
584555
584582
  }
584556
584583
  main2();
584557
584584
 
584558
- //# debugId=B6F3EC808063D21764756E2164756E21
584585
+ //# debugId=72DEA435624F630C64756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duheso/zerocli",
3
- "version": "0.9.7",
3
+ "version": "0.9.8",
4
4
  "description": "Zero CLI to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models",
5
5
  "type": "module",
6
6
  "bin": {