ur-agent 1.77.3 → 1.77.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,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.77.4
4
+
5
+ - AskUserQuestion accepts choices labelled with `header`. `header` is this
6
+ tool's word for a short category label, so a model naming a choice reaches
7
+ for it — and eight options then arrived as eight question objects, each
8
+ reporting a missing question and missing options and never a missing header,
9
+ which is what identified the shape. `header` is now read as an option label
10
+ and no longer disqualifies an entry from being recognised as a choice.
11
+ - A payload that still cannot be repaired reports the keys it actually
12
+ received. Listing only the missing fields said nothing about what arrived,
13
+ which is the one fact that separates an unrepairable payload from a shape the
14
+ normalizer has not been taught yet.
15
+
3
16
  ## 1.77.3
4
17
 
5
18
  - Read says when it did not return the whole file. It stops at 2000 lines by
package/dist/cli.js CHANGED
@@ -107548,7 +107548,7 @@ var init_auth = __esm(() => {
107548
107548
 
107549
107549
  // src/utils/userAgent.ts
107550
107550
  function getURCodeUserAgent() {
107551
- return `ur/${"1.77.3"}`;
107551
+ return `ur/${"1.77.4"}`;
107552
107552
  }
107553
107553
 
107554
107554
  // src/utils/workloadContext.ts
@@ -107570,7 +107570,7 @@ function getUserAgent() {
107570
107570
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
107571
107571
  const workload = getWorkload();
107572
107572
  const workloadSuffix = workload ? `, workload/${workload}` : "";
107573
- return `ur-cli/${"1.77.3"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107573
+ return `ur-cli/${"1.77.4"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107574
107574
  }
107575
107575
  function getMCPUserAgent() {
107576
107576
  const parts = [];
@@ -107584,7 +107584,7 @@ function getMCPUserAgent() {
107584
107584
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
107585
107585
  }
107586
107586
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
107587
- return `ur/${"1.77.3"}${suffix}`;
107587
+ return `ur/${"1.77.4"}${suffix}`;
107588
107588
  }
107589
107589
  function getWebFetchUserAgent() {
107590
107590
  return `UR-User (${getURCodeUserAgent()})`;
@@ -107722,7 +107722,7 @@ var init_user = __esm(() => {
107722
107722
  deviceId,
107723
107723
  sessionId: getSessionId(),
107724
107724
  email: getEmail(),
107725
- appVersion: "1.77.3",
107725
+ appVersion: "1.77.4",
107726
107726
  platform: getHostPlatformForAnalytics(),
107727
107727
  organizationUuid,
107728
107728
  accountUuid,
@@ -115609,7 +115609,7 @@ var init_metadata = __esm(() => {
115609
115609
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
115610
115610
  WHITESPACE_REGEX = /\s+/;
115611
115611
  getVersionBase = memoize_default(() => {
115612
- const match = "1.77.3".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115612
+ const match = "1.77.4".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115613
115613
  return match ? match[0] : undefined;
115614
115614
  });
115615
115615
  buildEnvContext = memoize_default(async () => {
@@ -115649,7 +115649,7 @@ var init_metadata = __esm(() => {
115649
115649
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
115650
115650
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
115651
115651
  isURAiAuth: isURAISubscriber(),
115652
- version: "1.77.3",
115652
+ version: "1.77.4",
115653
115653
  versionBase: getVersionBase(),
115654
115654
  buildTime: "",
115655
115655
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -116319,7 +116319,7 @@ function initialize1PEventLogging() {
116319
116319
  const platform2 = getPlatform();
116320
116320
  const attributes = {
116321
116321
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
116322
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.77.3"
116322
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.77.4"
116323
116323
  };
116324
116324
  if (platform2 === "wsl") {
116325
116325
  const wslVersion = getWslVersion();
@@ -116347,7 +116347,7 @@ function initialize1PEventLogging() {
116347
116347
  })
116348
116348
  ]
116349
116349
  });
116350
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.77.3");
116350
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.77.4");
116351
116351
  }
116352
116352
  async function reinitialize1PEventLoggingIfConfigChanged() {
116353
116353
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -126129,7 +126129,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
126129
126129
  function formatA2AAgentCard(options = {}, pretty = true) {
126130
126130
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
126131
126131
  }
126132
- var urVersion = "1.77.3", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126132
+ var urVersion = "1.77.4", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126133
126133
  var init_trends = __esm(() => {
126134
126134
  init_a2aCardSignature();
126135
126135
  coverage = [
@@ -128932,7 +128932,7 @@ function getAttributionHeader(fingerprint) {
128932
128932
  if (!isAttributionHeaderEnabled()) {
128933
128933
  return "";
128934
128934
  }
128935
- const version2 = `${"1.77.3"}.${fingerprint}`;
128935
+ const version2 = `${"1.77.4"}.${fingerprint}`;
128936
128936
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
128937
128937
  const cch = "";
128938
128938
  const workload = getWorkload();
@@ -156936,7 +156936,7 @@ var init_projectSafety = __esm(() => {
156936
156936
  function getInstruments() {
156937
156937
  if (instruments)
156938
156938
  return instruments;
156939
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.77.3");
156939
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.77.4");
156940
156940
  instruments = {
156941
156941
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
156942
156942
  description: "GenAI operation duration.",
@@ -157034,7 +157034,7 @@ function genAiAgentAttributes() {
157034
157034
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
157035
157035
  "gen_ai.provider.name": "ur",
157036
157036
  "gen_ai.agent.name": "UR-Nexus",
157037
- "gen_ai.agent.version": "1.77.3"
157037
+ "gen_ai.agent.version": "1.77.4"
157038
157038
  };
157039
157039
  }
157040
157040
  function genAiWorkflowAttributes(workflowName) {
@@ -157050,7 +157050,7 @@ function genAiWorkflowAttributes(workflowName) {
157050
157050
  function startGenAiWorkflowSpan(workflowName) {
157051
157051
  const attributes = genAiWorkflowAttributes(workflowName);
157052
157052
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
157053
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.3").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157053
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.4").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157054
157054
  }
157055
157055
  function endGenAiWorkflowSpan(span, options2 = {}) {
157056
157056
  try {
@@ -157088,7 +157088,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
157088
157088
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
157089
157089
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
157090
157090
  }
157091
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.3").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157091
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.4").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157092
157092
  }
157093
157093
  function endGenAiMemorySpan(span, options2 = {}) {
157094
157094
  try {
@@ -250736,7 +250736,7 @@ function getTelemetryAttributes() {
250736
250736
  attributes["session.id"] = sessionId;
250737
250737
  }
250738
250738
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
250739
- attributes["app.version"] = "1.77.3";
250739
+ attributes["app.version"] = "1.77.4";
250740
250740
  }
250741
250741
  const oauthAccount = getOauthAccountInfo();
250742
250742
  if (oauthAccount) {
@@ -297243,7 +297243,7 @@ function getInstallationEnv() {
297243
297243
  return;
297244
297244
  }
297245
297245
  function getURCodeVersion() {
297246
- return "1.77.3";
297246
+ return "1.77.4";
297247
297247
  }
297248
297248
  async function getInstalledVSCodeExtensionVersion(command) {
297249
297249
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -304574,7 +304574,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
304574
304574
  const client2 = new Client({
304575
304575
  name: "ur",
304576
304576
  title: "UR",
304577
- version: "1.77.3",
304577
+ version: "1.77.4",
304578
304578
  description: "UR-Nexus autonomous engineering workflow engine",
304579
304579
  websiteUrl: PRODUCT_URL
304580
304580
  }, {
@@ -304934,7 +304934,7 @@ var init_client5 = __esm(() => {
304934
304934
  const client2 = new Client({
304935
304935
  name: "ur",
304936
304936
  title: "UR",
304937
- version: "1.77.3",
304937
+ version: "1.77.4",
304938
304938
  description: "UR-Nexus autonomous engineering workflow engine",
304939
304939
  websiteUrl: PRODUCT_URL
304940
304940
  }, {
@@ -317487,7 +317487,7 @@ async function createRuntime() {
317487
317487
  bootstrapTelemetry();
317488
317488
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
317489
317489
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
317490
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.77.3"
317490
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.77.4"
317491
317491
  }));
317492
317492
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
317493
317493
  resource,
@@ -317520,11 +317520,11 @@ async function createRuntime() {
317520
317520
  setMeterProvider(meterProvider);
317521
317521
  setLoggerProvider(loggerProvider);
317522
317522
  if (meterProvider) {
317523
- const meter = meterProvider.getMeter("ur-agent", "1.77.3");
317523
+ const meter = meterProvider.getMeter("ur-agent", "1.77.4");
317524
317524
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
317525
317525
  }
317526
317526
  if (loggerProvider) {
317527
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.77.3"));
317527
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.77.4"));
317528
317528
  }
317529
317529
  if (!cleanupRegistered2) {
317530
317530
  cleanupRegistered2 = true;
@@ -318186,9 +318186,9 @@ async function assertMinVersion() {
318186
318186
  if (false) {}
318187
318187
  try {
318188
318188
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
318189
- if (versionConfig.minVersion && lt("1.77.3", versionConfig.minVersion)) {
318189
+ if (versionConfig.minVersion && lt("1.77.4", versionConfig.minVersion)) {
318190
318190
  console.error(`
318191
- It looks like your version of UR (${"1.77.3"}) needs an update.
318191
+ It looks like your version of UR (${"1.77.4"}) needs an update.
318192
318192
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
318193
318193
 
318194
318194
  To update, please run:
@@ -318404,7 +318404,7 @@ async function installGlobalPackage(specificVersion) {
318404
318404
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
318405
318405
  logEvent("tengu_auto_updater_lock_contention", {
318406
318406
  pid: process.pid,
318407
- currentVersion: "1.77.3"
318407
+ currentVersion: "1.77.4"
318408
318408
  });
318409
318409
  return "in_progress";
318410
318410
  }
@@ -318413,7 +318413,7 @@ async function installGlobalPackage(specificVersion) {
318413
318413
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
318414
318414
  logError2(new Error("Windows NPM detected in WSL environment"));
318415
318415
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
318416
- currentVersion: "1.77.3"
318416
+ currentVersion: "1.77.4"
318417
318417
  });
318418
318418
  console.error(`
318419
318419
  Error: Windows NPM detected in WSL
@@ -318948,7 +318948,7 @@ function detectLinuxGlobPatternWarnings() {
318948
318948
  }
318949
318949
  async function getDoctorDiagnostic() {
318950
318950
  const installationType = await getCurrentInstallationType();
318951
- const version2 = typeof MACRO !== "undefined" ? "1.77.3" : "unknown";
318951
+ const version2 = typeof MACRO !== "undefined" ? "1.77.4" : "unknown";
318952
318952
  const installationPath = await getInstallationPath();
318953
318953
  const invokedBinary = getInvokedBinary();
318954
318954
  const multipleInstallations = await detectMultipleInstallations();
@@ -319883,8 +319883,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319883
319883
  const maxVersion = await getMaxVersion();
319884
319884
  if (maxVersion && gt(version2, maxVersion)) {
319885
319885
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
319886
- if (gte("1.77.3", maxVersion)) {
319887
- logForDebugging(`Native installer: current version ${"1.77.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
319886
+ if (gte("1.77.4", maxVersion)) {
319887
+ logForDebugging(`Native installer: current version ${"1.77.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
319888
319888
  logEvent("tengu_native_update_skipped_max_version", {
319889
319889
  latency_ms: Date.now() - startTime,
319890
319890
  max_version: maxVersion,
@@ -319895,7 +319895,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319895
319895
  version2 = maxVersion;
319896
319896
  }
319897
319897
  }
319898
- if (!forceReinstall && version2 === "1.77.3" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319898
+ if (!forceReinstall && version2 === "1.77.4" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319899
319899
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
319900
319900
  logEvent("tengu_native_update_complete", {
319901
319901
  latency_ms: Date.now() - startTime,
@@ -389599,7 +389599,7 @@ function isAnyTracingEnabled() {
389599
389599
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
389600
389600
  }
389601
389601
  function getTracer() {
389602
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.77.3");
389602
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.77.4");
389603
389603
  }
389604
389604
  function createSpanAttributes(spanType, customAttributes = {}) {
389605
389605
  const baseAttributes = getTelemetryAttributes();
@@ -419776,7 +419776,7 @@ function Feedback({
419776
419776
  platform: env2.platform,
419777
419777
  gitRepo: envInfo.isGit,
419778
419778
  terminal: env2.terminal,
419779
- version: "1.77.3",
419779
+ version: "1.77.4",
419780
419780
  transcript: normalizeMessagesForAPI(messages),
419781
419781
  errors: sanitizedErrors,
419782
419782
  lastApiRequest: getLastAPIRequest(),
@@ -419968,7 +419968,7 @@ function Feedback({
419968
419968
  ", ",
419969
419969
  env2.terminal,
419970
419970
  ", v",
419971
- "1.77.3"
419971
+ "1.77.4"
419972
419972
  ]
419973
419973
  }, undefined, true, undefined, this)
419974
419974
  ]
@@ -420074,7 +420074,7 @@ ${sanitizedDescription}
420074
420074
  ` + `**Environment Info**
420075
420075
  ` + `- Platform: ${env2.platform}
420076
420076
  ` + `- Terminal: ${env2.terminal}
420077
- ` + `- Version: ${"1.77.3"}
420077
+ ` + `- Version: ${"1.77.4"}
420078
420078
  ` + `- Feedback ID: ${feedbackId}
420079
420079
  ` + `
420080
420080
  **Errors**
@@ -423184,7 +423184,7 @@ function buildPrimarySection() {
423184
423184
  }, undefined, false, undefined, this);
423185
423185
  return [{
423186
423186
  label: "Version",
423187
- value: "1.77.3"
423187
+ value: "1.77.4"
423188
423188
  }, {
423189
423189
  label: "Session name",
423190
423190
  value: nameValue
@@ -426566,7 +426566,7 @@ function Config({
426566
426566
  }
426567
426567
  }, undefined, false, undefined, this)
426568
426568
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
426569
- currentVersion: "1.77.3",
426569
+ currentVersion: "1.77.4",
426570
426570
  onChoice: (choice) => {
426571
426571
  setShowSubmenu(null);
426572
426572
  setTabsHidden(false);
@@ -426578,7 +426578,7 @@ function Config({
426578
426578
  autoUpdatesChannel: "stable"
426579
426579
  };
426580
426580
  if (choice === "stay") {
426581
- newSettings.minimumVersion = "1.77.3";
426581
+ newSettings.minimumVersion = "1.77.4";
426582
426582
  }
426583
426583
  updateSettingsForSource("userSettings", newSettings);
426584
426584
  setSettingsData((prev_27) => ({
@@ -434642,7 +434642,7 @@ function HelpV2(t0) {
434642
434642
  let t6;
434643
434643
  if ($2[31] !== tabs) {
434644
434644
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
434645
- title: `UR v${"1.77.3"}`,
434645
+ title: `UR v${"1.77.4"}`,
434646
434646
  color: "professionalBlue",
434647
434647
  defaultTab: "general",
434648
434648
  children: tabs
@@ -435575,7 +435575,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
435575
435575
  async function handleInitialize(options2) {
435576
435576
  return {
435577
435577
  name: "UR",
435578
- version: "1.77.3",
435578
+ version: "1.77.4",
435579
435579
  protocolVersion: "0.1.0",
435580
435580
  workspaceRoot: options2.cwd,
435581
435581
  capabilities: {
@@ -452683,7 +452683,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
452683
452683
  return [];
452684
452684
  }
452685
452685
  }
452686
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.3") {
452686
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.4") {
452687
452687
  if (process.env.USER_TYPE === "ant") {
452688
452688
  const changelog = "";
452689
452689
  if (changelog) {
@@ -452710,7 +452710,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.3")
452710
452710
  releaseNotes
452711
452711
  };
452712
452712
  }
452713
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.77.3") {
452713
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.77.4") {
452714
452714
  if (process.env.USER_TYPE === "ant") {
452715
452715
  const changelog = "";
452716
452716
  if (changelog) {
@@ -455576,7 +455576,7 @@ function getRecentActivitySync() {
455576
455576
  return cachedActivity;
455577
455577
  }
455578
455578
  function getLogoDisplayData() {
455579
- const version2 = process.env.DEMO_VERSION ?? "1.77.3";
455579
+ const version2 = process.env.DEMO_VERSION ?? "1.77.4";
455580
455580
  const serverUrl = getDirectConnectServerUrl();
455581
455581
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
455582
455582
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -456443,7 +456443,7 @@ function LogoV2() {
456443
456443
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
456444
456444
  t2 = () => {
456445
456445
  const currentConfig2 = getGlobalConfig();
456446
- if (currentConfig2.lastReleaseNotesSeen === "1.77.3") {
456446
+ if (currentConfig2.lastReleaseNotesSeen === "1.77.4") {
456447
456447
  return;
456448
456448
  }
456449
456449
  saveGlobalConfig(_temp325);
@@ -457128,12 +457128,12 @@ function LogoV2() {
457128
457128
  return t41;
457129
457129
  }
457130
457130
  function _temp325(current) {
457131
- if (current.lastReleaseNotesSeen === "1.77.3") {
457131
+ if (current.lastReleaseNotesSeen === "1.77.4") {
457132
457132
  return current;
457133
457133
  }
457134
457134
  return {
457135
457135
  ...current,
457136
- lastReleaseNotesSeen: "1.77.3"
457136
+ lastReleaseNotesSeen: "1.77.4"
457137
457137
  };
457138
457138
  }
457139
457139
  function _temp241(s_0) {
@@ -473947,7 +473947,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
473947
473947
  if (spec.name !== specName) {
473948
473948
  throw new Error("Agentic CI workflow spec name does not match");
473949
473949
  }
473950
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.77.3" : "1.77.3");
473950
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.77.4" : "1.77.4");
473951
473951
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
473952
473952
  throw new Error("invalid ur-agent package version");
473953
473953
  }
@@ -474940,7 +474940,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
474940
474940
  path: ".github/workflows/ur.yml",
474941
474941
  root: "project",
474942
474942
  content: compileAgenticCiWorkflow("default", {
474943
- packageVersion: typeof MACRO !== "undefined" ? "1.77.3" : "1.77.3"
474943
+ packageVersion: typeof MACRO !== "undefined" ? "1.77.4" : "1.77.4"
474944
474944
  })
474945
474945
  },
474946
474946
  {
@@ -475003,7 +475003,7 @@ function value(tokens, flag) {
475003
475003
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
475004
475004
  }
475005
475005
  function cliVersion() {
475006
- return typeof MACRO !== "undefined" ? "1.77.3" : "1.77.3";
475006
+ return typeof MACRO !== "undefined" ? "1.77.4" : "1.77.4";
475007
475007
  }
475008
475008
  function workflowPath(cwd2) {
475009
475009
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -480859,7 +480859,7 @@ function createAcpStdioApp(deps) {
480859
480859
  }
480860
480860
  },
480861
480861
  authMethods: [],
480862
- agentInfo: { name: "UR-Nexus", version: "1.77.3" }
480862
+ agentInfo: { name: "UR-Nexus", version: "1.77.4" }
480863
480863
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
480864
480864
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
480865
480865
  await runtime2.announce({
@@ -480956,7 +480956,7 @@ function createAcpStdioAgent(deps) {
480956
480956
  }
480957
480957
  },
480958
480958
  authMethods: [],
480959
- agentInfo: { name: "UR-Nexus", version: "1.77.3" }
480959
+ agentInfo: { name: "UR-Nexus", version: "1.77.4" }
480960
480960
  });
480961
480961
  return;
480962
480962
  case "authenticate":
@@ -690416,7 +690416,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
690416
690416
  smapsRollup,
690417
690417
  platform: process.platform,
690418
690418
  nodeVersion: process.version,
690419
- ccVersion: "1.77.3"
690419
+ ccVersion: "1.77.4"
690420
690420
  };
690421
690421
  }
690422
690422
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -690996,7 +690996,7 @@ var init_bridge_kick = __esm(() => {
690996
690996
  var call154 = async () => {
690997
690997
  return {
690998
690998
  type: "text",
690999
- value: "1.77.3"
690999
+ value: "1.77.4"
691000
691000
  };
691001
691001
  }, version2, version_default;
691002
691002
  var init_version = __esm(() => {
@@ -702263,7 +702263,7 @@ function generateHtmlReport(data, insights) {
702263
702263
  </html>`;
702264
702264
  }
702265
702265
  function buildExportData(data, insights, facets, remoteStats) {
702266
- const version3 = typeof MACRO !== "undefined" ? "1.77.3" : "unknown";
702266
+ const version3 = typeof MACRO !== "undefined" ? "1.77.4" : "unknown";
702267
702267
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
702268
702268
  const facets_summary = {
702269
702269
  total: facets.size,
@@ -706577,7 +706577,7 @@ var init_sessionStorage = __esm(() => {
706577
706577
  init_settings2();
706578
706578
  init_slowOperations();
706579
706579
  init_uuid();
706580
- VERSION7 = typeof MACRO !== "undefined" ? "1.77.3" : "unknown";
706580
+ VERSION7 = typeof MACRO !== "undefined" ? "1.77.4" : "unknown";
706581
706581
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
706582
706582
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
706583
706583
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -707792,7 +707792,7 @@ var init_filesystem = __esm(() => {
707792
707792
  });
707793
707793
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
707794
707794
  const nonce = randomBytes20(16).toString("hex");
707795
- return join232(getURTempDir(), "bundled-skills", "1.77.3", nonce);
707795
+ return join232(getURTempDir(), "bundled-skills", "1.77.4", nonce);
707796
707796
  });
707797
707797
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
707798
707798
  });
@@ -714147,7 +714147,7 @@ function computeFingerprint(messageText2, version3) {
714147
714147
  }
714148
714148
  function computeFingerprintFromMessages(messages) {
714149
714149
  const firstMessageText = extractFirstMessageText(messages);
714150
- return computeFingerprint(firstMessageText, "1.77.3");
714150
+ return computeFingerprint(firstMessageText, "1.77.4");
714151
714151
  }
714152
714152
  var FINGERPRINT_SALT = "59cf53e54c78";
714153
714153
  var init_fingerprint = () => {};
@@ -716069,7 +716069,7 @@ async function sideQuery(opts) {
716069
716069
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
716070
716070
  }
716071
716071
  const messageText2 = extractFirstUserMessageText(messages);
716072
- const fingerprint2 = computeFingerprint(messageText2, "1.77.3");
716072
+ const fingerprint2 = computeFingerprint(messageText2, "1.77.4");
716073
716073
  const attributionHeader = getAttributionHeader(fingerprint2);
716074
716074
  const systemBlocks = [
716075
716075
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -720906,7 +720906,7 @@ function buildSystemInitMessage(inputs) {
720906
720906
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
720907
720907
  apiKeySource: getURHQApiKeyWithSource().source,
720908
720908
  betas: getSdkBetas(),
720909
- ur_version: "1.77.3",
720909
+ ur_version: "1.77.4",
720910
720910
  output_style: outputStyle2,
720911
720911
  agents: inputs.agents.map((agent2) => agent2.agentType),
720912
720912
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -734778,7 +734778,7 @@ var init_useVoiceEnabled = __esm(() => {
734778
734778
  function getSemverPart(version3) {
734779
734779
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
734780
734780
  }
734781
- function useUpdateNotification(updatedVersion, initialVersion = "1.77.3") {
734781
+ function useUpdateNotification(updatedVersion, initialVersion = "1.77.4") {
734782
734782
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react223.useState(() => getSemverPart(initialVersion));
734783
734783
  if (!updatedVersion) {
734784
734784
  return null;
@@ -734827,7 +734827,7 @@ function AutoUpdater({
734827
734827
  return;
734828
734828
  }
734829
734829
  if (false) {}
734830
- const currentVersion = "1.77.3";
734830
+ const currentVersion = "1.77.4";
734831
734831
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
734832
734832
  let latestVersion = await getLatestVersion(channel);
734833
734833
  const isDisabled = isAutoUpdaterDisabled();
@@ -735056,12 +735056,12 @@ function NativeAutoUpdater({
735056
735056
  logEvent("tengu_native_auto_updater_start", {});
735057
735057
  try {
735058
735058
  const maxVersion = await getMaxVersion();
735059
- if (maxVersion && gt("1.77.3", maxVersion)) {
735059
+ if (maxVersion && gt("1.77.4", maxVersion)) {
735060
735060
  const msg = await getMaxVersionMessage();
735061
735061
  setMaxVersionIssue(msg ?? "affects your version");
735062
735062
  }
735063
735063
  const result = await installLatest(channel);
735064
- const currentVersion = "1.77.3";
735064
+ const currentVersion = "1.77.4";
735065
735065
  const latencyMs = Date.now() - startTime;
735066
735066
  if (result.lockFailed) {
735067
735067
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -735198,17 +735198,17 @@ function PackageManagerAutoUpdater(t0) {
735198
735198
  const maxVersion = await getMaxVersion();
735199
735199
  if (maxVersion && latest && gt(latest, maxVersion)) {
735200
735200
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
735201
- if (gte("1.77.3", maxVersion)) {
735202
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.77.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
735201
+ if (gte("1.77.4", maxVersion)) {
735202
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.77.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
735203
735203
  setUpdateAvailable(false);
735204
735204
  return;
735205
735205
  }
735206
735206
  latest = maxVersion;
735207
735207
  }
735208
- const hasUpdate = latest && !gte("1.77.3", latest) && !shouldSkipVersion(latest);
735208
+ const hasUpdate = latest && !gte("1.77.4", latest) && !shouldSkipVersion(latest);
735209
735209
  setUpdateAvailable(!!hasUpdate);
735210
735210
  if (hasUpdate) {
735211
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.77.3"} -> ${latest}`);
735211
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.77.4"} -> ${latest}`);
735212
735212
  }
735213
735213
  };
735214
735214
  $2[0] = t1;
@@ -735242,7 +735242,7 @@ function PackageManagerAutoUpdater(t0) {
735242
735242
  wrap: "truncate",
735243
735243
  children: [
735244
735244
  "currentVersion: ",
735245
- "1.77.3"
735245
+ "1.77.4"
735246
735246
  ]
735247
735247
  }, undefined, true, undefined, this);
735248
735248
  $2[3] = verbose;
@@ -746042,7 +746042,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
746042
746042
  project_dir: getOriginalCwd(),
746043
746043
  added_dirs: addedDirs
746044
746044
  },
746045
- version: "1.77.3",
746045
+ version: "1.77.4",
746046
746046
  output_style: {
746047
746047
  name: outputStyleName
746048
746048
  },
@@ -746177,7 +746177,7 @@ function StatusLineInner({
746177
746177
  const attention = customStatusError ?? taskAttention;
746178
746178
  const terminalSize = React132.useContext(TerminalSizeContext);
746179
746179
  const defaultStatusLineText = buildDefaultStatusBar({
746180
- version: "1.77.3",
746180
+ version: "1.77.4",
746181
746181
  providerLabel: providerRuntime.providerLabel,
746182
746182
  authMode: providerRuntime.authLabel,
746183
746183
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -758462,7 +758462,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
758462
758462
  } catch {}
758463
758463
  const data = {
758464
758464
  trigger: trigger2,
758465
- version: "1.77.3",
758465
+ version: "1.77.4",
758466
758466
  platform: process.platform,
758467
758467
  transcript,
758468
758468
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -770836,7 +770836,7 @@ function WelcomeV2() {
770836
770836
  dimColor: true,
770837
770837
  children: [
770838
770838
  "v",
770839
- "1.77.3"
770839
+ "1.77.4"
770840
770840
  ]
770841
770841
  }, undefined, true, undefined, this)
770842
770842
  ]
@@ -772096,7 +772096,7 @@ function completeOnboarding() {
772096
772096
  saveGlobalConfig((current) => ({
772097
772097
  ...current,
772098
772098
  hasCompletedOnboarding: true,
772099
- lastOnboardingVersion: "1.77.3"
772099
+ lastOnboardingVersion: "1.77.4"
772100
772100
  }));
772101
772101
  }
772102
772102
  function showDialog(root2, renderer) {
@@ -777140,7 +777140,7 @@ function appendToLog(path24, message) {
777140
777140
  cwd: getFsImplementation().cwd(),
777141
777141
  userType: process.env.USER_TYPE,
777142
777142
  sessionId: getSessionId(),
777143
- version: "1.77.3"
777143
+ version: "1.77.4"
777144
777144
  };
777145
777145
  getLogWriter(path24).write(messageWithTimestamp);
777146
777146
  }
@@ -781299,8 +781299,8 @@ async function getEnvLessBridgeConfig() {
781299
781299
  }
781300
781300
  async function checkEnvLessBridgeMinVersion() {
781301
781301
  const cfg = await getEnvLessBridgeConfig();
781302
- if (cfg.min_version && lt("1.77.3", cfg.min_version)) {
781303
- return `Your version of UR (${"1.77.3"}) is too old for Remote Control.
781302
+ if (cfg.min_version && lt("1.77.4", cfg.min_version)) {
781303
+ return `Your version of UR (${"1.77.4"}) is too old for Remote Control.
781304
781304
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
781305
781305
  }
781306
781306
  return null;
@@ -781774,7 +781774,7 @@ async function initBridgeCore(params) {
781774
781774
  const rawApi = createBridgeApiClient({
781775
781775
  baseUrl,
781776
781776
  getAccessToken,
781777
- runnerVersion: "1.77.3",
781777
+ runnerVersion: "1.77.4",
781778
781778
  onDebug: logForDebugging,
781779
781779
  onAuth401,
781780
781780
  getTrustedDeviceToken
@@ -791247,7 +791247,7 @@ function getAgUiCapabilities() {
791247
791247
  name: "UR-Nexus",
791248
791248
  type: "ur-nexus",
791249
791249
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
791250
- version: "1.77.3",
791250
+ version: "1.77.4",
791251
791251
  provider: "UR",
791252
791252
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
791253
791253
  },
@@ -792387,7 +792387,7 @@ function createMCPServer(cwd4, debug2, verbose) {
792387
792387
  };
792388
792388
  const server2 = new Server({
792389
792389
  name: "ur-nexus",
792390
- version: "1.77.3"
792390
+ version: "1.77.4"
792391
792391
  }, {
792392
792392
  capabilities: {
792393
792393
  tools: {}
@@ -793545,7 +793545,7 @@ function thrownResponse(error40) {
793545
793545
  }
793546
793546
  async function createUrMcp2026Runtime(options4) {
793547
793547
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
793548
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.77.3" }, { capabilities: {} });
793548
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.77.4" }, { capabilities: {} });
793549
793549
  const [clientTransport, serverTransport] = createLinkedTransportPair();
793550
793550
  try {
793551
793551
  await server2.connect(serverTransport);
@@ -793556,7 +793556,7 @@ async function createUrMcp2026Runtime(options4) {
793556
793556
  }
793557
793557
  const runtime2 = new Mcp2026Runtime({
793558
793558
  cwd: options4.cwd,
793559
- version: "1.77.3",
793559
+ version: "1.77.4",
793560
793560
  backend: {
793561
793561
  listTools: async () => {
793562
793562
  const listed = await client2.listTools();
@@ -795697,7 +795697,7 @@ async function update() {
795697
795697
  logEvent("tengu_update_check", {});
795698
795698
  const diagnostic2 = await getDoctorDiagnostic();
795699
795699
  const result = await checkUpgradeStatus({
795700
- currentVersion: "1.77.3",
795700
+ currentVersion: "1.77.4",
795701
795701
  packageName: UR_AGENT_PACKAGE_NAME,
795702
795702
  installationType: diagnostic2.installationType,
795703
795703
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -797013,7 +797013,7 @@ ${customInstructions}` : customInstructions;
797013
797013
  }
797014
797014
  }
797015
797015
  logForDiagnosticsNoPII("info", "started", {
797016
- version: "1.77.3",
797016
+ version: "1.77.4",
797017
797017
  is_native_binary: isInBundledMode()
797018
797018
  });
797019
797019
  registerCleanup(async () => {
@@ -797799,7 +797799,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
797799
797799
  pendingHookMessages
797800
797800
  }, renderAndRun);
797801
797801
  }
797802
- }).version("1.77.3 (UR-Nexus)", "-v, --version", "Output the version number");
797802
+ }).version("1.77.4 (UR-Nexus)", "-v, --version", "Output the version number");
797803
797803
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
797804
797804
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
797805
797805
  if (canUserConfigureAdvisor()) {
@@ -798851,7 +798851,7 @@ if (false) {}
798851
798851
  async function main2() {
798852
798852
  const args = process.argv.slice(2);
798853
798853
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
798854
- console.log(`${"1.77.3"} (UR-Nexus)`);
798854
+ console.log(`${"1.77.4"} (UR-Nexus)`);
798855
798855
  return;
798856
798856
  }
798857
798857
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
@@ -19,7 +19,7 @@ You need:
19
19
 
20
20
  ```sh
21
21
  ur --version
22
- # expected for this release: "1.77.3 (UR-Nexus)"
22
+ # expected for this release: "1.77.4 (UR-Nexus)"
23
23
  ```
24
24
 
25
25
  ## 0.1 First-workspace model selection (1.45.4)
@@ -45,7 +45,7 @@
45
45
  <main id="content" class="content">
46
46
  <header class="topbar">
47
47
  <div>
48
- <p class="eyebrow">Version 1.77.3</p>
48
+ <p class="eyebrow">Version 1.77.4</p>
49
49
  <h1>UR-Nexus Documentation</h1>
50
50
  <p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
51
51
  </div>
@@ -7,7 +7,7 @@ plugins {
7
7
  }
8
8
 
9
9
  group = "dev.urnexus"
10
- version = "1.77.3"
10
+ version = "1.77.4"
11
11
 
12
12
  repositories {
13
13
  mavenCentral()
@@ -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.77.3",
5
+ "version": "1.77.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.77.3",
3
+ "version": "1.77.4",
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",