ur-agent 1.77.3 → 1.77.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,33 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.77.5
4
+
5
+ - A tool call the model writes as text is now recovered for every provider.
6
+ The repair existed but was wired only into the Ollama provider and the remote
7
+ transport, so the same model — Kimi, GLM, GPT — reached through OpenRouter or
8
+ any OpenAI-compatible endpoint had its call silently dropped and the turn did
9
+ nothing visible. Recovery now runs in `normalizeContentFromAPI`, the single
10
+ point every provider and both the streaming and non-streaming paths converge
11
+ on, and it matches against the session's real tool list rather than the
12
+ hardcoded seven-name set the transport-level repair used.
13
+ - The recovery is applied only when the turn produced no genuine `tool_use`
14
+ block, so a model that used the structured interface correctly is never
15
+ second-guessed, prose that merely resembles JSON cannot displace a real call,
16
+ and a name that is not a live tool is left as text.
17
+
18
+ ## 1.77.4
19
+
20
+ - AskUserQuestion accepts choices labelled with `header`. `header` is this
21
+ tool's word for a short category label, so a model naming a choice reaches
22
+ for it — and eight options then arrived as eight question objects, each
23
+ reporting a missing question and missing options and never a missing header,
24
+ which is what identified the shape. `header` is now read as an option label
25
+ and no longer disqualifies an entry from being recognised as a choice.
26
+ - A payload that still cannot be repaired reports the keys it actually
27
+ received. Listing only the missing fields said nothing about what arrived,
28
+ which is the one fact that separates an unrepairable payload from a shape the
29
+ normalizer has not been taught yet.
30
+
3
31
  ## 1.77.3
4
32
 
5
33
  - Read says when it did not return the whole file. It stops at 2000 lines by
package/dist/cli.js CHANGED
@@ -92244,6 +92244,9 @@ function parseOpenAICompatibleResponse(data, fallbackModel, providerName = "open
92244
92244
  throw new ProviderResponseParseError(`${providerName} response did not include a choice`, { data });
92245
92245
  }
92246
92246
  const content = parseOpenAIMessageContent(choice?.message, choice?.text, providerName);
92247
+ if (!hasToolUse(content)) {
92248
+ synthesizeKimiToolCalls({ message: { content } });
92249
+ }
92247
92250
  const includesToolUse = hasToolUse(content);
92248
92251
  assertValidProviderToolUses(content, `${providerName} response`);
