ur-agent 1.77.6 → 1.77.8

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,36 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.77.8
4
+
5
+ - Auto-compact works again on every provider except the first-party one, where
6
+ it was the only place it had ever worked. `getModelCapability` is gated to a
7
+ first-party runtime, so every third-party model — OpenRouter, OpenAI-
8
+ compatible, LM Studio, vLLM, llama.cpp, and the API providers — fell through
9
+ to a flat 200,000-token window regardless of its real size. A 128K or 32K
10
+ model therefore never reached the compaction threshold before the provider
11
+ rejected the request, which is the "Context limit reached · /compact or
12
+ /clear to continue" that replaced the automatic compaction; a 1M model
13
+ compacted long before it needed to.
14
+ - The window each provider reported during model discovery is now used.
15
+ Discovery already captured it and the model picker already displayed it —
16
+ only the compaction math never read it. A model the provider reported no
17
+ window for, or reported a nonsense one for, still falls back to the default
18
+ rather than trusting the value. The lookup reads the discovery cache only, so
19
+ it adds no request to the per-turn path.
20
+
21
+ ## 1.77.7
22
+
23
+ - A missing identifier now names what exists, instead of inviting another
24
+ guess at the same one. `TaskUpdate` and `TaskGet` answered "Task not found"
25
+ without saying whether the id was wrong, the list had been archived into a
26
+ new generation, or the task was deleted — so the usual response was to retry
27
+ it unchanged. Both now list the existing task ids, or say the list is empty.
28
+ - The same treatment for the two other tools that withheld it: `Skill` lists
29
+ the invocable skills when a name does not match, and `NotebookEdit` lists the
30
+ real cell ids, or the valid index range when the notebook's cells have no
31
+ ids. The MCP resource tools already worked this way; these are now
32
+ consistent with them.
33
+
3
34
  ## 1.77.6
4
35
 
5
36
  - A request body rejected for its size now takes the prompt-too-long recovery
