ur-agent 1.82.1 → 1.82.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/dist/cli.js CHANGED
@@ -53757,6 +53757,7 @@ __export(exports_providerRegistry, {
53757
53757
  isModelSupportedByProvider: () => isModelSupportedByProvider,
53758
53758
  inFlightModelDiscoveryCount: () => inFlightModelDiscoveryCount,
53759
53759
  getValidModelIdsForProvider: () => getValidModelIdsForProvider,
53760
+ getScopedProviderBaseUrl: () => getScopedProviderBaseUrl,
53760
53761
  getRuntimeProviderId: () => getRuntimeProviderId,
53761
53762
  getProviderStatus: () => getProviderStatus,
53762
53763
  getProviderRuntimeKind: () => getProviderRuntimeKind,
@@ -53818,6 +53819,18 @@ function providerAliasesFor(id) {
53818
53819
  function getProviderDefinition(id) {
53819
53820
  return PROVIDERS[id];
53820
53821
  }
53822
+ function getScopedProviderBaseUrl(provider, settings = getInitialSettings()) {
53823
+ const configured = (settings ?? {}).provider ?? {};
53824
+ if (provider === "subscription")
53825
+ return;
53826
+ const scoped = configured.baseUrls?.[provider];
53827
+ if (scoped)
53828
+ return scoped;
53829
+ if (configured.baseUrls !== undefined)
53830
+ return;
53831
+ const active = configured.active ? resolveProviderId(configured.active) ?? DEFAULT_PROVIDER_ID : DEFAULT_PROVIDER_ID;
53832
+ return active === provider ? configured.baseUrl : undefined;
53833
+ }
53821
53834
  function getActiveProviderSettings(settings = getInitialSettings()) {
53822
53835
  const effectiveSettings = settings ?? {};
53823
53836
  const configured = effectiveSettings.provider ?? {};
@@ -53826,7 +53839,8 @@ function getActiveProviderSettings(settings = getInitialSettings()) {
53826
53839
  return {
53827
53840
  active,
53828
53841
  model: configured.model ?? (configured.active ? undefined : effectiveSettings.model),
53829
- baseUrl: configured.baseUrl,
53842
+ baseUrl: getScopedProviderBaseUrl(active, effectiveSettings),
53843
+ baseUrls: configured.baseUrls,
53830
53844
  commandPath: configured.commandPath,
53831
53845
  fallback
53832
53846
  };
@@ -53975,6 +53989,19 @@ function normalizeBaseUrl(value) {
53975
53989
  }
53976
53990
  return withScheme.replace(/\/$/, "");
53977
53991
  }
53992
+ function endpointSettingsForProviderSwitch(settings, nextProvider) {
53993
+ const configured = settings.provider ?? {};
53994
+ const currentProvider = getActiveProviderSettings(settings).active ?? DEFAULT_PROVIDER_ID;
53995
+ const baseUrls = {};
53996
+ if (configured.baseUrls === undefined && configured.baseUrl) {
53997
+ baseUrls[currentProvider] = configured.baseUrl;
53998
+ }
53999
+ const nextBaseUrl = (nextProvider === "subscription" ? undefined : configured.baseUrls?.[nextProvider]) ?? (configured.baseUrls === undefined && currentProvider === nextProvider ? configured.baseUrl : undefined);
54000
+ return {
54001
+ baseUrl: nextBaseUrl,
54002
+ baseUrls
54003
+ };
54004
+ }
53978
54005
  function setSafeProviderConfig(key, value, options = {}) {
53979
54006
  const trimmed = value.trim();
53980
54007
  if (!trimmed) {
@@ -54008,7 +54035,7 @@ function setSafeProviderConfig(key, value, options = {}) {
54008
54035
  const currentModel = getActiveProviderSettings(currentSettings).model;
54009
54036
  const nextProviderSettings = {
54010
54037
  active: provider,
54011
- baseUrl: undefined,
54038
+ ...endpointSettingsForProviderSwitch(currentSettings, provider),
54012
54039
  commandPath: undefined
54013
54040
  };
54014
54041
  let invalidated = false;
@@ -54096,7 +54123,15 @@ function setSafeProviderConfig(key, value, options = {}) {
54096
54123
  }
54097
54124
  settings = { provider: { model: trimmed }, model: trimmed };
54098
54125
  } else {
54099
- settings = { provider: { baseUrl: normalizeBaseUrl(trimmed) } };
54126
+ const currentSettings = getInitialSettings();
54127
+ const currentProvider = getActiveProviderSettings(currentSettings).active ?? DEFAULT_PROVIDER_ID;
54128
+ const baseUrl = normalizeBaseUrl(trimmed);
54129
+ settings = {
54130
+ provider: {
54131
+ baseUrl,
54132
+ baseUrls: { [currentProvider]: baseUrl }
54133
+ }
54134
+ };
54100
54135
  }
54101
54136
  } catch (error40) {
54102
54137
  return {
@@ -54209,7 +54244,7 @@ async function checkEndpoint(definition, settings, adapters, result) {
54209
54244
  }
54210
54245
  const candidates = definition.endpointKind === "ollama" ? [endpointUrl(baseUrl, "ollama")] : openAiCompatibleModelUrls(baseUrl);
54211
54246
  const env4 = adapters.env ?? process.env;
54212
- let apiKey = definition.envKey ? env4[definition.envKey] : undefined;
54247
+ let apiKey = definition.id === "ollama" ? env4.OLLAMA_API_KEY : definition.envKey ? env4[definition.envKey] : undefined;
54213
54248
  if (!apiKey && definition.credentialType === "openai-compatible-endpoint") {
54214
54249
  try {
54215
54250
  const credentials = await Promise.resolve().then(() => (init_providerCredentials(), exports_providerCredentials));
@@ -54457,7 +54492,8 @@ async function doctorProvider(provider, options = {}) {
54457
54492
  const definition = getProviderDefinition(active);
54458
54493
  const settingsForProvider = {
54459
54494
  ...providerSettings,
54460
- active
54495
+ active,
54496
+ baseUrl: providerBaseUrl(active, definition, allSettings)
54461
54497
  };
54462
54498
  const result = {
54463
54499
  provider: active,
@@ -54806,10 +54842,9 @@ function providerBaseUrl(provider, definition, settings) {
54806
54842
  return sessionHost;
54807
54843
  }
54808
54844
  }
54809
- const providerSettings = getActiveProviderSettings(settings);
54810
- if (providerSettings.active === provider && providerSettings.baseUrl) {
54811
- return providerSettings.baseUrl;
54812
- }
54845
+ const configuredBaseUrl = getScopedProviderBaseUrl(provider, settings);
54846
+ if (configuredBaseUrl)
54847
+ return configuredBaseUrl;
54813
54848
  if (provider === "ollama") {
54814
54849
  return getOllamaBaseUrl(process.env, settings);
54815
54850
  }
@@ -54871,20 +54906,24 @@ function modelDefinitionsFromNames(provider, names, source) {
54871
54906
  description: source === "cache" ? `Cached ${providerName} model` : `Discovered from ${providerName}`
54872
54907
  }));
54873
54908
  }
54874
- function modelDefinitionsFromDiscovered(models) {
54875
- return models.map((model) => ({
54876
- id: model.id,
54877
- displayName: model.displayName,
54878
- description: model.description,
54879
- pricing: model.pricing,
54880
- ...model.contextLength ? { contextLength: model.contextLength } : {},
54881
- ...model.outputTokenLimit ? { outputTokenLimit: model.outputTokenLimit } : {},
54882
- ...model.supportedParameters ? { supportedParameters: model.supportedParameters } : {},
54883
- ...model.capabilities ? { capabilities: model.capabilities } : {},
54884
- ...model.reasoning ? { reasoning: model.reasoning } : {},
54885
- ...model.expirationDate ? { expirationDate: model.expirationDate } : {},
54886
- ...model.deprecated ? { deprecated: true } : {}
54887
- }));
54909
+ function modelDefinitionsFromDiscovered(models, provider) {
54910
+ const staticModels = provider ? PROVIDER_MODELS[provider] ?? [] : [];
54911
+ return models.map((model) => {
54912
+ const curated = staticModels.find((entry) => entry.id.toLowerCase() === model.id.toLowerCase());
54913
+ return {
54914
+ id: model.id,
54915
+ displayName: model.displayName,
54916
+ description: model.description,
54917
+ pricing: model.pricing,
54918
+ ...model.contextLength ? { contextLength: model.contextLength } : {},
54919
+ ...model.outputTokenLimit ? { outputTokenLimit: model.outputTokenLimit } : {},
54920
+ ...model.supportedParameters ? { supportedParameters: model.supportedParameters } : {},
54921
+ ...model.capabilities ? { capabilities: model.capabilities } : {},
54922
+ ...model.reasoning ?? curated?.reasoning ? { reasoning: model.reasoning ?? curated?.reasoning } : {},
54923
+ ...model.expirationDate ? { expirationDate: model.expirationDate } : {},
54924
+ ...model.deprecated ? { deprecated: true } : {}
54925
+ };
54926
+ });
54888
54927
  }
54889
54928
  function providerModelCacheKey(provider, settings = getInitialSettings()) {
54890
54929
  const definition = getProviderDefinition(provider);
@@ -54965,6 +55004,40 @@ function providerPropsUrl(baseUrl, model) {
54965
55004
  url3.searchParams.set("model", model);
54966
55005
  return url3.toString();
54967
55006
  }
55007
+ function ollamaShowUrl(baseUrl) {
55008
+ const url3 = new URL(endpointUrl(baseUrl, "ollama"));
55009
+ url3.pathname = url3.pathname.replace(/\/tags\/?$/i, "/show");
55010
+ return url3.toString();
55011
+ }
55012
+ function reasoningCapabilitiesFromOllamaShow(model, value) {
55013
+ if (!value || typeof value !== "object" || Array.isArray(value)) {
55014
+ return;
55015
+ }
55016
+ const root2 = value;
55017
+ const explicit = parseModelReasoningCapabilities(root2.reasoning);
55018
+ if (explicit)
55019
+ return explicit;
55020
+ const capabilities = Array.isArray(root2.capabilities) ? root2.capabilities.filter((entry) => typeof entry === "string").map((entry) => entry.trim().toLowerCase()) : undefined;
55021
+ if (!capabilities)
55022
+ return;
55023
+ if (!capabilities.includes("thinking"))
55024
+ return { supportedEfforts: [] };
55025
+ const details = root2.details && typeof root2.details === "object" ? root2.details : {};
55026
+ const identity4 = [model, details.family, details.parent_model].filter((entry) => typeof entry === "string").join(" ");
55027
+ if (/gpt[-_]?oss/i.test(identity4)) {
55028
+ return {
55029
+ supportedEfforts: ["low", "medium", "high"],
55030
+ defaultEffort: "medium"
55031
+ };
55032
+ }
55033
+ if (/kimi[-_]?k3/i.test(identity4)) {
55034
+ return {
55035
+ supportedEfforts: ["low", "high", "max"],
55036
+ defaultEffort: "max"
55037
+ };
55038
+ }
55039
+ return { supportedEfforts: ["low", "medium", "high", "max"] };
55040
+ }
54968
55041
  function reasoningCapabilitiesFromProps(value) {
54969
55042
  if (!value || typeof value !== "object" || Array.isArray(value)) {
54970
55043
  return;
@@ -55014,7 +55087,7 @@ async function ensureProviderReasoningCapabilitiesForModel(providerId, model, op
55014
55087
  const cached2 = getProviderReasoningCapabilitiesForModel(model, provider, settings);
55015
55088
  if (cached2 !== undefined)
55016
55089
  return cached2;
55017
- if (provider !== "llama.cpp") {
55090
+ if (provider !== "llama.cpp" && provider !== "ollama") {
55018
55091
  await ensureProviderModelsFresh(provider, options);
55019
55092
  return getProviderReasoningCapabilitiesForModel(model, provider, settings);
55020
55093
  }
@@ -55024,22 +55097,29 @@ async function ensureProviderReasoningCapabilitiesForModel(providerId, model, op
55024
55097
  return;
55025
55098
  const env4 = options.adapters?.env ?? process.env;
55026
55099
  const fetchImpl = options.adapters?.fetch ?? fetch;
55027
- let apiKey = definition.envKey ? env4[definition.envKey] : undefined;
55100
+ let apiKey = provider === "ollama" ? env4.OLLAMA_API_KEY : definition.envKey ? env4[definition.envKey] : undefined;
55028
55101
  if (!apiKey) {
55029
55102
  try {
55030
55103
  const credentials = await Promise.resolve().then(() => (init_providerCredentials(), exports_providerCredentials));
55031
55104
  apiKey = credentials.getProviderApiKey(provider, { env: env4 });
55032
55105
  } catch {}
55033
55106
  }
55034
- const response = await fetchImpl(providerPropsUrl(baseUrl, model), {
55035
- method: "GET",
55107
+ const response = await fetchImpl(provider === "ollama" ? ollamaShowUrl(baseUrl) : providerPropsUrl(baseUrl, model), {
55108
+ method: provider === "ollama" ? "POST" : "GET",
55036
55109
  signal: options.signal,
55037
- ...apiKey ? { headers: { Authorization: `Bearer ${apiKey}` } } : {}
55110
+ ...provider === "ollama" ? {
55111
+ headers: {
55112
+ "Content-Type": "application/json",
55113
+ ...apiKey ? { Authorization: `Bearer ${apiKey}` } : {}
55114
+ },
55115
+ body: JSON.stringify({ model })
55116
+ } : apiKey ? { headers: { Authorization: `Bearer ${apiKey}` } } : {}
55038
55117
  });
55039
55118
  if (!response.ok) {
55040
- throw new Error(`llama.cpp /props returned HTTP ${response.status}.`);
55119
+ throw new Error(`${provider === "ollama" ? "Ollama /api/show" : "llama.cpp /props"} returned HTTP ${response.status}.`);
55041
55120
  }
55042
- const reasoning = reasoningCapabilitiesFromProps(await response.json().catch(() => null));
55121
+ const body = await response.json().catch(() => null);
55122
+ const reasoning = provider === "ollama" ? reasoningCapabilitiesFromOllamaShow(model, body) : reasoningCapabilitiesFromProps(body);
55043
55123
  if (reasoning) {
55044
55124
  rememberProviderModelReasoning(provider, model, reasoning, settings);
55045
55125
  }
@@ -55151,7 +55231,7 @@ async function discoverLiveModelsForProvider(provider, options = {}) {
55151
55231
  const body = await response.json().catch(() => null);
55152
55232
  const discovered = parseDiscoveredModels(body, getProviderDefinition(provider).displayName);
55153
55233
  if (discovered.length > 0) {
55154
- return modelDefinitionsFromDiscovered(discovered);
55234
+ return modelDefinitionsFromDiscovered(discovered, provider);
55155
55235
  }
55156
55236
  }
55157
55237
  if (!reachedOk && lastError) {
@@ -55160,8 +55240,7 @@ async function discoverLiveModelsForProvider(provider, options = {}) {
55160
55240
  return [];
55161
55241
  }
55162
55242
  function apiModelsRequest(provider, apiKey, settings) {
55163
- const configured = getActiveProviderSettings(settings);
55164
- const configuredBase = configured.active === provider ? configured.baseUrl : undefined;
55243
+ const configuredBase = getScopedProviderBaseUrl(provider, settings);
55165
55244
  const modelsUrl = (baseUrl, version2) => {
55166
55245
  const url3 = new URL(normalizeBaseUrl(baseUrl));
55167
55246
  url3.hash = "";
@@ -55286,7 +55365,7 @@ async function discoverApiProviderModels(provider, definition, options) {
55286
55365
  }
55287
55366
  } while (next);
55288
55367
  const providerLabel = getProviderDefinition(provider).displayName;
55289
- return modelDefinitionsFromDiscovered(parseDiscoveredModels({ data: entries }, providerLabel));
55368
+ return modelDefinitionsFromDiscovered(parseDiscoveredModels({ data: entries }, providerLabel), provider);
55290
55369
  }
55291
55370
  async function listModelsForProviderWithSource(providerId, options = {}) {
55292
55371
  const provider = resolveProviderId(providerId);
@@ -55521,10 +55600,12 @@ function setProviderModel(providerId, modelId, options = {}) {
55521
55600
  };
55522
55601
  }
55523
55602
  const source = options.source ?? "localSettings";
55603
+ const currentSettings = getInitialSettings();
55524
55604
  const result = updateSettingsForSource(source, {
55525
55605
  provider: {
55526
55606
  active: provider,
55527
- model: modelId
55607
+ model: modelId,
55608
+ ...endpointSettingsForProviderSwitch(currentSettings, provider)
55528
55609
  },
55529
55610
  model: modelId
55530
55611
  });
@@ -55542,7 +55623,7 @@ function setProviderModel(providerId, modelId, options = {}) {
55542
55623
  modelSource: options.modelSource ?? "static"
55543
55624
  };
55544
55625
  }
55545
- 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, PROVIDER_MODELS, cachedModelsByProvider, cachedModelsWrittenAt, modelDiscoveryCoalescer, MODEL_DISCOVERY_TIMEOUT_MS = 15000, validateProviderModelCompatibility;
55626
+ 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, GEMINI_MINIMAL_TO_HIGH, PROVIDER_MODELS, cachedModelsByProvider, cachedModelsWrittenAt, modelDiscoveryCoalescer, MODEL_DISCOVERY_TIMEOUT_MS = 15000, validateProviderModelCompatibility;
55546
55627
  var init_providerRegistry = __esm(() => {
55547
55628
  init_execFileNoThrow();
55548
55629
  init_ollamaConfig();
@@ -55961,6 +56042,21 @@ var init_providerRegistry = __esm(() => {
55961
56042
  unsloth: "openai-compatible",
55962
56043
  ollama: "ollama"
55963
56044
  };
56045
+ EFFORT_LOW_MEDIUM_HIGH = {
56046
+ supportedEfforts: ["low", "medium", "high"]
56047
+ };
56048
+ EFFORT_LOW_MEDIUM_HIGH_XHIGH = {
56049
+ supportedEfforts: ["low", "medium", "high", "xhigh"]
56050
+ };
56051
+ EFFORT_LOW_MEDIUM_HIGH_MAX = {
56052
+ supportedEfforts: ["low", "medium", "high", "max"]
56053
+ };
56054
+ EFFORT_LOW_MEDIUM_HIGH_XHIGH_MAX = {
56055
+ supportedEfforts: ["low", "medium", "high", "xhigh", "max"]
56056
+ };
56057
+ GEMINI_MINIMAL_TO_HIGH = {
56058
+ supportedEfforts: ["minimal", "low", "medium", "high"]
56059
+ };
55964
56060
  PROVIDER_MODELS = {
55965
56061
  subscription: [],
55966
56062
  "codex-cli": [
@@ -55988,31 +56084,31 @@ var init_providerRegistry = __esm(() => {
55988
56084
  { id: "antigravity/gemini-2.5-flash", displayName: "Gemini 2.5 Flash (Antigravity)", description: "Subscription model through official Antigravity login" }
55989
56085
  ],
55990
56086
  "openai-api": [
55991
- { id: "gpt-5.5", displayName: "GPT-5.5", description: "Latest OpenAI model", isDefault: true },
55992
- { id: "gpt-5.4", displayName: "GPT-5.4", description: "Advanced reasoning and coding" },
55993
- { id: "gpt-5.4-mini", displayName: "GPT-5.4 Mini", description: "Fast, efficient variant" },
56087
+ { id: "gpt-5.5", displayName: "GPT-5.5", description: "Latest OpenAI model", isDefault: true, reasoning: { ...EFFORT_LOW_MEDIUM_HIGH_XHIGH, defaultEffort: "medium" } },
56088
+ { id: "gpt-5.4", displayName: "GPT-5.4", description: "Advanced reasoning and coding", reasoning: EFFORT_LOW_MEDIUM_HIGH_XHIGH },
56089
+ { id: "gpt-5.4-mini", displayName: "GPT-5.4 Mini", description: "Fast, efficient variant", reasoning: EFFORT_LOW_MEDIUM_HIGH_XHIGH },
55994
56090
  { id: "gpt-4o", displayName: "GPT-4o", description: "Previous generation flagship" },
55995
56091
  { id: "gpt-4o-mini", displayName: "GPT-4o Mini", description: "Fast GPT-4o variant" },
55996
- { id: "o1", displayName: "o1", description: "Deep reasoning model" },
55997
- { id: "o3-mini", displayName: "o3-mini", description: "Fast reasoning model" }
56092
+ { id: "o1", displayName: "o1", description: "Deep reasoning model", reasoning: EFFORT_LOW_MEDIUM_HIGH },
56093
+ { id: "o3-mini", displayName: "o3-mini", description: "Fast reasoning model", reasoning: EFFORT_LOW_MEDIUM_HIGH }
55998
56094
  ],
55999
56095
  "anthropic-api": [
56000
- { id: "claude-sonnet-5", displayName: "Claude Sonnet 5", description: "Balanced performance and speed", isDefault: true },
56001
- { id: "claude-opus-4-8", displayName: "Claude Opus 4.8", description: "Most powerful Claude model" },
56002
- { id: "claude-opus-4-7", displayName: "Claude Opus 4.7", description: "High-end reasoning" },
56003
- { id: "claude-opus-4-6", displayName: "Claude Opus 4.6", description: "Advanced problem solving" },
56004
- { id: "claude-opus-4-5", displayName: "Claude Opus 4.5", description: "Previous Opus generation" },
56005
- { id: "claude-sonnet-4-6", displayName: "Claude Sonnet 4.6", description: "Fast Sonnet variant" },
56096
+ { id: "claude-sonnet-5", displayName: "Claude Sonnet 5", description: "Balanced performance and speed", isDefault: true, reasoning: { ...EFFORT_LOW_MEDIUM_HIGH_XHIGH_MAX, defaultEffort: "high" } },
56097
+ { id: "claude-opus-4-8", displayName: "Claude Opus 4.8", description: "Most powerful Claude model", reasoning: { ...EFFORT_LOW_MEDIUM_HIGH_XHIGH_MAX, defaultEffort: "high" } },
56098
+ { id: "claude-opus-4-7", displayName: "Claude Opus 4.7", description: "High-end reasoning", reasoning: { ...EFFORT_LOW_MEDIUM_HIGH_XHIGH_MAX, defaultEffort: "high" } },
56099
+ { id: "claude-opus-4-6", displayName: "Claude Opus 4.6", description: "Advanced problem solving", reasoning: { ...EFFORT_LOW_MEDIUM_HIGH_MAX, defaultEffort: "high" } },
56100
+ { id: "claude-opus-4-5", displayName: "Claude Opus 4.5", description: "Previous Opus generation", reasoning: { ...EFFORT_LOW_MEDIUM_HIGH, defaultEffort: "high" } },
56101
+ { id: "claude-sonnet-4-6", displayName: "Claude Sonnet 4.6", description: "Fast Sonnet variant", reasoning: { ...EFFORT_LOW_MEDIUM_HIGH_MAX, defaultEffort: "high" } },
56006
56102
  { id: "claude-sonnet-4-5", displayName: "Claude Sonnet 4.5", description: "Previous Sonnet generation" },
56007
56103
  { id: "claude-haiku-4-5", displayName: "Claude Haiku 4.5", description: "Fastest Claude model" }
56008
56104
  ],
56009
56105
  "gemini-api": [
56010
- { id: "gemini-3.5-flash", displayName: "Gemini 3.5 Flash", description: "Most intelligent for agentic tasks", isDefault: true },
56011
- { id: "gemini-3.1-pro", displayName: "Gemini 3.1 Pro", description: "Advanced problem solving (preview)" },
56012
- { id: "gemini-3.1-flash-lite", displayName: "Gemini 3.1 Flash Lite", description: "Budget-friendly performance" },
56013
- { id: "gemini-2.5-pro", displayName: "Gemini 2.5 Pro", description: "Complex reasoning and coding" },
56014
- { id: "gemini-2.5-flash", displayName: "Gemini 2.5 Flash", description: "Low-latency tasks" },
56015
- { id: "gemini-2.5-flash-lite", displayName: "Gemini 2.5 Flash Lite", description: "Fastest Gemini model" }
56106
+ { id: "gemini-3.5-flash", displayName: "Gemini 3.5 Flash", description: "Most intelligent for agentic tasks", isDefault: true, reasoning: { ...GEMINI_MINIMAL_TO_HIGH, defaultEffort: "medium" } },
56107
+ { id: "gemini-3.1-pro", displayName: "Gemini 3.1 Pro", description: "Advanced problem solving (preview)", reasoning: { ...EFFORT_LOW_MEDIUM_HIGH, defaultEffort: "high" } },
56108
+ { id: "gemini-3.1-flash-lite", displayName: "Gemini 3.1 Flash Lite", description: "Budget-friendly performance", reasoning: { ...GEMINI_MINIMAL_TO_HIGH, defaultEffort: "minimal" } },
56109
+ { id: "gemini-2.5-pro", displayName: "Gemini 2.5 Pro", description: "Complex reasoning and coding", reasoning: EFFORT_LOW_MEDIUM_HIGH },
56110
+ { id: "gemini-2.5-flash", displayName: "Gemini 2.5 Flash", description: "Low-latency tasks", reasoning: EFFORT_LOW_MEDIUM_HIGH },
56111
+ { id: "gemini-2.5-flash-lite", displayName: "Gemini 2.5 Flash Lite", description: "Fastest Gemini model", reasoning: EFFORT_LOW_MEDIUM_HIGH }
56016
56112
  ],
56017
56113
  openrouter: [
56018
56114
  { id: "openai/gpt-5.5", displayName: "GPT-5.5", description: "OpenAI GPT-5.5 via OpenRouter", isDefault: true },
@@ -90172,8 +90268,8 @@ function getOllamaThink(params, capabilities) {
90172
90268
  }
90173
90269
  const effort = params.output_config?.effort;
90174
90270
  const model = String(params.model ?? "");
90175
- if ((effort === "low" || effort === "medium" || effort === "high" || effort === "max") && LEVELED_THINK_MODEL_RE.test(model)) {
90176
- return effort === "max" ? "high" : effort;
90271
+ if ((effort === "low" || effort === "medium" || effort === "high" || effort === "max") && supportsThinking) {
90272
+ return effort === "max" && /gpt[-_]?oss/i.test(model) ? "high" : effort;
90177
90273
  }
90178
90274
  if (thinking && thinking.type !== "disabled") {
90179
90275
  return true;
@@ -90881,7 +90977,7 @@ function parseToolInput(input) {
90881
90977
  }
90882
90978
  return normalized;
90883
90979
  }
90884
- var DEFAULT_OLLAMA_REQUEST_TIMEOUT_MS = 300000, OLLAMA_HEADER_TIMEOUT_MS = 900000, REMOTE_OLLAMA_REQUEST_TIMEOUT_MS = 120000, CLOUD_OLLAMA_REQUEST_TIMEOUT_MS = 120000, OLLAMA_GATEWAY_TIMEOUT_MESSAGE = "Ollama gateway timed out while waiting for the model to respond. Check the selected Ollama endpoint or increase API_TIMEOUT_MS if the model needs more time.", ollamaModelCapabilitiesCache, warnedToolsUnsupportedModels, TEXT_TOOL_CALL_HINT, pendingProviderNotice = null, LEVELED_THINK_MODEL_RE;
90980
+ var DEFAULT_OLLAMA_REQUEST_TIMEOUT_MS = 300000, OLLAMA_HEADER_TIMEOUT_MS = 900000, REMOTE_OLLAMA_REQUEST_TIMEOUT_MS = 120000, CLOUD_OLLAMA_REQUEST_TIMEOUT_MS = 120000, OLLAMA_GATEWAY_TIMEOUT_MESSAGE = "Ollama gateway timed out while waiting for the model to respond. Check the selected Ollama endpoint or increase API_TIMEOUT_MS if the model needs more time.", ollamaModelCapabilitiesCache, warnedToolsUnsupportedModels, TEXT_TOOL_CALL_HINT, pendingProviderNotice = null;
90885
90981
  var init_ollama = __esm(() => {
90886
90982
  init_urhq_sdk();
90887
90983
  init_ollamaModels();
@@ -90906,7 +91002,6 @@ var init_ollama = __esm(() => {
90906
91002
  "Escape newlines inside JSON strings as \\n. Do not wrap the JSON in prose or code fences."
90907
91003
  ].join(`
90908
91004
  `);
90909
- LEVELED_THINK_MODEL_RE = /gpt-oss/i;
90910
91005
  });
90911
91006
 
90912
91007
  // src/utils/model/modelSupportOverrides.ts
@@ -95124,6 +95219,7 @@ function buildAPIRequest(family, params) {
95124
95219
  }
95125
95220
  case "google": {
95126
95221
  const tools = toGeminiTools(params.tools);
95222
+ const thinkingConfig = toGeminiThinkingConfig(params);
95127
95223
  return {
95128
95224
  contents: toGeminiContents(params),
95129
95225
  ...geminiSystemInstruction(params) && {
@@ -95140,9 +95236,7 @@ function buildAPIRequest(family, params) {
95140
95236
  responseMimeType: "application/json",
95141
95237
  responseSchema: params.output_config.format.schema
95142
95238
  },
95143
- ...params.thinking?.type !== undefined && {
95144
- thinkingConfig: params.thinking.type === "enabled" ? { thinkingBudget: params.thinking.budget_tokens } : { includeThoughts: params.thinking.type !== "disabled" }
95145
- }
95239
+ ...thinkingConfig ? { thinkingConfig } : {}
95146
95240
  }
95147
95241
  };
95148
95242
  }
@@ -95150,6 +95244,22 @@ function buildAPIRequest(family, params) {
95150
95244
  return params;
95151
95245
  }
95152
95246
  }
95247
+ function toGeminiThinkingConfig(params) {
95248
+ const effort = params.output_config?.effort;
95249
+ if (effort === "minimal" || effort === "low" || effort === "medium" || effort === "high") {
95250
+ return { thinkingLevel: effort };
95251
+ }
95252
+ if (effort === "xhigh" || effort === "max") {
95253
+ return { thinkingLevel: "high" };
95254
+ }
95255
+ if (params.thinking?.type === "enabled") {
95256
+ return { thinkingBudget: params.thinking.budget_tokens };
95257
+ }
95258
+ if (params.thinking?.type !== undefined) {
95259
+ return { includeThoughts: params.thinking.type !== "disabled" };
95260
+ }
95261
+ return;
95262
+ }
95153
95263
  function providerRequestId(family, headers) {
95154
95264
  const preferred = family === "anthropic" ? "request-id" : "x-request-id";
95155
95265
  const fallback = preferred === "request-id" ? "x-request-id" : "request-id";
@@ -95781,8 +95891,7 @@ function isLoopbackBaseUrl(value) {
95781
95891
  }
95782
95892
  function resolveProviderBaseUrl(providerId, settings = getInitialSettings()) {
95783
95893
  const definition = getProviderDefinition(providerId);
95784
- const active = getActiveProviderSettings(settings);
95785
- const configuredBaseUrl = active.active === providerId ? active.baseUrl : undefined;
95894
+ const configuredBaseUrl = getScopedProviderBaseUrl(providerId, settings);
95786
95895
  if (providerId === "ollama") {
95787
95896
  return getOllamaSessionOverride() ?? configuredBaseUrl ?? getOllamaBaseUrl(process.env, settings);
95788
95897
  }
@@ -95820,7 +95929,7 @@ async function createOpenAICompatibleProviderClient(providerId, options = {}) {
95820
95929
  const settings = options.settings ?? getInitialSettings();
95821
95930
  const providerSettings = getActiveProviderSettings(settings);
95822
95931
  const provider = getProviderDefinition(providerId);
95823
- const baseUrl = providerSettings.active === providerId ? providerSettings.baseUrl ?? provider.defaultBaseUrl : provider.defaultBaseUrl;
95932
+ const baseUrl = resolveProviderBaseUrl(providerId, settings);
95824
95933
  if (!baseUrl) {
95825
95934
  throw new Error(`Provider "${providerId}" requires a base URL. Run: ur config set base_url <url>`);
95826
95935
  }
@@ -95888,7 +95997,7 @@ async function createAPIClient(providerId, options = {}) {
95888
95997
  } = await Promise.resolve().then(() => (init_openaiResponsesState(), exports_openaiResponsesState));
95889
95998
  return await createOpenAIResponsesClient2({
95890
95999
  apiKey,
95891
- baseUrl: providerSettings.baseUrl ?? provider.defaultBaseUrl,
96000
+ baseUrl: resolveProviderBaseUrl(providerId, settings),
95892
96001
  maxRetries: options.maxRetries ?? 3,
95893
96002
  model: options.model,
95894
96003
  store: providerSettings.responses?.store ?? false,
@@ -95902,7 +96011,7 @@ async function createAPIClient(providerId, options = {}) {
95902
96011
  return await createStandardAPIClient2({
95903
96012
  providerId,
95904
96013
  apiKey,
95905
- baseUrl: providerSettings.active === providerId ? providerSettings.baseUrl ?? provider.defaultBaseUrl : provider.defaultBaseUrl,
96014
+ baseUrl: resolveProviderBaseUrl(providerId, settings),
95906
96015
  maxRetries: options.maxRetries ?? 3,
95907
96016
  model: options.model
95908
96017
  });
@@ -108425,7 +108534,7 @@ var init_auth = __esm(() => {
108425
108534
 
108426
108535
  // src/utils/userAgent.ts
108427
108536
  function getURCodeUserAgent() {
108428
- return `ur/${"1.82.1"}`;
108537
+ return `ur/${"1.82.2"}`;
108429
108538
  }
108430
108539
 
108431
108540
  // src/utils/workloadContext.ts
@@ -108447,7 +108556,7 @@ function getUserAgent() {
108447
108556
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
108448
108557
  const workload = getWorkload();
108449
108558
  const workloadSuffix = workload ? `, workload/${workload}` : "";
108450
- return `ur-cli/${"1.82.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
108559
+ return `ur-cli/${"1.82.2"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
108451
108560
  }
108452
108561
  function getMCPUserAgent() {
108453
108562
  const parts = [];
@@ -108461,7 +108570,7 @@ function getMCPUserAgent() {
108461
108570
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
108462
108571
  }
108463
108572
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
108464
- return `ur/${"1.82.1"}${suffix}`;
108573
+ return `ur/${"1.82.2"}${suffix}`;
108465
108574
  }
108466
108575
  function getWebFetchUserAgent() {
108467
108576
  return `UR-User (${getURCodeUserAgent()})`;
@@ -108599,7 +108708,7 @@ var init_user = __esm(() => {
108599
108708
  deviceId,
108600
108709
  sessionId: getSessionId(),
108601
108710
  email: getEmail(),
108602
- appVersion: "1.82.1",
108711
+ appVersion: "1.82.2",
108603
108712
  platform: getHostPlatformForAnalytics(),
108604
108713
  organizationUuid,
108605
108714
  accountUuid,
@@ -116486,7 +116595,7 @@ var init_metadata = __esm(() => {
116486
116595
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
116487
116596
  WHITESPACE_REGEX = /\s+/;
116488
116597
  getVersionBase = memoize_default(() => {
116489
- const match = "1.82.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
116598
+ const match = "1.82.2".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
116490
116599
  return match ? match[0] : undefined;
116491
116600
  });
116492
116601
  buildEnvContext = memoize_default(async () => {
@@ -116526,7 +116635,7 @@ var init_metadata = __esm(() => {
116526
116635
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
116527
116636
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
116528
116637
  isURAiAuth: isURAISubscriber(),
116529
- version: "1.82.1",
116638
+ version: "1.82.2",
116530
116639
  versionBase: getVersionBase(),
116531
116640
  buildTime: "",
116532
116641
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -117196,7 +117305,7 @@ function initialize1PEventLogging() {
117196
117305
  const platform2 = getPlatform();
117197
117306
  const attributes = {
117198
117307
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
117199
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.82.1"
117308
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.82.2"
117200
117309
  };
117201
117310
  if (platform2 === "wsl") {
117202
117311
  const wslVersion = getWslVersion();
@@ -117224,7 +117333,7 @@ function initialize1PEventLogging() {
117224
117333
  })
117225
117334
  ]
117226
117335
  });
117227
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.82.1");
117336
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.82.2");
117228
117337
  }
117229
117338
  async function reinitialize1PEventLoggingIfConfigChanged() {
117230
117339
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -119732,7 +119841,8 @@ var init_types2 = __esm(() => {
119732
119841
  provider: exports_external.object({
119733
119842
  active: exports_external.enum(PROVIDER_SETTING_IDS).optional().describe("Active legal model provider adapter"),
119734
119843
  model: exports_external.string().optional().describe("Selected model name for the active provider"),
119735
- baseUrl: exports_external.string().optional().describe("Provider base URL without embedded credentials"),
119844
+ baseUrl: exports_external.string().optional().describe("Legacy base URL for the active provider without embedded credentials"),
119845
+ baseUrls: exports_external.partialRecord(exports_external.enum(PROVIDER_SETTING_IDS), exports_external.string()).optional().describe("Base URLs saved independently for each provider without embedded credentials"),
119736
119846
  timeoutMs: exports_external.number().int().positive().optional().describe("Provider HTTP request timeout in milliseconds. Defaults to 120000."),
119737
119847
  streamTimeoutMs: exports_external.number().int().positive().optional().describe("How long a streaming request may wait for response headers, in milliseconds. Defaults to 900000; mid-stream liveness is governed by the inactivity watchdog."),
119738
119848
  commandPath: exports_external.string().optional().describe("Explicit official CLI executable path for subscription providers"),
@@ -127194,7 +127304,7 @@ function formatA2AV1AgentCard(options = {}, pretty = true) {
127194
127304
  var urVersion, researchSnapshotDate = "2026-08-10", coverage, priorityRoadmap;
127195
127305
  var init_trends = __esm(() => {
127196
127306
  init_a2aCardSignature();
127197
- urVersion = typeof MACRO !== "undefined" ? "1.82.1" : "1.82.1";
127307
+ urVersion = typeof MACRO !== "undefined" ? "1.82.2" : "1.82.2";
127198
127308
  coverage = [
127199
127309
  {
127200
127310
  id: "local-runtime",
@@ -130082,7 +130192,7 @@ function getAttributionHeader(fingerprint) {
130082
130192
  if (!isAttributionHeaderEnabled()) {
130083
130193
  return "";
130084
130194
  }
130085
- const version2 = `${"1.82.1"}.${fingerprint}`;
130195
+ const version2 = `${"1.82.2"}.${fingerprint}`;
130086
130196
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
130087
130197
  const cch = "";
130088
130198
  const workload = getWorkload();
@@ -185215,7 +185325,7 @@ var init_projectSafety = __esm(() => {
185215
185325
  function getInstruments() {
185216
185326
  if (instruments)
185217
185327
  return instruments;
185218
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.82.1");
185328
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.82.2");
185219
185329
  instruments = {
185220
185330
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
185221
185331
  description: "GenAI operation duration.",
@@ -185313,7 +185423,7 @@ function genAiAgentAttributes() {
185313
185423
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
185314
185424
  "gen_ai.provider.name": "ur",
185315
185425
  "gen_ai.agent.name": "UR-Nexus",
185316
- "gen_ai.agent.version": "1.82.1"
185426
+ "gen_ai.agent.version": "1.82.2"
185317
185427
  };
185318
185428
  }
185319
185429
  function genAiWorkflowAttributes(workflowName, workflowRunId) {
@@ -185334,7 +185444,7 @@ function genAiWorkflowAttributes(workflowName, workflowRunId) {
185334
185444
  function startGenAiWorkflowSpan(workflowName, workflowRunId) {
185335
185445
  const attributes = genAiWorkflowAttributes(workflowName, workflowRunId);
185336
185446
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
185337
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.82.1").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
185447
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.82.2").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
185338
185448
  }
185339
185449
  function endGenAiWorkflowSpan(span, options2 = {}) {
185340
185450
  try {
@@ -185372,7 +185482,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
185372
185482
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
185373
185483
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
185374
185484
  }
185375
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.82.1").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
185485
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.82.2").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
185376
185486
  }
185377
185487
  function endGenAiMemorySpan(span, options2 = {}) {
185378
185488
  try {
@@ -279165,7 +279275,7 @@ function getTelemetryAttributes() {
279165
279275
  attributes["session.id"] = sessionId;
279166
279276
  }
279167
279277
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
279168
- attributes["app.version"] = "1.82.1";
279278
+ attributes["app.version"] = "1.82.2";
279169
279279
  }
279170
279280
  const oauthAccount = getOauthAccountInfo();
279171
279281
  if (oauthAccount) {
@@ -320400,7 +320510,7 @@ function getInstallationEnv() {
320400
320510
  return;
320401
320511
  }
320402
320512
  function getURCodeVersion() {
320403
- return "1.82.1";
320513
+ return "1.82.2";
320404
320514
  }
320405
320515
  async function getInstalledVSCodeExtensionVersion(command) {
320406
320516
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -327770,7 +327880,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
327770
327880
  const client2 = new Client({
327771
327881
  name: "ur",
327772
327882
  title: "UR",
327773
- version: "1.82.1",
327883
+ version: "1.82.2",
327774
327884
  description: "UR-Nexus autonomous engineering workflow engine",
327775
327885
  websiteUrl: PRODUCT_URL
327776
327886
  }, {
@@ -328131,7 +328241,7 @@ var init_client5 = __esm(() => {
328131
328241
  const client2 = new Client({
328132
328242
  name: "ur",
328133
328243
  title: "UR",
328134
- version: "1.82.1",
328244
+ version: "1.82.2",
328135
328245
  description: "UR-Nexus autonomous engineering workflow engine",
328136
328246
  websiteUrl: PRODUCT_URL
328137
328247
  }, {
@@ -340904,7 +341014,7 @@ async function createRuntime() {
340904
341014
  bootstrapTelemetry();
340905
341015
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
340906
341016
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
340907
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.82.1"
341017
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.82.2"
340908
341018
  }));
340909
341019
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
340910
341020
  resource,
@@ -340937,11 +341047,11 @@ async function createRuntime() {
340937
341047
  setMeterProvider(meterProvider);
340938
341048
  setLoggerProvider(loggerProvider);
340939
341049
  if (meterProvider) {
340940
- const meter = meterProvider.getMeter("ur-agent", "1.82.1");
341050
+ const meter = meterProvider.getMeter("ur-agent", "1.82.2");
340941
341051
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
340942
341052
  }
340943
341053
  if (loggerProvider) {
340944
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.82.1"));
341054
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.82.2"));
340945
341055
  }
340946
341056
  if (!cleanupRegistered3) {
340947
341057
  cleanupRegistered3 = true;
@@ -341603,9 +341713,9 @@ async function assertMinVersion() {
341603
341713
  if (false) {}
341604
341714
  try {
341605
341715
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
341606
- if (versionConfig.minVersion && lt("1.82.1", versionConfig.minVersion)) {
341716
+ if (versionConfig.minVersion && lt("1.82.2", versionConfig.minVersion)) {
341607
341717
  console.error(`
341608
- It looks like your version of UR (${"1.82.1"}) needs an update.
341718
+ It looks like your version of UR (${"1.82.2"}) needs an update.
341609
341719
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
341610
341720
 
341611
341721
  To update, please run:
@@ -341821,7 +341931,7 @@ async function installGlobalPackage(specificVersion) {
341821
341931
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
341822
341932
  logEvent("tengu_auto_updater_lock_contention", {
341823
341933
  pid: process.pid,
341824
- currentVersion: "1.82.1"
341934
+ currentVersion: "1.82.2"
341825
341935
  });
341826
341936
  return "in_progress";
341827
341937
  }
@@ -341830,7 +341940,7 @@ async function installGlobalPackage(specificVersion) {
341830
341940
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
341831
341941
  logError2(new Error("Windows NPM detected in WSL environment"));
341832
341942
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
341833
- currentVersion: "1.82.1"
341943
+ currentVersion: "1.82.2"
341834
341944
  });
341835
341945
  console.error(`
341836
341946
  Error: Windows NPM detected in WSL
@@ -342365,7 +342475,7 @@ function detectLinuxGlobPatternWarnings() {
342365
342475
  }
342366
342476
  async function getDoctorDiagnostic() {
342367
342477
  const installationType = await getCurrentInstallationType();
342368
- const version2 = typeof MACRO !== "undefined" ? "1.82.1" : "unknown";
342478
+ const version2 = typeof MACRO !== "undefined" ? "1.82.2" : "unknown";
342369
342479
  const installationPath = await getInstallationPath();
342370
342480
  const invokedBinary = getInvokedBinary();
342371
342481
  const multipleInstallations = await detectMultipleInstallations();
@@ -343300,8 +343410,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
343300
343410
  const maxVersion = await getMaxVersion();
343301
343411
  if (maxVersion && gt(version2, maxVersion)) {
343302
343412
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
343303
- if (gte("1.82.1", maxVersion)) {
343304
- logForDebugging(`Native installer: current version ${"1.82.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
343413
+ if (gte("1.82.2", maxVersion)) {
343414
+ logForDebugging(`Native installer: current version ${"1.82.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
343305
343415
  logEvent("tengu_native_update_skipped_max_version", {
343306
343416
  latency_ms: Date.now() - startTime,
343307
343417
  max_version: maxVersion,
@@ -343312,7 +343422,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
343312
343422
  version2 = maxVersion;
343313
343423
  }
343314
343424
  }
343315
- if (!forceReinstall && version2 === "1.82.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
343425
+ if (!forceReinstall && version2 === "1.82.2" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
343316
343426
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
343317
343427
  logEvent("tengu_native_update_complete", {
343318
343428
  latency_ms: Date.now() - startTime,
@@ -414022,7 +414132,7 @@ function isAnyTracingEnabled() {
414022
414132
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
414023
414133
  }
414024
414134
  function getTracer() {
414025
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.82.1");
414135
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.82.2");
414026
414136
  }
414027
414137
  function createSpanAttributes(spanType, customAttributes = {}) {
414028
414138
  const baseAttributes = getTelemetryAttributes();
@@ -444208,7 +444318,7 @@ function Feedback({
444208
444318
  platform: env2.platform,
444209
444319
  gitRepo: envInfo.isGit,
444210
444320
  terminal: env2.terminal,
444211
- version: "1.82.1",
444321
+ version: "1.82.2",
444212
444322
  transcript: normalizeMessagesForAPI(messages),
444213
444323
  errors: sanitizedErrors,
444214
444324
  lastApiRequest: getLastAPIRequest(),
@@ -444400,7 +444510,7 @@ function Feedback({
444400
444510
  ", ",
444401
444511
  env2.terminal,
444402
444512
  ", v",
444403
- "1.82.1"
444513
+ "1.82.2"
444404
444514
  ]
444405
444515
  }, undefined, true, undefined, this)
444406
444516
  ]
@@ -444506,7 +444616,7 @@ ${sanitizedDescription}
444506
444616
  ` + `**Environment Info**
444507
444617
  ` + `- Platform: ${env2.platform}
444508
444618
  ` + `- Terminal: ${env2.terminal}
444509
- ` + `- Version: ${"1.82.1"}
444619
+ ` + `- Version: ${"1.82.2"}
444510
444620
  ` + `- Feedback ID: ${feedbackId}
444511
444621
  ` + `
444512
444622
  **Errors**
@@ -447616,7 +447726,7 @@ function buildPrimarySection() {
447616
447726
  }, undefined, false, undefined, this);
447617
447727
  return [{
447618
447728
  label: "Version",
447619
- value: "1.82.1"
447729
+ value: "1.82.2"
447620
447730
  }, {
447621
447731
  label: "Session name",
447622
447732
  value: nameValue
@@ -451119,7 +451229,7 @@ function Config({
451119
451229
  }
451120
451230
  }, undefined, false, undefined, this)
451121
451231
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
451122
- currentVersion: "1.82.1",
451232
+ currentVersion: "1.82.2",
451123
451233
  onChoice: (choice) => {
451124
451234
  setShowSubmenu(null);
451125
451235
  setTabsHidden(false);
@@ -451131,7 +451241,7 @@ function Config({
451131
451241
  autoUpdatesChannel: "stable"
451132
451242
  };
451133
451243
  if (choice === "stay") {
451134
- newSettings.minimumVersion = "1.82.1";
451244
+ newSettings.minimumVersion = "1.82.2";
451135
451245
  }
451136
451246
  updateSettingsForSource("userSettings", newSettings);
451137
451247
  setSettingsData((prev_27) => ({
@@ -459440,7 +459550,7 @@ function HelpV2(t0) {
459440
459550
  let t6;
459441
459551
  if ($2[31] !== tabs) {
459442
459552
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
459443
- title: `UR v${"1.82.1"}`,
459553
+ title: `UR v${"1.82.2"}`,
459444
459554
  color: "professionalBlue",
459445
459555
  defaultTab: "general",
459446
459556
  children: tabs
@@ -460373,7 +460483,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
460373
460483
  async function handleInitialize(options2) {
460374
460484
  return {
460375
460485
  name: "UR",
460376
- version: "1.82.1",
460486
+ version: "1.82.2",
460377
460487
  protocolVersion: "0.1.0",
460378
460488
  workspaceRoot: options2.cwd,
460379
460489
  capabilities: {
@@ -477481,7 +477591,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
477481
477591
  return [];
477482
477592
  }
477483
477593
  }
477484
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.82.1") {
477594
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.82.2") {
477485
477595
  if (process.env.USER_TYPE === "ant") {
477486
477596
  const changelog = "";
477487
477597
  if (changelog) {
@@ -477508,7 +477618,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.82.1")
477508
477618
  releaseNotes
477509
477619
  };
477510
477620
  }
477511
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.82.1") {
477621
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.82.2") {
477512
477622
  if (process.env.USER_TYPE === "ant") {
477513
477623
  const changelog = "";
477514
477624
  if (changelog) {
@@ -480416,7 +480526,7 @@ function getRecentActivitySync() {
480416
480526
  return cachedActivity;
480417
480527
  }
480418
480528
  function getLogoDisplayData() {
480419
- const version2 = process.env.DEMO_VERSION ?? "1.82.1";
480529
+ const version2 = process.env.DEMO_VERSION ?? "1.82.2";
480420
480530
  const serverUrl = getDirectConnectServerUrl();
480421
480531
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd2());
480422
480532
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -481304,7 +481414,7 @@ function LogoV2() {
481304
481414
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
481305
481415
  t2 = () => {
481306
481416
  const currentConfig = getGlobalConfig();
481307
- if (currentConfig.lastReleaseNotesSeen === "1.82.1") {
481417
+ if (currentConfig.lastReleaseNotesSeen === "1.82.2") {
481308
481418
  return;
481309
481419
  }
481310
481420
  saveGlobalConfig(_temp325);
@@ -481992,12 +482102,12 @@ function LogoV2() {
481992
482102
  return t41;
481993
482103
  }
481994
482104
  function _temp325(current) {
481995
- if (current.lastReleaseNotesSeen === "1.82.1") {
482105
+ if (current.lastReleaseNotesSeen === "1.82.2") {
481996
482106
  return current;
481997
482107
  }
481998
482108
  return {
481999
482109
  ...current,
482000
- lastReleaseNotesSeen: "1.82.1"
482110
+ lastReleaseNotesSeen: "1.82.2"
482001
482111
  };
482002
482112
  }
482003
482113
  function _temp241(s_0) {
@@ -497947,7 +498057,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
497947
498057
  if (spec.name !== specName) {
497948
498058
  throw new Error("Agentic CI workflow spec name does not match");
497949
498059
  }
497950
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.82.1" : "1.82.1");
498060
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.82.2" : "1.82.2");
497951
498061
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
497952
498062
  throw new Error("invalid ur-agent package version");
497953
498063
  }
@@ -498940,7 +499050,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
498940
499050
  path: ".github/workflows/ur.yml",
498941
499051
  root: "project",
498942
499052
  content: compileAgenticCiWorkflow("default", {
498943
- packageVersion: typeof MACRO !== "undefined" ? "1.82.1" : "1.82.1"
499053
+ packageVersion: typeof MACRO !== "undefined" ? "1.82.2" : "1.82.2"
498944
499054
  })
498945
499055
  },
498946
499056
  {
@@ -499003,7 +499113,7 @@ function value(tokens, flag) {
499003
499113
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
499004
499114
  }
499005
499115
  function cliVersion() {
499006
- return typeof MACRO !== "undefined" ? "1.82.1" : "1.82.1";
499116
+ return typeof MACRO !== "undefined" ? "1.82.2" : "1.82.2";
499007
499117
  }
499008
499118
  function workflowPath(cwd2) {
499009
499119
  return join168(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -504859,7 +504969,7 @@ function createAcpStdioApp(deps) {
504859
504969
  }
504860
504970
  },
504861
504971
  authMethods: [],
504862
- agentInfo: { name: "UR-Nexus", version: "1.82.1" }
504972
+ agentInfo: { name: "UR-Nexus", version: "1.82.2" }
504863
504973
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
504864
504974
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
504865
504975
  await runtime2.announce({
@@ -504956,7 +505066,7 @@ function createAcpStdioAgent(deps) {
504956
505066
  }
504957
505067
  },
504958
505068
  authMethods: [],
504959
- agentInfo: { name: "UR-Nexus", version: "1.82.1" }
505069
+ agentInfo: { name: "UR-Nexus", version: "1.82.2" }
504960
505070
  });
504961
505071
  return;
504962
505072
  case "authenticate":
@@ -505549,8 +505659,7 @@ async function getProviderConnection(providerId, options2 = {}) {
505549
505659
  }
505550
505660
  function getConfiguredBaseUrl(provider) {
505551
505661
  const allSettings = getInitialSettings();
505552
- const settings = getActiveProviderSettings(allSettings);
505553
- const scoped = settings.active === provider ? settings.baseUrl : undefined;
505662
+ const scoped = getScopedProviderBaseUrl(provider, allSettings);
505554
505663
  if (provider === "ollama") {
505555
505664
  return getOllamaSessionOverride() ?? scoped ?? getOllamaBaseUrl(process.env, allSettings);
505556
505665
  }
@@ -716587,7 +716696,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
716587
716696
  smapsRollup,
716588
716697
  platform: process.platform,
716589
716698
  nodeVersion: process.version,
716590
- ccVersion: "1.82.1"
716699
+ ccVersion: "1.82.2"
716591
716700
  };
716592
716701
  }
716593
716702
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -717176,7 +717285,7 @@ var init_bridge_kick = __esm(() => {
717176
717285
  var call154 = async () => {
717177
717286
  return {
717178
717287
  type: "text",
717179
- value: "1.82.1"
717288
+ value: "1.82.2"
717180
717289
  };
717181
717290
  }, version2, version_default;
717182
717291
  var init_version = __esm(() => {
@@ -720274,7 +720383,8 @@ function ProviderFirstModelPicker({
720274
720383
  };
720275
720384
  }, [selectedProvider, modelReloadToken]);
720276
720385
  import_react186.useEffect(() => {
720277
- if (selectedProvider?.value !== "llama.cpp" || !focusedModelValue) {
720386
+ const capabilityProvider = selectedProvider?.value;
720387
+ if (capabilityProvider !== "llama.cpp" && capabilityProvider !== "ollama" || !focusedModelValue) {
720278
720388
  setEffortCapabilityLoading(false);
720279
720389
  setEffortCapabilityWarning(null);
720280
720390
  return;
@@ -720290,7 +720400,7 @@ function ProviderFirstModelPicker({
720290
720400
  const timer = setTimeout(() => {
720291
720401
  setEffortCapabilityLoading(true);
720292
720402
  setEffortCapabilityWarning(null);
720293
- ensureProviderReasoningCapabilitiesForModel("llama.cpp", focusedModelValue, {
720403
+ ensureProviderReasoningCapabilitiesForModel(capabilityProvider, focusedModelValue, {
720294
720404
  settings: getInitialSettings(),
720295
720405
  signal: controller.signal
720296
720406
  }).then((reasoning) => {
@@ -720419,6 +720529,7 @@ function ProviderFirstModelPicker({
720419
720529
  }
720420
720530
  }
720421
720531
  let runtimeBackend;
720532
+ let savedProviderSettings;
720422
720533
  if (selectedProvider) {
720423
720534
  try {
720424
720535
  const runtime2 = resolveActiveProviderModel({
@@ -720445,6 +720556,7 @@ function ProviderFirstModelPicker({
720445
720556
  setModelWarning(saveResult.message);
720446
720557
  return;
720447
720558
  }
720559
+ savedProviderSettings = getActiveProviderSettings(getInitialSettings());
720448
720560
  }
720449
720561
  if (hasToggledEffort) {
720450
720562
  const persistable = selectedEffort ? toPersistableEffort(selectedEffort) : undefined;
@@ -720458,8 +720570,10 @@ function ProviderFirstModelPicker({
720458
720570
  ...prev,
720459
720571
  provider: {
720460
720572
  ...prev.provider ?? {},
720461
- active: selectedProvider?.value,
720462
- model: value2
720573
+ ...savedProviderSettings ?? {
720574
+ active: selectedProvider?.value,
720575
+ model: value2
720576
+ }
720463
720577
  },
720464
720578
  ...hasToggledEffort ? { effortValue: selectedEffort } : {},
720465
720579
  ...hasToggledThinking ? { thinkingEnabled } : {}
@@ -721299,6 +721413,7 @@ function SetModelAndClose({
721299
721413
  return;
721300
721414
  }
721301
721415
  function setModel(modelValue, provider, warning) {
721416
+ const savedProvider = provider ? getActiveProviderSettings(getInitialSettings()) : undefined;
721302
721417
  setAppState((prev) => ({
721303
721418
  ...prev,
721304
721419
  mainLoopModel: modelValue,
@@ -721306,7 +721421,8 @@ function SetModelAndClose({
721306
721421
  ...provider ? {
721307
721422
  provider: {
721308
721423
  ...prev.provider ?? {},
721309
- active: provider,
721424
+ ...savedProvider,
721425
+ active: savedProvider?.active ?? provider,
721310
721426
  model: modelValue ?? undefined
721311
721427
  }
721312
721428
  } : {}
@@ -721514,8 +721630,8 @@ function ProviderPicker({
721514
721630
  ...prev,
721515
721631
  provider: {
721516
721632
  ...prev.provider ?? {},
721517
- active: saved.active ?? value2,
721518
- model: saved.model
721633
+ ...saved,
721634
+ active: saved.active ?? value2
721519
721635
  }
721520
721636
  }));
721521
721637
  onSelect(value2);
@@ -721696,9 +721812,7 @@ function ProviderPickerWrapper({
721696
721812
  from_provider: providerRuntime.provider,
721697
721813
  to_provider: resolvedProvider
721698
721814
  });
721699
- const newProviderRuntime = getProviderRuntimeInfo({
721700
- provider: { active: resolvedProvider }
721701
- });
721815
+ const newProviderRuntime = getProviderRuntimeInfo(getInitialSettings());
721702
721816
  let message = `Set provider to ${source_default.bold(newProviderRuntime.providerLabel)}`;
721703
721817
  if (newProviderRuntime.model) {
721704
721818
  message += ` \xB7 Model: ${source_default.bold(newProviderRuntime.model)}`;
@@ -721771,7 +721885,7 @@ var React102, jsx_dev_runtime339, call162 = async (onDone, _context, args) => {
721771
721885
  const {
721772
721886
  setSafeProviderConfig: setSafeProviderConfig2,
721773
721887
  validateProviderModelCompatibility: validateProviderModelCompatibility2,
721774
- getActiveProviderSettings: getActiveProviderSettings2,
721888
+ getActiveProviderSettings: getActiveProviderSettings3,
721775
721889
  ensureProviderModelsFresh: ensureProviderModelsFresh2
721776
721890
  } = await Promise.resolve().then(() => (init_providerRegistry(), exports_providerRegistry));
721777
721891
  const { getInitialSettings: getInitialSettings2 } = await Promise.resolve().then(() => (init_settings2(), exports_settings));
@@ -721784,7 +721898,7 @@ var React102, jsx_dev_runtime339, call162 = async (onDone, _context, args) => {
721784
721898
  }
721785
721899
  const settings = getInitialSettings2();
721786
721900
  const discovered = await ensureProviderModelsFresh2(resolvedProvider, { settings, force: true });
721787
- const currentModel = getActiveProviderSettings2(settings).model;
721901
+ const currentModel = getActiveProviderSettings3(settings).model;
721788
721902
  if (currentModel) {
721789
721903
  const validation = validateProviderModelCompatibility2(resolvedProvider, currentModel, {
721790
721904
  availableModels: discovered.models,
@@ -721800,7 +721914,7 @@ Run: /model ${suggestedModel}`, { display: "system" });
721800
721914
  }
721801
721915
  const result = setSafeProviderConfig2("provider", args);
721802
721916
  if (result.ok) {
721803
- const saved = getActiveProviderSettings2(getInitialSettings2());
721917
+ const saved = getActiveProviderSettings3(getInitialSettings2());
721804
721918
  const message = discovered.warning ? `${result.message}
721805
721919
  Model refresh: ${discovered.warning}` : result.message;
721806
721920
  return /* @__PURE__ */ jsx_dev_runtime339.jsxDEV(ApplyProviderAndClose, {
@@ -721825,6 +721939,7 @@ var init_provider = __esm(() => {
721825
721939
  init_AppState();
721826
721940
  init_providerRegistry();
721827
721941
  init_useSettings();
721942
+ init_settings2();
721828
721943
  React102 = __toESM(require_react(), 1);
721829
721944
  jsx_dev_runtime339 = __toESM(require_jsx_dev_runtime(), 1);
721830
721945
  });
@@ -728644,7 +728759,7 @@ function generateHtmlReport(data, insights) {
728644
728759
  </html>`;
728645
728760
  }
728646
728761
  function buildExportData(data, insights, facets, remoteStats) {
728647
- const version3 = typeof MACRO !== "undefined" ? "1.82.1" : "unknown";
728762
+ const version3 = typeof MACRO !== "undefined" ? "1.82.2" : "unknown";
728648
728763
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
728649
728764
  const facets_summary = {
728650
728765
  total: facets.size,
@@ -732957,7 +733072,7 @@ var init_sessionStorage = __esm(() => {
732957
733072
  init_settings2();
732958
733073
  init_slowOperations();
732959
733074
  init_uuid();
732960
- VERSION7 = typeof MACRO !== "undefined" ? "1.82.1" : "unknown";
733075
+ VERSION7 = typeof MACRO !== "undefined" ? "1.82.2" : "unknown";
732961
733076
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
732962
733077
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
732963
733078
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -734173,7 +734288,7 @@ var init_filesystem = __esm(() => {
734173
734288
  });
734174
734289
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
734175
734290
  const nonce = randomBytes24(16).toString("hex");
734176
- return join243(getURTempDir(), "bundled-skills", "1.82.1", nonce);
734291
+ return join243(getURTempDir(), "bundled-skills", "1.82.2", nonce);
734177
734292
  });
734178
734293
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
734179
734294
  });
@@ -740566,7 +740681,7 @@ function computeFingerprint(messageText2, version3) {
740566
740681
  }
740567
740682
  function computeFingerprintFromMessages(messages) {
740568
740683
  const firstMessageText = extractFirstMessageText(messages);
740569
- return computeFingerprint(firstMessageText, "1.82.1");
740684
+ return computeFingerprint(firstMessageText, "1.82.2");
740570
740685
  }
740571
740686
  var FINGERPRINT_SALT = "59cf53e54c78";
740572
740687
  var init_fingerprint = () => {};
@@ -742540,7 +742655,7 @@ async function sideQuery(opts) {
742540
742655
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
742541
742656
  }
742542
742657
  const messageText2 = extractFirstUserMessageText(messages);
742543
- const fingerprint2 = computeFingerprint(messageText2, "1.82.1");
742658
+ const fingerprint2 = computeFingerprint(messageText2, "1.82.2");
742544
742659
  const attributionHeader = getAttributionHeader(fingerprint2);
742545
742660
  const systemBlocks = [
742546
742661
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -747374,7 +747489,7 @@ function buildSystemInitMessage(inputs) {
747374
747489
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
747375
747490
  apiKeySource: getURHQApiKeyWithSource().source,
747376
747491
  betas: getSdkBetas(),
747377
- ur_version: "1.82.1",
747492
+ ur_version: "1.82.2",
747378
747493
  output_style: outputStyle,
747379
747494
  agents: inputs.agents.map((agent2) => agent2.agentType),
747380
747495
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -761210,7 +761325,7 @@ var init_useVoiceEnabled = __esm(() => {
761210
761325
  function getSemverPart(version3) {
761211
761326
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
761212
761327
  }
761213
- function useUpdateNotification(updatedVersion, initialVersion = "1.82.1") {
761328
+ function useUpdateNotification(updatedVersion, initialVersion = "1.82.2") {
761214
761329
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
761215
761330
  if (!updatedVersion) {
761216
761331
  return null;
@@ -761259,7 +761374,7 @@ function AutoUpdater({
761259
761374
  return;
761260
761375
  }
761261
761376
  if (false) {}
761262
- const currentVersion = "1.82.1";
761377
+ const currentVersion = "1.82.2";
761263
761378
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
761264
761379
  let latestVersion = await getLatestVersion(channel);
761265
761380
  const isDisabled = isAutoUpdaterDisabled();
@@ -761488,12 +761603,12 @@ function NativeAutoUpdater({
761488
761603
  logEvent("tengu_native_auto_updater_start", {});
761489
761604
  try {
761490
761605
  const maxVersion = await getMaxVersion();
761491
- if (maxVersion && gt("1.82.1", maxVersion)) {
761606
+ if (maxVersion && gt("1.82.2", maxVersion)) {
761492
761607
  const msg = await getMaxVersionMessage();
761493
761608
  setMaxVersionIssue(msg ?? "affects your version");
761494
761609
  }
761495
761610
  const result = await installLatest(channel);
761496
- const currentVersion = "1.82.1";
761611
+ const currentVersion = "1.82.2";
761497
761612
  const latencyMs = Date.now() - startTime;
761498
761613
  if (result.lockFailed) {
761499
761614
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -761630,17 +761745,17 @@ function PackageManagerAutoUpdater(t0) {
761630
761745
  const maxVersion = await getMaxVersion();
761631
761746
  if (maxVersion && latest && gt(latest, maxVersion)) {
761632
761747
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
761633
- if (gte("1.82.1", maxVersion)) {
761634
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.82.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
761748
+ if (gte("1.82.2", maxVersion)) {
761749
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.82.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
761635
761750
  setUpdateAvailable(false);
761636
761751
  return;
761637
761752
  }
761638
761753
  latest = maxVersion;
761639
761754
  }
761640
- const hasUpdate = latest && !gte("1.82.1", latest) && !shouldSkipVersion(latest);
761755
+ const hasUpdate = latest && !gte("1.82.2", latest) && !shouldSkipVersion(latest);
761641
761756
  setUpdateAvailable(!!hasUpdate);
761642
761757
  if (hasUpdate) {
761643
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.82.1"} -> ${latest}`);
761758
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.82.2"} -> ${latest}`);
761644
761759
  }
761645
761760
  };
761646
761761
  $2[0] = t1;
@@ -761674,7 +761789,7 @@ function PackageManagerAutoUpdater(t0) {
761674
761789
  wrap: "truncate",
761675
761790
  children: [
761676
761791
  "currentVersion: ",
761677
- "1.82.1"
761792
+ "1.82.2"
761678
761793
  ]
761679
761794
  }, undefined, true, undefined, this);
761680
761795
  $2[3] = verbose;
@@ -772527,7 +772642,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
772527
772642
  project_dir: getOriginalCwd(),
772528
772643
  added_dirs: addedDirs
772529
772644
  },
772530
- version: "1.82.1",
772645
+ version: "1.82.2",
772531
772646
  output_style: {
772532
772647
  name: outputStyleName
772533
772648
  },
@@ -772662,7 +772777,7 @@ function StatusLineInner({
772662
772777
  const attention = customStatusError ?? taskAttention;
772663
772778
  const terminalSize = React133.useContext(TerminalSizeContext);
772664
772779
  const defaultStatusLineText = buildDefaultStatusBar({
772665
- version: "1.82.1",
772780
+ version: "1.82.2",
772666
772781
  providerLabel: providerRuntime.providerLabel,
772667
772782
  authMode: providerRuntime.authLabel,
772668
772783
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -784918,7 +785033,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
784918
785033
  } catch {}
784919
785034
  const data = {
784920
785035
  trigger: trigger2,
784921
- version: "1.82.1",
785036
+ version: "1.82.2",
784922
785037
  platform: process.platform,
784923
785038
  transcript,
784924
785039
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -797287,7 +797402,7 @@ function WelcomeV2() {
797287
797402
  dimColor: true,
797288
797403
  children: [
797289
797404
  "v",
797290
- "1.82.1"
797405
+ "1.82.2"
797291
797406
  ]
797292
797407
  }, undefined, true, undefined, this)
797293
797408
  ]
@@ -798547,7 +798662,7 @@ function completeOnboarding() {
798547
798662
  saveGlobalConfig((current) => ({
798548
798663
  ...current,
798549
798664
  hasCompletedOnboarding: true,
798550
- lastOnboardingVersion: "1.82.1"
798665
+ lastOnboardingVersion: "1.82.2"
798551
798666
  }));
798552
798667
  }
798553
798668
  function showDialog(root2, renderer) {
@@ -803693,7 +803808,7 @@ function appendToLog(path28, message) {
803693
803808
  cwd: getFsImplementation().cwd(),
803694
803809
  userType: process.env.USER_TYPE,
803695
803810
  sessionId: getSessionId(),
803696
- version: "1.82.1"
803811
+ version: "1.82.2"
803697
803812
  };
803698
803813
  getLogWriter(path28).write(messageWithTimestamp);
803699
803814
  }
@@ -807857,8 +807972,8 @@ async function getEnvLessBridgeConfig() {
807857
807972
  }
807858
807973
  async function checkEnvLessBridgeMinVersion() {
807859
807974
  const cfg = await getEnvLessBridgeConfig();
807860
- if (cfg.min_version && lt("1.82.1", cfg.min_version)) {
807861
- return `Your version of UR (${"1.82.1"}) is too old for Remote Control.
807975
+ if (cfg.min_version && lt("1.82.2", cfg.min_version)) {
807976
+ return `Your version of UR (${"1.82.2"}) is too old for Remote Control.
807862
807977
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
807863
807978
  }
807864
807979
  return null;
@@ -808332,7 +808447,7 @@ async function initBridgeCore(params) {
808332
808447
  const rawApi = createBridgeApiClient({
808333
808448
  baseUrl,
808334
808449
  getAccessToken,
808335
- runnerVersion: "1.82.1",
808450
+ runnerVersion: "1.82.2",
808336
808451
  onDebug: logForDebugging,
808337
808452
  onAuth401,
808338
808453
  getTrustedDeviceToken
@@ -817810,7 +817925,7 @@ function getAgUiCapabilities() {
817810
817925
  name: "UR-Nexus",
817811
817926
  type: "ur-nexus",
817812
817927
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
817813
- version: "1.82.1",
817928
+ version: "1.82.2",
817814
817929
  provider: "UR",
817815
817930
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
817816
817931
  },
@@ -819037,7 +819152,7 @@ function createMCPServer(cwd4, debug2, verbose) {
819037
819152
  };
819038
819153
  const server2 = new Server({
819039
819154
  name: "ur-nexus",
819040
- version: "1.82.1"
819155
+ version: "1.82.2"
819041
819156
  }, {
819042
819157
  capabilities: {
819043
819158
  tools: {}
@@ -820241,7 +820356,7 @@ function thrownResponse(error40) {
820241
820356
  }
820242
820357
  async function createUrMcp2026Runtime(options5) {
820243
820358
  const server2 = createMCPServer(options5.cwd, options5.debug === true, options5.verbose === true);
820244
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.82.1" }, { capabilities: {} });
820359
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.82.2" }, { capabilities: {} });
820245
820360
  const [clientTransport, serverTransport] = createLinkedTransportPair();
820246
820361
  try {
820247
820362
  await server2.connect(serverTransport);
@@ -820252,7 +820367,7 @@ async function createUrMcp2026Runtime(options5) {
820252
820367
  }
820253
820368
  const runtime2 = new Mcp2026Runtime({
820254
820369
  cwd: options5.cwd,
820255
- version: "1.82.1",
820370
+ version: "1.82.2",
820256
820371
  backend: {
820257
820372
  listTools: async () => {
820258
820373
  const listed = await client2.listTools();
@@ -822987,7 +823102,7 @@ async function update() {
822987
823102
  logEvent("tengu_update_check", {});
822988
823103
  const diagnostic2 = await getDoctorDiagnostic();
822989
823104
  const result = await checkUpgradeStatus({
822990
- currentVersion: "1.82.1",
823105
+ currentVersion: "1.82.2",
822991
823106
  packageName: UR_AGENT_PACKAGE_NAME,
822992
823107
  installationType: diagnostic2.installationType,
822993
823108
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -824315,7 +824430,7 @@ ${customInstructions}` : customInstructions;
824315
824430
  }
824316
824431
  }
824317
824432
  logForDiagnosticsNoPII("info", "started", {
824318
- version: "1.82.1",
824433
+ version: "1.82.2",
824319
824434
  is_native_binary: isInBundledMode()
824320
824435
  });
824321
824436
  registerCleanup(async () => {
@@ -825102,7 +825217,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
825102
825217
  pendingHookMessages
825103
825218
  }, renderAndRun);
825104
825219
  }
825105
- }).version("1.82.1 (UR-Nexus)", "-v, --version", "Output the version number");
825220
+ }).version("1.82.2 (UR-Nexus)", "-v, --version", "Output the version number");
825106
825221
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
825107
825222
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
825108
825223
  if (canUserConfigureAdvisor()) {
@@ -826229,7 +826344,7 @@ if (false) {}
826229
826344
  async function main2() {
826230
826345
  const args = process.argv.slice(2);
826231
826346
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
826232
- console.log(`${"1.82.1"} (UR-Nexus)`);
826347
+ console.log(`${"1.82.2"} (UR-Nexus)`);
826233
826348
  return;
826234
826349
  }
826235
826350
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {