ur-agent 1.77.8 → 1.78.1

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,44 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.78.1
4
+
5
+ - Editing a file through Bash or NotebookEdit now clears that file's delivered
6
+ LSP diagnostics, so errors introduced by the edit reach the model. Diagnostics
7
+ are deduplicated across turns: one identical to a diagnostic already
8
+ delivered for the file is suppressed. Edit and Write cleared the delivered
9
+ set after writing; a `sed` edit through Bash and a notebook cell edit change
10
+ the file the same way but did not, so a problem reintroduced by either was
11
+ silently withheld.
12
+
13
+ ## 1.78.0
14
+
15
+ - The summary reserve is capped as a share of the context window, not just at a
16
+ flat 20,000 tokens. A model with a small window was left with a negative
17
+ effective window — every token count above it, so autocompact fired on every
18
+ turn and never settled. A small window now keeps at least four fifths of
19
+ itself for the conversation, and the effective size can no longer reach zero
20
+ for any reported value. Large windows still reserve the flat amount.
21
+
22
+ ## 1.77.9
23
+
24
+ - Leaked deliberation is collapsed out of the visible transcript. Models
25
+ without a separate thinking channel emit their reasoning as ordinary
26
+ assistant text — paragraph after paragraph of "Wait", "Maybe", "Another
27
+ possibility", each revising the last, before any conclusion. Two rounds of
28
+ prompt guidance did not hold, so this is handled deterministically instead: a
29
+ leading run of deliberation is replaced by a one-line note saying how many
30
+ paragraphs were hidden.
31
+ - Display only. Nothing is deleted and nothing changes on the wire — the
32
+ transcript, the session file, and the next request all carry the text
33
+ unchanged, and `--verbose` shows everything. Synthesizing a `thinking` block
34
+ would have been the natural home for it, but an unsigned one causes an API
35
+ 400 on the following turn.
36
+ - The collapse is deliberately conservative: it needs several deliberation
37
+ paragraphs, tolerates one bridging sentence between them but not two, always
38
+ stops before a code fence, list, heading, or quote, never hides the
39
+ conclusion that follows, and leaves a turn that is *entirely* deliberation
40
+ untouched rather than rendering it blank.
41
+
3
42
  ## 1.77.8
4
43
 
5
44
  - Auto-compact works again on every provider except the first-party one, where
