ur-agent 1.77.4 → 1.77.6

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,34 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.77.6
4
+
5
+ - A request body rejected for its size now takes the prompt-too-long recovery
6
+ path instead of killing the turn. Ollama fronts the model with a Go HTTP
7
+ server that rejects an oversized body before the model sees it, reporting
8
+ `400: http: request body too large` — a message naming neither a prompt nor a
9
+ token count, so it missed the matcher and none of the compaction-and-retry
10
+ recovery ran. Proxy and gateway phrasings of the same condition are covered
11
+ too. An unrelated 400 is not swept in.
12
+ - Deliberation stays out of user-facing text. The prompt asked for brevity but
13
+ never said that weighing causes, checking arithmetic, and talking through
14
+ what a test failure means are thinking rather than output — so they were
15
+ emitted verbatim, at length, mid-task.
16
+
17
+ ## 1.77.5
18
+
19
+ - A tool call the model writes as text is now recovered for every provider.
20
+ The repair existed but was wired only into the Ollama provider and the remote
21
+ transport, so the same model — Kimi, GLM, GPT — reached through OpenRouter or
22
+ any OpenAI-compatible endpoint had its call silently dropped and the turn did
23
+ nothing visible. Recovery now runs in `normalizeContentFromAPI`, the single
24
+ point every provider and both the streaming and non-streaming paths converge
25
+ on, and it matches against the session's real tool list rather than the
26
+ hardcoded seven-name set the transport-level repair used.
27
+ - The recovery is applied only when the turn produced no genuine `tool_use`
28
+ block, so a model that used the structured interface correctly is never
29
+ second-guessed, prose that merely resembles JSON cannot displace a real call,
30
+ and a name that is not a live tool is left as text.
31
+
3
32
  ## 1.77.4
4
33
 
5
34
  - AskUserQuestion accepts choices labelled with `header`. `header` is this
package/dist/cli.js CHANGED
@@ -92244,6 +92244,9 @@ function parseOpenAICompatibleResponse(data, fallbackModel, providerName = "open
92244
92244
  throw new ProviderResponseParseError(`${providerName} response did not include a choice`, { data });
92245
92245
  }
92246
92246
  const content = parseOpenAIMessageContent(choice?.message, choice?.text, providerName);
92247
+ if (!hasToolUse(content)) {
92248
+ synthesizeKimiToolCalls({ message: { content } });
92249
+ }
92247
92250
  const includesToolUse = hasToolUse(content);
92248
92251
  assertValidProviderToolUses(content, `${providerName} response`);