package/dist/cli.js CHANGED
@@ -53738,6 +53738,7 @@ __export(exports_providerRegistry, {
53738
53738
  getProviderRuntimeBackend: () => getProviderRuntimeBackend,
53739
53739
  getProviderFamily: () => getProviderFamily,
53740
53740
  getProviderDefinition: () => getProviderDefinition,
53741
+ getProviderContextLengthForModel: () => getProviderContextLengthForModel,
53741
53742
  getProviderAccessTypeLabel: () => getProviderAccessTypeLabel,
53742
53743
  getDefaultModelForProvider: () => getDefaultModelForProvider,
53743
53744
  getConnectionStatusFromDoctorResult: () => getConnectionStatusFromDoctorResult,
@@ -54853,6 +54854,21 @@ function providerModelCacheKey(provider, settings = getInitialSettings()) {
54853
54854
  function getCachedProviderModels(provider, settings = getInitialSettings()) {
54854
54855
  return cachedModelsByProvider.get(providerModelCacheKey(provider, settings)) ?? [];
54855
54856
  }
54857
+ function getProviderContextLengthForModel(model, provider = resolveProviderId(getInitialSettings().provider?.active), settings = getInitialSettings()) {
54858
+ const providerId = resolveProviderId(provider);
54859
+ if (!providerId)
54860
+ return;
54861
+ const wanted = model.trim().toLowerCase();
54862
+ if (!wanted)
54863
+ return;
54864
+ const known = [
54865
+ ...getCachedProviderModels(providerId, settings),
54866
+ ...PROVIDER_MODELS[providerId] ?? []
54867
+ ];
54868
+ const match = known.find((entry) => entry.id.toLowerCase() === wanted) ?? known.find((entry) => wanted.includes(entry.id.toLowerCase()));
54869
+ const length = match?.contextLength;
54870
+ return typeof length === "number" && Number.isFinite(length) && length > 0 ? Math.floor(length) : undefined;
54871
+ }
54856
54872
  function cacheProviderModelsForProvider(providerId, models, settings = getInitialSettings()) {
54857
54873
  const provider = resolveProviderId(providerId);
54858
54874
  if (!provider) {
@@ -95201,6 +95217,10 @@ function getContextWindowForModel(model, betas, apiProvider = getAPIProvider())
95201
95217
  if (has1mContext(model)) {
95202
95218
  return 1e6;
95203
95219
  }
95220
+ const providerContextLength = getProviderContextLengthForModel(model);
95221
+ if (providerContextLength !== undefined) {
95222
+ return providerContextLength;
95223
+ }
95204
95224
  const cap = getModelCapability(model);
95205
95225
  if (cap?.max_input_tokens && cap.max_input_tokens >= 1e5) {
95206
95226
  if (cap.max_input_tokens > MODEL_CONTEXT_WINDOW_DEFAULT && is1mContextDisabled()) {
@@ -95267,6 +95287,7 @@ function getMaxThinkingTokensForModel(model) {
95267
95287
  var MODEL_CONTEXT_WINDOW_DEFAULT = 200000, COMPACT_MAX_OUTPUT_TOKENS = 20000, MAX_OUTPUT_TOKENS_DEFAULT = 32000, MAX_OUTPUT_TOKENS_UPPER_LIMIT = 64000, CAPPED_DEFAULT_MAX_TOKENS = 8000, ESCALATED_MAX_TOKENS = 64000;
95268
95288
  var init_context = __esm(() => {
95269
95289
  init_betas();
95290
+ init_providerRegistry();
95270
95291
  init_envUtils();
95271
95292
  init_antModels();
95272
95293
  init_modelCapabilities();
@@ -107552,7 +107573,7 @@ var init_auth = __esm(() => {
107552
107573
 
107553
107574
  // src/utils/userAgent.ts
107554
107575
  function getURCodeUserAgent() {
107555
- return `ur/${"1.77.6"}`;
107576
+ return `ur/${"1.77.8"}`;
107556
107577
  }
107557
107578
 
107558
107579
  // src/utils/workloadContext.ts
@@ -107574,7 +107595,7 @@ function getUserAgent() {
107574
107595
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
107575
107596
  const workload = getWorkload();
107576
107597
  const workloadSuffix = workload ? `, workload/${workload}` : "";
107577
- return `ur-cli/${"1.77.6"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107598
+ return `ur-cli/${"1.77.8"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
107578
107599
  }
107579
107600
  function getMCPUserAgent() {
107580
107601
  const parts = [];
@@ -107588,7 +107609,7 @@ function getMCPUserAgent() {
107588
107609
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
107589
107610
  }
107590
107611
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
107591
- return `ur/${"1.77.6"}${suffix}`;
107612
+ return `ur/${"1.77.8"}${suffix}`;
107592
107613
  }
107593
107614
  function getWebFetchUserAgent() {
107594
107615
  return `UR-User (${getURCodeUserAgent()})`;
@@ -107726,7 +107747,7 @@ var init_user = __esm(() => {
107726
107747
  deviceId,
107727
107748
  sessionId: getSessionId(),
107728
107749
  email: getEmail(),
107729
- appVersion: "1.77.6",
107750
+ appVersion: "1.77.8",
107730
107751
  platform: getHostPlatformForAnalytics(),
107731
107752
  organizationUuid,
107732
107753
  accountUuid,
@@ -115613,7 +115634,7 @@ var init_metadata = __esm(() => {
115613
115634
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
115614
115635
  WHITESPACE_REGEX = /\s+/;
115615
115636
  getVersionBase = memoize_default(() => {
115616
- const match = "1.77.6".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115637
+ const match = "1.77.8".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
115617
115638
  return match ? match[0] : undefined;
115618
115639
  });
115619
115640
  buildEnvContext = memoize_default(async () => {
@@ -115653,7 +115674,7 @@ var init_metadata = __esm(() => {
115653
115674
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
115654
115675
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
115655
115676
  isURAiAuth: isURAISubscriber(),
115656
- version: "1.77.6",
115677
+ version: "1.77.8",
115657
115678
  versionBase: getVersionBase(),
115658
115679
  buildTime: "",
115659
115680
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -116323,7 +116344,7 @@ function initialize1PEventLogging() {
116323
116344
  const platform2 = getPlatform();
116324
116345
  const attributes = {
116325
116346
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
116326
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.77.6"
116347
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.77.8"
116327
116348
  };
116328
116349
  if (platform2 === "wsl") {
116329
116350
  const wslVersion = getWslVersion();
@@ -116351,7 +116372,7 @@ function initialize1PEventLogging() {
116351
116372
  })
116352
116373
  ]
116353
116374
  });
116354
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.77.6");
116375
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.77.8");
116355
116376
  }
116356
116377
  async function reinitialize1PEventLoggingIfConfigChanged() {
116357
116378
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -126133,7 +126154,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
126133
126154
  function formatA2AAgentCard(options = {}, pretty = true) {
126134
126155
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
126135
126156
  }
126136
- var urVersion = "1.77.6", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126157
+ var urVersion = "1.77.8", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
126137
126158
  var init_trends = __esm(() => {
126138
126159
  init_a2aCardSignature();
126139
126160
  coverage = [
@@ -128936,7 +128957,7 @@ function getAttributionHeader(fingerprint) {
128936
128957
  if (!isAttributionHeaderEnabled()) {
128937
128958
  return "";
128938
128959
  }
128939
- const version2 = `${"1.77.6"}.${fingerprint}`;
128960
+ const version2 = `${"1.77.8"}.${fingerprint}`;
128940
128961
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
128941
128962
  const cch = "";
128942
128963
  const workload = getWorkload();
@@ -156940,7 +156961,7 @@ var init_projectSafety = __esm(() => {
156940
156961
  function getInstruments() {
156941
156962
  if (instruments)
156942
156963
  return instruments;
156943
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.77.6");
156964
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.77.8");
156944
156965
  instruments = {
156945
156966
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
156946
156967
  description: "GenAI operation duration.",
@@ -157038,7 +157059,7 @@ function genAiAgentAttributes() {
157038
157059
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
157039
157060
  "gen_ai.provider.name": "ur",
157040
157061
  "gen_ai.agent.name": "UR-Nexus",
157041
- "gen_ai.agent.version": "1.77.6"
157062
+ "gen_ai.agent.version": "1.77.8"
157042
157063
  };
157043
157064
  }
157044
157065
  function genAiWorkflowAttributes(workflowName) {
@@ -157054,7 +157075,7 @@ function genAiWorkflowAttributes(workflowName) {
157054
157075
  function startGenAiWorkflowSpan(workflowName) {
157055
157076
  const attributes = genAiWorkflowAttributes(workflowName);
157056
157077
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
157057
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.6").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157078
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.8").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
157058
157079
  }
157059
157080
  function endGenAiWorkflowSpan(span, options2 = {}) {
157060
157081
  try {
@@ -157092,7 +157113,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
157092
157113
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
157093
157114
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
157094
157115
  }
157095
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.6").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157116
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.77.8").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
157096
157117
  }
157097
157118
  function endGenAiMemorySpan(span, options2 = {}) {
157098
157119
  try {
@@ -250740,7 +250761,7 @@ function getTelemetryAttributes() {
250740
250761
  attributes["session.id"] = sessionId;
250741
250762
  }
250742
250763
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
250743
- attributes["app.version"] = "1.77.6";
250764
+ attributes["app.version"] = "1.77.8";
250744
250765
  }
250745
250766
  const oauthAccount = getOauthAccountInfo();
250746
250767
  if (oauthAccount) {
@@ -297247,7 +297268,7 @@ function getInstallationEnv() {
297247
297268
  return;
297248
297269
  }
297249
297270
  function getURCodeVersion() {
297250
- return "1.77.6";
297271
+ return "1.77.8";
297251
297272
  }
297252
297273
  async function getInstalledVSCodeExtensionVersion(command) {
297253
297274
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -304578,7 +304599,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
304578
304599
  const client2 = new Client({
304579
304600
  name: "ur",
304580
304601
  title: "UR",
304581
- version: "1.77.6",
304602
+ version: "1.77.8",
304582
304603
  description: "UR-Nexus autonomous engineering workflow engine",
304583
304604
  websiteUrl: PRODUCT_URL
304584
304605
  }, {
@@ -304938,7 +304959,7 @@ var init_client5 = __esm(() => {
304938
304959
  const client2 = new Client({
304939
304960
  name: "ur",
304940
304961
  title: "UR",
304941
- version: "1.77.6",
304962
+ version: "1.77.8",
304942
304963
  description: "UR-Nexus autonomous engineering workflow engine",
304943
304964
  websiteUrl: PRODUCT_URL
304944
304965
  }, {
@@ -317491,7 +317512,7 @@ async function createRuntime() {
317491
317512
  bootstrapTelemetry();
317492
317513
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
317493
317514
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
317494
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.77.6"
317515
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.77.8"
317495
317516
  }));
317496
317517
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
317497
317518
  resource,
@@ -317524,11 +317545,11 @@ async function createRuntime() {
317524
317545
  setMeterProvider(meterProvider);
317525
317546
  setLoggerProvider(loggerProvider);
317526
317547
  if (meterProvider) {
317527
- const meter = meterProvider.getMeter("ur-agent", "1.77.6");
317548
+ const meter = meterProvider.getMeter("ur-agent", "1.77.8");
317528
317549
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
317529
317550
  }
317530
317551
  if (loggerProvider) {
317531
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.77.6"));
317552
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.77.8"));
317532
317553
  }
317533
317554
  if (!cleanupRegistered2) {
317534
317555
  cleanupRegistered2 = true;
@@ -318190,9 +318211,9 @@ async function assertMinVersion() {
318190
318211
  if (false) {}
318191
318212
  try {
318192
318213
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
318193
- if (versionConfig.minVersion && lt("1.77.6", versionConfig.minVersion)) {
318214
+ if (versionConfig.minVersion && lt("1.77.8", versionConfig.minVersion)) {
318194
318215
  console.error(`
318195
- It looks like your version of UR (${"1.77.6"}) needs an update.
318216
+ It looks like your version of UR (${"1.77.8"}) needs an update.
318196
318217
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
318197
318218
 
318198
318219
  To update, please run:
@@ -318408,7 +318429,7 @@ async function installGlobalPackage(specificVersion) {
318408
318429
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
318409
318430
  logEvent("tengu_auto_updater_lock_contention", {
318410
318431
  pid: process.pid,
318411
- currentVersion: "1.77.6"
318432
+ currentVersion: "1.77.8"
318412
318433
  });
318413
318434
  return "in_progress";
318414
318435
  }
@@ -318417,7 +318438,7 @@ async function installGlobalPackage(specificVersion) {
318417
318438
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
318418
318439
  logError2(new Error("Windows NPM detected in WSL environment"));
318419
318440
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
318420
- currentVersion: "1.77.6"
318441
+ currentVersion: "1.77.8"
318421
318442
  });
318422
318443
  console.error(`
318423
318444
  Error: Windows NPM detected in WSL
@@ -318952,7 +318973,7 @@ function detectLinuxGlobPatternWarnings() {
318952
318973
  }
318953
318974
  async function getDoctorDiagnostic() {
318954
318975
  const installationType = await getCurrentInstallationType();
318955
- const version2 = typeof MACRO !== "undefined" ? "1.77.6" : "unknown";
318976
+ const version2 = typeof MACRO !== "undefined" ? "1.77.8" : "unknown";
318956
318977
  const installationPath = await getInstallationPath();
318957
318978
  const invokedBinary = getInvokedBinary();
318958
318979
  const multipleInstallations = await detectMultipleInstallations();
@@ -319887,8 +319908,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319887
319908
  const maxVersion = await getMaxVersion();
319888
319909
  if (maxVersion && gt(version2, maxVersion)) {
319889
319910
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
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`);
319911
+ if (gte("1.77.8", maxVersion)) {
319912
+ logForDebugging(`Native installer: current version ${"1.77.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
319892
319913
  logEvent("tengu_native_update_skipped_max_version", {
319893
319914
  latency_ms: Date.now() - startTime,
319894
319915
  max_version: maxVersion,
@@ -319899,7 +319920,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
319899
319920
  version2 = maxVersion;
319900
319921
  }
319901
319922
  }
319902
- if (!forceReinstall && version2 === "1.77.6" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319923
+ if (!forceReinstall && version2 === "1.77.8" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
319903
319924
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
319904
319925
  logEvent("tengu_native_update_complete", {
319905
319926
  latency_ms: Date.now() - startTime,
@@ -347422,9 +347443,10 @@ var init_SkillTool = __esm(() => {
347422
347443
  const commands = await getAllCommands(context5);
347423
347444
  const foundCommand = findCommand(normalizedCommandName, commands);
347424
347445
  if (!foundCommand) {
347446
+ const invocable = commands.filter((command) => command.userInvocable !== false).map((command) => command.name).sort();
347425
347447
  return {
347426
347448
  result: false,
347427
- message: `Unknown skill: ${normalizedCommandName}`,
347449
+ message: invocable.length > 0 ? `Unknown skill: ${normalizedCommandName}. Available skills: ${invocable.join(", ")}` : `Unknown skill: ${normalizedCommandName}. No skills are available in this session.`,
347428
347450
  errorCode: 2
347429
347451
  };
347430
347452
  }
@@ -368648,14 +368670,15 @@ var init_NotebookEditTool = __esm(() => {
368648
368670
  if (!notebook.cells[parsedCellIndex]) {
368649
368671
  return {
368650
368672
  result: false,
368651
- message: `Cell with index ${parsedCellIndex} does not exist in notebook.`,
368673
+ 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
368674
  errorCode: 7
368653
368675
  };
368654
368676
  }
368655
368677
  } else {
368678
+ const known = notebook.cells.map((cell) => cell.id).filter((id) => typeof id === "string");
368656
368679
  return {
368657
368680
  result: false,
368658
- message: `Cell with ID "${cell_id}" not found in notebook.`,
368681
+ 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
368682
  errorCode: 8
368660
368683
  };
368661
368684
  }
@@ -379623,7 +379646,8 @@ var init_TaskGetTool = __esm(() => {
379623
379646
  status: TaskStatusSchema2(),
379624
379647
  blocks: exports_external.array(exports_external.string()),
379625
379648
  blockedBy: exports_external.array(exports_external.string())
379626
- }).nullable()
379649
+ }).nullable(),
379650
+ availableTaskIds: exports_external.array(exports_external.string()).optional()
379627
379651
  }));
379628
379652
  TaskGetTool = buildTool({
379629
379653
  name: TASK_GET_TOOL_NAME,
@@ -379666,7 +379690,8 @@ var init_TaskGetTool = __esm(() => {
379666
379690
  if (!task) {
379667
379691
  return {
379668
379692
  data: {
379669
- task: null
379693
+ task: null,
379694
+ availableTaskIds: (await listTasks(taskListId)).map((entry) => entry.id)
379670
379695
  }
379671
379696
  };
379672
379697
  }
@@ -379684,12 +379709,13 @@ var init_TaskGetTool = __esm(() => {
379684
379709
  };
379685
379710
  },
379686
379711
  mapToolResultToToolResultBlockParam(content, toolUseID) {
379687
- const { task } = content;
379712
+ const { task, availableTaskIds } = content;
379688
379713
  if (!task) {
379714
+ const known = (availableTaskIds ?? []).map((id) => `#${id}`);
379689
379715
  return {
379690
379716
  tool_use_id: toolUseID,
379691
379717
  type: "tool_result",
379692
- content: "Task not found"
379718
+ 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
379719
  };
379694
379720
  }
379695
379721
  const lines = [
@@ -379885,12 +379911,13 @@ var init_TaskUpdateTool = __esm(() => {
379885
379911
  });
379886
379912
  const existingTask = await getTask(taskListId, taskId);
379887
379913
  if (!existingTask) {
379914
+ const known = (await listTasks(taskListId)).map((task) => `#${task.id}`);
379888
379915
  return {
379889
379916
  data: {
379890
379917
  success: false,
379891
379918
  taskId,
379892
379919
  updatedFields: [],
379893
- error: "Task not found"
379920
+ 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
379921
  }
379895
379922
  };
379896
379923
  }
@@ -389603,7 +389630,7 @@ function isAnyTracingEnabled() {
389603
389630
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
389604
389631
  }
389605
389632
  function getTracer() {
389606
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.77.6");
389633
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.77.8");
389607
389634
  }
389608
389635
  function createSpanAttributes(spanType, customAttributes = {}) {
389609
389636
  const baseAttributes = getTelemetryAttributes();
@@ -419825,7 +419852,7 @@ function Feedback({
419825
419852
  platform: env2.platform,
419826
419853
  gitRepo: envInfo.isGit,
419827
419854
  terminal: env2.terminal,
419828
- version: "1.77.6",
419855
+ version: "1.77.8",
419829
419856
  transcript: normalizeMessagesForAPI(messages),
419830
419857
  errors: sanitizedErrors,
419831
419858
  lastApiRequest: getLastAPIRequest(),
@@ -420017,7 +420044,7 @@ function Feedback({
420017
420044
  ", ",
420018
420045
  env2.terminal,
420019
420046
  ", v",
420020
- "1.77.6"
420047
+ "1.77.8"
420021
420048
  ]
420022
420049
  }, undefined, true, undefined, this)
420023
420050
  ]
@@ -420123,7 +420150,7 @@ ${sanitizedDescription}
420123
420150
  ` + `**Environment Info**
420124
420151
  ` + `- Platform: ${env2.platform}
420125
420152
  ` + `- Terminal: ${env2.terminal}
420126
- ` + `- Version: ${"1.77.6"}
420153
+ ` + `- Version: ${"1.77.8"}
420127
420154
  ` + `- Feedback ID: ${feedbackId}
420128
420155
  ` + `
420129
420156
  **Errors**
@@ -423233,7 +423260,7 @@ function buildPrimarySection() {
423233
423260
  }, undefined, false, undefined, this);
423234
423261
  return [{
423235
423262
  label: "Version",
423236
- value: "1.77.6"
423263
+ value: "1.77.8"
423237
423264
  }, {
423238
423265
  label: "Session name",
423239
423266
  value: nameValue
@@ -426615,7 +426642,7 @@ function Config({
426615
426642
  }
426616
426643
  }, undefined, false, undefined, this)
426617
426644
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
426618
- currentVersion: "1.77.6",
426645
+ currentVersion: "1.77.8",
426619
426646
  onChoice: (choice) => {
426620
426647
  setShowSubmenu(null);
426621
426648
  setTabsHidden(false);
@@ -426627,7 +426654,7 @@ function Config({
426627
426654
  autoUpdatesChannel: "stable"
426628
426655
  };
426629
426656
  if (choice === "stay") {
426630
- newSettings.minimumVersion = "1.77.6";
426657
+ newSettings.minimumVersion = "1.77.8";
426631
426658
  }
426632
426659
  updateSettingsForSource("userSettings", newSettings);
426633
426660
  setSettingsData((prev_27) => ({
@@ -434691,7 +434718,7 @@ function HelpV2(t0) {
434691
434718
  let t6;
434692
434719
  if ($2[31] !== tabs) {
434693
434720
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
434694
- title: `UR v${"1.77.6"}`,
434721
+ title: `UR v${"1.77.8"}`,
434695
434722
  color: "professionalBlue",
434696
434723
  defaultTab: "general",
434697
434724
  children: tabs
@@ -435624,7 +435651,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
435624
435651
  async function handleInitialize(options2) {
435625
435652
  return {
435626
435653
  name: "UR",
435627
- version: "1.77.6",
435654
+ version: "1.77.8",
435628
435655
  protocolVersion: "0.1.0",
435629
435656
  workspaceRoot: options2.cwd,
435630
435657
  capabilities: {
@@ -452732,7 +452759,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
452732
452759
  return [];
452733
452760
  }
452734
452761
  }
452735
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.6") {
452762
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.8") {
452736
452763
  if (process.env.USER_TYPE === "ant") {
452737
452764
  const changelog = "";
452738
452765
  if (changelog) {
@@ -452759,7 +452786,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.77.6")
452759
452786
  releaseNotes
452760
452787
  };
452761
452788
  }
452762
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.77.6") {
452789
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.77.8") {
452763
452790
  if (process.env.USER_TYPE === "ant") {
452764
452791
  const changelog = "";
452765
452792
  if (changelog) {
@@ -455625,7 +455652,7 @@ function getRecentActivitySync() {
455625
455652
  return cachedActivity;
455626
455653
  }
455627
455654
  function getLogoDisplayData() {
455628
- const version2 = process.env.DEMO_VERSION ?? "1.77.6";
455655
+ const version2 = process.env.DEMO_VERSION ?? "1.77.8";
455629
455656
  const serverUrl = getDirectConnectServerUrl();
455630
455657
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
455631
455658
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -456492,7 +456519,7 @@ function LogoV2() {
456492
456519
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
456493
456520
  t2 = () => {
456494
456521
  const currentConfig2 = getGlobalConfig();
456495
- if (currentConfig2.lastReleaseNotesSeen === "1.77.6") {
456522
+ if (currentConfig2.lastReleaseNotesSeen === "1.77.8") {
456496
456523
  return;
456497
456524
  }
456498
456525
  saveGlobalConfig(_temp325);
@@ -457177,12 +457204,12 @@ function LogoV2() {
457177
457204
  return t41;
457178
457205
  }
457179
457206
  function _temp325(current) {
457180
- if (current.lastReleaseNotesSeen === "1.77.6") {
457207
+ if (current.lastReleaseNotesSeen === "1.77.8") {
457181
457208
  return current;
457182
457209
  }
457183
457210
  return {
457184
457211
  ...current,
457185
- lastReleaseNotesSeen: "1.77.6"
457212
+ lastReleaseNotesSeen: "1.77.8"
457186
457213
  };
457187
457214
  }
457188
457215
  function _temp241(s_0) {
@@ -473996,7 +474023,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
473996
474023
  if (spec.name !== specName) {
473997
474024
  throw new Error("Agentic CI workflow spec name does not match");
473998
474025
  }
473999
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.77.6" : "1.77.6");
474026
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.77.8" : "1.77.8");
474000
474027
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
474001
474028
  throw new Error("invalid ur-agent package version");
474002
474029
  }
@@ -474989,7 +475016,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
474989
475016
  path: ".github/workflows/ur.yml",
474990
475017
  root: "project",
474991
475018
  content: compileAgenticCiWorkflow("default", {
474992
- packageVersion: typeof MACRO !== "undefined" ? "1.77.6" : "1.77.6"
475019
+ packageVersion: typeof MACRO !== "undefined" ? "1.77.8" : "1.77.8"
474993
475020
  })
474994
475021
  },
474995
475022
  {
@@ -475052,7 +475079,7 @@ function value(tokens, flag) {
475052
475079
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
475053
475080
  }
475054
475081
  function cliVersion() {
475055
- return typeof MACRO !== "undefined" ? "1.77.6" : "1.77.6";
475082
+ return typeof MACRO !== "undefined" ? "1.77.8" : "1.77.8";
475056
475083
  }
475057
475084
  function workflowPath(cwd2) {
475058
475085
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -480908,7 +480935,7 @@ function createAcpStdioApp(deps) {
480908
480935
  }
480909
480936
  },
480910
480937
  authMethods: [],
480911
- agentInfo: { name: "UR-Nexus", version: "1.77.6" }
480938
+ agentInfo: { name: "UR-Nexus", version: "1.77.8" }
480912
480939
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
480913
480940
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
480914
480941
  await runtime2.announce({
@@ -481005,7 +481032,7 @@ function createAcpStdioAgent(deps) {
481005
481032
  }
481006
481033
  },
481007
481034
  authMethods: [],
481008
- agentInfo: { name: "UR-Nexus", version: "1.77.6" }
481035
+ agentInfo: { name: "UR-Nexus", version: "1.77.8" }
481009
481036
  });
481010
481037
  return;
481011
481038
  case "authenticate":
@@ -690465,7 +690492,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
690465
690492
  smapsRollup,
690466
690493
  platform: process.platform,
690467
690494
  nodeVersion: process.version,
690468
- ccVersion: "1.77.6"
690495
+ ccVersion: "1.77.8"
690469
690496
  };
690470
690497
  }
690471
690498
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -691045,7 +691072,7 @@ var init_bridge_kick = __esm(() => {
691045
691072
  var call154 = async () => {
691046
691073
  return {
691047
691074
  type: "text",
691048
- value: "1.77.6"
691075
+ value: "1.77.8"
691049
691076
  };
691050
691077
  }, version2, version_default;
691051
691078
  var init_version = __esm(() => {
@@ -702312,7 +702339,7 @@ function generateHtmlReport(data, insights) {
702312
702339
  </html>`;
702313
702340
  }
702314
702341
  function buildExportData(data, insights, facets, remoteStats) {
702315
- const version3 = typeof MACRO !== "undefined" ? "1.77.6" : "unknown";
702342
+ const version3 = typeof MACRO !== "undefined" ? "1.77.8" : "unknown";
702316
702343
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
702317
702344
  const facets_summary = {
702318
702345
  total: facets.size,
@@ -706626,7 +706653,7 @@ var init_sessionStorage = __esm(() => {
706626
706653
  init_settings2();
706627
706654
  init_slowOperations();
706628
706655
  init_uuid();
706629
- VERSION7 = typeof MACRO !== "undefined" ? "1.77.6" : "unknown";
706656
+ VERSION7 = typeof MACRO !== "undefined" ? "1.77.8" : "unknown";
706630
706657
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
706631
706658
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
706632
706659
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -707841,7 +707868,7 @@ var init_filesystem = __esm(() => {
707841
707868
  });
707842
707869
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
707843
707870
  const nonce = randomBytes20(16).toString("hex");
707844
- return join232(getURTempDir(), "bundled-skills", "1.77.6", nonce);
707871
+ return join232(getURTempDir(), "bundled-skills", "1.77.8", nonce);
707845
707872
  });
707846
707873
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
707847
707874
  });
@@ -714198,7 +714225,7 @@ function computeFingerprint(messageText2, version3) {
714198
714225
  }
714199
714226
  function computeFingerprintFromMessages(messages) {
714200
714227
  const firstMessageText = extractFirstMessageText(messages);
714201
- return computeFingerprint(firstMessageText, "1.77.6");
714228
+ return computeFingerprint(firstMessageText, "1.77.8");
714202
714229
  }
714203
714230
  var FINGERPRINT_SALT = "59cf53e54c78";
714204
714231
  var init_fingerprint = () => {};
@@ -716120,7 +716147,7 @@ async function sideQuery(opts) {
716120
716147
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
716121
716148
  }
716122
716149
  const messageText2 = extractFirstUserMessageText(messages);
716123
- const fingerprint2 = computeFingerprint(messageText2, "1.77.6");
716150
+ const fingerprint2 = computeFingerprint(messageText2, "1.77.8");
716124
716151
  const attributionHeader = getAttributionHeader(fingerprint2);
716125
716152
  const systemBlocks = [
716126
716153
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -720957,7 +720984,7 @@ function buildSystemInitMessage(inputs) {
720957
720984
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
720958
720985
  apiKeySource: getURHQApiKeyWithSource().source,
720959
720986
  betas: getSdkBetas(),
720960
- ur_version: "1.77.6",
720987
+ ur_version: "1.77.8",
720961
720988
  output_style: outputStyle2,
720962
720989
  agents: inputs.agents.map((agent2) => agent2.agentType),
720963
720990
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -734829,7 +734856,7 @@ var init_useVoiceEnabled = __esm(() => {
734829
734856
  function getSemverPart(version3) {
734830
734857
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
734831
734858
  }
734832
- function useUpdateNotification(updatedVersion, initialVersion = "1.77.6") {
734859
+ function useUpdateNotification(updatedVersion, initialVersion = "1.77.8") {
734833
734860
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react223.useState(() => getSemverPart(initialVersion));
734834
734861
  if (!updatedVersion) {
734835
734862
  return null;
@@ -734878,7 +734905,7 @@ function AutoUpdater({
734878
734905
  return;
734879
734906
  }
734880
734907
  if (false) {}
734881
- const currentVersion = "1.77.6";
734908
+ const currentVersion = "1.77.8";
734882
734909
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
734883
734910
  let latestVersion = await getLatestVersion(channel);
734884
734911
  const isDisabled = isAutoUpdaterDisabled();
@@ -735107,12 +735134,12 @@ function NativeAutoUpdater({
735107
735134
  logEvent("tengu_native_auto_updater_start", {});
735108
735135
  try {
735109
735136
  const maxVersion = await getMaxVersion();
735110
- if (maxVersion && gt("1.77.6", maxVersion)) {
735137
+ if (maxVersion && gt("1.77.8", maxVersion)) {
735111
735138
  const msg = await getMaxVersionMessage();
735112
735139
  setMaxVersionIssue(msg ?? "affects your version");
735113
735140
  }
735114
735141
  const result = await installLatest(channel);
735115
- const currentVersion = "1.77.6";
735142
+ const currentVersion = "1.77.8";
735116
735143
  const latencyMs = Date.now() - startTime;
735117
735144
  if (result.lockFailed) {
735118
735145
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -735249,17 +735276,17 @@ function PackageManagerAutoUpdater(t0) {
735249
735276
  const maxVersion = await getMaxVersion();
735250
735277
  if (maxVersion && latest && gt(latest, maxVersion)) {
735251
735278
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
735252
- if (gte("1.77.6", maxVersion)) {
735253
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.77.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
735279
+ if (gte("1.77.8", maxVersion)) {
735280
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.77.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
735254
735281
  setUpdateAvailable(false);
735255
735282
  return;
735256
735283
  }
735257
735284
  latest = maxVersion;
735258
735285
  }
735259
- const hasUpdate = latest && !gte("1.77.6", latest) && !shouldSkipVersion(latest);
735286
+ const hasUpdate = latest && !gte("1.77.8", latest) && !shouldSkipVersion(latest);
735260
735287
  setUpdateAvailable(!!hasUpdate);
735261
735288
  if (hasUpdate) {
735262
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.77.6"} -> ${latest}`);
735289
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.77.8"} -> ${latest}`);
735263
735290
  }
735264
735291
  };
735265
735292
  $2[0] = t1;
@@ -735293,7 +735320,7 @@ function PackageManagerAutoUpdater(t0) {
735293
735320
  wrap: "truncate",
735294
735321
  children: [
735295
735322
  "currentVersion: ",
735296
- "1.77.6"
735323
+ "1.77.8"
735297
735324
  ]
735298
735325
  }, undefined, true, undefined, this);
735299
735326
  $2[3] = verbose;
@@ -746093,7 +746120,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
746093
746120
  project_dir: getOriginalCwd(),
746094
746121
  added_dirs: addedDirs
746095
746122
  },
746096
- version: "1.77.6",
746123
+ version: "1.77.8",
746097
746124
  output_style: {
746098
746125
  name: outputStyleName
746099
746126
  },
@@ -746228,7 +746255,7 @@ function StatusLineInner({
746228
746255
  const attention = customStatusError ?? taskAttention;
746229
746256
  const terminalSize = React132.useContext(TerminalSizeContext);
746230
746257
  const defaultStatusLineText = buildDefaultStatusBar({
746231
- version: "1.77.6",
746258
+ version: "1.77.8",
746232
746259
  providerLabel: providerRuntime.providerLabel,
746233
746260
  authMode: providerRuntime.authLabel,
746234
746261
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -758513,7 +758540,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
758513
758540
  } catch {}
758514
758541
  const data = {
758515
758542
  trigger: trigger2,
758516
- version: "1.77.6",
758543
+ version: "1.77.8",
758517
758544
  platform: process.platform,
758518
758545
  transcript,
758519
758546
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -770887,7 +770914,7 @@ function WelcomeV2() {
770887
770914
  dimColor: true,
770888
770915
  children: [
770889
770916
  "v",
770890
- "1.77.6"
770917
+ "1.77.8"
770891
770918
  ]
770892
770919
  }, undefined, true, undefined, this)
770893
770920
  ]
@@ -772147,7 +772174,7 @@ function completeOnboarding() {
772147
772174
  saveGlobalConfig((current) => ({
772148
772175
  ...current,
772149
772176
  hasCompletedOnboarding: true,
772150
- lastOnboardingVersion: "1.77.6"
772177
+ lastOnboardingVersion: "1.77.8"
772151
772178
  }));
772152
772179
  }
772153
772180
  function showDialog(root2, renderer) {
@@ -777191,7 +777218,7 @@ function appendToLog(path24, message) {
777191
777218
  cwd: getFsImplementation().cwd(),
777192
777219
  userType: process.env.USER_TYPE,
777193
777220
  sessionId: getSessionId(),
777194
- version: "1.77.6"
777221
+ version: "1.77.8"
777195
777222
  };
777196
777223
  getLogWriter(path24).write(messageWithTimestamp);
777197
777224
  }
@@ -781350,8 +781377,8 @@ async function getEnvLessBridgeConfig() {
781350
781377
  }
781351
781378
  async function checkEnvLessBridgeMinVersion() {
781352
781379
  const cfg = await getEnvLessBridgeConfig();
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.
781380
+ if (cfg.min_version && lt("1.77.8", cfg.min_version)) {
781381
+ return `Your version of UR (${"1.77.8"}) is too old for Remote Control.
781355
781382
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
781356
781383
  }
781357
781384
  return null;
@@ -781825,7 +781852,7 @@ async function initBridgeCore(params) {
781825
781852
  const rawApi = createBridgeApiClient({
781826
781853
  baseUrl,
781827
781854
  getAccessToken,
781828
- runnerVersion: "1.77.6",
781855
+ runnerVersion: "1.77.8",
781829
781856
  onDebug: logForDebugging,
781830
781857
  onAuth401,
781831
781858
  getTrustedDeviceToken
@@ -791298,7 +791325,7 @@ function getAgUiCapabilities() {
791298
791325
  name: "UR-Nexus",
791299
791326
  type: "ur-nexus",
791300
791327
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
791301
- version: "1.77.6",
791328
+ version: "1.77.8",
791302
791329
  provider: "UR",
791303
791330
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
791304
791331
  },
@@ -792438,7 +792465,7 @@ function createMCPServer(cwd4, debug2, verbose) {
792438
792465
  };
792439
792466
  const server2 = new Server({
792440
792467
  name: "ur-nexus",
792441
- version: "1.77.6"
792468
+ version: "1.77.8"
792442
792469
  }, {
792443
792470
  capabilities: {
792444
792471
  tools: {}
@@ -793596,7 +793623,7 @@ function thrownResponse(error40) {
793596
793623
  }
793597
793624
  async function createUrMcp2026Runtime(options4) {
793598
793625
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
793599
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.77.6" }, { capabilities: {} });
793626
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.77.8" }, { capabilities: {} });
793600
793627
  const [clientTransport, serverTransport] = createLinkedTransportPair();
793601
793628
  try {
793602
793629
  await server2.connect(serverTransport);
@@ -793607,7 +793634,7 @@ async function createUrMcp2026Runtime(options4) {
793607
793634
  }
793608
793635
  const runtime2 = new Mcp2026Runtime({
793609
793636
  cwd: options4.cwd,
793610
- version: "1.77.6",
793637
+ version: "1.77.8",
793611
793638
  backend: {
793612
793639
  listTools: async () => {
793613
793640
  const listed = await client2.listTools();
@@ -795748,7 +795775,7 @@ async function update() {
795748
795775
  logEvent("tengu_update_check", {});
795749
795776
  const diagnostic2 = await getDoctorDiagnostic();
795750
795777
  const result = await checkUpgradeStatus({
795751
- currentVersion: "1.77.6",
795778
+ currentVersion: "1.77.8",
795752
795779
  packageName: UR_AGENT_PACKAGE_NAME,
795753
795780
  installationType: diagnostic2.installationType,
795754
795781
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -797064,7 +797091,7 @@ ${customInstructions}` : customInstructions;
797064
797091
  }
797065
797092
  }
797066
797093
  logForDiagnosticsNoPII("info", "started", {
797067
- version: "1.77.6",
797094
+ version: "1.77.8",
797068
797095
  is_native_binary: isInBundledMode()
797069
797096
  });
797070
797097
  registerCleanup(async () => {
@@ -797850,7 +797877,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
797850
797877
  pendingHookMessages
797851
797878
  }, renderAndRun);
797852
797879
  }
797853
- }).version("1.77.6 (UR-Nexus)", "-v, --version", "Output the version number");
797880
+ }).version("1.77.8 (UR-Nexus)", "-v, --version", "Output the version number");
797854
797881
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
797855
797882
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
797856
797883
  if (canUserConfigureAdvisor()) {
@@ -798902,7 +798929,7 @@ if (false) {}
798902
798929
  async function main2() {
798903
798930
  const args = process.argv.slice(2);
798904
798931
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
798905
- console.log(`${"1.77.6"} (UR-Nexus)`);
798932
+ console.log(`${"1.77.8"} (UR-Nexus)`);
798906
798933
  return;
798907
798934
  }
798908
798935
  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.6 (UR-Nexus)"
22
+ # expected for this release: "1.77.8 (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.6</p>
48
+ <p class="eyebrow">Version 1.77.8</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.6"
10
+ version = "1.77.8"
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.6",
5
+ "version": "1.77.8",
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.6",
3
+ "version": "1.77.8",
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",