@lsnl/wenhaicode 0.9.2 → 0.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -56,7 +56,7 @@ WenhaiCode is also mirrored to GitLawb:
56
56
  ### Install
57
57
 
58
58
  ```bash
59
- npm install -g @LSNL/wenhaicode
59
+ npm install -g @lsnl/wenhaicode
60
60
  ```
61
61
 
62
62
  If the install later reports `ripgrep not found`, install ripgrep system-wide and confirm `rg --version` works in the same terminal before starting WenhaiCode.
package/dist/cli.mjs CHANGED
@@ -39438,6 +39438,15 @@ async function getProviderValidationError(env3 = process.env, options) {
39438
39438
  const useOpenAI = isEnvTruthy2(env3.CLAUDE_CODE_USE_OPENAI);
39439
39439
  const validationTarget = getRuntimeValidationTarget(env3);
39440
39440
  if (!useOpenAI && !validationTarget) {
39441
+ const hasAnthropicKey = Boolean(env3.ANTHROPIC_API_KEY?.trim());
39442
+ const hasAnthropicBase = Boolean(env3.ANTHROPIC_BASE_URL?.trim());
39443
+ const useGemini = isEnvTruthy2(env3.CLAUDE_CODE_USE_GEMINI);
39444
+ const useGithub = isEnvTruthy2(env3.CLAUDE_CODE_USE_GITHUB);
39445
+ const useMistral = isEnvTruthy2(env3.CLAUDE_CODE_USE_MISTRAL);
39446
+ const hasAnyProvider = hasAnthropicKey || hasAnthropicBase || useGemini || useGithub || useMistral;
39447
+ if (!hasAnyProvider) {
39448
+ return "No provider configured. Run /provider to set up a provider, or set environment variables (e.g. CLAUDE_CODE_USE_OPENAI=1 OPENAI_API_KEY=... OPENAI_MODEL=...).";
39449
+ }
39441
39450
  return null;
39442
39451
  }
39443
39452
  const request = resolveProviderRequest({
@@ -280274,7 +280283,7 @@ async function installOrUpdateClaudePackage(channel, specificVersion) {
280274
280283
  return "install_failed";
280275
280284
  }
280276
280285
  const versionSpec = specificVersion ? specificVersion : channel === "stable" ? "stable" : "latest";
280277
- const result = await execFileNoThrowWithCwd("npm", ["install", `${"@LSNL/wenhaicode"}@${versionSpec}`], { cwd: getLocalInstallDir(), maxBuffer: 1e6 });
280286
+ const result = await execFileNoThrowWithCwd("npm", ["install", `${"@lsnl/wenhaicode"}@${versionSpec}`], { cwd: getLocalInstallDir(), maxBuffer: 1e6 });
280278
280287
  if (result.code !== 0) {
280279
280288
  const error42 = new Error(`Failed to install Claude CLI package: ${result.stderr}`);
280280
280289
  logError2(error42);
@@ -280707,7 +280716,7 @@ async function detectMultipleInstallations() {
280707
280716
  }
280708
280717
  const packagesToCheck = ["@anthropic-ai/claude-code"];
280709
280718
  if (true) {
280710
- packagesToCheck.push("@LSNL/wenhaicode");
280719
+ packagesToCheck.push("@lsnl/wenhaicode");
280711
280720
  }
280712
280721
  const npmResult = await execFileNoThrow("npm", [
280713
280722
  "-g",
@@ -280903,7 +280912,7 @@ async function getDoctorDiagnostic() {
280903
280912
  if (install.type === "npm-global") {
280904
280913
  let uninstallCmd = "npm -g uninstall @anthropic-ai/claude-code";
280905
280914
  if (true) {
280906
- uninstallCmd += ` && npm -g uninstall ${"@LSNL/wenhaicode"}`;
280915
+ uninstallCmd += ` && npm -g uninstall ${"@lsnl/wenhaicode"}`;
280907
280916
  }
280908
280917
  warnings.push({
280909
280918
  issue: `Leftover npm global installation at ${install.path}`,
@@ -282585,7 +282594,7 @@ async function cleanupNpmInstallations() {
282585
282594
  errors4.push(codePackageResult.error);
282586
282595
  }
282587
282596
  if (true) {
282588
- const macroPackageResult = await attemptNpmUninstall("@LSNL/wenhaicode");
282597
+ const macroPackageResult = await attemptNpmUninstall("@lsnl/wenhaicode");
282589
282598
  if (macroPackageResult.success) {
282590
282599
  removed++;
282591
282600
  if (macroPackageResult.warning) {
@@ -389088,7 +389097,7 @@ function getAnthropicEnvMetadata() {
389088
389097
  function getBuildAgeMinutes() {
389089
389098
  if (false)
389090
389099
  ;
389091
- const buildTime = new Date("2026-05-25T01:04:12.390Z").getTime();
389100
+ const buildTime = new Date("2026-05-25T01:43:43.487Z").getTime();
389092
389101
  if (isNaN(buildTime))
389093
389102
  return;
389094
389103
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -417106,7 +417115,7 @@ function buildPrimarySection() {
417106
417115
  }, undefined, false, undefined, this);
417107
417116
  return [{
417108
417117
  label: "Version",
417109
- value: "0.9.2"
417118
+ value: "0.9.3"
417110
417119
  }, {
417111
417120
  label: "Session name",
417112
417121
  value: nameValue
@@ -431436,7 +431445,7 @@ function getReleaseTagUrl(version2 = publicBuildVersion) {
431436
431445
  return `${WENHAICODE_RELEASES_URL}/tag/v${normalizePublicVersion(version2)}`;
431437
431446
  }
431438
431447
  function getPublicBuildVersion() {
431439
- return "0.9.2";
431448
+ return "0.9.3";
431440
431449
  }
431441
431450
  var import_semver9, WENHAICODE_RELEASES_URL = "https://github.com/echoxiangzhou/wenhaicode/releases", fallbackBuildVersion, publicBuildVersion;
431442
431451
  var init_version = __esm(() => {
@@ -488070,7 +488079,7 @@ var init_bridge_kick = __esm(() => {
488070
488079
  var call64 = async () => {
488071
488080
  return {
488072
488081
  type: "text",
488073
- value: `${"99.0.0"} (built ${"2026-05-25T01:04:12.390Z"})`
488082
+ value: `${"99.0.0"} (built ${"2026-05-25T01:43:43.487Z"})`
488074
488083
  };
488075
488084
  }, version2, version_default;
488076
488085
  var init_version2 = __esm(() => {
@@ -519720,12 +519729,17 @@ function detectProvider(modelOverride) {
519720
519729
  }
519721
519730
  return { name, model: displayModel, baseUrl: baseUrl2, isLocal: isLocal2 };
519722
519731
  }
519732
+ const hasAnthropicKey = Boolean(process.env.ANTHROPIC_API_KEY?.trim());
519733
+ const hasAnthropicBase = Boolean(process.env.ANTHROPIC_BASE_URL?.trim());
519723
519734
  const settings = getSettings_DEPRECATED() || {};
519724
519735
  const modelSetting = modelOverride || process.env.ANTHROPIC_MODEL || process.env.CLAUDE_MODEL || settings.model || "claude-sonnet-4-6";
519725
519736
  const resolvedModel = parseUserSpecifiedModel(modelSetting);
519726
519737
  const baseUrl = process.env.ANTHROPIC_BASE_URL ?? "https://api.anthropic.com";
519727
519738
  const isLocal = isLocalProviderUrl(baseUrl);
519728
- return { name: "Anthropic", model: resolvedModel, baseUrl, isLocal };
519739
+ if (hasAnthropicKey || hasAnthropicBase) {
519740
+ return { name: "Anthropic", model: resolvedModel, baseUrl, isLocal };
519741
+ }
519742
+ return { name: "Not configured", model: "Run /provider to set up", baseUrl: "-", isLocal: false };
519729
519743
  }
519730
519744
  function boxRow(content, width, rawLen, border) {
519731
519745
  const pad = Math.max(0, width - 2 - rawLen);
@@ -519777,7 +519791,7 @@ function printStartupScreen(modelOverride) {
519777
519791
  const sLen = ` ● ${sL} Ready — type /help to begin`.length;
519778
519792
  out.push(boxRow(sRow, W2, sLen, BORDER));
519779
519793
  out.push(`${ansiRgb(...BORDER)}╚${"═".repeat(W2 - 2)}╝${RESET2}`);
519780
- out.push(` ${DIM2}${ansiRgb(...DIMCOL)}wenhaicode ${RESET2}${ansiRgb(...ACCENT)}v${"0.9.2"}${RESET2}`);
519794
+ out.push(` ${DIM2}${ansiRgb(...DIMCOL)}wenhaicode ${RESET2}${ansiRgb(...ACCENT)}v${"0.9.3"}${RESET2}`);
519781
519795
  out.push("");
519782
519796
  process.stdout.write(out.join(`
519783
519797
  `) + `
@@ -538539,7 +538553,7 @@ function AutoUpdater({
538539
538553
  " ",
538540
538554
  /* @__PURE__ */ jsx_dev_runtime406.jsxDEV(ThemedText, {
538541
538555
  bold: true,
538542
- children: hasLocalInstall ? `cd ~/.wenhaicode/local && npm update ${"@LSNL/wenhaicode"}` : `npm i -g ${"@LSNL/wenhaicode"}`
538556
+ children: hasLocalInstall ? `cd ~/.wenhaicode/local && npm update ${"@lsnl/wenhaicode"}` : `npm i -g ${"@lsnl/wenhaicode"}`
538543
538557
  }, undefined, false, undefined, this)
538544
538558
  ]
538545
538559
  }, undefined, true, undefined, this)
@@ -570969,7 +570983,7 @@ function WelcomeV2() {
570969
570983
  dimColor: true,
570970
570984
  children: [
570971
570985
  "v",
570972
- "0.9.2",
570986
+ "0.9.3",
570973
570987
  " "
570974
570988
  ]
570975
570989
  }, undefined, true, undefined, this)
@@ -571169,7 +571183,7 @@ function WelcomeV2() {
571169
571183
  dimColor: true,
571170
571184
  children: [
571171
571185
  "v",
571172
- "0.9.2",
571186
+ "0.9.3",
571173
571187
  " "
571174
571188
  ]
571175
571189
  }, undefined, true, undefined, this)
@@ -571395,7 +571409,7 @@ function AppleTerminalWelcomeV2(t0) {
571395
571409
  dimColor: true,
571396
571410
  children: [
571397
571411
  "v",
571398
- "0.9.2",
571412
+ "0.9.3",
571399
571413
  " "
571400
571414
  ]
571401
571415
  }, undefined, true, undefined, this);
@@ -571649,7 +571663,7 @@ function AppleTerminalWelcomeV2(t0) {
571649
571663
  dimColor: true,
571650
571664
  children: [
571651
571665
  "v",
571652
- "0.9.2",
571666
+ "0.9.3",
571653
571667
  " "
571654
571668
  ]
571655
571669
  }, undefined, true, undefined, this);
@@ -588970,10 +588984,10 @@ __export(exports_update, {
588970
588984
  async function update() {
588971
588985
  if (getAPIProvider() !== "firstParty") {
588972
588986
  writeToStdout(source_default.yellow(`Auto-update is not available for third-party provider builds.
588973
- `) + `Current version: ${"0.9.2"}
588987
+ `) + `Current version: ${"0.9.3"}
588974
588988
 
588975
588989
  ` + `To update, reinstall from npm:
588976
- ` + source_default.bold(` npm install -g ${"@LSNL/wenhaicode"}@latest`) + `
588990
+ ` + source_default.bold(` npm install -g ${"@lsnl/wenhaicode"}@latest`) + `
588977
588991
 
588978
588992
  ` + `Or, if you built from source, pull and rebuild:
588979
588993
  ` + source_default.bold(" git pull && bun install && bun run build") + `
@@ -588981,7 +588995,7 @@ async function update() {
588981
588995
  await gracefulShutdown(0);
588982
588996
  }
588983
588997
  logEvent("tengu_update_check", {});
588984
- writeToStdout(`Current version: ${"0.9.2"}
588998
+ writeToStdout(`Current version: ${"0.9.3"}
588985
588999
  `);
588986
589000
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
588987
589001
  writeToStdout(`Checking for updates to ${channel} version...
@@ -589054,7 +589068,7 @@ async function update() {
589054
589068
  `);
589055
589069
  writeToStdout(`Or reinstall from npm:
589056
589070
  `);
589057
- writeToStdout(source_default.bold(` npm install -g ${"@LSNL/wenhaicode"}@latest`) + `
589071
+ writeToStdout(source_default.bold(` npm install -g ${"@lsnl/wenhaicode"}@latest`) + `
589058
589072
  `);
589059
589073
  await gracefulShutdown(0);
589060
589074
  }
@@ -589066,8 +589080,8 @@ async function update() {
589066
589080
  writeToStdout(`Claude is managed by Homebrew.
589067
589081
  `);
589068
589082
  const latest = await getLatestVersion(channel);
589069
- if (latest && !gte("0.9.2", latest)) {
589070
- writeToStdout(`Update available: ${"0.9.2"} → ${latest}
589083
+ if (latest && !gte("0.9.3", latest)) {
589084
+ writeToStdout(`Update available: ${"0.9.3"} → ${latest}
589071
589085
  `);
589072
589086
  writeToStdout(`
589073
589087
  `);
@@ -589083,8 +589097,8 @@ async function update() {
589083
589097
  writeToStdout(`Claude is managed by winget.
589084
589098
  `);
589085
589099
  const latest = await getLatestVersion(channel);
589086
- if (latest && !gte("0.9.2", latest)) {
589087
- writeToStdout(`Update available: ${"0.9.2"} → ${latest}
589100
+ if (latest && !gte("0.9.3", latest)) {
589101
+ writeToStdout(`Update available: ${"0.9.3"} → ${latest}
589088
589102
  `);
589089
589103
  writeToStdout(`
589090
589104
  `);
@@ -589100,8 +589114,8 @@ async function update() {
589100
589114
  writeToStdout(`Claude is managed by apk.
589101
589115
  `);
589102
589116
  const latest = await getLatestVersion(channel);
589103
- if (latest && !gte("0.9.2", latest)) {
589104
- writeToStdout(`Update available: ${"0.9.2"} → ${latest}
589117
+ if (latest && !gte("0.9.3", latest)) {
589118
+ writeToStdout(`Update available: ${"0.9.3"} → ${latest}
589105
589119
  `);
589106
589120
  writeToStdout(`
589107
589121
  `);
@@ -589166,11 +589180,11 @@ async function update() {
589166
589180
  `);
589167
589181
  await gracefulShutdown(1);
589168
589182
  }
589169
- if (result.latestVersion === "0.9.2") {
589170
- writeToStdout(source_default.green(`WenhaiCode is up to date (${"0.9.2"})`) + `
589183
+ if (result.latestVersion === "0.9.3") {
589184
+ writeToStdout(source_default.green(`WenhaiCode is up to date (${"0.9.3"})`) + `
589171
589185
  `);
589172
589186
  } else {
589173
- writeToStdout(source_default.green(`Successfully updated from ${"0.9.2"} to version ${result.latestVersion}`) + `
589187
+ writeToStdout(source_default.green(`Successfully updated from ${"0.9.3"} to version ${result.latestVersion}`) + `
589174
589188
  `);
589175
589189
  await regenerateCompletionCache();
589176
589190
  }
@@ -589189,9 +589203,9 @@ async function update() {
589189
589203
  await removeInstalledSymlink();
589190
589204
  }
589191
589205
  logForDebugging("update: Checking npm registry for latest version");
589192
- logForDebugging(`update: Package URL: ${"@LSNL/wenhaicode"}`);
589206
+ logForDebugging(`update: Package URL: ${"@lsnl/wenhaicode"}`);
589193
589207
  const npmTag = channel === "stable" ? "stable" : "latest";
589194
- const npmCommand = `npm view ${"@LSNL/wenhaicode"}@${npmTag} version`;
589208
+ const npmCommand = `npm view ${"@lsnl/wenhaicode"}@${npmTag} version`;
589195
589209
  logForDebugging(`update: Running: ${npmCommand}`);
589196
589210
  const latestVersion = await getLatestVersion(channel);
589197
589211
  logForDebugging(`update: Latest version from npm: ${latestVersion || "FAILED"}`);
@@ -589211,7 +589225,7 @@ async function update() {
589211
589225
  `);
589212
589226
  process.stderr.write(` • Corporate proxy/firewall blocking npm
589213
589227
  `);
589214
- if (!"@LSNL/wenhaicode".startsWith("@anthropic")) {
589228
+ if (!"@lsnl/wenhaicode".startsWith("@anthropic")) {
589215
589229
  process.stderr.write(` • Internal/development build not published to npm
589216
589230
  `);
589217
589231
  }
@@ -589223,19 +589237,19 @@ async function update() {
589223
589237
  `);
589224
589238
  process.stderr.write(` • Run with --debug flag for more details
589225
589239
  `);
589226
- const packageName = "@LSNL/wenhaicode";
589240
+ const packageName = "@lsnl/wenhaicode";
589227
589241
  process.stderr.write(` • Manually check: npm view ${packageName} version
589228
589242
  `);
589229
589243
  process.stderr.write(` • Check if you need to login: npm whoami
589230
589244
  `);
589231
589245
  await gracefulShutdown(1);
589232
589246
  }
589233
- if (latestVersion === "0.9.2") {
589234
- writeToStdout(source_default.green(`WenhaiCode is up to date (${"0.9.2"})`) + `
589247
+ if (latestVersion === "0.9.3") {
589248
+ writeToStdout(source_default.green(`WenhaiCode is up to date (${"0.9.3"})`) + `
589235
589249
  `);
589236
589250
  await gracefulShutdown(0);
589237
589251
  }
589238
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.9.2"})
589252
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.9.3"})
589239
589253
  `);
589240
589254
  writeToStdout(`Installing update...
589241
589255
  `);
@@ -589280,7 +589294,7 @@ async function update() {
589280
589294
  logForDebugging(`update: Installation status: ${status2}`);
589281
589295
  switch (status2) {
589282
589296
  case "success":
589283
- writeToStdout(source_default.green(`Successfully updated from ${"0.9.2"} to version ${latestVersion}`) + `
589297
+ writeToStdout(source_default.green(`Successfully updated from ${"0.9.3"} to version ${latestVersion}`) + `
589284
589298
  `);
589285
589299
  await regenerateCompletionCache();
589286
589300
  break;
@@ -589290,7 +589304,7 @@ async function update() {
589290
589304
  if (useLocalUpdate) {
589291
589305
  process.stderr.write(`Try manually updating with:
589292
589306
  `);
589293
- process.stderr.write(` cd ~/.wenhaicode/local && npm update ${"@LSNL/wenhaicode"}
589307
+ process.stderr.write(` cd ~/.wenhaicode/local && npm update ${"@lsnl/wenhaicode"}
589294
589308
  `);
589295
589309
  } else {
589296
589310
  process.stderr.write(`Try running with sudo or fix npm permissions
@@ -589306,7 +589320,7 @@ async function update() {
589306
589320
  if (useLocalUpdate) {
589307
589321
  process.stderr.write(`Try manually updating with:
589308
589322
  `);
589309
- process.stderr.write(` cd ~/.wenhaicode/local && npm update ${"@LSNL/wenhaicode"}
589323
+ process.stderr.write(` cd ~/.wenhaicode/local && npm update ${"@lsnl/wenhaicode"}
589310
589324
  `);
589311
589325
  } else {
589312
589326
  process.stderr.write(`Or consider using native installation with: wenhaicode install
@@ -591332,7 +591346,7 @@ Usage: wenhaicode --remote "your task description"`, () => gracefulShutdown(1));
591332
591346
  pendingHookMessages
591333
591347
  }, renderAndRun);
591334
591348
  }
591335
- }).version("0.9.2 (WenhaiCode)", "-v, --version", "Output the version number");
591349
+ }).version("0.9.3 (WenhaiCode)", "-v, --version", "Output the version number");
591336
591350
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
591337
591351
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
591338
591352
  if (canUserConfigureAdvisor()) {
@@ -591890,7 +591904,7 @@ if (false) {}
591890
591904
  async function main2() {
591891
591905
  const args = process.argv.slice(2);
591892
591906
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
591893
- console.log(`${"0.9.2"} (WenhaiCode)`);
591907
+ console.log(`${"0.9.3"} (WenhaiCode)`);
591894
591908
  return;
591895
591909
  }
591896
591910
  if (args.includes("--provider")) {
@@ -592040,4 +592054,4 @@ async function main2() {
592040
592054
  }
592041
592055
  main2();
592042
592056
 
592043
- //# debugId=25377C728B3AA2AF64756E2164756E21
592057
+ //# debugId=6FC7BFA4017ECFD564756E2164756E21
package/dist/sdk.mjs CHANGED
@@ -34184,7 +34184,7 @@ function getAttributionHeader(fingerprint) {
34184
34184
  if (!isAttributionHeaderEnabled()) {
34185
34185
  return "";
34186
34186
  }
34187
- const version = `${"0.9.2"}.${fingerprint}`;
34187
+ const version = `${"0.9.3"}.${fingerprint}`;
34188
34188
  const entrypoint = process.env.CLAUDE_CODE_ENTRYPOINT ?? "unknown";
34189
34189
  const cch = "";
34190
34190
  const workload = getWorkload();
@@ -117418,7 +117418,7 @@ var init_effort = __esm(() => {
117418
117418
 
117419
117419
  // src/utils/userAgent.ts
117420
117420
  function getClaudeCodeUserAgent() {
117421
- return `claude-code/${"0.9.2"}`;
117421
+ return `claude-code/${"0.9.3"}`;
117422
117422
  }
117423
117423
 
117424
117424
  // src/utils/http.ts
@@ -117427,7 +117427,7 @@ function getUserAgent() {
117427
117427
  const clientApp = process.env.CLAUDE_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}` : "";
117428
117428
  const workload = getWorkload();
117429
117429
  const workloadSuffix = workload ? `, workload/${workload}` : "";
117430
- return `claude-cli/${"0.9.2"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
117430
+ return `claude-cli/${"0.9.3"} (${process.env.USER_TYPE}, ${process.env.CLAUDE_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
117431
117431
  }
117432
117432
  function getMCPUserAgent() {
117433
117433
  const parts = [];
@@ -117441,7 +117441,7 @@ function getMCPUserAgent() {
117441
117441
  parts.push(`client-app/${process.env.CLAUDE_AGENT_SDK_CLIENT_APP}`);
117442
117442
  }
117443
117443
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
117444
- return `claude-code/${"0.9.2"}${suffix}`;
117444
+ return `claude-code/${"0.9.3"}${suffix}`;
117445
117445
  }
117446
117446
  function getWebFetchUserAgent() {
117447
117447
  const supportUrl = getAPIProvider() === "firstParty" ? "https://support.anthropic.com/" : "https://github.com/echoxiangzhou/wenhaicode";
@@ -152972,7 +152972,7 @@ function computeFingerprint(messageText, version2) {
152972
152972
  }
152973
152973
  function computeFingerprintFromMessages(messages) {
152974
152974
  const firstMessageText = extractFirstMessageText(messages);
152975
- return computeFingerprint(firstMessageText, "0.9.2");
152975
+ return computeFingerprint(firstMessageText, "0.9.3");
152976
152976
  }
152977
152977
  var FINGERPRINT_SALT = "59cf53e54c78";
152978
152978
  var init_fingerprint = () => {};
@@ -153014,7 +153014,7 @@ async function sideQuery(opts) {
153014
153014
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
153015
153015
  }
153016
153016
  const messageText = extractFirstUserMessageText(messages);
153017
- const fingerprint = computeFingerprint(messageText, "0.9.2");
153017
+ const fingerprint = computeFingerprint(messageText, "0.9.3");
153018
153018
  const attributionHeader = getAttributionHeader(fingerprint);
153019
153019
  const systemBlocks = [
153020
153020
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -154260,7 +154260,7 @@ var init_client2 = __esm(() => {
154260
154260
  const client = new Client({
154261
154261
  name: "claude-code",
154262
154262
  title: "WenhaiCode",
154263
- version: "0.9.2",
154263
+ version: "0.9.3",
154264
154264
  description: "WenhaiCode — coding-agent CLI for any LLM provider",
154265
154265
  websiteUrl: PRODUCT_URL
154266
154266
  }, {
@@ -198677,7 +198677,7 @@ function getTelemetryAttributes() {
198677
198677
  attributes["session.id"] = sessionId;
198678
198678
  }
198679
198679
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
198680
- attributes["app.version"] = "0.9.2";
198680
+ attributes["app.version"] = "0.9.3";
198681
198681
  }
198682
198682
  const oauthAccount = getOauthAccountInfo();
198683
198683
  if (oauthAccount) {
@@ -274093,7 +274093,7 @@ function getAnthropicEnvMetadata() {
274093
274093
  function getBuildAgeMinutes() {
274094
274094
  if (false)
274095
274095
  ;
274096
- const buildTime = new Date("2026-05-25T01:04:12.961Z").getTime();
274096
+ const buildTime = new Date("2026-05-25T01:43:44.055Z").getTime();
274097
274097
  if (isNaN(buildTime))
274098
274098
  return;
274099
274099
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -307195,7 +307195,7 @@ var init_sessionStorage = __esm(() => {
307195
307195
  init_settings2();
307196
307196
  init_slowOperations();
307197
307197
  init_uuid();
307198
- VERSION6 = typeof MACRO !== "undefined" ? "0.9.2" : "unknown";
307198
+ VERSION6 = typeof MACRO !== "undefined" ? "0.9.3" : "unknown";
307199
307199
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
307200
307200
  SKIP_FIRST_PROMPT_PATTERN2 = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
307201
307201
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -308493,7 +308493,7 @@ var init_filesystem = __esm(() => {
308493
308493
  });
308494
308494
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
308495
308495
  const nonce = randomBytes7(16).toString("hex");
308496
- return join79(getClaudeTempDir(), "bundled-skills", "0.9.2", nonce);
308496
+ return join79(getClaudeTempDir(), "bundled-skills", "0.9.3", nonce);
308497
308497
  });
308498
308498
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
308499
308499
  });
@@ -323679,7 +323679,7 @@ function buildSystemInitMessage(inputs) {
323679
323679
  slash_commands: inputs.commands.filter((c7) => c7.userInvocable !== false).map((c7) => c7.name),
323680
323680
  apiKeySource: getAnthropicApiKeyWithSource().source,
323681
323681
  betas: getSdkBetas2(),
323682
- claude_code_version: "0.9.2",
323682
+ claude_code_version: "0.9.3",
323683
323683
  output_style: outputStyle,
323684
323684
  agents: inputs.agents.map((agent2) => agent2.agentType),
323685
323685
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -327693,4 +327693,4 @@ export {
327693
327693
  AbortError
327694
327694
  };
327695
327695
 
327696
- //# debugId=F10F483CE0F04ADD64756E2164756E21
327696
+ //# debugId=EC31F7FF623D2D6B64756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lsnl/wenhaicode",
3
- "version": "0.9.2",
3
+ "version": "0.9.3",
4
4
  "description": "WenhaiCode — a coding agent CLI by LSNL, routes to any LLM provider (OpenAI, Gemini, DeepSeek, Ollama, 200+ models)",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,4 +1,4 @@
1
- // Type declarations for @LSNL/wenhaicode SDK
1
+ // Type declarations for @lsnl/wenhaicode SDK
2
2
  // Manually maintained — keep in sync with src/entrypoints/sdk/index.ts
3
3
  // Drift is caught by validate-externals.ts (runs in CI)
4
4