ur-agent 1.44.4 → 1.44.7

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,20 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.44.7
4
+
5
+ - Add `autoApprove` permission mode for command/tool approval prompts. It
6
+ auto-approves operations that would otherwise require permission approval,
7
+ while preserving user-input dialogs and explicit denials.
8
+ - Hide the legacy non-interactive denial mode from user-facing mode selectors.
9
+
10
+ ## 1.44.6
11
+
12
+ - Internal permission-mode iteration superseded by `1.44.7`.
13
+
14
+ ## 1.44.5
15
+
16
+ - Internal permission-mode iteration superseded by `1.44.6`.
17
+
3
18
  ## 1.44.4
4
19
 
5
20
  - The agent now learns from every run automatically — no `/learn run` needed.
package/README.md CHANGED
@@ -622,6 +622,8 @@ the permission boundary matters.
622
622
  - Sensitive tool actions go through permission checks by default.
623
623
  - `--allowed-tools` and `--disallowed-tools` can scope tool access for
624
624
  automation.
625
+ - `permissions.defaultMode: "autoApprove"` auto-approves operations that would
626
+ otherwise pause for permission approval, while user-input dialogs still ask.
625
627
  - `--dangerously-skip-permissions` should only be used inside disposable
626
628
  sandboxes.
627
629
  - The verifier checks for false completion claims, repeated tool-call loops,
