ur-agent 1.84.1 → 1.84.3

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/dist/cli.js CHANGED
@@ -60952,6 +60952,8 @@ function getProviderRuntimeBackend(providerId) {
60952
60952
  return "api:gemini";
60953
60953
  case "openrouter":
60954
60954
  return "api:openrouter";
60955
+ case "nvidia-nim":
60956
+ return "api:nvidia-nim";
60955
60957
  default:
60956
60958
  return `unknown:${providerId}`;
60957
60959
  }
@@ -61297,9 +61299,6 @@ function openAiCompatibleModelUrls(baseUrl) {
61297
61299
  url3.pathname = `${rootPath}/models`;
61298
61300
  return [versioned, url3.toString().replace(/\/$/, "")];
61299
61301
  }
61300
- function isLocalBaseUrl(value) {
61301
- return LOCALHOST_RE.test(value);
61302
- }
61303
61302
  async function checkEndpoint(definition, settings, adapters, result) {
61304
61303
  if (!definition.endpointKind)
61305
61304
  return;
@@ -61369,7 +61368,8 @@ async function checkEndpoint(definition, settings, adapters, result) {
61369
61368
  status: "fail",
61370
61369
  message: `${candidates[0]} returned HTTP ${lastStatus}.`
61371
61370
  });
61372
- addFailure(result, `endpoint returned HTTP ${lastStatus}`, `Start the provider server or update base_url: ur config set base_url ${definition.id} ${baseUrl}`);
61371
+ const authenticationFailure = (lastStatus === 401 || lastStatus === 403) && definition.envKey;
61372
+ addFailure(result, `endpoint returned HTTP ${lastStatus}`, authenticationFailure ? `Add or replace this endpoint's key with: ur connect ${definition.id} (or set ${definition.envKey}).` : `Start the provider server or update base_url: ur config set base_url ${definition.id} ${baseUrl}`);
61373
61373
  } else {
61374
61374
  result.checks.push({
61375
61375
  name: "endpoint",
@@ -61502,7 +61502,7 @@ async function checkSubscriptionProvider(definition, settings, adapters, result)
61502
61502
  async function checkApiProvider(definition, settings, adapters, result) {
61503
61503
  const env4 = adapters.env ?? process.env;
61504
61504
  const baseUrl = settings.baseUrl ?? definition.defaultBaseUrl;
61505
- const requiresKey = definition.id !== "openai-compatible" || !baseUrl || !isLocalBaseUrl(baseUrl);
61505
+ const requiresKey = definition.requiresApiKey === true || definition.credentialType === "api-key" && definition.endpointKind !== "openai-compatible";
61506
61506
  let apiKey = definition.envKey ? env4[definition.envKey] : undefined;
61507
61507
  let keySource = "env";
61508
61508
  if (!apiKey && (!adapters.env || adapters.getApiKey)) {
@@ -62778,7 +62778,7 @@ function setProviderModel(providerId, modelId, options = {}) {
62778
62778
  modelSource: options.modelSource ?? "static"
62779
62779
  };
62780
62780
  }
62781
- var PROVIDER_IDS, DEFAULT_PROVIDER_ID = "ollama", LOCALHOST_RE, UR_NATIVE_PROVIDER_BOUNDARY = "UR-native runtime: UR owns provider request shaping, native tool-call parsing, native streaming, and UR-run tool permission/sandbox/verifier flow.", SUBSCRIPTION_CLI_PROVIDER_BOUNDARY = "External vendor CLI boundary: UR passes prompt text to the official CLI and receives final text output. UR-native tool calling, UR Bash/File tool execution, UR-native streaming, local command permissions, sandbox guarantees, and verifier/done-gate checks apply to UR-run tools/final UR output, not to actions the external CLI performs internally.", UNCONFIGURED_SUBSCRIPTION_PROVIDER_BOUNDARY = "Unconfigured subscription placeholder: no runtime is attached. Choose a specific subscription CLI, API, local, or server provider.", UR_NATIVE_CAPABILITIES, SUBSCRIPTION_CLI_CAPABILITIES, SUBSCRIPTION_PLACEHOLDER_CAPABILITIES, PROVIDERS, PROVIDER_ALIAS_ENTRIES, PROVIDER_ALIASES, PROVIDER_FAMILIES, EFFORT_LOW_MEDIUM_HIGH, EFFORT_LOW_MEDIUM_HIGH_XHIGH, EFFORT_LOW_MEDIUM_HIGH_MAX, EFFORT_LOW_MEDIUM_HIGH_XHIGH_MAX, OPENAI_GPT_56_EFFORTS, GEMINI_MINIMAL_TO_HIGH, PROVIDER_MODELS, cachedModelsByProvider, cachedModelsWrittenAt, modelDiscoveryCoalescer, MODEL_DISCOVERY_TIMEOUT_MS = 15000, validateProviderModelCompatibility;
62781
+ var PROVIDER_IDS, DEFAULT_PROVIDER_ID = "ollama", UR_NATIVE_PROVIDER_BOUNDARY = "UR-native runtime: UR owns provider request shaping, native tool-call parsing, native streaming, and UR-run tool permission/sandbox/verifier flow.", SUBSCRIPTION_CLI_PROVIDER_BOUNDARY = "External vendor CLI boundary: UR passes prompt text to the official CLI and receives final text output. UR-native tool calling, UR Bash/File tool execution, UR-native streaming, local command permissions, sandbox guarantees, and verifier/done-gate checks apply to UR-run tools/final UR output, not to actions the external CLI performs internally.", UNCONFIGURED_SUBSCRIPTION_PROVIDER_BOUNDARY = "Unconfigured subscription placeholder: no runtime is attached. Choose a specific subscription CLI, API, local, or server provider.", UR_NATIVE_CAPABILITIES, SUBSCRIPTION_CLI_CAPABILITIES, SUBSCRIPTION_PLACEHOLDER_CAPABILITIES, PROVIDERS, PROVIDER_ALIAS_ENTRIES, PROVIDER_ALIASES, PROVIDER_FAMILIES, EFFORT_LOW_MEDIUM_HIGH, EFFORT_LOW_MEDIUM_HIGH_XHIGH, EFFORT_LOW_MEDIUM_HIGH_MAX, EFFORT_LOW_MEDIUM_HIGH_XHIGH_MAX, OPENAI_GPT_56_EFFORTS, GEMINI_MINIMAL_TO_HIGH, NVIDIA_NONE_LOW_HIGH, NVIDIA_NONE_HIGH_MAX, NVIDIA_FULL_EFFORT_RANGE, PROVIDER_MODELS, cachedModelsByProvider, cachedModelsWrittenAt, modelDiscoveryCoalescer, MODEL_DISCOVERY_TIMEOUT_MS = 15000, validateProviderModelCompatibility;
62782
62782
  var init_providerRegistry = __esm(() => {
62783
62783
  init_execFileNoThrow();
62784
62784
  init_ollamaConfig();
@@ -62798,12 +62798,12 @@ var init_providerRegistry = __esm(() => {
62798
62798
  "anthropic-api",
62799
62799
  "gemini-api",
62800
62800
  "openrouter",
62801
+ "nvidia-nim",
62801
62802
  "codex-cli",
62802
62803
  "claude-code-cli",
62803
62804
  "gemini-cli",
62804
62805
  "antigravity-cli"
62805
62806
  ];
62806
- LOCALHOST_RE = /^(https?:\/\/)?(localhost|127\.0\.0\.1|\[::1\]|::1)(:\d+)?(\/|$)/i;
62807
62807
  UR_NATIVE_CAPABILITIES = {
62808
62808
  providerKind: "ur-native",
62809
62809
  usesExternalCli: false,
@@ -63001,6 +63001,27 @@ var init_providerRegistry = __esm(() => {
63001
63001
  envKey: "OPENROUTER_API_KEY",
63002
63002
  defaultBaseUrl: "https://openrouter.ai/api/v1"
63003
63003
  },
63004
+ "nvidia-nim": {
63005
+ id: "nvidia-nim",
63006
+ displayName: "NVIDIA NIM",
63007
+ statusBarName: "NVIDIA NIM",
63008
+ accessType: "api",
63009
+ accessTypeLabel: "hosted/server",
63010
+ credentialType: "api-key",
63011
+ modelDiscoveryType: "live",
63012
+ statusCheck: "endpoint",
63013
+ listModels: "openai-compatible-models",
63014
+ validateModel: "discovered-list",
63015
+ runtimeKind: "ur-native",
63016
+ ...UR_NATIVE_CAPABILITIES,
63017
+ authMode: "api",
63018
+ legalPath: "NVIDIA API key from build.nvidia.com or an authenticated NVIDIA NIM endpoint",
63019
+ accessPathLabel: "NVIDIA NIM OpenAI-compatible endpoint",
63020
+ envKey: "NVIDIA_API_KEY",
63021
+ requiresApiKey: true,
63022
+ defaultBaseUrl: "https://integrate.api.nvidia.com/v1",
63023
+ endpointKind: "openai-compatible"
63024
+ },
63004
63025
  "openai-compatible": {
63005
63026
  id: "openai-compatible",
63006
63027
  displayName: "OpenAI-compatible",
@@ -63158,6 +63179,10 @@ var init_providerRegistry = __esm(() => {
63158
63179
  canonical: "openrouter",
63159
63180
  aliases: ["openrouter api"]
63160
63181
  },
63182
+ {
63183
+ canonical: "nvidia-nim",
63184
+ aliases: ["nvidia", "nvidia api", "nvidia build", "nvidia nim", "nim"]
63185
+ },
63161
63186
  {
63162
63187
  canonical: "openai-compatible",
63163
63188
  aliases: ["compatible", "openai compatible", "openai compatible api"]
@@ -63198,6 +63223,7 @@ var init_providerRegistry = __esm(() => {
63198
63223
  "gemini-cli": "google",
63199
63224
  "antigravity-cli": "google",
63200
63225
  openrouter: "openai-compatible",
63226
+ "nvidia-nim": "openai-compatible",
63201
63227
  "openai-compatible": "openai-compatible",
63202
63228
  lmstudio: "openai-compatible",
63203
63229
  "llama.cpp": "openai-compatible",
@@ -63224,6 +63250,21 @@ var init_providerRegistry = __esm(() => {
63224
63250
  GEMINI_MINIMAL_TO_HIGH = {
63225
63251
  supportedEfforts: ["minimal", "low", "medium", "high"]
63226
63252
  };
63253
+ NVIDIA_NONE_LOW_HIGH = {
63254
+ supportedEfforts: ["none", "low", "high"],
63255
+ effortAliases: { minimal: "none" },
63256
+ defaultEffort: "high"
63257
+ };
63258
+ NVIDIA_NONE_HIGH_MAX = {
63259
+ supportedEfforts: ["none", "high", "max"],
63260
+ effortAliases: { minimal: "none", ultra: "max" },
63261
+ defaultEffort: "high"
63262
+ };
63263
+ NVIDIA_FULL_EFFORT_RANGE = {
63264
+ supportedEfforts: ["none", "minimal", "low", "medium", "high", "max"],
63265
+ effortAliases: { ultra: "max" },
63266
+ defaultEffort: "high"
63267
+ };
63227
63268
  PROVIDER_MODELS = {
63228
63269
  subscription: [],
63229
63270
  "codex-cli": [
@@ -63299,6 +63340,15 @@ var init_providerRegistry = __esm(() => {
63299
63340
  { id: "google/gemini-3.5-flash", displayName: "Gemini 3.5 Flash", description: "Google Gemini via OpenRouter" },
63300
63341
  { id: "google/gemini-2.5-pro", displayName: "Gemini 2.5 Pro", description: "Google Gemini via OpenRouter" }
63301
63342
  ],
63343
+ "nvidia-nim": [
63344
+ { id: "openai/gpt-oss-20b", displayName: "openai/gpt-oss-20b", description: "NVIDIA-documented reasoning contract", isDynamic: true, reasoning: { supportedEfforts: ["low", "medium", "high"], defaultEffort: "medium" } },
63345
+ { id: "openai/gpt-oss-120b", displayName: "openai/gpt-oss-120b", description: "NVIDIA-documented reasoning contract", isDynamic: true, reasoning: { supportedEfforts: ["low", "medium", "high"], defaultEffort: "medium" } },
63346
+ { id: "nvidia/nemotron-3-super-120b-a12b", displayName: "nvidia/nemotron-3-super-120b-a12b", description: "NVIDIA-documented reasoning contract", isDynamic: true, reasoning: NVIDIA_NONE_LOW_HIGH },
63347
+ { id: "nvidia/nemotron-3-ultra-550b-a55b", displayName: "nvidia/nemotron-3-ultra-550b-a55b", description: "NVIDIA-documented reasoning contract", isDynamic: true, reasoning: NVIDIA_NONE_LOW_HIGH },
63348
+ { id: "deepseek-ai/deepseek-v4-flash", displayName: "deepseek-ai/deepseek-v4-flash", description: "NVIDIA-documented reasoning contract", isDynamic: true, reasoning: NVIDIA_NONE_HIGH_MAX },
63349
+ { id: "deepseek-ai/deepseek-v4-flash-0731", displayName: "deepseek-ai/deepseek-v4-flash-0731", description: "NVIDIA-documented reasoning contract", isDynamic: true, reasoning: NVIDIA_NONE_HIGH_MAX },
63350
+ { id: "meta/muse-glimmer-30b", displayName: "meta/muse-glimmer-30b", description: "NVIDIA-documented reasoning contract", isDynamic: true, reasoning: NVIDIA_FULL_EFFORT_RANGE }
63351
+ ],
63302
63352
  "openai-compatible": [
63303
63353
  { id: "custom", displayName: "Custom Model", description: "Model name from provider endpoint", isDynamic: true }
63304
63354
  ],
@@ -231083,7 +231133,7 @@ var init_metadata = __esm(() => {
231083
231133
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
231084
231134
  WHITESPACE_REGEX2 = /\s+/;
231085
231135
  getVersionBase = memoize_default(() => {
231086
- const match = "1.84.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
231136
+ const match = "1.84.3".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
231087
231137
  return match ? match[0] : undefined;
231088
231138
  });
231089
231139
  buildEnvContext = memoize_default(async () => {
@@ -231123,7 +231173,7 @@ var init_metadata = __esm(() => {
231123
231173
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
231124
231174
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
231125
231175
  isURAiAuth: isURAISubscriber(),
231126
- version: "1.84.1",
231176
+ version: "1.84.3",
231127
231177
  versionBase: getVersionBase(),
231128
231178
  buildTime: "",
231129
231179
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -238562,7 +238612,7 @@ function getAttributionHeader(fingerprint) {
238562
238612
  if (!isAttributionHeaderEnabled()) {
238563
238613
  return "";
238564
238614
  }
238565
- const version2 = `${"1.84.1"}.${fingerprint}`;
238615
+ const version2 = `${"1.84.3"}.${fingerprint}`;
238566
238616
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
238567
238617
  const cch = "";
238568
238618
  const workload = getWorkload();
@@ -261752,6 +261802,7 @@ __export(exports_openaiCompatible, {
261752
261802
  normalizeImageBlockSource: () => normalizeImageBlockSource,
261753
261803
  mapOpenAIToolChoice: () => mapOpenAIToolChoice,
261754
261804
  mapOpenAIStopReason: () => mapOpenAIStopReason,
261805
+ imageBlocksFromContent: () => imageBlocksFromContent,
261755
261806
  imageBlockToOpenAIContentPart: () => imageBlockToOpenAIContentPart,
261756
261807
  estimateSerializedInputTokens: () => estimateSerializedInputTokens,
261757
261808
  estimateProviderInputTokens: () => estimateProviderInputTokens,
@@ -261851,7 +261902,7 @@ async function createOpenAICompatibleClient(options2) {
261851
261902
  source: "local-estimate"
261852
261903
  };
261853
261904
  };
261854
- if (providerId !== "llama.cpp" && providerId !== "vllm") {
261905
+ if (providerId !== "llama.cpp" && providerId !== "vllm" && providerId !== "nvidia-nim") {
261855
261906
  return estimate();
261856
261907
  }
261857
261908
  try {
@@ -261918,6 +261969,7 @@ function toOpenAICompatibleRequest(params, providerName = "openai-compatible") {
261918
261969
  const toolChoice = openRouterServerSearch ? undefined : mapOpenAIToolChoice(params.tool_choice);
261919
261970
  const openRouterProviderPreferences = providerName === "openrouter" ? openRouterRoutingPreferences(params) : undefined;
261920
261971
  const openRouterSessionId = providerName === "openrouter" ? resolveOpenRouterSessionId(params) : undefined;
261972
+ const nvidiaCodingAgentTemplate = providerName === "nvidia-nim" && /^nvidia\/nemotron-3-(?:super|ultra)(?:-|$)/iu.test(String(params.model ?? "")) && tools.length > 0 ? { force_nonempty_content: true } : undefined;
261921
261973
  return {
261922
261974
  model: params.model,
261923
261975
  messages: toOpenAIMessages(params, providerName),
@@ -261933,6 +261985,9 @@ function toOpenAICompatibleRequest(params, providerName = "openai-compatible") {
261933
261985
  provider: openRouterProviderPreferences
261934
261986
  },
261935
261987
  ...openRouterSessionId && { session_id: openRouterSessionId },
261988
+ ...nvidiaCodingAgentTemplate && {
261989
+ chat_template_kwargs: nvidiaCodingAgentTemplate
261990
+ },
261936
261991
  stream: Boolean(params.stream),
261937
261992
  ...params.stream && providerName !== "openrouter" ? { stream_options: { include_usage: true } } : {},
261938
261993
  ...tools.length > 0 ? { tools } : {},
@@ -262093,14 +262148,14 @@ function contentToText(content) {
262093
262148
  return content;
262094
262149
  if (!Array.isArray(content))
262095
262150
  return "";
262096
- return content.map((block2) => {
262151
+ return content.flatMap((block2) => {
262097
262152
  if (typeof block2 === "string")
262098
- return block2;
262153
+ return [block2];
262099
262154
  if (block2?.type === "text")
262100
- return block2.text ?? "";
262155
+ return [block2.text ?? ""];
262101
262156
  if (block2?.type === "tool_result")
262102
- return contentToText(block2.content);
262103
- return "";
262157
+ return [contentToText(block2.content)];
262158
+ return [];
262104
262159
  }).join(`
262105
262160
  `);
262106
262161
  }
@@ -262120,6 +262175,18 @@ function containsImageBlock(content) {
262120
262175
  return false;
262121
262176
  });
262122
262177
  }
262178
+ function imageBlocksFromContent(content) {
262179
+ if (!Array.isArray(content))
262180
+ return [];
262181
+ return content.flatMap((block2) => {
262182
+ if (block2?.type === "image")
262183
+ return [block2];
262184
+ if (block2?.type === "tool_result") {
262185
+ return imageBlocksFromContent(block2.content);
262186
+ }
262187
+ return [];
262188
+ });
262189
+ }
262123
262190
  function normalizeImageBlockSource(block2, providerName, context) {
262124
262191
  if (block2?.type !== "image") {
262125
262192
  throw new ProviderCapabilityError(`${providerName} expected an image block in ${context}`, { providerName, capability: "multimodal_input", context, block: block2 });
@@ -262314,6 +262381,7 @@ function messageToOpenAIMessages(message, toolNamesById, providerName) {
262314
262381
  let hasStructuredContent = false;
262315
262382
  const toolCalls = [];
262316
262383
  const toolResults = [];
262384
+ const toolResultImageParts = [];
262317
262385
  const flushTextPart = () => {
262318
262386
  if (pendingTextParts.length === 0)
262319
262387
  return;
@@ -262367,9 +262435,10 @@ function messageToOpenAIMessages(message, toolNamesById, providerName) {
262367
262435
  });
262368
262436
  break;
262369
262437
  case "tool_result":
262370
- assertNoImageBlocks(block2.content, providerName, `tool_result ${block2.tool_use_id ?? index2} content`);
262438
+ const toolResultImages = imageBlocksFromContent(block2.content);
262371
262439
  const toolResultCacheControl = providerName === "openrouter" ? toOpenRouterCacheControl(block2.cache_control) : undefined;
262372
262440
  const toolResultText2 = contentToText(block2.content);
262441
+ const toolResultName = toolNamesById.get(block2.tool_use_id) ?? block2.tool_use_id ?? index2;
262373
262442
  toolResults.push({
262374
262443
  role: "tool",
262375
262444
  tool_call_id: block2.tool_use_id,
@@ -262380,6 +262449,13 @@ function messageToOpenAIMessages(message, toolNamesById, providerName) {
262380
262449
  }] : toolResultText2,
262381
262450
  ...toolNamesById.get(block2.tool_use_id) ? { name: toolNamesById.get(block2.tool_use_id) } : {}
262382
262451
  });
262452
+ if (toolResultImages.length > 0) {
262453
+ toolResultImageParts.push({
262454
+ type: "text",
262455
+ text: `Image output from tool ${toolResultName}:`
262456
+ });
262457
+ toolResultImageParts.push(...toolResultImages.map((image, imageIndex) => imageBlockToOpenAIContentPart(image, providerName, `tool_result ${block2.tool_use_id ?? index2} image ${imageIndex}`)));
262458
+ }
262383
262459
  break;
262384
262460
  default:
262385
262461
  break;
@@ -262399,13 +262475,16 @@ function messageToOpenAIMessages(message, toolNamesById, providerName) {
262399
262475
  ];
262400
262476
  }
262401
262477
  if (toolResults.length > 0) {
262402
- const result = [];
262403
- if (hasStructuredContent) {
262478
+ const result = [...toolResults];
262479
+ if (toolResultImageParts.length > 0) {
262480
+ const followupParts = hasStructuredContent ? [...multimodalParts] : text2 ? [{ type: "text", text: text2 }] : [];
262481
+ followupParts.push(...toolResultImageParts);
262482
+ result.push({ role: "user", content: followupParts });
262483
+ } else if (hasStructuredContent) {
262404
262484
  result.push({ role: message.role, content: messageContent });
262405
262485
  } else if (text2) {
262406
262486
  result.push({ role: message.role, content: text2 });
262407
262487
  }
262408
- result.push(...toolResults);
262409
262488
  return result;
262410
262489
  }
262411
262490
  return [{ role: message.role, content: messageContent }];
@@ -271868,6 +271947,7 @@ var init_types4 = __esm(() => {
271868
271947
  "anthropic-api",
271869
271948
  "gemini-api",
271870
271949
  "openrouter",
271950
+ "nvidia-nim",
271871
271951
  "openai-compatible",
271872
271952
  "ollama",
271873
271953
  "lmstudio",
@@ -304567,7 +304647,7 @@ function getTelemetryAttributes() {
304567
304647
  attributes["session.id"] = sessionId;
304568
304648
  }
304569
304649
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
304570
- attributes["app.version"] = "1.84.1";
304650
+ attributes["app.version"] = "1.84.3";
304571
304651
  }
304572
304652
  const oauthAccount = getOauthAccountInfo();
304573
304653
  if (oauthAccount) {
@@ -307598,7 +307678,7 @@ var require_src3 = __commonJS((exports) => {
307598
307678
  function getInstruments() {
307599
307679
  if (instruments)
307600
307680
  return instruments;
307601
- const meter = import_api2.metrics.getMeter("ur-agent.gen_ai", "1.84.1");
307681
+ const meter = import_api2.metrics.getMeter("ur-agent.gen_ai", "1.84.3");
307602
307682
  instruments = {
307603
307683
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
307604
307684
  description: "GenAI operation duration.",
@@ -307696,7 +307776,7 @@ function genAiAgentAttributes() {
307696
307776
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
307697
307777
  "gen_ai.provider.name": "ur",
307698
307778
  "gen_ai.agent.name": "UR-Nexus",
307699
- "gen_ai.agent.version": "1.84.1"
307779
+ "gen_ai.agent.version": "1.84.3"
307700
307780
  };
307701
307781
  }
307702
307782
  function genAiWorkflowAttributes(workflowName, workflowRunId) {
@@ -307717,7 +307797,7 @@ function genAiWorkflowAttributes(workflowName, workflowRunId) {
307717
307797
  function startGenAiWorkflowSpan(workflowName, workflowRunId) {
307718
307798
  const attributes = genAiWorkflowAttributes(workflowName, workflowRunId);
307719
307799
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
307720
- return import_api2.trace.getTracer("ur-agent.gen_ai", "1.84.1").startSpan(name, { kind: import_api2.SpanKind.INTERNAL, attributes });
307800
+ return import_api2.trace.getTracer("ur-agent.gen_ai", "1.84.3").startSpan(name, { kind: import_api2.SpanKind.INTERNAL, attributes });
307721
307801
  }
307722
307802
  function endGenAiWorkflowSpan(span, options2 = {}) {
307723
307803
  try {
@@ -307755,7 +307835,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
307755
307835
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
307756
307836
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
307757
307837
  }
307758
- return import_api2.trace.getTracer("ur-agent.gen_ai", "1.84.1").startSpan(operation, { kind: import_api2.SpanKind.INTERNAL, attributes });
307838
+ return import_api2.trace.getTracer("ur-agent.gen_ai", "1.84.3").startSpan(operation, { kind: import_api2.SpanKind.INTERNAL, attributes });
307759
307839
  }
307760
307840
  function endGenAiMemorySpan(span, options2 = {}) {
307761
307841
  try {
@@ -322162,7 +322242,7 @@ async function createRuntime() {
322162
322242
  bootstrapTelemetry();
322163
322243
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
322164
322244
  [import_semantic_conventions6.ATTR_SERVICE_NAME]: "ur-agent",
322165
- [import_semantic_conventions6.ATTR_SERVICE_VERSION]: "1.84.1"
322245
+ [import_semantic_conventions6.ATTR_SERVICE_VERSION]: "1.84.3"
322166
322246
  }));
322167
322247
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
322168
322248
  resource,
@@ -322195,11 +322275,11 @@ async function createRuntime() {
322195
322275
  setMeterProvider(meterProvider);
322196
322276
  setLoggerProvider(loggerProvider);
322197
322277
  if (meterProvider) {
322198
- const meter = meterProvider.getMeter("ur-agent", "1.84.1");
322278
+ const meter = meterProvider.getMeter("ur-agent", "1.84.3");
322199
322279
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
322200
322280
  }
322201
322281
  if (loggerProvider) {
322202
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.84.1"));
322282
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.84.3"));
322203
322283
  }
322204
322284
  if (!cleanupRegistered4) {
322205
322285
  cleanupRegistered4 = true;
@@ -322748,7 +322828,7 @@ function isAnyTracingEnabled() {
322748
322828
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
322749
322829
  }
322750
322830
  function getTracer() {
322751
- return import_api32.trace.getTracer("ur-agent.gen_ai", "1.84.1");
322831
+ return import_api32.trace.getTracer("ur-agent.gen_ai", "1.84.3");
322752
322832
  }
322753
322833
  function createSpanAttributes(spanType, customAttributes = {}) {
322754
322834
  const baseAttributes = getTelemetryAttributes();
@@ -334699,7 +334779,7 @@ function computeFingerprint(messageText2, version2) {
334699
334779
  }
334700
334780
  function computeFingerprintFromMessages(messages) {
334701
334781
  const firstMessageText = extractFirstMessageText(messages);
334702
- return computeFingerprint(firstMessageText, "1.84.1");
334782
+ return computeFingerprint(firstMessageText, "1.84.3");
334703
334783
  }
334704
334784
  var FINGERPRINT_SALT = "59cf53e54c78";
334705
334785
  var init_fingerprint = () => {};
@@ -334741,7 +334821,7 @@ async function sideQuery(opts) {
334741
334821
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
334742
334822
  }
334743
334823
  const messageText2 = extractFirstUserMessageText(messages);
334744
- const fingerprint = computeFingerprint(messageText2, "1.84.1");
334824
+ const fingerprint = computeFingerprint(messageText2, "1.84.3");
334745
334825
  const attributionHeader = getAttributionHeader(fingerprint);
334746
334826
  const systemBlocks = [
334747
334827
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -336848,7 +336928,7 @@ var init_user = __esm(() => {
336848
336928
  deviceId,
336849
336929
  sessionId: getSessionId(),
336850
336930
  email: getEmail(),
336851
- appVersion: "1.84.1",
336931
+ appVersion: "1.84.3",
336852
336932
  platform: getHostPlatformForAnalytics(),
336853
336933
  organizationUuid,
336854
336934
  accountUuid,
@@ -337608,7 +337688,7 @@ var init_growthbook_experiment_event = __esm(() => {
337608
337688
 
337609
337689
  // src/utils/userAgent.ts
337610
337690
  function getURCodeUserAgent() {
337611
- return `ur/${"1.84.1"}`;
337691
+ return `ur/${"1.84.3"}`;
337612
337692
  }
337613
337693
 
337614
337694
  // src/services/analytics/firstPartyEventLoggingExporter.ts
@@ -338264,7 +338344,7 @@ function initialize1PEventLogging() {
338264
338344
  const platform4 = getPlatform();
338265
338345
  const attributes = {
338266
338346
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur",
338267
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.84.1"
338347
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.84.3"
338268
338348
  };
338269
338349
  if (platform4 === "wsl") {
338270
338350
  const wslVersion = getWslVersion();
@@ -338292,7 +338372,7 @@ function initialize1PEventLogging() {
338292
338372
  })
338293
338373
  ]
338294
338374
  });
338295
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.84.1");
338375
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.84.3");
338296
338376
  }
338297
338377
  async function reinitialize1PEventLoggingIfConfigChanged() {
338298
338378
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -339850,6 +339930,7 @@ var init_managedEnvConstants = __esm(() => {
339850
339930
  "AWS_BEARER_TOKEN_BEDROCK",
339851
339931
  "URHQ_FOUNDRY_API_KEY",
339852
339932
  "OPENAI_COMPATIBLE_API_KEY",
339933
+ "NVIDIA_API_KEY",
339853
339934
  "UR_CODE_SKIP_BEDROCK_AUTH",
339854
339935
  "UR_CODE_SKIP_VERTEX_AUTH",
339855
339936
  "UR_CODE_SKIP_FOUNDRY_AUTH",
@@ -341593,9 +341674,9 @@ async function assertMinVersion() {
341593
341674
  if (false) {}
341594
341675
  try {
341595
341676
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
341596
- if (versionConfig.minVersion && lt("1.84.1", versionConfig.minVersion)) {
341677
+ if (versionConfig.minVersion && lt("1.84.3", versionConfig.minVersion)) {
341597
341678
  console.error(`
341598
- It looks like your version of UR (${"1.84.1"}) needs an update.
341679
+ It looks like your version of UR (${"1.84.3"}) needs an update.
341599
341680
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
341600
341681
 
341601
341682
  To update, please run:
@@ -341811,7 +341892,7 @@ async function installGlobalPackage(specificVersion) {
341811
341892
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
341812
341893
  logEvent("tengu_auto_updater_lock_contention", {
341813
341894
  pid: process.pid,
341814
- currentVersion: "1.84.1"
341895
+ currentVersion: "1.84.3"
341815
341896
  });
341816
341897
  return "in_progress";
341817
341898
  }
@@ -341820,7 +341901,7 @@ async function installGlobalPackage(specificVersion) {
341820
341901
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
341821
341902
  logError2(new Error("Windows NPM detected in WSL environment"));
341822
341903
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
341823
- currentVersion: "1.84.1"
341904
+ currentVersion: "1.84.3"
341824
341905
  });
341825
341906
  console.error(`
341826
341907
  Error: Windows NPM detected in WSL
@@ -342355,7 +342436,7 @@ function detectLinuxGlobPatternWarnings() {
342355
342436
  }
342356
342437
  async function getDoctorDiagnostic() {
342357
342438
  const installationType = await getCurrentInstallationType();
342358
- const version2 = typeof MACRO !== "undefined" ? "1.84.1" : "unknown";
342439
+ const version2 = typeof MACRO !== "undefined" ? "1.84.3" : "unknown";
342359
342440
  const installationPath = await getInstallationPath();
342360
342441
  const invokedBinary = getInvokedBinary();
342361
342442
  const multipleInstallations = await detectMultipleInstallations();
@@ -343422,7 +343503,7 @@ function getInstallationEnv() {
343422
343503
  return;
343423
343504
  }
343424
343505
  function getURCodeVersion() {
343425
- return "1.84.1";
343506
+ return "1.84.3";
343426
343507
  }
343427
343508
  async function getInstalledVSCodeExtensionVersion(command) {
343428
343509
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -344903,8 +344984,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
344903
344984
  const maxVersion = await getMaxVersion();
344904
344985
  if (maxVersion && gt(version2, maxVersion)) {
344905
344986
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
344906
- if (gte("1.84.1", maxVersion)) {
344907
- logForDebugging(`Native installer: current version ${"1.84.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
344987
+ if (gte("1.84.3", maxVersion)) {
344988
+ logForDebugging(`Native installer: current version ${"1.84.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
344908
344989
  logEvent("tengu_native_update_skipped_max_version", {
344909
344990
  latency_ms: Date.now() - startTime,
344910
344991
  max_version: maxVersion,
@@ -344915,7 +344996,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
344915
344996
  version2 = maxVersion;
344916
344997
  }
344917
344998
  }
344918
- if (!forceReinstall && version2 === "1.84.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
344999
+ if (!forceReinstall && version2 === "1.84.3" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
344919
345000
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
344920
345001
  logEvent("tengu_native_update_complete", {
344921
345002
  latency_ms: Date.now() - startTime,
@@ -382634,6 +382715,108 @@ var init_tmuxSocket = __esm(() => {
382634
382715
  init_platform();
382635
382716
  });
382636
382717
 
382718
+ // src/utils/shell/portableTimeout.ts
382719
+ function getPortableTimeoutEnvironment(platform5 = getPlatform()) {
382720
+ return platform5 === "macos" ? { [PORTABLE_TIMEOUT_RUNNER_ENV]: PORTABLE_TIMEOUT_RUNNER_BASE64 } : {};
382721
+ }
382722
+ function getPortableTimeoutCompatibilityCommand(platform5 = getPlatform(), executable = process.execPath) {
382723
+ if (platform5 !== "macos")
382724
+ return null;
382725
+ const launcher = `import("data:text/javascript;base64,"+process.env.${PORTABLE_TIMEOUT_RUNNER_ENV})`;
382726
+ const runner2 = quote2([
382727
+ executable,
382728
+ "--input-type=module",
382729
+ "-e",
382730
+ launcher
382731
+ ]);
382732
+ return `if ! command -v timeout >/dev/null 2>&1; then if command -v gtimeout >/dev/null 2>&1; then timeout() { command gtimeout "$@"; }; else timeout() { command ${runner2} "$@"; }; fi; fi`;
382733
+ }
382734
+ var PORTABLE_TIMEOUT_RUNNER, PORTABLE_TIMEOUT_RUNNER_ENV = "UR_CODE_PORTABLE_TIMEOUT_RUNNER", PORTABLE_TIMEOUT_RUNNER_BASE64;
382735
+ var init_portableTimeout = __esm(() => {
382736
+ init_platform();
382737
+ init_shellQuote();
382738
+ PORTABLE_TIMEOUT_RUNNER = String.raw`
382739
+ import { spawn } from 'node:child_process';
382740
+ import { constants } from 'node:os';
382741
+ let args = process.argv.slice(1);
382742
+ let preserve = false;
382743
+ let verbose = false;
382744
+ let signal = 'SIGTERM';
382745
+ let killAfter = null;
382746
+ const durationMs = value => {
382747
+ const match = /^(\d+(?:\.\d+)?)([smhd]?)$/.exec(value || '');
382748
+ if (!match) return null;
382749
+ const scale = { '': 1000, s: 1000, m: 60000, h: 3600000, d: 86400000 }[match[2]];
382750
+ const result = Number(match[1]) * scale;
382751
+ return Number.isFinite(result) ? Math.min(result, 2147483647) : null;
382752
+ };
382753
+ const takeValue = (arg, longName, shortName) => {
382754
+ if (arg === longName || arg === shortName) return args.shift();
382755
+ if (arg.startsWith(longName + '=')) return arg.slice(longName.length + 1);
382756
+ if (arg.startsWith(shortName) && arg.length > shortName.length) return arg.slice(shortName.length);
382757
+ return undefined;
382758
+ };
382759
+ while (args.length && args[0].startsWith('-') && args[0] !== '-') {
382760
+ const arg = args.shift();
382761
+ if (arg === '--') break;
382762
+ if (arg === '--foreground') continue;
382763
+ if (arg === '--preserve-status') { preserve = true; continue; }
382764
+ if (arg === '--verbose' || arg === '-v') { verbose = true; continue; }
382765
+ const killValue = takeValue(arg, '--kill-after', '-k');
382766
+ if (killValue !== undefined) {
382767
+ killAfter = durationMs(killValue);
382768
+ if (killAfter === null) { console.error('timeout: invalid --kill-after value'); process.exit(125); }
382769
+ continue;
382770
+ }
382771
+ const signalValue = takeValue(arg, '--signal', '-s');
382772
+ if (signalValue !== undefined) {
382773
+ const normalizedSignal = signalValue.toUpperCase();
382774
+ signal = /^\d+$/.test(signalValue) ? Number(signalValue) : normalizedSignal.startsWith('SIG') ? normalizedSignal : 'SIG' + normalizedSignal;
382775
+ continue;
382776
+ }
382777
+ console.error('timeout: unsupported option ' + arg);
382778
+ process.exit(125);
382779
+ }
382780
+ const limit = durationMs(args.shift());
382781
+ const command = args.shift();
382782
+ if (limit === null || !command) {
382783
+ console.error('timeout: expected a duration and command');
382784
+ process.exit(125);
382785
+ }
382786
+ const child = spawn(command, args, { stdio: 'inherit', detached: true });
382787
+ let expired = false;
382788
+ let killTimer;
382789
+ const send = requestedSignal => {
382790
+ if (!child.pid) return;
382791
+ try { process.kill(-child.pid, requestedSignal); }
382792
+ catch { try { child.kill(requestedSignal); } catch {} }
382793
+ };
382794
+ const timer = setTimeout(() => {
382795
+ expired = true;
382796
+ if (verbose) console.error('timeout: sending signal ' + signal + ' to command ' + command);
382797
+ send(signal);
382798
+ if (killAfter !== null) killTimer = setTimeout(() => send('SIGKILL'), killAfter);
382799
+ }, limit);
382800
+ for (const parentSignal of ['SIGINT', 'SIGHUP', 'SIGTERM']) {
382801
+ process.on(parentSignal, () => send(parentSignal));
382802
+ }
382803
+ child.on('error', error => {
382804
+ clearTimeout(timer);
382805
+ if (killTimer) clearTimeout(killTimer);
382806
+ console.error('timeout: ' + error.message);
382807
+ process.exitCode = error.code === 'ENOENT' ? 127 : 126;
382808
+ });
382809
+ child.on('exit', (code, childSignal) => {
382810
+ clearTimeout(timer);
382811
+ if (killTimer) clearTimeout(killTimer);
382812
+ if (expired && !preserve) { process.exitCode = 124; return; }
382813
+ if (code !== null) { process.exitCode = code; return; }
382814
+ process.exitCode = 128 + (constants.signals[childSignal] || 1);
382815
+ });
382816
+ `.trim();
382817
+ PORTABLE_TIMEOUT_RUNNER_BASE64 = Buffer.from(PORTABLE_TIMEOUT_RUNNER).toString("base64");
382818
+ });
382819
+
382637
382820
  // src/utils/shell/bashProvider.ts
382638
382821
  import { access as access5 } from "fs/promises";
382639
382822
  import { tmpdir as osTmpdir } from "os";
@@ -382708,6 +382891,10 @@ async function createBashShellProvider(shellPath, options2) {
382708
382891
  if (disableZshNomatchCmd) {
382709
382892
  commandParts.push(disableZshNomatchCmd);
382710
382893
  }
382894
+ const portableTimeoutCmd = getPortableTimeoutCompatibilityCommand();
382895
+ if (portableTimeoutCmd) {
382896
+ commandParts.push(portableTimeoutCmd);
382897
+ }
382711
382898
  commandParts.push(`trap 'pwd -P >| ${quote2([shellCwdFilePath])} 2>/dev/null || true' EXIT`);
382712
382899
  commandParts.push(`eval ${quotedCommand}`);
382713
382900
  let commandString = commandParts.join(" && ");
@@ -382730,6 +382917,7 @@ async function createBashShellProvider(shellPath, options2) {
382730
382917
  }
382731
382918
  const urTmuxEnv = getURTmuxEnv();
382732
382919
  const env4 = {};
382920
+ Object.assign(env4, getPortableTimeoutEnvironment());
382733
382921
  if (urTmuxEnv) {
382734
382922
  env4.TMUX = urTmuxEnv;
382735
382923
  }
@@ -382761,6 +382949,7 @@ var init_bashProvider = __esm(() => {
382761
382949
  init_sessionEnvVars();
382762
382950
  init_tmuxSocket();
382763
382951
  init_windowsPaths();
382952
+ init_portableTimeout();
382764
382953
  });
382765
382954
 
382766
382955
  // src/utils/shell/powershellDetection.ts
@@ -408371,6 +408560,7 @@ function getSimplePrompt() {
408371
408560
  'Always quote file paths that contain spaces with double quotes in your command (e.g., cd "path with spaces/file.txt")',
408372
408561
  "Try to maintain your current working directory throughout the session by using absolute paths and avoiding usage of `cd`. You may use `cd` if the User explicitly requests it.",
408373
408562
  `You may specify an optional timeout in milliseconds (up to ${getMaxTimeoutMs2()}ms / ${getMaxTimeoutMs2() / 60000} minutes). By default, your command will timeout after ${getDefaultTimeoutMs2()}ms (${getDefaultTimeoutMs2() / 60000} minutes).`,
408563
+ "Prefer this tool\u2019s `timeout` parameter over wrapping a command with the GNU `timeout` executable. UR supplies a compatible wrapper on macOS when a command genuinely needs an inner deadline.",
408374
408564
  ...backgroundNote !== null ? [backgroundNote] : [],
408375
408565
  "When issuing multiple commands:",
408376
408566
  multipleCommandsSubitems,
@@ -438670,7 +438860,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
438670
438860
  const client = new Client({
438671
438861
  name: "ur",
438672
438862
  title: "UR",
438673
- version: "1.84.1",
438863
+ version: "1.84.3",
438674
438864
  description: "UR-Nexus autonomous engineering workflow engine",
438675
438865
  websiteUrl: PRODUCT_URL
438676
438866
  }, {
@@ -439027,7 +439217,7 @@ var init_client2 = __esm(() => {
439027
439217
  const client = new Client({
439028
439218
  name: "ur",
439029
439219
  title: "UR",
439030
- version: "1.84.1",
439220
+ version: "1.84.3",
439031
439221
  description: "UR-Nexus autonomous engineering workflow engine",
439032
439222
  websiteUrl: PRODUCT_URL
439033
439223
  }, {
@@ -449898,7 +450088,7 @@ function Feedback({
449898
450088
  platform: env2.platform,
449899
450089
  gitRepo: envInfo.isGit,
449900
450090
  terminal: env2.terminal,
449901
- version: "1.84.1",
450091
+ version: "1.84.3",
449902
450092
  transcript: normalizeMessagesForAPI(messages),
449903
450093
  errors: sanitizedErrors,
449904
450094
  lastApiRequest: getLastAPIRequest(),
@@ -450088,7 +450278,7 @@ function Feedback({
450088
450278
  ", ",
450089
450279
  env2.terminal,
450090
450280
  ", v",
450091
- "1.84.1"
450281
+ "1.84.3"
450092
450282
  ]
450093
450283
  }, undefined, true, undefined, this)
450094
450284
  ]
@@ -450194,7 +450384,7 @@ ${sanitizedDescription}
450194
450384
  ` + `**Environment Info**
450195
450385
  ` + `- Platform: ${env2.platform}
450196
450386
  ` + `- Terminal: ${env2.terminal}
450197
- ` + `- Version: ${"1.84.1"}
450387
+ ` + `- Version: ${"1.84.3"}
450198
450388
  ` + `- Feedback ID: ${feedbackId}
450199
450389
  ` + `
450200
450390
  **Errors**
@@ -453304,7 +453494,7 @@ function buildPrimarySection() {
453304
453494
  }, undefined, false, undefined, this);
453305
453495
  return [{
453306
453496
  label: "Version",
453307
- value: "1.84.1"
453497
+ value: "1.84.3"
453308
453498
  }, {
453309
453499
  label: "Session name",
453310
453500
  value: nameValue
@@ -456818,7 +457008,7 @@ function Config({
456818
457008
  }
456819
457009
  }, undefined, false, undefined, this)
456820
457010
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime176.jsxDEV(ChannelDowngradeDialog, {
456821
- currentVersion: "1.84.1",
457011
+ currentVersion: "1.84.3",
456822
457012
  onChoice: (choice) => {
456823
457013
  setShowSubmenu(null);
456824
457014
  setTabsHidden(false);
@@ -456830,7 +457020,7 @@ function Config({
456830
457020
  autoUpdatesChannel: "stable"
456831
457021
  };
456832
457022
  if (choice === "stay") {
456833
- newSettings.minimumVersion = "1.84.1";
457023
+ newSettings.minimumVersion = "1.84.3";
456834
457024
  }
456835
457025
  updateSettingsForSource("userSettings", newSettings);
456836
457026
  setSettingsData((prev_27) => ({
@@ -465147,7 +465337,7 @@ function HelpV2(t0) {
465147
465337
  let t6;
465148
465338
  if ($2[31] !== tabs) {
465149
465339
  t6 = /* @__PURE__ */ jsx_dev_runtime203.jsxDEV(Tabs, {
465150
- title: `UR v${"1.84.1"}`,
465340
+ title: `UR v${"1.84.3"}`,
465151
465341
  color: "professionalBlue",
465152
465342
  defaultTab: "general",
465153
465343
  children: tabs
@@ -466081,7 +466271,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
466081
466271
  async function handleInitialize(options2) {
466082
466272
  return {
466083
466273
  name: "UR",
466084
- version: "1.84.1",
466274
+ version: "1.84.3",
466085
466275
  protocolVersion: "0.1.0",
466086
466276
  workspaceRoot: options2.cwd,
466087
466277
  capabilities: {
@@ -483214,7 +483404,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
483214
483404
  return [];
483215
483405
  }
483216
483406
  }
483217
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.84.1") {
483407
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.84.3") {
483218
483408
  if (process.env.USER_TYPE === "ant") {
483219
483409
  const changelog = "";
483220
483410
  if (changelog) {
@@ -483241,7 +483431,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.84.1")
483241
483431
  releaseNotes
483242
483432
  };
483243
483433
  }
483244
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.84.1") {
483434
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.84.3") {
483245
483435
  if (process.env.USER_TYPE === "ant") {
483246
483436
  const changelog = "";
483247
483437
  if (changelog) {
@@ -486149,7 +486339,7 @@ function getRecentActivitySync() {
486149
486339
  return cachedActivity;
486150
486340
  }
486151
486341
  function getLogoDisplayData() {
486152
- const version2 = process.env.DEMO_VERSION ?? "1.84.1";
486342
+ const version2 = process.env.DEMO_VERSION ?? "1.84.3";
486153
486343
  const serverUrl = getDirectConnectServerUrl();
486154
486344
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
486155
486345
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -487037,7 +487227,7 @@ function LogoV2() {
487037
487227
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
487038
487228
  t2 = () => {
487039
487229
  const currentConfig = getGlobalConfig();
487040
- if (currentConfig.lastReleaseNotesSeen === "1.84.1") {
487230
+ if (currentConfig.lastReleaseNotesSeen === "1.84.3") {
487041
487231
  return;
487042
487232
  }
487043
487233
  saveGlobalConfig(_temp327);
@@ -487725,12 +487915,12 @@ function LogoV2() {
487725
487915
  return t41;
487726
487916
  }
487727
487917
  function _temp327(current) {
487728
- if (current.lastReleaseNotesSeen === "1.84.1") {
487918
+ if (current.lastReleaseNotesSeen === "1.84.3") {
487729
487919
  return current;
487730
487920
  }
487731
487921
  return {
487732
487922
  ...current,
487733
- lastReleaseNotesSeen: "1.84.1"
487923
+ lastReleaseNotesSeen: "1.84.3"
487734
487924
  };
487735
487925
  }
487736
487926
  function _temp240(s_0) {
@@ -503823,7 +504013,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
503823
504013
  if (spec.name !== specName) {
503824
504014
  throw new Error("Agentic CI workflow spec name does not match");
503825
504015
  }
503826
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.84.1" : "1.84.1");
504016
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.84.3" : "1.84.3");
503827
504017
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
503828
504018
  throw new Error("invalid ur-agent package version");
503829
504019
  }
@@ -504157,7 +504347,7 @@ var init_agenticCi = __esm(() => {
504157
504347
  KEYWORD_RE = /^[A-Za-z0-9@/_+#:.-]{1,64}$/;
504158
504348
  SECRET_NAME_RE = /(?:TOKEN|SECRET|PASSWORD|PASSWD|API_KEY|PRIVATE_KEY|CREDENTIAL|AUTH)/i;
504159
504349
  CHILD_FORBIDDEN_ENV_RE = /^(?:GITHUB_TOKEN|GH_TOKEN|ACTIONS_ID_TOKEN_REQUEST_TOKEN|ACTIONS_ID_TOKEN_REQUEST_URL|ACTIONS_RUNTIME_TOKEN|ACTIONS_RUNTIME_URL|SSH_AUTH_SOCK)$/;
504160
- HEADLESS_PROVIDER_SECRET_RE = /^(?:URHQ_API_KEY|UR_CODE_OAUTH_TOKEN|URHQ_AUTH_TOKEN|URHQ_FOUNDRY_API_KEY|OLLAMA_API_KEY|OPENAI_API_KEY|ANTHROPIC_API_KEY|GEMINI_API_KEY|OPENROUTER_API_KEY|OPENAI_COMPATIBLE_API_KEY|LMSTUDIO_API_KEY|LLAMA_CPP_API_KEY|VLLM_API_KEY|UNSLOTH_API_KEY|AWS_ACCESS_KEY_ID|AWS_SECRET_ACCESS_KEY|AWS_SESSION_TOKEN|AWS_BEARER_TOKEN_BEDROCK|AZURE_CLIENT_SECRET|AZURE_CLIENT_CERTIFICATE_PATH|GOOGLE_APPLICATION_CREDENTIALS)$/;
504350
+ HEADLESS_PROVIDER_SECRET_RE = /^(?:URHQ_API_KEY|UR_CODE_OAUTH_TOKEN|URHQ_AUTH_TOKEN|URHQ_FOUNDRY_API_KEY|OLLAMA_API_KEY|OPENAI_API_KEY|ANTHROPIC_API_KEY|GEMINI_API_KEY|OPENROUTER_API_KEY|OPENAI_COMPATIBLE_API_KEY|NVIDIA_API_KEY|LMSTUDIO_API_KEY|LLAMA_CPP_API_KEY|VLLM_API_KEY|UNSLOTH_API_KEY|AWS_ACCESS_KEY_ID|AWS_SECRET_ACCESS_KEY|AWS_SESSION_TOKEN|AWS_BEARER_TOKEN_BEDROCK|AZURE_CLIENT_SECRET|AZURE_CLIENT_CERTIFICATE_PATH|GOOGLE_APPLICATION_CREDENTIALS)$/;
504161
504351
  });
504162
504352
 
504163
504353
  // src/services/agents/featureScaffolds.ts
@@ -504819,7 +505009,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
504819
505009
  path: ".github/workflows/ur.yml",
504820
505010
  root: "project",
504821
505011
  content: compileAgenticCiWorkflow("default", {
504822
- packageVersion: typeof MACRO !== "undefined" ? "1.84.1" : "1.84.1"
505012
+ packageVersion: typeof MACRO !== "undefined" ? "1.84.3" : "1.84.3"
504823
505013
  })
504824
505014
  },
504825
505015
  {
@@ -504882,7 +505072,7 @@ function value(tokens, flag) {
504882
505072
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
504883
505073
  }
504884
505074
  function cliVersion() {
504885
- return typeof MACRO !== "undefined" ? "1.84.1" : "1.84.1";
505075
+ return typeof MACRO !== "undefined" ? "1.84.3" : "1.84.3";
504886
505076
  }
504887
505077
  function workflowPath(cwd2) {
504888
505078
  return join156(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -505791,7 +505981,7 @@ function formatA2AV1AgentCard(options2 = {}, pretty = true) {
505791
505981
  var urVersion, researchSnapshotDate = "2026-08-10", coverage2, priorityRoadmap;
505792
505982
  var init_trends = __esm(() => {
505793
505983
  init_a2aCardSignature();
505794
- urVersion = typeof MACRO !== "undefined" ? "1.84.1" : "1.84.1";
505984
+ urVersion = typeof MACRO !== "undefined" ? "1.84.3" : "1.84.3";
505795
505985
  coverage2 = [
505796
505986
  {
505797
505987
  id: "local-runtime",
@@ -511524,7 +511714,7 @@ function createAcpStdioApp(deps) {
511524
511714
  }
511525
511715
  },
511526
511716
  authMethods: [],
511527
- agentInfo: { name: "UR-Nexus", version: "1.84.1" }
511717
+ agentInfo: { name: "UR-Nexus", version: "1.84.3" }
511528
511718
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
511529
511719
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
511530
511720
  await runtime2.announce({
@@ -511621,7 +511811,7 @@ function createAcpStdioAgent(deps) {
511621
511811
  }
511622
511812
  },
511623
511813
  authMethods: [],
511624
- agentInfo: { name: "UR-Nexus", version: "1.84.1" }
511814
+ agentInfo: { name: "UR-Nexus", version: "1.84.3" }
511625
511815
  });
511626
511816
  return;
511627
511817
  case "authenticate":
@@ -725624,7 +725814,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
725624
725814
  smapsRollup,
725625
725815
  platform: process.platform,
725626
725816
  nodeVersion: process.version,
725627
- ccVersion: "1.84.1"
725817
+ ccVersion: "1.84.3"
725628
725818
  };
725629
725819
  }
725630
725820
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -726213,7 +726403,7 @@ var init_bridge_kick = __esm(() => {
726213
726403
  var call153 = async () => {
726214
726404
  return {
726215
726405
  type: "text",
726216
- value: "1.84.1"
726406
+ value: "1.84.3"
726217
726407
  };
726218
726408
  }, version2, version_default;
726219
726409
  var init_version = __esm(() => {
@@ -729377,6 +729567,20 @@ function ProviderFirstModelPicker({
729377
729567
  setStep("connect");
729378
729568
  event.stopImmediatePropagation();
729379
729569
  }, { isActive: step === "model" && !loadingModels });
729570
+ use_input_default((input2, _key, event) => {
729571
+ if (input2.toLowerCase() !== "k" || !selectedProvider)
729572
+ return;
729573
+ if (!providerSupportsApiKeyEditing(selectedProvider.provider))
729574
+ return;
729575
+ setConnectingProvider(selectedProvider);
729576
+ setApiKeyInput("");
729577
+ setApiKeyCursorOffset(0);
729578
+ setConnectionMode("api-key");
729579
+ setConnectReturnStep("model");
729580
+ setConnectError(null);
729581
+ setStep("connect");
729582
+ event.stopImmediatePropagation();
729583
+ }, { isActive: step === "model" && !loadingModels });
729380
729584
  use_input_default((input2, key) => {
729381
729585
  if (key.ctrl && (input2 === "r" || input2 === "R")) {
729382
729586
  setModelReloadToken((token) => token + 1);
@@ -730061,7 +730265,8 @@ function ProviderFirstModelPicker({
730061
730265
  color: "subtle",
730062
730266
  children: [
730063
730267
  "\u2191\u2193 browse \xB7 Enter select \xB7 \u2190\u2192 effort/thinking \xB7 Ctrl+R refresh \xB7 Esc providers",
730064
- selectedProvider && providerSupportsEndpointEditing(selectedProvider.provider) ? " \xB7 E endpoint" : ""
730268
+ selectedProvider && providerSupportsEndpointEditing(selectedProvider.provider) ? " \xB7 E endpoint" : "",
730269
+ selectedProvider && providerSupportsApiKeyEditing(selectedProvider.provider) ? " \xB7 K API key" : ""
730065
730270
  ]
730066
730271
  }, undefined, true, undefined, this)
730067
730272
  ]
@@ -730202,7 +730407,8 @@ function ProviderFirstModelPicker({
730202
730407
  color: "subtle",
730203
730408
  children: [
730204
730409
  "Press ctrl+r to retry",
730205
- selectedProvider && providerSupportsEndpointEditing(selectedProvider.provider) ? ", press E to change the endpoint" : "",
730410
+ selectedProvider && providerSupportsEndpointEditing(selectedProvider.provider) ? ", E to change the endpoint" : "",
730411
+ selectedProvider && providerSupportsApiKeyEditing(selectedProvider.provider) ? ", or K to add/change its API key" : "",
730206
730412
  ", or run `ur provider doctor ",
730207
730413
  selectedProvider?.value,
730208
730414
  "` to troubleshoot."
@@ -730244,6 +730450,9 @@ function noop8() {}
730244
730450
  function providerSupportsEndpointEditing(provider) {
730245
730451
  return provider.credentialType === "openai-compatible-endpoint" || provider.credentialType === "local-runtime" || provider.defaultBaseUrl !== undefined;
730246
730452
  }
730453
+ function providerSupportsApiKeyEditing(provider) {
730454
+ return provider.accessType !== "subscription" && Boolean(provider.envKey);
730455
+ }
730247
730456
  function providerPickerStatusWithoutNetwork(provider, settings = getInitialSettings(), apiKeySource = getProviderApiKeySource(provider.id)) {
730248
730457
  const needsApiKey = provider.credentialType === "api-key" || provider.requiresApiKey === true;
730249
730458
  if (needsApiKey && apiKeySource === "none") {
@@ -738088,7 +738297,7 @@ function generateHtmlReport(data, insights) {
738088
738297
  </html>`;
738089
738298
  }
738090
738299
  function buildExportData(data, insights, facets, remoteStats) {
738091
- const version3 = typeof MACRO !== "undefined" ? "1.84.1" : "unknown";
738300
+ const version3 = typeof MACRO !== "undefined" ? "1.84.3" : "unknown";
738092
738301
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
738093
738302
  const facets_summary = {
738094
738303
  total: facets.size,
@@ -742403,7 +742612,7 @@ var init_sessionStorage = __esm(() => {
742403
742612
  init_settings2();
742404
742613
  init_slowOperations();
742405
742614
  init_uuid();
742406
- VERSION7 = typeof MACRO !== "undefined" ? "1.84.1" : "unknown";
742615
+ VERSION7 = typeof MACRO !== "undefined" ? "1.84.3" : "unknown";
742407
742616
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
742408
742617
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
742409
742618
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -743618,7 +743827,7 @@ var init_filesystem = __esm(() => {
743618
743827
  });
743619
743828
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
743620
743829
  const nonce = randomBytes23(16).toString("hex");
743621
- return join234(getURTempDir(), "bundled-skills", "1.84.1", nonce);
743830
+ return join234(getURTempDir(), "bundled-skills", "1.84.3", nonce);
743622
743831
  });
743623
743832
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
743624
743833
  });
@@ -764092,12 +764301,16 @@ function contentToGeminiParts(content, toolNamesById) {
764092
764301
  break;
764093
764302
  case "tool_result":
764094
764303
  flushTextPart();
764095
- assertNoImageBlocks(block2.content, "gemini", `tool_result ${block2.tool_use_id ?? index2} content`);
764304
+ const toolResultName = toolNamesById.get(block2.tool_use_id) ?? block2.tool_use_id ?? index2;
764305
+ const toolResultImages = imageBlocksFromContent(block2.content);
764096
764306
  parts.push({
764097
764307
  functionResponse: {
764098
- name: toolNamesById.get(block2.tool_use_id) ?? block2.tool_use_id,
764308
+ name: toolResultName,
764099
764309
  response: { result: contentToText(block2.content) },
764100
- ...typeof block2.tool_use_id === "string" && block2.tool_use_id.length > 0 && { id: block2.tool_use_id }
764310
+ ...typeof block2.tool_use_id === "string" && block2.tool_use_id.length > 0 && { id: block2.tool_use_id },
764311
+ ...toolResultImages.length > 0 && {
764312
+ parts: toolResultImages.map((image, imageIndex) => imageBlockToGeminiPart(image, `tool_result ${block2.tool_use_id ?? index2} image ${imageIndex}`))
764313
+ }
764101
764314
  }
764102
764315
  });
764103
764316
  break;
@@ -775409,7 +775622,7 @@ function getUserAgent() {
775409
775622
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
775410
775623
  const workload = getWorkload();
775411
775624
  const workloadSuffix = workload ? `, workload/${workload}` : "";
775412
- return `ur-cli/${"1.84.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
775625
+ return `ur-cli/${"1.84.3"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
775413
775626
  }
775414
775627
  function getMCPUserAgent() {
775415
775628
  const parts = [];
@@ -775423,7 +775636,7 @@ function getMCPUserAgent() {
775423
775636
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
775424
775637
  }
775425
775638
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
775426
- return `ur/${"1.84.1"}${suffix}`;
775639
+ return `ur/${"1.84.3"}${suffix}`;
775427
775640
  }
775428
775641
  function getWebFetchUserAgent() {
775429
775642
  return `UR-User (${getURCodeUserAgent()})`;
@@ -792586,7 +792799,7 @@ function buildSystemInitMessage(inputs) {
792586
792799
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
792587
792800
  apiKeySource: getURHQApiKeyWithSource().source,
792588
792801
  betas: getSdkBetas(),
792589
- ur_version: "1.84.1",
792802
+ ur_version: "1.84.3",
792590
792803
  output_style: outputStyle,
792591
792804
  agents: inputs.agents.map((agent2) => agent2.agentType),
792592
792805
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -796127,7 +796340,7 @@ var init_useVoiceEnabled = __esm(() => {
796127
796340
  function getSemverPart(version3) {
796128
796341
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
796129
796342
  }
796130
- function useUpdateNotification(updatedVersion, initialVersion = "1.84.1") {
796343
+ function useUpdateNotification(updatedVersion, initialVersion = "1.84.3") {
796131
796344
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
796132
796345
  if (!updatedVersion) {
796133
796346
  return null;
@@ -796176,7 +796389,7 @@ function AutoUpdater({
796176
796389
  return;
796177
796390
  }
796178
796391
  if (false) {}
796179
- const currentVersion = "1.84.1";
796392
+ const currentVersion = "1.84.3";
796180
796393
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
796181
796394
  let latestVersion = await getLatestVersion(channel);
796182
796395
  const isDisabled = isAutoUpdaterDisabled();
@@ -796405,12 +796618,12 @@ function NativeAutoUpdater({
796405
796618
  logEvent("tengu_native_auto_updater_start", {});
796406
796619
  try {
796407
796620
  const maxVersion = await getMaxVersion();
796408
- if (maxVersion && gt("1.84.1", maxVersion)) {
796621
+ if (maxVersion && gt("1.84.3", maxVersion)) {
796409
796622
  const msg = await getMaxVersionMessage();
796410
796623
  setMaxVersionIssue(msg ?? "affects your version");
796411
796624
  }
796412
796625
  const result = await installLatest(channel);
796413
- const currentVersion = "1.84.1";
796626
+ const currentVersion = "1.84.3";
796414
796627
  const latencyMs = Date.now() - startTime;
796415
796628
  if (result.lockFailed) {
796416
796629
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -796547,17 +796760,17 @@ function PackageManagerAutoUpdater(t0) {
796547
796760
  const maxVersion = await getMaxVersion();
796548
796761
  if (maxVersion && latest && gt(latest, maxVersion)) {
796549
796762
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
796550
- if (gte("1.84.1", maxVersion)) {
796551
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.84.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
796763
+ if (gte("1.84.3", maxVersion)) {
796764
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.84.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
796552
796765
  setUpdateAvailable(false);
796553
796766
  return;
796554
796767
  }
796555
796768
  latest = maxVersion;
796556
796769
  }
796557
- const hasUpdate = latest && !gte("1.84.1", latest) && !shouldSkipVersion(latest);
796770
+ const hasUpdate = latest && !gte("1.84.3", latest) && !shouldSkipVersion(latest);
796558
796771
  setUpdateAvailable(!!hasUpdate);
796559
796772
  if (hasUpdate) {
796560
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.84.1"} -> ${latest}`);
796773
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.84.3"} -> ${latest}`);
796561
796774
  }
796562
796775
  };
796563
796776
  $2[0] = t1;
@@ -796591,7 +796804,7 @@ function PackageManagerAutoUpdater(t0) {
796591
796804
  wrap: "truncate",
796592
796805
  children: [
796593
796806
  "currentVersion: ",
796594
- "1.84.1"
796807
+ "1.84.3"
796595
796808
  ]
796596
796809
  }, undefined, true, undefined, this);
796597
796810
  $2[3] = verbose;
@@ -807440,7 +807653,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
807440
807653
  project_dir: getOriginalCwd(),
807441
807654
  added_dirs: addedDirs
807442
807655
  },
807443
- version: "1.84.1",
807656
+ version: "1.84.3",
807444
807657
  output_style: {
807445
807658
  name: outputStyleName
807446
807659
  },
@@ -807575,7 +807788,7 @@ function StatusLineInner({
807575
807788
  const attention = customStatusError ?? taskAttention;
807576
807789
  const terminalSize = React138.useContext(TerminalSizeContext);
807577
807790
  const defaultStatusLineText = buildDefaultStatusBar({
807578
- version: "1.84.1",
807791
+ version: "1.84.3",
807579
807792
  providerLabel: providerRuntime.providerLabel,
807580
807793
  authMode: providerRuntime.authLabel,
807581
807794
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -819966,7 +820179,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
819966
820179
  } catch {}
819967
820180
  const data = {
819968
820181
  trigger: trigger2,
819969
- version: "1.84.1",
820182
+ version: "1.84.3",
819970
820183
  platform: process.platform,
819971
820184
  transcript,
819972
820185
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -832348,7 +832561,7 @@ function WelcomeV2() {
832348
832561
  dimColor: true,
832349
832562
  children: [
832350
832563
  "v",
832351
- "1.84.1"
832564
+ "1.84.3"
832352
832565
  ]
832353
832566
  }, undefined, true, undefined, this)
832354
832567
  ]
@@ -833594,7 +833807,7 @@ function completeOnboarding() {
833594
833807
  saveGlobalConfig((current) => ({
833595
833808
  ...current,
833596
833809
  hasCompletedOnboarding: true,
833597
- lastOnboardingVersion: "1.84.1"
833810
+ lastOnboardingVersion: "1.84.3"
833598
833811
  }));
833599
833812
  }
833600
833813
  function showDialog(root2, renderer) {
@@ -838591,7 +838804,7 @@ function appendToLog(path28, message) {
838591
838804
  cwd: getFsImplementation().cwd(),
838592
838805
  userType: process.env.USER_TYPE,
838593
838806
  sessionId: getSessionId(),
838594
- version: "1.84.1"
838807
+ version: "1.84.3"
838595
838808
  };
838596
838809
  getLogWriter(path28).write(messageWithTimestamp);
838597
838810
  }
@@ -842754,8 +842967,8 @@ async function getEnvLessBridgeConfig() {
842754
842967
  }
842755
842968
  async function checkEnvLessBridgeMinVersion() {
842756
842969
  const cfg = await getEnvLessBridgeConfig();
842757
- if (cfg.min_version && lt("1.84.1", cfg.min_version)) {
842758
- return `Your version of UR (${"1.84.1"}) is too old for Remote Control.
842970
+ if (cfg.min_version && lt("1.84.3", cfg.min_version)) {
842971
+ return `Your version of UR (${"1.84.3"}) is too old for Remote Control.
842759
842972
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
842760
842973
  }
842761
842974
  return null;
@@ -843229,7 +843442,7 @@ async function initBridgeCore(params) {
843229
843442
  const rawApi = createBridgeApiClient({
843230
843443
  baseUrl,
843231
843444
  getAccessToken,
843232
- runnerVersion: "1.84.1",
843445
+ runnerVersion: "1.84.3",
843233
843446
  onDebug: logForDebugging,
843234
843447
  onAuth401,
843235
843448
  getTrustedDeviceToken
@@ -856671,7 +856884,7 @@ function getAgUiCapabilities() {
856671
856884
  name: "UR-Nexus",
856672
856885
  type: "ur-nexus",
856673
856886
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
856674
- version: "1.84.1",
856887
+ version: "1.84.3",
856675
856888
  provider: "UR",
856676
856889
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
856677
856890
  },
@@ -857491,7 +857704,7 @@ function createMCPServer(cwd4, debug2, verbose) {
857491
857704
  };
857492
857705
  const server2 = new Server({
857493
857706
  name: "ur-nexus",
857494
- version: "1.84.1"
857707
+ version: "1.84.3"
857495
857708
  }, {
857496
857709
  capabilities: {
857497
857710
  tools: {}
@@ -858694,7 +858907,7 @@ function thrownResponse(error61) {
858694
858907
  }
858695
858908
  async function createUrMcp2026Runtime(options5) {
858696
858909
  const server2 = createMCPServer(options5.cwd, options5.debug === true, options5.verbose === true);
858697
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.84.1" }, { capabilities: {} });
858910
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.84.3" }, { capabilities: {} });
858698
858911
  const [clientTransport, serverTransport] = createLinkedTransportPair();
858699
858912
  try {
858700
858913
  await server2.connect(serverTransport);
@@ -858705,7 +858918,7 @@ async function createUrMcp2026Runtime(options5) {
858705
858918
  }
858706
858919
  const runtime2 = new Mcp2026Runtime({
858707
858920
  cwd: options5.cwd,
858708
- version: "1.84.1",
858921
+ version: "1.84.3",
858709
858922
  backend: {
858710
858923
  listTools: async () => {
858711
858924
  const listed = await client2.listTools();
@@ -861541,7 +861754,7 @@ async function update() {
861541
861754
  logEvent("tengu_update_check", {});
861542
861755
  const diagnostic2 = await getDoctorDiagnostic();
861543
861756
  const result = await checkUpgradeStatus({
861544
- currentVersion: "1.84.1",
861757
+ currentVersion: "1.84.3",
861545
861758
  packageName: UR_AGENT_PACKAGE_NAME,
861546
861759
  installationType: diagnostic2.installationType,
861547
861760
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -862869,7 +863082,7 @@ ${customInstructions}` : customInstructions;
862869
863082
  }
862870
863083
  }
862871
863084
  logForDiagnosticsNoPII("info", "started", {
862872
- version: "1.84.1",
863085
+ version: "1.84.3",
862873
863086
  is_native_binary: isInBundledMode()
862874
863087
  });
862875
863088
  registerCleanup(async () => {
@@ -863656,7 +863869,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
863656
863869
  pendingHookMessages
863657
863870
  }, renderAndRun);
863658
863871
  }
863659
- }).version("1.84.1 (UR-Nexus)", "-v, --version", "Output the version number");
863872
+ }).version("1.84.3 (UR-Nexus)", "-v, --version", "Output the version number");
863660
863873
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
863661
863874
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
863662
863875
  if (canUserConfigureAdvisor()) {
@@ -864783,7 +864996,7 @@ if (false) {}
864783
864996
  async function main2() {
864784
864997
  const args = process.argv.slice(2);
864785
864998
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
864786
- console.log(`${"1.84.1"} (UR-Nexus)`);
864999
+ console.log(`${"1.84.3"} (UR-Nexus)`);
864787
865000
  return;
864788
865001
  }
864789
865002
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {