ur-agent 1.77.7 → 1.78.0

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,43 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.77.9
4
+
5
+ - Leaked deliberation is collapsed out of the visible transcript. Models
6
+ without a separate thinking channel emit their reasoning as ordinary
7
+ assistant text — paragraph after paragraph of "Wait", "Maybe", "Another
8
+ possibility", each revising the last, before any conclusion. Two rounds of
9
+ prompt guidance did not hold, so this is handled deterministically instead: a
10
+ leading run of deliberation is replaced by a one-line note saying how many
11
+ paragraphs were hidden.
12
+ - Display only. Nothing is deleted and nothing changes on the wire — the
13
+ transcript, the session file, and the next request all carry the text
14
+ unchanged, and `--verbose` shows everything. Synthesizing a `thinking` block
15
+ would have been the natural home for it, but an unsigned one causes an API
16
+ 400 on the following turn.
17
+ - The collapse is deliberately conservative: it needs several deliberation
18
+ paragraphs, tolerates one bridging sentence between them but not two, always
19
+ stops before a code fence, list, heading, or quote, never hides the
20
+ conclusion that follows, and leaves a turn that is *entirely* deliberation
21
+ untouched rather than rendering it blank.
22
+
23
+ ## 1.77.8
24
+
25
+ - Auto-compact works again on every provider except the first-party one, where
26
+ it was the only place it had ever worked. `getModelCapability` is gated to a
27
+ first-party runtime, so every third-party model — OpenRouter, OpenAI-
28
+ compatible, LM Studio, vLLM, llama.cpp, and the API providers — fell through
29
+ to a flat 200,000-token window regardless of its real size. A 128K or 32K
30
+ model therefore never reached the compaction threshold before the provider
31
+ rejected the request, which is the "Context limit reached · /compact or
32
+ /clear to continue" that replaced the automatic compaction; a 1M model
33
+ compacted long before it needed to.
34
+ - The window each provider reported during model discovery is now used.
35
+ Discovery already captured it and the model picker already displayed it —
36
+ only the compaction math never read it. A model the provider reported no
37
+ window for, or reported a nonsense one for, still falls back to the default
38
+ rather than trusting the value. The lookup reads the discovery cache only, so
39
+ it adds no request to the per-turn path.
40
+
3
41
  ## 1.77.7
4
42
 
5
43
  - A missing identifier now names what exists, instead of inviting another
