ur-agent 1.78.1 → 1.78.3

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,26 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.78.3
4
+
5
+ - A `config set` no longer runs in a parallel batch. Writing a setting is a
6
+ read-modify-write against the settings file: the value is merged into what is
7
+ on disk and the result written back. Two writes in the same batch both read
8
+ the pre-write state, so the second silently discarded the first. Reads have
9
+ no such hazard and still batch.
10
+ - A notebook edit is reported to the editor like every other file change, so it
11
+ appears in the inline diff view. It was the one kind of edit that never did.
12
+
13
+ ## 1.78.2
14
+
15
+ - `describeQuestionPayloadProblems` returns only problems again. A description
16
+ of the payload's shape had been appended to that list, which changed its
17
+ length and broke callers that count entries. The shape is now returned by a
18
+ separate `describeQuestionPayloadShape`, and the tool error message joins the
19
+ two, so the diagnosis is unchanged while the list stays a list of problems.
20
+ - The effective-context-window arithmetic is exposed as a pure function,
21
+ `computeEffectiveContextWindowSize`, so the reserve cap can be checked
22
+ without a provider or settings in scope.
23
+
3
24
  ## 1.78.1
4
25
 
5
26
  - Editing a file through Bash or NotebookEdit now clears that file's delivered
package/dist/cli.js CHANGED
@@ -87529,7 +87529,6 @@ function describeQuestionPayloadProblems(value) {
87529
87529
  if (!Array.isArray(questions) || questions.length === 0) {
87530
87530
  return ["`questions` must be a non-empty array."];
87531
87531
  }
87532
- const shapes = questions.slice(0, 3).map((question, index2) => isRecord2(question) ? `questions[${index2}] has keys: ${Object.keys(question).join(", ") || "(none)"}` : `questions[${index2}] is ${Array.isArray(question) ? "an array" : typeof question}`).join("; ");
87533
87532
  questions.forEach((question, index2) => {
87534
87533
  const where = `questions[${index2}]`;
87535
87534
  if (!isRecord2(question)) {
@@ -87551,11 +87550,19 @@ function describeQuestionPayloadProblems(value) {
87551
87550
  problems.push(`${where}.options must contain at least 2 distinct labels; this question is open-ended and should be asked in plain text instead.`);
87552
87551
  }
87553
87552
  });
87554
- if (problems.length > 0 && shapes) {
87555
- problems.push(`Received ${shapes}.`);
87556
- }
87557
87553
  return problems;
87558
87554
  }
87555
+ function describeQuestionPayloadShape(value) {
87556
+ if (!isRecord2(value)) {
87557
+ return `Received ${Array.isArray(value) ? "an array" : typeof value}.`;
87558
+ }
87559
+ const questions = value.questions;
87560
+ if (!Array.isArray(questions)) {
87561
+ return `Received an object with keys: ${Object.keys(value).join(", ") || "(none)"}.`;
87562
+ }
87563
+ const shapes = questions.slice(0, 3).map((question, index2) => isRecord2(question) ? `questions[${index2}] has keys: ${Object.keys(question).join(", ") || "(none)"}` : `questions[${index2}] is ${Array.isArray(question) ? "an array" : typeof question}`).join("; ");
87564
+ return shapes ? `Received ${shapes}.` : "";
87565
+ }
87559
87566
 
87560
87567
  // src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx
87561
87568
  function objectValue(value) {
@@ -89251,6 +89258,7 @@ __export(exports_ollama, {
89251
89258
  mergeToolCalls: () => mergeToolCalls,
89252
89259
  isOllamaCloudModel: () => isOllamaCloudModel2,
89253
89260
  getOllamaRequestTimeoutMs: () => getOllamaRequestTimeoutMs,
89261
+ getOllamaHeaderTimeoutMs: () => getOllamaHeaderTimeoutMs,
89254
89262
  getEffectiveOllamaBaseUrl: () => getEffectiveOllamaBaseUrl,
89255
89263
  createOllamaURHQClient: () => createOllamaURHQClient,
89256
89264
  consumePendingProviderNotice: () => consumePendingProviderNotice,
@@ -89315,7 +89323,7 @@ async function createNonStreamingRequest(params, options, baseUrl = getEffective
89315
89323
  return ollamaResponseToURHQMessage(json2, params, textToolFallbackAllowed);
89316
89324
  }
89317
89325
  async function fetchOllamaChat(params, stream4, controller, options, baseUrl = getEffectiveOllamaBaseUrl()) {
89318
- const timeout = getOllamaRequestTimeoutMs(options, process.env, params.model);
89326
+ const timeout = getOllamaHeaderTimeoutMs(options, process.env, params.model);
89319
89327
  const timeoutId = timeout > 0 ? setTimeout(() => controller.abort(), timeout) : undefined;
89320
89328
  try {
89321
89329
  const capabilities = await getOllamaModelCapabilities(params.model, baseUrl, controller.signal);
@@ -89392,6 +89400,15 @@ function createLinkedAbortController(options) {
89392
89400
  signal.addEventListener("abort", () => controller.abort(), { once: true });
89393
89401
  return controller;
89394
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
+ }
89395
89412
  function getOllamaRequestTimeoutMs(options, env4 = process.env, model) {
89396
89413
  if (options?.timeoutMs !== undefined || options?.timeout !== undefined) {
89397
89414
  return options.timeoutMs ?? options.timeout ?? DEFAULT_OLLAMA_REQUEST_TIMEOUT_MS;
@@ -90345,7 +90362,7 @@ function parseToolInput(input) {
90345
90362
  }
90346
90363
  return normalized;
90347
90364
  }
90348
- 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;
90349
90366
  var init_ollama = __esm(() => {
90350
90367
  init_urhq_sdk();
90351
90368
  init_ollamaModels();
@@ -107573,7 +107590,7 @@ var init_auth = __esm(() => {
107573
107590
 
107574
107591
  // src/utils/userAgent.ts
107575
107592
  function getURCodeUserAgent() {
107576
- return `ur/${"1.78.1"}`;
107593
+ return `ur/${"1.78.3"}`;
107577
107594
  }
107578
107595
 
107579
107596
  // src/utils/workloadContext.ts
@@ -107595,7 +107612,7 @@ function getUserAgent() {
107595
107612
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
107596
107613
  const workload = getWorkload();
107597
107614
  const workloadSuffix = workload ? `, workload/${workload}` : "";
107598
- return `ur-cli/${"1.78.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107615
+ return `ur-cli/${"1.78.3"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107599
107616
  }
107600
107617
  function getMCPUserAgent() {
107601
107618
  const parts = [];
@@ -107609,7 +107626,7 @@ function getMCPUserAgent() {
107609
107626
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
107610
107627
  }
107611
107628
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
107612
- return `ur/${"1.78.1"}${suffix}`;
107629
+ return `ur/${"1.78.3"}${suffix}`;
107613
107630
  }
107614
107631
  function getWebFetchUserAgent() {
107615
107632
  return `UR-User (${getURCodeUserAgent()})`;
@@ -107747,7 +107764,7 @@ var init_user = __esm(() => {
107747
107764
  deviceId,
107748
107765
  sessionId: getSessionId(),
107749
107766
  email: getEmail(),
107750
- appVersion: "1.78.1",
107767
+ appVersion: "1.78.3",
107751
107768
  platform: getHostPlatformForAnalytics(),
107752
107769
  organizationUuid,
107753
107770
  accountUuid,
@@ -115634,7 +115651,7 @@ var init_metadata = __esm(() => {
115634
115651
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
115635
115652
  WHITESPACE_REGEX = /\s+/;
115636
115653
  getVersionBase = memoize_default(() => {
115637
- const match = "1.78.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115654
+ const match = "1.78.3".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115638
115655
  return match ? match[0] : undefined;
115639
115656
  });
115640
115657
  buildEnvContext = memoize_default(async () => {
@@ -115674,7 +115691,7 @@ var init_metadata = __esm(() => {
115674
115691
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
115675
115692
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
115676
115693
  isURAiAuth: isURAISubscriber(),
115677
- version: "1.78.1",
115694
+ version: "1.78.3",
115678
115695
  versionBase: getVersionBase(),
115679
115696
  buildTime: "",
115680
115697
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -116344,7 +116361,7 @@ function initialize1PEventLogging() {
116344
116361
  const platform2 = getPlatform();
116345
116362
  const attributes = {
116346
116363
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
116347
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.78.1"
116364
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.78.3"
116348
116365
  };
116349
116366
  if (platform2 === "wsl") {
116350
116367
  const wslVersion = getWslVersion();
@@ -116372,7 +116389,7 @@ function initialize1PEventLogging() {
116372
116389
  })
116373
116390
  ]
116374
116391
  });
116375
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.78.1");
116392
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.78.3");
116376
116393
  }
116377
116394
  async function reinitialize1PEventLoggingIfConfigChanged() {
116378
116395
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -126154,7 +126171,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
126154
126171
  function formatA2AAgentCard(options = {}, pretty = true) {
126155
126172
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
126156
126173
  }
126157
- var urVersion = "1.78.1", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126174
+ var urVersion = "1.78.3", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126158
126175
  var init_trends = __esm(() => {
126159
126176
  init_a2aCardSignature();
126160
126177
  coverage = [
@@ -128957,7 +128974,7 @@ function getAttributionHeader(fingerprint) {
128957
128974
  if (!isAttributionHeaderEnabled()) {
128958
128975
  return "";
128959
128976
  }
128960
- const version2 = `${"1.78.1"}.${fingerprint}`;
128977
+ const version2 = `${"1.78.3"}.${fingerprint}`;
128961
128978
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
128962
128979
  const cch = "";
128963
128980
  const workload = getWorkload();
@@ -156961,7 +156978,7 @@ var init_projectSafety = __esm(() => {
156961
156978
  function getInstruments() {
156962
156979
  if (instruments)
156963
156980
  return instruments;
156964
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.78.1");
156981
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.78.3");
156965
156982
  instruments = {
156966
156983
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
156967
156984
  description: "GenAI operation duration.",
@@ -157059,7 +157076,7 @@ function genAiAgentAttributes() {
157059
157076
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
157060
157077
  "gen_ai.provider.name": "ur",
157061
157078
  "gen_ai.agent.name": "UR-Nexus",
157062
- "gen_ai.agent.version": "1.78.1"
157079
+ "gen_ai.agent.version": "1.78.3"
157063
157080
  };
157064
157081
  }
157065
157082
  function genAiWorkflowAttributes(workflowName) {
@@ -157075,7 +157092,7 @@ function genAiWorkflowAttributes(workflowName) {
157075
157092
  function startGenAiWorkflowSpan(workflowName) {
157076
157093
  const attributes = genAiWorkflowAttributes(workflowName);
157077
157094
  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.78.1").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157095
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.3").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157079
157096
  }
157080
157097
  function endGenAiWorkflowSpan(span, options2 = {}) {
157081
157098
  try {
@@ -157113,7 +157130,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
157113
157130
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
157114
157131
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
157115
157132
  }
157116
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.1").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157133
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.3").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157117
157134
  }
157118
157135
  function endGenAiMemorySpan(span, options2 = {}) {
157119
157136
  try {
@@ -159469,7 +159486,11 @@ async function createTask(taskListId, taskData) {
159469
159486
  throw new Error("Task ID space is exhausted");
159470
159487
  }
159471
159488
  const id = String(highestId + 1);
159472
- const task = { id, ...taskData };
159489
+ const awaiting = (await listTasks(taskListId)).filter((existing2) => existing2.blockedBy.includes(id));
159490
+ const blocks = [
159491
+ ...new Set([...taskData.blocks ?? [], ...awaiting.map((t) => t.id)])
159492
+ ];
159493
+ const task = { id, ...taskData, blocks };
159473
159494
  await writeTaskSnapshotUnsafe(taskListId, task);
159474
159495
  notifyTasksUpdated();
159475
159496
  return id;
@@ -159717,9 +159738,12 @@ function validateTaskDependencyInSnapshot(tasks, fromTaskId, toTaskId) {
159717
159738
  const byId = new Map(tasks.map((task) => [task.id, task]));
159718
159739
  const fromTask = byId.get(fromTaskId);
159719
159740
  const toTask = byId.get(toTaskId);
159720
- if (!fromTask || !toTask) {
159741
+ if (!fromTask) {
159721
159742
  return { valid: false, reason: "task_not_found" };
159722
159743
  }
159744
+ if (!toTask) {
159745
+ return { valid: true };
159746
+ }
159723
159747
  if (fromTask.blocks.includes(toTaskId)) {
159724
159748
  return { valid: true };
159725
159749
  }
@@ -250761,7 +250785,7 @@ function getTelemetryAttributes() {
250761
250785
  attributes["session.id"] = sessionId;
250762
250786
  }
250763
250787
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
250764
- attributes["app.version"] = "1.78.1";
250788
+ attributes["app.version"] = "1.78.3";
250765
250789
  }
250766
250790
  const oauthAccount = getOauthAccountInfo();
250767
250791
  if (oauthAccount) {
@@ -297268,7 +297292,7 @@ function getInstallationEnv() {
297268
297292
  return;
297269
297293
  }
297270
297294
  function getURCodeVersion() {
297271
- return "1.78.1";
297295
+ return "1.78.3";
297272
297296
  }
297273
297297
  async function getInstalledVSCodeExtensionVersion(command) {
297274
297298
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -304599,7 +304623,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
304599
304623
  const client2 = new Client({
304600
304624
  name: "ur",
304601
304625
  title: "UR",
304602
- version: "1.78.1",
304626
+ version: "1.78.3",
304603
304627
  description: "UR-Nexus autonomous engineering workflow engine",
304604
304628
  websiteUrl: PRODUCT_URL
304605
304629
  }, {
@@ -304959,7 +304983,7 @@ var init_client5 = __esm(() => {
304959
304983
  const client2 = new Client({
304960
304984
  name: "ur",
304961
304985
  title: "UR",
304962
- version: "1.78.1",
304986
+ version: "1.78.3",
304963
304987
  description: "UR-Nexus autonomous engineering workflow engine",
304964
304988
  websiteUrl: PRODUCT_URL
304965
304989
  }, {
@@ -317568,7 +317592,7 @@ async function createRuntime() {
317568
317592
  bootstrapTelemetry();
317569
317593
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
317570
317594
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
317571
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.78.1"
317595
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.78.3"
317572
317596
  }));
317573
317597
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
317574
317598
  resource,
@@ -317601,11 +317625,11 @@ async function createRuntime() {
317601
317625
  setMeterProvider(meterProvider);
317602
317626
  setLoggerProvider(loggerProvider);
317603
317627
  if (meterProvider) {
317604
- const meter = meterProvider.getMeter("ur-agent", "1.78.1");
317628
+ const meter = meterProvider.getMeter("ur-agent", "1.78.3");
317605
317629
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
317606
317630
  }
317607
317631
  if (loggerProvider) {
317608
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.78.1"));
317632
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.78.3"));
317609
317633
  }
317610
317634
  if (!cleanupRegistered2) {
317611
317635
  cleanupRegistered2 = true;
@@ -318267,9 +318291,9 @@ async function assertMinVersion() {
318267
318291
  if (false) {}
318268
318292
  try {
318269
318293
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
318270
- if (versionConfig.minVersion && lt("1.78.1", versionConfig.minVersion)) {
318294
+ if (versionConfig.minVersion && lt("1.78.3", versionConfig.minVersion)) {
318271
318295
  console.error(`
318272
- It looks like your version of UR (${"1.78.1"}) needs an update.
318296
+ It looks like your version of UR (${"1.78.3"}) needs an update.
318273
318297
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
318274
318298
 
318275
318299
  To update, please run:
@@ -318485,7 +318509,7 @@ async function installGlobalPackage(specificVersion) {
318485
318509
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
318486
318510
  logEvent("tengu_auto_updater_lock_contention", {
318487
318511
  pid: process.pid,
318488
- currentVersion: "1.78.1"
318512
+ currentVersion: "1.78.3"
318489
318513
  });
318490
318514
  return "in_progress";
318491
318515
  }
@@ -318494,7 +318518,7 @@ async function installGlobalPackage(specificVersion) {
318494
318518
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
318495
318519
  logError2(new Error("Windows NPM detected in WSL environment"));
318496
318520
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
318497
- currentVersion: "1.78.1"
318521
+ currentVersion: "1.78.3"
318498
318522
  });
318499
318523
  console.error(`
318500
318524
  Error: Windows NPM detected in WSL
@@ -319029,7 +319053,7 @@ function detectLinuxGlobPatternWarnings() {
319029
319053
  }
319030
319054
  async function getDoctorDiagnostic() {
319031
319055
  const installationType = await getCurrentInstallationType();
319032
- const version2 = typeof MACRO !== "undefined" ? "1.78.1" : "unknown";
319056
+ const version2 = typeof MACRO !== "undefined" ? "1.78.3" : "unknown";
319033
319057
  const installationPath = await getInstallationPath();
319034
319058
  const invokedBinary = getInvokedBinary();
319035
319059
  const multipleInstallations = await detectMultipleInstallations();
@@ -319964,8 +319988,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319964
319988
  const maxVersion = await getMaxVersion();
319965
319989
  if (maxVersion && gt(version2, maxVersion)) {
319966
319990
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
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`);
319991
+ if (gte("1.78.3", maxVersion)) {
319992
+ logForDebugging(`Native installer: current version ${"1.78.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
319969
319993
  logEvent("tengu_native_update_skipped_max_version", {
319970
319994
  latency_ms: Date.now() - startTime,
319971
319995
  max_version: maxVersion,
@@ -319976,7 +320000,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319976
320000
  version2 = maxVersion;
319977
320001
  }
319978
320002
  }
319979
- if (!forceReinstall && version2 === "1.78.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
320003
+ if (!forceReinstall && version2 === "1.78.3" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319980
320004
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
319981
320005
  logEvent("tengu_native_update_complete", {
319982
320006
  latency_ms: Date.now() - startTime,
@@ -368546,6 +368570,7 @@ import { extname as extname13, isAbsolute as isAbsolute28, resolve as resolve37
368546
368570
  var inputSchema16, outputSchema13, NotebookEditTool;
368547
368571
  var init_NotebookEditTool = __esm(() => {
368548
368572
  init_LSPDiagnosticRegistry();
368573
+ init_vscodeSdkMcp();
368549
368574
  init_fileHistory();
368550
368575
  init_v4();
368551
368576
  init_Tool();
@@ -368846,6 +368871,7 @@ var init_NotebookEditTool = __esm(() => {
368846
368871
  const IPYNB_INDENT = 1;
368847
368872
  const updatedContent = jsonStringify(notebook, null, IPYNB_INDENT);
368848
368873
  writeTextContent(fullPath, updatedContent, encoding, lineEndings);
368874
+ notifyVscodeFileUpdated(fullPath, content, updatedContent);
368849
368875
  clearDeliveredDiagnosticsForFile(`file://${fullPath}`);
368850
368876
  readFileState.set(fullPath, {
368851
368877
  content: updatedContent,
@@ -379101,8 +379127,8 @@ var init_ConfigTool = __esm(() => {
379101
379127
  return "Config";
379102
379128
  },
379103
379129
  shouldDefer: true,
379104
- isConcurrencySafe() {
379105
- return true;
379130
+ isConcurrencySafe(input) {
379131
+ return input.value === undefined;
379106
379132
  },
379107
379133
  isReadOnly(input) {
379108
379134
  return input.value === undefined;
@@ -389695,7 +389721,7 @@ function isAnyTracingEnabled() {
389695
389721
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
389696
389722
  }
389697
389723
  function getTracer() {
389698
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.78.1");
389724
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.78.3");
389699
389725
  }
389700
389726
  function createSpanAttributes(spanType, customAttributes = {}) {
389701
389727
  const baseAttributes = getTelemetryAttributes();
@@ -391852,8 +391878,9 @@ async function checkPermissionsAndCallTool(tool, toolUseID, input, toolUseContex
391852
391878
  }
391853
391879
  if (!parsedInput.success) {
391854
391880
  recordCallFailure(callSig);
391855
- const questionProblems = tool.name === ASK_USER_QUESTION_TOOL_NAME ? describeQuestionPayloadProblems(normalizeAskUserQuestionInput(input)) : [];
391856
- let errorContent = questionProblems.length > 0 ? `${tool.name} input cannot be rendered: ${questionProblems.join(" ")}` : formatZodValidationError(tool.name, parsedInput.error);
391881
+ const normalizedQuestionInput = tool.name === ASK_USER_QUESTION_TOOL_NAME ? normalizeAskUserQuestionInput(input) : undefined;
391882
+ const questionProblems = normalizedQuestionInput === undefined ? [] : describeQuestionPayloadProblems(normalizedQuestionInput);
391883
+ let errorContent = questionProblems.length > 0 ? `${tool.name} input cannot be rendered: ${questionProblems.join(" ")} ${describeQuestionPayloadShape(normalizedQuestionInput)}`.trim() : formatZodValidationError(tool.name, parsedInput.error);
391857
391884
  const schemaHint = buildSchemaNotSentHint(tool, toolUseContext.messages, toolUseContext.options.tools);
391858
391885
  if (schemaHint) {
391859
391886
  logEvent("tengu_deferred_tool_schema_not_sent", {
@@ -398202,6 +398229,10 @@ var init_sessionMemoryCompact = __esm(() => {
398202
398229
  });
398203
398230
 
398204
398231
  // src/services/compact/autoCompact.ts
398232
+ function computeEffectiveContextWindowSize(contextWindow, maxOutputTokens) {
398233
+ const reservedTokensForSummary = Math.min(maxOutputTokens, MAX_OUTPUT_TOKENS_FOR_SUMMARY, Math.floor(contextWindow * MAX_SUMMARY_RESERVE_SHARE));
398234
+ return Math.max(contextWindow - reservedTokensForSummary, 1);
398235
+ }
398205
398236
  function getEffectiveContextWindowSize(model) {
398206
398237
  let contextWindow = getContextWindowForModel(model, getSdkBetas());
398207
398238
  const autoCompactWindow = process.env.UR_CODE_AUTO_COMPACT_WINDOW;
@@ -398211,8 +398242,7 @@ function getEffectiveContextWindowSize(model) {
398211
398242
  contextWindow = Math.min(contextWindow, parsed);
398212
398243
  }
398213
398244
  }
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);
398245
+ return computeEffectiveContextWindowSize(contextWindow, getMaxOutputTokensForModel(model));
398216
398246
  }
398217
398247
  function getAutoCompactThreshold(model) {
398218
398248
  const effectiveContextWindow = getEffectiveContextWindowSize(model);
@@ -419917,7 +419947,7 @@ function Feedback({
419917
419947
  platform: env2.platform,
419918
419948
  gitRepo: envInfo.isGit,
419919
419949
  terminal: env2.terminal,
419920
- version: "1.78.1",
419950
+ version: "1.78.3",
419921
419951
  transcript: normalizeMessagesForAPI(messages),
419922
419952
  errors: sanitizedErrors,
419923
419953
  lastApiRequest: getLastAPIRequest(),
@@ -420109,7 +420139,7 @@ function Feedback({
420109
420139
  ", ",
420110
420140
  env2.terminal,
420111
420141
  ", v",
420112
- "1.78.1"
420142
+ "1.78.3"
420113
420143
  ]
420114
420144
  }, undefined, true, undefined, this)
420115
420145
  ]
@@ -420215,7 +420245,7 @@ ${sanitizedDescription}
420215
420245
  ` + `**Environment Info**
420216
420246
  ` + `- Platform: ${env2.platform}
420217
420247
  ` + `- Terminal: ${env2.terminal}
420218
- ` + `- Version: ${"1.78.1"}
420248
+ ` + `- Version: ${"1.78.3"}
420219
420249
  ` + `- Feedback ID: ${feedbackId}
420220
420250
  ` + `
420221
420251
  **Errors**
@@ -423325,7 +423355,7 @@ function buildPrimarySection() {
423325
423355
  }, undefined, false, undefined, this);
423326
423356
  return [{
423327
423357
  label: "Version",
423328
- value: "1.78.1"
423358
+ value: "1.78.3"
423329
423359
  }, {
423330
423360
  label: "Session name",
423331
423361
  value: nameValue
@@ -426707,7 +426737,7 @@ function Config({
426707
426737
  }
426708
426738
  }, undefined, false, undefined, this)
426709
426739
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
426710
- currentVersion: "1.78.1",
426740
+ currentVersion: "1.78.3",
426711
426741
  onChoice: (choice) => {
426712
426742
  setShowSubmenu(null);
426713
426743
  setTabsHidden(false);
@@ -426719,7 +426749,7 @@ function Config({
426719
426749
  autoUpdatesChannel: "stable"
426720
426750
  };
426721
426751
  if (choice === "stay") {
426722
- newSettings.minimumVersion = "1.78.1";
426752
+ newSettings.minimumVersion = "1.78.3";
426723
426753
  }
426724
426754
  updateSettingsForSource("userSettings", newSettings);
426725
426755
  setSettingsData((prev_27) => ({
@@ -434783,7 +434813,7 @@ function HelpV2(t0) {
434783
434813
  let t6;
434784
434814
  if ($2[31] !== tabs) {
434785
434815
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
434786
- title: `UR v${"1.78.1"}`,
434816
+ title: `UR v${"1.78.3"}`,
434787
434817
  color: "professionalBlue",
434788
434818
  defaultTab: "general",
434789
434819
  children: tabs
@@ -435716,7 +435746,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
435716
435746
  async function handleInitialize(options2) {
435717
435747
  return {
435718
435748
  name: "UR",
435719
- version: "1.78.1",
435749
+ version: "1.78.3",
435720
435750
  protocolVersion: "0.1.0",
435721
435751
  workspaceRoot: options2.cwd,
435722
435752
  capabilities: {
@@ -452824,7 +452854,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
452824
452854
  return [];
452825
452855
  }
452826
452856
  }
452827
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.1") {
452857
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.3") {
452828
452858
  if (process.env.USER_TYPE === "ant") {
452829
452859
  const changelog = "";
452830
452860
  if (changelog) {
@@ -452851,7 +452881,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.1")
452851
452881
  releaseNotes
452852
452882
  };
452853
452883
  }
452854
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.78.1") {
452884
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.78.3") {
452855
452885
  if (process.env.USER_TYPE === "ant") {
452856
452886
  const changelog = "";
452857
452887
  if (changelog) {
@@ -455717,7 +455747,7 @@ function getRecentActivitySync() {
455717
455747
  return cachedActivity;
455718
455748
  }
455719
455749
  function getLogoDisplayData() {
455720
- const version2 = process.env.DEMO_VERSION ?? "1.78.1";
455750
+ const version2 = process.env.DEMO_VERSION ?? "1.78.3";
455721
455751
  const serverUrl = getDirectConnectServerUrl();
455722
455752
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
455723
455753
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -456584,7 +456614,7 @@ function LogoV2() {
456584
456614
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
456585
456615
  t2 = () => {
456586
456616
  const currentConfig2 = getGlobalConfig();
456587
- if (currentConfig2.lastReleaseNotesSeen === "1.78.1") {
456617
+ if (currentConfig2.lastReleaseNotesSeen === "1.78.3") {
456588
456618
  return;
456589
456619
  }
456590
456620
  saveGlobalConfig(_temp325);
@@ -457269,12 +457299,12 @@ function LogoV2() {
457269
457299
  return t41;
457270
457300
  }
457271
457301
  function _temp325(current) {
457272
- if (current.lastReleaseNotesSeen === "1.78.1") {
457302
+ if (current.lastReleaseNotesSeen === "1.78.3") {
457273
457303
  return current;
457274
457304
  }
457275
457305
  return {
457276
457306
  ...current,
457277
- lastReleaseNotesSeen: "1.78.1"
457307
+ lastReleaseNotesSeen: "1.78.3"
457278
457308
  };
457279
457309
  }
457280
457310
  function _temp241(s_0) {
@@ -474088,7 +474118,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
474088
474118
  if (spec.name !== specName) {
474089
474119
  throw new Error("Agentic CI workflow spec name does not match");
474090
474120
  }
474091
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.78.1" : "1.78.1");
474121
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.78.3" : "1.78.3");
474092
474122
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
474093
474123
  throw new Error("invalid ur-agent package version");
474094
474124
  }
@@ -475081,7 +475111,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
475081
475111
  path: ".github/workflows/ur.yml",
475082
475112
  root: "project",
475083
475113
  content: compileAgenticCiWorkflow("default", {
475084
- packageVersion: typeof MACRO !== "undefined" ? "1.78.1" : "1.78.1"
475114
+ packageVersion: typeof MACRO !== "undefined" ? "1.78.3" : "1.78.3"
475085
475115
  })
475086
475116
  },
475087
475117
  {
@@ -475144,7 +475174,7 @@ function value(tokens, flag) {
475144
475174
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
475145
475175
  }
475146
475176
  function cliVersion() {
475147
- return typeof MACRO !== "undefined" ? "1.78.1" : "1.78.1";
475177
+ return typeof MACRO !== "undefined" ? "1.78.3" : "1.78.3";
475148
475178
  }
475149
475179
  function workflowPath(cwd2) {
475150
475180
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -481000,7 +481030,7 @@ function createAcpStdioApp(deps) {
481000
481030
  }
481001
481031
  },
481002
481032
  authMethods: [],
481003
- agentInfo: { name: "UR-Nexus", version: "1.78.1" }
481033
+ agentInfo: { name: "UR-Nexus", version: "1.78.3" }
481004
481034
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
481005
481035
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
481006
481036
  await runtime2.announce({
@@ -481097,7 +481127,7 @@ function createAcpStdioAgent(deps) {
481097
481127
  }
481098
481128
  },
481099
481129
  authMethods: [],
481100
- agentInfo: { name: "UR-Nexus", version: "1.78.1" }
481130
+ agentInfo: { name: "UR-Nexus", version: "1.78.3" }
481101
481131
  });
481102
481132
  return;
481103
481133
  case "authenticate":
@@ -690557,7 +690587,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
690557
690587
  smapsRollup,
690558
690588
  platform: process.platform,
690559
690589
  nodeVersion: process.version,
690560
- ccVersion: "1.78.1"
690590
+ ccVersion: "1.78.3"
690561
690591
  };
690562
690592
  }
690563
690593
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -691137,7 +691167,7 @@ var init_bridge_kick = __esm(() => {
691137
691167
  var call154 = async () => {
691138
691168
  return {
691139
691169
  type: "text",
691140
- value: "1.78.1"
691170
+ value: "1.78.3"
691141
691171
  };
691142
691172
  }, version2, version_default;
691143
691173
  var init_version = __esm(() => {
@@ -702404,7 +702434,7 @@ function generateHtmlReport(data, insights) {
702404
702434
  </html>`;
702405
702435
  }
702406
702436
  function buildExportData(data, insights, facets, remoteStats) {
702407
- const version3 = typeof MACRO !== "undefined" ? "1.78.1" : "unknown";
702437
+ const version3 = typeof MACRO !== "undefined" ? "1.78.3" : "unknown";
702408
702438
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
702409
702439
  const facets_summary = {
702410
702440
  total: facets.size,
@@ -706718,7 +706748,7 @@ var init_sessionStorage = __esm(() => {
706718
706748
  init_settings2();
706719
706749
  init_slowOperations();
706720
706750
  init_uuid();
706721
- VERSION7 = typeof MACRO !== "undefined" ? "1.78.1" : "unknown";
706751
+ VERSION7 = typeof MACRO !== "undefined" ? "1.78.3" : "unknown";
706722
706752
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
706723
706753
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
706724
706754
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -707933,7 +707963,7 @@ var init_filesystem = __esm(() => {
707933
707963
  });
707934
707964
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
707935
707965
  const nonce = randomBytes20(16).toString("hex");
707936
- return join232(getURTempDir(), "bundled-skills", "1.78.1", nonce);
707966
+ return join232(getURTempDir(), "bundled-skills", "1.78.3", nonce);
707937
707967
  });
707938
707968
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
707939
707969
  });
@@ -714290,7 +714320,7 @@ function computeFingerprint(messageText2, version3) {
714290
714320
  }
714291
714321
  function computeFingerprintFromMessages(messages) {
714292
714322
  const firstMessageText = extractFirstMessageText(messages);
714293
- return computeFingerprint(firstMessageText, "1.78.1");
714323
+ return computeFingerprint(firstMessageText, "1.78.3");
714294
714324
  }
714295
714325
  var FINGERPRINT_SALT = "59cf53e54c78";
714296
714326
  var init_fingerprint = () => {};
@@ -716212,7 +716242,7 @@ async function sideQuery(opts) {
716212
716242
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
716213
716243
  }
716214
716244
  const messageText2 = extractFirstUserMessageText(messages);
716215
- const fingerprint2 = computeFingerprint(messageText2, "1.78.1");
716245
+ const fingerprint2 = computeFingerprint(messageText2, "1.78.3");
716216
716246
  const attributionHeader = getAttributionHeader(fingerprint2);
716217
716247
  const systemBlocks = [
716218
716248
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -721049,7 +721079,7 @@ function buildSystemInitMessage(inputs) {
721049
721079
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
721050
721080
  apiKeySource: getURHQApiKeyWithSource().source,
721051
721081
  betas: getSdkBetas(),
721052
- ur_version: "1.78.1",
721082
+ ur_version: "1.78.3",
721053
721083
  output_style: outputStyle2,
721054
721084
  agents: inputs.agents.map((agent2) => agent2.agentType),
721055
721085
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -734921,7 +734951,7 @@ var init_useVoiceEnabled = __esm(() => {
734921
734951
  function getSemverPart(version3) {
734922
734952
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
734923
734953
  }
734924
- function useUpdateNotification(updatedVersion, initialVersion = "1.78.1") {
734954
+ function useUpdateNotification(updatedVersion, initialVersion = "1.78.3") {
734925
734955
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react223.useState(() => getSemverPart(initialVersion));
734926
734956
  if (!updatedVersion) {
734927
734957
  return null;
@@ -734970,7 +735000,7 @@ function AutoUpdater({
734970
735000
  return;
734971
735001
  }
734972
735002
  if (false) {}
734973
- const currentVersion = "1.78.1";
735003
+ const currentVersion = "1.78.3";
734974
735004
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
734975
735005
  let latestVersion = await getLatestVersion(channel);
734976
735006
  const isDisabled = isAutoUpdaterDisabled();
@@ -735199,12 +735229,12 @@ function NativeAutoUpdater({
735199
735229
  logEvent("tengu_native_auto_updater_start", {});
735200
735230
  try {
735201
735231
  const maxVersion = await getMaxVersion();
735202
- if (maxVersion && gt("1.78.1", maxVersion)) {
735232
+ if (maxVersion && gt("1.78.3", maxVersion)) {
735203
735233
  const msg = await getMaxVersionMessage();
735204
735234
  setMaxVersionIssue(msg ?? "affects your version");
735205
735235
  }
735206
735236
  const result = await installLatest(channel);
735207
- const currentVersion = "1.78.1";
735237
+ const currentVersion = "1.78.3";
735208
735238
  const latencyMs = Date.now() - startTime;
735209
735239
  if (result.lockFailed) {
735210
735240
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -735341,17 +735371,17 @@ function PackageManagerAutoUpdater(t0) {
735341
735371
  const maxVersion = await getMaxVersion();
735342
735372
  if (maxVersion && latest && gt(latest, maxVersion)) {
735343
735373
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
735344
- if (gte("1.78.1", maxVersion)) {
735345
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.78.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
735374
+ if (gte("1.78.3", maxVersion)) {
735375
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.78.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
735346
735376
  setUpdateAvailable(false);
735347
735377
  return;
735348
735378
  }
735349
735379
  latest = maxVersion;
735350
735380
  }
735351
- const hasUpdate = latest && !gte("1.78.1", latest) && !shouldSkipVersion(latest);
735381
+ const hasUpdate = latest && !gte("1.78.3", latest) && !shouldSkipVersion(latest);
735352
735382
  setUpdateAvailable(!!hasUpdate);
735353
735383
  if (hasUpdate) {
735354
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.78.1"} -> ${latest}`);
735384
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.78.3"} -> ${latest}`);
735355
735385
  }
735356
735386
  };
735357
735387
  $2[0] = t1;
@@ -735385,7 +735415,7 @@ function PackageManagerAutoUpdater(t0) {
735385
735415
  wrap: "truncate",
735386
735416
  children: [
735387
735417
  "currentVersion: ",
735388
- "1.78.1"
735418
+ "1.78.3"
735389
735419
  ]
735390
735420
  }, undefined, true, undefined, this);
735391
735421
  $2[3] = verbose;
@@ -746185,7 +746215,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
746185
746215
  project_dir: getOriginalCwd(),
746186
746216
  added_dirs: addedDirs
746187
746217
  },
746188
- version: "1.78.1",
746218
+ version: "1.78.3",
746189
746219
  output_style: {
746190
746220
  name: outputStyleName
746191
746221
  },
@@ -746320,7 +746350,7 @@ function StatusLineInner({
746320
746350
  const attention = customStatusError ?? taskAttention;
746321
746351
  const terminalSize = React132.useContext(TerminalSizeContext);
746322
746352
  const defaultStatusLineText = buildDefaultStatusBar({
746323
- version: "1.78.1",
746353
+ version: "1.78.3",
746324
746354
  providerLabel: providerRuntime.providerLabel,
746325
746355
  authMode: providerRuntime.authLabel,
746326
746356
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -758605,7 +758635,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
758605
758635
  } catch {}
758606
758636
  const data = {
758607
758637
  trigger: trigger2,
758608
- version: "1.78.1",
758638
+ version: "1.78.3",
758609
758639
  platform: process.platform,
758610
758640
  transcript,
758611
758641
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -770979,7 +771009,7 @@ function WelcomeV2() {
770979
771009
  dimColor: true,
770980
771010
  children: [
770981
771011
  "v",
770982
- "1.78.1"
771012
+ "1.78.3"
770983
771013
  ]
770984
771014
  }, undefined, true, undefined, this)
770985
771015
  ]
@@ -772239,7 +772269,7 @@ function completeOnboarding() {
772239
772269
  saveGlobalConfig((current) => ({
772240
772270
  ...current,
772241
772271
  hasCompletedOnboarding: true,
772242
- lastOnboardingVersion: "1.78.1"
772272
+ lastOnboardingVersion: "1.78.3"
772243
772273
  }));
772244
772274
  }
772245
772275
  function showDialog(root2, renderer) {
@@ -777283,7 +777313,7 @@ function appendToLog(path24, message) {
777283
777313
  cwd: getFsImplementation().cwd(),
777284
777314
  userType: process.env.USER_TYPE,
777285
777315
  sessionId: getSessionId(),
777286
- version: "1.78.1"
777316
+ version: "1.78.3"
777287
777317
  };
777288
777318
  getLogWriter(path24).write(messageWithTimestamp);
777289
777319
  }
@@ -781442,8 +781472,8 @@ async function getEnvLessBridgeConfig() {
781442
781472
  }
781443
781473
  async function checkEnvLessBridgeMinVersion() {
781444
781474
  const cfg = await getEnvLessBridgeConfig();
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.
781475
+ if (cfg.min_version && lt("1.78.3", cfg.min_version)) {
781476
+ return `Your version of UR (${"1.78.3"}) is too old for Remote Control.
781447
781477
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
781448
781478
  }
781449
781479
  return null;
@@ -781917,7 +781947,7 @@ async function initBridgeCore(params) {
781917
781947
  const rawApi = createBridgeApiClient({
781918
781948
  baseUrl,
781919
781949
  getAccessToken,
781920
- runnerVersion: "1.78.1",
781950
+ runnerVersion: "1.78.3",
781921
781951
  onDebug: logForDebugging,
781922
781952
  onAuth401,
781923
781953
  getTrustedDeviceToken
@@ -791390,7 +791420,7 @@ function getAgUiCapabilities() {
791390
791420
  name: "UR-Nexus",
791391
791421
  type: "ur-nexus",
791392
791422
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
791393
- version: "1.78.1",
791423
+ version: "1.78.3",
791394
791424
  provider: "UR",
791395
791425
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
791396
791426
  },
@@ -792530,7 +792560,7 @@ function createMCPServer(cwd4, debug2, verbose) {
792530
792560
  };
792531
792561
  const server2 = new Server({
792532
792562
  name: "ur-nexus",
792533
- version: "1.78.1"
792563
+ version: "1.78.3"
792534
792564
  }, {
792535
792565
  capabilities: {
792536
792566
  tools: {}
@@ -793688,7 +793718,7 @@ function thrownResponse(error40) {
793688
793718
  }
793689
793719
  async function createUrMcp2026Runtime(options4) {
793690
793720
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
793691
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.78.1" }, { capabilities: {} });
793721
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.78.3" }, { capabilities: {} });
793692
793722
  const [clientTransport, serverTransport] = createLinkedTransportPair();
793693
793723
  try {
793694
793724
  await server2.connect(serverTransport);
@@ -793699,7 +793729,7 @@ async function createUrMcp2026Runtime(options4) {
793699
793729
  }
793700
793730
  const runtime2 = new Mcp2026Runtime({
793701
793731
  cwd: options4.cwd,
793702
- version: "1.78.1",
793732
+ version: "1.78.3",
793703
793733
  backend: {
793704
793734
  listTools: async () => {
793705
793735
  const listed = await client2.listTools();
@@ -795840,7 +795870,7 @@ async function update() {
795840
795870
  logEvent("tengu_update_check", {});
795841
795871
  const diagnostic2 = await getDoctorDiagnostic();
795842
795872
  const result = await checkUpgradeStatus({
795843
- currentVersion: "1.78.1",
795873
+ currentVersion: "1.78.3",
795844
795874
  packageName: UR_AGENT_PACKAGE_NAME,
795845
795875
  installationType: diagnostic2.installationType,
795846
795876
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -797156,7 +797186,7 @@ ${customInstructions}` : customInstructions;
797156
797186
  }
797157
797187
  }
797158
797188
  logForDiagnosticsNoPII("info", "started", {
797159
- version: "1.78.1",
797189
+ version: "1.78.3",
797160
797190
  is_native_binary: isInBundledMode()
797161
797191
  });
797162
797192
  registerCleanup(async () => {
@@ -797942,7 +797972,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
797942
797972
  pendingHookMessages
797943
797973
  }, renderAndRun);
797944
797974
  }
797945
- }).version("1.78.1 (UR-Nexus)", "-v, --version", "Output the version number");
797975
+ }).version("1.78.3 (UR-Nexus)", "-v, --version", "Output the version number");
797946
797976
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
797947
797977
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
797948
797978
  if (canUserConfigureAdvisor()) {
@@ -798994,7 +799024,7 @@ if (false) {}
798994
799024
  async function main2() {
798995
799025
  const args = process.argv.slice(2);
798996
799026
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
798997
- console.log(`${"1.78.1"} (UR-Nexus)`);
799027
+ console.log(`${"1.78.3"} (UR-Nexus)`);
798998
799028
  return;
798999
799029
  }
799000
799030
  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.1 (UR-Nexus)"
22
+ # expected for this release: "1.78.3 (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.1</p>
48
+ <p class="eyebrow">Version 1.78.3</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.1"
10
+ version = "1.78.3"
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.1",
5
+ "version": "1.78.3",
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.1",
3
+ "version": "1.78.3",
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",