ur-agent 1.57.1 → 1.57.2

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,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.57.2
4
+
5
+ - Fixed the Ollama adapter discarding images returned by tools. A tool result
6
+ containing an image was flattened with `contentBlockToText`, which renders an
7
+ image block as the literal string `[Image output omitted]` — so a `Computer`
8
+ screenshot reached the model as that text and nothing else. Image blocks are
9
+ now extracted from the tool result and sent as `images` on the following user
10
+ message, which is where Ollama renders them reliably.
11
+ - On a model with no vision capability the placeholder now names the model and
12
+ points at `/model`, so the agent states the real reason it cannot see instead
13
+ of inventing one.
14
+ - `Computer(screenshot)` now reports the bytes actually sent rather than the
15
+ on-disk size, which was misleading after downsampling.
16
+
3
17
  ## 1.57.1
4
18
 
5
19
  - Fixed the `Computer` tool returning a byte count instead of the screenshot.
package/dist/cli.js CHANGED
@@ -57310,6 +57310,7 @@ var init_kimiToolCalls = __esm(() => {
57310
57310
  // src/services/api/ollama.ts
57311
57311
  var exports_ollama = {};
57312
57312
  __export(exports_ollama, {
57313
+ toOllamaChatRequest: () => toOllamaChatRequest,
57313
57314
  mergeToolCalls: () => mergeToolCalls,
57314
57315
  isOllamaCloudModel: () => isOllamaCloudModel2,
57315
57316
  getOllamaRequestTimeoutMs: () => getOllamaRequestTimeoutMs,
@@ -57497,7 +57498,7 @@ function toOllamaChatRequest(params, stream4, capabilities) {
57497
57498
  model: params.model,
57498
57499
  messages: [
57499
57500
  systemMessage,
57500
- ...messagesToOllama(params.messages, modelCapabilityEnabled(capabilities, "vision"))
57501
+ ...messagesToOllama(params.messages, modelCapabilityEnabled(capabilities, "vision"), params.model)
57501
57502
  ].filter((message) => message.role === "tool" || message.content.trim() !== "" || (message.images?.length ?? 0) > 0 || (message.tool_calls?.length ?? 0) > 0),
57502
57503
  stream: stream4,
57503
57504
  ...tools.length > 0 ? { tools } : {},
@@ -57543,7 +57544,7 @@ function systemToText(system) {
57543
57544
 
57544
57545
  `);
57545
57546
  }
57546
- function messagesToOllama(messages, supportsVision) {
57547
+ function messagesToOllama(messages, supportsVision, model = "") {
57547
57548
  const result = [];
57548
57549
  const toolNamesById = new Map;
57549
57550
  for (const message of messages) {
@@ -57592,11 +57593,19 @@ function messagesToOllama(messages, supportsVision) {
57592
57593
  break;
57593
57594
  case "tool_result": {
57594
57595
  const toolName = toolNamesById.get(block.tool_use_id) ?? block.tool_use_id;
57596
+ const split = splitToolResultContent(block.content);
57597
+ const note = describeToolResultImages(split.images.length, toolName, supportsVision, model);
57595
57598
  toolMessages.push({
57596
57599
  role: "tool",
57597
- content: contentBlockToText(block.content),
57600
+ content: [split.text, note].filter(Boolean).join(`
57601
+ `),
57598
57602
  tool_name: toolName
57599
57603
  });
57604
+ if (supportsVision) {
57605
+ for (const image of split.images) {
57606
+ images.push(image);
57607
+ }
57608
+ }
57600
57609
  break;
57601
57610
  }
57602
57611
  case "image":
@@ -58255,6 +58264,37 @@ function emptyUsage() {
58255
58264
  }
58256
58265
  };
58257
58266
  }
58267
+ function splitToolResultContent(content) {
58268
+ if (!Array.isArray(content)) {
58269
+ return { text: contentBlockToText(content), images: [] };
58270
+ }
58271
+ const textParts = [];
58272
+ const images = [];
58273
+ for (const block of content) {
58274
+ if (block && typeof block === "object" && "type" in block && block.type === "image") {
58275
+ const source = block.source;
58276
+ if (source?.type === "base64" && typeof source.data === "string") {
58277
+ images.push(source.data);
58278
+ } else {
58279
+ textParts.push("[Image omitted: unsupported image source]");
58280
+ }
58281
+ continue;
58282
+ }
58283
+ textParts.push(contentBlockToText([block]));
58284
+ }
58285
+ return { text: textParts.filter(Boolean).join(`
58286
+ `), images };
58287
+ }
58288
+ function describeToolResultImages(count3, toolName, supportsVision, model) {
58289
+ if (count3 === 0)
58290
+ return "";
58291
+ const plural = count3 === 1 ? "image" : `${count3} images`;
58292
+ if (supportsVision) {
58293
+ return `[${plural} from ${toolName} attached to the following message]`;
58294
+ }
58295
+ const named = model ? `"${model}"` : "the selected Ollama model";
58296
+ return `[${plural} from ${toolName} could not be sent: ${named} does not advertise ` + `vision support, so it cannot see images. Tell the user this directly and ` + `suggest switching to a vision model with /model.]`;
58297
+ }
58258
58298
  function contentBlockToText(content) {
58259
58299
  if (typeof content === "string") {
58260
58300
  return content;
@@ -75097,7 +75137,7 @@ var init_auth = __esm(() => {
75097
75137
 
75098
75138
  // src/utils/userAgent.ts
75099
75139
  function getURCodeUserAgent() {
75100
- return `ur/${"1.57.1"}`;
75140
+ return `ur/${"1.57.2"}`;
75101
75141
  }
75102
75142
 
75103
75143
  // src/utils/workloadContext.ts
@@ -75119,7 +75159,7 @@ function getUserAgent() {
75119
75159
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
75120
75160
  const workload = getWorkload();
75121
75161
  const workloadSuffix = workload ? `, workload/${workload}` : "";
75122
- return `ur-cli/${"1.57.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75162
+ return `ur-cli/${"1.57.2"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75123
75163
  }
75124
75164
  function getMCPUserAgent() {
75125
75165
  const parts = [];
@@ -75133,7 +75173,7 @@ function getMCPUserAgent() {
75133
75173
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
75134
75174
  }
75135
75175
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
75136
- return `ur/${"1.57.1"}${suffix}`;
75176
+ return `ur/${"1.57.2"}${suffix}`;
75137
75177
  }
75138
75178
  function getWebFetchUserAgent() {
75139
75179
  return `UR-User (${getURCodeUserAgent()})`;
@@ -75271,7 +75311,7 @@ var init_user = __esm(() => {
75271
75311
  deviceId,
75272
75312
  sessionId: getSessionId(),
75273
75313
  email: getEmail(),
75274
- appVersion: "1.57.1",
75314
+ appVersion: "1.57.2",
75275
75315
  platform: getHostPlatformForAnalytics(),
75276
75316
  organizationUuid,
75277
75317
  accountUuid,
@@ -83471,7 +83511,7 @@ var init_metadata = __esm(() => {
83471
83511
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
83472
83512
  WHITESPACE_REGEX = /\s+/;
83473
83513
  getVersionBase = memoize_default(() => {
83474
- const match = "1.57.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83514
+ const match = "1.57.2".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83475
83515
  return match ? match[0] : undefined;
83476
83516
  });
83477
83517
  buildEnvContext = memoize_default(async () => {
@@ -83511,7 +83551,7 @@ var init_metadata = __esm(() => {
83511
83551
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
83512
83552
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
83513
83553
  isURAiAuth: isURAISubscriber(),
83514
- version: "1.57.1",
83554
+ version: "1.57.2",
83515
83555
  versionBase: getVersionBase(),
83516
83556
  buildTime: "",
83517
83557
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -84181,7 +84221,7 @@ function initialize1PEventLogging() {
84181
84221
  const platform2 = getPlatform();
84182
84222
  const attributes = {
84183
84223
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
84184
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.57.1"
84224
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.57.2"
84185
84225
  };
84186
84226
  if (platform2 === "wsl") {
84187
84227
  const wslVersion = getWslVersion();
@@ -84209,7 +84249,7 @@ function initialize1PEventLogging() {
84209
84249
  })
84210
84250
  ]
84211
84251
  });
84212
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.57.1");
84252
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.57.2");
84213
84253
  }
84214
84254
  async function reinitialize1PEventLoggingIfConfigChanged() {
84215
84255
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -94048,7 +94088,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
94048
94088
  function formatA2AAgentCard(options = {}, pretty = true) {
94049
94089
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
94050
94090
  }
94051
- var urVersion = "1.57.1", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94091
+ var urVersion = "1.57.2", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94052
94092
  var init_trends = __esm(() => {
94053
94093
  init_a2aCardSignature();
94054
94094
  coverage = [
@@ -96849,7 +96889,7 @@ function getAttributionHeader(fingerprint) {
96849
96889
  if (!isAttributionHeaderEnabled()) {
96850
96890
  return "";
96851
96891
  }
96852
- const version2 = `${"1.57.1"}.${fingerprint}`;
96892
+ const version2 = `${"1.57.2"}.${fingerprint}`;
96853
96893
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
96854
96894
  const cch = "";
96855
96895
  const workload = getWorkload();
@@ -154438,7 +154478,7 @@ var init_projectSafety = __esm(() => {
154438
154478
  function getInstruments() {
154439
154479
  if (instruments)
154440
154480
  return instruments;
154441
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.57.1");
154481
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.57.2");
154442
154482
  instruments = {
154443
154483
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
154444
154484
  description: "GenAI operation duration.",
@@ -154536,7 +154576,7 @@ function genAiAgentAttributes() {
154536
154576
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
154537
154577
  "gen_ai.provider.name": "ur",
154538
154578
  "gen_ai.agent.name": "UR-Nexus",
154539
- "gen_ai.agent.version": "1.57.1"
154579
+ "gen_ai.agent.version": "1.57.2"
154540
154580
  };
154541
154581
  }
154542
154582
  function genAiWorkflowAttributes(workflowName) {
@@ -154552,7 +154592,7 @@ function genAiWorkflowAttributes(workflowName) {
154552
154592
  function startGenAiWorkflowSpan(workflowName) {
154553
154593
  const attributes = genAiWorkflowAttributes(workflowName);
154554
154594
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
154555
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.57.1").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
154595
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.57.2").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
154556
154596
  }
154557
154597
  function endGenAiWorkflowSpan(span, options2 = {}) {
154558
154598
  try {
@@ -154590,7 +154630,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
154590
154630
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
154591
154631
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
154592
154632
  }
154593
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.57.1").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
154633
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.57.2").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
154594
154634
  }
154595
154635
  function endGenAiMemorySpan(span, options2 = {}) {
154596
154636
  try {
@@ -206109,7 +206149,7 @@ function getTelemetryAttributes() {
206109
206149
  attributes["session.id"] = sessionId;
206110
206150
  }
206111
206151
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
206112
- attributes["app.version"] = "1.57.1";
206152
+ attributes["app.version"] = "1.57.2";
206113
206153
  }
206114
206154
  const oauthAccount = getOauthAccountInfo();
206115
206155
  if (oauthAccount) {
@@ -241676,7 +241716,7 @@ function getInstallationEnv() {
241676
241716
  return;
241677
241717
  }
241678
241718
  function getURCodeVersion() {
241679
- return "1.57.1";
241719
+ return "1.57.2";
241680
241720
  }
241681
241721
  async function getInstalledVSCodeExtensionVersion(command) {
241682
241722
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -249007,7 +249047,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
249007
249047
  const client2 = new Client({
249008
249048
  name: "ur",
249009
249049
  title: "UR",
249010
- version: "1.57.1",
249050
+ version: "1.57.2",
249011
249051
  description: "UR-Nexus autonomous engineering workflow engine",
249012
249052
  websiteUrl: PRODUCT_URL
249013
249053
  }, {
@@ -249367,7 +249407,7 @@ var init_client5 = __esm(() => {
249367
249407
  const client2 = new Client({
249368
249408
  name: "ur",
249369
249409
  title: "UR",
249370
- version: "1.57.1",
249410
+ version: "1.57.2",
249371
249411
  description: "UR-Nexus autonomous engineering workflow engine",
249372
249412
  websiteUrl: PRODUCT_URL
249373
249413
  }, {
@@ -261968,7 +262008,7 @@ async function createRuntime() {
261968
262008
  bootstrapTelemetry();
261969
262009
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
261970
262010
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
261971
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.57.1"
262011
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.57.2"
261972
262012
  }));
261973
262013
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
261974
262014
  resource,
@@ -262001,11 +262041,11 @@ async function createRuntime() {
262001
262041
  setMeterProvider(meterProvider);
262002
262042
  setLoggerProvider(loggerProvider);
262003
262043
  if (meterProvider) {
262004
- const meter = meterProvider.getMeter("ur-agent", "1.57.1");
262044
+ const meter = meterProvider.getMeter("ur-agent", "1.57.2");
262005
262045
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
262006
262046
  }
262007
262047
  if (loggerProvider) {
262008
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.57.1"));
262048
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.57.2"));
262009
262049
  }
262010
262050
  if (!cleanupRegistered2) {
262011
262051
  cleanupRegistered2 = true;
@@ -262667,9 +262707,9 @@ async function assertMinVersion() {
262667
262707
  if (false) {}
262668
262708
  try {
262669
262709
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
262670
- if (versionConfig.minVersion && lt("1.57.1", versionConfig.minVersion)) {
262710
+ if (versionConfig.minVersion && lt("1.57.2", versionConfig.minVersion)) {
262671
262711
  console.error(`
262672
- It looks like your version of UR (${"1.57.1"}) needs an update.
262712
+ It looks like your version of UR (${"1.57.2"}) needs an update.
262673
262713
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
262674
262714
 
262675
262715
  To update, please run:
@@ -262885,7 +262925,7 @@ async function installGlobalPackage(specificVersion) {
262885
262925
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
262886
262926
  logEvent("tengu_auto_updater_lock_contention", {
262887
262927
  pid: process.pid,
262888
- currentVersion: "1.57.1"
262928
+ currentVersion: "1.57.2"
262889
262929
  });
262890
262930
  return "in_progress";
262891
262931
  }
@@ -262894,7 +262934,7 @@ async function installGlobalPackage(specificVersion) {
262894
262934
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
262895
262935
  logError2(new Error("Windows NPM detected in WSL environment"));
262896
262936
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
262897
- currentVersion: "1.57.1"
262937
+ currentVersion: "1.57.2"
262898
262938
  });
262899
262939
  console.error(`
262900
262940
  Error: Windows NPM detected in WSL
@@ -263429,7 +263469,7 @@ function detectLinuxGlobPatternWarnings() {
263429
263469
  }
263430
263470
  async function getDoctorDiagnostic() {
263431
263471
  const installationType = await getCurrentInstallationType();
263432
- const version2 = typeof MACRO !== "undefined" ? "1.57.1" : "unknown";
263472
+ const version2 = typeof MACRO !== "undefined" ? "1.57.2" : "unknown";
263433
263473
  const installationPath = await getInstallationPath();
263434
263474
  const invokedBinary = getInvokedBinary();
263435
263475
  const multipleInstallations = await detectMultipleInstallations();
@@ -264364,8 +264404,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
264364
264404
  const maxVersion = await getMaxVersion();
264365
264405
  if (maxVersion && gt(version2, maxVersion)) {
264366
264406
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
264367
- if (gte("1.57.1", maxVersion)) {
264368
- logForDebugging(`Native installer: current version ${"1.57.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
264407
+ if (gte("1.57.2", maxVersion)) {
264408
+ logForDebugging(`Native installer: current version ${"1.57.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
264369
264409
  logEvent("tengu_native_update_skipped_max_version", {
264370
264410
  latency_ms: Date.now() - startTime,
264371
264411
  max_version: maxVersion,
@@ -264376,7 +264416,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
264376
264416
  version2 = maxVersion;
264377
264417
  }
264378
264418
  }
264379
- if (!forceReinstall && version2 === "1.57.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
264419
+ if (!forceReinstall && version2 === "1.57.2" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
264380
264420
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
264381
264421
  logEvent("tengu_native_update_complete", {
264382
264422
  latency_ms: Date.now() - startTime,
@@ -314301,7 +314341,7 @@ var init_ComputerTool = __esm(() => {
314301
314341
  data: {
314302
314342
  action: "screenshot",
314303
314343
  ok: true,
314304
- detail: `Captured ${bytes} bytes`,
314344
+ detail: `Captured the screen (${resized.buffer.length} bytes sent)`,
314305
314345
  screenshotPath: path13,
314306
314346
  imageBase64: resized.buffer.toString("base64"),
314307
314347
  imageMediaType: `image/${resized.mediaType}`
@@ -334658,7 +334698,7 @@ function isAnyTracingEnabled() {
334658
334698
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
334659
334699
  }
334660
334700
  function getTracer() {
334661
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.57.1");
334701
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.57.2");
334662
334702
  }
334663
334703
  function createSpanAttributes(spanType, customAttributes = {}) {
334664
334704
  const baseAttributes = getTelemetryAttributes();
@@ -364138,7 +364178,7 @@ function Feedback({
364138
364178
  platform: env2.platform,
364139
364179
  gitRepo: envInfo.isGit,
364140
364180
  terminal: env2.terminal,
364141
- version: "1.57.1",
364181
+ version: "1.57.2",
364142
364182
  transcript: normalizeMessagesForAPI(messages),
364143
364183
  errors: sanitizedErrors,
364144
364184
  lastApiRequest: getLastAPIRequest(),
@@ -364330,7 +364370,7 @@ function Feedback({
364330
364370
  ", ",
364331
364371
  env2.terminal,
364332
364372
  ", v",
364333
- "1.57.1"
364373
+ "1.57.2"
364334
364374
  ]
364335
364375
  }, undefined, true, undefined, this)
364336
364376
  ]
@@ -364436,7 +364476,7 @@ ${sanitizedDescription}
364436
364476
  ` + `**Environment Info**
364437
364477
  ` + `- Platform: ${env2.platform}
364438
364478
  ` + `- Terminal: ${env2.terminal}
364439
- ` + `- Version: ${"1.57.1"}
364479
+ ` + `- Version: ${"1.57.2"}
364440
364480
  ` + `- Feedback ID: ${feedbackId}
364441
364481
  ` + `
364442
364482
  **Errors**
@@ -367546,7 +367586,7 @@ function buildPrimarySection() {
367546
367586
  }, undefined, false, undefined, this);
367547
367587
  return [{
367548
367588
  label: "Version",
367549
- value: "1.57.1"
367589
+ value: "1.57.2"
367550
367590
  }, {
367551
367591
  label: "Session name",
367552
367592
  value: nameValue
@@ -370876,7 +370916,7 @@ function Config({
370876
370916
  }
370877
370917
  }, undefined, false, undefined, this)
370878
370918
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
370879
- currentVersion: "1.57.1",
370919
+ currentVersion: "1.57.2",
370880
370920
  onChoice: (choice) => {
370881
370921
  setShowSubmenu(null);
370882
370922
  setTabsHidden(false);
@@ -370888,7 +370928,7 @@ function Config({
370888
370928
  autoUpdatesChannel: "stable"
370889
370929
  };
370890
370930
  if (choice === "stay") {
370891
- newSettings.minimumVersion = "1.57.1";
370931
+ newSettings.minimumVersion = "1.57.2";
370892
370932
  }
370893
370933
  updateSettingsForSource("userSettings", newSettings);
370894
370934
  setSettingsData((prev_27) => ({
@@ -378952,7 +378992,7 @@ function HelpV2(t0) {
378952
378992
  let t6;
378953
378993
  if ($2[31] !== tabs) {
378954
378994
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
378955
- title: `UR v${"1.57.1"}`,
378995
+ title: `UR v${"1.57.2"}`,
378956
378996
  color: "professionalBlue",
378957
378997
  defaultTab: "general",
378958
378998
  children: tabs
@@ -379869,7 +379909,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
379869
379909
  async function handleInitialize(options2) {
379870
379910
  return {
379871
379911
  name: "UR",
379872
- version: "1.57.1",
379912
+ version: "1.57.2",
379873
379913
  protocolVersion: "0.1.0",
379874
379914
  workspaceRoot: options2.cwd,
379875
379915
  capabilities: {
@@ -396977,7 +397017,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
396977
397017
  return [];
396978
397018
  }
396979
397019
  }
396980
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.57.1") {
397020
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.57.2") {
396981
397021
  if (process.env.USER_TYPE === "ant") {
396982
397022
  const changelog = "";
396983
397023
  if (changelog) {
@@ -397004,7 +397044,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.57.1")
397004
397044
  releaseNotes
397005
397045
  };
397006
397046
  }
397007
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.57.1") {
397047
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.57.2") {
397008
397048
  if (process.env.USER_TYPE === "ant") {
397009
397049
  const changelog = "";
397010
397050
  if (changelog) {
@@ -399861,7 +399901,7 @@ function getRecentActivitySync() {
399861
399901
  return cachedActivity;
399862
399902
  }
399863
399903
  function getLogoDisplayData() {
399864
- const version2 = process.env.DEMO_VERSION ?? "1.57.1";
399904
+ const version2 = process.env.DEMO_VERSION ?? "1.57.2";
399865
399905
  const serverUrl = getDirectConnectServerUrl();
399866
399906
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
399867
399907
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -400745,7 +400785,7 @@ function LogoV2() {
400745
400785
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
400746
400786
  t2 = () => {
400747
400787
  const currentConfig2 = getGlobalConfig();
400748
- if (currentConfig2.lastReleaseNotesSeen === "1.57.1") {
400788
+ if (currentConfig2.lastReleaseNotesSeen === "1.57.2") {
400749
400789
  return;
400750
400790
  }
400751
400791
  saveGlobalConfig(_temp327);
@@ -401430,12 +401470,12 @@ function LogoV2() {
401430
401470
  return t41;
401431
401471
  }
401432
401472
  function _temp327(current) {
401433
- if (current.lastReleaseNotesSeen === "1.57.1") {
401473
+ if (current.lastReleaseNotesSeen === "1.57.2") {
401434
401474
  return current;
401435
401475
  }
401436
401476
  return {
401437
401477
  ...current,
401438
- lastReleaseNotesSeen: "1.57.1"
401478
+ lastReleaseNotesSeen: "1.57.2"
401439
401479
  };
401440
401480
  }
401441
401481
  function _temp241(s_0) {
@@ -418233,7 +418273,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
418233
418273
  if (spec.name !== specName) {
418234
418274
  throw new Error("Agentic CI workflow spec name does not match");
418235
418275
  }
418236
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.57.1" : "1.57.1");
418276
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.57.2" : "1.57.2");
418237
418277
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
418238
418278
  throw new Error("invalid ur-agent package version");
418239
418279
  }
@@ -419226,7 +419266,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
419226
419266
  path: ".github/workflows/ur.yml",
419227
419267
  root: "project",
419228
419268
  content: compileAgenticCiWorkflow("default", {
419229
- packageVersion: typeof MACRO !== "undefined" ? "1.57.1" : "1.57.1"
419269
+ packageVersion: typeof MACRO !== "undefined" ? "1.57.2" : "1.57.2"
419230
419270
  })
419231
419271
  },
419232
419272
  {
@@ -419289,7 +419329,7 @@ function value(tokens, flag) {
419289
419329
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
419290
419330
  }
419291
419331
  function cliVersion() {
419292
- return typeof MACRO !== "undefined" ? "1.57.1" : "1.57.1";
419332
+ return typeof MACRO !== "undefined" ? "1.57.2" : "1.57.2";
419293
419333
  }
419294
419334
  function workflowPath(cwd2) {
419295
419335
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -425145,7 +425185,7 @@ function createAcpStdioApp(deps) {
425145
425185
  }
425146
425186
  },
425147
425187
  authMethods: [],
425148
- agentInfo: { name: "UR-Nexus", version: "1.57.1" }
425188
+ agentInfo: { name: "UR-Nexus", version: "1.57.2" }
425149
425189
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
425150
425190
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
425151
425191
  await runtime2.announce({
@@ -425242,7 +425282,7 @@ function createAcpStdioAgent(deps) {
425242
425282
  }
425243
425283
  },
425244
425284
  authMethods: [],
425245
- agentInfo: { name: "UR-Nexus", version: "1.57.1" }
425285
+ agentInfo: { name: "UR-Nexus", version: "1.57.2" }
425246
425286
  });
425247
425287
  return;
425248
425288
  case "authenticate":
@@ -632609,7 +632649,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
632609
632649
  smapsRollup,
632610
632650
  platform: process.platform,
632611
632651
  nodeVersion: process.version,
632612
- ccVersion: "1.57.1"
632652
+ ccVersion: "1.57.2"
632613
632653
  };
632614
632654
  }
632615
632655
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -633189,7 +633229,7 @@ var init_bridge_kick = __esm(() => {
633189
633229
  var call149 = async () => {
633190
633230
  return {
633191
633231
  type: "text",
633192
- value: "1.57.1"
633232
+ value: "1.57.2"
633193
633233
  };
633194
633234
  }, version2, version_default;
633195
633235
  var init_version = __esm(() => {
@@ -644260,7 +644300,7 @@ function generateHtmlReport(data, insights) {
644260
644300
  </html>`;
644261
644301
  }
644262
644302
  function buildExportData(data, insights, facets, remoteStats) {
644263
- const version3 = typeof MACRO !== "undefined" ? "1.57.1" : "unknown";
644303
+ const version3 = typeof MACRO !== "undefined" ? "1.57.2" : "unknown";
644264
644304
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
644265
644305
  const facets_summary = {
644266
644306
  total: facets.size,
@@ -648563,7 +648603,7 @@ var init_sessionStorage = __esm(() => {
648563
648603
  init_settings2();
648564
648604
  init_slowOperations();
648565
648605
  init_uuid();
648566
- VERSION7 = typeof MACRO !== "undefined" ? "1.57.1" : "unknown";
648606
+ VERSION7 = typeof MACRO !== "undefined" ? "1.57.2" : "unknown";
648567
648607
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
648568
648608
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
648569
648609
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -649778,7 +649818,7 @@ var init_filesystem = __esm(() => {
649778
649818
  });
649779
649819
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
649780
649820
  const nonce = randomBytes20(16).toString("hex");
649781
- return join227(getURTempDir(), "bundled-skills", "1.57.1", nonce);
649821
+ return join227(getURTempDir(), "bundled-skills", "1.57.2", nonce);
649782
649822
  });
649783
649823
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
649784
649824
  });
@@ -656073,7 +656113,7 @@ function computeFingerprint(messageText2, version3) {
656073
656113
  }
656074
656114
  function computeFingerprintFromMessages(messages) {
656075
656115
  const firstMessageText = extractFirstMessageText(messages);
656076
- return computeFingerprint(firstMessageText, "1.57.1");
656116
+ return computeFingerprint(firstMessageText, "1.57.2");
656077
656117
  }
656078
656118
  var FINGERPRINT_SALT = "59cf53e54c78";
656079
656119
  var init_fingerprint = () => {};
@@ -657969,7 +658009,7 @@ async function sideQuery(opts) {
657969
658009
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
657970
658010
  }
657971
658011
  const messageText2 = extractFirstUserMessageText(messages);
657972
- const fingerprint2 = computeFingerprint(messageText2, "1.57.1");
658012
+ const fingerprint2 = computeFingerprint(messageText2, "1.57.2");
657973
658013
  const attributionHeader = getAttributionHeader(fingerprint2);
657974
658014
  const systemBlocks = [
657975
658015
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -662740,7 +662780,7 @@ function buildSystemInitMessage(inputs) {
662740
662780
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
662741
662781
  apiKeySource: getURHQApiKeyWithSource().source,
662742
662782
  betas: getSdkBetas(),
662743
- ur_version: "1.57.1",
662783
+ ur_version: "1.57.2",
662744
662784
  output_style: outputStyle2,
662745
662785
  agents: inputs.agents.map((agent2) => agent2.agentType),
662746
662786
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -676600,7 +676640,7 @@ var init_useVoiceEnabled = __esm(() => {
676600
676640
  function getSemverPart(version3) {
676601
676641
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
676602
676642
  }
676603
- function useUpdateNotification(updatedVersion, initialVersion = "1.57.1") {
676643
+ function useUpdateNotification(updatedVersion, initialVersion = "1.57.2") {
676604
676644
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
676605
676645
  if (!updatedVersion) {
676606
676646
  return null;
@@ -676649,7 +676689,7 @@ function AutoUpdater({
676649
676689
  return;
676650
676690
  }
676651
676691
  if (false) {}
676652
- const currentVersion = "1.57.1";
676692
+ const currentVersion = "1.57.2";
676653
676693
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
676654
676694
  let latestVersion = await getLatestVersion(channel);
676655
676695
  const isDisabled = isAutoUpdaterDisabled();
@@ -676878,12 +676918,12 @@ function NativeAutoUpdater({
676878
676918
  logEvent("tengu_native_auto_updater_start", {});
676879
676919
  try {
676880
676920
  const maxVersion = await getMaxVersion();
676881
- if (maxVersion && gt("1.57.1", maxVersion)) {
676921
+ if (maxVersion && gt("1.57.2", maxVersion)) {
676882
676922
  const msg = await getMaxVersionMessage();
676883
676923
  setMaxVersionIssue(msg ?? "affects your version");
676884
676924
  }
676885
676925
  const result = await installLatest(channel);
676886
- const currentVersion = "1.57.1";
676926
+ const currentVersion = "1.57.2";
676887
676927
  const latencyMs = Date.now() - startTime;
676888
676928
  if (result.lockFailed) {
676889
676929
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -677020,17 +677060,17 @@ function PackageManagerAutoUpdater(t0) {
677020
677060
  const maxVersion = await getMaxVersion();
677021
677061
  if (maxVersion && latest && gt(latest, maxVersion)) {
677022
677062
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
677023
- if (gte("1.57.1", maxVersion)) {
677024
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.57.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
677063
+ if (gte("1.57.2", maxVersion)) {
677064
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.57.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
677025
677065
  setUpdateAvailable(false);
677026
677066
  return;
677027
677067
  }
677028
677068
  latest = maxVersion;
677029
677069
  }
677030
- const hasUpdate = latest && !gte("1.57.1", latest) && !shouldSkipVersion(latest);
677070
+ const hasUpdate = latest && !gte("1.57.2", latest) && !shouldSkipVersion(latest);
677031
677071
  setUpdateAvailable(!!hasUpdate);
677032
677072
  if (hasUpdate) {
677033
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.57.1"} -> ${latest}`);
677073
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.57.2"} -> ${latest}`);
677034
677074
  }
677035
677075
  };
677036
677076
  $2[0] = t1;
@@ -677064,7 +677104,7 @@ function PackageManagerAutoUpdater(t0) {
677064
677104
  wrap: "truncate",
677065
677105
  children: [
677066
677106
  "currentVersion: ",
677067
- "1.57.1"
677107
+ "1.57.2"
677068
677108
  ]
677069
677109
  }, undefined, true, undefined, this);
677070
677110
  $2[3] = verbose;
@@ -687761,7 +687801,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
687761
687801
  project_dir: getOriginalCwd(),
687762
687802
  added_dirs: addedDirs
687763
687803
  },
687764
- version: "1.57.1",
687804
+ version: "1.57.2",
687765
687805
  output_style: {
687766
687806
  name: outputStyleName
687767
687807
  },
@@ -687844,7 +687884,7 @@ function StatusLineInner({
687844
687884
  const taskValues = Object.values(tasks2);
687845
687885
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
687846
687886
  const defaultStatusLineText = buildDefaultStatusBar({
687847
- version: "1.57.1",
687887
+ version: "1.57.2",
687848
687888
  providerLabel: providerRuntime.providerLabel,
687849
687889
  authMode: providerRuntime.authLabel,
687850
687890
  model: providerRuntime.model ?? renderModelName(mainLoopModel),
@@ -699987,7 +700027,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
699987
700027
  } catch {}
699988
700028
  const data = {
699989
700029
  trigger: trigger2,
699990
- version: "1.57.1",
700030
+ version: "1.57.2",
699991
700031
  platform: process.platform,
699992
700032
  transcript,
699993
700033
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -712267,7 +712307,7 @@ function WelcomeV2() {
712267
712307
  dimColor: true,
712268
712308
  children: [
712269
712309
  "v",
712270
- "1.57.1"
712310
+ "1.57.2"
712271
712311
  ]
712272
712312
  }, undefined, true, undefined, this)
712273
712313
  ]
@@ -713527,7 +713567,7 @@ function completeOnboarding() {
713527
713567
  saveGlobalConfig((current) => ({
713528
713568
  ...current,
713529
713569
  hasCompletedOnboarding: true,
713530
- lastOnboardingVersion: "1.57.1"
713570
+ lastOnboardingVersion: "1.57.2"
713531
713571
  }));
713532
713572
  }
713533
713573
  function showDialog(root2, renderer) {
@@ -718571,7 +718611,7 @@ function appendToLog(path24, message) {
718571
718611
  cwd: getFsImplementation().cwd(),
718572
718612
  userType: process.env.USER_TYPE,
718573
718613
  sessionId: getSessionId(),
718574
- version: "1.57.1"
718614
+ version: "1.57.2"
718575
718615
  };
718576
718616
  getLogWriter(path24).write(messageWithTimestamp);
718577
718617
  }
@@ -722730,8 +722770,8 @@ async function getEnvLessBridgeConfig() {
722730
722770
  }
722731
722771
  async function checkEnvLessBridgeMinVersion() {
722732
722772
  const cfg = await getEnvLessBridgeConfig();
722733
- if (cfg.min_version && lt("1.57.1", cfg.min_version)) {
722734
- return `Your version of UR (${"1.57.1"}) is too old for Remote Control.
722773
+ if (cfg.min_version && lt("1.57.2", cfg.min_version)) {
722774
+ return `Your version of UR (${"1.57.2"}) is too old for Remote Control.
722735
722775
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
722736
722776
  }
722737
722777
  return null;
@@ -723205,7 +723245,7 @@ async function initBridgeCore(params) {
723205
723245
  const rawApi = createBridgeApiClient({
723206
723246
  baseUrl,
723207
723247
  getAccessToken,
723208
- runnerVersion: "1.57.1",
723248
+ runnerVersion: "1.57.2",
723209
723249
  onDebug: logForDebugging,
723210
723250
  onAuth401,
723211
723251
  getTrustedDeviceToken
@@ -732677,7 +732717,7 @@ function getAgUiCapabilities() {
732677
732717
  name: "UR-Nexus",
732678
732718
  type: "ur-nexus",
732679
732719
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
732680
- version: "1.57.1",
732720
+ version: "1.57.2",
732681
732721
  provider: "UR",
732682
732722
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
732683
732723
  },
@@ -733817,7 +733857,7 @@ function createMCPServer(cwd4, debug2, verbose) {
733817
733857
  };
733818
733858
  const server2 = new Server({
733819
733859
  name: "ur-nexus",
733820
- version: "1.57.1"
733860
+ version: "1.57.2"
733821
733861
  }, {
733822
733862
  capabilities: {
733823
733863
  tools: {}
@@ -734975,7 +735015,7 @@ function thrownResponse(error40) {
734975
735015
  }
734976
735016
  async function createUrMcp2026Runtime(options4) {
734977
735017
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
734978
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.57.1" }, { capabilities: {} });
735018
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.57.2" }, { capabilities: {} });
734979
735019
  const [clientTransport, serverTransport] = createLinkedTransportPair();
734980
735020
  try {
734981
735021
  await server2.connect(serverTransport);
@@ -734986,7 +735026,7 @@ async function createUrMcp2026Runtime(options4) {
734986
735026
  }
734987
735027
  const runtime2 = new Mcp2026Runtime({
734988
735028
  cwd: options4.cwd,
734989
- version: "1.57.1",
735029
+ version: "1.57.2",
734990
735030
  backend: {
734991
735031
  listTools: async () => {
734992
735032
  const listed = await client2.listTools();
@@ -737119,7 +737159,7 @@ async function update() {
737119
737159
  logEvent("tengu_update_check", {});
737120
737160
  const diagnostic2 = await getDoctorDiagnostic();
737121
737161
  const result = await checkUpgradeStatus({
737122
- currentVersion: "1.57.1",
737162
+ currentVersion: "1.57.2",
737123
737163
  packageName: UR_AGENT_PACKAGE_NAME,
737124
737164
  installationType: diagnostic2.installationType,
737125
737165
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -738435,7 +738475,7 @@ ${customInstructions}` : customInstructions;
738435
738475
  }
738436
738476
  }
738437
738477
  logForDiagnosticsNoPII("info", "started", {
738438
- version: "1.57.1",
738478
+ version: "1.57.2",
738439
738479
  is_native_binary: isInBundledMode()
738440
738480
  });
738441
738481
  registerCleanup(async () => {
@@ -739221,7 +739261,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
739221
739261
  pendingHookMessages
739222
739262
  }, renderAndRun);
739223
739263
  }
739224
- }).version("1.57.1 (UR-Nexus)", "-v, --version", "Output the version number");
739264
+ }).version("1.57.2 (UR-Nexus)", "-v, --version", "Output the version number");
739225
739265
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
739226
739266
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
739227
739267
  if (canUserConfigureAdvisor()) {
@@ -740256,7 +740296,7 @@ if (false) {}
740256
740296
  async function main2() {
740257
740297
  const args = process.argv.slice(2);
740258
740298
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
740259
- console.log(`${"1.57.1"} (UR-Nexus)`);
740299
+ console.log(`${"1.57.2"} (UR-Nexus)`);
740260
740300
  return;
740261
740301
  }
740262
740302
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
package/docs/providers.md CHANGED
@@ -47,7 +47,14 @@ multimodal input, external CLI boundary, and sandbox scope:
47
47
  | Antigravity | subscription | subscription-cli | yes | no | no | no† | UR-run tools/output only† | `subscription-cli:antigravity` | official Antigravity CLI login, where supported |
48
48
 
49
49
  \* Ollama forwards images only to models that advertise vision support;
50
- unsupported models get a text placeholder instead of the image.
50
+ unsupported models get a text placeholder instead of the image. This applies to
51
+ images returned by tools as well as images you paste: a `Computer` screenshot or
52
+ any other image-bearing tool result is extracted from the tool message and sent
53
+ as `images` on the following user message, because Ollama renders `images`
54
+ reliably there but only template-dependently on a `tool` message. On a text-only
55
+ model the placeholder names the model and points at `/model`, so the agent tells
56
+ you why it cannot see rather than guessing. Check a model with `ur model-doctor`
57
+ or `ollama show <model>`.
51
58
 
52
59
  † External vendor CLI boundary (see below): UR passes prompt text only to the
53
60
  official CLI, so image blocks are not forwarded, and UR-native tool/streaming/
@@ -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.57.1</p>
48
+ <p class="eyebrow">Version 1.57.2</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.57.1"
10
+ version = "1.57.2"
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.57.1",
5
+ "version": "1.57.2",
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.57.1",
3
+ "version": "1.57.2",
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",