@duheso/zerocli 0.9.4 → 0.9.6

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 +333 -253
  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.4"}${RESET}`);
119195
+ out.push(` ${DIM}${rgb(...DIMCOL)}zero ${RESET}${rgb(...ACCENT)}v${"0.9.6"}${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.4"}.${fingerprint}`;
147386
+ const version2 = `${"0.9.6"}.${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.4"}`;
190396
+ return `claude-code/${"0.9.6"}`;
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.4"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
190405
+ return `claude-cli/${"0.9.6"} (${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.4"}${suffix}`;
190419
+ return `claude-code/${"0.9.6"}${suffix}`;
190420
190420
  }
190421
190421
  function getWebFetchUserAgent() {
190422
190422
  const supportUrl = getAPIProvider() === "firstParty" ? "https://support.anthropic.com/" : "https://github.com/Duheso/ZeroCLI";
@@ -191429,6 +191429,7 @@ var init_openaiSchemaSanitizer = __esm(() => {
191429
191429
  });
191430
191430
 
191431
191431
  // src/services/api/codexShim.ts
191432
+ import { randomUUID as randomUUID5 } from "crypto";
191432
191433
  function makeUsage(usage) {
191433
191434
  return {
191434
191435
  input_tokens: usage?.input_tokens ?? 0,
@@ -191438,7 +191439,7 @@ function makeUsage(usage) {
191438
191439
  };
191439
191440
  }
191440
191441
  function makeMessageId() {
191441
- return `msg_${crypto.randomUUID().replace(/-/g, "")}`;
191442
+ return `msg_${randomUUID5().replace(/-/g, "")}`;
191442
191443
  }
191443
191444
  function normalizeToolUseId(toolUseId) {
191444
191445
  const value = (toolUseId || "").trim();
@@ -192346,9 +192347,9 @@ var init_toolArgumentNormalization = __esm(() => {
192346
192347
  });
192347
192348
 
192348
192349
  // src/utils/requestLogging.ts
192349
- import { randomUUID as randomUUID5 } from "crypto";
192350
+ import { randomUUID as randomUUID6 } from "crypto";
192350
192351
  function createCorrelationId() {
192351
- return randomUUID5();
192352
+ return randomUUID6();
192352
192353
  }
192353
192354
  function logApiCallStart(provider, model) {
192354
192355
  const correlationId = createCorrelationId();
@@ -192419,6 +192420,7 @@ var exports_openaiShim = {};
192419
192420
  __export(exports_openaiShim, {
192420
192421
  createOpenAIShimClient: () => createOpenAIShimClient
192421
192422
  });
192423
+ import { randomUUID as randomUUID7 } from "crypto";
192422
192424
  function isGithubModelsMode() {
192423
192425
  return isEnvTruthy(process.env.CLAUDE_CODE_USE_GITHUB);
192424
192426
  }
@@ -192678,7 +192680,7 @@ function convertMessages(messages, system, options2) {
192678
192680
  }
192679
192681
  if (toolUses.length > 0) {
192680
192682
  const mappedToolCalls = toolUses.map((tu) => {
192681
- const id = tu.id ?? `call_${crypto.randomUUID().replace(/-/g, "")}`;
192683
+ const id = tu.id ?? `call_${randomUUID7().replace(/-/g, "")}`;
192682
192684
  if (!toolResultIds.has(id) && !isLastInHistory) {
192683
192685
  return null;
192684
192686
  }
@@ -192825,7 +192827,7 @@ function convertTools(tools) {
192825
192827
  });
192826
192828
  }
192827
192829
  function makeMessageId2() {
192828
- return `msg_${crypto.randomUUID().replace(/-/g, "")}`;
192830
+ return `msg_${randomUUID7().replace(/-/g, "")}`;
192829
192831
  }
192830
192832
  function convertChunkUsage(usage) {
192831
192833
  if (!usage)
@@ -192896,7 +192898,19 @@ async function* openaiStreamToAnthropic(response, model, signal) {
192896
192898
  return new Promise((resolve19, reject) => {
192897
192899
  const timeoutId = setTimeout(() => {
192898
192900
  const elapsed = Math.round((Date.now() - lastDataTime) / 1000);
192899
- reject(new Error(`OpenAI/Gemini SSE stream idle for ${elapsed}s (limit: ${STREAM_IDLE_TIMEOUT_MS / 1000}s). Connection likely dropped.`));
192901
+ const msg = `OpenAI/Gemini SSE stream idle for ${elapsed}s (limit: ${STREAM_IDLE_TIMEOUT_MS / 1000}s). Connection likely dropped.`;
192902
+ logForDebugging(`
192903
+ ` + `========================================================================
192904
+ ` + `[ZERO-DEBUG] ENCERRAMENTO DETECTADO: STREAM IDLE TIMEOUT
192905
+ ` + `========================================================================
192906
+ ` + `CAUSA: O stream SSE ficou ${elapsed}s sem receber dados do modelo (vLLM/OpenAI).
192907
+ ` + `LIMITE ATUAL: ${STREAM_IDLE_TIMEOUT_MS / 1000}s (HARDCODED em openaiShim.ts:916).
192908
+ ` + `EFEITO: Zero encerrou o processamento porque assumiu que a conexao caiu.
192909
+ ` + `CORRECAO: Aumentar STREAM_IDLE_TIMEOUT_MS em src/services/api/openaiShim.ts
192910
+ ` + ` ou tornar configuravel via env var OPENAI_STREAM_IDLE_TIMEOUT_MS.
192911
+ ` + ` Modelos locais (vLLM) podem demorar mais que 120s entre chunks.
192912
+ ` + `========================================================================`, { level: "error" });
192913
+ reject(new Error(msg));
192900
192914
  }, STREAM_IDLE_TIMEOUT_MS);
192901
192915
  let abortCleanup;
192902
192916
  if (signal) {
@@ -192956,7 +192970,19 @@ async function* openaiStreamToAnthropic(response, model, signal) {
192956
192970
  let chunk;
192957
192971
  try {
192958
192972
  chunk = JSON.parse(trimmed.slice(6));
192959
- } catch {
192973
+ } catch (parseError) {
192974
+ logForDebugging(`
192975
+ ` + `========================================================================
192976
+ ` + `[ZERO-DEBUG] ALERTA: ERRO DE PARSE JSON NO STREAM SSE
192977
+ ` + `========================================================================
192978
+ ` + `CAUSA: Chunk recebido do modelo nao e JSON valido.
192979
+ ` + `DADOS RECEBIDOS: ${trimmed.slice(0, 500)}
192980
+ ` + `ERRO: ${parseError instanceof Error ? parseError.message : String(parseError)}
192981
+ ` + `EFEITO: Este chunk foi IGNORADO silenciosamente. Se muitos chunks falharem,
192982
+ ` + ` o modelo pode parecer encerrar sem completar a resposta.
192983
+ ` + `CORRECAO: Verificar se o vLLM esta retornando respostas validas.
192984
+ ` + ` Pode indicar incompatibilidade de formato entre vLLM e ZeroCLI.
192985
+ ` + `========================================================================`, { level: "warn" });
192960
192986
  continue;
192961
192987
  }
192962
192988
  const chunkUsage = convertChunkUsage(chunk.usage);
@@ -193131,6 +193157,20 @@ async function* openaiStreamToAnthropic(response, model, signal) {
193131
193157
  yield { type: "content_block_stop", index: tc.index };
193132
193158
  }
193133
193159
  const stopReason = choice.finish_reason === "tool_calls" ? "tool_use" : choice.finish_reason === "length" ? "max_tokens" : "end_turn";
193160
+ if (choice.finish_reason === "length") {
193161
+ logForDebugging(`
193162
+ ` + `========================================================================
193163
+ ` + `[ZERO-DEBUG] ENCERRAMENTO DETECTADO: MAX_TOKENS ATINGIDO (finish_reason=length)
193164
+ ` + `========================================================================
193165
+ ` + `CAUSA: O modelo atingiu o limite de tokens de saida e parou de gerar.
193166
+ ` + `FINISH_REASON: "length" (convertido para "max_tokens" internamente).
193167
+ ` + `EFEITO: Zero encerrou o processamento porque o modelo foi cortado no meio.
193168
+ ` + ` A resposta pode estar incompleta ou cortada abruptamente.
193169
+ ` + `CORRECAO: Aumentar max_tokens via env var CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
193170
+ ` + ` ou CLAUDE_CODE_OPENAI_MAX_OUTPUT_TOKENS='{"seu-modelo": 64000}'
193171
+ ` + ` Default atual: CAPPED_DEFAULT_MAX_TOKENS = 8000 tokens.
193172
+ ` + `========================================================================`, { level: "error" });
193173
+ }
193134
193174
  if (choice.finish_reason === "content_filter" || choice.finish_reason === "safety") {
193135
193175
  if (!hasEmittedContentStart) {
193136
193176
  yield {
@@ -200954,7 +200994,7 @@ var init_bedrock_sdk = __esm(() => {
200954
200994
  });
200955
200995
 
200956
200996
  // src/services/api/client.ts
200957
- import { randomUUID as randomUUID6 } from "crypto";
200997
+ import { randomUUID as randomUUID8 } from "crypto";
200958
200998
  function createStderrLogger() {
200959
200999
  return {
200960
201000
  error: (msg, ...args) => console.error("[Anthropic SDK ERROR]", msg, ...args),
@@ -201160,7 +201200,7 @@ function buildFetch(fetchOverride, source) {
201160
201200
  return (input, init) => {
201161
201201
  const headers = new Headers(init?.headers);
201162
201202
  if (injectClientRequestId && !headers.has(CLIENT_REQUEST_ID_HEADER)) {
201163
- headers.set(CLIENT_REQUEST_ID_HEADER, randomUUID6());
201203
+ headers.set(CLIENT_REQUEST_ID_HEADER, randomUUID8());
201164
201204
  }
201165
201205
  try {
201166
201206
  const url3 = input instanceof Request ? input.url : String(input);
@@ -244850,7 +244890,7 @@ function getTelemetryAttributes() {
244850
244890
  attributes["session.id"] = sessionId;
244851
244891
  }
244852
244892
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
244853
- attributes["app.version"] = "0.9.4";
244893
+ attributes["app.version"] = "0.9.6";
244854
244894
  }
244855
244895
  const oauthAccount = getOauthAccountInfo();
244856
244896
  if (oauthAccount) {
@@ -253644,7 +253684,7 @@ var init_queryHelpers = __esm(() => {
253644
253684
  });
253645
253685
 
253646
253686
  // src/services/PromptSuggestion/speculation.ts
253647
- import { randomUUID as randomUUID7 } from "crypto";
253687
+ import { randomUUID as randomUUID9 } from "crypto";
253648
253688
  import { rm as rm2 } from "fs";
253649
253689
  import { appendFile as appendFile3, copyFile, mkdir as mkdir7 } from "fs/promises";
253650
253690
  import { dirname as dirname23, isAbsolute as isAbsolute11, join as join46, relative as relative7 } from "path";
@@ -253835,7 +253875,7 @@ async function startSpeculation(suggestionText, context3, setAppState, isPipelin
253835
253875
  if (!isSpeculationEnabled())
253836
253876
  return;
253837
253877
  abortSpeculation(setAppState);
253838
- const id = randomUUID7().slice(0, 8);
253878
+ const id = randomUUID9().slice(0, 8);
253839
253879
  const abortController = createChildAbortController(context3.toolUseContext.abortController);
253840
253880
  if (abortController.signal.aborted)
253841
253881
  return;
@@ -254215,7 +254255,7 @@ var init_speculation = __esm(() => {
254215
254255
  });
254216
254256
 
254217
254257
  // src/utils/sdkEventQueue.ts
254218
- import { randomUUID as randomUUID8 } from "crypto";
254258
+ import { randomUUID as randomUUID10 } from "crypto";
254219
254259
  function enqueueSdkEvent(event) {
254220
254260
  if (!getIsNonInteractiveSession()) {
254221
254261
  return;
@@ -254232,7 +254272,7 @@ function drainSdkEvents() {
254232
254272
  const events = queue.splice(0);
254233
254273
  return events.map((e) => ({
254234
254274
  ...e,
254235
- uuid: randomUUID8(),
254275
+ uuid: randomUUID10(),
254236
254276
  session_id: getSessionId()
254237
254277
  }));
254238
254278
  }
@@ -257089,7 +257129,7 @@ function computeFingerprint(messageText, version2) {
257089
257129
  }
257090
257130
  function computeFingerprintFromMessages(messages) {
257091
257131
  const firstMessageText = extractFirstMessageText(messages);
257092
- return computeFingerprint(firstMessageText, "0.9.4");
257132
+ return computeFingerprint(firstMessageText, "0.9.6");
257093
257133
  }
257094
257134
  var FINGERPRINT_SALT = "59cf53e54c78";
257095
257135
  var init_fingerprint = () => {};
@@ -257131,7 +257171,7 @@ async function sideQuery(opts) {
257131
257171
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
257132
257172
  }
257133
257173
  const messageText = extractFirstUserMessageText(messages);
257134
- const fingerprint = computeFingerprint(messageText, "0.9.4");
257174
+ const fingerprint = computeFingerprint(messageText, "0.9.6");
257135
257175
  const attributionHeader = getAttributionHeader(fingerprint);
257136
257176
  const systemBlocks = [
257137
257177
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -266033,7 +266073,7 @@ var init_user = __esm(() => {
266033
266073
  deviceId,
266034
266074
  sessionId: getSessionId(),
266035
266075
  email: getEmail(),
266036
- appVersion: "0.9.4",
266076
+ appVersion: "0.9.6",
266037
266077
  platform: getHostPlatformForAnalytics(),
266038
266078
  organizationUuid,
266039
266079
  accountUuid,
@@ -266427,7 +266467,7 @@ async function initializeBetaTracing(resource) {
266427
266467
  });
266428
266468
  logs.setGlobalLoggerProvider(loggerProvider);
266429
266469
  setLoggerProvider(loggerProvider);
266430
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.4");
266470
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.6");
266431
266471
  setEventLogger(eventLogger);
266432
266472
  process.on("beforeExit", async () => {
266433
266473
  await loggerProvider?.forceFlush();
@@ -266467,7 +266507,7 @@ async function initializeTelemetry() {
266467
266507
  const platform3 = getPlatform();
266468
266508
  const baseAttributes = {
266469
266509
  [ATTR_SERVICE_NAME3]: "claude-code",
266470
- [ATTR_SERVICE_VERSION3]: "0.9.4"
266510
+ [ATTR_SERVICE_VERSION3]: "0.9.6"
266471
266511
  };
266472
266512
  if (platform3 === "wsl") {
266473
266513
  const wslVersion = getWslVersion();
@@ -266512,7 +266552,7 @@ async function initializeTelemetry() {
266512
266552
  } catch {}
266513
266553
  };
266514
266554
  registerCleanup(shutdownTelemetry2);
266515
- return meterProvider2.getMeter("com.anthropic.claude_code", "0.9.4");
266555
+ return meterProvider2.getMeter("com.anthropic.claude_code", "0.9.6");
266516
266556
  }
266517
266557
  const meterProvider = new MeterProvider3({
266518
266558
  resource,
@@ -266532,7 +266572,7 @@ async function initializeTelemetry() {
266532
266572
  });
266533
266573
  logs.setGlobalLoggerProvider(loggerProvider);
266534
266574
  setLoggerProvider(loggerProvider);
266535
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.4");
266575
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.6");
266536
266576
  setEventLogger(eventLogger);
266537
266577
  logForDebugging("[3P telemetry] Event logger set successfully");
266538
266578
  process.on("beforeExit", async () => {
@@ -266594,7 +266634,7 @@ Current timeout: ${timeoutMs}ms
266594
266634
  }
266595
266635
  };
266596
266636
  registerCleanup(shutdownTelemetry);
266597
- return meterProvider.getMeter("com.anthropic.claude_code", "0.9.4");
266637
+ return meterProvider.getMeter("com.anthropic.claude_code", "0.9.6");
266598
266638
  }
266599
266639
  async function flushTelemetry() {
266600
266640
  const meterProvider = getMeterProvider();
@@ -267406,9 +267446,9 @@ async function assertMinVersion() {
267406
267446
  }
267407
267447
  try {
267408
267448
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
267409
- if (versionConfig.minVersion && lt("0.9.4", versionConfig.minVersion)) {
267449
+ if (versionConfig.minVersion && lt("0.9.6", versionConfig.minVersion)) {
267410
267450
  console.error(`
267411
- It looks like your version of ZeroCLI (${"0.9.4"}) needs an update.
267451
+ It looks like your version of ZeroCLI (${"0.9.6"}) needs an update.
267412
267452
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
267413
267453
 
267414
267454
  To update, please run:
@@ -267624,7 +267664,7 @@ async function installGlobalPackage(specificVersion) {
267624
267664
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
267625
267665
  logEvent("tengu_auto_updater_lock_contention", {
267626
267666
  pid: process.pid,
267627
- currentVersion: "0.9.4"
267667
+ currentVersion: "0.9.6"
267628
267668
  });
267629
267669
  return "in_progress";
267630
267670
  }
@@ -267633,7 +267673,7 @@ async function installGlobalPackage(specificVersion) {
267633
267673
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
267634
267674
  logError2(new Error("Windows NPM detected in WSL environment"));
267635
267675
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
267636
- currentVersion: "0.9.4"
267676
+ currentVersion: "0.9.6"
267637
267677
  });
267638
267678
  console.error(`
267639
267679
  Error: Windows NPM detected in WSL
@@ -268187,7 +268227,7 @@ async function getDoctorDiagnostic() {
268187
268227
  const installationType = await getCurrentInstallationType();
268188
268228
  let version2;
268189
268229
  try {
268190
- version2 = "0.9.4";
268230
+ version2 = "0.9.6";
268191
268231
  } catch {
268192
268232
  version2 = "unknown";
268193
268233
  }
@@ -269681,7 +269721,7 @@ function getInstallationEnv() {
269681
269721
  return;
269682
269722
  }
269683
269723
  function getZeroCodeVersion() {
269684
- return "0.9.4";
269724
+ return "0.9.6";
269685
269725
  }
269686
269726
  async function getInstalledVSCodeExtensionVersion(command) {
269687
269727
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -271048,8 +271088,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
271048
271088
  const maxVersion = await getMaxVersion();
271049
271089
  if (maxVersion && gt(version2, maxVersion)) {
271050
271090
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
271051
- if (gte("0.9.4", maxVersion)) {
271052
- logForDebugging(`Native installer: current version ${"0.9.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
271091
+ if (gte("0.9.6", maxVersion)) {
271092
+ logForDebugging(`Native installer: current version ${"0.9.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
271053
271093
  logEvent("tengu_native_update_skipped_max_version", {
271054
271094
  latency_ms: Date.now() - startTime2,
271055
271095
  max_version: maxVersion,
@@ -271060,7 +271100,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
271060
271100
  version2 = maxVersion;
271061
271101
  }
271062
271102
  }
271063
- if (!forceReinstall && version2 === "0.9.4" && await versionIsAvailable(version2) && await isPossibleZeroBinary(executablePath)) {
271103
+ if (!forceReinstall && version2 === "0.9.6" && await versionIsAvailable(version2) && await isPossibleZeroBinary(executablePath)) {
271064
271104
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
271065
271105
  logEvent("tengu_native_update_complete", {
271066
271106
  latency_ms: Date.now() - startTime2,
@@ -283871,7 +283911,7 @@ __export(exports_api, {
283871
283911
  CodeSessionSchema: () => CodeSessionSchema,
283872
283912
  CCR_BYOC_BETA: () => CCR_BYOC_BETA
283873
283913
  });
283874
- import { randomUUID as randomUUID9 } from "crypto";
283914
+ import { randomUUID as randomUUID11 } from "crypto";
283875
283915
  function isTransientNetworkError(error42) {
283876
283916
  if (!axios_default.isAxiosError(error42)) {
283877
283917
  return false;
@@ -284014,7 +284054,7 @@ async function sendEventToRemoteSession(sessionId, messageContent, opts) {
284014
284054
  "x-organization-uuid": orgUUID
284015
284055
  };
284016
284056
  const userEvent = {
284017
- uuid: opts?.uuid ?? randomUUID9(),
284057
+ uuid: opts?.uuid ?? randomUUID11(),
284018
284058
  session_id: sessionId,
284019
284059
  type: "user",
284020
284060
  parent_tool_use_id: null,
@@ -294443,7 +294483,7 @@ __export(exports_processSlashCommand, {
294443
294483
  looksLikeCommand: () => looksLikeCommand,
294444
294484
  formatSkillLoadingMetadata: () => formatSkillLoadingMetadata
294445
294485
  });
294446
- import { randomUUID as randomUUID10 } from "crypto";
294486
+ import { randomUUID as randomUUID12 } from "crypto";
294447
294487
  async function executeForkedSlashCommand(command, args, context4, precedingInputBlocks, setToolJSX, canUseTool) {
294448
294488
  const agentId = createAgentId();
294449
294489
  const pluginMarketplace = command.pluginInfo ? parsePluginIdentifier(command.pluginInfo.repository).marketplace : undefined;
@@ -294487,7 +294527,7 @@ async function executeForkedSlashCommand(command, args, context4, precedingInput
294487
294527
  parentToolUseID,
294488
294528
  toolUseID: `${parentToolUseID}-${toolUseCounter}`,
294489
294529
  timestamp: new Date().toISOString(),
294490
- uuid: randomUUID10()
294530
+ uuid: randomUUID12()
294491
294531
  };
294492
294532
  };
294493
294533
  const updateProgress = () => {
@@ -294612,7 +294652,7 @@ async function processSlashCommand(inputString, precedingInputBlocks, imageConte
294612
294652
  resultText: unknownMessage
294613
294653
  };
294614
294654
  }
294615
- const promptId = randomUUID10();
294655
+ const promptId = randomUUID12();
294616
294656
  setPromptId(promptId);
294617
294657
  logEvent("tengu_input_prompt", {});
294618
294658
  logOTelEvent("user_prompt", {
@@ -295124,7 +295164,7 @@ var init_MonitorMcpTask = __esm(() => {
295124
295164
  });
295125
295165
 
295126
295166
  // src/tools/AgentTool/runAgent.ts
295127
- import { randomUUID as randomUUID11 } from "crypto";
295167
+ import { randomUUID as randomUUID13 } from "crypto";
295128
295168
  async function initializeAgentMcpServers(agentDefinition, parentClients) {
295129
295169
  if (!agentDefinition.mcpServers?.length) {
295130
295170
  return {
@@ -295313,7 +295353,7 @@ async function* runAgent({
295313
295353
  type: "hook_additional_context",
295314
295354
  content: additionalContexts,
295315
295355
  hookName: "SubagentStart",
295316
- toolUseID: randomUUID11(),
295356
+ toolUseID: randomUUID13(),
295317
295357
  hookEvent: "SubagentStart"
295318
295358
  });
295319
295359
  initialMessages.push(contextMessage);
@@ -298328,7 +298368,7 @@ var init_words = __esm(() => {
298328
298368
  });
298329
298369
 
298330
298370
  // src/utils/plans.ts
298331
- import { randomUUID as randomUUID12 } from "crypto";
298371
+ import { randomUUID as randomUUID14 } from "crypto";
298332
298372
  import { copyFile as copyFile4, writeFile as writeFile16 } from "fs/promises";
298333
298373
  import { join as join69, resolve as resolve23, sep as sep14 } from "path";
298334
298374
  function getPlanSlug(sessionId) {
@@ -298511,7 +298551,7 @@ async function persistFileSnapshotIfRemote() {
298511
298551
  level: "info",
298512
298552
  isMeta: true,
298513
298553
  timestamp: new Date().toISOString(),
298514
- uuid: randomUUID12(),
298554
+ uuid: randomUUID14(),
298515
298555
  files: snapshotFiles
298516
298556
  };
298517
298557
  const { recordTranscript: recordTranscript2 } = await Promise.resolve().then(() => (init_sessionStorage(), exports_sessionStorage));
@@ -299472,7 +299512,7 @@ var init_conversationRecovery = __esm(() => {
299472
299512
  });
299473
299513
 
299474
299514
  // src/services/api/filesApi.ts
299475
- import { randomUUID as randomUUID13 } from "crypto";
299515
+ import { randomUUID as randomUUID15 } from "crypto";
299476
299516
  import * as fs2 from "fs/promises";
299477
299517
  import * as path12 from "path";
299478
299518
  function getDefaultApiBaseUrl() {
@@ -299656,7 +299696,7 @@ async function uploadFile(filePath, relativePath, config2, opts) {
299656
299696
  success: false
299657
299697
  };
299658
299698
  }
299659
- const boundary = `----FormBoundary${randomUUID13()}`;
299699
+ const boundary = `----FormBoundary${randomUUID15()}`;
299660
299700
  const filename = path12.basename(relativePath);
299661
299701
  const bodyParts = [];
299662
299702
  bodyParts.push(Buffer.from(`--${boundary}\r
@@ -299960,7 +300000,7 @@ __export(exports_teleport, {
299960
300000
  checkOutTeleportedSessionBranch: () => checkOutTeleportedSessionBranch,
299961
300001
  archiveRemoteSession: () => archiveRemoteSession
299962
300002
  });
299963
- import { randomUUID as randomUUID14 } from "crypto";
300003
+ import { randomUUID as randomUUID16 } from "crypto";
299964
300004
  function createTeleportResumeSystemMessage(branchError) {
299965
300005
  if (branchError === null) {
299966
300006
  return createSystemMessage("Session resumed", "info");
@@ -300677,7 +300717,7 @@ async function teleportToRemote(options2) {
300677
300717
  type: "event",
300678
300718
  data: {
300679
300719
  type: "control_request",
300680
- request_id: `set-mode-${randomUUID14()}`,
300720
+ request_id: `set-mode-${randomUUID16()}`,
300681
300721
  request: {
300682
300722
  subtype: "set_permission_mode",
300683
300723
  mode: options2.permissionMode,
@@ -300690,7 +300730,7 @@ async function teleportToRemote(options2) {
300690
300730
  events.push({
300691
300731
  type: "event",
300692
300732
  data: {
300693
- uuid: randomUUID14(),
300733
+ uuid: randomUUID16(),
300694
300734
  session_id: "",
300695
300735
  type: "user",
300696
300736
  parent_tool_use_id: null,
@@ -302009,12 +302049,12 @@ ${result.result}`
302009
302049
  });
302010
302050
 
302011
302051
  // src/services/lsp/LSPDiagnosticRegistry.ts
302012
- import { randomUUID as randomUUID15 } from "crypto";
302052
+ import { randomUUID as randomUUID17 } from "crypto";
302013
302053
  function registerPendingLSPDiagnostic({
302014
302054
  serverName,
302015
302055
  files
302016
302056
  }) {
302017
- const diagnosticId = randomUUID15();
302057
+ const diagnosticId = randomUUID17();
302018
302058
  logForDebugging(`LSP Diagnostics: Registering ${files.length} diagnostic file(s) from ${serverName} (ID: ${diagnosticId})`);
302019
302059
  pendingDiagnostics.set(diagnosticId, {
302020
302060
  serverName,
@@ -315854,7 +315894,7 @@ var init_PowerShellTool = __esm(() => {
315854
315894
  });
315855
315895
 
315856
315896
  // src/utils/promptShellExecution.ts
315857
- import { randomUUID as randomUUID16 } from "crypto";
315897
+ import { randomUUID as randomUUID18 } from "crypto";
315858
315898
  async function executeShellCommandsInPrompt(text, context4, slashCommandName, shell) {
315859
315899
  let result = text;
315860
315900
  const shellTool = shell === "powershell" && isPowerShellToolEnabled() ? getPowerShellTool() : BashTool;
@@ -315875,7 +315915,7 @@ async function executeShellCommandsInPrompt(text, context4, slashCommandName, sh
315875
315915
  stdout: typeof data.stdout === "string" ? data.stdout : "",
315876
315916
  stderr: typeof data.stderr === "string" ? data.stderr : ""
315877
315917
  };
315878
- const toolResultBlock = await processToolResultBlock(shellTool, normalizedData, randomUUID16());
315918
+ const toolResultBlock = await processToolResultBlock(shellTool, normalizedData, randomUUID18());
315879
315919
  const output = typeof toolResultBlock.content === "string" ? toolResultBlock.content : formatBashOutput(normalizedData.stdout, normalizedData.stderr);
315880
315920
  result = result.replace(match[0], () => output);
315881
315921
  } catch (e) {
@@ -375217,13 +375257,13 @@ var init_config5 = __esm(() => {
375217
375257
  });
375218
375258
 
375219
375259
  // src/query/deps.ts
375220
- import { randomUUID as randomUUID17 } from "crypto";
375260
+ import { randomUUID as randomUUID19 } from "crypto";
375221
375261
  function productionDeps() {
375222
375262
  return {
375223
375263
  callModel: queryModelWithStreaming,
375224
375264
  microcompact: microcompactMessages,
375225
375265
  autocompact: autoCompactIfNeeded,
375226
- uuid: randomUUID17
375266
+ uuid: randomUUID19
375227
375267
  };
375228
375268
  }
375229
375269
  var init_deps = __esm(() => {
@@ -375723,6 +375763,25 @@ async function* queryLoop(params, consumedCommandUuids) {
375723
375763
  } catch (error42) {
375724
375764
  logError2(error42);
375725
375765
  const errorMessage2 = error42 instanceof Error ? error42.message : String(error42);
375766
+ const isIdleTimeout = errorMessage2.includes("idle") && errorMessage2.includes("timeout");
375767
+ const isMaxTokens = errorMessage2.includes("max_tokens") || errorMessage2.includes("max_output_tokens");
375768
+ const isStreamDrop = errorMessage2.includes("stream") || errorMessage2.includes("SSE") || errorMessage2.includes("Connection");
375769
+ logForDebugging(`
375770
+ ` + `========================================================================
375771
+ ` + `[ZERO-DEBUG] QUERY ENCERROU COM ERRO
375772
+ ` + `========================================================================
375773
+ ` + `ERRO: ${errorMessage2}
375774
+ ` + `TIPO: ${error42 instanceof Error ? error42.constructor.name : typeof error42}
375775
+ ` + `MENSAGENS DO ASSISTENTE: ${assistantMessages.length}
375776
+ ` + `TOOL USES: ${assistantMessages.flatMap((_) => _.message.content.filter((content) => content.type === "tool_use")).length}
375777
+ ` + (isIdleTimeout ? `DIAGNOSTICO: >>> STREAM IDLE TIMEOUT - modelo demorou demais para responder <<<
375778
+ ` + `CORRECAO: Aumentar STREAM_IDLE_TIMEOUT_MS ou CLAUDE_STREAM_IDLE_TIMEOUT_MS
375779
+ ` : isMaxTokens ? `DIAGNOSTICO: >>> MAX TOKENS ATINGIDO - resposta cortada pelo limite <<<
375780
+ ` + `CORRECAO: export CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
375781
+ ` : isStreamDrop ? `DIAGNOSTICO: >>> CONEXAO COM MODELO CAIU - stream interrompido <<<
375782
+ ` + `CORRECAO: Verificar estabilidade do vLLM e conexao de rede
375783
+ ` : `DIAGNOSTICO: Erro nao mapeado nas causas conhecidas de encerramento silencioso.
375784
+ `) + `========================================================================`, { level: "error" });
375726
375785
  logEvent("tengu_query_error", {
375727
375786
  assistantMessages: assistantMessages.length,
375728
375787
  toolUses: assistantMessages.flatMap((_) => _.message.content.filter((content) => content.type === "tool_use")).length,
@@ -376284,7 +376343,7 @@ function getAnthropicEnvMetadata() {
376284
376343
  function getBuildAgeMinutes() {
376285
376344
  if (false)
376286
376345
  ;
376287
- const buildTime = new Date("2026-05-11T01:40:36.001Z").getTime();
376346
+ const buildTime = new Date("2026-05-13T13:07:10.047Z").getTime();
376288
376347
  if (isNaN(buildTime))
376289
376348
  return;
376290
376349
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -376735,7 +376794,7 @@ var init_denialTracking = __esm(() => {
376735
376794
  });
376736
376795
 
376737
376796
  // src/utils/forkedAgent.ts
376738
- import { randomUUID as randomUUID18 } from "crypto";
376797
+ import { randomUUID as randomUUID20 } from "crypto";
376739
376798
  function saveCacheSafeParams(params) {
376740
376799
  lastCacheSafeParams = params;
376741
376800
  }
@@ -376844,7 +376903,7 @@ function createSubagentContext(parentContext, overrides) {
376844
376903
  agentId: overrides?.agentId ?? createAgentId(),
376845
376904
  agentType: overrides?.agentType,
376846
376905
  queryTracking: {
376847
- chainId: randomUUID18(),
376906
+ chainId: randomUUID20(),
376848
376907
  depth: (parentContext.queryTracking?.depth ?? -1) + 1
376849
376908
  },
376850
376909
  fileReadingLimits: parentContext.fileReadingLimits,
@@ -379921,7 +379980,7 @@ var init_toolSearch = __esm(() => {
379921
379980
  });
379922
379981
 
379923
379982
  // src/services/vcr.ts
379924
- import { createHash as createHash14, randomUUID as randomUUID19 } from "crypto";
379983
+ import { createHash as createHash14, randomUUID as randomUUID21 } from "crypto";
379925
379984
  import { mkdir as mkdir23, readFile as readFile27, writeFile as writeFile24 } from "fs/promises";
379926
379985
  import { dirname as dirname35, join as join88 } from "path";
379927
379986
  function shouldUseVCR() {
@@ -379974,7 +380033,7 @@ async function withVCR(messages, f) {
379974
380033
  try {
379975
380034
  const cached3 = jsonParse(await readFile27(filename, { encoding: "utf8" }));
379976
380035
  cached3.output.forEach(addCachedCostToTotalSessionCost);
379977
- return cached3.output.map((message, index) => mapMessage(message, hydrateValue, index, randomUUID19()));
380036
+ return cached3.output.map((message, index) => mapMessage(message, hydrateValue, index, randomUUID21()));
379978
380037
  } catch (e2) {
379979
380038
  const code = getErrnoCode(e2);
379980
380039
  if (code !== "ENOENT") {
@@ -380435,7 +380494,7 @@ var init_tokenEstimation = __esm(() => {
380435
380494
  });
380436
380495
 
380437
380496
  // src/utils/pdf.ts
380438
- import { randomUUID as randomUUID20 } from "crypto";
380497
+ import { randomUUID as randomUUID22 } from "crypto";
380439
380498
  import { mkdir as mkdir24, readdir as readdir15, readFile as readFile28 } from "fs/promises";
380440
380499
  import { join as join89 } from "path";
380441
380500
  async function readPDF(filePath) {
@@ -380546,7 +380605,7 @@ async function extractPDFPages(filePath, options2) {
380546
380605
  }
380547
380606
  };
380548
380607
  }
380549
- const uuid3 = randomUUID20();
380608
+ const uuid3 = randomUUID22();
380550
380609
  const outputDir = join89(getToolResultsDir(), `pdf-${uuid3}`);
380551
380610
  await mkdir24(outputDir, { recursive: true });
380552
380611
  const prefix = join89(outputDir, "page");
@@ -382116,7 +382175,7 @@ var init_findRelevantMemories = __esm(() => {
382116
382175
  // src/utils/attachments.ts
382117
382176
  import { readdir as readdir17, stat as stat33 } from "fs/promises";
382118
382177
  import { dirname as dirname36, parse as parse10, relative as relative20, resolve as resolve32 } from "path";
382119
- import { randomUUID as randomUUID21 } from "crypto";
382178
+ import { randomUUID as randomUUID23 } from "crypto";
382120
382179
  async function getAttachments(input, toolUseContext, ideSelection, queuedCommands, messages, querySource, options2) {
382121
382180
  if (isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_ATTACHMENTS) || isEnvTruthy(process.env.CLAUDE_CODE_SIMPLE)) {
382122
382181
  return getQueuedCommandAttachments(queuedCommands);
@@ -383343,7 +383402,7 @@ function createAttachmentMessage(attachment) {
383343
383402
  return {
383344
383403
  attachment,
383345
383404
  type: "attachment",
383346
- uuid: randomUUID21(),
383405
+ uuid: randomUUID23(),
383347
383406
  timestamp: new Date().toISOString()
383348
383407
  };
383349
383408
  }
@@ -388982,7 +389041,7 @@ ${EXPLANATORY_FEATURE_PROMPT}`
388982
389041
  });
388983
389042
 
388984
389043
  // src/utils/messages.ts
388985
- import { randomUUID as randomUUID22 } from "crypto";
389044
+ import { randomUUID as randomUUID24 } from "crypto";
388986
389045
  function getTeammateMailbox() {
388987
389046
  return init_teammateMailbox(), __toCommonJS(exports_teammateMailbox);
388988
389047
  }
@@ -389062,10 +389121,10 @@ function baseCreateAssistantMessage({
389062
389121
  }) {
389063
389122
  return {
389064
389123
  type: "assistant",
389065
- uuid: randomUUID22(),
389124
+ uuid: randomUUID24(),
389066
389125
  timestamp: new Date().toISOString(),
389067
389126
  message: {
389068
- id: randomUUID22(),
389127
+ id: randomUUID24(),
389069
389128
  container: null,
389070
389129
  model: SYNTHETIC_MODEL,
389071
389130
  role: "assistant",
@@ -389146,7 +389205,7 @@ function createUserMessage({
389146
389205
  isVirtual,
389147
389206
  isCompactSummary,
389148
389207
  summarizeMetadata,
389149
- uuid: uuid3 || randomUUID22(),
389208
+ uuid: uuid3 || randomUUID24(),
389150
389209
  timestamp: timestamp ?? new Date().toISOString(),
389151
389210
  toolUseResult,
389152
389211
  mcpMeta,
@@ -389215,7 +389274,7 @@ function createProgressMessage({
389215
389274
  data,
389216
389275
  toolUseID,
389217
389276
  parentToolUseID,
389218
- uuid: randomUUID22(),
389277
+ uuid: randomUUID24(),
389219
389278
  timestamp: new Date().toISOString()
389220
389279
  };
389221
389280
  }
@@ -391562,7 +391621,7 @@ function createSystemMessage(content, level, toolUseID, preventContinuation) {
391562
391621
  content,
391563
391622
  isMeta: false,
391564
391623
  timestamp: new Date().toISOString(),
391565
- uuid: randomUUID22(),
391624
+ uuid: randomUUID24(),
391566
391625
  toolUseID,
391567
391626
  level,
391568
391627
  ...preventContinuation && { preventContinuation }
@@ -391577,7 +391636,7 @@ function createPermissionRetryMessage(commands) {
391577
391636
  level: "info",
391578
391637
  isMeta: false,
391579
391638
  timestamp: new Date().toISOString(),
391580
- uuid: randomUUID22()
391639
+ uuid: randomUUID24()
391581
391640
  };
391582
391641
  }
391583
391642
  function createScheduledTaskFireMessage(content) {
@@ -391587,7 +391646,7 @@ function createScheduledTaskFireMessage(content) {
391587
391646
  content,
391588
391647
  isMeta: false,
391589
391648
  timestamp: new Date().toISOString(),
391590
- uuid: randomUUID22()
391649
+ uuid: randomUUID24()
391591
391650
  };
391592
391651
  }
391593
391652
  function createStopHookSummaryMessage(hookCount, hookInfos, hookErrors, preventedContinuation, stopReason, hasOutput, level, toolUseID, hookLabel, totalDurationMs) {
@@ -391603,7 +391662,7 @@ function createStopHookSummaryMessage(hookCount, hookInfos, hookErrors, prevente
391603
391662
  hasOutput,
391604
391663
  level,
391605
391664
  timestamp: new Date().toISOString(),
391606
- uuid: randomUUID22(),
391665
+ uuid: randomUUID24(),
391607
391666
  toolUseID,
391608
391667
  hookLabel,
391609
391668
  totalDurationMs
@@ -391619,7 +391678,7 @@ function createTurnDurationMessage(durationMs, budget, messageCount) {
391619
391678
  budgetNudges: budget?.nudges,
391620
391679
  messageCount,
391621
391680
  timestamp: new Date().toISOString(),
391622
- uuid: randomUUID22(),
391681
+ uuid: randomUUID24(),
391623
391682
  isMeta: false
391624
391683
  };
391625
391684
  }
@@ -391629,7 +391688,7 @@ function createAwaySummaryMessage(content) {
391629
391688
  subtype: "away_summary",
391630
391689
  content,
391631
391690
  timestamp: new Date().toISOString(),
391632
- uuid: randomUUID22(),
391691
+ uuid: randomUUID24(),
391633
391692
  isMeta: false
391634
391693
  };
391635
391694
  }
@@ -391639,7 +391698,7 @@ function createMemorySavedMessage(writtenPaths) {
391639
391698
  subtype: "memory_saved",
391640
391699
  writtenPaths,
391641
391700
  timestamp: new Date().toISOString(),
391642
- uuid: randomUUID22(),
391701
+ uuid: randomUUID24(),
391643
391702
  isMeta: false
391644
391703
  };
391645
391704
  }
@@ -391648,7 +391707,7 @@ function createAgentsKilledMessage() {
391648
391707
  type: "system",
391649
391708
  subtype: "agents_killed",
391650
391709
  timestamp: new Date().toISOString(),
391651
- uuid: randomUUID22(),
391710
+ uuid: randomUUID24(),
391652
391711
  isMeta: false
391653
391712
  };
391654
391713
  }
@@ -391659,7 +391718,7 @@ function createCommandInputMessage(content) {
391659
391718
  content,
391660
391719
  level: "info",
391661
391720
  timestamp: new Date().toISOString(),
391662
- uuid: randomUUID22(),
391721
+ uuid: randomUUID24(),
391663
391722
  isMeta: false
391664
391723
  };
391665
391724
  }
@@ -391670,7 +391729,7 @@ function createCompactBoundaryMessage(trigger, preTokens, lastPreCompactMessageU
391670
391729
  content: `Conversation compacted`,
391671
391730
  isMeta: false,
391672
391731
  timestamp: new Date().toISOString(),
391673
- uuid: randomUUID22(),
391732
+ uuid: randomUUID24(),
391674
391733
  level: "info",
391675
391734
  compactMetadata: {
391676
391735
  trigger,
@@ -391691,7 +391750,7 @@ function createMicrocompactBoundaryMessage(trigger, preTokens, tokensSaved, comp
391691
391750
  content: "Context microcompacted",
391692
391751
  isMeta: false,
391693
391752
  timestamp: new Date().toISOString(),
391694
- uuid: randomUUID22(),
391753
+ uuid: randomUUID24(),
391695
391754
  level: "info",
391696
391755
  microcompactMetadata: {
391697
391756
  trigger,
@@ -391713,7 +391772,7 @@ function createSystemAPIErrorMessage(error42, retryInMs, retryAttempt, maxRetrie
391713
391772
  retryAttempt,
391714
391773
  maxRetries,
391715
391774
  timestamp: new Date().toISOString(),
391716
- uuid: randomUUID22()
391775
+ uuid: randomUUID24()
391717
391776
  };
391718
391777
  }
391719
391778
  function isCompactBoundaryMessage(message) {
@@ -391984,7 +392043,7 @@ function createToolUseSummaryMessage(summary, precedingToolUseIds) {
391984
392043
  summary,
391985
392044
  precedingToolUseIds,
391986
392045
  toolUseIDs: precedingToolUseIds,
391987
- uuid: randomUUID22(),
392046
+ uuid: randomUUID24(),
391988
392047
  timestamp: new Date().toISOString()
391989
392048
  };
391990
392049
  }
@@ -395511,7 +395570,7 @@ var init_xaaIdpLogin = __esm(() => {
395511
395570
  });
395512
395571
 
395513
395572
  // src/services/mcp/auth.ts
395514
- import { createHash as createHash16, randomBytes as randomBytes11, randomUUID as randomUUID23 } from "crypto";
395573
+ import { createHash as createHash16, randomBytes as randomBytes11, randomUUID as randomUUID25 } from "crypto";
395515
395574
  import { mkdir as mkdir26 } from "fs/promises";
395516
395575
  import { createServer as createServer4 } from "http";
395517
395576
  import { join as join99 } from "path";
@@ -395965,7 +396024,7 @@ async function performMCPOAuthFlow(serverName, serverConfig, onAuthorizationUrl,
395965
396024
  scope: cachedStepUpScope,
395966
396025
  resourceMetadataUrl
395967
396026
  };
395968
- const flowAttemptId = randomUUID23();
396027
+ const flowAttemptId = randomUUID25();
395969
396028
  logEvent("tengu_mcp_oauth_flow_start", {
395970
396029
  flowAttemptId,
395971
396030
  isOAuthFlow: true,
@@ -403720,7 +403779,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
403720
403779
  const client2 = new Client({
403721
403780
  name: "claude-code",
403722
403781
  title: "ZeroCLI",
403723
- version: "0.9.4",
403782
+ version: "0.9.6",
403724
403783
  description: "Anthropic's agentic coding tool",
403725
403784
  websiteUrl: PRODUCT_URL
403726
403785
  }, {
@@ -404072,7 +404131,7 @@ var init_client7 = __esm(() => {
404072
404131
  const client2 = new Client({
404073
404132
  name: "claude-code",
404074
404133
  title: "ZeroCLI",
404075
- version: "0.9.4",
404134
+ version: "0.9.6",
404076
404135
  description: "Anthropic's agentic coding tool",
404077
404136
  websiteUrl: PRODUCT_URL
404078
404137
  }, {
@@ -405313,7 +405372,7 @@ function insertBlockAfterToolResults(content, block2) {
405313
405372
  }
405314
405373
 
405315
405374
  // src/services/api/claude.ts
405316
- import { randomUUID as randomUUID24 } from "crypto";
405375
+ import { randomUUID as randomUUID26 } from "crypto";
405317
405376
  function getExtraBodyParams(betaHeaders) {
405318
405377
  const extraBodyStr = process.env.CLAUDE_CODE_EXTRA_BODY;
405319
405378
  let result = {};
@@ -406109,7 +406168,18 @@ ${deferredToolList}
406109
406168
  streamIdleTimer = setTimeout(() => {
406110
406169
  streamIdleAborted = true;
406111
406170
  streamWatchdogFiredAt = performance.now();
406112
- logForDebugging(`Streaming idle timeout: no chunks received for ${STREAM_IDLE_TIMEOUT_MS / 1000}s, aborting stream`, { level: "error" });
406171
+ logForDebugging(`
406172
+ ========================================================================
406173
+ [ZERO-DEBUG] ENCERRAMENTO DETECTADO: STREAM WATCHDOG TIMEOUT
406174
+ ========================================================================
406175
+ CAUSA: O stream ficou ${STREAM_IDLE_TIMEOUT_MS / 1000}s sem receber chunks do modelo.
406176
+ LIMITE ATUAL: ${STREAM_IDLE_TIMEOUT_MS / 1000}s (configuravel via CLAUDE_STREAM_IDLE_TIMEOUT_MS).
406177
+ MODELO: ${options2.model}
406178
+ EFEITO: Zero abortou o stream e vai tentar fallback para modo nao-streaming.
406179
+ Se o fallback tambem falhar, o processamento encerra silenciosamente.
406180
+ CORRECAO: export CLAUDE_STREAM_IDLE_TIMEOUT_MS=600000 (10 min)
406181
+ export CLAUDE_ENABLE_STREAM_WATCHDOG=1
406182
+ ========================================================================`, { level: "error" });
406113
406183
  logForDiagnosticsNoPII("error", "cli_streaming_idle_timeout");
406114
406184
  logEvent("tengu_streaming_idle_timeout", {
406115
406185
  model: options2.model,
@@ -406139,7 +406209,7 @@ ${deferredToolList}
406139
406209
  if (!options2.agentId) {
406140
406210
  headlessProfilerCheckpoint("api_request_sent");
406141
406211
  }
406142
- clientRequestId = getAPIProvider() === "firstParty" && isFirstPartyAnthropicBaseUrl() ? randomUUID24() : undefined;
406212
+ clientRequestId = getAPIProvider() === "firstParty" && isFirstPartyAnthropicBaseUrl() ? randomUUID26() : undefined;
406143
406213
  const result = await anthropic.beta.messages.create({ ...params, stream: true }, {
406144
406214
  signal,
406145
406215
  ...clientRequestId && {
@@ -406369,7 +406439,7 @@ ${deferredToolList}
406369
406439
  },
406370
406440
  requestId: streamRequestId ?? undefined,
406371
406441
  type: "assistant",
406372
- uuid: randomUUID24(),
406442
+ uuid: randomUUID26(),
406373
406443
  timestamp: new Date().toISOString(),
406374
406444
  ...process.env.USER_TYPE === "ant" && research !== undefined && { research },
406375
406445
  ...advisorModel && { advisorModel }
@@ -406402,6 +406472,15 @@ ${deferredToolList}
406402
406472
  logEvent("tengu_max_tokens_reached", {
406403
406473
  max_tokens: maxOutputTokens
406404
406474
  });
406475
+ logForDebugging(`
406476
+ ========================================================================
406477
+ [ZERO-DEBUG] ENCERRAMENTO DETECTADO: MAX_TOKENS ATINGIDO (Anthropic API)
406478
+ ========================================================================
406479
+ CAUSA: O modelo atingiu o limite de ${maxOutputTokens} tokens de saida.
406480
+ EFEITO: A resposta foi cortada. Recovery sera tentado ate 3x.
406481
+ Se recovery falhar, o processamento encerra abruptamente.
406482
+ CORRECAO: export CLAUDE_CODE_MAX_OUTPUT_TOKENS=64000
406483
+ ========================================================================`, { level: "error" });
406405
406484
  yield createAssistantAPIErrorMessage({
406406
406485
  content: `${API_ERROR_MESSAGE_PREFIX}: Zero's response exceeded the ${maxOutputTokens} output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable.`,
406407
406486
  apiError: "max_output_tokens",
@@ -406551,7 +406630,7 @@ ${deferredToolList}
406551
406630
  },
406552
406631
  requestId: streamRequestId ?? undefined,
406553
406632
  type: "assistant",
406554
- uuid: randomUUID24(),
406633
+ uuid: randomUUID26(),
406555
406634
  timestamp: new Date().toISOString(),
406556
406635
  ...process.env.USER_TYPE === "ant" && research !== undefined && {
406557
406636
  research
@@ -406605,7 +406684,7 @@ ${deferredToolList}
406605
406684
  },
406606
406685
  requestId: streamRequestId ?? undefined,
406607
406686
  type: "assistant",
406608
- uuid: randomUUID24(),
406687
+ uuid: randomUUID26(),
406609
406688
  timestamp: new Date().toISOString(),
406610
406689
  ...process.env.USER_TYPE === "ant" && research !== undefined && { research },
406611
406690
  ...advisorModel && { advisorModel }
@@ -414787,7 +414866,7 @@ function Feedback({
414787
414866
  platform: env2.platform,
414788
414867
  gitRepo: envInfo.isGit,
414789
414868
  terminal: env2.terminal,
414790
- version: "0.9.4",
414869
+ version: "0.9.6",
414791
414870
  transcript: normalizeMessagesForAPI(messages),
414792
414871
  errors: sanitizedErrors,
414793
414872
  lastApiRequest: getLastAPIRequest(),
@@ -414980,7 +415059,7 @@ function Feedback({
414980
415059
  ", ",
414981
415060
  env2.terminal,
414982
415061
  ", v",
414983
- "0.9.4"
415062
+ "0.9.6"
414984
415063
  ]
414985
415064
  })
414986
415065
  ]
@@ -415088,7 +415167,7 @@ ${sanitizedDescription}
415088
415167
  ` + `**Environment Info**
415089
415168
  ` + `- Platform: ${env2.platform}
415090
415169
  ` + `- Terminal: ${env2.terminal}
415091
- ` + `- Version: ${"0.9.4"}
415170
+ ` + `- Version: ${"0.9.6"}
415092
415171
  ` + feedbackIdLine + `
415093
415172
  **Errors**
415094
415173
  \`\`\`json
@@ -416318,7 +416397,7 @@ var exports_conversation = {};
416318
416397
  __export(exports_conversation, {
416319
416398
  clearConversation: () => clearConversation
416320
416399
  });
416321
- import { randomUUID as randomUUID25 } from "crypto";
416400
+ import { randomUUID as randomUUID27 } from "crypto";
416322
416401
  async function clearConversation({
416323
416402
  setMessages,
416324
416403
  readFileState,
@@ -416360,7 +416439,7 @@ async function clearConversation({
416360
416439
  setMessages(() => []);
416361
416440
  if (false) {}
416362
416441
  if (setConversationId) {
416363
- setConversationId(randomUUID25());
416442
+ setConversationId(randomUUID27());
416364
416443
  }
416365
416444
  clearSessionCaches(preservedAgentIds);
416366
416445
  setCwd(getOriginalCwd());
@@ -418241,7 +418320,7 @@ function buildPrimarySection() {
418241
418320
  });
418242
418321
  return [{
418243
418322
  label: "Version",
418244
- value: "0.9.4"
418323
+ value: "0.9.6"
418245
418324
  }, {
418246
418325
  label: "Session name",
418247
418326
  value: nameValue
@@ -423011,7 +423090,7 @@ function Config({
423011
423090
  }
423012
423091
  })
423013
423092
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime181.jsx(ChannelDowngradeDialog, {
423014
- currentVersion: "0.9.4",
423093
+ currentVersion: "0.9.6",
423015
423094
  onChoice: (choice) => {
423016
423095
  setShowSubmenu(null);
423017
423096
  setTabsHidden(false);
@@ -423023,7 +423102,7 @@ function Config({
423023
423102
  autoUpdatesChannel: "stable"
423024
423103
  };
423025
423104
  if (choice === "stay") {
423026
- newSettings.minimumVersion = "0.9.4";
423105
+ newSettings.minimumVersion = "0.9.6";
423027
423106
  }
423028
423107
  updateSettingsForSource("userSettings", newSettings);
423029
423108
  setSettingsData((prev_27) => ({
@@ -429964,7 +430043,7 @@ function UpdateScreen({ onDone }) {
429964
430043
  setState({ type: "dev-build" });
429965
430044
  return;
429966
430045
  }
429967
- const currentVersion = "0.9.4";
430046
+ const currentVersion = "0.9.6";
429968
430047
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
429969
430048
  const latestVersion = await getLatestVersion(channel2);
429970
430049
  if (!latestVersion) {
@@ -432075,7 +432154,7 @@ function HelpV2(t0) {
432075
432154
  let t6;
432076
432155
  if ($2[31] !== tabs) {
432077
432156
  t6 = /* @__PURE__ */ jsx_runtime211.jsx(Tabs, {
432078
- title: `ZeroCLI v${"0.9.4"}`,
432157
+ title: `ZeroCLI v${"0.9.6"}`,
432079
432158
  color: "professionalBlue",
432080
432159
  defaultTab: "general",
432081
432160
  children: tabs
@@ -456919,7 +456998,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
456919
456998
  return [];
456920
456999
  }
456921
457000
  }
456922
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.9.4") {
457001
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.9.6") {
456923
457002
  if (process.env.USER_TYPE === "ant") {
456924
457003
  const changelog = MACRO.VERSION_CHANGELOG;
456925
457004
  if (changelog) {
@@ -468116,7 +468195,7 @@ var init_InProcessTeammateDetailDialog = __esm(() => {
468116
468195
  });
468117
468196
 
468118
468197
  // src/utils/messages/mappers.ts
468119
- import { randomUUID as randomUUID26 } from "crypto";
468198
+ import { randomUUID as randomUUID28 } from "crypto";
468120
468199
  function toInternalMessages(messages) {
468121
468200
  return messages.flatMap((message) => {
468122
468201
  switch (message.type) {
@@ -468135,7 +468214,7 @@ function toInternalMessages(messages) {
468135
468214
  {
468136
468215
  type: "user",
468137
468216
  message: message.message,
468138
- uuid: message.uuid ?? randomUUID26(),
468217
+ uuid: message.uuid ?? randomUUID28(),
468139
468218
  timestamp: message.timestamp ?? new Date().toISOString(),
468140
468219
  isMeta: message.isSynthetic
468141
468220
  }
@@ -468150,7 +468229,7 @@ function toInternalMessages(messages) {
468150
468229
  level: "info",
468151
468230
  subtype: "compact_boundary",
468152
468231
  compactMetadata: fromSDKCompactMetadata(compactMsg.compact_metadata),
468153
- uuid: message.uuid ?? randomUUID26(),
468232
+ uuid: message.uuid ?? randomUUID28(),
468154
468233
  timestamp: new Date().toISOString(),
468155
468234
  isMeta: message.isSynthetic ?? false
468156
468235
  }
@@ -479372,7 +479451,7 @@ __export(exports_branch, {
479372
479451
  deriveFirstPrompt: () => deriveFirstPrompt,
479373
479452
  call: () => call53
479374
479453
  });
479375
- import { randomUUID as randomUUID27 } from "crypto";
479454
+ import { randomUUID as randomUUID29 } from "crypto";
479376
479455
  import { mkdir as mkdir35, readFile as readFile42, writeFile as writeFile39 } from "fs/promises";
479377
479456
  function deriveFirstPrompt(firstUserMessage) {
479378
479457
  const content = firstUserMessage?.message?.content;
@@ -479384,7 +479463,7 @@ function deriveFirstPrompt(firstUserMessage) {
479384
479463
  return raw.replace(/\s+/g, " ").trim().slice(0, 100) || "Branched conversation";
479385
479464
  }
479386
479465
  async function createFork(customTitle) {
479387
- const forkSessionId = randomUUID27();
479466
+ const forkSessionId = randomUUID29();
479388
479467
  const originalSessionId = getSessionId();
479389
479468
  const projectDir = getProjectDir2(getOriginalCwd());
479390
479469
  const forkSessionPath = getTranscriptPathForSession(forkSessionId);
@@ -485957,7 +486036,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
485957
486036
  smapsRollup,
485958
486037
  platform: process.platform,
485959
486038
  nodeVersion: process.version,
485960
- ccVersion: "0.9.4"
486039
+ ccVersion: "0.9.6"
485961
486040
  };
485962
486041
  }
485963
486042
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -486544,7 +486623,7 @@ var init_bridge_kick = __esm(() => {
486544
486623
  var call60 = async () => {
486545
486624
  return {
486546
486625
  type: "text",
486547
- value: `${"0.9.4"} (built ${"2026-05-11T01:40:36.001Z"})`
486626
+ value: `${"0.9.6"} (built ${"2026-05-13T13:07:10.047Z"})`
486548
486627
  };
486549
486628
  }, version2, version_default;
486550
486629
  var init_version = __esm(() => {
@@ -496701,7 +496780,7 @@ function generateHtmlReport(data, insights) {
496701
496780
  function buildExportData(data, insights, facets) {
496702
496781
  let version3;
496703
496782
  try {
496704
- version3 = "0.9.4";
496783
+ version3 = "0.9.6";
496705
496784
  } catch {
496706
496785
  version3 = "unknown";
496707
496786
  }
@@ -500897,7 +500976,7 @@ var init_sessionStorage = __esm(() => {
500897
500976
  init_slowOperations();
500898
500977
  init_uuid();
500899
500978
  try {
500900
- VERSION7 = "0.9.4";
500979
+ VERSION7 = "0.9.6";
500901
500980
  } catch {
500902
500981
  VERSION7 = "unknown";
500903
500982
  }
@@ -502218,7 +502297,7 @@ var init_filesystem = __esm(() => {
502218
502297
  });
502219
502298
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
502220
502299
  const nonce = randomBytes17(16).toString("hex");
502221
- return join137(getZeroTempDir(), "bundled-skills", "0.9.4", nonce);
502300
+ return join137(getZeroTempDir(), "bundled-skills", "0.9.6", nonce);
502222
502301
  });
502223
502302
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
502224
502303
  });
@@ -502957,9 +503036,9 @@ var init_hookHelpers = __esm(() => {
502957
503036
  });
502958
503037
 
502959
503038
  // src/utils/hooks/execPromptHook.ts
502960
- import { randomUUID as randomUUID28 } from "crypto";
503039
+ import { randomUUID as randomUUID30 } from "crypto";
502961
503040
  async function execPromptHook(hook, hookName, hookEvent, jsonInput, signal, toolUseContext, messages, toolUseID) {
502962
- const effectiveToolUseID = toolUseID || `hook-${randomUUID28()}`;
503041
+ const effectiveToolUseID = toolUseID || `hook-${randomUUID30()}`;
502963
503042
  try {
502964
503043
  const processedPrompt = addArgumentsToPrompt(hook.prompt, jsonInput);
502965
503044
  logForDebugging(`Hooks: Processing prompt hook with prompt: ${processedPrompt}`);
@@ -503113,9 +503192,9 @@ var init_execPromptHook = __esm(() => {
503113
503192
  });
503114
503193
 
503115
503194
  // src/utils/hooks/execAgentHook.ts
503116
- import { randomUUID as randomUUID29 } from "crypto";
503195
+ import { randomUUID as randomUUID31 } from "crypto";
503117
503196
  async function execAgentHook(hook, hookName, hookEvent, jsonInput, signal, toolUseContext, toolUseID, _messages, agentName) {
503118
- const effectiveToolUseID = toolUseID || `hook-${randomUUID29()}`;
503197
+ const effectiveToolUseID = toolUseID || `hook-${randomUUID31()}`;
503119
503198
  const transcriptPath = toolUseContext.agentId ? getAgentTranscriptPath(toolUseContext.agentId) : getTranscriptPath();
503120
503199
  const hookStartTime = Date.now();
503121
503200
  try {
@@ -503150,7 +503229,7 @@ When done, return your result using the ${SYNTHETIC_OUTPUT_TOOL_NAME} tool with:
503150
503229
  ]);
503151
503230
  const model = hook.model ?? getSmallFastModel();
503152
503231
  const MAX_AGENT_TURNS = 50;
503153
- const hookAgentId = asAgentId(`hook-agent-${randomUUID29()}`);
503232
+ const hookAgentId = asAgentId(`hook-agent-${randomUUID31()}`);
503154
503233
  const agentToolUseContext = {
503155
503234
  ...toolUseContext,
503156
503235
  agentId: hookAgentId,
@@ -504695,7 +504774,7 @@ __export(exports_hooks2, {
504695
504774
  });
504696
504775
  import { basename as basename47 } from "path";
504697
504776
  import { spawn as spawn9 } from "child_process";
504698
- import { randomUUID as randomUUID30 } from "crypto";
504777
+ import { randomUUID as randomUUID32 } from "crypto";
504699
504778
  function isLocalSyncHook(json2) {
504700
504779
  return !(("async" in json2) && json2.async === true);
504701
504780
  }
@@ -505815,7 +505894,7 @@ async function* executeHooks({
505815
505894
  parentToolUseID: toolUseID,
505816
505895
  toolUseID,
505817
505896
  timestamp: new Date().toISOString(),
505818
- uuid: randomUUID30()
505897
+ uuid: randomUUID32()
505819
505898
  }
505820
505899
  };
505821
505900
  }
@@ -505877,7 +505956,7 @@ async function* executeHooks({
505877
505956
  const { signal: abortSignal, cleanup } = createCombinedAbortSignal(signal, {
505878
505957
  timeoutMs: commandTimeoutMs
505879
505958
  });
505880
- const hookId = randomUUID30();
505959
+ const hookId = randomUUID32();
505881
505960
  const hookStartMs = Date.now();
505882
505961
  const hookCommand = getHookDisplayText(hook);
505883
505962
  try {
@@ -506525,7 +506604,7 @@ async function executeHooksOutsideREPL({
506525
506604
  const callbackTimeoutMs = hook.timeout ? hook.timeout * 1000 : timeoutMs;
506526
506605
  const { signal: abortSignal2, cleanup: cleanup2 } = createCombinedAbortSignal(signal, { timeoutMs: callbackTimeoutMs });
506527
506606
  try {
506528
- const toolUseID = randomUUID30();
506607
+ const toolUseID = randomUUID32();
506529
506608
  const json2 = await hook.callback(hookInput, toolUseID, abortSignal2, hookIndex);
506530
506609
  cleanup2?.();
506531
506610
  if (isLocalAsyncHook(json2)) {
@@ -506636,7 +506715,7 @@ async function executeHooksOutsideREPL({
506636
506715
  const commandTimeoutMs = hook.timeout ? hook.timeout * 1000 : timeoutMs;
506637
506716
  const { signal: abortSignal, cleanup } = createCombinedAbortSignal(signal, { timeoutMs: commandTimeoutMs });
506638
506717
  try {
506639
- const result = await execCommandHook(hook, hookEvent, hookName, jsonInput, abortSignal, randomUUID30(), hookIndex, pluginRoot, pluginId);
506718
+ const result = await execCommandHook(hook, hookEvent, hookName, jsonInput, abortSignal, randomUUID32(), hookIndex, pluginRoot, pluginId);
506640
506719
  cleanup?.();
506641
506720
  if (result.aborted) {
506642
506721
  logForDebugging(`${hookName} [${hook.command}] cancelled`);
@@ -506854,7 +506933,7 @@ async function* executeStopHooks(permissionMode, signal, timeoutMs = TOOL_HOOK_E
506854
506933
  };
506855
506934
  yield* executeHooks({
506856
506935
  hookInput,
506857
- toolUseID: randomUUID30(),
506936
+ toolUseID: randomUUID32(),
506858
506937
  signal,
506859
506938
  timeoutMs,
506860
506939
  toolUseContext,
@@ -506871,7 +506950,7 @@ async function* executeTeammateIdleHooks(teammateName, teamName, permissionMode,
506871
506950
  };
506872
506951
  yield* executeHooks({
506873
506952
  hookInput,
506874
- toolUseID: randomUUID30(),
506953
+ toolUseID: randomUUID32(),
506875
506954
  signal,
506876
506955
  timeoutMs
506877
506956
  });
@@ -506888,7 +506967,7 @@ async function* executeTaskCreatedHooks(taskId, taskSubject, taskDescription, te
506888
506967
  };
506889
506968
  yield* executeHooks({
506890
506969
  hookInput,
506891
- toolUseID: randomUUID30(),
506970
+ toolUseID: randomUUID32(),
506892
506971
  signal,
506893
506972
  timeoutMs,
506894
506973
  toolUseContext
@@ -506908,7 +506987,7 @@ async function* executeTaskCompletedHooks(taskId, taskSubject, taskDescription,
506908
506987
  let preventedContinuation = false;
506909
506988
  for await (const result of executeHooks({
506910
506989
  hookInput,
506911
- toolUseID: randomUUID30(),
506990
+ toolUseID: randomUUID32(),
506912
506991
  signal,
506913
506992
  timeoutMs,
506914
506993
  toolUseContext
@@ -506946,7 +507025,7 @@ async function* executeUserPromptSubmitHooks(prompt, permissionMode, toolUseCont
506946
507025
  };
506947
507026
  yield* executeHooks({
506948
507027
  hookInput,
506949
- toolUseID: randomUUID30(),
507028
+ toolUseID: randomUUID32(),
506950
507029
  signal: toolUseContext.abortController.signal,
506951
507030
  timeoutMs: TOOL_HOOK_EXECUTION_TIMEOUT_MS,
506952
507031
  toolUseContext,
@@ -506963,7 +507042,7 @@ async function* executeSessionStartHooks(source, sessionId, agentType, model, si
506963
507042
  };
506964
507043
  yield* executeHooks({
506965
507044
  hookInput,
506966
- toolUseID: randomUUID30(),
507045
+ toolUseID: randomUUID32(),
506967
507046
  matchQuery: source,
506968
507047
  signal,
506969
507048
  timeoutMs,
@@ -506978,7 +507057,7 @@ async function* executeSetupHooks(trigger, signal, timeoutMs = TOOL_HOOK_EXECUTI
506978
507057
  };
506979
507058
  yield* executeHooks({
506980
507059
  hookInput,
506981
- toolUseID: randomUUID30(),
507060
+ toolUseID: randomUUID32(),
506982
507061
  matchQuery: trigger,
506983
507062
  signal,
506984
507063
  timeoutMs,
@@ -506994,7 +507073,7 @@ async function* executeSubagentStartHooks(agentId, agentType, signal, timeoutMs
506994
507073
  };
506995
507074
  yield* executeHooks({
506996
507075
  hookInput,
506997
- toolUseID: randomUUID30(),
507076
+ toolUseID: randomUUID32(),
506998
507077
  matchQuery: agentType,
506999
507078
  signal,
507000
507079
  timeoutMs
@@ -507357,7 +507436,7 @@ async function executeStatusLineCommand(statusLineInput, signal, timeoutMs = 500
507357
507436
  const abortSignal = signal || AbortSignal.timeout(timeoutMs);
507358
507437
  try {
507359
507438
  const jsonInput = jsonStringify(statusLineInput);
507360
- const result = await execCommandHook(statusLine, "StatusLine", "statusLine", jsonInput, abortSignal, randomUUID30());
507439
+ const result = await execCommandHook(statusLine, "StatusLine", "statusLine", jsonInput, abortSignal, randomUUID32());
507361
507440
  if (result.aborted) {
507362
507441
  return;
507363
507442
  }
@@ -507401,7 +507480,7 @@ async function executeFileSuggestionCommand(fileSuggestionInput, signal, timeout
507401
507480
  try {
507402
507481
  const jsonInput = jsonStringify(fileSuggestionInput);
507403
507482
  const hook = { type: "command", command: fileSuggestion.command };
507404
- const result = await execCommandHook(hook, "FileSuggestion", "FileSuggestion", jsonInput, abortSignal, randomUUID30());
507483
+ const result = await execCommandHook(hook, "FileSuggestion", "FileSuggestion", jsonInput, abortSignal, randomUUID32());
507405
507484
  if (result.aborted || result.status !== 0) {
507406
507485
  return [];
507407
507486
  }
@@ -513216,7 +513295,7 @@ var init_inboundMessages = __esm(() => {
513216
513295
  });
513217
513296
 
513218
513297
  // src/utils/messages/systemInit.ts
513219
- import { randomUUID as randomUUID31 } from "crypto";
513298
+ import { randomUUID as randomUUID33 } from "crypto";
513220
513299
  function sdkCompatToolName(name) {
513221
513300
  return name === AGENT_TOOL_NAME ? LEGACY_AGENT_TOOL_NAME : name;
513222
513301
  }
@@ -513238,7 +513317,7 @@ function buildSystemInitMessage(inputs) {
513238
513317
  slash_commands: inputs.commands.filter((c6) => c6.userInvocable !== false).map((c6) => c6.name),
513239
513318
  apiKeySource: getAnthropicApiKeyWithSource().source,
513240
513319
  betas: getSdkBetas(),
513241
- claude_code_version: "0.9.4",
513320
+ claude_code_version: "0.9.6",
513242
513321
  output_style: outputStyle2,
513243
513322
  agents: inputs.agents.map((agent2) => agent2.agentType),
513244
513323
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -513247,7 +513326,7 @@ function buildSystemInitMessage(inputs) {
513247
513326
  path: plugin2.path,
513248
513327
  source: plugin2.source
513249
513328
  })),
513250
- uuid: randomUUID31()
513329
+ uuid: randomUUID33()
513251
513330
  };
513252
513331
  if (false) {}
513253
513332
  initMessage.fast_mode_state = getFastModeState(inputs.model, inputs.fastMode);
@@ -513331,7 +513410,7 @@ __export(exports_MessageSelector, {
513331
513410
  messagesAfterAreOnlySynthetic: () => messagesAfterAreOnlySynthetic,
513332
513411
  MessageSelector: () => MessageSelector
513333
513412
  });
513334
- import { randomUUID as randomUUID32 } from "crypto";
513413
+ import { randomUUID as randomUUID34 } from "crypto";
513335
513414
  import * as path21 from "path";
513336
513415
  function isTextBlock2(block2) {
513337
513416
  return block2.type === "text";
@@ -513351,7 +513430,7 @@ function MessageSelector({
513351
513430
  const fileHistory = useAppState((s) => s.fileHistory);
513352
513431
  const [error42, setError] = import_react198.useState(undefined);
513353
513432
  const isFileHistoryEnabled = fileHistoryEnabled();
513354
- const currentUUID = import_react198.useMemo(randomUUID32, []);
513433
+ const currentUUID = import_react198.useMemo(randomUUID34, []);
513355
513434
  const messageOptions = import_react198.useMemo(() => [...messages.filter(selectableUserMessagesFilter), {
513356
513435
  ...createUserMessage({
513357
513436
  content: ""
@@ -519194,7 +519273,7 @@ var init_FileEditToolDiff = __esm(() => {
519194
519273
  });
519195
519274
 
519196
519275
  // src/hooks/useDiffInIDE.ts
519197
- import { randomUUID as randomUUID33 } from "crypto";
519276
+ import { randomUUID as randomUUID35 } from "crypto";
519198
519277
  import { basename as basename50 } from "path";
519199
519278
  function useDiffInIDE({
519200
519279
  onChange,
@@ -519205,7 +519284,7 @@ function useDiffInIDE({
519205
519284
  }) {
519206
519285
  const isUnmounted = import_react209.useRef(false);
519207
519286
  const [hasError, setHasError] = import_react209.useState(false);
519208
- const sha = import_react209.useMemo(() => randomUUID33().slice(0, 6), []);
519287
+ const sha = import_react209.useMemo(() => randomUUID35().slice(0, 6), []);
519209
519288
  const tabName = import_react209.useMemo(() => `⟁ [ZeroCLI] ${basename50(filePath)} (${sha}) ⧉`, [filePath, sha]);
519210
519289
  const shouldShowDiffInIDE = hasAccessToIDEExtensionDiffFeature(toolUseContext.options.mcpClients) && getGlobalConfig().diffTool === "auto" && !filePath.endsWith(".ipynb");
519211
519290
  const ideName = getConnectedIdeName(toolUseContext.options.mcpClients) ?? "IDE";
@@ -528553,7 +528632,7 @@ var init_useVoiceEnabled = __esm(() => {
528553
528632
  function getSemverPart(version3) {
528554
528633
  return `${import_semver12.major(version3, { loose: true })}.${import_semver12.minor(version3, { loose: true })}.${import_semver12.patch(version3, { loose: true })}`;
528555
528634
  }
528556
- function useUpdateNotification(updatedVersion, initialVersion = "0.9.4") {
528635
+ function useUpdateNotification(updatedVersion, initialVersion = "0.9.6") {
528557
528636
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
528558
528637
  if (!updatedVersion) {
528559
528638
  return null;
@@ -528596,7 +528675,7 @@ function AutoUpdater({
528596
528675
  return;
528597
528676
  }
528598
528677
  if (false) {}
528599
- const currentVersion = "0.9.4";
528678
+ const currentVersion = "0.9.6";
528600
528679
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
528601
528680
  let latestVersion = await getLatestVersion(channel2);
528602
528681
  const isDisabled = isAutoUpdaterDisabled();
@@ -528817,12 +528896,12 @@ function NativeAutoUpdater({
528817
528896
  logEvent("tengu_native_auto_updater_start", {});
528818
528897
  try {
528819
528898
  const maxVersion = await getMaxVersion();
528820
- if (maxVersion && gt("0.9.4", maxVersion)) {
528899
+ if (maxVersion && gt("0.9.6", maxVersion)) {
528821
528900
  const msg = await getMaxVersionMessage();
528822
528901
  setMaxVersionIssue(msg ?? "affects your version");
528823
528902
  }
528824
528903
  const result = await installLatest(channel2);
528825
- const currentVersion = "0.9.4";
528904
+ const currentVersion = "0.9.6";
528826
528905
  const latencyMs = Date.now() - startTime2;
528827
528906
  if (result.lockFailed) {
528828
528907
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -528964,17 +529043,17 @@ function PackageManagerAutoUpdater(t0) {
528964
529043
  const maxVersion = await getMaxVersion();
528965
529044
  if (maxVersion && latest && gt(latest, maxVersion)) {
528966
529045
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
528967
- if (gte("0.9.4", maxVersion)) {
528968
- logForDebugging(`PackageManagerAutoUpdater: current version ${"0.9.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
529046
+ if (gte("0.9.6", maxVersion)) {
529047
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"0.9.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
528969
529048
  setUpdateAvailable(false);
528970
529049
  return;
528971
529050
  }
528972
529051
  latest = maxVersion;
528973
529052
  }
528974
- const hasUpdate = latest && !gte("0.9.4", latest) && !shouldSkipVersion(latest);
529053
+ const hasUpdate = latest && !gte("0.9.6", latest) && !shouldSkipVersion(latest);
528975
529054
  setUpdateAvailable(!!hasUpdate);
528976
529055
  if (hasUpdate) {
528977
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.9.4"} -> ${latest}`);
529056
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.9.6"} -> ${latest}`);
528978
529057
  }
528979
529058
  };
528980
529059
  $2[0] = t1;
@@ -529008,7 +529087,7 @@ function PackageManagerAutoUpdater(t0) {
529008
529087
  wrap: "truncate",
529009
529088
  children: [
529010
529089
  "currentVersion: ",
529011
- "0.9.4"
529090
+ "0.9.6"
529012
529091
  ]
529013
529092
  });
529014
529093
  $2[3] = verbose;
@@ -536007,7 +536086,7 @@ var init_teamDiscovery = __esm(() => {
536007
536086
  });
536008
536087
 
536009
536088
  // src/components/teams/TeamsDialog.tsx
536010
- import { randomUUID as randomUUID34 } from "crypto";
536089
+ import { randomUUID as randomUUID36 } from "crypto";
536011
536090
  function TeamsDialog({
536012
536091
  initialTeams,
536013
536092
  onDone
@@ -536635,7 +536714,7 @@ async function killTeammate(paneId, backendType, teamName, teammateId, teammateN
536635
536714
  },
536636
536715
  inbox: {
536637
536716
  messages: [...prev.inbox.messages, {
536638
- id: randomUUID34(),
536717
+ id: randomUUID36(),
536639
536718
  from: "system",
536640
536719
  text: jsonStringify({
536641
536720
  type: "teammate_terminated",
@@ -538037,7 +538116,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
538037
538116
  project_dir: getOriginalCwd(),
538038
538117
  added_dirs: addedDirs
538039
538118
  },
538040
- version: "0.9.4",
538119
+ version: "0.9.6",
538041
538120
  output_style: {
538042
538121
  name: outputStyleName
538043
538122
  },
@@ -542438,7 +542517,7 @@ function normalizeControlMessageKeys(obj) {
542438
542517
  }
542439
542518
 
542440
542519
  // src/bridge/bridgeMessaging.ts
542441
- import { randomUUID as randomUUID35 } from "crypto";
542520
+ import { randomUUID as randomUUID37 } from "crypto";
542442
542521
  function isSDKMessage(value) {
542443
542522
  return value !== null && typeof value === "object" && "type" in value && typeof value.type === "string";
542444
542523
  }
@@ -542646,7 +542725,7 @@ function makeResultMessage(sessionId) {
542646
542725
  modelUsage: {},
542647
542726
  permission_denials: [],
542648
542727
  session_id: sessionId,
542649
- uuid: randomUUID35()
542728
+ uuid: randomUUID37()
542650
542729
  };
542651
542730
  }
542652
542731
 
@@ -542689,7 +542768,7 @@ var init_bridgeMessaging = __esm(() => {
542689
542768
  });
542690
542769
 
542691
542770
  // src/remote/SessionsWebSocket.ts
542692
- import { randomUUID as randomUUID36 } from "crypto";
542771
+ import { randomUUID as randomUUID38 } from "crypto";
542693
542772
  function isSessionsMessage(value) {
542694
542773
  if (typeof value !== "object" || value === null || !("type" in value)) {
542695
542774
  return false;
@@ -542873,7 +542952,7 @@ class SessionsWebSocket {
542873
542952
  }
542874
542953
  const controlRequest = {
542875
542954
  type: "control_request",
542876
- request_id: randomUUID36(),
542955
+ request_id: randomUUID38(),
542877
542956
  request
542878
542957
  };
542879
542958
  logForDebugging(`[SessionsWebSocket] Sending control request: ${request.subtype}`);
@@ -543067,11 +543146,11 @@ var init_RemoteSessionManager = __esm(() => {
543067
543146
  });
543068
543147
 
543069
543148
  // src/remote/remotePermissionBridge.ts
543070
- import { randomUUID as randomUUID37 } from "crypto";
543149
+ import { randomUUID as randomUUID39 } from "crypto";
543071
543150
  function createSyntheticAssistantMessage(request, requestId) {
543072
543151
  return {
543073
543152
  type: "assistant",
543074
- uuid: randomUUID37(),
543153
+ uuid: randomUUID39(),
543075
543154
  message: {
543076
543155
  id: `remote-${requestId}`,
543077
543156
  type: "message",
@@ -543597,6 +543676,7 @@ var init_useRemoteSession = __esm(() => {
543597
543676
  });
543598
543677
 
543599
543678
  // src/server/directConnectManager.ts
543679
+ import { randomUUID as randomUUID40 } from "crypto";
543600
543680
  function isStdoutMessage(value) {
543601
543681
  return typeof value === "object" && value !== null && "type" in value && typeof value.type === "string";
543602
543682
  }
@@ -543696,7 +543776,7 @@ class DirectConnectSessionManager {
543696
543776
  }
543697
543777
  const request = jsonStringify({
543698
543778
  type: "control_request",
543699
- request_id: crypto.randomUUID(),
543779
+ request_id: randomUUID40(),
543700
543780
  request: {
543701
543781
  subtype: "interrupt"
543702
543782
  }
@@ -543884,7 +543964,7 @@ var init_useDirectConnect = __esm(() => {
543884
543964
  });
543885
543965
 
543886
543966
  // src/hooks/useSSHSession.ts
543887
- import { randomUUID as randomUUID38 } from "crypto";
543967
+ import { randomUUID as randomUUID41 } from "crypto";
543888
543968
  function useSSHSession({
543889
543969
  session: session2,
543890
543970
  setMessages,
@@ -543984,7 +544064,7 @@ function useSSHSession({
543984
544064
  subtype: "informational",
543985
544065
  content: `SSH connection dropped — reconnecting (attempt ${attempt}/${max2})...`,
543986
544066
  timestamp: new Date().toISOString(),
543987
- uuid: randomUUID38(),
544067
+ uuid: randomUUID41(),
543988
544068
  level: "warning",
543989
544069
  isMeta: false
543990
544070
  };
@@ -546126,7 +546206,7 @@ var init_PermissionContext = __esm(() => {
546126
546206
  });
546127
546207
 
546128
546208
  // src/hooks/toolPermission/handlers/interactiveHandler.ts
546129
- import { randomUUID as randomUUID39 } from "crypto";
546209
+ import { randomUUID as randomUUID42 } from "crypto";
546130
546210
  function handleInteractivePermission(params, resolve44) {
546131
546211
  const {
546132
546212
  ctx,
@@ -546140,7 +546220,7 @@ function handleInteractivePermission(params, resolve44) {
546140
546220
  let userInteracted = false;
546141
546221
  let checkmarkTransitionTimer;
546142
546222
  let checkmarkAbortHandler;
546143
- const bridgeRequestId = bridgeCallbacks ? randomUUID39() : undefined;
546223
+ const bridgeRequestId = bridgeCallbacks ? randomUUID42() : undefined;
546144
546224
  let channelUnsubscribe;
546145
546225
  const permissionPromptStartTimeMs = Date.now();
546146
546226
  const displayInput = result.updatedInput ?? ctx.input;
@@ -546562,9 +546642,9 @@ function matchesKeepGoingKeyword(input) {
546562
546642
  }
546563
546643
 
546564
546644
  // src/utils/processUserInput/processTextPrompt.ts
546565
- import { randomUUID as randomUUID40 } from "crypto";
546645
+ import { randomUUID as randomUUID43 } from "crypto";
546566
546646
  function processTextPrompt(input, imageContentBlocks, imagePasteIds, attachmentMessages, uuid3, permissionMode, isMeta) {
546567
- const promptId = randomUUID40();
546647
+ const promptId = randomUUID43();
546568
546648
  setPromptId(promptId);
546569
546649
  const userPromptText = typeof input === "string" ? input : input.find((block2) => block2.type === "text")?.text || "";
546570
546650
  startInteractionSpan(userPromptText);
@@ -546697,7 +546777,7 @@ var exports_processBashCommand = {};
546697
546777
  __export(exports_processBashCommand, {
546698
546778
  processBashCommand: () => processBashCommand
546699
546779
  });
546700
- import { randomUUID as randomUUID41 } from "crypto";
546780
+ import { randomUUID as randomUUID44 } from "crypto";
546701
546781
  async function processBashCommand(inputString, precedingInputBlocks, attachmentMessages, context6, setToolJSX) {
546702
546782
  const usePowerShell = isPowerShellToolEnabled() && resolveDefaultShell() === "powershell";
546703
546783
  logEvent("tengu_input_bash", {
@@ -546763,7 +546843,7 @@ async function processBashCommand(inputString, precedingInputBlocks, attachmentM
546763
546843
  const mapped = await processToolResultBlock(shellTool, {
546764
546844
  ...data,
546765
546845
  stderr: ""
546766
- }, randomUUID41());
546846
+ }, randomUUID44());
546767
546847
  const stdout = typeof mapped.content === "string" ? mapped.content : escapeXml(data.stdout);
546768
546848
  return {
546769
546849
  messages: [createSyntheticUserCaveatMessage(), userMessage, ...attachmentMessages, createUserMessage({
@@ -546811,7 +546891,7 @@ var init_processBashCommand = __esm(() => {
546811
546891
  });
546812
546892
 
546813
546893
  // src/utils/processUserInput/processUserInput.ts
546814
- import { randomUUID as randomUUID42 } from "crypto";
546894
+ import { randomUUID as randomUUID45 } from "crypto";
546815
546895
  async function processUserInput({
546816
546896
  input,
546817
546897
  preExpansionInput,
@@ -546873,7 +546953,7 @@ Original prompt: ${input}`, "warning")
546873
546953
  type: "hook_additional_context",
546874
546954
  content: hookResult.additionalContexts.map(applyTruncation),
546875
546955
  hookName: "UserPromptSubmit",
546876
- toolUseID: `hook-${randomUUID42()}`,
546956
+ toolUseID: `hook-${randomUUID45()}`,
546877
546957
  hookEvent: "UserPromptSubmit"
546878
546958
  }));
546879
546959
  }
@@ -548392,7 +548472,7 @@ var init_sessionRestore = __esm(() => {
548392
548472
  });
548393
548473
 
548394
548474
  // src/hooks/useInboxPoller.ts
548395
- import { randomUUID as randomUUID43 } from "crypto";
548475
+ import { randomUUID as randomUUID46 } from "crypto";
548396
548476
  function getAgentNameToPoll(appState) {
548397
548477
  if (isInProcessTeammate()) {
548398
548478
  return;
@@ -548809,7 +548889,7 @@ function useInboxPoller({
548809
548889
  messages: [
548810
548890
  ...prev.inbox.messages,
548811
548891
  {
548812
- id: randomUUID43(),
548892
+ id: randomUUID46(),
548813
548893
  from: "system",
548814
548894
  text: jsonStringify({
548815
548895
  type: "teammate_terminated",
@@ -548849,7 +548929,7 @@ ${messageContent}
548849
548929
  messages: [
548850
548930
  ...prev.inbox.messages,
548851
548931
  ...regularMessages.map((m) => ({
548852
- id: randomUUID43(),
548932
+ id: randomUUID46(),
548853
548933
  from: m.from,
548854
548934
  text: m.text,
548855
548935
  timestamp: m.timestamp,
@@ -549688,7 +549768,7 @@ async function submitTranscriptShare() {
549688
549768
  }
549689
549769
 
549690
549770
  // src/components/FeedbackSurvey/useSurveyState.tsx
549691
- import { randomUUID as randomUUID44 } from "crypto";
549771
+ import { randomUUID as randomUUID47 } from "crypto";
549692
549772
  function useSurveyState({
549693
549773
  hideThanksAfterMs,
549694
549774
  onOpen,
@@ -549699,7 +549779,7 @@ function useSurveyState({
549699
549779
  }) {
549700
549780
  const [state2, setState] = import_react291.useState("closed");
549701
549781
  const [lastResponse, setLastResponse] = import_react291.useState(null);
549702
- const appearanceId = import_react291.useRef(randomUUID44());
549782
+ const appearanceId = import_react291.useRef(randomUUID47());
549703
549783
  const lastResponseRef = import_react291.useRef(null);
549704
549784
  const showThanksThenClose = import_react291.useCallback(() => {
549705
549785
  setState("thanks");
@@ -549717,7 +549797,7 @@ function useSurveyState({
549717
549797
  return;
549718
549798
  }
549719
549799
  setState("open");
549720
- appearanceId.current = randomUUID44();
549800
+ appearanceId.current = randomUUID47();
549721
549801
  onOpen(appearanceId.current);
549722
549802
  }, [state2, onOpen]);
549723
549803
  const handleSelect = import_react291.useCallback((selected) => {
@@ -552624,7 +552704,7 @@ var init_ndjsonSafeStringify = __esm(() => {
552624
552704
  });
552625
552705
 
552626
552706
  // src/cli/structuredIO.ts
552627
- import { randomUUID as randomUUID45 } from "crypto";
552707
+ import { randomUUID as randomUUID48 } from "crypto";
552628
552708
  function serializeDecisionReason(reason) {
552629
552709
  if (!reason) {
552630
552710
  return;
@@ -552877,7 +552957,7 @@ class StructuredIO {
552877
552957
  writeToStdout(ndjsonSafeStringify(message) + `
552878
552958
  `);
552879
552959
  }
552880
- async sendRequest(request, schema, signal, requestId = randomUUID45()) {
552960
+ async sendRequest(request, schema, signal, requestId = randomUUID48()) {
552881
552961
  const message = {
552882
552962
  type: "control_request",
552883
552963
  request_id: requestId,
@@ -552943,7 +553023,7 @@ class StructuredIO {
552943
553023
  parentSignal.addEventListener("abort", onParentAbort, { once: true });
552944
553024
  try {
552945
553025
  const hookPromise = executePermissionRequestHooksForSDK(tool.name, toolUseID, input, toolUseContext, mainPermissionResult.suggestions).then((decision) => ({ source: "hook", decision }));
552946
- const requestId = randomUUID45();
553026
+ const requestId = randomUUID48();
552947
553027
  onPermissionPrompt?.(buildRequiresActionDetails(tool, input, toolUseID, requestId));
552948
553028
  const sdkPromise = this.sendRequest({
552949
553029
  subtype: "can_use_tool",
@@ -553023,7 +553103,7 @@ class StructuredIO {
553023
553103
  subtype: "can_use_tool",
553024
553104
  tool_name: SANDBOX_NETWORK_ACCESS_TOOL_NAME,
553025
553105
  input: { host: hostPattern.host },
553026
- tool_use_id: randomUUID45(),
553106
+ tool_use_id: randomUUID48(),
553027
553107
  description: `Allow network connection to ${hostPattern.host}?`
553028
553108
  }, outputSchema35());
553029
553109
  return result.behavior === "allow";
@@ -557621,7 +557701,7 @@ __export(exports_REPL, {
557621
557701
  import { dirname as dirname59, join as join149 } from "path";
557622
557702
  import { tmpdir as tmpdir10 } from "os";
557623
557703
  import { writeFile as writeFile51 } from "fs/promises";
557624
- import { randomUUID as randomUUID46 } from "crypto";
557704
+ import { randomUUID as randomUUID49 } from "crypto";
557625
557705
  function TranscriptModeFooter(t0) {
557626
557706
  const $2 = import_react_compiler_runtime351.c(9);
557627
557707
  const {
@@ -558386,7 +558466,7 @@ function REPL({
558386
558466
  const [isMessageSelectorVisible, setIsMessageSelectorVisible] = import_react318.useState(false);
558387
558467
  const [messageSelectorPreselect, setMessageSelectorPreselect] = import_react318.useState(undefined);
558388
558468
  const [showCostDialog, setShowCostDialog] = import_react318.useState(false);
558389
- const [conversationId, setConversationId] = import_react318.useState(randomUUID46());
558469
+ const [conversationId, setConversationId] = import_react318.useState(randomUUID49());
558390
558470
  const [idleReturnPending, setIdleReturnPending] = import_react318.useState(null);
558391
558471
  const skipIdleCheckRef = import_react318.useRef(false);
558392
558472
  const lastQueryCompletionTimeRef = import_react318.useRef(lastQueryCompletionTime);
@@ -559144,7 +559224,7 @@ Error: sandbox required but unavailable: ${reason}
559144
559224
  } else {
559145
559225
  setMessages(() => [newMessage]);
559146
559226
  }
559147
- setConversationId(randomUUID46());
559227
+ setConversationId(randomUUID49());
559148
559228
  if (false) {}
559149
559229
  } else if (newMessage.type === "progress" && isEphemeralToolProgress(newMessage.data.type)) {
559150
559230
  setMessages((oldMessages) => {
@@ -559220,7 +559300,7 @@ Error: sandbox required but unavailable: ${reason}
559220
559300
  });
559221
559301
  if (!shouldQuery) {
559222
559302
  if (newMessages.some(isCompactBoundaryMessage)) {
559223
- setConversationId(randomUUID46());
559303
+ setConversationId(randomUUID49());
559224
559304
  if (false) {}
559225
559305
  }
559226
559306
  resetLoadingState();
@@ -559853,7 +559933,7 @@ Error: sandbox required but unavailable: ${reason}
559853
559933
  rewindToMessageIndex: messageIndex
559854
559934
  });
559855
559935
  setMessages(prev.slice(0, messageIndex));
559856
- setConversationId(randomUUID46());
559936
+ setConversationId(randomUUID49());
559857
559937
  resetMicrocompactState();
559858
559938
  if (false) {}
559859
559939
  setAppState((prev2) => ({
@@ -561030,7 +561110,7 @@ Note: ctrl + z now suspends ZeroCLI, ctrl + _ undoes input.
561030
561110
  setMessages(postCompact);
561031
561111
  }
561032
561112
  if (false) {}
561033
- setConversationId(randomUUID46());
561113
+ setConversationId(randomUUID49());
561034
561114
  runPostCompactCleanup(context6.options.querySource);
561035
561115
  if (direction === "from") {
561036
561116
  const r = textForResubmit(message);
@@ -562539,7 +562619,7 @@ function WelcomeV2() {
562539
562619
  dimColor: true,
562540
562620
  children: [
562541
562621
  "v",
562542
- "0.9.4",
562622
+ "0.9.6",
562543
562623
  " "
562544
562624
  ]
562545
562625
  })
@@ -562773,7 +562853,7 @@ function WelcomeV2() {
562773
562853
  dimColor: true,
562774
562854
  children: [
562775
562855
  "v",
562776
- "0.9.4",
562856
+ "0.9.6",
562777
562857
  " "
562778
562858
  ]
562779
562859
  })
@@ -563020,7 +563100,7 @@ function AppleTerminalWelcomeV2(t0) {
563020
563100
  dimColor: true,
563021
563101
  children: [
563022
563102
  "v",
563023
- "0.9.4",
563103
+ "0.9.6",
563024
563104
  " "
563025
563105
  ]
563026
563106
  });
@@ -563293,7 +563373,7 @@ function AppleTerminalWelcomeV2(t0) {
563293
563373
  dimColor: true,
563294
563374
  children: [
563295
563375
  "v",
563296
- "0.9.4",
563376
+ "0.9.6",
563297
563377
  " "
563298
563378
  ]
563299
563379
  });
@@ -564805,7 +564885,7 @@ function completeOnboarding() {
564805
564885
  saveGlobalConfig((current) => ({
564806
564886
  ...current,
564807
564887
  hasCompletedOnboarding: true,
564808
- lastOnboardingVersion: "0.9.4"
564888
+ lastOnboardingVersion: "0.9.6"
564809
564889
  }));
564810
564890
  }
564811
564891
  function showDialog(root2, renderer) {
@@ -569056,7 +569136,7 @@ function appendToLog(path24, message) {
569056
569136
  cwd: getFsImplementation().cwd(),
569057
569137
  userType: process.env.USER_TYPE,
569058
569138
  sessionId: getSessionId(),
569059
- version: "0.9.4"
569139
+ version: "0.9.6"
569060
569140
  };
569061
569141
  getLogWriter(path24).write(messageWithTimestamp);
569062
569142
  }
@@ -569662,7 +569742,7 @@ async function startMCPServer(cwd2, debug, verbose) {
569662
569742
  setCwd(cwd2);
569663
569743
  const server = new Server({
569664
569744
  name: "claude/tengu",
569665
- version: "0.9.4"
569745
+ version: "0.9.6"
569666
569746
  }, {
569667
569747
  capabilities: {
569668
569748
  tools: {}
@@ -571272,7 +571352,7 @@ function coalescePatches(base2, overlay) {
571272
571352
  var init_WorkerStateUploader = () => {};
571273
571353
 
571274
571354
  // src/cli/transports/ccrClient.ts
571275
- import { randomUUID as randomUUID47 } from "crypto";
571355
+ import { randomUUID as randomUUID50 } from "crypto";
571276
571356
  function alwaysValidStatus() {
571277
571357
  return true;
571278
571358
  }
@@ -571633,7 +571713,7 @@ class CCRClient {
571633
571713
  return {
571634
571714
  payload: {
571635
571715
  ...msg,
571636
- uuid: typeof msg.uuid === "string" ? msg.uuid : randomUUID47()
571716
+ uuid: typeof msg.uuid === "string" ? msg.uuid : randomUUID50()
571637
571717
  }
571638
571718
  };
571639
571719
  }
@@ -571657,7 +571737,7 @@ class CCRClient {
571657
571737
  payload: {
571658
571738
  type: eventType,
571659
571739
  ...payload,
571660
- uuid: typeof payload.uuid === "string" ? payload.uuid : randomUUID47()
571740
+ uuid: typeof payload.uuid === "string" ? payload.uuid : randomUUID50()
571661
571741
  },
571662
571742
  ...isCompaction && { is_compaction: true },
571663
571743
  ...agentId && { agent_id: agentId }
@@ -573166,7 +573246,7 @@ var init_queryContext = __esm(() => {
573166
573246
  });
573167
573247
 
573168
573248
  // src/QueryEngine.ts
573169
- import { randomUUID as randomUUID48 } from "crypto";
573249
+ import { randomUUID as randomUUID51 } from "crypto";
573170
573250
 
573171
573251
  class QueryEngine {
573172
573252
  config;
@@ -573468,7 +573548,7 @@ class QueryEngine {
573468
573548
  modelUsage: getModelUsage(),
573469
573549
  permission_denials: this.permissionDenials,
573470
573550
  fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
573471
- uuid: randomUUID48()
573551
+ uuid: randomUUID51()
573472
573552
  };
573473
573553
  return;
573474
573554
  }
@@ -573591,7 +573671,7 @@ class QueryEngine {
573591
573671
  event: message.event,
573592
573672
  session_id: getSessionId(),
573593
573673
  parent_tool_use_id: null,
573594
- uuid: randomUUID48()
573674
+ uuid: randomUUID51()
573595
573675
  };
573596
573676
  }
573597
573677
  break;
@@ -573623,7 +573703,7 @@ class QueryEngine {
573623
573703
  modelUsage: getModelUsage(),
573624
573704
  permission_denials: this.permissionDenials,
573625
573705
  fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
573626
- uuid: randomUUID48(),
573706
+ uuid: randomUUID51(),
573627
573707
  errors: [
573628
573708
  `Reached maximum number of turns (${message.attachment.maxTurns})`
573629
573709
  ]
@@ -573718,7 +573798,7 @@ class QueryEngine {
573718
573798
  modelUsage: getModelUsage(),
573719
573799
  permission_denials: this.permissionDenials,
573720
573800
  fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
573721
- uuid: randomUUID48(),
573801
+ uuid: randomUUID51(),
573722
573802
  errors: [`Reached maximum budget ($${maxBudgetUsd})`]
573723
573803
  };
573724
573804
  return;
@@ -573747,7 +573827,7 @@ class QueryEngine {
573747
573827
  modelUsage: getModelUsage(),
573748
573828
  permission_denials: this.permissionDenials,
573749
573829
  fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
573750
- uuid: randomUUID48(),
573830
+ uuid: randomUUID51(),
573751
573831
  errors: [
573752
573832
  `Failed to provide valid structured output after ${maxRetries} attempts`
573753
573833
  ]
@@ -573779,7 +573859,7 @@ class QueryEngine {
573779
573859
  modelUsage: getModelUsage(),
573780
573860
  permission_denials: this.permissionDenials,
573781
573861
  fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
573782
- uuid: randomUUID48(),
573862
+ uuid: randomUUID51(),
573783
573863
  errors: (() => {
573784
573864
  const all6 = getInMemoryErrors();
573785
573865
  const start = errorLogWatermark ? all6.lastIndexOf(errorLogWatermark) + 1 : 0;
@@ -573816,7 +573896,7 @@ class QueryEngine {
573816
573896
  permission_denials: this.permissionDenials,
573817
573897
  structured_output: structuredOutputFromTool,
573818
573898
  fast_mode_state: getFastModeState(mainLoopModel, initialAppState.fastMode),
573819
- uuid: randomUUID48()
573899
+ uuid: randomUUID51()
573820
573900
  };
573821
573901
  }
573822
573902
  interrupt() {
@@ -573994,7 +574074,7 @@ var init_idleTimeout = __esm(() => {
573994
574074
  });
573995
574075
 
573996
574076
  // src/bridge/inboundAttachments.ts
573997
- import { randomUUID as randomUUID49 } from "crypto";
574077
+ import { randomUUID as randomUUID52 } from "crypto";
573998
574078
  import { mkdir as mkdir48, writeFile as writeFile53 } from "fs/promises";
573999
574079
  import { basename as basename61, join as join153 } from "path";
574000
574080
  function debug(msg) {
@@ -574039,7 +574119,7 @@ async function resolveOne(att) {
574039
574119
  return;
574040
574120
  }
574041
574121
  const safeName = sanitizeFileName(att.file_name);
574042
- const prefix = (att.file_uuid.slice(0, 8) || randomUUID49().slice(0, 8)).replace(/[^a-zA-Z0-9_-]/g, "_");
574122
+ const prefix = (att.file_uuid.slice(0, 8) || randomUUID52().slice(0, 8)).replace(/[^a-zA-Z0-9_-]/g, "_");
574043
574123
  const dir = uploadsDir();
574044
574124
  const outPath = join153(dir, `${prefix}-${safeName}`);
574045
574125
  try {
@@ -574103,11 +574183,11 @@ var init_inboundAttachments = __esm(() => {
574103
574183
  });
574104
574184
 
574105
574185
  // src/utils/sessionUrl.ts
574106
- import { randomUUID as randomUUID50 } from "crypto";
574186
+ import { randomUUID as randomUUID53 } from "crypto";
574107
574187
  function parseSessionIdentifier(resumeIdentifier) {
574108
574188
  if (resumeIdentifier.toLowerCase().endsWith(".jsonl")) {
574109
574189
  return {
574110
- sessionId: randomUUID50(),
574190
+ sessionId: randomUUID53(),
574111
574191
  ingressUrl: null,
574112
574192
  isUrl: false,
574113
574193
  jsonlFile: resumeIdentifier,
@@ -574126,7 +574206,7 @@ function parseSessionIdentifier(resumeIdentifier) {
574126
574206
  try {
574127
574207
  const url4 = new URL(resumeIdentifier);
574128
574208
  return {
574129
- sessionId: randomUUID50(),
574209
+ sessionId: randomUUID53(),
574130
574210
  ingressUrl: url4.href,
574131
574211
  isUrl: true,
574132
574212
  jsonlFile: null,
@@ -574301,8 +574381,8 @@ async function getEnvLessBridgeConfig() {
574301
574381
  }
574302
574382
  async function checkEnvLessBridgeMinVersion() {
574303
574383
  const cfg = await getEnvLessBridgeConfig();
574304
- if (cfg.min_version && lt("0.9.4", cfg.min_version)) {
574305
- return `Your version of ZeroCLI (${"0.9.4"}) is too old for Remote Control.
574384
+ if (cfg.min_version && lt("0.9.6", cfg.min_version)) {
574385
+ return `Your version of ZeroCLI (${"0.9.6"}) is too old for Remote Control.
574306
574386
  Version ${cfg.min_version} or higher is required. Run \`zero update\` to update.`;
574307
574387
  }
574308
574388
  return null;
@@ -574735,7 +574815,7 @@ var init_bridgePointer = __esm(() => {
574735
574815
  });
574736
574816
 
574737
574817
  // src/bridge/replBridge.ts
574738
- import { randomUUID as randomUUID51 } from "crypto";
574818
+ import { randomUUID as randomUUID54 } from "crypto";
574739
574819
  async function initBridgeCore(params) {
574740
574820
  const {
574741
574821
  dir,
@@ -574777,7 +574857,7 @@ async function initBridgeCore(params) {
574777
574857
  const rawApi = createBridgeApiClient({
574778
574858
  baseUrl,
574779
574859
  getAccessToken,
574780
- runnerVersion: "0.9.4",
574860
+ runnerVersion: "0.9.6",
574781
574861
  onDebug: logForDebugging,
574782
574862
  onAuth401,
574783
574863
  getTrustedDeviceToken
@@ -574792,9 +574872,9 @@ async function initBridgeCore(params) {
574792
574872
  spawnMode: "single-session",
574793
574873
  verbose: false,
574794
574874
  sandbox: false,
574795
- bridgeId: randomUUID51(),
574875
+ bridgeId: randomUUID54(),
574796
574876
  workerType,
574797
- environmentId: randomUUID51(),
574877
+ environmentId: randomUUID54(),
574798
574878
  reuseEnvironmentId: prior?.environmentId,
574799
574879
  apiBaseUrl: baseUrl,
574800
574880
  sessionIngressUrl
@@ -576642,7 +576722,7 @@ __export(exports_print, {
576642
576722
  import { readFile as readFile55, stat as stat55 } from "fs/promises";
576643
576723
  import { dirname as dirname63 } from "path";
576644
576724
  import { cwd as cwd3 } from "process";
576645
- import { randomUUID as randomUUID52 } from "crypto";
576725
+ import { randomUUID as randomUUID55 } from "crypto";
576646
576726
  function trackReceivedMessageUuid(uuid3) {
576647
576727
  if (receivedMessageUuids.has(uuid3)) {
576648
576728
  return false;
@@ -576762,7 +576842,7 @@ Error: sandbox required but unavailable: ${sandboxUnavailableReason}
576762
576842
  hook_id: event.hookId,
576763
576843
  hook_name: event.hookName,
576764
576844
  hook_event: event.hookEvent,
576765
- uuid: randomUUID52(),
576845
+ uuid: randomUUID55(),
576766
576846
  session_id: getSessionId()
576767
576847
  };
576768
576848
  case "progress":
@@ -576775,7 +576855,7 @@ Error: sandbox required but unavailable: ${sandboxUnavailableReason}
576775
576855
  stdout: event.stdout,
576776
576856
  stderr: event.stderr,
576777
576857
  output: event.output,
576778
- uuid: randomUUID52(),
576858
+ uuid: randomUUID55(),
576779
576859
  session_id: getSessionId()
576780
576860
  };
576781
576861
  case "response":
@@ -576790,7 +576870,7 @@ Error: sandbox required but unavailable: ${sandboxUnavailableReason}
576790
576870
  stderr: event.stderr,
576791
576871
  exit_code: event.exitCode,
576792
576872
  outcome: event.outcome,
576793
- uuid: randomUUID52(),
576873
+ uuid: randomUUID55(),
576794
576874
  session_id: getSessionId()
576795
576875
  };
576796
576876
  }
@@ -576990,7 +577070,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
576990
577070
  subtype: "status",
576991
577071
  status: null,
576992
577072
  permissionMode: newMode,
576993
- uuid: randomUUID52(),
577073
+ uuid: randomUUID55(),
576994
577074
  session_id: getSessionId()
576995
577075
  });
576996
577076
  }
@@ -577011,7 +577091,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
577011
577091
  isAuthenticating: status2.isAuthenticating,
577012
577092
  output: status2.output,
577013
577093
  error: status2.error,
577014
- uuid: randomUUID52(),
577094
+ uuid: randomUUID55(),
577015
577095
  session_id: getSessionId()
577016
577096
  });
577017
577097
  });
@@ -577022,7 +577102,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
577022
577102
  output.enqueue({
577023
577103
  type: "rate_limit_event",
577024
577104
  rate_limit_info: rateLimitInfo,
577025
- uuid: randomUUID52(),
577105
+ uuid: randomUUID55(),
577026
577106
  session_id: getSessionId()
577027
577107
  });
577028
577108
  }
@@ -577038,7 +577118,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
577038
577118
  enqueue({
577039
577119
  mode: "prompt",
577040
577120
  value: turnInterruptionState.message.message.content,
577041
- uuid: randomUUID52()
577121
+ uuid: randomUUID55()
577042
577122
  });
577043
577123
  }
577044
577124
  const modelOptions = getModelOptions();
@@ -577131,7 +577211,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
577131
577211
  subtype: "elicitation_complete",
577132
577212
  mcp_server_name: serverName,
577133
577213
  elicitation_id: elicitationId,
577134
- uuid: randomUUID52(),
577214
+ uuid: randomUUID55(),
577135
577215
  session_id: getSessionId()
577136
577216
  });
577137
577217
  });
@@ -577477,7 +577557,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
577477
577557
  duration_ms: durationMsMatch ? parseInt(durationMsMatch[1], 10) : 0
577478
577558
  } : undefined,
577479
577559
  session_id: getSessionId(),
577480
- uuid: randomUUID52()
577560
+ uuid: randomUUID55()
577481
577561
  });
577482
577562
  }
577483
577563
  }
@@ -577551,7 +577631,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
577551
577631
  subtype: "status",
577552
577632
  status: status2,
577553
577633
  session_id: getSessionId(),
577554
- uuid: randomUUID52()
577634
+ uuid: randomUUID55()
577555
577635
  });
577556
577636
  }
577557
577637
  })) {
@@ -577599,7 +577679,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
577599
577679
  const suggestionMsg = {
577600
577680
  type: "prompt_suggestion",
577601
577681
  suggestion: result.suggestion,
577602
- uuid: randomUUID52(),
577682
+ uuid: randomUUID55(),
577603
577683
  session_id: getSessionId()
577604
577684
  };
577605
577685
  const lastEmittedEntry = {
@@ -577689,7 +577769,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
577689
577769
  usage: EMPTY_USAGE,
577690
577770
  modelUsage: {},
577691
577771
  permission_denials: [],
577692
- uuid: randomUUID52(),
577772
+ uuid: randomUUID55(),
577693
577773
  errors: [
577694
577774
  errorMessage(error42),
577695
577775
  ...getInMemoryErrors().map((_) => _.error)
@@ -577773,7 +577853,7 @@ ${m.text}
577773
577853
  enqueue({
577774
577854
  mode: "prompt",
577775
577855
  value: formatted,
577776
- uuid: randomUUID52()
577856
+ uuid: randomUUID55()
577777
577857
  });
577778
577858
  run();
577779
577859
  return;
@@ -577784,7 +577864,7 @@ ${m.text}
577784
577864
  enqueue({
577785
577865
  mode: "prompt",
577786
577866
  value: SHUTDOWN_TEAM_PROMPT,
577787
- uuid: randomUUID52()
577867
+ uuid: randomUUID55()
577788
577868
  });
577789
577869
  run();
577790
577870
  return;
@@ -577808,7 +577888,7 @@ ${m.text}
577808
577888
  enqueue({
577809
577889
  mode: "prompt",
577810
577890
  value: SHUTDOWN_TEAM_PROMPT,
577811
- uuid: randomUUID52()
577891
+ uuid: randomUUID55()
577812
577892
  });
577813
577893
  run();
577814
577894
  } else {
@@ -577835,7 +577915,7 @@ ${m.text}
577835
577915
  enqueue({
577836
577916
  mode: "prompt",
577837
577917
  value: prompt,
577838
- uuid: randomUUID52(),
577918
+ uuid: randomUUID55(),
577839
577919
  priority: "later",
577840
577920
  isMeta: true,
577841
577921
  workload: WORKLOAD_CRON
@@ -578580,7 +578660,7 @@ ${m.text}
578580
578660
  subtype: "bridge_state",
578581
578661
  state: state2,
578582
578662
  detail,
578583
- uuid: randomUUID52(),
578663
+ uuid: randomUUID55(),
578584
578664
  session_id: getSessionId()
578585
578665
  });
578586
578666
  },
@@ -578892,7 +578972,7 @@ async function handleInitializeRequest(request, requestId, initialized5, output,
578892
578972
  isAuthenticating: status2.isAuthenticating,
578893
578973
  output: status2.output,
578894
578974
  error: status2.error,
578895
- uuid: randomUUID52(),
578975
+ uuid: randomUUID55(),
578896
578976
  session_id: getSessionId()
578897
578977
  });
578898
578978
  }
@@ -579100,7 +579180,7 @@ function emitLoadError(message, outputFormat) {
579100
579180
  usage: EMPTY_USAGE,
579101
579181
  modelUsage: {},
579102
579182
  permission_denials: [],
579103
- uuid: randomUUID52(),
579183
+ uuid: randomUUID55(),
579104
579184
  errors: [message]
579105
579185
  };
579106
579186
  process.stdout.write(jsonStringify(errorResult) + `
@@ -581065,7 +581145,7 @@ __export(exports_update2, {
581065
581145
  });
581066
581146
  async function update2() {
581067
581147
  logEvent("tengu_update_check", {});
581068
- writeToStdout(`Current version: ${"0.9.4"}
581148
+ writeToStdout(`Current version: ${"0.9.6"}
581069
581149
  `);
581070
581150
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
581071
581151
  writeToStdout(`Checking for updates to ${channel2} version...
@@ -581140,8 +581220,8 @@ async function update2() {
581140
581220
  writeToStdout(`Zero is managed by Homebrew.
581141
581221
  `);
581142
581222
  const latest = await getLatestVersion(channel2);
581143
- if (latest && !gte("0.9.4", latest)) {
581144
- writeToStdout(`Update available: ${"0.9.4"} → ${latest}
581223
+ if (latest && !gte("0.9.6", latest)) {
581224
+ writeToStdout(`Update available: ${"0.9.6"} → ${latest}
581145
581225
  `);
581146
581226
  writeToStdout(`
581147
581227
  `);
@@ -581157,8 +581237,8 @@ async function update2() {
581157
581237
  writeToStdout(`Zero is managed by winget.
581158
581238
  `);
581159
581239
  const latest = await getLatestVersion(channel2);
581160
- if (latest && !gte("0.9.4", latest)) {
581161
- writeToStdout(`Update available: ${"0.9.4"} → ${latest}
581240
+ if (latest && !gte("0.9.6", latest)) {
581241
+ writeToStdout(`Update available: ${"0.9.6"} → ${latest}
581162
581242
  `);
581163
581243
  writeToStdout(`
581164
581244
  `);
@@ -581174,8 +581254,8 @@ async function update2() {
581174
581254
  writeToStdout(`Zero is managed by apk.
581175
581255
  `);
581176
581256
  const latest = await getLatestVersion(channel2);
581177
- if (latest && !gte("0.9.4", latest)) {
581178
- writeToStdout(`Update available: ${"0.9.4"} → ${latest}
581257
+ if (latest && !gte("0.9.6", latest)) {
581258
+ writeToStdout(`Update available: ${"0.9.6"} → ${latest}
581179
581259
  `);
581180
581260
  writeToStdout(`
581181
581261
  `);
@@ -581240,11 +581320,11 @@ async function update2() {
581240
581320
  `);
581241
581321
  await gracefulShutdown(1);
581242
581322
  }
581243
- if (result.latestVersion === "0.9.4") {
581244
- writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.4"})`) + `
581323
+ if (result.latestVersion === "0.9.6") {
581324
+ writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.6"})`) + `
581245
581325
  `);
581246
581326
  } else {
581247
- writeToStdout(source_default.green(`Successfully updated from ${"0.9.4"} to version ${result.latestVersion}`) + `
581327
+ writeToStdout(source_default.green(`Successfully updated from ${"0.9.6"} to version ${result.latestVersion}`) + `
581248
581328
  `);
581249
581329
  await regenerateCompletionCache();
581250
581330
  }
@@ -581304,12 +581384,12 @@ async function update2() {
581304
581384
  `);
581305
581385
  await gracefulShutdown(1);
581306
581386
  }
581307
- if (latestVersion === "0.9.4") {
581308
- writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.4"})`) + `
581387
+ if (latestVersion === "0.9.6") {
581388
+ writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.6"})`) + `
581309
581389
  `);
581310
581390
  await gracefulShutdown(0);
581311
581391
  }
581312
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.9.4"})
581392
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.9.6"})
581313
581393
  `);
581314
581394
  writeToStdout(`Installing update...
581315
581395
  `);
@@ -581354,7 +581434,7 @@ async function update2() {
581354
581434
  logForDebugging(`update: Installation status: ${status2}`);
581355
581435
  switch (status2) {
581356
581436
  case "success":
581357
- writeToStdout(source_default.green(`Successfully updated from ${"0.9.4"} to version ${latestVersion}`) + `
581437
+ writeToStdout(source_default.green(`Successfully updated from ${"0.9.6"} to version ${latestVersion}`) + `
581358
581438
  `);
581359
581439
  await regenerateCompletionCache();
581360
581440
  break;
@@ -582655,7 +582735,7 @@ ${customInstructions}` : customInstructions;
582655
582735
  }
582656
582736
  }
582657
582737
  logForDiagnosticsNoPII("info", "started", {
582658
- version: "0.9.4",
582738
+ version: "0.9.6",
582659
582739
  is_native_binary: isInBundledMode()
582660
582740
  });
582661
582741
  registerCleanup(async () => {
@@ -583538,7 +583618,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
583538
583618
  pendingHookMessages
583539
583619
  }, renderAndRun);
583540
583620
  }
583541
- }).version("0.9.4", "-v, --version", "Output the version number");
583621
+ }).version("0.9.6", "-v, --version", "Output the version number");
583542
583622
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
583543
583623
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
583544
583624
  if (canUserConfigureAdvisor()) {
@@ -584204,7 +584284,7 @@ if (false) {}
584204
584284
  async function main2() {
584205
584285
  const args = process.argv.slice(2);
584206
584286
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
584207
- console.log(`${"0.9.4"} (ZeroCLI)`);
584287
+ console.log(`${"0.9.6"} (ZeroCLI)`);
584208
584288
  return;
584209
584289
  }
584210
584290
  if (args.includes("--provider")) {
@@ -584346,4 +584426,4 @@ async function main2() {
584346
584426
  }
584347
584427
  main2();
584348
584428
 
584349
- //# debugId=C6156E411B8F3BDB64756E2164756E21
584429
+ //# debugId=E7574CB9448447CE64756E2164756E21