@verboo/code 0.9.3 → 0.9.5

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 +383 -281
  2. package/package.json +1 -1
package/dist/cli.mjs CHANGED
@@ -16549,7 +16549,7 @@ function getPathsForPermissionCheck(inputPath) {
16549
16549
  path7 = nodePath.join(homedir2().normalize("NFC"), path7.slice(2));
16550
16550
  }
16551
16551
  const pathSet = new Set;
16552
- const fsImpl = getFsImplementation();
16552
+ const fsImpl = getFsImplementation2();
16553
16553
  pathSet.add(path7);
16554
16554
  if (path7.startsWith("//") || path7.startsWith("\\\\")) {
16555
16555
  return Array.from(pathSet);
@@ -16591,7 +16591,7 @@ function getPathsForPermissionCheck(inputPath) {
16591
16591
  }
16592
16592
  return Array.from(pathSet);
16593
16593
  }
16594
- function getFsImplementation() {
16594
+ function getFsImplementation2() {
16595
16595
  return activeFs;
16596
16596
  }
16597
16597
  async function readFileRange(path7, offset, maxBytes) {
@@ -17108,10 +17108,10 @@ function getDebugWriter() {
17108
17108
  if (isDebugMode()) {
17109
17109
  if (needMkdir) {
17110
17110
  try {
17111
- getFsImplementation().mkdirSync(dir);
17111
+ getFsImplementation2().mkdirSync(dir);
17112
17112
  } catch {}
17113
17113
  }
17114
- getFsImplementation().appendFileSync(path7, content);
17114
+ getFsImplementation2().appendFileSync(path7, content);
17115
17115
  updateLatestDebugLogSymlink();
17116
17116
  return;
17117
17117
  }
@@ -17371,10 +17371,10 @@ var init_cachePaths = __esm(() => {
17371
17371
  init_fsOperations();
17372
17372
  paths = envPaths("claude-cli");
17373
17373
  CACHE_PATHS = {
17374
- baseLogs: () => join4(paths.cache, getProjectDir(getFsImplementation().cwd())),
17375
- errors: () => join4(paths.cache, getProjectDir(getFsImplementation().cwd()), "errors"),
17376
- messages: () => join4(paths.cache, getProjectDir(getFsImplementation().cwd()), "messages"),
17377
- mcpLogs: (serverName) => join4(paths.cache, getProjectDir(getFsImplementation().cwd()), `mcp-logs-${sanitizePath(serverName)}`)
17374
+ baseLogs: () => join4(paths.cache, getProjectDir(getFsImplementation2().cwd())),
17375
+ errors: () => join4(paths.cache, getProjectDir(getFsImplementation2().cwd()), "errors"),
17376
+ messages: () => join4(paths.cache, getProjectDir(getFsImplementation2().cwd()), "messages"),
17377
+ mcpLogs: (serverName) => join4(paths.cache, getProjectDir(getFsImplementation2().cwd()), `mcp-logs-${sanitizePath(serverName)}`)
17378
17378
  };
17379
17379
  });
17380
17380
 
@@ -18438,7 +18438,7 @@ var init_plainTextStorage = __esm(() => {
18438
18438
  read() {
18439
18439
  const { storagePath } = getStoragePath();
18440
18440
  try {
18441
- const data = getFsImplementation().readFileSync(storagePath, {
18441
+ const data = getFsImplementation2().readFileSync(storagePath, {
18442
18442
  encoding: "utf8"
18443
18443
  });
18444
18444
  return jsonParse(data);
@@ -18449,7 +18449,7 @@ var init_plainTextStorage = __esm(() => {
18449
18449
  async readAsync() {
18450
18450
  const { storagePath } = getStoragePath();
18451
18451
  try {
18452
- const data = await getFsImplementation().readFile(storagePath, {
18452
+ const data = await getFsImplementation2().readFile(storagePath, {
18453
18453
  encoding: "utf8"
18454
18454
  });
18455
18455
  return jsonParse(data);
@@ -18461,7 +18461,7 @@ var init_plainTextStorage = __esm(() => {
18461
18461
  try {
18462
18462
  const { storageDir, storagePath } = getStoragePath();
18463
18463
  try {
18464
- getFsImplementation().mkdirSync(storageDir);
18464
+ getFsImplementation2().mkdirSync(storageDir);
18465
18465
  } catch (e) {
18466
18466
  const code = getErrnoCode(e);
18467
18467
  if (code !== "EEXIST") {
@@ -18484,7 +18484,7 @@ var init_plainTextStorage = __esm(() => {
18484
18484
  delete() {
18485
18485
  const { storagePath } = getStoragePath();
18486
18486
  try {
18487
- getFsImplementation().unlinkSync(storagePath);
18487
+ getFsImplementation2().unlinkSync(storagePath);
18488
18488
  return true;
18489
18489
  } catch (e) {
18490
18490
  const code = getErrnoCode(e);
@@ -40502,7 +40502,6 @@ var init_env = __esm(() => {
40502
40502
  init_combinedAbortSignal();
40503
40503
  init_envUtils();
40504
40504
  init_findExecutable();
40505
- init_fsOperations();
40506
40505
  init_which();
40507
40506
  getGlobalClaudeFile = memoize_default(() => {
40508
40507
  const oauthSuffix = fileSuffixForOauthConfig();
@@ -42146,7 +42145,7 @@ function logForDiagnosticsNoPII(level, event, data) {
42146
42145
  event,
42147
42146
  data: data ?? {}
42148
42147
  };
42149
- const fs2 = getFsImplementation();
42148
+ const fs2 = getFsImplementation2();
42150
42149
  const line = jsonStringify(entry) + `
42151
42150
  `;
42152
42151
  try {
@@ -43210,7 +43209,7 @@ function isLocalHost(host) {
43210
43209
  return hostWithoutPort === "localhost" || /^127\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(hostWithoutPort);
43211
43210
  }
43212
43211
  function isCurrentDirectoryBareGitRepo() {
43213
- const fs2 = getFsImplementation();
43212
+ const fs2 = getFsImplementation2();
43214
43213
  const cwd2 = getCwd();
43215
43214
  const gitPath = join13(cwd2, ".git");
43216
43215
  try {
@@ -43427,7 +43426,7 @@ var init_platform2 = __esm(() => {
43427
43426
  }
43428
43427
  if (process.platform === "linux") {
43429
43428
  try {
43430
- const procVersion = getFsImplementation().readFileSync("/proc/version", { encoding: "utf8" });
43429
+ const procVersion = getFsImplementation2().readFileSync("/proc/version", { encoding: "utf8" });
43431
43430
  if (procVersion.toLowerCase().includes("microsoft") || procVersion.toLowerCase().includes("wsl")) {
43432
43431
  return "wsl";
43433
43432
  }
@@ -43447,7 +43446,7 @@ var init_platform2 = __esm(() => {
43447
43446
  return;
43448
43447
  }
43449
43448
  try {
43450
- const procVersion = getFsImplementation().readFileSync("/proc/version", {
43449
+ const procVersion = getFsImplementation2().readFileSync("/proc/version", {
43451
43450
  encoding: "utf8"
43452
43451
  });
43453
43452
  const wslVersionMatch = procVersion.match(/WSL(\d+)/i);
@@ -44103,7 +44102,7 @@ var init_sessionStoragePortable = __esm(() => {
44103
44102
  import { homedir as homedir6 } from "os";
44104
44103
  import { dirname as dirname7, isAbsolute as isAbsolute2, join as join16, normalize, relative, resolve as resolve7 } from "path";
44105
44104
  function expandPath(path10, baseDir) {
44106
- const actualBaseDir = baseDir ?? getCwd() ?? getFsImplementation().cwd();
44105
+ const actualBaseDir = baseDir ?? getCwd() ?? getFsImplementation2().cwd();
44107
44106
  if (typeof path10 !== "string") {
44108
44107
  throw new TypeError(`Path must be a string, received ${typeof path10}`);
44109
44108
  }
@@ -44146,7 +44145,7 @@ function getDirectoryForPath(path10) {
44146
44145
  return dirname7(absolutePath);
44147
44146
  }
44148
44147
  try {
44149
- const stats = getFsImplementation().statSync(absolutePath);
44148
+ const stats = getFsImplementation2().statSync(absolutePath);
44150
44149
  if (stats.isDirectory()) {
44151
44150
  return absolutePath;
44152
44151
  }
@@ -55908,7 +55907,7 @@ var init_v4 = __esm(() => {
55908
55907
 
55909
55908
  // src/utils/fileRead.ts
55910
55909
  function detectEncodingForResolvedPath(resolvedPath) {
55911
- const { buffer, bytesRead } = getFsImplementation().readSync(resolvedPath, {
55910
+ const { buffer, bytesRead } = getFsImplementation2().readSync(resolvedPath, {
55912
55911
  length: 4096
55913
55912
  });
55914
55913
  if (bytesRead === 0) {
@@ -55939,7 +55938,7 @@ function detectLineEndingsForString(content) {
55939
55938
  return crlfCount > lfCount ? "CRLF" : "LF";
55940
55939
  }
55941
55940
  function readFileSyncWithMetadata(filePath) {
55942
- const fs2 = getFsImplementation();
55941
+ const fs2 = getFsImplementation2();
55943
55942
  const { resolvedPath, isSymlink } = safeResolvePath(fs2, filePath);
55944
55943
  if (isSymlink) {
55945
55944
  logForDebugging(`Reading through symlink: ${filePath} -> ${resolvedPath}`);
@@ -56043,7 +56042,7 @@ class FileReadCache {
56043
56042
  sizeCalculation: (value) => Math.max(1, Buffer.byteLength(value.content))
56044
56043
  });
56045
56044
  readFile(filePath) {
56046
- const fs2 = getFsImplementation();
56045
+ const fs2 = getFsImplementation2();
56047
56046
  let stats;
56048
56047
  try {
56049
56048
  stats = fs2.statSync(filePath);
@@ -56117,7 +56116,7 @@ async function pathExists(path10) {
56117
56116
  }
56118
56117
  function readFileSafe(filepath) {
56119
56118
  try {
56120
- const fs2 = getFsImplementation();
56119
+ const fs2 = getFsImplementation2();
56121
56120
  return fs2.readFileSync(filepath, { encoding: "utf8" });
56122
56121
  } catch (error41) {
56123
56122
  logError2(error41);
@@ -56125,11 +56124,11 @@ function readFileSafe(filepath) {
56125
56124
  }
56126
56125
  }
56127
56126
  function getFileModificationTime(filePath) {
56128
- const fs2 = getFsImplementation();
56127
+ const fs2 = getFsImplementation2();
56129
56128
  return Math.floor(fs2.statSync(filePath).mtimeMs);
56130
56129
  }
56131
56130
  async function getFileModificationTimeAsync(filePath) {
56132
- const s = await getFsImplementation().stat(filePath);
56131
+ const s = await getFsImplementation2().stat(filePath);
56133
56132
  return Math.floor(s.mtimeMs);
56134
56133
  }
56135
56134
  function writeTextContent(filePath, content, encoding, endings) {
@@ -56145,7 +56144,7 @@ function writeTextContent(filePath, content, encoding, endings) {
56145
56144
  }
56146
56145
  function detectFileEncoding(filePath) {
56147
56146
  try {
56148
- const fs2 = getFsImplementation();
56147
+ const fs2 = getFsImplementation2();
56149
56148
  const { resolvedPath } = safeResolvePath(fs2, filePath);
56150
56149
  return detectEncodingForResolvedPath(resolvedPath);
56151
56150
  } catch (error41) {
@@ -56161,7 +56160,7 @@ function detectFileEncoding(filePath) {
56161
56160
  }
56162
56161
  function detectLineEndings(filePath, encoding = "utf8") {
56163
56162
  try {
56164
- const fs2 = getFsImplementation();
56163
+ const fs2 = getFsImplementation2();
56165
56164
  const { resolvedPath } = safeResolvePath(fs2, filePath);
56166
56165
  const { buffer, bytesRead } = fs2.readSync(resolvedPath, { length: 4096 });
56167
56166
  const content = buffer.toString(encoding, 0, bytesRead);
@@ -56193,7 +56192,7 @@ function getDisplayPath(filePath) {
56193
56192
  return filePath;
56194
56193
  }
56195
56194
  function findSimilarFile(filePath) {
56196
- const fs2 = getFsImplementation();
56195
+ const fs2 = getFsImplementation2();
56197
56196
  try {
56198
56197
  const dir = dirname8(filePath);
56199
56198
  const fileBaseName = basename3(filePath, extname(filePath));
@@ -56262,7 +56261,7 @@ function stripLineNumberPrefix(line) {
56262
56261
  }
56263
56262
  function isDirEmpty(dirPath) {
56264
56263
  try {
56265
- return getFsImplementation().isDirEmptySync(dirPath);
56264
+ return getFsImplementation2().isDirEmptySync(dirPath);
56266
56265
  } catch (e) {
56267
56266
  return isENOENT(e);
56268
56267
  }
@@ -56272,7 +56271,7 @@ function readFileSyncCached(filePath) {
56272
56271
  return content;
56273
56272
  }
56274
56273
  function writeFileSyncAndFlush_DEPRECATED(filePath, content, options = { encoding: "utf-8" }) {
56275
- const fs2 = getFsImplementation();
56274
+ const fs2 = getFsImplementation2();
56276
56275
  let targetPath = filePath;
56277
56276
  try {
56278
56277
  const linkTarget = fs2.readlinkSync(filePath);
@@ -56351,19 +56350,19 @@ function getDesktopPath() {
56351
56350
  if (windowsHome) {
56352
56351
  const wslPath = windowsHome.replace(/^[A-Z]:/, "");
56353
56352
  const desktopPath2 = `/mnt/c${wslPath}/Desktop`;
56354
- if (getFsImplementation().existsSync(desktopPath2)) {
56353
+ if (getFsImplementation2().existsSync(desktopPath2)) {
56355
56354
  return desktopPath2;
56356
56355
  }
56357
56356
  }
56358
56357
  try {
56359
56358
  const usersDir = "/mnt/c/Users";
56360
- const userDirs = getFsImplementation().readdirSync(usersDir);
56359
+ const userDirs = getFsImplementation2().readdirSync(usersDir);
56361
56360
  for (const user of userDirs) {
56362
56361
  if (user.name === "Public" || user.name === "Default" || user.name === "Default User" || user.name === "All Users") {
56363
56362
  continue;
56364
56363
  }
56365
56364
  const potentialDesktopPath = join18(usersDir, user.name, "Desktop");
56366
- if (getFsImplementation().existsSync(potentialDesktopPath)) {
56365
+ if (getFsImplementation2().existsSync(potentialDesktopPath)) {
56367
56366
  return potentialDesktopPath;
56368
56367
  }
56369
56368
  }
@@ -56372,14 +56371,14 @@ function getDesktopPath() {
56372
56371
  }
56373
56372
  }
56374
56373
  const desktopPath = join18(homeDir, "Desktop");
56375
- if (getFsImplementation().existsSync(desktopPath)) {
56374
+ if (getFsImplementation2().existsSync(desktopPath)) {
56376
56375
  return desktopPath;
56377
56376
  }
56378
56377
  return homeDir;
56379
56378
  }
56380
56379
  function isFileWithinReadSizeLimit(filePath, maxSizeBytes = MAX_OUTPUT_SIZE) {
56381
56380
  try {
56382
- const stats = getFsImplementation().statSync(filePath);
56381
+ const stats = getFsImplementation2().statSync(filePath);
56383
56382
  return stats.size <= maxSizeBytes;
56384
56383
  } catch {
56385
56384
  return false;
@@ -58674,7 +58673,7 @@ function profileReport() {
58674
58673
  if (DETAILED_PROFILING) {
58675
58674
  const path10 = getStartupPerfLogPath();
58676
58675
  const dir = dirname10(path10);
58677
- const fs2 = getFsImplementation();
58676
+ const fs2 = getFsImplementation2();
58678
58677
  fs2.mkdirSync(dir);
58679
58678
  writeFileSync_DEPRECATED(path10, getReport(), {
58680
58679
  encoding: "utf8",
@@ -88460,7 +88459,7 @@ var init_caCerts = __esm(() => {
88460
88459
  }
88461
88460
  if (extraCertsPath) {
88462
88461
  try {
88463
- const extraCert = getFsImplementation().readFileSync(extraCertsPath, {
88462
+ const extraCert = getFsImplementation2().readFileSync(extraCertsPath, {
88464
88463
  encoding: "utf8"
88465
88464
  });
88466
88465
  certs.push(extraCert);
@@ -110873,7 +110872,7 @@ var init_mtls = __esm(() => {
110873
110872
  const config2 = {};
110874
110873
  if (process.env.CLAUDE_CODE_CLIENT_CERT) {
110875
110874
  try {
110876
- config2.cert = getFsImplementation().readFileSync(process.env.CLAUDE_CODE_CLIENT_CERT, { encoding: "utf8" });
110875
+ config2.cert = getFsImplementation2().readFileSync(process.env.CLAUDE_CODE_CLIENT_CERT, { encoding: "utf8" });
110877
110876
  logForDebugging("mTLS: Loaded client certificate from CLAUDE_CODE_CLIENT_CERT");
110878
110877
  } catch (error41) {
110879
110878
  logForDebugging(`mTLS: Failed to load client certificate: ${error41}`, {
@@ -110883,7 +110882,7 @@ var init_mtls = __esm(() => {
110883
110882
  }
110884
110883
  if (process.env.CLAUDE_CODE_CLIENT_KEY) {
110885
110884
  try {
110886
- config2.key = getFsImplementation().readFileSync(process.env.CLAUDE_CODE_CLIENT_KEY, { encoding: "utf8" });
110885
+ config2.key = getFsImplementation2().readFileSync(process.env.CLAUDE_CODE_CLIENT_KEY, { encoding: "utf8" });
110887
110886
  logForDebugging("mTLS: Loaded client key from CLAUDE_CODE_CLIENT_KEY");
110888
110887
  } catch (error41) {
110889
110888
  logForDebugging(`mTLS: Failed to load client key: ${error41}`, {
@@ -138075,7 +138074,7 @@ function maybePersistTokenForSubprocesses(path10, token, tokenName) {
138075
138074
  }
138076
138075
  function readTokenFromWellKnownFile(path10, tokenName) {
138077
138076
  try {
138078
- const fsOps = getFsImplementation();
138077
+ const fsOps = getFsImplementation2();
138079
138078
  const token = fsOps.readFileSync(path10, { encoding: "utf8" }).trim();
138080
138079
  if (!token) {
138081
138080
  return null;
@@ -138113,7 +138112,7 @@ function getCredentialFromFd({
138113
138112
  return null;
138114
138113
  }
138115
138114
  try {
138116
- const fsOps = getFsImplementation();
138115
+ const fsOps = getFsImplementation2();
138117
138116
  const fdPath = process.platform === "darwin" || process.platform === "freebsd" ? `/dev/fd/${fd}` : `/proc/self/fd/${fd}`;
138118
138117
  const token = fsOps.readFileSync(fdPath, { encoding: "utf8" }).trim();
138119
138118
  if (!token) {
@@ -153632,7 +153631,7 @@ function isPathAllowed(resolvedPath, context, operationType, precomputedPathsToC
153632
153631
  function validateGlobPattern(cleanPath, cwd2, toolPermissionContext, operationType) {
153633
153632
  if (containsPathTraversal(cleanPath)) {
153634
153633
  const absolutePath = isAbsolute5(cleanPath) ? cleanPath : resolve15(cwd2, cleanPath);
153635
- const { resolvedPath: resolvedPath2, isCanonical: isCanonical2 } = safeResolvePath(getFsImplementation(), absolutePath);
153634
+ const { resolvedPath: resolvedPath2, isCanonical: isCanonical2 } = safeResolvePath(getFsImplementation2(), absolutePath);
153636
153635
  const result2 = isPathAllowed(resolvedPath2, toolPermissionContext, operationType, isCanonical2 ? [resolvedPath2] : undefined);
153637
153636
  return {
153638
153637
  allowed: result2.allowed,
@@ -153642,7 +153641,7 @@ function validateGlobPattern(cleanPath, cwd2, toolPermissionContext, operationTy
153642
153641
  }
153643
153642
  const basePath = getGlobBaseDirectory(cleanPath);
153644
153643
  const absoluteBasePath = isAbsolute5(basePath) ? basePath : resolve15(cwd2, basePath);
153645
- const { resolvedPath, isCanonical } = safeResolvePath(getFsImplementation(), absoluteBasePath);
153644
+ const { resolvedPath, isCanonical } = safeResolvePath(getFsImplementation2(), absoluteBasePath);
153646
153645
  const result = isPathAllowed(resolvedPath, toolPermissionContext, operationType, isCanonical ? [resolvedPath] : undefined);
153647
153646
  return {
153648
153647
  allowed: result.allowed,
@@ -153721,7 +153720,7 @@ function validatePath(path11, cwd2, toolPermissionContext, operationType) {
153721
153720
  return validateGlobPattern(cleanPath, cwd2, toolPermissionContext, operationType);
153722
153721
  }
153723
153722
  const absolutePath = isAbsolute5(cleanPath) ? cleanPath : resolve15(cwd2, cleanPath);
153724
- const { resolvedPath, isCanonical } = safeResolvePath(getFsImplementation(), absolutePath);
153723
+ const { resolvedPath, isCanonical } = safeResolvePath(getFsImplementation2(), absolutePath);
153725
153724
  const result = isPathAllowed(resolvedPath, toolPermissionContext, operationType, isCanonical ? [resolvedPath] : undefined);
153726
153725
  return {
153727
153726
  allowed: result.allowed,
@@ -156934,7 +156933,7 @@ async function generateMcpConfig(manifest, extractedPath, userConfig = {}) {
156934
156933
  return mcpConfig;
156935
156934
  }
156936
156935
  async function loadCacheMetadata(cacheDir, source) {
156937
- const fs2 = getFsImplementation();
156936
+ const fs2 = getFsImplementation2();
156938
156937
  const metadataPath = getMetadataPath(cacheDir, source);
156939
156938
  try {
156940
156939
  const content = await fs2.readFile(metadataPath, { encoding: "utf-8" });
@@ -156953,7 +156952,7 @@ async function loadCacheMetadata(cacheDir, source) {
156953
156952
  }
156954
156953
  async function saveCacheMetadata(cacheDir, source, metadata) {
156955
156954
  const metadataPath = getMetadataPath(cacheDir, source);
156956
- await getFsImplementation().mkdir(cacheDir);
156955
+ await getFsImplementation2().mkdir(cacheDir);
156957
156956
  await writeFile3(metadataPath, jsonStringify(metadata, null, 2), "utf-8");
156958
156957
  }
156959
156958
  async function downloadMcpb(url3, destPath, onProgress) {
@@ -156998,7 +156997,7 @@ async function extractMcpbContents(unzipped, extractPath, modes, onProgress) {
156998
156997
  if (onProgress) {
156999
156998
  onProgress("Extracting files...");
157000
156999
  }
157001
- await getFsImplementation().mkdir(extractPath);
157000
+ await getFsImplementation2().mkdir(extractPath);
157002
157001
  let filesWritten = 0;
157003
157002
  const entries = Object.entries(unzipped).filter(([k]) => !k.endsWith("/"));
157004
157003
  const totalFiles = entries.length;
@@ -157006,7 +157005,7 @@ async function extractMcpbContents(unzipped, extractPath, modes, onProgress) {
157006
157005
  const fullPath = join31(extractPath, filePath);
157007
157006
  const dir = dirname17(fullPath);
157008
157007
  if (dir !== extractPath) {
157009
- await getFsImplementation().mkdir(dir);
157008
+ await getFsImplementation2().mkdir(dir);
157010
157009
  }
157011
157010
  const isTextFile = filePath.endsWith(".json") || filePath.endsWith(".js") || filePath.endsWith(".ts") || filePath.endsWith(".txt") || filePath.endsWith(".md") || filePath.endsWith(".yml") || filePath.endsWith(".yaml");
157012
157011
  if (isTextFile) {
@@ -157030,7 +157029,7 @@ async function extractMcpbContents(unzipped, extractPath, modes, onProgress) {
157030
157029
  }
157031
157030
  }
157032
157031
  async function checkMcpbChanged(source, pluginPath) {
157033
- const fs2 = getFsImplementation();
157032
+ const fs2 = getFsImplementation2();
157034
157033
  const cacheDir = getMcpbCacheDir(pluginPath);
157035
157034
  const metadata = await loadCacheMetadata(cacheDir, source);
157036
157035
  if (!metadata) {
@@ -157071,7 +157070,7 @@ async function checkMcpbChanged(source, pluginPath) {
157071
157070
  return false;
157072
157071
  }
157073
157072
  async function loadMcpbFile(source, pluginPath, pluginId, onProgress, providedUserConfig, forceConfigDialog) {
157074
- const fs2 = getFsImplementation();
157073
+ const fs2 = getFsImplementation2();
157075
157074
  const cacheDir = getMcpbCacheDir(pluginPath);
157076
157075
  await fs2.mkdir(cacheDir);
157077
157076
  logForDebugging(`Loading MCPB from source: ${source}`);
@@ -157417,7 +157416,7 @@ var init_pluginOptionsStorage = __esm(() => {
157417
157416
  // src/utils/plugins/walkPluginMarkdown.ts
157418
157417
  import { join as join32 } from "path";
157419
157418
  async function walkPluginMarkdown(rootDir, onFile, opts = {}) {
157420
- const fs2 = getFsImplementation();
157419
+ const fs2 = getFsImplementation2();
157421
157420
  const label = opts.logLabel ?? "plugin";
157422
157421
  async function scan(dirPath, namespace) {
157423
157422
  try {
@@ -157461,7 +157460,7 @@ async function loadAgentsFromDirectory(agentsPath, pluginName, sourceName, plugi
157461
157460
  return agents;
157462
157461
  }
157463
157462
  async function loadAgentFromFile(filePath, pluginName, namespace, sourceName, pluginPath, pluginManifest, loadedPaths) {
157464
- const fs2 = getFsImplementation();
157463
+ const fs2 = getFsImplementation2();
157465
157464
  if (isDuplicatePath(fs2, filePath, loadedPaths)) {
157466
157465
  return null;
157467
157466
  }
@@ -157603,7 +157602,7 @@ var init_loadPluginAgents = __esm(() => {
157603
157602
  if (plugin.agentsPaths) {
157604
157603
  const pathResults = await Promise.all(plugin.agentsPaths.map(async (agentPath) => {
157605
157604
  try {
157606
- const fs2 = getFsImplementation();
157605
+ const fs2 = getFsImplementation2();
157607
157606
  const stats = await fs2.stat(agentPath);
157608
157607
  if (stats.isDirectory()) {
157609
157608
  const agents = await loadAgentsFromDirectory(agentPath, plugin.name, plugin.source, plugin.path, plugin.manifest, loadedPaths);
@@ -164726,7 +164725,7 @@ function handleMemoryFileReadError(error41, filePath) {
164726
164725
  }
164727
164726
  async function safelyReadMemoryFileAsync(filePath, type, includeBasePath) {
164728
164727
  try {
164729
- const fs2 = getFsImplementation();
164728
+ const fs2 = getFsImplementation2();
164730
164729
  const rawContent = await fs2.readFile(filePath, { encoding: "utf-8" });
164731
164730
  return parseMemoryFileContent(rawContent, filePath, type, includeBasePath);
164732
164731
  } catch (error41) {
@@ -164806,7 +164805,7 @@ function isClaudeMdExcluded(filePath, type) {
164806
164805
  return import_picomatch.default.isMatch(normalizedPath, expandedPatterns, matchOpts);
164807
164806
  }
164808
164807
  function resolveExcludePatterns(patterns) {
164809
- const fs2 = getFsImplementation();
164808
+ const fs2 = getFsImplementation2();
164810
164809
  const expanded = patterns.map((p) => p.replaceAll("\\", "/"));
164811
164810
  for (const normalized of expanded) {
164812
164811
  if (!normalized.startsWith("/")) {
@@ -164833,7 +164832,7 @@ async function processMemoryFile(filePath, type, processedPaths, includeExternal
164833
164832
  if (isClaudeMdExcluded(filePath, type)) {
164834
164833
  return [];
164835
164834
  }
164836
- const { resolvedPath, isSymlink } = safeResolvePath(getFsImplementation(), filePath);
164835
+ const { resolvedPath, isSymlink } = safeResolvePath(getFsImplementation2(), filePath);
164837
164836
  processedPaths.add(normalizedPath);
164838
164837
  if (isSymlink) {
164839
164838
  processedPaths.add(normalizePathForComparison(resolvedPath));
@@ -164869,7 +164868,7 @@ async function processMdRules({
164869
164868
  return [];
164870
164869
  }
164871
164870
  try {
164872
- const fs2 = getFsImplementation();
164871
+ const fs2 = getFsImplementation2();
164873
164872
  const { resolvedPath: resolvedRulesDir, isSymlink } = safeResolvePath(fs2, rulesDir);
164874
164873
  visitedDirs.add(rulesDir);
164875
164874
  if (isSymlink) {
@@ -164958,7 +164957,7 @@ async function getManagedAndUserConditionalRules(targetPath, processedPaths) {
164958
164957
  async function getMemoryFilesForNestedDirectory(dir, targetPath, processedPaths) {
164959
164958
  const result = [];
164960
164959
  if (isSettingSourceEnabled("projectSettings")) {
164961
- const projectPath = getProjectInstructionFilePath(dir, getFsImplementation().existsSync);
164960
+ const projectPath = getProjectInstructionFilePath(dir, getFsImplementation2().existsSync);
164962
164961
  result.push(...await processMemoryFile(projectPath, "Project", processedPaths, false));
164963
164962
  const dotClaudePath = join36(dir, ".claude", "CLAUDE.md");
164964
164963
  result.push(...await processMemoryFile(dotClaudePath, "Project", processedPaths, false));
@@ -165259,7 +165258,7 @@ var init_claudemd = __esm(() => {
165259
165258
  for (const dir of dirs.reverse()) {
165260
165259
  const skipProject = isNestedWorktree && pathInWorkingPath(dir, canonicalRoot) && !pathInWorkingPath(dir, gitRoot);
165261
165260
  if (isSettingSourceEnabled("projectSettings") && !skipProject) {
165262
- const projectPath = getProjectInstructionFilePath(dir, getFsImplementation().existsSync);
165261
+ const projectPath = getProjectInstructionFilePath(dir, getFsImplementation2().existsSync);
165263
165262
  result.push(...await processMemoryFile(projectPath, "Project", processedPaths, includeExternal));
165264
165263
  const dotClaudePath = join36(dir, ".claude", "CLAUDE.md");
165265
165264
  result.push(...await processMemoryFile(dotClaudePath, "Project", processedPaths, includeExternal));
@@ -165280,7 +165279,7 @@ var init_claudemd = __esm(() => {
165280
165279
  if (isEnvTruthy(process.env.CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD)) {
165281
165280
  const additionalDirs = getAdditionalDirectoriesForClaudeMd();
165282
165281
  for (const dir of additionalDirs) {
165283
- const projectPath = getProjectInstructionFilePath(dir, getFsImplementation().existsSync);
165282
+ const projectPath = getProjectInstructionFilePath(dir, getFsImplementation2().existsSync);
165284
165283
  result.push(...await processMemoryFile(projectPath, "Project", processedPaths, includeExternal));
165285
165284
  const dotClaudePath = join36(dir, ".claude", "CLAUDE.md");
165286
165285
  result.push(...await processMemoryFile(dotClaudePath, "Project", processedPaths, includeExternal));
@@ -165976,7 +165975,7 @@ async function waitForSessionMemoryExtraction() {
165976
165975
  }
165977
165976
  }
165978
165977
  async function getSessionMemoryContent() {
165979
- const fs2 = getFsImplementation();
165978
+ const fs2 = getFsImplementation2();
165980
165979
  const memoryPath = getSessionMemoryPath();
165981
165980
  try {
165982
165981
  const content = await fs2.readFile(memoryPath, { encoding: "utf-8" });
@@ -170638,7 +170637,7 @@ function getSettingsForSourceLenient_FOR_EDITING_ONLY_NOT_FOR_READING(source) {
170638
170637
  return null;
170639
170638
  }
170640
170639
  try {
170641
- const { resolvedPath } = safeResolvePath(getFsImplementation(), filePath);
170640
+ const { resolvedPath } = safeResolvePath(getFsImplementation2(), filePath);
170642
170641
  const content = readFileSync7(resolvedPath);
170643
170642
  if (content.trim() === "") {
170644
170643
  return {};
@@ -174112,6 +174111,7 @@ function getStreamStats(state) {
174112
174111
  // src/services/api/openaiShim.ts
174113
174112
  var exports_openaiShim = {};
174114
174113
  __export(exports_openaiShim, {
174114
+ setOpenAIShimRouterStatusHandler: () => setOpenAIShimRouterStatusHandler,
174115
174115
  createOpenAIShimClient: () => createOpenAIShimClient
174116
174116
  });
174117
174117
  import { randomUUID as randomUUID4 } from "crypto";
@@ -174432,7 +174432,7 @@ function convertMessages(messages, system, options2) {
174432
174432
  ...toolCall.extra_content,
174433
174433
  google: {
174434
174434
  ...existingGoogle,
174435
- thought_signature: signature ?? "skip_thought_signature_validator"
174435
+ thought_signature: signature ?? existingGoogle.thought_signature ?? "skip_thought_signature_validator"
174436
174436
  }
174437
174437
  };
174438
174438
  }
@@ -174581,6 +174581,9 @@ function repairPossiblyTruncatedObjectJson(raw) {
174581
174581
  return null;
174582
174582
  }
174583
174583
  }
174584
+ function setOpenAIShimRouterStatusHandler(fn) {
174585
+ routerStatusHandler = fn;
174586
+ }
174584
174587
  async function* openaiStreamToAnthropic(response, model2, signal) {
174585
174588
  const messageId = makeMessageId2();
174586
174589
  let contentBlockIndex = 0;
@@ -174592,6 +174595,7 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
174592
174595
  let lastStopReason = null;
174593
174596
  let hasEmittedFinalUsage = false;
174594
174597
  let hasProcessedFinishReason = false;
174598
+ let routerWarmingActive = false;
174595
174599
  const streamState = createStreamState();
174596
174600
  yield {
174597
174601
  type: "message_start",
@@ -174702,6 +174706,14 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
174702
174706
  } catch {
174703
174707
  continue;
174704
174708
  }
174709
+ const routerStatus = chunk.router_status;
174710
+ if (typeof routerStatus === "string") {
174711
+ if (routerStatus === "warming" && !routerWarmingActive) {
174712
+ routerWarmingActive = true;
174713
+ routerStatusHandler?.("warming-up");
174714
+ }
174715
+ continue;
174716
+ }
174705
174717
  const inStreamError = chunk.error;
174706
174718
  if (inStreamError && typeof inStreamError === "object") {
174707
174719
  const message = typeof inStreamError.message === "string" ? inStreamError.message : "Provider returned an in-stream error";
@@ -174715,6 +174727,10 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
174715
174727
  throw APIError.generate(response.status ?? 200, errorPayload, message, response.headers);
174716
174728
  }
174717
174729
  const chunkUsage = convertChunkUsage(chunk.usage);
174730
+ if (routerWarmingActive && Array.isArray(chunk.choices) && chunk.choices.length > 0) {
174731
+ routerWarmingActive = false;
174732
+ routerStatusHandler?.(null);
174733
+ }
174718
174734
  for (const choice of chunk.choices ?? []) {
174719
174735
  const delta = choice.delta;
174720
174736
  if (delta.reasoning_content != null && delta.reasoning_content !== "") {
@@ -174771,12 +174787,15 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
174771
174787
  const initialArguments = tc.function.arguments ?? "";
174772
174788
  const normalizeAtStop = hasToolFieldMapping(tc.function.name);
174773
174789
  processStreamChunk(streamState, tc.function.arguments ?? "");
174790
+ const topLevelSig = tc.thought_signature;
174791
+ const initEC = tc.extra_content ? { ...tc.extra_content } : topLevelSig ? { google: { thought_signature: topLevelSig } } : undefined;
174774
174792
  activeToolCalls.set(tc.index, {
174775
174793
  id: tc.id,
174776
174794
  name: tc.function.name,
174777
174795
  index: toolBlockIndex,
174778
174796
  jsonBuffer: initialArguments,
174779
- normalizeAtStop
174797
+ normalizeAtStop,
174798
+ extra_content: initEC
174780
174799
  });
174781
174800
  yield {
174782
174801
  type: "content_block_start",
@@ -174786,10 +174805,8 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
174786
174805
  id: tc.id,
174787
174806
  name: tc.function.name,
174788
174807
  input: {},
174789
- ...tc.extra_content ? { extra_content: tc.extra_content } : {},
174790
- ...tc.extra_content?.google?.thought_signature ? {
174791
- signature: tc.extra_content.google.thought_signature
174792
- } : {}
174808
+ ...initEC ? { extra_content: initEC } : {},
174809
+ ...initEC?.google?.thought_signature ? { signature: initEC.google.thought_signature } : {}
174793
174810
  }
174794
174811
  };
174795
174812
  contentBlockIndex++;
@@ -174809,6 +174826,11 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
174809
174826
  if (tc.function.arguments) {
174810
174827
  active.jsonBuffer += tc.function.arguments;
174811
174828
  }
174829
+ const contSig = tc.thought_signature;
174830
+ const contEC = tc.extra_content ? { ...tc.extra_content } : contSig ? { google: { thought_signature: contSig } } : undefined;
174831
+ if (contEC) {
174832
+ active.extra_content = { ...active.extra_content ?? {}, ...contEC };
174833
+ }
174812
174834
  if (active.normalizeAtStop) {
174813
174835
  continue;
174814
174836
  }
@@ -174821,6 +174843,15 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
174821
174843
  }
174822
174844
  };
174823
174845
  }
174846
+ } else {
174847
+ const active = activeToolCalls.get(tc.index);
174848
+ if (active) {
174849
+ const lateSig = tc.thought_signature;
174850
+ const lateEC = tc.extra_content ? { ...tc.extra_content } : lateSig ? { google: { thought_signature: lateSig } } : undefined;
174851
+ if (lateEC) {
174852
+ active.extra_content = { ...active.extra_content ?? {}, ...lateEC };
174853
+ }
174854
+ }
174824
174855
  }
174825
174856
  }
174826
174857
  }
@@ -174835,6 +174866,20 @@ async function* openaiStreamToAnthropic(response, model2, signal) {
174835
174866
  yield* closeActiveContentBlock();
174836
174867
  }
174837
174868
  for (const [, tc] of activeToolCalls) {
174869
+ if (tc.extra_content) {
174870
+ yield {
174871
+ type: "content_block_start",
174872
+ index: tc.index,
174873
+ content_block: {
174874
+ type: "tool_use",
174875
+ id: tc.id,
174876
+ name: tc.name,
174877
+ input: {},
174878
+ extra_content: tc.extra_content,
174879
+ ...tc.extra_content.google?.thought_signature ? { signature: tc.extra_content.google.thought_signature } : {}
174880
+ }
174881
+ };
174882
+ }
174838
174883
  if (tc.normalizeAtStop) {
174839
174884
  let partialJson;
174840
174885
  if (choice.finish_reason === "length") {
@@ -175505,7 +175550,7 @@ function createOpenAIShimClient(options2) {
175505
175550
  messages: beta.messages
175506
175551
  };
175507
175552
  }
175508
- var GITHUB_429_MAX_RETRIES = 3, GITHUB_429_BASE_DELAY_SEC = 1, GITHUB_429_MAX_DELAY_SEC = 32, GEMINI_API_HOST = "generativelanguage.googleapis.com", COPILOT_HEADERS2, JSON_REPAIR_SUFFIXES, OpenAIShimStream;
175553
+ var GITHUB_429_MAX_RETRIES = 3, GITHUB_429_BASE_DELAY_SEC = 1, GITHUB_429_MAX_DELAY_SEC = 32, GEMINI_API_HOST = "generativelanguage.googleapis.com", COPILOT_HEADERS2, JSON_REPAIR_SUFFIXES, routerStatusHandler = null, OpenAIShimStream;
175509
175554
  var init_openaiShim = __esm(() => {
175510
175555
  init_sdk();
175511
175556
  init_codexCredentials();
@@ -196259,7 +196304,7 @@ function getCronFilePath(dir) {
196259
196304
  return join40(dir ?? getProjectRoot(), CRON_FILE_REL);
196260
196305
  }
196261
196306
  async function readCronTasks(dir) {
196262
- const fs2 = getFsImplementation();
196307
+ const fs2 = getFsImplementation2();
196263
196308
  let raw;
196264
196309
  try {
196265
196310
  raw = await fs2.readFile(getCronFilePath(dir), { encoding: "utf-8" });
@@ -212141,7 +212186,7 @@ async function loadPluginMcpServers(plugin, errors4 = []) {
212141
212186
  return Object.keys(servers).length > 0 ? servers : undefined;
212142
212187
  }
212143
212188
  async function loadMcpServersFromFile(pluginPath, relativePath) {
212144
- const fs2 = getFsImplementation();
212189
+ const fs2 = getFsImplementation2();
212145
212190
  const filePath = join43(pluginPath, relativePath);
212146
212191
  let content;
212147
212192
  try {
@@ -213213,7 +213258,7 @@ function parseMcpConfig(params) {
213213
213258
  }
213214
213259
  function parseMcpConfigFromFilePath(params) {
213215
213260
  const { filePath, expandVars, scope } = params;
213216
- const fs2 = getFsImplementation();
213261
+ const fs2 = getFsImplementation2();
213217
213262
  let configContent;
213218
213263
  try {
213219
213264
  configContent = fs2.readFileSync(filePath, { encoding: "utf8" });
@@ -216340,7 +216385,7 @@ function buildCommonPluginDirectoryPaths(ideName) {
216340
216385
  }
216341
216386
  async function detectPluginDirectories(ideName) {
216342
216387
  const foundDirectories = [];
216343
- const fs2 = getFsImplementation();
216388
+ const fs2 = getFsImplementation2();
216344
216389
  const pluginDirPaths = buildCommonPluginDirectoryPaths(ideName);
216345
216390
  const idePatterns = ideNameToDirMap[ideName.toLowerCase()];
216346
216391
  if (!idePatterns) {
@@ -216379,7 +216424,7 @@ async function isJetBrainsPluginInstalled(ideType) {
216379
216424
  for (const dir of pluginDirs) {
216380
216425
  const pluginPath = join48(dir, PLUGIN_PREFIX);
216381
216426
  try {
216382
- await getFsImplementation().stat(pluginPath);
216427
+ await getFsImplementation2().stat(pluginPath);
216383
216428
  return true;
216384
216429
  } catch {}
216385
216430
  }
@@ -217473,12 +217518,12 @@ async function getSortedIdeLockfiles() {
217473
217518
  const ideLockFilePaths = await getIdeLockfilesPaths();
217474
217519
  const allLockfiles = await Promise.all(ideLockFilePaths.map(async (ideLockFilePath) => {
217475
217520
  try {
217476
- const entries = await getFsImplementation().readdir(ideLockFilePath);
217521
+ const entries = await getFsImplementation2().readdir(ideLockFilePath);
217477
217522
  const lockEntries = entries.filter((file2) => file2.name.endsWith(".lock"));
217478
217523
  const stats = await Promise.all(lockEntries.map(async (file2) => {
217479
217524
  const fullPath = join49(ideLockFilePath, file2.name);
217480
217525
  try {
217481
- const fileStat = await getFsImplementation().stat(fullPath);
217526
+ const fileStat = await getFsImplementation2().stat(fullPath);
217482
217527
  return { path: fullPath, mtime: fileStat.mtime };
217483
217528
  } catch {
217484
217529
  return null;
@@ -217500,7 +217545,7 @@ async function getSortedIdeLockfiles() {
217500
217545
  }
217501
217546
  async function readIdeLockfile(path12) {
217502
217547
  try {
217503
- const content = await getFsImplementation().readFile(path12, {
217548
+ const content = await getFsImplementation2().readFile(path12, {
217504
217549
  encoding: "utf-8"
217505
217550
  });
217506
217551
  let workspaceFolders = [];
@@ -217578,7 +217623,7 @@ async function getIdeLockfilesPaths() {
217578
217623
  }
217579
217624
  try {
217580
217625
  const usersDir = "/mnt/c/Users";
217581
- const userDirs = await getFsImplementation().readdir(usersDir);
217626
+ const userDirs = await getFsImplementation2().readdir(usersDir);
217582
217627
  for (const user of userDirs) {
217583
217628
  if (!user.isDirectory() && !user.isSymbolicLink()) {
217584
217629
  continue;
@@ -217604,7 +217649,7 @@ async function cleanupStaleIdeLockfiles() {
217604
217649
  const lockfileInfo = await readIdeLockfile(lockfilePath);
217605
217650
  if (!lockfileInfo) {
217606
217651
  try {
217607
- await getFsImplementation().unlink(lockfilePath);
217652
+ await getFsImplementation2().unlink(lockfilePath);
217608
217653
  } catch (error42) {
217609
217654
  logError2(error42);
217610
217655
  }
@@ -217631,7 +217676,7 @@ async function cleanupStaleIdeLockfiles() {
217631
217676
  }
217632
217677
  if (shouldDelete) {
217633
217678
  try {
217634
- await getFsImplementation().unlink(lockfilePath);
217679
+ await getFsImplementation2().unlink(lockfilePath);
217635
217680
  } catch (error42) {
217636
217681
  logError2(error42);
217637
217682
  }
@@ -217901,7 +217946,7 @@ async function getVSCodeIDECommand(ideType) {
217901
217946
  const parentExecutable = getVSCodeIDECommandByParentProcess();
217902
217947
  if (parentExecutable) {
217903
217948
  try {
217904
- await getFsImplementation().stat(parentExecutable);
217949
+ await getFsImplementation2().stat(parentExecutable);
217905
217950
  return parentExecutable;
217906
217951
  } catch {}
217907
217952
  }
@@ -218077,7 +218122,7 @@ async function installFromArtifactory(command) {
218077
218122
  const npmrcAuthPrefix = `//${artifactoryBaseUrl.replace(/^https?:\/\//, "")}/api/npm/npm-all/:_authToken=`;
218078
218123
  const npmrcPath = join49(os3.homedir(), ".npmrc");
218079
218124
  let authToken = null;
218080
- const fs2 = getFsImplementation();
218125
+ const fs2 = getFsImplementation2();
218081
218126
  try {
218082
218127
  const npmrcContent = await fs2.readFile(npmrcPath, {
218083
218128
  encoding: "utf8"
@@ -218117,7 +218162,7 @@ async function installFromArtifactory(command) {
218117
218162
  },
218118
218163
  responseType: "stream"
218119
218164
  });
218120
- const writeStream = getFsImplementation().createWriteStream(tempVsixPath);
218165
+ const writeStream = getFsImplementation2().createWriteStream(tempVsixPath);
218121
218166
  await new Promise((resolve19, reject2) => {
218122
218167
  vsixResponse.data.pipe(writeStream);
218123
218168
  writeStream.on("finish", resolve19);
@@ -218565,7 +218610,7 @@ function getTokenFromFileDescriptor() {
218565
218610
  return null;
218566
218611
  }
218567
218612
  try {
218568
- const fsOps = getFsImplementation();
218613
+ const fsOps = getFsImplementation2();
218569
218614
  const fdPath = process.platform === "darwin" || process.platform === "freebsd" ? `/dev/fd/${fd2}` : `/proc/self/fd/${fd2}`;
218570
218615
  const token = fsOps.readFileSync(fdPath, { encoding: "utf8" }).trim();
218571
218616
  if (!token) {
@@ -270838,7 +270883,7 @@ async function getImageFromClipboard() {
270838
270883
  if (saveResult.exitCode !== 0) {
270839
270884
  return null;
270840
270885
  }
270841
- let imageBuffer = getFsImplementation().readFileBytesSync(screenshotPath);
270886
+ let imageBuffer = getFsImplementation2().readFileBytesSync(screenshotPath);
270842
270887
  if (imageBuffer.length >= 2 && imageBuffer[0] === 66 && imageBuffer[1] === 77) {
270843
270888
  const sharp = await getImageProcessor();
270844
270889
  imageBuffer = await sharp(imageBuffer).png().toBuffer();
@@ -270911,11 +270956,11 @@ async function tryReadImageFromPath(text) {
270911
270956
  let imageBuffer;
270912
270957
  try {
270913
270958
  if (isAbsolute11(imagePath)) {
270914
- imageBuffer = getFsImplementation().readFileBytesSync(imagePath);
270959
+ imageBuffer = getFsImplementation2().readFileBytesSync(imagePath);
270915
270960
  } else {
270916
270961
  const clipboardPath = await getImagePathFromClipboard();
270917
270962
  if (clipboardPath && imagePath === basename11(clipboardPath)) {
270918
- imageBuffer = getFsImplementation().readFileBytesSync(clipboardPath);
270963
+ imageBuffer = getFsImplementation2().readFileBytesSync(clipboardPath);
270919
270964
  }
270920
270965
  }
270921
270966
  } catch (e) {
@@ -271041,7 +271086,7 @@ function evictOldestIfAtCap() {
271041
271086
  }
271042
271087
  }
271043
271088
  async function cleanupOldImageCaches() {
271044
- const fsImpl = getFsImplementation();
271089
+ const fsImpl = getFsImplementation2();
271045
271090
  const baseDir = join54(getClaudeConfigHomeDir(), IMAGE_STORE_DIR);
271046
271091
  const currentSessionId = getSessionId();
271047
271092
  try {
@@ -275837,7 +275882,7 @@ async function writeIfMissing(path12, content, mode) {
275837
275882
  async function ensureLocalPackageEnvironment() {
275838
275883
  try {
275839
275884
  const localInstallDir = getLocalInstallDir();
275840
- await getFsImplementation().mkdir(localInstallDir);
275885
+ await getFsImplementation2().mkdir(localInstallDir);
275841
275886
  await writeIfMissing(join55(localInstallDir, "package.json"), jsonStringify({ name: "verboo-local", version: "0.0.1", private: true }, null, 2));
275842
275887
  const wrapperPath = getLocalClaudePath();
275843
275888
  const created = await writeIfMissing(wrapperPath, `#!/bin/sh
@@ -276260,7 +276305,7 @@ async function getInstallationPath() {
276260
276305
  } catch {}
276261
276306
  try {
276262
276307
  const nativeBinaryPath = join57(homedir18(), ".local", "bin", getCliBinaryName());
276263
- await getFsImplementation().stat(nativeBinaryPath);
276308
+ await getFsImplementation2().stat(nativeBinaryPath);
276264
276309
  return nativeBinaryPath;
276265
276310
  } catch {}
276266
276311
  return "native";
@@ -276282,7 +276327,7 @@ function getInvokedBinary() {
276282
276327
  }
276283
276328
  }
276284
276329
  async function detectMultipleInstallations() {
276285
- const fs2 = getFsImplementation();
276330
+ const fs2 = getFsImplementation2();
276286
276331
  const installations = [];
276287
276332
  const localPath = await getDetectedLocalInstallDir();
276288
276333
  if (localPath) {
@@ -276659,7 +276704,7 @@ async function downloadVersionFromArtifactory(version2, stagingPath) {
276659
276704
  if (!ARTIFACTORY_REGISTRY_URL) {
276660
276705
  throw new Error("Internal artifactory registry URL is not configured");
276661
276706
  }
276662
- const fs2 = getFsImplementation();
276707
+ const fs2 = getFsImplementation2();
276663
276708
  await fs2.rm(stagingPath, { recursive: true, force: true });
276664
276709
  const platform4 = getPlatform2();
276665
276710
  const platformPackageName = `${undefined}-${platform4}`;
@@ -276789,7 +276834,7 @@ async function downloadAndVerifyBinary(binaryUrl, expectedChecksum, binaryPath,
276789
276834
  throw lastError ?? new Error("Download failed after all retries");
276790
276835
  }
276791
276836
  async function downloadVersionFromBinaryRepo(version2, stagingPath, baseUrl, authConfig) {
276792
- const fs2 = getFsImplementation();
276837
+ const fs2 = getFsImplementation2();
276793
276838
  await fs2.rm(stagingPath, { recursive: true, force: true });
276794
276839
  const platform4 = getPlatform2();
276795
276840
  const startTime2 = Date.now();
@@ -276921,7 +276966,7 @@ function isClaudeProcess(pid, expectedExecPath) {
276921
276966
  }
276922
276967
  }
276923
276968
  function readLockContent(lockFilePath) {
276924
- const fs2 = getFsImplementation();
276969
+ const fs2 = getFsImplementation2();
276925
276970
  try {
276926
276971
  const content = fs2.readFileSync(lockFilePath, { encoding: "utf8" });
276927
276972
  if (!content || content.trim() === "") {
@@ -276949,7 +276994,7 @@ function isLockActive(lockFilePath) {
276949
276994
  logForDebugging(`Lock PID ${pid} is running but does not appear to be Claude - treating as stale`);
276950
276995
  return false;
276951
276996
  }
276952
- const fs2 = getFsImplementation();
276997
+ const fs2 = getFsImplementation2();
276953
276998
  try {
276954
276999
  const stats = fs2.statSync(lockFilePath);
276955
277000
  const age = Date.now() - stats.mtimeMs;
@@ -276962,7 +277007,7 @@ function isLockActive(lockFilePath) {
276962
277007
  return true;
276963
277008
  }
276964
277009
  function writeLockFile(lockFilePath, content) {
276965
- const fs2 = getFsImplementation();
277010
+ const fs2 = getFsImplementation2();
276966
277011
  const tempPath = `${lockFilePath}.tmp.${process.pid}.${Date.now()}`;
276967
277012
  try {
276968
277013
  writeFileSync_DEPRECATED(tempPath, jsonStringify(content, null, 2), {
@@ -276978,7 +277023,7 @@ function writeLockFile(lockFilePath, content) {
276978
277023
  }
276979
277024
  }
276980
277025
  async function tryAcquireLock(versionPath, lockFilePath) {
276981
- const fs2 = getFsImplementation();
277026
+ const fs2 = getFsImplementation2();
276982
277027
  const versionName = basename12(versionPath);
276983
277028
  if (isLockActive(lockFilePath)) {
276984
277029
  const existingContent = readLockContent(lockFilePath);
@@ -277042,7 +277087,7 @@ async function withLock(versionPath, lockFilePath, callback) {
277042
277087
  }
277043
277088
  }
277044
277089
  function getAllLockInfo(locksDir) {
277045
- const fs2 = getFsImplementation();
277090
+ const fs2 = getFsImplementation2();
277046
277091
  const lockInfos = [];
277047
277092
  try {
277048
277093
  const lockFiles = fs2.readdirStringSync(locksDir).filter((f) => f.endsWith(".lock"));
@@ -277069,7 +277114,7 @@ function getAllLockInfo(locksDir) {
277069
277114
  return lockInfos;
277070
277115
  }
277071
277116
  function cleanupStaleLocks(locksDir) {
277072
- const fs2 = getFsImplementation();
277117
+ const fs2 = getFsImplementation2();
277073
277118
  let cleanedCount = 0;
277074
277119
  try {
277075
277120
  const lockEntries = fs2.readdirStringSync(locksDir).filter((f) => f.endsWith(".lock"));
@@ -279523,7 +279568,7 @@ function migrateDiscoveryCache(parsed) {
279523
279568
  };
279524
279569
  }
279525
279570
  async function loadDiscoveryCache() {
279526
- const fs2 = getFsImplementation();
279571
+ const fs2 = getFsImplementation2();
279527
279572
  const cachePath = getDiscoveryCachePath();
279528
279573
  try {
279529
279574
  const content = await fs2.readFile(cachePath, { encoding: "utf-8" });
@@ -279549,7 +279594,7 @@ async function loadDiscoveryCache() {
279549
279594
  }
279550
279595
  }
279551
279596
  async function saveDiscoveryCache(cache3) {
279552
- const fs2 = getFsImplementation();
279597
+ const fs2 = getFsImplementation2();
279553
279598
  const cachePath = getDiscoveryCachePath();
279554
279599
  const tempPath = `${cachePath}.${randomBytes7(8).toString("hex")}.tmp`;
279555
279600
  try {
@@ -286040,7 +286085,7 @@ var init_coreSchemas = __esm(() => {
286040
286085
  "unknown",
286041
286086
  "max_output_tokens"
286042
286087
  ]));
286043
- SDKStatusSchema = lazySchema(() => exports_external.union([exports_external.literal("compacting"), exports_external.null()]));
286088
+ SDKStatusSchema = lazySchema(() => exports_external.union([exports_external.literal("compacting"), exports_external.literal("warming-up"), exports_external.null()]));
286044
286089
  SDKUserMessageContentSchema = lazySchema(() => exports_external.object({
286045
286090
  type: exports_external.literal("user"),
286046
286091
  message: APIUserMessagePlaceholder(),
@@ -302935,7 +302980,7 @@ async function processSlashCommand(inputString, precedingInputBlocks, imageConte
302935
302980
  if (!hasCommand(commandName, context.options.commands)) {
302936
302981
  let isFilePath = false;
302937
302982
  try {
302938
- await getFsImplementation().stat(`/${commandName}`);
302983
+ await getFsImplementation2().stat(`/${commandName}`);
302939
302984
  isFilePath = true;
302940
302985
  } catch {}
302941
302986
  if (looksLikeCommand(commandName) && !isFilePath) {
@@ -306614,7 +306659,7 @@ function getPlanSlug(sessionId) {
306614
306659
  for (let i3 = 0;i3 < MAX_SLUG_RETRIES; i3++) {
306615
306660
  slug = generateWordSlug();
306616
306661
  const filePath = join67(plansDir, `${slug}.md`);
306617
- if (!getFsImplementation().existsSync(filePath)) {
306662
+ if (!getFsImplementation2().existsSync(filePath)) {
306618
306663
  break;
306619
306664
  }
306620
306665
  }
@@ -306638,7 +306683,7 @@ function getPlanFilePath(agentId) {
306638
306683
  function getPlan(agentId) {
306639
306684
  const filePath = getPlanFilePath(agentId);
306640
306685
  try {
306641
- return getFsImplementation().readFileSync(filePath, { encoding: "utf-8" });
306686
+ return getFsImplementation2().readFileSync(filePath, { encoding: "utf-8" });
306642
306687
  } catch (error42) {
306643
306688
  if (isENOENT(error42))
306644
306689
  return null;
@@ -306658,7 +306703,7 @@ async function copyPlanForResume(log, targetSessionId) {
306658
306703
  setPlanSlug(sessionId, slug);
306659
306704
  const planPath = join67(getPlansDirectory(), `${slug}.md`);
306660
306705
  try {
306661
- await getFsImplementation().readFile(planPath, { encoding: "utf-8" });
306706
+ await getFsImplementation2().readFile(planPath, { encoding: "utf-8" });
306662
306707
  return true;
306663
306708
  } catch (e) {
306664
306709
  if (!isENOENT(e)) {
@@ -306823,7 +306868,7 @@ var init_plans = __esm(() => {
306823
306868
  plansPath = getDefaultPlansDirectory();
306824
306869
  }
306825
306870
  try {
306826
- getFsImplementation().mkdirSync(plansPath);
306871
+ getFsImplementation2().mkdirSync(plansPath);
306827
306872
  } catch (error42) {
306828
306873
  logError2(error42);
306829
306874
  }
@@ -316176,7 +316221,7 @@ ${stdout}`);
316176
316221
  logForDebugging(`Shell snapshot created successfully (${snapshotSize} bytes)`);
316177
316222
  registerCleanup(async () => {
316178
316223
  try {
316179
- await getFsImplementation().unlink(shellSnapshotPath);
316224
+ await getFsImplementation2().unlink(shellSnapshotPath);
316180
316225
  logForDebugging(`Cleaned up session snapshot: ${shellSnapshotPath}`);
316181
316226
  } catch (error43) {
316182
316227
  logForDebugging(`Error cleaning up session snapshot: ${error43}`);
@@ -316187,7 +316232,7 @@ ${stdout}`);
316187
316232
  logForDebugging(`Shell snapshot file not found after creation: ${shellSnapshotPath}`);
316188
316233
  logForDebugging(`Checking if parent directory still exists: ${snapshotsDir}`);
316189
316234
  try {
316190
- const dirContents = await getFsImplementation().readdir(snapshotsDir);
316235
+ const dirContents = await getFsImplementation2().readdir(snapshotsDir);
316191
316236
  logForDebugging(`Directory contains ${dirContents.length} files`);
316192
316237
  } catch {
316193
316238
  logForDebugging(`Parent directory does not exist or is not accessible: ${snapshotsDir}`);
@@ -316842,7 +316887,7 @@ async function exec3(command, abortSignal, shellType, options2) {
316842
316887
  if (shouldUseSandbox) {
316843
316888
  commandString = await SandboxManager2.wrapWithSandbox(commandString, sandboxBinShell, undefined, abortSignal);
316844
316889
  try {
316845
- const fs3 = getFsImplementation();
316890
+ const fs3 = getFsImplementation2();
316846
316891
  await fs3.mkdir(sandboxTmpDir, { mode: 448 });
316847
316892
  } catch (error42) {
316848
316893
  logForDebugging(`Failed to create ${sandboxTmpDir} directory: ${error42}`);
@@ -316930,10 +316975,10 @@ async function exec3(command, abortSignal, shellType, options2) {
316930
316975
  }
316931
316976
  }
316932
316977
  function setCwd(path15, relativeTo) {
316933
- const resolved = isAbsolute14(path15) ? path15 : resolve24(relativeTo || getFsImplementation().cwd(), path15);
316978
+ const resolved = isAbsolute14(path15) ? path15 : resolve24(relativeTo || getFsImplementation2().cwd(), path15);
316934
316979
  let physicalPath;
316935
316980
  try {
316936
- physicalPath = getFsImplementation().realpathSync(resolved);
316981
+ physicalPath = getFsImplementation2().realpathSync(resolved);
316937
316982
  } catch (e) {
316938
316983
  if (isENOENT(e)) {
316939
316984
  throw new Error(`Path "${resolved}" does not exist`);
@@ -320249,7 +320294,7 @@ function checkDenyRuleForGuessedPath(strippedPath, cwd2, toolPermissionContext,
320249
320294
  return null;
320250
320295
  const tildeExpanded = expandTilde2(strippedPath);
320251
320296
  const abs = isAbsolute15(tildeExpanded) ? tildeExpanded : resolve26(cwd2, tildeExpanded);
320252
- const { resolvedPath } = safeResolvePath(getFsImplementation(), abs);
320297
+ const { resolvedPath } = safeResolvePath(getFsImplementation2(), abs);
320253
320298
  const permissionType = operationType === "read" ? "read" : "edit";
320254
320299
  const denyRule = matchingRuleForInput(resolvedPath, toolPermissionContext, permissionType, "deny");
320255
320300
  return denyRule ? { resolvedPath, rule: denyRule } : null;
@@ -320339,7 +320384,7 @@ function validatePath2(filePath, cwd2, toolPermissionContext, operationType) {
320339
320384
  }
320340
320385
  if (containsPathTraversal(normalizedPath)) {
320341
320386
  const absolutePath2 = isAbsolute15(normalizedPath) ? normalizedPath : resolve26(cwd2, normalizedPath);
320342
- const { resolvedPath: resolvedPath3, isCanonical: isCanonical2 } = safeResolvePath(getFsImplementation(), absolutePath2);
320387
+ const { resolvedPath: resolvedPath3, isCanonical: isCanonical2 } = safeResolvePath(getFsImplementation2(), absolutePath2);
320343
320388
  const result2 = isPathAllowed2(resolvedPath3, toolPermissionContext, operationType, isCanonical2 ? [resolvedPath3] : undefined);
320344
320389
  return {
320345
320390
  allowed: result2.allowed,
@@ -320349,7 +320394,7 @@ function validatePath2(filePath, cwd2, toolPermissionContext, operationType) {
320349
320394
  }
320350
320395
  const basePath = getGlobBaseDirectory2(normalizedPath);
320351
320396
  const absoluteBasePath = isAbsolute15(basePath) ? basePath : resolve26(cwd2, basePath);
320352
- const { resolvedPath: resolvedPath2 } = safeResolvePath(getFsImplementation(), absoluteBasePath);
320397
+ const { resolvedPath: resolvedPath2 } = safeResolvePath(getFsImplementation2(), absoluteBasePath);
320353
320398
  const permissionType = operationType === "read" ? "read" : "edit";
320354
320399
  const denyRule = matchingRuleForInput(resolvedPath2, toolPermissionContext, permissionType, "deny");
320355
320400
  if (denyRule !== null) {
@@ -320369,7 +320414,7 @@ function validatePath2(filePath, cwd2, toolPermissionContext, operationType) {
320369
320414
  };
320370
320415
  }
320371
320416
  const absolutePath = isAbsolute15(normalizedPath) ? normalizedPath : resolve26(cwd2, normalizedPath);
320372
- const { resolvedPath, isCanonical } = safeResolvePath(getFsImplementation(), absolutePath);
320417
+ const { resolvedPath, isCanonical } = safeResolvePath(getFsImplementation2(), absolutePath);
320373
320418
  const result = isPathAllowed2(resolvedPath, toolPermissionContext, operationType, isCanonical ? [resolvedPath] : undefined);
320374
320419
  return {
320375
320420
  allowed: result.allowed,
@@ -324354,7 +324399,7 @@ ${markdownContent}` : markdownContent;
324354
324399
  };
324355
324400
  }
324356
324401
  async function findSkillMarkdownFiles(basePath) {
324357
- const fs3 = getFsImplementation();
324402
+ const fs3 = getFsImplementation2();
324358
324403
  const visitedDirs = new Set;
324359
324404
  const skillFiles = [];
324360
324405
  async function walk(skillDirPath) {
@@ -324437,7 +324482,7 @@ async function findSkillMarkdownFiles(basePath) {
324437
324482
  return skillFiles;
324438
324483
  }
324439
324484
  async function loadSkillsFromSkillsDir(basePath, source) {
324440
- const fs3 = getFsImplementation();
324485
+ const fs3 = getFsImplementation2();
324441
324486
  const skillFiles = await findSkillMarkdownFiles(basePath);
324442
324487
  const results = await Promise.all(skillFiles.map(async (skillFilePath) => {
324443
324488
  try {
@@ -324590,7 +324635,7 @@ function onDynamicSkillsLoaded(callback) {
324590
324635
  });
324591
324636
  }
324592
324637
  async function discoverSkillDirsForPaths(filePaths, cwd2) {
324593
- const fs3 = getFsImplementation();
324638
+ const fs3 = getFsImplementation2();
324594
324639
  const resolvedCwd = cwd2.endsWith(pathSep) ? cwd2.slice(0, -1) : cwd2;
324595
324640
  const newDirs = [];
324596
324641
  for (const filePath of filePaths) {
@@ -329137,7 +329182,7 @@ var init_FileEditTool = __esm(() => {
329137
329182
  if (fullFilePath.startsWith("\\\\") || fullFilePath.startsWith("//")) {
329138
329183
  return { result: true };
329139
329184
  }
329140
- const fs3 = getFsImplementation();
329185
+ const fs3 = getFsImplementation2();
329141
329186
  try {
329142
329187
  const { size } = await fs3.stat(fullFilePath);
329143
329188
  if (size > MAX_EDIT_FILE_SIZE) {
@@ -329297,7 +329342,7 @@ String: ${old_string}`,
329297
329342
  dynamicSkillDirTriggers
329298
329343
  }, _, parentMessage) {
329299
329344
  const { file_path, old_string, new_string, replace_all = false } = input;
329300
- const fs3 = getFsImplementation();
329345
+ const fs3 = getFsImplementation2();
329301
329346
  const absoluteFilePath = expandPath(file_path);
329302
329347
  const cwd2 = getCwd();
329303
329348
  if (!isEnvTruthy(process.env.CLAUDE_CODE_SIMPLE)) {
@@ -329992,7 +330037,7 @@ var init_FileWriteTool = __esm(() => {
329992
330037
  if (fullFilePath.startsWith("\\\\") || fullFilePath.startsWith("//")) {
329993
330038
  return { result: true };
329994
330039
  }
329995
- const fs3 = getFsImplementation();
330040
+ const fs3 = getFsImplementation2();
329996
330041
  let fileMtimeMs;
329997
330042
  try {
329998
330043
  const fileStat = await fs3.stat(fullFilePath);
@@ -330034,7 +330079,7 @@ var init_FileWriteTool = __esm(() => {
330034
330079
  }
330035
330080
  activateConditionalSkillsForPaths([fullFilePath], cwd2);
330036
330081
  await diagnosticTracker.beforeFileEditedCompat(fullFilePath);
330037
- await getFsImplementation().mkdir(dir);
330082
+ await getFsImplementation2().mkdir(dir);
330038
330083
  if (fileHistoryEnabled()) {
330039
330084
  await fileHistoryTrackEdit(updateFileHistoryState, fullFilePath, parentMessage.uuid);
330040
330085
  }
@@ -330654,7 +330699,7 @@ var init_GrepTool = __esm(() => {
330654
330699
  },
330655
330700
  async validateInput({ path: path15 }) {
330656
330701
  if (path15) {
330657
- const fs3 = getFsImplementation();
330702
+ const fs3 = getFsImplementation2();
330658
330703
  const absolutePath = expandPath(path15);
330659
330704
  if (absolutePath.startsWith("\\\\") || absolutePath.startsWith("//")) {
330660
330705
  return { result: true };
@@ -330889,7 +330934,7 @@ ${filenames.join(`
330889
330934
  };
330890
330935
  return { data: output2 };
330891
330936
  }
330892
- const stats = await Promise.allSettled(results.map((_) => getFsImplementation().stat(_)));
330937
+ const stats = await Promise.allSettled(results.map((_) => getFsImplementation2().stat(_)));
330893
330938
  const sortedMatches = results.map((_, i3) => {
330894
330939
  const r = stats[i3];
330895
330940
  return [
@@ -331046,7 +331091,7 @@ var init_GlobTool = __esm(() => {
331046
331091
  },
331047
331092
  async validateInput({ path: path15 }) {
331048
331093
  if (path15) {
331049
- const fs3 = getFsImplementation();
331094
+ const fs3 = getFsImplementation2();
331050
331095
  const absolutePath = expandPath(path15);
331051
331096
  if (absolutePath.startsWith("\\\\") || absolutePath.startsWith("//")) {
331052
331097
  return { result: true };
@@ -331257,7 +331302,7 @@ function getToolResultFromCell(cell) {
331257
331302
  }
331258
331303
  async function readNotebook(notebookPath, cellId) {
331259
331304
  const fullPath = expandPath(notebookPath);
331260
- const buffer = await getFsImplementation().readFileBytes(fullPath);
331305
+ const buffer = await getFsImplementation2().readFileBytes(fullPath);
331261
331306
  const content = buffer.toString("utf-8");
331262
331307
  const notebook = jsonParse(content);
331263
331308
  const language = notebook.metadata.language_info?.name ?? "python";
@@ -364768,7 +364813,7 @@ var init_schemas4 = __esm(() => {
364768
364813
  // src/tools/LSPTool/symbolContext.ts
364769
364814
  function getSymbolAtPosition(filePath, line, character) {
364770
364815
  try {
364771
- const fs3 = getFsImplementation();
364816
+ const fs3 = getFsImplementation2();
364772
364817
  const absolutePath = expandPath(filePath);
364773
364818
  const { buffer, bytesRead } = fs3.readSync(absolutePath, {
364774
364819
  length: MAX_READ_BYTES
@@ -365450,7 +365495,7 @@ var init_LSPTool = __esm(() => {
365450
365495
  errorCode: 3
365451
365496
  };
365452
365497
  }
365453
- const fs3 = getFsImplementation();
365498
+ const fs3 = getFsImplementation2();
365454
365499
  const absolutePath = expandPath(input.filePath);
365455
365500
  if (absolutePath.startsWith("\\\\") || absolutePath.startsWith("//")) {
365456
365501
  return { result: true };
@@ -375318,7 +375363,7 @@ async function applySedEdit(simulatedEdit, toolUseContext, parentMessage) {
375318
375363
  newContent
375319
375364
  } = simulatedEdit;
375320
375365
  const absoluteFilePath = expandPath(filePath);
375321
- const fs3 = getFsImplementation();
375366
+ const fs3 = getFsImplementation2();
375322
375367
  const encoding = detectFileEncoding(absoluteFilePath);
375323
375368
  let originalContent;
375324
375369
  try {
@@ -382200,7 +382245,7 @@ function getAnthropicEnvMetadata() {
382200
382245
  function getBuildAgeMinutes() {
382201
382246
  if (false)
382202
382247
  ;
382203
- const buildTime = new Date("2026-05-18T14:17:30.701Z").getTime();
382248
+ const buildTime = new Date("2026-05-19T21:36:51.071Z").getTime();
382204
382249
  if (isNaN(buildTime))
382205
382250
  return;
382206
382251
  return Math.floor((Date.now() - buildTime) / 60000);
@@ -386343,7 +386388,7 @@ import { mkdir as mkdir26, readdir as readdir15, readFile as readFile29 } from "
386343
386388
  import { join as join86 } from "path";
386344
386389
  async function readPDF(filePath) {
386345
386390
  try {
386346
- const fs3 = getFsImplementation();
386391
+ const fs3 = getFsImplementation2();
386347
386392
  const stats = await fs3.stat(filePath);
386348
386393
  const originalSize = stats.size;
386349
386394
  if (originalSize === 0) {
@@ -386421,7 +386466,7 @@ async function isPdftoppmAvailable() {
386421
386466
  }
386422
386467
  async function extractPDFPages(filePath, options2) {
386423
386468
  try {
386424
- const fs3 = getFsImplementation();
386469
+ const fs3 = getFsImplementation2();
386425
386470
  const stats = await fs3.stat(filePath);
386426
386471
  const originalSize = stats.size;
386427
386472
  if (originalSize === 0) {
@@ -386900,7 +386945,7 @@ async function callInner(file_path, fullFilePath, resolvedFilePath, ext, offset,
386900
386945
  ` + ` cat "${file_path}" | jq '.cells[] | select(.cell_type=="code") | .source' # All code sources`);
386901
386946
  }
386902
386947
  await validateContentTokens(cellsJson, ext, maxTokens);
386903
- const stats = await getFsImplementation().stat(resolvedFilePath);
386948
+ const stats = await getFsImplementation2().stat(resolvedFilePath);
386904
386949
  readFileState.set(fullFilePath, {
386905
386950
  content: cellsJson,
386906
386951
  timestamp: Math.floor(stats.mtimeMs),
@@ -386986,7 +387031,7 @@ async function callInner(file_path, fullFilePath, resolvedFilePath, ext, offset,
386986
387031
  if (pageCount !== null && pageCount > PDF_AT_MENTION_INLINE_THRESHOLD) {
386987
387032
  throw new Error(`This PDF has ${pageCount} pages, which is too many to read at once. ` + `Use the pages parameter to read specific page ranges (e.g., pages: "1-5"). ` + `Maximum ${PDF_MAX_PAGES_PER_READ} pages per request.`);
386988
387033
  }
386989
- const fs3 = getFsImplementation();
387034
+ const fs3 = getFsImplementation2();
386990
387035
  const stats = await fs3.stat(resolvedFilePath);
386991
387036
  const shouldExtractPages = !isPDFSupported() || stats.size > PDF_EXTRACT_SIZE_THRESHOLD;
386992
387037
  if (shouldExtractPages) {
@@ -387089,7 +387134,7 @@ async function callInner(file_path, fullFilePath, resolvedFilePath, ext, offset,
387089
387134
  return { data };
387090
387135
  }
387091
387136
  async function readImageWithTokenBudget(filePath, maxTokens = getDefaultFileReadingLimits().maxTokens, maxBytes) {
387092
- const imageBuffer = await getFsImplementation().readFileBytes(filePath, maxBytes);
387137
+ const imageBuffer = await getFsImplementation2().readFileBytes(filePath, maxBytes);
387093
387138
  const originalSize = imageBuffer.length;
387094
387139
  if (originalSize === 0) {
387095
387140
  throw new Error(`Image file is empty: ${filePath}`);
@@ -389106,7 +389151,7 @@ async function tryGetPDFReference(filename) {
389106
389151
  }
389107
389152
  try {
389108
389153
  const [stats, pageCount] = await Promise.all([
389109
- getFsImplementation().stat(filename),
389154
+ getFsImplementation2().stat(filename),
389110
389155
  getPDFPageCount(filename)
389111
389156
  ]);
389112
389157
  const effectivePageCount = pageCount ?? Math.ceil(stats.size / (100 * 1024));
@@ -389137,7 +389182,7 @@ async function generateFileAttachment(filename, toolUseContext, successEventName
389137
389182
  const ext = parse13(filename).ext.toLowerCase();
389138
389183
  if (!isPDFExtension(ext)) {
389139
389184
  try {
389140
- const stats = await getFsImplementation().stat(filename);
389185
+ const stats = await getFsImplementation2().stat(filename);
389141
389186
  logEvent("tengu_attachment_file_too_large", {
389142
389187
  size_bytes: stats.size,
389143
389188
  mode
@@ -389758,7 +389803,7 @@ function getCommandNameFromFile(filePath, baseDir, pluginName) {
389758
389803
  }
389759
389804
  async function collectMarkdownFiles(dirPath, baseDir, loadedPaths) {
389760
389805
  const files = [];
389761
- const fs3 = getFsImplementation();
389806
+ const fs3 = getFsImplementation2();
389762
389807
  await walkPluginMarkdown(dirPath, async (fullPath) => {
389763
389808
  if (isDuplicatePath(fs3, fullPath, loadedPaths))
389764
389809
  return;
@@ -389923,7 +389968,7 @@ async function validatePluginSkillFilePath(pluginPath, skillFilePath) {
389923
389968
  return true;
389924
389969
  }
389925
389970
  async function loadSkillsFromDirectory(skillsPath, pluginName, sourceName, pluginManifest, pluginPath, loadedPaths) {
389926
- const fs3 = getFsImplementation();
389971
+ const fs3 = getFsImplementation2();
389927
389972
  const skills = [];
389928
389973
  const directSkillPath = join88(skillsPath, "SKILL.md");
389929
389974
  let directSkillContent = null;
@@ -390062,7 +390107,7 @@ var init_loadPluginCommands = __esm(() => {
390062
390107
  logForDebugging(`Plugin ${plugin.name} has commandsPaths: ${plugin.commandsPaths.join(", ")}`);
390063
390108
  const pathResults = await Promise.all(plugin.commandsPaths.map(async (commandPath) => {
390064
390109
  try {
390065
- const fs3 = getFsImplementation();
390110
+ const fs3 = getFsImplementation2();
390066
390111
  const stats = await fs3.stat(commandPath);
390067
390112
  logForDebugging(`Checking commandPath ${commandPath} - isDirectory: ${stats.isDirectory()}, isFile: ${stats.isFile()}`);
390068
390113
  if (stats.isDirectory()) {
@@ -390280,7 +390325,7 @@ async function getSessionPluginCachePath() {
390280
390325
  sessionPluginCachePromise = (async () => {
390281
390326
  const suffix = randomBytes10(8).toString("hex");
390282
390327
  const dir = join89(tmpdir6(), `claude-plugin-session-${suffix}`);
390283
- await getFsImplementation().mkdir(dir);
390328
+ await getFsImplementation2().mkdir(dir);
390284
390329
  sessionPluginCachePath = dir;
390285
390330
  logForDebugging(`Created session plugin cache at ${dir}`);
390286
390331
  return dir;
@@ -390304,7 +390349,7 @@ async function cleanupSessionPluginCache() {
390304
390349
  }
390305
390350
  async function atomicWriteToZipCache(targetPath, data) {
390306
390351
  const dir = dirname38(targetPath);
390307
- await getFsImplementation().mkdir(dir);
390352
+ await getFsImplementation2().mkdir(dir);
390308
390353
  const tmpName = `.${basename28(targetPath)}.tmp.${randomBytes10(4).toString("hex")}`;
390309
390354
  const tmpPath = join89(dir, tmpName);
390310
390355
  try {
@@ -390390,17 +390435,17 @@ async function collectFilesForZip(baseDir, relativePath, files, visited) {
390390
390435
  }
390391
390436
  }
390392
390437
  async function extractZipToDirectory(zipPath, targetDir) {
390393
- const zipBuf = await getFsImplementation().readFileBytes(zipPath);
390438
+ const zipBuf = await getFsImplementation2().readFileBytes(zipPath);
390394
390439
  const files = await unzipFile(zipBuf);
390395
390440
  const modes = parseZipModes(zipBuf);
390396
- await getFsImplementation().mkdir(targetDir);
390441
+ await getFsImplementation2().mkdir(targetDir);
390397
390442
  for (const [relPath, data] of Object.entries(files)) {
390398
390443
  if (relPath.endsWith("/")) {
390399
- await getFsImplementation().mkdir(join89(targetDir, relPath));
390444
+ await getFsImplementation2().mkdir(join89(targetDir, relPath));
390400
390445
  continue;
390401
390446
  }
390402
390447
  const fullPath = join89(targetDir, relPath);
390403
- await getFsImplementation().mkdir(dirname38(fullPath));
390448
+ await getFsImplementation2().mkdir(dirname38(fullPath));
390404
390449
  await writeFile25(fullPath, data);
390405
390450
  const mode = modes[relPath];
390406
390451
  if (mode && mode & 73) {
@@ -391067,7 +391112,7 @@ function saveMarketplaceToSettings(name, entry, settingSource = "userSettings")
391067
391112
  updateSettingsForSource(settingSource, { extraKnownMarketplaces: current });
391068
391113
  }
391069
391114
  async function loadKnownMarketplacesConfig() {
391070
- const fs3 = getFsImplementation();
391115
+ const fs3 = getFsImplementation2();
391071
391116
  const configFile = getKnownMarketplacesFile();
391072
391117
  try {
391073
391118
  const content = await fs3.readFile(configFile, {
@@ -391110,7 +391155,7 @@ async function saveKnownMarketplacesConfig(config2) {
391110
391155
  if (!parsed.success) {
391111
391156
  throw new ConfigParseError(`Invalid marketplace config: ${parsed.error.message}`, configFile, config2);
391112
391157
  }
391113
- const fs3 = getFsImplementation();
391158
+ const fs3 = getFsImplementation2();
391114
391159
  const dir = join92(configFile, "..");
391115
391160
  await fs3.mkdir(dir);
391116
391161
  writeFileSync_DEPRECATED(configFile, jsonStringify(parsed.data, null, 2), {
@@ -391160,7 +391205,7 @@ async function registerSeedMarketplaces() {
391160
391205
  async function readSeedKnownMarketplaces(seedDir) {
391161
391206
  const seedJsonPath = join92(seedDir, "known_marketplaces.json");
391162
391207
  try {
391163
- const content = await getFsImplementation().readFile(seedJsonPath, {
391208
+ const content = await getFsImplementation2().readFile(seedJsonPath, {
391164
391209
  encoding: "utf-8"
391165
391210
  });
391166
391211
  const parsed = KnownMarketplacesFileSchema().safeParse(jsonParse(content));
@@ -391231,7 +391276,7 @@ async function gitPull(cwd2, ref, options2) {
391231
391276
  async function gitSubmoduleUpdate(cwd2, credentialArgs, env4, sparsePaths) {
391232
391277
  if (sparsePaths && sparsePaths.length > 0)
391233
391278
  return;
391234
- const hasGitmodules = await getFsImplementation().stat(join92(cwd2, ".gitmodules")).then(() => true, () => false);
391279
+ const hasGitmodules = await getFsImplementation2().stat(join92(cwd2, ".gitmodules")).then(() => true, () => false);
391235
391280
  if (!hasGitmodules)
391236
391281
  return;
391237
391282
  const result = await execFileNoThrowWithCwd(gitExe(), [
@@ -391488,7 +391533,7 @@ async function reconcileSparseCheckout(cwd2, sparsePaths) {
391488
391533
  return { code: 0, stderr: "" };
391489
391534
  }
391490
391535
  async function cacheMarketplaceFromGit(gitUrl, cachePath, ref, sparsePaths, onProgress, options2) {
391491
- const fs3 = getFsImplementation();
391536
+ const fs3 = getFsImplementation2();
391492
391537
  const timeoutSec = Math.round(getPluginGitTimeoutMs() / 1000);
391493
391538
  safeCallProgress(onProgress, `Refreshing marketplace cache (timeout: ${timeoutSec}s)…`);
391494
391539
  const reconcileResult = await reconcileSparseCheckout(cachePath, sparsePaths);
@@ -391550,7 +391595,7 @@ function redactUrlCredentials(urlString) {
391550
391595
  return urlString;
391551
391596
  }
391552
391597
  async function cacheMarketplaceFromUrl(url3, cachePath, customHeaders, onProgress) {
391553
- const fs3 = getFsImplementation();
391598
+ const fs3 = getFsImplementation2();
391554
391599
  const redactedUrl = redactUrlCredentials(url3);
391555
391600
  safeCallProgress(onProgress, `Downloading marketplace from ${redactedUrl}`);
391556
391601
  logForDebugging(`Downloading marketplace from URL: ${redactedUrl}`);
@@ -391609,7 +391654,7 @@ function getCachePathForSource(source) {
391609
391654
  return tempName;
391610
391655
  }
391611
391656
  async function parseFileWithSchema(filePath, schema) {
391612
- const fs3 = getFsImplementation();
391657
+ const fs3 = getFsImplementation2();
391613
391658
  const content = await fs3.readFile(filePath, { encoding: "utf-8" });
391614
391659
  let data;
391615
391660
  try {
@@ -391624,7 +391669,7 @@ async function parseFileWithSchema(filePath, schema) {
391624
391669
  return result.data;
391625
391670
  }
391626
391671
  async function loadAndCacheMarketplace(source, onProgress) {
391627
- const fs3 = getFsImplementation();
391672
+ const fs3 = getFsImplementation2();
391628
391673
  const cacheDir = getMarketplacesCacheDir();
391629
391674
  await fs3.mkdir(cacheDir);
391630
391675
  let temporaryCachePath;
@@ -391831,7 +391876,7 @@ Tip: The shorthand "${resolvedSource.repo}" assumes github.com. ` + `For interna
391831
391876
  const resolvedOld = resolve32(oldEntry.installLocation);
391832
391877
  const resolvedNew = resolve32(cachePath);
391833
391878
  if (resolvedOld === resolvedNew) {} else if (resolvedOld === cacheDir || resolvedOld.startsWith(cacheDir + sep23)) {
391834
- const fs3 = getFsImplementation();
391879
+ const fs3 = getFsImplementation2();
391835
391880
  await fs3.rm(oldEntry.installLocation, { recursive: true, force: true });
391836
391881
  } else {
391837
391882
  logForDebugging(`Skipping cleanup of old installLocation (${oldEntry.installLocation}) — ` + `outside ${cacheDir}. The path is corrupted; leaving it alone and ` + `overwriting the config entry.`, { level: "warn" });
@@ -391859,7 +391904,7 @@ async function removeMarketplaceSource(name) {
391859
391904
  }
391860
391905
  delete config2[name];
391861
391906
  await saveKnownMarketplacesConfig(config2);
391862
- const fs3 = getFsImplementation();
391907
+ const fs3 = getFsImplementation2();
391863
391908
  const cacheDir = getMarketplacesCacheDir();
391864
391909
  const cachePath = join92(cacheDir, name);
391865
391910
  await fs3.rm(cachePath, { recursive: true, force: true });
@@ -391927,7 +391972,7 @@ async function readCachedMarketplace(installLocation) {
391927
391972
  return await parseFileWithSchema(installLocation, PluginMarketplaceSchema());
391928
391973
  }
391929
391974
  async function getMarketplaceCacheOnly(name) {
391930
- const fs3 = getFsImplementation();
391975
+ const fs3 = getFsImplementation2();
391931
391976
  const configFile = getKnownMarketplacesFile();
391932
391977
  try {
391933
391978
  const content = await fs3.readFile(configFile, { encoding: "utf-8" });
@@ -391950,7 +391995,7 @@ async function getPluginByIdCacheOnly(pluginId) {
391950
391995
  if (!pluginName || !marketplaceName) {
391951
391996
  return null;
391952
391997
  }
391953
- const fs3 = getFsImplementation();
391998
+ const fs3 = getFsImplementation2();
391954
391999
  const configFile = getKnownMarketplacesFile();
391955
392000
  try {
391956
392001
  const content = await fs3.readFile(configFile, { encoding: "utf-8" });
@@ -392221,7 +392266,7 @@ function migrateToSinglePluginFile() {
392221
392266
  if (migrationCompleted) {
392222
392267
  return;
392223
392268
  }
392224
- const fs3 = getFsImplementation();
392269
+ const fs3 = getFsImplementation2();
392225
392270
  const mainFilePath = getInstalledPluginsFilePath();
392226
392271
  const v2FilePath = getInstalledPluginsV2FilePath();
392227
392272
  try {
@@ -392268,7 +392313,7 @@ function migrateToSinglePluginFile() {
392268
392313
  }
392269
392314
  }
392270
392315
  function cleanupLegacyCache(v2Data) {
392271
- const fs3 = getFsImplementation();
392316
+ const fs3 = getFsImplementation2();
392272
392317
  const cachePath = getPluginCachePath();
392273
392318
  try {
392274
392319
  const referencedPaths = new Set;
@@ -392308,7 +392353,7 @@ function cleanupLegacyCache(v2Data) {
392308
392353
  }
392309
392354
  }
392310
392355
  function readInstalledPluginsFileRaw() {
392311
- const fs3 = getFsImplementation();
392356
+ const fs3 = getFsImplementation2();
392312
392357
  const filePath = getInstalledPluginsFilePath();
392313
392358
  let fileContent;
392314
392359
  try {
@@ -392372,7 +392417,7 @@ function loadInstalledPluginsV2() {
392372
392417
  }
392373
392418
  }
392374
392419
  function saveInstalledPluginsV2(data) {
392375
- const fs3 = getFsImplementation();
392420
+ const fs3 = getFsImplementation2();
392376
392421
  const filePath = getInstalledPluginsFilePath();
392377
392422
  try {
392378
392423
  fs3.mkdirSync(getPluginsDirectory());
@@ -392542,7 +392587,7 @@ async function getGitCommitSha(dirPath) {
392542
392587
  return sha ?? undefined;
392543
392588
  }
392544
392589
  function getPluginVersionFromManifest(pluginCachePath, pluginId) {
392545
- const fs3 = getFsImplementation();
392590
+ const fs3 = getFsImplementation2();
392546
392591
  const manifestPath = join93(pluginCachePath, ".claude-plugin", "plugin.json");
392547
392592
  try {
392548
392593
  const manifestContent = fs3.readFileSync(manifestPath, { encoding: "utf-8" });
@@ -392646,7 +392691,7 @@ async function migrateFromEnabledPlugins() {
392646
392691
  const pluginCachePath = join93(cachePath, sanitizedName);
392647
392692
  let dirEntries;
392648
392693
  try {
392649
- dirEntries = (await getFsImplementation().readdir(pluginCachePath)).map((e2) => typeof e2 === "string" ? e2 : e2.name);
392694
+ dirEntries = (await getFsImplementation2().readdir(pluginCachePath)).map((e2) => typeof e2 === "string" ? e2 : e2.name);
392650
392695
  } catch (e2) {
392651
392696
  if (!isENOENT(e2))
392652
392697
  throw e2;
@@ -392800,14 +392845,14 @@ async function cacheAndRegisterPlugin(pluginId, entry, scope = "user", projectPa
392800
392845
  const versionedPath = getVersionedCachePath(pluginId, version2);
392801
392846
  let finalPath = cacheResult.path;
392802
392847
  if (cacheResult.path !== versionedPath) {
392803
- await getFsImplementation().mkdir(dirname42(versionedPath));
392848
+ await getFsImplementation2().mkdir(dirname42(versionedPath));
392804
392849
  await rm8(versionedPath, { recursive: true, force: true });
392805
392850
  const normalizedCachePath = cacheResult.path.endsWith(sep24) ? cacheResult.path : cacheResult.path + sep24;
392806
392851
  const isSubdirectory = versionedPath.startsWith(normalizedCachePath);
392807
392852
  if (isSubdirectory) {
392808
392853
  const tempPath = join94(dirname42(cacheResult.path), `.claude-plugin-temp-${Date.now()}-${randomBytes11(4).toString("hex")}`);
392809
392854
  await rename5(cacheResult.path, tempPath);
392810
- await getFsImplementation().mkdir(dirname42(versionedPath));
392855
+ await getFsImplementation2().mkdir(dirname42(versionedPath));
392811
392856
  await rename5(tempPath, versionedPath);
392812
392857
  } else {
392813
392858
  await rename5(cacheResult.path, versionedPath);
@@ -393124,7 +393169,7 @@ async function resolvePluginPath(pluginId, version2) {
393124
393169
  return version2 ? getVersionedCachePath(pluginId, version2) : legacyPath;
393125
393170
  }
393126
393171
  async function copyDir(src, dest) {
393127
- await getFsImplementation().mkdir(dest);
393172
+ await getFsImplementation2().mkdir(dest);
393128
393173
  const entries = await readdir20(src, { withFileTypes: true });
393129
393174
  for (const entry of entries) {
393130
393175
  const srcPath = join95(src, entry.name);
@@ -393183,7 +393228,7 @@ async function copyPluginToVersionedCache(sourcePath, pluginId, version2, entry,
393183
393228
  logForDebugging(`Using seed cache for ${pluginId}@${version2} at ${seedPath}`);
393184
393229
  return seedPath;
393185
393230
  }
393186
- await getFsImplementation().mkdir(dirname43(cachePath));
393231
+ await getFsImplementation2().mkdir(dirname43(cachePath));
393187
393232
  if (entry && typeof entry.source === "string" && marketplaceDir) {
393188
393233
  const sourceDir = validatePathWithinBase(marketplaceDir, entry.source);
393189
393234
  logForDebugging(`Copying source directory ${entry.source} for plugin ${pluginId}`);
@@ -393231,7 +393276,7 @@ function validateGitUrl(url3) {
393231
393276
  }
393232
393277
  async function installFromNpm(packageName, targetPath, options2 = {}) {
393233
393278
  const npmCachePath = join95(getPluginsDirectory(), "npm-cache");
393234
- await getFsImplementation().mkdir(npmCachePath);
393279
+ await getFsImplementation2().mkdir(npmCachePath);
393235
393280
  const packageSpec = options2.version ? `${packageName}@${options2.version}` : packageName;
393236
393281
  const packagePath = join95(npmCachePath, "node_modules", packageName);
393237
393282
  const needsInstall = !await pathExists(packagePath);
@@ -393426,7 +393471,7 @@ function generateTemporaryCacheNameForPlugin(source) {
393426
393471
  }
393427
393472
  async function cachePlugin(source, options2) {
393428
393473
  const cachePath = getPluginCachePath();
393429
- await getFsImplementation().mkdir(cachePath);
393474
+ await getFsImplementation2().mkdir(cachePath);
393430
393475
  const tempName = generateTemporaryCacheNameForPlugin(source);
393431
393476
  const tempPath = join95(cachePath, tempName);
393432
393477
  let shouldCleanup = false;
@@ -394815,7 +394860,7 @@ async function loadOutputStylesFromDirectory(outputStylesPath, pluginName, loade
394815
394860
  return styles5;
394816
394861
  }
394817
394862
  async function loadOutputStyleFromFile(filePath, pluginName, loadedPaths) {
394818
- const fs3 = getFsImplementation();
394863
+ const fs3 = getFsImplementation2();
394819
394864
  if (isDuplicatePath(fs3, filePath, loadedPaths)) {
394820
394865
  return null;
394821
394866
  }
@@ -394876,7 +394921,7 @@ var init_loadPluginOutputStyles = __esm(() => {
394876
394921
  if (plugin.outputStylesPaths) {
394877
394922
  for (const stylePath of plugin.outputStylesPaths) {
394878
394923
  try {
394879
- const fs3 = getFsImplementation();
394924
+ const fs3 = getFsImplementation2();
394880
394925
  const stats = await fs3.stat(stylePath);
394881
394926
  if (stats.isDirectory()) {
394882
394927
  const styles5 = await loadOutputStylesFromDirectory(stylePath, plugin.name, loadedPaths);
@@ -395898,7 +395943,7 @@ function stripCallerFieldFromAssistantMessage(message) {
395898
395943
  id: block2.id,
395899
395944
  name: block2.name,
395900
395945
  input: block2.input,
395901
- ...getAPIProvider() === "gemini" && block2.extra_content ? { extra_content: block2.extra_content } : {}
395946
+ ...block2.extra_content ? { extra_content: block2.extra_content } : {}
395902
395947
  };
395903
395948
  })
395904
395949
  }
@@ -396175,7 +396220,7 @@ function normalizeMessagesForAPI(messages, tools = []) {
396175
396220
  ...restBlock,
396176
396221
  name: canonicalName,
396177
396222
  input: normalizedInput,
396178
- ...getAPIProvider() === "gemini" && extra_content ? { extra_content } : {}
396223
+ ...extra_content ? { extra_content } : {}
396179
396224
  };
396180
396225
  }
396181
396226
  return {
@@ -396183,7 +396228,7 @@ function normalizeMessagesForAPI(messages, tools = []) {
396183
396228
  id: block2.id,
396184
396229
  name: canonicalName,
396185
396230
  input: normalizedInput,
396186
- ...getAPIProvider() === "gemini" && block2.extra_content ? { extra_content: block2.extra_content } : {}
396231
+ ...block2.extra_content ? { extra_content: block2.extra_content } : {}
396187
396232
  };
396188
396233
  }
396189
396234
  return block2;
@@ -398322,7 +398367,6 @@ Goal: Write your final plan to the plan file (the only file you can edit).
398322
398367
  - End with the single verification command
398323
398368
  - **Hard limit: 40 lines.** If the plan is longer, delete prose — not file paths.`;
398324
398369
  var init_messages3 = __esm(() => {
398325
- init_providers();
398326
398370
  init_isObject();
398327
398371
  init_last();
398328
398372
  init_prompt2();
@@ -401229,7 +401273,7 @@ function isSymlinkTo({
401229
401273
  processPwd,
401230
401274
  originalCwd
401231
401275
  }) {
401232
- const { resolvedPath: resolvedProcessPwd, isSymlink: isProcessPwdSymlink } = safeResolvePath(getFsImplementation(), processPwd);
401276
+ const { resolvedPath: resolvedProcessPwd, isSymlink: isProcessPwdSymlink } = safeResolvePath(getFsImplementation2(), processPwd);
401233
401277
  return isProcessPwdSymlink ? resolvedProcessPwd === resolve35(originalCwd) : false;
401234
401278
  }
401235
401279
  function initialPermissionModeFromCLI({
@@ -402153,7 +402197,7 @@ function detectModeEntry(args) {
402153
402197
 
402154
402198
  // src/projectOnboardingSteps.ts
402155
402199
  function getSteps() {
402156
- const hasRepoInstructions = findProjectInstructionFilePathInAncestors(getCwd(), getFsImplementation().existsSync) !== null;
402200
+ const hasRepoInstructions = findProjectInstructionFilePathInAncestors(getCwd(), getFsImplementation2().existsSync) !== null;
402157
402201
  const isWorkspaceDirEmpty = isDirEmpty(getCwd());
402158
402202
  return [
402159
402203
  {
@@ -405304,7 +405348,7 @@ async function scanDirectory(dirPath) {
405304
405348
  return cached3;
405305
405349
  }
405306
405350
  try {
405307
- const fs3 = getFsImplementation();
405351
+ const fs3 = getFsImplementation2();
405308
405352
  const entries = await fs3.readdir(dirPath);
405309
405353
  const directories = entries.filter((entry) => entry.isDirectory() && !entry.name.startsWith(".")).map((entry) => ({
405310
405354
  name: entry.name,
@@ -405341,7 +405385,7 @@ async function scanDirectoryForPaths(dirPath, includeHidden = false) {
405341
405385
  return cached3;
405342
405386
  }
405343
405387
  try {
405344
- const fs3 = getFsImplementation();
405388
+ const fs3 = getFsImplementation2();
405345
405389
  const entries = await fs3.readdir(dirPath);
405346
405390
  const paths2 = entries.filter((entry) => includeHidden || !entry.name.startsWith(".")).map((entry) => ({
405347
405391
  name: entry.name,
@@ -407661,7 +407705,7 @@ async function loadRipgrepIgnorePatterns(repoRoot, cwd2) {
407661
407705
  if (ignorePatternsCacheKey === cacheKey) {
407662
407706
  return ignorePatternsCache;
407663
407707
  }
407664
- const fs3 = getFsImplementation();
407708
+ const fs3 = getFsImplementation2();
407665
407709
  const ignoreFiles = [".ignore", ".rgignore"];
407666
407710
  const directories = [...new Set([repoRoot, cwd2])];
407667
407711
  const ig = import_ignore3.default();
@@ -407932,7 +407976,7 @@ function startBackgroundCacheRefresh() {
407932
407976
  });
407933
407977
  }
407934
407978
  async function getTopLevelPaths() {
407935
- const fs3 = getFsImplementation();
407979
+ const fs3 = getFsImplementation2();
407936
407980
  const cwd2 = getCwd();
407937
407981
  try {
407938
407982
  const entries = await fs3.readdir(cwd2);
@@ -408077,7 +408121,7 @@ Use the Edit tool with file_path: {{docPath}}
408077
408121
  REMEMBER: Only update if there is substantial new information. The Magic Doc header (# MAGIC DOC: {{docTitle}}) must remain unchanged.`;
408078
408122
  }
408079
408123
  async function loadMagicDocsPrompt() {
408080
- const fs3 = getFsImplementation();
408124
+ const fs3 = getFsImplementation2();
408081
408125
  const promptPath = join103(getClaudeConfigHomeDir(), "magic-docs", "prompt.md");
408082
408126
  try {
408083
408127
  return await fs3.readFile(promptPath, { encoding: "utf-8" });
@@ -410431,7 +410475,7 @@ function buildPrimarySection() {
410431
410475
  });
410432
410476
  return [{
410433
410477
  label: "Version",
410434
- value: "0.9.3"
410478
+ value: "0.9.5"
410435
410479
  }, {
410436
410480
  label: "Session name",
410437
410481
  value: nameValue
@@ -421937,7 +421981,7 @@ function removePathWithRetry(path18, options2) {
421937
421981
  }
421938
421982
  }
421939
421983
  function getProviders() {
421940
- const cwd2 = getFsImplementation().cwd();
421984
+ const cwd2 = getFsImplementation2().cwd();
421941
421985
  const projectDir = join109(getProjectsDir(), sanitizePath2(cwd2));
421942
421986
  let providers = providerCache.get(projectDir);
421943
421987
  if (!providers) {
@@ -422099,7 +422143,7 @@ function loadProjectGraph(cwd2) {
422099
422143
  return projectGraph;
422100
422144
  }
422101
422145
  function getGlobalGraph() {
422102
- const cwd2 = getFsImplementation().cwd();
422146
+ const cwd2 = getFsImplementation2().cwd();
422103
422147
  if (!projectGraph || Object.keys(projectGraph.entities).length === 0 && projectGraph.summaries.length === 0) {
422104
422148
  return loadProjectGraph(cwd2);
422105
422149
  }
@@ -422136,7 +422180,7 @@ async function getOrchestratedMemory(query2) {
422136
422180
  if (queryWords.length === 0) {
422137
422181
  return getGlobalGraphSummary();
422138
422182
  }
422139
- await initOrama(getFsImplementation().cwd());
422183
+ await initOrama(getFsImplementation2().cwd());
422140
422184
  if (oramaDb) {
422141
422185
  try {
422142
422186
  const results = await search2(oramaDb, { term: query2, limit: 20 });
@@ -422276,7 +422320,7 @@ Project Rules:
422276
422320
  return summary;
422277
422321
  }
422278
422322
  function resetGlobalGraph() {
422279
- const cwd2 = getFsImplementation().cwd();
422323
+ const cwd2 = getFsImplementation2().cwd();
422280
422324
  const { sqlite, json: json2 } = getProviders();
422281
422325
  const emptyGraph = {
422282
422326
  entities: {},
@@ -423098,7 +423142,7 @@ function isGuiEditor(editor) {
423098
423142
  return classifyGuiEditor(editor) !== undefined;
423099
423143
  }
423100
423144
  function editFileInEditor(filePath) {
423101
- const fs3 = getFsImplementation();
423145
+ const fs3 = getFsImplementation2();
423102
423146
  const inkInstance = instances_default.get(process.stdout);
423103
423147
  if (!inkInstance) {
423104
423148
  throw new Error("Ink instance not found - cannot pause rendering");
@@ -423164,7 +423208,7 @@ function recollapsePastedContent(editedPrompt, originalPrompt, pastedContents) {
423164
423208
  return collapsed;
423165
423209
  }
423166
423210
  function editPromptInEditor(currentPrompt, pastedContents) {
423167
- const fs3 = getFsImplementation();
423211
+ const fs3 = getFsImplementation2();
423168
423212
  const tempFile = generateTempFilePath();
423169
423213
  try {
423170
423214
  const expandedPrompt = pastedContents ? expandPastedTextRefs(currentPrompt, pastedContents) : currentPrompt;
@@ -423358,7 +423402,7 @@ function getReleaseTagUrl(version2 = publicBuildVersion) {
423358
423402
  return `${VERBOO_RELEASES_URL}/tag/v${normalizePublicVersion(version2)}`;
423359
423403
  }
423360
423404
  function getPublicBuildVersion() {
423361
- return "0.9.3";
423405
+ return "0.9.5";
423362
423406
  }
423363
423407
  var import_semver9, VERBOO_RELEASES_URL = "https://github.com/verbeux-ai/code/releases", fallbackBuildVersion, publicBuildVersion;
423364
423408
  var init_version = __esm(() => {
@@ -426470,7 +426514,7 @@ async function performPluginUpdate({
426470
426514
  scope,
426471
426515
  projectPath
426472
426516
  }) {
426473
- const fs3 = getFsImplementation();
426517
+ const fs3 = getFsImplementation2();
426474
426518
  const oldVersion = installation.version;
426475
426519
  let sourcePath;
426476
426520
  let newVersion;
@@ -435868,7 +435912,7 @@ import { homedir as homedir28 } from "os";
435868
435912
  import { resolve as resolve38 } from "path";
435869
435913
  async function parseMarketplaceInput(input) {
435870
435914
  const trimmed = input.trim();
435871
- const fs3 = getFsImplementation();
435915
+ const fs3 = getFsImplementation2();
435872
435916
  const sshMatch = trimmed.match(/^([a-zA-Z0-9._-]+@[^:]+:.+?(?:\.git)?)(#(.+))?$/);
435873
435917
  if (sshMatch?.[1]) {
435874
435918
  const url3 = sshMatch[1];
@@ -436206,7 +436250,7 @@ async function saveInstallCountsCache(cache4) {
436206
436250
  const tempPath = `${cachePath}.${randomBytes14(8).toString("hex")}.tmp`;
436207
436251
  try {
436208
436252
  const pluginsDir = getPluginsDirectory();
436209
- await getFsImplementation().mkdir(pluginsDir);
436253
+ await getFsImplementation2().mkdir(pluginsDir);
436210
436254
  const content = jsonStringify(cache4, null, 2);
436211
436255
  await writeFile35(tempPath, content, {
436212
436256
  encoding: "utf-8",
@@ -440077,7 +440121,7 @@ async function writeToDisk(plugins) {
440077
440121
  const filePath = getFlaggedPluginsPath();
440078
440122
  const tempPath = `${filePath}.${randomBytes15(8).toString("hex")}.tmp`;
440079
440123
  try {
440080
- await getFsImplementation().mkdir(getPluginsDirectory());
440124
+ await getFsImplementation2().mkdir(getPluginsDirectory());
440081
440125
  const content = jsonStringify({ plugins }, null, 2);
440082
440126
  await writeFile36(tempPath, content, {
440083
440127
  encoding: "utf-8",
@@ -478135,7 +478179,7 @@ async function performHeapDump(trigger = "manual", dumpNumber = 0) {
478135
478179
  rss: ${toGB(diagnostics.memoryUsage.rss)} GB (total process)
478136
478180
  ${diagnostics.analysis.recommendation}`);
478137
478181
  const dumpDir = getDesktopPath();
478138
- await getFsImplementation().mkdir(dumpDir);
478182
+ await getFsImplementation2().mkdir(dumpDir);
478139
478183
  const suffix = dumpNumber > 0 ? `-dump${dumpNumber}` : "";
478140
478184
  const heapFilename = `${sessionId}${suffix}.heapsnapshot`;
478141
478185
  const diagFilename = `${sessionId}${suffix}-diagnostics.json`;
@@ -478706,7 +478750,7 @@ var init_bridge_kick = __esm(() => {
478706
478750
  var call63 = async () => {
478707
478751
  return {
478708
478752
  type: "text",
478709
- value: `${"99.0.0"} (built ${"2026-05-18T14:17:30.701Z"})`
478753
+ value: `${"99.0.0"} (built ${"2026-05-19T21:36:51.071Z"})`
478710
478754
  };
478711
478755
  }, version2, version_default;
478712
478756
  var init_version2 = __esm(() => {
@@ -484633,7 +484677,7 @@ function migrateStatsCache(parsed) {
484633
484677
  };
484634
484678
  }
484635
484679
  async function loadStatsCache() {
484636
- const fs4 = getFsImplementation();
484680
+ const fs4 = getFsImplementation2();
484637
484681
  const cachePath = getStatsCachePath();
484638
484682
  try {
484639
484683
  const content = await fs4.readFile(cachePath, { encoding: "utf-8" });
@@ -484667,7 +484711,7 @@ async function loadStatsCache() {
484667
484711
  }
484668
484712
  }
484669
484713
  async function saveStatsCache(cache5) {
484670
- const fs4 = getFsImplementation();
484714
+ const fs4 = getFsImplementation2();
484671
484715
  const cachePath = getStatsCachePath();
484672
484716
  const tempPath = `${cachePath}.${randomBytes16(8).toString("hex")}.tmp`;
484673
484717
  try {
@@ -485354,7 +485398,7 @@ import { open as open16 } from "fs/promises";
485354
485398
  import { basename as basename44, dirname as dirname55, join as join135, sep as sep31 } from "path";
485355
485399
  async function processSessionFiles(sessionFiles, options2 = {}) {
485356
485400
  const { fromDate, toDate } = options2;
485357
- const fs4 = getFsImplementation();
485401
+ const fs4 = getFsImplementation2();
485358
485402
  const dailyActivityMap = new Map;
485359
485403
  const dailyModelTokensMap = new Map;
485360
485404
  const sessions = [];
@@ -485529,7 +485573,7 @@ async function processSessionFiles(sessionFiles, options2 = {}) {
485529
485573
  }
485530
485574
  async function getAllSessionFiles() {
485531
485575
  const projectsDir = getProjectsDir();
485532
- const fs4 = getFsImplementation();
485576
+ const fs4 = getFsImplementation2();
485533
485577
  let allEntries;
485534
485578
  try {
485535
485579
  allEntries = await fs4.readdir(projectsDir);
@@ -490422,7 +490466,7 @@ async function listRemoteAgentMetadata() {
490422
490466
  function sessionIdExists(sessionId) {
490423
490467
  const projectDir = getProjectDir3(getOriginalCwd());
490424
490468
  const sessionFile = join137(projectDir, `${sessionId}.jsonl`);
490425
- const fs4 = getFsImplementation();
490469
+ const fs4 = getFsImplementation2();
490426
490470
  try {
490427
490471
  fs4.statSync(sessionFile);
490428
490472
  return true;
@@ -491902,7 +491946,7 @@ async function fetchLogs(limit) {
491902
491946
  return logs;
491903
491947
  }
491904
491948
  function appendEntryToFile(fullPath, entry) {
491905
- const fs4 = getFsImplementation();
491949
+ const fs4 = getFsImplementation2();
491906
491950
  const line = jsonStringify(entry) + `
491907
491951
  `;
491908
491952
  try {
@@ -493493,7 +493537,7 @@ function truncateEntrypointContent(raw) {
493493
493537
  };
493494
493538
  }
493495
493539
  async function ensureMemoryDirExists(memoryDir) {
493496
- const fs4 = getFsImplementation();
493540
+ const fs4 = getFsImplementation2();
493497
493541
  try {
493498
493542
  await fs4.mkdir(memoryDir);
493499
493543
  } catch (e2) {
@@ -493502,7 +493546,7 @@ async function ensureMemoryDirExists(memoryDir) {
493502
493546
  }
493503
493547
  }
493504
493548
  function logMemoryDirCounts(memoryDir, baseMetadata) {
493505
- const fs4 = getFsImplementation();
493549
+ const fs4 = getFsImplementation2();
493506
493550
  fs4.readdir(memoryDir).then((dirents) => {
493507
493551
  let fileCount = 0;
493508
493552
  let subdirCount = 0;
@@ -493582,7 +493626,7 @@ function buildMemoryLines(displayName, memoryDir, extraGuidelines, skipIndex = f
493582
493626
  }
493583
493627
  function buildMemoryPrompt(params) {
493584
493628
  const { displayName, memoryDir, extraGuidelines } = params;
493585
- const fs4 = getFsImplementation();
493629
+ const fs4 = getFsImplementation2();
493586
493630
  const entrypoint = memoryDir + ENTRYPOINT_NAME;
493587
493631
  let entrypointContent = "";
493588
493632
  try {
@@ -493890,7 +493934,7 @@ async function ensureScratchpadDir() {
493890
493934
  if (!isScratchpadEnabled()) {
493891
493935
  throw new Error("Scratchpad directory feature is not enabled");
493892
493936
  }
493893
- const fs4 = getFsImplementation();
493937
+ const fs4 = getFsImplementation2();
493894
493938
  const scratchpadDir = getScratchpadDir();
493895
493939
  await fs4.mkdir(scratchpadDir, { mode: 448 });
493896
493940
  return scratchpadDir;
@@ -494639,7 +494683,7 @@ var init_filesystem = __esm(() => {
494639
494683
  DIR_SEP = posix8.sep;
494640
494684
  getClaudeTempDir = memoize_default(function getClaudeTempDir2() {
494641
494685
  const baseTmpDir = process.env.CLAUDE_CODE_TMPDIR || (getPlatform() === "windows" ? tmpdir9() : "/tmp");
494642
- const fs4 = getFsImplementation();
494686
+ const fs4 = getFsImplementation2();
494643
494687
  let resolvedBaseTmpDir = baseTmpDir;
494644
494688
  try {
494645
494689
  resolvedBaseTmpDir = fs4.realpathSync(baseTmpDir);
@@ -502759,12 +502803,14 @@ ${deferredToolList}
502759
502803
  }
502760
502804
  case "content_block_start":
502761
502805
  switch (part.content_block.type) {
502762
- case "tool_use":
502806
+ case "tool_use": {
502807
+ const existing = contentBlocks[part.index];
502763
502808
  contentBlocks[part.index] = {
502764
502809
  ...part.content_block,
502765
- input: ""
502810
+ input: existing ? existing.input : ""
502766
502811
  };
502767
502812
  break;
502813
+ }
502768
502814
  case "server_tool_use":
502769
502815
  contentBlocks[part.index] = {
502770
502816
  ...part.content_block,
@@ -505252,12 +505298,15 @@ async function* ask({
505252
505298
  orphanedPermission,
505253
505299
  ...{}
505254
505300
  });
505301
+ const { setOpenAIShimRouterStatusHandler: setOpenAIShimRouterStatusHandler2 } = await Promise.resolve().then(() => (init_openaiShim(), exports_openaiShim));
505302
+ setOpenAIShimRouterStatusHandler2(setSDKStatus ? (s) => setSDKStatus(s) : null);
505255
505303
  try {
505256
505304
  yield* engine.submitMessage(prompt, {
505257
505305
  uuid: promptUuid,
505258
505306
  isMeta
505259
505307
  });
505260
505308
  } finally {
505309
+ setOpenAIShimRouterStatusHandler2(null);
505261
505310
  setReadFileCache(engine.getReadFileState());
505262
505311
  }
505263
505312
  }
@@ -508489,7 +508538,7 @@ function hasManagedSettingsFile() {
508489
508538
  } catch {}
508490
508539
  try {
508491
508540
  const dropInDir = getManagedSettingsDropInDir();
508492
- const entries = getFsImplementation().readdirSync(dropInDir);
508541
+ const entries = getFsImplementation2().readdirSync(dropInDir);
508493
508542
  for (const d of entries) {
508494
508543
  if (!(d.isFile() || d.isSymbolicLink()) || !d.name.endsWith(".json") || d.name.startsWith(".")) {
508495
508544
  continue;
@@ -508538,7 +508587,7 @@ function loadManagedFileSettings() {
508538
508587
  }
508539
508588
  const dropInDir = getManagedSettingsDropInDir();
508540
508589
  try {
508541
- const entries = getFsImplementation().readdirSync(dropInDir).filter((d) => (d.isFile() || d.isSymbolicLink()) && d.name.endsWith(".json") && !d.name.startsWith(".")).map((d) => d.name).sort();
508590
+ const entries = getFsImplementation2().readdirSync(dropInDir).filter((d) => (d.isFile() || d.isSymbolicLink()) && d.name.endsWith(".json") && !d.name.startsWith(".")).map((d) => d.name).sort();
508542
508591
  for (const name of entries) {
508543
508592
  const { settings: settings2, errors: fileErrors } = parseSettingsFile(join147(dropInDir, name));
508544
508593
  errors4.push(...fileErrors);
@@ -508561,7 +508610,7 @@ function getManagedFileSettingsPresence() {
508561
508610
  let hasDropIns = false;
508562
508611
  const dropInDir = getManagedSettingsDropInDir();
508563
508612
  try {
508564
- hasDropIns = getFsImplementation().readdirSync(dropInDir).some((d) => (d.isFile() || d.isSymbolicLink()) && d.name.endsWith(".json") && !d.name.startsWith("."));
508613
+ hasDropIns = getFsImplementation2().readdirSync(dropInDir).some((d) => (d.isFile() || d.isSymbolicLink()) && d.name.endsWith(".json") && !d.name.startsWith("."));
508565
508614
  } catch {}
508566
508615
  return { hasBase, hasDropIns };
508567
508616
  }
@@ -508589,7 +508638,7 @@ function parseSettingsFile(path21) {
508589
508638
  }
508590
508639
  function parseSettingsFileUncached(path21) {
508591
508640
  try {
508592
- const { resolvedPath } = safeResolvePath(getFsImplementation(), path21);
508641
+ const { resolvedPath } = safeResolvePath(getFsImplementation2(), path21);
508593
508642
  const content = readFileSync7(resolvedPath);
508594
508643
  if (content.trim() === "") {
508595
508644
  return { settings: {}, errors: [] };
@@ -508720,7 +508769,7 @@ function updateSettingsForSource(source, settings) {
508720
508769
  return { error: null };
508721
508770
  }
508722
508771
  try {
508723
- getFsImplementation().mkdirSync(dirname60(filePath));
508772
+ getFsImplementation2().mkdirSync(dirname60(filePath));
508724
508773
  let existingSettings = getSettingsForSourceUncached(source);
508725
508774
  if (!existingSettings) {
508726
508775
  let content = null;
@@ -509051,7 +509100,7 @@ function rawSettingsContainsKey(key) {
509051
509100
  continue;
509052
509101
  }
509053
509102
  try {
509054
- const { resolvedPath } = safeResolvePath(getFsImplementation(), filePath);
509103
+ const { resolvedPath } = safeResolvePath(getFsImplementation2(), filePath);
509055
509104
  const content = readFileSync7(resolvedPath);
509056
509105
  if (!content.trim()) {
509057
509106
  continue;
@@ -509459,7 +509508,7 @@ function startGlobalConfigFreshnessWatcher() {
509459
509508
  watchFile3(file2, { interval: CONFIG_FRESHNESS_POLL_MS, persistent: false }, (curr) => {
509460
509509
  if (curr.mtimeMs <= globalConfigCache.mtime)
509461
509510
  return;
509462
- getFsImplementation().readFile(file2, { encoding: "utf-8" }).then((content) => {
509511
+ getFsImplementation2().readFile(file2, { encoding: "utf-8" }).then((content) => {
509463
509512
  if (curr.mtimeMs <= globalConfigCache.mtime)
509464
509513
  return;
509465
509514
  const parsed = safeParseJSON(stripBOM2(content));
@@ -509494,7 +509543,7 @@ function getGlobalConfig() {
509494
509543
  try {
509495
509544
  let stats2 = null;
509496
509545
  try {
509497
- stats2 = getFsImplementation().statSync(getGlobalClaudeFile());
509546
+ stats2 = getFsImplementation2().statSync(getGlobalClaudeFile());
509498
509547
  } catch {}
509499
509548
  const config3 = migrateConfigFields(getConfig2(getGlobalClaudeFile(), createDefaultGlobalConfig));
509500
509549
  globalConfigCache = {
@@ -509527,7 +509576,7 @@ function getCustomApiKeyStatus(truncatedApiKey) {
509527
509576
  }
509528
509577
  function saveConfig(file2, config3, defaultConfig) {
509529
509578
  const dir = dirname61(file2);
509530
- const fs4 = getFsImplementation();
509579
+ const fs4 = getFsImplementation2();
509531
509580
  fs4.mkdirSync(dir);
509532
509581
  const filteredConfig = pickBy_default(config3, (value, key) => jsonStringify(value) !== jsonStringify(defaultConfig[key]));
509533
509582
  writeFileSyncAndFlush_DEPRECATED(file2, jsonStringify(filteredConfig, null, 2), {
@@ -509541,7 +509590,7 @@ function saveConfig(file2, config3, defaultConfig) {
509541
509590
  function saveConfigWithLock(file2, createDefault, mergeFn) {
509542
509591
  const defaultConfig = createDefault();
509543
509592
  const dir = dirname61(file2);
509544
- const fs4 = getFsImplementation();
509593
+ const fs4 = getFsImplementation2();
509545
509594
  fs4.mkdirSync(dir);
509546
509595
  let release2;
509547
509596
  try {
@@ -509654,7 +509703,7 @@ function getConfigBackupDir() {
509654
509703
  return join149(getClaudeConfigHomeDir(), "backups");
509655
509704
  }
509656
509705
  function findMostRecentBackup(file2) {
509657
- const fs4 = getFsImplementation();
509706
+ const fs4 = getFsImplementation2();
509658
509707
  const fileBase = basename48(file2);
509659
509708
  const backupDir = getConfigBackupDir();
509660
509709
  try {
@@ -509683,7 +509732,7 @@ function getConfig2(file2, createDefault, throwOnInvalid) {
509683
509732
  if (!configReadingAllowed && true) {
509684
509733
  throw new Error("Config accessed before allowed.");
509685
509734
  }
509686
- const fs4 = getFsImplementation();
509735
+ const fs4 = getFsImplementation2();
509687
509736
  try {
509688
509737
  const fileContent = fs4.readFileSync(file2, {
509689
509738
  encoding: "utf-8"
@@ -510866,7 +510915,7 @@ function printStartupScreen(modelOverride) {
510866
510915
  const home = process.env.HOME || process.env.USERPROFILE || "";
510867
510916
  const cwd2 = process.cwd();
510868
510917
  const displayCwd = home && cwd2.startsWith(home) ? `~${cwd2.slice(home.length)}` : cwd2;
510869
- const version3 = "0.9.3";
510918
+ const version3 = "0.9.5";
510870
510919
  const bold2 = `${ESC4}1m`;
510871
510920
  const PURPLE = rgb3(...ACCENT);
510872
510921
  const SOFT = rgb3(...CREAM);
@@ -520568,7 +520617,7 @@ function FilePermissionDialog({
520568
520617
  return null;
520569
520618
  }
520570
520619
  const expandedPath = expandPath(path22);
520571
- const fs4 = getFsImplementation();
520620
+ const fs4 = getFsImplementation2();
520572
520621
  const {
520573
520622
  resolvedPath,
520574
520623
  isSymlink
@@ -520757,7 +520806,7 @@ function SedEditPermissionRequest(t0) {
520757
520806
  if ($2[3] !== filePath) {
520758
520807
  t1 = (async () => {
520759
520808
  const encoding = detectEncodingForResolvedPath(filePath);
520760
- const raw = await getFsImplementation().readFile(filePath, {
520809
+ const raw = await getFsImplementation2().readFile(filePath, {
520761
520810
  encoding
520762
520811
  });
520763
520812
  return {
@@ -524247,7 +524296,7 @@ function NotebookEditToolDiff(props) {
524247
524296
  const $2 = import_react_compiler_runtime292.c(5);
524248
524297
  let t0;
524249
524298
  if ($2[0] !== props.notebook_path) {
524250
- t0 = getFsImplementation().readFile(props.notebook_path, {
524299
+ t0 = getFsImplementation2().readFile(props.notebook_path, {
524251
524300
  encoding: "utf-8"
524252
524301
  }).then(_temp173).catch(_temp273);
524253
524302
  $2[0] = props.notebook_path;
@@ -529133,7 +529182,7 @@ var init_useVoiceEnabled = __esm(() => {
529133
529182
  function getSemverPart(version3) {
529134
529183
  return `${import_semver12.major(version3, { loose: true })}.${import_semver12.minor(version3, { loose: true })}.${import_semver12.patch(version3, { loose: true })}`;
529135
529184
  }
529136
- function useUpdateNotification(updatedVersion, initialVersion = "0.9.3") {
529185
+ function useUpdateNotification(updatedVersion, initialVersion = "0.9.5") {
529137
529186
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react221.useState(() => getSemverPart(initialVersion));
529138
529187
  const [pendingNotification2, setPendingNotification] = import_react221.useState(null);
529139
529188
  if (updatedVersion) {
@@ -529173,7 +529222,7 @@ function AutoUpdater({
529173
529222
  return;
529174
529223
  }
529175
529224
  if (false) {}
529176
- const currentVersion = "0.9.3";
529225
+ const currentVersion = "0.9.5";
529177
529226
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
529178
529227
  let latestVersion = await getLatestVersion(channel2);
529179
529228
  const isDisabled = isAutoUpdaterDisabled();
@@ -529524,17 +529573,17 @@ function PackageManagerAutoUpdater(t0) {
529524
529573
  const maxVersion = await getMaxVersion();
529525
529574
  if (maxVersion && latest && gt(latest, maxVersion)) {
529526
529575
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
529527
- if (gte("0.9.3", maxVersion)) {
529528
- logForDebugging(`PackageManagerAutoUpdater: current version ${"0.9.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
529576
+ if (gte("0.9.5", maxVersion)) {
529577
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"0.9.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
529529
529578
  setUpdateAvailable(false);
529530
529579
  return;
529531
529580
  }
529532
529581
  latest = maxVersion;
529533
529582
  }
529534
- const hasUpdate = latest && !gte("0.9.3", latest) && !shouldSkipVersion(latest);
529583
+ const hasUpdate = latest && !gte("0.9.5", latest) && !shouldSkipVersion(latest);
529535
529584
  setUpdateAvailable(!!hasUpdate);
529536
529585
  if (hasUpdate) {
529537
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.9.3"} -> ${latest}`);
529586
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"0.9.5"} -> ${latest}`);
529538
529587
  }
529539
529588
  };
529540
529589
  $2[0] = t1;
@@ -529568,7 +529617,7 @@ function PackageManagerAutoUpdater(t0) {
529568
529617
  wrap: "truncate",
529569
529618
  children: [
529570
529619
  "currentVersion: ",
529571
- "0.9.3"
529620
+ "0.9.5"
529572
529621
  ]
529573
529622
  });
529574
529623
  $2[3] = verbose;
@@ -543547,10 +543596,21 @@ function convertStatusMessage(msg) {
543547
543596
  if (!msg.status) {
543548
543597
  return null;
543549
543598
  }
543599
+ let content;
543600
+ switch (msg.status) {
543601
+ case "compacting":
543602
+ content = "Compacting conversation…";
543603
+ break;
543604
+ case "warming-up":
543605
+ content = "Warming up vast.ai worker (cold start, ~1–3 min)…";
543606
+ break;
543607
+ default:
543608
+ content = `Status: ${msg.status}`;
543609
+ }
543550
543610
  return {
543551
543611
  type: "system",
543552
543612
  subtype: "informational",
543553
- content: msg.status === "compacting" ? "Compacting conversation…" : `Status: ${msg.status}`,
543613
+ content,
543554
543614
  level: "info",
543555
543615
  uuid: msg.uuid,
543556
543616
  timestamp: new Date().toISOString()
@@ -543682,6 +543742,7 @@ function useRemoteSession({
543682
543742
  }, [setAppState]);
543683
543743
  const responseTimeoutRef = import_react256.useRef(null);
543684
543744
  const isCompactingRef = import_react256.useRef(false);
543745
+ const isWarmingUpRef = import_react256.useRef(false);
543685
543746
  const managerRef = import_react256.useRef(null);
543686
543747
  const hasUpdatedTitleRef = import_react256.useRef(false);
543687
543748
  const sentUUIDsRef = import_react256.useRef(new BoundedUUIDSet(50));
@@ -543732,10 +543793,13 @@ function useRemoteSession({
543732
543793
  }
543733
543794
  if (sdkMessage.subtype === "status") {
543734
543795
  const wasCompacting = isCompactingRef.current;
543796
+ const wasWarming = isWarmingUpRef.current;
543735
543797
  isCompactingRef.current = sdkMessage.status === "compacting";
543736
- if (wasCompacting && isCompactingRef.current) {
543798
+ isWarmingUpRef.current = sdkMessage.status === "warming-up";
543799
+ if (wasCompacting && isCompactingRef.current)
543800
+ return;
543801
+ if (wasWarming && isWarmingUpRef.current)
543737
543802
  return;
543738
- }
543739
543803
  }
543740
543804
  if (sdkMessage.subtype === "compact_boundary") {
543741
543805
  isCompactingRef.current = false;
@@ -543918,7 +543982,7 @@ function useRemoteSession({
543918
543982
  }
543919
543983
  }
543920
543984
  if (!config3?.viewerOnly) {
543921
- const timeoutMs = isCompactingRef.current ? COMPACTION_TIMEOUT_MS : RESPONSE_TIMEOUT_MS;
543985
+ const timeoutMs = isCompactingRef.current || isWarmingUpRef.current ? COMPACTION_TIMEOUT_MS : RESPONSE_TIMEOUT_MS;
543922
543986
  responseTimeoutRef.current = setTimeout((setMessages2, manager2) => {
543923
543987
  logForDebugging("[useRemoteSession] Response timeout - attempting reconnect");
543924
543988
  const warningMessage = createSystemMessage("Remote session may be unresponsive. Attempting to reconnect…", "warning");
@@ -544888,12 +544952,12 @@ function convertFileNameToDate(filename) {
544888
544952
  async function cleanupOldFilesInDirectory(dirPath, cutoffDate, isMessagePath) {
544889
544953
  const result = { messages: 0, errors: 0 };
544890
544954
  try {
544891
- const files2 = await getFsImplementation().readdir(dirPath);
544955
+ const files2 = await getFsImplementation2().readdir(dirPath);
544892
544956
  for (const file2 of files2) {
544893
544957
  try {
544894
544958
  const timestamp = convertFileNameToDate(file2.name);
544895
544959
  if (timestamp < cutoffDate) {
544896
- await getFsImplementation().unlink(join152(dirPath, file2.name));
544960
+ await getFsImplementation2().unlink(join152(dirPath, file2.name));
544897
544961
  if (isMessagePath) {
544898
544962
  result.messages++;
544899
544963
  } else {
@@ -544912,7 +544976,7 @@ async function cleanupOldFilesInDirectory(dirPath, cutoffDate, isMessagePath) {
544912
544976
  return result;
544913
544977
  }
544914
544978
  async function cleanupOldMessageFiles() {
544915
- const fsImpl = getFsImplementation();
544979
+ const fsImpl = getFsImplementation2();
544916
544980
  const cutoffDate = getCutoffDate();
544917
544981
  const errorPath = CACHE_PATHS.errors();
544918
544982
  const baseCachePath = CACHE_PATHS.baseLogs();
@@ -544953,7 +545017,7 @@ async function cleanupOldSessionFiles() {
544953
545017
  const cutoffDate = getCutoffDate();
544954
545018
  const result = { messages: 0, errors: 0 };
544955
545019
  const projectsDir = getProjectsDir();
544956
- const fsImpl = getFsImplementation();
545020
+ const fsImpl = getFsImplementation2();
544957
545021
  let projectDirents;
544958
545022
  try {
544959
545023
  projectDirents = await fsImpl.readdir(projectsDir);
@@ -545035,7 +545099,7 @@ async function cleanupOldSessionFiles() {
545035
545099
  async function cleanupSingleDirectory(dirPath, extension2, removeEmptyDir = true) {
545036
545100
  const cutoffDate = getCutoffDate();
545037
545101
  const result = { messages: 0, errors: 0 };
545038
- const fsImpl = getFsImplementation();
545102
+ const fsImpl = getFsImplementation2();
545039
545103
  let dirents;
545040
545104
  try {
545041
545105
  dirents = await fsImpl.readdir(dirPath);
@@ -545064,7 +545128,7 @@ function cleanupOldPlanFiles() {
545064
545128
  async function cleanupOldFileHistoryBackups() {
545065
545129
  const cutoffDate = getCutoffDate();
545066
545130
  const result = { messages: 0, errors: 0 };
545067
- const fsImpl = getFsImplementation();
545131
+ const fsImpl = getFsImplementation2();
545068
545132
  try {
545069
545133
  const configDir = getClaudeConfigHomeDir();
545070
545134
  const fileHistoryStorageDir = join152(configDir, "file-history");
@@ -545098,7 +545162,7 @@ async function cleanupOldFileHistoryBackups() {
545098
545162
  async function cleanupOldSessionEnvDirs() {
545099
545163
  const cutoffDate = getCutoffDate();
545100
545164
  const result = { messages: 0, errors: 0 };
545101
- const fsImpl = getFsImplementation();
545165
+ const fsImpl = getFsImplementation2();
545102
545166
  try {
545103
545167
  const configDir = getClaudeConfigHomeDir();
545104
545168
  const sessionEnvBaseDir = join152(configDir, "session-env");
@@ -545129,7 +545193,7 @@ async function cleanupOldSessionEnvDirs() {
545129
545193
  async function cleanupOldDebugLogs() {
545130
545194
  const cutoffDate = getCutoffDate();
545131
545195
  const result = { messages: 0, errors: 0 };
545132
- const fsImpl = getFsImplementation();
545196
+ const fsImpl = getFsImplementation2();
545133
545197
  const debugDir = join152(getClaudeConfigHomeDir(), "debug");
545134
545198
  let dirents;
545135
545199
  try {
@@ -547440,7 +547504,7 @@ function dispose3() {
547440
547504
  return closePromise;
547441
547505
  }
547442
547506
  async function getWatchablePaths() {
547443
- const fs5 = getFsImplementation();
547507
+ const fs5 = getFsImplementation2();
547444
547508
  const paths2 = [];
547445
547509
  const userSkillsPath = getSkillsPath("userSettings", "skills");
547446
547510
  if (userSkillsPath) {
@@ -557793,6 +557857,44 @@ function REPL({
557793
557857
  const [spinnerMessage, setSpinnerMessage] = import_react314.useState(null);
557794
557858
  const [spinnerColor, setSpinnerColor] = import_react314.useState(null);
557795
557859
  const [spinnerShimmerColor, setSpinnerShimmerColor] = import_react314.useState(null);
557860
+ import_react314.useEffect(() => {
557861
+ const warmingMessages = [
557862
+ "\uD83D\uDD25 Verboo Intelligence is firing up the engines",
557863
+ "☕ Verboo Intelligence is brewing a fresh cup",
557864
+ "\uD83E\uDDE0 Verboo Intelligence is waking up the neurons",
557865
+ "\uD83D\uDE80 Verboo Intelligence is fueling the rockets",
557866
+ "⚡ Verboo Intelligence is charging its capacitors",
557867
+ "\uD83E\uDDBE Verboo Intelligence is stretching its muscles",
557868
+ "✨ Verboo Intelligence is summoning brilliance",
557869
+ "\uD83C\uDFA9 Verboo Intelligence is putting on the thinking cap",
557870
+ "\uD83E\uDE84 Verboo Intelligence is polishing the wand",
557871
+ "\uD83D\uDD2E Verboo Intelligence is polishing the crystal ball",
557872
+ "\uD83D\uDEE0️ Verboo Intelligence is calibrating sensors",
557873
+ "\uD83D\uDCDA Verboo Intelligence is loading wisdom modules",
557874
+ "\uD83C\uDFAF Verboo Intelligence is locking onto the target",
557875
+ "\uD83C\uDFAC Verboo Intelligence is setting the scene",
557876
+ "\uD83C\uDFAA Verboo Intelligence is rolling out the red carpet"
557877
+ ];
557878
+ let cancelled = false;
557879
+ Promise.resolve().then(() => (init_openaiShim(), exports_openaiShim)).then((mod) => {
557880
+ if (cancelled)
557881
+ return;
557882
+ mod.setOpenAIShimRouterStatusHandler((status2) => {
557883
+ if (status2 === "warming-up") {
557884
+ const msg = warmingMessages[Math.floor(Math.random() * warmingMessages.length)];
557885
+ setSpinnerMessage(msg);
557886
+ } else {
557887
+ setSpinnerMessage(null);
557888
+ }
557889
+ });
557890
+ });
557891
+ return () => {
557892
+ cancelled = true;
557893
+ Promise.resolve().then(() => (init_openaiShim(), exports_openaiShim)).then((mod) => {
557894
+ mod.setOpenAIShimRouterStatusHandler(null);
557895
+ });
557896
+ };
557897
+ }, []);
557796
557898
  const [isMessageSelectorVisible, setIsMessageSelectorVisible] = import_react314.useState(false);
557797
557899
  const [messageSelectorPreselect, setMessageSelectorPreselect] = import_react314.useState(undefined);
557798
557900
  const [showCostDialog, setShowCostDialog] = import_react314.useState(false);
@@ -561960,7 +562062,7 @@ function WelcomeV2() {
561960
562062
  dimColor: true,
561961
562063
  children: [
561962
562064
  "v",
561963
- "0.9.3",
562065
+ "0.9.5",
561964
562066
  " "
561965
562067
  ]
561966
562068
  })
@@ -562147,7 +562249,7 @@ function WelcomeV2() {
562147
562249
  dimColor: true,
562148
562250
  children: [
562149
562251
  "v",
562150
- "0.9.3",
562252
+ "0.9.5",
562151
562253
  " "
562152
562254
  ]
562153
562255
  })
@@ -562363,7 +562465,7 @@ function AppleTerminalWelcomeV2(t0) {
562363
562465
  dimColor: true,
562364
562466
  children: [
562365
562467
  "v",
562366
- "0.9.3",
562468
+ "0.9.5",
562367
562469
  " "
562368
562470
  ]
562369
562471
  });
@@ -562572,7 +562674,7 @@ function AppleTerminalWelcomeV2(t0) {
562572
562674
  dimColor: true,
562573
562675
  children: [
562574
562676
  "v",
562575
- "0.9.3",
562677
+ "0.9.5",
562576
562678
  " "
562577
562679
  ]
562578
562680
  });
@@ -563572,7 +563674,7 @@ function TrustDialog(t0) {
563572
563674
  if ($2[20] === Symbol.for("react.memo_cache_sentinel")) {
563573
563675
  t16 = /* @__PURE__ */ jsx_runtime476.jsx(ThemedText, {
563574
563676
  bold: true,
563575
- children: getFsImplementation().cwd()
563677
+ children: getFsImplementation2().cwd()
563576
563678
  });
563577
563679
  t17 = /* @__PURE__ */ jsx_runtime476.jsxs(ThemedText, {
563578
563680
  children: [
@@ -568449,10 +568551,10 @@ function getLogWriter(path24) {
568449
568551
  writer = createJsonlWriter({
568450
568552
  writeFn: (content) => {
568451
568553
  try {
568452
- getFsImplementation().appendFileSync(path24, content);
568554
+ getFsImplementation2().appendFileSync(path24, content);
568453
568555
  } catch {
568454
- getFsImplementation().mkdirSync(dir);
568455
- getFsImplementation().appendFileSync(path24, content);
568556
+ getFsImplementation2().mkdirSync(dir);
568557
+ getFsImplementation2().appendFileSync(path24, content);
568456
568558
  }
568457
568559
  },
568458
568560
  flushIntervalMs: 1000,
@@ -568470,7 +568572,7 @@ function appendToLog(path24, message) {
568470
568572
  const messageWithTimestamp = {
568471
568573
  timestamp: new Date().toISOString(),
568472
568574
  ...message,
568473
- cwd: getFsImplementation().cwd(),
568575
+ cwd: getFsImplementation2().cwd(),
568474
568576
  userType: process.env.USER_TYPE,
568475
568577
  sessionId: getSessionId(),
568476
568578
  version: "99.0.0"
@@ -568519,7 +568621,7 @@ function logMCPErrorImpl(serverName, error42) {
568519
568621
  error: errorStr,
568520
568622
  timestamp: new Date().toISOString(),
568521
568623
  sessionId: getSessionId(),
568522
- cwd: getFsImplementation().cwd()
568624
+ cwd: getFsImplementation2().cwd()
568523
568625
  };
568524
568626
  getLogWriter(logFile).write(errorInfo);
568525
568627
  }
@@ -568530,7 +568632,7 @@ function logMCPDebugImpl(serverName, message) {
568530
568632
  debug: message,
568531
568633
  timestamp: new Date().toISOString(),
568532
568634
  sessionId: getSessionId(),
568533
- cwd: getFsImplementation().cwd()
568635
+ cwd: getFsImplementation2().cwd()
568534
568636
  };
568535
568637
  getLogWriter(logFile).write(debugInfo);
568536
568638
  }
@@ -568621,7 +568723,7 @@ function shouldExtractMemory(messages) {
568621
568723
  return false;
568622
568724
  }
568623
568725
  async function setupSessionMemoryFile(toolUseContext) {
568624
- const fs5 = getFsImplementation();
568726
+ const fs5 = getFsImplementation2();
568625
568727
  const sessionMemoryDir = getSessionMemoryDir();
568626
568728
  await fs5.mkdir(sessionMemoryDir, { mode: 448 });
568627
568729
  const memoryPath = getSessionMemoryPath();
@@ -573143,8 +573245,8 @@ async function installPluginsForHeadless() {
573143
573245
  clearPluginCache("headlessPluginInstall: seed marketplaces registered");
573144
573246
  }
573145
573247
  if (zipCacheMode) {
573146
- await getFsImplementation().mkdir(getZipCacheMarketplacesDir());
573147
- await getFsImplementation().mkdir(getZipCachePluginsDir());
573248
+ await getFsImplementation2().mkdir(getZipCacheMarketplacesDir());
573249
+ await getFsImplementation2().mkdir(getZipCachePluginsDir());
573148
573250
  }
573149
573251
  const declaredCount = Object.keys(getDeclaredMarketplaces()).length;
573150
573252
  const metrics = {
@@ -579984,7 +580086,7 @@ __export(exports_update, {
579984
580086
  async function update() {
579985
580087
  if (getAPIProvider() !== "firstParty") {
579986
580088
  writeToStdout(source_default.yellow(`Auto-update is not available for third-party provider builds.
579987
- `) + `Current version: ${"0.9.3"}
580089
+ `) + `Current version: ${"0.9.5"}
579988
580090
 
579989
580091
  ` + `To update, reinstall from npm:
579990
580092
  ` + source_default.bold(` npm install -g ${"@verboo/code"}@latest`) + `
@@ -579995,7 +580097,7 @@ async function update() {
579995
580097
  await gracefulShutdown(0);
579996
580098
  }
579997
580099
  logEvent("tengu_update_check", {});
579998
- writeToStdout(`Current version: ${"0.9.3"}
580100
+ writeToStdout(`Current version: ${"0.9.5"}
579999
580101
  `);
580000
580102
  const channel2 = getInitialSettings()?.autoUpdatesChannel ?? "latest";
580001
580103
  writeToStdout(`Checking for updates to ${channel2} version...
@@ -580080,8 +580182,8 @@ async function update() {
580080
580182
  writeToStdout(`Verboo Code is managed by Homebrew.
580081
580183
  `);
580082
580184
  const latest = await getLatestVersion(channel2);
580083
- if (latest && !gte("0.9.3", latest)) {
580084
- writeToStdout(`Update available: ${"0.9.3"} → ${latest}
580185
+ if (latest && !gte("0.9.5", latest)) {
580186
+ writeToStdout(`Update available: ${"0.9.5"} → ${latest}
580085
580187
  `);
580086
580188
  writeToStdout(`
580087
580189
  `);
@@ -580097,8 +580199,8 @@ async function update() {
580097
580199
  writeToStdout(`Verboo Code is managed by winget.
580098
580200
  `);
580099
580201
  const latest = await getLatestVersion(channel2);
580100
- if (latest && !gte("0.9.3", latest)) {
580101
- writeToStdout(`Update available: ${"0.9.3"} → ${latest}
580202
+ if (latest && !gte("0.9.5", latest)) {
580203
+ writeToStdout(`Update available: ${"0.9.5"} → ${latest}
580102
580204
  `);
580103
580205
  writeToStdout(`
580104
580206
  `);
@@ -580114,8 +580216,8 @@ async function update() {
580114
580216
  writeToStdout(`Verboo Code is managed by apk.
580115
580217
  `);
580116
580218
  const latest = await getLatestVersion(channel2);
580117
- if (latest && !gte("0.9.3", latest)) {
580118
- writeToStdout(`Update available: ${"0.9.3"} → ${latest}
580219
+ if (latest && !gte("0.9.5", latest)) {
580220
+ writeToStdout(`Update available: ${"0.9.5"} → ${latest}
580119
580221
  `);
580120
580222
  writeToStdout(`
580121
580223
  `);
@@ -580168,11 +580270,11 @@ async function update() {
580168
580270
  `);
580169
580271
  await gracefulShutdown(1);
580170
580272
  }
580171
- if (result.latestVersion === "0.9.3") {
580172
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.9.3"})`) + `
580273
+ if (result.latestVersion === "0.9.5") {
580274
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.9.5"})`) + `
580173
580275
  `);
580174
580276
  } else {
580175
- writeToStdout(source_default.green(`Successfully updated from ${"0.9.3"} to version ${result.latestVersion}`) + `
580277
+ writeToStdout(source_default.green(`Successfully updated from ${"0.9.5"} to version ${result.latestVersion}`) + `
580176
580278
  `);
580177
580279
  await regenerateCompletionCache();
580178
580280
  }
@@ -580232,12 +580334,12 @@ async function update() {
580232
580334
  `);
580233
580335
  await gracefulShutdown(1);
580234
580336
  }
580235
- if (latestVersion === "0.9.3") {
580236
- writeToStdout(source_default.green(`Verboo Code is up to date (${"0.9.3"})`) + `
580337
+ if (latestVersion === "0.9.5") {
580338
+ writeToStdout(source_default.green(`Verboo Code is up to date (${"0.9.5"})`) + `
580237
580339
  `);
580238
580340
  await gracefulShutdown(0);
580239
580341
  }
580240
- writeToStdout(`New version available: ${latestVersion} (current: ${"0.9.3"})
580342
+ writeToStdout(`New version available: ${latestVersion} (current: ${"0.9.5"})
580241
580343
  `);
580242
580344
  writeToStdout(`Installing update...
580243
580345
  `);
@@ -580282,7 +580384,7 @@ async function update() {
580282
580384
  logForDebugging(`update: Installation status: ${status2}`);
580283
580385
  switch (status2) {
580284
580386
  case "success":
580285
- writeToStdout(source_default.green(`Successfully updated from ${"0.9.3"} to version ${latestVersion}`) + `
580387
+ writeToStdout(source_default.green(`Successfully updated from ${"0.9.5"} to version ${latestVersion}`) + `
580286
580388
  `);
580287
580389
  await regenerateCompletionCache();
580288
580390
  break;
@@ -580498,7 +580600,7 @@ function loadSettingsFromFlag(settingsFile) {
580498
580600
  } else {
580499
580601
  const {
580500
580602
  resolvedPath: resolvedSettingsPath
580501
- } = safeResolvePath(getFsImplementation(), settingsFile);
580603
+ } = safeResolvePath(getFsImplementation2(), settingsFile);
580502
580604
  try {
580503
580605
  readFileSync16(resolvedSettingsPath, "utf8");
580504
580606
  } catch (e2) {
@@ -581537,7 +581639,7 @@ ${customInstructions}` : customInstructions;
581537
581639
  is_native_binary: isInBundledMode()
581538
581640
  });
581539
581641
  logMemoryDiagnostics("start", {
581540
- version: "0.9.3",
581642
+ version: "0.9.5",
581541
581643
  debug: debug2,
581542
581644
  debugToStderr,
581543
581645
  print: print ?? false,
@@ -582343,7 +582445,7 @@ Usage: verboo --remote "your task description"`, () => gracefulShutdown(1));
582343
582445
  pendingHookMessages
582344
582446
  }, renderAndRun);
582345
582447
  }
582346
- }).version(`0.9.3 (${cliDesc})`, "-v, --version", "Output the version number");
582448
+ }).version(`0.9.5 (${cliDesc})`, "-v, --version", "Output the version number");
582347
582449
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
582348
582450
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
582349
582451
  if (canUserConfigureAdvisor()) {
@@ -582917,7 +583019,7 @@ if (false) {}
582917
583019
  async function main2() {
582918
583020
  const args = process.argv.slice(2);
582919
583021
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
582920
- console.log(`${"0.9.3"} (Verboo Code)`);
583022
+ console.log(`${"0.9.5"} (Verboo Code)`);
582921
583023
  return;
582922
583024
  }
582923
583025
  if (!IS_VERBOO_CLI && args.includes("--provider")) {
@@ -583091,4 +583193,4 @@ async function main2() {
583091
583193
  }
583092
583194
  main2();
583093
583195
 
583094
- //# debugId=4E239C30BCC1FD5B64756E2164756E21
583196
+ //# debugId=67CCC9AFAF99681B64756E2164756E21