ur-agent 1.78.2 → 1.78.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.78.4
4
+
5
+ - A task may declare a dependency on a task that does not exist yet. A plan
6
+ written in dependency order arrives as forward references — step 2 says it is
7
+ blocked by step 8 while the list is still being built — and each of those was
8
+ refused as `task_not_found`, so most of a plan's structure was discarded at
9
+ the moment it was created. The read side already handled an unresolved
10
+ blocker; the write side now stores the edge, and creating the target adopts
11
+ the matching reverse edge so the pair is linked both ways. Self-dependencies,
12
+ cycles between existing tasks, and an edge from a task that does not exist
13
+ are all still refused.
14
+ - Ollama's wait for response headers has its own ceiling, separate from the
15
+ inactivity budget that governs the stream once it starts. Prefill for a large
16
+ prompt and a cold model load both happen before the first byte and neither is
17
+ idleness, so bounding them with the same figure aborted a long request before
18
+ the model had said anything and reported it as a timeout. An explicit
19
+ timeout, or `API_TIMEOUT_MS`, still wins.
20
+
21
+ ## 1.78.3
22
+
23
+ - A `config set` no longer runs in a parallel batch. Writing a setting is a
24
+ read-modify-write against the settings file: the value is merged into what is
25
+ on disk and the result written back. Two writes in the same batch both read
26
+ the pre-write state, so the second silently discarded the first. Reads have
27
+ no such hazard and still batch.
28
+ - A notebook edit is reported to the editor like every other file change, so it
29
+ appears in the inline diff view. It was the one kind of edit that never did.
30
+
3
31
  ## 1.78.2
4
32
 
5
33
  - `describeQuestionPayloadProblems` returns only problems again. A description