package/dist/cli.js CHANGED
@@ -53738,6 +53738,7 @@ __export(exports_providerRegistry, {
53738
53738
  getProviderRuntimeBackend: () => getProviderRuntimeBackend,
53739
53739
  getProviderFamily: () => getProviderFamily,
53740
53740
  getProviderDefinition: () => getProviderDefinition,
53741
+ getProviderContextLengthForModel: () => getProviderContextLengthForModel,
53741
53742
  getProviderAccessTypeLabel: () => getProviderAccessTypeLabel,
53742
53743
  getDefaultModelForProvider: () => getDefaultModelForProvider,
53743
53744
  getConnectionStatusFromDoctorResult: () => getConnectionStatusFromDoctorResult,
@@ -54853,6 +54854,21 @@ function providerModelCacheKey(provider, settings = getInitialSettings()) {
54853
54854
  function getCachedProviderModels(provider, settings = getInitialSettings()) {
54854
54855
  return cachedModelsByProvider.get(providerModelCacheKey(provider, settings)) ?? [];
54855
54856
  }
54857
+ function getProviderContextLengthForModel(model, provider = resolveProviderId(getInitialSettings().provider?.active), settings = getInitialSettings()) {
54858
+ const providerId = resolveProviderId(provider);
54859
+ if (!providerId)
54860
+ return;
54861
+ const wanted = model.trim().toLowerCase();
54862
+ if (!wanted)
54863
+ return;
54864
+ const known = [
54865
+ ...getCachedProviderModels(providerId, settings),
54866
+ ...PROVIDER_MODELS[providerId] ?? []
54867
+ ];
54868
+ const match = known.find((entry) => entry.id.toLowerCase() === wanted) ?? known.find((entry) => wanted.includes(entry.id.toLowerCase()));
54869
+ const length = match?.contextLength;
54870
+ return typeof length === "number" && Number.isFinite(length) && length > 0 ? Math.floor(length) : undefined;
54871
+ }
54856
54872
  function cacheProviderModelsForProvider(providerId, models, settings = getInitialSettings()) {
54857
54873
  const provider = resolveProviderId(providerId);
54858
54874
  if (!provider) {
@@ -95201,6 +95217,10 @@ function getContextWindowForModel(model, betas, apiProvider = getAPIProvider())
95201
95217
  if (has1mContext(model)) {
95202
95218
  return 1e6;
95203
95219
  }
95220
+ const providerContextLength = getProviderContextLengthForModel(model);
95221
+ if (providerContextLength !== undefined) {
95222
+ return providerContextLength;
95223
+ }
95204
95224
  const cap = getModelCapability(model);
95205
95225
  if (cap?.max_input_tokens && cap.max_input_tokens >= 1e5) {
95206
95226
  if (cap.max_input_tokens > MODEL_CONTEXT_WINDOW_DEFAULT && is1mContextDisabled()) {
@@ -95267,6 +95287,7 @@ function getMaxThinkingTokensForModel(model) {
95267
95287
  var MODEL_CONTEXT_WINDOW_DEFAULT = 200000, COMPACT_MAX_OUTPUT_TOKENS = 20000, MAX_OUTPUT_TOKENS_DEFAULT = 32000, MAX_OUTPUT_TOKENS_UPPER_LIMIT = 64000, CAPPED_DEFAULT_MAX_TOKENS = 8000, ESCALATED_MAX_TOKENS = 64000;
95268
95288
  var init_context = __esm(() => {
95269
95289
  init_betas();
95290
+ init_providerRegistry();
95270
95291
  init_envUtils();
95271
95292
  init_antModels();
95272
95293
  init_modelCapabilities();
@@ -107552,7 +107573,7 @@ var init_auth = __esm(() => {
107552
107573
 
107553
107574
  // src/utils/userAgent.ts
107554
107575
  function getURCodeUserAgent() {
107555
- return `ur/${"1.77.7"}`;
107576
+ return `ur/${"1.77.9"}`;
107556
107577
  }
107557
107578
 
107558
107579
  // src/utils/workloadContext.ts
@@ -107574,7 +107595,7 @@ function getUserAgent() {
107574
107595
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
107575
107596
  const workload = getWorkload();
107576
107597
  const workloadSuffix = workload ? `, workload/${workload}` : "";
107577
- return `ur-cli/${"1.77.7"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107598
+ return `ur-cli/${"1.77.9"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107578
107599
  }
107579
107600
  function getMCPUserAgent() {
107580
107601
  const parts = [];
@@ -107588,7 +107609,7 @@ function getMCPUserAgent() {
107588
107609
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
107589
107610
  }
107590
107611
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
107591
- return `ur/${"1.77.7"}${suffix}`;
107612
+ return `ur/${"1.77.9"}${suffix}`;
107592
107613
  }
107593
107614
  function getWebFetchUserAgent() {
107594
107615
  return `UR-User (${getURCodeUserAgent()})`;
@@ -107726,7 +107747,7 @@ var init_user = __esm(() => {
107726
107747
  deviceId,
107727
107748
  sessionId: getSessionId(),
107728
107749
  email: getEmail(),
107729
- appVersion: "1.77.7",
107750
+ appVersion: "1.77.9",
107730
107751
  platform: getHostPlatformForAnalytics(),
107731
107752
  organizationUuid,
107732
107753
  accountUuid,
@@ -115613,7 +115634,7 @@ var init_metadata = __esm(() => {
115613
115634
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
115614
115635
  WHITESPACE_REGEX = /\s+/;
115615
115636
  getVersionBase = memoize_default(() => {
115616
- const match = "1.77.7".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115637
+ const match = "1.77.9".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115617
115638
  return match ? match[0] : undefined;
115618
115639
  });
115619
115640
  buildEnvContext = memoize_default(async () => {
@@ -115653,7 +115674,7 @@ var init_metadata = __esm(() => {
115653
115674
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
115654
115675
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
115655
115676
  isURAiAuth: isURAISubscriber(),
115656
- version: "1.77.7",
115677
+ version: "1.77.9",
115657
115678
  versionBase: getVersionBase(),
115658
115679
  buildTime: "",
115659
115680
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -116323,7 +116344,7 @@ function initialize1PEventLogging() {
116323
116344
  const platform2 = getPlatform();
116324
116345
  const attributes = {
116325
116346
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
116326
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.77.7"
116347
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.77.9"
116327
116348
  };
116328
116349
  if (platform2 === "wsl") {
116329
116350
  const wslVersion = getWslVersion();
@@ -116351,7 +116372,7 @@ function initialize1PEventLogging() {
116351
116372
  })
116352
116373
  ]
116353
116374
  });
116354
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.77.7");
116375
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.77.9");
116355
116376
  }
116356
116377
  async function reinitialize1PEventLoggingIfConfigChanged() {
116357
116378
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -126133,7 +126154,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
126133
126154
  function formatA2AAgentCard(options = {}, pretty = true) {
126134
126155
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
126135
126156
  }
126136
- var urVersion = "1.77.7", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126157
+ var urVersion = "1.77.9", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126137
126158
  var init_trends = __esm(() => {
126138
126159
  init_a2aCardSignature();
126139
126160
  coverage = [
@@ -128936,7 +128957,7 @@ function getAttributionHeader(fingerprint) {
128936
128957
  if (!isAttributionHeaderEnabled()) {
128937
128958
  return "";
128938
128959
  }
128939
- const version2 = `${"1.77.7"}.${fingerprint}`;
128960
+ const version2 = `${"1.77.9"}.${fingerprint}`;
128940
128961
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
128941
128962
  const cch = "";
128942
128963
  const workload = getWorkload();
@@ -156940,7 +156961,7 @@ var init_projectSafety = __esm(() => {
156940
156961
  function getInstruments() {
156941
156962
  if (instruments)
156942
156963
  return instruments;
156943
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.77.7");
156964
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.77.9");
156944
156965
  instruments = {
156945
156966
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
156946
156967
  description: "GenAI operation duration.",
@@ -157038,7 +157059,7 @@ function genAiAgentAttributes() {
157038
157059
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
157039
157060
  "gen_ai.provider.name": "ur",
157040
157061
  "gen_ai.agent.name": "UR-Nexus",
157041
- "gen_ai.agent.version": "1.77.7"
157062
+ "gen_ai.agent.version": "1.77.9"
157042
157063
  };
157043
157064
  }
157044
157065
  function genAiWorkflowAttributes(workflowName) {
@@ -157054,7 +157075,7 @@ function genAiWorkflowAttributes(workflowName) {
157054
157075
  function startGenAiWorkflowSpan(workflowName) {
157055
157076
  const attributes = genAiWorkflowAttributes(workflowName);
157056
157077
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
157057
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.7").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157078
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.9").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157058
157079
  }
157059
157080
  function endGenAiWorkflowSpan(span, options2 = {}) {
157060
157081
  try {
@@ -157092,7 +157113,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
157092
157113
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
157093
157114
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
157094
157115
  }
157095
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.7").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157116
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.9").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157096
157117
  }
157097
157118
  function endGenAiMemorySpan(span, options2 = {}) {
157098
157119
  try {
@@ -250740,7 +250761,7 @@ function getTelemetryAttributes() {
250740
250761
  attributes["session.id"] = sessionId;
250741
250762
  }
250742
250763
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
250743
- attributes["app.version"] = "1.77.7";
250764
+ attributes["app.version"] = "1.77.9";
250744
250765
  }
250745
250766
  const oauthAccount = getOauthAccountInfo();
250746
250767
  if (oauthAccount) {
@@ -297247,7 +297268,7 @@ function getInstallationEnv() {
297247
297268
  return;
297248
297269
  }
297249
297270
  function getURCodeVersion() {
297250
- return "1.77.7";
297271
+ return "1.77.9";
297251
297272
  }
297252
297273
  async function getInstalledVSCodeExtensionVersion(command) {
297253
297274
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -304578,7 +304599,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
304578
304599
  const client2 = new Client({
304579
304600
  name: "ur",
304580
304601
  title: "UR",
304581
- version: "1.77.7",
304602
+ version: "1.77.9",
304582
304603
  description: "UR-Nexus autonomous engineering workflow engine",
304583
304604
  websiteUrl: PRODUCT_URL
304584
304605
  }, {
@@ -304938,7 +304959,7 @@ var init_client5 = __esm(() => {
304938
304959
  const client2 = new Client({
304939
304960
  name: "ur",
304940
304961
  title: "UR",
304941
- version: "1.77.7",
304962
+ version: "1.77.9",
304942
304963
  description: "UR-Nexus autonomous engineering workflow engine",
304943
304964
  websiteUrl: PRODUCT_URL
304944
304965
  }, {
@@ -308481,6 +308502,62 @@ var init_AssistantRedactedThinkingMessage = __esm(() => {
308481
308502
  jsx_dev_runtime56 = __toESM(require_jsx_dev_runtime(), 1);
308482
308503
  });
308483
308504
 
308505
+ // src/utils/deliberationText.ts
308506
+ function isStructure(paragraph2) {
308507
+ return /^(```|#{1,6}\s|[-*+]\s|\d+\.\s|>\s|\|)/.test(paragraph2.trim());
308508
+ }
308509
+ function isDeliberation(paragraph2) {
308510
+ const trimmed = paragraph2.trim();
308511
+ if (!trimmed)
308512
+ return false;
308513
+ if (isStructure(trimmed))
308514
+ return false;
308515
+ return DELIBERATION_OPENERS.test(trimmed) || SELF_QUESTION.test(trimmed);
308516
+ }
308517
+ function splitLeadingDeliberation(text) {
308518
+ const paragraphs = text.split(/\n{2,}/);
308519
+ if (paragraphs.length < MIN_RUN) {
308520
+ return { deliberation: "", visible: text };
308521
+ }
308522
+ let lastDeliberation = -1;
308523
+ let deliberationCount = 0;
308524
+ let gap = 0;
308525
+ for (let i3 = 0;i3 < paragraphs.length; i3++) {
308526
+ const paragraph2 = paragraphs[i3];
308527
+ if (isStructure(paragraph2))
308528
+ break;
308529
+ if (isDeliberation(paragraph2)) {
308530
+ lastDeliberation = i3;
308531
+ deliberationCount++;
308532
+ gap = 0;
308533
+ continue;
308534
+ }
308535
+ gap++;
308536
+ if (gap > 1)
308537
+ break;
308538
+ }
308539
+ if (deliberationCount < MIN_RUN || lastDeliberation < 0 || lastDeliberation >= paragraphs.length - 1) {
308540
+ return { deliberation: "", visible: text };
308541
+ }
308542
+ return {
308543
+ deliberation: paragraphs.slice(0, lastDeliberation + 1).join(`
308544
+
308545
+ `),
308546
+ visible: paragraphs.slice(lastDeliberation + 1).join(`
308547
+
308548
+ `)
308549
+ };
308550
+ }
308551
+ function describeCollapsedDeliberation(deliberation) {
308552
+ const count4 = deliberation.split(/\n{2,}/).filter((part) => part.trim()).length;
308553
+ return `*(${count4} paragraphs of reasoning collapsed)*`;
308554
+ }
308555
+ var DELIBERATION_OPENERS, SELF_QUESTION, MIN_RUN = 3;
308556
+ var init_deliberationText = __esm(() => {
308557
+ DELIBERATION_OPENERS = /^(wait|hmm+|hold on|actually|maybe|perhaps|possibly|possibility|could it be|could be|might be|what if|what about|another (thought|possibility|angle|option|idea)|let me (think|reconsider|check|see|read|inspect|look)|let's (think|consider|reconsider|say|try|look)|i (wonder|suspect|think maybe|need to see|could)|but (wait|maybe|then|actually)|unless|alternatively|on second thought|or maybe|why would|so why|is it possible|that would|if so|hmm)\b/i;
308558
+ SELF_QUESTION = /^[^.!]{0,160}\?\s*$/;
308559
+ });
308560
+
308484
308561
  // src/utils/systemReminderFilter.ts
308485
308562
  function stripSystemReminders2(text) {
308486
308563
  if (!text)
@@ -317491,7 +317568,7 @@ async function createRuntime() {
317491
317568
  bootstrapTelemetry();
317492
317569
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
317493
317570
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
317494
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.77.7"
317571
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.77.9"
317495
317572
  }));
317496
317573
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
317497
317574
  resource,
@@ -317524,11 +317601,11 @@ async function createRuntime() {
317524
317601
  setMeterProvider(meterProvider);
317525
317602
  setLoggerProvider(loggerProvider);
317526
317603
  if (meterProvider) {
317527
- const meter = meterProvider.getMeter("ur-agent", "1.77.7");
317604
+ const meter = meterProvider.getMeter("ur-agent", "1.77.9");
317528
317605
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
317529
317606
  }
317530
317607
  if (loggerProvider) {
317531
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.77.7"));
317608
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.77.9"));
317532
317609
  }
317533
317610
  if (!cleanupRegistered2) {
317534
317611
  cleanupRegistered2 = true;
@@ -318190,9 +318267,9 @@ async function assertMinVersion() {
318190
318267
  if (false) {}
318191
318268
  try {
318192
318269
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
318193
- if (versionConfig.minVersion && lt("1.77.7", versionConfig.minVersion)) {
318270
+ if (versionConfig.minVersion && lt("1.77.9", versionConfig.minVersion)) {
318194
318271
  console.error(`
318195
- It looks like your version of UR (${"1.77.7"}) needs an update.
318272
+ It looks like your version of UR (${"1.77.9"}) needs an update.
318196
318273
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
318197
318274
 
318198
318275
  To update, please run:
@@ -318408,7 +318485,7 @@ async function installGlobalPackage(specificVersion) {
318408
318485
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
318409
318486
  logEvent("tengu_auto_updater_lock_contention", {
318410
318487
  pid: process.pid,
318411
- currentVersion: "1.77.7"
318488
+ currentVersion: "1.77.9"
318412
318489
  });
318413
318490
  return "in_progress";
318414
318491
  }
@@ -318417,7 +318494,7 @@ async function installGlobalPackage(specificVersion) {
318417
318494
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
318418
318495
  logError2(new Error("Windows NPM detected in WSL environment"));
318419
318496
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
318420
- currentVersion: "1.77.7"
318497
+ currentVersion: "1.77.9"
318421
318498
  });
318422
318499
  console.error(`
318423
318500
  Error: Windows NPM detected in WSL
@@ -318952,7 +319029,7 @@ function detectLinuxGlobPatternWarnings() {
318952
319029
  }
318953
319030
  async function getDoctorDiagnostic() {
318954
319031
  const installationType = await getCurrentInstallationType();
318955
- const version2 = typeof MACRO !== "undefined" ? "1.77.7" : "unknown";
319032
+ const version2 = typeof MACRO !== "undefined" ? "1.77.9" : "unknown";
318956
319033
  const installationPath = await getInstallationPath();
318957
319034
  const invokedBinary = getInvokedBinary();
318958
319035
  const multipleInstallations = await detectMultipleInstallations();
@@ -319887,8 +319964,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319887
319964
  const maxVersion = await getMaxVersion();
319888
319965
  if (maxVersion && gt(version2, maxVersion)) {
319889
319966
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
319890
- if (gte("1.77.7", maxVersion)) {
319891
- logForDebugging(`Native installer: current version ${"1.77.7"} is already at or above maxVersion ${maxVersion}, skipping update`);
319967
+ if (gte("1.77.9", maxVersion)) {
319968
+ logForDebugging(`Native installer: current version ${"1.77.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
319892
319969
  logEvent("tengu_native_update_skipped_max_version", {
319893
319970
  latency_ms: Date.now() - startTime,
319894
319971
  max_version: maxVersion,
@@ -319899,7 +319976,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319899
319976
  version2 = maxVersion;
319900
319977
  }
319901
319978
  }
319902
- if (!forceReinstall && version2 === "1.77.7" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319979
+ if (!forceReinstall && version2 === "1.77.9" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319903
319980
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
319904
319981
  logEvent("tengu_native_update_complete", {
319905
319982
  latency_ms: Date.now() - startTime,
@@ -330842,7 +330919,11 @@ function AssistantTextMessage(t0) {
330842
330919
  const {
330843
330920
  text: rawText
330844
330921
  } = t1;
330845
- const text = stripSystemReminders2(rawText);
330922
+ const strippedText = stripSystemReminders2(rawText);
330923
+ const split = verbose ? null : splitLeadingDeliberation(strippedText);
330924
+ const text = split && split.deliberation ? `${describeCollapsedDeliberation(split.deliberation)}
330925
+
330926
+ ${split.visible}` : strippedText;
330846
330927
  const isSelected = import_react65.useContext(MessageActionsSelectedContext);
330847
330928
  if (isEmptyMessageText(text)) {
330848
330929
  return null;
@@ -331161,6 +331242,7 @@ var init_AssistantTextMessage = __esm(() => {
331161
331242
  init_ink2();
331162
331243
  init_errors6();
331163
331244
  init_messages();
331245
+ init_deliberationText();
331164
331246
  init_systemReminderFilter();
331165
331247
  init_contextWindowUpgradeCheck();
331166
331248
  init_model();
@@ -389609,7 +389691,7 @@ function isAnyTracingEnabled() {
389609
389691
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
389610
389692
  }
389611
389693
  function getTracer() {
389612
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.77.7");
389694
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.77.9");
389613
389695
  }
389614
389696
  function createSpanAttributes(spanType, customAttributes = {}) {
389615
389697
  const baseAttributes = getTelemetryAttributes();
@@ -398117,7 +398199,6 @@ var init_sessionMemoryCompact = __esm(() => {
398117
398199
 
398118
398200
  // src/services/compact/autoCompact.ts
398119
398201
  function getEffectiveContextWindowSize(model) {
398120
- const reservedTokensForSummary = Math.min(getMaxOutputTokensForModel(model), MAX_OUTPUT_TOKENS_FOR_SUMMARY);
398121
398202
  let contextWindow = getContextWindowForModel(model, getSdkBetas());
398122
398203
  const autoCompactWindow = process.env.UR_CODE_AUTO_COMPACT_WINDOW;
398123
398204
  if (autoCompactWindow) {
@@ -398126,7 +398207,8 @@ function getEffectiveContextWindowSize(model) {
398126
398207
  contextWindow = Math.min(contextWindow, parsed);
398127
398208
  }
398128
398209
  }
398129
- return contextWindow - reservedTokensForSummary;
398210
+ const reservedTokensForSummary = Math.min(getMaxOutputTokensForModel(model), MAX_OUTPUT_TOKENS_FOR_SUMMARY, Math.floor(contextWindow * MAX_SUMMARY_RESERVE_SHARE));
398211
+ return Math.max(contextWindow - reservedTokensForSummary, 1);
398130
398212
  }
398131
398213
  function getAutoCompactThreshold(model) {
398132
398214
  const effectiveContextWindow = getEffectiveContextWindowSize(model);
@@ -398247,7 +398329,7 @@ async function autoCompactIfNeeded(messages, toolUseContext, cacheSafeParams, qu
398247
398329
  return { wasCompacted: false, consecutiveFailures: nextFailures };
398248
398330
  }
398249
398331
  }
398250
- var MAX_OUTPUT_TOKENS_FOR_SUMMARY = 20000, AUTOCOMPACT_BUFFER_TOKENS = 13000, WARNING_THRESHOLD_BUFFER_TOKENS = 20000, ERROR_THRESHOLD_BUFFER_TOKENS = 20000, MANUAL_COMPACT_BUFFER_TOKENS = 3000, MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3;
398332
+ var MAX_OUTPUT_TOKENS_FOR_SUMMARY = 20000, MAX_SUMMARY_RESERVE_SHARE = 0.2, AUTOCOMPACT_BUFFER_TOKENS = 13000, WARNING_THRESHOLD_BUFFER_TOKENS = 20000, ERROR_THRESHOLD_BUFFER_TOKENS = 20000, MANUAL_COMPACT_BUFFER_TOKENS = 3000, MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3;
398251
398333
  var init_autoCompact = __esm(() => {
398252
398334
  init_state();
398253
398335
  init_state();
@@ -419831,7 +419913,7 @@ function Feedback({
419831
419913
  platform: env2.platform,
419832
419914
  gitRepo: envInfo.isGit,
419833
419915
  terminal: env2.terminal,
419834
- version: "1.77.7",
419916
+ version: "1.77.9",
419835
419917
  transcript: normalizeMessagesForAPI(messages),
419836
419918
  errors: sanitizedErrors,
419837
419919
  lastApiRequest: getLastAPIRequest(),
@@ -420023,7 +420105,7 @@ function Feedback({
420023
420105
  ", ",
420024
420106
  env2.terminal,
420025
420107
  ", v",
420026
- "1.77.7"
420108
+ "1.77.9"
420027
420109
  ]
420028
420110
  }, undefined, true, undefined, this)
420029
420111
  ]
@@ -420129,7 +420211,7 @@ ${sanitizedDescription}
420129
420211
  ` + `**Environment Info**
420130
420212
  ` + `- Platform: ${env2.platform}
420131
420213
  ` + `- Terminal: ${env2.terminal}
420132
- ` + `- Version: ${"1.77.7"}
420214
+ ` + `- Version: ${"1.77.9"}
420133
420215
  ` + `- Feedback ID: ${feedbackId}
420134
420216
  ` + `
420135
420217
  **Errors**
@@ -423239,7 +423321,7 @@ function buildPrimarySection() {
423239
423321
  }, undefined, false, undefined, this);
423240
423322
  return [{
423241
423323
  label: "Version",
423242
- value: "1.77.7"
423324
+ value: "1.77.9"
423243
423325
  }, {
423244
423326
  label: "Session name",
423245
423327
  value: nameValue
@@ -426621,7 +426703,7 @@ function Config({
426621
426703
  }
426622
426704
  }, undefined, false, undefined, this)
426623
426705
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
426624
- currentVersion: "1.77.7",
426706
+ currentVersion: "1.77.9",
426625
426707
  onChoice: (choice) => {
426626
426708
  setShowSubmenu(null);
426627
426709
  setTabsHidden(false);
@@ -426633,7 +426715,7 @@ function Config({
426633
426715
  autoUpdatesChannel: "stable"
426634
426716
  };
426635
426717
  if (choice === "stay") {
426636
- newSettings.minimumVersion = "1.77.7";
426718
+ newSettings.minimumVersion = "1.77.9";
426637
426719
  }
426638
426720
  updateSettingsForSource("userSettings", newSettings);
426639
426721
  setSettingsData((prev_27) => ({
@@ -434697,7 +434779,7 @@ function HelpV2(t0) {
434697
434779
  let t6;
434698
434780
  if ($2[31] !== tabs) {
434699
434781
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
434700
- title: `UR v${"1.77.7"}`,
434782
+ title: `UR v${"1.77.9"}`,
434701
434783
  color: "professionalBlue",
434702
434784
  defaultTab: "general",
434703
434785
  children: tabs
@@ -435630,7 +435712,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
435630
435712
  async function handleInitialize(options2) {
435631
435713
  return {
435632
435714
  name: "UR",
435633
- version: "1.77.7",
435715
+ version: "1.77.9",
435634
435716
  protocolVersion: "0.1.0",
435635
435717
  workspaceRoot: options2.cwd,
435636
435718
  capabilities: {
@@ -452738,7 +452820,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
452738
452820
  return [];
452739
452821
  }
452740
452822
  }
452741
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.7") {
452823
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.9") {
452742
452824
  if (process.env.USER_TYPE === "ant") {
452743
452825
  const changelog = "";
452744
452826
  if (changelog) {
@@ -452765,7 +452847,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.7")
452765
452847
  releaseNotes
452766
452848
  };
452767
452849
  }
452768
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.77.7") {
452850
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.77.9") {
452769
452851
  if (process.env.USER_TYPE === "ant") {
452770
452852
  const changelog = "";
452771
452853
  if (changelog) {
@@ -455631,7 +455713,7 @@ function getRecentActivitySync() {
455631
455713
  return cachedActivity;
455632
455714
  }
455633
455715
  function getLogoDisplayData() {
455634
- const version2 = process.env.DEMO_VERSION ?? "1.77.7";
455716
+ const version2 = process.env.DEMO_VERSION ?? "1.77.9";
455635
455717
  const serverUrl = getDirectConnectServerUrl();
455636
455718
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
455637
455719
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -456498,7 +456580,7 @@ function LogoV2() {
456498
456580
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
456499
456581
  t2 = () => {
456500
456582
  const currentConfig2 = getGlobalConfig();
456501
- if (currentConfig2.lastReleaseNotesSeen === "1.77.7") {
456583
+ if (currentConfig2.lastReleaseNotesSeen === "1.77.9") {
456502
456584
  return;
456503
456585
  }
456504
456586
  saveGlobalConfig(_temp325);
@@ -457183,12 +457265,12 @@ function LogoV2() {
457183
457265
  return t41;
457184
457266
  }
457185
457267
  function _temp325(current) {
457186
- if (current.lastReleaseNotesSeen === "1.77.7") {
457268
+ if (current.lastReleaseNotesSeen === "1.77.9") {
457187
457269
  return current;
457188
457270
  }
457189
457271
  return {
457190
457272
  ...current,
457191
- lastReleaseNotesSeen: "1.77.7"
457273
+ lastReleaseNotesSeen: "1.77.9"
457192
457274
  };
457193
457275
  }
457194
457276
  function _temp241(s_0) {
@@ -474002,7 +474084,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
474002
474084
  if (spec.name !== specName) {
474003
474085
  throw new Error("Agentic CI workflow spec name does not match");
474004
474086
  }
474005
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.77.7" : "1.77.7");
474087
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.77.9" : "1.77.9");
474006
474088
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
474007
474089
  throw new Error("invalid ur-agent package version");
474008
474090
  }
@@ -474995,7 +475077,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
474995
475077
  path: ".github/workflows/ur.yml",
474996
475078
  root: "project",
474997
475079
  content: compileAgenticCiWorkflow("default", {
474998
- packageVersion: typeof MACRO !== "undefined" ? "1.77.7" : "1.77.7"
475080
+ packageVersion: typeof MACRO !== "undefined" ? "1.77.9" : "1.77.9"
474999
475081
  })
475000
475082
  },
475001
475083
  {
@@ -475058,7 +475140,7 @@ function value(tokens, flag) {
475058
475140
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
475059
475141
  }
475060
475142
  function cliVersion() {
475061
- return typeof MACRO !== "undefined" ? "1.77.7" : "1.77.7";
475143
+ return typeof MACRO !== "undefined" ? "1.77.9" : "1.77.9";
475062
475144
  }
475063
475145
  function workflowPath(cwd2) {
475064
475146
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -480914,7 +480996,7 @@ function createAcpStdioApp(deps) {
480914
480996
  }
480915
480997
  },
480916
480998
  authMethods: [],
480917
- agentInfo: { name: "UR-Nexus", version: "1.77.7" }
480999
+ agentInfo: { name: "UR-Nexus", version: "1.77.9" }
480918
481000
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
480919
481001
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
480920
481002
  await runtime2.announce({
@@ -481011,7 +481093,7 @@ function createAcpStdioAgent(deps) {
481011
481093
  }
481012
481094
  },
481013
481095
  authMethods: [],
481014
- agentInfo: { name: "UR-Nexus", version: "1.77.7" }
481096
+ agentInfo: { name: "UR-Nexus", version: "1.77.9" }
481015
481097
  });
481016
481098
  return;
481017
481099
  case "authenticate":
@@ -690471,7 +690553,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
690471
690553
  smapsRollup,
690472
690554
  platform: process.platform,
690473
690555
  nodeVersion: process.version,
690474
- ccVersion: "1.77.7"
690556
+ ccVersion: "1.77.9"
690475
690557
  };
690476
690558
  }
690477
690559
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -691051,7 +691133,7 @@ var init_bridge_kick = __esm(() => {
691051
691133
  var call154 = async () => {
691052
691134
  return {
691053
691135
  type: "text",
691054
- value: "1.77.7"
691136
+ value: "1.77.9"
691055
691137
  };
691056
691138
  }, version2, version_default;
691057
691139
  var init_version = __esm(() => {
@@ -702318,7 +702400,7 @@ function generateHtmlReport(data, insights) {
702318
702400
  </html>`;
702319
702401
  }
702320
702402
  function buildExportData(data, insights, facets, remoteStats) {
702321
- const version3 = typeof MACRO !== "undefined" ? "1.77.7" : "unknown";
702403
+ const version3 = typeof MACRO !== "undefined" ? "1.77.9" : "unknown";
702322
702404
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
702323
702405
  const facets_summary = {
702324
702406
  total: facets.size,
@@ -706632,7 +706714,7 @@ var init_sessionStorage = __esm(() => {
706632
706714
  init_settings2();
706633
706715
  init_slowOperations();
706634
706716
  init_uuid();
706635
- VERSION7 = typeof MACRO !== "undefined" ? "1.77.7" : "unknown";
706717
+ VERSION7 = typeof MACRO !== "undefined" ? "1.77.9" : "unknown";
706636
706718
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
706637
706719
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
706638
706720
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -707847,7 +707929,7 @@ var init_filesystem = __esm(() => {
707847
707929
  });
707848
707930
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
707849
707931
  const nonce = randomBytes20(16).toString("hex");
707850
- return join232(getURTempDir(), "bundled-skills", "1.77.7", nonce);
707932
+ return join232(getURTempDir(), "bundled-skills", "1.77.9", nonce);
707851
707933
  });
707852
707934
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
707853
707935
  });
@@ -714204,7 +714286,7 @@ function computeFingerprint(messageText2, version3) {
714204
714286
  }
714205
714287
  function computeFingerprintFromMessages(messages) {
714206
714288
  const firstMessageText = extractFirstMessageText(messages);
714207
- return computeFingerprint(firstMessageText, "1.77.7");
714289
+ return computeFingerprint(firstMessageText, "1.77.9");
714208
714290
  }
714209
714291
  var FINGERPRINT_SALT = "59cf53e54c78";
714210
714292
  var init_fingerprint = () => {};
@@ -716126,7 +716208,7 @@ async function sideQuery(opts) {
716126
716208
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
716127
716209
  }
716128
716210
  const messageText2 = extractFirstUserMessageText(messages);
716129
- const fingerprint2 = computeFingerprint(messageText2, "1.77.7");
716211
+ const fingerprint2 = computeFingerprint(messageText2, "1.77.9");
716130
716212
  const attributionHeader = getAttributionHeader(fingerprint2);
716131
716213
  const systemBlocks = [
716132
716214
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -720963,7 +721045,7 @@ function buildSystemInitMessage(inputs) {
720963
721045
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
720964
721046
  apiKeySource: getURHQApiKeyWithSource().source,
720965
721047
  betas: getSdkBetas(),
720966
- ur_version: "1.77.7",
721048
+ ur_version: "1.77.9",
720967
721049
  output_style: outputStyle2,
720968
721050
  agents: inputs.agents.map((agent2) => agent2.agentType),
720969
721051
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -734835,7 +734917,7 @@ var init_useVoiceEnabled = __esm(() => {
734835
734917
  function getSemverPart(version3) {
734836
734918
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
734837
734919
  }
734838
- function useUpdateNotification(updatedVersion, initialVersion = "1.77.7") {
734920
+ function useUpdateNotification(updatedVersion, initialVersion = "1.77.9") {
734839
734921
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react223.useState(() => getSemverPart(initialVersion));
734840
734922
  if (!updatedVersion) {
734841
734923
  return null;
@@ -734884,7 +734966,7 @@ function AutoUpdater({
734884
734966
  return;
734885
734967
  }
734886
734968
  if (false) {}
734887
- const currentVersion = "1.77.7";
734969
+ const currentVersion = "1.77.9";
734888
734970
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
734889
734971
  let latestVersion = await getLatestVersion(channel);
734890
734972
  const isDisabled = isAutoUpdaterDisabled();
@@ -735113,12 +735195,12 @@ function NativeAutoUpdater({
735113
735195
  logEvent("tengu_native_auto_updater_start", {});
735114
735196
  try {
735115
735197
  const maxVersion = await getMaxVersion();
735116
- if (maxVersion && gt("1.77.7", maxVersion)) {
735198
+ if (maxVersion && gt("1.77.9", maxVersion)) {
735117
735199
  const msg = await getMaxVersionMessage();
735118
735200
  setMaxVersionIssue(msg ?? "affects your version");
735119
735201
  }
735120
735202
  const result = await installLatest(channel);
735121
- const currentVersion = "1.77.7";
735203
+ const currentVersion = "1.77.9";
735122
735204
  const latencyMs = Date.now() - startTime;
735123
735205
  if (result.lockFailed) {
735124
735206
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -735255,17 +735337,17 @@ function PackageManagerAutoUpdater(t0) {
735255
735337
  const maxVersion = await getMaxVersion();
735256
735338
  if (maxVersion && latest && gt(latest, maxVersion)) {
735257
735339
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
735258
- if (gte("1.77.7", maxVersion)) {
735259
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.77.7"} is already at or above maxVersion ${maxVersion}, skipping update`);
735340
+ if (gte("1.77.9", maxVersion)) {
735341
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.77.9"} is already at or above maxVersion ${maxVersion}, skipping update`);
735260
735342
  setUpdateAvailable(false);
735261
735343
  return;
735262
735344
  }
735263
735345
  latest = maxVersion;
735264
735346
  }
735265
- const hasUpdate = latest && !gte("1.77.7", latest) && !shouldSkipVersion(latest);
735347
+ const hasUpdate = latest && !gte("1.77.9", latest) && !shouldSkipVersion(latest);
735266
735348
  setUpdateAvailable(!!hasUpdate);
735267
735349
  if (hasUpdate) {
735268
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.77.7"} -> ${latest}`);
735350
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.77.9"} -> ${latest}`);
735269
735351
  }
735270
735352
  };
735271
735353
  $2[0] = t1;
@@ -735299,7 +735381,7 @@ function PackageManagerAutoUpdater(t0) {
735299
735381
  wrap: "truncate",
735300
735382
  children: [
735301
735383
  "currentVersion: ",
735302
- "1.77.7"
735384
+ "1.77.9"
735303
735385
  ]
735304
735386
  }, undefined, true, undefined, this);
735305
735387
  $2[3] = verbose;
@@ -746099,7 +746181,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
746099
746181
  project_dir: getOriginalCwd(),
746100
746182
  added_dirs: addedDirs
746101
746183
  },
746102
- version: "1.77.7",
746184
+ version: "1.77.9",
746103
746185
  output_style: {
746104
746186
  name: outputStyleName
746105
746187
  },
@@ -746234,7 +746316,7 @@ function StatusLineInner({
746234
746316
  const attention = customStatusError ?? taskAttention;
746235
746317
  const terminalSize = React132.useContext(TerminalSizeContext);
746236
746318
  const defaultStatusLineText = buildDefaultStatusBar({
746237
- version: "1.77.7",
746319
+ version: "1.77.9",
746238
746320
  providerLabel: providerRuntime.providerLabel,
746239
746321
  authMode: providerRuntime.authLabel,
746240
746322
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -758519,7 +758601,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
758519
758601
  } catch {}
758520
758602
  const data = {
758521
758603
  trigger: trigger2,
758522
- version: "1.77.7",
758604
+ version: "1.77.9",
758523
758605
  platform: process.platform,
758524
758606
  transcript,
758525
758607
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -770893,7 +770975,7 @@ function WelcomeV2() {
770893
770975
  dimColor: true,
770894
770976
  children: [
770895
770977
  "v",
770896
- "1.77.7"
770978
+ "1.77.9"
770897
770979
  ]
770898
770980
  }, undefined, true, undefined, this)
770899
770981
  ]
@@ -772153,7 +772235,7 @@ function completeOnboarding() {
772153
772235
  saveGlobalConfig((current) => ({
772154
772236
  ...current,
772155
772237
  hasCompletedOnboarding: true,
772156
- lastOnboardingVersion: "1.77.7"
772238
+ lastOnboardingVersion: "1.77.9"
772157
772239
  }));
772158
772240
  }
772159
772241
  function showDialog(root2, renderer) {
@@ -777197,7 +777279,7 @@ function appendToLog(path24, message) {
777197
777279
  cwd: getFsImplementation().cwd(),
777198
777280
  userType: process.env.USER_TYPE,
777199
777281
  sessionId: getSessionId(),
777200
- version: "1.77.7"
777282
+ version: "1.77.9"
777201
777283
  };
777202
777284
  getLogWriter(path24).write(messageWithTimestamp);
777203
777285
  }
@@ -781356,8 +781438,8 @@ async function getEnvLessBridgeConfig() {
781356
781438
  }
781357
781439
  async function checkEnvLessBridgeMinVersion() {
781358
781440
  const cfg = await getEnvLessBridgeConfig();
781359
- if (cfg.min_version && lt("1.77.7", cfg.min_version)) {
781360
- return `Your version of UR (${"1.77.7"}) is too old for Remote Control.
781441
+ if (cfg.min_version && lt("1.77.9", cfg.min_version)) {
781442
+ return `Your version of UR (${"1.77.9"}) is too old for Remote Control.
781361
781443
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
781362
781444
  }
781363
781445
  return null;
@@ -781831,7 +781913,7 @@ async function initBridgeCore(params) {
781831
781913
  const rawApi = createBridgeApiClient({
781832
781914
  baseUrl,
781833
781915
  getAccessToken,
781834
- runnerVersion: "1.77.7",
781916
+ runnerVersion: "1.77.9",
781835
781917
  onDebug: logForDebugging,
781836
781918
  onAuth401,
781837
781919
  getTrustedDeviceToken
@@ -791304,7 +791386,7 @@ function getAgUiCapabilities() {
791304
791386
  name: "UR-Nexus",
791305
791387
  type: "ur-nexus",
791306
791388
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
791307
- version: "1.77.7",
791389
+ version: "1.77.9",
791308
791390
  provider: "UR",
791309
791391
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
791310
791392
  },
@@ -792444,7 +792526,7 @@ function createMCPServer(cwd4, debug2, verbose) {
792444
792526
  };
792445
792527
  const server2 = new Server({
792446
792528
  name: "ur-nexus",
792447
- version: "1.77.7"
792529
+ version: "1.77.9"
792448
792530
  }, {
792449
792531
  capabilities: {
792450
792532
  tools: {}
@@ -793602,7 +793684,7 @@ function thrownResponse(error40) {
793602
793684
  }
793603
793685
  async function createUrMcp2026Runtime(options4) {
793604
793686
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
793605
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.77.7" }, { capabilities: {} });
793687
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.77.9" }, { capabilities: {} });
793606
793688
  const [clientTransport, serverTransport] = createLinkedTransportPair();
793607
793689
  try {
793608
793690
  await server2.connect(serverTransport);
@@ -793613,7 +793695,7 @@ async function createUrMcp2026Runtime(options4) {
793613
793695
  }
793614
793696
  const runtime2 = new Mcp2026Runtime({
793615
793697
  cwd: options4.cwd,
793616
- version: "1.77.7",
793698
+ version: "1.77.9",
793617
793699
  backend: {
793618
793700
  listTools: async () => {
793619
793701
  const listed = await client2.listTools();
@@ -795754,7 +795836,7 @@ async function update() {
795754
795836
  logEvent("tengu_update_check", {});
795755
795837
  const diagnostic2 = await getDoctorDiagnostic();
795756
795838
  const result = await checkUpgradeStatus({
795757
- currentVersion: "1.77.7",
795839
+ currentVersion: "1.77.9",
795758
795840
  packageName: UR_AGENT_PACKAGE_NAME,
795759
795841
  installationType: diagnostic2.installationType,
795760
795842
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -797070,7 +797152,7 @@ ${customInstructions}` : customInstructions;
797070
797152
  }
797071
797153
  }
797072
797154
  logForDiagnosticsNoPII("info", "started", {
797073
- version: "1.77.7",
797155
+ version: "1.77.9",
797074
797156
  is_native_binary: isInBundledMode()
797075
797157
  });
797076
797158
  registerCleanup(async () => {
@@ -797856,7 +797938,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
797856
797938
  pendingHookMessages
797857
797939
  }, renderAndRun);
797858
797940
  }
797859
- }).version("1.77.7 (UR-Nexus)", "-v, --version", "Output the version number");
797941
+ }).version("1.77.9 (UR-Nexus)", "-v, --version", "Output the version number");
797860
797942
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
797861
797943
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
797862
797944
  if (canUserConfigureAdvisor()) {
@@ -798908,7 +798990,7 @@ if (false) {}
798908
798990
  async function main2() {
798909
798991
  const args = process.argv.slice(2);
798910
798992
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
798911
- console.log(`${"1.77.7"} (UR-Nexus)`);
798993
+ console.log(`${"1.77.9"} (UR-Nexus)`);
798912
798994
  return;
798913
798995
  }
798914
798996
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
@@ -19,7 +19,7 @@ You need:
19
19
 
20
20
  ```sh
21
21
  ur --version
22
- # expected for this release: "1.77.7 (UR-Nexus)"
22
+ # expected for this release: "1.78.0 (UR-Nexus)"
23
23
  ```
24
24
 
25
25
  ## 0.1 First-workspace model selection (1.45.4)
@@ -45,7 +45,7 @@
45
45
  <main id="content" class="content">
46
46
  <header class="topbar">
47
47
  <div>
48
- <p class="eyebrow">Version 1.77.7</p>
48
+ <p class="eyebrow">Version 1.78.0</p>
49
49
  <h1>UR-Nexus Documentation</h1>
50
50
  <p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
51
51
  </div>
@@ -7,7 +7,7 @@ plugins {
7
7
  }
8
8
 
9
9
  group = "dev.urnexus"
10
- version = "1.77.7"
10
+ version = "1.78.0"
11
11
 
12
12
  repositories {
13
13
  mavenCentral()
@@ -2,7 +2,7 @@
2
2
  "name": "ur-inline-diffs",
3
3
  "displayName": "UR Inline Diffs",
4
4
  "description": "Review, apply, and reject UR inline diff bundles from .ur/ide/diffs inside VS Code.",
5
- "version": "1.77.7",
5
+ "version": "1.78.0",
6
6
  "publisher": "ur-nexus",
7
7
  "engines": {
8
8
  "vscode": "^1.92.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.77.7",
3
+ "version": "1.78.0",
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",