ur-agent 1.41.1 → 1.42.0

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,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.42.0
4
+
5
+ - Project safety policy no longer hard-blocks commands. Risky or deny-matched
6
+ commands (package installs, destructive git operations, secret access,
7
+ sandbox-required commands when the sandbox is unavailable) now surface as
8
+ approval prompts instead of `Blocked by project safety policy` errors; the
9
+ user decides. `ur safety`/`ur sandbox` evaluation output is unchanged.
10
+
3
11
  ## 1.41.1
4
12
 
5
13
  - Harden provider tests against stored API keys in the local secure storage.
package/dist/cli.js CHANGED
@@ -71146,7 +71146,7 @@ var init_auth = __esm(() => {
71146
71146
 
71147
71147
  // src/utils/userAgent.ts
71148
71148
  function getURCodeUserAgent() {
71149
- return `ur/${"1.41.1"}`;
71149
+ return `ur/${"1.42.0"}`;
71150
71150
  }
71151
71151
 
71152
71152
  // src/utils/workloadContext.ts
@@ -71168,7 +71168,7 @@ function getUserAgent() {
71168
71168
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
71169
71169
  const workload = getWorkload();
71170
71170
  const workloadSuffix = workload ? `, workload/${workload}` : "";
71171
- return `ur-cli/${"1.41.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
71171
+ return `ur-cli/${"1.42.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
71172
71172
  }
71173
71173
  function getMCPUserAgent() {
71174
71174
  const parts = [];
@@ -71182,7 +71182,7 @@ function getMCPUserAgent() {
71182
71182
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
71183
71183
  }
71184
71184
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
71185
- return `ur/${"1.41.1"}${suffix}`;
71185
+ return `ur/${"1.42.0"}${suffix}`;
71186
71186
  }
71187
71187
  function getWebFetchUserAgent() {
71188
71188
  return `UR-User (${getURCodeUserAgent()})`;
@@ -71320,7 +71320,7 @@ var init_user = __esm(() => {
71320
71320
  deviceId,
71321
71321
  sessionId: getSessionId(),
71322
71322
  email: getEmail(),
71323
- appVersion: "1.41.1",
71323
+ appVersion: "1.42.0",
71324
71324
  platform: getHostPlatformForAnalytics(),
71325
71325
  organizationUuid,
71326
71326
  accountUuid,
@@ -77837,7 +77837,7 @@ var init_metadata = __esm(() => {
77837
77837
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
77838
77838
  WHITESPACE_REGEX = /\s+/;
77839
77839
  getVersionBase = memoize_default(() => {
77840
- const match = "1.41.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
77840
+ const match = "1.42.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
77841
77841
  return match ? match[0] : undefined;
77842
77842
  });
77843
77843
  buildEnvContext = memoize_default(async () => {
@@ -77877,7 +77877,7 @@ var init_metadata = __esm(() => {
77877
77877
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
77878
77878
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
77879
77879
  isURAiAuth: isURAISubscriber(),
77880
- version: "1.41.1",
77880
+ version: "1.42.0",
77881
77881
  versionBase: getVersionBase(),
77882
77882
  buildTime: "",
77883
77883
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -78547,7 +78547,7 @@ function initialize1PEventLogging() {
78547
78547
  const platform2 = getPlatform();
78548
78548
  const attributes = {
78549
78549
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
78550
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.41.1"
78550
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.42.0"
78551
78551
  };
78552
78552
  if (platform2 === "wsl") {
78553
78553
  const wslVersion = getWslVersion();
@@ -78574,7 +78574,7 @@ function initialize1PEventLogging() {
78574
78574
  })
78575
78575
  ]
78576
78576
  });
78577
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.41.1");
78577
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.42.0");
78578
78578
  }
78579
78579
  async function reinitialize1PEventLoggingIfConfigChanged() {
78580
78580
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -83873,7 +83873,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
83873
83873
  function formatA2AAgentCard(options = {}, pretty = true) {
83874
83874
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
83875
83875
  }
83876
- var urVersion = "1.41.1", coverage, priorityRoadmap;
83876
+ var urVersion = "1.42.0", coverage, priorityRoadmap;
83877
83877
  var init_trends = __esm(() => {
83878
83878
  coverage = [
83879
83879
  {
@@ -85868,7 +85868,7 @@ function getAttributionHeader(fingerprint) {
85868
85868
  if (!isAttributionHeaderEnabled()) {
85869
85869
  return "";
85870
85870
  }
85871
- const version2 = `${"1.41.1"}.${fingerprint}`;
85871
+ const version2 = `${"1.42.0"}.${fingerprint}`;
85872
85872
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
85873
85873
  const cch = "";
85874
85874
  const workload = getWorkload();
@@ -193771,7 +193771,7 @@ function getTelemetryAttributes() {
193771
193771
  attributes["session.id"] = sessionId;
193772
193772
  }
193773
193773
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
193774
- attributes["app.version"] = "1.41.1";
193774
+ attributes["app.version"] = "1.42.0";
193775
193775
  }
193776
193776
  const oauthAccount = getOauthAccountInfo();
193777
193777
  if (oauthAccount) {
@@ -229157,7 +229157,7 @@ function getInstallationEnv() {
229157
229157
  return;
229158
229158
  }
229159
229159
  function getURCodeVersion() {
229160
- return "1.41.1";
229160
+ return "1.42.0";
229161
229161
  }
229162
229162
  async function getInstalledVSCodeExtensionVersion(command) {
229163
229163
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -231996,7 +231996,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
231996
231996
  const client2 = new Client({
231997
231997
  name: "ur",
231998
231998
  title: "UR",
231999
- version: "1.41.1",
231999
+ version: "1.42.0",
232000
232000
  description: "UR-Nexus autonomous engineering workflow engine",
232001
232001
  websiteUrl: PRODUCT_URL
232002
232002
  }, {
@@ -232350,7 +232350,7 @@ var init_client5 = __esm(() => {
232350
232350
  const client2 = new Client({
232351
232351
  name: "ur",
232352
232352
  title: "UR",
232353
- version: "1.41.1",
232353
+ version: "1.42.0",
232354
232354
  description: "UR-Nexus autonomous engineering workflow engine",
232355
232355
  websiteUrl: PRODUCT_URL
232356
232356
  }, {
@@ -242164,9 +242164,9 @@ async function assertMinVersion() {
242164
242164
  if (false) {}
242165
242165
  try {
242166
242166
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
242167
- if (versionConfig.minVersion && lt("1.41.1", versionConfig.minVersion)) {
242167
+ if (versionConfig.minVersion && lt("1.42.0", versionConfig.minVersion)) {
242168
242168
  console.error(`
242169
- It looks like your version of UR (${"1.41.1"}) needs an update.
242169
+ It looks like your version of UR (${"1.42.0"}) needs an update.
242170
242170
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
242171
242171
 
242172
242172
  To update, please run:
@@ -242382,7 +242382,7 @@ async function installGlobalPackage(specificVersion) {
242382
242382
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
242383
242383
  logEvent("tengu_auto_updater_lock_contention", {
242384
242384
  pid: process.pid,
242385
- currentVersion: "1.41.1"
242385
+ currentVersion: "1.42.0"
242386
242386
  });
242387
242387
  return "in_progress";
242388
242388
  }
@@ -242391,7 +242391,7 @@ async function installGlobalPackage(specificVersion) {
242391
242391
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
242392
242392
  logError2(new Error("Windows NPM detected in WSL environment"));
242393
242393
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
242394
- currentVersion: "1.41.1"
242394
+ currentVersion: "1.42.0"
242395
242395
  });
242396
242396
  console.error(`
242397
242397
  Error: Windows NPM detected in WSL
@@ -242926,7 +242926,7 @@ function detectLinuxGlobPatternWarnings() {
242926
242926
  }
242927
242927
  async function getDoctorDiagnostic() {
242928
242928
  const installationType = await getCurrentInstallationType();
242929
- const version2 = typeof MACRO !== "undefined" ? "1.41.1" : "unknown";
242929
+ const version2 = typeof MACRO !== "undefined" ? "1.42.0" : "unknown";
242930
242930
  const installationPath = await getInstallationPath();
242931
242931
  const invokedBinary = getInvokedBinary();
242932
242932
  const multipleInstallations = await detectMultipleInstallations();
@@ -243861,8 +243861,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
243861
243861
  const maxVersion = await getMaxVersion();
243862
243862
  if (maxVersion && gt(version2, maxVersion)) {
243863
243863
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
243864
- if (gte("1.41.1", maxVersion)) {
243865
- logForDebugging(`Native installer: current version ${"1.41.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
243864
+ if (gte("1.42.0", maxVersion)) {
243865
+ logForDebugging(`Native installer: current version ${"1.42.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
243866
243866
  logEvent("tengu_native_update_skipped_max_version", {
243867
243867
  latency_ms: Date.now() - startTime,
243868
243868
  max_version: maxVersion,
@@ -243873,7 +243873,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
243873
243873
  version2 = maxVersion;
243874
243874
  }
243875
243875
  }
243876
- if (!forceReinstall && version2 === "1.41.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
243876
+ if (!forceReinstall && version2 === "1.42.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
243877
243877
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
243878
243878
  logEvent("tengu_native_update_complete", {
243879
243879
  latency_ms: Date.now() - startTime,
@@ -311265,27 +311265,27 @@ async function bashToolHasPermission(input, context3, getCommandSubcommandPrefix
311265
311265
  if (safetyEvaluation.behavior === "deny") {
311266
311266
  const reason = safetyEvaluation.reasons.join("; ");
311267
311267
  recordShellSafetyViolation(safetyEvaluation, reason);
311268
+ const decisionReason2 = {
311269
+ type: "other",
311270
+ reason: `Project safety policy requires approval: ${reason}`
311271
+ };
311268
311272
  return {
311269
- behavior: "deny",
311270
- message: `Blocked by project safety policy: ${reason}`,
311271
- decisionReason: {
311272
- type: "other",
311273
- reason: `Project safety policy denied command: ${reason}`
311274
- }
311273
+ behavior: "ask",
311274
+ decisionReason: decisionReason2,
311275
+ message: createPermissionRequestMessage2(BashTool.name, decisionReason2),
311276
+ suggestions: []
311275
311277
  };
311276
311278
  }
311277
311279
  if (safetyEvaluation.sandboxMode === "required" && !shouldUseSandbox(input)) {
311278
- const reason = safetyEvaluation.reasons.join("; ");
311279
- const unavailableReason = SandboxManager2.getSandboxUnavailableReason() ?? "sandbox is disabled, unavailable, or bypassed for this command";
311280
- const message = `Blocked by project safety policy: sandbox is required but unavailable. ${unavailableReason}`;
311281
- recordShellSafetyViolation(safetyEvaluation, `${reason}; ${unavailableReason}`);
311280
+ const decisionReason2 = {
311281
+ type: "other",
311282
+ reason: `Sandbox unavailable; approval required to run unsandboxed: ${safetyEvaluation.reasons.join("; ")}`
311283
+ };
311282
311284
  return {
311283
- behavior: "deny",
311284
- message,
311285
- decisionReason: {
311286
- type: "other",
311287
- reason: `Project safety policy requires sandbox enforcement: ${reason}; ${unavailableReason}`
311288
- }
311285
+ behavior: "ask",
311286
+ decisionReason: decisionReason2,
311287
+ message: createPermissionRequestMessage2(BashTool.name, decisionReason2),
311288
+ suggestions: []
311289
311289
  };
311290
311290
  }
311291
311291
  if (safetyEvaluation.behavior === "ask") {
@@ -340844,7 +340844,7 @@ function Feedback({
340844
340844
  platform: env2.platform,
340845
340845
  gitRepo: envInfo.isGit,
340846
340846
  terminal: env2.terminal,
340847
- version: "1.41.1",
340847
+ version: "1.42.0",
340848
340848
  transcript: normalizeMessagesForAPI(messages),
340849
340849
  errors: sanitizedErrors,
340850
340850
  lastApiRequest: getLastAPIRequest(),
@@ -341036,7 +341036,7 @@ function Feedback({
341036
341036
  ", ",
341037
341037
  env2.terminal,
341038
341038
  ", v",
341039
- "1.41.1"
341039
+ "1.42.0"
341040
341040
  ]
341041
341041
  }, undefined, true, undefined, this)
341042
341042
  ]
@@ -341142,7 +341142,7 @@ ${sanitizedDescription}
341142
341142
  ` + `**Environment Info**
341143
341143
  ` + `- Platform: ${env2.platform}
341144
341144
  ` + `- Terminal: ${env2.terminal}
341145
- ` + `- Version: ${"1.41.1"}
341145
+ ` + `- Version: ${"1.42.0"}
341146
341146
  ` + `- Feedback ID: ${feedbackId}
341147
341147
  ` + `
341148
341148
  **Errors**
@@ -344253,7 +344253,7 @@ function buildPrimarySection() {
344253
344253
  }, undefined, false, undefined, this);
344254
344254
  return [{
344255
344255
  label: "Version",
344256
- value: "1.41.1"
344256
+ value: "1.42.0"
344257
344257
  }, {
344258
344258
  label: "Session name",
344259
344259
  value: nameValue
@@ -347554,7 +347554,7 @@ function Config({
347554
347554
  }
347555
347555
  }, undefined, false, undefined, this)
347556
347556
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
347557
- currentVersion: "1.41.1",
347557
+ currentVersion: "1.42.0",
347558
347558
  onChoice: (choice) => {
347559
347559
  setShowSubmenu(null);
347560
347560
  setTabsHidden(false);
@@ -347566,7 +347566,7 @@ function Config({
347566
347566
  autoUpdatesChannel: "stable"
347567
347567
  };
347568
347568
  if (choice === "stay") {
347569
- newSettings.minimumVersion = "1.41.1";
347569
+ newSettings.minimumVersion = "1.42.0";
347570
347570
  }
347571
347571
  updateSettingsForSource("userSettings", newSettings);
347572
347572
  setSettingsData((prev_27) => ({
@@ -355636,7 +355636,7 @@ function HelpV2(t0) {
355636
355636
  let t6;
355637
355637
  if ($3[31] !== tabs) {
355638
355638
  t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
355639
- title: `UR v${"1.41.1"}`,
355639
+ title: `UR v${"1.42.0"}`,
355640
355640
  color: "professionalBlue",
355641
355641
  defaultTab: "general",
355642
355642
  children: tabs
@@ -356382,7 +356382,7 @@ function buildToolUseContext(tools, readFileStateCache) {
356382
356382
  async function handleInitialize(options2) {
356383
356383
  return {
356384
356384
  name: "UR",
356385
- version: "1.41.1",
356385
+ version: "1.42.0",
356386
356386
  protocolVersion: "0.1.0",
356387
356387
  workspaceRoot: options2.cwd,
356388
356388
  capabilities: {
@@ -376524,7 +376524,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
376524
376524
  return [];
376525
376525
  }
376526
376526
  }
376527
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.41.1") {
376527
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.42.0") {
376528
376528
  if (process.env.USER_TYPE === "ant") {
376529
376529
  const changelog = "";
376530
376530
  if (changelog) {
@@ -376551,7 +376551,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.41.1")
376551
376551
  releaseNotes
376552
376552
  };
376553
376553
  }
376554
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.41.1") {
376554
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.42.0") {
376555
376555
  if (process.env.USER_TYPE === "ant") {
376556
376556
  const changelog = "";
376557
376557
  if (changelog) {
@@ -377730,7 +377730,7 @@ function getRecentActivitySync() {
377730
377730
  return cachedActivity;
377731
377731
  }
377732
377732
  function getLogoDisplayData() {
377733
- const version2 = process.env.DEMO_VERSION ?? "1.41.1";
377733
+ const version2 = process.env.DEMO_VERSION ?? "1.42.0";
377734
377734
  const serverUrl = getDirectConnectServerUrl();
377735
377735
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
377736
377736
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -378519,7 +378519,7 @@ function LogoV2() {
378519
378519
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
378520
378520
  t2 = () => {
378521
378521
  const currentConfig2 = getGlobalConfig();
378522
- if (currentConfig2.lastReleaseNotesSeen === "1.41.1") {
378522
+ if (currentConfig2.lastReleaseNotesSeen === "1.42.0") {
378523
378523
  return;
378524
378524
  }
378525
378525
  saveGlobalConfig(_temp326);
@@ -379204,12 +379204,12 @@ function LogoV2() {
379204
379204
  return t41;
379205
379205
  }
379206
379206
  function _temp326(current) {
379207
- if (current.lastReleaseNotesSeen === "1.41.1") {
379207
+ if (current.lastReleaseNotesSeen === "1.42.0") {
379208
379208
  return current;
379209
379209
  }
379210
379210
  return {
379211
379211
  ...current,
379212
- lastReleaseNotesSeen: "1.41.1"
379212
+ lastReleaseNotesSeen: "1.42.0"
379213
379213
  };
379214
379214
  }
379215
379215
  function _temp243(s_0) {
@@ -410832,7 +410832,7 @@ var init_code_index2 = __esm(() => {
410832
410832
 
410833
410833
  // node_modules/typescript/lib/typescript.js
410834
410834
  var require_typescript2 = __commonJS((exports, module) => {
410835
- var __dirname = "/Users/maith/Desktop/ur3-dev/UR-1.41.0/node_modules/typescript/lib", __filename = "/Users/maith/Desktop/ur3-dev/UR-1.41.0/node_modules/typescript/lib/typescript.js";
410835
+ var __dirname = "/sessions/friendly-inspiring-goldberg/mnt/UR-1.41.1/node_modules/typescript/lib", __filename = "/sessions/friendly-inspiring-goldberg/mnt/UR-1.41.1/node_modules/typescript/lib/typescript.js";
410836
410836
  /*! *****************************************************************************
410837
410837
  Copyright (c) Microsoft Corporation. All rights reserved.
410838
410838
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use
@@ -596366,7 +596366,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
596366
596366
  smapsRollup,
596367
596367
  platform: process.platform,
596368
596368
  nodeVersion: process.version,
596369
- ccVersion: "1.41.1"
596369
+ ccVersion: "1.42.0"
596370
596370
  };
596371
596371
  }
596372
596372
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -596952,7 +596952,7 @@ var init_bridge_kick = __esm(() => {
596952
596952
  var call137 = async () => {
596953
596953
  return {
596954
596954
  type: "text",
596955
- value: "1.41.1"
596955
+ value: "1.42.0"
596956
596956
  };
596957
596957
  }, version2, version_default;
596958
596958
  var init_version = __esm(() => {
@@ -607045,7 +607045,7 @@ function generateHtmlReport(data, insights) {
607045
607045
  </html>`;
607046
607046
  }
607047
607047
  function buildExportData(data, insights, facets, remoteStats) {
607048
- const version3 = typeof MACRO !== "undefined" ? "1.41.1" : "unknown";
607048
+ const version3 = typeof MACRO !== "undefined" ? "1.42.0" : "unknown";
607049
607049
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
607050
607050
  const facets_summary = {
607051
607051
  total: facets.size,
@@ -611325,7 +611325,7 @@ var init_sessionStorage = __esm(() => {
611325
611325
  init_settings2();
611326
611326
  init_slowOperations();
611327
611327
  init_uuid();
611328
- VERSION5 = typeof MACRO !== "undefined" ? "1.41.1" : "unknown";
611328
+ VERSION5 = typeof MACRO !== "undefined" ? "1.42.0" : "unknown";
611329
611329
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
611330
611330
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
611331
611331
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -612530,7 +612530,7 @@ var init_filesystem = __esm(() => {
612530
612530
  });
612531
612531
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
612532
612532
  const nonce = randomBytes18(16).toString("hex");
612533
- return join202(getURTempDir(), "bundled-skills", "1.41.1", nonce);
612533
+ return join202(getURTempDir(), "bundled-skills", "1.42.0", nonce);
612534
612534
  });
612535
612535
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
612536
612536
  });
@@ -618819,7 +618819,7 @@ function computeFingerprint(messageText2, version3) {
618819
618819
  }
618820
618820
  function computeFingerprintFromMessages(messages) {
618821
618821
  const firstMessageText = extractFirstMessageText(messages);
618822
- return computeFingerprint(firstMessageText, "1.41.1");
618822
+ return computeFingerprint(firstMessageText, "1.42.0");
618823
618823
  }
618824
618824
  var FINGERPRINT_SALT = "59cf53e54c78";
618825
618825
  var init_fingerprint = () => {};
@@ -620693,7 +620693,7 @@ async function sideQuery(opts) {
620693
620693
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
620694
620694
  }
620695
620695
  const messageText2 = extractFirstUserMessageText(messages);
620696
- const fingerprint2 = computeFingerprint(messageText2, "1.41.1");
620696
+ const fingerprint2 = computeFingerprint(messageText2, "1.42.0");
620697
620697
  const attributionHeader = getAttributionHeader(fingerprint2);
620698
620698
  const systemBlocks = [
620699
620699
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -625430,7 +625430,7 @@ function buildSystemInitMessage(inputs) {
625430
625430
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
625431
625431
  apiKeySource: getURHQApiKeyWithSource().source,
625432
625432
  betas: getSdkBetas(),
625433
- ur_version: "1.41.1",
625433
+ ur_version: "1.42.0",
625434
625434
  output_style: outputStyle2,
625435
625435
  agents: inputs.agents.map((agent) => agent.agentType),
625436
625436
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -640058,7 +640058,7 @@ var init_useVoiceEnabled = __esm(() => {
640058
640058
  function getSemverPart(version3) {
640059
640059
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
640060
640060
  }
640061
- function useUpdateNotification(updatedVersion, initialVersion = "1.41.1") {
640061
+ function useUpdateNotification(updatedVersion, initialVersion = "1.42.0") {
640062
640062
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
640063
640063
  if (!updatedVersion) {
640064
640064
  return null;
@@ -640107,7 +640107,7 @@ function AutoUpdater({
640107
640107
  return;
640108
640108
  }
640109
640109
  if (false) {}
640110
- const currentVersion = "1.41.1";
640110
+ const currentVersion = "1.42.0";
640111
640111
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
640112
640112
  let latestVersion = await getLatestVersion(channel);
640113
640113
  const isDisabled = isAutoUpdaterDisabled();
@@ -640336,12 +640336,12 @@ function NativeAutoUpdater({
640336
640336
  logEvent("tengu_native_auto_updater_start", {});
640337
640337
  try {
640338
640338
  const maxVersion = await getMaxVersion();
640339
- if (maxVersion && gt("1.41.1", maxVersion)) {
640339
+ if (maxVersion && gt("1.42.0", maxVersion)) {
640340
640340
  const msg = await getMaxVersionMessage();
640341
640341
  setMaxVersionIssue(msg ?? "affects your version");
640342
640342
  }
640343
640343
  const result = await installLatest(channel);
640344
- const currentVersion = "1.41.1";
640344
+ const currentVersion = "1.42.0";
640345
640345
  const latencyMs = Date.now() - startTime;
640346
640346
  if (result.lockFailed) {
640347
640347
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -640478,17 +640478,17 @@ function PackageManagerAutoUpdater(t0) {
640478
640478
  const maxVersion = await getMaxVersion();
640479
640479
  if (maxVersion && latest && gt(latest, maxVersion)) {
640480
640480
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
640481
- if (gte("1.41.1", maxVersion)) {
640482
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.41.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
640481
+ if (gte("1.42.0", maxVersion)) {
640482
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.42.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
640483
640483
  setUpdateAvailable(false);
640484
640484
  return;
640485
640485
  }
640486
640486
  latest = maxVersion;
640487
640487
  }
640488
- const hasUpdate = latest && !gte("1.41.1", latest) && !shouldSkipVersion(latest);
640488
+ const hasUpdate = latest && !gte("1.42.0", latest) && !shouldSkipVersion(latest);
640489
640489
  setUpdateAvailable(!!hasUpdate);
640490
640490
  if (hasUpdate) {
640491
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.41.1"} -> ${latest}`);
640491
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.42.0"} -> ${latest}`);
640492
640492
  }
640493
640493
  };
640494
640494
  $3[0] = t1;
@@ -640522,7 +640522,7 @@ function PackageManagerAutoUpdater(t0) {
640522
640522
  wrap: "truncate",
640523
640523
  children: [
640524
640524
  "currentVersion: ",
640525
- "1.41.1"
640525
+ "1.42.0"
640526
640526
  ]
640527
640527
  }, undefined, true, undefined, this);
640528
640528
  $3[3] = verbose;
@@ -652974,7 +652974,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
652974
652974
  project_dir: getOriginalCwd(),
652975
652975
  added_dirs: addedDirs
652976
652976
  },
652977
- version: "1.41.1",
652977
+ version: "1.42.0",
652978
652978
  output_style: {
652979
652979
  name: outputStyleName
652980
652980
  },
@@ -653057,7 +653057,7 @@ function StatusLineInner({
653057
653057
  const taskValues = Object.values(tasks2);
653058
653058
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
653059
653059
  const defaultStatusLineText = buildDefaultStatusBar({
653060
- version: "1.41.1",
653060
+ version: "1.42.0",
653061
653061
  providerLabel: providerRuntime.providerLabel,
653062
653062
  authMode: providerRuntime.authLabel,
653063
653063
  model: providerRuntime.model ?? renderModelName(mainLoopModel),
@@ -664545,7 +664545,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
664545
664545
  } catch {}
664546
664546
  const data = {
664547
664547
  trigger: trigger2,
664548
- version: "1.41.1",
664548
+ version: "1.42.0",
664549
664549
  platform: process.platform,
664550
664550
  transcript,
664551
664551
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -676430,7 +676430,7 @@ function WelcomeV2() {
676430
676430
  dimColor: true,
676431
676431
  children: [
676432
676432
  "v",
676433
- "1.41.1"
676433
+ "1.42.0"
676434
676434
  ]
676435
676435
  }, undefined, true, undefined, this)
676436
676436
  ]
@@ -677690,7 +677690,7 @@ function completeOnboarding() {
677690
677690
  saveGlobalConfig((current) => ({
677691
677691
  ...current,
677692
677692
  hasCompletedOnboarding: true,
677693
- lastOnboardingVersion: "1.41.1"
677693
+ lastOnboardingVersion: "1.42.0"
677694
677694
  }));
677695
677695
  }
677696
677696
  function showDialog(root2, renderer) {
@@ -682727,7 +682727,7 @@ function appendToLog(path24, message) {
682727
682727
  cwd: getFsImplementation().cwd(),
682728
682728
  userType: process.env.USER_TYPE,
682729
682729
  sessionId: getSessionId(),
682730
- version: "1.41.1"
682730
+ version: "1.42.0"
682731
682731
  };
682732
682732
  getLogWriter(path24).write(messageWithTimestamp);
682733
682733
  }
@@ -686821,8 +686821,8 @@ async function getEnvLessBridgeConfig() {
686821
686821
  }
686822
686822
  async function checkEnvLessBridgeMinVersion() {
686823
686823
  const cfg = await getEnvLessBridgeConfig();
686824
- if (cfg.min_version && lt("1.41.1", cfg.min_version)) {
686825
- return `Your version of UR (${"1.41.1"}) is too old for Remote Control.
686824
+ if (cfg.min_version && lt("1.42.0", cfg.min_version)) {
686825
+ return `Your version of UR (${"1.42.0"}) is too old for Remote Control.
686826
686826
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
686827
686827
  }
686828
686828
  return null;
@@ -687296,7 +687296,7 @@ async function initBridgeCore(params) {
687296
687296
  const rawApi = createBridgeApiClient({
687297
687297
  baseUrl,
687298
687298
  getAccessToken,
687299
- runnerVersion: "1.41.1",
687299
+ runnerVersion: "1.42.0",
687300
687300
  onDebug: logForDebugging,
687301
687301
  onAuth401,
687302
687302
  getTrustedDeviceToken
@@ -692978,7 +692978,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
692978
692978
  setCwd(cwd3);
692979
692979
  const server2 = new Server({
692980
692980
  name: "ur/tengu",
692981
- version: "1.41.1"
692981
+ version: "1.42.0"
692982
692982
  }, {
692983
692983
  capabilities: {
692984
692984
  tools: {}
@@ -695020,7 +695020,7 @@ async function update() {
695020
695020
  logEvent("tengu_update_check", {});
695021
695021
  const diagnostic = await getDoctorDiagnostic();
695022
695022
  const result = await checkUpgradeStatus({
695023
- currentVersion: "1.41.1",
695023
+ currentVersion: "1.42.0",
695024
695024
  packageName: UR_AGENT_PACKAGE_NAME,
695025
695025
  installationType: diagnostic.installationType,
695026
695026
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -696266,7 +696266,7 @@ ${customInstructions}` : customInstructions;
696266
696266
  }
696267
696267
  }
696268
696268
  logForDiagnosticsNoPII("info", "started", {
696269
- version: "1.41.1",
696269
+ version: "1.42.0",
696270
696270
  is_native_binary: isInBundledMode()
696271
696271
  });
696272
696272
  registerCleanup(async () => {
@@ -697052,7 +697052,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
697052
697052
  pendingHookMessages
697053
697053
  }, renderAndRun);
697054
697054
  }
697055
- }).version("1.41.1 (UR-Nexus)", "-v, --version", "Output the version number");
697055
+ }).version("1.42.0 (UR-Nexus)", "-v, --version", "Output the version number");
697056
697056
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
697057
697057
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
697058
697058
  if (canUserConfigureAdvisor()) {
@@ -697967,7 +697967,7 @@ if (false) {}
697967
697967
  async function main2() {
697968
697968
  const args = process.argv.slice(2);
697969
697969
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
697970
- console.log(`${"1.41.1"} (UR-Nexus)`);
697970
+ console.log(`${"1.42.0"} (UR-Nexus)`);
697971
697971
  return;
697972
697972
  }
697973
697973
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
@@ -44,7 +44,7 @@
44
44
  <main id="content" class="content">
45
45
  <header class="topbar">
46
46
  <div>
47
- <p class="eyebrow">Version 1.41.1</p>
47
+ <p class="eyebrow">Version 1.42.0</p>
48
48
  <h1>UR-Nexus Documentation</h1>
49
49
  <p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
50
50
  </div>
@@ -2,7 +2,7 @@
2
2
  "name": "ur-inline-diffs",
3
3
  "displayName": "UR Inline Diffs",
4
4
  "description": "Review, apply, and reject UR inline diff bundles from .ur/ide/diffs inside VS Code.",
5
- "version": "1.41.1",
5
+ "version": "1.42.0",
6
6
  "publisher": "ur-nexus",
7
7
  "engines": {
8
8
  "vscode": "^1.92.0"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.41.1",
4
- "description": "UR-Nexus autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
3
+ "version": "1.42.0",
4
+ "description": "UR-Nexus \u2014 autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",
7
7
  "engines": {