package/dist/cli.js CHANGED
@@ -71438,7 +71438,7 @@ var init_auth = __esm(() => {
71438
71438
 
71439
71439
  // src/utils/userAgent.ts
71440
71440
  function getURCodeUserAgent() {
71441
- return `ur/${"1.44.4"}`;
71441
+ return `ur/${"1.44.7"}`;
71442
71442
  }
71443
71443
 
71444
71444
  // src/utils/workloadContext.ts
@@ -71460,7 +71460,7 @@ function getUserAgent() {
71460
71460
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
71461
71461
  const workload = getWorkload();
71462
71462
  const workloadSuffix = workload ? `, workload/${workload}` : "";
71463
- return `ur-cli/${"1.44.4"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
71463
+ return `ur-cli/${"1.44.7"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
71464
71464
  }
71465
71465
  function getMCPUserAgent() {
71466
71466
  const parts = [];
@@ -71474,7 +71474,7 @@ function getMCPUserAgent() {
71474
71474
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
71475
71475
  }
71476
71476
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
71477
- return `ur/${"1.44.4"}${suffix}`;
71477
+ return `ur/${"1.44.7"}${suffix}`;
71478
71478
  }
71479
71479
  function getWebFetchUserAgent() {
71480
71480
  return `UR-User (${getURCodeUserAgent()})`;
@@ -71612,7 +71612,7 @@ var init_user = __esm(() => {
71612
71612
  deviceId,
71613
71613
  sessionId: getSessionId(),
71614
71614
  email: getEmail(),
71615
- appVersion: "1.44.4",
71615
+ appVersion: "1.44.7",
71616
71616
  platform: getHostPlatformForAnalytics(),
71617
71617
  organizationUuid,
71618
71618
  accountUuid,
@@ -78129,7 +78129,7 @@ var init_metadata = __esm(() => {
78129
78129
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
78130
78130
  WHITESPACE_REGEX = /\s+/;
78131
78131
  getVersionBase = memoize_default(() => {
78132
- const match = "1.44.4".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
78132
+ const match = "1.44.7".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
78133
78133
  return match ? match[0] : undefined;
78134
78134
  });
78135
78135
  buildEnvContext = memoize_default(async () => {
@@ -78169,7 +78169,7 @@ var init_metadata = __esm(() => {
78169
78169
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
78170
78170
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
78171
78171
  isURAiAuth: isURAISubscriber(),
78172
- version: "1.44.4",
78172
+ version: "1.44.7",
78173
78173
  versionBase: getVersionBase(),
78174
78174
  buildTime: "",
78175
78175
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -78839,7 +78839,7 @@ function initialize1PEventLogging() {
78839
78839
  const platform2 = getPlatform();
78840
78840
  const attributes = {
78841
78841
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
78842
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.44.4"
78842
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.44.7"
78843
78843
  };
78844
78844
  if (platform2 === "wsl") {
78845
78845
  const wslVersion = getWslVersion();
@@ -78866,7 +78866,7 @@ function initialize1PEventLogging() {
78866
78866
  })
78867
78867
  ]
78868
78868
  });
78869
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.44.4");
78869
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.44.7");
78870
78870
  }
78871
78871
  async function reinitialize1PEventLoggingIfConfigChanged() {
78872
78872
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -80128,9 +80128,9 @@ var EXTERNAL_PERMISSION_MODES, INTERNAL_PERMISSION_MODES, PERMISSION_MODES;
80128
80128
  var init_permissions = __esm(() => {
80129
80129
  EXTERNAL_PERMISSION_MODES = [
80130
80130
  "acceptEdits",
80131
+ "autoApprove",
80131
80132
  "bypassPermissions",
80132
80133
  "default",
80133
- "dontAsk",
80134
80134
  "plan"
80135
80135
  ];
80136
80136
  INTERNAL_PERMISSION_MODES = [
@@ -80142,10 +80142,7 @@ var init_permissions = __esm(() => {
80142
80142
 
80143
80143
  // src/utils/permissions/PermissionMode.ts
80144
80144
  function isExternalPermissionMode(mode) {
80145
- if (process.env.USER_TYPE !== "ant") {
80146
- return true;
80147
- }
80148
- return mode !== "auto" && mode !== "bubble";
80145
+ return EXTERNAL_PERMISSION_MODES.includes(mode);
80149
80146
  }
80150
80147
  function getModeConfig(mode) {
80151
80148
  return PERMISSION_MODE_CONFIG[mode] ?? PERMISSION_MODE_CONFIG.default;
@@ -80197,6 +80194,13 @@ var init_PermissionMode = __esm(() => {
80197
80194
  color: "autoAccept",
80198
80195
  external: "acceptEdits"
80199
80196
  },
80197
+ autoApprove: {
80198
+ title: "Auto Approval",
80199
+ shortTitle: "Auto Approve",
80200
+ symbol: "\u23F5\u23F5",
80201
+ color: "warning",
80202
+ external: "autoApprove"
80203
+ },
80200
80204
  bypassPermissions: {
80201
80205
  title: "Bypass Permissions",
80202
80206
  shortTitle: "Bypass",
@@ -80209,7 +80213,7 @@ var init_PermissionMode = __esm(() => {
80209
80213
  shortTitle: "DontAsk",
80210
80214
  symbol: "\u23F5\u23F5",
80211
80215
  color: "error",
80212
- external: "dontAsk"
80216
+ external: "default"
80213
80217
  },
80214
80218
  ...{}
80215
80219
  };
@@ -84757,7 +84761,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
84757
84761
  function formatA2AAgentCard(options = {}, pretty = true) {
84758
84762
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
84759
84763
  }
84760
- var urVersion = "1.44.4", coverage, priorityRoadmap;
84764
+ var urVersion = "1.44.7", coverage, priorityRoadmap;
84761
84765
  var init_trends = __esm(() => {
84762
84766
  coverage = [
84763
84767
  {
@@ -86752,7 +86756,7 @@ function getAttributionHeader(fingerprint) {
86752
86756
  if (!isAttributionHeaderEnabled()) {
86753
86757
  return "";
86754
86758
  }
86755
- const version2 = `${"1.44.4"}.${fingerprint}`;
86759
+ const version2 = `${"1.44.7"}.${fingerprint}`;
86756
86760
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
86757
86761
  const cch = "";
86758
86762
  const workload = getWorkload();
@@ -194722,7 +194726,7 @@ function getTelemetryAttributes() {
194722
194726
  attributes["session.id"] = sessionId;
194723
194727
  }
194724
194728
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
194725
- attributes["app.version"] = "1.44.4";
194729
+ attributes["app.version"] = "1.44.7";
194726
194730
  }
194727
194731
  const oauthAccount = getOauthAccountInfo();
194728
194732
  if (oauthAccount) {
@@ -230110,7 +230114,7 @@ function getInstallationEnv() {
230110
230114
  return;
230111
230115
  }
230112
230116
  function getURCodeVersion() {
230113
- return "1.44.4";
230117
+ return "1.44.7";
230114
230118
  }
230115
230119
  async function getInstalledVSCodeExtensionVersion(command) {
230116
230120
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -232949,7 +232953,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
232949
232953
  const client2 = new Client({
232950
232954
  name: "ur",
232951
232955
  title: "UR",
232952
- version: "1.44.4",
232956
+ version: "1.44.7",
232953
232957
  description: "UR-Nexus autonomous engineering workflow engine",
232954
232958
  websiteUrl: PRODUCT_URL
232955
232959
  }, {
@@ -233303,7 +233307,7 @@ var init_client5 = __esm(() => {
233303
233307
  const client2 = new Client({
233304
233308
  name: "ur",
233305
233309
  title: "UR",
233306
- version: "1.44.4",
233310
+ version: "1.44.7",
233307
233311
  description: "UR-Nexus autonomous engineering workflow engine",
233308
233312
  websiteUrl: PRODUCT_URL
233309
233313
  }, {
@@ -243117,9 +243121,9 @@ async function assertMinVersion() {
243117
243121
  if (false) {}
243118
243122
  try {
243119
243123
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
243120
- if (versionConfig.minVersion && lt("1.44.4", versionConfig.minVersion)) {
243124
+ if (versionConfig.minVersion && lt("1.44.7", versionConfig.minVersion)) {
243121
243125
  console.error(`
243122
- It looks like your version of UR (${"1.44.4"}) needs an update.
243126
+ It looks like your version of UR (${"1.44.7"}) needs an update.
243123
243127
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
243124
243128
 
243125
243129
  To update, please run:
@@ -243335,7 +243339,7 @@ async function installGlobalPackage(specificVersion) {
243335
243339
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
243336
243340
  logEvent("tengu_auto_updater_lock_contention", {
243337
243341
  pid: process.pid,
243338
- currentVersion: "1.44.4"
243342
+ currentVersion: "1.44.7"
243339
243343
  });
243340
243344
  return "in_progress";
243341
243345
  }
@@ -243344,7 +243348,7 @@ async function installGlobalPackage(specificVersion) {
243344
243348
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
243345
243349
  logError2(new Error("Windows NPM detected in WSL environment"));
243346
243350
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
243347
- currentVersion: "1.44.4"
243351
+ currentVersion: "1.44.7"
243348
243352
  });
243349
243353
  console.error(`
243350
243354
  Error: Windows NPM detected in WSL
@@ -243879,7 +243883,7 @@ function detectLinuxGlobPatternWarnings() {
243879
243883
  }
243880
243884
  async function getDoctorDiagnostic() {
243881
243885
  const installationType = await getCurrentInstallationType();
243882
- const version2 = typeof MACRO !== "undefined" ? "1.44.4" : "unknown";
243886
+ const version2 = typeof MACRO !== "undefined" ? "1.44.7" : "unknown";
243883
243887
  const installationPath = await getInstallationPath();
243884
243888
  const invokedBinary = getInvokedBinary();
243885
243889
  const multipleInstallations = await detectMultipleInstallations();
@@ -244814,8 +244818,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
244814
244818
  const maxVersion = await getMaxVersion();
244815
244819
  if (maxVersion && gt(version2, maxVersion)) {
244816
244820
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
244817
- if (gte("1.44.4", maxVersion)) {
244818
- logForDebugging(`Native installer: current version ${"1.44.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
244821
+ if (gte("1.44.7", maxVersion)) {
244822
+ logForDebugging(`Native installer: current version ${"1.44.7"} is already at or above maxVersion ${maxVersion}, skipping update`);
244819
244823
  logEvent("tengu_native_update_skipped_max_version", {
244820
244824
  latency_ms: Date.now() - startTime,
244821
244825
  max_version: maxVersion,
@@ -244826,7 +244830,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
244826
244830
  version2 = maxVersion;
244827
244831
  }
244828
244832
  }
244829
- if (!forceReinstall && version2 === "1.44.4" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
244833
+ if (!forceReinstall && version2 === "1.44.7" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
244830
244834
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
244831
244835
  logEvent("tengu_native_update_complete", {
244832
244836
  latency_ms: Date.now() - startTime,
@@ -248525,7 +248529,13 @@ var init_coreSchemas = __esm(() => {
248525
248529
  decisionClassification: PermissionDecisionClassificationSchema().optional()
248526
248530
  })
248527
248531
  ]));
248528
- PermissionModeSchema = lazySchema(() => exports_external.enum(["default", "acceptEdits", "bypassPermissions", "plan", "dontAsk"]).describe("Permission mode for controlling how tool executions are handled. " + "'default' - Standard behavior, prompts for dangerous operations. " + "'acceptEdits' - Auto-accept file edit operations. " + "'bypassPermissions' - Bypass all permission checks (requires allowDangerouslySkipPermissions). " + "'plan' - Planning mode, no actual tool execution. " + "'dontAsk' - Don't prompt for permissions, deny if not pre-approved."));
248532
+ PermissionModeSchema = lazySchema(() => exports_external.enum([
248533
+ "default",
248534
+ "acceptEdits",
248535
+ "autoApprove",
248536
+ "bypassPermissions",
248537
+ "plan"
248538
+ ]).describe("Permission mode for controlling how tool executions are handled. " + "'default' - Standard behavior, prompts for dangerous operations. " + "'acceptEdits' - Auto-accept file edit operations. " + "'autoApprove' - Auto-approve permission prompts while preserving user-input dialogs. " + "'bypassPermissions' - Bypass all permission checks (requires allowDangerouslySkipPermissions). " + "'plan' - Planning mode, no actual tool execution."));
248529
248539
  HOOK_EVENTS2 = [
248530
248540
  "PreToolUse",
248531
248541
  "PostToolUse",
@@ -302397,7 +302407,7 @@ var init_supportedSettings = __esm(() => {
302397
302407
  source: "settings",
302398
302408
  type: "string",
302399
302409
  description: "Default permission mode for tool usage",
302400
- options: ["default", "plan", "acceptEdits", "dontAsk"]
302410
+ options: ["default", "plan", "acceptEdits", "autoApprove"]
302401
302411
  },
302402
302412
  language: {
302403
302413
  source: "settings",
@@ -335746,6 +335756,19 @@ var CLASSIFIER_FAIL_CLOSED_REFRESH_MS, PERMISSION_RULE_SOURCES, hasPermissionsTo
335746
335756
  message: DONT_ASK_REJECT_MESSAGE(tool.name)
335747
335757
  };
335748
335758
  }
335759
+ if (appState.toolPermissionContext.mode === "autoApprove") {
335760
+ if (tool.requiresUserInteraction?.()) {
335761
+ return result;
335762
+ }
335763
+ return {
335764
+ behavior: "allow",
335765
+ updatedInput: input,
335766
+ decisionReason: {
335767
+ type: "mode",
335768
+ mode: "autoApprove"
335769
+ }
335770
+ };
335771
+ }
335749
335772
  if (false) {}
335750
335773
  if (appState.toolPermissionContext.shouldAvoidPermissionPrompts) {
335751
335774
  const hookDecision = await runPermissionRequestHooksForHeadlessAgent(tool, input, toolUseID, context3, appState.toolPermissionContext.mode, result.suggestions);
@@ -341500,7 +341523,7 @@ function Feedback({
341500
341523
  platform: env2.platform,
341501
341524
  gitRepo: envInfo.isGit,
341502
341525
  terminal: env2.terminal,
341503
- version: "1.44.4",
341526
+ version: "1.44.7",
341504
341527
  transcript: normalizeMessagesForAPI(messages),
341505
341528
  errors: sanitizedErrors,
341506
341529
  lastApiRequest: getLastAPIRequest(),
@@ -341692,7 +341715,7 @@ function Feedback({
341692
341715
  ", ",
341693
341716
  env2.terminal,
341694
341717
  ", v",
341695
- "1.44.4"
341718
+ "1.44.7"
341696
341719
  ]
341697
341720
  }, undefined, true, undefined, this)
341698
341721
  ]
@@ -341798,7 +341821,7 @@ ${sanitizedDescription}
341798
341821
  ` + `**Environment Info**
341799
341822
  ` + `- Platform: ${env2.platform}
341800
341823
  ` + `- Terminal: ${env2.terminal}
341801
- ` + `- Version: ${"1.44.4"}
341824
+ ` + `- Version: ${"1.44.7"}
341802
341825
  ` + `- Feedback ID: ${feedbackId}
341803
341826
  ` + `
341804
341827
  **Errors**
@@ -344909,7 +344932,7 @@ function buildPrimarySection() {
344909
344932
  }, undefined, false, undefined, this);
344910
344933
  return [{
344911
344934
  label: "Version",
344912
- value: "1.44.4"
344935
+ value: "1.44.7"
344913
344936
  }, {
344914
344937
  label: "Session name",
344915
344938
  value: nameValue
@@ -348239,7 +348262,7 @@ function Config({
348239
348262
  }
348240
348263
  }, undefined, false, undefined, this)
348241
348264
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime176.jsxDEV(ChannelDowngradeDialog, {
348242
- currentVersion: "1.44.4",
348265
+ currentVersion: "1.44.7",
348243
348266
  onChoice: (choice) => {
348244
348267
  setShowSubmenu(null);
348245
348268
  setTabsHidden(false);
@@ -348251,7 +348274,7 @@ function Config({
348251
348274
  autoUpdatesChannel: "stable"
348252
348275
  };
348253
348276
  if (choice === "stay") {
348254
- newSettings.minimumVersion = "1.44.4";
348277
+ newSettings.minimumVersion = "1.44.7";
348255
348278
  }
348256
348279
  updateSettingsForSource("userSettings", newSettings);
348257
348280
  setSettingsData((prev_27) => ({
@@ -356321,7 +356344,7 @@ function HelpV2(t0) {
356321
356344
  let t6;
356322
356345
  if ($3[31] !== tabs) {
356323
356346
  t6 = /* @__PURE__ */ jsx_dev_runtime203.jsxDEV(Tabs, {
356324
- title: `UR v${"1.44.4"}`,
356347
+ title: `UR v${"1.44.7"}`,
356325
356348
  color: "professionalBlue",
356326
356349
  defaultTab: "general",
356327
356350
  children: tabs
@@ -357067,7 +357090,7 @@ function buildToolUseContext(tools, readFileStateCache) {
357067
357090
  async function handleInitialize(options2) {
357068
357091
  return {
357069
357092
  name: "UR",
357070
- version: "1.44.4",
357093
+ version: "1.44.7",
357071
357094
  protocolVersion: "0.1.0",
357072
357095
  workspaceRoot: options2.cwd,
357073
357096
  capabilities: {
@@ -377209,7 +377232,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
377209
377232
  return [];
377210
377233
  }
377211
377234
  }
377212
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.44.4") {
377235
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.44.7") {
377213
377236
  if (process.env.USER_TYPE === "ant") {
377214
377237
  const changelog = "";
377215
377238
  if (changelog) {
@@ -377236,7 +377259,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.44.4")
377236
377259
  releaseNotes
377237
377260
  };
377238
377261
  }
377239
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.44.4") {
377262
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.44.7") {
377240
377263
  if (process.env.USER_TYPE === "ant") {
377241
377264
  const changelog = "";
377242
377265
  if (changelog) {
@@ -378415,7 +378438,7 @@ function getRecentActivitySync() {
378415
378438
  return cachedActivity;
378416
378439
  }
378417
378440
  function getLogoDisplayData() {
378418
- const version2 = process.env.DEMO_VERSION ?? "1.44.4";
378441
+ const version2 = process.env.DEMO_VERSION ?? "1.44.7";
378419
378442
  const serverUrl = getDirectConnectServerUrl();
378420
378443
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
378421
378444
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -379204,7 +379227,7 @@ function LogoV2() {
379204
379227
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
379205
379228
  t2 = () => {
379206
379229
  const currentConfig2 = getGlobalConfig();
379207
- if (currentConfig2.lastReleaseNotesSeen === "1.44.4") {
379230
+ if (currentConfig2.lastReleaseNotesSeen === "1.44.7") {
379208
379231
  return;
379209
379232
  }
379210
379233
  saveGlobalConfig(_temp326);
@@ -379889,12 +379912,12 @@ function LogoV2() {
379889
379912
  return t41;
379890
379913
  }
379891
379914
  function _temp326(current) {
379892
- if (current.lastReleaseNotesSeen === "1.44.4") {
379915
+ if (current.lastReleaseNotesSeen === "1.44.7") {
379893
379916
  return current;
379894
379917
  }
379895
379918
  return {
379896
379919
  ...current,
379897
- lastReleaseNotesSeen: "1.44.4"
379920
+ lastReleaseNotesSeen: "1.44.7"
379898
379921
  };
379899
379922
  }
379900
379923
  function _temp241(s_0) {
@@ -596849,7 +596872,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
596849
596872
  smapsRollup,
596850
596873
  platform: process.platform,
596851
596874
  nodeVersion: process.version,
596852
- ccVersion: "1.44.4"
596875
+ ccVersion: "1.44.7"
596853
596876
  };
596854
596877
  }
596855
596878
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -597435,7 +597458,7 @@ var init_bridge_kick = __esm(() => {
597435
597458
  var call138 = async () => {
597436
597459
  return {
597437
597460
  type: "text",
597438
- value: "1.44.4"
597461
+ value: "1.44.7"
597439
597462
  };
597440
597463
  }, version2, version_default;
597441
597464
  var init_version = __esm(() => {
@@ -607528,7 +607551,7 @@ function generateHtmlReport(data, insights) {
607528
607551
  </html>`;
607529
607552
  }
607530
607553
  function buildExportData(data, insights, facets, remoteStats) {
607531
- const version3 = typeof MACRO !== "undefined" ? "1.44.4" : "unknown";
607554
+ const version3 = typeof MACRO !== "undefined" ? "1.44.7" : "unknown";
607532
607555
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
607533
607556
  const facets_summary = {
607534
607557
  total: facets.size,
@@ -611810,7 +611833,7 @@ var init_sessionStorage = __esm(() => {
611810
611833
  init_settings2();
611811
611834
  init_slowOperations();
611812
611835
  init_uuid();
611813
- VERSION5 = typeof MACRO !== "undefined" ? "1.44.4" : "unknown";
611836
+ VERSION5 = typeof MACRO !== "undefined" ? "1.44.7" : "unknown";
611814
611837
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
611815
611838
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
611816
611839
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -613015,7 +613038,7 @@ var init_filesystem = __esm(() => {
613015
613038
  });
613016
613039
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
613017
613040
  const nonce = randomBytes18(16).toString("hex");
613018
- return join202(getURTempDir(), "bundled-skills", "1.44.4", nonce);
613041
+ return join202(getURTempDir(), "bundled-skills", "1.44.7", nonce);
613019
613042
  });
613020
613043
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
613021
613044
  });
@@ -619306,7 +619329,7 @@ function computeFingerprint(messageText2, version3) {
619306
619329
  }
619307
619330
  function computeFingerprintFromMessages(messages) {
619308
619331
  const firstMessageText = extractFirstMessageText(messages);
619309
- return computeFingerprint(firstMessageText, "1.44.4");
619332
+ return computeFingerprint(firstMessageText, "1.44.7");
619310
619333
  }
619311
619334
  var FINGERPRINT_SALT = "59cf53e54c78";
619312
619335
  var init_fingerprint = () => {};
@@ -621180,7 +621203,7 @@ async function sideQuery(opts) {
621180
621203
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
621181
621204
  }
621182
621205
  const messageText2 = extractFirstUserMessageText(messages);
621183
- const fingerprint2 = computeFingerprint(messageText2, "1.44.4");
621206
+ const fingerprint2 = computeFingerprint(messageText2, "1.44.7");
621184
621207
  const attributionHeader = getAttributionHeader(fingerprint2);
621185
621208
  const systemBlocks = [
621186
621209
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -625917,7 +625940,7 @@ function buildSystemInitMessage(inputs) {
625917
625940
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
625918
625941
  apiKeySource: getURHQApiKeyWithSource().source,
625919
625942
  betas: getSdkBetas(),
625920
- ur_version: "1.44.4",
625943
+ ur_version: "1.44.7",
625921
625944
  output_style: outputStyle2,
625922
625945
  agents: inputs.agents.map((agent) => agent.agentType),
625923
625946
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -640545,7 +640568,7 @@ var init_useVoiceEnabled = __esm(() => {
640545
640568
  function getSemverPart(version3) {
640546
640569
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
640547
640570
  }
640548
- function useUpdateNotification(updatedVersion, initialVersion = "1.44.4") {
640571
+ function useUpdateNotification(updatedVersion, initialVersion = "1.44.7") {
640549
640572
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
640550
640573
  if (!updatedVersion) {
640551
640574
  return null;
@@ -640594,7 +640617,7 @@ function AutoUpdater({
640594
640617
  return;
640595
640618
  }
640596
640619
  if (false) {}
640597
- const currentVersion = "1.44.4";
640620
+ const currentVersion = "1.44.7";
640598
640621
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
640599
640622
  let latestVersion = await getLatestVersion(channel);
640600
640623
  const isDisabled = isAutoUpdaterDisabled();
@@ -640823,12 +640846,12 @@ function NativeAutoUpdater({
640823
640846
  logEvent("tengu_native_auto_updater_start", {});
640824
640847
  try {
640825
640848
  const maxVersion = await getMaxVersion();
640826
- if (maxVersion && gt("1.44.4", maxVersion)) {
640849
+ if (maxVersion && gt("1.44.7", maxVersion)) {
640827
640850
  const msg = await getMaxVersionMessage();
640828
640851
  setMaxVersionIssue(msg ?? "affects your version");
640829
640852
  }
640830
640853
  const result = await installLatest(channel);
640831
- const currentVersion = "1.44.4";
640854
+ const currentVersion = "1.44.7";
640832
640855
  const latencyMs = Date.now() - startTime;
640833
640856
  if (result.lockFailed) {
640834
640857
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -640965,17 +640988,17 @@ function PackageManagerAutoUpdater(t0) {
640965
640988
  const maxVersion = await getMaxVersion();
640966
640989
  if (maxVersion && latest && gt(latest, maxVersion)) {
640967
640990
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
640968
- if (gte("1.44.4", maxVersion)) {
640969
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.44.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
640991
+ if (gte("1.44.7", maxVersion)) {
640992
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.44.7"} is already at or above maxVersion ${maxVersion}, skipping update`);
640970
640993
  setUpdateAvailable(false);
640971
640994
  return;
640972
640995
  }
640973
640996
  latest = maxVersion;
640974
640997
  }
640975
- const hasUpdate = latest && !gte("1.44.4", latest) && !shouldSkipVersion(latest);
640998
+ const hasUpdate = latest && !gte("1.44.7", latest) && !shouldSkipVersion(latest);
640976
640999
  setUpdateAvailable(!!hasUpdate);
640977
641000
  if (hasUpdate) {
640978
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.44.4"} -> ${latest}`);
641001
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.44.7"} -> ${latest}`);
640979
641002
  }
640980
641003
  };
640981
641004
  $3[0] = t1;
@@ -641009,7 +641032,7 @@ function PackageManagerAutoUpdater(t0) {
641009
641032
  wrap: "truncate",
641010
641033
  children: [
641011
641034
  "currentVersion: ",
641012
- "1.44.4"
641035
+ "1.44.7"
641013
641036
  ]
641014
641037
  }, undefined, true, undefined, this);
641015
641038
  $3[3] = verbose;
@@ -646147,17 +646170,21 @@ function getNextPermissionMode(toolPermissionContext, _teamContext) {
646147
646170
  if (toolPermissionContext.isBypassPermissionsModeAvailable) {
646148
646171
  return "bypassPermissions";
646149
646172
  }
646173
+ return "autoApprove";
646174
+ case "autoApprove":
646150
646175
  if (canCycleToAuto(toolPermissionContext)) {
646151
646176
  return "auto";
646152
646177
  }
646153
646178
  return "default";
646154
646179
  case "bypassPermissions":
646180
+ return "autoApprove";
646181
+ case "dontAsk":
646182
+ return "default";
646183
+ case "auto":
646155
646184
  if (canCycleToAuto(toolPermissionContext)) {
646156
- return "auto";
646185
+ return "default";
646157
646186
  }
646158
646187
  return "default";
646159
- case "dontAsk":
646160
- return "default";
646161
646188
  default:
646162
646189
  return "default";
646163
646190
  }
@@ -653461,7 +653488,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
653461
653488
  project_dir: getOriginalCwd(),
653462
653489
  added_dirs: addedDirs
653463
653490
  },
653464
- version: "1.44.4",
653491
+ version: "1.44.7",
653465
653492
  output_style: {
653466
653493
  name: outputStyleName
653467
653494
  },
@@ -653544,7 +653571,7 @@ function StatusLineInner({
653544
653571
  const taskValues = Object.values(tasks2);
653545
653572
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
653546
653573
  const defaultStatusLineText = buildDefaultStatusBar({
653547
- version: "1.44.4",
653574
+ version: "1.44.7",
653548
653575
  providerLabel: providerRuntime.providerLabel,
653549
653576
  authMode: providerRuntime.authLabel,
653550
653577
  model: providerRuntime.model ?? renderModelName(mainLoopModel),
@@ -665475,7 +665502,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
665475
665502
  } catch {}
665476
665503
  const data = {
665477
665504
  trigger: trigger2,
665478
- version: "1.44.4",
665505
+ version: "1.44.7",
665479
665506
  platform: process.platform,
665480
665507
  transcript,
665481
665508
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -677360,7 +677387,7 @@ function WelcomeV2() {
677360
677387
  dimColor: true,
677361
677388
  children: [
677362
677389
  "v",
677363
- "1.44.4"
677390
+ "1.44.7"
677364
677391
  ]
677365
677392
  }, undefined, true, undefined, this)
677366
677393
  ]
@@ -678620,7 +678647,7 @@ function completeOnboarding() {
678620
678647
  saveGlobalConfig((current) => ({
678621
678648
  ...current,
678622
678649
  hasCompletedOnboarding: true,
678623
- lastOnboardingVersion: "1.44.4"
678650
+ lastOnboardingVersion: "1.44.7"
678624
678651
  }));
678625
678652
  }
678626
678653
  function showDialog(root2, renderer) {
@@ -682262,12 +682289,15 @@ Settings load in order: user \u2192 project \u2192 local (later overrides earlie
682262
682289
  "allow": ["Bash(npm:*)", "Edit(.ur)", "Read"],
682263
682290
  "deny": ["Bash(rm -rf:*)"],
682264
682291
  "ask": ["Write(/etc/*)"],
682265
- "defaultMode": "default" | "plan" | "acceptEdits" | "dontAsk",
682292
+ "defaultMode": "default" | "plan" | "acceptEdits" | "autoApprove",
682266
682293
  "additionalDirectories": ["/extra/dir"]
682267
682294
  }
682268
682295
  }
682269
682296
  \`\`\`
682270
682297
 
682298
+ Set \`permissions.defaultMode\` to \`"autoApprove"\` to auto-approve operations
682299
+ that would otherwise stop for permission approval. User-input dialogs still ask.
682300
+
682271
682301
  **Permission Rule Syntax:**
682272
682302
  - Exact match: \`"Bash(npm run test)"\`
682273
682303
  - Prefix wildcard: \`"Bash(git:*)"\` - matches \`git status\`, \`git commit\`, etc.
@@ -683657,7 +683687,7 @@ function appendToLog(path24, message) {
683657
683687
  cwd: getFsImplementation().cwd(),
683658
683688
  userType: process.env.USER_TYPE,
683659
683689
  sessionId: getSessionId(),
683660
- version: "1.44.4"
683690
+ version: "1.44.7"
683661
683691
  };
683662
683692
  getLogWriter(path24).write(messageWithTimestamp);
683663
683693
  }
@@ -687751,8 +687781,8 @@ async function getEnvLessBridgeConfig() {
687751
687781
  }
687752
687782
  async function checkEnvLessBridgeMinVersion() {
687753
687783
  const cfg = await getEnvLessBridgeConfig();
687754
- if (cfg.min_version && lt("1.44.4", cfg.min_version)) {
687755
- return `Your version of UR (${"1.44.4"}) is too old for Remote Control.
687784
+ if (cfg.min_version && lt("1.44.7", cfg.min_version)) {
687785
+ return `Your version of UR (${"1.44.7"}) is too old for Remote Control.
687756
687786
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
687757
687787
  }
687758
687788
  return null;
@@ -688226,7 +688256,7 @@ async function initBridgeCore(params) {
688226
688256
  const rawApi = createBridgeApiClient({
688227
688257
  baseUrl,
688228
688258
  getAccessToken,
688229
- runnerVersion: "1.44.4",
688259
+ runnerVersion: "1.44.7",
688230
688260
  onDebug: logForDebugging,
688231
688261
  onAuth401,
688232
688262
  getTrustedDeviceToken
@@ -693908,7 +693938,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
693908
693938
  setCwd(cwd3);
693909
693939
  const server2 = new Server({
693910
693940
  name: "ur/tengu",
693911
- version: "1.44.4"
693941
+ version: "1.44.7"
693912
693942
  }, {
693913
693943
  capabilities: {
693914
693944
  tools: {}
@@ -695950,7 +695980,7 @@ async function update() {
695950
695980
  logEvent("tengu_update_check", {});
695951
695981
  const diagnostic = await getDoctorDiagnostic();
695952
695982
  const result = await checkUpgradeStatus({
695953
- currentVersion: "1.44.4",
695983
+ currentVersion: "1.44.7",
695954
695984
  packageName: UR_AGENT_PACKAGE_NAME,
695955
695985
  installationType: diagnostic.installationType,
695956
695986
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -697196,7 +697226,7 @@ ${customInstructions}` : customInstructions;
697196
697226
  }
697197
697227
  }
697198
697228
  logForDiagnosticsNoPII("info", "started", {
697199
- version: "1.44.4",
697229
+ version: "1.44.7",
697200
697230
  is_native_binary: isInBundledMode()
697201
697231
  });
697202
697232
  registerCleanup(async () => {
@@ -697982,7 +698012,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
697982
698012
  pendingHookMessages
697983
698013
  }, renderAndRun);
697984
698014
  }
697985
- }).version("1.44.4 (UR-Nexus)", "-v, --version", "Output the version number");
698015
+ }).version("1.44.7 (UR-Nexus)", "-v, --version", "Output the version number");
697986
698016
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
697987
698017
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
697988
698018
  if (canUserConfigureAdvisor()) {
@@ -698897,7 +698927,7 @@ if (false) {}
698897
698927
  async function main2() {
698898
698928
  const args = process.argv.slice(2);
698899
698929
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
698900
- console.log(`${"1.44.4"} (UR-Nexus)`);
698930
+ console.log(`${"1.44.7"} (UR-Nexus)`);
698901
698931
  return;
698902
698932
  }
698903
698933
  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.44.4</p>
47
+ <p class="eyebrow">Version 1.44.7</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.44.4",
5
+ "version": "1.44.7",
6
6
  "publisher": "ur-nexus",
7
7
  "engines": {
8
8
  "vscode": "^1.92.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.44.4",
3
+ "version": "1.44.7",
4
4
  "description": "UR-Nexus — autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",