ur-agent 1.77.5 → 1.77.7

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,32 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.77.7
4
+
5
+ - A missing identifier now names what exists, instead of inviting another
6
+ guess at the same one. `TaskUpdate` and `TaskGet` answered "Task not found"
7
+ without saying whether the id was wrong, the list had been archived into a
8
+ new generation, or the task was deleted — so the usual response was to retry
9
+ it unchanged. Both now list the existing task ids, or say the list is empty.
10
+ - The same treatment for the two other tools that withheld it: `Skill` lists
11
+ the invocable skills when a name does not match, and `NotebookEdit` lists the
12
+ real cell ids, or the valid index range when the notebook's cells have no
13
+ ids. The MCP resource tools already worked this way; these are now
14
+ consistent with them.
15
+
16
+ ## 1.77.6
17
+
18
+ - A request body rejected for its size now takes the prompt-too-long recovery
19
+ path instead of killing the turn. Ollama fronts the model with a Go HTTP
20
+ server that rejects an oversized body before the model sees it, reporting
21
+ `400: http: request body too large` — a message naming neither a prompt nor a
22
+ token count, so it missed the matcher and none of the compaction-and-retry
23
+ recovery ran. Proxy and gateway phrasings of the same condition are covered
24
+ too. An unrelated 400 is not swept in.
25
+ - Deliberation stays out of user-facing text. The prompt asked for brevity but
26
+ never said that weighing causes, checking arithmetic, and talking through
27
+ what a test failure means are thinking rather than output — so they were
28
+ emitted verbatim, at length, mid-task.
29
+
3
30
  ## 1.77.5
4
31
 
5
32
  - A tool call the model writes as text is now recovered for every provider.
