ur-agent 1.13.1 → 1.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.13.2
4
+
5
+ ### Added
6
+ - **Top-level code-index and role-mode commands.** `ur code-index` and
7
+ `ur role-mode` are now registered in the main CLI, matching the shipped
8
+ command modules and help output.
9
+ - **Agent-task review controls.** `ur agent-task` now exposes `--force` and
10
+ `--no-review` so PR creation can either override or skip the self-review gate
11
+ intentionally.
12
+
13
+ ### Fixed
14
+ - **Self-review PR diff coverage.** The pre-PR self-review now resolves a real
15
+ base ref across local and remote branch names, includes committed branch
16
+ changes, tracked working-tree changes, and untracked files.
17
+ - **macOS image paste reliability.** Clipboard image detection now recognizes
18
+ TIFF-only pasteboard images, converts TIFF/BMP payloads to PNG before upload,
19
+ and surfaces real image-read failures instead of reporting "no image found."
20
+
21
+ ### Verified
22
+ - Rebuilt `dist/cli.js` at 1.13.2 and verified npm package metadata resolves
23
+ to `ur-agent@1.13.2`.
24
+
3
25
  ## 1.13.1
4
26
 
5
27
  ### Added
package/dist/cli.js CHANGED
@@ -12536,7 +12536,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
12536
12536
  function formatA2AAgentCard(options = {}, pretty = true) {
12537
12537
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
12538
12538
  }
12539
- var urVersion = "1.13.1", coverage, priorityRoadmap;
12539
+ var urVersion = "1.13.2", coverage, priorityRoadmap;
12540
12540
  var init_trends = __esm(() => {
12541
12541
  coverage = [
12542
12542
  {
@@ -70117,7 +70117,7 @@ var init_auth = __esm(() => {
70117
70117
 
70118
70118
  // src/utils/userAgent.ts
70119
70119
  function getURCodeUserAgent() {
70120
- return `ur/${"1.13.1"}`;
70120
+ return `ur/${"1.13.2"}`;
70121
70121
  }
70122
70122
 
70123
70123
  // src/utils/workloadContext.ts
@@ -70139,7 +70139,7 @@ function getUserAgent() {
70139
70139
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
70140
70140
  const workload = getWorkload();
70141
70141
  const workloadSuffix = workload ? `, workload/${workload}` : "";
70142
- return `ur-cli/${"1.13.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
70142
+ return `ur-cli/${"1.13.2"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
70143
70143
  }
70144
70144
  function getMCPUserAgent() {
70145
70145
  const parts = [];
@@ -70153,7 +70153,7 @@ function getMCPUserAgent() {
70153
70153
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
70154
70154
  }
70155
70155
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
70156
- return `ur/${"1.13.1"}${suffix}`;
70156
+ return `ur/${"1.13.2"}${suffix}`;
70157
70157
  }
70158
70158
  function getWebFetchUserAgent() {
70159
70159
  return `UR-User (${getURCodeUserAgent()})`;
@@ -70291,7 +70291,7 @@ var init_user = __esm(() => {
70291
70291
  deviceId,
70292
70292
  sessionId: getSessionId(),
70293
70293
  email: getEmail(),
70294
- appVersion: "1.13.1",
70294
+ appVersion: "1.13.2",
70295
70295
  platform: getHostPlatformForAnalytics(),
70296
70296
  organizationUuid,
70297
70297
  accountUuid,
@@ -76068,7 +76068,7 @@ var init_metadata = __esm(() => {
76068
76068
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
76069
76069
  WHITESPACE_REGEX = /\s+/;
76070
76070
  getVersionBase = memoize_default(() => {
76071
- const match = "1.13.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
76071
+ const match = "1.13.2".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
76072
76072
  return match ? match[0] : undefined;
76073
76073
  });
76074
76074
  buildEnvContext = memoize_default(async () => {
@@ -76108,7 +76108,7 @@ var init_metadata = __esm(() => {
76108
76108
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
76109
76109
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
76110
76110
  isURAiAuth: isURAISubscriber2(),
76111
- version: "1.13.1",
76111
+ version: "1.13.2",
76112
76112
  versionBase: getVersionBase(),
76113
76113
  buildTime: "",
76114
76114
  deploymentEnvironment: env3.detectDeploymentEnvironment(),
@@ -76778,7 +76778,7 @@ function initialize1PEventLogging() {
76778
76778
  const platform2 = getPlatform();
76779
76779
  const attributes = {
76780
76780
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
76781
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.13.1"
76781
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.13.2"
76782
76782
  };
76783
76783
  if (platform2 === "wsl") {
76784
76784
  const wslVersion = getWslVersion();
@@ -76805,7 +76805,7 @@ function initialize1PEventLogging() {
76805
76805
  })
76806
76806
  ]
76807
76807
  });
76808
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.13.1");
76808
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.13.2");
76809
76809
  }
76810
76810
  async function reinitialize1PEventLoggingIfConfigChanged() {
76811
76811
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -78669,7 +78669,7 @@ function getAttributionHeader(fingerprint) {
78669
78669
  if (!isAttributionHeaderEnabled()) {
78670
78670
  return "";
78671
78671
  }
78672
- const version2 = `${"1.13.1"}.${fingerprint}`;
78672
+ const version2 = `${"1.13.2"}.${fingerprint}`;
78673
78673
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
78674
78674
  const cch = "";
78675
78675
  const workload = getWorkload();
@@ -185297,7 +185297,7 @@ function getTelemetryAttributes() {
185297
185297
  attributes["session.id"] = sessionId;
185298
185298
  }
185299
185299
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
185300
- attributes["app.version"] = "1.13.1";
185300
+ attributes["app.version"] = "1.13.2";
185301
185301
  }
185302
185302
  const oauthAccount = getOauthAccountInfo();
185303
185303
  if (oauthAccount) {
@@ -221086,7 +221086,7 @@ function getInstallationEnv() {
221086
221086
  return;
221087
221087
  }
221088
221088
  function getURCodeVersion() {
221089
- return "1.13.1";
221089
+ return "1.13.2";
221090
221090
  }
221091
221091
  async function getInstalledVSCodeExtensionVersion(command) {
221092
221092
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -223814,7 +223814,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
223814
223814
  const client2 = new Client({
223815
223815
  name: "ur",
223816
223816
  title: "UR",
223817
- version: "1.13.1",
223817
+ version: "1.13.2",
223818
223818
  description: "URHQ's agentic coding tool",
223819
223819
  websiteUrl: PRODUCT_URL
223820
223820
  }, {
@@ -224168,7 +224168,7 @@ var init_client5 = __esm(() => {
224168
224168
  const client2 = new Client({
224169
224169
  name: "ur",
224170
224170
  title: "UR",
224171
- version: "1.13.1",
224171
+ version: "1.13.2",
224172
224172
  description: "URHQ's agentic coding tool",
224173
224173
  websiteUrl: PRODUCT_URL
224174
224174
  }, {
@@ -228852,8 +228852,8 @@ function getClipboardCommands() {
228852
228852
  const screenshotPath = tempPaths[platform4] || tempPaths.linux;
228853
228853
  const commands = {
228854
228854
  darwin: {
228855
- checkImage: `osascript -e 'the clipboard as \xABclass PNGf\xBB'`,
228856
- saveImage: `osascript -e 'set png_data to (the clipboard as \xABclass PNGf\xBB)' -e 'set fp to open for access POSIX file "${screenshotPath}" with write permission' -e 'set eof fp to 0' -e 'write png_data to fp' -e 'close access fp'`,
228855
+ checkImage: `osascript -e 'clipboard info' 2>/dev/null | grep -qiE 'PNGf|TIFF'`,
228856
+ saveImage: `osascript -e 'try' -e 'set imgData to (the clipboard as \xABclass PNGf\xBB)' -e 'on error' -e 'set imgData to (the clipboard as \xABclass TIFF\xBB)' -e 'end try' -e 'set fp to open for access POSIX file "${screenshotPath}" with write permission' -e 'set eof fp to 0' -e 'write imgData to fp' -e 'close access fp'`,
228857
228857
  getPath: `osascript -e 'get POSIX path of (the clipboard as \xABclass furl\xBB)'`,
228858
228858
  deleteFile: `rm -f "${screenshotPath}"`
228859
228859
  },
@@ -228875,6 +228875,12 @@ function getClipboardCommands() {
228875
228875
  screenshotPath
228876
228876
  };
228877
228877
  }
228878
+ function isBmpBuffer(buf) {
228879
+ return buf.length >= 2 && buf[0] === 66 && buf[1] === 77;
228880
+ }
228881
+ function isTiffBuffer(buf) {
228882
+ return buf.length >= 4 && (buf[0] === 73 && buf[1] === 73 && buf[2] === 42 && buf[3] === 0 || buf[0] === 77 && buf[1] === 77 && buf[2] === 0 && buf[3] === 42);
228883
+ }
228878
228884
  async function hasImageInClipboard() {
228879
228885
  if (process.platform !== "darwin") {
228880
228886
  return false;
@@ -228882,49 +228888,41 @@ async function hasImageInClipboard() {
228882
228888
  if (false) {}
228883
228889
  const result = await execFileNoThrowWithCwd("osascript", [
228884
228890
  "-e",
228885
- "the clipboard as \xABclass PNGf\xBB"
228891
+ "clipboard info"
228886
228892
  ]);
228887
- return result.code === 0;
228893
+ return result.code === 0 && /PNGf|TIFF/i.test(result.stdout ?? "");
228888
228894
  }
228889
228895
  async function getImageFromClipboard() {
228890
228896
  if (false) {}
228891
228897
  const { commands, screenshotPath } = getClipboardCommands();
228898
+ let checkResult;
228892
228899
  try {
228893
- const checkResult = await execa(commands.checkImage, {
228894
- shell: true,
228895
- reject: false
228896
- });
228897
- if (checkResult.exitCode !== 0) {
228898
- return null;
228899
- }
228900
- const saveResult = await execa(commands.saveImage, {
228901
- shell: true,
228902
- reject: false
228903
- });
228904
- if (saveResult.exitCode !== 0) {
228905
- return null;
228906
- }
228907
- let imageBuffer = getFsImplementation().readFileBytesSync(screenshotPath);
228908
- if (imageBuffer.length >= 2 && imageBuffer[0] === 66 && imageBuffer[1] === 77) {
228909
- try {
228910
- const sharp = await getImageProcessor();
228911
- imageBuffer = await sharp(imageBuffer).png().toBuffer();
228912
- } catch (e) {
228913
- logError2(e);
228914
- }
228915
- }
228916
- const resized = await maybeResizeAndDownsampleImageBuffer(imageBuffer, imageBuffer.length, "png");
228917
- const base64Image = resized.buffer.toString("base64");
228918
- const mediaType = detectImageFormatFromBase64(base64Image);
228919
- execa(commands.deleteFile, { shell: true, reject: false });
228920
- return {
228921
- base64: base64Image,
228922
- mediaType,
228923
- dimensions: resized.dimensions
228924
- };
228925
- } catch {
228900
+ checkResult = await execa(commands.checkImage, { shell: true, reject: false });
228901
+ } catch (e) {
228902
+ logForDebugging(`Clipboard image check could not run: ${e instanceof Error ? e.message : String(e)}`, { level: "warn" });
228903
+ return null;
228904
+ }
228905
+ if (checkResult.exitCode !== 0) {
228926
228906
  return null;
228927
228907
  }
228908
+ const saveResult = await execa(commands.saveImage, { shell: true, reject: false });
228909
+ if (saveResult.exitCode !== 0) {
228910
+ throw new Error(`Could not read the clipboard image (osascript: ${saveResult.stderr?.trim() || "unknown error"})`);
228911
+ }
228912
+ let imageBuffer = getFsImplementation().readFileBytesSync(screenshotPath);
228913
+ if (isBmpBuffer(imageBuffer) || isTiffBuffer(imageBuffer)) {
228914
+ const sharp = await getImageProcessor();
228915
+ imageBuffer = await sharp(imageBuffer).png().toBuffer();
228916
+ }
228917
+ const resized = await maybeResizeAndDownsampleImageBuffer(imageBuffer, imageBuffer.length, "png");
228918
+ const base64Image = resized.buffer.toString("base64");
228919
+ const mediaType = detectImageFormatFromBase64(base64Image);
228920
+ execa(commands.deleteFile, { shell: true, reject: false });
228921
+ return {
228922
+ base64: base64Image,
228923
+ mediaType,
228924
+ dimensions: resized.dimensions
228925
+ };
228928
228926
  }
228929
228927
  async function getImagePathFromClipboard() {
228930
228928
  const { commands } = getClipboardCommands();
@@ -229593,7 +229591,7 @@ function SelectInputOption(t0) {
229593
229591
  if (imageData) {
229594
229592
  onImagePaste(imageData.base64, imageData.mediaType, undefined, imageData.dimensions);
229595
229593
  }
229596
- });
229594
+ }).catch(() => {});
229597
229595
  };
229598
229596
  $3[16] = onImagePaste;
229599
229597
  $3[17] = t10;
@@ -233887,9 +233885,9 @@ async function assertMinVersion() {
233887
233885
  if (false) {}
233888
233886
  try {
233889
233887
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
233890
- if (versionConfig.minVersion && lt("1.13.1", versionConfig.minVersion)) {
233888
+ if (versionConfig.minVersion && lt("1.13.2", versionConfig.minVersion)) {
233891
233889
  console.error(`
233892
- It looks like your version of UR (${"1.13.1"}) needs an update.
233890
+ It looks like your version of UR (${"1.13.2"}) needs an update.
233893
233891
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
233894
233892
 
233895
233893
  To update, please run:
@@ -234105,7 +234103,7 @@ async function installGlobalPackage(specificVersion) {
234105
234103
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
234106
234104
  logEvent("tengu_auto_updater_lock_contention", {
234107
234105
  pid: process.pid,
234108
- currentVersion: "1.13.1"
234106
+ currentVersion: "1.13.2"
234109
234107
  });
234110
234108
  return "in_progress";
234111
234109
  }
@@ -234114,7 +234112,7 @@ async function installGlobalPackage(specificVersion) {
234114
234112
  if (!env3.isRunningWithBun() && env3.isNpmFromWindowsPath()) {
234115
234113
  logError2(new Error("Windows NPM detected in WSL environment"));
234116
234114
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
234117
- currentVersion: "1.13.1"
234115
+ currentVersion: "1.13.2"
234118
234116
  });
234119
234117
  console.error(`
234120
234118
  Error: Windows NPM detected in WSL
@@ -234649,7 +234647,7 @@ function detectLinuxGlobPatternWarnings() {
234649
234647
  }
234650
234648
  async function getDoctorDiagnostic() {
234651
234649
  const installationType = await getCurrentInstallationType();
234652
- const version2 = typeof MACRO !== "undefined" ? "1.13.1" : "unknown";
234650
+ const version2 = typeof MACRO !== "undefined" ? "1.13.2" : "unknown";
234653
234651
  const installationPath = await getInstallationPath();
234654
234652
  const invokedBinary = getInvokedBinary();
234655
234653
  const multipleInstallations = await detectMultipleInstallations();
@@ -235584,8 +235582,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
235584
235582
  const maxVersion = await getMaxVersion();
235585
235583
  if (maxVersion && gt(version2, maxVersion)) {
235586
235584
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
235587
- if (gte("1.13.1", maxVersion)) {
235588
- logForDebugging(`Native installer: current version ${"1.13.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
235585
+ if (gte("1.13.2", maxVersion)) {
235586
+ logForDebugging(`Native installer: current version ${"1.13.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
235589
235587
  logEvent("tengu_native_update_skipped_max_version", {
235590
235588
  latency_ms: Date.now() - startTime,
235591
235589
  max_version: maxVersion,
@@ -235596,7 +235594,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
235596
235594
  version2 = maxVersion;
235597
235595
  }
235598
235596
  }
235599
- if (!forceReinstall && version2 === "1.13.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
235597
+ if (!forceReinstall && version2 === "1.13.2" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
235600
235598
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
235601
235599
  logEvent("tengu_native_update_complete", {
235602
235600
  latency_ms: Date.now() - startTime,
@@ -330267,7 +330265,7 @@ function Feedback({
330267
330265
  platform: env3.platform,
330268
330266
  gitRepo: envInfo.isGit,
330269
330267
  terminal: env3.terminal,
330270
- version: "1.13.1",
330268
+ version: "1.13.2",
330271
330269
  transcript: normalizeMessagesForAPI(messages),
330272
330270
  errors: sanitizedErrors,
330273
330271
  lastApiRequest: getLastAPIRequest(),
@@ -330459,7 +330457,7 @@ function Feedback({
330459
330457
  ", ",
330460
330458
  env3.terminal,
330461
330459
  ", v",
330462
- "1.13.1"
330460
+ "1.13.2"
330463
330461
  ]
330464
330462
  }, undefined, true, undefined, this)
330465
330463
  ]
@@ -330565,7 +330563,7 @@ ${sanitizedDescription}
330565
330563
  ` + `**Environment Info**
330566
330564
  ` + `- Platform: ${env3.platform}
330567
330565
  ` + `- Terminal: ${env3.terminal}
330568
- ` + `- Version: ${"1.13.1"}
330566
+ ` + `- Version: ${"1.13.2"}
330569
330567
  ` + `- Feedback ID: ${feedbackId}
330570
330568
  ` + `
330571
330569
  **Errors**
@@ -333675,7 +333673,7 @@ function buildPrimarySection() {
333675
333673
  }, undefined, false, undefined, this);
333676
333674
  return [{
333677
333675
  label: "Version",
333678
- value: "1.13.1"
333676
+ value: "1.13.2"
333679
333677
  }, {
333680
333678
  label: "Session name",
333681
333679
  value: nameValue
@@ -336953,7 +336951,7 @@ function Config({
336953
336951
  }
336954
336952
  }, undefined, false, undefined, this)
336955
336953
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
336956
- currentVersion: "1.13.1",
336954
+ currentVersion: "1.13.2",
336957
336955
  onChoice: (choice) => {
336958
336956
  setShowSubmenu(null);
336959
336957
  setTabsHidden(false);
@@ -336965,7 +336963,7 @@ function Config({
336965
336963
  autoUpdatesChannel: "stable"
336966
336964
  };
336967
336965
  if (choice === "stay") {
336968
- newSettings.minimumVersion = "1.13.1";
336966
+ newSettings.minimumVersion = "1.13.2";
336969
336967
  }
336970
336968
  updateSettingsForSource("userSettings", newSettings);
336971
336969
  setSettingsData((prev_27) => ({
@@ -345035,7 +345033,7 @@ function HelpV2(t0) {
345035
345033
  let t6;
345036
345034
  if ($3[31] !== tabs) {
345037
345035
  t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
345038
- title: `UR v${"1.13.1"}`,
345036
+ title: `UR v${"1.13.2"}`,
345039
345037
  color: "professionalBlue",
345040
345038
  defaultTab: "general",
345041
345039
  children: tabs
@@ -364638,7 +364636,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
364638
364636
  return [];
364639
364637
  }
364640
364638
  }
364641
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.13.1") {
364639
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.13.2") {
364642
364640
  if (process.env.USER_TYPE === "ant") {
364643
364641
  const changelog = "";
364644
364642
  if (changelog) {
@@ -364665,7 +364663,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.13.1")
364665
364663
  releaseNotes
364666
364664
  };
364667
364665
  }
364668
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.13.1") {
364666
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.13.2") {
364669
364667
  if (process.env.USER_TYPE === "ant") {
364670
364668
  const changelog = "";
364671
364669
  if (changelog) {
@@ -365835,7 +365833,7 @@ function getRecentActivitySync() {
365835
365833
  return cachedActivity;
365836
365834
  }
365837
365835
  function getLogoDisplayData() {
365838
- const version2 = process.env.DEMO_VERSION ?? "1.13.1";
365836
+ const version2 = process.env.DEMO_VERSION ?? "1.13.2";
365839
365837
  const serverUrl = getDirectConnectServerUrl();
365840
365838
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
365841
365839
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -366624,7 +366622,7 @@ function LogoV2() {
366624
366622
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
366625
366623
  t2 = () => {
366626
366624
  const currentConfig = getGlobalConfig();
366627
- if (currentConfig.lastReleaseNotesSeen === "1.13.1") {
366625
+ if (currentConfig.lastReleaseNotesSeen === "1.13.2") {
366628
366626
  return;
366629
366627
  }
366630
366628
  saveGlobalConfig(_temp326);
@@ -367309,12 +367307,12 @@ function LogoV2() {
367309
367307
  return t41;
367310
367308
  }
367311
367309
  function _temp326(current) {
367312
- if (current.lastReleaseNotesSeen === "1.13.1") {
367310
+ if (current.lastReleaseNotesSeen === "1.13.2") {
367313
367311
  return current;
367314
367312
  }
367315
367313
  return {
367316
367314
  ...current,
367317
- lastReleaseNotesSeen: "1.13.1"
367315
+ lastReleaseNotesSeen: "1.13.2"
367318
367316
  };
367319
367317
  }
367320
367318
  function _temp243(s_0) {
@@ -382956,21 +382954,53 @@ async function exec4(file2, args) {
382956
382954
  preserveOutputOnError: true
382957
382955
  });
382958
382956
  }
382959
- async function getReviewDiff(base2) {
382960
- const parts = [];
382961
- const uncommitted = await git(["diff", "HEAD"]);
382962
- if (uncommitted.code === 0 && uncommitted.stdout.trim()) {
382963
- parts.push(uncommitted.stdout);
382964
- }
382965
- const baseRef = base2 ?? await getDefaultBranch().catch(() => {
382957
+ async function refExists(ref) {
382958
+ const r = await git(["rev-parse", "--verify", "--quiet", `${ref}^{commit}`]);
382959
+ return r.code === 0;
382960
+ }
382961
+ async function resolveBaseRef(explicit) {
382962
+ const head = (await git(["rev-parse", "--abbrev-ref", "HEAD"])).stdout.trim();
382963
+ const candidates = [];
382964
+ if (explicit)
382965
+ candidates.push(explicit);
382966
+ const def2 = await getDefaultBranch().catch(() => {
382966
382967
  return;
382967
382968
  });
382969
+ if (def2)
382970
+ candidates.push(def2, `origin/${def2}`);
382971
+ candidates.push("origin/HEAD", "main", "master", "origin/main", "origin/master");
382972
+ for (const ref of candidates) {
382973
+ if (!ref || ref === head)
382974
+ continue;
382975
+ if (await refExists(ref))
382976
+ return ref;
382977
+ }
382978
+ return;
382979
+ }
382980
+ async function getReviewDiff(base2) {
382981
+ const parts = [];
382982
+ const baseRef = await resolveBaseRef(base2);
382968
382983
  if (baseRef) {
382969
382984
  const branchDiff = await git(["diff", `${baseRef}...HEAD`]);
382970
382985
  if (branchDiff.code === 0 && branchDiff.stdout.trim()) {
382971
382986
  parts.push(branchDiff.stdout);
382972
382987
  }
382973
382988
  }
382989
+ const uncommitted = await git(["diff", "HEAD"]);
382990
+ if (uncommitted.code === 0 && uncommitted.stdout.trim()) {
382991
+ parts.push(uncommitted.stdout);
382992
+ }
382993
+ const untracked = await git(["ls-files", "--others", "--exclude-standard"]);
382994
+ if (untracked.code === 0 && untracked.stdout.trim()) {
382995
+ const files = untracked.stdout.split(`
382996
+ `).map((s) => s.trim()).filter(Boolean).slice(0, 200);
382997
+ for (const file2 of files) {
382998
+ const d = await git(["diff", "--no-index", "--", "/dev/null", file2]);
382999
+ if (d.stdout.trim()) {
383000
+ parts.push(d.stdout);
383001
+ }
383002
+ }
383003
+ }
382974
383004
  return parts.join(`
382975
383005
  `);
382976
383006
  }
@@ -399182,7 +399212,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
399182
399212
  smapsRollup,
399183
399213
  platform: process.platform,
399184
399214
  nodeVersion: process.version,
399185
- ccVersion: "1.13.1"
399215
+ ccVersion: "1.13.2"
399186
399216
  };
399187
399217
  }
399188
399218
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -399768,7 +399798,7 @@ var init_bridge_kick = __esm(() => {
399768
399798
  var call104 = async () => {
399769
399799
  return {
399770
399800
  type: "text",
399771
- value: "1.13.1"
399801
+ value: "1.13.2"
399772
399802
  };
399773
399803
  }, version2, version_default;
399774
399804
  var init_version = __esm(() => {
@@ -408972,7 +409002,7 @@ function generateHtmlReport(data, insights) {
408972
409002
  </html>`;
408973
409003
  }
408974
409004
  function buildExportData(data, insights, facets, remoteStats) {
408975
- const version3 = typeof MACRO !== "undefined" ? "1.13.1" : "unknown";
409005
+ const version3 = typeof MACRO !== "undefined" ? "1.13.2" : "unknown";
408976
409006
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
408977
409007
  const facets_summary = {
408978
409008
  total: facets.size,
@@ -413183,7 +413213,7 @@ var init_sessionStorage = __esm(() => {
413183
413213
  init_settings2();
413184
413214
  init_slowOperations();
413185
413215
  init_uuid();
413186
- VERSION5 = typeof MACRO !== "undefined" ? "1.13.1" : "unknown";
413216
+ VERSION5 = typeof MACRO !== "undefined" ? "1.13.2" : "unknown";
413187
413217
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
413188
413218
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
413189
413219
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -414388,7 +414418,7 @@ var init_filesystem = __esm(() => {
414388
414418
  });
414389
414419
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
414390
414420
  const nonce = randomBytes18(16).toString("hex");
414391
- return join158(getURTempDir(), "bundled-skills", "1.13.1", nonce);
414421
+ return join158(getURTempDir(), "bundled-skills", "1.13.2", nonce);
414392
414422
  });
414393
414423
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
414394
414424
  });
@@ -420419,7 +420449,7 @@ function computeFingerprint(messageText, version3) {
420419
420449
  }
420420
420450
  function computeFingerprintFromMessages(messages) {
420421
420451
  const firstMessageText = extractFirstMessageText(messages);
420422
- return computeFingerprint(firstMessageText, "1.13.1");
420452
+ return computeFingerprint(firstMessageText, "1.13.2");
420423
420453
  }
420424
420454
  var FINGERPRINT_SALT = "59cf53e54c78";
420425
420455
  var init_fingerprint = () => {};
@@ -422285,7 +422315,7 @@ async function sideQuery(opts) {
422285
422315
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
422286
422316
  }
422287
422317
  const messageText = extractFirstUserMessageText(messages);
422288
- const fingerprint = computeFingerprint(messageText, "1.13.1");
422318
+ const fingerprint = computeFingerprint(messageText, "1.13.2");
422289
422319
  const attributionHeader = getAttributionHeader(fingerprint);
422290
422320
  const systemBlocks = [
422291
422321
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -427022,7 +427052,7 @@ function buildSystemInitMessage(inputs) {
427022
427052
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
427023
427053
  apiKeySource: getURHQApiKeyWithSource().source,
427024
427054
  betas: getSdkBetas(),
427025
- ur_version: "1.13.1",
427055
+ ur_version: "1.13.2",
427026
427056
  output_style: outputStyle2,
427027
427057
  agents: inputs.agents.map((agent) => agent.agentType),
427028
427058
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -441650,7 +441680,7 @@ var init_useVoiceEnabled = __esm(() => {
441650
441680
  function getSemverPart(version3) {
441651
441681
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
441652
441682
  }
441653
- function useUpdateNotification(updatedVersion, initialVersion = "1.13.1") {
441683
+ function useUpdateNotification(updatedVersion, initialVersion = "1.13.2") {
441654
441684
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react224.useState(() => getSemverPart(initialVersion));
441655
441685
  if (!updatedVersion) {
441656
441686
  return null;
@@ -441690,7 +441720,7 @@ function AutoUpdater({
441690
441720
  return;
441691
441721
  }
441692
441722
  if (false) {}
441693
- const currentVersion = "1.13.1";
441723
+ const currentVersion = "1.13.2";
441694
441724
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
441695
441725
  let latestVersion = await getLatestVersion(channel);
441696
441726
  const isDisabled = isAutoUpdaterDisabled();
@@ -441903,12 +441933,12 @@ function NativeAutoUpdater({
441903
441933
  logEvent("tengu_native_auto_updater_start", {});
441904
441934
  try {
441905
441935
  const maxVersion = await getMaxVersion();
441906
- if (maxVersion && gt("1.13.1", maxVersion)) {
441936
+ if (maxVersion && gt("1.13.2", maxVersion)) {
441907
441937
  const msg = await getMaxVersionMessage();
441908
441938
  setMaxVersionIssue(msg ?? "affects your version");
441909
441939
  }
441910
441940
  const result = await installLatest(channel);
441911
- const currentVersion = "1.13.1";
441941
+ const currentVersion = "1.13.2";
441912
441942
  const latencyMs = Date.now() - startTime;
441913
441943
  if (result.lockFailed) {
441914
441944
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -442045,17 +442075,17 @@ function PackageManagerAutoUpdater(t0) {
442045
442075
  const maxVersion = await getMaxVersion();
442046
442076
  if (maxVersion && latest && gt(latest, maxVersion)) {
442047
442077
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
442048
- if (gte("1.13.1", maxVersion)) {
442049
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.13.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
442078
+ if (gte("1.13.2", maxVersion)) {
442079
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.13.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
442050
442080
  setUpdateAvailable(false);
442051
442081
  return;
442052
442082
  }
442053
442083
  latest = maxVersion;
442054
442084
  }
442055
- const hasUpdate = latest && !gte("1.13.1", latest) && !shouldSkipVersion(latest);
442085
+ const hasUpdate = latest && !gte("1.13.2", latest) && !shouldSkipVersion(latest);
442056
442086
  setUpdateAvailable(!!hasUpdate);
442057
442087
  if (hasUpdate) {
442058
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.13.1"} -> ${latest}`);
442088
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.13.2"} -> ${latest}`);
442059
442089
  }
442060
442090
  };
442061
442091
  $3[0] = t1;
@@ -442089,7 +442119,7 @@ function PackageManagerAutoUpdater(t0) {
442089
442119
  wrap: "truncate",
442090
442120
  children: [
442091
442121
  "currentVersion: ",
442092
- "1.13.1"
442122
+ "1.13.2"
442093
442123
  ]
442094
442124
  }, undefined, true, undefined, this);
442095
442125
  $3[3] = verbose;
@@ -454451,7 +454481,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
454451
454481
  project_dir: getOriginalCwd(),
454452
454482
  added_dirs: addedDirs
454453
454483
  },
454454
- version: "1.13.1",
454484
+ version: "1.13.2",
454455
454485
  output_style: {
454456
454486
  name: outputStyleName
454457
454487
  },
@@ -465947,7 +465977,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
465947
465977
  } catch {}
465948
465978
  const data = {
465949
465979
  trigger,
465950
- version: "1.13.1",
465980
+ version: "1.13.2",
465951
465981
  platform: process.platform,
465952
465982
  transcript,
465953
465983
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -477862,7 +477892,7 @@ function WelcomeV2() {
477862
477892
  dimColor: true,
477863
477893
  children: [
477864
477894
  "v",
477865
- "1.13.1"
477895
+ "1.13.2"
477866
477896
  ]
477867
477897
  }, undefined, true, undefined, this)
477868
477898
  ]
@@ -479122,7 +479152,7 @@ function completeOnboarding() {
479122
479152
  saveGlobalConfig((current) => ({
479123
479153
  ...current,
479124
479154
  hasCompletedOnboarding: true,
479125
- lastOnboardingVersion: "1.13.1"
479155
+ lastOnboardingVersion: "1.13.2"
479126
479156
  }));
479127
479157
  }
479128
479158
  function showDialog(root2, renderer) {
@@ -483582,7 +483612,7 @@ function appendToLog(path24, message) {
483582
483612
  cwd: getFsImplementation().cwd(),
483583
483613
  userType: process.env.USER_TYPE,
483584
483614
  sessionId: getSessionId(),
483585
- version: "1.13.1"
483615
+ version: "1.13.2"
483586
483616
  };
483587
483617
  getLogWriter(path24).write(messageWithTimestamp);
483588
483618
  }
@@ -487608,8 +487638,8 @@ async function getEnvLessBridgeConfig() {
487608
487638
  }
487609
487639
  async function checkEnvLessBridgeMinVersion() {
487610
487640
  const cfg = await getEnvLessBridgeConfig();
487611
- if (cfg.min_version && lt("1.13.1", cfg.min_version)) {
487612
- return `Your version of UR (${"1.13.1"}) is too old for Remote Control.
487641
+ if (cfg.min_version && lt("1.13.2", cfg.min_version)) {
487642
+ return `Your version of UR (${"1.13.2"}) is too old for Remote Control.
487613
487643
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
487614
487644
  }
487615
487645
  return null;
@@ -488083,7 +488113,7 @@ async function initBridgeCore(params) {
488083
488113
  const rawApi = createBridgeApiClient({
488084
488114
  baseUrl,
488085
488115
  getAccessToken,
488086
- runnerVersion: "1.13.1",
488116
+ runnerVersion: "1.13.2",
488087
488117
  onDebug: logForDebugging,
488088
488118
  onAuth401,
488089
488119
  getTrustedDeviceToken
@@ -493748,7 +493778,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
493748
493778
  setCwd(cwd3);
493749
493779
  const server = new Server({
493750
493780
  name: "ur/tengu",
493751
- version: "1.13.1"
493781
+ version: "1.13.2"
493752
493782
  }, {
493753
493783
  capabilities: {
493754
493784
  tools: {}
@@ -495359,7 +495389,7 @@ __export(exports_update, {
495359
495389
  });
495360
495390
  async function update() {
495361
495391
  logEvent("tengu_update_check", {});
495362
- writeToStdout(`Current version: ${"1.13.1"}
495392
+ writeToStdout(`Current version: ${"1.13.2"}
495363
495393
  `);
495364
495394
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
495365
495395
  writeToStdout(`Checking for updates to ${channel} version...
@@ -495434,8 +495464,8 @@ async function update() {
495434
495464
  writeToStdout(`UR is managed by Homebrew.
495435
495465
  `);
495436
495466
  const latest = await getLatestVersion(channel);
495437
- if (latest && !gte("1.13.1", latest)) {
495438
- writeToStdout(`Update available: ${"1.13.1"} \u2192 ${latest}
495467
+ if (latest && !gte("1.13.2", latest)) {
495468
+ writeToStdout(`Update available: ${"1.13.2"} \u2192 ${latest}
495439
495469
  `);
495440
495470
  writeToStdout(`
495441
495471
  `);
@@ -495451,8 +495481,8 @@ async function update() {
495451
495481
  writeToStdout(`UR is managed by winget.
495452
495482
  `);
495453
495483
  const latest = await getLatestVersion(channel);
495454
- if (latest && !gte("1.13.1", latest)) {
495455
- writeToStdout(`Update available: ${"1.13.1"} \u2192 ${latest}
495484
+ if (latest && !gte("1.13.2", latest)) {
495485
+ writeToStdout(`Update available: ${"1.13.2"} \u2192 ${latest}
495456
495486
  `);
495457
495487
  writeToStdout(`
495458
495488
  `);
@@ -495468,8 +495498,8 @@ async function update() {
495468
495498
  writeToStdout(`UR is managed by apk.
495469
495499
  `);
495470
495500
  const latest = await getLatestVersion(channel);
495471
- if (latest && !gte("1.13.1", latest)) {
495472
- writeToStdout(`Update available: ${"1.13.1"} \u2192 ${latest}
495501
+ if (latest && !gte("1.13.2", latest)) {
495502
+ writeToStdout(`Update available: ${"1.13.2"} \u2192 ${latest}
495473
495503
  `);
495474
495504
  writeToStdout(`
495475
495505
  `);
@@ -495534,11 +495564,11 @@ async function update() {
495534
495564
  `);
495535
495565
  await gracefulShutdown(1);
495536
495566
  }
495537
- if (result.latestVersion === "1.13.1") {
495538
- writeToStdout(source_default.green(`UR is up to date (${"1.13.1"})`) + `
495567
+ if (result.latestVersion === "1.13.2") {
495568
+ writeToStdout(source_default.green(`UR is up to date (${"1.13.2"})`) + `
495539
495569
  `);
495540
495570
  } else {
495541
- writeToStdout(source_default.green(`Successfully updated from ${"1.13.1"} to version ${result.latestVersion}`) + `
495571
+ writeToStdout(source_default.green(`Successfully updated from ${"1.13.2"} to version ${result.latestVersion}`) + `
495542
495572
  `);
495543
495573
  await regenerateCompletionCache();
495544
495574
  }
@@ -495598,12 +495628,12 @@ async function update() {
495598
495628
  `);
495599
495629
  await gracefulShutdown(1);
495600
495630
  }
495601
- if (latestVersion === "1.13.1") {
495602
- writeToStdout(source_default.green(`UR is up to date (${"1.13.1"})`) + `
495631
+ if (latestVersion === "1.13.2") {
495632
+ writeToStdout(source_default.green(`UR is up to date (${"1.13.2"})`) + `
495603
495633
  `);
495604
495634
  await gracefulShutdown(0);
495605
495635
  }
495606
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.13.1"})
495636
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.13.2"})
495607
495637
  `);
495608
495638
  writeToStdout(`Installing update...
495609
495639
  `);
@@ -495648,7 +495678,7 @@ async function update() {
495648
495678
  logForDebugging(`update: Installation status: ${status2}`);
495649
495679
  switch (status2) {
495650
495680
  case "success":
495651
- writeToStdout(source_default.green(`Successfully updated from ${"1.13.1"} to version ${latestVersion}`) + `
495681
+ writeToStdout(source_default.green(`Successfully updated from ${"1.13.2"} to version ${latestVersion}`) + `
495652
495682
  `);
495653
495683
  await regenerateCompletionCache();
495654
495684
  break;
@@ -496898,7 +496928,7 @@ ${customInstructions}` : customInstructions;
496898
496928
  }
496899
496929
  }
496900
496930
  logForDiagnosticsNoPII("info", "started", {
496901
- version: "1.13.1",
496931
+ version: "1.13.2",
496902
496932
  is_native_binary: isInBundledMode()
496903
496933
  });
496904
496934
  registerCleanup(async () => {
@@ -497682,7 +497712,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
497682
497712
  pendingHookMessages
497683
497713
  }, renderAndRun);
497684
497714
  }
497685
- }).version("1.13.1 (Ur)", "-v, --version", "Output the version number");
497715
+ }).version("1.13.2 (Ur)", "-v, --version", "Output the version number");
497686
497716
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
497687
497717
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
497688
497718
  if (canUserConfigureAdvisor()) {
@@ -497923,8 +497953,8 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
497923
497953
  const args = [action2, name, opts.schedule ? `--schedule ${quoteLocalCommandArg(opts.schedule)}` : undefined, opts.prompt ? `--prompt ${quoteLocalCommandArg(opts.prompt)}` : undefined, opts.now ? `--now ${quoteLocalCommandArg(opts.now)}` : undefined, opts.disabled ? "--disabled" : undefined, opts.dryRun ? "--dry-run" : undefined, opts.json ? "--json" : undefined].filter(Boolean).join(" ");
497924
497954
  await runLocalTextCommand(() => Promise.resolve().then(() => (init_automation(), exports_automation)), args);
497925
497955
  });
497926
- program2.command("agent-task [action]").alias("task-pr").description("Summarize task state, git diff status, and PR handoff commands").option("--create", "Create a GitHub PR with gh for the current branch").option("--draft", "Create the PR as draft").option("--base <branch>", "Base branch for PR creation").option("--title <title>", "PR title").option("--body <body>", "PR body").option("--dry-run", "Print the gh command without creating a PR").option("--json", "Output as JSON").action(async (action2, opts) => {
497927
- const args = [action2, opts.create ? "--create" : undefined, opts.draft ? "--draft" : undefined, opts.base ? `--base ${quoteLocalCommandArg(opts.base)}` : undefined, opts.title ? `--title ${quoteLocalCommandArg(opts.title)}` : undefined, opts.body ? `--body ${quoteLocalCommandArg(opts.body)}` : undefined, opts.dryRun ? "--dry-run" : undefined, opts.json ? "--json" : undefined].filter(Boolean).join(" ");
497956
+ program2.command("agent-task [action]").alias("task-pr").description("Summarize task state, git diff status, and PR handoff commands").option("--create", "Create a GitHub PR with gh for the current branch").option("--draft", "Create the PR as draft").option("--base <branch>", "Base branch for PR creation").option("--title <title>", "PR title").option("--body <body>", "PR body").option("--dry-run", "Print the gh command without creating a PR").option("--force", "Override blocking self-review findings when creating a PR").option("--no-review", "Skip the pre-PR self-review gate").option("--json", "Output as JSON").action(async (action2, opts) => {
497957
+ const args = [action2, opts.create ? "--create" : undefined, opts.draft ? "--draft" : undefined, opts.base ? `--base ${quoteLocalCommandArg(opts.base)}` : undefined, opts.title ? `--title ${quoteLocalCommandArg(opts.title)}` : undefined, opts.body ? `--body ${quoteLocalCommandArg(opts.body)}` : undefined, opts.dryRun ? "--dry-run" : undefined, opts.force ? "--force" : undefined, opts.review === false ? "--no-review" : undefined, opts.json ? "--json" : undefined].filter(Boolean).join(" ");
497928
497958
  await runLocalTextCommand(() => Promise.resolve().then(() => (init_agent_task(), exports_agent_task)), args);
497929
497959
  });
497930
497960
  program2.command("model-doctor [model]").alias("model-capabilities").description("Inspect local Ollama models and report likely agent capabilities").option("--json", "Output as JSON").action(async (model, opts) => {
@@ -497943,6 +497973,14 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
497943
497973
  const args = [action2, fixture, opts.dryRun ? "--dry-run" : undefined, opts.json ? "--json" : undefined].filter(Boolean).join(" ");
497944
497974
  await runLocalTextCommand(() => Promise.resolve().then(() => (init_browser_qa(), exports_browser_qa)), args);
497945
497975
  });
497976
+ program2.command("code-index [action] [query...]").alias("codeindex").description("Build and query a local semantic code index (embeddings via the local Ollama app)").option("--json", "Output as JSON").action(async (action2, query2 = [], opts) => {
497977
+ const args = [action2, ...query2, opts.json ? "--json" : undefined].filter(Boolean).join(" ");
497978
+ await runLocalTextCommand(() => Promise.resolve().then(() => (init_code_index(), exports_code_index)), args);
497979
+ });
497980
+ program2.command("role-mode [action] [name]").alias("roles").description("List, show, or install built-in role modes (Architect, Code, Debug, Ask)").option("--force", "Overwrite existing mode agents").option("--json", "Output as JSON").action(async (action2, name, opts) => {
497981
+ const args = [action2, name, opts.force ? "--force" : undefined, opts.json ? "--json" : undefined].filter(Boolean).join(" ");
497982
+ await runLocalTextCommand(() => Promise.resolve().then(() => (init_role_mode(), exports_role_mode)), args);
497983
+ });
497946
497984
  const a2a = program2.command("a2a").description("A2A interoperability utilities").configureHelp(createSortedHelpConfig());
497947
497985
  a2a.command("card").description("Print UR Agent Card metadata for A2A discovery").option("--base-url <url>", "Base URL to use for the Agent Card endpoint").option("--compact", "Output compact JSON").action(async (opts) => {
497948
497986
  const {
@@ -498273,7 +498311,7 @@ if (false) {}
498273
498311
  async function main2() {
498274
498312
  const args = process.argv.slice(2);
498275
498313
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
498276
- console.log(`${"1.13.1"} (Ur)`);
498314
+ console.log(`${"1.13.2"} (Ur)`);
498277
498315
  return;
498278
498316
  }
498279
498317
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
@@ -17,7 +17,7 @@ You need:
17
17
 
18
18
  ```sh
19
19
  ur --version
20
- # expected: 1.13.1 (Ur)
20
+ # expected: 1.13.2 (Ur)
21
21
  ```
22
22
 
23
23
  ## 1. Marketplace tree resolves
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.13.1",
3
+ "version": "1.13.2",
4
4
  "description": "UR terminal coding agent CLI",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",