@duheso/zerocli 0.9.2 → 0.9.4

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 +160 -90
  2. package/package.json +2 -2
package/dist/cli.mjs CHANGED
@@ -114198,7 +114198,8 @@ function getPublicModelDisplayName(model) {
114198
114198
  "gemini-3.1-pro-preview": "Gemini 3.1 Pro Preview",
114199
114199
  "gemini-3-flash-preview": "Gemini 3 Flash",
114200
114200
  "gemini-2.5-pro": "Gemini 2.5 Pro",
114201
- "grok-code-fast-1": "Grok Code Fast 1"
114201
+ "grok-code-fast-1": "Grok Code Fast 1",
114202
+ "qwen3.6-27b": "Qwen 3.6 27B"
114202
114203
  };
114203
114204
  if (copilotModelNames[model]) {
114204
114205
  return copilotModelNames[model];
@@ -114276,9 +114277,9 @@ function renderModelName(model) {
114276
114277
  function getPublicModelName(model) {
114277
114278
  const publicName = getPublicModelDisplayName(model);
114278
114279
  if (publicName) {
114279
- return `Zero ${publicName}`;
114280
+ return `ZeroCLI - ${publicName}`;
114280
114281
  }
114281
- return `Zero (${model})`;
114282
+ return `ZeroCLI - ${model}`;
114282
114283
  }
114283
114284
  function parseUserSpecifiedModel(modelInput) {
114284
114285
  const modelInputTrimmed = normalizeModelSetting(modelInput);
@@ -119191,7 +119192,7 @@ function buildProviderInfoLines() {
119191
119192
  const sLen = ` ● ${sL} ${sReady}`.length;
119192
119193
  out.push(boxRow(sRow, W2, sLen));
119193
119194
  out.push(`${rgb(...BORDER)}╚${"═".repeat(W2 - 2)}╝${RESET}`);
119194
- out.push(` ${DIM}${rgb(...DIMCOL)}zero ${RESET}${rgb(...ACCENT)}v${"0.9.2"}${RESET}`);
119195
+ out.push(` ${DIM}${rgb(...DIMCOL)}zero ${RESET}${rgb(...ACCENT)}v${"0.9.4"}${RESET}`);
119195
119196
  return out;
119196
119197
  }
119197
119198
  function printStartupScreen() {}
@@ -147382,7 +147383,7 @@ function getAttributionHeader(fingerprint) {
147382
147383
  if (!isAttributionHeaderEnabled()) {
147383
147384
  return "";
147384
147385
  }
147385
- const version2 = `${"0.9.2"}.${fingerprint}`;
147386
+ const version2 = `${"0.9.4"}.${fingerprint}`;
147386
147387
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
147387
147388
  const cch = "";
147388
147389
  const workload = getWorkload();
@@ -190392,7 +190393,7 @@ var init_imageValidation = __esm(() => {
190392
190393
 
190393
190394
  // src/utils/userAgent.ts
190394
190395
  function getZeroCodeUserAgent() {
190395
- return `claude-code/${"0.9.2"}`;
190396
+ return `claude-code/${"0.9.4"}`;
190396
190397
  }
190397
190398
 
190398
190399
  // src/utils/http.ts
@@ -190401,7 +190402,7 @@ function getUserAgent() {
190401
190402
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
190402
190403
  const workload = getWorkload();
190403
190404
  const workloadSuffix = workload ? `, workload/${workload}` : "";
190404
- return `claude-cli/${"0.9.2"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
190405
+ return `claude-cli/${"0.9.4"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
190405
190406
  }
190406
190407
  function getMCPUserAgent() {
190407
190408
  const parts = [];
@@ -190415,7 +190416,7 @@ function getMCPUserAgent() {
190415
190416
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
190416
190417
  }
190417
190418
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
190418
- return `claude-code/${"0.9.2"}${suffix}`;
190419
+ return `claude-code/${"0.9.4"}${suffix}`;
190419
190420
  }
190420
190421
  function getWebFetchUserAgent() {
190421
190422
  const supportUrl = getAPIProvider() === "firstParty" ? "https://support.anthropic.com/" : "https://github.com/Duheso/ZeroCLI";
@@ -193312,7 +193313,7 @@ class OpenAIShimMessages {
193312
193313
  } else if (maxCompletionTokensValue !== undefined) {
193313
193314
  body.max_completion_tokens = maxCompletionTokensValue;
193314
193315
  }
193315
- if (params.stream && !isLocalProviderUrl(request.baseUrl)) {
193316
+ if (params.stream) {
193316
193317
  body.stream_options = { include_usage: true };
193317
193318
  }
193318
193319
  const isGithub = isGithubModelsMode();
@@ -244849,7 +244850,7 @@ function getTelemetryAttributes() {
244849
244850
  attributes["session.id"] = sessionId;
244850
244851
  }
244851
244852
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
244852
- attributes["app.version"] = "0.9.2";
244853
+ attributes["app.version"] = "0.9.4";
244853
244854
  }
244854
244855
  const oauthAccount = getOauthAccountInfo();
244855
244856
  if (oauthAccount) {
@@ -257088,7 +257089,7 @@ function computeFingerprint(messageText, version2) {
257088
257089
  }
257089
257090
  function computeFingerprintFromMessages(messages) {
257090
257091
  const firstMessageText = extractFirstMessageText(messages);
257091
- return computeFingerprint(firstMessageText, "0.9.2");
257092
+ return computeFingerprint(firstMessageText, "0.9.4");
257092
257093
  }
257093
257094
  var FINGERPRINT_SALT = "59cf53e54c78";
257094
257095
  var init_fingerprint = () => {};
@@ -257130,7 +257131,7 @@ async function sideQuery(opts) {
257130
257131
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
257131
257132
  }
257132
257133
  const messageText = extractFirstUserMessageText(messages);
257133
- const fingerprint = computeFingerprint(messageText, "0.9.2");
257134
+ const fingerprint = computeFingerprint(messageText, "0.9.4");
257134
257135
  const attributionHeader = getAttributionHeader(fingerprint);
257135
257136
  const systemBlocks = [
257136
257137
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -266032,7 +266033,7 @@ var init_user = __esm(() => {
266032
266033
  deviceId,
266033
266034
  sessionId: getSessionId(),
266034
266035
  email: getEmail(),
266035
- appVersion: "0.9.2",
266036
+ appVersion: "0.9.4",
266036
266037
  platform: getHostPlatformForAnalytics(),
266037
266038
  organizationUuid,
266038
266039
  accountUuid,
@@ -266426,7 +266427,7 @@ async function initializeBetaTracing(resource) {
266426
266427
  });
266427
266428
  logs.setGlobalLoggerProvider(loggerProvider);
266428
266429
  setLoggerProvider(loggerProvider);
266429
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.2");
266430
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.4");
266430
266431
  setEventLogger(eventLogger);
266431
266432
  process.on("beforeExit", async () => {
266432
266433
  await loggerProvider?.forceFlush();
@@ -266466,7 +266467,7 @@ async function initializeTelemetry() {
266466
266467
  const platform3 = getPlatform();
266467
266468
  const baseAttributes = {
266468
266469
  [ATTR_SERVICE_NAME3]: "claude-code",
266469
- [ATTR_SERVICE_VERSION3]: "0.9.2"
266470
+ [ATTR_SERVICE_VERSION3]: "0.9.4"
266470
266471
  };
266471
266472
  if (platform3 === "wsl") {
266472
266473
  const wslVersion = getWslVersion();
@@ -266511,7 +266512,7 @@ async function initializeTelemetry() {
266511
266512
  } catch {}
266512
266513
  };
266513
266514
  registerCleanup(shutdownTelemetry2);
266514
- return meterProvider2.getMeter("com.anthropic.claude_code", "0.9.2");
266515
+ return meterProvider2.getMeter("com.anthropic.claude_code", "0.9.4");
266515
266516
  }
266516
266517
  const meterProvider = new MeterProvider3({
266517
266518
  resource,
@@ -266531,7 +266532,7 @@ async function initializeTelemetry() {
266531
266532
  });
266532
266533
  logs.setGlobalLoggerProvider(loggerProvider);
266533
266534
  setLoggerProvider(loggerProvider);
266534
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.2");
266535
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.4");
266535
266536
  setEventLogger(eventLogger);
266536
266537
  logForDebugging("[3P telemetry] Event logger set successfully");
266537
266538
  process.on("beforeExit", async () => {
@@ -266593,7 +266594,7 @@ Current timeout: ${timeoutMs}ms
266593
266594
  }
266594
266595
  };
266595
266596
  registerCleanup(shutdownTelemetry);
266596
- return meterProvider.getMeter("com.anthropic.claude_code", "0.9.2");
266597
+ return meterProvider.getMeter("com.anthropic.claude_code", "0.9.4");
266597
266598
  }
266598
266599
  async function flushTelemetry() {
266599
266600
  const meterProvider = getMeterProvider();
@@ -267405,9 +267406,9 @@ async function assertMinVersion() {
267405
267406
  }
267406
267407
  try {
267407
267408
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
267408
- if (versionConfig.minVersion && lt("0.9.2", versionConfig.minVersion)) {
267409
+ if (versionConfig.minVersion && lt("0.9.4", versionConfig.minVersion)) {
267409
267410
  console.error(`
267410
- It looks like your version of ZeroCLI (${"0.9.2"}) needs an update.
267411
+ It looks like your version of ZeroCLI (${"0.9.4"}) needs an update.
267411
267412
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
267412
267413
 
267413
267414
  To update, please run:
@@ -267623,7 +267624,7 @@ async function installGlobalPackage(specificVersion) {
267623
267624
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
267624
267625
  logEvent("tengu_auto_updater_lock_contention", {
267625
267626
  pid: process.pid,
267626
- currentVersion: "0.9.2"
267627
+ currentVersion: "0.9.4"
267627
267628
  });
267628
267629
  return "in_progress";
267629
267630
  }
@@ -267632,7 +267633,7 @@ async function installGlobalPackage(specificVersion) {
267632
267633
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
267633
267634
  logError2(new Error("Windows NPM detected in WSL environment"));
267634
267635
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
267635
- currentVersion: "0.9.2"
267636
+ currentVersion: "0.9.4"
267636
267637
  });
267637
267638
  console.error(`
267638
267639
  Error: Windows NPM detected in WSL
@@ -268186,7 +268187,7 @@ async function getDoctorDiagnostic() {
268186
268187
  const installationType = await getCurrentInstallationType();
268187
268188
  let version2;
268188
268189
  try {
268189
- version2 = "0.9.2";
268190
+ version2 = "0.9.4";
268190
268191
  } catch {
268191
268192
  version2 = "unknown";
268192
268193
  }
@@ -269680,7 +269681,7 @@ function getInstallationEnv() {
269680
269681
  return;
269681
269682
  }
269682
269683
  function getZeroCodeVersion() {
269683
- return "0.9.2";
269684
+ return "0.9.4";
269684
269685
  }
269685
269686
  async function getInstalledVSCodeExtensionVersion(command) {
269686
269687
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -271047,8 +271048,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
271047
271048
  const maxVersion = await getMaxVersion();
271048
271049
  if (maxVersion && gt(version2, maxVersion)) {
271049
271050
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
271050
- if (gte("0.9.2", maxVersion)) {
271051
- logForDebugging(`Native installer: current version ${"0.9.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
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`);
271052
271053
  logEvent("tengu_native_update_skipped_max_version", {
271053
271054
  latency_ms: Date.now() - startTime2,
271054
271055
  max_version: maxVersion,
@@ -271059,7 +271060,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
271059
271060
  version2 = maxVersion;
271060
271061
  }
271061
271062
  }
271062
- if (!forceReinstall && version2 === "0.9.2" && await versionIsAvailable(version2) && await isPossibleZeroBinary(executablePath)) {
271063
+ if (!forceReinstall && version2 === "0.9.4" && await versionIsAvailable(version2) && await isPossibleZeroBinary(executablePath)) {
271063
271064
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
271064
271065
  logEvent("tengu_native_update_complete", {
271065
271066
  latency_ms: Date.now() - startTime2,
@@ -358078,6 +358079,23 @@ var init_TestingPermissionTool = __esm(() => {
358078
358079
  });
358079
358080
 
358080
358081
  // src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx
358082
+ function tryParseJsonString(val) {
358083
+ if (typeof val === "string") {
358084
+ try {
358085
+ const parsed = JSON.parse(val);
358086
+ if (typeof parsed === "string") {
358087
+ try {
358088
+ const reparsed = JSON.parse(parsed);
358089
+ if (typeof reparsed === "object" && reparsed !== null)
358090
+ return reparsed;
358091
+ } catch {}
358092
+ }
358093
+ if (typeof parsed === "object" && parsed !== null)
358094
+ return parsed;
358095
+ } catch {}
358096
+ }
358097
+ return val;
358098
+ }
358081
358099
  function AskUserQuestionResultMessage(t0) {
358082
358100
  const $2 = import_react_compiler_runtime113.c(3);
358083
358101
  const {
@@ -358172,7 +358190,7 @@ var init_AskUserQuestionTool = __esm(() => {
358172
358190
  questionSchema = lazySchema(() => exports_external.object({
358173
358191
  question: exports_external.string().describe('The complete question to ask the user. Should be clear, specific, and end with a question mark. Example: "Which library should we use for date formatting?" If multiSelect is true, phrase it accordingly, e.g. "Which features do you want to enable?"'),
358174
358192
  header: exports_external.string().describe(`Very short label displayed as a chip/tag (max ${ASK_USER_QUESTION_TOOL_CHIP_WIDTH} chars). Examples: "Auth method", "Library", "Approach".`),
358175
- options: exports_external.array(questionOptionSchema()).min(2).max(4).describe(`The available choices for this question. Must have 2-4 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically.`),
358193
+ options: exports_external.preprocess(tryParseJsonString, exports_external.array(questionOptionSchema()).min(2).max(4)).describe(`The available choices for this question. Must have 2-4 options. Each option should be a distinct, mutually exclusive choice (unless multiSelect is enabled). There should be no 'Other' option, that will be provided automatically.`),
358176
358194
  multiSelect: exports_external.boolean().default(false).describe("Set to true to allow the user to select multiple options instead of just one. Use when choices are not mutually exclusive.")
358177
358195
  }));
358178
358196
  annotationsSchema = lazySchema(() => {
@@ -358205,8 +358223,8 @@ var init_AskUserQuestionTool = __esm(() => {
358205
358223
  source: exports_external.string().optional().describe('Optional identifier for the source of this question (e.g., "remember" for /remember command). Used for analytics tracking.')
358206
358224
  }).optional().describe("Optional metadata for tracking and analytics purposes. Not displayed to user.")
358207
358225
  }));
358208
- inputSchema20 = lazySchema(() => exports_external.strictObject({
358209
- questions: exports_external.array(questionSchema()).min(1).max(4).describe("Questions to ask the user (1-4 questions)"),
358226
+ inputSchema20 = lazySchema(() => exports_external.object({
358227
+ questions: exports_external.preprocess(tryParseJsonString, exports_external.array(questionSchema()).min(1).max(4)).describe("Questions to ask the user (1-4 questions)"),
358210
358228
  ...commonFields()
358211
358229
  }).refine(UNIQUENESS_REFINE.check, {
358212
358230
  message: UNIQUENESS_REFINE.message
@@ -368853,7 +368871,7 @@ function getAttributionTexts() {
368853
368871
  }
368854
368872
  const model = getMainLoopModel();
368855
368873
  const isKnownPublicModel = getPublicModelDisplayName(model) !== null;
368856
- const modelName = isInternalModelRepoCached() || isKnownPublicModel ? getPublicModelName(model) : "Claude Opus 4.6";
368874
+ const modelName = isInternalModelRepoCached() || isKnownPublicModel ? getPublicModelName(model) : "ZeroCLI";
368857
368875
  const defaultAttribution = "\uD83E\uDD16 Generated with [Zero CLI](https://github.com/Duheso/ZeroCLI)";
368858
368876
  const coAuthorDomain = getAPIProvider() === "firstParty" ? "anthropic.com" : "zerocli.dev";
368859
368877
  const defaultCommit = isEnvTruthy(process.env.ZERO_DISABLE_CO_AUTHORED_BY) ? "" : `Co-Authored-By: ${modelName} <noreply@${coAuthorDomain}>`;
@@ -376266,7 +376284,7 @@ function getAnthropicEnvMetadata() {
376266
376284
  function getBuildAgeMinutes() {
376267
376285
  if (false)
376268
376286
  ;
376269
- const buildTime = new Date("2026-05-07T02:18:15.501Z").getTime();
376287
+ const buildTime = new Date("2026-05-11T01:40:36.001Z").getTime();
376270
376288
  if (isNaN(buildTime))
376271
376289
  return;
376272
376290
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -403702,7 +403720,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
403702
403720
  const client2 = new Client({
403703
403721
  name: "claude-code",
403704
403722
  title: "ZeroCLI",
403705
- version: "0.9.2",
403723
+ version: "0.9.4",
403706
403724
  description: "Anthropic's agentic coding tool",
403707
403725
  websiteUrl: PRODUCT_URL
403708
403726
  }, {
@@ -404054,7 +404072,7 @@ var init_client7 = __esm(() => {
404054
404072
  const client2 = new Client({
404055
404073
  name: "claude-code",
404056
404074
  title: "ZeroCLI",
404057
- version: "0.9.2",
404075
+ version: "0.9.4",
404058
404076
  description: "Anthropic's agentic coding tool",
404059
404077
  websiteUrl: PRODUCT_URL
404060
404078
  }, {
@@ -405081,6 +405099,58 @@ function normalizeToolInput(tool, input, agentId) {
405081
405099
  timeout: timeout ?? 30000
405082
405100
  };
405083
405101
  }
405102
+ case "AskUserQuestion": {
405103
+ const raw = { ...input };
405104
+ if (typeof raw.questions === "string") {
405105
+ try {
405106
+ const parsed = JSON.parse(raw.questions);
405107
+ if (Array.isArray(parsed))
405108
+ raw.questions = parsed;
405109
+ } catch {}
405110
+ }
405111
+ if (Array.isArray(raw.questions)) {
405112
+ raw.questions = raw.questions.map((q) => {
405113
+ if (typeof q === "string") {
405114
+ try {
405115
+ const p = JSON.parse(q);
405116
+ if (typeof p === "object" && p !== null)
405117
+ return p;
405118
+ } catch {}
405119
+ return q;
405120
+ }
405121
+ if (typeof q !== "object" || q === null)
405122
+ return q;
405123
+ const question = { ...q };
405124
+ if (typeof question.options === "string") {
405125
+ try {
405126
+ const parsed = JSON.parse(question.options);
405127
+ if (Array.isArray(parsed))
405128
+ question.options = parsed;
405129
+ } catch {}
405130
+ }
405131
+ if (question.multiSelect === null)
405132
+ question.multiSelect = false;
405133
+ if ("preview" in question && question.preview === null)
405134
+ delete question.preview;
405135
+ if (Array.isArray(question.options)) {
405136
+ question.options = question.options.map((opt) => {
405137
+ if (typeof opt !== "object" || opt === null)
405138
+ return opt;
405139
+ const o2 = { ...opt };
405140
+ if ("preview" in o2 && o2.preview === null)
405141
+ delete o2.preview;
405142
+ return o2;
405143
+ });
405144
+ }
405145
+ return question;
405146
+ });
405147
+ }
405148
+ if (raw.metadata === null)
405149
+ delete raw.metadata;
405150
+ if (raw.answers === null)
405151
+ delete raw.answers;
405152
+ return raw;
405153
+ }
405084
405154
  default:
405085
405155
  return input;
405086
405156
  }
@@ -414717,7 +414787,7 @@ function Feedback({
414717
414787
  platform: env2.platform,
414718
414788
  gitRepo: envInfo.isGit,
414719
414789
  terminal: env2.terminal,
414720
- version: "0.9.2",
414790
+ version: "0.9.4",
414721
414791
  transcript: normalizeMessagesForAPI(messages),
414722
414792
  errors: sanitizedErrors,
414723
414793
  lastApiRequest: getLastAPIRequest(),
@@ -414910,7 +414980,7 @@ function Feedback({
414910
414980
  ", ",
414911
414981
  env2.terminal,
414912
414982
  ", v",
414913
- "0.9.2"
414983
+ "0.9.4"
414914
414984
  ]
414915
414985
  })
414916
414986
  ]
@@ -415018,7 +415088,7 @@ ${sanitizedDescription}
415018
415088
  ` + `**Environment Info**
415019
415089
  ` + `- Platform: ${env2.platform}
415020
415090
  ` + `- Terminal: ${env2.terminal}
415021
- ` + `- Version: ${"0.9.2"}
415091
+ ` + `- Version: ${"0.9.4"}
415022
415092
  ` + feedbackIdLine + `
415023
415093
  **Errors**
415024
415094
  \`\`\`json
@@ -418171,7 +418241,7 @@ function buildPrimarySection() {
418171
418241
  });
418172
418242
  return [{
418173
418243
  label: "Version",
418174
- value: "0.9.2"
418244
+ value: "0.9.4"
418175
418245
  }, {
418176
418246
  label: "Session name",
418177
418247
  value: nameValue
@@ -422941,7 +423011,7 @@ function Config({
422941
423011
  }
422942
423012
  })
422943
423013
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime181.jsx(ChannelDowngradeDialog, {
422944
- currentVersion: "0.9.2",
423014
+ currentVersion: "0.9.4",
422945
423015
  onChoice: (choice) => {
422946
423016
  setShowSubmenu(null);
422947
423017
  setTabsHidden(false);
@@ -422953,7 +423023,7 @@ function Config({
422953
423023
  autoUpdatesChannel: "stable"
422954
423024
  };
422955
423025
  if (choice === "stay") {
422956
- newSettings.minimumVersion = "0.9.2";
423026
+ newSettings.minimumVersion = "0.9.4";
422957
423027
  }
422958
423028
  updateSettingsForSource("userSettings", newSettings);
422959
423029
  setSettingsData((prev_27) => ({
@@ -429894,7 +429964,7 @@ function UpdateScreen({ onDone }) {
429894
429964
  setState({ type: "dev-build" });
429895
429965
  return;
429896
429966
  }
429897
- const currentVersion = "0.9.2";
429967
+ const currentVersion = "0.9.4";
429898
429968
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
429899
429969
  const latestVersion = await getLatestVersion(channel2);
429900
429970
  if (!latestVersion) {
@@ -432005,7 +432075,7 @@ function HelpV2(t0) {
432005
432075
  let t6;
432006
432076
  if ($2[31] !== tabs) {
432007
432077
  t6 = /* @__PURE__ */ jsx_runtime211.jsx(Tabs, {
432008
- title: `ZeroCLI v${"0.9.2"}`,
432078
+ title: `ZeroCLI v${"0.9.4"}`,
432009
432079
  color: "professionalBlue",
432010
432080
  defaultTab: "general",
432011
432081
  children: tabs
@@ -456849,7 +456919,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
456849
456919
  return [];
456850
456920
  }
456851
456921
  }
456852
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.9.2") {
456922
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.9.4") {
456853
456923
  if (process.env.USER_TYPE === "ant") {
456854
456924
  const changelog = MACRO.VERSION_CHANGELOG;
456855
456925
  if (changelog) {
@@ -466162,7 +466232,7 @@ function AsyncAgentDetailDialog(t0) {
466162
466232
  t5 = $2[10];
466163
466233
  }
466164
466234
  const planContent = t5;
466165
- const displayPrompt = agent2.prompt.length > 300 ? agent2.prompt.substring(0, 297) + "…" : agent2.prompt;
466235
+ const displayPrompt = agent2.prompt.length > 800 ? agent2.prompt.substring(0, 797) + "…" : agent2.prompt;
466166
466236
  const tokenCount = agent2.result?.totalTokens ?? agent2.progress?.tokenCount;
466167
466237
  const toolUseCount = agent2.result?.totalToolUseCount ?? agent2.progress?.toolUseCount;
466168
466238
  const t6 = agent2.selectedAgent?.agentType ?? "agent";
@@ -466294,8 +466364,8 @@ function AsyncAgentDetailDialog(t0) {
466294
466364
  t14 = $2[30];
466295
466365
  }
466296
466366
  let t15;
466297
- if ($2[31] !== agent2.progress || $2[32] !== agent2.status || $2[33] !== theme) {
466298
- t15 = agent2.status === "running" && agent2.progress?.recentActivities && agent2.progress.recentActivities.length > 0 && /* @__PURE__ */ jsx_runtime275.jsxs(ThemedBox_default, {
466367
+ if ($2[31] !== agent2.progress || $2[33] !== theme) {
466368
+ t15 = agent2.progress?.recentActivities && agent2.progress.recentActivities.length > 0 && /* @__PURE__ */ jsx_runtime275.jsxs(ThemedBox_default, {
466299
466369
  flexDirection: "column",
466300
466370
  children: [
466301
466371
  /* @__PURE__ */ jsx_runtime275.jsx(ThemedText, {
@@ -485887,7 +485957,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
485887
485957
  smapsRollup,
485888
485958
  platform: process.platform,
485889
485959
  nodeVersion: process.version,
485890
- ccVersion: "0.9.2"
485960
+ ccVersion: "0.9.4"
485891
485961
  };
485892
485962
  }
485893
485963
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -486474,7 +486544,7 @@ var init_bridge_kick = __esm(() => {
486474
486544
  var call60 = async () => {
486475
486545
  return {
486476
486546
  type: "text",
486477
- value: `${"0.9.2"} (built ${"2026-05-07T02:18:15.501Z"})`
486547
+ value: `${"0.9.4"} (built ${"2026-05-11T01:40:36.001Z"})`
486478
486548
  };
486479
486549
  }, version2, version_default;
486480
486550
  var init_version = __esm(() => {
@@ -496631,7 +496701,7 @@ function generateHtmlReport(data, insights) {
496631
496701
  function buildExportData(data, insights, facets) {
496632
496702
  let version3;
496633
496703
  try {
496634
- version3 = "0.9.2";
496704
+ version3 = "0.9.4";
496635
496705
  } catch {
496636
496706
  version3 = "unknown";
496637
496707
  }
@@ -500827,7 +500897,7 @@ var init_sessionStorage = __esm(() => {
500827
500897
  init_slowOperations();
500828
500898
  init_uuid();
500829
500899
  try {
500830
- VERSION7 = "0.9.2";
500900
+ VERSION7 = "0.9.4";
500831
500901
  } catch {
500832
500902
  VERSION7 = "unknown";
500833
500903
  }
@@ -502148,7 +502218,7 @@ var init_filesystem = __esm(() => {
502148
502218
  });
502149
502219
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
502150
502220
  const nonce = randomBytes17(16).toString("hex");
502151
- return join137(getZeroTempDir(), "bundled-skills", "0.9.2", nonce);
502221
+ return join137(getZeroTempDir(), "bundled-skills", "0.9.4", nonce);
502152
502222
  });
502153
502223
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
502154
502224
  });
@@ -513168,7 +513238,7 @@ function buildSystemInitMessage(inputs) {
513168
513238
  slash_commands: inputs.commands.filter((c6) => c6.userInvocable !== false).map((c6) => c6.name),
513169
513239
  apiKeySource: getAnthropicApiKeyWithSource().source,
513170
513240
  betas: getSdkBetas(),
513171
- claude_code_version: "0.9.2",
513241
+ claude_code_version: "0.9.4",
513172
513242
  output_style: outputStyle2,
513173
513243
  agents: inputs.agents.map((agent2) => agent2.agentType),
513174
513244
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -528483,7 +528553,7 @@ var init_useVoiceEnabled = __esm(() => {
528483
528553
  function getSemverPart(version3) {
528484
528554
  return `${import_semver12.major(version3, { loose: true })}.${import_semver12.minor(version3, { loose: true })}.${import_semver12.patch(version3, { loose: true })}`;
528485
528555
  }
528486
- function useUpdateNotification(updatedVersion, initialVersion = "0.9.2") {
528556
+ function useUpdateNotification(updatedVersion, initialVersion = "0.9.4") {
528487
528557
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
528488
528558
  if (!updatedVersion) {
528489
528559
  return null;
@@ -528526,7 +528596,7 @@ function AutoUpdater({
528526
528596
  return;
528527
528597
  }
528528
528598
  if (false) {}
528529
- const currentVersion = "0.9.2";
528599
+ const currentVersion = "0.9.4";
528530
528600
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
528531
528601
  let latestVersion = await getLatestVersion(channel2);
528532
528602
  const isDisabled = isAutoUpdaterDisabled();
@@ -528747,12 +528817,12 @@ function NativeAutoUpdater({
528747
528817
  logEvent("tengu_native_auto_updater_start", {});
528748
528818
  try {
528749
528819
  const maxVersion = await getMaxVersion();
528750
- if (maxVersion && gt("0.9.2", maxVersion)) {
528820
+ if (maxVersion && gt("0.9.4", maxVersion)) {
528751
528821
  const msg = await getMaxVersionMessage();
528752
528822
  setMaxVersionIssue(msg ?? "affects your version");
528753
528823
  }
528754
528824
  const result = await installLatest(channel2);
528755
- const currentVersion = "0.9.2";
528825
+ const currentVersion = "0.9.4";
528756
528826
  const latencyMs = Date.now() - startTime2;
528757
528827
  if (result.lockFailed) {
528758
528828
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -528894,17 +528964,17 @@ function PackageManagerAutoUpdater(t0) {
528894
528964
  const maxVersion = await getMaxVersion();
528895
528965
  if (maxVersion && latest && gt(latest, maxVersion)) {
528896
528966
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
528897
- if (gte("0.9.2", maxVersion)) {
528898
- logForDebugging(`PackageManagerAutoUpdater: current version ${"0.9.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
528967
+ if (gte("0.9.4", maxVersion)) {
528968
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"0.9.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
528899
528969
  setUpdateAvailable(false);
528900
528970
  return;
528901
528971
  }
528902
528972
  latest = maxVersion;
528903
528973
  }
528904
- const hasUpdate = latest && !gte("0.9.2", latest) && !shouldSkipVersion(latest);
528974
+ const hasUpdate = latest && !gte("0.9.4", latest) && !shouldSkipVersion(latest);
528905
528975
  setUpdateAvailable(!!hasUpdate);
528906
528976
  if (hasUpdate) {
528907
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.9.2"} -> ${latest}`);
528977
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.9.4"} -> ${latest}`);
528908
528978
  }
528909
528979
  };
528910
528980
  $2[0] = t1;
@@ -528938,7 +529008,7 @@ function PackageManagerAutoUpdater(t0) {
528938
529008
  wrap: "truncate",
528939
529009
  children: [
528940
529010
  "currentVersion: ",
528941
- "0.9.2"
529011
+ "0.9.4"
528942
529012
  ]
528943
529013
  });
528944
529014
  $2[3] = verbose;
@@ -537967,7 +538037,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
537967
538037
  project_dir: getOriginalCwd(),
537968
538038
  added_dirs: addedDirs
537969
538039
  },
537970
- version: "0.9.2",
538040
+ version: "0.9.4",
537971
538041
  output_style: {
537972
538042
  name: outputStyleName
537973
538043
  },
@@ -562469,7 +562539,7 @@ function WelcomeV2() {
562469
562539
  dimColor: true,
562470
562540
  children: [
562471
562541
  "v",
562472
- "0.9.2",
562542
+ "0.9.4",
562473
562543
  " "
562474
562544
  ]
562475
562545
  })
@@ -562703,7 +562773,7 @@ function WelcomeV2() {
562703
562773
  dimColor: true,
562704
562774
  children: [
562705
562775
  "v",
562706
- "0.9.2",
562776
+ "0.9.4",
562707
562777
  " "
562708
562778
  ]
562709
562779
  })
@@ -562950,7 +563020,7 @@ function AppleTerminalWelcomeV2(t0) {
562950
563020
  dimColor: true,
562951
563021
  children: [
562952
563022
  "v",
562953
- "0.9.2",
563023
+ "0.9.4",
562954
563024
  " "
562955
563025
  ]
562956
563026
  });
@@ -563223,7 +563293,7 @@ function AppleTerminalWelcomeV2(t0) {
563223
563293
  dimColor: true,
563224
563294
  children: [
563225
563295
  "v",
563226
- "0.9.2",
563296
+ "0.9.4",
563227
563297
  " "
563228
563298
  ]
563229
563299
  });
@@ -564735,7 +564805,7 @@ function completeOnboarding() {
564735
564805
  saveGlobalConfig((current) => ({
564736
564806
  ...current,
564737
564807
  hasCompletedOnboarding: true,
564738
- lastOnboardingVersion: "0.9.2"
564808
+ lastOnboardingVersion: "0.9.4"
564739
564809
  }));
564740
564810
  }
564741
564811
  function showDialog(root2, renderer) {
@@ -568986,7 +569056,7 @@ function appendToLog(path24, message) {
568986
569056
  cwd: getFsImplementation().cwd(),
568987
569057
  userType: process.env.USER_TYPE,
568988
569058
  sessionId: getSessionId(),
568989
- version: "0.9.2"
569059
+ version: "0.9.4"
568990
569060
  };
568991
569061
  getLogWriter(path24).write(messageWithTimestamp);
568992
569062
  }
@@ -569592,7 +569662,7 @@ async function startMCPServer(cwd2, debug, verbose) {
569592
569662
  setCwd(cwd2);
569593
569663
  const server = new Server({
569594
569664
  name: "claude/tengu",
569595
- version: "0.9.2"
569665
+ version: "0.9.4"
569596
569666
  }, {
569597
569667
  capabilities: {
569598
569668
  tools: {}
@@ -574231,8 +574301,8 @@ async function getEnvLessBridgeConfig() {
574231
574301
  }
574232
574302
  async function checkEnvLessBridgeMinVersion() {
574233
574303
  const cfg = await getEnvLessBridgeConfig();
574234
- if (cfg.min_version && lt("0.9.2", cfg.min_version)) {
574235
- return `Your version of ZeroCLI (${"0.9.2"}) is too old for Remote Control.
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.
574236
574306
  Version ${cfg.min_version} or higher is required. Run \`zero update\` to update.`;
574237
574307
  }
574238
574308
  return null;
@@ -574707,7 +574777,7 @@ async function initBridgeCore(params) {
574707
574777
  const rawApi = createBridgeApiClient({
574708
574778
  baseUrl,
574709
574779
  getAccessToken,
574710
- runnerVersion: "0.9.2",
574780
+ runnerVersion: "0.9.4",
574711
574781
  onDebug: logForDebugging,
574712
574782
  onAuth401,
574713
574783
  getTrustedDeviceToken
@@ -580995,7 +581065,7 @@ __export(exports_update2, {
580995
581065
  });
580996
581066
  async function update2() {
580997
581067
  logEvent("tengu_update_check", {});
580998
- writeToStdout(`Current version: ${"0.9.2"}
581068
+ writeToStdout(`Current version: ${"0.9.4"}
580999
581069
  `);
581000
581070
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
581001
581071
  writeToStdout(`Checking for updates to ${channel2} version...
@@ -581070,8 +581140,8 @@ async function update2() {
581070
581140
  writeToStdout(`Zero is managed by Homebrew.
581071
581141
  `);
581072
581142
  const latest = await getLatestVersion(channel2);
581073
- if (latest && !gte("0.9.2", latest)) {
581074
- writeToStdout(`Update available: ${"0.9.2"} → ${latest}
581143
+ if (latest && !gte("0.9.4", latest)) {
581144
+ writeToStdout(`Update available: ${"0.9.4"} → ${latest}
581075
581145
  `);
581076
581146
  writeToStdout(`
581077
581147
  `);
@@ -581087,8 +581157,8 @@ async function update2() {
581087
581157
  writeToStdout(`Zero is managed by winget.
581088
581158
  `);
581089
581159
  const latest = await getLatestVersion(channel2);
581090
- if (latest && !gte("0.9.2", latest)) {
581091
- writeToStdout(`Update available: ${"0.9.2"} → ${latest}
581160
+ if (latest && !gte("0.9.4", latest)) {
581161
+ writeToStdout(`Update available: ${"0.9.4"} → ${latest}
581092
581162
  `);
581093
581163
  writeToStdout(`
581094
581164
  `);
@@ -581104,8 +581174,8 @@ async function update2() {
581104
581174
  writeToStdout(`Zero is managed by apk.
581105
581175
  `);
581106
581176
  const latest = await getLatestVersion(channel2);
581107
- if (latest && !gte("0.9.2", latest)) {
581108
- writeToStdout(`Update available: ${"0.9.2"} → ${latest}
581177
+ if (latest && !gte("0.9.4", latest)) {
581178
+ writeToStdout(`Update available: ${"0.9.4"} → ${latest}
581109
581179
  `);
581110
581180
  writeToStdout(`
581111
581181
  `);
@@ -581170,11 +581240,11 @@ async function update2() {
581170
581240
  `);
581171
581241
  await gracefulShutdown(1);
581172
581242
  }
581173
- if (result.latestVersion === "0.9.2") {
581174
- writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.2"})`) + `
581243
+ if (result.latestVersion === "0.9.4") {
581244
+ writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.4"})`) + `
581175
581245
  `);
581176
581246
  } else {
581177
- writeToStdout(source_default.green(`Successfully updated from ${"0.9.2"} to version ${result.latestVersion}`) + `
581247
+ writeToStdout(source_default.green(`Successfully updated from ${"0.9.4"} to version ${result.latestVersion}`) + `
581178
581248
  `);
581179
581249
  await regenerateCompletionCache();
581180
581250
  }
@@ -581234,12 +581304,12 @@ async function update2() {
581234
581304
  `);
581235
581305
  await gracefulShutdown(1);
581236
581306
  }
581237
- if (latestVersion === "0.9.2") {
581238
- writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.2"})`) + `
581307
+ if (latestVersion === "0.9.4") {
581308
+ writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.4"})`) + `
581239
581309
  `);
581240
581310
  await gracefulShutdown(0);
581241
581311
  }
581242
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.9.2"})
581312
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.9.4"})
581243
581313
  `);
581244
581314
  writeToStdout(`Installing update...
581245
581315
  `);
@@ -581284,7 +581354,7 @@ async function update2() {
581284
581354
  logForDebugging(`update: Installation status: ${status2}`);
581285
581355
  switch (status2) {
581286
581356
  case "success":
581287
- writeToStdout(source_default.green(`Successfully updated from ${"0.9.2"} to version ${latestVersion}`) + `
581357
+ writeToStdout(source_default.green(`Successfully updated from ${"0.9.4"} to version ${latestVersion}`) + `
581288
581358
  `);
581289
581359
  await regenerateCompletionCache();
581290
581360
  break;
@@ -582585,7 +582655,7 @@ ${customInstructions}` : customInstructions;
582585
582655
  }
582586
582656
  }
582587
582657
  logForDiagnosticsNoPII("info", "started", {
582588
- version: "0.9.2",
582658
+ version: "0.9.4",
582589
582659
  is_native_binary: isInBundledMode()
582590
582660
  });
582591
582661
  registerCleanup(async () => {
@@ -583468,7 +583538,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
583468
583538
  pendingHookMessages
583469
583539
  }, renderAndRun);
583470
583540
  }
583471
- }).version("0.9.2", "-v, --version", "Output the version number");
583541
+ }).version("0.9.4", "-v, --version", "Output the version number");
583472
583542
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
583473
583543
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
583474
583544
  if (canUserConfigureAdvisor()) {
@@ -584134,7 +584204,7 @@ if (false) {}
584134
584204
  async function main2() {
584135
584205
  const args = process.argv.slice(2);
584136
584206
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
584137
- console.log(`${"0.9.2"} (ZeroCLI)`);
584207
+ console.log(`${"0.9.4"} (ZeroCLI)`);
584138
584208
  return;
584139
584209
  }
584140
584210
  if (args.includes("--provider")) {
@@ -584276,4 +584346,4 @@ async function main2() {
584276
584346
  }
584277
584347
  main2();
584278
584348
 
584279
- //# debugId=A87034AB8C040E0A64756E2164756E21
584349
+ //# debugId=C6156E411B8F3BDB64756E2164756E21
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@duheso/zerocli",
3
- "version": "0.9.2",
4
- "description": "Zero Cli to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models",
3
+ "version": "0.9.4",
4
+ "description": "Zero CLI to any LLM — OpenAI, Gemini, DeepSeek, Ollama, and 200+ models",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "zero": "bin/zero"