ur-agent 1.43.4 → 1.43.5

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,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.43.5
4
+
5
+ - Fix model discovery for OpenAI-compatible providers (LM Studio, llama.cpp,
6
+ vLLM) when base_url omits the API version segment. Discovery and `ur provider
7
+ doctor` now also try `/v1/models` when base_url is just `host:port`, so
8
+ `/model` lists the server's models instead of "returned no models". The
9
+ doctor reports the path that actually returns models and warns when an
10
+ endpoint is reachable but empty, instead of a misleading bare-`/models` pass.
11
+
3
12
  ## 1.43.4
4
13
 
5
14
  - Tolerate hallucinated extra parameters on tool calls: when input validation
package/dist/cli.js CHANGED
@@ -51990,6 +51990,14 @@ function endpointUrl(baseUrl, kind) {
51990
51990
  }
51991
51991
  return `${trimmed}/models`;
51992
51992
  }
51993
+ function openAiCompatibleModelUrls(baseUrl) {
51994
+ const trimmed = baseUrl.replace(/\/+$/, "");
51995
+ const urls = [`${trimmed}/models`];
51996
+ if (!/\/(v\d+|api)(\/|$)/i.test(trimmed)) {
51997
+ urls.push(`${trimmed}/v1/models`);
51998
+ }
51999
+ return urls;
52000
+ }
51993
52001
  function isLocalBaseUrl(value) {
51994
52002
  return LOCALHOST_RE.test(value);
51995
52003
  }
@@ -52006,49 +52014,86 @@ async function checkEndpoint(definition, settings, adapters, result) {
52006
52014
  addFailure(result, "missing base_url", "Run: ur config set base_url <url>");
52007
52015
  return;
52008
52016
  }
