ur-agent 1.43.2 → 1.43.4

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.43.4
4
+
5
+ - Tolerate hallucinated extra parameters on tool calls: when input validation
6
+ fails only because of unrecognized keys (e.g. `title`/`description` on a
7
+ `Write` call), those keys are stripped and the call is re-validated instead
8
+ of failing with `An unexpected parameter X was provided`. Genuine errors
9
+ (missing required fields, type mismatches) still surface normally.
10
+
11
+ ## 1.43.3
12
+
13
+ - Bias the assistant toward the interactive arrow-key select menu: the
14
+ AskUserQuestion tool guidance now instructs the model to use the selectable
15
+ menu whenever it offers the user a choice, instead of asking a free-form
16
+ question in plain text that the user has to answer by typing.
17
+
3
18
  ## 1.43.2
4
19
 
5
20
  - Fix artifact pages hanging blank: diff viewer assets (diff2html,
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.43.2"}`;
71149
+ return `ur/${"1.43.4"}`;
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.43.2"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
71171
+ return `ur-cli/${"1.43.4"} (${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.43.2"}${suffix}`;
71185
+ return `ur/${"1.43.4"}${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.43.2",
71323
+ appVersion: "1.43.4",
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.43.2".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
77840
+ const match = "1.43.4".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.43.2",
77880
+ version: "1.43.4",
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.43.2"
78550
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.43.4"
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.43.2");
78577
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.43.4");
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.43.2", coverage, priorityRoadmap;
83876
+ var urVersion = "1.43.4", 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.43.2"}.${fingerprint}`;
85871
+ const version2 = `${"1.43.4"}.${fingerprint}`;
85872
85872
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
85873
85873
  const cch = "";
85874
85874
  const workload = getWorkload();
@@ -144545,6 +144545,45 @@ function createChildAbortController(parent, maxListeners) {
144545
144545
  var DEFAULT_MAX_LISTENERS = 50;
144546
144546
  var init_abortController = () => {};
144547
144547
 
144548
+ // src/utils/toolInputSanitize.ts
144549
+ function stripEmptyParameterNames(input) {
144550
+ if (typeof input !== "object" || input === null || Array.isArray(input)) {
144551
+ return { input, stripped: false };
144552
+ }
144553
+ if (!("" in input))
144554
+ return { input, stripped: false };
144555
+ const { "": _dropped, ...rest } = input;
144556
+ return { input: rest, stripped: true };
144557
+ }
144558
+ function stripUnrecognizedKeys(input, issues) {
144559
+ const unrecognized = issues.filter((issue2) => issue2.code === "unrecognized_keys");
144560
+ if (unrecognized.length === 0 || typeof input !== "object" || input === null) {
144561
+ return { input, stripped: [] };
144562
+ }
144563
+ const clone3 = structuredClone(input);
144564
+ const stripped = [];
144565
+ for (const issue2 of unrecognized) {
144566
+ let target = clone3;
144567
+ for (const segment of issue2.path) {
144568
+ if (target === null || typeof target !== "object") {
144569
+ target = null;
144570
+ break;
144571
+ }
144572
+ target = target[segment];
144573
+ }
144574
+ if (target !== null && typeof target === "object") {
144575
+ const record2 = target;
144576
+ for (const key of issue2.keys ?? []) {
144577
+ if (key in record2) {
144578
+ delete record2[key];
144579
+ stripped.push(key);
144580
+ }
144581
+ }
144582
+ }
144583
+ }
144584
+ return { input: clone3, stripped };
144585
+ }
144586
+
144548
144587
  // node_modules/highlight.js/lib/core.js
144549
144588
  var require_core = __commonJS((exports, module) => {
144550
144589
  function deepFreeze(obj) {
@@ -193771,7 +193810,7 @@ function getTelemetryAttributes() {
193771
193810
  attributes["session.id"] = sessionId;
193772
193811
  }
193773
193812
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
193774
- attributes["app.version"] = "1.43.2";
193813
+ attributes["app.version"] = "1.43.4";
193775
193814
  }
193776
193815
  const oauthAccount = getOauthAccountInfo();
193777
193816
  if (oauthAccount) {
@@ -209821,7 +209860,7 @@ var init_promptCategory = __esm(() => {
209821
209860
  var ENTER_PLAN_MODE_TOOL_NAME = "EnterPlanMode";
209822
209861
 
209823
209862
  // src/tools/AskUserQuestionTool/prompt.ts
209824
- var ASK_USER_QUESTION_TOOL_NAME = "AskUserQuestion", ASK_USER_QUESTION_TOOL_CHIP_WIDTH = 12, DESCRIPTION5 = "Asks the user multiple choice questions to gather information, clarify ambiguity, understand preferences, make decisions or offer them choices.", PREVIEW_FEATURE_PROMPT, ASK_USER_QUESTION_TOOL_PROMPT;
209863
+ var ASK_USER_QUESTION_TOOL_NAME = "AskUserQuestion", ASK_USER_QUESTION_TOOL_CHIP_WIDTH = 12, DESCRIPTION5 = "Asks the user multiple choice questions to gather information, clarify ambiguity, understand preferences, make decisions or offer them choices. This is the required way to present the user with a choice: whenever you would otherwise end a message by asking the user to pick between options or decide a direction, call this tool instead of asking in plain text, so the user gets a selectable menu rather than having to type a free-form answer.", PREVIEW_FEATURE_PROMPT, ASK_USER_QUESTION_TOOL_PROMPT;
209825
209864
  var init_prompt9 = __esm(() => {
209826
209865
  PREVIEW_FEATURE_PROMPT = {
209827
209866
  markdown: `
@@ -209850,8 +209889,10 @@ Preview content must be a self-contained HTML fragment (no <html>/<body> wrapper
209850
209889
  3. Get decisions on implementation choices as you work
209851
209890
  4. Offer choices to the user about what direction to take.
209852
209891
 
209892
+ Strongly prefer this tool over asking a question in plain assistant text. Any time your reply would end with a question that offers the user options or asks them to choose a direction (e.g. "Would you like A or B?", "Which approach should I take?", "Want me to do X or Y?"), call this tool with those options instead so the user gets a selectable arrow-key menu. Only ask in plain text when the answer is genuinely open-ended and cannot be expressed as a small set of choices.
209893
+
209853
209894
  Usage notes:
209854
- - Users will always be able to select "Other" to provide custom text input
209895
+ - Users will always be able to select "Other" to provide custom text input, so it is safe to offer choices even when you are unsure you have listed every option
209855
209896
  - Use multiSelect: true to allow multiple answers to be selected for a question
209856
209897
  - If you recommend a specific option, make that the first option in the list and add "(Recommended)" at the end of the label
209857
209898
 
@@ -229157,7 +229198,7 @@ function getInstallationEnv() {
229157
229198
  return;
229158
229199
  }
229159
229200
  function getURCodeVersion() {
229160
- return "1.43.2";
229201
+ return "1.43.4";
229161
229202
  }
229162
229203
  async function getInstalledVSCodeExtensionVersion(command) {
229163
229204
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -231996,7 +232037,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
231996
232037
  const client2 = new Client({
231997
232038
  name: "ur",
231998
232039
  title: "UR",
231999
- version: "1.43.2",
232040
+ version: "1.43.4",
232000
232041
  description: "UR-Nexus autonomous engineering workflow engine",
232001
232042
  websiteUrl: PRODUCT_URL
232002
232043
  }, {
@@ -232350,7 +232391,7 @@ var init_client5 = __esm(() => {
232350
232391
  const client2 = new Client({
232351
232392
  name: "ur",
232352
232393
  title: "UR",
232353
- version: "1.43.2",
232394
+ version: "1.43.4",
232354
232395
  description: "UR-Nexus autonomous engineering workflow engine",
232355
232396
  websiteUrl: PRODUCT_URL
232356
232397
  }, {
@@ -242164,9 +242205,9 @@ async function assertMinVersion() {
242164
242205
  if (false) {}
242165
242206
  try {
242166
242207
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
242167
- if (versionConfig.minVersion && lt("1.43.2", versionConfig.minVersion)) {
242208
+ if (versionConfig.minVersion && lt("1.43.4", versionConfig.minVersion)) {
242168
242209
  console.error(`
242169
- It looks like your version of UR (${"1.43.2"}) needs an update.
242210
+ It looks like your version of UR (${"1.43.4"}) needs an update.
242170
242211
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
242171
242212
 
242172
242213
  To update, please run:
@@ -242382,7 +242423,7 @@ async function installGlobalPackage(specificVersion) {
242382
242423
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
242383
242424
  logEvent("tengu_auto_updater_lock_contention", {
242384
242425
  pid: process.pid,
242385
- currentVersion: "1.43.2"
242426
+ currentVersion: "1.43.4"
242386
242427
  });
242387
242428
  return "in_progress";
242388
242429
  }
@@ -242391,7 +242432,7 @@ async function installGlobalPackage(specificVersion) {
242391
242432
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
242392
242433
  logError2(new Error("Windows NPM detected in WSL environment"));
242393
242434
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
242394
- currentVersion: "1.43.2"
242435
+ currentVersion: "1.43.4"
242395
242436
  });
242396
242437
  console.error(`
242397
242438
  Error: Windows NPM detected in WSL
@@ -242926,7 +242967,7 @@ function detectLinuxGlobPatternWarnings() {
242926
242967
  }
242927
242968
  async function getDoctorDiagnostic() {
242928
242969
  const installationType = await getCurrentInstallationType();
242929
- const version2 = typeof MACRO !== "undefined" ? "1.43.2" : "unknown";
242970
+ const version2 = typeof MACRO !== "undefined" ? "1.43.4" : "unknown";
242930
242971
  const installationPath = await getInstallationPath();
242931
242972
  const invokedBinary = getInvokedBinary();
242932
242973
  const multipleInstallations = await detectMultipleInstallations();
@@ -243861,8 +243902,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
243861
243902
  const maxVersion = await getMaxVersion();
243862
243903
  if (maxVersion && gt(version2, maxVersion)) {
243863
243904
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
243864
- if (gte("1.43.2", maxVersion)) {
243865
- logForDebugging(`Native installer: current version ${"1.43.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
243905
+ if (gte("1.43.4", maxVersion)) {
243906
+ logForDebugging(`Native installer: current version ${"1.43.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
243866
243907
  logEvent("tengu_native_update_skipped_max_version", {
243867
243908
  latency_ms: Date.now() - startTime,
243868
243909
  max_version: maxVersion,
@@ -243873,7 +243914,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
243873
243914
  version2 = maxVersion;
243874
243915
  }
243875
243916
  }
243876
- if (!forceReinstall && version2 === "1.43.2" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
243917
+ if (!forceReinstall && version2 === "1.43.4" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
243877
243918
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
243878
243919
  logEvent("tengu_native_update_complete", {
243879
243920
  latency_ms: Date.now() - startTime,
@@ -313964,7 +314005,20 @@ function buildSchemaNotSentHint(tool, messages, tools) {
313964
314005
  This tool's schema was not sent to the API \u2014 it was not in the discovered-tool set derived from message history. ` + `Without the schema in your prompt, typed parameters (arrays, numbers, booleans) get emitted as strings and the client-side parser rejects them. ` + `Load the tool first: call ${TOOL_SEARCH_TOOL_NAME} with query "select:${tool.name}", then retry this call.`;
313965
314006
  }
313966
314007
  async function checkPermissionsAndCallTool(tool, toolUseID, input, toolUseContext, canUseTool, assistantMessage, messageId, requestId, mcpServerType, mcpServerBaseUrl, onToolProgress) {
313967
- const parsedInput = tool.inputSchema.safeParse(input);
314008
+ let parsedInput = tool.inputSchema.safeParse(input);
314009
+ if (!parsedInput.success && parsedInput.error.issues.length > 0 && parsedInput.error.issues.every((issue2) => issue2.code === "unrecognized_keys")) {
314010
+ const { input: cleaned, stripped } = stripUnrecognizedKeys(input, parsedInput.error.issues);
314011
+ if (stripped.length > 0) {
314012
+ const retry = tool.inputSchema.safeParse(cleaned);
314013
+ if (retry.success) {
314014
+ logEvent("tengu_tool_input_unrecognized_keys_stripped", {
314015
+ toolName: sanitizeToolNameForAnalytics(tool.name)
314016
+ });
314017
+ input = cleaned;
314018
+ parsedInput = retry;
314019
+ }
314020
+ }
314021
+ }
313968
314022
  if (!parsedInput.success) {
313969
314023
  let errorContent = formatZodValidationError(tool.name, parsedInput.error);
313970
314024
  const schemaHint = buildSchemaNotSentHint(tool, toolUseContext.messages, toolUseContext.options.tools);
@@ -329888,17 +329942,6 @@ ${EXPLANATORY_FEATURE_PROMPT}`
329888
329942
  });
329889
329943
  });
329890
329944
 
329891
- // src/utils/toolInputSanitize.ts
329892
- function stripEmptyParameterNames(input) {
329893
- if (typeof input !== "object" || input === null || Array.isArray(input)) {
329894
- return { input, stripped: false };
329895
- }
329896
- if (!("" in input))
329897
- return { input, stripped: false };
329898
- const { "": _dropped, ...rest } = input;
329899
- return { input: rest, stripped: true };
329900
- }
329901
-
329902
329945
  // src/utils/messages.ts
329903
329946
  import { randomUUID as randomUUID32 } from "crypto";
329904
329947
  function getTeammateMailbox() {
@@ -340862,7 +340905,7 @@ function Feedback({
340862
340905
  platform: env2.platform,
340863
340906
  gitRepo: envInfo.isGit,
340864
340907
  terminal: env2.terminal,
340865
- version: "1.43.2",
340908
+ version: "1.43.4",
340866
340909
  transcript: normalizeMessagesForAPI(messages),
340867
340910
  errors: sanitizedErrors,
340868
340911
  lastApiRequest: getLastAPIRequest(),
@@ -341054,7 +341097,7 @@ function Feedback({
341054
341097
  ", ",
341055
341098
  env2.terminal,
341056
341099
  ", v",
341057
- "1.43.2"
341100
+ "1.43.4"
341058
341101
  ]
341059
341102
  }, undefined, true, undefined, this)
341060
341103
  ]
@@ -341160,7 +341203,7 @@ ${sanitizedDescription}
341160
341203
  ` + `**Environment Info**
341161
341204
  ` + `- Platform: ${env2.platform}
341162
341205
  ` + `- Terminal: ${env2.terminal}
341163
- ` + `- Version: ${"1.43.2"}
341206
+ ` + `- Version: ${"1.43.4"}
341164
341207
  ` + `- Feedback ID: ${feedbackId}
341165
341208
  ` + `
341166
341209
  **Errors**
@@ -344271,7 +344314,7 @@ function buildPrimarySection() {
344271
344314
  }, undefined, false, undefined, this);
344272
344315
  return [{
344273
344316
  label: "Version",
344274
- value: "1.43.2"
344317
+ value: "1.43.4"
344275
344318
  }, {
344276
344319
  label: "Session name",
344277
344320
  value: nameValue
@@ -347572,7 +347615,7 @@ function Config({
347572
347615
  }
347573
347616
  }, undefined, false, undefined, this)
347574
347617
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
347575
- currentVersion: "1.43.2",
347618
+ currentVersion: "1.43.4",
347576
347619
  onChoice: (choice) => {
347577
347620
  setShowSubmenu(null);
347578
347621
  setTabsHidden(false);
@@ -347584,7 +347627,7 @@ function Config({
347584
347627
  autoUpdatesChannel: "stable"
347585
347628
  };
347586
347629
  if (choice === "stay") {
347587
- newSettings.minimumVersion = "1.43.2";
347630
+ newSettings.minimumVersion = "1.43.4";
347588
347631
  }
347589
347632
  updateSettingsForSource("userSettings", newSettings);
347590
347633
  setSettingsData((prev_27) => ({
@@ -355654,7 +355697,7 @@ function HelpV2(t0) {
355654
355697
  let t6;
355655
355698
  if ($3[31] !== tabs) {
355656
355699
  t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
355657
- title: `UR v${"1.43.2"}`,
355700
+ title: `UR v${"1.43.4"}`,
355658
355701
  color: "professionalBlue",
355659
355702
  defaultTab: "general",
355660
355703
  children: tabs
@@ -356400,7 +356443,7 @@ function buildToolUseContext(tools, readFileStateCache) {
356400
356443
  async function handleInitialize(options2) {
356401
356444
  return {
356402
356445
  name: "UR",
356403
- version: "1.43.2",
356446
+ version: "1.43.4",
356404
356447
  protocolVersion: "0.1.0",
356405
356448
  workspaceRoot: options2.cwd,
356406
356449
  capabilities: {
@@ -376542,7 +376585,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
376542
376585
  return [];
376543
376586
  }
376544
376587
  }
376545
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.43.2") {
376588
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.43.4") {
376546
376589
  if (process.env.USER_TYPE === "ant") {
376547
376590
  const changelog = "";
376548
376591
  if (changelog) {
@@ -376569,7 +376612,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.43.2")
376569
376612
  releaseNotes
376570
376613
  };
376571
376614
  }
376572
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.43.2") {
376615
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.43.4") {
376573
376616
  if (process.env.USER_TYPE === "ant") {
376574
376617
  const changelog = "";
376575
376618
  if (changelog) {
@@ -377748,7 +377791,7 @@ function getRecentActivitySync() {
377748
377791
  return cachedActivity;
377749
377792
  }
377750
377793
  function getLogoDisplayData() {
377751
- const version2 = process.env.DEMO_VERSION ?? "1.43.2";
377794
+ const version2 = process.env.DEMO_VERSION ?? "1.43.4";
377752
377795
  const serverUrl = getDirectConnectServerUrl();
377753
377796
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
377754
377797
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -378537,7 +378580,7 @@ function LogoV2() {
378537
378580
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
378538
378581
  t2 = () => {
378539
378582
  const currentConfig2 = getGlobalConfig();
378540
- if (currentConfig2.lastReleaseNotesSeen === "1.43.2") {
378583
+ if (currentConfig2.lastReleaseNotesSeen === "1.43.4") {
378541
378584
  return;
378542
378585
  }
378543
378586
  saveGlobalConfig(_temp326);
@@ -379222,12 +379265,12 @@ function LogoV2() {
379222
379265
  return t41;
379223
379266
  }
379224
379267
  function _temp326(current) {
379225
- if (current.lastReleaseNotesSeen === "1.43.2") {
379268
+ if (current.lastReleaseNotesSeen === "1.43.4") {
379226
379269
  return current;
379227
379270
  }
379228
379271
  return {
379229
379272
  ...current,
379230
- lastReleaseNotesSeen: "1.43.2"
379273
+ lastReleaseNotesSeen: "1.43.4"
379231
379274
  };
379232
379275
  }
379233
379276
  function _temp243(s_0) {
@@ -411108,7 +411151,7 @@ var init_code_index2 = __esm(() => {
411108
411151
 
411109
411152
  // node_modules/typescript/lib/typescript.js
411110
411153
  var require_typescript2 = __commonJS((exports, module) => {
411111
- var __dirname = "/sessions/friendly-inspiring-goldberg/mnt/UR-1.43.0/node_modules/typescript/lib", __filename = "/sessions/friendly-inspiring-goldberg/mnt/UR-1.43.0/node_modules/typescript/lib/typescript.js";
411154
+ var __dirname = "/sessions/friendly-inspiring-goldberg/mnt/UR-1.43.3/node_modules/typescript/lib", __filename = "/sessions/friendly-inspiring-goldberg/mnt/UR-1.43.3/node_modules/typescript/lib/typescript.js";
411112
411155
  /*! *****************************************************************************
411113
411156
  Copyright (c) Microsoft Corporation. All rights reserved.
411114
411157
  Licensed under the Apache License, Version 2.0 (the "License"); you may not use
@@ -596642,7 +596685,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
596642
596685
  smapsRollup,
596643
596686
  platform: process.platform,
596644
596687
  nodeVersion: process.version,
596645
- ccVersion: "1.43.2"
596688
+ ccVersion: "1.43.4"
596646
596689
  };
596647
596690
  }
596648
596691
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -597228,7 +597271,7 @@ var init_bridge_kick = __esm(() => {
597228
597271
  var call137 = async () => {
597229
597272
  return {
597230
597273
  type: "text",
597231
- value: "1.43.2"
597274
+ value: "1.43.4"
597232
597275
  };
597233
597276
  }, version2, version_default;
597234
597277
  var init_version = __esm(() => {
@@ -607321,7 +607364,7 @@ function generateHtmlReport(data, insights) {
607321
607364
  </html>`;
607322
607365
  }
607323
607366
  function buildExportData(data, insights, facets, remoteStats) {
607324
- const version3 = typeof MACRO !== "undefined" ? "1.43.2" : "unknown";
607367
+ const version3 = typeof MACRO !== "undefined" ? "1.43.4" : "unknown";
607325
607368
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
607326
607369
  const facets_summary = {
607327
607370
  total: facets.size,
@@ -611601,7 +611644,7 @@ var init_sessionStorage = __esm(() => {
611601
611644
  init_settings2();
611602
611645
  init_slowOperations();
611603
611646
  init_uuid();
611604
- VERSION5 = typeof MACRO !== "undefined" ? "1.43.2" : "unknown";
611647
+ VERSION5 = typeof MACRO !== "undefined" ? "1.43.4" : "unknown";
611605
611648
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
611606
611649
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
611607
611650
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -612806,7 +612849,7 @@ var init_filesystem = __esm(() => {
612806
612849
  });
612807
612850
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
612808
612851
  const nonce = randomBytes18(16).toString("hex");
612809
- return join202(getURTempDir(), "bundled-skills", "1.43.2", nonce);
612852
+ return join202(getURTempDir(), "bundled-skills", "1.43.4", nonce);
612810
612853
  });
612811
612854
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
612812
612855
  });
@@ -619095,7 +619138,7 @@ function computeFingerprint(messageText2, version3) {
619095
619138
  }
619096
619139
  function computeFingerprintFromMessages(messages) {
619097
619140
  const firstMessageText = extractFirstMessageText(messages);
619098
- return computeFingerprint(firstMessageText, "1.43.2");
619141
+ return computeFingerprint(firstMessageText, "1.43.4");
619099
619142
  }
619100
619143
  var FINGERPRINT_SALT = "59cf53e54c78";
619101
619144
  var init_fingerprint = () => {};
@@ -620969,7 +621012,7 @@ async function sideQuery(opts) {
620969
621012
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
620970
621013
  }
620971
621014
  const messageText2 = extractFirstUserMessageText(messages);
620972
- const fingerprint2 = computeFingerprint(messageText2, "1.43.2");
621015
+ const fingerprint2 = computeFingerprint(messageText2, "1.43.4");
620973
621016
  const attributionHeader = getAttributionHeader(fingerprint2);
620974
621017
  const systemBlocks = [
620975
621018
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -625706,7 +625749,7 @@ function buildSystemInitMessage(inputs) {
625706
625749
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
625707
625750
  apiKeySource: getURHQApiKeyWithSource().source,
625708
625751
  betas: getSdkBetas(),
625709
- ur_version: "1.43.2",
625752
+ ur_version: "1.43.4",
625710
625753
  output_style: outputStyle2,
625711
625754
  agents: inputs.agents.map((agent) => agent.agentType),
625712
625755
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -640334,7 +640377,7 @@ var init_useVoiceEnabled = __esm(() => {
640334
640377
  function getSemverPart(version3) {
640335
640378
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
640336
640379
  }
640337
- function useUpdateNotification(updatedVersion, initialVersion = "1.43.2") {
640380
+ function useUpdateNotification(updatedVersion, initialVersion = "1.43.4") {
640338
640381
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
640339
640382
  if (!updatedVersion) {
640340
640383
  return null;
@@ -640383,7 +640426,7 @@ function AutoUpdater({
640383
640426
  return;
640384
640427
  }
640385
640428
  if (false) {}
640386
- const currentVersion = "1.43.2";
640429
+ const currentVersion = "1.43.4";
640387
640430
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
640388
640431
  let latestVersion = await getLatestVersion(channel);
640389
640432
  const isDisabled = isAutoUpdaterDisabled();
@@ -640612,12 +640655,12 @@ function NativeAutoUpdater({
640612
640655
  logEvent("tengu_native_auto_updater_start", {});
640613
640656
  try {
640614
640657
  const maxVersion = await getMaxVersion();
640615
- if (maxVersion && gt("1.43.2", maxVersion)) {
640658
+ if (maxVersion && gt("1.43.4", maxVersion)) {
640616
640659
  const msg = await getMaxVersionMessage();
640617
640660
  setMaxVersionIssue(msg ?? "affects your version");
640618
640661
  }
640619
640662
  const result = await installLatest(channel);
640620
- const currentVersion = "1.43.2";
640663
+ const currentVersion = "1.43.4";
640621
640664
  const latencyMs = Date.now() - startTime;
640622
640665
  if (result.lockFailed) {
640623
640666
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -640754,17 +640797,17 @@ function PackageManagerAutoUpdater(t0) {
640754
640797
  const maxVersion = await getMaxVersion();
640755
640798
  if (maxVersion && latest && gt(latest, maxVersion)) {
640756
640799
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
640757
- if (gte("1.43.2", maxVersion)) {
640758
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.43.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
640800
+ if (gte("1.43.4", maxVersion)) {
640801
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.43.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
640759
640802
  setUpdateAvailable(false);
640760
640803
  return;
640761
640804
  }
640762
640805
  latest = maxVersion;
640763
640806
  }
640764
- const hasUpdate = latest && !gte("1.43.2", latest) && !shouldSkipVersion(latest);
640807
+ const hasUpdate = latest && !gte("1.43.4", latest) && !shouldSkipVersion(latest);
640765
640808
  setUpdateAvailable(!!hasUpdate);
640766
640809
  if (hasUpdate) {
640767
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.43.2"} -> ${latest}`);
640810
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.43.4"} -> ${latest}`);
640768
640811
  }
640769
640812
  };
640770
640813
  $3[0] = t1;
@@ -640798,7 +640841,7 @@ function PackageManagerAutoUpdater(t0) {
640798
640841
  wrap: "truncate",
640799
640842
  children: [
640800
640843
  "currentVersion: ",
640801
- "1.43.2"
640844
+ "1.43.4"
640802
640845
  ]
640803
640846
  }, undefined, true, undefined, this);
640804
640847
  $3[3] = verbose;
@@ -653250,7 +653293,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
653250
653293
  project_dir: getOriginalCwd(),
653251
653294
  added_dirs: addedDirs
653252
653295
  },
653253
- version: "1.43.2",
653296
+ version: "1.43.4",
653254
653297
  output_style: {
653255
653298
  name: outputStyleName
653256
653299
  },
@@ -653333,7 +653376,7 @@ function StatusLineInner({
653333
653376
  const taskValues = Object.values(tasks2);
653334
653377
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
653335
653378
  const defaultStatusLineText = buildDefaultStatusBar({
653336
- version: "1.43.2",
653379
+ version: "1.43.4",
653337
653380
  providerLabel: providerRuntime.providerLabel,
653338
653381
  authMode: providerRuntime.authLabel,
653339
653382
  model: providerRuntime.model ?? renderModelName(mainLoopModel),
@@ -664821,7 +664864,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
664821
664864
  } catch {}
664822
664865
  const data = {
664823
664866
  trigger: trigger2,
664824
- version: "1.43.2",
664867
+ version: "1.43.4",
664825
664868
  platform: process.platform,
664826
664869
  transcript,
664827
664870
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -676706,7 +676749,7 @@ function WelcomeV2() {
676706
676749
  dimColor: true,
676707
676750
  children: [
676708
676751
  "v",
676709
- "1.43.2"
676752
+ "1.43.4"
676710
676753
  ]
676711
676754
  }, undefined, true, undefined, this)
676712
676755
  ]
@@ -677966,7 +678009,7 @@ function completeOnboarding() {
677966
678009
  saveGlobalConfig((current) => ({
677967
678010
  ...current,
677968
678011
  hasCompletedOnboarding: true,
677969
- lastOnboardingVersion: "1.43.2"
678012
+ lastOnboardingVersion: "1.43.4"
677970
678013
  }));
677971
678014
  }
677972
678015
  function showDialog(root2, renderer) {
@@ -683003,7 +683046,7 @@ function appendToLog(path24, message) {
683003
683046
  cwd: getFsImplementation().cwd(),
683004
683047
  userType: process.env.USER_TYPE,
683005
683048
  sessionId: getSessionId(),
683006
- version: "1.43.2"
683049
+ version: "1.43.4"
683007
683050
  };
683008
683051
  getLogWriter(path24).write(messageWithTimestamp);
683009
683052
  }
@@ -687097,8 +687140,8 @@ async function getEnvLessBridgeConfig() {
687097
687140
  }
687098
687141
  async function checkEnvLessBridgeMinVersion() {
687099
687142
  const cfg = await getEnvLessBridgeConfig();
687100
- if (cfg.min_version && lt("1.43.2", cfg.min_version)) {
687101
- return `Your version of UR (${"1.43.2"}) is too old for Remote Control.
687143
+ if (cfg.min_version && lt("1.43.4", cfg.min_version)) {
687144
+ return `Your version of UR (${"1.43.4"}) is too old for Remote Control.
687102
687145
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
687103
687146
  }
687104
687147
  return null;
@@ -687572,7 +687615,7 @@ async function initBridgeCore(params) {
687572
687615
  const rawApi = createBridgeApiClient({
687573
687616
  baseUrl,
687574
687617
  getAccessToken,
687575
- runnerVersion: "1.43.2",
687618
+ runnerVersion: "1.43.4",
687576
687619
  onDebug: logForDebugging,
687577
687620
  onAuth401,
687578
687621
  getTrustedDeviceToken
@@ -693254,7 +693297,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
693254
693297
  setCwd(cwd3);
693255
693298
  const server2 = new Server({
693256
693299
  name: "ur/tengu",
693257
- version: "1.43.2"
693300
+ version: "1.43.4"
693258
693301
  }, {
693259
693302
  capabilities: {
693260
693303
  tools: {}
@@ -695296,7 +695339,7 @@ async function update() {
695296
695339
  logEvent("tengu_update_check", {});
695297
695340
  const diagnostic = await getDoctorDiagnostic();
695298
695341
  const result = await checkUpgradeStatus({
695299
- currentVersion: "1.43.2",
695342
+ currentVersion: "1.43.4",
695300
695343
  packageName: UR_AGENT_PACKAGE_NAME,
695301
695344
  installationType: diagnostic.installationType,
695302
695345
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -696542,7 +696585,7 @@ ${customInstructions}` : customInstructions;
696542
696585
  }
696543
696586
  }
696544
696587
  logForDiagnosticsNoPII("info", "started", {
696545
- version: "1.43.2",
696588
+ version: "1.43.4",
696546
696589
  is_native_binary: isInBundledMode()
696547
696590
  });
696548
696591
  registerCleanup(async () => {
@@ -697328,7 +697371,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
697328
697371
  pendingHookMessages
697329
697372
  }, renderAndRun);
697330
697373
  }
697331
- }).version("1.43.2 (UR-Nexus)", "-v, --version", "Output the version number");
697374
+ }).version("1.43.4 (UR-Nexus)", "-v, --version", "Output the version number");
697332
697375
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
697333
697376
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
697334
697377
  if (canUserConfigureAdvisor()) {
@@ -698243,7 +698286,7 @@ if (false) {}
698243
698286
  async function main2() {
698244
698287
  const args = process.argv.slice(2);
698245
698288
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
698246
- console.log(`${"1.43.2"} (UR-Nexus)`);
698289
+ console.log(`${"1.43.4"} (UR-Nexus)`);
698247
698290
  return;
698248
698291
  }
698249
698292
  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.43.2</p>
47
+ <p class="eyebrow">Version 1.43.4</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.43.2",
5
+ "version": "1.43.4",
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.43.2",
3
+ "version": "1.43.4",
4
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",