ur-agent 1.81.5 → 1.81.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/README.md +16 -4
- package/dist/cli.js +614 -316
- package/docs/AGENT_FEATURES.md +17 -0
- package/docs/VALIDATION.md +8 -2
- package/docs/providers.md +24 -12
- package/documentation/index.html +1 -1
- package/extensions/jetbrains-ur/build.gradle.kts +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -53776,6 +53776,7 @@ __export(exports_providerRegistry, {
|
|
|
53776
53776
|
formatProviderList: () => formatProviderList,
|
|
53777
53777
|
formatProviderDoctor: () => formatProviderDoctor,
|
|
53778
53778
|
formatInvalidProviderModelMessage: () => formatInvalidProviderModelMessage,
|
|
53779
|
+
ensureProviderReasoningCapabilitiesForModel: () => ensureProviderReasoningCapabilitiesForModel,
|
|
53779
53780
|
ensureProviderModelsFresh: () => ensureProviderModelsFresh,
|
|
53780
53781
|
doctorProvider: () => doctorProvider,
|
|
53781
53782
|
doctorActiveProvider: () => doctorActiveProvider,
|
|
@@ -54858,6 +54859,21 @@ function modelDefinitionsFromNames(provider, names, source) {
|
|
|
54858
54859
|
description: source === "cache" ? `Cached ${providerName} model` : `Discovered from ${providerName}`
|
|
54859
54860
|
}));
|
|
54860
54861
|
}
|
|
54862
|
+
function modelDefinitionsFromDiscovered(models) {
|
|
54863
|
+
return models.map((model) => ({
|
|
54864
|
+
id: model.id,
|
|
54865
|
+
displayName: model.displayName,
|
|
54866
|
+
description: model.description,
|
|
54867
|
+
pricing: model.pricing,
|
|
54868
|
+
...model.contextLength ? { contextLength: model.contextLength } : {},
|
|
54869
|
+
...model.outputTokenLimit ? { outputTokenLimit: model.outputTokenLimit } : {},
|
|
54870
|
+
...model.supportedParameters ? { supportedParameters: model.supportedParameters } : {},
|
|
54871
|
+
...model.capabilities ? { capabilities: model.capabilities } : {},
|
|
54872
|
+
...model.reasoning ? { reasoning: model.reasoning } : {},
|
|
54873
|
+
...model.expirationDate ? { expirationDate: model.expirationDate } : {},
|
|
54874
|
+
...model.deprecated ? { deprecated: true } : {}
|
|
54875
|
+
}));
|
|
54876
|
+
}
|
|
54861
54877
|
function providerModelCacheKey(provider, settings = getInitialSettings()) {
|
|
54862
54878
|
const definition = getProviderDefinition(provider);
|
|
54863
54879
|
let endpoint = providerBaseUrl(provider, definition, settings);
|
|
@@ -54911,6 +54927,97 @@ function getProviderReasoningCapabilitiesForModel(model, provider = getRuntimePr
|
|
|
54911
54927
|
const match = known.find((entry) => entry.id.toLowerCase() === wanted) ?? known.find((entry) => wanted.includes(entry.id.toLowerCase()));
|
|
54912
54928
|
return match?.reasoning;
|
|
54913
54929
|
}
|
|
54930
|
+
function providerPropsUrl(baseUrl, model) {
|
|
54931
|
+
const url3 = new URL(normalizeBaseUrl(baseUrl));
|
|
54932
|
+
url3.hash = "";
|
|
54933
|
+
url3.search = "";
|
|
54934
|
+
let path8 = url3.pathname.replace(/\/+$/, "");
|
|
54935
|
+
path8 = path8.replace(/\/(?:v\d+(?:beta)?|api\/v\d+)$/i, "");
|
|
54936
|
+
path8 = path8.replace(/\/(?:chat\/completions|models|props)$/i, "");
|
|
54937
|
+
url3.pathname = `${path8}/props`;
|
|
54938
|
+
url3.searchParams.set("model", model);
|
|
54939
|
+
return url3.toString();
|
|
54940
|
+
}
|
|
54941
|
+
function reasoningCapabilitiesFromProps(value) {
|
|
54942
|
+
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
54943
|
+
return;
|
|
54944
|
+
}
|
|
54945
|
+
const root2 = value;
|
|
54946
|
+
const explicit = parseModelReasoningCapabilities(root2.reasoning) ?? parseModelReasoningCapabilities(root2.meta && typeof root2.meta === "object" ? root2.meta.reasoning : undefined) ?? parseModelReasoningCapabilities({
|
|
54947
|
+
supported_efforts: root2.supported_efforts,
|
|
54948
|
+
default_effort: root2.default_effort
|
|
54949
|
+
});
|
|
54950
|
+
if (explicit)
|
|
54951
|
+
return explicit;
|
|
54952
|
+
const caps = root2.chat_template_caps && typeof root2.chat_template_caps === "object" ? root2.chat_template_caps : undefined;
|
|
54953
|
+
if (caps?.supports_reasoning_effort === true) {
|
|
54954
|
+
return { supportedEfforts: null };
|
|
54955
|
+
}
|
|
54956
|
+
if (caps?.supports_reasoning_effort === false) {
|
|
54957
|
+
return { supportedEfforts: [] };
|
|
54958
|
+
}
|
|
54959
|
+
return;
|
|
54960
|
+
}
|
|
54961
|
+
function rememberProviderModelReasoning(provider, model, reasoning, settings) {
|
|
54962
|
+
const key = providerModelCacheKey(provider, settings);
|
|
54963
|
+
const existing = cachedModelsByProvider.get(key) ?? [];
|
|
54964
|
+
const wanted = model.trim().toLowerCase();
|
|
54965
|
+
let found = false;
|
|
54966
|
+
const updated = existing.map((entry) => {
|
|
54967
|
+
if (entry.id.toLowerCase() !== wanted)
|
|
54968
|
+
return entry;
|
|
54969
|
+
found = true;
|
|
54970
|
+
return { ...entry, reasoning };
|
|
54971
|
+
});
|
|
54972
|
+
if (!found) {
|
|
54973
|
+
updated.push({
|
|
54974
|
+
id: model,
|
|
54975
|
+
displayName: model,
|
|
54976
|
+
description: `Discovered from ${getProviderDefinition(provider).displayName}`,
|
|
54977
|
+
reasoning
|
|
54978
|
+
});
|
|
54979
|
+
}
|
|
54980
|
+
rememberModels(key, updated);
|
|
54981
|
+
}
|
|
54982
|
+
async function ensureProviderReasoningCapabilitiesForModel(providerId, model, options = {}) {
|
|
54983
|
+
const provider = resolveProviderId(providerId);
|
|
54984
|
+
if (!provider)
|
|
54985
|
+
return;
|
|
54986
|
+
const settings = options.settings ?? getInitialSettings();
|
|
54987
|
+
const cached2 = getProviderReasoningCapabilitiesForModel(model, provider, settings);
|
|
54988
|
+
if (cached2 !== undefined)
|
|
54989
|
+
return cached2;
|
|
54990
|
+
if (provider !== "llama.cpp") {
|
|
54991
|
+
await ensureProviderModelsFresh(provider, options);
|
|
54992
|
+
return getProviderReasoningCapabilitiesForModel(model, provider, settings);
|
|
54993
|
+
}
|
|
54994
|
+
const definition = getProviderDefinition(provider);
|
|
54995
|
+
const baseUrl = providerBaseUrl(provider, definition, settings);
|
|
54996
|
+
if (!baseUrl)
|
|
54997
|
+
return;
|
|
54998
|
+
const env4 = options.adapters?.env ?? process.env;
|
|
54999
|
+
const fetchImpl = options.adapters?.fetch ?? fetch;
|
|
55000
|
+
let apiKey = definition.envKey ? env4[definition.envKey] : undefined;
|
|
55001
|
+
if (!apiKey) {
|
|
55002
|
+
try {
|
|
55003
|
+
const credentials = await Promise.resolve().then(() => (init_providerCredentials(), exports_providerCredentials));
|
|
55004
|
+
apiKey = credentials.getProviderApiKey(provider, { env: env4 });
|
|
55005
|
+
} catch {}
|
|
55006
|
+
}
|
|
55007
|
+
const response = await fetchImpl(providerPropsUrl(baseUrl, model), {
|
|
55008
|
+
method: "GET",
|
|
55009
|
+
signal: options.signal,
|
|
55010
|
+
...apiKey ? { headers: { Authorization: `Bearer ${apiKey}` } } : {}
|
|
55011
|
+
});
|
|
55012
|
+
if (!response.ok) {
|
|
55013
|
+
throw new Error(`llama.cpp /props returned HTTP ${response.status}.`);
|
|
55014
|
+
}
|
|
55015
|
+
const reasoning = reasoningCapabilitiesFromProps(await response.json().catch(() => null));
|
|
55016
|
+
if (reasoning) {
|
|
55017
|
+
rememberProviderModelReasoning(provider, model, reasoning, settings);
|
|
55018
|
+
}
|
|
55019
|
+
return reasoning;
|
|
55020
|
+
}
|
|
54914
55021
|
function cacheProviderModelsForProvider(providerId, models, settings = getInitialSettings()) {
|
|
54915
55022
|
const provider = resolveProviderId(providerId);
|
|
54916
55023
|
if (!provider) {
|
|
@@ -55015,9 +55122,9 @@ async function discoverLiveModelsForProvider(provider, options = {}) {
|
|
|
55015
55122
|
}
|
|
55016
55123
|
reachedOk = true;
|
|
55017
55124
|
const body = await response.json().catch(() => null);
|
|
55018
|
-
const
|
|
55019
|
-
if (
|
|
55020
|
-
return
|
|
55125
|
+
const discovered = parseDiscoveredModels(body, getProviderDefinition(provider).displayName);
|
|
55126
|
+
if (discovered.length > 0) {
|
|
55127
|
+
return modelDefinitionsFromDiscovered(discovered);
|
|
55021
55128
|
}
|
|
55022
55129
|
}
|
|
55023
55130
|
if (!reachedOk && lastError) {
|
|
@@ -55152,20 +55259,7 @@ async function discoverApiProviderModels(provider, definition, options) {
|
|
|
55152
55259
|
}
|
|
55153
55260
|
} while (next);
|
|
55154
55261
|
const providerLabel = getProviderDefinition(provider).displayName;
|
|
55155
|
-
|
|
55156
|
-
return discovered.map((model) => ({
|
|
55157
|
-
id: model.id,
|
|
55158
|
-
displayName: model.displayName,
|
|
55159
|
-
description: model.description,
|
|
55160
|
-
pricing: model.pricing,
|
|
55161
|
-
...model.contextLength ? { contextLength: model.contextLength } : {},
|
|
55162
|
-
...model.outputTokenLimit ? { outputTokenLimit: model.outputTokenLimit } : {},
|
|
55163
|
-
...model.supportedParameters ? { supportedParameters: model.supportedParameters } : {},
|
|
55164
|
-
...model.capabilities ? { capabilities: model.capabilities } : {},
|
|
55165
|
-
...model.reasoning ? { reasoning: model.reasoning } : {},
|
|
55166
|
-
...model.expirationDate ? { expirationDate: model.expirationDate } : {},
|
|
55167
|
-
...model.deprecated ? { deprecated: true } : {}
|
|
55168
|
-
}));
|
|
55262
|
+
return modelDefinitionsFromDiscovered(parseDiscoveredModels({ data: entries }, providerLabel));
|
|
55169
55263
|
}
|
|
55170
55264
|
async function listModelsForProviderWithSource(providerId, options = {}) {
|
|
55171
55265
|
const provider = resolveProviderId(providerId);
|
|
@@ -90880,55 +90974,57 @@ var init_thinking = __esm(() => {
|
|
|
90880
90974
|
});
|
|
90881
90975
|
|
|
90882
90976
|
// src/utils/effort.ts
|
|
90883
|
-
function
|
|
90977
|
+
function normalizeEffortLevels(values) {
|
|
90978
|
+
const advertised = new Set(values.map((value) => value.trim().toLowerCase()).filter(isEffortLevel));
|
|
90979
|
+
return EFFORT_LEVELS.filter((level) => advertised.has(level));
|
|
90980
|
+
}
|
|
90981
|
+
function getSupportedEffortLevelsForModel(model, provider = getRuntimeProvider()) {
|
|
90884
90982
|
if (isEnvTruthy(process.env.UR_CODE_ALWAYS_ENABLE_EFFORT)) {
|
|
90885
|
-
return
|
|
90983
|
+
return [...EFFORT_LEVELS];
|
|
90886
90984
|
}
|
|
90887
90985
|
const supported3P = get3PModelCapabilityOverride(model, "effort");
|
|
90888
|
-
if (supported3P
|
|
90889
|
-
return
|
|
90890
|
-
|
|
90986
|
+
if (supported3P === false)
|
|
90987
|
+
return [];
|
|
90988
|
+
const supportsExtendedEffort = get3PModelCapabilityOverride(model, "max_effort") !== false;
|
|
90989
|
+
const applyOverrides = (levels) => supportsExtendedEffort ? [...levels] : levels.filter((level) => level !== "xhigh" && level !== "max");
|
|
90891
90990
|
const discovered = getRuntimeModelReasoningCapabilities(model, provider);
|
|
90892
|
-
if (discovered?.supportedEfforts === null)
|
|
90893
|
-
return
|
|
90991
|
+
if (discovered?.supportedEfforts === null) {
|
|
90992
|
+
return applyOverrides(EFFORT_LEVELS);
|
|
90993
|
+
}
|
|
90894
90994
|
if (discovered?.supportedEfforts !== undefined) {
|
|
90895
|
-
return discovered.supportedEfforts
|
|
90995
|
+
return applyOverrides(normalizeEffortLevels(discovered.supportedEfforts));
|
|
90896
90996
|
}
|
|
90897
90997
|
if (discovered && provider === "openrouter") {
|
|
90898
|
-
return
|
|
90998
|
+
return applyOverrides(EFFORT_LEVELS);
|
|
90899
90999
|
}
|
|
90900
|
-
|
|
90901
|
-
|
|
90902
|
-
function modelSupportsMaxEffort(model, provider = getRuntimeProvider()) {
|
|
90903
|
-
const supported3P = get3PModelCapabilityOverride(model, "max_effort");
|
|
90904
|
-
if (supported3P !== undefined) {
|
|
90905
|
-
return supported3P;
|
|
90906
|
-
}
|
|
90907
|
-
const discovered = getRuntimeModelReasoningCapabilities(model, provider);
|
|
90908
|
-
if (discovered?.supportedEfforts === null)
|
|
90909
|
-
return true;
|
|
90910
|
-
if (discovered?.supportedEfforts !== undefined) {
|
|
90911
|
-
return provider === "openrouter" || discovered.supportedEfforts.some((effort) => effort === "max" || effort === "xhigh");
|
|
91000
|
+
if (provider === "ollama" && OLLAMA_GRADED_THINK_MODEL_RE.test(model)) {
|
|
91001
|
+
return ["low", "medium", "high"];
|
|
90912
91002
|
}
|
|
90913
|
-
if (
|
|
90914
|
-
return true;
|
|
91003
|
+
if (supported3P === true) {
|
|
91004
|
+
return get3PModelCapabilityOverride(model, "max_effort") === true ? [...EFFORT_LEVELS] : ["low", "medium", "high"];
|
|
90915
91005
|
}
|
|
90916
91006
|
if (process.env.USER_TYPE === "ant" && resolveAntModel(model)) {
|
|
90917
|
-
return
|
|
91007
|
+
return applyOverrides(EFFORT_LEVELS);
|
|
90918
91008
|
}
|
|
90919
|
-
return
|
|
91009
|
+
return [];
|
|
91010
|
+
}
|
|
91011
|
+
function resolveProviderEffortLevel(model, requested, provider = getRuntimeProvider()) {
|
|
91012
|
+
const supported = getSupportedEffortLevelsForModel(model, provider);
|
|
91013
|
+
if (supported.length === 0)
|
|
91014
|
+
return;
|
|
91015
|
+
if (requested === "max")
|
|
91016
|
+
return supported.at(-1);
|
|
91017
|
+
if (supported.includes(requested))
|
|
91018
|
+
return requested;
|
|
91019
|
+
const requestedIndex = EFFORT_LEVELS.indexOf(requested);
|
|
91020
|
+
const notHigher = supported.filter((level) => EFFORT_LEVELS.indexOf(level) <= requestedIndex);
|
|
91021
|
+
return notHigher.at(-1) ?? supported[0];
|
|
91022
|
+
}
|
|
91023
|
+
function modelSupportsEffort(model, provider = getRuntimeProvider()) {
|
|
91024
|
+
return getSupportedEffortLevelsForModel(model, provider).length > 0;
|
|
90920
91025
|
}
|
|
90921
91026
|
function toOpenRouterReasoningEffort(model, effort) {
|
|
90922
|
-
|
|
90923
|
-
if (effort !== "max")
|
|
90924
|
-
return effort;
|
|
90925
|
-
if (supported === null || supported === undefined)
|
|
90926
|
-
return "max";
|
|
90927
|
-
if (supported.includes("max"))
|
|
90928
|
-
return "max";
|
|
90929
|
-
if (supported.includes("xhigh"))
|
|
90930
|
-
return "xhigh";
|
|
90931
|
-
return "high";
|
|
91027
|
+
return resolveProviderEffortLevel(model, effort, "openrouter") ?? (effort === "max" ? "high" : effort);
|
|
90932
91028
|
}
|
|
90933
91029
|
function isEffortLevel(value) {
|
|
90934
91030
|
return EFFORT_LEVELS.includes(value);
|
|
@@ -90951,7 +91047,7 @@ function parseEffortValue(value) {
|
|
|
90951
91047
|
return;
|
|
90952
91048
|
}
|
|
90953
91049
|
function toPersistableEffort(value) {
|
|
90954
|
-
if (value === "low" || value === "medium" || value === "high") {
|
|
91050
|
+
if (value === "minimal" || value === "low" || value === "medium" || value === "high" || value === "xhigh") {
|
|
90955
91051
|
return value;
|
|
90956
91052
|
}
|
|
90957
91053
|
if (value === "max" && process.env.USER_TYPE === "ant") {
|
|
@@ -90975,11 +91071,10 @@ function resolveAppliedEffort(model, appStateEffortValue, provider = getRuntimeP
|
|
|
90975
91071
|
if (envOverride === null) {
|
|
90976
91072
|
return;
|
|
90977
91073
|
}
|
|
90978
|
-
const resolved = envOverride ?? appStateEffortValue ?? getDefaultEffortForModel(model);
|
|
90979
|
-
if (resolved ===
|
|
90980
|
-
return
|
|
90981
|
-
|
|
90982
|
-
return resolved;
|
|
91074
|
+
const resolved = envOverride ?? appStateEffortValue ?? getDefaultEffortForModel(model, provider);
|
|
91075
|
+
if (resolved === undefined || typeof resolved === "number")
|
|
91076
|
+
return resolved;
|
|
91077
|
+
return resolveProviderEffortLevel(model, resolved, provider);
|
|
90983
91078
|
}
|
|
90984
91079
|
function getDisplayedEffortLevel(model, appStateEffort, provider = getRuntimeProvider()) {
|
|
90985
91080
|
const resolved = resolveAppliedEffort(model, appStateEffort, provider) ?? "high";
|
|
@@ -91013,12 +91108,16 @@ function convertEffortValueToLevel(value) {
|
|
|
91013
91108
|
}
|
|
91014
91109
|
function getEffortLevelDescription(level) {
|
|
91015
91110
|
switch (level) {
|
|
91111
|
+
case "minimal":
|
|
91112
|
+
return "Minimal reasoning for the lowest latency and cost";
|
|
91016
91113
|
case "low":
|
|
91017
91114
|
return "Quick, straightforward implementation with minimal overhead";
|
|
91018
91115
|
case "medium":
|
|
91019
91116
|
return "Balanced approach with standard implementation and testing";
|
|
91020
91117
|
case "high":
|
|
91021
91118
|
return "Comprehensive implementation with extensive testing and documentation";
|
|
91119
|
+
case "xhigh":
|
|
91120
|
+
return "Extended reasoning above high where the provider supports it";
|
|
91022
91121
|
case "max":
|
|
91023
91122
|
return "Maximum capability with deepest reasoning";
|
|
91024
91123
|
}
|
|
@@ -91039,7 +91138,11 @@ function getmodelODefaultEffortConfig() {
|
|
|
91039
91138
|
...config2
|
|
91040
91139
|
};
|
|
91041
91140
|
}
|
|
91042
|
-
function getDefaultEffortForModel(model) {
|
|
91141
|
+
function getDefaultEffortForModel(model, provider = getRuntimeProvider()) {
|
|
91142
|
+
const providerDefault = getRuntimeModelReasoningCapabilities(model, provider)?.defaultEffort;
|
|
91143
|
+
if (providerDefault && isEffortLevel(providerDefault)) {
|
|
91144
|
+
return resolveProviderEffortLevel(model, providerDefault, provider);
|
|
91145
|
+
}
|
|
91043
91146
|
if (process.env.USER_TYPE === "ant") {
|
|
91044
91147
|
const config2 = getAntModelOverrideConfig();
|
|
91045
91148
|
const isDefaultModel = config2?.defaultModel !== undefined && model.toLowerCase() === config2.defaultModel.toLowerCase();
|
|
@@ -91057,7 +91160,7 @@ function getDefaultEffortForModel(model) {
|
|
|
91057
91160
|
}
|
|
91058
91161
|
return;
|
|
91059
91162
|
}
|
|
91060
|
-
if (modelSupportsEffort(model)) {
|
|
91163
|
+
if (modelSupportsEffort(model, provider)) {
|
|
91061
91164
|
if (isProSubscriber()) {
|
|
91062
91165
|
return "medium";
|
|
91063
91166
|
}
|
|
@@ -91065,12 +91168,12 @@ function getDefaultEffortForModel(model) {
|
|
|
91065
91168
|
return "medium";
|
|
91066
91169
|
}
|
|
91067
91170
|
}
|
|
91068
|
-
if (isUltrathinkEnabled() && modelSupportsEffort(model)) {
|
|
91171
|
+
if (isUltrathinkEnabled() && modelSupportsEffort(model, provider)) {
|
|
91069
91172
|
return "medium";
|
|
91070
91173
|
}
|
|
91071
91174
|
return;
|
|
91072
91175
|
}
|
|
91073
|
-
var EFFORT_LEVELS, MODELO_DEFAULT_EFFORT_CONFIG_DEFAULT;
|
|
91176
|
+
var EFFORT_LEVELS, OLLAMA_GRADED_THINK_MODEL_RE, MODELO_DEFAULT_EFFORT_CONFIG_DEFAULT;
|
|
91074
91177
|
var init_effort = __esm(() => {
|
|
91075
91178
|
init_thinking();
|
|
91076
91179
|
init_settings2();
|
|
@@ -91081,11 +91184,14 @@ var init_effort = __esm(() => {
|
|
|
91081
91184
|
init_envUtils();
|
|
91082
91185
|
init_antModels();
|
|
91083
91186
|
EFFORT_LEVELS = [
|
|
91187
|
+
"minimal",
|
|
91084
91188
|
"low",
|
|
91085
91189
|
"medium",
|
|
91086
91190
|
"high",
|
|
91191
|
+
"xhigh",
|
|
91087
91192
|
"max"
|
|
91088
91193
|
];
|
|
91194
|
+
OLLAMA_GRADED_THINK_MODEL_RE = /gpt-oss/i;
|
|
91089
91195
|
MODELO_DEFAULT_EFFORT_CONFIG_DEFAULT = {
|
|
91090
91196
|
enabled: true,
|
|
91091
91197
|
dialogTitle: "We recommend medium effort for modelO",
|
|
@@ -92658,6 +92764,7 @@ import { randomUUID as randomUUID5 } from "crypto";
|
|
|
92658
92764
|
async function createOpenAICompatibleClient(options) {
|
|
92659
92765
|
const endpoint = normalizeOpenAICompatibleBaseUrl(options.baseUrl);
|
|
92660
92766
|
const maxRetries = options.maxRetries;
|
|
92767
|
+
const providerId = options.providerId ?? "openai-compatible";
|
|
92661
92768
|
async function doRequest(params, requestOptions) {
|
|
92662
92769
|
const response = await fetchWithProviderReliability(endpoint, {
|
|
92663
92770
|
method: "POST",
|
|
@@ -92666,7 +92773,7 @@ async function createOpenAICompatibleClient(options) {
|
|
|
92666
92773
|
...options.apiKey ? { Authorization: `Bearer ${options.apiKey}` } : {},
|
|
92667
92774
|
...requestOptions?.headers ?? {}
|
|
92668
92775
|
},
|
|
92669
|
-
body: JSON.stringify(toOpenAICompatibleRequest(params))
|
|
92776
|
+
body: JSON.stringify(toOpenAICompatibleRequest(params, providerId))
|
|
92670
92777
|
}, {
|
|
92671
92778
|
maxRetries,
|
|
92672
92779
|
timeoutMs: requestOptions?.timeoutMs,
|
|
@@ -92689,7 +92796,7 @@ async function createOpenAICompatibleClient(options) {
|
|
|
92689
92796
|
...options.apiKey ? { Authorization: `Bearer ${options.apiKey}` } : {},
|
|
92690
92797
|
...requestOptions?.headers ?? {}
|
|
92691
92798
|
},
|
|
92692
|
-
body: JSON.stringify(toOpenAICompatibleRequest({ ...params, stream: true }))
|
|
92799
|
+
body: JSON.stringify(toOpenAICompatibleRequest({ ...params, stream: true }, providerId))
|
|
92693
92800
|
}, {
|
|
92694
92801
|
maxRetries,
|
|
92695
92802
|
timeoutMs: requestOptions?.timeoutMs,
|
|
@@ -92747,7 +92854,7 @@ function toOpenAICompatibleRequest(params, providerName = "openai-compatible") {
|
|
|
92747
92854
|
const openRouterReasoning = providerName === "openrouter" && reasoningEffort ? {
|
|
92748
92855
|
effort: toOpenRouterReasoningEffort(String(params.model ?? ""), reasoningEffort)
|
|
92749
92856
|
} : undefined;
|
|
92750
|
-
const compatibleReasoningEffort = reasoningEffort
|
|
92857
|
+
const compatibleReasoningEffort = reasoningEffort;
|
|
92751
92858
|
const openRouterServerSearch = providerName === "openrouter" && tools.some((tool) => tool?.type === "openrouter:web_search");
|
|
92752
92859
|
const toolChoice = openRouterServerSearch ? undefined : mapOpenAIToolChoice(params.tool_choice);
|
|
92753
92860
|
return {
|
|
@@ -92780,7 +92887,7 @@ function toOpenAIResponseFormat(format4) {
|
|
|
92780
92887
|
}
|
|
92781
92888
|
function toOpenAIReasoningEffort(params) {
|
|
92782
92889
|
const requested = params.output_config?.effort;
|
|
92783
|
-
if (requested === "low" || requested === "medium" || requested === "high" || requested === "max") {
|
|
92890
|
+
if (requested === "minimal" || requested === "low" || requested === "medium" || requested === "high" || requested === "xhigh" || requested === "max") {
|
|
92784
92891
|
return requested;
|
|
92785
92892
|
}
|
|
92786
92893
|
if (params.thinking?.type === "adaptive")
|
|
@@ -93736,11 +93843,9 @@ function structuredTextConfig(outputConfig) {
|
|
|
93736
93843
|
}
|
|
93737
93844
|
function reasoningConfig(params) {
|
|
93738
93845
|
const requested = params.output_config?.effort;
|
|
93739
|
-
if (requested === "low" || requested === "medium" || requested === "high") {
|
|
93846
|
+
if (requested === "minimal" || requested === "low" || requested === "medium" || requested === "high" || requested === "xhigh" || requested === "max") {
|
|
93740
93847
|
return { effort: requested };
|
|
93741
93848
|
}
|
|
93742
|
-
if (requested === "max")
|
|
93743
|
-
return { effort: "high" };
|
|
93744
93849
|
if (params.thinking?.type === "adaptive")
|
|
93745
93850
|
return { effort: "medium" };
|
|
93746
93851
|
if (params.thinking?.type !== "enabled")
|
|
@@ -95655,7 +95760,8 @@ async function createOpenAICompatibleProviderClient(providerId, options = {}) {
|
|
|
95655
95760
|
return await createOpenAICompatibleClient2({
|
|
95656
95761
|
baseUrl,
|
|
95657
95762
|
apiKey,
|
|
95658
|
-
maxRetries: options.maxRetries ?? 3
|
|
95763
|
+
maxRetries: options.maxRetries ?? 3,
|
|
95764
|
+
providerId
|
|
95659
95765
|
});
|
|
95660
95766
|
}
|
|
95661
95767
|
async function createSubscriptionClient(providerId, options = {}) {
|
|
@@ -108252,7 +108358,7 @@ var init_auth = __esm(() => {
|
|
|
108252
108358
|
|
|
108253
108359
|
// src/utils/userAgent.ts
|
|
108254
108360
|
function getURCodeUserAgent() {
|
|
108255
|
-
return `ur/${"1.81.
|
|
108361
|
+
return `ur/${"1.81.8"}`;
|
|
108256
108362
|
}
|
|
108257
108363
|
|
|
108258
108364
|
// src/utils/workloadContext.ts
|
|
@@ -108274,7 +108380,7 @@ function getUserAgent() {
|
|
|
108274
108380
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
108275
108381
|
const workload = getWorkload();
|
|
108276
108382
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
108277
|
-
return `ur-cli/${"1.81.
|
|
108383
|
+
return `ur-cli/${"1.81.8"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
108278
108384
|
}
|
|
108279
108385
|
function getMCPUserAgent() {
|
|
108280
108386
|
const parts = [];
|
|
@@ -108288,7 +108394,7 @@ function getMCPUserAgent() {
|
|
|
108288
108394
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
108289
108395
|
}
|
|
108290
108396
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
108291
|
-
return `ur/${"1.81.
|
|
108397
|
+
return `ur/${"1.81.8"}${suffix}`;
|
|
108292
108398
|
}
|
|
108293
108399
|
function getWebFetchUserAgent() {
|
|
108294
108400
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -108426,7 +108532,7 @@ var init_user = __esm(() => {
|
|
|
108426
108532
|
deviceId,
|
|
108427
108533
|
sessionId: getSessionId(),
|
|
108428
108534
|
email: getEmail(),
|
|
108429
|
-
appVersion: "1.81.
|
|
108535
|
+
appVersion: "1.81.8",
|
|
108430
108536
|
platform: getHostPlatformForAnalytics(),
|
|
108431
108537
|
organizationUuid,
|
|
108432
108538
|
accountUuid,
|
|
@@ -116313,7 +116419,7 @@ var init_metadata = __esm(() => {
|
|
|
116313
116419
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
116314
116420
|
WHITESPACE_REGEX = /\s+/;
|
|
116315
116421
|
getVersionBase = memoize_default(() => {
|
|
116316
|
-
const match = "1.81.
|
|
116422
|
+
const match = "1.81.8".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
116317
116423
|
return match ? match[0] : undefined;
|
|
116318
116424
|
});
|
|
116319
116425
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -116353,7 +116459,7 @@ var init_metadata = __esm(() => {
|
|
|
116353
116459
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
116354
116460
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
116355
116461
|
isURAiAuth: isURAISubscriber(),
|
|
116356
|
-
version: "1.81.
|
|
116462
|
+
version: "1.81.8",
|
|
116357
116463
|
versionBase: getVersionBase(),
|
|
116358
116464
|
buildTime: "",
|
|
116359
116465
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -117023,7 +117129,7 @@ function initialize1PEventLogging() {
|
|
|
117023
117129
|
const platform2 = getPlatform();
|
|
117024
117130
|
const attributes = {
|
|
117025
117131
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
117026
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.81.
|
|
117132
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.81.8"
|
|
117027
117133
|
};
|
|
117028
117134
|
if (platform2 === "wsl") {
|
|
117029
117135
|
const wslVersion = getWslVersion();
|
|
@@ -117051,7 +117157,7 @@ function initialize1PEventLogging() {
|
|
|
117051
117157
|
})
|
|
117052
117158
|
]
|
|
117053
117159
|
});
|
|
117054
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.81.
|
|
117160
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.81.8");
|
|
117055
117161
|
}
|
|
117056
117162
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
117057
117163
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -119632,7 +119738,7 @@ var init_types2 = __esm(() => {
|
|
|
119632
119738
|
syntaxHighlightingDisabled: exports_external.boolean().optional().describe("Whether to disable syntax highlighting in diffs"),
|
|
119633
119739
|
terminalTitleFromRename: exports_external.boolean().optional().describe("Whether /rename updates the terminal tab title (defaults to true). Set to false to keep auto-generated topic titles."),
|
|
119634
119740
|
alwaysThinkingEnabled: exports_external.boolean().optional().describe("When false, thinking is disabled. When absent or true, thinking is " + "enabled automatically for supported models."),
|
|
119635
|
-
effortLevel: exports_external.enum(process.env.USER_TYPE === "ant" ? ["low", "medium", "high", "max"] : ["low", "medium", "high"]).optional().catch(undefined).describe("Persisted effort level for supported models."),
|
|
119741
|
+
effortLevel: exports_external.enum(process.env.USER_TYPE === "ant" ? ["minimal", "low", "medium", "high", "xhigh", "max"] : ["minimal", "low", "medium", "high", "xhigh"]).optional().catch(undefined).describe("Persisted effort level for supported models."),
|
|
119636
119742
|
advisorModel: exports_external.string().optional().describe("Advisor model for the server-side advisor tool."),
|
|
119637
119743
|
fastMode: exports_external.boolean().optional().describe("When true, fast mode is enabled. When absent or false, fast mode is off."),
|
|
119638
119744
|
fastModePerSessionOptIn: exports_external.boolean().optional().describe("When true, fast mode does not persist across sessions. Each session starts with fast mode off."),
|
|
@@ -127017,7 +127123,7 @@ function formatA2AAgentCard(options = {}, pretty = true) {
|
|
|
127017
127123
|
function formatA2AV1AgentCard(options = {}, pretty = true) {
|
|
127018
127124
|
return JSON.stringify(buildA2AV1AgentCard(options), null, pretty ? 2 : 0);
|
|
127019
127125
|
}
|
|
127020
|
-
var urVersion = "1.81.
|
|
127126
|
+
var urVersion = "1.81.8", researchSnapshotDate = "2026-08-10", coverage, priorityRoadmap;
|
|
127021
127127
|
var init_trends = __esm(() => {
|
|
127022
127128
|
init_a2aCardSignature();
|
|
127023
127129
|
coverage = [
|
|
@@ -129907,7 +130013,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
129907
130013
|
if (!isAttributionHeaderEnabled()) {
|
|
129908
130014
|
return "";
|
|
129909
130015
|
}
|
|
129910
|
-
const version2 = `${"1.81.
|
|
130016
|
+
const version2 = `${"1.81.8"}.${fingerprint}`;
|
|
129911
130017
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
129912
130018
|
const cch = "";
|
|
129913
130019
|
const workload = getWorkload();
|
|
@@ -184828,7 +184934,7 @@ var init_projectSafety = __esm(() => {
|
|
|
184828
184934
|
function getInstruments() {
|
|
184829
184935
|
if (instruments)
|
|
184830
184936
|
return instruments;
|
|
184831
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.81.
|
|
184937
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.81.8");
|
|
184832
184938
|
instruments = {
|
|
184833
184939
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
184834
184940
|
description: "GenAI operation duration.",
|
|
@@ -184926,7 +185032,7 @@ function genAiAgentAttributes() {
|
|
|
184926
185032
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
184927
185033
|
"gen_ai.provider.name": "ur",
|
|
184928
185034
|
"gen_ai.agent.name": "UR-Nexus",
|
|
184929
|
-
"gen_ai.agent.version": "1.81.
|
|
185035
|
+
"gen_ai.agent.version": "1.81.8"
|
|
184930
185036
|
};
|
|
184931
185037
|
}
|
|
184932
185038
|
function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
@@ -184947,7 +185053,7 @@ function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
|
184947
185053
|
function startGenAiWorkflowSpan(workflowName, workflowRunId) {
|
|
184948
185054
|
const attributes = genAiWorkflowAttributes(workflowName, workflowRunId);
|
|
184949
185055
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
184950
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.
|
|
185056
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.8").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184951
185057
|
}
|
|
184952
185058
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
184953
185059
|
try {
|
|
@@ -184985,7 +185091,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
184985
185091
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
184986
185092
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
184987
185093
|
}
|
|
184988
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.
|
|
185094
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.8").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184989
185095
|
}
|
|
184990
185096
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
184991
185097
|
try {
|
|
@@ -278700,7 +278806,7 @@ function getTelemetryAttributes() {
|
|
|
278700
278806
|
attributes["session.id"] = sessionId;
|
|
278701
278807
|
}
|
|
278702
278808
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
278703
|
-
attributes["app.version"] = "1.81.
|
|
278809
|
+
attributes["app.version"] = "1.81.8";
|
|
278704
278810
|
}
|
|
278705
278811
|
const oauthAccount = getOauthAccountInfo();
|
|
278706
278812
|
if (oauthAccount) {
|
|
@@ -320104,7 +320210,7 @@ function getInstallationEnv() {
|
|
|
320104
320210
|
return;
|
|
320105
320211
|
}
|
|
320106
320212
|
function getURCodeVersion() {
|
|
320107
|
-
return "1.81.
|
|
320213
|
+
return "1.81.8";
|
|
320108
320214
|
}
|
|
320109
320215
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
320110
320216
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -327474,7 +327580,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
327474
327580
|
const client2 = new Client({
|
|
327475
327581
|
name: "ur",
|
|
327476
327582
|
title: "UR",
|
|
327477
|
-
version: "1.81.
|
|
327583
|
+
version: "1.81.8",
|
|
327478
327584
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
327479
327585
|
websiteUrl: PRODUCT_URL
|
|
327480
327586
|
}, {
|
|
@@ -327835,7 +327941,7 @@ var init_client5 = __esm(() => {
|
|
|
327835
327941
|
const client2 = new Client({
|
|
327836
327942
|
name: "ur",
|
|
327837
327943
|
title: "UR",
|
|
327838
|
-
version: "1.81.
|
|
327944
|
+
version: "1.81.8",
|
|
327839
327945
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
327840
327946
|
websiteUrl: PRODUCT_URL
|
|
327841
327947
|
}, {
|
|
@@ -340608,7 +340714,7 @@ async function createRuntime() {
|
|
|
340608
340714
|
bootstrapTelemetry();
|
|
340609
340715
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
340610
340716
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
340611
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.81.
|
|
340717
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.81.8"
|
|
340612
340718
|
}));
|
|
340613
340719
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
340614
340720
|
resource,
|
|
@@ -340641,11 +340747,11 @@ async function createRuntime() {
|
|
|
340641
340747
|
setMeterProvider(meterProvider);
|
|
340642
340748
|
setLoggerProvider(loggerProvider);
|
|
340643
340749
|
if (meterProvider) {
|
|
340644
|
-
const meter = meterProvider.getMeter("ur-agent", "1.81.
|
|
340750
|
+
const meter = meterProvider.getMeter("ur-agent", "1.81.8");
|
|
340645
340751
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
340646
340752
|
}
|
|
340647
340753
|
if (loggerProvider) {
|
|
340648
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.81.
|
|
340754
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.81.8"));
|
|
340649
340755
|
}
|
|
340650
340756
|
if (!cleanupRegistered3) {
|
|
340651
340757
|
cleanupRegistered3 = true;
|
|
@@ -341307,9 +341413,9 @@ async function assertMinVersion() {
|
|
|
341307
341413
|
if (false) {}
|
|
341308
341414
|
try {
|
|
341309
341415
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
341310
|
-
if (versionConfig.minVersion && lt("1.81.
|
|
341416
|
+
if (versionConfig.minVersion && lt("1.81.8", versionConfig.minVersion)) {
|
|
341311
341417
|
console.error(`
|
|
341312
|
-
It looks like your version of UR (${"1.81.
|
|
341418
|
+
It looks like your version of UR (${"1.81.8"}) needs an update.
|
|
341313
341419
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
341314
341420
|
|
|
341315
341421
|
To update, please run:
|
|
@@ -341525,7 +341631,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
341525
341631
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
341526
341632
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
341527
341633
|
pid: process.pid,
|
|
341528
|
-
currentVersion: "1.81.
|
|
341634
|
+
currentVersion: "1.81.8"
|
|
341529
341635
|
});
|
|
341530
341636
|
return "in_progress";
|
|
341531
341637
|
}
|
|
@@ -341534,7 +341640,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
341534
341640
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
341535
341641
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
341536
341642
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
341537
|
-
currentVersion: "1.81.
|
|
341643
|
+
currentVersion: "1.81.8"
|
|
341538
341644
|
});
|
|
341539
341645
|
console.error(`
|
|
341540
341646
|
Error: Windows NPM detected in WSL
|
|
@@ -342069,7 +342175,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
342069
342175
|
}
|
|
342070
342176
|
async function getDoctorDiagnostic() {
|
|
342071
342177
|
const installationType = await getCurrentInstallationType();
|
|
342072
|
-
const version2 = typeof MACRO !== "undefined" ? "1.81.
|
|
342178
|
+
const version2 = typeof MACRO !== "undefined" ? "1.81.8" : "unknown";
|
|
342073
342179
|
const installationPath = await getInstallationPath();
|
|
342074
342180
|
const invokedBinary = getInvokedBinary();
|
|
342075
342181
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -343004,8 +343110,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
343004
343110
|
const maxVersion = await getMaxVersion();
|
|
343005
343111
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
343006
343112
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
343007
|
-
if (gte("1.81.
|
|
343008
|
-
logForDebugging(`Native installer: current version ${"1.81.
|
|
343113
|
+
if (gte("1.81.8", maxVersion)) {
|
|
343114
|
+
logForDebugging(`Native installer: current version ${"1.81.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
343009
343115
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
343010
343116
|
latency_ms: Date.now() - startTime,
|
|
343011
343117
|
max_version: maxVersion,
|
|
@@ -343016,7 +343122,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
343016
343122
|
version2 = maxVersion;
|
|
343017
343123
|
}
|
|
343018
343124
|
}
|
|
343019
|
-
if (!forceReinstall && version2 === "1.81.
|
|
343125
|
+
if (!forceReinstall && version2 === "1.81.8" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
343020
343126
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
343021
343127
|
logEvent("tengu_native_update_complete", {
|
|
343022
343128
|
latency_ms: Date.now() - startTime,
|
|
@@ -346817,7 +346923,7 @@ var init_coreSchemas = __esm(() => {
|
|
|
346817
346923
|
displayName: exports_external.string().describe("Human-readable display name"),
|
|
346818
346924
|
description: exports_external.string().describe("Description of the model's capabilities"),
|
|
346819
346925
|
supportsEffort: exports_external.boolean().optional().describe("Whether this model supports effort levels"),
|
|
346820
|
-
supportedEffortLevels: exports_external.array(exports_external.enum(["low", "medium", "high", "max"])).optional().describe("Available effort levels for this model"),
|
|
346926
|
+
supportedEffortLevels: exports_external.array(exports_external.enum(["minimal", "low", "medium", "high", "xhigh", "max"])).optional().describe("Available effort levels for this model"),
|
|
346821
346927
|
supportsAdaptiveThinking: exports_external.boolean().optional().describe("Whether this model supports adaptive thinking (UR decides when and how much to think)"),
|
|
346822
346928
|
supportsFastMode: exports_external.boolean().optional().describe("Whether this model supports fast mode"),
|
|
346823
346929
|
supportsAutoMode: exports_external.boolean().optional().describe("Whether this model supports auto mode")
|
|
@@ -346847,7 +346953,10 @@ var init_coreSchemas = __esm(() => {
|
|
|
346847
346953
|
maxTurns: exports_external.number().int().positive().optional().describe("Maximum number of agentic turns (API round-trips) before stopping"),
|
|
346848
346954
|
background: exports_external.boolean().optional().describe("Run this agent as a background task (non-blocking, fire-and-forget) when invoked"),
|
|
346849
346955
|
memory: exports_external.enum(["user", "project", "local"]).optional().describe("Scope for auto-loading agent memory files. 'user' - ~/.ur/agent-memory/<agentType>/, 'project' - .ur/agent-memory/<agentType>/, 'local' - .ur/agent-memory-local/<agentType>/"),
|
|
346850
|
-
effort: exports_external.union([
|
|
346956
|
+
effort: exports_external.union([
|
|
346957
|
+
exports_external.enum(["minimal", "low", "medium", "high", "xhigh", "max"]),
|
|
346958
|
+
exports_external.number().int()
|
|
346959
|
+
]).optional().describe("Reasoning effort level for this agent. Either a named level or an integer"),
|
|
346851
346960
|
permissionMode: PermissionModeSchema().optional().describe("Permission mode controlling how tool executions are handled")
|
|
346852
346961
|
}).describe("Definition for a custom subagent that can be invoked via the Agent tool."));
|
|
346853
346962
|
SettingSourceSchema = lazySchema(() => exports_external.enum(["user", "project", "local"]).describe("Source for loading filesystem-based settings. " + "'user' - Global user settings (~/.ur/settings.json). " + "'project' - Project settings (.ur/settings.json). " + "'local' - Local settings (.ur/settings.local.json)."));
|
|
@@ -413703,7 +413812,7 @@ function isAnyTracingEnabled() {
|
|
|
413703
413812
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
413704
413813
|
}
|
|
413705
413814
|
function getTracer() {
|
|
413706
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.81.
|
|
413815
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.81.8");
|
|
413707
413816
|
}
|
|
413708
413817
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
413709
413818
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -424159,13 +424268,6 @@ function describeUnreadRemainder(file2) {
|
|
|
424159
424268
|
|
|
424160
424269
|
<system-reminder>This is lines ${firstLine}-${lastLine} of ${file2.totalLines}. ${file2.totalLines - lastLine} lines were not returned \u2014 read again with offset ${lastLine + 1} if you need them.</system-reminder>`;
|
|
424161
424270
|
}
|
|
424162
|
-
function shouldIncludeFileReadMitigation() {
|
|
424163
|
-
const shortName = getCanonicalName(getMainLoopModel());
|
|
424164
|
-
return !MITIGATION_EXEMPT_MODELS.has(shortName);
|
|
424165
|
-
}
|
|
424166
|
-
function getFileReadSecurityReminder() {
|
|
424167
|
-
return isRedteamModeActive() ? REDTEAM_FILE_READ_REMINDER : CYBER_RISK_MITIGATION_REMINDER;
|
|
424168
|
-
}
|
|
424169
424271
|
function memoryFileFreshnessPrefix(data) {
|
|
424170
424272
|
const mtimeMs = memoryFileMtimes.get(data);
|
|
424171
424273
|
if (mtimeMs === undefined)
|
|
@@ -424443,17 +424545,7 @@ async function readImageWithTokenBudget(filePath, maxTokens = getDefaultFileRead
|
|
|
424443
424545
|
}
|
|
424444
424546
|
return result;
|
|
424445
424547
|
}
|
|
424446
|
-
var BLOCKED_DEVICE_PATHS, THIN_SPACE, fileReadListeners, MaxFileReadTokenExceededError, IMAGE_EXTENSIONS, inputSchema46, outputSchema39, FileReadTool,
|
|
424447
|
-
|
|
424448
|
-
<system-reminder>
|
|
424449
|
-
Whenever you read a file, you should consider whether it would be considered malware. You CAN and SHOULD provide analysis of malware, what it is doing. But you MUST refuse to improve or augment the code. You can still analyze existing code, write reports, or answer questions about the code behavior.
|
|
424450
|
-
</system-reminder>
|
|
424451
|
-
`, REDTEAM_FILE_READ_REMINDER = `
|
|
424452
|
-
|
|
424453
|
-
<system-reminder>
|
|
424454
|
-
UR redteam mode is active. You may analyze, modify, build, and test security-research code, including malware and exploits. Keep operational actions within the approved target scope and continue to honor tool permissions, sandboxing, and action confirmations. The selected model/provider may apply separate policies.
|
|
424455
|
-
</system-reminder>
|
|
424456
|
-
`, MITIGATION_EXEMPT_MODELS, memoryFileMtimes;
|
|
424548
|
+
var BLOCKED_DEVICE_PATHS, THIN_SPACE, fileReadListeners, MaxFileReadTokenExceededError, IMAGE_EXTENSIONS, inputSchema46, outputSchema39, FileReadTool, memoryFileMtimes;
|
|
424457
424549
|
var init_FileReadTool = __esm(() => {
|
|
424458
424550
|
init_v4();
|
|
424459
424551
|
init_apiLimits();
|
|
@@ -424465,7 +424557,6 @@ var init_FileReadTool = __esm(() => {
|
|
|
424465
424557
|
init_loadSkillsDir();
|
|
424466
424558
|
init_Tool();
|
|
424467
424559
|
init_cwd2();
|
|
424468
|
-
init_redteamMode();
|
|
424469
424560
|
init_envUtils();
|
|
424470
424561
|
init_errors();
|
|
424471
424562
|
init_file();
|
|
@@ -424476,7 +424567,6 @@ var init_FileReadTool = __esm(() => {
|
|
|
424476
424567
|
init_log2();
|
|
424477
424568
|
init_memoryFileDetection();
|
|
424478
424569
|
init_messages();
|
|
424479
|
-
init_model();
|
|
424480
424570
|
init_notebook();
|
|
424481
424571
|
init_path();
|
|
424482
424572
|
init_pdf();
|
|
@@ -424811,7 +424901,7 @@ var init_FileReadTool = __esm(() => {
|
|
|
424811
424901
|
case "text": {
|
|
424812
424902
|
let content;
|
|
424813
424903
|
if (data.file.content) {
|
|
424814
|
-
content = memoryFileFreshnessPrefix(data) + formatFileLines(data.file) + describeUnreadRemainder(data.file)
|
|
424904
|
+
content = memoryFileFreshnessPrefix(data) + formatFileLines(data.file) + describeUnreadRemainder(data.file);
|
|
424815
424905
|
} else {
|
|
424816
424906
|
content = data.file.totalLines === 0 ? "<system-reminder>Warning: the file exists but the contents are empty.</system-reminder>" : `<system-reminder>Warning: the file exists but is shorter than the provided offset (${data.file.startLine}). The file has ${data.file.totalLines} lines.</system-reminder>`;
|
|
424817
424907
|
}
|
|
@@ -424824,7 +424914,6 @@ var init_FileReadTool = __esm(() => {
|
|
|
424824
424914
|
}
|
|
424825
424915
|
}
|
|
424826
424916
|
});
|
|
424827
|
-
MITIGATION_EXEMPT_MODELS = new Set;
|
|
424828
424917
|
memoryFileMtimes = new WeakMap;
|
|
424829
424918
|
});
|
|
424830
424919
|
|
|
@@ -443862,7 +443951,7 @@ function Feedback({
|
|
|
443862
443951
|
platform: env2.platform,
|
|
443863
443952
|
gitRepo: envInfo.isGit,
|
|
443864
443953
|
terminal: env2.terminal,
|
|
443865
|
-
version: "1.81.
|
|
443954
|
+
version: "1.81.8",
|
|
443866
443955
|
transcript: normalizeMessagesForAPI(messages),
|
|
443867
443956
|
errors: sanitizedErrors,
|
|
443868
443957
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -444054,7 +444143,7 @@ function Feedback({
|
|
|
444054
444143
|
", ",
|
|
444055
444144
|
env2.terminal,
|
|
444056
444145
|
", v",
|
|
444057
|
-
"1.81.
|
|
444146
|
+
"1.81.8"
|
|
444058
444147
|
]
|
|
444059
444148
|
}, undefined, true, undefined, this)
|
|
444060
444149
|
]
|
|
@@ -444160,7 +444249,7 @@ ${sanitizedDescription}
|
|
|
444160
444249
|
` + `**Environment Info**
|
|
444161
444250
|
` + `- Platform: ${env2.platform}
|
|
444162
444251
|
` + `- Terminal: ${env2.terminal}
|
|
444163
|
-
` + `- Version: ${"1.81.
|
|
444252
|
+
` + `- Version: ${"1.81.8"}
|
|
444164
444253
|
` + `- Feedback ID: ${feedbackId}
|
|
444165
444254
|
` + `
|
|
444166
444255
|
**Errors**
|
|
@@ -447270,7 +447359,7 @@ function buildPrimarySection() {
|
|
|
447270
447359
|
}, undefined, false, undefined, this);
|
|
447271
447360
|
return [{
|
|
447272
447361
|
label: "Version",
|
|
447273
|
-
value: "1.81.
|
|
447362
|
+
value: "1.81.8"
|
|
447274
447363
|
}, {
|
|
447275
447364
|
label: "Session name",
|
|
447276
447365
|
value: nameValue
|
|
@@ -448045,12 +448134,14 @@ function getEffortNotificationText(effortValue, model, provider) {
|
|
|
448045
448134
|
}
|
|
448046
448135
|
function effortLevelToSymbol(level) {
|
|
448047
448136
|
switch (level) {
|
|
448137
|
+
case "minimal":
|
|
448048
448138
|
case "low":
|
|
448049
448139
|
return EFFORT_LOW;
|
|
448050
448140
|
case "medium":
|
|
448051
448141
|
return EFFORT_MEDIUM;
|
|
448052
448142
|
case "high":
|
|
448053
448143
|
return EFFORT_HIGH;
|
|
448144
|
+
case "xhigh":
|
|
448054
448145
|
case "max":
|
|
448055
448146
|
return EFFORT_MAX;
|
|
448056
448147
|
default:
|
|
@@ -448071,6 +448162,9 @@ function compactModelDisplayName(modelId, maxLength = DEFAULT_COMPACT_MODEL_LENG
|
|
|
448071
448162
|
return leaf2;
|
|
448072
448163
|
return `${leaf2.slice(0, limit - 1)}\u2026`;
|
|
448073
448164
|
}
|
|
448165
|
+
function fullProviderModelDisplayName(providerId, model) {
|
|
448166
|
+
return providerId === "openrouter" ? model.id : model.displayName;
|
|
448167
|
+
}
|
|
448074
448168
|
function buildProviderModelLabels(providerId, models) {
|
|
448075
448169
|
if (providerId !== "openrouter") {
|
|
448076
448170
|
return new Map(models.map((model) => [model.id, model.displayName]));
|
|
@@ -448119,6 +448213,8 @@ function ModelPicker({
|
|
|
448119
448213
|
const [pickerError, setPickerError] = import_react102.useState(null);
|
|
448120
448214
|
const [loadingModels, setLoadingModels] = import_react102.useState(true);
|
|
448121
448215
|
const [modelReloadToken, setModelReloadToken] = import_react102.useState(0);
|
|
448216
|
+
const [effortCapabilityLoading, setEffortCapabilityLoading] = import_react102.useState(false);
|
|
448217
|
+
const [effortCapabilityWarning, setEffortCapabilityWarning] = import_react102.useState(null);
|
|
448122
448218
|
const effectiveSettings = getInitialSettings();
|
|
448123
448219
|
const currentProvider = getActiveProviderSettings(effectiveSettings).active ?? "ollama";
|
|
448124
448220
|
import_react102.useEffect(() => {
|
|
@@ -448137,6 +448233,7 @@ function ModelPicker({
|
|
|
448137
448233
|
value: model.id,
|
|
448138
448234
|
label: modelLabels.get(model.id) ?? model.displayName,
|
|
448139
448235
|
description: `${model.description} \xB7 ${result.source}`,
|
|
448236
|
+
reasoning: model.reasoning,
|
|
448140
448237
|
...model.supportedParameters !== undefined && !model.supportedParameters.includes("tools") ? { disabled: true } : {}
|
|
448141
448238
|
})));
|
|
448142
448239
|
setPickerError(result.warning ?? null);
|
|
@@ -448151,6 +448248,45 @@ function ModelPicker({
|
|
|
448151
448248
|
});
|
|
448152
448249
|
return () => controller.abort();
|
|
448153
448250
|
}, [currentProvider, modelReloadToken]);
|
|
448251
|
+
import_react102.useEffect(() => {
|
|
448252
|
+
if (currentProvider !== "llama.cpp" || !focusedValue) {
|
|
448253
|
+
setEffortCapabilityLoading(false);
|
|
448254
|
+
setEffortCapabilityWarning(null);
|
|
448255
|
+
return;
|
|
448256
|
+
}
|
|
448257
|
+
const focused = providerModelOptions.find((model) => model.value === focusedValue);
|
|
448258
|
+
if (!focused || focused.reasoning !== undefined) {
|
|
448259
|
+
setEffortCapabilityLoading(false);
|
|
448260
|
+
setEffortCapabilityWarning(null);
|
|
448261
|
+
return;
|
|
448262
|
+
}
|
|
448263
|
+
const controller = new AbortController;
|
|
448264
|
+
let cancelled = false;
|
|
448265
|
+
const timer = setTimeout(() => {
|
|
448266
|
+
setEffortCapabilityLoading(true);
|
|
448267
|
+
setEffortCapabilityWarning(null);
|
|
448268
|
+
ensureProviderReasoningCapabilitiesForModel(currentProvider, focusedValue, {
|
|
448269
|
+
settings: effectiveSettings,
|
|
448270
|
+
signal: controller.signal
|
|
448271
|
+
}).then((reasoning) => {
|
|
448272
|
+
if (cancelled)
|
|
448273
|
+
return;
|
|
448274
|
+
setProviderModelOptions((previous) => previous.map((model) => model.value === focusedValue ? { ...model, reasoning: reasoning ?? { supportedEfforts: [] } } : model));
|
|
448275
|
+
}).catch((error40) => {
|
|
448276
|
+
if (cancelled || controller.signal.aborted)
|
|
448277
|
+
return;
|
|
448278
|
+
setEffortCapabilityWarning(`Could not verify effort levels: ${error40 instanceof Error ? error40.message : String(error40)}`);
|
|
448279
|
+
}).finally(() => {
|
|
448280
|
+
if (!cancelled)
|
|
448281
|
+
setEffortCapabilityLoading(false);
|
|
448282
|
+
});
|
|
448283
|
+
}, 180);
|
|
448284
|
+
return () => {
|
|
448285
|
+
cancelled = true;
|
|
448286
|
+
clearTimeout(timer);
|
|
448287
|
+
controller.abort();
|
|
448288
|
+
};
|
|
448289
|
+
}, [currentProvider, focusedValue, providerModelOptions]);
|
|
448154
448290
|
use_input_default((input, key) => {
|
|
448155
448291
|
if (key.ctrl && (input === "r" || input === "R")) {
|
|
448156
448292
|
setModelReloadToken((token) => token + 1);
|
|
@@ -448175,23 +448311,24 @@ function ModelPicker({
|
|
|
448175
448311
|
const visibleCount = getAdaptiveModelVisibleCount(selectOptions.length, terminalSize?.rows);
|
|
448176
448312
|
const hiddenCount = Math.max(0, selectOptions.length - visibleCount);
|
|
448177
448313
|
const focusedModelName = selectOptions.find((opt) => opt.value === focusedValue)?.label;
|
|
448314
|
+
const focusedModelOption = selectOptions.find((opt) => opt.value === focusedValue);
|
|
448178
448315
|
const focusedModel = resolveOptionModel(focusedValue);
|
|
448179
|
-
const
|
|
448180
|
-
const
|
|
448316
|
+
const focusedEffortLevels = focusedModel ? getSupportedEffortLevelsForModel(focusedModel, currentProvider) : [];
|
|
448317
|
+
const focusedSupportsEffort = focusedModel ? modelSupportsEffort(focusedModel, currentProvider) : false;
|
|
448181
448318
|
const focusedSupportsThinking = focusedModel ? modelSupportsThinking(focusedModel) : false;
|
|
448182
|
-
const focusedDefaultEffort = getDefaultEffortLevelForOption(focusedValue);
|
|
448183
|
-
const displayEffort = effort
|
|
448319
|
+
const focusedDefaultEffort = getDefaultEffortLevelForOption(focusedValue, currentProvider);
|
|
448320
|
+
const displayEffort = focusedModel ? resolveProviderEffortLevel(focusedModel, effort ?? focusedDefaultEffort, currentProvider) ?? focusedDefaultEffort : focusedDefaultEffort;
|
|
448184
448321
|
const handleFocus = (value) => {
|
|
448185
448322
|
setFocusedValue(value);
|
|
448186
448323
|
if (!hasToggledEffort && effortValue === undefined) {
|
|
448187
|
-
setEffort(getDefaultEffortLevelForOption(value));
|
|
448324
|
+
setEffort(getDefaultEffortLevelForOption(value, currentProvider));
|
|
448188
448325
|
}
|
|
448189
448326
|
};
|
|
448190
448327
|
const handleCycleEffort = (direction) => {
|
|
448191
448328
|
if (!focusedSupportsEffort) {
|
|
448192
448329
|
return;
|
|
448193
448330
|
}
|
|
448194
|
-
setEffort((prev) => cycleEffortLevel(prev ?? focusedDefaultEffort, direction,
|
|
448331
|
+
setEffort((prev) => cycleEffortLevel((focusedModel ? resolveProviderEffortLevel(focusedModel, prev ?? focusedDefaultEffort, currentProvider) : undefined) ?? focusedDefaultEffort, direction, focusedEffortLevels));
|
|
448195
448332
|
setHasToggledEffort(true);
|
|
448196
448333
|
};
|
|
448197
448334
|
const handleToggleThinking = () => {
|
|
@@ -448207,8 +448344,10 @@ function ModelPicker({
|
|
|
448207
448344
|
"modelPicker:toggleThinking": handleToggleThinking
|
|
448208
448345
|
}, { context: "ModelPicker" });
|
|
448209
448346
|
function handleSelect(value) {
|
|
448347
|
+
const selectedModel = resolveOptionModel(value);
|
|
448348
|
+
const selectedEffort = hasToggledEffort && selectedModel && effort ? resolveProviderEffortLevel(selectedModel, effort, currentProvider) : undefined;
|
|
448210
448349
|
logEvent("tengu_model_command_menu_effort", {
|
|
448211
|
-
effort
|
|
448350
|
+
effort: selectedEffort
|
|
448212
448351
|
});
|
|
448213
448352
|
if (value !== NO_PREFERENCE) {
|
|
448214
448353
|
const validation = validateProviderModelPair(currentProvider, value, {
|
|
@@ -448220,7 +448359,7 @@ function ModelPicker({
|
|
|
448220
448359
|
}
|
|
448221
448360
|
}
|
|
448222
448361
|
if (!skipSettingsWrite) {
|
|
448223
|
-
const effortLevel = resolvePickerEffortPersistence(effort, getDefaultEffortLevelForOption(value), getSettingsForSource("userSettings")?.effortLevel, hasToggledEffort);
|
|
448362
|
+
const effortLevel = resolvePickerEffortPersistence(hasToggledEffort ? selectedEffort : effort, getDefaultEffortLevelForOption(value, currentProvider), getSettingsForSource("userSettings")?.effortLevel, hasToggledEffort);
|
|
448224
448363
|
const persistable = toPersistableEffort(effortLevel);
|
|
448225
448364
|
if (persistable !== undefined) {
|
|
448226
448365
|
updateSettingsForSource("userSettings", {
|
|
@@ -448238,8 +448377,6 @@ function ModelPicker({
|
|
|
448238
448377
|
...hasToggledThinking ? { thinkingEnabled } : {}
|
|
448239
448378
|
}));
|
|
448240
448379
|
}
|
|
448241
|
-
const selectedModel = resolveOptionModel(value);
|
|
448242
|
-
const selectedEffort = hasToggledEffort && selectedModel && modelSupportsEffort(selectedModel) ? effort : undefined;
|
|
448243
448380
|
if (value === NO_PREFERENCE) {
|
|
448244
448381
|
onSelect(null, selectedEffort);
|
|
448245
448382
|
return;
|
|
@@ -448364,28 +448501,60 @@ function ModelPicker({
|
|
|
448364
448501
|
" more\u2026"
|
|
448365
448502
|
]
|
|
448366
448503
|
}, undefined, true, undefined, this)
|
|
448367
|
-
}, undefined, false, undefined, this)
|
|
448504
|
+
}, undefined, false, undefined, this),
|
|
448505
|
+
focusedModelOption && focusedValue !== NO_PREFERENCE && /* @__PURE__ */ jsx_dev_runtime174.jsxDEV(ThemedBox_default, {
|
|
448506
|
+
paddingLeft: 3,
|
|
448507
|
+
marginTop: 1,
|
|
448508
|
+
flexDirection: "column",
|
|
448509
|
+
children: [
|
|
448510
|
+
/* @__PURE__ */ jsx_dev_runtime174.jsxDEV(ThemedText, {
|
|
448511
|
+
dimColor: true,
|
|
448512
|
+
color: "subtle",
|
|
448513
|
+
children: "Focused model \xB7 full name"
|
|
448514
|
+
}, undefined, false, undefined, this),
|
|
448515
|
+
/* @__PURE__ */ jsx_dev_runtime174.jsxDEV(ThemedText, {
|
|
448516
|
+
bold: true,
|
|
448517
|
+
color: "text",
|
|
448518
|
+
children: fullProviderModelDisplayName(currentProvider, {
|
|
448519
|
+
id: focusedModelOption.value,
|
|
448520
|
+
displayName: String(focusedModelOption.label)
|
|
448521
|
+
})
|
|
448522
|
+
}, undefined, false, undefined, this)
|
|
448523
|
+
]
|
|
448524
|
+
}, undefined, true, undefined, this)
|
|
448368
448525
|
]
|
|
448369
448526
|
}, undefined, true, undefined, this),
|
|
448370
448527
|
/* @__PURE__ */ jsx_dev_runtime174.jsxDEV(ThemedBox_default, {
|
|
448371
448528
|
marginBottom: 1,
|
|
448372
448529
|
flexDirection: "column",
|
|
448373
448530
|
children: [
|
|
448374
|
-
focusedSupportsEffort ? /* @__PURE__ */ jsx_dev_runtime174.jsxDEV(
|
|
448375
|
-
dimColor: true,
|
|
448531
|
+
focusedSupportsEffort ? /* @__PURE__ */ jsx_dev_runtime174.jsxDEV(jsx_dev_runtime174.Fragment, {
|
|
448376
448532
|
children: [
|
|
448377
|
-
/* @__PURE__ */ jsx_dev_runtime174.jsxDEV(EffortLevelIndicator, {
|
|
448378
|
-
effort: displayEffort
|
|
448379
|
-
}, undefined, false, undefined, this),
|
|
448380
|
-
" ",
|
|
448381
|
-
capitalize_default(displayEffort),
|
|
448382
|
-
" effort",
|
|
448383
|
-
displayEffort === focusedDefaultEffort ? " (default)" : "",
|
|
448384
|
-
" ",
|
|
448385
448533
|
/* @__PURE__ */ jsx_dev_runtime174.jsxDEV(ThemedText, {
|
|
448534
|
+
dimColor: true,
|
|
448535
|
+
children: [
|
|
448536
|
+
/* @__PURE__ */ jsx_dev_runtime174.jsxDEV(EffortLevelIndicator, {
|
|
448537
|
+
effort: displayEffort
|
|
448538
|
+
}, undefined, false, undefined, this),
|
|
448539
|
+
" ",
|
|
448540
|
+
capitalize_default(displayEffort),
|
|
448541
|
+
" effort",
|
|
448542
|
+
displayEffort === focusedDefaultEffort ? " (default)" : "",
|
|
448543
|
+
" ",
|
|
448544
|
+
/* @__PURE__ */ jsx_dev_runtime174.jsxDEV(ThemedText, {
|
|
448545
|
+
color: "subtle",
|
|
448546
|
+
children: "\u2190 \u2192 to adjust"
|
|
448547
|
+
}, undefined, false, undefined, this)
|
|
448548
|
+
]
|
|
448549
|
+
}, undefined, true, undefined, this),
|
|
448550
|
+
/* @__PURE__ */ jsx_dev_runtime174.jsxDEV(ThemedText, {
|
|
448551
|
+
dimColor: true,
|
|
448386
448552
|
color: "subtle",
|
|
448387
|
-
children:
|
|
448388
|
-
|
|
448553
|
+
children: [
|
|
448554
|
+
"Provider levels: ",
|
|
448555
|
+
focusedEffortLevels.join(" \xB7 ")
|
|
448556
|
+
]
|
|
448557
|
+
}, undefined, true, undefined, this)
|
|
448389
448558
|
]
|
|
448390
448559
|
}, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime174.jsxDEV(ThemedText, {
|
|
448391
448560
|
color: "subtle",
|
|
@@ -448394,9 +448563,14 @@ function ModelPicker({
|
|
|
448394
448563
|
effort: undefined
|
|
448395
448564
|
}, undefined, false, undefined, this),
|
|
448396
448565
|
" Effort not supported",
|
|
448397
|
-
focusedModelName ? ` for ${focusedModelName}` : ""
|
|
448566
|
+
focusedModelName ? ` for ${focusedModelName}` : "",
|
|
448567
|
+
effortCapabilityLoading ? " \xB7 checking provider\u2026" : ""
|
|
448398
448568
|
]
|
|
448399
448569
|
}, undefined, true, undefined, this),
|
|
448570
|
+
effortCapabilityWarning && /* @__PURE__ */ jsx_dev_runtime174.jsxDEV(ThemedText, {
|
|
448571
|
+
color: "warning",
|
|
448572
|
+
children: effortCapabilityWarning
|
|
448573
|
+
}, undefined, false, undefined, this),
|
|
448400
448574
|
focusedSupportsThinking ? /* @__PURE__ */ jsx_dev_runtime174.jsxDEV(ThemedText, {
|
|
448401
448575
|
dimColor: true,
|
|
448402
448576
|
children: [
|
|
@@ -448487,8 +448661,8 @@ function EffortLevelIndicator({
|
|
|
448487
448661
|
children: effortLevelToSymbol(effort ?? "low")
|
|
448488
448662
|
}, undefined, false, undefined, this);
|
|
448489
448663
|
}
|
|
448490
|
-
function cycleEffortLevel(current, direction,
|
|
448491
|
-
const levels =
|
|
448664
|
+
function cycleEffortLevel(current, direction, supportedLevels) {
|
|
448665
|
+
const levels = supportedLevels.length > 0 ? [...supportedLevels] : [current];
|
|
448492
448666
|
const idx = levels.indexOf(current);
|
|
448493
448667
|
const currentIndex = idx !== -1 ? idx : levels.indexOf("high");
|
|
448494
448668
|
if (direction === "right") {
|
|
@@ -448496,10 +448670,14 @@ function cycleEffortLevel(current, direction, includeMax) {
|
|
|
448496
448670
|
}
|
|
448497
448671
|
return levels[(currentIndex - 1 + levels.length) % levels.length];
|
|
448498
448672
|
}
|
|
448499
|
-
function getDefaultEffortLevelForOption(value) {
|
|
448673
|
+
function getDefaultEffortLevelForOption(value, provider = getActiveProviderSettings(getInitialSettings()).active ?? "ollama") {
|
|
448500
448674
|
const resolved = resolveOptionModel(value) ?? getDefaultMainLoopModel();
|
|
448501
|
-
const
|
|
448502
|
-
|
|
448675
|
+
const levels = getSupportedEffortLevelsForModel(resolved, provider);
|
|
448676
|
+
const defaultValue = getDefaultEffortForModel(resolved, provider);
|
|
448677
|
+
if (defaultValue !== undefined) {
|
|
448678
|
+
return resolveProviderEffortLevel(resolved, convertEffortValueToLevel(defaultValue), provider) ?? "high";
|
|
448679
|
+
}
|
|
448680
|
+
return levels.includes("high") ? "high" : levels.at(-1) ?? "high";
|
|
448503
448681
|
}
|
|
448504
448682
|
var import_react102, jsx_dev_runtime174, NO_PREFERENCE = "__NO_PREFERENCE__", selectEffortValue = (s) => s.effortValue, selectFastMode = (s) => isFastModeEnabled() ? s.fastMode : false, selectThinkingEnabled = (s) => s.thinkingEnabled;
|
|
448505
448683
|
var init_ModelPicker = __esm(() => {
|
|
@@ -450684,7 +450862,7 @@ function Config({
|
|
|
450684
450862
|
}
|
|
450685
450863
|
}, undefined, false, undefined, this)
|
|
450686
450864
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
450687
|
-
currentVersion: "1.81.
|
|
450865
|
+
currentVersion: "1.81.8",
|
|
450688
450866
|
onChoice: (choice) => {
|
|
450689
450867
|
setShowSubmenu(null);
|
|
450690
450868
|
setTabsHidden(false);
|
|
@@ -450696,7 +450874,7 @@ function Config({
|
|
|
450696
450874
|
autoUpdatesChannel: "stable"
|
|
450697
450875
|
};
|
|
450698
450876
|
if (choice === "stay") {
|
|
450699
|
-
newSettings.minimumVersion = "1.81.
|
|
450877
|
+
newSettings.minimumVersion = "1.81.8";
|
|
450700
450878
|
}
|
|
450701
450879
|
updateSettingsForSource("userSettings", newSettings);
|
|
450702
450880
|
setSettingsData((prev_27) => ({
|
|
@@ -459005,7 +459183,7 @@ function HelpV2(t0) {
|
|
|
459005
459183
|
let t6;
|
|
459006
459184
|
if ($2[31] !== tabs) {
|
|
459007
459185
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
459008
|
-
title: `UR v${"1.81.
|
|
459186
|
+
title: `UR v${"1.81.8"}`,
|
|
459009
459187
|
color: "professionalBlue",
|
|
459010
459188
|
defaultTab: "general",
|
|
459011
459189
|
children: tabs
|
|
@@ -459938,7 +460116,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
459938
460116
|
async function handleInitialize(options2) {
|
|
459939
460117
|
return {
|
|
459940
460118
|
name: "UR",
|
|
459941
|
-
version: "1.81.
|
|
460119
|
+
version: "1.81.8",
|
|
459942
460120
|
protocolVersion: "0.1.0",
|
|
459943
460121
|
workspaceRoot: options2.cwd,
|
|
459944
460122
|
capabilities: {
|
|
@@ -477046,7 +477224,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
477046
477224
|
return [];
|
|
477047
477225
|
}
|
|
477048
477226
|
}
|
|
477049
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.81.
|
|
477227
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.81.8") {
|
|
477050
477228
|
if (process.env.USER_TYPE === "ant") {
|
|
477051
477229
|
const changelog = "";
|
|
477052
477230
|
if (changelog) {
|
|
@@ -477073,7 +477251,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.81.5")
|
|
|
477073
477251
|
releaseNotes
|
|
477074
477252
|
};
|
|
477075
477253
|
}
|
|
477076
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.81.
|
|
477254
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.81.8") {
|
|
477077
477255
|
if (process.env.USER_TYPE === "ant") {
|
|
477078
477256
|
const changelog = "";
|
|
477079
477257
|
if (changelog) {
|
|
@@ -479861,6 +480039,9 @@ var init_transcriptSearch = __esm(() => {
|
|
|
479861
480039
|
});
|
|
479862
480040
|
|
|
479863
480041
|
// src/utils/logoV2Utils.ts
|
|
480042
|
+
function shouldUseCondensedLogo(hasReleaseNotes, showOnboarding, compactRequested, forceFull) {
|
|
480043
|
+
return compactRequested && !forceFull && !hasReleaseNotes && !showOnboarding;
|
|
480044
|
+
}
|
|
479864
480045
|
function getCondensedLogoLayout(columns) {
|
|
479865
480046
|
const safeColumns = Number.isFinite(columns) ? Math.max(1, Math.floor(columns)) : 1;
|
|
479866
480047
|
const stacked = safeColumns < 35;
|
|
@@ -479978,7 +480159,7 @@ function getRecentActivitySync() {
|
|
|
479978
480159
|
return cachedActivity;
|
|
479979
480160
|
}
|
|
479980
480161
|
function getLogoDisplayData() {
|
|
479981
|
-
const version2 = process.env.DEMO_VERSION ?? "1.81.
|
|
480162
|
+
const version2 = process.env.DEMO_VERSION ?? "1.81.8";
|
|
479982
480163
|
const serverUrl = getDirectConnectServerUrl();
|
|
479983
480164
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
479984
480165
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -480052,37 +480233,65 @@ var init_logoV2Utils = __esm(() => {
|
|
|
480052
480233
|
});
|
|
480053
480234
|
|
|
480054
480235
|
// src/components/LogoV2/URBanner.tsx
|
|
480055
|
-
function
|
|
480236
|
+
function getResponsiveURWordmarkVariant(availableWidth = Number.POSITIVE_INFINITY, availableHeight = Number.POSITIVE_INFINITY) {
|
|
480237
|
+
if (availableWidth >= 41 && availableHeight >= 22)
|
|
480238
|
+
return "full";
|
|
480239
|
+
if (availableWidth >= 20 && availableHeight >= 8)
|
|
480240
|
+
return "compact";
|
|
480241
|
+
return "minimal";
|
|
480242
|
+
}
|
|
480243
|
+
function URBanner({
|
|
480244
|
+
availableWidth,
|
|
480245
|
+
availableHeight
|
|
480246
|
+
} = {}) {
|
|
480056
480247
|
if (isScreenReaderMode()) {
|
|
480057
480248
|
return /* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
480058
480249
|
children: "UR \u2014 the autonomous agent"
|
|
480059
480250
|
}, undefined, false, undefined, this);
|
|
480060
480251
|
}
|
|
480252
|
+
const variant = getResponsiveURWordmarkVariant(availableWidth, availableHeight);
|
|
480253
|
+
const rows = variant === "full" ? UR_WORDMARK_ROWS : variant === "compact" ? COMPACT_UR_WORDMARK_ROWS : ["UR"];
|
|
480254
|
+
const showTagline = variant !== "minimal";
|
|
480255
|
+
const decorateTagline = (availableWidth ?? Number.POSITIVE_INFINITY) >= 24;
|
|
480061
480256
|
return /* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedBox_default, {
|
|
480062
480257
|
flexDirection: "column",
|
|
480063
480258
|
alignItems: "center",
|
|
480064
480259
|
children: [
|
|
480065
|
-
|
|
480260
|
+
rows.map((row, i3) => /* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
480066
480261
|
color: "ur",
|
|
480067
480262
|
children: row
|
|
480068
480263
|
}, i3, false, undefined, this)),
|
|
480069
|
-
/* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
480264
|
+
showTagline && /* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
480070
480265
|
color: "ur",
|
|
480071
|
-
children:
|
|
480072
|
-
|
|
480073
|
-
UR_WORDMARK_TAGLINE,
|
|
480074
|
-
" \u2726"
|
|
480075
|
-
]
|
|
480076
|
-
}, undefined, true, undefined, this)
|
|
480266
|
+
children: decorateTagline ? `\u2726 ${UR_WORDMARK_TAGLINE} \u2726` : UR_WORDMARK_TAGLINE
|
|
480267
|
+
}, undefined, false, undefined, this)
|
|
480077
480268
|
]
|
|
480078
480269
|
}, undefined, true, undefined, this);
|
|
480079
480270
|
}
|
|
480080
|
-
var jsx_dev_runtime233, UR_WORDMARK_ROWS, UR_WORDMARK_TAGLINE = "THE AUTONOMOUS AGENT";
|
|
480271
|
+
var jsx_dev_runtime233, UR_WORDMARK_ROWS, COMPACT_UR_WORDMARK_ROWS, UR_WORDMARK_TAGLINE = "THE AUTONOMOUS AGENT";
|
|
480081
480272
|
var init_URBanner = __esm(() => {
|
|
480082
480273
|
init_ink2();
|
|
480083
480274
|
init_screenReader();
|
|
480084
480275
|
jsx_dev_runtime233 = __toESM(require_jsx_dev_runtime(), 1);
|
|
480085
480276
|
UR_WORDMARK_ROWS = [
|
|
480277
|
+
"UUUUUUUU UUUUUUUURRRRRRRRRRRRRRRRR ",
|
|
480278
|
+
"U::::::U U::::::UR::::::::::::::::R ",
|
|
480279
|
+
"U::::::U U::::::UR::::::RRRRRR:::::R ",
|
|
480280
|
+
"UU:::::U U:::::UURR:::::R R:::::R",
|
|
480281
|
+
" U:::::U U:::::U R::::R R:::::R",
|
|
480282
|
+
" U:::::D D:::::U R::::R R:::::R",
|
|
480283
|
+
" U:::::D D:::::U R::::RRRRRR:::::R ",
|
|
480284
|
+
" U:::::D D:::::U R:::::::::::::RR ",
|
|
480285
|
+
" U:::::D D:::::U R::::RRRRRR:::::R ",
|
|
480286
|
+
" U:::::D D:::::U R::::R R:::::R",
|
|
480287
|
+
" U:::::D D:::::U R::::R R:::::R",
|
|
480288
|
+
" U::::::U U::::::U R::::R R:::::R",
|
|
480289
|
+
" U:::::::UUU:::::::U RR:::::R R:::::R",
|
|
480290
|
+
" UU:::::::::::::UU R::::::R R:::::R",
|
|
480291
|
+
" UU:::::::::UU R::::::R R:::::R",
|
|
480292
|
+
" UUUUUUUUU RRRRRRRR RRRRRRR"
|
|
480293
|
+
];
|
|
480294
|
+
COMPACT_UR_WORDMARK_ROWS = [
|
|
480086
480295
|
"\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
|
|
480087
480296
|
"\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557",
|
|
480088
480297
|
"\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D",
|
|
@@ -480094,38 +480303,21 @@ var init_URBanner = __esm(() => {
|
|
|
480094
480303
|
|
|
480095
480304
|
// src/components/LogoV2/UrHouse.tsx
|
|
480096
480305
|
function UrHouse({ size = "large" }) {
|
|
480097
|
-
const rows = size === "small" ?
|
|
480306
|
+
const rows = size === "small" ? SMALL_HOUSE_ROWS : LARGE_HOUSE_ROWS;
|
|
480098
480307
|
return /* @__PURE__ */ jsx_dev_runtime234.jsxDEV(ThemedBox_default, {
|
|
480099
480308
|
flexDirection: "column",
|
|
480100
480309
|
alignItems: "center",
|
|
480101
|
-
children:
|
|
480102
|
-
|
|
480103
|
-
|
|
480104
|
-
|
|
480105
|
-
|
|
480106
|
-
color: "ur",
|
|
480107
|
-
children: row
|
|
480108
|
-
}, undefined, false, undefined, this),
|
|
480109
|
-
size === "large" && /* @__PURE__ */ jsx_dev_runtime234.jsxDEV(ThemedText, {
|
|
480110
|
-
color: "ur",
|
|
480111
|
-
dimColor: true,
|
|
480112
|
-
children: i3 >= LARGE_SHADOW_START_ROW ? "\u2591" : " "
|
|
480113
|
-
}, undefined, false, undefined, this)
|
|
480114
|
-
]
|
|
480115
|
-
}, i3, true, undefined, this)),
|
|
480116
|
-
size === "large" && /* @__PURE__ */ jsx_dev_runtime234.jsxDEV(ThemedText, {
|
|
480117
|
-
color: "ur",
|
|
480118
|
-
dimColor: true,
|
|
480119
|
-
children: LARGE_HOUSE_BOTTOM_SHADOW
|
|
480120
|
-
}, undefined, false, undefined, this)
|
|
480121
|
-
]
|
|
480122
|
-
}, undefined, true, undefined, this);
|
|
480310
|
+
children: rows.map((row, index2) => /* @__PURE__ */ jsx_dev_runtime234.jsxDEV(ThemedText, {
|
|
480311
|
+
color: "ur",
|
|
480312
|
+
children: row
|
|
480313
|
+
}, index2, false, undefined, this))
|
|
480314
|
+
}, undefined, false, undefined, this);
|
|
480123
480315
|
}
|
|
480124
|
-
var jsx_dev_runtime234,
|
|
480316
|
+
var jsx_dev_runtime234, LARGE_HOUSE_ROWS, SMALL_HOUSE_ROWS, AUTOMATIC_HOUSE_SIZE = "large";
|
|
480125
480317
|
var init_UrHouse = __esm(() => {
|
|
480126
480318
|
init_ink2();
|
|
480127
480319
|
jsx_dev_runtime234 = __toESM(require_jsx_dev_runtime(), 1);
|
|
480128
|
-
|
|
480320
|
+
LARGE_HOUSE_ROWS = [
|
|
480129
480321
|
" \u2571\u2572 ",
|
|
480130
480322
|
" \u2571 \u2572 ",
|
|
480131
480323
|
" \u2571 \u2572 ",
|
|
@@ -480135,7 +480327,7 @@ var init_UrHouse = __esm(() => {
|
|
|
480135
480327
|
" \u2502 \u25A2\u25A2 \u2502 ",
|
|
480136
480328
|
" \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2518 "
|
|
480137
480329
|
];
|
|
480138
|
-
|
|
480330
|
+
SMALL_HOUSE_ROWS = [
|
|
480139
480331
|
" \u2571\u2572 ",
|
|
480140
480332
|
"\u2571\u2500\u2500\u2572",
|
|
480141
480333
|
"\u2502\u25A3\u25A3\u2502",
|
|
@@ -480830,7 +481022,8 @@ function LogoV2() {
|
|
|
480830
481022
|
const activities = getRecentActivitySync();
|
|
480831
481023
|
const username = getGlobalConfig().oauthAccount?.displayName ?? "";
|
|
480832
481024
|
const {
|
|
480833
|
-
columns
|
|
481025
|
+
columns,
|
|
481026
|
+
rows
|
|
480834
481027
|
} = useTerminalSize();
|
|
480835
481028
|
let t0;
|
|
480836
481029
|
if ($2[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
@@ -480874,7 +481067,7 @@ function LogoV2() {
|
|
|
480874
481067
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
480875
481068
|
t2 = () => {
|
|
480876
481069
|
const currentConfig = getGlobalConfig();
|
|
480877
|
-
if (currentConfig.lastReleaseNotesSeen === "1.81.
|
|
481070
|
+
if (currentConfig.lastReleaseNotesSeen === "1.81.8") {
|
|
480878
481071
|
return;
|
|
480879
481072
|
}
|
|
480880
481073
|
saveGlobalConfig(_temp325);
|
|
@@ -480897,7 +481090,7 @@ function LogoV2() {
|
|
|
480897
481090
|
import_react144.useEffect(t2, t3);
|
|
480898
481091
|
let t4;
|
|
480899
481092
|
if ($2[5] === Symbol.for("react.memo_cache_sentinel")) {
|
|
480900
|
-
t4 =
|
|
481093
|
+
t4 = shouldUseCondensedLogo(hasReleaseNotes, showOnboarding, isEnvTruthy(process.env.UR_CODE_COMPACT_LOGO), isEnvTruthy(process.env.UR_CODE_FORCE_FULL_LOGO));
|
|
480901
481094
|
$2[5] = t4;
|
|
480902
481095
|
} else {
|
|
480903
481096
|
t4 = $2[5];
|
|
@@ -480958,7 +481151,7 @@ function LogoV2() {
|
|
|
480958
481151
|
t10 = $2[14];
|
|
480959
481152
|
}
|
|
480960
481153
|
const modelDisplayName = t10;
|
|
480961
|
-
if (
|
|
481154
|
+
if (isCondensedMode) {
|
|
480962
481155
|
let t112;
|
|
480963
481156
|
let t122;
|
|
480964
481157
|
let t132;
|
|
@@ -481127,7 +481320,7 @@ function LogoV2() {
|
|
|
481127
481320
|
t122 = /* @__PURE__ */ jsx_dev_runtime241.jsxDEV(ThemedBox_default, {
|
|
481128
481321
|
marginY: 1,
|
|
481129
481322
|
children: /* @__PURE__ */ jsx_dev_runtime241.jsxDEV(UrHouse, {
|
|
481130
|
-
size:
|
|
481323
|
+
size: AUTOMATIC_HOUSE_SIZE
|
|
481131
481324
|
}, undefined, false, undefined, this)
|
|
481132
481325
|
}, undefined, false, undefined, this);
|
|
481133
481326
|
$2[34] = t122;
|
|
@@ -481276,7 +481469,7 @@ function LogoV2() {
|
|
|
481276
481469
|
t19 = /* @__PURE__ */ jsx_dev_runtime241.jsxDEV(ThemedBox_default, {
|
|
481277
481470
|
marginY: 1,
|
|
481278
481471
|
children: /* @__PURE__ */ jsx_dev_runtime241.jsxDEV(UrHouse, {
|
|
481279
|
-
size:
|
|
481472
|
+
size: AUTOMATIC_HOUSE_SIZE
|
|
481280
481473
|
}, undefined, false, undefined, this)
|
|
481281
481474
|
}, undefined, false, undefined, this);
|
|
481282
481475
|
$2[48] = t19;
|
|
@@ -481362,7 +481555,10 @@ function LogoV2() {
|
|
|
481362
481555
|
width: rightWidth,
|
|
481363
481556
|
alignItems: "center",
|
|
481364
481557
|
justifyContent: "center",
|
|
481365
|
-
children: /* @__PURE__ */ jsx_dev_runtime241.jsxDEV(URBanner, {
|
|
481558
|
+
children: /* @__PURE__ */ jsx_dev_runtime241.jsxDEV(URBanner, {
|
|
481559
|
+
availableWidth: rightWidth,
|
|
481560
|
+
availableHeight: Math.max(1, rows - 4)
|
|
481561
|
+
}, undefined, false, undefined, this)
|
|
481366
481562
|
}, undefined, false, undefined, this);
|
|
481367
481563
|
let t26;
|
|
481368
481564
|
if ($2[62] !== T22 || $2[63] !== t15 || $2[64] !== t23 || $2[65] !== t24 || $2[66] !== t25) {
|
|
@@ -481559,12 +481755,12 @@ function LogoV2() {
|
|
|
481559
481755
|
return t41;
|
|
481560
481756
|
}
|
|
481561
481757
|
function _temp325(current) {
|
|
481562
|
-
if (current.lastReleaseNotesSeen === "1.81.
|
|
481758
|
+
if (current.lastReleaseNotesSeen === "1.81.8") {
|
|
481563
481759
|
return current;
|
|
481564
481760
|
}
|
|
481565
481761
|
return {
|
|
481566
481762
|
...current,
|
|
481567
|
-
lastReleaseNotesSeen: "1.81.
|
|
481763
|
+
lastReleaseNotesSeen: "1.81.8"
|
|
481568
481764
|
};
|
|
481569
481765
|
}
|
|
481570
481766
|
function _temp241(s_0) {
|
|
@@ -497514,7 +497710,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
497514
497710
|
if (spec.name !== specName) {
|
|
497515
497711
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
497516
497712
|
}
|
|
497517
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.81.
|
|
497713
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.81.8" : "1.81.8");
|
|
497518
497714
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
497519
497715
|
throw new Error("invalid ur-agent package version");
|
|
497520
497716
|
}
|
|
@@ -498507,7 +498703,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
498507
498703
|
path: ".github/workflows/ur.yml",
|
|
498508
498704
|
root: "project",
|
|
498509
498705
|
content: compileAgenticCiWorkflow("default", {
|
|
498510
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.81.
|
|
498706
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.81.8" : "1.81.8"
|
|
498511
498707
|
})
|
|
498512
498708
|
},
|
|
498513
498709
|
{
|
|
@@ -498570,7 +498766,7 @@ function value(tokens, flag) {
|
|
|
498570
498766
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
498571
498767
|
}
|
|
498572
498768
|
function cliVersion() {
|
|
498573
|
-
return typeof MACRO !== "undefined" ? "1.81.
|
|
498769
|
+
return typeof MACRO !== "undefined" ? "1.81.8" : "1.81.8";
|
|
498574
498770
|
}
|
|
498575
498771
|
function workflowPath(cwd2) {
|
|
498576
498772
|
return join168(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -504426,7 +504622,7 @@ function createAcpStdioApp(deps) {
|
|
|
504426
504622
|
}
|
|
504427
504623
|
},
|
|
504428
504624
|
authMethods: [],
|
|
504429
|
-
agentInfo: { name: "UR-Nexus", version: "1.81.
|
|
504625
|
+
agentInfo: { name: "UR-Nexus", version: "1.81.8" }
|
|
504430
504626
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
504431
504627
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
504432
504628
|
await runtime2.announce({
|
|
@@ -504523,7 +504719,7 @@ function createAcpStdioAgent(deps) {
|
|
|
504523
504719
|
}
|
|
504524
504720
|
},
|
|
504525
504721
|
authMethods: [],
|
|
504526
|
-
agentInfo: { name: "UR-Nexus", version: "1.81.
|
|
504722
|
+
agentInfo: { name: "UR-Nexus", version: "1.81.8" }
|
|
504527
504723
|
});
|
|
504528
504724
|
return;
|
|
504529
504725
|
case "authenticate":
|
|
@@ -715775,7 +715971,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
715775
715971
|
smapsRollup,
|
|
715776
715972
|
platform: process.platform,
|
|
715777
715973
|
nodeVersion: process.version,
|
|
715778
|
-
ccVersion: "1.81.
|
|
715974
|
+
ccVersion: "1.81.8"
|
|
715779
715975
|
};
|
|
715780
715976
|
}
|
|
715781
715977
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -716364,7 +716560,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
716364
716560
|
var call154 = async () => {
|
|
716365
716561
|
return {
|
|
716366
716562
|
type: "text",
|
|
716367
|
-
value: "1.81.
|
|
716563
|
+
value: "1.81.8"
|
|
716368
716564
|
};
|
|
716369
716565
|
}, version2, version_default;
|
|
716370
716566
|
var init_version = __esm(() => {
|
|
@@ -719376,6 +719572,8 @@ function ProviderFirstModelPicker({
|
|
|
719376
719572
|
const [apiKeyCursorOffset, setApiKeyCursorOffset] = import_react186.useState(0);
|
|
719377
719573
|
const [connectError, setConnectError] = import_react186.useState(null);
|
|
719378
719574
|
const [credentialNotice, setCredentialNotice] = import_react186.useState(null);
|
|
719575
|
+
const [effortCapabilityLoading, setEffortCapabilityLoading] = import_react186.useState(false);
|
|
719576
|
+
const [effortCapabilityWarning, setEffortCapabilityWarning] = import_react186.useState(null);
|
|
719379
719577
|
const [modelReloadToken, setModelReloadToken] = import_react186.useState(0);
|
|
719380
719578
|
const terminalSize = import_react186.useContext(TerminalSizeContext);
|
|
719381
719579
|
const keyInputColumns = getProviderKeyInputColumns(terminalSize?.columns);
|
|
@@ -719389,10 +719587,10 @@ function ProviderFirstModelPicker({
|
|
|
719389
719587
|
async function loadProviderStatus() {
|
|
719390
719588
|
setLoadingProviders(true);
|
|
719391
719589
|
const providers = listProviders({ includeExternalAppBridges: true });
|
|
719392
|
-
const settings =
|
|
719590
|
+
const settings = getInitialSettings();
|
|
719393
719591
|
const options5 = await Promise.all(providers.map(async (provider) => {
|
|
719394
719592
|
const status2 = await getProviderStatus(provider.id, {
|
|
719395
|
-
settings
|
|
719593
|
+
settings
|
|
719396
719594
|
});
|
|
719397
719595
|
const accessType = getProviderAccessTypeLabel(provider);
|
|
719398
719596
|
return {
|
|
@@ -719423,7 +719621,7 @@ function ProviderFirstModelPicker({
|
|
|
719423
719621
|
const providerId = selectedProvider.value;
|
|
719424
719622
|
try {
|
|
719425
719623
|
const result = await listModelsForProviderWithSource(providerId, {
|
|
719426
|
-
settings:
|
|
719624
|
+
settings: getInitialSettings(),
|
|
719427
719625
|
signal: controller.signal,
|
|
719428
719626
|
freshOnly: providerId === "openrouter"
|
|
719429
719627
|
});
|
|
@@ -719459,6 +719657,45 @@ function ProviderFirstModelPicker({
|
|
|
719459
719657
|
controller.abort();
|
|
719460
719658
|
};
|
|
719461
719659
|
}, [selectedProvider, modelReloadToken]);
|
|
719660
|
+
import_react186.useEffect(() => {
|
|
719661
|
+
if (selectedProvider?.value !== "llama.cpp" || !focusedModelValue) {
|
|
719662
|
+
setEffortCapabilityLoading(false);
|
|
719663
|
+
setEffortCapabilityWarning(null);
|
|
719664
|
+
return;
|
|
719665
|
+
}
|
|
719666
|
+
const focused = modelOptions.find((model) => model.value === focusedModelValue);
|
|
719667
|
+
if (!focused || focused.reasoning !== undefined) {
|
|
719668
|
+
setEffortCapabilityLoading(false);
|
|
719669
|
+
setEffortCapabilityWarning(null);
|
|
719670
|
+
return;
|
|
719671
|
+
}
|
|
719672
|
+
const controller = new AbortController;
|
|
719673
|
+
let cancelled = false;
|
|
719674
|
+
const timer = setTimeout(() => {
|
|
719675
|
+
setEffortCapabilityLoading(true);
|
|
719676
|
+
setEffortCapabilityWarning(null);
|
|
719677
|
+
ensureProviderReasoningCapabilitiesForModel("llama.cpp", focusedModelValue, {
|
|
719678
|
+
settings: getInitialSettings(),
|
|
719679
|
+
signal: controller.signal
|
|
719680
|
+
}).then((reasoning) => {
|
|
719681
|
+
if (cancelled)
|
|
719682
|
+
return;
|
|
719683
|
+
setModelOptions((previous) => previous.map((model) => model.value === focusedModelValue ? { ...model, reasoning: reasoning ?? { supportedEfforts: [] } } : model));
|
|
719684
|
+
}).catch((error40) => {
|
|
719685
|
+
if (cancelled || controller.signal.aborted)
|
|
719686
|
+
return;
|
|
719687
|
+
setEffortCapabilityWarning(`Could not verify effort levels: ${error40 instanceof Error ? error40.message : String(error40)}`);
|
|
719688
|
+
}).finally(() => {
|
|
719689
|
+
if (!cancelled)
|
|
719690
|
+
setEffortCapabilityLoading(false);
|
|
719691
|
+
});
|
|
719692
|
+
}, 180);
|
|
719693
|
+
return () => {
|
|
719694
|
+
cancelled = true;
|
|
719695
|
+
clearTimeout(timer);
|
|
719696
|
+
controller.abort();
|
|
719697
|
+
};
|
|
719698
|
+
}, [selectedProvider?.value, focusedModelValue, modelOptions]);
|
|
719462
719699
|
use_input_default((_input, key) => {
|
|
719463
719700
|
if (key.escape) {
|
|
719464
719701
|
handleKeyCancel();
|
|
@@ -719483,10 +719720,11 @@ function ProviderFirstModelPicker({
|
|
|
719483
719720
|
const focusedProvider = providerOptions.find((p2) => p2.value === focusedProviderValue);
|
|
719484
719721
|
const focusedModel = modelOptions.find((m) => m.value === focusedModelValue);
|
|
719485
719722
|
const focusedResolvedModel = focusedModel ? parseUserSpecifiedModel(focusedModel.value) : undefined;
|
|
719486
|
-
const
|
|
719487
|
-
const
|
|
719488
|
-
const
|
|
719489
|
-
const
|
|
719723
|
+
const focusedProviderId = selectedProvider?.value;
|
|
719724
|
+
const focusedEffortLevels = focusedResolvedModel && focusedProviderId ? getSupportedEffortLevelsForModel(focusedResolvedModel, focusedProviderId) : [];
|
|
719725
|
+
const focusedSupportsEffort = focusedResolvedModel ? modelSupportsEffort(focusedResolvedModel, focusedProviderId) : false;
|
|
719726
|
+
const focusedDefaultEffort = focusedResolvedModel ? convertEffortValueToLevel(getDefaultEffortForModel(focusedResolvedModel, focusedProviderId) ?? (focusedEffortLevels.includes("high") ? "high" : focusedEffortLevels.at(-1)) ?? "high") : "high";
|
|
719727
|
+
const displayedEffort = focusedResolvedModel ? resolveProviderEffortLevel(focusedResolvedModel, effort ?? focusedDefaultEffort, focusedProviderId) ?? focusedDefaultEffort : focusedDefaultEffort;
|
|
719490
719728
|
function handleProviderFocus(value2) {
|
|
719491
719729
|
setFocusedProviderValue(value2);
|
|
719492
719730
|
setProviderWarning(null);
|
|
@@ -719497,7 +719735,7 @@ function ProviderFirstModelPicker({
|
|
|
719497
719735
|
function handleCycleEffort(direction) {
|
|
719498
719736
|
if (!focusedSupportsEffort)
|
|
719499
719737
|
return;
|
|
719500
|
-
setEffort((previous) => cycleProviderPickerEffort(previous ?? focusedDefaultEffort, direction,
|
|
719738
|
+
setEffort((previous) => cycleProviderPickerEffort(resolveProviderEffortLevel(focusedResolvedModel, previous ?? focusedDefaultEffort, focusedProviderId) ?? focusedDefaultEffort, direction, focusedEffortLevels));
|
|
719501
719739
|
setHasToggledEffort(true);
|
|
719502
719740
|
}
|
|
719503
719741
|
use_input_default((_input, key, event) => {
|
|
@@ -719546,8 +719784,11 @@ function ProviderFirstModelPicker({
|
|
|
719546
719784
|
}
|
|
719547
719785
|
}
|
|
719548
719786
|
function handleModelSelect(value2) {
|
|
719787
|
+
const selectedProviderId = selectedProvider?.value;
|
|
719788
|
+
const selectedResolvedModel = parseUserSpecifiedModel(value2);
|
|
719789
|
+
const selectedEffort = hasToggledEffort && selectedProviderId && effort ? resolveProviderEffortLevel(selectedResolvedModel, effort, selectedProviderId) : undefined;
|
|
719549
719790
|
logEvent("tengu_model_command_menu_effort", {
|
|
719550
|
-
effort,
|
|
719791
|
+
effort: selectedEffort,
|
|
719551
719792
|
provider: selectedProvider?.value,
|
|
719552
719793
|
model: value2,
|
|
719553
719794
|
source: modelSource
|
|
@@ -719590,7 +719831,7 @@ function ProviderFirstModelPicker({
|
|
|
719590
719831
|
}
|
|
719591
719832
|
}
|
|
719592
719833
|
if (hasToggledEffort) {
|
|
719593
|
-
const persistable =
|
|
719834
|
+
const persistable = selectedEffort ? toPersistableEffort(selectedEffort) : undefined;
|
|
719594
719835
|
if (persistable !== undefined) {
|
|
719595
719836
|
updateSettingsForSource("userSettings", {
|
|
719596
719837
|
effortLevel: persistable
|
|
@@ -719604,10 +719845,10 @@ function ProviderFirstModelPicker({
|
|
|
719604
719845
|
active: selectedProvider?.value,
|
|
719605
719846
|
model: value2
|
|
719606
719847
|
},
|
|
719607
|
-
...hasToggledEffort ? { effortValue:
|
|
719848
|
+
...hasToggledEffort ? { effortValue: selectedEffort } : {},
|
|
719608
719849
|
...hasToggledThinking ? { thinkingEnabled } : {}
|
|
719609
719850
|
}));
|
|
719610
|
-
onSelect(value2,
|
|
719851
|
+
onSelect(value2, selectedEffort, selectedProvider ? {
|
|
719611
719852
|
providerId: selectedProvider.value,
|
|
719612
719853
|
providerName: selectedProvider.label,
|
|
719613
719854
|
accessType: selectedProvider.accessType,
|
|
@@ -720051,43 +720292,71 @@ function ProviderFirstModelPicker({
|
|
|
720051
720292
|
marginBottom: 1,
|
|
720052
720293
|
flexDirection: "column",
|
|
720053
720294
|
children: [
|
|
720295
|
+
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720296
|
+
dimColor: true,
|
|
720297
|
+
color: "subtle",
|
|
720298
|
+
children: "Focused model \xB7 full name"
|
|
720299
|
+
}, undefined, false, undefined, this),
|
|
720054
720300
|
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720055
720301
|
bold: true,
|
|
720056
720302
|
color: "text",
|
|
720057
|
-
children:
|
|
720303
|
+
children: fullProviderModelDisplayName(selectedProvider?.value ?? "", {
|
|
720304
|
+
id: focusedModel.value,
|
|
720305
|
+
displayName: focusedModel.label
|
|
720306
|
+
})
|
|
720058
720307
|
}, undefined, false, undefined, this),
|
|
720059
|
-
selectedProvider?.value === "openrouter" && /* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720060
|
-
dimColor: true,
|
|
720061
|
-
color: "subtle",
|
|
720062
|
-
children: [
|
|
720063
|
-
"ID: ",
|
|
720064
|
-
focusedModel.value
|
|
720065
|
-
]
|
|
720066
|
-
}, undefined, true, undefined, this),
|
|
720067
720308
|
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720068
720309
|
dimColor: true,
|
|
720069
720310
|
children: focusedModel.description
|
|
720070
720311
|
}, undefined, false, undefined, this),
|
|
720071
|
-
focusedSupportsEffort && /* @__PURE__ */ jsx_dev_runtime336.jsxDEV(
|
|
720312
|
+
focusedSupportsEffort && /* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedBox_default, {
|
|
720313
|
+
flexDirection: "column",
|
|
720072
720314
|
children: [
|
|
720073
720315
|
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720074
|
-
color: "ur",
|
|
720075
720316
|
children: [
|
|
720076
|
-
|
|
720077
|
-
|
|
720078
|
-
|
|
720317
|
+
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720318
|
+
color: "ur",
|
|
720319
|
+
children: [
|
|
720320
|
+
effortLevelToSymbol(displayedEffort),
|
|
720321
|
+
" ",
|
|
720322
|
+
displayedEffort.toUpperCase()
|
|
720323
|
+
]
|
|
720324
|
+
}, undefined, true, undefined, this),
|
|
720325
|
+
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720326
|
+
dimColor: true,
|
|
720327
|
+
color: "subtle",
|
|
720328
|
+
children: [
|
|
720329
|
+
" ",
|
|
720330
|
+
"provider effort \xB7 use \u2190 \u2192 to adjust"
|
|
720331
|
+
]
|
|
720332
|
+
}, undefined, true, undefined, this)
|
|
720079
720333
|
]
|
|
720080
720334
|
}, undefined, true, undefined, this),
|
|
720081
720335
|
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720082
720336
|
dimColor: true,
|
|
720083
720337
|
color: "subtle",
|
|
720084
720338
|
children: [
|
|
720085
|
-
" ",
|
|
720086
|
-
"
|
|
720339
|
+
"Provider levels: ",
|
|
720340
|
+
focusedEffortLevels.join(" \xB7 ")
|
|
720087
720341
|
]
|
|
720088
720342
|
}, undefined, true, undefined, this)
|
|
720089
720343
|
]
|
|
720090
|
-
}, undefined, true, undefined, this)
|
|
720344
|
+
}, undefined, true, undefined, this),
|
|
720345
|
+
!focusedSupportsEffort && effortCapabilityLoading && /* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720346
|
+
dimColor: true,
|
|
720347
|
+
color: "subtle",
|
|
720348
|
+
children: "Checking this model's provider effort levels\u2026"
|
|
720349
|
+
}, undefined, false, undefined, this),
|
|
720350
|
+
!focusedSupportsEffort && !effortCapabilityLoading && /* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720351
|
+
dimColor: true,
|
|
720352
|
+
color: "subtle",
|
|
720353
|
+
children: "Graded effort not advertised for this model."
|
|
720354
|
+
}, undefined, false, undefined, this),
|
|
720355
|
+
effortCapabilityWarning && /* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720356
|
+
dimColor: true,
|
|
720357
|
+
color: "error",
|
|
720358
|
+
children: effortCapabilityWarning
|
|
720359
|
+
}, undefined, false, undefined, this)
|
|
720091
720360
|
]
|
|
720092
720361
|
}, undefined, true, undefined, this),
|
|
720093
720362
|
modelWarning && /* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedBox_default, {
|
|
@@ -720154,8 +720423,8 @@ function getProviderKeyInputColumns(terminalColumns) {
|
|
|
720154
720423
|
const columns = Number.isFinite(terminalColumns) && terminalColumns > 0 ? Math.floor(terminalColumns) : 80;
|
|
720155
720424
|
return Math.max(8, columns - 20);
|
|
720156
720425
|
}
|
|
720157
|
-
function cycleProviderPickerEffort(current, direction,
|
|
720158
|
-
const levels =
|
|
720426
|
+
function cycleProviderPickerEffort(current, direction, supportedLevels) {
|
|
720427
|
+
const levels = supportedLevels.length > 0 ? [...supportedLevels] : [current];
|
|
720159
720428
|
const index2 = levels.indexOf(current);
|
|
720160
720429
|
const currentIndex = index2 >= 0 ? index2 : levels.indexOf("high");
|
|
720161
720430
|
const delta = direction === "right" ? 1 : -1;
|
|
@@ -722139,7 +722408,12 @@ __export(exports_effort, {
|
|
|
722139
722408
|
executeEffort: () => executeEffort,
|
|
722140
722409
|
call: () => call168
|
|
722141
722410
|
});
|
|
722142
|
-
function setEffortValue(effortValue, model) {
|
|
722411
|
+
function setEffortValue(effortValue, model, provider = getRuntimeProvider()) {
|
|
722412
|
+
if (model && !modelSupportsEffort(model, provider)) {
|
|
722413
|
+
return {
|
|
722414
|
+
message: `Not applied: ${model} on ${provider} does not advertise graded reasoning-effort levels.`
|
|
722415
|
+
};
|
|
722416
|
+
}
|
|
722143
722417
|
const persistable = toPersistableEffort(effortValue);
|
|
722144
722418
|
if (persistable !== undefined) {
|
|
722145
722419
|
const result = updateSettingsForSource("userSettings", {
|
|
@@ -722174,40 +722448,56 @@ function setEffortValue(effortValue, model) {
|
|
|
722174
722448
|
}
|
|
722175
722449
|
const description = getEffortValueDescription(effortValue);
|
|
722176
722450
|
const suffix = persistable !== undefined ? "" : " (this session only)";
|
|
722177
|
-
const appliedLevel = model ?
|
|
722451
|
+
const appliedLevel = model && typeof effortValue === "string" ? resolveProviderEffortLevel(model, effortValue, provider) : effortValue;
|
|
722178
722452
|
if (typeof effortValue === "string" && appliedLevel !== effortValue) {
|
|
722179
722453
|
return {
|
|
722180
|
-
message: `Requested
|
|
722454
|
+
message: `Requested ${effortValue}${suffix}; applied ${appliedLevel} for ${model} on ${provider}: ${getEffortValueDescription(appliedLevel)}`,
|
|
722181
722455
|
effortUpdate: {
|
|
722182
722456
|
value: effortValue
|
|
722183
722457
|
}
|
|
722184
722458
|
};
|
|
722185
722459
|
}
|
|
722186
722460
|
return {
|
|
722187
|
-
message: `Set effort level to ${effortValue}${suffix}: ${description}`,
|
|
722461
|
+
message: `Set effort level to ${effortValue}${suffix} for ${model ?? "the active model"} on ${provider}: ${description}`,
|
|
722188
722462
|
effortUpdate: {
|
|
722189
722463
|
value: effortValue
|
|
722190
722464
|
}
|
|
722191
722465
|
};
|
|
722192
722466
|
}
|
|
722193
|
-
function showCurrentEffort(appStateEffort, model) {
|
|
722467
|
+
function showCurrentEffort(appStateEffort, model, provider = getRuntimeProvider()) {
|
|
722194
722468
|
const envOverride = getEffortEnvOverride();
|
|
722195
722469
|
const effectiveValue = envOverride === null ? undefined : envOverride ?? appStateEffort;
|
|
722196
722470
|
if (effectiveValue === undefined) {
|
|
722197
|
-
|
|
722471
|
+
if (!modelSupportsEffort(model, provider)) {
|
|
722472
|
+
return {
|
|
722473
|
+
message: `Effort: unavailable \u2014 ${model} on ${provider} does not advertise graded reasoning-effort levels.`
|
|
722474
|
+
};
|
|
722475
|
+
}
|
|
722476
|
+
const applied = resolveAppliedEffort(model, appStateEffort, provider);
|
|
722477
|
+
if (applied === undefined) {
|
|
722478
|
+
return {
|
|
722479
|
+
message: `Effort: auto for ${model} on ${provider}; UR sends no explicit effort and the provider chooses its default. Provider levels: ${getSupportedEffortLevelsForModel(model, provider).join(", ")}`
|
|
722480
|
+
};
|
|
722481
|
+
}
|
|
722482
|
+
const level = getDisplayedEffortLevel(model, appStateEffort, provider);
|
|
722483
|
+
return {
|
|
722484
|
+
message: `Effort: auto; applied ${level} for ${model} on ${provider}. Provider levels: ${getSupportedEffortLevelsForModel(model, provider).join(", ")}`
|
|
722485
|
+
};
|
|
722486
|
+
}
|
|
722487
|
+
if (!modelSupportsEffort(model, provider)) {
|
|
722198
722488
|
return {
|
|
722199
|
-
message: `Effort
|
|
722489
|
+
message: `Effort: unavailable \u2014 ${model} on ${provider} does not advertise graded reasoning-effort levels.`
|
|
722200
722490
|
};
|
|
722201
722491
|
}
|
|
722202
|
-
const appliedLevel = getDisplayedEffortLevel(model, appStateEffort);
|
|
722492
|
+
const appliedLevel = getDisplayedEffortLevel(model, appStateEffort, provider);
|
|
722203
722493
|
if (typeof effectiveValue === "string" && appliedLevel !== effectiveValue) {
|
|
722204
722494
|
return {
|
|
722205
|
-
message: `Requested effort: ${effectiveValue}; applied effort for ${model}: ${appliedLevel} (${getEffortValueDescription(appliedLevel)})`
|
|
722495
|
+
message: `Requested effort: ${effectiveValue}; applied effort for ${model} on ${provider}: ${appliedLevel} (${getEffortValueDescription(appliedLevel)}). Provider levels: ${getSupportedEffortLevelsForModel(model, provider).join(", ")}`
|
|
722206
722496
|
};
|
|
722207
722497
|
}
|
|
722208
722498
|
const description = getEffortValueDescription(effectiveValue);
|
|
722209
722499
|
return {
|
|
722210
|
-
message: `Current effort
|
|
722500
|
+
message: `Current effort: ${effectiveValue}; applied ${appliedLevel} for ${model} on ${provider} (${description}). Provider levels: ${getSupportedEffortLevelsForModel(model, provider).join(", ")}`
|
|
722211
722501
|
};
|
|
722212
722502
|
}
|
|
722213
722503
|
function unsetEffortLevel() {
|
|
@@ -722239,17 +722529,17 @@ function unsetEffortLevel() {
|
|
|
722239
722529
|
}
|
|
722240
722530
|
};
|
|
722241
722531
|
}
|
|
722242
|
-
function executeEffort(args, model) {
|
|
722532
|
+
function executeEffort(args, model, provider = getRuntimeProvider()) {
|
|
722243
722533
|
const normalized = args.toLowerCase();
|
|
722244
722534
|
if (normalized === "auto" || normalized === "unset") {
|
|
722245
722535
|
return unsetEffortLevel();
|
|
722246
722536
|
}
|
|
722247
722537
|
if (!isEffortLevel(normalized)) {
|
|
722248
722538
|
return {
|
|
722249
|
-
message: `Invalid argument: ${args}. Valid options are: low, medium, high, max, auto`
|
|
722539
|
+
message: `Invalid argument: ${args}. Valid options are: minimal, low, medium, high, xhigh, max, auto`
|
|
722250
722540
|
};
|
|
722251
722541
|
}
|
|
722252
|
-
return setEffortValue(normalized, model);
|
|
722542
|
+
return setEffortValue(normalized, model, provider);
|
|
722253
722543
|
}
|
|
722254
722544
|
function ShowCurrentEffort(t0) {
|
|
722255
722545
|
const {
|
|
@@ -722257,9 +722547,10 @@ function ShowCurrentEffort(t0) {
|
|
|
722257
722547
|
} = t0;
|
|
722258
722548
|
const effortValue = useAppState(_temp156);
|
|
722259
722549
|
const model = useMainLoopModel();
|
|
722550
|
+
const provider = getRuntimeProvider();
|
|
722260
722551
|
const {
|
|
722261
722552
|
message
|
|
722262
|
-
} = showCurrentEffort(effortValue, model);
|
|
722553
|
+
} = showCurrentEffort(effortValue, model, provider);
|
|
722263
722554
|
onDone(message);
|
|
722264
722555
|
return null;
|
|
722265
722556
|
}
|
|
@@ -722306,29 +722597,33 @@ function ApplyEffortAndClose(t0) {
|
|
|
722306
722597
|
async function call168(onDone, _context, args) {
|
|
722307
722598
|
args = args?.trim() || "";
|
|
722308
722599
|
if (COMMON_HELP_ARGS2.includes(args)) {
|
|
722309
|
-
onDone(`Usage: /effort [low|medium|high|max|auto]
|
|
722600
|
+
onDone(`Usage: /effort [minimal|low|medium|high|xhigh|max|auto]
|
|
722601
|
+
|
|
722602
|
+
UR reads the selected model's exact provider-advertised levels. \`max\` means that model's real ceiling, so it resolves to max, xhigh, or high as appropriate.
|
|
722310
722603
|
|
|
722311
722604
|
Effort levels:
|
|
722605
|
+
- minimal: Lowest latency and cost
|
|
722312
722606
|
- low: Quick, straightforward implementation
|
|
722313
722607
|
- medium: Balanced approach with standard testing
|
|
722314
722608
|
- high: Comprehensive implementation with extensive testing
|
|
722315
|
-
-
|
|
722316
|
-
-
|
|
722609
|
+
- xhigh: Extended reasoning above high
|
|
722610
|
+
- max: The selected model's highest advertised level
|
|
722611
|
+
- auto: Use the model/provider default`);
|
|
722317
722612
|
return;
|
|
722318
722613
|
}
|
|
722319
|
-
if (!args || args === "current" || args === "status") {
|
|
722320
|
-
return /* @__PURE__ */ jsx_dev_runtime345.jsxDEV(ShowCurrentEffort, {
|
|
722321
|
-
onDone
|
|
722322
|
-
}, undefined, false, undefined, this);
|
|
722323
|
-
}
|
|
722324
722614
|
const model = getMainLoopModel();
|
|
722325
722615
|
const runtimeProvider = getRuntimeProvider();
|
|
722326
|
-
if (
|
|
722327
|
-
await
|
|
722616
|
+
if (!getSupportedEffortLevelsForModel(model, runtimeProvider).length) {
|
|
722617
|
+
await ensureProviderReasoningCapabilitiesForModel(runtimeProvider, model).catch(() => {
|
|
722328
722618
|
return;
|
|
722329
722619
|
});
|
|
722330
722620
|
}
|
|
722331
|
-
|
|
722621
|
+
if (!args || args === "current" || args === "status") {
|
|
722622
|
+
return /* @__PURE__ */ jsx_dev_runtime345.jsxDEV(ShowCurrentEffort, {
|
|
722623
|
+
onDone
|
|
722624
|
+
}, undefined, false, undefined, this);
|
|
722625
|
+
}
|
|
722626
|
+
const result = executeEffort(args, model, runtimeProvider);
|
|
722332
722627
|
return /* @__PURE__ */ jsx_dev_runtime345.jsxDEV(ApplyEffortAndClose, {
|
|
722333
722628
|
result,
|
|
722334
722629
|
onDone
|
|
@@ -722358,7 +722653,7 @@ var init_effort3 = __esm(() => {
|
|
|
722358
722653
|
type: "local-jsx",
|
|
722359
722654
|
name: "effort",
|
|
722360
722655
|
description: "Set effort level for model usage",
|
|
722361
|
-
argumentHint: "[low|medium|high|max|auto]",
|
|
722656
|
+
argumentHint: "[minimal|low|medium|high|xhigh|max|auto]",
|
|
722362
722657
|
get immediate() {
|
|
722363
722658
|
return shouldInferenceConfigCommandBeImmediate();
|
|
722364
722659
|
},
|
|
@@ -727733,7 +728028,7 @@ function generateHtmlReport(data, insights) {
|
|
|
727733
728028
|
</html>`;
|
|
727734
728029
|
}
|
|
727735
728030
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
727736
|
-
const version3 = typeof MACRO !== "undefined" ? "1.81.
|
|
728031
|
+
const version3 = typeof MACRO !== "undefined" ? "1.81.8" : "unknown";
|
|
727737
728032
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
727738
728033
|
const facets_summary = {
|
|
727739
728034
|
total: facets.size,
|
|
@@ -732046,7 +732341,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
732046
732341
|
init_settings2();
|
|
732047
732342
|
init_slowOperations();
|
|
732048
732343
|
init_uuid();
|
|
732049
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.81.
|
|
732344
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.81.8" : "unknown";
|
|
732050
732345
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
732051
732346
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
732052
732347
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -733261,7 +733556,7 @@ var init_filesystem = __esm(() => {
|
|
|
733261
733556
|
});
|
|
733262
733557
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
733263
733558
|
const nonce = randomBytes24(16).toString("hex");
|
|
733264
|
-
return join243(getURTempDir(), "bundled-skills", "1.81.
|
|
733559
|
+
return join243(getURTempDir(), "bundled-skills", "1.81.8", nonce);
|
|
733265
733560
|
});
|
|
733266
733561
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
733267
733562
|
});
|
|
@@ -739661,7 +739956,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
739661
739956
|
}
|
|
739662
739957
|
function computeFingerprintFromMessages(messages) {
|
|
739663
739958
|
const firstMessageText = extractFirstMessageText(messages);
|
|
739664
|
-
return computeFingerprint(firstMessageText, "1.81.
|
|
739959
|
+
return computeFingerprint(firstMessageText, "1.81.8");
|
|
739665
739960
|
}
|
|
739666
739961
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
739667
739962
|
var init_fingerprint = () => {};
|
|
@@ -739854,8 +740149,8 @@ function should1hCacheTTL(querySource) {
|
|
|
739854
740149
|
}
|
|
739855
740150
|
return querySource !== undefined && allowlist.some((pattern2) => pattern2.endsWith("*") ? querySource.startsWith(pattern2.slice(0, -1)) : querySource === pattern2);
|
|
739856
740151
|
}
|
|
739857
|
-
function configureEffortParams(effortValue, outputConfig, extraBodyParams, betas, model) {
|
|
739858
|
-
if (!modelSupportsEffort(model) || "effort" in outputConfig) {
|
|
740152
|
+
function configureEffortParams(effortValue, outputConfig, extraBodyParams, betas, model, provider = getRuntimeProvider()) {
|
|
740153
|
+
if (!modelSupportsEffort(model, provider) || "effort" in outputConfig) {
|
|
739859
740154
|
return;
|
|
739860
740155
|
}
|
|
739861
740156
|
if (effortValue === undefined) {
|
|
@@ -740407,7 +740702,7 @@ ${deferredToolList}
|
|
|
740407
740702
|
const outputConfig = {
|
|
740408
740703
|
...extraBodyParams.output_config ?? {}
|
|
740409
740704
|
};
|
|
740410
|
-
configureEffortParams(effort, outputConfig, extraBodyParams, betasParams, options5.model);
|
|
740705
|
+
configureEffortParams(effort, outputConfig, extraBodyParams, betasParams, options5.model, options5.providerSettings?.active);
|
|
740411
740706
|
configureTaskBudgetParams(options5.taskBudget, outputConfig, betasParams);
|
|
740412
740707
|
if (options5.outputFormat && !("format" in outputConfig)) {
|
|
740413
740708
|
outputConfig.format = options5.outputFormat;
|
|
@@ -741596,7 +741891,7 @@ async function sideQuery(opts) {
|
|
|
741596
741891
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
741597
741892
|
}
|
|
741598
741893
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
741599
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.81.
|
|
741894
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.81.8");
|
|
741600
741895
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
741601
741896
|
const systemBlocks = [
|
|
741602
741897
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -746430,7 +746725,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
746430
746725
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
746431
746726
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
746432
746727
|
betas: getSdkBetas(),
|
|
746433
|
-
ur_version: "1.81.
|
|
746728
|
+
ur_version: "1.81.8",
|
|
746434
746729
|
output_style: outputStyle,
|
|
746435
746730
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
746436
746731
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -760266,7 +760561,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
760266
760561
|
function getSemverPart(version3) {
|
|
760267
760562
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
760268
760563
|
}
|
|
760269
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.81.
|
|
760564
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.81.8") {
|
|
760270
760565
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
|
|
760271
760566
|
if (!updatedVersion) {
|
|
760272
760567
|
return null;
|
|
@@ -760315,7 +760610,7 @@ function AutoUpdater({
|
|
|
760315
760610
|
return;
|
|
760316
760611
|
}
|
|
760317
760612
|
if (false) {}
|
|
760318
|
-
const currentVersion = "1.81.
|
|
760613
|
+
const currentVersion = "1.81.8";
|
|
760319
760614
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
760320
760615
|
let latestVersion = await getLatestVersion(channel);
|
|
760321
760616
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -760544,12 +760839,12 @@ function NativeAutoUpdater({
|
|
|
760544
760839
|
logEvent("tengu_native_auto_updater_start", {});
|
|
760545
760840
|
try {
|
|
760546
760841
|
const maxVersion = await getMaxVersion();
|
|
760547
|
-
if (maxVersion && gt("1.81.
|
|
760842
|
+
if (maxVersion && gt("1.81.8", maxVersion)) {
|
|
760548
760843
|
const msg = await getMaxVersionMessage();
|
|
760549
760844
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
760550
760845
|
}
|
|
760551
760846
|
const result = await installLatest(channel);
|
|
760552
|
-
const currentVersion = "1.81.
|
|
760847
|
+
const currentVersion = "1.81.8";
|
|
760553
760848
|
const latencyMs = Date.now() - startTime;
|
|
760554
760849
|
if (result.lockFailed) {
|
|
760555
760850
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -760686,17 +760981,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
760686
760981
|
const maxVersion = await getMaxVersion();
|
|
760687
760982
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
760688
760983
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
760689
|
-
if (gte("1.81.
|
|
760690
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.81.
|
|
760984
|
+
if (gte("1.81.8", maxVersion)) {
|
|
760985
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.81.8"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
760691
760986
|
setUpdateAvailable(false);
|
|
760692
760987
|
return;
|
|
760693
760988
|
}
|
|
760694
760989
|
latest = maxVersion;
|
|
760695
760990
|
}
|
|
760696
|
-
const hasUpdate = latest && !gte("1.81.
|
|
760991
|
+
const hasUpdate = latest && !gte("1.81.8", latest) && !shouldSkipVersion(latest);
|
|
760697
760992
|
setUpdateAvailable(!!hasUpdate);
|
|
760698
760993
|
if (hasUpdate) {
|
|
760699
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.81.
|
|
760994
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.81.8"} -> ${latest}`);
|
|
760700
760995
|
}
|
|
760701
760996
|
};
|
|
760702
760997
|
$2[0] = t1;
|
|
@@ -760730,7 +761025,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
760730
761025
|
wrap: "truncate",
|
|
760731
761026
|
children: [
|
|
760732
761027
|
"currentVersion: ",
|
|
760733
|
-
"1.81.
|
|
761028
|
+
"1.81.8"
|
|
760734
761029
|
]
|
|
760735
761030
|
}, undefined, true, undefined, this);
|
|
760736
761031
|
$2[3] = verbose;
|
|
@@ -771583,7 +771878,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
771583
771878
|
project_dir: getOriginalCwd(),
|
|
771584
771879
|
added_dirs: addedDirs
|
|
771585
771880
|
},
|
|
771586
|
-
version: "1.81.
|
|
771881
|
+
version: "1.81.8",
|
|
771587
771882
|
output_style: {
|
|
771588
771883
|
name: outputStyleName
|
|
771589
771884
|
},
|
|
@@ -771718,7 +772013,7 @@ function StatusLineInner({
|
|
|
771718
772013
|
const attention = customStatusError ?? taskAttention;
|
|
771719
772014
|
const terminalSize = React133.useContext(TerminalSizeContext);
|
|
771720
772015
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
771721
|
-
version: "1.81.
|
|
772016
|
+
version: "1.81.8",
|
|
771722
772017
|
providerLabel: providerRuntime.providerLabel,
|
|
771723
772018
|
authMode: providerRuntime.authLabel,
|
|
771724
772019
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -783974,7 +784269,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
783974
784269
|
} catch {}
|
|
783975
784270
|
const data = {
|
|
783976
784271
|
trigger: trigger2,
|
|
783977
|
-
version: "1.81.
|
|
784272
|
+
version: "1.81.8",
|
|
783978
784273
|
platform: process.platform,
|
|
783979
784274
|
transcript,
|
|
783980
784275
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -786748,7 +787043,7 @@ var init_controlSchemas = __esm(() => {
|
|
|
786748
787043
|
})).describe("Ordered low-to-high priority \u2014 later entries override earlier ones."),
|
|
786749
787044
|
applied: exports_external.object({
|
|
786750
787045
|
model: exports_external.string(),
|
|
786751
|
-
effort: exports_external.enum(["low", "medium", "high", "max"]).nullable()
|
|
787046
|
+
effort: exports_external.enum(["minimal", "low", "medium", "high", "xhigh", "max"]).nullable()
|
|
786752
787047
|
}).optional().describe("Runtime-resolved values after env overrides, session state, and model-specific defaults are applied. Unlike `effective` (disk merge), these reflect what will actually be sent to the API.")
|
|
786753
787048
|
}).describe("Effective merged settings plus raw per-source settings in merge order."));
|
|
786754
787049
|
SDKControlElicitationRequestSchema = lazySchema(() => exports_external.object({
|
|
@@ -796343,13 +796638,13 @@ function WelcomeV2() {
|
|
|
796343
796638
|
dimColor: true,
|
|
796344
796639
|
children: [
|
|
796345
796640
|
"v",
|
|
796346
|
-
"1.81.
|
|
796641
|
+
"1.81.8"
|
|
796347
796642
|
]
|
|
796348
796643
|
}, undefined, true, undefined, this)
|
|
796349
796644
|
]
|
|
796350
796645
|
}, undefined, true, undefined, this),
|
|
796351
796646
|
/* @__PURE__ */ jsx_dev_runtime464.jsxDEV(UrHouse, {
|
|
796352
|
-
size:
|
|
796647
|
+
size: AUTOMATIC_HOUSE_SIZE
|
|
796353
796648
|
}, undefined, false, undefined, this),
|
|
796354
796649
|
/* @__PURE__ */ jsx_dev_runtime464.jsxDEV(ThemedText, {
|
|
796355
796650
|
color: "ur",
|
|
@@ -797603,7 +797898,7 @@ function completeOnboarding() {
|
|
|
797603
797898
|
saveGlobalConfig((current) => ({
|
|
797604
797899
|
...current,
|
|
797605
797900
|
hasCompletedOnboarding: true,
|
|
797606
|
-
lastOnboardingVersion: "1.81.
|
|
797901
|
+
lastOnboardingVersion: "1.81.8"
|
|
797607
797902
|
}));
|
|
797608
797903
|
}
|
|
797609
797904
|
function showDialog(root2, renderer) {
|
|
@@ -802749,7 +803044,7 @@ function appendToLog(path28, message) {
|
|
|
802749
803044
|
cwd: getFsImplementation().cwd(),
|
|
802750
803045
|
userType: process.env.USER_TYPE,
|
|
802751
803046
|
sessionId: getSessionId(),
|
|
802752
|
-
version: "1.81.
|
|
803047
|
+
version: "1.81.8"
|
|
802753
803048
|
};
|
|
802754
803049
|
getLogWriter(path28).write(messageWithTimestamp);
|
|
802755
803050
|
}
|
|
@@ -806913,8 +807208,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
806913
807208
|
}
|
|
806914
807209
|
async function checkEnvLessBridgeMinVersion() {
|
|
806915
807210
|
const cfg = await getEnvLessBridgeConfig();
|
|
806916
|
-
if (cfg.min_version && lt("1.81.
|
|
806917
|
-
return `Your version of UR (${"1.81.
|
|
807211
|
+
if (cfg.min_version && lt("1.81.8", cfg.min_version)) {
|
|
807212
|
+
return `Your version of UR (${"1.81.8"}) is too old for Remote Control.
|
|
806918
807213
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
806919
807214
|
}
|
|
806920
807215
|
return null;
|
|
@@ -807388,7 +807683,7 @@ async function initBridgeCore(params) {
|
|
|
807388
807683
|
const rawApi = createBridgeApiClient({
|
|
807389
807684
|
baseUrl,
|
|
807390
807685
|
getAccessToken,
|
|
807391
|
-
runnerVersion: "1.81.
|
|
807686
|
+
runnerVersion: "1.81.8",
|
|
807392
807687
|
onDebug: logForDebugging,
|
|
807393
807688
|
onAuth401,
|
|
807394
807689
|
getTrustedDeviceToken
|
|
@@ -809670,10 +809965,12 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
|
|
|
809670
809965
|
});
|
|
809671
809966
|
}
|
|
809672
809967
|
const modelOptions = getModelOptions();
|
|
809968
|
+
const runtimeProvider = getRuntimeProvider();
|
|
809673
809969
|
const modelInfos = modelOptions.map((option29) => {
|
|
809674
809970
|
const modelId = option29.value === null ? "default" : option29.value;
|
|
809675
809971
|
const resolvedModel = modelId === "default" ? getDefaultMainLoopModel() : parseUserSpecifiedModel(modelId);
|
|
809676
|
-
const
|
|
809972
|
+
const supportedEffortLevels = getSupportedEffortLevelsForModel(resolvedModel, runtimeProvider);
|
|
809973
|
+
const hasEffort = supportedEffortLevels.length > 0;
|
|
809677
809974
|
const hasAdaptiveThinking = modelSupportsAdaptiveThinking(resolvedModel);
|
|
809678
809975
|
const hasFastMode = isFastModeSupportedByModel(option29.value);
|
|
809679
809976
|
const hasAutoMode = modelSupportsAutoMode(resolvedModel);
|
|
@@ -809683,7 +809980,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
|
|
|
809683
809980
|
description: option29.description,
|
|
809684
809981
|
...hasEffort && {
|
|
809685
809982
|
supportsEffort: true,
|
|
809686
|
-
supportedEffortLevels
|
|
809983
|
+
supportedEffortLevels
|
|
809687
809984
|
},
|
|
809688
809985
|
...hasAdaptiveThinking && { supportsAdaptiveThinking: true },
|
|
809689
809986
|
...hasFastMode && { supportsFastMode: true },
|
|
@@ -811051,7 +811348,8 @@ ${m.text}
|
|
|
811051
811348
|
} else if (message.request.subtype === "get_settings") {
|
|
811052
811349
|
const currentAppState = getAppState();
|
|
811053
811350
|
const model = getMainLoopModel();
|
|
811054
|
-
const
|
|
811351
|
+
const provider = getRuntimeProvider();
|
|
811352
|
+
const effort = modelSupportsEffort(model, provider) ? resolveAppliedEffort(model, currentAppState.effortValue, provider) : undefined;
|
|
811055
811353
|
sendControlResponseSuccess(message, {
|
|
811056
811354
|
...getSettingsWithSources(),
|
|
811057
811355
|
applied: {
|
|
@@ -816861,7 +817159,7 @@ function getAgUiCapabilities() {
|
|
|
816861
817159
|
name: "UR-Nexus",
|
|
816862
817160
|
type: "ur-nexus",
|
|
816863
817161
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
816864
|
-
version: "1.81.
|
|
817162
|
+
version: "1.81.8",
|
|
816865
817163
|
provider: "UR",
|
|
816866
817164
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
816867
817165
|
},
|
|
@@ -818088,7 +818386,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
818088
818386
|
};
|
|
818089
818387
|
const server2 = new Server({
|
|
818090
818388
|
name: "ur-nexus",
|
|
818091
|
-
version: "1.81.
|
|
818389
|
+
version: "1.81.8"
|
|
818092
818390
|
}, {
|
|
818093
818391
|
capabilities: {
|
|
818094
818392
|
tools: {}
|
|
@@ -819292,7 +819590,7 @@ function thrownResponse(error40) {
|
|
|
819292
819590
|
}
|
|
819293
819591
|
async function createUrMcp2026Runtime(options5) {
|
|
819294
819592
|
const server2 = createMCPServer(options5.cwd, options5.debug === true, options5.verbose === true);
|
|
819295
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.81.
|
|
819593
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.81.8" }, { capabilities: {} });
|
|
819296
819594
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
819297
819595
|
try {
|
|
819298
819596
|
await server2.connect(serverTransport);
|
|
@@ -819303,7 +819601,7 @@ async function createUrMcp2026Runtime(options5) {
|
|
|
819303
819601
|
}
|
|
819304
819602
|
const runtime2 = new Mcp2026Runtime({
|
|
819305
819603
|
cwd: options5.cwd,
|
|
819306
|
-
version: "1.81.
|
|
819604
|
+
version: "1.81.8",
|
|
819307
819605
|
backend: {
|
|
819308
819606
|
listTools: async () => {
|
|
819309
819607
|
const listed = await client2.listTools();
|
|
@@ -822038,7 +822336,7 @@ async function update() {
|
|
|
822038
822336
|
logEvent("tengu_update_check", {});
|
|
822039
822337
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
822040
822338
|
const result = await checkUpgradeStatus({
|
|
822041
|
-
currentVersion: "1.81.
|
|
822339
|
+
currentVersion: "1.81.8",
|
|
822042
822340
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
822043
822341
|
installationType: diagnostic2.installationType,
|
|
822044
822342
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -822435,9 +822733,9 @@ async function run3() {
|
|
|
822435
822733
|
}).hideHelp()).option("--replay-user-messages", "Re-emit user messages from stdin back on stdout for acknowledgment (only works with --input-format=stream-json and --output-format=stream-json)", () => true).addOption(new Option("--enable-auth-status", "Enable auth status messages in SDK mode").default(false).hideHelp()).option("--allowedTools, --allowed-tools <tools...>", 'Comma or space-separated list of tool names to allow (e.g. "Bash(git:*) Edit")').option("--tools <tools...>", 'Specify the list of available tools from the built-in set. Use "" to disable all tools, "default" to use all tools, or specify tool names (e.g. "Bash,Edit,Read").').option("--disallowedTools, --disallowed-tools <tools...>", 'Comma or space-separated list of tool names to deny (e.g. "Bash(git:*) Edit")').option("--mcp-config <configs...>", "Load MCP servers from JSON files or strings (space-separated)").addOption(new Option("--permission-prompt-tool <tool>", "MCP tool to use for permission prompts (only works with --print)").argParser(String).hideHelp()).addOption(new Option("--system-prompt <prompt>", "System prompt to use for the session").argParser(String)).addOption(new Option("--system-prompt-file <file>", "Read system prompt from a file").argParser(String).hideHelp()).addOption(new Option("--append-system-prompt <prompt>", "Append a system prompt to the default system prompt").argParser(String)).addOption(new Option("--append-system-prompt-file <file>", "Read system prompt from a file and append to the default system prompt").argParser(String).hideHelp()).addOption(new Option("--permission-mode <mode>", "Permission mode to use for the session").argParser(String).choices(PERMISSION_MODES)).option("-c, --continue", "Continue the most recent conversation in the current directory", () => true).option("-r, --resume [value]", "Resume a conversation by session ID, or open interactive picker with optional search term", (value2) => value2 || true).option("--fork-session", "When resuming, create a new session ID instead of reusing the original (use with --resume or --continue)", () => true).addOption(new Option("--prefill <text>", "Pre-fill the prompt input with text without submitting it").hideHelp()).addOption(new Option("--deep-link-origin", "Signal that this session was launched from a deep link").hideHelp()).addOption(new Option("--deep-link-repo <slug>", "Repo slug the deep link ?repo= parameter resolved to the current cwd").hideHelp()).addOption(new Option("--deep-link-last-fetch <ms>", "FETCH_HEAD mtime in epoch ms, precomputed by the deep link trampoline").argParser((v) => {
|
|
822436
822734
|
const n3 = Number(v);
|
|
822437
822735
|
return Number.isFinite(n3) ? n3 : undefined;
|
|
822438
|
-
}).hideHelp()).option("--from-pr [value]", "Resume a session linked to a PR by PR number/URL, or open interactive picker with optional search term", (value2) => value2 || true).option("--no-session-persistence", "Disable session persistence - sessions will not be saved to disk and cannot be resumed (only works with --print)").addOption(new Option("--resume-session-at <message id>", "When resuming, only messages up to and including the assistant message with <message.id> (use with --resume in print mode)").argParser(String).hideHelp()).addOption(new Option("--rewind-files <user-message-id>", "Restore files to state at the specified user message and exit (requires --resume)").hideHelp()).option("--model <model>", `Local Ollama app model for the current session (for example, 'qwen3-coder:480b-cloud' or 'qwen2.5-coder:latest').`).addOption(new Option("--effort <level>", `Effort level for the current session (low, medium, high, max)`).argParser((rawValue) => {
|
|
822736
|
+
}).hideHelp()).option("--from-pr [value]", "Resume a session linked to a PR by PR number/URL, or open interactive picker with optional search term", (value2) => value2 || true).option("--no-session-persistence", "Disable session persistence - sessions will not be saved to disk and cannot be resumed (only works with --print)").addOption(new Option("--resume-session-at <message id>", "When resuming, only messages up to and including the assistant message with <message.id> (use with --resume in print mode)").argParser(String).hideHelp()).addOption(new Option("--rewind-files <user-message-id>", "Restore files to state at the specified user message and exit (requires --resume)").hideHelp()).option("--model <model>", `Local Ollama app model for the current session (for example, 'qwen3-coder:480b-cloud' or 'qwen2.5-coder:latest').`).addOption(new Option("--effort <level>", `Effort level for the current session (minimal, low, medium, high, xhigh, max)`).argParser((rawValue) => {
|
|
822439
822737
|
const value2 = rawValue.toLowerCase();
|
|
822440
|
-
const allowed = ["low", "medium", "high", "max"];
|
|
822738
|
+
const allowed = ["minimal", "low", "medium", "high", "xhigh", "max"];
|
|
822441
822739
|
if (!allowed.includes(value2)) {
|
|
822442
822740
|
throw new InvalidArgumentError(`It must be one of: ${allowed.join(", ")}`);
|
|
822443
822741
|
}
|
|
@@ -823366,7 +823664,7 @@ ${customInstructions}` : customInstructions;
|
|
|
823366
823664
|
}
|
|
823367
823665
|
}
|
|
823368
823666
|
logForDiagnosticsNoPII("info", "started", {
|
|
823369
|
-
version: "1.81.
|
|
823667
|
+
version: "1.81.8",
|
|
823370
823668
|
is_native_binary: isInBundledMode()
|
|
823371
823669
|
});
|
|
823372
823670
|
registerCleanup(async () => {
|
|
@@ -824153,7 +824451,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
824153
824451
|
pendingHookMessages
|
|
824154
824452
|
}, renderAndRun);
|
|
824155
824453
|
}
|
|
824156
|
-
}).version("1.81.
|
|
824454
|
+
}).version("1.81.8 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
824157
824455
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
824158
824456
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
824159
824457
|
if (canUserConfigureAdvisor()) {
|
|
@@ -825280,7 +825578,7 @@ if (false) {}
|
|
|
825280
825578
|
async function main2() {
|
|
825281
825579
|
const args = process.argv.slice(2);
|
|
825282
825580
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
825283
|
-
console.log(`${"1.81.
|
|
825581
|
+
console.log(`${"1.81.8"} (UR-Nexus)`);
|
|
825284
825582
|
return;
|
|
825285
825583
|
}
|
|
825286
825584
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|