92249
92252
  if (isOpenAIToolStopReason2(choice?.finish_reason) && !includesToolUse) {
@@ -92519,6 +92522,7 @@ function hasToolUse(content) {
92519
92522
  return content.some((block) => block?.type === "tool_use");
92520
92523
  }
92521
92524
  var init_openaiCompatible = __esm(() => {
92525
+ init_kimiToolCalls();
92522
92526
  init_toolSchema();
92523
92527
  init_providerClient();
92524
92528
  init_streamingAdapters();
@@ -107548,7 +107552,7 @@ var init_auth = __esm(() => {
107548
107552
 
107549
107553
  // src/utils/userAgent.ts
107550
107554
  function getURCodeUserAgent() {
107551
- return `ur/${"1.77.4"}`;
107555
+ return `ur/${"1.77.6"}`;
107552
107556
  }
107553
107557
 
107554
107558
  // src/utils/workloadContext.ts
@@ -107570,7 +107574,7 @@ function getUserAgent() {
107570
107574
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
107571
107575
  const workload = getWorkload();
107572
107576
  const workloadSuffix = workload ? `, workload/${workload}` : "";
107573
- return `ur-cli/${"1.77.4"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107577
+ return `ur-cli/${"1.77.6"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107574
107578
  }
107575
107579
  function getMCPUserAgent() {
107576
107580
  const parts = [];
@@ -107584,7 +107588,7 @@ function getMCPUserAgent() {
107584
107588
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
107585
107589
  }
107586
107590
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
107587
- return `ur/${"1.77.4"}${suffix}`;
107591
+ return `ur/${"1.77.6"}${suffix}`;
107588
107592
  }
107589
107593
  function getWebFetchUserAgent() {
107590
107594
  return `UR-User (${getURCodeUserAgent()})`;
@@ -107722,7 +107726,7 @@ var init_user = __esm(() => {
107722
107726
  deviceId,
107723
107727
  sessionId: getSessionId(),
107724
107728
  email: getEmail(),
107725
- appVersion: "1.77.4",
107729
+ appVersion: "1.77.6",
107726
107730
  platform: getHostPlatformForAnalytics(),
107727
107731
  organizationUuid,
107728
107732
  accountUuid,
@@ -115609,7 +115613,7 @@ var init_metadata = __esm(() => {
115609
115613
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
115610
115614
  WHITESPACE_REGEX = /\s+/;
115611
115615
  getVersionBase = memoize_default(() => {
115612
- const match = "1.77.4".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115616
+ const match = "1.77.6".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115613
115617
  return match ? match[0] : undefined;
115614
115618
  });
115615
115619
  buildEnvContext = memoize_default(async () => {
@@ -115649,7 +115653,7 @@ var init_metadata = __esm(() => {
115649
115653
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
115650
115654
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
115651
115655
  isURAiAuth: isURAISubscriber(),
115652
- version: "1.77.4",
115656
+ version: "1.77.6",
115653
115657
  versionBase: getVersionBase(),
115654
115658
  buildTime: "",
115655
115659
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -116319,7 +116323,7 @@ function initialize1PEventLogging() {
116319
116323
  const platform2 = getPlatform();
116320
116324
  const attributes = {
116321
116325
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
116322
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.77.4"
116326
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.77.6"
116323
116327
  };
116324
116328
  if (platform2 === "wsl") {
116325
116329
  const wslVersion = getWslVersion();
@@ -116347,7 +116351,7 @@ function initialize1PEventLogging() {
116347
116351
  })
116348
116352
  ]
116349
116353
  });
116350
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.77.4");
116354
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.77.6");
116351
116355
  }
116352
116356
  async function reinitialize1PEventLoggingIfConfigChanged() {
116353
116357
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -126129,7 +126133,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
126129
126133
  function formatA2AAgentCard(options = {}, pretty = true) {
126130
126134
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
126131
126135
  }
126132
- var urVersion = "1.77.4", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126136
+ var urVersion = "1.77.6", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126133
126137
  var init_trends = __esm(() => {
126134
126138
  init_a2aCardSignature();
126135
126139
  coverage = [
@@ -128932,7 +128936,7 @@ function getAttributionHeader(fingerprint) {
128932
128936
  if (!isAttributionHeaderEnabled()) {
128933
128937
  return "";
128934
128938
  }
128935
- const version2 = `${"1.77.4"}.${fingerprint}`;
128939
+ const version2 = `${"1.77.6"}.${fingerprint}`;
128936
128940
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
128937
128941
  const cch = "";
128938
128942
  const workload = getWorkload();
@@ -156936,7 +156940,7 @@ var init_projectSafety = __esm(() => {
156936
156940
  function getInstruments() {
156937
156941
  if (instruments)
156938
156942
  return instruments;
156939
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.77.4");
156943
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.77.6");
156940
156944
  instruments = {
156941
156945
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
156942
156946
  description: "GenAI operation duration.",
@@ -157034,7 +157038,7 @@ function genAiAgentAttributes() {
157034
157038
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
157035
157039
  "gen_ai.provider.name": "ur",
157036
157040
  "gen_ai.agent.name": "UR-Nexus",
157037
- "gen_ai.agent.version": "1.77.4"
157041
+ "gen_ai.agent.version": "1.77.6"
157038
157042
  };
157039
157043
  }
157040
157044
  function genAiWorkflowAttributes(workflowName) {
@@ -157050,7 +157054,7 @@ function genAiWorkflowAttributes(workflowName) {
157050
157054
  function startGenAiWorkflowSpan(workflowName) {
157051
157055
  const attributes = genAiWorkflowAttributes(workflowName);
157052
157056
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
157053
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.4").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157057
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.6").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157054
157058
  }
157055
157059
  function endGenAiWorkflowSpan(span, options2 = {}) {
157056
157060
  try {
@@ -157088,7 +157092,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
157088
157092
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
157089
157093
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
157090
157094
  }
157091
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.4").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157095
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.6").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157092
157096
  }
157093
157097
  function endGenAiMemorySpan(span, options2 = {}) {
157094
157098
  try {
@@ -250736,7 +250740,7 @@ function getTelemetryAttributes() {
250736
250740
  attributes["session.id"] = sessionId;
250737
250741
  }
250738
250742
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
250739
- attributes["app.version"] = "1.77.4";
250743
+ attributes["app.version"] = "1.77.6";
250740
250744
  }
250741
250745
  const oauthAccount = getOauthAccountInfo();
250742
250746
  if (oauthAccount) {
@@ -297243,7 +297247,7 @@ function getInstallationEnv() {
297243
297247
  return;
297244
297248
  }
297245
297249
  function getURCodeVersion() {
297246
- return "1.77.4";
297250
+ return "1.77.6";
297247
297251
  }
297248
297252
  async function getInstalledVSCodeExtensionVersion(command) {
297249
297253
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -304574,7 +304578,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
304574
304578
  const client2 = new Client({
304575
304579
  name: "ur",
304576
304580
  title: "UR",
304577
- version: "1.77.4",
304581
+ version: "1.77.6",
304578
304582
  description: "UR-Nexus autonomous engineering workflow engine",
304579
304583
  websiteUrl: PRODUCT_URL
304580
304584
  }, {
@@ -304934,7 +304938,7 @@ var init_client5 = __esm(() => {
304934
304938
  const client2 = new Client({
304935
304939
  name: "ur",
304936
304940
  title: "UR",
304937
- version: "1.77.4",
304941
+ version: "1.77.6",
304938
304942
  description: "UR-Nexus autonomous engineering workflow engine",
304939
304943
  websiteUrl: PRODUCT_URL
304940
304944
  }, {
@@ -317487,7 +317491,7 @@ async function createRuntime() {
317487
317491
  bootstrapTelemetry();
317488
317492
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
317489
317493
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
317490
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.77.4"
317494
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.77.6"
317491
317495
  }));
317492
317496
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
317493
317497
  resource,
@@ -317520,11 +317524,11 @@ async function createRuntime() {
317520
317524
  setMeterProvider(meterProvider);
317521
317525
  setLoggerProvider(loggerProvider);
317522
317526
  if (meterProvider) {
317523
- const meter = meterProvider.getMeter("ur-agent", "1.77.4");
317527
+ const meter = meterProvider.getMeter("ur-agent", "1.77.6");
317524
317528
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
317525
317529
  }
317526
317530
  if (loggerProvider) {
317527
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.77.4"));
317531
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.77.6"));
317528
317532
  }
317529
317533
  if (!cleanupRegistered2) {
317530
317534
  cleanupRegistered2 = true;
@@ -318186,9 +318190,9 @@ async function assertMinVersion() {
318186
318190
  if (false) {}
318187
318191
  try {
318188
318192
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
318189
- if (versionConfig.minVersion && lt("1.77.4", versionConfig.minVersion)) {
318193
+ if (versionConfig.minVersion && lt("1.77.6", versionConfig.minVersion)) {
318190
318194
  console.error(`
318191
- It looks like your version of UR (${"1.77.4"}) needs an update.
318195
+ It looks like your version of UR (${"1.77.6"}) needs an update.
318192
318196
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
318193
318197
 
318194
318198
  To update, please run:
@@ -318404,7 +318408,7 @@ async function installGlobalPackage(specificVersion) {
318404
318408
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
318405
318409
  logEvent("tengu_auto_updater_lock_contention", {
318406
318410
  pid: process.pid,
318407
- currentVersion: "1.77.4"
318411
+ currentVersion: "1.77.6"
318408
318412
  });
318409
318413
  return "in_progress";
318410
318414
  }
@@ -318413,7 +318417,7 @@ async function installGlobalPackage(specificVersion) {
318413
318417
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
318414
318418
  logError2(new Error("Windows NPM detected in WSL environment"));
318415
318419
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
318416
- currentVersion: "1.77.4"
318420
+ currentVersion: "1.77.6"
318417
318421
  });
318418
318422
  console.error(`
318419
318423
  Error: Windows NPM detected in WSL
@@ -318948,7 +318952,7 @@ function detectLinuxGlobPatternWarnings() {
318948
318952
  }
318949
318953
  async function getDoctorDiagnostic() {
318950
318954
  const installationType = await getCurrentInstallationType();
318951
- const version2 = typeof MACRO !== "undefined" ? "1.77.4" : "unknown";
318955
+ const version2 = typeof MACRO !== "undefined" ? "1.77.6" : "unknown";
318952
318956
  const installationPath = await getInstallationPath();
318953
318957
  const invokedBinary = getInvokedBinary();
318954
318958
  const multipleInstallations = await detectMultipleInstallations();
@@ -319883,8 +319887,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319883
319887
  const maxVersion = await getMaxVersion();
319884
319888
  if (maxVersion && gt(version2, maxVersion)) {
319885
319889
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
319886
- if (gte("1.77.4", maxVersion)) {
319887
- logForDebugging(`Native installer: current version ${"1.77.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
319890
+ if (gte("1.77.6", maxVersion)) {
319891
+ logForDebugging(`Native installer: current version ${"1.77.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
319888
319892
  logEvent("tengu_native_update_skipped_max_version", {
319889
319893
  latency_ms: Date.now() - startTime,
319890
319894
  max_version: maxVersion,
@@ -319895,7 +319899,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319895
319899
  version2 = maxVersion;
319896
319900
  }
319897
319901
  }
319898
- if (!forceReinstall && version2 === "1.77.4" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319902
+ if (!forceReinstall && version2 === "1.77.6" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319899
319903
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
319900
319904
  logEvent("tengu_native_update_complete", {
319901
319905
  latency_ms: Date.now() - startTime,
@@ -389599,7 +389603,7 @@ function isAnyTracingEnabled() {
389599
389603
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
389600
389604
  }
389601
389605
  function getTracer() {
389602
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.77.4");
389606
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.77.6");
389603
389607
  }
389604
389608
  function createSpanAttributes(spanType, customAttributes = {}) {
389605
389609
  const baseAttributes = getTelemetryAttributes();
@@ -409773,10 +409777,50 @@ function mergeUserContentBlocks(a2, b) {
409773
409777
  }
409774
409778
  return [...a2.slice(0, -1), smooshed, ...toolResults];
409775
409779
  }
409780
+ function recoverTextEmittedToolCalls(contentBlocks, tools) {
409781
+ const blocks = contentBlocks;
409782
+ if (blocks.some((block2) => block2?.type === "tool_use")) {
409783
+ return contentBlocks;
409784
+ }
409785
+ const availableToolNames = new Set(tools.map((tool) => tool.name));
409786
+ if (availableToolNames.size === 0) {
409787
+ return contentBlocks;
409788
+ }
409789
+ const recovered = [];
409790
+ let changed = false;
409791
+ for (const block2 of blocks) {
409792
+ if (block2?.type !== "text" || typeof block2.text !== "string") {
409793
+ recovered.push(block2);
409794
+ continue;
409795
+ }
409796
+ const { text, toolCalls } = parseTextToolCalls(block2.text, {
409797
+ availableToolNames,
409798
+ parseBareJsonToolCalls: true
409799
+ });
409800
+ if (toolCalls.length === 0) {
409801
+ recovered.push(block2);
409802
+ continue;
409803
+ }
409804
+ changed = true;
409805
+ if (text.trim()) {
409806
+ recovered.push({ ...block2, text });
409807
+ }
409808
+ for (const call6 of toolCalls) {
409809
+ recovered.push({
409810
+ type: "tool_use",
409811
+ id: call6.id,
409812
+ name: call6.name,
409813
+ input: call6.input
409814
+ });
409815
+ }
409816
+ }
409817
+ return changed ? recovered : contentBlocks;
409818
+ }
409776
409819
  function normalizeContentFromAPI(contentBlocks, tools, agentId) {
409777
409820
  if (!contentBlocks) {
409778
409821
  return [];
409779
409822
  }
409823
+ contentBlocks = recoverTextEmittedToolCalls(contentBlocks, tools);
409780
409824
  return contentBlocks.map((_contentBlock) => {
409781
409825
  const contentBlock = _contentBlock;
409782
409826
  switch (contentBlock.type) {
@@ -411693,6 +411737,7 @@ Goal: Write your final plan to the plan file (the only file you can edit).
411693
411737
  - End with the single verification command
411694
411738
  - **Hard limit: 40 lines.** If the plan is longer, delete prose \u2014 not file paths.`;
411695
411739
  var init_messages = __esm(() => {
411740
+ init_kimiToolCalls();
411696
411741
  init_isObject();
411697
411742
  init_last();
411698
411743
  init_analytics();
@@ -411776,6 +411821,10 @@ function isPromptTooLongMessage(msg) {
411776
411821
  }
411777
411822
  return content.some((block2) => block2.type === "text" && block2.text.startsWith(PROMPT_TOO_LONG_ERROR_MESSAGE));
411778
411823
  }
411824
+ function isOversizedRequestBodyMessage(rawMessage) {
411825
+ const text = rawMessage.toLowerCase();
411826
+ return text.includes("request body too large") || text.includes("request entity too large") || text.includes("payload too large") || text.includes("body size limit");
411827
+ }
411779
411828
  function parsePromptTooLongTokenCounts(rawMessage) {
411780
411829
  const match = rawMessage.match(/prompt is too long[^0-9]*(\d+)\s*tokens?\s*>\s*(\d+)/i);
411781
411830
  return {
@@ -412020,7 +412069,7 @@ function getAssistantMessageFromError(error40, model, options2) {
412020
412069
  error: "rate_limit"
412021
412070
  });
412022
412071
  }
412023
- if (error40 instanceof Error && error40.message.toLowerCase().includes("prompt is too long")) {
412072
+ if (error40 instanceof Error && (error40.message.toLowerCase().includes("prompt is too long") || isOversizedRequestBodyMessage(error40.message))) {
412024
412073
  return createAssistantAPIErrorMessage({
412025
412074
  content: PROMPT_TOO_LONG_ERROR_MESSAGE,
412026
412075
  error: "invalid_request",
@@ -419776,7 +419825,7 @@ function Feedback({
419776
419825
  platform: env2.platform,
419777
419826
  gitRepo: envInfo.isGit,
419778
419827
  terminal: env2.terminal,
419779
- version: "1.77.4",
419828
+ version: "1.77.6",
419780
419829
  transcript: normalizeMessagesForAPI(messages),
419781
419830
  errors: sanitizedErrors,
419782
419831
  lastApiRequest: getLastAPIRequest(),
@@ -419968,7 +420017,7 @@ function Feedback({
419968
420017
  ", ",
419969
420018
  env2.terminal,
419970
420019
  ", v",
419971
- "1.77.4"
420020
+ "1.77.6"
419972
420021
  ]
419973
420022
  }, undefined, true, undefined, this)
419974
420023
  ]
@@ -420074,7 +420123,7 @@ ${sanitizedDescription}
420074
420123
  ` + `**Environment Info**
420075
420124
  ` + `- Platform: ${env2.platform}
420076
420125
  ` + `- Terminal: ${env2.terminal}
420077
- ` + `- Version: ${"1.77.4"}
420126
+ ` + `- Version: ${"1.77.6"}
420078
420127
  ` + `- Feedback ID: ${feedbackId}
420079
420128
  ` + `
420080
420129
  **Errors**
@@ -423184,7 +423233,7 @@ function buildPrimarySection() {
423184
423233
  }, undefined, false, undefined, this);
423185
423234
  return [{
423186
423235
  label: "Version",
423187
- value: "1.77.4"
423236
+ value: "1.77.6"
423188
423237
  }, {
423189
423238
  label: "Session name",
423190
423239
  value: nameValue
@@ -426566,7 +426615,7 @@ function Config({
426566
426615
  }
426567
426616
  }, undefined, false, undefined, this)
426568
426617
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
426569
- currentVersion: "1.77.4",
426618
+ currentVersion: "1.77.6",
426570
426619
  onChoice: (choice) => {
426571
426620
  setShowSubmenu(null);
426572
426621
  setTabsHidden(false);
@@ -426578,7 +426627,7 @@ function Config({
426578
426627
  autoUpdatesChannel: "stable"
426579
426628
  };
426580
426629
  if (choice === "stay") {
426581
- newSettings.minimumVersion = "1.77.4";
426630
+ newSettings.minimumVersion = "1.77.6";
426582
426631
  }
426583
426632
  updateSettingsForSource("userSettings", newSettings);
426584
426633
  setSettingsData((prev_27) => ({
@@ -434642,7 +434691,7 @@ function HelpV2(t0) {
434642
434691
  let t6;
434643
434692
  if ($2[31] !== tabs) {
434644
434693
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
434645
- title: `UR v${"1.77.4"}`,
434694
+ title: `UR v${"1.77.6"}`,
434646
434695
  color: "professionalBlue",
434647
434696
  defaultTab: "general",
434648
434697
  children: tabs
@@ -435575,7 +435624,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
435575
435624
  async function handleInitialize(options2) {
435576
435625
  return {
435577
435626
  name: "UR",
435578
- version: "1.77.4",
435627
+ version: "1.77.6",
435579
435628
  protocolVersion: "0.1.0",
435580
435629
  workspaceRoot: options2.cwd,
435581
435630
  capabilities: {
@@ -452683,7 +452732,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
452683
452732
  return [];
452684
452733
  }
452685
452734
  }
452686
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.4") {
452735
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.6") {
452687
452736
  if (process.env.USER_TYPE === "ant") {
452688
452737
  const changelog = "";
452689
452738
  if (changelog) {
@@ -452710,7 +452759,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.4")
452710
452759
  releaseNotes
452711
452760
  };
452712
452761
  }
452713
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.77.4") {
452762
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.77.6") {
452714
452763
  if (process.env.USER_TYPE === "ant") {
452715
452764
  const changelog = "";
452716
452765
  if (changelog) {
@@ -455576,7 +455625,7 @@ function getRecentActivitySync() {
455576
455625
  return cachedActivity;
455577
455626
  }
455578
455627
  function getLogoDisplayData() {
455579
- const version2 = process.env.DEMO_VERSION ?? "1.77.4";
455628
+ const version2 = process.env.DEMO_VERSION ?? "1.77.6";
455580
455629
  const serverUrl = getDirectConnectServerUrl();
455581
455630
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
455582
455631
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -456443,7 +456492,7 @@ function LogoV2() {
456443
456492
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
456444
456493
  t2 = () => {
456445
456494
  const currentConfig2 = getGlobalConfig();
456446
- if (currentConfig2.lastReleaseNotesSeen === "1.77.4") {
456495
+ if (currentConfig2.lastReleaseNotesSeen === "1.77.6") {
456447
456496
  return;
456448
456497
  }
456449
456498
  saveGlobalConfig(_temp325);
@@ -457128,12 +457177,12 @@ function LogoV2() {
457128
457177
  return t41;
457129
457178
  }
457130
457179
  function _temp325(current) {
457131
- if (current.lastReleaseNotesSeen === "1.77.4") {
457180
+ if (current.lastReleaseNotesSeen === "1.77.6") {
457132
457181
  return current;
457133
457182
  }
457134
457183
  return {
457135
457184
  ...current,
457136
- lastReleaseNotesSeen: "1.77.4"
457185
+ lastReleaseNotesSeen: "1.77.6"
457137
457186
  };
457138
457187
  }
457139
457188
  function _temp241(s_0) {
@@ -473947,7 +473996,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
473947
473996
  if (spec.name !== specName) {
473948
473997
  throw new Error("Agentic CI workflow spec name does not match");
473949
473998
  }
473950
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.77.4" : "1.77.4");
473999
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.77.6" : "1.77.6");
473951
474000
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
473952
474001
  throw new Error("invalid ur-agent package version");
473953
474002
  }
@@ -474940,7 +474989,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
474940
474989
  path: ".github/workflows/ur.yml",
474941
474990
  root: "project",
474942
474991
  content: compileAgenticCiWorkflow("default", {
474943
- packageVersion: typeof MACRO !== "undefined" ? "1.77.4" : "1.77.4"
474992
+ packageVersion: typeof MACRO !== "undefined" ? "1.77.6" : "1.77.6"
474944
474993
  })
474945
474994
  },
474946
474995
  {
@@ -475003,7 +475052,7 @@ function value(tokens, flag) {
475003
475052
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
475004
475053
  }
475005
475054
  function cliVersion() {
475006
- return typeof MACRO !== "undefined" ? "1.77.4" : "1.77.4";
475055
+ return typeof MACRO !== "undefined" ? "1.77.6" : "1.77.6";
475007
475056
  }
475008
475057
  function workflowPath(cwd2) {
475009
475058
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -480859,7 +480908,7 @@ function createAcpStdioApp(deps) {
480859
480908
  }
480860
480909
  },
480861
480910
  authMethods: [],
480862
- agentInfo: { name: "UR-Nexus", version: "1.77.4" }
480911
+ agentInfo: { name: "UR-Nexus", version: "1.77.6" }
480863
480912
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
480864
480913
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
480865
480914
  await runtime2.announce({
@@ -480956,7 +481005,7 @@ function createAcpStdioAgent(deps) {
480956
481005
  }
480957
481006
  },
480958
481007
  authMethods: [],
480959
- agentInfo: { name: "UR-Nexus", version: "1.77.4" }
481008
+ agentInfo: { name: "UR-Nexus", version: "1.77.6" }
480960
481009
  });
480961
481010
  return;
480962
481011
  case "authenticate":
@@ -690416,7 +690465,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
690416
690465
  smapsRollup,
690417
690466
  platform: process.platform,
690418
690467
  nodeVersion: process.version,
690419
- ccVersion: "1.77.4"
690468
+ ccVersion: "1.77.6"
690420
690469
  };
690421
690470
  }
690422
690471
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -690996,7 +691045,7 @@ var init_bridge_kick = __esm(() => {
690996
691045
  var call154 = async () => {
690997
691046
  return {
690998
691047
  type: "text",
690999
- value: "1.77.4"
691048
+ value: "1.77.6"
691000
691049
  };
691001
691050
  }, version2, version_default;
691002
691051
  var init_version = __esm(() => {
@@ -702263,7 +702312,7 @@ function generateHtmlReport(data, insights) {
702263
702312
  </html>`;
702264
702313
  }
702265
702314
  function buildExportData(data, insights, facets, remoteStats) {
702266
- const version3 = typeof MACRO !== "undefined" ? "1.77.4" : "unknown";
702315
+ const version3 = typeof MACRO !== "undefined" ? "1.77.6" : "unknown";
702267
702316
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
702268
702317
  const facets_summary = {
702269
702318
  total: facets.size,
@@ -706577,7 +706626,7 @@ var init_sessionStorage = __esm(() => {
706577
706626
  init_settings2();
706578
706627
  init_slowOperations();
706579
706628
  init_uuid();
706580
- VERSION7 = typeof MACRO !== "undefined" ? "1.77.4" : "unknown";
706629
+ VERSION7 = typeof MACRO !== "undefined" ? "1.77.6" : "unknown";
706581
706630
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
706582
706631
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
706583
706632
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -707792,7 +707841,7 @@ var init_filesystem = __esm(() => {
707792
707841
  });
707793
707842
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
707794
707843
  const nonce = randomBytes20(16).toString("hex");
707795
- return join232(getURTempDir(), "bundled-skills", "1.77.4", nonce);
707844
+ return join232(getURTempDir(), "bundled-skills", "1.77.6", nonce);
707796
707845
  });
707797
707846
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
707798
707847
  });
@@ -713431,6 +713480,8 @@ Focus text output on:
713431
713480
  - High-level status updates at natural milestones
713432
713481
  - Errors or blockers that change the plan
713433
713482
 
713483
+ Reason silently, then act. Working through a problem \u2014 weighing causes, checking arithmetic, deciding between fixes, talking yourself through what a test failure means \u2014 is thinking, not output. Do it, then emit the decision and the tool call. A paragraph that starts "Wait", "Maybe", "Let me think", "The issue is", or that revises itself mid-sentence, belongs nowhere in user-facing text.
713484
+
713434
713485
  Finishing a task is not an invitation to write at length. The work is in the files and the tool calls; the final message only says what changed and anything the user must act on. Specifically:
713435
713486
  - Never paste code, file contents, or diffs you already wrote to disk. Cite \`file_path:line\` instead. The user can open the file.
713436
713487
  - Report an audit, review, or investigation as its findings \u2014 one line each, and only the ones that matter. Do not narrate how you searched or restate what you read.
@@ -714147,7 +714198,7 @@ function computeFingerprint(messageText2, version3) {
714147
714198
  }
714148
714199
  function computeFingerprintFromMessages(messages) {
714149
714200
  const firstMessageText = extractFirstMessageText(messages);
714150
- return computeFingerprint(firstMessageText, "1.77.4");
714201
+ return computeFingerprint(firstMessageText, "1.77.6");
714151
714202
  }
714152
714203
  var FINGERPRINT_SALT = "59cf53e54c78";
714153
714204
  var init_fingerprint = () => {};
@@ -716069,7 +716120,7 @@ async function sideQuery(opts) {
716069
716120
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
716070
716121
  }
716071
716122
  const messageText2 = extractFirstUserMessageText(messages);
716072
- const fingerprint2 = computeFingerprint(messageText2, "1.77.4");
716123
+ const fingerprint2 = computeFingerprint(messageText2, "1.77.6");
716073
716124
  const attributionHeader = getAttributionHeader(fingerprint2);
716074
716125
  const systemBlocks = [
716075
716126
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -720906,7 +720957,7 @@ function buildSystemInitMessage(inputs) {
720906
720957
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
720907
720958
  apiKeySource: getURHQApiKeyWithSource().source,
720908
720959
  betas: getSdkBetas(),
720909
- ur_version: "1.77.4",
720960
+ ur_version: "1.77.6",
720910
720961
  output_style: outputStyle2,
720911
720962
  agents: inputs.agents.map((agent2) => agent2.agentType),
720912
720963
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -734778,7 +734829,7 @@ var init_useVoiceEnabled = __esm(() => {
734778
734829
  function getSemverPart(version3) {
734779
734830
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
734780
734831
  }
734781
- function useUpdateNotification(updatedVersion, initialVersion = "1.77.4") {
734832
+ function useUpdateNotification(updatedVersion, initialVersion = "1.77.6") {
734782
734833
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react223.useState(() => getSemverPart(initialVersion));
734783
734834
  if (!updatedVersion) {
734784
734835
  return null;
@@ -734827,7 +734878,7 @@ function AutoUpdater({
734827
734878
  return;
734828
734879
  }
734829
734880
  if (false) {}
734830
- const currentVersion = "1.77.4";
734881
+ const currentVersion = "1.77.6";
734831
734882
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
734832
734883
  let latestVersion = await getLatestVersion(channel);
734833
734884
  const isDisabled = isAutoUpdaterDisabled();
@@ -735056,12 +735107,12 @@ function NativeAutoUpdater({
735056
735107
  logEvent("tengu_native_auto_updater_start", {});
735057
735108
  try {
735058
735109
  const maxVersion = await getMaxVersion();
735059
- if (maxVersion && gt("1.77.4", maxVersion)) {
735110
+ if (maxVersion && gt("1.77.6", maxVersion)) {
735060
735111
  const msg = await getMaxVersionMessage();
735061
735112
  setMaxVersionIssue(msg ?? "affects your version");
735062
735113
  }
735063
735114
  const result = await installLatest(channel);
735064
- const currentVersion = "1.77.4";
735115
+ const currentVersion = "1.77.6";
735065
735116
  const latencyMs = Date.now() - startTime;
735066
735117
  if (result.lockFailed) {
735067
735118
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -735198,17 +735249,17 @@ function PackageManagerAutoUpdater(t0) {
735198
735249
  const maxVersion = await getMaxVersion();
735199
735250
  if (maxVersion && latest && gt(latest, maxVersion)) {
735200
735251
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
735201
- if (gte("1.77.4", maxVersion)) {
735202
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.77.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
735252
+ if (gte("1.77.6", maxVersion)) {
735253
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.77.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
735203
735254
  setUpdateAvailable(false);
735204
735255
  return;
735205
735256
  }
735206
735257
  latest = maxVersion;
735207
735258
  }
735208
- const hasUpdate = latest && !gte("1.77.4", latest) && !shouldSkipVersion(latest);
735259
+ const hasUpdate = latest && !gte("1.77.6", latest) && !shouldSkipVersion(latest);
735209
735260
  setUpdateAvailable(!!hasUpdate);
735210
735261
  if (hasUpdate) {
735211
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.77.4"} -> ${latest}`);
735262
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.77.6"} -> ${latest}`);
735212
735263
  }
735213
735264
  };
735214
735265
  $2[0] = t1;
@@ -735242,7 +735293,7 @@ function PackageManagerAutoUpdater(t0) {
735242
735293
  wrap: "truncate",
735243
735294
  children: [
735244
735295
  "currentVersion: ",
735245
- "1.77.4"
735296
+ "1.77.6"
735246
735297
  ]
735247
735298
  }, undefined, true, undefined, this);
735248
735299
  $2[3] = verbose;
@@ -746042,7 +746093,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
746042
746093
  project_dir: getOriginalCwd(),
746043
746094
  added_dirs: addedDirs
746044
746095
  },
746045
- version: "1.77.4",
746096
+ version: "1.77.6",
746046
746097
  output_style: {
746047
746098
  name: outputStyleName
746048
746099
  },
@@ -746177,7 +746228,7 @@ function StatusLineInner({
746177
746228
  const attention = customStatusError ?? taskAttention;
746178
746229
  const terminalSize = React132.useContext(TerminalSizeContext);
746179
746230
  const defaultStatusLineText = buildDefaultStatusBar({
746180
- version: "1.77.4",
746231
+ version: "1.77.6",
746181
746232
  providerLabel: providerRuntime.providerLabel,
746182
746233
  authMode: providerRuntime.authLabel,
746183
746234
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -758462,7 +758513,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
758462
758513
  } catch {}
758463
758514
  const data = {
758464
758515
  trigger: trigger2,
758465
- version: "1.77.4",
758516
+ version: "1.77.6",
758466
758517
  platform: process.platform,
758467
758518
  transcript,
758468
758519
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -770836,7 +770887,7 @@ function WelcomeV2() {
770836
770887
  dimColor: true,
770837
770888
  children: [
770838
770889
  "v",
770839
- "1.77.4"
770890
+ "1.77.6"
770840
770891
  ]
770841
770892
  }, undefined, true, undefined, this)
770842
770893
  ]
@@ -772096,7 +772147,7 @@ function completeOnboarding() {
772096
772147
  saveGlobalConfig((current) => ({
772097
772148
  ...current,
772098
772149
  hasCompletedOnboarding: true,
772099
- lastOnboardingVersion: "1.77.4"
772150
+ lastOnboardingVersion: "1.77.6"
772100
772151
  }));
772101
772152
  }
772102
772153
  function showDialog(root2, renderer) {
@@ -777140,7 +777191,7 @@ function appendToLog(path24, message) {
777140
777191
  cwd: getFsImplementation().cwd(),
777141
777192
  userType: process.env.USER_TYPE,
777142
777193
  sessionId: getSessionId(),
777143
- version: "1.77.4"
777194
+ version: "1.77.6"
777144
777195
  };
777145
777196
  getLogWriter(path24).write(messageWithTimestamp);
777146
777197
  }
@@ -781299,8 +781350,8 @@ async function getEnvLessBridgeConfig() {
781299
781350
  }
781300
781351
  async function checkEnvLessBridgeMinVersion() {
781301
781352
  const cfg = await getEnvLessBridgeConfig();
781302
- if (cfg.min_version && lt("1.77.4", cfg.min_version)) {
781303
- return `Your version of UR (${"1.77.4"}) is too old for Remote Control.
781353
+ if (cfg.min_version && lt("1.77.6", cfg.min_version)) {
781354
+ return `Your version of UR (${"1.77.6"}) is too old for Remote Control.
781304
781355
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
781305
781356
  }
781306
781357
  return null;
@@ -781774,7 +781825,7 @@ async function initBridgeCore(params) {
781774
781825
  const rawApi = createBridgeApiClient({
781775
781826
  baseUrl,
781776
781827
  getAccessToken,
781777
- runnerVersion: "1.77.4",
781828
+ runnerVersion: "1.77.6",
781778
781829
  onDebug: logForDebugging,
781779
781830
  onAuth401,
781780
781831
  getTrustedDeviceToken
@@ -791247,7 +791298,7 @@ function getAgUiCapabilities() {
791247
791298
  name: "UR-Nexus",
791248
791299
  type: "ur-nexus",
791249
791300
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
791250
- version: "1.77.4",
791301
+ version: "1.77.6",
791251
791302
  provider: "UR",
791252
791303
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
791253
791304
  },
@@ -792387,7 +792438,7 @@ function createMCPServer(cwd4, debug2, verbose) {
792387
792438
  };
792388
792439
  const server2 = new Server({
792389
792440
  name: "ur-nexus",
792390
- version: "1.77.4"
792441
+ version: "1.77.6"
792391
792442
  }, {
792392
792443
  capabilities: {
792393
792444
  tools: {}
@@ -793545,7 +793596,7 @@ function thrownResponse(error40) {
793545
793596
  }
793546
793597
  async function createUrMcp2026Runtime(options4) {
793547
793598
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
793548
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.77.4" }, { capabilities: {} });
793599
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.77.6" }, { capabilities: {} });
793549
793600
  const [clientTransport, serverTransport] = createLinkedTransportPair();
793550
793601
  try {
793551
793602
  await server2.connect(serverTransport);
@@ -793556,7 +793607,7 @@ async function createUrMcp2026Runtime(options4) {
793556
793607
  }
793557
793608
  const runtime2 = new Mcp2026Runtime({
793558
793609
  cwd: options4.cwd,
793559
- version: "1.77.4",
793610
+ version: "1.77.6",
793560
793611
  backend: {
793561
793612
  listTools: async () => {
793562
793613
  const listed = await client2.listTools();
@@ -795697,7 +795748,7 @@ async function update() {
795697
795748
  logEvent("tengu_update_check", {});
795698
795749
  const diagnostic2 = await getDoctorDiagnostic();
795699
795750
  const result = await checkUpgradeStatus({
795700
- currentVersion: "1.77.4",
795751
+ currentVersion: "1.77.6",
795701
795752
  packageName: UR_AGENT_PACKAGE_NAME,
795702
795753
  installationType: diagnostic2.installationType,
795703
795754
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -797013,7 +797064,7 @@ ${customInstructions}` : customInstructions;
797013
797064
  }
797014
797065
  }
797015
797066
  logForDiagnosticsNoPII("info", "started", {
797016
- version: "1.77.4",
797067
+ version: "1.77.6",
797017
797068
  is_native_binary: isInBundledMode()
797018
797069
  });
797019
797070
  registerCleanup(async () => {
@@ -797799,7 +797850,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
797799
797850
  pendingHookMessages
797800
797851
  }, renderAndRun);
797801
797852
  }
797802
- }).version("1.77.4 (UR-Nexus)", "-v, --version", "Output the version number");
797853
+ }).version("1.77.6 (UR-Nexus)", "-v, --version", "Output the version number");
797803
797854
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
797804
797855
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
797805
797856
  if (canUserConfigureAdvisor()) {
@@ -798851,7 +798902,7 @@ if (false) {}
798851
798902
  async function main2() {
798852
798903
  const args = process.argv.slice(2);
798853
798904
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
798854
- console.log(`${"1.77.4"} (UR-Nexus)`);
798905
+ console.log(`${"1.77.6"} (UR-Nexus)`);
798855
798906
  return;
798856
798907
  }
798857
798908
  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.4 (UR-Nexus)"
22
+ # expected for this release: "1.77.6 (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.4</p>
48
+ <p class="eyebrow">Version 1.77.6</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.4"
10
+ version = "1.77.6"
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.4",
5
+ "version": "1.77.6",
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.4",
3
+ "version": "1.77.6",
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",