package/dist/cli.js CHANGED
@@ -89258,6 +89258,7 @@ __export(exports_ollama, {
89258
89258
  mergeToolCalls: () => mergeToolCalls,
89259
89259
  isOllamaCloudModel: () => isOllamaCloudModel2,
89260
89260
  getOllamaRequestTimeoutMs: () => getOllamaRequestTimeoutMs,
89261
+ getOllamaHeaderTimeoutMs: () => getOllamaHeaderTimeoutMs,
89261
89262
  getEffectiveOllamaBaseUrl: () => getEffectiveOllamaBaseUrl,
89262
89263
  createOllamaURHQClient: () => createOllamaURHQClient,
89263
89264
  consumePendingProviderNotice: () => consumePendingProviderNotice,
@@ -89322,7 +89323,7 @@ async function createNonStreamingRequest(params, options, baseUrl = getEffective
89322
89323
  return ollamaResponseToURHQMessage(json2, params, textToolFallbackAllowed);
89323
89324
  }
89324
89325
  async function fetchOllamaChat(params, stream4, controller, options, baseUrl = getEffectiveOllamaBaseUrl()) {
89325
- const timeout = getOllamaRequestTimeoutMs(options, process.env, params.model);
89326
+ const timeout = getOllamaHeaderTimeoutMs(options, process.env, params.model);
89326
89327
  const timeoutId = timeout > 0 ? setTimeout(() => controller.abort(), timeout) : undefined;
89327
89328
  try {
89328
89329
  const capabilities = await getOllamaModelCapabilities(params.model, baseUrl, controller.signal);
@@ -89399,6 +89400,15 @@ function createLinkedAbortController(options) {
89399
89400
  signal.addEventListener("abort", () => controller.abort(), { once: true });
89400
89401
  return controller;
89401
89402
  }
89403
+ function getOllamaHeaderTimeoutMs(options, env4 = process.env, model) {
89404
+ if (options?.timeoutMs !== undefined || options?.timeout !== undefined) {
89405
+ return getOllamaRequestTimeoutMs(options, env4, model);
89406
+ }
89407
+ const override = parseInt(env4.API_TIMEOUT_MS || "", 10);
89408
+ if (override > 0)
89409
+ return override;
89410
+ return Math.max(OLLAMA_HEADER_TIMEOUT_MS, getOllamaRequestTimeoutMs(options, env4, model));
89411
+ }
89402
89412
  function getOllamaRequestTimeoutMs(options, env4 = process.env, model) {
89403
89413
  if (options?.timeoutMs !== undefined || options?.timeout !== undefined) {
89404
89414
  return options.timeoutMs ?? options.timeout ?? DEFAULT_OLLAMA_REQUEST_TIMEOUT_MS;
@@ -90352,7 +90362,7 @@ function parseToolInput(input) {
90352
90362
  }
90353
90363
  return normalized;
90354
90364
  }
90355
- var DEFAULT_OLLAMA_REQUEST_TIMEOUT_MS = 300000, REMOTE_OLLAMA_REQUEST_TIMEOUT_MS = 120000, CLOUD_OLLAMA_REQUEST_TIMEOUT_MS = 120000, OLLAMA_GATEWAY_TIMEOUT_MESSAGE = "Ollama gateway timed out while waiting for the model to respond. Check the selected Ollama endpoint or increase API_TIMEOUT_MS if the model needs more time.", ollamaModelCapabilitiesCache, warnedToolsUnsupportedModels, TEXT_TOOL_CALL_HINT, pendingProviderNotice = null, LEVELED_THINK_MODEL_RE;
90365
+ var DEFAULT_OLLAMA_REQUEST_TIMEOUT_MS = 300000, OLLAMA_HEADER_TIMEOUT_MS = 900000, REMOTE_OLLAMA_REQUEST_TIMEOUT_MS = 120000, CLOUD_OLLAMA_REQUEST_TIMEOUT_MS = 120000, OLLAMA_GATEWAY_TIMEOUT_MESSAGE = "Ollama gateway timed out while waiting for the model to respond. Check the selected Ollama endpoint or increase API_TIMEOUT_MS if the model needs more time.", ollamaModelCapabilitiesCache, warnedToolsUnsupportedModels, TEXT_TOOL_CALL_HINT, pendingProviderNotice = null, LEVELED_THINK_MODEL_RE;
90356
90366
  var init_ollama = __esm(() => {
90357
90367
  init_urhq_sdk();
90358
90368
  init_ollamaModels();
@@ -107580,7 +107590,7 @@ var init_auth = __esm(() => {
107580
107590
 
107581
107591
  // src/utils/userAgent.ts
107582
107592
  function getURCodeUserAgent() {
107583
- return `ur/${"1.78.2"}`;
107593
+ return `ur/${"1.78.4"}`;
107584
107594
  }
107585
107595
 
107586
107596
  // src/utils/workloadContext.ts
@@ -107602,7 +107612,7 @@ function getUserAgent() {
107602
107612
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
107603
107613
  const workload = getWorkload();
107604
107614
  const workloadSuffix = workload ? `, workload/${workload}` : "";
107605
- return `ur-cli/${"1.78.2"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107615
+ return `ur-cli/${"1.78.4"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107606
107616
  }
107607
107617
  function getMCPUserAgent() {
107608
107618
  const parts = [];
@@ -107616,7 +107626,7 @@ function getMCPUserAgent() {
107616
107626
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
107617
107627
  }
107618
107628
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
107619
- return `ur/${"1.78.2"}${suffix}`;
107629
+ return `ur/${"1.78.4"}${suffix}`;
107620
107630
  }
107621
107631
  function getWebFetchUserAgent() {
107622
107632
  return `UR-User (${getURCodeUserAgent()})`;
@@ -107754,7 +107764,7 @@ var init_user = __esm(() => {
107754
107764
  deviceId,
107755
107765
  sessionId: getSessionId(),
107756
107766
  email: getEmail(),
107757
- appVersion: "1.78.2",
107767
+ appVersion: "1.78.4",
107758
107768
  platform: getHostPlatformForAnalytics(),
107759
107769
  organizationUuid,
107760
107770
  accountUuid,
@@ -115641,7 +115651,7 @@ var init_metadata = __esm(() => {
115641
115651
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
115642
115652
  WHITESPACE_REGEX = /\s+/;
115643
115653
  getVersionBase = memoize_default(() => {
115644
- const match = "1.78.2".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115654
+ const match = "1.78.4".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115645
115655
  return match ? match[0] : undefined;
115646
115656
  });
115647
115657
  buildEnvContext = memoize_default(async () => {
@@ -115681,7 +115691,7 @@ var init_metadata = __esm(() => {
115681
115691
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
115682
115692
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
115683
115693
  isURAiAuth: isURAISubscriber(),
115684
- version: "1.78.2",
115694
+ version: "1.78.4",
115685
115695
  versionBase: getVersionBase(),
115686
115696
  buildTime: "",
115687
115697
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -116351,7 +116361,7 @@ function initialize1PEventLogging() {
116351
116361
  const platform2 = getPlatform();
116352
116362
  const attributes = {
116353
116363
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
116354
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.78.2"
116364
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.78.4"
116355
116365
  };
116356
116366
  if (platform2 === "wsl") {
116357
116367
  const wslVersion = getWslVersion();
@@ -116379,7 +116389,7 @@ function initialize1PEventLogging() {
116379
116389
  })
116380
116390
  ]
116381
116391
  });
116382
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.78.2");
116392
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.78.4");
116383
116393
  }
116384
116394
  async function reinitialize1PEventLoggingIfConfigChanged() {
116385
116395
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -126161,7 +126171,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
126161
126171
  function formatA2AAgentCard(options = {}, pretty = true) {
126162
126172
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
126163
126173
  }
126164
- var urVersion = "1.78.2", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126174
+ var urVersion = "1.78.4", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126165
126175
  var init_trends = __esm(() => {
126166
126176
  init_a2aCardSignature();
126167
126177
  coverage = [
@@ -128964,7 +128974,7 @@ function getAttributionHeader(fingerprint) {
128964
128974
  if (!isAttributionHeaderEnabled()) {
128965
128975
  return "";
128966
128976
  }
128967
- const version2 = `${"1.78.2"}.${fingerprint}`;
128977
+ const version2 = `${"1.78.4"}.${fingerprint}`;
128968
128978
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
128969
128979
  const cch = "";
128970
128980
  const workload = getWorkload();
@@ -156968,7 +156978,7 @@ var init_projectSafety = __esm(() => {
156968
156978
  function getInstruments() {
156969
156979
  if (instruments)
156970
156980
  return instruments;
156971
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.78.2");
156981
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.78.4");
156972
156982
  instruments = {
156973
156983
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
156974
156984
  description: "GenAI operation duration.",
@@ -157066,7 +157076,7 @@ function genAiAgentAttributes() {
157066
157076
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
157067
157077
  "gen_ai.provider.name": "ur",
157068
157078
  "gen_ai.agent.name": "UR-Nexus",
157069
- "gen_ai.agent.version": "1.78.2"
157079
+ "gen_ai.agent.version": "1.78.4"
157070
157080
  };
157071
157081
  }
157072
157082
  function genAiWorkflowAttributes(workflowName) {
@@ -157082,7 +157092,7 @@ function genAiWorkflowAttributes(workflowName) {
157082
157092
  function startGenAiWorkflowSpan(workflowName) {
157083
157093
  const attributes = genAiWorkflowAttributes(workflowName);
157084
157094
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
157085
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.2").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157095
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.4").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157086
157096
  }
157087
157097
  function endGenAiWorkflowSpan(span, options2 = {}) {
157088
157098
  try {
@@ -157120,7 +157130,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
157120
157130
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
157121
157131
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
157122
157132
  }
157123
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.2").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157133
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.4").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157124
157134
  }
157125
157135
  function endGenAiMemorySpan(span, options2 = {}) {
157126
157136
  try {
@@ -159143,6 +159153,7 @@ var VERIFIER_AGENT_TYPE = "verification";
159143
159153
  // src/utils/tasks.ts
159144
159154
  var exports_tasks = {};
159145
159155
  __export(exports_tasks, {
159156
+ validateTaskDependencyInSnapshot: () => validateTaskDependencyInSnapshot,
159146
159157
  validateTaskDependency: () => validateTaskDependency,
159147
159158
  validateTaskDependencies: () => validateTaskDependencies,
159148
159159
  updateTaskWithDependencies: () => updateTaskWithDependencies,
@@ -159476,7 +159487,11 @@ async function createTask(taskListId, taskData) {
159476
159487
  throw new Error("Task ID space is exhausted");
159477
159488
  }
159478
159489
  const id = String(highestId + 1);
159479
- const task = { id, ...taskData };
159490
+ const awaiting = (await listTasks(taskListId)).filter((existing2) => existing2.blockedBy.includes(id));
159491
+ const blocks = [
159492
+ ...new Set([...taskData.blocks ?? [], ...awaiting.map((t) => t.id)])
159493
+ ];
159494
+ const task = { id, ...taskData, blocks };
159480
159495
  await writeTaskSnapshotUnsafe(taskListId, task);
159481
159496
  notifyTasksUpdated();
159482
159497
  return id;
@@ -159724,9 +159739,12 @@ function validateTaskDependencyInSnapshot(tasks, fromTaskId, toTaskId) {
159724
159739
  const byId = new Map(tasks.map((task) => [task.id, task]));
159725
159740
  const fromTask = byId.get(fromTaskId);
159726
159741
  const toTask = byId.get(toTaskId);
159727
- if (!fromTask || !toTask) {
159742
+ if (!fromTask) {
159728
159743
  return { valid: false, reason: "task_not_found" };
159729
159744
  }
159745
+ if (!toTask) {
159746
+ return { valid: true };
159747
+ }
159730
159748
  if (fromTask.blocks.includes(toTaskId)) {
159731
159749
  return { valid: true };
159732
159750
  }
@@ -250768,7 +250786,7 @@ function getTelemetryAttributes() {
250768
250786
  attributes["session.id"] = sessionId;
250769
250787
  }
250770
250788
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
250771
- attributes["app.version"] = "1.78.2";
250789
+ attributes["app.version"] = "1.78.4";
250772
250790
  }
250773
250791
  const oauthAccount = getOauthAccountInfo();
250774
250792
  if (oauthAccount) {
@@ -297275,7 +297293,7 @@ function getInstallationEnv() {
297275
297293
  return;
297276
297294
  }
297277
297295
  function getURCodeVersion() {
297278
- return "1.78.2";
297296
+ return "1.78.4";
297279
297297
  }
297280
297298
  async function getInstalledVSCodeExtensionVersion(command) {
297281
297299
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -304606,7 +304624,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
304606
304624
  const client2 = new Client({
304607
304625
  name: "ur",
304608
304626
  title: "UR",
304609
- version: "1.78.2",
304627
+ version: "1.78.4",
304610
304628
  description: "UR-Nexus autonomous engineering workflow engine",
304611
304629
  websiteUrl: PRODUCT_URL
304612
304630
  }, {
@@ -304966,7 +304984,7 @@ var init_client5 = __esm(() => {
304966
304984
  const client2 = new Client({
304967
304985
  name: "ur",
304968
304986
  title: "UR",
304969
- version: "1.78.2",
304987
+ version: "1.78.4",
304970
304988
  description: "UR-Nexus autonomous engineering workflow engine",
304971
304989
  websiteUrl: PRODUCT_URL
304972
304990
  }, {
@@ -317575,7 +317593,7 @@ async function createRuntime() {
317575
317593
  bootstrapTelemetry();
317576
317594
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
317577
317595
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
317578
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.78.2"
317596
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.78.4"
317579
317597
  }));
317580
317598
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
317581
317599
  resource,
@@ -317608,11 +317626,11 @@ async function createRuntime() {
317608
317626
  setMeterProvider(meterProvider);
317609
317627
  setLoggerProvider(loggerProvider);
317610
317628
  if (meterProvider) {
317611
- const meter = meterProvider.getMeter("ur-agent", "1.78.2");
317629
+ const meter = meterProvider.getMeter("ur-agent", "1.78.4");
317612
317630
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
317613
317631
  }
317614
317632
  if (loggerProvider) {
317615
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.78.2"));
317633
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.78.4"));
317616
317634
  }
317617
317635
  if (!cleanupRegistered2) {
317618
317636
  cleanupRegistered2 = true;
@@ -318274,9 +318292,9 @@ async function assertMinVersion() {
318274
318292
  if (false) {}
318275
318293
  try {
318276
318294
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
318277
- if (versionConfig.minVersion && lt("1.78.2", versionConfig.minVersion)) {
318295
+ if (versionConfig.minVersion && lt("1.78.4", versionConfig.minVersion)) {
318278
318296
  console.error(`
318279
- It looks like your version of UR (${"1.78.2"}) needs an update.
318297
+ It looks like your version of UR (${"1.78.4"}) needs an update.
318280
318298
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
318281
318299
 
318282
318300
  To update, please run:
@@ -318492,7 +318510,7 @@ async function installGlobalPackage(specificVersion) {
318492
318510
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
318493
318511
  logEvent("tengu_auto_updater_lock_contention", {
318494
318512
  pid: process.pid,
318495
- currentVersion: "1.78.2"
318513
+ currentVersion: "1.78.4"
318496
318514
  });
318497
318515
  return "in_progress";
318498
318516
  }
@@ -318501,7 +318519,7 @@ async function installGlobalPackage(specificVersion) {
318501
318519
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
318502
318520
  logError2(new Error("Windows NPM detected in WSL environment"));
318503
318521
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
318504
- currentVersion: "1.78.2"
318522
+ currentVersion: "1.78.4"
318505
318523
  });
318506
318524
  console.error(`
318507
318525
  Error: Windows NPM detected in WSL
@@ -319036,7 +319054,7 @@ function detectLinuxGlobPatternWarnings() {
319036
319054
  }
319037
319055
  async function getDoctorDiagnostic() {
319038
319056
  const installationType = await getCurrentInstallationType();
319039
- const version2 = typeof MACRO !== "undefined" ? "1.78.2" : "unknown";
319057
+ const version2 = typeof MACRO !== "undefined" ? "1.78.4" : "unknown";
319040
319058
  const installationPath = await getInstallationPath();
319041
319059
  const invokedBinary = getInvokedBinary();
319042
319060
  const multipleInstallations = await detectMultipleInstallations();
@@ -319971,8 +319989,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319971
319989
  const maxVersion = await getMaxVersion();
319972
319990
  if (maxVersion && gt(version2, maxVersion)) {
319973
319991
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
319974
- if (gte("1.78.2", maxVersion)) {
319975
- logForDebugging(`Native installer: current version ${"1.78.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
319992
+ if (gte("1.78.4", maxVersion)) {
319993
+ logForDebugging(`Native installer: current version ${"1.78.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
319976
319994
  logEvent("tengu_native_update_skipped_max_version", {
319977
319995
  latency_ms: Date.now() - startTime,
319978
319996
  max_version: maxVersion,
@@ -319983,7 +320001,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319983
320001
  version2 = maxVersion;
319984
320002
  }
319985
320003
  }
319986
- if (!forceReinstall && version2 === "1.78.2" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
320004
+ if (!forceReinstall && version2 === "1.78.4" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319987
320005
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
319988
320006
  logEvent("tengu_native_update_complete", {
319989
320007
  latency_ms: Date.now() - startTime,
@@ -368553,6 +368571,7 @@ import { extname as extname13, isAbsolute as isAbsolute28, resolve as resolve37
368553
368571
  var inputSchema16, outputSchema13, NotebookEditTool;
368554
368572
  var init_NotebookEditTool = __esm(() => {
368555
368573
  init_LSPDiagnosticRegistry();
368574
+ init_vscodeSdkMcp();
368556
368575
  init_fileHistory();
368557
368576
  init_v4();
368558
368577
  init_Tool();
@@ -368853,6 +368872,7 @@ var init_NotebookEditTool = __esm(() => {
368853
368872
  const IPYNB_INDENT = 1;
368854
368873
  const updatedContent = jsonStringify(notebook, null, IPYNB_INDENT);
368855
368874
  writeTextContent(fullPath, updatedContent, encoding, lineEndings);
368875
+ notifyVscodeFileUpdated(fullPath, content, updatedContent);
368856
368876
  clearDeliveredDiagnosticsForFile(`file://${fullPath}`);
368857
368877
  readFileState.set(fullPath, {
368858
368878
  content: updatedContent,
@@ -379108,8 +379128,8 @@ var init_ConfigTool = __esm(() => {
379108
379128
  return "Config";
379109
379129
  },
379110
379130
  shouldDefer: true,
379111
- isConcurrencySafe() {
379112
- return true;
379131
+ isConcurrencySafe(input) {
379132
+ return input.value === undefined;
379113
379133
  },
379114
379134
  isReadOnly(input) {
379115
379135
  return input.value === undefined;
@@ -389702,7 +389722,7 @@ function isAnyTracingEnabled() {
389702
389722
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
389703
389723
  }
389704
389724
  function getTracer() {
389705
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.78.2");
389725
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.78.4");
389706
389726
  }
389707
389727
  function createSpanAttributes(spanType, customAttributes = {}) {
389708
389728
  const baseAttributes = getTelemetryAttributes();
@@ -419928,7 +419948,7 @@ function Feedback({
419928
419948
  platform: env2.platform,
419929
419949
  gitRepo: envInfo.isGit,
419930
419950
  terminal: env2.terminal,
419931
- version: "1.78.2",
419951
+ version: "1.78.4",
419932
419952
  transcript: normalizeMessagesForAPI(messages),
419933
419953
  errors: sanitizedErrors,
419934
419954
  lastApiRequest: getLastAPIRequest(),
@@ -420120,7 +420140,7 @@ function Feedback({
420120
420140
  ", ",
420121
420141
  env2.terminal,
420122
420142
  ", v",
420123
- "1.78.2"
420143
+ "1.78.4"
420124
420144
  ]
420125
420145
  }, undefined, true, undefined, this)
420126
420146
  ]
@@ -420226,7 +420246,7 @@ ${sanitizedDescription}
420226
420246
  ` + `**Environment Info**
420227
420247
  ` + `- Platform: ${env2.platform}
420228
420248
  ` + `- Terminal: ${env2.terminal}
420229
- ` + `- Version: ${"1.78.2"}
420249
+ ` + `- Version: ${"1.78.4"}
420230
420250
  ` + `- Feedback ID: ${feedbackId}
420231
420251
  ` + `
420232
420252
  **Errors**
@@ -423336,7 +423356,7 @@ function buildPrimarySection() {
423336
423356
  }, undefined, false, undefined, this);
423337
423357
  return [{
423338
423358
  label: "Version",
423339
- value: "1.78.2"
423359
+ value: "1.78.4"
423340
423360
  }, {
423341
423361
  label: "Session name",
423342
423362
  value: nameValue
@@ -426718,7 +426738,7 @@ function Config({
426718
426738
  }
426719
426739
  }, undefined, false, undefined, this)
426720
426740
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
426721
- currentVersion: "1.78.2",
426741
+ currentVersion: "1.78.4",
426722
426742
  onChoice: (choice) => {
426723
426743
  setShowSubmenu(null);
426724
426744
  setTabsHidden(false);
@@ -426730,7 +426750,7 @@ function Config({
426730
426750
  autoUpdatesChannel: "stable"
426731
426751
  };
426732
426752
  if (choice === "stay") {
426733
- newSettings.minimumVersion = "1.78.2";
426753
+ newSettings.minimumVersion = "1.78.4";
426734
426754
  }
426735
426755
  updateSettingsForSource("userSettings", newSettings);
426736
426756
  setSettingsData((prev_27) => ({
@@ -434794,7 +434814,7 @@ function HelpV2(t0) {
434794
434814
  let t6;
434795
434815
  if ($2[31] !== tabs) {
434796
434816
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
434797
- title: `UR v${"1.78.2"}`,
434817
+ title: `UR v${"1.78.4"}`,
434798
434818
  color: "professionalBlue",
434799
434819
  defaultTab: "general",
434800
434820
  children: tabs
@@ -435727,7 +435747,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
435727
435747
  async function handleInitialize(options2) {
435728
435748
  return {
435729
435749
  name: "UR",
435730
- version: "1.78.2",
435750
+ version: "1.78.4",
435731
435751
  protocolVersion: "0.1.0",
435732
435752
  workspaceRoot: options2.cwd,
435733
435753
  capabilities: {
@@ -452835,7 +452855,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
452835
452855
  return [];
452836
452856
  }
452837
452857
  }
452838
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.2") {
452858
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.4") {
452839
452859
  if (process.env.USER_TYPE === "ant") {
452840
452860
  const changelog = "";
452841
452861
  if (changelog) {
@@ -452862,7 +452882,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.2")
452862
452882
  releaseNotes
452863
452883
  };
452864
452884
  }
452865
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.78.2") {
452885
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.78.4") {
452866
452886
  if (process.env.USER_TYPE === "ant") {
452867
452887
  const changelog = "";
452868
452888
  if (changelog) {
@@ -455728,7 +455748,7 @@ function getRecentActivitySync() {
455728
455748
  return cachedActivity;
455729
455749
  }
455730
455750
  function getLogoDisplayData() {
455731
- const version2 = process.env.DEMO_VERSION ?? "1.78.2";
455751
+ const version2 = process.env.DEMO_VERSION ?? "1.78.4";
455732
455752
  const serverUrl = getDirectConnectServerUrl();
455733
455753
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
455734
455754
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -456595,7 +456615,7 @@ function LogoV2() {
456595
456615
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
456596
456616
  t2 = () => {
456597
456617
  const currentConfig2 = getGlobalConfig();
456598
- if (currentConfig2.lastReleaseNotesSeen === "1.78.2") {
456618
+ if (currentConfig2.lastReleaseNotesSeen === "1.78.4") {
456599
456619
  return;
456600
456620
  }
456601
456621
  saveGlobalConfig(_temp325);
@@ -457280,12 +457300,12 @@ function LogoV2() {
457280
457300
  return t41;
457281
457301
  }
457282
457302
  function _temp325(current) {
457283
- if (current.lastReleaseNotesSeen === "1.78.2") {
457303
+ if (current.lastReleaseNotesSeen === "1.78.4") {
457284
457304
  return current;
457285
457305
  }
457286
457306
  return {
457287
457307
  ...current,
457288
- lastReleaseNotesSeen: "1.78.2"
457308
+ lastReleaseNotesSeen: "1.78.4"
457289
457309
  };
457290
457310
  }
457291
457311
  function _temp241(s_0) {
@@ -474099,7 +474119,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
474099
474119
  if (spec.name !== specName) {
474100
474120
  throw new Error("Agentic CI workflow spec name does not match");
474101
474121
  }
474102
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.78.2" : "1.78.2");
474122
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.78.4" : "1.78.4");
474103
474123
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
474104
474124
  throw new Error("invalid ur-agent package version");
474105
474125
  }
@@ -475092,7 +475112,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
475092
475112
  path: ".github/workflows/ur.yml",
475093
475113
  root: "project",
475094
475114
  content: compileAgenticCiWorkflow("default", {
475095
- packageVersion: typeof MACRO !== "undefined" ? "1.78.2" : "1.78.2"
475115
+ packageVersion: typeof MACRO !== "undefined" ? "1.78.4" : "1.78.4"
475096
475116
  })
475097
475117
  },
475098
475118
  {
@@ -475155,7 +475175,7 @@ function value(tokens, flag) {
475155
475175
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
475156
475176
  }
475157
475177
  function cliVersion() {
475158
- return typeof MACRO !== "undefined" ? "1.78.2" : "1.78.2";
475178
+ return typeof MACRO !== "undefined" ? "1.78.4" : "1.78.4";
475159
475179
  }
475160
475180
  function workflowPath(cwd2) {
475161
475181
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -481011,7 +481031,7 @@ function createAcpStdioApp(deps) {
481011
481031
  }
481012
481032
  },
481013
481033
  authMethods: [],
481014
- agentInfo: { name: "UR-Nexus", version: "1.78.2" }
481034
+ agentInfo: { name: "UR-Nexus", version: "1.78.4" }
481015
481035
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
481016
481036
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
481017
481037
  await runtime2.announce({
@@ -481108,7 +481128,7 @@ function createAcpStdioAgent(deps) {
481108
481128
  }
481109
481129
  },
481110
481130
  authMethods: [],
481111
- agentInfo: { name: "UR-Nexus", version: "1.78.2" }
481131
+ agentInfo: { name: "UR-Nexus", version: "1.78.4" }
481112
481132
  });
481113
481133
  return;
481114
481134
  case "authenticate":
@@ -690568,7 +690588,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
690568
690588
  smapsRollup,
690569
690589
  platform: process.platform,
690570
690590
  nodeVersion: process.version,
690571
- ccVersion: "1.78.2"
690591
+ ccVersion: "1.78.4"
690572
690592
  };
690573
690593
  }
690574
690594
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -691148,7 +691168,7 @@ var init_bridge_kick = __esm(() => {
691148
691168
  var call154 = async () => {
691149
691169
  return {
691150
691170
  type: "text",
691151
- value: "1.78.2"
691171
+ value: "1.78.4"
691152
691172
  };
691153
691173
  }, version2, version_default;
691154
691174
  var init_version = __esm(() => {
@@ -702415,7 +702435,7 @@ function generateHtmlReport(data, insights) {
702415
702435
  </html>`;
702416
702436
  }
702417
702437
  function buildExportData(data, insights, facets, remoteStats) {
702418
- const version3 = typeof MACRO !== "undefined" ? "1.78.2" : "unknown";
702438
+ const version3 = typeof MACRO !== "undefined" ? "1.78.4" : "unknown";
702419
702439
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
702420
702440
  const facets_summary = {
702421
702441
  total: facets.size,
@@ -706729,7 +706749,7 @@ var init_sessionStorage = __esm(() => {
706729
706749
  init_settings2();
706730
706750
  init_slowOperations();
706731
706751
  init_uuid();
706732
- VERSION7 = typeof MACRO !== "undefined" ? "1.78.2" : "unknown";
706752
+ VERSION7 = typeof MACRO !== "undefined" ? "1.78.4" : "unknown";
706733
706753
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
706734
706754
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
706735
706755
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -707944,7 +707964,7 @@ var init_filesystem = __esm(() => {
707944
707964
  });
707945
707965
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
707946
707966
  const nonce = randomBytes20(16).toString("hex");
707947
- return join232(getURTempDir(), "bundled-skills", "1.78.2", nonce);
707967
+ return join232(getURTempDir(), "bundled-skills", "1.78.4", nonce);
707948
707968
  });
707949
707969
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
707950
707970
  });
@@ -714301,7 +714321,7 @@ function computeFingerprint(messageText2, version3) {
714301
714321
  }
714302
714322
  function computeFingerprintFromMessages(messages) {
714303
714323
  const firstMessageText = extractFirstMessageText(messages);
714304
- return computeFingerprint(firstMessageText, "1.78.2");
714324
+ return computeFingerprint(firstMessageText, "1.78.4");
714305
714325
  }
714306
714326
  var FINGERPRINT_SALT = "59cf53e54c78";
714307
714327
  var init_fingerprint = () => {};
@@ -716223,7 +716243,7 @@ async function sideQuery(opts) {
716223
716243
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
716224
716244
  }
716225
716245
  const messageText2 = extractFirstUserMessageText(messages);
716226
- const fingerprint2 = computeFingerprint(messageText2, "1.78.2");
716246
+ const fingerprint2 = computeFingerprint(messageText2, "1.78.4");
716227
716247
  const attributionHeader = getAttributionHeader(fingerprint2);
716228
716248
  const systemBlocks = [
716229
716249
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -721060,7 +721080,7 @@ function buildSystemInitMessage(inputs) {
721060
721080
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
721061
721081
  apiKeySource: getURHQApiKeyWithSource().source,
721062
721082
  betas: getSdkBetas(),
721063
- ur_version: "1.78.2",
721083
+ ur_version: "1.78.4",
721064
721084
  output_style: outputStyle2,
721065
721085
  agents: inputs.agents.map((agent2) => agent2.agentType),
721066
721086
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -734932,7 +734952,7 @@ var init_useVoiceEnabled = __esm(() => {
734932
734952
  function getSemverPart(version3) {
734933
734953
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
734934
734954
  }
734935
- function useUpdateNotification(updatedVersion, initialVersion = "1.78.2") {
734955
+ function useUpdateNotification(updatedVersion, initialVersion = "1.78.4") {
734936
734956
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react223.useState(() => getSemverPart(initialVersion));
734937
734957
  if (!updatedVersion) {
734938
734958
  return null;
@@ -734981,7 +735001,7 @@ function AutoUpdater({
734981
735001
  return;
734982
735002
  }
734983
735003
  if (false) {}
734984
- const currentVersion = "1.78.2";
735004
+ const currentVersion = "1.78.4";
734985
735005
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
734986
735006
  let latestVersion = await getLatestVersion(channel);
734987
735007
  const isDisabled = isAutoUpdaterDisabled();
@@ -735210,12 +735230,12 @@ function NativeAutoUpdater({
735210
735230
  logEvent("tengu_native_auto_updater_start", {});
735211
735231
  try {
735212
735232
  const maxVersion = await getMaxVersion();
735213
- if (maxVersion && gt("1.78.2", maxVersion)) {
735233
+ if (maxVersion && gt("1.78.4", maxVersion)) {
735214
735234
  const msg = await getMaxVersionMessage();
735215
735235
  setMaxVersionIssue(msg ?? "affects your version");
735216
735236
  }
735217
735237
  const result = await installLatest(channel);
735218
- const currentVersion = "1.78.2";
735238
+ const currentVersion = "1.78.4";
735219
735239
  const latencyMs = Date.now() - startTime;
735220
735240
  if (result.lockFailed) {
735221
735241
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -735352,17 +735372,17 @@ function PackageManagerAutoUpdater(t0) {
735352
735372
  const maxVersion = await getMaxVersion();
735353
735373
  if (maxVersion && latest && gt(latest, maxVersion)) {
735354
735374
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
735355
- if (gte("1.78.2", maxVersion)) {
735356
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.78.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
735375
+ if (gte("1.78.4", maxVersion)) {
735376
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.78.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
735357
735377
  setUpdateAvailable(false);
735358
735378
  return;
735359
735379
  }
735360
735380
  latest = maxVersion;
735361
735381
  }
735362
- const hasUpdate = latest && !gte("1.78.2", latest) && !shouldSkipVersion(latest);
735382
+ const hasUpdate = latest && !gte("1.78.4", latest) && !shouldSkipVersion(latest);
735363
735383
  setUpdateAvailable(!!hasUpdate);
735364
735384
  if (hasUpdate) {
735365
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.78.2"} -> ${latest}`);
735385
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.78.4"} -> ${latest}`);
735366
735386
  }
735367
735387
  };
735368
735388
  $2[0] = t1;
@@ -735396,7 +735416,7 @@ function PackageManagerAutoUpdater(t0) {
735396
735416
  wrap: "truncate",
735397
735417
  children: [
735398
735418
  "currentVersion: ",
735399
- "1.78.2"
735419
+ "1.78.4"
735400
735420
  ]
735401
735421
  }, undefined, true, undefined, this);
735402
735422
  $2[3] = verbose;
@@ -746196,7 +746216,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
746196
746216
  project_dir: getOriginalCwd(),
746197
746217
  added_dirs: addedDirs
746198
746218
  },
746199
- version: "1.78.2",
746219
+ version: "1.78.4",
746200
746220
  output_style: {
746201
746221
  name: outputStyleName
746202
746222
  },
@@ -746331,7 +746351,7 @@ function StatusLineInner({
746331
746351
  const attention = customStatusError ?? taskAttention;
746332
746352
  const terminalSize = React132.useContext(TerminalSizeContext);
746333
746353
  const defaultStatusLineText = buildDefaultStatusBar({
746334
- version: "1.78.2",
746354
+ version: "1.78.4",
746335
746355
  providerLabel: providerRuntime.providerLabel,
746336
746356
  authMode: providerRuntime.authLabel,
746337
746357
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -758616,7 +758636,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
758616
758636
  } catch {}
758617
758637
  const data = {
758618
758638
  trigger: trigger2,
758619
- version: "1.78.2",
758639
+ version: "1.78.4",
758620
758640
  platform: process.platform,
758621
758641
  transcript,
758622
758642
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -770990,7 +771010,7 @@ function WelcomeV2() {
770990
771010
  dimColor: true,
770991
771011
  children: [
770992
771012
  "v",
770993
- "1.78.2"
771013
+ "1.78.4"
770994
771014
  ]
770995
771015
  }, undefined, true, undefined, this)
770996
771016
  ]
@@ -772250,7 +772270,7 @@ function completeOnboarding() {
772250
772270
  saveGlobalConfig((current) => ({
772251
772271
  ...current,
772252
772272
  hasCompletedOnboarding: true,
772253
- lastOnboardingVersion: "1.78.2"
772273
+ lastOnboardingVersion: "1.78.4"
772254
772274
  }));
772255
772275
  }
772256
772276
  function showDialog(root2, renderer) {
@@ -777294,7 +777314,7 @@ function appendToLog(path24, message) {
777294
777314
  cwd: getFsImplementation().cwd(),
777295
777315
  userType: process.env.USER_TYPE,
777296
777316
  sessionId: getSessionId(),
777297
- version: "1.78.2"
777317
+ version: "1.78.4"
777298
777318
  };
777299
777319
  getLogWriter(path24).write(messageWithTimestamp);
777300
777320
  }
@@ -781453,8 +781473,8 @@ async function getEnvLessBridgeConfig() {
781453
781473
  }
781454
781474
  async function checkEnvLessBridgeMinVersion() {
781455
781475
  const cfg = await getEnvLessBridgeConfig();
781456
- if (cfg.min_version && lt("1.78.2", cfg.min_version)) {
781457
- return `Your version of UR (${"1.78.2"}) is too old for Remote Control.
781476
+ if (cfg.min_version && lt("1.78.4", cfg.min_version)) {
781477
+ return `Your version of UR (${"1.78.4"}) is too old for Remote Control.
781458
781478
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
781459
781479
  }
781460
781480
  return null;
@@ -781928,7 +781948,7 @@ async function initBridgeCore(params) {
781928
781948
  const rawApi = createBridgeApiClient({
781929
781949
  baseUrl,
781930
781950
  getAccessToken,
781931
- runnerVersion: "1.78.2",
781951
+ runnerVersion: "1.78.4",
781932
781952
  onDebug: logForDebugging,
781933
781953
  onAuth401,
781934
781954
  getTrustedDeviceToken
@@ -791401,7 +791421,7 @@ function getAgUiCapabilities() {
791401
791421
  name: "UR-Nexus",
791402
791422
  type: "ur-nexus",
791403
791423
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
791404
- version: "1.78.2",
791424
+ version: "1.78.4",
791405
791425
  provider: "UR",
791406
791426
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
791407
791427
  },
@@ -792541,7 +792561,7 @@ function createMCPServer(cwd4, debug2, verbose) {
792541
792561
  };
792542
792562
  const server2 = new Server({
792543
792563
  name: "ur-nexus",
792544
- version: "1.78.2"
792564
+ version: "1.78.4"
792545
792565
  }, {
792546
792566
  capabilities: {
792547
792567
  tools: {}
@@ -793699,7 +793719,7 @@ function thrownResponse(error40) {
793699
793719
  }
793700
793720
  async function createUrMcp2026Runtime(options4) {
793701
793721
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
793702
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.78.2" }, { capabilities: {} });
793722
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.78.4" }, { capabilities: {} });
793703
793723
  const [clientTransport, serverTransport] = createLinkedTransportPair();
793704
793724
  try {
793705
793725
  await server2.connect(serverTransport);
@@ -793710,7 +793730,7 @@ async function createUrMcp2026Runtime(options4) {
793710
793730
  }
793711
793731
  const runtime2 = new Mcp2026Runtime({
793712
793732
  cwd: options4.cwd,
793713
- version: "1.78.2",
793733
+ version: "1.78.4",
793714
793734
  backend: {
793715
793735
  listTools: async () => {
793716
793736
  const listed = await client2.listTools();
@@ -795851,7 +795871,7 @@ async function update() {
795851
795871
  logEvent("tengu_update_check", {});
795852
795872
  const diagnostic2 = await getDoctorDiagnostic();
795853
795873
  const result = await checkUpgradeStatus({
795854
- currentVersion: "1.78.2",
795874
+ currentVersion: "1.78.4",
795855
795875
  packageName: UR_AGENT_PACKAGE_NAME,
795856
795876
  installationType: diagnostic2.installationType,
795857
795877
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -797167,7 +797187,7 @@ ${customInstructions}` : customInstructions;
797167
797187
  }
797168
797188
  }
797169
797189
  logForDiagnosticsNoPII("info", "started", {
797170
- version: "1.78.2",
797190
+ version: "1.78.4",
797171
797191
  is_native_binary: isInBundledMode()
797172
797192
  });
797173
797193
  registerCleanup(async () => {
@@ -797953,7 +797973,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
797953
797973
  pendingHookMessages
797954
797974
  }, renderAndRun);
797955
797975
  }
797956
- }).version("1.78.2 (UR-Nexus)", "-v, --version", "Output the version number");
797976
+ }).version("1.78.4 (UR-Nexus)", "-v, --version", "Output the version number");
797957
797977
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
797958
797978
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
797959
797979
  if (canUserConfigureAdvisor()) {
@@ -799005,7 +799025,7 @@ if (false) {}
799005
799025
  async function main2() {
799006
799026
  const args = process.argv.slice(2);
799007
799027
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
799008
- console.log(`${"1.78.2"} (UR-Nexus)`);
799028
+ console.log(`${"1.78.4"} (UR-Nexus)`);
799009
799029
  return;
799010
799030
  }
799011
799031
  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.78.2 (UR-Nexus)"
22
+ # expected for this release: "1.78.4 (UR-Nexus)"
23
23
  ```
24
24
 
25
25
  ## 0.1 First-workspace model selection (1.45.4)
@@ -45,7 +45,7 @@
45
45
  <main id="content" class="content">
46
46
  <header class="topbar">
47
47
  <div>
48
- <p class="eyebrow">Version 1.78.2</p>
48
+ <p class="eyebrow">Version 1.78.4</p>
49
49
  <h1>UR-Nexus Documentation</h1>
50
50
  <p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
51
51
  </div>
@@ -7,7 +7,7 @@ plugins {
7
7
  }
8
8
 
9
9
  group = "dev.urnexus"
10
- version = "1.78.2"
10
+ version = "1.78.4"
11
11
 
12
12
  repositories {
13
13
  mavenCentral()
@@ -2,7 +2,7 @@
2
2
  "name": "ur-inline-diffs",
3
3
  "displayName": "UR Inline Diffs",
4
4
  "description": "Review, apply, and reject UR inline diff bundles from .ur/ide/diffs inside VS Code.",
5
- "version": "1.78.2",
5
+ "version": "1.78.4",
6
6
  "publisher": "ur-nexus",
7
7
  "engines": {
8
8
  "vscode": "^1.92.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.78.2",
3
+ "version": "1.78.4",
4
4
  "description": "UR-Nexus — autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",