@duheso/zerocli 0.9.3 → 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 +154 -85
  2. package/package.json +2 -2
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.3"}${RESET}`);
119195
+ out.push(` ${DIM}${rgb(...DIMCOL)}zero ${RESET}${rgb(...ACCENT)}v${"0.9.4"}${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.3"}.${fingerprint}`;
147386
+ const version2 = `${"0.9.4"}.${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.3"}`;
190396
+ return `claude-code/${"0.9.4"}`;
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.3"} (${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})`;
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.3"}${suffix}`;
190419
+ return `claude-code/${"0.9.4"}${suffix}`;
190420
190420
  }
190421
190421
  function getWebFetchUserAgent() {
190422
190422
  const supportUrl = getAPIProvider() === "firstParty" ? "https://support.anthropic.com/" : "https://github.com/Duheso/ZeroCLI";
@@ -244850,7 +244850,7 @@ function getTelemetryAttributes() {
244850
244850
  attributes["session.id"] = sessionId;
244851
244851
  }
244852
244852
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
244853
- attributes["app.version"] = "0.9.3";
244853
+ attributes["app.version"] = "0.9.4";
244854
244854
  }
244855
244855
  const oauthAccount = getOauthAccountInfo();
244856
244856
  if (oauthAccount) {
@@ -257089,7 +257089,7 @@ function computeFingerprint(messageText, version2) {
257089
257089
  }
257090
257090
  function computeFingerprintFromMessages(messages) {
257091
257091
  const firstMessageText = extractFirstMessageText(messages);
257092
- return computeFingerprint(firstMessageText, "0.9.3");
257092
+ return computeFingerprint(firstMessageText, "0.9.4");
257093
257093
  }
257094
257094
  var FINGERPRINT_SALT = "59cf53e54c78";
257095
257095
  var init_fingerprint = () => {};
@@ -257131,7 +257131,7 @@ async function sideQuery(opts) {
257131
257131
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
257132
257132
  }
257133
257133
  const messageText = extractFirstUserMessageText(messages);
257134
- const fingerprint = computeFingerprint(messageText, "0.9.3");
257134
+ const fingerprint = computeFingerprint(messageText, "0.9.4");
257135
257135
  const attributionHeader = getAttributionHeader(fingerprint);
257136
257136
  const systemBlocks = [
257137
257137
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -266033,7 +266033,7 @@ var init_user = __esm(() => {
266033
266033
  deviceId,
266034
266034
  sessionId: getSessionId(),
266035
266035
  email: getEmail(),
266036
- appVersion: "0.9.3",
266036
+ appVersion: "0.9.4",
266037
266037
  platform: getHostPlatformForAnalytics(),
266038
266038
  organizationUuid,
266039
266039
  accountUuid,
@@ -266427,7 +266427,7 @@ async function initializeBetaTracing(resource) {
266427
266427
  });
266428
266428
  logs.setGlobalLoggerProvider(loggerProvider);
266429
266429
  setLoggerProvider(loggerProvider);
266430
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.3");
266430
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.4");
266431
266431
  setEventLogger(eventLogger);
266432
266432
  process.on("beforeExit", async () => {
266433
266433
  await loggerProvider?.forceFlush();
@@ -266467,7 +266467,7 @@ async function initializeTelemetry() {
266467
266467
  const platform3 = getPlatform();
266468
266468
  const baseAttributes = {
266469
266469
  [ATTR_SERVICE_NAME3]: "claude-code",
266470
- [ATTR_SERVICE_VERSION3]: "0.9.3"
266470
+ [ATTR_SERVICE_VERSION3]: "0.9.4"
266471
266471
  };
266472
266472
  if (platform3 === "wsl") {
266473
266473
  const wslVersion = getWslVersion();
@@ -266512,7 +266512,7 @@ async function initializeTelemetry() {
266512
266512
  } catch {}
266513
266513
  };
266514
266514
  registerCleanup(shutdownTelemetry2);
266515
- return meterProvider2.getMeter("com.anthropic.claude_code", "0.9.3");
266515
+ return meterProvider2.getMeter("com.anthropic.claude_code", "0.9.4");
266516
266516
  }
266517
266517
  const meterProvider = new MeterProvider3({
266518
266518
  resource,
@@ -266532,7 +266532,7 @@ async function initializeTelemetry() {
266532
266532
  });
266533
266533
  logs.setGlobalLoggerProvider(loggerProvider);
266534
266534
  setLoggerProvider(loggerProvider);
266535
- const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.3");
266535
+ const eventLogger = logs.getLogger("com.anthropic.claude_code.events", "0.9.4");
266536
266536
  setEventLogger(eventLogger);
266537
266537
  logForDebugging("[3P telemetry] Event logger set successfully");
266538
266538
  process.on("beforeExit", async () => {
@@ -266594,7 +266594,7 @@ Current timeout: ${timeoutMs}ms
266594
266594
  }
266595
266595
  };
266596
266596
  registerCleanup(shutdownTelemetry);
266597
- return meterProvider.getMeter("com.anthropic.claude_code", "0.9.3");
266597
+ return meterProvider.getMeter("com.anthropic.claude_code", "0.9.4");
266598
266598
  }
266599
266599
  async function flushTelemetry() {
266600
266600
  const meterProvider = getMeterProvider();
@@ -267406,9 +267406,9 @@ async function assertMinVersion() {
267406
267406
  }
267407
267407
  try {
267408
267408
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
267409
- if (versionConfig.minVersion && lt("0.9.3", versionConfig.minVersion)) {
267409
+ if (versionConfig.minVersion && lt("0.9.4", versionConfig.minVersion)) {
267410
267410
  console.error(`
267411
- It looks like your version of ZeroCLI (${"0.9.3"}) needs an update.
267411
+ It looks like your version of ZeroCLI (${"0.9.4"}) needs an update.
267412
267412
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
267413
267413
 
267414
267414
  To update, please run:
@@ -267624,7 +267624,7 @@ async function installGlobalPackage(specificVersion) {
267624
267624
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
267625
267625
  logEvent("tengu_auto_updater_lock_contention", {
267626
267626
  pid: process.pid,
267627
- currentVersion: "0.9.3"
267627
+ currentVersion: "0.9.4"
267628
267628
  });
267629
267629
  return "in_progress";
267630
267630
  }
@@ -267633,7 +267633,7 @@ async function installGlobalPackage(specificVersion) {
267633
267633
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
267634
267634
  logError2(new Error("Windows NPM detected in WSL environment"));
267635
267635
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
267636
- currentVersion: "0.9.3"
267636
+ currentVersion: "0.9.4"
267637
267637
  });
267638
267638
  console.error(`
267639
267639
  Error: Windows NPM detected in WSL
@@ -268187,7 +268187,7 @@ async function getDoctorDiagnostic() {
268187
268187
  const installationType = await getCurrentInstallationType();
268188
268188
  let version2;
268189
268189
  try {
268190
- version2 = "0.9.3";
268190
+ version2 = "0.9.4";
268191
268191
  } catch {
268192
268192
  version2 = "unknown";
268193
268193
  }
@@ -269681,7 +269681,7 @@ function getInstallationEnv() {
269681
269681
  return;
269682
269682
  }
269683
269683
  function getZeroCodeVersion() {
269684
- return "0.9.3";
269684
+ return "0.9.4";
269685
269685
  }
269686
269686
  async function getInstalledVSCodeExtensionVersion(command) {
269687
269687
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -271048,8 +271048,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
271048
271048
  const maxVersion = await getMaxVersion();
271049
271049
  if (maxVersion && gt(version2, maxVersion)) {
271050
271050
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
271051
- if (gte("0.9.3", maxVersion)) {
271052
- logForDebugging(`Native installer: current version ${"0.9.3"} 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`);
271053
271053
  logEvent("tengu_native_update_skipped_max_version", {
271054
271054
  latency_ms: Date.now() - startTime2,
271055
271055
  max_version: maxVersion,
@@ -271060,7 +271060,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
271060
271060
  version2 = maxVersion;
271061
271061
  }
271062
271062
  }
271063
- if (!forceReinstall && version2 === "0.9.3" && await versionIsAvailable(version2) && await isPossibleZeroBinary(executablePath)) {
271063
+ if (!forceReinstall && version2 === "0.9.4" && await versionIsAvailable(version2) && await isPossibleZeroBinary(executablePath)) {
271064
271064
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
271065
271065
  logEvent("tengu_native_update_complete", {
271066
271066
  latency_ms: Date.now() - startTime2,
@@ -358079,6 +358079,23 @@ var init_TestingPermissionTool = __esm(() => {
358079
358079
  });
358080
358080
 
358081
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
+ }
358082
358099
  function AskUserQuestionResultMessage(t0) {
358083
358100
  const $2 = import_react_compiler_runtime113.c(3);
358084
358101
  const {
@@ -358173,7 +358190,7 @@ var init_AskUserQuestionTool = __esm(() => {
358173
358190
  questionSchema = lazySchema(() => exports_external.object({
358174
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?"'),
358175
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".`),
358176
- 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.`),
358177
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.")
358178
358195
  }));
358179
358196
  annotationsSchema = lazySchema(() => {
@@ -358206,8 +358223,8 @@ var init_AskUserQuestionTool = __esm(() => {
358206
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.')
358207
358224
  }).optional().describe("Optional metadata for tracking and analytics purposes. Not displayed to user.")
358208
358225
  }));
358209
- inputSchema20 = lazySchema(() => exports_external.strictObject({
358210
- 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)"),
358211
358228
  ...commonFields()
358212
358229
  }).refine(UNIQUENESS_REFINE.check, {
358213
358230
  message: UNIQUENESS_REFINE.message
@@ -376267,7 +376284,7 @@ function getAnthropicEnvMetadata() {
376267
376284
  function getBuildAgeMinutes() {
376268
376285
  if (false)
376269
376286
  ;
376270
- const buildTime = new Date("2026-05-08T22:03:32.862Z").getTime();
376287
+ const buildTime = new Date("2026-05-11T01:40:36.001Z").getTime();
376271
376288
  if (isNaN(buildTime))
376272
376289
  return;
376273
376290
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -403703,7 +403720,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
403703
403720
  const client2 = new Client({
403704
403721
  name: "claude-code",
403705
403722
  title: "ZeroCLI",
403706
- version: "0.9.3",
403723
+ version: "0.9.4",
403707
403724
  description: "Anthropic's agentic coding tool",
403708
403725
  websiteUrl: PRODUCT_URL
403709
403726
  }, {
@@ -404055,7 +404072,7 @@ var init_client7 = __esm(() => {
404055
404072
  const client2 = new Client({
404056
404073
  name: "claude-code",
404057
404074
  title: "ZeroCLI",
404058
- version: "0.9.3",
404075
+ version: "0.9.4",
404059
404076
  description: "Anthropic's agentic coding tool",
404060
404077
  websiteUrl: PRODUCT_URL
404061
404078
  }, {
@@ -405082,6 +405099,58 @@ function normalizeToolInput(tool, input, agentId) {
405082
405099
  timeout: timeout ?? 30000
405083
405100
  };
405084
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
+ }
405085
405154
  default:
405086
405155
  return input;
405087
405156
  }
@@ -414718,7 +414787,7 @@ function Feedback({
414718
414787
  platform: env2.platform,
414719
414788
  gitRepo: envInfo.isGit,
414720
414789
  terminal: env2.terminal,
414721
- version: "0.9.3",
414790
+ version: "0.9.4",
414722
414791
  transcript: normalizeMessagesForAPI(messages),
414723
414792
  errors: sanitizedErrors,
414724
414793
  lastApiRequest: getLastAPIRequest(),
@@ -414911,7 +414980,7 @@ function Feedback({
414911
414980
  ", ",
414912
414981
  env2.terminal,
414913
414982
  ", v",
414914
- "0.9.3"
414983
+ "0.9.4"
414915
414984
  ]
414916
414985
  })
414917
414986
  ]
@@ -415019,7 +415088,7 @@ ${sanitizedDescription}
415019
415088
  ` + `**Environment Info**
415020
415089
  ` + `- Platform: ${env2.platform}
415021
415090
  ` + `- Terminal: ${env2.terminal}
415022
- ` + `- Version: ${"0.9.3"}
415091
+ ` + `- Version: ${"0.9.4"}
415023
415092
  ` + feedbackIdLine + `
415024
415093
  **Errors**
415025
415094
  \`\`\`json
@@ -418172,7 +418241,7 @@ function buildPrimarySection() {
418172
418241
  });
418173
418242
  return [{
418174
418243
  label: "Version",
418175
- value: "0.9.3"
418244
+ value: "0.9.4"
418176
418245
  }, {
418177
418246
  label: "Session name",
418178
418247
  value: nameValue
@@ -422942,7 +423011,7 @@ function Config({
422942
423011
  }
422943
423012
  })
422944
423013
  }) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_runtime181.jsx(ChannelDowngradeDialog, {
422945
- currentVersion: "0.9.3",
423014
+ currentVersion: "0.9.4",
422946
423015
  onChoice: (choice) => {
422947
423016
  setShowSubmenu(null);
422948
423017
  setTabsHidden(false);
@@ -422954,7 +423023,7 @@ function Config({
422954
423023
  autoUpdatesChannel: "stable"
422955
423024
  };
422956
423025
  if (choice === "stay") {
422957
- newSettings.minimumVersion = "0.9.3";
423026
+ newSettings.minimumVersion = "0.9.4";
422958
423027
  }
422959
423028
  updateSettingsForSource("userSettings", newSettings);
422960
423029
  setSettingsData((prev_27) => ({
@@ -429895,7 +429964,7 @@ function UpdateScreen({ onDone }) {
429895
429964
  setState({ type: "dev-build" });
429896
429965
  return;
429897
429966
  }
429898
- const currentVersion = "0.9.3";
429967
+ const currentVersion = "0.9.4";
429899
429968
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
429900
429969
  const latestVersion = await getLatestVersion(channel2);
429901
429970
  if (!latestVersion) {
@@ -432006,7 +432075,7 @@ function HelpV2(t0) {
432006
432075
  let t6;
432007
432076
  if ($2[31] !== tabs) {
432008
432077
  t6 = /* @__PURE__ */ jsx_runtime211.jsx(Tabs, {
432009
- title: `ZeroCLI v${"0.9.3"}`,
432078
+ title: `ZeroCLI v${"0.9.4"}`,
432010
432079
  color: "professionalBlue",
432011
432080
  defaultTab: "general",
432012
432081
  children: tabs
@@ -456850,7 +456919,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
456850
456919
  return [];
456851
456920
  }
456852
456921
  }
456853
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.9.3") {
456922
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "0.9.4") {
456854
456923
  if (process.env.USER_TYPE === "ant") {
456855
456924
  const changelog = MACRO.VERSION_CHANGELOG;
456856
456925
  if (changelog) {
@@ -466163,7 +466232,7 @@ function AsyncAgentDetailDialog(t0) {
466163
466232
  t5 = $2[10];
466164
466233
  }
466165
466234
  const planContent = t5;
466166
- 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;
466167
466236
  const tokenCount = agent2.result?.totalTokens ?? agent2.progress?.tokenCount;
466168
466237
  const toolUseCount = agent2.result?.totalToolUseCount ?? agent2.progress?.toolUseCount;
466169
466238
  const t6 = agent2.selectedAgent?.agentType ?? "agent";
@@ -466295,8 +466364,8 @@ function AsyncAgentDetailDialog(t0) {
466295
466364
  t14 = $2[30];
466296
466365
  }
466297
466366
  let t15;
466298
- if ($2[31] !== agent2.progress || $2[32] !== agent2.status || $2[33] !== theme) {
466299
- 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, {
466300
466369
  flexDirection: "column",
466301
466370
  children: [
466302
466371
  /* @__PURE__ */ jsx_runtime275.jsx(ThemedText, {
@@ -485888,7 +485957,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
485888
485957
  smapsRollup,
485889
485958
  platform: process.platform,
485890
485959
  nodeVersion: process.version,
485891
- ccVersion: "0.9.3"
485960
+ ccVersion: "0.9.4"
485892
485961
  };
485893
485962
  }
485894
485963
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -486475,7 +486544,7 @@ var init_bridge_kick = __esm(() => {
486475
486544
  var call60 = async () => {
486476
486545
  return {
486477
486546
  type: "text",
486478
- value: `${"0.9.3"} (built ${"2026-05-08T22:03:32.862Z"})`
486547
+ value: `${"0.9.4"} (built ${"2026-05-11T01:40:36.001Z"})`
486479
486548
  };
486480
486549
  }, version2, version_default;
486481
486550
  var init_version = __esm(() => {
@@ -496632,7 +496701,7 @@ function generateHtmlReport(data, insights) {
496632
496701
  function buildExportData(data, insights, facets) {
496633
496702
  let version3;
496634
496703
  try {
496635
- version3 = "0.9.3";
496704
+ version3 = "0.9.4";
496636
496705
  } catch {
496637
496706
  version3 = "unknown";
496638
496707
  }
@@ -500828,7 +500897,7 @@ var init_sessionStorage = __esm(() => {
500828
500897
  init_slowOperations();
500829
500898
  init_uuid();
500830
500899
  try {
500831
- VERSION7 = "0.9.3";
500900
+ VERSION7 = "0.9.4";
500832
500901
  } catch {
500833
500902
  VERSION7 = "unknown";
500834
500903
  }
@@ -502149,7 +502218,7 @@ var init_filesystem = __esm(() => {
502149
502218
  });
502150
502219
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
502151
502220
  const nonce = randomBytes17(16).toString("hex");
502152
- return join137(getZeroTempDir(), "bundled-skills", "0.9.3", nonce);
502221
+ return join137(getZeroTempDir(), "bundled-skills", "0.9.4", nonce);
502153
502222
  });
502154
502223
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
502155
502224
  });
@@ -513169,7 +513238,7 @@ function buildSystemInitMessage(inputs) {
513169
513238
  slash_commands: inputs.commands.filter((c6) => c6.userInvocable !== false).map((c6) => c6.name),
513170
513239
  apiKeySource: getAnthropicApiKeyWithSource().source,
513171
513240
  betas: getSdkBetas(),
513172
- claude_code_version: "0.9.3",
513241
+ claude_code_version: "0.9.4",
513173
513242
  output_style: outputStyle2,
513174
513243
  agents: inputs.agents.map((agent2) => agent2.agentType),
513175
513244
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -528484,7 +528553,7 @@ var init_useVoiceEnabled = __esm(() => {
528484
528553
  function getSemverPart(version3) {
528485
528554
  return `${import_semver12.major(version3, { loose: true })}.${import_semver12.minor(version3, { loose: true })}.${import_semver12.patch(version3, { loose: true })}`;
528486
528555
  }
528487
- function useUpdateNotification(updatedVersion, initialVersion = "0.9.3") {
528556
+ function useUpdateNotification(updatedVersion, initialVersion = "0.9.4") {
528488
528557
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
528489
528558
  if (!updatedVersion) {
528490
528559
  return null;
@@ -528527,7 +528596,7 @@ function AutoUpdater({
528527
528596
  return;
528528
528597
  }
528529
528598
  if (false) {}
528530
- const currentVersion = "0.9.3";
528599
+ const currentVersion = "0.9.4";
528531
528600
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
528532
528601
  let latestVersion = await getLatestVersion(channel2);
528533
528602
  const isDisabled = isAutoUpdaterDisabled();
@@ -528748,12 +528817,12 @@ function NativeAutoUpdater({
528748
528817
  logEvent("tengu_native_auto_updater_start", {});
528749
528818
  try {
528750
528819
  const maxVersion = await getMaxVersion();
528751
- if (maxVersion && gt("0.9.3", maxVersion)) {
528820
+ if (maxVersion && gt("0.9.4", maxVersion)) {
528752
528821
  const msg = await getMaxVersionMessage();
528753
528822
  setMaxVersionIssue(msg ?? "affects your version");
528754
528823
  }
528755
528824
  const result = await installLatest(channel2);
528756
- const currentVersion = "0.9.3";
528825
+ const currentVersion = "0.9.4";
528757
528826
  const latencyMs = Date.now() - startTime2;
528758
528827
  if (result.lockFailed) {
528759
528828
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -528895,17 +528964,17 @@ function PackageManagerAutoUpdater(t0) {
528895
528964
  const maxVersion = await getMaxVersion();
528896
528965
  if (maxVersion && latest && gt(latest, maxVersion)) {
528897
528966
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
528898
- if (gte("0.9.3", maxVersion)) {
528899
- logForDebugging(`PackageManagerAutoUpdater: current version ${"0.9.3"} 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`);
528900
528969
  setUpdateAvailable(false);
528901
528970
  return;
528902
528971
  }
528903
528972
  latest = maxVersion;
528904
528973
  }
528905
- const hasUpdate = latest && !gte("0.9.3", latest) && !shouldSkipVersion(latest);
528974
+ const hasUpdate = latest && !gte("0.9.4", latest) && !shouldSkipVersion(latest);
528906
528975
  setUpdateAvailable(!!hasUpdate);
528907
528976
  if (hasUpdate) {
528908
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.9.3"} -> ${latest}`);
528977
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.9.4"} -> ${latest}`);
528909
528978
  }
528910
528979
  };
528911
528980
  $2[0] = t1;
@@ -528939,7 +529008,7 @@ function PackageManagerAutoUpdater(t0) {
528939
529008
  wrap: "truncate",
528940
529009
  children: [
528941
529010
  "currentVersion: ",
528942
- "0.9.3"
529011
+ "0.9.4"
528943
529012
  ]
528944
529013
  });
528945
529014
  $2[3] = verbose;
@@ -537968,7 +538037,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
537968
538037
  project_dir: getOriginalCwd(),
537969
538038
  added_dirs: addedDirs
537970
538039
  },
537971
- version: "0.9.3",
538040
+ version: "0.9.4",
537972
538041
  output_style: {
537973
538042
  name: outputStyleName
537974
538043
  },
@@ -562470,7 +562539,7 @@ function WelcomeV2() {
562470
562539
  dimColor: true,
562471
562540
  children: [
562472
562541
  "v",
562473
- "0.9.3",
562542
+ "0.9.4",
562474
562543
  " "
562475
562544
  ]
562476
562545
  })
@@ -562704,7 +562773,7 @@ function WelcomeV2() {
562704
562773
  dimColor: true,
562705
562774
  children: [
562706
562775
  "v",
562707
- "0.9.3",
562776
+ "0.9.4",
562708
562777
  " "
562709
562778
  ]
562710
562779
  })
@@ -562951,7 +563020,7 @@ function AppleTerminalWelcomeV2(t0) {
562951
563020
  dimColor: true,
562952
563021
  children: [
562953
563022
  "v",
562954
- "0.9.3",
563023
+ "0.9.4",
562955
563024
  " "
562956
563025
  ]
562957
563026
  });
@@ -563224,7 +563293,7 @@ function AppleTerminalWelcomeV2(t0) {
563224
563293
  dimColor: true,
563225
563294
  children: [
563226
563295
  "v",
563227
- "0.9.3",
563296
+ "0.9.4",
563228
563297
  " "
563229
563298
  ]
563230
563299
  });
@@ -564736,7 +564805,7 @@ function completeOnboarding() {
564736
564805
  saveGlobalConfig((current) => ({
564737
564806
  ...current,
564738
564807
  hasCompletedOnboarding: true,
564739
- lastOnboardingVersion: "0.9.3"
564808
+ lastOnboardingVersion: "0.9.4"
564740
564809
  }));
564741
564810
  }
564742
564811
  function showDialog(root2, renderer) {
@@ -568987,7 +569056,7 @@ function appendToLog(path24, message) {
568987
569056
  cwd: getFsImplementation().cwd(),
568988
569057
  userType: process.env.USER_TYPE,
568989
569058
  sessionId: getSessionId(),
568990
- version: "0.9.3"
569059
+ version: "0.9.4"
568991
569060
  };
568992
569061
  getLogWriter(path24).write(messageWithTimestamp);
568993
569062
  }
@@ -569593,7 +569662,7 @@ async function startMCPServer(cwd2, debug, verbose) {
569593
569662
  setCwd(cwd2);
569594
569663
  const server = new Server({
569595
569664
  name: "claude/tengu",
569596
- version: "0.9.3"
569665
+ version: "0.9.4"
569597
569666
  }, {
569598
569667
  capabilities: {
569599
569668
  tools: {}
@@ -574232,8 +574301,8 @@ async function getEnvLessBridgeConfig() {
574232
574301
  }
574233
574302
  async function checkEnvLessBridgeMinVersion() {
574234
574303
  const cfg = await getEnvLessBridgeConfig();
574235
- if (cfg.min_version && lt("0.9.3", cfg.min_version)) {
574236
- return `Your version of ZeroCLI (${"0.9.3"}) 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.
574237
574306
  Version ${cfg.min_version} or higher is required. Run \`zero update\` to update.`;
574238
574307
  }
574239
574308
  return null;
@@ -574708,7 +574777,7 @@ async function initBridgeCore(params) {
574708
574777
  const rawApi = createBridgeApiClient({
574709
574778
  baseUrl,
574710
574779
  getAccessToken,
574711
- runnerVersion: "0.9.3",
574780
+ runnerVersion: "0.9.4",
574712
574781
  onDebug: logForDebugging,
574713
574782
  onAuth401,
574714
574783
  getTrustedDeviceToken
@@ -580996,7 +581065,7 @@ __export(exports_update2, {
580996
581065
  });
580997
581066
  async function update2() {
580998
581067
  logEvent("tengu_update_check", {});
580999
- writeToStdout(`Current version: ${"0.9.3"}
581068
+ writeToStdout(`Current version: ${"0.9.4"}
581000
581069
  `);
581001
581070
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
581002
581071
  writeToStdout(`Checking for updates to ${channel2} version...
@@ -581071,8 +581140,8 @@ async function update2() {
581071
581140
  writeToStdout(`Zero is managed by Homebrew.
581072
581141
  `);
581073
581142
  const latest = await getLatestVersion(channel2);
581074
- if (latest && !gte("0.9.3", latest)) {
581075
- writeToStdout(`Update available: ${"0.9.3"} → ${latest}
581143
+ if (latest && !gte("0.9.4", latest)) {
581144
+ writeToStdout(`Update available: ${"0.9.4"} → ${latest}
581076
581145
  `);
581077
581146
  writeToStdout(`
581078
581147
  `);
@@ -581088,8 +581157,8 @@ async function update2() {
581088
581157
  writeToStdout(`Zero is managed by winget.
581089
581158
  `);
581090
581159
  const latest = await getLatestVersion(channel2);
581091
- if (latest && !gte("0.9.3", latest)) {
581092
- writeToStdout(`Update available: ${"0.9.3"} → ${latest}
581160
+ if (latest && !gte("0.9.4", latest)) {
581161
+ writeToStdout(`Update available: ${"0.9.4"} → ${latest}
581093
581162
  `);
581094
581163
  writeToStdout(`
581095
581164
  `);
@@ -581105,8 +581174,8 @@ async function update2() {
581105
581174
  writeToStdout(`Zero is managed by apk.
581106
581175
  `);
581107
581176
  const latest = await getLatestVersion(channel2);
581108
- if (latest && !gte("0.9.3", latest)) {
581109
- writeToStdout(`Update available: ${"0.9.3"} → ${latest}
581177
+ if (latest && !gte("0.9.4", latest)) {
581178
+ writeToStdout(`Update available: ${"0.9.4"} → ${latest}
581110
581179
  `);
581111
581180
  writeToStdout(`
581112
581181
  `);
@@ -581171,11 +581240,11 @@ async function update2() {
581171
581240
  `);
581172
581241
  await gracefulShutdown(1);
581173
581242
  }
581174
- if (result.latestVersion === "0.9.3") {
581175
- writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.3"})`) + `
581243
+ if (result.latestVersion === "0.9.4") {
581244
+ writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.4"})`) + `
581176
581245
  `);
581177
581246
  } else {
581178
- writeToStdout(source_default.green(`Successfully updated from ${"0.9.3"} to version ${result.latestVersion}`) + `
581247
+ writeToStdout(source_default.green(`Successfully updated from ${"0.9.4"} to version ${result.latestVersion}`) + `
581179
581248
  `);
581180
581249
  await regenerateCompletionCache();
581181
581250
  }
@@ -581235,12 +581304,12 @@ async function update2() {
581235
581304
  `);
581236
581305
  await gracefulShutdown(1);
581237
581306
  }
581238
- if (latestVersion === "0.9.3") {
581239
- writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.3"})`) + `
581307
+ if (latestVersion === "0.9.4") {
581308
+ writeToStdout(source_default.green(`Zero CLI is up to date (${"0.9.4"})`) + `
581240
581309
  `);
581241
581310
  await gracefulShutdown(0);
581242
581311
  }
581243
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.9.3"})
581312
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.9.4"})
581244
581313
  `);
581245
581314
  writeToStdout(`Installing update...
581246
581315
  `);
@@ -581285,7 +581354,7 @@ async function update2() {
581285
581354
  logForDebugging(`update: Installation status: ${status2}`);
581286
581355
  switch (status2) {
581287
581356
  case "success":
581288
- writeToStdout(source_default.green(`Successfully updated from ${"0.9.3"} to version ${latestVersion}`) + `
581357
+ writeToStdout(source_default.green(`Successfully updated from ${"0.9.4"} to version ${latestVersion}`) + `
581289
581358
  `);
581290
581359
  await regenerateCompletionCache();
581291
581360
  break;
@@ -582586,7 +582655,7 @@ ${customInstructions}` : customInstructions;
582586
582655
  }
582587
582656
  }
582588
582657
  logForDiagnosticsNoPII("info", "started", {
582589
- version: "0.9.3",
582658
+ version: "0.9.4",
582590
582659
  is_native_binary: isInBundledMode()
582591
582660
  });
582592
582661
  registerCleanup(async () => {
@@ -583469,7 +583538,7 @@ Usage: claude --remote "your task description"`, () => gracefulShutdown(1));
583469
583538
  pendingHookMessages
583470
583539
  }, renderAndRun);
583471
583540
  }
583472
- }).version("0.9.3", "-v, --version", "Output the version number");
583541
+ }).version("0.9.4", "-v, --version", "Output the version number");
583473
583542
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
583474
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.");
583475
583544
  if (canUserConfigureAdvisor()) {
@@ -584135,7 +584204,7 @@ if (false) {}
584135
584204
  async function main2() {
584136
584205
  const args = process.argv.slice(2);
584137
584206
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
584138
- console.log(`${"0.9.3"} (ZeroCLI)`);
584207
+ console.log(`${"0.9.4"} (ZeroCLI)`);
584139
584208
  return;
584140
584209
  }
584141
584210
  if (args.includes("--provider")) {
@@ -584277,4 +584346,4 @@ async function main2() {
584277
584346
  }
584278
584347
  main2();
584279
584348
 
584280
- //# debugId=48C4FC63FCACF98F64756E2164756E21
584349
+ //# debugId=C6156E411B8F3BDB64756E2164756E21
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@duheso/zerocli",
3
- "version": "0.9.3",
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"