@verboo/code 0.8.1 → 0.8.2

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 +152 -128
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -674,6 +674,11 @@ function resolveClaudeConfigHomeDir(options) {
674
674
  function getTeamsDir() {
675
675
  return join(getClaudeConfigHomeDir(), "teams");
676
676
  }
677
+ function getLegacyClaudeConfigHomeDir() {
678
+ if (process.env.VERBOO_CONFIG_DIR)
679
+ return null;
680
+ return join(homedir(), ".claude").normalize("NFC");
681
+ }
677
682
  function hasNodeOption(flag) {
678
683
  const nodeOptions = process.env.NODE_OPTIONS;
679
684
  if (!nodeOptions) {
@@ -157532,8 +157537,9 @@ var init_pathValidation = __esm(() => {
157532
157537
  });
157533
157538
 
157534
157539
  // src/utils/plugins/pluginDirectories.ts
157535
- import { mkdirSync as mkdirSync4 } from "fs";
157540
+ import { mkdirSync as mkdirSync4, statSync as statSync6 } from "fs";
157536
157541
  import { readdir as readdir7, rm, stat as stat13 } from "fs/promises";
157542
+ import { homedir as homedir13 } from "os";
157537
157543
  import { delimiter, join as join29 } from "path";
157538
157544
  function getPluginsDirectoryName() {
157539
157545
  if (getUseCoworkPlugins()) {
@@ -157553,9 +157559,20 @@ function getPluginsDirectory() {
157553
157559
  }
157554
157560
  function getPluginSeedDirs() {
157555
157561
  const raw = process.env.CLAUDE_CODE_PLUGIN_SEED_DIR;
157556
- if (!raw)
157562
+ if (raw) {
157563
+ return raw.split(delimiter).filter(Boolean).map(expandTilde);
157564
+ }
157565
+ if (process.env.VERBOO_CONFIG_DIR)
157566
+ return [];
157567
+ const legacy = join29(homedir13(), ".claude", "plugins");
157568
+ if (legacy === getPluginsDirectory())
157557
157569
  return [];
157558
- return raw.split(delimiter).filter(Boolean).map(expandTilde);
157570
+ try {
157571
+ statSync6(legacy);
157572
+ return [legacy];
157573
+ } catch {
157574
+ return [];
157575
+ }
157559
157576
  }
157560
157577
  function sanitizePluginId(pluginId) {
157561
157578
  return pluginId.replace(/[^a-zA-Z0-9\-_]/g, "-");
@@ -160552,11 +160569,11 @@ var init_zip = __esm(() => {
160552
160569
  });
160553
160570
 
160554
160571
  // src/utils/systemDirectories.ts
160555
- import { homedir as homedir13 } from "os";
160572
+ import { homedir as homedir14 } from "os";
160556
160573
  import { join as join30 } from "path";
160557
160574
  function getSystemDirectories(options) {
160558
160575
  const platform2 = options?.platform ?? getPlatform();
160559
- const homeDir = options?.homedir ?? homedir13();
160576
+ const homeDir = options?.homedir ?? homedir14();
160560
160577
  const env4 = options?.env ?? process.env;
160561
160578
  const defaults2 = {
160562
160579
  HOME: homeDir,
@@ -170296,7 +170313,7 @@ var init_contextAnalysis = __esm(() => {
170296
170313
  });
170297
170314
 
170298
170315
  // src/utils/memoryDiagnostics.ts
170299
- import { existsSync as existsSync6, readFileSync as readFileSync8, readdirSync as readdirSync2, statSync as statSync6 } from "fs";
170316
+ import { existsSync as existsSync6, readFileSync as readFileSync8, readdirSync as readdirSync2, statSync as statSync7 } from "fs";
170300
170317
  import { getHeapSpaceStatistics, getHeapStatistics } from "v8";
170301
170318
  function parseCgroupMemoryValue(raw) {
170302
170319
  const value = raw?.trim();
@@ -170394,7 +170411,7 @@ function getTaskDiagnostics(task) {
170394
170411
  try {
170395
170412
  const outputPath = getTaskOutputPath(task.id);
170396
170413
  if (existsSync6(outputPath)) {
170397
- const stat14 = statSync6(outputPath);
170414
+ const stat14 = statSync7(outputPath);
170398
170415
  base2.outputFileSize = stat14.size;
170399
170416
  }
170400
170417
  } catch {}
@@ -231555,7 +231572,7 @@ var init_sedValidation = __esm(() => {
231555
231572
  });
231556
231573
 
231557
231574
  // src/tools/BashTool/pathValidation.ts
231558
- import { homedir as homedir14 } from "os";
231575
+ import { homedir as homedir15 } from "os";
231559
231576
  import { isAbsolute as isAbsolute9, resolve as resolve17 } from "path";
231560
231577
  function checkDangerousRemovalPaths(command, args, cwd2) {
231561
231578
  const extractor = PATH_EXTRACTORS[command];
@@ -232004,7 +232021,7 @@ var init_pathValidation2 = __esm(() => {
232004
232021
  init_bashPermissions();
232005
232022
  init_sedValidation();
232006
232023
  PATH_EXTRACTORS = {
232007
- cd: (args) => args.length === 0 ? [homedir14()] : [args.join(" ")],
232024
+ cd: (args) => args.length === 0 ? [homedir15()] : [args.join(" ")],
232008
232025
  ls: (args) => {
232009
232026
  const paths2 = filterOutFlags(args);
232010
232027
  return paths2.length > 0 ? paths2 : ["."];
@@ -256766,11 +256783,11 @@ var init_oauthPort = __esm(() => {
256766
256783
  // src/utils/claudeInChrome/common.ts
256767
256784
  import { readdirSync as readdirSync3 } from "fs";
256768
256785
  import { stat as stat17 } from "fs/promises";
256769
- import { homedir as homedir15, platform as platform2, tmpdir as tmpdir3, userInfo as userInfo2 } from "os";
256786
+ import { homedir as homedir16, platform as platform2, tmpdir as tmpdir3, userInfo as userInfo2 } from "os";
256770
256787
  import { join as join42 } from "path";
256771
256788
  function getAllBrowserDataPaths() {
256772
256789
  const platform3 = getPlatform();
256773
- const home = homedir15();
256790
+ const home = homedir16();
256774
256791
  const paths2 = [];
256775
256792
  for (const browserId of BROWSER_DETECTION_ORDER) {
256776
256793
  const config2 = CHROMIUM_BROWSERS[browserId];
@@ -256805,7 +256822,7 @@ function getAllBrowserDataPaths() {
256805
256822
  }
256806
256823
  function getAllNativeMessagingHostsDirs() {
256807
256824
  const platform3 = getPlatform();
256808
- const home = homedir15();
256825
+ const home = homedir16();
256809
256826
  const paths2 = [];
256810
256827
  for (const browserId of BROWSER_DETECTION_ORDER) {
256811
256828
  const config2 = CHROMIUM_BROWSERS[browserId];
@@ -256876,7 +256893,7 @@ async function detectAvailableBrowser() {
256876
256893
  break;
256877
256894
  }
256878
256895
  case "windows": {
256879
- const home = homedir15();
256896
+ const home = homedir16();
256880
256897
  if (config2.windows.dataPath.length > 0) {
256881
256898
  const appDataBase = config2.windows.useRoaming ? join42(home, "AppData", "Roaming") : join42(home, "AppData", "Local");
256882
256899
  const dataPath = join42(appDataBase, ...config2.windows.dataPath);
@@ -261372,10 +261389,10 @@ var init_capitalize = __esm(() => {
261372
261389
  });
261373
261390
 
261374
261391
  // src/utils/jetbrains.ts
261375
- import { homedir as homedir16, platform as platform3 } from "os";
261392
+ import { homedir as homedir17, platform as platform3 } from "os";
261376
261393
  import { join as join48 } from "path";
261377
261394
  function buildCommonPluginDirectoryPaths(ideName) {
261378
- const homeDir = homedir16();
261395
+ const homeDir = homedir17();
261379
261396
  const directories = [];
261380
261397
  const idePatterns = ideNameToDirMap[ideName.toLowerCase()];
261381
261398
  if (!idePatterns) {
@@ -280520,7 +280537,7 @@ var init_shellConfig = __esm(() => {
280520
280537
  // src/utils/autoUpdater.ts
280521
280538
  import { constants as fsConstants2 } from "fs";
280522
280539
  import { access as access2, writeFile as writeFile12 } from "fs/promises";
280523
- import { homedir as homedir18 } from "os";
280540
+ import { homedir as homedir19 } from "os";
280524
280541
  import { join as join57 } from "path";
280525
280542
  async function assertMinVersion() {
280526
280543
  if (false) {}
@@ -280660,10 +280677,10 @@ async function getInstallationPrefix() {
280660
280677
  let prefixResult = null;
280661
280678
  if (isBun) {
280662
280679
  prefixResult = await execFileNoThrowWithCwd("bun", ["pm", "bin", "-g"], {
280663
- cwd: homedir18()
280680
+ cwd: homedir19()
280664
280681
  });
280665
280682
  } else {
280666
- prefixResult = await execFileNoThrowWithCwd("npm", ["-g", "config", "get", "prefix"], { cwd: homedir18() });
280683
+ prefixResult = await execFileNoThrowWithCwd("npm", ["-g", "config", "get", "prefix"], { cwd: homedir19() });
280667
280684
  }
280668
280685
  if (prefixResult.code !== 0) {
280669
280686
  logError2(new Error(`Failed to check ${isBun ? "bun" : "npm"} permissions`));
@@ -280691,7 +280708,7 @@ async function checkGlobalInstallPermissions() {
280691
280708
  }
280692
280709
  async function getLatestVersion(channel) {
280693
280710
  const npmTag = channel === "stable" ? "stable" : "latest";
280694
- const result = await execFileNoThrowWithCwd("npm", ["view", `${"@verboo/code"}@${npmTag}`, "version", "--prefer-online"], { abortSignal: AbortSignal.timeout(5000), cwd: homedir18() });
280711
+ const result = await execFileNoThrowWithCwd("npm", ["view", `${"@verboo/code"}@${npmTag}`, "version", "--prefer-online"], { abortSignal: AbortSignal.timeout(5000), cwd: homedir19() });
280695
280712
  if (result.code !== 0) {
280696
280713
  logForDebugging2(`npm view failed with code ${result.code}`);
280697
280714
  if (result.stderr) {
@@ -280707,7 +280724,7 @@ async function getLatestVersion(channel) {
280707
280724
  return result.stdout.trim();
280708
280725
  }
280709
280726
  async function getNpmDistTags() {
280710
- const result = await execFileNoThrowWithCwd("npm", ["view", "@verboo/code", "dist-tags", "--json", "--prefer-online"], { abortSignal: AbortSignal.timeout(5000), cwd: homedir18() });
280727
+ const result = await execFileNoThrowWithCwd("npm", ["view", "@verboo/code", "dist-tags", "--json", "--prefer-online"], { abortSignal: AbortSignal.timeout(5000), cwd: homedir19() });
280711
280728
  if (result.code !== 0) {
280712
280729
  logForDebugging2(`npm view dist-tags failed with code ${result.code}`);
280713
280730
  return { latest: null, stable: null };
@@ -280777,7 +280794,7 @@ To fix this issue:
280777
280794
  }
280778
280795
  const packageSpec = specificVersion ? `${"@verboo/code"}@${specificVersion}` : "@verboo/code";
280779
280796
  const packageManager = env2.isRunningWithBun() ? "bun" : "npm";
280780
- const installResult = await execFileNoThrowWithCwd(packageManager, ["install", "-g", packageSpec], { cwd: homedir18() });
280797
+ const installResult = await execFileNoThrowWithCwd(packageManager, ["install", "-g", packageSpec], { cwd: homedir19() });
280781
280798
  if (installResult.code !== 0) {
280782
280799
  const error42 = new AutoUpdaterError(`Failed to install new version of claude: ${installResult.stdout} ${installResult.stderr}`);
280783
280800
  logError2(error42);
@@ -281014,7 +281031,7 @@ var init_packageManagers = __esm(() => {
281014
281031
 
281015
281032
  // src/utils/doctorDiagnostic.ts
281016
281033
  import { readFile as readFile13, realpath as realpath7 } from "fs/promises";
281017
- import { homedir as homedir19 } from "os";
281034
+ import { homedir as homedir20 } from "os";
281018
281035
  import { delimiter as delimiter2, join as join58, posix as posix3, win32 } from "path";
281019
281036
  function getCliBinaryName() {
281020
281037
  if (false) {}
@@ -281088,7 +281105,7 @@ async function getInstallationPath() {
281088
281105
  }
281089
281106
  } catch {}
281090
281107
  try {
281091
- const nativeBinaryPath = join58(homedir19(), ".local", "bin", getCliBinaryName());
281108
+ const nativeBinaryPath = join58(homedir20(), ".local", "bin", getCliBinaryName());
281092
281109
  await getFsImplementation2().stat(nativeBinaryPath);
281093
281110
  return nativeBinaryPath;
281094
281111
  } catch {}
@@ -281160,14 +281177,14 @@ async function detectMultipleInstallations() {
281160
281177
  }
281161
281178
  }
281162
281179
  }
281163
- const nativeBinPath = join58(homedir19(), ".local", "bin", getCliBinaryName());
281180
+ const nativeBinPath = join58(homedir20(), ".local", "bin", getCliBinaryName());
281164
281181
  try {
281165
281182
  await fs2.stat(nativeBinPath);
281166
281183
  installations.push({ type: "native", path: nativeBinPath });
281167
281184
  } catch {}
281168
281185
  const config2 = getGlobalConfig();
281169
281186
  if (config2.installMethod === "native") {
281170
- const nativeDataPath = join58(homedir19(), ".local", "share", getNativeDataDirName());
281187
+ const nativeDataPath = join58(homedir20(), ".local", "share", getNativeDataDirName());
281171
281188
  try {
281172
281189
  await fs2.stat(nativeDataPath);
281173
281190
  if (!installations.some((i3) => i3.type === "native")) {
@@ -281207,7 +281224,7 @@ async function detectConfigurationIssues(type) {
281207
281224
  if (type === "native") {
281208
281225
  const path12 = process.env.PATH || "";
281209
281226
  const pathDirectories = path12.split(delimiter2);
281210
- const homeDir = homedir19();
281227
+ const homeDir = homedir20();
281211
281228
  const localBinPath = join58(homeDir, ".local", "bin");
281212
281229
  let normalizedLocalBinPath = localBinPath;
281213
281230
  if (getPlatform() === "windows") {
@@ -281234,7 +281251,7 @@ async function detectConfigurationIssues(type) {
281234
281251
  const shellType = getShellType();
281235
281252
  const configPaths = getShellConfigPaths();
281236
281253
  const configFile = configPaths[shellType];
281237
- const displayPath = configFile ? configFile.replace(homedir19(), "~") : "your shell config file";
281254
+ const displayPath = configFile ? configFile.replace(homedir20(), "~") : "your shell config file";
281238
281255
  warnings.push({
281239
281256
  issue: "Native installation exists but ~/.local/bin is not in your PATH",
281240
281257
  fix: `Run: echo 'export PATH="$HOME/.local/bin:$PATH"' >> ${displayPath} then open a new terminal or run: source ${displayPath}`
@@ -281979,7 +281996,7 @@ import {
281979
281996
  unlink as unlink7,
281980
281997
  writeFile as writeFile14
281981
281998
  } from "fs/promises";
281982
- import { homedir as homedir20 } from "os";
281999
+ import { homedir as homedir21 } from "os";
281983
282000
  import { basename as basename13, delimiter as delimiter3, dirname as dirname26, join as join62, resolve as resolve20 } from "path";
281984
282001
  function getPlatform2() {
281985
282002
  const os4 = env2.platform;
@@ -282516,7 +282533,7 @@ fish_add_path ~/.local/bin`,
282516
282533
  } else {
282517
282534
  const configPaths = getShellConfigPaths();
282518
282535
  const configFile = configPaths[shellType];
282519
- const displayPath = configFile ? configFile.replace(homedir20(), "~") : "your shell config file";
282536
+ const displayPath = configFile ? configFile.replace(homedir21(), "~") : "your shell config file";
282520
282537
  messages.push({
282521
282538
  message: `Native installation exists but ~/.local/bin is not in your PATH. Run:
282522
282539
 
@@ -293002,7 +293019,7 @@ var init_InProcessBackend = __esm(() => {
293002
293019
  });
293003
293020
 
293004
293021
  // src/utils/swarm/backends/it2Setup.ts
293005
- import { homedir as homedir21 } from "os";
293022
+ import { homedir as homedir22 } from "os";
293006
293023
  async function detectPythonPackageManager() {
293007
293024
  const uvResult = await execFileNoThrow("which", ["uv"]);
293008
293025
  if (uvResult.code === 0) {
@@ -293037,18 +293054,18 @@ async function installIt2(packageManager) {
293037
293054
  switch (packageManager) {
293038
293055
  case "uvx":
293039
293056
  result = await execFileNoThrowWithCwd("uv", ["tool", "install", "it2"], {
293040
- cwd: homedir21()
293057
+ cwd: homedir22()
293041
293058
  });
293042
293059
  break;
293043
293060
  case "pipx":
293044
293061
  result = await execFileNoThrowWithCwd("pipx", ["install", "it2"], {
293045
- cwd: homedir21()
293062
+ cwd: homedir22()
293046
293063
  });
293047
293064
  break;
293048
293065
  case "pip":
293049
- result = await execFileNoThrowWithCwd("pip", ["install", "--user", "it2"], { cwd: homedir21() });
293066
+ result = await execFileNoThrowWithCwd("pip", ["install", "--user", "it2"], { cwd: homedir22() });
293050
293067
  if (result.code !== 0) {
293051
- result = await execFileNoThrowWithCwd("pip3", ["install", "--user", "it2"], { cwd: homedir21() });
293068
+ result = await execFileNoThrowWithCwd("pip3", ["install", "--user", "it2"], { cwd: homedir22() });
293052
293069
  }
293053
293070
  break;
293054
293071
  }
@@ -324754,7 +324771,7 @@ var init_modeValidation = __esm(() => {
324754
324771
  });
324755
324772
 
324756
324773
  // src/tools/PowerShellTool/pathValidation.ts
324757
- import { homedir as homedir23 } from "os";
324774
+ import { homedir as homedir24 } from "os";
324758
324775
  import { isAbsolute as isAbsolute15, resolve as resolve26 } from "path";
324759
324776
  function matchesParam(paramLower, paramList) {
324760
324777
  for (const p of paramList) {
@@ -324777,7 +324794,7 @@ function formatDirectoryList2(directories) {
324777
324794
  }
324778
324795
  function expandTilde2(filePath) {
324779
324796
  if (filePath === "~" || filePath.startsWith("~/") || filePath.startsWith("~\\")) {
324780
- return homedir23() + filePath.slice(1);
324797
+ return homedir24() + filePath.slice(1);
324781
324798
  }
324782
324799
  return filePath;
324783
324800
  }
@@ -329207,17 +329224,19 @@ async function discoverSkillDirsForPaths(filePaths, cwd2) {
329207
329224
  for (const filePath of filePaths) {
329208
329225
  let currentDir = dirname29(filePath);
329209
329226
  while (currentDir.startsWith(resolvedCwd + pathSep)) {
329210
- const skillDir = join75(currentDir, ".verboo", "skills");
329211
- if (!dynamicSkillDirs.has(skillDir)) {
329212
- dynamicSkillDirs.add(skillDir);
329213
- try {
329214
- await fs3.stat(skillDir);
329215
- if (await isPathGitignored(currentDir, resolvedCwd)) {
329216
- logForDebugging2(`[skills] Skipped gitignored skills dir: ${skillDir}`);
329217
- continue;
329218
- }
329219
- newDirs.push(skillDir);
329220
- } catch {}
329227
+ for (const configDirName of PROJECT_CONFIG_DIR_NAMES) {
329228
+ const skillDir = join75(currentDir, configDirName, "skills");
329229
+ if (!dynamicSkillDirs.has(skillDir)) {
329230
+ dynamicSkillDirs.add(skillDir);
329231
+ try {
329232
+ await fs3.stat(skillDir);
329233
+ if (await isPathGitignored(currentDir, resolvedCwd)) {
329234
+ logForDebugging2(`[skills] Skipped gitignored skills dir: ${skillDir}`);
329235
+ continue;
329236
+ }
329237
+ newDirs.push(skillDir);
329238
+ } catch {}
329239
+ }
329221
329240
  }
329222
329241
  const parent = dirname29(currentDir);
329223
329242
  if (parent === currentDir)
@@ -329330,9 +329349,11 @@ var init_loadSkillsDir = __esm(() => {
329330
329349
  import_ignore2 = __toESM(require_ignore(), 1);
329331
329350
  getSkillDirCommands = memoize_default(async (cwd2) => {
329332
329351
  const userSkillsDir = join75(getClaudeConfigHomeDir(), "skills");
329352
+ const legacyClaudeHome = getLegacyClaudeConfigHomeDir();
329353
+ const legacyUserSkillsDir = legacyClaudeHome ? join75(legacyClaudeHome, "skills") : null;
329333
329354
  const managedSkillsDir = join75(getManagedFilePath(), ".verboo", "skills");
329334
329355
  const projectSkillsDirs = getProjectDirsUpToHome("skills", cwd2);
329335
- logForDebugging2(`Loading skills from: managed=${managedSkillsDir}, user=${userSkillsDir}, project=[${projectSkillsDirs.join(", ")}]`);
329356
+ logForDebugging2(`Loading skills from: managed=${managedSkillsDir}, user=${userSkillsDir}, legacyUser=${legacyUserSkillsDir ?? "disabled"}, project=[${projectSkillsDirs.join(", ")}]`);
329336
329357
  const additionalDirs = getAdditionalDirectoriesForClaudeMd();
329337
329358
  const skillsLocked = isRestrictedToPluginOnly("skills");
329338
329359
  const projectSettingsEnabled = isSettingSourceEnabled("projectSettings") && !skillsLocked;
@@ -329341,25 +329362,28 @@ var init_loadSkillsDir = __esm(() => {
329341
329362
  logForDebugging2(`[bare] Skipping skill dir discovery (${additionalDirs.length === 0 ? "no --add-dir" : "projectSettings disabled or skillsLocked"})`);
329342
329363
  return [];
329343
329364
  }
329344
- const additionalSkillsNested2 = await Promise.all(additionalDirs.map((dir) => loadSkillsFromSkillsDir(join75(dir, ".verboo", "skills"), "projectSettings")));
329365
+ const additionalSkillsNested2 = await Promise.all(additionalDirs.flatMap((dir) => PROJECT_CONFIG_DIR_NAMES.map((configDirName) => loadSkillsFromSkillsDir(join75(dir, configDirName, "skills"), "projectSettings"))));
329345
329366
  return additionalSkillsNested2.flat().map((s) => s.skill);
329346
329367
  }
329347
329368
  const [
329348
329369
  managedSkills,
329349
329370
  userSkills,
329371
+ legacyUserSkills,
329350
329372
  projectSkillsNested,
329351
329373
  additionalSkillsNested,
329352
329374
  legacyCommands
329353
329375
  ] = await Promise.all([
329354
329376
  isEnvTruthy(process.env.CLAUDE_CODE_DISABLE_POLICY_SKILLS) ? Promise.resolve([]) : loadSkillsFromSkillsDir(managedSkillsDir, "policySettings"),
329355
329377
  isSettingSourceEnabled("userSettings") && !skillsLocked ? loadSkillsFromSkillsDir(userSkillsDir, "userSettings") : Promise.resolve([]),
329378
+ legacyUserSkillsDir && isSettingSourceEnabled("userSettings") && !skillsLocked && legacyUserSkillsDir !== userSkillsDir ? loadSkillsFromSkillsDir(legacyUserSkillsDir, "userSettings") : Promise.resolve([]),
329356
329379
  projectSettingsEnabled ? Promise.all(projectSkillsDirs.map((dir) => loadSkillsFromSkillsDir(dir, "projectSettings"))) : Promise.resolve([]),
329357
- projectSettingsEnabled ? Promise.all(additionalDirs.map((dir) => loadSkillsFromSkillsDir(join75(dir, ".verboo", "skills"), "projectSettings"))) : Promise.resolve([]),
329380
+ projectSettingsEnabled ? Promise.all(additionalDirs.flatMap((dir) => PROJECT_CONFIG_DIR_NAMES.map((configDirName) => loadSkillsFromSkillsDir(join75(dir, configDirName, "skills"), "projectSettings")))) : Promise.resolve([]),
329358
329381
  skillsLocked ? Promise.resolve([]) : loadSkillsFromCommandsDir(cwd2)
329359
329382
  ]);
329360
329383
  const allSkillsWithPaths = [
329361
329384
  ...managedSkills,
329362
329385
  ...userSkills,
329386
+ ...legacyUserSkills,
329363
329387
  ...projectSkillsNested.flat(),
329364
329388
  ...additionalSkillsNested.flat(),
329365
329389
  ...legacyCommands
@@ -329404,7 +329428,7 @@ var init_loadSkillsDir = __esm(() => {
329404
329428
  if (newConditionalSkills.length > 0) {
329405
329429
  logForDebugging2(`[skills] ${newConditionalSkills.length} conditional skills stored (activated when matching files are touched)`);
329406
329430
  }
329407
- logForDebugging2(`Loaded ${deduplicatedSkills.length} unique skills (${unconditionalSkills.length} unconditional, ${newConditionalSkills.length} conditional, managed: ${managedSkills.length}, user: ${userSkills.length}, project: ${projectSkillsNested.flat().length}, additional: ${additionalSkillsNested.flat().length}, legacy commands: ${legacyCommands.length})`);
329431
+ logForDebugging2(`Loaded ${deduplicatedSkills.length} unique skills (${unconditionalSkills.length} unconditional, ${newConditionalSkills.length} conditional, managed: ${managedSkills.length}, user: ${userSkills.length}, legacyUser: ${legacyUserSkills.length}, project: ${projectSkillsNested.flat().length}, additional: ${additionalSkillsNested.flat().length}, legacy commands: ${legacyCommands.length})`);
329408
329432
  return unconditionalSkills;
329409
329433
  });
329410
329434
  dynamicSkillDirs = new Set;
@@ -390111,7 +390135,7 @@ function getAnthropicEnvMetadata() {
390111
390135
  function getBuildAgeMinutes() {
390112
390136
  if (false)
390113
390137
  ;
390114
- const buildTime = new Date("2026-05-08T16:31:20.862Z").getTime();
390138
+ const buildTime = new Date("2026-05-08T20:01:49.271Z").getTime();
390115
390139
  if (isNaN(buildTime))
390116
390140
  return;
390117
390141
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -410023,7 +410047,7 @@ var init_projectOnboardingState = __esm(() => {
410023
410047
 
410024
410048
  // src/utils/appleTerminalBackup.ts
410025
410049
  import { stat as stat38 } from "fs/promises";
410026
- import { homedir as homedir24 } from "os";
410050
+ import { homedir as homedir25 } from "os";
410027
410051
  import { join as join97 } from "path";
410028
410052
  function markTerminalSetupInProgress(backupPath) {
410029
410053
  saveGlobalConfig((current) => ({
@@ -410046,7 +410070,7 @@ function getTerminalRecoveryInfo() {
410046
410070
  };
410047
410071
  }
410048
410072
  function getTerminalPlistPath() {
410049
- return join97(homedir24(), "Library", "Preferences", "com.apple.Terminal.plist");
410073
+ return join97(homedir25(), "Library", "Preferences", "com.apple.Terminal.plist");
410050
410074
  }
410051
410075
  async function backupTerminalPreferences() {
410052
410076
  const terminalPlistPath = getTerminalPlistPath();
@@ -410117,11 +410141,11 @@ var init_appleTerminalBackup = __esm(() => {
410117
410141
  });
410118
410142
 
410119
410143
  // src/utils/completionCache.ts
410120
- import { homedir as homedir25 } from "os";
410144
+ import { homedir as homedir26 } from "os";
410121
410145
  import { dirname as dirname44, join as join98 } from "path";
410122
410146
  function detectShell() {
410123
410147
  const shell = process.env.SHELL || "";
410124
- const home = homedir25();
410148
+ const home = homedir26();
410125
410149
  const claudeDir = join98(home, ".claude");
410126
410150
  if (shell.endsWith("/zsh") || shell.endsWith("/zsh.exe")) {
410127
410151
  const cacheFile = join98(claudeDir, "completion.zsh");
@@ -410197,7 +410221,7 @@ __export(exports_terminalSetup, {
410197
410221
  });
410198
410222
  import { randomBytes as randomBytes13 } from "crypto";
410199
410223
  import { copyFile as copyFile8, mkdir as mkdir28, readFile as readFile33, writeFile as writeFile30 } from "fs/promises";
410200
- import { homedir as homedir26, platform as platform4 } from "os";
410224
+ import { homedir as homedir27, platform as platform4 } from "os";
410201
410225
  import { dirname as dirname45, join as join99 } from "path";
410202
410226
  import { pathToFileURL as pathToFileURL7 } from "url";
410203
410227
  function isVSCodeRemoteSSH() {
@@ -410333,7 +410357,7 @@ async function installBindingsForVSCodeTerminal(editor = "VSCode", theme) {
410333
410357
  ]`)}${EOL5}`;
410334
410358
  }
410335
410359
  const editorDir = editor === "VSCode" ? "Code" : editor;
410336
- const userDirPath = join99(homedir26(), platform4() === "win32" ? join99("AppData", "Roaming", editorDir, "User") : platform4() === "darwin" ? join99("Library", "Application Support", editorDir, "User") : join99(".config", editorDir, "User"));
410360
+ const userDirPath = join99(homedir27(), platform4() === "win32" ? join99("AppData", "Roaming", editorDir, "User") : platform4() === "darwin" ? join99("Library", "Application Support", editorDir, "User") : join99(".config", editorDir, "User"));
410337
410361
  const keybindingsPath = join99(userDirPath, "keybindings.json");
410338
410362
  try {
410339
410363
  await mkdir28(userDirPath, {
@@ -410477,7 +410501,7 @@ chars = "\\u001B\\r"`;
410477
410501
  if (xdgConfigHome) {
410478
410502
  configPaths.push(join99(xdgConfigHome, "alacritty", "alacritty.toml"));
410479
410503
  } else {
410480
- configPaths.push(join99(homedir26(), ".config", "alacritty", "alacritty.toml"));
410504
+ configPaths.push(join99(homedir27(), ".config", "alacritty", "alacritty.toml"));
410481
410505
  }
410482
410506
  if (platform4() === "win32") {
410483
410507
  const appData = process.env.APPDATA;
@@ -410543,7 +410567,7 @@ chars = "\\u001B\\r"`;
410543
410567
  }
410544
410568
  }
410545
410569
  async function installBindingsForZed(theme) {
410546
- const zedDir = join99(homedir26(), ".config", "zed");
410570
+ const zedDir = join99(homedir27(), ".config", "zed");
410547
410571
  const keymapPath = join99(zedDir, "keymap.json");
410548
410572
  try {
410549
410573
  await mkdir28(zedDir, {
@@ -415385,7 +415409,7 @@ var init_file_index = __esm(() => {
415385
415409
  });
415386
415410
 
415387
415411
  // src/hooks/fileSuggestions.ts
415388
- import { statSync as statSync7 } from "fs";
415412
+ import { statSync as statSync8 } from "fs";
415389
415413
  import * as path17 from "path";
415390
415414
  function getFileIndex() {
415391
415415
  if (!fileIndex) {
@@ -415433,7 +415457,7 @@ function getGitIndexMtime() {
415433
415457
  if (!repoRoot)
415434
415458
  return null;
415435
415459
  try {
415436
- return statSync7(path17.join(repoRoot, ".git", "index")).mtimeMs;
415460
+ return statSync8(path17.join(repoRoot, ".git", "index")).mtimeMs;
415437
415461
  } catch {
415438
415462
  return null;
415439
415463
  }
@@ -418233,7 +418257,7 @@ function buildPrimarySection() {
418233
418257
  }, undefined, false, undefined, this);
418234
418258
  return [{
418235
418259
  label: "Version",
418236
- value: "0.8.1"
418260
+ value: "0.8.2"
418237
418261
  }, {
418238
418262
  label: "Session name",
418239
418263
  value: nameValue
@@ -432133,10 +432157,10 @@ var init_MemoryFileSelector = __esm(() => {
432133
432157
  });
432134
432158
 
432135
432159
  // src/components/memory/MemoryUpdateNotification.tsx
432136
- import { homedir as homedir27 } from "os";
432160
+ import { homedir as homedir28 } from "os";
432137
432161
  import { relative as relative24 } from "path";
432138
432162
  function getRelativeMemoryPath(path18) {
432139
- const homeDir = homedir27();
432163
+ const homeDir = homedir28();
432140
432164
  const cwd2 = getCwd();
432141
432165
  const relativeToHome = path18.startsWith(homeDir) ? "~" + path18.slice(homeDir.length) : null;
432142
432166
  const relativeToCwd = path18.startsWith(cwd2) ? "./" + relative24(cwd2, path18) : null;
@@ -432528,7 +432552,7 @@ function getReleaseTagUrl(version2 = publicBuildVersion) {
432528
432552
  return `${VERBOO_RELEASES_URL}/tag/v${normalizePublicVersion(version2)}`;
432529
432553
  }
432530
432554
  function getPublicBuildVersion() {
432531
- return "0.8.1";
432555
+ return "0.8.2";
432532
432556
  }
432533
432557
  var import_semver10, VERBOO_RELEASES_URL = "https://github.com/verbeux-ai/code/releases", fallbackBuildVersion, publicBuildVersion;
432534
432558
  var init_version = __esm(() => {
@@ -445031,7 +445055,7 @@ var init_mcp = __esm(() => {
445031
445055
  });
445032
445056
 
445033
445057
  // src/utils/plugins/parseMarketplaceInput.ts
445034
- import { homedir as homedir28 } from "os";
445058
+ import { homedir as homedir29 } from "os";
445035
445059
  import { resolve as resolve38 } from "path";
445036
445060
  async function parseMarketplaceInput(input) {
445037
445061
  const trimmed = input.trim();
@@ -445067,7 +445091,7 @@ async function parseMarketplaceInput(input) {
445067
445091
  const isWindows2 = process.platform === "win32";
445068
445092
  const isWindowsPath = isWindows2 && (trimmed.startsWith(".\\") || trimmed.startsWith("..\\") || /^[a-zA-Z]:[/\\]/.test(trimmed));
445069
445093
  if (trimmed.startsWith("./") || trimmed.startsWith("../") || trimmed.startsWith("/") || trimmed.startsWith("~") || isWindowsPath) {
445070
- const resolvedPath = resolve38(trimmed.startsWith("~") ? trimmed.replace(/^~/, homedir28()) : trimmed);
445094
+ const resolvedPath = resolve38(trimmed.startsWith("~") ? trimmed.replace(/^~/, homedir29()) : trimmed);
445071
445095
  let stats;
445072
445096
  try {
445073
445097
  stats = await fs3.stat(resolvedPath);
@@ -487624,7 +487648,7 @@ var init_bridge_kick = __esm(() => {
487624
487648
  var call62 = async () => {
487625
487649
  return {
487626
487650
  type: "text",
487627
- value: `${"99.0.0"} (built ${"2026-05-08T16:31:20.862Z"})`
487651
+ value: `${"99.0.0"} (built ${"2026-05-08T20:01:49.271Z"})`
487628
487652
  };
487629
487653
  }, version2, version_default;
487630
487654
  var init_version2 = __esm(() => {
@@ -489439,7 +489463,7 @@ var init_setupPortable = __esm(() => {
489439
489463
 
489440
489464
  // src/utils/claudeInChrome/setup.ts
489441
489465
  import { chmod as chmod10, mkdir as mkdir38, readFile as readFile46, writeFile as writeFile44 } from "fs/promises";
489442
- import { homedir as homedir29 } from "os";
489466
+ import { homedir as homedir30 } from "os";
489443
489467
  import { join as join128 } from "path";
489444
489468
  import { fileURLToPath as fileURLToPath6 } from "url";
489445
489469
  function shouldEnableClaudeInChrome(chromeFlag) {
@@ -489519,7 +489543,7 @@ function setupClaudeInChrome() {
489519
489543
  function getNativeMessagingHostsDirs() {
489520
489544
  const platform5 = getPlatform();
489521
489545
  if (platform5 === "windows") {
489522
- const home = homedir29();
489546
+ const home = homedir30();
489523
489547
  const appData = process.env.APPDATA || join128(home, "AppData", "Local");
489524
489548
  return [join128(appData, "Claude Code", "ChromeNativeHost")];
489525
489549
  }
@@ -499220,7 +499244,7 @@ import {
499220
499244
  writeFile as writeFile47
499221
499245
  } from "fs/promises";
499222
499246
  import { basename as basename45, dirname as dirname55, join as join136 } from "path";
499223
- import { homedir as homedir30 } from "os";
499247
+ import { homedir as homedir31 } from "os";
499224
499248
  function isTranscriptMessage(entry) {
499225
499249
  return entry.type === "user" || entry.type === "assistant" || entry.type === "attachment" || entry.type === "system";
499226
499250
  }
@@ -499237,7 +499261,7 @@ function getProjectsDir2() {
499237
499261
  if (process.env.VERBOO_PROJECTS_DIR) {
499238
499262
  return process.env.VERBOO_PROJECTS_DIR;
499239
499263
  }
499240
- return join136(homedir30(), ".claude", "projects");
499264
+ return join136(homedir31(), ".claude", "projects");
499241
499265
  }
499242
499266
  function getTranscriptPath() {
499243
499267
  const projectDir = getSessionProjectDir() ?? getProjectDir3(getOriginalCwd());
@@ -502691,7 +502715,7 @@ var init_agentMemory = __esm(() => {
502691
502715
 
502692
502716
  // src/utils/permissions/filesystem.ts
502693
502717
  import { randomBytes as randomBytes17 } from "crypto";
502694
- import { homedir as homedir31, tmpdir as tmpdir9 } from "os";
502718
+ import { homedir as homedir32, tmpdir as tmpdir9 } from "os";
502695
502719
  import { join as join138, normalize as normalize14, posix as posix8, sep as sep33 } from "path";
502696
502720
  function normalizeCaseForComparison(path21) {
502697
502721
  return path21.toLowerCase();
@@ -503019,7 +503043,7 @@ function patternWithRoot(pattern, source) {
503019
503043
  } else if (pattern.startsWith(`~${DIR_SEP}`)) {
503020
503044
  return {
503021
503045
  relativePattern: pattern.slice(1),
503022
- root: homedir31().normalize("NFC")
503046
+ root: homedir32().normalize("NFC")
503023
503047
  };
503024
503048
  } else if (pattern.startsWith(DIR_SEP)) {
503025
503049
  return {
@@ -504803,7 +504827,7 @@ __export(exports_hookChains, {
504803
504827
  dispatchHookChainsForEvent: () => dispatchHookChainsForEvent
504804
504828
  });
504805
504829
  import { createHash as createHash20 } from "crypto";
504806
- import { statSync as statSync8 } from "fs";
504830
+ import { statSync as statSync9 } from "fs";
504807
504831
  import { join as join140, resolve as resolve41 } from "path";
504808
504832
  function asAnalyticsString(value) {
504809
504833
  return value;
@@ -504944,7 +504968,7 @@ function loadHookChainsConfig(options2) {
504944
504968
  }
504945
504969
  let stats2;
504946
504970
  try {
504947
- const stat49 = statSync8(path21);
504971
+ const stat49 = statSync9(path21);
504948
504972
  stats2 = {
504949
504973
  mtimeMs: stat49.mtimeMs,
504950
504974
  size: stat49.size
@@ -514651,7 +514675,7 @@ __export(exports_upstreamproxy, {
514651
514675
  SESSION_TOKEN_PATH: () => SESSION_TOKEN_PATH
514652
514676
  });
514653
514677
  import { mkdir as mkdir45, readFile as readFile50, unlink as unlink23, writeFile as writeFile48 } from "fs/promises";
514654
- import { homedir as homedir32 } from "os";
514678
+ import { homedir as homedir33 } from "os";
514655
514679
  import { join as join142 } from "path";
514656
514680
  async function initUpstreamProxy(opts) {
514657
514681
  if (!isEnvTruthy(process.env.CLAUDE_CODE_REMOTE)) {
@@ -514673,7 +514697,7 @@ async function initUpstreamProxy(opts) {
514673
514697
  }
514674
514698
  setNonDumpable();
514675
514699
  const baseUrl = "https://code.verboo.ai/router";
514676
- const caBundlePath = opts?.caBundlePath ?? join142(homedir32(), ".ccr", "ca-bundle.crt");
514700
+ const caBundlePath = opts?.caBundlePath ?? join142(homedir33(), ".ccr", "ca-bundle.crt");
514677
514701
  const caOk = await downloadCaBundle(baseUrl, opts?.systemCaPath ?? SYSTEM_CA_BUNDLE, caBundlePath);
514678
514702
  if (!caOk)
514679
514703
  return state2;
@@ -517212,7 +517236,7 @@ var init_types15 = __esm(() => {
517212
517236
  });
517213
517237
 
517214
517238
  // src/utils/settings/mdm/constants.ts
517215
- import { homedir as homedir33, userInfo as userInfo3 } from "os";
517239
+ import { homedir as homedir34, userInfo as userInfo3 } from "os";
517216
517240
  import { join as join144 } from "path";
517217
517241
  function getMacOSPlistPaths() {
517218
517242
  let username = "";
@@ -517232,7 +517256,7 @@ function getMacOSPlistPaths() {
517232
517256
  });
517233
517257
  if (process.env.USER_TYPE === "ant") {
517234
517258
  paths2.push({
517235
- path: join144(homedir33(), "Library", "Preferences", `${MACOS_PREFERENCE_DOMAIN}.plist`),
517259
+ path: join144(homedir34(), "Library", "Preferences", `${MACOS_PREFERENCE_DOMAIN}.plist`),
517236
517260
  label: "user preferences (internal-only)"
517237
517261
  });
517238
517262
  }
@@ -518045,7 +518069,7 @@ var init_settings2 = __esm(() => {
518045
518069
  });
518046
518070
 
518047
518071
  // src/memdir/paths.ts
518048
- import { homedir as homedir34 } from "os";
518072
+ import { homedir as homedir35 } from "os";
518049
518073
  import { isAbsolute as isAbsolute25, join as join147, normalize as normalize15, sep as sep34 } from "path";
518050
518074
  function isAutoMemoryEnabled() {
518051
518075
  const envVal = process.env.CLAUDE_CODE_DISABLE_AUTO_MEMORY;
@@ -518090,7 +518114,7 @@ function validateMemoryPath(raw, expandTilde3) {
518090
518114
  if (restNorm === "." || restNorm === "..") {
518091
518115
  return;
518092
518116
  }
518093
- candidate = join147(homedir34(), rest);
518117
+ candidate = join147(homedir35(), rest);
518094
518118
  }
518095
518119
  const normalized = normalize15(candidate).replace(/[/\\]+$/, "");
518096
518120
  if (!isAbsolute25(normalized) || normalized.length < 3 || /^[A-Za-z]:$/.test(normalized) || normalized.startsWith("\\\\") || normalized.startsWith("//") || normalized.includes("\x00")) {
@@ -519276,7 +519300,7 @@ import {
519276
519300
  unlink as unlink25
519277
519301
  } from "fs/promises";
519278
519302
  import { createServer as createServer6 } from "net";
519279
- import { homedir as homedir35, platform as platform5 } from "os";
519303
+ import { homedir as homedir36, platform as platform5 } from "os";
519280
519304
  import { join as join149 } from "path";
519281
519305
  function log(message, ...args) {
519282
519306
  if (LOG_FILE) {
@@ -519615,7 +519639,7 @@ var init_chromeNativeHost = __esm(() => {
519615
519639
  init_slowOperations();
519616
519640
  init_common2();
519617
519641
  MAX_MESSAGE_SIZE = 1024 * 1024;
519618
- LOG_FILE = process.env.USER_TYPE === "ant" ? join149(homedir35(), ".claude", "debug", "chrome-native-host.txt") : undefined;
519642
+ LOG_FILE = process.env.USER_TYPE === "ant" ? join149(homedir36(), ".claude", "debug", "chrome-native-host.txt") : undefined;
519619
519643
  messageSchema = lazySchema(() => exports_external2.object({
519620
519644
  type: exports_external2.string()
519621
519645
  }).passthrough());
@@ -519781,7 +519805,7 @@ function printStartupScreen(modelOverride) {
519781
519805
  const home = process.env.HOME || process.env.USERPROFILE || "";
519782
519806
  const cwd2 = process.cwd();
519783
519807
  const displayCwd = home && cwd2.startsWith(home) ? `~${cwd2.slice(home.length)}` : cwd2;
519784
- const version3 = "0.8.1";
519808
+ const version3 = "0.8.2";
519785
519809
  const bold2 = `${ESC3}1m`;
519786
519810
  const PURPLE = rgb3(...ACCENT);
519787
519811
  const SOFT = rgb3(...CREAM);
@@ -529068,7 +529092,7 @@ var init_ShowInIDEPrompt = __esm(() => {
529068
529092
  });
529069
529093
 
529070
529094
  // src/components/permissions/FilePermissionDialog/permissionOptions.tsx
529071
- import { homedir as homedir36 } from "os";
529095
+ import { homedir as homedir37 } from "os";
529072
529096
  import { basename as basename52, join as join150, sep as sep35 } from "path";
529073
529097
  function isInClaudeFolder(filePath) {
529074
529098
  const absolutePath = expandPath(filePath);
@@ -529079,7 +529103,7 @@ function isInClaudeFolder(filePath) {
529079
529103
  }
529080
529104
  function isInGlobalClaudeFolder(filePath) {
529081
529105
  const absolutePath = expandPath(filePath);
529082
- const globalClaudeFolderPath = join150(homedir36(), ".claude");
529106
+ const globalClaudeFolderPath = join150(homedir37(), ".claude");
529083
529107
  const normalizedAbsolutePath = normalizeCaseForComparison(absolutePath);
529084
529108
  const normalizedGlobalClaudeFolderPath = normalizeCaseForComparison(globalClaudeFolderPath);
529085
529109
  return normalizedAbsolutePath.startsWith(normalizedGlobalClaudeFolderPath + sep35.toLowerCase()) || normalizedAbsolutePath.startsWith(normalizedGlobalClaudeFolderPath + "/");
@@ -538055,7 +538079,7 @@ function AutoUpdater({
538055
538079
  return;
538056
538080
  }
538057
538081
  if (false) {}
538058
- const currentVersion = "0.8.1";
538082
+ const currentVersion = "0.8.2";
538059
538083
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
538060
538084
  let latestVersion = await getLatestVersion(channel);
538061
538085
  const isDisabled = isAutoUpdaterDisabled();
@@ -538408,17 +538432,17 @@ function PackageManagerAutoUpdater(t0) {
538408
538432
  const maxVersion = await getMaxVersion();
538409
538433
  if (maxVersion && latest && gt(latest, maxVersion)) {
538410
538434
  logForDebugging2(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
538411
- if (gte("0.8.1", maxVersion)) {
538412
- logForDebugging2(`PackageManagerAutoUpdater: current version ${"0.8.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
538435
+ if (gte("0.8.2", maxVersion)) {
538436
+ logForDebugging2(`PackageManagerAutoUpdater: current version ${"0.8.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
538413
538437
  setUpdateAvailable(false);
538414
538438
  return;
538415
538439
  }
538416
538440
  latest = maxVersion;
538417
538441
  }
538418
- const hasUpdate = latest && !gte("0.8.1", latest) && !shouldSkipVersion(latest);
538442
+ const hasUpdate = latest && !gte("0.8.2", latest) && !shouldSkipVersion(latest);
538419
538443
  setUpdateAvailable(!!hasUpdate);
538420
538444
  if (hasUpdate) {
538421
- logForDebugging2(`PackageManagerAutoUpdater: Update available ${"0.8.1"} -> ${latest}`);
538445
+ logForDebugging2(`PackageManagerAutoUpdater: Update available ${"0.8.2"} -> ${latest}`);
538422
538446
  }
538423
538447
  };
538424
538448
  $2[0] = t1;
@@ -538452,7 +538476,7 @@ function PackageManagerAutoUpdater(t0) {
538452
538476
  wrap: "truncate",
538453
538477
  children: [
538454
538478
  "currentVersion: ",
538455
- "0.8.1"
538479
+ "0.8.2"
538456
538480
  ]
538457
538481
  }, undefined, true, undefined, this);
538458
538482
  $2[3] = verbose;
@@ -553815,7 +553839,7 @@ var init_cacache = __esm(() => {
553815
553839
 
553816
553840
  // src/utils/cleanup.ts
553817
553841
  import * as fs4 from "fs/promises";
553818
- import { homedir as homedir37 } from "os";
553842
+ import { homedir as homedir38 } from "os";
553819
553843
  import { join as join151 } from "path";
553820
553844
  function getCutoffDate() {
553821
553845
  const settings = getSettings_DEPRECATED() || {};
@@ -554116,7 +554140,7 @@ async function cleanupNpmCacheForAnthropicPackages() {
554116
554140
  return;
554117
554141
  }
554118
554142
  logForDebugging2("npm cache cleanup: starting");
554119
- const npmCachePath = join151(homedir37(), ".npm", "_cacache");
554143
+ const npmCachePath = join151(homedir38(), ".npm", "_cacache");
554120
554144
  const NPM_CACHE_RETENTION_COUNT = 5;
554121
554145
  const startTime = Date.now();
554122
554146
  try {
@@ -570865,7 +570889,7 @@ function WelcomeV2() {
570865
570889
  dimColor: true,
570866
570890
  children: [
570867
570891
  "v",
570868
- "0.8.1",
570892
+ "0.8.2",
570869
570893
  " "
570870
570894
  ]
570871
570895
  }, undefined, true, undefined, this)
@@ -571052,7 +571076,7 @@ function WelcomeV2() {
571052
571076
  dimColor: true,
571053
571077
  children: [
571054
571078
  "v",
571055
- "0.8.1",
571079
+ "0.8.2",
571056
571080
  " "
571057
571081
  ]
571058
571082
  }, undefined, true, undefined, this)
@@ -571268,7 +571292,7 @@ function AppleTerminalWelcomeV2(t0) {
571268
571292
  dimColor: true,
571269
571293
  children: [
571270
571294
  "v",
571271
- "0.8.1",
571295
+ "0.8.2",
571272
571296
  " "
571273
571297
  ]
571274
571298
  }, undefined, true, undefined, this);
@@ -571477,7 +571501,7 @@ function AppleTerminalWelcomeV2(t0) {
571477
571501
  dimColor: true,
571478
571502
  children: [
571479
571503
  "v",
571480
- "0.8.1",
571504
+ "0.8.2",
571481
571505
  " "
571482
571506
  ]
571483
571507
  }, undefined, true, undefined, this);
@@ -572283,7 +572307,7 @@ var exports_TrustDialog = {};
572283
572307
  __export(exports_TrustDialog, {
572284
572308
  TrustDialog: () => TrustDialog
572285
572309
  });
572286
- import { homedir as homedir38 } from "os";
572310
+ import { homedir as homedir39 } from "os";
572287
572311
  function TrustDialog(t0) {
572288
572312
  const $2 = import_react_compiler_runtime363.c(33);
572289
572313
  const {
@@ -572394,7 +572418,7 @@ function TrustDialog(t0) {
572394
572418
  let t13;
572395
572419
  if ($2[13] !== hasAnyBashExecution) {
572396
572420
  t12 = () => {
572397
- const isHomeDir = homedir38() === getCwd();
572421
+ const isHomeDir = homedir39() === getCwd();
572398
572422
  logEvent("tengu_trust_dialog_shown", {
572399
572423
  isHomeDir,
572400
572424
  hasMcpServers,
@@ -572423,7 +572447,7 @@ function TrustDialog(t0) {
572423
572447
  gracefulShutdownSync(1);
572424
572448
  return;
572425
572449
  }
572426
- const isHomeDir_0 = homedir38() === getCwd();
572450
+ const isHomeDir_0 = homedir39() === getCwd();
572427
572451
  logEvent("tengu_trust_dialog_accept", {
572428
572452
  isHomeDir: isHomeDir_0,
572429
572453
  hasMcpServers,
@@ -577667,7 +577691,7 @@ var init_sessionMemory = __esm(() => {
577667
577691
 
577668
577692
  // src/utils/iTermBackup.ts
577669
577693
  import { copyFile as copyFile10, stat as stat54 } from "fs/promises";
577670
- import { homedir as homedir39 } from "os";
577694
+ import { homedir as homedir40 } from "os";
577671
577695
  import { join as join157 } from "path";
577672
577696
  function markITerm2SetupComplete() {
577673
577697
  saveGlobalConfig((current) => ({
@@ -577683,7 +577707,7 @@ function getIterm2RecoveryInfo() {
577683
577707
  };
577684
577708
  }
577685
577709
  function getITerm2PlistPath() {
577686
- return join157(homedir39(), "Library", "Preferences", "com.googlecode.iterm2.plist");
577710
+ return join157(homedir40(), "Library", "Preferences", "com.googlecode.iterm2.plist");
577687
577711
  }
577688
577712
  async function checkAndRestoreITerm2Backup() {
577689
577713
  const { inProgress, backupPath } = getIterm2RecoveryInfo();
@@ -578566,7 +578590,7 @@ __export(exports_claudeDesktop, {
578566
578590
  getClaudeDesktopConfigPath: () => getClaudeDesktopConfigPath
578567
578591
  });
578568
578592
  import { readdir as readdir34, readFile as readFile52, stat as stat55 } from "fs/promises";
578569
- import { homedir as homedir40 } from "os";
578593
+ import { homedir as homedir41 } from "os";
578570
578594
  import { join as join158 } from "path";
578571
578595
  async function getClaudeDesktopConfigPath() {
578572
578596
  const platform6 = getPlatform();
@@ -578574,7 +578598,7 @@ async function getClaudeDesktopConfigPath() {
578574
578598
  throw new Error(`Unsupported platform: ${platform6} - Verboo Desktop integration only works on macOS and WSL.`);
578575
578599
  }
578576
578600
  if (platform6 === "macos") {
578577
- return join158(homedir40(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
578601
+ return join158(homedir41(), "Library", "Application Support", "Claude", "claude_desktop_config.json");
578578
578602
  }
578579
578603
  const windowsHome = process.env.USERPROFILE ? process.env.USERPROFILE.replace(/\\/g, "/") : null;
578580
578604
  if (windowsHome) {
@@ -588183,11 +588207,11 @@ __export(exports_install, {
588183
588207
  install: () => install,
588184
588208
  getInstallationPath: () => getInstallationPath2
588185
588209
  });
588186
- import { homedir as homedir41 } from "node:os";
588210
+ import { homedir as homedir42 } from "node:os";
588187
588211
  import { join as join162 } from "node:path";
588188
588212
  function getInstallationPath2() {
588189
588213
  const isWindows2 = env2.platform === "win32";
588190
- const homeDir = homedir41();
588214
+ const homeDir = homedir42();
588191
588215
  if (isWindows2) {
588192
588216
  const windowsPath = join162(homeDir, ".local", "bin", "verboo.exe");
588193
588217
  return windowsPath.replace(/\//g, "\\");
@@ -588848,7 +588872,7 @@ __export(exports_update, {
588848
588872
  async function update() {
588849
588873
  if (getAPIProvider() !== "firstParty") {
588850
588874
  writeToStdout(source_default.yellow(`Auto-update is not available for third-party provider builds.
588851
- `) + `Current version: ${"0.8.1"}
588875
+ `) + `Current version: ${"0.8.2"}
588852
588876
 
588853
588877
  ` + `To update, reinstall from npm:
588854
588878
  ` + source_default.bold(` npm install -g ${"@verboo/code"}@latest`) + `
@@ -588859,7 +588883,7 @@ async function update() {
588859
588883
  await gracefulShutdown(0);
588860
588884
  }
588861
588885
  logEvent("tengu_update_check", {});
588862
- writeToStdout(`Current version: ${"0.8.1"}
588886
+ writeToStdout(`Current version: ${"0.8.2"}
588863
588887
  `);
588864
588888
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
588865
588889
  writeToStdout(`Checking for updates to ${channel} version...
@@ -588944,8 +588968,8 @@ async function update() {
588944
588968
  writeToStdout(`Verboo Code is managed by Homebrew.
588945
588969
  `);
588946
588970
  const latest = await getLatestVersion(channel);
588947
- if (latest && !gte("0.8.1", latest)) {
588948
- writeToStdout(`Update available: ${"0.8.1"} → ${latest}
588971
+ if (latest && !gte("0.8.2", latest)) {
588972
+ writeToStdout(`Update available: ${"0.8.2"} → ${latest}
588949
588973
  `);
588950
588974
  writeToStdout(`
588951
588975
  `);
@@ -588961,8 +588985,8 @@ async function update() {
588961
588985
  writeToStdout(`Verboo Code is managed by winget.
588962
588986
  `);
588963
588987
  const latest = await getLatestVersion(channel);
588964
- if (latest && !gte("0.8.1", latest)) {
588965
- writeToStdout(`Update available: ${"0.8.1"} → ${latest}
588988
+ if (latest && !gte("0.8.2", latest)) {
588989
+ writeToStdout(`Update available: ${"0.8.2"} → ${latest}
588966
588990
  `);
588967
588991
  writeToStdout(`
588968
588992
  `);
@@ -588978,8 +589002,8 @@ async function update() {
588978
589002
  writeToStdout(`Verboo Code is managed by apk.
588979
589003
  `);
588980
589004
  const latest = await getLatestVersion(channel);
588981
- if (latest && !gte("0.8.1", latest)) {
588982
- writeToStdout(`Update available: ${"0.8.1"} → ${latest}
589005
+ if (latest && !gte("0.8.2", latest)) {
589006
+ writeToStdout(`Update available: ${"0.8.2"} → ${latest}
588983
589007
  `);
588984
589008
  writeToStdout(`
588985
589009
  `);
@@ -589044,11 +589068,11 @@ async function update() {
589044
589068
  `);
589045
589069
  await gracefulShutdown(1);
589046
589070
  }
589047
- if (result.latestVersion === "0.8.1") {
589048
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.8.1"})`) + `
589071
+ if (result.latestVersion === "0.8.2") {
589072
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.8.2"})`) + `
589049
589073
  `);
589050
589074
  } else {
589051
- writeToStdout(source_default.green(`Successfully updated from ${"0.8.1"} to version ${result.latestVersion}`) + `
589075
+ writeToStdout(source_default.green(`Successfully updated from ${"0.8.2"} to version ${result.latestVersion}`) + `
589052
589076
  `);
589053
589077
  await regenerateCompletionCache();
589054
589078
  }
@@ -589108,12 +589132,12 @@ async function update() {
589108
589132
  `);
589109
589133
  await gracefulShutdown(1);
589110
589134
  }
589111
- if (latestVersion === "0.8.1") {
589112
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.8.1"})`) + `
589135
+ if (latestVersion === "0.8.2") {
589136
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.8.2"})`) + `
589113
589137
  `);
589114
589138
  await gracefulShutdown(0);
589115
589139
  }
589116
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.8.1"})
589140
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.8.2"})
589117
589141
  `);
589118
589142
  writeToStdout(`Installing update...
589119
589143
  `);
@@ -589158,7 +589182,7 @@ async function update() {
589158
589182
  logForDebugging2(`update: Installation status: ${status2}`);
589159
589183
  switch (status2) {
589160
589184
  case "success":
589161
- writeToStdout(source_default.green(`Successfully updated from ${"0.8.1"} to version ${latestVersion}`) + `
589185
+ writeToStdout(source_default.green(`Successfully updated from ${"0.8.2"} to version ${latestVersion}`) + `
589162
589186
  `);
589163
589187
  await regenerateCompletionCache();
589164
589188
  break;
@@ -590418,7 +590442,7 @@ ${customInstructions}` : customInstructions;
590418
590442
  is_native_binary: isInBundledMode()
590419
590443
  });
590420
590444
  logMemoryDiagnostics("start", {
590421
- version: "0.8.1",
590445
+ version: "0.8.2",
590422
590446
  debug: debug2,
590423
590447
  debugToStderr,
590424
590448
  print: print ?? false,
@@ -591224,7 +591248,7 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
591224
591248
  pendingHookMessages
591225
591249
  }, renderAndRun);
591226
591250
  }
591227
- }).version(`0.8.1 (${cliDesc})`, "-v, --version", "Output the version number");
591251
+ }).version(`0.8.2 (${cliDesc})`, "-v, --version", "Output the version number");
591228
591252
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
591229
591253
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
591230
591254
  if (canUserConfigureAdvisor()) {
@@ -591798,7 +591822,7 @@ if (false) {}
591798
591822
  async function main2() {
591799
591823
  const args = process.argv.slice(2);
591800
591824
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
591801
- console.log(`${"0.8.1"} (Verboo Code)`);
591825
+ console.log(`${"0.8.2"} (Verboo Code)`);
591802
591826
  return;
591803
591827
  }
591804
591828
  if (!IS_VERBOO_CLI && args.includes("--provider")) {
@@ -591963,4 +591987,4 @@ async function main2() {
591963
591987
  }
591964
591988
  main2();
591965
591989
 
591966
- //# debugId=03D6B4CDFBA5D7B464756E2164756E21
591990
+ //# debugId=A258B2DC565153D564756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verboo/code",
3
- "version": "0.8.1",
3
+ "version": "0.8.2",
4
4
  "description": "Verboo Code — coding agent for the Verboo platform",
5
5
  "type": "module",
6
6
  "bin": {