package/dist/cli.js CHANGED
@@ -107573,7 +107573,7 @@ var init_auth = __esm(() => {
107573
107573
 
107574
107574
  // src/utils/userAgent.ts
107575
107575
  function getURCodeUserAgent() {
107576
- return `ur/${"1.77.8"}`;
107576
+ return `ur/${"1.78.1"}`;
107577
107577
  }
107578
107578
 
107579
107579
  // src/utils/workloadContext.ts
@@ -107595,7 +107595,7 @@ function getUserAgent() {
107595
107595
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
107596
107596
  const workload = getWorkload();
107597
107597
  const workloadSuffix = workload ? `, workload/${workload}` : "";
107598
- return `ur-cli/${"1.77.8"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107598
+ return `ur-cli/${"1.78.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107599
107599
  }
107600
107600
  function getMCPUserAgent() {
107601
107601
  const parts = [];
@@ -107609,7 +107609,7 @@ function getMCPUserAgent() {
107609
107609
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
107610
107610
  }
107611
107611
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
107612
- return `ur/${"1.77.8"}${suffix}`;
107612
+ return `ur/${"1.78.1"}${suffix}`;
107613
107613
  }
107614
107614
  function getWebFetchUserAgent() {
107615
107615
  return `UR-User (${getURCodeUserAgent()})`;
@@ -107747,7 +107747,7 @@ var init_user = __esm(() => {
107747
107747
  deviceId,
107748
107748
  sessionId: getSessionId(),
107749
107749
  email: getEmail(),
107750
- appVersion: "1.77.8",
107750
+ appVersion: "1.78.1",
107751
107751
  platform: getHostPlatformForAnalytics(),
107752
107752
  organizationUuid,
107753
107753
  accountUuid,
@@ -115634,7 +115634,7 @@ var init_metadata = __esm(() => {
115634
115634
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
115635
115635
  WHITESPACE_REGEX = /\s+/;
115636
115636
  getVersionBase = memoize_default(() => {
115637
- const match = "1.77.8".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115637
+ const match = "1.78.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115638
115638
  return match ? match[0] : undefined;
115639
115639
  });
115640
115640
  buildEnvContext = memoize_default(async () => {
@@ -115674,7 +115674,7 @@ var init_metadata = __esm(() => {
115674
115674
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
115675
115675
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
115676
115676
  isURAiAuth: isURAISubscriber(),
115677
- version: "1.77.8",
115677
+ version: "1.78.1",
115678
115678
  versionBase: getVersionBase(),
115679
115679
  buildTime: "",
115680
115680
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -116344,7 +116344,7 @@ function initialize1PEventLogging() {
116344
116344
  const platform2 = getPlatform();
116345
116345
  const attributes = {
116346
116346
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
116347
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.77.8"
116347
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.78.1"
116348
116348
  };
116349
116349
  if (platform2 === "wsl") {
116350
116350
  const wslVersion = getWslVersion();
@@ -116372,7 +116372,7 @@ function initialize1PEventLogging() {
116372
116372
  })
116373
116373
  ]
116374
116374
  });
116375
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.77.8");
116375
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.78.1");
116376
116376
  }
116377
116377
  async function reinitialize1PEventLoggingIfConfigChanged() {
116378
116378
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -126154,7 +126154,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
126154
126154
  function formatA2AAgentCard(options = {}, pretty = true) {
126155
126155
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
126156
126156
  }
126157
- var urVersion = "1.77.8", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126157
+ var urVersion = "1.78.1", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126158
126158
  var init_trends = __esm(() => {
126159
126159
  init_a2aCardSignature();
126160
126160
  coverage = [
@@ -128957,7 +128957,7 @@ function getAttributionHeader(fingerprint) {
128957
128957
  if (!isAttributionHeaderEnabled()) {
128958
128958
  return "";
128959
128959
  }
128960
- const version2 = `${"1.77.8"}.${fingerprint}`;
128960
+ const version2 = `${"1.78.1"}.${fingerprint}`;
128961
128961
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
128962
128962
  const cch = "";
128963
128963
  const workload = getWorkload();
@@ -156961,7 +156961,7 @@ var init_projectSafety = __esm(() => {
156961
156961
  function getInstruments() {
156962
156962
  if (instruments)
156963
156963
  return instruments;
156964
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.77.8");
156964
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.78.1");
156965
156965
  instruments = {
156966
156966
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
156967
156967
  description: "GenAI operation duration.",
@@ -157059,7 +157059,7 @@ function genAiAgentAttributes() {
157059
157059
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
157060
157060
  "gen_ai.provider.name": "ur",
157061
157061
  "gen_ai.agent.name": "UR-Nexus",
157062
- "gen_ai.agent.version": "1.77.8"
157062
+ "gen_ai.agent.version": "1.78.1"
157063
157063
  };
157064
157064
  }
157065
157065
  function genAiWorkflowAttributes(workflowName) {
@@ -157075,7 +157075,7 @@ function genAiWorkflowAttributes(workflowName) {
157075
157075
  function startGenAiWorkflowSpan(workflowName) {
157076
157076
  const attributes = genAiWorkflowAttributes(workflowName);
157077
157077
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
157078
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.8").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157078
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.1").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157079
157079
  }
157080
157080
  function endGenAiWorkflowSpan(span, options2 = {}) {
157081
157081
  try {
@@ -157113,7 +157113,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
157113
157113
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
157114
157114
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
157115
157115
  }
157116
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.8").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157116
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.1").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157117
157117
  }
157118
157118
  function endGenAiMemorySpan(span, options2 = {}) {
157119
157119
  try {
@@ -250761,7 +250761,7 @@ function getTelemetryAttributes() {
250761
250761
  attributes["session.id"] = sessionId;
250762
250762
  }
250763
250763
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
250764
- attributes["app.version"] = "1.77.8";
250764
+ attributes["app.version"] = "1.78.1";
250765
250765
  }
250766
250766
  const oauthAccount = getOauthAccountInfo();
250767
250767
  if (oauthAccount) {
@@ -297268,7 +297268,7 @@ function getInstallationEnv() {
297268
297268
  return;
297269
297269
  }
297270
297270
  function getURCodeVersion() {
297271
- return "1.77.8";
297271
+ return "1.78.1";
297272
297272
  }
297273
297273
  async function getInstalledVSCodeExtensionVersion(command) {
297274
297274
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -304599,7 +304599,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
304599
304599
  const client2 = new Client({
304600
304600
  name: "ur",
304601
304601
  title: "UR",
304602
- version: "1.77.8",
304602
+ version: "1.78.1",
304603
304603
  description: "UR-Nexus autonomous engineering workflow engine",
304604
304604
  websiteUrl: PRODUCT_URL
304605
304605
  }, {
@@ -304959,7 +304959,7 @@ var init_client5 = __esm(() => {
304959
304959
  const client2 = new Client({
304960
304960
  name: "ur",
304961
304961
  title: "UR",
304962
- version: "1.77.8",
304962
+ version: "1.78.1",
304963
304963
  description: "UR-Nexus autonomous engineering workflow engine",
304964
304964
  websiteUrl: PRODUCT_URL
304965
304965
  }, {
@@ -308502,6 +308502,62 @@ var init_AssistantRedactedThinkingMessage = __esm(() => {
308502
308502
  jsx_dev_runtime56 = __toESM(require_jsx_dev_runtime(), 1);
308503
308503
  });
308504
308504
 
308505
+ // src/utils/deliberationText.ts
308506
+ function isStructure(paragraph2) {
308507
+ return /^(```|#{1,6}\s|[-*+]\s|\d+\.\s|>\s|\|)/.test(paragraph2.trim());
308508
+ }
308509
+ function isDeliberation(paragraph2) {
308510
+ const trimmed = paragraph2.trim();
308511
+ if (!trimmed)
308512
+ return false;
308513
+ if (isStructure(trimmed))
308514
+ return false;
308515
+ return DELIBERATION_OPENERS.test(trimmed) || SELF_QUESTION.test(trimmed);
308516
+ }
308517
+ function splitLeadingDeliberation(text) {
308518
+ const paragraphs = text.split(/\n{2,}/);
308519
+ if (paragraphs.length < MIN_RUN) {
308520
+ return { deliberation: "", visible: text };
308521
+ }
308522
+ let lastDeliberation = -1;
308523
+ let deliberationCount = 0;
308524
+ let gap = 0;
308525
+ for (let i3 = 0;i3 < paragraphs.length; i3++) {
308526
+ const paragraph2 = paragraphs[i3];
308527
+ if (isStructure(paragraph2))
308528
+ break;
308529
+ if (isDeliberation(paragraph2)) {
308530
+ lastDeliberation = i3;
308531
+ deliberationCount++;
308532
+ gap = 0;
308533
+ continue;
308534
+ }
308535
+ gap++;
308536
+ if (gap > 1)
308537
+ break;
308538
+ }
308539
+ if (deliberationCount < MIN_RUN || lastDeliberation < 0 || lastDeliberation >= paragraphs.length - 1) {
308540
+ return { deliberation: "", visible: text };
308541
+ }
308542
+ return {
308543
+ deliberation: paragraphs.slice(0, lastDeliberation + 1).join(`
308544
+
308545
+ `),
308546
+ visible: paragraphs.slice(lastDeliberation + 1).join(`
308547
+
308548
+ `)
308549
+ };
308550
+ }
308551
+ function describeCollapsedDeliberation(deliberation) {
308552
+ const count4 = deliberation.split(/\n{2,}/).filter((part) => part.trim()).length;
308553
+ return `*(${count4} paragraphs of reasoning collapsed)*`;
308554
+ }
308555
+ var DELIBERATION_OPENERS, SELF_QUESTION, MIN_RUN = 3;
308556
+ var init_deliberationText = __esm(() => {
308557
+ DELIBERATION_OPENERS = /^(wait|hmm+|hold on|actually|maybe|perhaps|possibly|possibility|could it be|could be|might be|what if|what about|another (thought|possibility|angle|option|idea)|let me (think|reconsider|check|see|read|inspect|look)|let's (think|consider|reconsider|say|try|look)|i (wonder|suspect|think maybe|need to see|could)|but (wait|maybe|then|actually)|unless|alternatively|on second thought|or maybe|why would|so why|is it possible|that would|if so|hmm)\b/i;
308558
+ SELF_QUESTION = /^[^.!]{0,160}\?\s*$/;
308559
+ });
308560
+
308505
308561
  // src/utils/systemReminderFilter.ts
308506
308562
  function stripSystemReminders2(text) {
308507
308563
  if (!text)
@@ -317512,7 +317568,7 @@ async function createRuntime() {
317512
317568
  bootstrapTelemetry();
317513
317569
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
317514
317570
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
317515
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.77.8"
317571
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.78.1"
317516
317572
  }));
317517
317573
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
317518
317574
  resource,
@@ -317545,11 +317601,11 @@ async function createRuntime() {
317545
317601
  setMeterProvider(meterProvider);
317546
317602
  setLoggerProvider(loggerProvider);
317547
317603
  if (meterProvider) {
317548
- const meter = meterProvider.getMeter("ur-agent", "1.77.8");
317604
+ const meter = meterProvider.getMeter("ur-agent", "1.78.1");
317549
317605
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
317550
317606
  }
317551
317607
  if (loggerProvider) {
317552
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.77.8"));
317608
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.78.1"));
317553
317609
  }
317554
317610
  if (!cleanupRegistered2) {
317555
317611
  cleanupRegistered2 = true;
@@ -318211,9 +318267,9 @@ async function assertMinVersion() {
318211
318267
  if (false) {}
318212
318268
  try {
318213
318269
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
318214
- if (versionConfig.minVersion && lt("1.77.8", versionConfig.minVersion)) {
318270
+ if (versionConfig.minVersion && lt("1.78.1", versionConfig.minVersion)) {
318215
318271
  console.error(`
318216
- It looks like your version of UR (${"1.77.8"}) needs an update.
318272
+ It looks like your version of UR (${"1.78.1"}) needs an update.
318217
318273
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
318218
318274
 
318219
318275
  To update, please run:
@@ -318429,7 +318485,7 @@ async function installGlobalPackage(specificVersion) {
318429
318485
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
318430
318486
  logEvent("tengu_auto_updater_lock_contention", {
318431
318487
  pid: process.pid,
318432
- currentVersion: "1.77.8"
318488
+ currentVersion: "1.78.1"
318433
318489
  });
318434
318490
  return "in_progress";
318435
318491
  }
@@ -318438,7 +318494,7 @@ async function installGlobalPackage(specificVersion) {
318438
318494
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
318439
318495
  logError2(new Error("Windows NPM detected in WSL environment"));
318440
318496
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
318441
- currentVersion: "1.77.8"
318497
+ currentVersion: "1.78.1"
318442
318498
  });
318443
318499
  console.error(`
318444
318500
  Error: Windows NPM detected in WSL
@@ -318973,7 +319029,7 @@ function detectLinuxGlobPatternWarnings() {
318973
319029
  }
318974
319030
  async function getDoctorDiagnostic() {
318975
319031
  const installationType = await getCurrentInstallationType();
318976
- const version2 = typeof MACRO !== "undefined" ? "1.77.8" : "unknown";
319032
+ const version2 = typeof MACRO !== "undefined" ? "1.78.1" : "unknown";
318977
319033
  const installationPath = await getInstallationPath();
318978
319034
  const invokedBinary = getInvokedBinary();
318979
319035
  const multipleInstallations = await detectMultipleInstallations();
@@ -319908,8 +319964,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319908
319964
  const maxVersion = await getMaxVersion();
319909
319965
  if (maxVersion && gt(version2, maxVersion)) {
319910
319966
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
319911
- if (gte("1.77.8", maxVersion)) {
319912
- logForDebugging(`Native installer: current version ${"1.77.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
319967
+ if (gte("1.78.1", maxVersion)) {
319968
+ logForDebugging(`Native installer: current version ${"1.78.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
319913
319969
  logEvent("tengu_native_update_skipped_max_version", {
319914
319970
  latency_ms: Date.now() - startTime,
319915
319971
  max_version: maxVersion,
@@ -319920,7 +319976,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319920
319976
  version2 = maxVersion;
319921
319977
  }
319922
319978
  }
319923
- if (!forceReinstall && version2 === "1.77.8" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319979
+ if (!forceReinstall && version2 === "1.78.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319924
319980
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
319925
319981
  logEvent("tengu_native_update_complete", {
319926
319982
  latency_ms: Date.now() - startTime,
@@ -330863,7 +330919,11 @@ function AssistantTextMessage(t0) {
330863
330919
  const {
330864
330920
  text: rawText
330865
330921
  } = t1;
330866
- const text = stripSystemReminders2(rawText);
330922
+ const strippedText = stripSystemReminders2(rawText);
330923
+ const split = verbose ? null : splitLeadingDeliberation(strippedText);
330924
+ const text = split && split.deliberation ? `${describeCollapsedDeliberation(split.deliberation)}
330925
+
330926
+ ${split.visible}` : strippedText;
330867
330927
  const isSelected = import_react65.useContext(MessageActionsSelectedContext);
330868
330928
  if (isEmptyMessageText(text)) {
330869
330929
  return null;
@@ -331182,6 +331242,7 @@ var init_AssistantTextMessage = __esm(() => {
331182
331242
  init_ink2();
331183
331243
  init_errors6();
331184
331244
  init_messages();
331245
+ init_deliberationText();
331185
331246
  init_systemReminderFilter();
331186
331247
  init_contextWindowUpgradeCheck();
331187
331248
  init_model();
@@ -368484,6 +368545,7 @@ var init_UI12 = __esm(() => {
368484
368545
  import { extname as extname13, isAbsolute as isAbsolute28, resolve as resolve37 } from "path";
368485
368546
  var inputSchema16, outputSchema13, NotebookEditTool;
368486
368547
  var init_NotebookEditTool = __esm(() => {
368548
+ init_LSPDiagnosticRegistry();
368487
368549
  init_fileHistory();
368488
368550
  init_v4();
368489
368551
  init_Tool();
@@ -368784,6 +368846,7 @@ var init_NotebookEditTool = __esm(() => {
368784
368846
  const IPYNB_INDENT = 1;
368785
368847
  const updatedContent = jsonStringify(notebook, null, IPYNB_INDENT);
368786
368848
  writeTextContent(fullPath, updatedContent, encoding, lineEndings);
368849
+ clearDeliveredDiagnosticsForFile(`file://${fullPath}`);
368787
368850
  readFileState.set(fullPath, {
368788
368851
  content: updatedContent,
368789
368852
  timestamp: getFileModificationTime(fullPath),
@@ -387050,6 +387113,7 @@ Exit code 1`,
387050
387113
  const endings = detectLineEndings(absoluteFilePath);
387051
387114
  writeTextContent(absoluteFilePath, newContent, encoding, endings);
387052
387115
  notifyVscodeFileUpdated(absoluteFilePath, originalContent, newContent);
387116
+ clearDeliveredDiagnosticsForFile(`file://${absoluteFilePath}`);
387053
387117
  toolUseContext.readFileState.set(absoluteFilePath, {
387054
387118
  content: newContent,
387055
387119
  timestamp: getFileModificationTime(absoluteFilePath),
@@ -387327,6 +387391,7 @@ var init_BashTool = __esm(() => {
387327
387391
  init_readOnlyValidation();
387328
387392
  init_sedEditParser();
387329
387393
  init_shouldUseSandbox();
387394
+ init_LSPDiagnosticRegistry();
387330
387395
  init_UI6();
387331
387396
  init_utils9();
387332
387397
  jsx_dev_runtime154 = __toESM(require_jsx_dev_runtime(), 1);
@@ -389630,7 +389695,7 @@ function isAnyTracingEnabled() {
389630
389695
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
389631
389696
  }
389632
389697
  function getTracer() {
389633
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.77.8");
389698
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.78.1");
389634
389699
  }
389635
389700
  function createSpanAttributes(spanType, customAttributes = {}) {
389636
389701
  const baseAttributes = getTelemetryAttributes();
@@ -398138,7 +398203,6 @@ var init_sessionMemoryCompact = __esm(() => {
398138
398203
 
398139
398204
  // src/services/compact/autoCompact.ts
398140
398205
  function getEffectiveContextWindowSize(model) {
398141
- const reservedTokensForSummary = Math.min(getMaxOutputTokensForModel(model), MAX_OUTPUT_TOKENS_FOR_SUMMARY);
398142
398206
  let contextWindow = getContextWindowForModel(model, getSdkBetas());
398143
398207
  const autoCompactWindow = process.env.UR_CODE_AUTO_COMPACT_WINDOW;
398144
398208
  if (autoCompactWindow) {
@@ -398147,7 +398211,8 @@ function getEffectiveContextWindowSize(model) {
398147
398211
  contextWindow = Math.min(contextWindow, parsed);
398148
398212
  }
398149
398213
  }
398150
- return contextWindow - reservedTokensForSummary;
398214
+ const reservedTokensForSummary = Math.min(getMaxOutputTokensForModel(model), MAX_OUTPUT_TOKENS_FOR_SUMMARY, Math.floor(contextWindow * MAX_SUMMARY_RESERVE_SHARE));
398215
+ return Math.max(contextWindow - reservedTokensForSummary, 1);
398151
398216
  }
398152
398217
  function getAutoCompactThreshold(model) {
398153
398218
  const effectiveContextWindow = getEffectiveContextWindowSize(model);
@@ -398268,7 +398333,7 @@ async function autoCompactIfNeeded(messages, toolUseContext, cacheSafeParams, qu
398268
398333
  return { wasCompacted: false, consecutiveFailures: nextFailures };
398269
398334
  }
398270
398335
  }
398271
- var MAX_OUTPUT_TOKENS_FOR_SUMMARY = 20000, AUTOCOMPACT_BUFFER_TOKENS = 13000, WARNING_THRESHOLD_BUFFER_TOKENS = 20000, ERROR_THRESHOLD_BUFFER_TOKENS = 20000, MANUAL_COMPACT_BUFFER_TOKENS = 3000, MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3;
398336
+ var MAX_OUTPUT_TOKENS_FOR_SUMMARY = 20000, MAX_SUMMARY_RESERVE_SHARE = 0.2, AUTOCOMPACT_BUFFER_TOKENS = 13000, WARNING_THRESHOLD_BUFFER_TOKENS = 20000, ERROR_THRESHOLD_BUFFER_TOKENS = 20000, MANUAL_COMPACT_BUFFER_TOKENS = 3000, MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3;
398272
398337
  var init_autoCompact = __esm(() => {
398273
398338
  init_state();
398274
398339
  init_state();
@@ -419852,7 +419917,7 @@ function Feedback({
419852
419917
  platform: env2.platform,
419853
419918
  gitRepo: envInfo.isGit,
419854
419919
  terminal: env2.terminal,
419855
- version: "1.77.8",
419920
+ version: "1.78.1",
419856
419921
  transcript: normalizeMessagesForAPI(messages),
419857
419922
  errors: sanitizedErrors,
419858
419923
  lastApiRequest: getLastAPIRequest(),
@@ -420044,7 +420109,7 @@ function Feedback({
420044
420109
  ", ",
420045
420110
  env2.terminal,
420046
420111
  ", v",
420047
- "1.77.8"
420112
+ "1.78.1"
420048
420113
  ]
420049
420114
  }, undefined, true, undefined, this)
420050
420115
  ]
@@ -420150,7 +420215,7 @@ ${sanitizedDescription}
420150
420215
  ` + `**Environment Info**
420151
420216
  ` + `- Platform: ${env2.platform}
420152
420217
  ` + `- Terminal: ${env2.terminal}
420153
- ` + `- Version: ${"1.77.8"}
420218
+ ` + `- Version: ${"1.78.1"}
420154
420219
  ` + `- Feedback ID: ${feedbackId}
420155
420220
  ` + `
420156
420221
  **Errors**
@@ -423260,7 +423325,7 @@ function buildPrimarySection() {
423260
423325
  }, undefined, false, undefined, this);
423261
423326
  return [{
423262
423327
  label: "Version",
423263
- value: "1.77.8"
423328
+ value: "1.78.1"
423264
423329
  }, {
423265
423330
  label: "Session name",
423266
423331
  value: nameValue
@@ -426642,7 +426707,7 @@ function Config({
426642
426707
  }
426643
426708
  }, undefined, false, undefined, this)
426644
426709
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
426645
- currentVersion: "1.77.8",
426710
+ currentVersion: "1.78.1",
426646
426711
  onChoice: (choice) => {
426647
426712
  setShowSubmenu(null);
426648
426713
  setTabsHidden(false);
@@ -426654,7 +426719,7 @@ function Config({
426654
426719
  autoUpdatesChannel: "stable"
426655
426720
  };
426656
426721
  if (choice === "stay") {
426657
- newSettings.minimumVersion = "1.77.8";
426722
+ newSettings.minimumVersion = "1.78.1";
426658
426723
  }
426659
426724
  updateSettingsForSource("userSettings", newSettings);
426660
426725
  setSettingsData((prev_27) => ({
@@ -434718,7 +434783,7 @@ function HelpV2(t0) {
434718
434783
  let t6;
434719
434784
  if ($2[31] !== tabs) {
434720
434785
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
434721
- title: `UR v${"1.77.8"}`,
434786
+ title: `UR v${"1.78.1"}`,
434722
434787
  color: "professionalBlue",
434723
434788
  defaultTab: "general",
434724
434789
  children: tabs
@@ -435651,7 +435716,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
435651
435716
  async function handleInitialize(options2) {
435652
435717
  return {
435653
435718
  name: "UR",
435654
- version: "1.77.8",
435719
+ version: "1.78.1",
435655
435720
  protocolVersion: "0.1.0",
435656
435721
  workspaceRoot: options2.cwd,
435657
435722
  capabilities: {
@@ -452759,7 +452824,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
452759
452824
  return [];
452760
452825
  }
452761
452826
  }
452762
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.8") {
452827
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.1") {
452763
452828
  if (process.env.USER_TYPE === "ant") {
452764
452829
  const changelog = "";
452765
452830
  if (changelog) {
@@ -452786,7 +452851,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.8")
452786
452851
  releaseNotes
452787
452852
  };
452788
452853
  }
452789
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.77.8") {
452854
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.78.1") {
452790
452855
  if (process.env.USER_TYPE === "ant") {
452791
452856
  const changelog = "";
452792
452857
  if (changelog) {
@@ -455652,7 +455717,7 @@ function getRecentActivitySync() {
455652
455717
  return cachedActivity;
455653
455718
  }
455654
455719
  function getLogoDisplayData() {
455655
- const version2 = process.env.DEMO_VERSION ?? "1.77.8";
455720
+ const version2 = process.env.DEMO_VERSION ?? "1.78.1";
455656
455721
  const serverUrl = getDirectConnectServerUrl();
455657
455722
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
455658
455723
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -456519,7 +456584,7 @@ function LogoV2() {
456519
456584
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
456520
456585
  t2 = () => {
456521
456586
  const currentConfig2 = getGlobalConfig();
456522
- if (currentConfig2.lastReleaseNotesSeen === "1.77.8") {
456587
+ if (currentConfig2.lastReleaseNotesSeen === "1.78.1") {
456523
456588
  return;
456524
456589
  }
456525
456590
  saveGlobalConfig(_temp325);
@@ -457204,12 +457269,12 @@ function LogoV2() {
457204
457269
  return t41;
457205
457270
  }
457206
457271
  function _temp325(current) {
457207
- if (current.lastReleaseNotesSeen === "1.77.8") {
457272
+ if (current.lastReleaseNotesSeen === "1.78.1") {
457208
457273
  return current;
457209
457274
  }
457210
457275
  return {
457211
457276
  ...current,
457212
- lastReleaseNotesSeen: "1.77.8"
457277
+ lastReleaseNotesSeen: "1.78.1"
457213
457278
  };
457214
457279
  }
457215
457280
  function _temp241(s_0) {
@@ -474023,7 +474088,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
474023
474088
  if (spec.name !== specName) {
474024
474089
  throw new Error("Agentic CI workflow spec name does not match");
474025
474090
  }
474026
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.77.8" : "1.77.8");
474091
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.78.1" : "1.78.1");
474027
474092
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
474028
474093
  throw new Error("invalid ur-agent package version");
474029
474094
  }
@@ -475016,7 +475081,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
475016
475081
  path: ".github/workflows/ur.yml",
475017
475082
  root: "project",
475018
475083
  content: compileAgenticCiWorkflow("default", {
475019
- packageVersion: typeof MACRO !== "undefined" ? "1.77.8" : "1.77.8"
475084
+ packageVersion: typeof MACRO !== "undefined" ? "1.78.1" : "1.78.1"
475020
475085
  })
475021
475086
  },
475022
475087
  {
@@ -475079,7 +475144,7 @@ function value(tokens, flag) {
475079
475144
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
475080
475145
  }
475081
475146
  function cliVersion() {
475082
- return typeof MACRO !== "undefined" ? "1.77.8" : "1.77.8";
475147
+ return typeof MACRO !== "undefined" ? "1.78.1" : "1.78.1";
475083
475148
  }
475084
475149
  function workflowPath(cwd2) {
475085
475150
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -480935,7 +481000,7 @@ function createAcpStdioApp(deps) {
480935
481000
  }
480936
481001
  },
480937
481002
  authMethods: [],
480938
- agentInfo: { name: "UR-Nexus", version: "1.77.8" }
481003
+ agentInfo: { name: "UR-Nexus", version: "1.78.1" }
480939
481004
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
480940
481005
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
480941
481006
  await runtime2.announce({
@@ -481032,7 +481097,7 @@ function createAcpStdioAgent(deps) {
481032
481097
  }
481033
481098
  },
481034
481099
  authMethods: [],
481035
- agentInfo: { name: "UR-Nexus", version: "1.77.8" }
481100
+ agentInfo: { name: "UR-Nexus", version: "1.78.1" }
481036
481101
  });
481037
481102
  return;
481038
481103
  case "authenticate":
@@ -690492,7 +690557,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
690492
690557
  smapsRollup,
690493
690558
  platform: process.platform,
690494
690559
  nodeVersion: process.version,
690495
- ccVersion: "1.77.8"
690560
+ ccVersion: "1.78.1"
690496
690561
  };
690497
690562
  }
690498
690563
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -691072,7 +691137,7 @@ var init_bridge_kick = __esm(() => {
691072
691137
  var call154 = async () => {
691073
691138
  return {
691074
691139
  type: "text",
691075
- value: "1.77.8"
691140
+ value: "1.78.1"
691076
691141
  };
691077
691142
  }, version2, version_default;
691078
691143
  var init_version = __esm(() => {
@@ -702339,7 +702404,7 @@ function generateHtmlReport(data, insights) {
702339
702404
  </html>`;
702340
702405
  }
702341
702406
  function buildExportData(data, insights, facets, remoteStats) {
702342
- const version3 = typeof MACRO !== "undefined" ? "1.77.8" : "unknown";
702407
+ const version3 = typeof MACRO !== "undefined" ? "1.78.1" : "unknown";
702343
702408
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
702344
702409
  const facets_summary = {
702345
702410
  total: facets.size,
@@ -706653,7 +706718,7 @@ var init_sessionStorage = __esm(() => {
706653
706718
  init_settings2();
706654
706719
  init_slowOperations();
706655
706720
  init_uuid();
706656
- VERSION7 = typeof MACRO !== "undefined" ? "1.77.8" : "unknown";
706721
+ VERSION7 = typeof MACRO !== "undefined" ? "1.78.1" : "unknown";
706657
706722
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
706658
706723
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
706659
706724
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -707868,7 +707933,7 @@ var init_filesystem = __esm(() => {
707868
707933
  });
707869
707934
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
707870
707935
  const nonce = randomBytes20(16).toString("hex");
707871
- return join232(getURTempDir(), "bundled-skills", "1.77.8", nonce);
707936
+ return join232(getURTempDir(), "bundled-skills", "1.78.1", nonce);
707872
707937
  });
707873
707938
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
707874
707939
  });
@@ -714225,7 +714290,7 @@ function computeFingerprint(messageText2, version3) {
714225
714290
  }
714226
714291
  function computeFingerprintFromMessages(messages) {
714227
714292
  const firstMessageText = extractFirstMessageText(messages);
714228
- return computeFingerprint(firstMessageText, "1.77.8");
714293
+ return computeFingerprint(firstMessageText, "1.78.1");
714229
714294
  }
714230
714295
  var FINGERPRINT_SALT = "59cf53e54c78";
714231
714296
  var init_fingerprint = () => {};
@@ -716147,7 +716212,7 @@ async function sideQuery(opts) {
716147
716212
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
716148
716213
  }
716149
716214
  const messageText2 = extractFirstUserMessageText(messages);
716150
- const fingerprint2 = computeFingerprint(messageText2, "1.77.8");
716215
+ const fingerprint2 = computeFingerprint(messageText2, "1.78.1");
716151
716216
  const attributionHeader = getAttributionHeader(fingerprint2);
716152
716217
  const systemBlocks = [
716153
716218
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -720984,7 +721049,7 @@ function buildSystemInitMessage(inputs) {
720984
721049
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
720985
721050
  apiKeySource: getURHQApiKeyWithSource().source,
720986
721051
  betas: getSdkBetas(),
720987
- ur_version: "1.77.8",
721052
+ ur_version: "1.78.1",
720988
721053
  output_style: outputStyle2,
720989
721054
  agents: inputs.agents.map((agent2) => agent2.agentType),
720990
721055
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -734856,7 +734921,7 @@ var init_useVoiceEnabled = __esm(() => {
734856
734921
  function getSemverPart(version3) {
734857
734922
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
734858
734923
  }
734859
- function useUpdateNotification(updatedVersion, initialVersion = "1.77.8") {
734924
+ function useUpdateNotification(updatedVersion, initialVersion = "1.78.1") {
734860
734925
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react223.useState(() => getSemverPart(initialVersion));
734861
734926
  if (!updatedVersion) {
734862
734927
  return null;
@@ -734905,7 +734970,7 @@ function AutoUpdater({
734905
734970
  return;
734906
734971
  }
734907
734972
  if (false) {}
734908
- const currentVersion = "1.77.8";
734973
+ const currentVersion = "1.78.1";
734909
734974
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
734910
734975
  let latestVersion = await getLatestVersion(channel);
734911
734976
  const isDisabled = isAutoUpdaterDisabled();
@@ -735134,12 +735199,12 @@ function NativeAutoUpdater({
735134
735199
  logEvent("tengu_native_auto_updater_start", {});
735135
735200
  try {
735136
735201
  const maxVersion = await getMaxVersion();
735137
- if (maxVersion && gt("1.77.8", maxVersion)) {
735202
+ if (maxVersion && gt("1.78.1", maxVersion)) {
735138
735203
  const msg = await getMaxVersionMessage();
735139
735204
  setMaxVersionIssue(msg ?? "affects your version");
735140
735205
  }
735141
735206
  const result = await installLatest(channel);
735142
- const currentVersion = "1.77.8";
735207
+ const currentVersion = "1.78.1";
735143
735208
  const latencyMs = Date.now() - startTime;
735144
735209
  if (result.lockFailed) {
735145
735210
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -735276,17 +735341,17 @@ function PackageManagerAutoUpdater(t0) {
735276
735341
  const maxVersion = await getMaxVersion();
735277
735342
  if (maxVersion && latest && gt(latest, maxVersion)) {
735278
735343
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
735279
- if (gte("1.77.8", maxVersion)) {
735280
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.77.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
735344
+ if (gte("1.78.1", maxVersion)) {
735345
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.78.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
735281
735346
  setUpdateAvailable(false);
735282
735347
  return;
735283
735348
  }
735284
735349
  latest = maxVersion;
735285
735350
  }
735286
- const hasUpdate = latest && !gte("1.77.8", latest) && !shouldSkipVersion(latest);
735351
+ const hasUpdate = latest && !gte("1.78.1", latest) && !shouldSkipVersion(latest);
735287
735352
  setUpdateAvailable(!!hasUpdate);
735288
735353
  if (hasUpdate) {
735289
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.77.8"} -> ${latest}`);
735354
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.78.1"} -> ${latest}`);
735290
735355
  }
735291
735356
  };
735292
735357
  $2[0] = t1;
@@ -735320,7 +735385,7 @@ function PackageManagerAutoUpdater(t0) {
735320
735385
  wrap: "truncate",
735321
735386
  children: [
735322
735387
  "currentVersion: ",
735323
- "1.77.8"
735388
+ "1.78.1"
735324
735389
  ]
735325
735390
  }, undefined, true, undefined, this);
735326
735391
  $2[3] = verbose;
@@ -746120,7 +746185,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
746120
746185
  project_dir: getOriginalCwd(),
746121
746186
  added_dirs: addedDirs
746122
746187
  },
746123
- version: "1.77.8",
746188
+ version: "1.78.1",
746124
746189
  output_style: {
746125
746190
  name: outputStyleName
746126
746191
  },
@@ -746255,7 +746320,7 @@ function StatusLineInner({
746255
746320
  const attention = customStatusError ?? taskAttention;
746256
746321
  const terminalSize = React132.useContext(TerminalSizeContext);
746257
746322
  const defaultStatusLineText = buildDefaultStatusBar({
746258
- version: "1.77.8",
746323
+ version: "1.78.1",
746259
746324
  providerLabel: providerRuntime.providerLabel,
746260
746325
  authMode: providerRuntime.authLabel,
746261
746326
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -758540,7 +758605,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
758540
758605
  } catch {}
758541
758606
  const data = {
758542
758607
  trigger: trigger2,
758543
- version: "1.77.8",
758608
+ version: "1.78.1",
758544
758609
  platform: process.platform,
758545
758610
  transcript,
758546
758611
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -770914,7 +770979,7 @@ function WelcomeV2() {
770914
770979
  dimColor: true,
770915
770980
  children: [
770916
770981
  "v",
770917
- "1.77.8"
770982
+ "1.78.1"
770918
770983
  ]
770919
770984
  }, undefined, true, undefined, this)
770920
770985
  ]
@@ -772174,7 +772239,7 @@ function completeOnboarding() {
772174
772239
  saveGlobalConfig((current) => ({
772175
772240
  ...current,
772176
772241
  hasCompletedOnboarding: true,
772177
- lastOnboardingVersion: "1.77.8"
772242
+ lastOnboardingVersion: "1.78.1"
772178
772243
  }));
772179
772244
  }
772180
772245
  function showDialog(root2, renderer) {
@@ -777218,7 +777283,7 @@ function appendToLog(path24, message) {
777218
777283
  cwd: getFsImplementation().cwd(),
777219
777284
  userType: process.env.USER_TYPE,
777220
777285
  sessionId: getSessionId(),
777221
- version: "1.77.8"
777286
+ version: "1.78.1"
777222
777287
  };
777223
777288
  getLogWriter(path24).write(messageWithTimestamp);
777224
777289
  }
@@ -781377,8 +781442,8 @@ async function getEnvLessBridgeConfig() {
781377
781442
  }
781378
781443
  async function checkEnvLessBridgeMinVersion() {
781379
781444
  const cfg = await getEnvLessBridgeConfig();
781380
- if (cfg.min_version && lt("1.77.8", cfg.min_version)) {
781381
- return `Your version of UR (${"1.77.8"}) is too old for Remote Control.
781445
+ if (cfg.min_version && lt("1.78.1", cfg.min_version)) {
781446
+ return `Your version of UR (${"1.78.1"}) is too old for Remote Control.
781382
781447
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
781383
781448
  }
781384
781449
  return null;
@@ -781852,7 +781917,7 @@ async function initBridgeCore(params) {
781852
781917
  const rawApi = createBridgeApiClient({
781853
781918
  baseUrl,
781854
781919
  getAccessToken,
781855
- runnerVersion: "1.77.8",
781920
+ runnerVersion: "1.78.1",
781856
781921
  onDebug: logForDebugging,
781857
781922
  onAuth401,
781858
781923
  getTrustedDeviceToken
@@ -791325,7 +791390,7 @@ function getAgUiCapabilities() {
791325
791390
  name: "UR-Nexus",
791326
791391
  type: "ur-nexus",
791327
791392
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
791328
- version: "1.77.8",
791393
+ version: "1.78.1",
791329
791394
  provider: "UR",
791330
791395
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
791331
791396
  },
@@ -792465,7 +792530,7 @@ function createMCPServer(cwd4, debug2, verbose) {
792465
792530
  };
792466
792531
  const server2 = new Server({
792467
792532
  name: "ur-nexus",
792468
- version: "1.77.8"
792533
+ version: "1.78.1"
792469
792534
  }, {
792470
792535
  capabilities: {
792471
792536
  tools: {}
@@ -793623,7 +793688,7 @@ function thrownResponse(error40) {
793623
793688
  }
793624
793689
  async function createUrMcp2026Runtime(options4) {
793625
793690
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
793626
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.77.8" }, { capabilities: {} });
793691
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.78.1" }, { capabilities: {} });
793627
793692
  const [clientTransport, serverTransport] = createLinkedTransportPair();
793628
793693
  try {
793629
793694
  await server2.connect(serverTransport);
@@ -793634,7 +793699,7 @@ async function createUrMcp2026Runtime(options4) {
793634
793699
  }
793635
793700
  const runtime2 = new Mcp2026Runtime({
793636
793701
  cwd: options4.cwd,
793637
- version: "1.77.8",
793702
+ version: "1.78.1",
793638
793703
  backend: {
793639
793704
  listTools: async () => {
793640
793705
  const listed = await client2.listTools();
@@ -795775,7 +795840,7 @@ async function update() {
795775
795840
  logEvent("tengu_update_check", {});
795776
795841
  const diagnostic2 = await getDoctorDiagnostic();
795777
795842
  const result = await checkUpgradeStatus({
795778
- currentVersion: "1.77.8",
795843
+ currentVersion: "1.78.1",
795779
795844
  packageName: UR_AGENT_PACKAGE_NAME,
795780
795845
  installationType: diagnostic2.installationType,
795781
795846
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -797091,7 +797156,7 @@ ${customInstructions}` : customInstructions;
797091
797156
  }
797092
797157
  }
797093
797158
  logForDiagnosticsNoPII("info", "started", {
797094
- version: "1.77.8",
797159
+ version: "1.78.1",
797095
797160
  is_native_binary: isInBundledMode()
797096
797161
  });
797097
797162
  registerCleanup(async () => {
@@ -797877,7 +797942,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
797877
797942
  pendingHookMessages
797878
797943
  }, renderAndRun);
797879
797944
  }
797880
- }).version("1.77.8 (UR-Nexus)", "-v, --version", "Output the version number");
797945
+ }).version("1.78.1 (UR-Nexus)", "-v, --version", "Output the version number");
797881
797946
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
797882
797947
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
797883
797948
  if (canUserConfigureAdvisor()) {
@@ -798929,7 +798994,7 @@ if (false) {}
798929
798994
  async function main2() {
798930
798995
  const args = process.argv.slice(2);
798931
798996
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
798932
- console.log(`${"1.77.8"} (UR-Nexus)`);
798997
+ console.log(`${"1.78.1"} (UR-Nexus)`);
798933
798998
  return;
798934
798999
  }
798935
799000
  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.8 (UR-Nexus)"
22
+ # expected for this release: "1.78.1 (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.8</p>
48
+ <p class="eyebrow">Version 1.78.1</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.8"
10
+ version = "1.78.1"
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.8",
5
+ "version": "1.78.1",
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.8",
3
+ "version": "1.78.1",
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",