92249
92252
  if (isOpenAIToolStopReason2(choice?.finish_reason) && !includesToolUse) {
@@ -92519,6 +92522,7 @@ function hasToolUse(content) {
92519
92522
  return content.some((block) => block?.type === "tool_use");
92520
92523
  }
92521
92524
  var init_openaiCompatible = __esm(() => {
92525
+ init_kimiToolCalls();
92522
92526
  init_toolSchema();
92523
92527
  init_providerClient();
92524
92528
  init_streamingAdapters();
@@ -107548,7 +107552,7 @@ var init_auth = __esm(() => {
107548
107552
 
107549
107553
  // src/utils/userAgent.ts
107550
107554
  function getURCodeUserAgent() {
107551
- return `ur/${"1.77.3"}`;
107555
+ return `ur/${"1.77.5"}`;
107552
107556
  }
107553
107557
 
107554
107558
  // src/utils/workloadContext.ts
@@ -107570,7 +107574,7 @@ function getUserAgent() {
107570
107574
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
107571
107575
  const workload = getWorkload();
107572
107576
  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})`;
107577
+ return `ur-cli/${"1.77.5"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107574
107578
  }
107575
107579
  function getMCPUserAgent() {
107576
107580
  const parts = [];
@@ -107584,7 +107588,7 @@ function getMCPUserAgent() {
107584
107588
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
107585
107589
  }
107586
107590
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
107587
- return `ur/${"1.77.3"}${suffix}`;
107591
+ return `ur/${"1.77.5"}${suffix}`;
107588
107592
  }
107589
107593
  function getWebFetchUserAgent() {
107590
107594
  return `UR-User (${getURCodeUserAgent()})`;
@@ -107722,7 +107726,7 @@ var init_user = __esm(() => {
107722
107726
  deviceId,
107723
107727
  sessionId: getSessionId(),
107724
107728
  email: getEmail(),
107725
- appVersion: "1.77.3",
107729
+ appVersion: "1.77.5",
107726
107730
  platform: getHostPlatformForAnalytics(),
107727
107731
  organizationUuid,
107728
107732
  accountUuid,
@@ -115609,7 +115613,7 @@ var init_metadata = __esm(() => {
115609
115613
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
115610
115614
  WHITESPACE_REGEX = /\s+/;
115611
115615
  getVersionBase = memoize_default(() => {
115612
- const match = "1.77.3".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115616
+ const match = "1.77.5".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115613
115617
  return match ? match[0] : undefined;
115614
115618
  });
115615
115619
  buildEnvContext = memoize_default(async () => {
@@ -115649,7 +115653,7 @@ var init_metadata = __esm(() => {
115649
115653
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
115650
115654
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
115651
115655
  isURAiAuth: isURAISubscriber(),
115652
- version: "1.77.3",
115656
+ version: "1.77.5",
115653
115657
  versionBase: getVersionBase(),
115654
115658
  buildTime: "",
115655
115659
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -116319,7 +116323,7 @@ function initialize1PEventLogging() {
116319
116323
  const platform2 = getPlatform();
116320
116324
  const attributes = {
116321
116325
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
116322
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.77.3"
116326
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.77.5"
116323
116327
  };
116324
116328
  if (platform2 === "wsl") {
116325
116329
  const wslVersion = getWslVersion();
@@ -116347,7 +116351,7 @@ function initialize1PEventLogging() {
116347
116351
  })
116348
116352
  ]
116349
116353
  });
116350
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.77.3");
116354
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.77.5");
116351
116355
  }
116352
116356
  async function reinitialize1PEventLoggingIfConfigChanged() {
116353
116357
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -126129,7 +126133,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
126129
126133
  function formatA2AAgentCard(options = {}, pretty = true) {
126130
126134
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
126131
126135
  }
126132
- var urVersion = "1.77.3", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126136
+ var urVersion = "1.77.5", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126133
126137
  var init_trends = __esm(() => {
126134
126138
  init_a2aCardSignature();
126135
126139
  coverage = [
@@ -128932,7 +128936,7 @@ function getAttributionHeader(fingerprint) {
128932
128936
  if (!isAttributionHeaderEnabled()) {
128933
128937
  return "";
128934
128938
  }
128935
- const version2 = `${"1.77.3"}.${fingerprint}`;
128939
+ const version2 = `${"1.77.5"}.${fingerprint}`;
128936
128940
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
128937
128941
  const cch = "";
128938
128942
  const workload = getWorkload();
@@ -156936,7 +156940,7 @@ var init_projectSafety = __esm(() => {
156936
156940
  function getInstruments() {
156937
156941
  if (instruments)
156938
156942
  return instruments;
156939
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.77.3");
156943
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.77.5");
156940
156944
  instruments = {
156941
156945
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
156942
156946
  description: "GenAI operation duration.",
@@ -157034,7 +157038,7 @@ function genAiAgentAttributes() {
157034
157038
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
157035
157039
  "gen_ai.provider.name": "ur",
157036
157040
  "gen_ai.agent.name": "UR-Nexus",
157037
- "gen_ai.agent.version": "1.77.3"
157041
+ "gen_ai.agent.version": "1.77.5"
157038
157042
  };
157039
157043
  }
157040
157044
  function genAiWorkflowAttributes(workflowName) {
@@ -157050,7 +157054,7 @@ function genAiWorkflowAttributes(workflowName) {
157050
157054
  function startGenAiWorkflowSpan(workflowName) {
157051
157055
  const attributes = genAiWorkflowAttributes(workflowName);
157052
157056
  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 });
157057
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.5").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157054
157058
  }
157055
157059
  function endGenAiWorkflowSpan(span, options2 = {}) {
157056
157060
  try {
@@ -157088,7 +157092,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
157088
157092
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
157089
157093
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
157090
157094
  }
157091
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.3").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157095
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.5").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157092
157096
  }
157093
157097
  function endGenAiMemorySpan(span, options2 = {}) {
157094
157098
  try {
@@ -250736,7 +250740,7 @@ function getTelemetryAttributes() {
250736
250740
  attributes["session.id"] = sessionId;
250737
250741
  }
250738
250742
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
250739
- attributes["app.version"] = "1.77.3";
250743
+ attributes["app.version"] = "1.77.5";
250740
250744
  }
250741
250745
  const oauthAccount = getOauthAccountInfo();
250742
250746
  if (oauthAccount) {
@@ -297243,7 +297247,7 @@ function getInstallationEnv() {
297243
297247
  return;
297244
297248
  }
297245
297249
  function getURCodeVersion() {
297246
- return "1.77.3";
297250
+ return "1.77.5";
297247
297251
  }
297248
297252
  async function getInstalledVSCodeExtensionVersion(command) {
297249
297253
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -304574,7 +304578,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
304574
304578
  const client2 = new Client({
304575
304579
  name: "ur",
304576
304580
  title: "UR",
304577
- version: "1.77.3",
304581
+ version: "1.77.5",
304578
304582
  description: "UR-Nexus autonomous engineering workflow engine",
304579
304583
  websiteUrl: PRODUCT_URL
304580
304584
  }, {
@@ -304934,7 +304938,7 @@ var init_client5 = __esm(() => {
304934
304938
  const client2 = new Client({
304935
304939
  name: "ur",
304936
304940
  title: "UR",
304937
- version: "1.77.3",
304941
+ version: "1.77.5",
304938
304942
  description: "UR-Nexus autonomous engineering workflow engine",
304939
304943
  websiteUrl: PRODUCT_URL
304940
304944
  }, {
@@ -317487,7 +317491,7 @@ async function createRuntime() {
317487
317491
  bootstrapTelemetry();
317488
317492
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
317489
317493
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
317490
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.77.3"
317494
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.77.5"
317491
317495
  }));
317492
317496
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
317493
317497
  resource,
@@ -317520,11 +317524,11 @@ async function createRuntime() {
317520
317524
  setMeterProvider(meterProvider);
317521
317525
  setLoggerProvider(loggerProvider);
317522
317526
  if (meterProvider) {
317523
- const meter = meterProvider.getMeter("ur-agent", "1.77.3");
317527
+ const meter = meterProvider.getMeter("ur-agent", "1.77.5");
317524
317528
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
317525
317529
  }
317526
317530
  if (loggerProvider) {
317527
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.77.3"));
317531
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.77.5"));
317528
317532
  }
317529
317533
  if (!cleanupRegistered2) {
317530
317534
  cleanupRegistered2 = true;
@@ -318186,9 +318190,9 @@ async function assertMinVersion() {
318186
318190
  if (false) {}
318187
318191
  try {
318188
318192
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
318189
- if (versionConfig.minVersion && lt("1.77.3", versionConfig.minVersion)) {
318193
+ if (versionConfig.minVersion && lt("1.77.5", versionConfig.minVersion)) {
318190
318194
  console.error(`
318191
- It looks like your version of UR (${"1.77.3"}) needs an update.
318195
+ It looks like your version of UR (${"1.77.5"}) needs an update.
318192
318196
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
318193
318197
 
318194
318198
  To update, please run:
@@ -318404,7 +318408,7 @@ async function installGlobalPackage(specificVersion) {
318404
318408
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
318405
318409
  logEvent("tengu_auto_updater_lock_contention", {
318406
318410
  pid: process.pid,
318407
- currentVersion: "1.77.3"
318411
+ currentVersion: "1.77.5"
318408
318412
  });
318409
318413
  return "in_progress";
318410
318414
  }
@@ -318413,7 +318417,7 @@ async function installGlobalPackage(specificVersion) {
318413
318417
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
318414
318418
  logError2(new Error("Windows NPM detected in WSL environment"));
318415
318419
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
318416
- currentVersion: "1.77.3"
318420
+ currentVersion: "1.77.5"
318417
318421
  });
318418
318422
  console.error(`
318419
318423
  Error: Windows NPM detected in WSL
@@ -318948,7 +318952,7 @@ function detectLinuxGlobPatternWarnings() {
318948
318952
  }
318949
318953
  async function getDoctorDiagnostic() {
318950
318954
  const installationType = await getCurrentInstallationType();
318951
- const version2 = typeof MACRO !== "undefined" ? "1.77.3" : "unknown";
318955
+ const version2 = typeof MACRO !== "undefined" ? "1.77.5" : "unknown";
318952
318956
  const installationPath = await getInstallationPath();
318953
318957
  const invokedBinary = getInvokedBinary();
318954
318958
  const multipleInstallations = await detectMultipleInstallations();
@@ -319883,8 +319887,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319883
319887
  const maxVersion = await getMaxVersion();
319884
319888
  if (maxVersion && gt(version2, maxVersion)) {
319885
319889
  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`);
319890
+ if (gte("1.77.5", maxVersion)) {
319891
+ logForDebugging(`Native installer: current version ${"1.77.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
319888
319892
  logEvent("tengu_native_update_skipped_max_version", {
319889
319893
  latency_ms: Date.now() - startTime,
319890
319894
  max_version: maxVersion,
@@ -319895,7 +319899,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319895
319899
  version2 = maxVersion;
319896
319900
  }
319897
319901
  }
319898
- if (!forceReinstall && version2 === "1.77.3" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319902
+ if (!forceReinstall && version2 === "1.77.5" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319899
319903
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
319900
319904
  logEvent("tengu_native_update_complete", {
319901
319905
  latency_ms: Date.now() - startTime,
@@ -389599,7 +389603,7 @@ function isAnyTracingEnabled() {
389599
389603
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
389600
389604
  }
389601
389605
  function getTracer() {
389602
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.77.3");
389606
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.77.5");
389603
389607
  }
389604
389608
  function createSpanAttributes(spanType, customAttributes = {}) {
389605
389609
  const baseAttributes = getTelemetryAttributes();
@@ -409773,10 +409777,50 @@ function mergeUserContentBlocks(a2, b) {
409773
409777
  }
409774
409778
  return [...a2.slice(0, -1), smooshed, ...toolResults];
409775
409779
  }
409780
+ function recoverTextEmittedToolCalls(contentBlocks, tools) {
409781
+ const blocks = contentBlocks;
409782
+ if (blocks.some((block2) => block2?.type === "tool_use")) {
409783
+ return contentBlocks;
409784
+ }
409785
+ const availableToolNames = new Set(tools.map((tool) => tool.name));
409786
+ if (availableToolNames.size === 0) {
409787
+ return contentBlocks;
409788
+ }
409789
+ const recovered = [];
409790
+ let changed = false;
409791
+ for (const block2 of blocks) {
409792
+ if (block2?.type !== "text" || typeof block2.text !== "string") {
409793
+ recovered.push(block2);
409794
+ continue;
409795
+ }
409796
+ const { text, toolCalls } = parseTextToolCalls(block2.text, {
409797
+ availableToolNames,
409798
+ parseBareJsonToolCalls: true
409799
+ });
409800
+ if (toolCalls.length === 0) {
409801
+ recovered.push(block2);
409802
+ continue;
409803
+ }
409804
+ changed = true;
409805
+ if (text.trim()) {
409806
+ recovered.push({ ...block2, text });
409807
+ }
409808
+ for (const call6 of toolCalls) {
409809
+ recovered.push({
409810
+ type: "tool_use",
409811
+ id: call6.id,
409812
+ name: call6.name,
409813
+ input: call6.input
409814
+ });
409815
+ }
409816
+ }
409817
+ return changed ? recovered : contentBlocks;
409818
+ }
409776
409819
  function normalizeContentFromAPI(contentBlocks, tools, agentId) {
409777
409820
  if (!contentBlocks) {
409778
409821
  return [];
409779
409822
  }
409823
+ contentBlocks = recoverTextEmittedToolCalls(contentBlocks, tools);
409780
409824
  return contentBlocks.map((_contentBlock) => {
409781
409825
  const contentBlock = _contentBlock;
409782
409826
  switch (contentBlock.type) {
@@ -411693,6 +411737,7 @@ Goal: Write your final plan to the plan file (the only file you can edit).
411693
411737
  - End with the single verification command
411694
411738
  - **Hard limit: 40 lines.** If the plan is longer, delete prose \u2014 not file paths.`;
411695
411739
  var init_messages = __esm(() => {
411740
+ init_kimiToolCalls();
411696
411741
  init_isObject();
411697
411742
  init_last();
411698
411743
  init_analytics();
@@ -419776,7 +419821,7 @@ function Feedback({
419776
419821
  platform: env2.platform,
419777
419822
  gitRepo: envInfo.isGit,
419778
419823
  terminal: env2.terminal,
419779
- version: "1.77.3",
419824
+ version: "1.77.5",
419780
419825
  transcript: normalizeMessagesForAPI(messages),
419781
419826
  errors: sanitizedErrors,
419782
419827
  lastApiRequest: getLastAPIRequest(),
@@ -419968,7 +420013,7 @@ function Feedback({
419968
420013
  ", ",
419969
420014
  env2.terminal,
419970
420015
  ", v",
419971
- "1.77.3"
420016
+ "1.77.5"
419972
420017
  ]
419973
420018
  }, undefined, true, undefined, this)
419974
420019
  ]
@@ -420074,7 +420119,7 @@ ${sanitizedDescription}
420074
420119
  ` + `**Environment Info**
420075
420120
  ` + `- Platform: ${env2.platform}
420076
420121
  ` + `- Terminal: ${env2.terminal}
420077
- ` + `- Version: ${"1.77.3"}
420122
+ ` + `- Version: ${"1.77.5"}
420078
420123
  ` + `- Feedback ID: ${feedbackId}
420079
420124
  ` + `
420080
420125
  **Errors**
@@ -423184,7 +423229,7 @@ function buildPrimarySection() {
423184
423229
  }, undefined, false, undefined, this);
423185
423230
  return [{
423186
423231
  label: "Version",
423187
- value: "1.77.3"
423232
+ value: "1.77.5"
423188
423233
  }, {
423189
423234
  label: "Session name",
423190
423235
  value: nameValue
@@ -426566,7 +426611,7 @@ function Config({
426566
426611
  }
426567
426612
  }, undefined, false, undefined, this)
426568
426613
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
426569
- currentVersion: "1.77.3",
426614
+ currentVersion: "1.77.5",
426570
426615
  onChoice: (choice) => {
426571
426616
  setShowSubmenu(null);
426572
426617
  setTabsHidden(false);
@@ -426578,7 +426623,7 @@ function Config({
426578
426623
  autoUpdatesChannel: "stable"
426579
426624
  };
426580
426625
  if (choice === "stay") {
426581
- newSettings.minimumVersion = "1.77.3";
426626
+ newSettings.minimumVersion = "1.77.5";
426582
426627
  }
426583
426628
  updateSettingsForSource("userSettings", newSettings);
426584
426629
  setSettingsData((prev_27) => ({
@@ -434642,7 +434687,7 @@ function HelpV2(t0) {
434642
434687
  let t6;
434643
434688
  if ($2[31] !== tabs) {
434644
434689
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
434645
- title: `UR v${"1.77.3"}`,
434690
+ title: `UR v${"1.77.5"}`,
434646
434691
  color: "professionalBlue",
434647
434692
  defaultTab: "general",
434648
434693
  children: tabs
@@ -435575,7 +435620,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
435575
435620
  async function handleInitialize(options2) {
435576
435621
  return {
435577
435622
  name: "UR",
435578
- version: "1.77.3",
435623
+ version: "1.77.5",
435579
435624
  protocolVersion: "0.1.0",
435580
435625
  workspaceRoot: options2.cwd,
435581
435626
  capabilities: {
@@ -452683,7 +452728,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
452683
452728
  return [];
452684
452729
  }
452685
452730
  }
452686
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.3") {
452731
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.5") {
452687
452732
  if (process.env.USER_TYPE === "ant") {
452688
452733
  const changelog = "";
452689
452734
  if (changelog) {
@@ -452710,7 +452755,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.3")
452710
452755
  releaseNotes
452711
452756
  };
452712
452757
  }
452713
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.77.3") {
452758
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.77.5") {
452714
452759
  if (process.env.USER_TYPE === "ant") {
452715
452760
  const changelog = "";
452716
452761
  if (changelog) {
@@ -455576,7 +455621,7 @@ function getRecentActivitySync() {
455576
455621
  return cachedActivity;
455577
455622
  }
455578
455623
  function getLogoDisplayData() {
455579
- const version2 = process.env.DEMO_VERSION ?? "1.77.3";
455624
+ const version2 = process.env.DEMO_VERSION ?? "1.77.5";
455580
455625
  const serverUrl = getDirectConnectServerUrl();
455581
455626
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
455582
455627
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -456443,7 +456488,7 @@ function LogoV2() {
456443
456488
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
456444
456489
  t2 = () => {
456445
456490
  const currentConfig2 = getGlobalConfig();
456446
- if (currentConfig2.lastReleaseNotesSeen === "1.77.3") {
456491
+ if (currentConfig2.lastReleaseNotesSeen === "1.77.5") {
456447
456492
  return;
456448
456493
  }
456449
456494
  saveGlobalConfig(_temp325);
@@ -457128,12 +457173,12 @@ function LogoV2() {
457128
457173
  return t41;
457129
457174
  }
457130
457175
  function _temp325(current) {
457131
- if (current.lastReleaseNotesSeen === "1.77.3") {
457176
+ if (current.lastReleaseNotesSeen === "1.77.5") {
457132
457177
  return current;
457133
457178
  }
457134
457179
  return {
457135
457180
  ...current,
457136
- lastReleaseNotesSeen: "1.77.3"
457181
+ lastReleaseNotesSeen: "1.77.5"
457137
457182
  };
457138
457183
  }
457139
457184
  function _temp241(s_0) {
@@ -473947,7 +473992,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
473947
473992
  if (spec.name !== specName) {
473948
473993
  throw new Error("Agentic CI workflow spec name does not match");
473949
473994
  }
473950
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.77.3" : "1.77.3");
473995
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.77.5" : "1.77.5");
473951
473996
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
473952
473997
  throw new Error("invalid ur-agent package version");
473953
473998
  }
@@ -474940,7 +474985,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
474940
474985
  path: ".github/workflows/ur.yml",
474941
474986
  root: "project",
474942
474987
  content: compileAgenticCiWorkflow("default", {
474943
- packageVersion: typeof MACRO !== "undefined" ? "1.77.3" : "1.77.3"
474988
+ packageVersion: typeof MACRO !== "undefined" ? "1.77.5" : "1.77.5"
474944
474989
  })
474945
474990
  },
474946
474991
  {
@@ -475003,7 +475048,7 @@ function value(tokens, flag) {
475003
475048
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
475004
475049
  }
475005
475050
  function cliVersion() {
475006
- return typeof MACRO !== "undefined" ? "1.77.3" : "1.77.3";
475051
+ return typeof MACRO !== "undefined" ? "1.77.5" : "1.77.5";
475007
475052
  }
475008
475053
  function workflowPath(cwd2) {
475009
475054
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -480859,7 +480904,7 @@ function createAcpStdioApp(deps) {
480859
480904
  }
480860
480905
  },
480861
480906
  authMethods: [],
480862
- agentInfo: { name: "UR-Nexus", version: "1.77.3" }
480907
+ agentInfo: { name: "UR-Nexus", version: "1.77.5" }
480863
480908
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
480864
480909
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
480865
480910
  await runtime2.announce({
@@ -480956,7 +481001,7 @@ function createAcpStdioAgent(deps) {
480956
481001
  }
480957
481002
  },
480958
481003
  authMethods: [],
480959
- agentInfo: { name: "UR-Nexus", version: "1.77.3" }
481004
+ agentInfo: { name: "UR-Nexus", version: "1.77.5" }
480960
481005
  });
480961
481006
  return;
480962
481007
  case "authenticate":
@@ -690416,7 +690461,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
690416
690461
  smapsRollup,
690417
690462
  platform: process.platform,
690418
690463
  nodeVersion: process.version,
690419
- ccVersion: "1.77.3"
690464
+ ccVersion: "1.77.5"
690420
690465
  };
690421
690466
  }
690422
690467
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -690996,7 +691041,7 @@ var init_bridge_kick = __esm(() => {
690996
691041
  var call154 = async () => {
690997
691042
  return {
690998
691043
  type: "text",
690999
- value: "1.77.3"
691044
+ value: "1.77.5"
691000
691045
  };
691001
691046
  }, version2, version_default;
691002
691047
  var init_version = __esm(() => {
@@ -702263,7 +702308,7 @@ function generateHtmlReport(data, insights) {
702263
702308
  </html>`;
702264
702309
  }
702265
702310
  function buildExportData(data, insights, facets, remoteStats) {
702266
- const version3 = typeof MACRO !== "undefined" ? "1.77.3" : "unknown";
702311
+ const version3 = typeof MACRO !== "undefined" ? "1.77.5" : "unknown";
702267
702312
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
702268
702313
  const facets_summary = {
702269
702314
  total: facets.size,
@@ -706577,7 +706622,7 @@ var init_sessionStorage = __esm(() => {
706577
706622
  init_settings2();
706578
706623
  init_slowOperations();
706579
706624
  init_uuid();
706580
- VERSION7 = typeof MACRO !== "undefined" ? "1.77.3" : "unknown";
706625
+ VERSION7 = typeof MACRO !== "undefined" ? "1.77.5" : "unknown";
706581
706626
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
706582
706627
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
706583
706628
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -707792,7 +707837,7 @@ var init_filesystem = __esm(() => {
707792
707837
  });
707793
707838
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
707794
707839
  const nonce = randomBytes20(16).toString("hex");
707795
- return join232(getURTempDir(), "bundled-skills", "1.77.3", nonce);
707840
+ return join232(getURTempDir(), "bundled-skills", "1.77.5", nonce);
707796
707841
  });
707797
707842
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
707798
707843
  });
@@ -714147,7 +714192,7 @@ function computeFingerprint(messageText2, version3) {
714147
714192
  }
714148
714193
  function computeFingerprintFromMessages(messages) {
714149
714194
  const firstMessageText = extractFirstMessageText(messages);
714150
- return computeFingerprint(firstMessageText, "1.77.3");
714195
+ return computeFingerprint(firstMessageText, "1.77.5");
714151
714196
  }
714152
714197
  var FINGERPRINT_SALT = "59cf53e54c78";
714153
714198
  var init_fingerprint = () => {};
@@ -716069,7 +716114,7 @@ async function sideQuery(opts) {
716069
716114
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
716070
716115
  }
716071
716116
  const messageText2 = extractFirstUserMessageText(messages);
716072
- const fingerprint2 = computeFingerprint(messageText2, "1.77.3");
716117
+ const fingerprint2 = computeFingerprint(messageText2, "1.77.5");
716073
716118
  const attributionHeader = getAttributionHeader(fingerprint2);
716074
716119
  const systemBlocks = [
716075
716120
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -720906,7 +720951,7 @@ function buildSystemInitMessage(inputs) {
720906
720951
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
720907
720952
  apiKeySource: getURHQApiKeyWithSource().source,
720908
720953
  betas: getSdkBetas(),
720909
- ur_version: "1.77.3",
720954
+ ur_version: "1.77.5",
720910
720955
  output_style: outputStyle2,
720911
720956
  agents: inputs.agents.map((agent2) => agent2.agentType),
720912
720957
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -734778,7 +734823,7 @@ var init_useVoiceEnabled = __esm(() => {
734778
734823
  function getSemverPart(version3) {
734779
734824
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
734780
734825
  }
734781
- function useUpdateNotification(updatedVersion, initialVersion = "1.77.3") {
734826
+ function useUpdateNotification(updatedVersion, initialVersion = "1.77.5") {
734782
734827
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react223.useState(() => getSemverPart(initialVersion));
734783
734828
  if (!updatedVersion) {
734784
734829
  return null;
@@ -734827,7 +734872,7 @@ function AutoUpdater({
734827
734872
  return;
734828
734873
  }
734829
734874
  if (false) {}
734830
- const currentVersion = "1.77.3";
734875
+ const currentVersion = "1.77.5";
734831
734876
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
734832
734877
  let latestVersion = await getLatestVersion(channel);
734833
734878
  const isDisabled = isAutoUpdaterDisabled();
@@ -735056,12 +735101,12 @@ function NativeAutoUpdater({
735056
735101
  logEvent("tengu_native_auto_updater_start", {});
735057
735102
  try {
735058
735103
  const maxVersion = await getMaxVersion();
735059
- if (maxVersion && gt("1.77.3", maxVersion)) {
735104
+ if (maxVersion && gt("1.77.5", maxVersion)) {
735060
735105
  const msg = await getMaxVersionMessage();
735061
735106
  setMaxVersionIssue(msg ?? "affects your version");
735062
735107
  }
735063
735108
  const result = await installLatest(channel);
735064
- const currentVersion = "1.77.3";
735109
+ const currentVersion = "1.77.5";
735065
735110
  const latencyMs = Date.now() - startTime;
735066
735111
  if (result.lockFailed) {
735067
735112
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -735198,17 +735243,17 @@ function PackageManagerAutoUpdater(t0) {
735198
735243
  const maxVersion = await getMaxVersion();
735199
735244
  if (maxVersion && latest && gt(latest, maxVersion)) {
735200
735245
  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`);
735246
+ if (gte("1.77.5", maxVersion)) {
735247
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.77.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
735203
735248
  setUpdateAvailable(false);
735204
735249
  return;
735205
735250
  }
735206
735251
  latest = maxVersion;
735207
735252
  }
735208
- const hasUpdate = latest && !gte("1.77.3", latest) && !shouldSkipVersion(latest);
735253
+ const hasUpdate = latest && !gte("1.77.5", latest) && !shouldSkipVersion(latest);
735209
735254
  setUpdateAvailable(!!hasUpdate);
735210
735255
  if (hasUpdate) {
735211
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.77.3"} -> ${latest}`);
735256
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.77.5"} -> ${latest}`);
735212
735257
  }
735213
735258
  };
735214
735259
  $2[0] = t1;
@@ -735242,7 +735287,7 @@ function PackageManagerAutoUpdater(t0) {
735242
735287
  wrap: "truncate",
735243
735288
  children: [
735244
735289
  "currentVersion: ",
735245
- "1.77.3"
735290
+ "1.77.5"
735246
735291
  ]
735247
735292
  }, undefined, true, undefined, this);
735248
735293
  $2[3] = verbose;
@@ -746042,7 +746087,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
746042
746087
  project_dir: getOriginalCwd(),
746043
746088
  added_dirs: addedDirs
746044
746089
  },
746045
- version: "1.77.3",
746090
+ version: "1.77.5",
746046
746091
  output_style: {
746047
746092
  name: outputStyleName
746048
746093
  },
@@ -746177,7 +746222,7 @@ function StatusLineInner({
746177
746222
  const attention = customStatusError ?? taskAttention;
746178
746223
  const terminalSize = React132.useContext(TerminalSizeContext);
746179
746224
  const defaultStatusLineText = buildDefaultStatusBar({
746180
- version: "1.77.3",
746225
+ version: "1.77.5",
746181
746226
  providerLabel: providerRuntime.providerLabel,
746182
746227
  authMode: providerRuntime.authLabel,
746183
746228
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -758462,7 +758507,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
758462
758507
  } catch {}
758463
758508
  const data = {
758464
758509
  trigger: trigger2,
758465
- version: "1.77.3",
758510
+ version: "1.77.5",
758466
758511
  platform: process.platform,
758467
758512
  transcript,
758468
758513
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -770836,7 +770881,7 @@ function WelcomeV2() {
770836
770881
  dimColor: true,
770837
770882
  children: [
770838
770883
  "v",
770839
- "1.77.3"
770884
+ "1.77.5"
770840
770885
  ]
770841
770886
  }, undefined, true, undefined, this)
770842
770887
  ]
@@ -772096,7 +772141,7 @@ function completeOnboarding() {
772096
772141
  saveGlobalConfig((current) => ({
772097
772142
  ...current,
772098
772143
  hasCompletedOnboarding: true,
772099
- lastOnboardingVersion: "1.77.3"
772144
+ lastOnboardingVersion: "1.77.5"
772100
772145
  }));
772101
772146
  }
772102
772147
  function showDialog(root2, renderer) {
@@ -777140,7 +777185,7 @@ function appendToLog(path24, message) {
777140
777185
  cwd: getFsImplementation().cwd(),
777141
777186
  userType: process.env.USER_TYPE,
777142
777187
  sessionId: getSessionId(),
777143
- version: "1.77.3"
777188
+ version: "1.77.5"
777144
777189
  };
777145
777190
  getLogWriter(path24).write(messageWithTimestamp);
777146
777191
  }
@@ -781299,8 +781344,8 @@ async function getEnvLessBridgeConfig() {
781299
781344
  }
781300
781345
  async function checkEnvLessBridgeMinVersion() {
781301
781346
  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.
781347
+ if (cfg.min_version && lt("1.77.5", cfg.min_version)) {
781348
+ return `Your version of UR (${"1.77.5"}) is too old for Remote Control.
781304
781349
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
781305
781350
  }
781306
781351
  return null;
@@ -781774,7 +781819,7 @@ async function initBridgeCore(params) {
781774
781819
  const rawApi = createBridgeApiClient({
781775
781820
  baseUrl,
781776
781821
  getAccessToken,
781777
- runnerVersion: "1.77.3",
781822
+ runnerVersion: "1.77.5",
781778
781823
  onDebug: logForDebugging,
781779
781824
  onAuth401,
781780
781825
  getTrustedDeviceToken
@@ -791247,7 +791292,7 @@ function getAgUiCapabilities() {
791247
791292
  name: "UR-Nexus",
791248
791293
  type: "ur-nexus",
791249
791294
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
791250
- version: "1.77.3",
791295
+ version: "1.77.5",
791251
791296
  provider: "UR",
791252
791297
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
791253
791298
  },
@@ -792387,7 +792432,7 @@ function createMCPServer(cwd4, debug2, verbose) {
792387
792432
  };
792388
792433
  const server2 = new Server({
792389
792434
  name: "ur-nexus",
792390
- version: "1.77.3"
792435
+ version: "1.77.5"
792391
792436
  }, {
792392
792437
  capabilities: {
792393
792438
  tools: {}
@@ -793545,7 +793590,7 @@ function thrownResponse(error40) {
793545
793590
  }
793546
793591
  async function createUrMcp2026Runtime(options4) {
793547
793592
  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: {} });
793593
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.77.5" }, { capabilities: {} });
793549
793594
  const [clientTransport, serverTransport] = createLinkedTransportPair();
793550
793595
  try {
793551
793596
  await server2.connect(serverTransport);
@@ -793556,7 +793601,7 @@ async function createUrMcp2026Runtime(options4) {
793556
793601
  }
793557
793602
  const runtime2 = new Mcp2026Runtime({
793558
793603
  cwd: options4.cwd,
793559
- version: "1.77.3",
793604
+ version: "1.77.5",
793560
793605
  backend: {
793561
793606
  listTools: async () => {
793562
793607
  const listed = await client2.listTools();
@@ -795697,7 +795742,7 @@ async function update() {
795697
795742
  logEvent("tengu_update_check", {});
795698
795743
  const diagnostic2 = await getDoctorDiagnostic();
795699
795744
  const result = await checkUpgradeStatus({
795700
- currentVersion: "1.77.3",
795745
+ currentVersion: "1.77.5",
795701
795746
  packageName: UR_AGENT_PACKAGE_NAME,
795702
795747
  installationType: diagnostic2.installationType,
795703
795748
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -797013,7 +797058,7 @@ ${customInstructions}` : customInstructions;
797013
797058
  }
797014
797059
  }
797015
797060
  logForDiagnosticsNoPII("info", "started", {
797016
- version: "1.77.3",
797061
+ version: "1.77.5",
797017
797062
  is_native_binary: isInBundledMode()
797018
797063
  });
797019
797064
  registerCleanup(async () => {
@@ -797799,7 +797844,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
797799
797844
  pendingHookMessages
797800
797845
  }, renderAndRun);
797801
797846
  }
797802
- }).version("1.77.3 (UR-Nexus)", "-v, --version", "Output the version number");
797847
+ }).version("1.77.5 (UR-Nexus)", "-v, --version", "Output the version number");
797803
797848
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
797804
797849
  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
797850
  if (canUserConfigureAdvisor()) {
@@ -798851,7 +798896,7 @@ if (false) {}
798851
798896
  async function main2() {
798852
798897
  const args = process.argv.slice(2);
798853
798898
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
798854
- console.log(`${"1.77.3"} (UR-Nexus)`);
798899
+ console.log(`${"1.77.5"} (UR-Nexus)`);
798855
798900
  return;
798856
798901
  }
798857
798902
  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.5 (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.5</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.5"
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.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.77.3",
3
+ "version": "1.77.5",
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",