package/dist/cli.js CHANGED
@@ -107552,7 +107552,7 @@ var init_auth = __esm(() => {
107552
107552
 
107553
107553
  // src/utils/userAgent.ts
107554
107554
  function getURCodeUserAgent() {
107555
- return `ur/${"1.77.5"}`;
107555
+ return `ur/${"1.77.7"}`;
107556
107556
  }
107557
107557
 
107558
107558
  // src/utils/workloadContext.ts
@@ -107574,7 +107574,7 @@ function getUserAgent() {
107574
107574
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
107575
107575
  const workload = getWorkload();
107576
107576
  const workloadSuffix = workload ? `, workload/${workload}` : "";
107577
- return `ur-cli/${"1.77.5"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107577
+ return `ur-cli/${"1.77.7"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107578
107578
  }
107579
107579
  function getMCPUserAgent() {
107580
107580
  const parts = [];
@@ -107588,7 +107588,7 @@ function getMCPUserAgent() {
107588
107588
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
107589
107589
  }
107590
107590
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
107591
- return `ur/${"1.77.5"}${suffix}`;
107591
+ return `ur/${"1.77.7"}${suffix}`;
107592
107592
  }
107593
107593
  function getWebFetchUserAgent() {
107594
107594
  return `UR-User (${getURCodeUserAgent()})`;
@@ -107726,7 +107726,7 @@ var init_user = __esm(() => {
107726
107726
  deviceId,
107727
107727
  sessionId: getSessionId(),
107728
107728
  email: getEmail(),
107729
- appVersion: "1.77.5",
107729
+ appVersion: "1.77.7",
107730
107730
  platform: getHostPlatformForAnalytics(),
107731
107731
  organizationUuid,
107732
107732
  accountUuid,
@@ -115613,7 +115613,7 @@ var init_metadata = __esm(() => {
115613
115613
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
115614
115614
  WHITESPACE_REGEX = /\s+/;
115615
115615
  getVersionBase = memoize_default(() => {
115616
- const match = "1.77.5".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115616
+ const match = "1.77.7".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115617
115617
  return match ? match[0] : undefined;
115618
115618
  });
115619
115619
  buildEnvContext = memoize_default(async () => {
@@ -115653,7 +115653,7 @@ var init_metadata = __esm(() => {
115653
115653
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
115654
115654
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
115655
115655
  isURAiAuth: isURAISubscriber(),
115656
- version: "1.77.5",
115656
+ version: "1.77.7",
115657
115657
  versionBase: getVersionBase(),
115658
115658
  buildTime: "",
115659
115659
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -116323,7 +116323,7 @@ function initialize1PEventLogging() {
116323
116323
  const platform2 = getPlatform();
116324
116324
  const attributes = {
116325
116325
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
116326
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.77.5"
116326
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.77.7"
116327
116327
  };
116328
116328
  if (platform2 === "wsl") {
116329
116329
  const wslVersion = getWslVersion();
@@ -116351,7 +116351,7 @@ function initialize1PEventLogging() {
116351
116351
  })
116352
116352
  ]
116353
116353
  });
116354
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.77.5");
116354
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.77.7");
116355
116355
  }
116356
116356
  async function reinitialize1PEventLoggingIfConfigChanged() {
116357
116357
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -126133,7 +126133,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
126133
126133
  function formatA2AAgentCard(options = {}, pretty = true) {
126134
126134
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
126135
126135
  }
126136
- var urVersion = "1.77.5", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126136
+ var urVersion = "1.77.7", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126137
126137
  var init_trends = __esm(() => {
126138
126138
  init_a2aCardSignature();
126139
126139
  coverage = [
@@ -128936,7 +128936,7 @@ function getAttributionHeader(fingerprint) {
128936
128936
  if (!isAttributionHeaderEnabled()) {
128937
128937
  return "";
128938
128938
  }
128939
- const version2 = `${"1.77.5"}.${fingerprint}`;
128939
+ const version2 = `${"1.77.7"}.${fingerprint}`;
128940
128940
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
128941
128941
  const cch = "";
128942
128942
  const workload = getWorkload();
@@ -156940,7 +156940,7 @@ var init_projectSafety = __esm(() => {
156940
156940
  function getInstruments() {
156941
156941
  if (instruments)
156942
156942
  return instruments;
156943
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.77.5");
156943
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.77.7");
156944
156944
  instruments = {
156945
156945
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
156946
156946
  description: "GenAI operation duration.",
@@ -157038,7 +157038,7 @@ function genAiAgentAttributes() {
157038
157038
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
157039
157039
  "gen_ai.provider.name": "ur",
157040
157040
  "gen_ai.agent.name": "UR-Nexus",
157041
- "gen_ai.agent.version": "1.77.5"
157041
+ "gen_ai.agent.version": "1.77.7"
157042
157042
  };
157043
157043
  }
157044
157044
  function genAiWorkflowAttributes(workflowName) {
@@ -157054,7 +157054,7 @@ function genAiWorkflowAttributes(workflowName) {
157054
157054
  function startGenAiWorkflowSpan(workflowName) {
157055
157055
  const attributes = genAiWorkflowAttributes(workflowName);
157056
157056
  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.5").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157057
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.7").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157058
157058
  }
157059
157059
  function endGenAiWorkflowSpan(span, options2 = {}) {
157060
157060
  try {
@@ -157092,7 +157092,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
157092
157092
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
157093
157093
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
157094
157094
  }
157095
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.5").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157095
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.7").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157096
157096
  }
157097
157097
  function endGenAiMemorySpan(span, options2 = {}) {
157098
157098
  try {
@@ -250740,7 +250740,7 @@ function getTelemetryAttributes() {
250740
250740
  attributes["session.id"] = sessionId;
250741
250741
  }
250742
250742
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
250743
- attributes["app.version"] = "1.77.5";
250743
+ attributes["app.version"] = "1.77.7";
250744
250744
  }
250745
250745
  const oauthAccount = getOauthAccountInfo();
250746
250746
  if (oauthAccount) {
@@ -297247,7 +297247,7 @@ function getInstallationEnv() {
297247
297247
  return;
297248
297248
  }
297249
297249
  function getURCodeVersion() {
297250
- return "1.77.5";
297250
+ return "1.77.7";
297251
297251
  }
297252
297252
  async function getInstalledVSCodeExtensionVersion(command) {
297253
297253
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -304578,7 +304578,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
304578
304578
  const client2 = new Client({
304579
304579
  name: "ur",
304580
304580
  title: "UR",
304581
- version: "1.77.5",
304581
+ version: "1.77.7",
304582
304582
  description: "UR-Nexus autonomous engineering workflow engine",
304583
304583
  websiteUrl: PRODUCT_URL
304584
304584
  }, {
@@ -304938,7 +304938,7 @@ var init_client5 = __esm(() => {
304938
304938
  const client2 = new Client({
304939
304939
  name: "ur",
304940
304940
  title: "UR",
304941
- version: "1.77.5",
304941
+ version: "1.77.7",
304942
304942
  description: "UR-Nexus autonomous engineering workflow engine",
304943
304943
  websiteUrl: PRODUCT_URL
304944
304944
  }, {
@@ -317491,7 +317491,7 @@ async function createRuntime() {
317491
317491
  bootstrapTelemetry();
317492
317492
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
317493
317493
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
317494
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.77.5"
317494
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.77.7"
317495
317495
  }));
317496
317496
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
317497
317497
  resource,
@@ -317524,11 +317524,11 @@ async function createRuntime() {
317524
317524
  setMeterProvider(meterProvider);
317525
317525
  setLoggerProvider(loggerProvider);
317526
317526
  if (meterProvider) {
317527
- const meter = meterProvider.getMeter("ur-agent", "1.77.5");
317527
+ const meter = meterProvider.getMeter("ur-agent", "1.77.7");
317528
317528
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
317529
317529
  }
317530
317530
  if (loggerProvider) {
317531
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.77.5"));
317531
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.77.7"));
317532
317532
  }
317533
317533
  if (!cleanupRegistered2) {
317534
317534
  cleanupRegistered2 = true;
@@ -318190,9 +318190,9 @@ async function assertMinVersion() {
318190
318190
  if (false) {}
318191
318191
  try {
318192
318192
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
318193
- if (versionConfig.minVersion && lt("1.77.5", versionConfig.minVersion)) {
318193
+ if (versionConfig.minVersion && lt("1.77.7", versionConfig.minVersion)) {
318194
318194
  console.error(`
318195
- It looks like your version of UR (${"1.77.5"}) needs an update.
318195
+ It looks like your version of UR (${"1.77.7"}) needs an update.
318196
318196
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
318197
318197
 
318198
318198
  To update, please run:
@@ -318408,7 +318408,7 @@ async function installGlobalPackage(specificVersion) {
318408
318408
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
318409
318409
  logEvent("tengu_auto_updater_lock_contention", {
318410
318410
  pid: process.pid,
318411
- currentVersion: "1.77.5"
318411
+ currentVersion: "1.77.7"
318412
318412
  });
318413
318413
  return "in_progress";
318414
318414
  }
@@ -318417,7 +318417,7 @@ async function installGlobalPackage(specificVersion) {
318417
318417
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
318418
318418
  logError2(new Error("Windows NPM detected in WSL environment"));
318419
318419
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
318420
- currentVersion: "1.77.5"
318420
+ currentVersion: "1.77.7"
318421
318421
  });
318422
318422
  console.error(`
318423
318423
  Error: Windows NPM detected in WSL
@@ -318952,7 +318952,7 @@ function detectLinuxGlobPatternWarnings() {
318952
318952
  }
318953
318953
  async function getDoctorDiagnostic() {
318954
318954
  const installationType = await getCurrentInstallationType();
318955
- const version2 = typeof MACRO !== "undefined" ? "1.77.5" : "unknown";
318955
+ const version2 = typeof MACRO !== "undefined" ? "1.77.7" : "unknown";
318956
318956
  const installationPath = await getInstallationPath();
318957
318957
  const invokedBinary = getInvokedBinary();
318958
318958
  const multipleInstallations = await detectMultipleInstallations();
@@ -319887,8 +319887,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319887
319887
  const maxVersion = await getMaxVersion();
319888
319888
  if (maxVersion && gt(version2, maxVersion)) {
319889
319889
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
319890
- if (gte("1.77.5", maxVersion)) {
319891
- logForDebugging(`Native installer: current version ${"1.77.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
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`);
319892
319892
  logEvent("tengu_native_update_skipped_max_version", {
319893
319893
  latency_ms: Date.now() - startTime,
319894
319894
  max_version: maxVersion,
@@ -319899,7 +319899,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319899
319899
  version2 = maxVersion;
319900
319900
  }
319901
319901
  }
319902
- if (!forceReinstall && version2 === "1.77.5" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319902
+ if (!forceReinstall && version2 === "1.77.7" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319903
319903
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
319904
319904
  logEvent("tengu_native_update_complete", {
319905
319905
  latency_ms: Date.now() - startTime,
@@ -347422,9 +347422,10 @@ var init_SkillTool = __esm(() => {
347422
347422
  const commands = await getAllCommands(context5);
347423
347423
  const foundCommand = findCommand(normalizedCommandName, commands);
347424
347424
  if (!foundCommand) {
347425
+ const invocable = commands.filter((command) => command.userInvocable !== false).map((command) => command.name).sort();
347425
347426
  return {
347426
347427
  result: false,
347427
- message: `Unknown skill: ${normalizedCommandName}`,
347428
+ message: invocable.length > 0 ? `Unknown skill: ${normalizedCommandName}. Available skills: ${invocable.join(", ")}` : `Unknown skill: ${normalizedCommandName}. No skills are available in this session.`,
347428
347429
  errorCode: 2
347429
347430
  };
347430
347431
  }
@@ -368648,14 +368649,15 @@ var init_NotebookEditTool = __esm(() => {
368648
368649
  if (!notebook.cells[parsedCellIndex]) {
368649
368650
  return {
368650
368651
  result: false,
368651
- message: `Cell with index ${parsedCellIndex} does not exist in notebook.`,
368652
+ message: `Cell with index ${parsedCellIndex} does not exist in notebook. The notebook has ${notebook.cells.length} cells (valid indices 0-${notebook.cells.length - 1}).`,
368652
368653
  errorCode: 7
368653
368654
  };
368654
368655
  }
368655
368656
  } else {
368657
+ const known = notebook.cells.map((cell) => cell.id).filter((id) => typeof id === "string");
368656
368658
  return {
368657
368659
  result: false,
368658
- message: `Cell with ID "${cell_id}" not found in notebook.`,
368660
+ message: known.length > 0 ? `Cell with ID "${cell_id}" not found in notebook. Existing cell IDs: ${known.join(", ")}.` : `Cell with ID "${cell_id}" not found in notebook. Its cells have no IDs \u2014 address them by index instead (cell-0 through cell-${notebook.cells.length - 1}).`,
368659
368661
  errorCode: 8
368660
368662
  };
368661
368663
  }
@@ -379623,7 +379625,8 @@ var init_TaskGetTool = __esm(() => {
379623
379625
  status: TaskStatusSchema2(),
379624
379626
  blocks: exports_external.array(exports_external.string()),
379625
379627
  blockedBy: exports_external.array(exports_external.string())
379626
- }).nullable()
379628
+ }).nullable(),
379629
+ availableTaskIds: exports_external.array(exports_external.string()).optional()
379627
379630
  }));
379628
379631
  TaskGetTool = buildTool({
379629
379632
  name: TASK_GET_TOOL_NAME,
@@ -379666,7 +379669,8 @@ var init_TaskGetTool = __esm(() => {
379666
379669
  if (!task) {
379667
379670
  return {
379668
379671
  data: {
379669
- task: null
379672
+ task: null,
379673
+ availableTaskIds: (await listTasks(taskListId)).map((entry) => entry.id)
379670
379674
  }
379671
379675
  };
379672
379676
  }
@@ -379684,12 +379688,13 @@ var init_TaskGetTool = __esm(() => {
379684
379688
  };
379685
379689
  },
379686
379690
  mapToolResultToToolResultBlockParam(content, toolUseID) {
379687
- const { task } = content;
379691
+ const { task, availableTaskIds } = content;
379688
379692
  if (!task) {
379693
+ const known = (availableTaskIds ?? []).map((id) => `#${id}`);
379689
379694
  return {
379690
379695
  tool_use_id: toolUseID,
379691
379696
  type: "tool_result",
379692
- content: "Task not found"
379697
+ content: known.length > 0 ? `Task not found. Existing tasks: ${known.join(", ")}.` : "Task not found. The task list is empty \u2014 create the task before reading it."
379693
379698
  };
379694
379699
  }
379695
379700
  const lines = [
@@ -379885,12 +379890,13 @@ var init_TaskUpdateTool = __esm(() => {
379885
379890
  });
379886
379891
  const existingTask = await getTask(taskListId, taskId);
379887
379892
  if (!existingTask) {
379893
+ const known = (await listTasks(taskListId)).map((task) => `#${task.id}`);
379888
379894
  return {
379889
379895
  data: {
379890
379896
  success: false,
379891
379897
  taskId,
379892
379898
  updatedFields: [],
379893
- error: "Task not found"
379899
+ error: known.length > 0 ? `Task #${taskId} not found. Existing tasks: ${known.join(", ")}.` : `Task #${taskId} not found. The task list is empty \u2014 create the task before updating it.`
379894
379900
  }
379895
379901
  };
379896
379902
  }
@@ -389603,7 +389609,7 @@ function isAnyTracingEnabled() {
389603
389609
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
389604
389610
  }
389605
389611
  function getTracer() {
389606
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.77.5");
389612
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.77.7");
389607
389613
  }
389608
389614
  function createSpanAttributes(spanType, customAttributes = {}) {
389609
389615
  const baseAttributes = getTelemetryAttributes();
@@ -411821,6 +411827,10 @@ function isPromptTooLongMessage(msg) {
411821
411827
  }
411822
411828
  return content.some((block2) => block2.type === "text" && block2.text.startsWith(PROMPT_TOO_LONG_ERROR_MESSAGE));
411823
411829
  }
411830
+ function isOversizedRequestBodyMessage(rawMessage) {
411831
+ const text = rawMessage.toLowerCase();
411832
+ return text.includes("request body too large") || text.includes("request entity too large") || text.includes("payload too large") || text.includes("body size limit");
411833
+ }
411824
411834
  function parsePromptTooLongTokenCounts(rawMessage) {
411825
411835
  const match = rawMessage.match(/prompt is too long[^0-9]*(\d+)\s*tokens?\s*>\s*(\d+)/i);
411826
411836
  return {
@@ -412065,7 +412075,7 @@ function getAssistantMessageFromError(error40, model, options2) {
412065
412075
  error: "rate_limit"
412066
412076
  });
412067
412077
  }
412068
- if (error40 instanceof Error && error40.message.toLowerCase().includes("prompt is too long")) {
412078
+ if (error40 instanceof Error && (error40.message.toLowerCase().includes("prompt is too long") || isOversizedRequestBodyMessage(error40.message))) {
412069
412079
  return createAssistantAPIErrorMessage({
412070
412080
  content: PROMPT_TOO_LONG_ERROR_MESSAGE,
412071
412081
  error: "invalid_request",
@@ -419821,7 +419831,7 @@ function Feedback({
419821
419831
  platform: env2.platform,
419822
419832
  gitRepo: envInfo.isGit,
419823
419833
  terminal: env2.terminal,
419824
- version: "1.77.5",
419834
+ version: "1.77.7",
419825
419835
  transcript: normalizeMessagesForAPI(messages),
419826
419836
  errors: sanitizedErrors,
419827
419837
  lastApiRequest: getLastAPIRequest(),
@@ -420013,7 +420023,7 @@ function Feedback({
420013
420023
  ", ",
420014
420024
  env2.terminal,
420015
420025
  ", v",
420016
- "1.77.5"
420026
+ "1.77.7"
420017
420027
  ]
420018
420028
  }, undefined, true, undefined, this)
420019
420029
  ]
@@ -420119,7 +420129,7 @@ ${sanitizedDescription}
420119
420129
  ` + `**Environment Info**
420120
420130
  ` + `- Platform: ${env2.platform}
420121
420131
  ` + `- Terminal: ${env2.terminal}
420122
- ` + `- Version: ${"1.77.5"}
420132
+ ` + `- Version: ${"1.77.7"}
420123
420133
  ` + `- Feedback ID: ${feedbackId}
420124
420134
  ` + `
420125
420135
  **Errors**
@@ -423229,7 +423239,7 @@ function buildPrimarySection() {
423229
423239
  }, undefined, false, undefined, this);
423230
423240
  return [{
423231
423241
  label: "Version",
423232
- value: "1.77.5"
423242
+ value: "1.77.7"
423233
423243
  }, {
423234
423244
  label: "Session name",
423235
423245
  value: nameValue
@@ -426611,7 +426621,7 @@ function Config({
426611
426621
  }
426612
426622
  }, undefined, false, undefined, this)
426613
426623
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
426614
- currentVersion: "1.77.5",
426624
+ currentVersion: "1.77.7",
426615
426625
  onChoice: (choice) => {
426616
426626
  setShowSubmenu(null);
426617
426627
  setTabsHidden(false);
@@ -426623,7 +426633,7 @@ function Config({
426623
426633
  autoUpdatesChannel: "stable"
426624
426634
  };
426625
426635
  if (choice === "stay") {
426626
- newSettings.minimumVersion = "1.77.5";
426636
+ newSettings.minimumVersion = "1.77.7";
426627
426637
  }
426628
426638
  updateSettingsForSource("userSettings", newSettings);
426629
426639
  setSettingsData((prev_27) => ({
@@ -434687,7 +434697,7 @@ function HelpV2(t0) {
434687
434697
  let t6;
434688
434698
  if ($2[31] !== tabs) {
434689
434699
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
434690
- title: `UR v${"1.77.5"}`,
434700
+ title: `UR v${"1.77.7"}`,
434691
434701
  color: "professionalBlue",
434692
434702
  defaultTab: "general",
434693
434703
  children: tabs
@@ -435620,7 +435630,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
435620
435630
  async function handleInitialize(options2) {
435621
435631
  return {
435622
435632
  name: "UR",
435623
- version: "1.77.5",
435633
+ version: "1.77.7",
435624
435634
  protocolVersion: "0.1.0",
435625
435635
  workspaceRoot: options2.cwd,
435626
435636
  capabilities: {
@@ -452728,7 +452738,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
452728
452738
  return [];
452729
452739
  }
452730
452740
  }
452731
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.5") {
452741
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.7") {
452732
452742
  if (process.env.USER_TYPE === "ant") {
452733
452743
  const changelog = "";
452734
452744
  if (changelog) {
@@ -452755,7 +452765,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.5")
452755
452765
  releaseNotes
452756
452766
  };
452757
452767
  }
452758
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.77.5") {
452768
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.77.7") {
452759
452769
  if (process.env.USER_TYPE === "ant") {
452760
452770
  const changelog = "";
452761
452771
  if (changelog) {
@@ -455621,7 +455631,7 @@ function getRecentActivitySync() {
455621
455631
  return cachedActivity;
455622
455632
  }
455623
455633
  function getLogoDisplayData() {
455624
- const version2 = process.env.DEMO_VERSION ?? "1.77.5";
455634
+ const version2 = process.env.DEMO_VERSION ?? "1.77.7";
455625
455635
  const serverUrl = getDirectConnectServerUrl();
455626
455636
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
455627
455637
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -456488,7 +456498,7 @@ function LogoV2() {
456488
456498
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
456489
456499
  t2 = () => {
456490
456500
  const currentConfig2 = getGlobalConfig();
456491
- if (currentConfig2.lastReleaseNotesSeen === "1.77.5") {
456501
+ if (currentConfig2.lastReleaseNotesSeen === "1.77.7") {
456492
456502
  return;
456493
456503
  }
456494
456504
  saveGlobalConfig(_temp325);
@@ -457173,12 +457183,12 @@ function LogoV2() {
457173
457183
  return t41;
457174
457184
  }
457175
457185
  function _temp325(current) {
457176
- if (current.lastReleaseNotesSeen === "1.77.5") {
457186
+ if (current.lastReleaseNotesSeen === "1.77.7") {
457177
457187
  return current;
457178
457188
  }
457179
457189
  return {
457180
457190
  ...current,
457181
- lastReleaseNotesSeen: "1.77.5"
457191
+ lastReleaseNotesSeen: "1.77.7"
457182
457192
  };
457183
457193
  }
457184
457194
  function _temp241(s_0) {
@@ -473992,7 +474002,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
473992
474002
  if (spec.name !== specName) {
473993
474003
  throw new Error("Agentic CI workflow spec name does not match");
473994
474004
  }
473995
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.77.5" : "1.77.5");
474005
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.77.7" : "1.77.7");
473996
474006
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
473997
474007
  throw new Error("invalid ur-agent package version");
473998
474008
  }
@@ -474985,7 +474995,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
474985
474995
  path: ".github/workflows/ur.yml",
474986
474996
  root: "project",
474987
474997
  content: compileAgenticCiWorkflow("default", {
474988
- packageVersion: typeof MACRO !== "undefined" ? "1.77.5" : "1.77.5"
474998
+ packageVersion: typeof MACRO !== "undefined" ? "1.77.7" : "1.77.7"
474989
474999
  })
474990
475000
  },
474991
475001
  {
@@ -475048,7 +475058,7 @@ function value(tokens, flag) {
475048
475058
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
475049
475059
  }
475050
475060
  function cliVersion() {
475051
- return typeof MACRO !== "undefined" ? "1.77.5" : "1.77.5";
475061
+ return typeof MACRO !== "undefined" ? "1.77.7" : "1.77.7";
475052
475062
  }
475053
475063
  function workflowPath(cwd2) {
475054
475064
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -480904,7 +480914,7 @@ function createAcpStdioApp(deps) {
480904
480914
  }
480905
480915
  },
480906
480916
  authMethods: [],
480907
- agentInfo: { name: "UR-Nexus", version: "1.77.5" }
480917
+ agentInfo: { name: "UR-Nexus", version: "1.77.7" }
480908
480918
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
480909
480919
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
480910
480920
  await runtime2.announce({
@@ -481001,7 +481011,7 @@ function createAcpStdioAgent(deps) {
481001
481011
  }
481002
481012
  },
481003
481013
  authMethods: [],
481004
- agentInfo: { name: "UR-Nexus", version: "1.77.5" }
481014
+ agentInfo: { name: "UR-Nexus", version: "1.77.7" }
481005
481015
  });
481006
481016
  return;
481007
481017
  case "authenticate":
@@ -690461,7 +690471,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
690461
690471
  smapsRollup,
690462
690472
  platform: process.platform,
690463
690473
  nodeVersion: process.version,
690464
- ccVersion: "1.77.5"
690474
+ ccVersion: "1.77.7"
690465
690475
  };
690466
690476
  }
690467
690477
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -691041,7 +691051,7 @@ var init_bridge_kick = __esm(() => {
691041
691051
  var call154 = async () => {
691042
691052
  return {
691043
691053
  type: "text",
691044
- value: "1.77.5"
691054
+ value: "1.77.7"
691045
691055
  };
691046
691056
  }, version2, version_default;
691047
691057
  var init_version = __esm(() => {
@@ -702308,7 +702318,7 @@ function generateHtmlReport(data, insights) {
702308
702318
  </html>`;
702309
702319
  }
702310
702320
  function buildExportData(data, insights, facets, remoteStats) {
702311
- const version3 = typeof MACRO !== "undefined" ? "1.77.5" : "unknown";
702321
+ const version3 = typeof MACRO !== "undefined" ? "1.77.7" : "unknown";
702312
702322
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
702313
702323
  const facets_summary = {
702314
702324
  total: facets.size,
@@ -706622,7 +706632,7 @@ var init_sessionStorage = __esm(() => {
706622
706632
  init_settings2();
706623
706633
  init_slowOperations();
706624
706634
  init_uuid();
706625
- VERSION7 = typeof MACRO !== "undefined" ? "1.77.5" : "unknown";
706635
+ VERSION7 = typeof MACRO !== "undefined" ? "1.77.7" : "unknown";
706626
706636
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
706627
706637
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
706628
706638
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -707837,7 +707847,7 @@ var init_filesystem = __esm(() => {
707837
707847
  });
707838
707848
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
707839
707849
  const nonce = randomBytes20(16).toString("hex");
707840
- return join232(getURTempDir(), "bundled-skills", "1.77.5", nonce);
707850
+ return join232(getURTempDir(), "bundled-skills", "1.77.7", nonce);
707841
707851
  });
707842
707852
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
707843
707853
  });
@@ -713476,6 +713486,8 @@ Focus text output on:
713476
713486
  - High-level status updates at natural milestones
713477
713487
  - Errors or blockers that change the plan
713478
713488
 
713489
+ 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.
713490
+
713479
713491
  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:
713480
713492
  - Never paste code, file contents, or diffs you already wrote to disk. Cite \`file_path:line\` instead. The user can open the file.
713481
713493
  - 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.
@@ -714192,7 +714204,7 @@ function computeFingerprint(messageText2, version3) {
714192
714204
  }
714193
714205
  function computeFingerprintFromMessages(messages) {
714194
714206
  const firstMessageText = extractFirstMessageText(messages);
714195
- return computeFingerprint(firstMessageText, "1.77.5");
714207
+ return computeFingerprint(firstMessageText, "1.77.7");
714196
714208
  }
714197
714209
  var FINGERPRINT_SALT = "59cf53e54c78";
714198
714210
  var init_fingerprint = () => {};
@@ -716114,7 +716126,7 @@ async function sideQuery(opts) {
716114
716126
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
716115
716127
  }
716116
716128
  const messageText2 = extractFirstUserMessageText(messages);
716117
- const fingerprint2 = computeFingerprint(messageText2, "1.77.5");
716129
+ const fingerprint2 = computeFingerprint(messageText2, "1.77.7");
716118
716130
  const attributionHeader = getAttributionHeader(fingerprint2);
716119
716131
  const systemBlocks = [
716120
716132
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -720951,7 +720963,7 @@ function buildSystemInitMessage(inputs) {
720951
720963
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
720952
720964
  apiKeySource: getURHQApiKeyWithSource().source,
720953
720965
  betas: getSdkBetas(),
720954
- ur_version: "1.77.5",
720966
+ ur_version: "1.77.7",
720955
720967
  output_style: outputStyle2,
720956
720968
  agents: inputs.agents.map((agent2) => agent2.agentType),
720957
720969
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -734823,7 +734835,7 @@ var init_useVoiceEnabled = __esm(() => {
734823
734835
  function getSemverPart(version3) {
734824
734836
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
734825
734837
  }
734826
- function useUpdateNotification(updatedVersion, initialVersion = "1.77.5") {
734838
+ function useUpdateNotification(updatedVersion, initialVersion = "1.77.7") {
734827
734839
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react223.useState(() => getSemverPart(initialVersion));
734828
734840
  if (!updatedVersion) {
734829
734841
  return null;
@@ -734872,7 +734884,7 @@ function AutoUpdater({
734872
734884
  return;
734873
734885
  }
734874
734886
  if (false) {}
734875
- const currentVersion = "1.77.5";
734887
+ const currentVersion = "1.77.7";
734876
734888
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
734877
734889
  let latestVersion = await getLatestVersion(channel);
734878
734890
  const isDisabled = isAutoUpdaterDisabled();
@@ -735101,12 +735113,12 @@ function NativeAutoUpdater({
735101
735113
  logEvent("tengu_native_auto_updater_start", {});
735102
735114
  try {
735103
735115
  const maxVersion = await getMaxVersion();
735104
- if (maxVersion && gt("1.77.5", maxVersion)) {
735116
+ if (maxVersion && gt("1.77.7", maxVersion)) {
735105
735117
  const msg = await getMaxVersionMessage();
735106
735118
  setMaxVersionIssue(msg ?? "affects your version");
735107
735119
  }
735108
735120
  const result = await installLatest(channel);
735109
- const currentVersion = "1.77.5";
735121
+ const currentVersion = "1.77.7";
735110
735122
  const latencyMs = Date.now() - startTime;
735111
735123
  if (result.lockFailed) {
735112
735124
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -735243,17 +735255,17 @@ function PackageManagerAutoUpdater(t0) {
735243
735255
  const maxVersion = await getMaxVersion();
735244
735256
  if (maxVersion && latest && gt(latest, maxVersion)) {
735245
735257
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
735246
- if (gte("1.77.5", maxVersion)) {
735247
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.77.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
735258
+ if (gte("1.77.7", maxVersion)) {
735259
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.77.7"} is already at or above maxVersion ${maxVersion}, skipping update`);
735248
735260
  setUpdateAvailable(false);
735249
735261
  return;
735250
735262
  }
735251
735263
  latest = maxVersion;
735252
735264
  }
735253
- const hasUpdate = latest && !gte("1.77.5", latest) && !shouldSkipVersion(latest);
735265
+ const hasUpdate = latest && !gte("1.77.7", latest) && !shouldSkipVersion(latest);
735254
735266
  setUpdateAvailable(!!hasUpdate);
735255
735267
  if (hasUpdate) {
735256
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.77.5"} -> ${latest}`);
735268
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.77.7"} -> ${latest}`);
735257
735269
  }
735258
735270
  };
735259
735271
  $2[0] = t1;
@@ -735287,7 +735299,7 @@ function PackageManagerAutoUpdater(t0) {
735287
735299
  wrap: "truncate",
735288
735300
  children: [
735289
735301
  "currentVersion: ",
735290
- "1.77.5"
735302
+ "1.77.7"
735291
735303
  ]
735292
735304
  }, undefined, true, undefined, this);
735293
735305
  $2[3] = verbose;
@@ -746087,7 +746099,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
746087
746099
  project_dir: getOriginalCwd(),
746088
746100
  added_dirs: addedDirs
746089
746101
  },
746090
- version: "1.77.5",
746102
+ version: "1.77.7",
746091
746103
  output_style: {
746092
746104
  name: outputStyleName
746093
746105
  },
@@ -746222,7 +746234,7 @@ function StatusLineInner({
746222
746234
  const attention = customStatusError ?? taskAttention;
746223
746235
  const terminalSize = React132.useContext(TerminalSizeContext);
746224
746236
  const defaultStatusLineText = buildDefaultStatusBar({
746225
- version: "1.77.5",
746237
+ version: "1.77.7",
746226
746238
  providerLabel: providerRuntime.providerLabel,
746227
746239
  authMode: providerRuntime.authLabel,
746228
746240
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -758507,7 +758519,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
758507
758519
  } catch {}
758508
758520
  const data = {
758509
758521
  trigger: trigger2,
758510
- version: "1.77.5",
758522
+ version: "1.77.7",
758511
758523
  platform: process.platform,
758512
758524
  transcript,
758513
758525
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -770881,7 +770893,7 @@ function WelcomeV2() {
770881
770893
  dimColor: true,
770882
770894
  children: [
770883
770895
  "v",
770884
- "1.77.5"
770896
+ "1.77.7"
770885
770897
  ]
770886
770898
  }, undefined, true, undefined, this)
770887
770899
  ]
@@ -772141,7 +772153,7 @@ function completeOnboarding() {
772141
772153
  saveGlobalConfig((current) => ({
772142
772154
  ...current,
772143
772155
  hasCompletedOnboarding: true,
772144
- lastOnboardingVersion: "1.77.5"
772156
+ lastOnboardingVersion: "1.77.7"
772145
772157
  }));
772146
772158
  }
772147
772159
  function showDialog(root2, renderer) {
@@ -777185,7 +777197,7 @@ function appendToLog(path24, message) {
777185
777197
  cwd: getFsImplementation().cwd(),
777186
777198
  userType: process.env.USER_TYPE,
777187
777199
  sessionId: getSessionId(),
777188
- version: "1.77.5"
777200
+ version: "1.77.7"
777189
777201
  };
777190
777202
  getLogWriter(path24).write(messageWithTimestamp);
777191
777203
  }
@@ -781344,8 +781356,8 @@ async function getEnvLessBridgeConfig() {
781344
781356
  }
781345
781357
  async function checkEnvLessBridgeMinVersion() {
781346
781358
  const cfg = await getEnvLessBridgeConfig();
781347
- if (cfg.min_version && lt("1.77.5", cfg.min_version)) {
781348
- return `Your version of UR (${"1.77.5"}) is too old for Remote Control.
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.
781349
781361
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
781350
781362
  }
781351
781363
  return null;
@@ -781819,7 +781831,7 @@ async function initBridgeCore(params) {
781819
781831
  const rawApi = createBridgeApiClient({
781820
781832
  baseUrl,
781821
781833
  getAccessToken,
781822
- runnerVersion: "1.77.5",
781834
+ runnerVersion: "1.77.7",
781823
781835
  onDebug: logForDebugging,
781824
781836
  onAuth401,
781825
781837
  getTrustedDeviceToken
@@ -791292,7 +791304,7 @@ function getAgUiCapabilities() {
791292
791304
  name: "UR-Nexus",
791293
791305
  type: "ur-nexus",
791294
791306
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
791295
- version: "1.77.5",
791307
+ version: "1.77.7",
791296
791308
  provider: "UR",
791297
791309
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
791298
791310
  },
@@ -792432,7 +792444,7 @@ function createMCPServer(cwd4, debug2, verbose) {
792432
792444
  };
792433
792445
  const server2 = new Server({
792434
792446
  name: "ur-nexus",
792435
- version: "1.77.5"
792447
+ version: "1.77.7"
792436
792448
  }, {
792437
792449
  capabilities: {
792438
792450
  tools: {}
@@ -793590,7 +793602,7 @@ function thrownResponse(error40) {
793590
793602
  }
793591
793603
  async function createUrMcp2026Runtime(options4) {
793592
793604
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
793593
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.77.5" }, { capabilities: {} });
793605
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.77.7" }, { capabilities: {} });
793594
793606
  const [clientTransport, serverTransport] = createLinkedTransportPair();
793595
793607
  try {
793596
793608
  await server2.connect(serverTransport);
@@ -793601,7 +793613,7 @@ async function createUrMcp2026Runtime(options4) {
793601
793613
  }
793602
793614
  const runtime2 = new Mcp2026Runtime({
793603
793615
  cwd: options4.cwd,
793604
- version: "1.77.5",
793616
+ version: "1.77.7",
793605
793617
  backend: {
793606
793618
  listTools: async () => {
793607
793619
  const listed = await client2.listTools();
@@ -795742,7 +795754,7 @@ async function update() {
795742
795754
  logEvent("tengu_update_check", {});
795743
795755
  const diagnostic2 = await getDoctorDiagnostic();
795744
795756
  const result = await checkUpgradeStatus({
795745
- currentVersion: "1.77.5",
795757
+ currentVersion: "1.77.7",
795746
795758
  packageName: UR_AGENT_PACKAGE_NAME,
795747
795759
  installationType: diagnostic2.installationType,
795748
795760
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -797058,7 +797070,7 @@ ${customInstructions}` : customInstructions;
797058
797070
  }
797059
797071
  }
797060
797072
  logForDiagnosticsNoPII("info", "started", {
797061
- version: "1.77.5",
797073
+ version: "1.77.7",
797062
797074
  is_native_binary: isInBundledMode()
797063
797075
  });
797064
797076
  registerCleanup(async () => {
@@ -797844,7 +797856,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
797844
797856
  pendingHookMessages
797845
797857
  }, renderAndRun);
797846
797858
  }
797847
- }).version("1.77.5 (UR-Nexus)", "-v, --version", "Output the version number");
797859
+ }).version("1.77.7 (UR-Nexus)", "-v, --version", "Output the version number");
797848
797860
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
797849
797861
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
797850
797862
  if (canUserConfigureAdvisor()) {
@@ -798896,7 +798908,7 @@ if (false) {}
798896
798908
  async function main2() {
798897
798909
  const args = process.argv.slice(2);
798898
798910
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
798899
- console.log(`${"1.77.5"} (UR-Nexus)`);
798911
+ console.log(`${"1.77.7"} (UR-Nexus)`);
798900
798912
  return;
798901
798913
  }
798902
798914
  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.5 (UR-Nexus)"
22
+ # expected for this release: "1.77.7 (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.5</p>
48
+ <p class="eyebrow">Version 1.77.7</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.5"
10
+ version = "1.77.7"
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.5",
5
+ "version": "1.77.7",
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.5",
3
+ "version": "1.77.7",
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",