ur-agent 1.23.2 → 1.23.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/cli.js +153 -132
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.23.3
4
+
5
+ ### Fixed
6
+ - `repoIndex` tests failing in CI because `listIndexableFiles` silently returned `[]` when ripgrep (`rg`) was unavailable. Added a Node.js recursive file walker fallback that applies the same extension and skip-segment filters.
7
+
3
8
  ## 1.23.2
4
9
 
5
10
  ### Added
package/dist/cli.js CHANGED
@@ -66562,7 +66562,7 @@ var init_auth = __esm(() => {
66562
66562
 
66563
66563
  // src/utils/userAgent.ts
66564
66564
  function getURCodeUserAgent() {
66565
- return `ur/${"1.23.2"}`;
66565
+ return `ur/${"1.23.3"}`;
66566
66566
  }
66567
66567
 
66568
66568
  // src/utils/workloadContext.ts
@@ -66584,7 +66584,7 @@ function getUserAgent() {
66584
66584
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
66585
66585
  const workload = getWorkload();
66586
66586
  const workloadSuffix = workload ? `, workload/${workload}` : "";
66587
- return `ur-cli/${"1.23.2"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
66587
+ return `ur-cli/${"1.23.3"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
66588
66588
  }
66589
66589
  function getMCPUserAgent() {
66590
66590
  const parts = [];
@@ -66598,7 +66598,7 @@ function getMCPUserAgent() {
66598
66598
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
66599
66599
  }
66600
66600
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
66601
- return `ur/${"1.23.2"}${suffix}`;
66601
+ return `ur/${"1.23.3"}${suffix}`;
66602
66602
  }
66603
66603
  function getWebFetchUserAgent() {
66604
66604
  return `UR-User (${getURCodeUserAgent()})`;
@@ -66736,7 +66736,7 @@ var init_user = __esm(() => {
66736
66736
  deviceId,
66737
66737
  sessionId: getSessionId(),
66738
66738
  email: getEmail(),
66739
- appVersion: "1.23.2",
66739
+ appVersion: "1.23.3",
66740
66740
  platform: getHostPlatformForAnalytics(),
66741
66741
  organizationUuid,
66742
66742
  accountUuid,
@@ -73253,7 +73253,7 @@ var init_metadata = __esm(() => {
73253
73253
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
73254
73254
  WHITESPACE_REGEX = /\s+/;
73255
73255
  getVersionBase = memoize_default(() => {
73256
- const match = "1.23.2".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
73256
+ const match = "1.23.3".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
73257
73257
  return match ? match[0] : undefined;
73258
73258
  });
73259
73259
  buildEnvContext = memoize_default(async () => {
@@ -73293,7 +73293,7 @@ var init_metadata = __esm(() => {
73293
73293
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
73294
73294
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
73295
73295
  isURAiAuth: isURAISubscriber2(),
73296
- version: "1.23.2",
73296
+ version: "1.23.3",
73297
73297
  versionBase: getVersionBase(),
73298
73298
  buildTime: "",
73299
73299
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -73963,7 +73963,7 @@ function initialize1PEventLogging() {
73963
73963
  const platform2 = getPlatform();
73964
73964
  const attributes = {
73965
73965
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
73966
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.23.2"
73966
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.23.3"
73967
73967
  };
73968
73968
  if (platform2 === "wsl") {
73969
73969
  const wslVersion = getWslVersion();
@@ -73990,7 +73990,7 @@ function initialize1PEventLogging() {
73990
73990
  })
73991
73991
  ]
73992
73992
  });
73993
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.23.2");
73993
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.23.3");
73994
73994
  }
73995
73995
  async function reinitialize1PEventLoggingIfConfigChanged() {
73996
73996
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -79082,7 +79082,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
79082
79082
  function formatA2AAgentCard(options = {}, pretty = true) {
79083
79083
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
79084
79084
  }
79085
- var urVersion = "1.23.2", coverage, priorityRoadmap;
79085
+ var urVersion = "1.23.3", coverage, priorityRoadmap;
79086
79086
  var init_trends = __esm(() => {
79087
79087
  coverage = [
79088
79088
  {
@@ -80967,7 +80967,7 @@ function getAttributionHeader(fingerprint) {
80967
80967
  if (!isAttributionHeaderEnabled()) {
80968
80968
  return "";
80969
80969
  }
80970
- const version2 = `${"1.23.2"}.${fingerprint}`;
80970
+ const version2 = `${"1.23.3"}.${fingerprint}`;
80971
80971
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
80972
80972
  const cch = "";
80973
80973
  const workload = getWorkload();
@@ -188635,7 +188635,7 @@ function getTelemetryAttributes() {
188635
188635
  attributes["session.id"] = sessionId;
188636
188636
  }
188637
188637
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
188638
- attributes["app.version"] = "1.23.2";
188638
+ attributes["app.version"] = "1.23.3";
188639
188639
  }
188640
188640
  const oauthAccount = getOauthAccountInfo();
188641
188641
  if (oauthAccount) {
@@ -224043,7 +224043,7 @@ function getInstallationEnv() {
224043
224043
  return;
224044
224044
  }
224045
224045
  function getURCodeVersion() {
224046
- return "1.23.2";
224046
+ return "1.23.3";
224047
224047
  }
224048
224048
  async function getInstalledVSCodeExtensionVersion(command) {
224049
224049
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -226771,7 +226771,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
226771
226771
  const client2 = new Client({
226772
226772
  name: "ur",
226773
226773
  title: "UR",
226774
- version: "1.23.2",
226774
+ version: "1.23.3",
226775
226775
  description: "URHQ's agentic coding tool",
226776
226776
  websiteUrl: PRODUCT_URL
226777
226777
  }, {
@@ -227125,7 +227125,7 @@ var init_client5 = __esm(() => {
227125
227125
  const client2 = new Client({
227126
227126
  name: "ur",
227127
227127
  title: "UR",
227128
- version: "1.23.2",
227128
+ version: "1.23.3",
227129
227129
  description: "URHQ's agentic coding tool",
227130
227130
  websiteUrl: PRODUCT_URL
227131
227131
  }, {
@@ -236938,9 +236938,9 @@ async function assertMinVersion() {
236938
236938
  if (false) {}
236939
236939
  try {
236940
236940
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
236941
- if (versionConfig.minVersion && lt("1.23.2", versionConfig.minVersion)) {
236941
+ if (versionConfig.minVersion && lt("1.23.3", versionConfig.minVersion)) {
236942
236942
  console.error(`
236943
- It looks like your version of UR (${"1.23.2"}) needs an update.
236943
+ It looks like your version of UR (${"1.23.3"}) needs an update.
236944
236944
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
236945
236945
 
236946
236946
  To update, please run:
@@ -237156,7 +237156,7 @@ async function installGlobalPackage(specificVersion) {
237156
237156
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
237157
237157
  logEvent("tengu_auto_updater_lock_contention", {
237158
237158
  pid: process.pid,
237159
- currentVersion: "1.23.2"
237159
+ currentVersion: "1.23.3"
237160
237160
  });
237161
237161
  return "in_progress";
237162
237162
  }
@@ -237165,7 +237165,7 @@ async function installGlobalPackage(specificVersion) {
237165
237165
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
237166
237166
  logError2(new Error("Windows NPM detected in WSL environment"));
237167
237167
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
237168
- currentVersion: "1.23.2"
237168
+ currentVersion: "1.23.3"
237169
237169
  });
237170
237170
  console.error(`
237171
237171
  Error: Windows NPM detected in WSL
@@ -237700,7 +237700,7 @@ function detectLinuxGlobPatternWarnings() {
237700
237700
  }
237701
237701
  async function getDoctorDiagnostic() {
237702
237702
  const installationType = await getCurrentInstallationType();
237703
- const version2 = typeof MACRO !== "undefined" ? "1.23.2" : "unknown";
237703
+ const version2 = typeof MACRO !== "undefined" ? "1.23.3" : "unknown";
237704
237704
  const installationPath = await getInstallationPath();
237705
237705
  const invokedBinary = getInvokedBinary();
237706
237706
  const multipleInstallations = await detectMultipleInstallations();
@@ -238635,8 +238635,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
238635
238635
  const maxVersion = await getMaxVersion();
238636
238636
  if (maxVersion && gt(version2, maxVersion)) {
238637
238637
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
238638
- if (gte("1.23.2", maxVersion)) {
238639
- logForDebugging(`Native installer: current version ${"1.23.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
238638
+ if (gte("1.23.3", maxVersion)) {
238639
+ logForDebugging(`Native installer: current version ${"1.23.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
238640
238640
  logEvent("tengu_native_update_skipped_max_version", {
238641
238641
  latency_ms: Date.now() - startTime,
238642
238642
  max_version: maxVersion,
@@ -238647,7 +238647,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
238647
238647
  version2 = maxVersion;
238648
238648
  }
238649
238649
  }
238650
- if (!forceReinstall && version2 === "1.23.2" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
238650
+ if (!forceReinstall && version2 === "1.23.3" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
238651
238651
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
238652
238652
  logEvent("tengu_native_update_complete", {
238653
238653
  latency_ms: Date.now() - startTime,
@@ -292293,7 +292293,7 @@ function chunkText(content, options2 = {}) {
292293
292293
  var DEFAULT_MAX_LINES = 60, DEFAULT_OVERLAP = 10, DEFAULT_MAX_CHUNKS = 200;
292294
292294
 
292295
292295
  // src/utils/codeIndex/indexer.ts
292296
- import { readFile as readFile26, stat as stat29 } from "fs/promises";
292296
+ import { readdir as readdir13, readFile as readFile26, stat as stat29 } from "fs/promises";
292297
292297
  import { isAbsolute as isAbsolute24, relative as relative21, resolve as resolve30, sep as sep21 } from "path";
292298
292298
  function toPosix(p) {
292299
292299
  return sep21 === "\\" ? p.replaceAll("\\", "/") : p;
@@ -292314,12 +292314,33 @@ function isSkipped(relPath) {
292314
292314
  return true;
292315
292315
  return false;
292316
292316
  }
292317
+ async function walkIndexableFiles(root2) {
292318
+ const out = [];
292319
+ async function walk(dir) {
292320
+ const entries = await readdir13(dir, { withFileTypes: true });
292321
+ for (const entry of entries) {
292322
+ if (entry.name.startsWith(".") && entry.name !== ".github")
292323
+ continue;
292324
+ const abs = resolve30(dir, entry.name);
292325
+ const rel = toPosix(relative21(root2, abs));
292326
+ if (isSkipped(rel))
292327
+ continue;
292328
+ if (entry.isDirectory()) {
292329
+ await walk(abs);
292330
+ } else if (entry.isFile() && hasIndexableExtension(rel)) {
292331
+ out.push(rel);
292332
+ }
292333
+ }
292334
+ }
292335
+ await walk(root2);
292336
+ return out.sort();
292337
+ }
292317
292338
  async function listIndexableFiles(root2, signal) {
292318
292339
  let absFiles;
292319
292340
  try {
292320
292341
  absFiles = await ripGrep(["--files", "--hidden"], root2, signal);
292321
292342
  } catch {
292322
- return [];
292343
+ absFiles = await walkIndexableFiles(root2);
292323
292344
  }
292324
292345
  const result = [];
292325
292346
  for (const abs of absFiles) {
@@ -298282,7 +298303,7 @@ var init_TeamDeleteTool = __esm(() => {
298282
298303
  });
298283
298304
 
298284
298305
  // src/utils/concurrentSessions.ts
298285
- import { chmod as chmod7, mkdir as mkdir22, readdir as readdir13, readFile as readFile27, unlink as unlink14, writeFile as writeFile23 } from "fs/promises";
298306
+ import { chmod as chmod7, mkdir as mkdir22, readdir as readdir14, readFile as readFile27, unlink as unlink14, writeFile as writeFile23 } from "fs/promises";
298286
298307
  import { join as join96 } from "path";
298287
298308
  function getSessionsDir() {
298288
298309
  return join96(getURConfigHomeDir(), "sessions");
@@ -298345,7 +298366,7 @@ async function countConcurrentSessions() {
298345
298366
  const dir = getSessionsDir();
298346
298367
  let files;
298347
298368
  try {
298348
- files = await readdir13(dir);
298369
+ files = await readdir14(dir);
298349
298370
  } catch (e) {
298350
298371
  if (!isFsInaccessible(e)) {
298351
298372
  logForDebugging(`[concurrentSessions] readdir failed: ${errorMessage2(e)}`);
@@ -310307,11 +310328,11 @@ var init_memoryTypes = __esm(() => {
310307
310328
  });
310308
310329
 
310309
310330
  // src/memdir/memoryScan.ts
310310
- import { readdir as readdir14 } from "fs/promises";
310331
+ import { readdir as readdir15 } from "fs/promises";
310311
310332
  import { basename as basename26, join as join100 } from "path";
310312
310333
  async function scanMemoryFiles(memoryDir, signal) {
310313
310334
  try {
310314
- const entries = await readdir14(memoryDir, { recursive: true });
310335
+ const entries = await readdir15(memoryDir, { recursive: true });
310315
310336
  const mdFiles = entries.filter((f) => f.endsWith(".md") && basename26(f) !== "MEMORY.md");
310316
310337
  const headerResults = await Promise.allSettled(mdFiles.map(async (relativePath) => {
310317
310338
  const filePath = join100(memoryDir, relativePath);
@@ -316041,7 +316062,7 @@ var init_tokenEstimation = __esm(() => {
316041
316062
 
316042
316063
  // src/utils/pdf.ts
316043
316064
  import { randomUUID as randomUUID25 } from "crypto";
316044
- import { mkdir as mkdir24, readdir as readdir15, readFile as readFile32 } from "fs/promises";
316065
+ import { mkdir as mkdir24, readdir as readdir16, readFile as readFile32 } from "fs/promises";
316045
316066
  import { join as join103 } from "path";
316046
316067
  async function readPDF(filePath) {
316047
316068
  try {
@@ -316191,7 +316212,7 @@ async function extractPDFPages(filePath, options2) {
316191
316212
  error: { reason: "unknown", message: `pdftoppm failed: ${stderr}` }
316192
316213
  };
316193
316214
  }
316194
- const entries = await readdir15(outputDir);
316215
+ const entries = await readdir16(outputDir);
316195
316216
  const imageFiles = entries.filter((f) => f.endsWith(".jpg")).sort();
316196
316217
  const pageCount = imageFiles.length;
316197
316218
  if (pageCount === 0) {
@@ -316506,7 +316527,7 @@ var init_UI25 = __esm(() => {
316506
316527
  });
316507
316528
 
316508
316529
  // src/tools/FileReadTool/FileReadTool.ts
316509
- import { readdir as readdir16, readFile as readFileAsync } from "fs/promises";
316530
+ import { readdir as readdir17, readFile as readFileAsync } from "fs/promises";
316510
316531
  import * as path14 from "path";
316511
316532
  import { posix as posix9, win32 as win323 } from "path";
316512
316533
  function isBlockedDevicePath(filePath) {
@@ -316657,7 +316678,7 @@ async function callInner(file_path, fullFilePath, resolvedFilePath, ext, offset,
316657
316678
  filePath: fullFilePath,
316658
316679
  content: `PDF pages ${pages}`
316659
316680
  });
316660
- const entries = await readdir16(extractResult.data.file.outputDir);
316681
+ const entries = await readdir17(extractResult.data.file.outputDir);
316661
316682
  const imageFiles = entries.filter((f) => f.endsWith(".jpg")).sort();
316662
316683
  const imageBlocks = await Promise.all(imageFiles.map(async (f) => {
316663
316684
  const imgPath = path14.join(extractResult.data.file.outputDir, f);
@@ -317718,7 +317739,7 @@ var init_findRelevantMemories = __esm(() => {
317718
317739
  });
317719
317740
 
317720
317741
  // src/utils/attachments.ts
317721
- import { readdir as readdir17, stat as stat32 } from "fs/promises";
317742
+ import { readdir as readdir18, stat as stat32 } from "fs/promises";
317722
317743
  import { dirname as dirname42, parse as parse12, relative as relative23, resolve as resolve32 } from "path";
317723
317744
  import { randomUUID as randomUUID26 } from "crypto";
317724
317745
  async function getAttachments(input, toolUseContext, ideSelection, queuedCommands, messages, querySource, options2) {
@@ -318209,7 +318230,7 @@ async function processAtMentionedFiles(input, toolUseContext) {
318209
318230
  const stats = await stat32(absoluteFilename);
318210
318231
  if (stats.isDirectory()) {
318211
318232
  try {
318212
- const entries = await readdir17(absoluteFilename, {
318233
+ const entries = await readdir18(absoluteFilename, {
318213
318234
  withFileTypes: true
318214
318235
  });
318215
318236
  const MAX_DIR_ENTRIES = 1000;
@@ -318547,7 +318568,7 @@ async function getDynamicSkillAttachments(toolUseContext) {
318547
318568
  if (toolUseContext.dynamicSkillDirTriggers && toolUseContext.dynamicSkillDirTriggers.size > 0) {
318548
318569
  const perDirResults = await Promise.all(Array.from(toolUseContext.dynamicSkillDirTriggers).map(async (skillDir) => {
318549
318570
  try {
318550
- const entries = await readdir17(skillDir, { withFileTypes: true });
318571
+ const entries = await readdir18(skillDir, { withFileTypes: true });
318551
318572
  const candidates2 = entries.filter((e) => e.isDirectory() || e.isSymbolicLink()).map((e) => e.name);
318552
318573
  const checked = await Promise.all(candidates2.map(async (name) => {
318553
318574
  try {
@@ -319974,7 +319995,7 @@ import { randomBytes as randomBytes11 } from "crypto";
319974
319995
  import {
319975
319996
  chmod as chmod8,
319976
319997
  lstat as lstat5,
319977
- readdir as readdir18,
319998
+ readdir as readdir19,
319978
319999
  readFile as readFile33,
319979
320000
  rename as rename3,
319980
320001
  rm as rm5,
@@ -320076,7 +320097,7 @@ async function collectFilesForZip(baseDir, relativePath, files, visited) {
320076
320097
  const currentDir = relativePath ? join107(baseDir, relativePath) : baseDir;
320077
320098
  let entries;
320078
320099
  try {
320079
- entries = await readdir18(currentDir);
320100
+ entries = await readdir19(currentDir);
320080
320101
  } catch {
320081
320102
  return;
320082
320103
  }
@@ -320173,7 +320194,7 @@ var init_zipCache = __esm(() => {
320173
320194
  });
320174
320195
 
320175
320196
  // src/utils/plugins/cacheUtils.ts
320176
- import { readdir as readdir19, rm as rm6, stat as stat34, unlink as unlink15, writeFile as writeFile26 } from "fs/promises";
320197
+ import { readdir as readdir20, rm as rm6, stat as stat34, unlink as unlink15, writeFile as writeFile26 } from "fs/promises";
320177
320198
  import { join as join108 } from "path";
320178
320199
  function clearAllPluginCaches() {
320179
320200
  clearPluginCache();
@@ -320293,7 +320314,7 @@ async function removeIfEmpty(dirPath) {
320293
320314
  }
320294
320315
  async function readSubdirs(dirPath) {
320295
320316
  try {
320296
- const entries = await readdir19(dirPath, { withFileTypes: true });
320317
+ const entries = await readdir20(dirPath, { withFileTypes: true });
320297
320318
  return entries.filter((d) => d.isDirectory()).map((d) => d.name);
320298
320319
  } catch {
320299
320320
  return [];
@@ -322773,7 +322794,7 @@ var init_pluginInstallationHelpers = __esm(() => {
322773
322794
  // src/utils/plugins/pluginLoader.ts
322774
322795
  import {
322775
322796
  copyFile as copyFile7,
322776
- readdir as readdir20,
322797
+ readdir as readdir21,
322777
322798
  readFile as readFile35,
322778
322799
  readlink as readlink2,
322779
322800
  realpath as realpath11,
@@ -322804,7 +322825,7 @@ async function probeSeedCache(pluginId, version2) {
322804
322825
  for (const seedDir of getPluginSeedDirs()) {
322805
322826
  const seedPath = getVersionedCachePathIn(seedDir, pluginId, version2);
322806
322827
  try {
322807
- const entries = await readdir20(seedPath);
322828
+ const entries = await readdir21(seedPath);
322808
322829
  if (entries.length > 0)
322809
322830
  return seedPath;
322810
322831
  } catch {}
@@ -322815,11 +322836,11 @@ async function probeSeedCacheAnyVersion(pluginId) {
322815
322836
  for (const seedDir of getPluginSeedDirs()) {
322816
322837
  const pluginDir = dirname50(getVersionedCachePathIn(seedDir, pluginId, "_"));
322817
322838
  try {
322818
- const versions2 = await readdir20(pluginDir);
322839
+ const versions2 = await readdir21(pluginDir);
322819
322840
  if (versions2.length !== 1)
322820
322841
  continue;
322821
322842
  const versionDir = join113(pluginDir, versions2[0]);
322822
- const entries = await readdir20(versionDir);
322843
+ const entries = await readdir21(versionDir);
322823
322844
  if (entries.length > 0)
322824
322845
  return versionDir;
322825
322846
  } catch {}
@@ -322828,7 +322849,7 @@ async function probeSeedCacheAnyVersion(pluginId) {
322828
322849
  }
322829
322850
  async function copyDir(src, dest) {
322830
322851
  await getFsImplementation().mkdir(dest);
322831
- const entries = await readdir20(src, { withFileTypes: true });
322852
+ const entries = await readdir21(src, { withFileTypes: true });
322832
322853
  for (const entry of entries) {
322833
322854
  const srcPath = join113(src, entry.name);
322834
322855
  const destPath = join113(dest, entry.name);
@@ -322873,7 +322894,7 @@ async function copyPluginToVersionedCache(sourcePath, pluginId, version2, entry,
322873
322894
  return zipPath;
322874
322895
  }
322875
322896
  } else if (await pathExists(cachePath)) {
322876
- const entries = await readdir20(cachePath);
322897
+ const entries = await readdir21(cachePath);
322877
322898
  if (entries.length > 0) {
322878
322899
  logForDebugging(`Plugin ${pluginId} version ${version2} already cached at ${cachePath}`);
322879
322900
  return cachePath;
@@ -322904,7 +322925,7 @@ async function copyPluginToVersionedCache(sourcePath, pluginId, version2, entry,
322904
322925
  }
322905
322926
  const gitPath = join113(cachePath, ".git");
322906
322927
  await rm9(gitPath, { recursive: true, force: true });
322907
- const cacheEntries = await readdir20(cachePath);
322928
+ const cacheEntries = await readdir21(cachePath);
322908
322929
  if (cacheEntries.length === 0) {
322909
322930
  throw new Error(`Failed to copy plugin ${pluginId} to versioned cache: destination is empty after copy`);
322910
322931
  }
@@ -331669,7 +331690,7 @@ var init_terminalSetup = __esm(() => {
331669
331690
 
331670
331691
  // src/utils/pasteStore.ts
331671
331692
  import { createHash as createHash23 } from "crypto";
331672
- import { mkdir as mkdir27, readdir as readdir21, readFile as readFile37, stat as stat37, unlink as unlink16, writeFile as writeFile30 } from "fs/promises";
331693
+ import { mkdir as mkdir27, readdir as readdir22, readFile as readFile37, stat as stat37, unlink as unlink16, writeFile as writeFile30 } from "fs/promises";
331673
331694
  import { join as join118 } from "path";
331674
331695
  function getPasteStoreDir() {
331675
331696
  return join118(getURConfigHomeDir(), PASTE_STORE_DIR);
@@ -331706,7 +331727,7 @@ async function cleanupOldPastes(cutoffDate) {
331706
331727
  const pasteDir = getPasteStoreDir();
331707
331728
  let files;
331708
331729
  try {
331709
- files = await readdir21(pasteDir);
331730
+ files = await readdir22(pasteDir);
331710
331731
  } catch {
331711
331732
  return;
331712
331733
  }
@@ -335692,7 +335713,7 @@ function Feedback({
335692
335713
  platform: env2.platform,
335693
335714
  gitRepo: envInfo.isGit,
335694
335715
  terminal: env2.terminal,
335695
- version: "1.23.2",
335716
+ version: "1.23.3",
335696
335717
  transcript: normalizeMessagesForAPI(messages),
335697
335718
  errors: sanitizedErrors,
335698
335719
  lastApiRequest: getLastAPIRequest(),
@@ -335884,7 +335905,7 @@ function Feedback({
335884
335905
  ", ",
335885
335906
  env2.terminal,
335886
335907
  ", v",
335887
- "1.23.2"
335908
+ "1.23.3"
335888
335909
  ]
335889
335910
  }, undefined, true, undefined, this)
335890
335911
  ]
@@ -335990,7 +336011,7 @@ ${sanitizedDescription}
335990
336011
  ` + `**Environment Info**
335991
336012
  ` + `- Platform: ${env2.platform}
335992
336013
  ` + `- Terminal: ${env2.terminal}
335993
- ` + `- Version: ${"1.23.2"}
336014
+ ` + `- Version: ${"1.23.3"}
335994
336015
  ` + `- Feedback ID: ${feedbackId}
335995
336016
  ` + `
335996
336017
  **Errors**
@@ -337935,7 +337956,7 @@ var init_copy2 = __esm(() => {
337935
337956
  });
337936
337957
 
337937
337958
  // src/utils/desktopDeepLink.ts
337938
- import { readdir as readdir22 } from "fs/promises";
337959
+ import { readdir as readdir23 } from "fs/promises";
337939
337960
  import { join as join124 } from "path";
337940
337961
  function isDevMode() {
337941
337962
  if (true) {
@@ -338001,7 +338022,7 @@ async function getDesktopVersion() {
338001
338022
  }
338002
338023
  const installDir = join124(localAppData, "URHQUR");
338003
338024
  try {
338004
- const entries = await readdir22(installDir);
338025
+ const entries = await readdir23(installDir);
338005
338026
  const versions2 = entries.filter((e) => e.startsWith("app-")).map((e) => e.slice(4)).filter((v) => import_semver7.coerce(v) !== null).sort((a2, b) => {
338006
338027
  const ca = import_semver7.coerce(a2);
338007
338028
  const cb = import_semver7.coerce(b);
@@ -339101,7 +339122,7 @@ function buildPrimarySection() {
339101
339122
  }, undefined, false, undefined, this);
339102
339123
  return [{
339103
339124
  label: "Version",
339104
- value: "1.23.2"
339125
+ value: "1.23.3"
339105
339126
  }, {
339106
339127
  label: "Session name",
339107
339128
  value: nameValue
@@ -342379,7 +342400,7 @@ function Config({
342379
342400
  }
342380
342401
  }, undefined, false, undefined, this)
342381
342402
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
342382
- currentVersion: "1.23.2",
342403
+ currentVersion: "1.23.3",
342383
342404
  onChoice: (choice) => {
342384
342405
  setShowSubmenu(null);
342385
342406
  setTabsHidden(false);
@@ -342391,7 +342412,7 @@ function Config({
342391
342412
  autoUpdatesChannel: "stable"
342392
342413
  };
342393
342414
  if (choice === "stay") {
342394
- newSettings.minimumVersion = "1.23.2";
342415
+ newSettings.minimumVersion = "1.23.3";
342395
342416
  }
342396
342417
  updateSettingsForSource("userSettings", newSettings);
342397
342418
  setSettingsData((prev_27) => ({
@@ -350461,7 +350482,7 @@ function HelpV2(t0) {
350461
350482
  let t6;
350462
350483
  if ($3[31] !== tabs) {
350463
350484
  t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
350464
- title: `UR v${"1.23.2"}`,
350485
+ title: `UR v${"1.23.3"}`,
350465
350486
  color: "professionalBlue",
350466
350487
  defaultTab: "general",
350467
350488
  children: tabs
@@ -368088,7 +368109,7 @@ function parsePluginArgs(args) {
368088
368109
  }
368089
368110
 
368090
368111
  // src/utils/plugins/validatePlugin.ts
368091
- import { readdir as readdir24, readFile as readFile42, stat as stat40 } from "fs/promises";
368112
+ import { readdir as readdir25, readFile as readFile42, stat as stat40 } from "fs/promises";
368092
368113
  import * as path18 from "path";
368093
368114
  function detectManifestType(filePath) {
368094
368115
  const fileName = path18.basename(filePath);
@@ -368515,7 +368536,7 @@ async function validateHooksJson(filePath) {
368515
368536
  async function collectMarkdown(dir, isSkillsDir) {
368516
368537
  let entries;
368517
368538
  try {
368518
- entries = await readdir24(dir, { withFileTypes: true });
368539
+ entries = await readdir25(dir, { withFileTypes: true });
368519
368540
  } catch (e) {
368520
368541
  const code = getErrnoCode(e);
368521
368542
  if (code === "ENOENT" || code === "ENOTDIR")
@@ -370426,7 +370447,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
370426
370447
  return [];
370427
370448
  }
370428
370449
  }
370429
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.23.2") {
370450
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.23.3") {
370430
370451
  if (process.env.USER_TYPE === "ant") {
370431
370452
  const changelog = "";
370432
370453
  if (changelog) {
@@ -370453,7 +370474,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.23.2")
370453
370474
  releaseNotes
370454
370475
  };
370455
370476
  }
370456
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.23.2") {
370477
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.23.3") {
370457
370478
  if (process.env.USER_TYPE === "ant") {
370458
370479
  const changelog = "";
370459
370480
  if (changelog) {
@@ -371623,7 +371644,7 @@ function getRecentActivitySync() {
371623
371644
  return cachedActivity;
371624
371645
  }
371625
371646
  function getLogoDisplayData() {
371626
- const version2 = process.env.DEMO_VERSION ?? "1.23.2";
371647
+ const version2 = process.env.DEMO_VERSION ?? "1.23.3";
371627
371648
  const serverUrl = getDirectConnectServerUrl();
371628
371649
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd2());
371629
371650
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -372412,7 +372433,7 @@ function LogoV2() {
372412
372433
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
372413
372434
  t2 = () => {
372414
372435
  const currentConfig = getGlobalConfig();
372415
- if (currentConfig.lastReleaseNotesSeen === "1.23.2") {
372436
+ if (currentConfig.lastReleaseNotesSeen === "1.23.3") {
372416
372437
  return;
372417
372438
  }
372418
372439
  saveGlobalConfig(_temp326);
@@ -373097,12 +373118,12 @@ function LogoV2() {
373097
373118
  return t41;
373098
373119
  }
373099
373120
  function _temp326(current) {
373100
- if (current.lastReleaseNotesSeen === "1.23.2") {
373121
+ if (current.lastReleaseNotesSeen === "1.23.3") {
373101
373122
  return current;
373102
373123
  }
373103
373124
  return {
373104
373125
  ...current,
373105
- lastReleaseNotesSeen: "1.23.2"
373126
+ lastReleaseNotesSeen: "1.23.3"
373106
373127
  };
373107
373128
  }
373108
373129
  function _temp243(s_0) {
@@ -390091,7 +390112,7 @@ function buildToolUseContext(tools, readFileStateCache) {
390091
390112
  async function handleInitialize() {
390092
390113
  return {
390093
390114
  name: "ur-agent",
390094
- version: "1.23.2",
390115
+ version: "1.23.3",
390095
390116
  protocolVersion: "0.1.0"
390096
390117
  };
390097
390118
  }
@@ -588697,7 +588718,7 @@ var init_rewind = __esm(() => {
588697
588718
 
588698
588719
  // src/utils/heapDumpService.ts
588699
588720
  import { createWriteStream as createWriteStream3, writeFileSync as writeFileSync51 } from "fs";
588700
- import { readdir as readdir26, readFile as readFile47, writeFile as writeFile40 } from "fs/promises";
588721
+ import { readdir as readdir27, readFile as readFile47, writeFile as writeFile40 } from "fs/promises";
588701
588722
  import { join as join188 } from "path";
588702
588723
  import { pipeline as pipeline2 } from "stream/promises";
588703
588724
  import {
@@ -588718,7 +588739,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
588718
588739
  const activeRequests = process._getActiveRequests().length;
588719
588740
  let openFileDescriptors;
588720
588741
  try {
588721
- openFileDescriptors = (await readdir26("/proc/self/fd")).length;
588742
+ openFileDescriptors = (await readdir27("/proc/self/fd")).length;
588722
588743
  } catch {}
588723
588744
  let smapsRollup;
588724
588745
  try {
@@ -588788,7 +588809,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
588788
588809
  smapsRollup,
588789
588810
  platform: process.platform,
588790
588811
  nodeVersion: process.version,
588791
- ccVersion: "1.23.2"
588812
+ ccVersion: "1.23.3"
588792
588813
  };
588793
588814
  }
588794
588815
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -589374,7 +589395,7 @@ var init_bridge_kick = __esm(() => {
589374
589395
  var call136 = async () => {
589375
589396
  return {
589376
589397
  type: "text",
589377
- value: "1.23.2"
589398
+ value: "1.23.3"
589378
589399
  };
589379
589400
  }, version2, version_default;
589380
589401
  var init_version = __esm(() => {
@@ -590645,7 +590666,7 @@ var init_sandbox_toggle2 = __esm(() => {
590645
590666
  });
590646
590667
 
590647
590668
  // src/utils/urInChrome/setupPortable.ts
590648
- import { readdir as readdir27 } from "fs/promises";
590669
+ import { readdir as readdir28 } from "fs/promises";
590649
590670
  import { join as join189 } from "path";
590650
590671
  function getExtensionIds() {
590651
590672
  return process.env.USER_TYPE === "ant" ? [PROD_EXTENSION_ID, DEV_EXTENSION_ID, ANT_EXTENSION_ID] : [PROD_EXTENSION_ID];
@@ -590659,7 +590680,7 @@ async function detectExtensionInstallationPortable(browserPaths, log) {
590659
590680
  for (const { browser: browser2, path: browserBasePath } of browserPaths) {
590660
590681
  let browserProfileEntries = [];
590661
590682
  try {
590662
- browserProfileEntries = await readdir27(browserBasePath, {
590683
+ browserProfileEntries = await readdir28(browserBasePath, {
590663
590684
  withFileTypes: true
590664
590685
  });
590665
590686
  } catch (e) {
@@ -590675,7 +590696,7 @@ async function detectExtensionInstallationPortable(browserPaths, log) {
590675
590696
  for (const extensionId of extensionIds) {
590676
590697
  const extensionPath = join189(browserBasePath, profile, "Extensions", extensionId);
590677
590698
  try {
590678
- await readdir27(extensionPath);
590699
+ await readdir28(extensionPath);
590679
590700
  log?.(`[UR in Chrome] Extension ${extensionId} found in ${browser2} ${profile}`);
590680
590701
  return { isInstalled: true, browser: browser2 };
590681
590702
  } catch {}
@@ -596971,7 +596992,7 @@ import {
596971
596992
  copyFile as copyFile9,
596972
596993
  mkdir as mkdir39,
596973
596994
  mkdtemp,
596974
- readdir as readdir28,
596995
+ readdir as readdir29,
596975
596996
  readFile as readFile49,
596976
596997
  rm as rm11,
596977
596998
  unlink as unlink21,
@@ -598432,7 +598453,7 @@ function generateHtmlReport(data, insights) {
598432
598453
  </html>`;
598433
598454
  }
598434
598455
  function buildExportData(data, insights, facets, remoteStats) {
598435
- const version3 = typeof MACRO !== "undefined" ? "1.23.2" : "unknown";
598456
+ const version3 = typeof MACRO !== "undefined" ? "1.23.3" : "unknown";
598436
598457
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
598437
598458
  const facets_summary = {
598438
598459
  total: facets.size,
@@ -598479,7 +598500,7 @@ async function scanAllSessions() {
598479
598500
  const projectsDir = getProjectsDir2();
598480
598501
  let dirents;
598481
598502
  try {
598482
- dirents = await readdir28(projectsDir, { withFileTypes: true });
598503
+ dirents = await readdir29(projectsDir, { withFileTypes: true });
598483
598504
  } catch {
598484
598505
  return [];
598485
598506
  }
@@ -598749,7 +598770,7 @@ var init_insights = __esm(() => {
598749
598770
  const projectsDir = join197(tempDir, "projects");
598750
598771
  let projectDirents;
598751
598772
  try {
598752
- projectDirents = await readdir28(projectsDir, { withFileTypes: true });
598773
+ projectDirents = await readdir29(projectsDir, { withFileTypes: true });
598753
598774
  } catch {
598754
598775
  return result;
598755
598776
  }
@@ -598765,7 +598786,7 @@ var init_insights = __esm(() => {
598765
598786
  } catch {}
598766
598787
  let files2;
598767
598788
  try {
598768
- files2 = await readdir28(projectPath, { withFileTypes: true });
598789
+ files2 = await readdir29(projectPath, { withFileTypes: true });
598769
598790
  } catch {
598770
598791
  return;
598771
598792
  }
@@ -599870,7 +599891,7 @@ import {
599870
599891
  appendFile as fsAppendFile,
599871
599892
  open as fsOpen2,
599872
599893
  mkdir as mkdir40,
599873
- readdir as readdir29,
599894
+ readdir as readdir30,
599874
599895
  readFile as readFile50,
599875
599896
  stat as stat41,
599876
599897
  unlink as unlink22,
@@ -599973,7 +599994,7 @@ async function listRemoteAgentMetadata() {
599973
599994
  const dir = getRemoteAgentsDir();
599974
599995
  let entries;
599975
599996
  try {
599976
- entries = await readdir29(dir, { withFileTypes: true });
599997
+ entries = await readdir30(dir, { withFileTypes: true });
599977
599998
  } catch (e) {
599978
599999
  if (isFsInaccessible(e))
599979
600000
  return [];
@@ -602032,7 +602053,7 @@ async function loadAllProjectsMessageLogsFull(limit) {
602032
602053
  const projectsDir = getProjectsDir2();
602033
602054
  let dirents;
602034
602055
  try {
602035
- dirents = await readdir29(projectsDir, { withFileTypes: true });
602056
+ dirents = await readdir30(projectsDir, { withFileTypes: true });
602036
602057
  } catch {
602037
602058
  return [];
602038
602059
  }
@@ -602057,7 +602078,7 @@ async function loadAllProjectsMessageLogsProgressive(limit, initialEnrichCount =
602057
602078
  const projectsDir = getProjectsDir2();
602058
602079
  let dirents;
602059
602080
  try {
602060
- dirents = await readdir29(projectsDir, { withFileTypes: true });
602081
+ dirents = await readdir30(projectsDir, { withFileTypes: true });
602061
602082
  } catch {
602062
602083
  return { logs: [], allStatLogs: [], nextIndex: 0 };
602063
602084
  }
@@ -602107,7 +602128,7 @@ async function getStatOnlyLogsForWorktrees(worktreePaths, limit) {
602107
602128
  const seenDirs = new Set;
602108
602129
  let allDirents;
602109
602130
  try {
602110
- allDirents = await readdir29(projectsDir, { withFileTypes: true });
602131
+ allDirents = await readdir30(projectsDir, { withFileTypes: true });
602111
602132
  } catch (e) {
602112
602133
  logForDebugging(`Failed to read projects dir ${projectsDir}, falling back to current project: ${e}`);
602113
602134
  const projectDir = getProjectDir2(getOriginalCwd());
@@ -602194,7 +602215,7 @@ async function loadAllSubagentTranscriptsFromDisk() {
602194
602215
  const subagentsDir = join198(getSessionProjectDir() ?? getProjectDir2(getOriginalCwd()), getSessionId(), "subagents");
602195
602216
  let entries;
602196
602217
  try {
602197
- entries = await readdir29(subagentsDir, { withFileTypes: true });
602218
+ entries = await readdir30(subagentsDir, { withFileTypes: true });
602198
602219
  } catch {
602199
602220
  return {};
602200
602221
  }
@@ -602308,7 +602329,7 @@ async function getSessionFilesWithMtime(projectDir) {
602308
602329
  const sessionFilesMap = new Map;
602309
602330
  let dirents;
602310
602331
  try {
602311
- dirents = await readdir29(projectDir, { withFileTypes: true });
602332
+ dirents = await readdir30(projectDir, { withFileTypes: true });
602312
602333
  } catch {
602313
602334
  return sessionFilesMap;
602314
602335
  }
@@ -602705,7 +602726,7 @@ var init_sessionStorage = __esm(() => {
602705
602726
  init_settings2();
602706
602727
  init_slowOperations();
602707
602728
  init_uuid();
602708
- VERSION5 = typeof MACRO !== "undefined" ? "1.23.2" : "unknown";
602729
+ VERSION5 = typeof MACRO !== "undefined" ? "1.23.3" : "unknown";
602709
602730
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
602710
602731
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
602711
602732
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -603910,7 +603931,7 @@ var init_filesystem = __esm(() => {
603910
603931
  });
603911
603932
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
603912
603933
  const nonce = randomBytes18(16).toString("hex");
603913
- return join200(getURTempDir(), "bundled-skills", "1.23.2", nonce);
603934
+ return join200(getURTempDir(), "bundled-skills", "1.23.3", nonce);
603914
603935
  });
603915
603936
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
603916
603937
  });
@@ -608455,7 +608476,7 @@ import { spawnSync as spawnSync5 } from "child_process";
608455
608476
  import {
608456
608477
  copyFile as copyFile10,
608457
608478
  mkdir as mkdir42,
608458
- readdir as readdir30,
608479
+ readdir as readdir31,
608459
608480
  readFile as readFile51,
608460
608481
  stat as stat44,
608461
608482
  symlink as symlink5,
@@ -608948,7 +608969,7 @@ async function cleanupStaleAgentWorktrees(cutoffDate) {
608948
608969
  const dir = worktreesDir2(gitRoot);
608949
608970
  let entries;
608950
608971
  try {
608951
- entries = await readdir30(dir);
608972
+ entries = await readdir31(dir);
608952
608973
  } catch {
608953
608974
  return 0;
608954
608975
  }
@@ -610200,7 +610221,7 @@ function computeFingerprint(messageText, version3) {
610200
610221
  }
610201
610222
  function computeFingerprintFromMessages(messages) {
610202
610223
  const firstMessageText = extractFirstMessageText(messages);
610203
- return computeFingerprint(firstMessageText, "1.23.2");
610224
+ return computeFingerprint(firstMessageText, "1.23.3");
610204
610225
  }
610205
610226
  var FINGERPRINT_SALT = "59cf53e54c78";
610206
610227
  var init_fingerprint = () => {};
@@ -612066,7 +612087,7 @@ async function sideQuery(opts) {
612066
612087
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
612067
612088
  }
612068
612089
  const messageText = extractFirstUserMessageText(messages);
612069
- const fingerprint = computeFingerprint(messageText, "1.23.2");
612090
+ const fingerprint = computeFingerprint(messageText, "1.23.3");
612070
612091
  const attributionHeader = getAttributionHeader(fingerprint);
612071
612092
  const systemBlocks = [
612072
612093
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -612345,7 +612366,7 @@ import {
612345
612366
  appendFile as appendFile6,
612346
612367
  chmod as chmod11,
612347
612368
  mkdir as mkdir43,
612348
- readdir as readdir31,
612369
+ readdir as readdir32,
612349
612370
  rmdir as rmdir3,
612350
612371
  stat as stat45,
612351
612372
  unlink as unlink24
@@ -612407,7 +612428,7 @@ class ChromeNativeHost {
612407
612428
  await mkdir43(socketDir, { recursive: true, mode: 448 });
612408
612429
  await chmod11(socketDir, 448).catch(() => {});
612409
612430
  try {
612410
- const files2 = await readdir31(socketDir);
612431
+ const files2 = await readdir32(socketDir);
612411
612432
  for (const file4 of files2) {
612412
612433
  if (!file4.endsWith(".sock")) {
612413
612434
  continue;
@@ -612468,7 +612489,7 @@ class ChromeNativeHost {
612468
612489
  } catch {}
612469
612490
  try {
612470
612491
  const socketDir = getSocketDir();
612471
- const remaining = await readdir31(socketDir);
612492
+ const remaining = await readdir32(socketDir);
612472
612493
  if (remaining.length === 0) {
612473
612494
  await rmdir3(socketDir);
612474
612495
  log("Removed empty socket directory");
@@ -616803,7 +616824,7 @@ function buildSystemInitMessage(inputs) {
616803
616824
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
616804
616825
  apiKeySource: getURHQApiKeyWithSource().source,
616805
616826
  betas: getSdkBetas(),
616806
- ur_version: "1.23.2",
616827
+ ur_version: "1.23.3",
616807
616828
  output_style: outputStyle2,
616808
616829
  agents: inputs.agents.map((agent) => agent.agentType),
616809
616830
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -631431,7 +631452,7 @@ var init_useVoiceEnabled = __esm(() => {
631431
631452
  function getSemverPart(version3) {
631432
631453
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
631433
631454
  }
631434
- function useUpdateNotification(updatedVersion, initialVersion = "1.23.2") {
631455
+ function useUpdateNotification(updatedVersion, initialVersion = "1.23.3") {
631435
631456
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react224.useState(() => getSemverPart(initialVersion));
631436
631457
  if (!updatedVersion) {
631437
631458
  return null;
@@ -631480,7 +631501,7 @@ function AutoUpdater({
631480
631501
  return;
631481
631502
  }
631482
631503
  if (false) {}
631483
- const currentVersion = "1.23.2";
631504
+ const currentVersion = "1.23.3";
631484
631505
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
631485
631506
  let latestVersion = await getLatestVersion(channel);
631486
631507
  const isDisabled = isAutoUpdaterDisabled();
@@ -631709,12 +631730,12 @@ function NativeAutoUpdater({
631709
631730
  logEvent("tengu_native_auto_updater_start", {});
631710
631731
  try {
631711
631732
  const maxVersion = await getMaxVersion();
631712
- if (maxVersion && gt("1.23.2", maxVersion)) {
631733
+ if (maxVersion && gt("1.23.3", maxVersion)) {
631713
631734
  const msg = await getMaxVersionMessage();
631714
631735
  setMaxVersionIssue(msg ?? "affects your version");
631715
631736
  }
631716
631737
  const result = await installLatest(channel);
631717
- const currentVersion = "1.23.2";
631738
+ const currentVersion = "1.23.3";
631718
631739
  const latencyMs = Date.now() - startTime;
631719
631740
  if (result.lockFailed) {
631720
631741
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -631851,17 +631872,17 @@ function PackageManagerAutoUpdater(t0) {
631851
631872
  const maxVersion = await getMaxVersion();
631852
631873
  if (maxVersion && latest && gt(latest, maxVersion)) {
631853
631874
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
631854
- if (gte("1.23.2", maxVersion)) {
631855
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.23.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
631875
+ if (gte("1.23.3", maxVersion)) {
631876
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.23.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
631856
631877
  setUpdateAvailable(false);
631857
631878
  return;
631858
631879
  }
631859
631880
  latest = maxVersion;
631860
631881
  }
631861
- const hasUpdate = latest && !gte("1.23.2", latest) && !shouldSkipVersion(latest);
631882
+ const hasUpdate = latest && !gte("1.23.3", latest) && !shouldSkipVersion(latest);
631862
631883
  setUpdateAvailable(!!hasUpdate);
631863
631884
  if (hasUpdate) {
631864
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.23.2"} -> ${latest}`);
631885
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.23.3"} -> ${latest}`);
631865
631886
  }
631866
631887
  };
631867
631888
  $3[0] = t1;
@@ -631895,7 +631916,7 @@ function PackageManagerAutoUpdater(t0) {
631895
631916
  wrap: "truncate",
631896
631917
  children: [
631897
631918
  "currentVersion: ",
631898
- "1.23.2"
631919
+ "1.23.3"
631899
631920
  ]
631900
631921
  }, undefined, true, undefined, this);
631901
631922
  $3[3] = verbose;
@@ -644257,7 +644278,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
644257
644278
  project_dir: getOriginalCwd(),
644258
644279
  added_dirs: addedDirs
644259
644280
  },
644260
- version: "1.23.2",
644281
+ version: "1.23.3",
644261
644282
  output_style: {
644262
644283
  name: outputStyleName
644263
644284
  },
@@ -655765,7 +655786,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
655765
655786
  } catch {}
655766
655787
  const data = {
655767
655788
  trigger: trigger2,
655768
- version: "1.23.2",
655789
+ version: "1.23.3",
655769
655790
  platform: process.platform,
655770
655791
  transcript,
655771
655792
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -667647,7 +667668,7 @@ function WelcomeV2() {
667647
667668
  dimColor: true,
667648
667669
  children: [
667649
667670
  "v",
667650
- "1.23.2"
667671
+ "1.23.3"
667651
667672
  ]
667652
667673
  }, undefined, true, undefined, this)
667653
667674
  ]
@@ -668907,7 +668928,7 @@ function completeOnboarding() {
668907
668928
  saveGlobalConfig((current) => ({
668908
668929
  ...current,
668909
668930
  hasCompletedOnboarding: true,
668910
- lastOnboardingVersion: "1.23.2"
668931
+ lastOnboardingVersion: "1.23.3"
668911
668932
  }));
668912
668933
  }
668913
668934
  function showDialog(root2, renderer) {
@@ -674008,7 +674029,7 @@ function appendToLog(path24, message) {
674008
674029
  cwd: getFsImplementation().cwd(),
674009
674030
  userType: process.env.USER_TYPE,
674010
674031
  sessionId: getSessionId(),
674011
- version: "1.23.2"
674032
+ version: "1.23.3"
674012
674033
  };
674013
674034
  getLogWriter(path24).write(messageWithTimestamp);
674014
674035
  }
@@ -678102,8 +678123,8 @@ async function getEnvLessBridgeConfig() {
678102
678123
  }
678103
678124
  async function checkEnvLessBridgeMinVersion() {
678104
678125
  const cfg = await getEnvLessBridgeConfig();
678105
- if (cfg.min_version && lt("1.23.2", cfg.min_version)) {
678106
- return `Your version of UR (${"1.23.2"}) is too old for Remote Control.
678126
+ if (cfg.min_version && lt("1.23.3", cfg.min_version)) {
678127
+ return `Your version of UR (${"1.23.3"}) is too old for Remote Control.
678107
678128
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
678108
678129
  }
678109
678130
  return null;
@@ -678577,7 +678598,7 @@ async function initBridgeCore(params) {
678577
678598
  const rawApi = createBridgeApiClient({
678578
678599
  baseUrl,
678579
678600
  getAccessToken,
678580
- runnerVersion: "1.23.2",
678601
+ runnerVersion: "1.23.3",
678581
678602
  onDebug: logForDebugging,
678582
678603
  onAuth401,
678583
678604
  getTrustedDeviceToken
@@ -684258,7 +684279,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
684258
684279
  setCwd(cwd3);
684259
684280
  const server2 = new Server({
684260
684281
  name: "ur/tengu",
684261
- version: "1.23.2"
684282
+ version: "1.23.3"
684262
684283
  }, {
684263
684284
  capabilities: {
684264
684285
  tools: {}
@@ -684388,7 +684409,7 @@ __export(exports_urDesktop, {
684388
684409
  readURDesktopMcpServers: () => readURDesktopMcpServers,
684389
684410
  getURDesktopConfigPath: () => getURDesktopConfigPath
684390
684411
  });
684391
- import { readdir as readdir32, readFile as readFile57, stat as stat52 } from "fs/promises";
684412
+ import { readdir as readdir33, readFile as readFile57, stat as stat52 } from "fs/promises";
684392
684413
  import { homedir as homedir39 } from "os";
684393
684414
  import { join as join217 } from "path";
684394
684415
  async function getURDesktopConfigPath() {
@@ -684411,7 +684432,7 @@ async function getURDesktopConfigPath() {
684411
684432
  try {
684412
684433
  const usersDir = "/mnt/c/Users";
684413
684434
  try {
684414
- const userDirs = await readdir32(usersDir, { withFileTypes: true });
684435
+ const userDirs = await readdir33(usersDir, { withFileTypes: true });
684415
684436
  for (const user of userDirs) {
684416
684437
  if (user.name === "Public" || user.name === "Default" || user.name === "Default User" || user.name === "All Users") {
684417
684438
  continue;
@@ -685874,7 +685895,7 @@ async function update() {
685874
685895
  await gracefulShutdown(1);
685875
685896
  }
685876
685897
  logEvent("tengu_update_check", {});
685877
- writeToStdout(`Current version: ${"1.23.2"}
685898
+ writeToStdout(`Current version: ${"1.23.3"}
685878
685899
  `);
685879
685900
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
685880
685901
  writeToStdout(`Checking for updates to ${channel} version...
@@ -685949,8 +685970,8 @@ async function update() {
685949
685970
  writeToStdout(`UR is managed by Homebrew.
685950
685971
  `);
685951
685972
  const latest = await getLatestVersion(channel);
685952
- if (latest && !gte("1.23.2", latest)) {
685953
- writeToStdout(`${formatUpdateAvailableMessage("1.23.2", latest)}
685973
+ if (latest && !gte("1.23.3", latest)) {
685974
+ writeToStdout(`${formatUpdateAvailableMessage("1.23.3", latest)}
685954
685975
  `);
685955
685976
  writeToStdout(`
685956
685977
  `);
@@ -685966,8 +685987,8 @@ async function update() {
685966
685987
  writeToStdout(`UR is managed by winget.
685967
685988
  `);
685968
685989
  const latest = await getLatestVersion(channel);
685969
- if (latest && !gte("1.23.2", latest)) {
685970
- writeToStdout(`${formatUpdateAvailableMessage("1.23.2", latest)}
685990
+ if (latest && !gte("1.23.3", latest)) {
685991
+ writeToStdout(`${formatUpdateAvailableMessage("1.23.3", latest)}
685971
685992
  `);
685972
685993
  writeToStdout(`
685973
685994
  `);
@@ -685983,8 +686004,8 @@ async function update() {
685983
686004
  writeToStdout(`UR is managed by apk.
685984
686005
  `);
685985
686006
  const latest = await getLatestVersion(channel);
685986
- if (latest && !gte("1.23.2", latest)) {
685987
- writeToStdout(`${formatUpdateAvailableMessage("1.23.2", latest)}
686007
+ if (latest && !gte("1.23.3", latest)) {
686008
+ writeToStdout(`${formatUpdateAvailableMessage("1.23.3", latest)}
685988
686009
  `);
685989
686010
  writeToStdout(`
685990
686011
  `);
@@ -686049,11 +686070,11 @@ async function update() {
686049
686070
  `);
686050
686071
  await gracefulShutdown(1);
686051
686072
  }
686052
- if (result.latestVersion === "1.23.2") {
686053
- writeToStdout(source_default.green(`UR is up to date (${"1.23.2"})`) + `
686073
+ if (result.latestVersion === "1.23.3") {
686074
+ writeToStdout(source_default.green(`UR is up to date (${"1.23.3"})`) + `
686054
686075
  `);
686055
686076
  } else {
686056
- writeToStdout(source_default.green(`Successfully updated from ${"1.23.2"} to version ${result.latestVersion}`) + `
686077
+ writeToStdout(source_default.green(`Successfully updated from ${"1.23.3"} to version ${result.latestVersion}`) + `
686057
686078
  `);
686058
686079
  await regenerateCompletionCache();
686059
686080
  }
@@ -686113,12 +686134,12 @@ async function update() {
686113
686134
  `);
686114
686135
  await gracefulShutdown(1);
686115
686136
  }
686116
- if (latestVersion === "1.23.2") {
686117
- writeToStdout(source_default.green(`UR is up to date (${"1.23.2"})`) + `
686137
+ if (latestVersion === "1.23.3") {
686138
+ writeToStdout(source_default.green(`UR is up to date (${"1.23.3"})`) + `
686118
686139
  `);
686119
686140
  await gracefulShutdown(0);
686120
686141
  }
686121
- writeToStdout(`${formatUpdateAvailableMessage("1.23.2", latestVersion)}
686142
+ writeToStdout(`${formatUpdateAvailableMessage("1.23.3", latestVersion)}
686122
686143
  `);
686123
686144
  writeToStdout(`Installing update...
686124
686145
  `);
@@ -686163,7 +686184,7 @@ async function update() {
686163
686184
  logForDebugging(`update: Installation status: ${status2}`);
686164
686185
  switch (status2) {
686165
686186
  case "success":
686166
- writeToStdout(source_default.green(`Successfully updated from ${"1.23.2"} to version ${latestVersion}`) + `
686187
+ writeToStdout(source_default.green(`Successfully updated from ${"1.23.3"} to version ${latestVersion}`) + `
686167
686188
  `);
686168
686189
  await regenerateCompletionCache();
686169
686190
  break;
@@ -687449,7 +687470,7 @@ ${customInstructions}` : customInstructions;
687449
687470
  }
687450
687471
  }
687451
687472
  logForDiagnosticsNoPII("info", "started", {
687452
- version: "1.23.2",
687473
+ version: "1.23.3",
687453
687474
  is_native_binary: isInBundledMode()
687454
687475
  });
687455
687476
  registerCleanup(async () => {
@@ -688233,7 +688254,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
688233
688254
  pendingHookMessages
688234
688255
  }, renderAndRun);
688235
688256
  }
688236
- }).version("1.23.2 (Ur)", "-v, --version", "Output the version number");
688257
+ }).version("1.23.3 (Ur)", "-v, --version", "Output the version number");
688237
688258
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
688238
688259
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
688239
688260
  if (canUserConfigureAdvisor()) {
@@ -689056,7 +689077,7 @@ if (false) {}
689056
689077
  async function main2() {
689057
689078
  const args = process.argv.slice(2);
689058
689079
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
689059
- console.log(`${"1.23.2"} (Ur)`);
689080
+ console.log(`${"1.23.3"} (Ur)`);
689060
689081
  return;
689061
689082
  }
689062
689083
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.23.2",
3
+ "version": "1.23.3",
4
4
  "description": "UR — autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",