52009
- const url3 = endpointUrl(baseUrl, definition.endpointKind);
52010
- try {
52011
- const response = await (adapters.fetch ?? fetch)(url3, {
52012
- method: "GET",
52013
- headers: definition.accessType === "api" && (adapters.env ?? process.env)[definition.envKey ?? ""] ? { Authorization: `Bearer ${(adapters.env ?? process.env)[definition.envKey ?? ""]}` } : undefined
52014
- });
52017
+ const candidates = definition.endpointKind === "ollama" ? [endpointUrl(baseUrl, "ollama")] : openAiCompatibleModelUrls(baseUrl);
52018
+ const headers = definition.accessType === "api" && (adapters.env ?? process.env)[definition.envKey ?? ""] ? { Authorization: `Bearer ${(adapters.env ?? process.env)[definition.envKey ?? ""]}` } : undefined;
52019
+ const fetchImpl = adapters.fetch ?? fetch;
52020
+ let reachableUrl;
52021
+ let modelsUrl;
52022
+ let modelsBody = "";
52023
+ let lastStatus;
52024
+ let lastError;
52025
+ for (const candidate of candidates) {
52026
+ let response;
52027
+ try {
52028
+ response = await fetchImpl(candidate, { method: "GET", headers });
52029
+ } catch (error40) {
52030
+ lastError = error40 instanceof Error ? error40 : new Error(String(error40));
52031
+ continue;
52032
+ }
52015
52033
  if (!response.ok) {
52034
+ lastStatus = response.status;
52035
+ continue;
52036
+ }
52037
+ reachableUrl ??= candidate;
52038
+ const body = await response.text().catch(() => "");
52039
+ let parsed = null;
52040
+ try {
52041
+ parsed = JSON.parse(body);
52042
+ } catch {
52043
+ parsed = null;
52044
+ }
52045
+ const names = definition.endpointKind === "ollama" ? parseOllamaModelNamesFromTags(parsed) : parseOpenAICompatibleModelNames(parsed);
52046
+ if (names.length > 0) {
52047
+ modelsUrl = candidate;
52048
+ modelsBody = body;
52049
+ break;
52050
+ }
52051
+ }
52052
+ if (!reachableUrl) {
52053
+ if (lastStatus !== undefined) {
52016
52054
  result.checks.push({
52017
52055
  name: "endpoint",
52018
52056
  status: "fail",
52019
- message: `${url3} returned HTTP ${response.status}.`
52057
+ message: `${candidates[0]} returned HTTP ${lastStatus}.`
52020
52058
  });
52021
- addFailure(result, `endpoint returned HTTP ${response.status}`, `Start the provider server or update base_url: ur config set base_url ${baseUrl}`);
52022
- return;
52059
+ addFailure(result, `endpoint returned HTTP ${lastStatus}`, `Start the provider server or update base_url: ur config set base_url ${baseUrl}`);
52060
+ } else {
52061
+ result.checks.push({
52062
+ name: "endpoint",
52063
+ status: "fail",
52064
+ message: `${candidates[0]} is not reachable.`
52065
+ });
52066
+ addFailure(result, lastError?.message ?? "endpoint unavailable", `Start the provider server or update base_url: ur config set base_url ${baseUrl}`);
52023
52067
  }
52068
+ return;
52069
+ }
52070
+ const chosenUrl = modelsUrl ?? reachableUrl;
52071
+ result.checks.push({
52072
+ name: "endpoint",
52073
+ status: "pass",
52074
+ message: `${chosenUrl} is reachable.`
52075
+ });
52076
+ if (!modelsUrl) {
52024
52077
  result.checks.push({
52025
- name: "endpoint",
52026
- status: "pass",
52027
- message: `${url3} is reachable.`
52078
+ name: "models",
52079
+ status: "warn",
52080
+ message: `${reachableUrl} is reachable but returned no models. Load a model in the server, or check that base_url includes the API path (e.g. /v1).`
52028
52081
  });
52029
- if (settings.model) {
52030
- const body = await response.text().catch(() => "");
52031
- if (body && !body.includes(settings.model)) {
52032
- result.checks.push({
52033
- name: "model",
52034
- status: "warn",
52035
- message: `Model "${settings.model}" was not found in the detectable model list.`
52036
- });
52037
- } else {
52038
- result.checks.push({
52039
- name: "model",
52040
- status: "pass",
52041
- message: `Model "${settings.model}" is detectable.`
52042
- });
52043
- }
52082
+ }
52083
+ if (settings.model) {
52084
+ if (modelsBody && !modelsBody.includes(settings.model)) {
52085
+ result.checks.push({
52086
+ name: "model",
52087
+ status: "warn",
52088
+ message: `Model "${settings.model}" was not found in the detectable model list.`
52089
+ });
52090
+ } else if (modelsBody) {
52091
+ result.checks.push({
52092
+ name: "model",
52093
+ status: "pass",
52094
+ message: `Model "${settings.model}" is detectable.`
52095
+ });
52044
52096
  }
52045
- } catch (error40) {
52046
- result.checks.push({
52047
- name: "endpoint",
52048
- status: "fail",
52049
- message: `${url3} is not reachable.`
52050
- });
52051
- addFailure(result, error40 instanceof Error ? error40.message : "endpoint unavailable", `Start the provider server or update base_url: ur config set base_url ${baseUrl}`);
52052
52097
  }
52053
52098
  }
52054
52099
  async function checkSubscriptionProvider(definition, settings, adapters, result) {
@@ -52612,19 +52657,43 @@ async function discoverLiveModelsForProvider(provider, options = {}) {
52612
52657
  if (!baseUrl) {
52613
52658
  throw new Error(`No base_url configured for provider "${provider}".`);
52614
52659
  }
52615
- const url3 = endpointUrl(baseUrl, definition.endpointKind);
52616
52660
  const env4 = options.adapters?.env ?? process.env;
52617
- const response = await (options.adapters?.fetch ?? fetch)(url3, {
52618
- method: "GET",
52619
- signal: options.signal,
52620
- headers: definition.accessType === "api" && definition.envKey && env4[definition.envKey] ? { Authorization: `Bearer ${env4[definition.envKey]}` } : undefined
52621
- });
52622
- if (!response.ok) {
52623
- throw new Error(`${url3} returned HTTP ${response.status}.`);
52661
+ const fetchImpl = options.adapters?.fetch ?? fetch;
52662
+ const headers = definition.accessType === "api" && definition.envKey && env4[definition.envKey] ? { Authorization: `Bearer ${env4[definition.envKey]}` } : undefined;
52663
+ if (definition.endpointKind === "ollama") {
52664
+ const url3 = endpointUrl(baseUrl, "ollama");
52665
+ const response = await fetchImpl(url3, { method: "GET", signal: options.signal, headers });
52666
+ if (!response.ok) {
52667
+ throw new Error(`${url3} returned HTTP ${response.status}.`);
52668
+ }
52669
+ const names = parseOllamaModelNamesFromTags(await response.json());
52670
+ return modelDefinitionsFromNames(provider, names, "live");
52624
52671
  }
52625
- const body = await response.json();
52626
- const names = definition.endpointKind === "ollama" ? parseOllamaModelNamesFromTags(body) : parseOpenAICompatibleModelNames(body);
52627
- return modelDefinitionsFromNames(provider, names, "live");
52672
+ let reachedOk = false;
52673
+ let lastError;
52674
+ for (const url3 of openAiCompatibleModelUrls(baseUrl)) {
52675
+ let response;
52676
+ try {
52677
+ response = await fetchImpl(url3, { method: "GET", signal: options.signal, headers });
52678
+ } catch (error40) {
52679
+ lastError = error40 instanceof Error ? error40 : new Error(String(error40));
52680
+ continue;
52681
+ }
52682
+ if (!response.ok) {
52683
+ lastError = new Error(`${url3} returned HTTP ${response.status}.`);
52684
+ continue;
52685
+ }
52686
+ reachedOk = true;
52687
+ const body = await response.json().catch(() => null);
52688
+ const names = parseOpenAICompatibleModelNames(body);
52689
+ if (names.length > 0) {
52690
+ return modelDefinitionsFromNames(provider, names, "live");
52691
+ }
52692
+ }
52693
+ if (!reachedOk && lastError) {
52694
+ throw lastError;
52695
+ }
52696
+ return [];
52628
52697
  }
52629
52698
  function apiModelsRequest(provider, apiKey) {
52630
52699
  switch (provider) {
@@ -71146,7 +71215,7 @@ var init_auth = __esm(() => {
71146
71215
 
71147
71216
  // src/utils/userAgent.ts
71148
71217
  function getURCodeUserAgent() {
71149
- return `ur/${"1.43.4"}`;
71218
+ return `ur/${"1.43.5"}`;
71150
71219
  }
71151
71220
 
71152
71221
  // src/utils/workloadContext.ts
@@ -71168,7 +71237,7 @@ function getUserAgent() {
71168
71237
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
71169
71238
  const workload = getWorkload();
71170
71239
  const workloadSuffix = workload ? `, workload/${workload}` : "";
71171
- return `ur-cli/${"1.43.4"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
71240
+ return `ur-cli/${"1.43.5"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
71172
71241
  }
71173
71242
  function getMCPUserAgent() {
71174
71243
  const parts = [];
@@ -71182,7 +71251,7 @@ function getMCPUserAgent() {
71182
71251
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
71183
71252
  }
71184
71253
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
71185
- return `ur/${"1.43.4"}${suffix}`;
71254
+ return `ur/${"1.43.5"}${suffix}`;
71186
71255
  }
71187
71256
  function getWebFetchUserAgent() {
71188
71257
  return `UR-User (${getURCodeUserAgent()})`;
@@ -71320,7 +71389,7 @@ var init_user = __esm(() => {
71320
71389
  deviceId,
71321
71390
  sessionId: getSessionId(),
71322
71391
  email: getEmail(),
71323
- appVersion: "1.43.4",
71392
+ appVersion: "1.43.5",
71324
71393
  platform: getHostPlatformForAnalytics(),
71325
71394
  organizationUuid,
71326
71395
  accountUuid,
@@ -77837,7 +77906,7 @@ var init_metadata = __esm(() => {
77837
77906
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
77838
77907
  WHITESPACE_REGEX = /\s+/;
77839
77908
  getVersionBase = memoize_default(() => {
77840
- const match = "1.43.4".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
77909
+ const match = "1.43.5".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
77841
77910
  return match ? match[0] : undefined;
77842
77911
  });
77843
77912
  buildEnvContext = memoize_default(async () => {
@@ -77877,7 +77946,7 @@ var init_metadata = __esm(() => {
77877
77946
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
77878
77947
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
77879
77948
  isURAiAuth: isURAISubscriber(),
77880
- version: "1.43.4",
77949
+ version: "1.43.5",
77881
77950
  versionBase: getVersionBase(),
77882
77951
  buildTime: "",
77883
77952
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -78547,7 +78616,7 @@ function initialize1PEventLogging() {
78547
78616
  const platform2 = getPlatform();
78548
78617
  const attributes = {
78549
78618
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
78550
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.43.4"
78619
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.43.5"
78551
78620
  };
78552
78621
  if (platform2 === "wsl") {
78553
78622
  const wslVersion = getWslVersion();
@@ -78574,7 +78643,7 @@ function initialize1PEventLogging() {
78574
78643
  })
78575
78644
  ]
78576
78645
  });
78577
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.43.4");
78646
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.43.5");
78578
78647
  }
78579
78648
  async function reinitialize1PEventLoggingIfConfigChanged() {
78580
78649
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -83873,7 +83942,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
83873
83942
  function formatA2AAgentCard(options = {}, pretty = true) {
83874
83943
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
83875
83944
  }
83876
- var urVersion = "1.43.4", coverage, priorityRoadmap;
83945
+ var urVersion = "1.43.5", coverage, priorityRoadmap;
83877
83946
  var init_trends = __esm(() => {
83878
83947
  coverage = [
83879
83948
  {
@@ -85868,7 +85937,7 @@ function getAttributionHeader(fingerprint) {
85868
85937
  if (!isAttributionHeaderEnabled()) {
85869
85938
  return "";
85870
85939
  }
85871
- const version2 = `${"1.43.4"}.${fingerprint}`;
85940
+ const version2 = `${"1.43.5"}.${fingerprint}`;
85872
85941
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
85873
85942
  const cch = "";
85874
85943
  const workload = getWorkload();
@@ -193810,7 +193879,7 @@ function getTelemetryAttributes() {
193810
193879
  attributes["session.id"] = sessionId;
193811
193880
  }
193812
193881
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
193813
- attributes["app.version"] = "1.43.4";
193882
+ attributes["app.version"] = "1.43.5";
193814
193883
  }
193815
193884
  const oauthAccount = getOauthAccountInfo();
193816
193885
  if (oauthAccount) {
@@ -229198,7 +229267,7 @@ function getInstallationEnv() {
229198
229267
  return;
229199
229268
  }
229200
229269
  function getURCodeVersion() {
229201
- return "1.43.4";
229270
+ return "1.43.5";
229202
229271
  }
229203
229272
  async function getInstalledVSCodeExtensionVersion(command) {
229204
229273
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -232037,7 +232106,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
232037
232106
  const client2 = new Client({
232038
232107
  name: "ur",
232039
232108
  title: "UR",
232040
- version: "1.43.4",
232109
+ version: "1.43.5",
232041
232110
  description: "UR-Nexus autonomous engineering workflow engine",
232042
232111
  websiteUrl: PRODUCT_URL
232043
232112
  }, {
@@ -232391,7 +232460,7 @@ var init_client5 = __esm(() => {
232391
232460
  const client2 = new Client({
232392
232461
  name: "ur",
232393
232462
  title: "UR",
232394
- version: "1.43.4",
232463
+ version: "1.43.5",
232395
232464
  description: "UR-Nexus autonomous engineering workflow engine",
232396
232465
  websiteUrl: PRODUCT_URL
232397
232466
  }, {
@@ -242205,9 +242274,9 @@ async function assertMinVersion() {
242205
242274
  if (false) {}
242206
242275
  try {
242207
242276
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
242208
- if (versionConfig.minVersion && lt("1.43.4", versionConfig.minVersion)) {
242277
+ if (versionConfig.minVersion && lt("1.43.5", versionConfig.minVersion)) {
242209
242278
  console.error(`
242210
- It looks like your version of UR (${"1.43.4"}) needs an update.
242279
+ It looks like your version of UR (${"1.43.5"}) needs an update.
242211
242280
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
242212
242281
 
242213
242282
  To update, please run:
@@ -242423,7 +242492,7 @@ async function installGlobalPackage(specificVersion) {
242423
242492
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
242424
242493
  logEvent("tengu_auto_updater_lock_contention", {
242425
242494
  pid: process.pid,
242426
- currentVersion: "1.43.4"
242495
+ currentVersion: "1.43.5"
242427
242496
  });
242428
242497
  return "in_progress";
242429
242498
  }
@@ -242432,7 +242501,7 @@ async function installGlobalPackage(specificVersion) {
242432
242501
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
242433
242502
  logError2(new Error("Windows NPM detected in WSL environment"));
242434
242503
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
242435
- currentVersion: "1.43.4"
242504
+ currentVersion: "1.43.5"
242436
242505
  });
242437
242506
  console.error(`
242438
242507
  Error: Windows NPM detected in WSL
@@ -242967,7 +243036,7 @@ function detectLinuxGlobPatternWarnings() {
242967
243036
  }
242968
243037
  async function getDoctorDiagnostic() {
242969
243038
  const installationType = await getCurrentInstallationType();
242970
- const version2 = typeof MACRO !== "undefined" ? "1.43.4" : "unknown";
243039
+ const version2 = typeof MACRO !== "undefined" ? "1.43.5" : "unknown";
242971
243040
  const installationPath = await getInstallationPath();
242972
243041
  const invokedBinary = getInvokedBinary();
242973
243042
  const multipleInstallations = await detectMultipleInstallations();
@@ -243902,8 +243971,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
243902
243971
  const maxVersion = await getMaxVersion();
243903
243972
  if (maxVersion && gt(version2, maxVersion)) {
243904
243973
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
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`);
243974
+ if (gte("1.43.5", maxVersion)) {
243975
+ logForDebugging(`Native installer: current version ${"1.43.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
243907
243976
  logEvent("tengu_native_update_skipped_max_version", {
243908
243977
  latency_ms: Date.now() - startTime,
243909
243978
  max_version: maxVersion,
@@ -243914,7 +243983,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
243914
243983
  version2 = maxVersion;
243915
243984
  }
243916
243985
  }
243917
- if (!forceReinstall && version2 === "1.43.4" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
243986
+ if (!forceReinstall && version2 === "1.43.5" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
243918
243987
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
243919
243988
  logEvent("tengu_native_update_complete", {
243920
243989
  latency_ms: Date.now() - startTime,
@@ -340905,7 +340974,7 @@ function Feedback({
340905
340974
  platform: env2.platform,
340906
340975
  gitRepo: envInfo.isGit,
340907
340976
  terminal: env2.terminal,
340908
- version: "1.43.4",
340977
+ version: "1.43.5",
340909
340978
  transcript: normalizeMessagesForAPI(messages),
340910
340979
  errors: sanitizedErrors,
340911
340980
  lastApiRequest: getLastAPIRequest(),
@@ -341097,7 +341166,7 @@ function Feedback({
341097
341166
  ", ",
341098
341167
  env2.terminal,
341099
341168
  ", v",
341100
- "1.43.4"
341169
+ "1.43.5"
341101
341170
  ]
341102
341171
  }, undefined, true, undefined, this)
341103
341172
  ]
@@ -341203,7 +341272,7 @@ ${sanitizedDescription}
341203
341272
  ` + `**Environment Info**
341204
341273
  ` + `- Platform: ${env2.platform}
341205
341274
  ` + `- Terminal: ${env2.terminal}
341206
- ` + `- Version: ${"1.43.4"}
341275
+ ` + `- Version: ${"1.43.5"}
341207
341276
  ` + `- Feedback ID: ${feedbackId}
341208
341277
  ` + `
341209
341278
  **Errors**
@@ -344314,7 +344383,7 @@ function buildPrimarySection() {
344314
344383
  }, undefined, false, undefined, this);
344315
344384
  return [{
344316
344385
  label: "Version",
344317
- value: "1.43.4"
344386
+ value: "1.43.5"
344318
344387
  }, {
344319
344388
  label: "Session name",
344320
344389
  value: nameValue
@@ -347615,7 +347684,7 @@ function Config({
347615
347684
  }
347616
347685
  }, undefined, false, undefined, this)
347617
347686
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
347618
- currentVersion: "1.43.4",
347687
+ currentVersion: "1.43.5",
347619
347688
  onChoice: (choice) => {
347620
347689
  setShowSubmenu(null);
347621
347690
  setTabsHidden(false);
@@ -347627,7 +347696,7 @@ function Config({
347627
347696
  autoUpdatesChannel: "stable"
347628
347697
  };
347629
347698
  if (choice === "stay") {
347630
- newSettings.minimumVersion = "1.43.4";
347699
+ newSettings.minimumVersion = "1.43.5";
347631
347700
  }
347632
347701
  updateSettingsForSource("userSettings", newSettings);
347633
347702
  setSettingsData((prev_27) => ({
@@ -355697,7 +355766,7 @@ function HelpV2(t0) {
355697
355766
  let t6;
355698
355767
  if ($3[31] !== tabs) {
355699
355768
  t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
355700
- title: `UR v${"1.43.4"}`,
355769
+ title: `UR v${"1.43.5"}`,
355701
355770
  color: "professionalBlue",
355702
355771
  defaultTab: "general",
355703
355772
  children: tabs
@@ -356443,7 +356512,7 @@ function buildToolUseContext(tools, readFileStateCache) {
356443
356512
  async function handleInitialize(options2) {
356444
356513
  return {
356445
356514
  name: "UR",
356446
- version: "1.43.4",
356515
+ version: "1.43.5",
356447
356516
  protocolVersion: "0.1.0",
356448
356517
  workspaceRoot: options2.cwd,
356449
356518
  capabilities: {
@@ -376585,7 +376654,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
376585
376654
  return [];
376586
376655
  }
376587
376656
  }
376588
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.43.4") {
376657
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.43.5") {
376589
376658
  if (process.env.USER_TYPE === "ant") {
376590
376659
  const changelog = "";
376591
376660
  if (changelog) {
@@ -376612,7 +376681,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.43.4")
376612
376681
  releaseNotes
376613
376682
  };
376614
376683
  }
376615
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.43.4") {
376684
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.43.5") {
376616
376685
  if (process.env.USER_TYPE === "ant") {
376617
376686
  const changelog = "";
376618
376687
  if (changelog) {
@@ -377791,7 +377860,7 @@ function getRecentActivitySync() {
377791
377860
  return cachedActivity;
377792
377861
  }
377793
377862
  function getLogoDisplayData() {
377794
- const version2 = process.env.DEMO_VERSION ?? "1.43.4";
377863
+ const version2 = process.env.DEMO_VERSION ?? "1.43.5";
377795
377864
  const serverUrl = getDirectConnectServerUrl();
377796
377865
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
377797
377866
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -378580,7 +378649,7 @@ function LogoV2() {
378580
378649
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
378581
378650
  t2 = () => {
378582
378651
  const currentConfig2 = getGlobalConfig();
378583
- if (currentConfig2.lastReleaseNotesSeen === "1.43.4") {
378652
+ if (currentConfig2.lastReleaseNotesSeen === "1.43.5") {
378584
378653
  return;
378585
378654
  }
378586
378655
  saveGlobalConfig(_temp326);
@@ -379265,12 +379334,12 @@ function LogoV2() {
379265
379334
  return t41;
379266
379335
  }
379267
379336
  function _temp326(current) {
379268
- if (current.lastReleaseNotesSeen === "1.43.4") {
379337
+ if (current.lastReleaseNotesSeen === "1.43.5") {
379269
379338
  return current;
379270
379339
  }
379271
379340
  return {
379272
379341
  ...current,
379273
- lastReleaseNotesSeen: "1.43.4"
379342
+ lastReleaseNotesSeen: "1.43.5"
379274
379343
  };
379275
379344
  }
379276
379345
  function _temp243(s_0) {
@@ -596685,7 +596754,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
596685
596754
  smapsRollup,
596686
596755
  platform: process.platform,
596687
596756
  nodeVersion: process.version,
596688
- ccVersion: "1.43.4"
596757
+ ccVersion: "1.43.5"
596689
596758
  };
596690
596759
  }
596691
596760
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -597271,7 +597340,7 @@ var init_bridge_kick = __esm(() => {
597271
597340
  var call137 = async () => {
597272
597341
  return {
597273
597342
  type: "text",
597274
- value: "1.43.4"
597343
+ value: "1.43.5"
597275
597344
  };
597276
597345
  }, version2, version_default;
597277
597346
  var init_version = __esm(() => {
@@ -607364,7 +607433,7 @@ function generateHtmlReport(data, insights) {
607364
607433
  </html>`;
607365
607434
  }
607366
607435
  function buildExportData(data, insights, facets, remoteStats) {
607367
- const version3 = typeof MACRO !== "undefined" ? "1.43.4" : "unknown";
607436
+ const version3 = typeof MACRO !== "undefined" ? "1.43.5" : "unknown";
607368
607437
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
607369
607438
  const facets_summary = {
607370
607439
  total: facets.size,
@@ -611644,7 +611713,7 @@ var init_sessionStorage = __esm(() => {
611644
611713
  init_settings2();
611645
611714
  init_slowOperations();
611646
611715
  init_uuid();
611647
- VERSION5 = typeof MACRO !== "undefined" ? "1.43.4" : "unknown";
611716
+ VERSION5 = typeof MACRO !== "undefined" ? "1.43.5" : "unknown";
611648
611717
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
611649
611718
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
611650
611719
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -612849,7 +612918,7 @@ var init_filesystem = __esm(() => {
612849
612918
  });
612850
612919
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
612851
612920
  const nonce = randomBytes18(16).toString("hex");
612852
- return join202(getURTempDir(), "bundled-skills", "1.43.4", nonce);
612921
+ return join202(getURTempDir(), "bundled-skills", "1.43.5", nonce);
612853
612922
  });
612854
612923
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
612855
612924
  });
@@ -619138,7 +619207,7 @@ function computeFingerprint(messageText2, version3) {
619138
619207
  }
619139
619208
  function computeFingerprintFromMessages(messages) {
619140
619209
  const firstMessageText = extractFirstMessageText(messages);
619141
- return computeFingerprint(firstMessageText, "1.43.4");
619210
+ return computeFingerprint(firstMessageText, "1.43.5");
619142
619211
  }
619143
619212
  var FINGERPRINT_SALT = "59cf53e54c78";
619144
619213
  var init_fingerprint = () => {};
@@ -621012,7 +621081,7 @@ async function sideQuery(opts) {
621012
621081
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
621013
621082
  }
621014
621083
  const messageText2 = extractFirstUserMessageText(messages);
621015
- const fingerprint2 = computeFingerprint(messageText2, "1.43.4");
621084
+ const fingerprint2 = computeFingerprint(messageText2, "1.43.5");
621016
621085
  const attributionHeader = getAttributionHeader(fingerprint2);
621017
621086
  const systemBlocks = [
621018
621087
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -625749,7 +625818,7 @@ function buildSystemInitMessage(inputs) {
625749
625818
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
625750
625819
  apiKeySource: getURHQApiKeyWithSource().source,
625751
625820
  betas: getSdkBetas(),
625752
- ur_version: "1.43.4",
625821
+ ur_version: "1.43.5",
625753
625822
  output_style: outputStyle2,
625754
625823
  agents: inputs.agents.map((agent) => agent.agentType),
625755
625824
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -640377,7 +640446,7 @@ var init_useVoiceEnabled = __esm(() => {
640377
640446
  function getSemverPart(version3) {
640378
640447
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
640379
640448
  }
640380
- function useUpdateNotification(updatedVersion, initialVersion = "1.43.4") {
640449
+ function useUpdateNotification(updatedVersion, initialVersion = "1.43.5") {
640381
640450
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
640382
640451
  if (!updatedVersion) {
640383
640452
  return null;
@@ -640426,7 +640495,7 @@ function AutoUpdater({
640426
640495
  return;
640427
640496
  }
640428
640497
  if (false) {}
640429
- const currentVersion = "1.43.4";
640498
+ const currentVersion = "1.43.5";
640430
640499
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
640431
640500
  let latestVersion = await getLatestVersion(channel);
640432
640501
  const isDisabled = isAutoUpdaterDisabled();
@@ -640655,12 +640724,12 @@ function NativeAutoUpdater({
640655
640724
  logEvent("tengu_native_auto_updater_start", {});
640656
640725
  try {
640657
640726
  const maxVersion = await getMaxVersion();
640658
- if (maxVersion && gt("1.43.4", maxVersion)) {
640727
+ if (maxVersion && gt("1.43.5", maxVersion)) {
640659
640728
  const msg = await getMaxVersionMessage();
640660
640729
  setMaxVersionIssue(msg ?? "affects your version");
640661
640730
  }
640662
640731
  const result = await installLatest(channel);
640663
- const currentVersion = "1.43.4";
640732
+ const currentVersion = "1.43.5";
640664
640733
  const latencyMs = Date.now() - startTime;
640665
640734
  if (result.lockFailed) {
640666
640735
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -640797,17 +640866,17 @@ function PackageManagerAutoUpdater(t0) {
640797
640866
  const maxVersion = await getMaxVersion();
640798
640867
  if (maxVersion && latest && gt(latest, maxVersion)) {
640799
640868
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
640800
- if (gte("1.43.4", maxVersion)) {
640801
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.43.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
640869
+ if (gte("1.43.5", maxVersion)) {
640870
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.43.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
640802
640871
  setUpdateAvailable(false);
640803
640872
  return;
640804
640873
  }
640805
640874
  latest = maxVersion;
640806
640875
  }
640807
- const hasUpdate = latest && !gte("1.43.4", latest) && !shouldSkipVersion(latest);
640876
+ const hasUpdate = latest && !gte("1.43.5", latest) && !shouldSkipVersion(latest);
640808
640877
  setUpdateAvailable(!!hasUpdate);
640809
640878
  if (hasUpdate) {
640810
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.43.4"} -> ${latest}`);
640879
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.43.5"} -> ${latest}`);
640811
640880
  }
640812
640881
  };
640813
640882
  $3[0] = t1;
@@ -640841,7 +640910,7 @@ function PackageManagerAutoUpdater(t0) {
640841
640910
  wrap: "truncate",
640842
640911
  children: [
640843
640912
  "currentVersion: ",
640844
- "1.43.4"
640913
+ "1.43.5"
640845
640914
  ]
640846
640915
  }, undefined, true, undefined, this);
640847
640916
  $3[3] = verbose;
@@ -653293,7 +653362,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
653293
653362
  project_dir: getOriginalCwd(),
653294
653363
  added_dirs: addedDirs
653295
653364
  },
653296
- version: "1.43.4",
653365
+ version: "1.43.5",
653297
653366
  output_style: {
653298
653367
  name: outputStyleName
653299
653368
  },
@@ -653376,7 +653445,7 @@ function StatusLineInner({
653376
653445
  const taskValues = Object.values(tasks2);
653377
653446
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
653378
653447
  const defaultStatusLineText = buildDefaultStatusBar({
653379
- version: "1.43.4",
653448
+ version: "1.43.5",
653380
653449
  providerLabel: providerRuntime.providerLabel,
653381
653450
  authMode: providerRuntime.authLabel,
653382
653451
  model: providerRuntime.model ?? renderModelName(mainLoopModel),
@@ -664864,7 +664933,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
664864
664933
  } catch {}
664865
664934
  const data = {
664866
664935
  trigger: trigger2,
664867
- version: "1.43.4",
664936
+ version: "1.43.5",
664868
664937
  platform: process.platform,
664869
664938
  transcript,
664870
664939
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -676749,7 +676818,7 @@ function WelcomeV2() {
676749
676818
  dimColor: true,
676750
676819
  children: [
676751
676820
  "v",
676752
- "1.43.4"
676821
+ "1.43.5"
676753
676822
  ]
676754
676823
  }, undefined, true, undefined, this)
676755
676824
  ]
@@ -678009,7 +678078,7 @@ function completeOnboarding() {
678009
678078
  saveGlobalConfig((current) => ({
678010
678079
  ...current,
678011
678080
  hasCompletedOnboarding: true,
678012
- lastOnboardingVersion: "1.43.4"
678081
+ lastOnboardingVersion: "1.43.5"
678013
678082
  }));
678014
678083
  }
678015
678084
  function showDialog(root2, renderer) {
@@ -683046,7 +683115,7 @@ function appendToLog(path24, message) {
683046
683115
  cwd: getFsImplementation().cwd(),
683047
683116
  userType: process.env.USER_TYPE,
683048
683117
  sessionId: getSessionId(),
683049
- version: "1.43.4"
683118
+ version: "1.43.5"
683050
683119
  };
683051
683120
  getLogWriter(path24).write(messageWithTimestamp);
683052
683121
  }
@@ -687140,8 +687209,8 @@ async function getEnvLessBridgeConfig() {
687140
687209
  }
687141
687210
  async function checkEnvLessBridgeMinVersion() {
687142
687211
  const cfg = await getEnvLessBridgeConfig();
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.
687212
+ if (cfg.min_version && lt("1.43.5", cfg.min_version)) {
687213
+ return `Your version of UR (${"1.43.5"}) is too old for Remote Control.
687145
687214
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
687146
687215
  }
687147
687216
  return null;
@@ -687615,7 +687684,7 @@ async function initBridgeCore(params) {
687615
687684
  const rawApi = createBridgeApiClient({
687616
687685
  baseUrl,
687617
687686
  getAccessToken,
687618
- runnerVersion: "1.43.4",
687687
+ runnerVersion: "1.43.5",
687619
687688
  onDebug: logForDebugging,
687620
687689
  onAuth401,
687621
687690
  getTrustedDeviceToken
@@ -693297,7 +693366,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
693297
693366
  setCwd(cwd3);
693298
693367
  const server2 = new Server({
693299
693368
  name: "ur/tengu",
693300
- version: "1.43.4"
693369
+ version: "1.43.5"
693301
693370
  }, {
693302
693371
  capabilities: {
693303
693372
  tools: {}
@@ -695339,7 +695408,7 @@ async function update() {
695339
695408
  logEvent("tengu_update_check", {});
695340
695409
  const diagnostic = await getDoctorDiagnostic();
695341
695410
  const result = await checkUpgradeStatus({
695342
- currentVersion: "1.43.4",
695411
+ currentVersion: "1.43.5",
695343
695412
  packageName: UR_AGENT_PACKAGE_NAME,
695344
695413
  installationType: diagnostic.installationType,
695345
695414
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -696585,7 +696654,7 @@ ${customInstructions}` : customInstructions;
696585
696654
  }
696586
696655
  }
696587
696656
  logForDiagnosticsNoPII("info", "started", {
696588
- version: "1.43.4",
696657
+ version: "1.43.5",
696589
696658
  is_native_binary: isInBundledMode()
696590
696659
  });
696591
696660
  registerCleanup(async () => {
@@ -697371,7 +697440,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
697371
697440
  pendingHookMessages
697372
697441
  }, renderAndRun);
697373
697442
  }
697374
- }).version("1.43.4 (UR-Nexus)", "-v, --version", "Output the version number");
697443
+ }).version("1.43.5 (UR-Nexus)", "-v, --version", "Output the version number");
697375
697444
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
697376
697445
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
697377
697446
  if (canUserConfigureAdvisor()) {
@@ -698286,7 +698355,7 @@ if (false) {}
698286
698355
  async function main2() {
698287
698356
  const args = process.argv.slice(2);
698288
698357
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
698289
- console.log(`${"1.43.4"} (UR-Nexus)`);
698358
+ console.log(`${"1.43.5"} (UR-Nexus)`);
698290
698359
  return;
698291
698360
  }
698292
698361
  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.4</p>
47
+ <p class="eyebrow">Version 1.43.5</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.4",
5
+ "version": "1.43.5",
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.4",
3
+ "version": "1.43.5",
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",