ur-agent 1.81.0 → 1.81.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/cli.js +614 -451
- package/docs/REDTEAM.md +6 -0
- package/docs/VALIDATION.md +1 -1
- package/docs/providers.md +17 -0
- 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/plugins/core/reverse-skills/.ur-plugin/plugin.json +1 -1
- package/plugins/core/reverse-skills/README.md +6 -0
- package/plugins/core/reverse-skills/UR-INTEGRATION.md +8 -7
- package/plugins/core/reverse-skills/commands/start.md +10 -0
- package/plugins/core/reverse-skills/skills/application-redteam/SKILL.md +1 -1
- package/plugins/core/reverse-skills/skills/binary-reverse/SKILL.md +1 -1
- package/plugins/core/reverse-skills/skills/exploit-development/SKILL.md +1 -1
- package/plugins/core/reverse-skills/skills/forensics-threat-hunting/SKILL.md +1 -1
- package/plugins/core/reverse-skills/skills/llm-agent-security/SKILL.md +1 -1
- package/plugins/core/reverse-skills/skills/malware-edr-research/SKILL.md +1 -1
- package/plugins/core/reverse-skills/skills/platform-radio-security/SKILL.md +1 -1
- package/plugins/core/reverse-skills/skills/research-evidence/SKILL.md +1 -1
- package/plugins/core/reverse-skills/skills/reverse-skill-router/SKILL.md +1 -1
package/dist/cli.js
CHANGED
|
@@ -53073,6 +53073,25 @@ function asCount(value) {
|
|
|
53073
53073
|
function isRecord(value) {
|
|
53074
53074
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
53075
53075
|
}
|
|
53076
|
+
function parseModelReasoningCapabilities(value) {
|
|
53077
|
+
if (!isRecord(value))
|
|
53078
|
+
return;
|
|
53079
|
+
const supportedEfforts = value.supported_efforts === null ? null : Array.isArray(value.supported_efforts) ? Array.from(new Set(value.supported_efforts.filter((entry) => typeof entry === "string").map((entry) => entry.trim().toLowerCase()).filter(Boolean))) : undefined;
|
|
53080
|
+
const defaultEffort = asString(value.default_effort)?.toLowerCase();
|
|
53081
|
+
const defaultEnabled = typeof value.default_enabled === "boolean" ? value.default_enabled : undefined;
|
|
53082
|
+
const mandatory = typeof value.mandatory === "boolean" ? value.mandatory : undefined;
|
|
53083
|
+
const supportsMaxTokens = typeof value.supports_max_tokens === "boolean" ? value.supports_max_tokens : undefined;
|
|
53084
|
+
if (supportedEfforts === undefined && defaultEffort === undefined && defaultEnabled === undefined && mandatory === undefined && supportsMaxTokens === undefined) {
|
|
53085
|
+
return;
|
|
53086
|
+
}
|
|
53087
|
+
return {
|
|
53088
|
+
...supportedEfforts !== undefined ? { supportedEfforts } : {},
|
|
53089
|
+
...defaultEffort !== undefined ? { defaultEffort } : {},
|
|
53090
|
+
...defaultEnabled !== undefined ? { defaultEnabled } : {},
|
|
53091
|
+
...mandatory !== undefined ? { mandatory } : {},
|
|
53092
|
+
...supportsMaxTokens !== undefined ? { supportsMaxTokens } : {}
|
|
53093
|
+
};
|
|
53094
|
+
}
|
|
53076
53095
|
function asEpochSeconds(value) {
|
|
53077
53096
|
if (typeof value === "number" && Number.isFinite(value) && value > 0) {
|
|
53078
53097
|
return Math.floor(value);
|
|
@@ -53144,6 +53163,7 @@ function toDiscoveredModel(entry, providerLabel) {
|
|
|
53144
53163
|
const humanName = asString(raw.display_name) ?? asString(raw.displayName) ?? asString(raw.name);
|
|
53145
53164
|
const supportedParameters = Array.isArray(raw.supported_parameters) ? raw.supported_parameters.filter((value) => typeof value === "string") : Array.isArray(raw.supportedGenerationMethods) ? raw.supportedGenerationMethods.filter((value) => typeof value === "string") : undefined;
|
|
53146
53165
|
const capabilities = isRecord(raw.capabilities) ? raw.capabilities : undefined;
|
|
53166
|
+
const reasoning = parseModelReasoningCapabilities(raw.reasoning);
|
|
53147
53167
|
const expirationDate = asEpochSeconds(raw.expiration_date);
|
|
53148
53168
|
const deprecated = raw.deprecated === true || expirationDate !== undefined && expirationDate <= Math.floor(Date.now() / 1000) || /deprecated/i.test(asString(raw.description) ?? "");
|
|
53149
53169
|
const expires = expirationDate !== undefined && !deprecated ? `expires ${new Date(expirationDate * 1000).toISOString().slice(0, 10)}` : null;
|
|
@@ -53163,6 +53183,7 @@ function toDiscoveredModel(entry, providerLabel) {
|
|
|
53163
53183
|
...outputTokenLimit ? { outputTokenLimit } : {},
|
|
53164
53184
|
...supportedParameters ? { supportedParameters } : {},
|
|
53165
53185
|
...capabilities ? { capabilities } : {},
|
|
53186
|
+
...reasoning ? { reasoning } : {},
|
|
53166
53187
|
...expirationDate ? { expirationDate } : {},
|
|
53167
53188
|
...deprecated ? { deprecated: true } : {}
|
|
53168
53189
|
};
|
|
@@ -53742,6 +53763,7 @@ __export(exports_providerRegistry, {
|
|
|
53742
53763
|
getProviderRuntimeInfo: () => getProviderRuntimeInfo,
|
|
53743
53764
|
getProviderRuntimeBlockReason: () => getProviderRuntimeBlockReason,
|
|
53744
53765
|
getProviderRuntimeBackend: () => getProviderRuntimeBackend,
|
|
53766
|
+
getProviderReasoningCapabilitiesForModel: () => getProviderReasoningCapabilitiesForModel,
|
|
53745
53767
|
getProviderFamily: () => getProviderFamily,
|
|
53746
53768
|
getProviderDefinition: () => getProviderDefinition,
|
|
53747
53769
|
getProviderContextLengthForModel: () => getProviderContextLengthForModel,
|
|
@@ -54875,6 +54897,20 @@ function getProviderContextLengthForModel(model, provider = getInitialSettings()
|
|
|
54875
54897
|
const length = match?.contextLength;
|
|
54876
54898
|
return typeof length === "number" && Number.isFinite(length) && length > 0 ? Math.floor(length) : undefined;
|
|
54877
54899
|
}
|
|
54900
|
+
function getProviderReasoningCapabilitiesForModel(model, provider = getRuntimeProviderId(), settings = getInitialSettings()) {
|
|
54901
|
+
const providerId = resolveProviderId(provider);
|
|
54902
|
+
if (!providerId)
|
|
54903
|
+
return;
|
|
54904
|
+
const wanted = model.trim().toLowerCase();
|
|
54905
|
+
if (!wanted)
|
|
54906
|
+
return;
|
|
54907
|
+
const known = [
|
|
54908
|
+
...getCachedProviderModels(providerId, settings),
|
|
54909
|
+
...PROVIDER_MODELS[providerId] ?? []
|
|
54910
|
+
];
|
|
54911
|
+
const match = known.find((entry) => entry.id.toLowerCase() === wanted) ?? known.find((entry) => wanted.includes(entry.id.toLowerCase()));
|
|
54912
|
+
return match?.reasoning;
|
|
54913
|
+
}
|
|
54878
54914
|
function cacheProviderModelsForProvider(providerId, models, settings = getInitialSettings()) {
|
|
54879
54915
|
const provider = resolveProviderId(providerId);
|
|
54880
54916
|
if (!provider) {
|
|
@@ -55126,6 +55162,7 @@ async function discoverApiProviderModels(provider, definition, options) {
|
|
|
55126
55162
|
...model.outputTokenLimit ? { outputTokenLimit: model.outputTokenLimit } : {},
|
|
55127
55163
|
...model.supportedParameters ? { supportedParameters: model.supportedParameters } : {},
|
|
55128
55164
|
...model.capabilities ? { capabilities: model.capabilities } : {},
|
|
55165
|
+
...model.reasoning ? { reasoning: model.reasoning } : {},
|
|
55129
55166
|
...model.expirationDate ? { expirationDate: model.expirationDate } : {},
|
|
55130
55167
|
...model.deprecated ? { deprecated: true } : {}
|
|
55131
55168
|
}));
|
|
@@ -55843,6 +55880,12 @@ var init_providerRegistry = __esm(() => {
|
|
|
55843
55880
|
});
|
|
55844
55881
|
|
|
55845
55882
|
// src/utils/model/providers.ts
|
|
55883
|
+
function getRuntimeProvider() {
|
|
55884
|
+
return getRuntimeProviderId();
|
|
55885
|
+
}
|
|
55886
|
+
function getRuntimeModelReasoningCapabilities(model, provider = getRuntimeProviderId()) {
|
|
55887
|
+
return getProviderReasoningCapabilitiesForModel(model, provider);
|
|
55888
|
+
}
|
|
55846
55889
|
function getAPIProvider() {
|
|
55847
55890
|
return getRuntimeProviderId() === "ollama" ? "ollama" : "foundry";
|
|
55848
55891
|
}
|
|
@@ -90686,6 +90729,352 @@ var init_ollama = __esm(() => {
|
|
|
90686
90729
|
LEVELED_THINK_MODEL_RE = /gpt-oss/i;
|
|
90687
90730
|
});
|
|
90688
90731
|
|
|
90732
|
+
// src/utils/model/modelSupportOverrides.ts
|
|
90733
|
+
var TIERS, get3PModelCapabilityOverride;
|
|
90734
|
+
var init_modelSupportOverrides = __esm(() => {
|
|
90735
|
+
init_memoize();
|
|
90736
|
+
init_providers();
|
|
90737
|
+
TIERS = [
|
|
90738
|
+
{
|
|
90739
|
+
modelEnvVar: "URHQ_DEFAULT_MODELO_MODEL",
|
|
90740
|
+
capabilitiesEnvVar: "URHQ_DEFAULT_MODELO_MODEL_SUPPORTED_CAPABILITIES"
|
|
90741
|
+
},
|
|
90742
|
+
{
|
|
90743
|
+
modelEnvVar: "URHQ_DEFAULT_MODELS_MODEL",
|
|
90744
|
+
capabilitiesEnvVar: "URHQ_DEFAULT_MODELS_MODEL_SUPPORTED_CAPABILITIES"
|
|
90745
|
+
},
|
|
90746
|
+
{
|
|
90747
|
+
modelEnvVar: "URHQ_DEFAULT_MODELH_MODEL",
|
|
90748
|
+
capabilitiesEnvVar: "URHQ_DEFAULT_MODELH_MODEL_SUPPORTED_CAPABILITIES"
|
|
90749
|
+
}
|
|
90750
|
+
];
|
|
90751
|
+
get3PModelCapabilityOverride = memoize_default((model, capability) => {
|
|
90752
|
+
if (isFirstPartyRuntime()) {
|
|
90753
|
+
return;
|
|
90754
|
+
}
|
|
90755
|
+
const m = model.toLowerCase();
|
|
90756
|
+
for (const tier of TIERS) {
|
|
90757
|
+
const pinned = process.env[tier.modelEnvVar];
|
|
90758
|
+
const capabilities = process.env[tier.capabilitiesEnvVar];
|
|
90759
|
+
if (!pinned || capabilities === undefined)
|
|
90760
|
+
continue;
|
|
90761
|
+
if (m !== pinned.toLowerCase())
|
|
90762
|
+
continue;
|
|
90763
|
+
return capabilities.toLowerCase().split(",").map((s) => s.trim()).includes(capability);
|
|
90764
|
+
}
|
|
90765
|
+
return;
|
|
90766
|
+
}, (model, capability) => `${model.toLowerCase()}:${capability}`);
|
|
90767
|
+
});
|
|
90768
|
+
|
|
90769
|
+
// src/utils/thinking.ts
|
|
90770
|
+
function isUltrathinkEnabled() {
|
|
90771
|
+
if (true) {
|
|
90772
|
+
return false;
|
|
90773
|
+
}
|
|
90774
|
+
return getFeatureValue_CACHED_MAY_BE_STALE("tengu_turtle_carbon", true);
|
|
90775
|
+
}
|
|
90776
|
+
function hasUltrathinkKeyword(text) {
|
|
90777
|
+
return /\bultrathink\b/i.test(text);
|
|
90778
|
+
}
|
|
90779
|
+
function findThinkingTriggerPositions(text) {
|
|
90780
|
+
const positions = [];
|
|
90781
|
+
const matches = text.matchAll(/\bultrathink\b/gi);
|
|
90782
|
+
for (const match of matches) {
|
|
90783
|
+
if (match.index !== undefined) {
|
|
90784
|
+
positions.push({
|
|
90785
|
+
word: match[0],
|
|
90786
|
+
start: match.index,
|
|
90787
|
+
end: match.index + match[0].length
|
|
90788
|
+
});
|
|
90789
|
+
}
|
|
90790
|
+
}
|
|
90791
|
+
return positions;
|
|
90792
|
+
}
|
|
90793
|
+
function getRainbowColor(charIndex, shimmer = false) {
|
|
90794
|
+
const colors = shimmer ? RAINBOW_SHIMMER_COLORS : RAINBOW_COLORS;
|
|
90795
|
+
return colors[charIndex % colors.length];
|
|
90796
|
+
}
|
|
90797
|
+
function modelSupportsThinking(model) {
|
|
90798
|
+
const provider = getAPIProvider();
|
|
90799
|
+
if (provider === "ollama") {
|
|
90800
|
+
return true;
|
|
90801
|
+
}
|
|
90802
|
+
const supported3P = get3PModelCapabilityOverride(model, "thinking");
|
|
90803
|
+
if (supported3P !== undefined) {
|
|
90804
|
+
return supported3P;
|
|
90805
|
+
}
|
|
90806
|
+
if (process.env.USER_TYPE === "ant") {
|
|
90807
|
+
if (resolveAntModel(model.toLowerCase())) {
|
|
90808
|
+
return true;
|
|
90809
|
+
}
|
|
90810
|
+
}
|
|
90811
|
+
if (provider === "foundry" || isFirstPartyRuntime()) {
|
|
90812
|
+
return true;
|
|
90813
|
+
}
|
|
90814
|
+
return false;
|
|
90815
|
+
}
|
|
90816
|
+
function modelSupportsAdaptiveThinking(model) {
|
|
90817
|
+
const supported3P = get3PModelCapabilityOverride(model, "adaptive_thinking");
|
|
90818
|
+
if (supported3P !== undefined) {
|
|
90819
|
+
return supported3P;
|
|
90820
|
+
}
|
|
90821
|
+
if (getAPIProvider() === "ollama") {
|
|
90822
|
+
return false;
|
|
90823
|
+
}
|
|
90824
|
+
const provider = getAPIProvider();
|
|
90825
|
+
return isFirstPartyRuntime() || provider === "foundry";
|
|
90826
|
+
}
|
|
90827
|
+
function shouldEnableThinkingByDefault() {
|
|
90828
|
+
if (process.env.MAX_THINKING_TOKENS) {
|
|
90829
|
+
return parseInt(process.env.MAX_THINKING_TOKENS, 10) > 0;
|
|
90830
|
+
}
|
|
90831
|
+
const { settings } = getSettingsWithErrors();
|
|
90832
|
+
if (settings.alwaysThinkingEnabled === false) {
|
|
90833
|
+
return false;
|
|
90834
|
+
}
|
|
90835
|
+
return true;
|
|
90836
|
+
}
|
|
90837
|
+
var RAINBOW_COLORS, RAINBOW_SHIMMER_COLORS;
|
|
90838
|
+
var init_thinking = __esm(() => {
|
|
90839
|
+
init_growthbook();
|
|
90840
|
+
init_antModels();
|
|
90841
|
+
init_modelSupportOverrides();
|
|
90842
|
+
init_providers();
|
|
90843
|
+
init_settings2();
|
|
90844
|
+
RAINBOW_COLORS = [
|
|
90845
|
+
"rainbow_red",
|
|
90846
|
+
"rainbow_orange",
|
|
90847
|
+
"rainbow_yellow",
|
|
90848
|
+
"rainbow_green",
|
|
90849
|
+
"rainbow_blue",
|
|
90850
|
+
"rainbow_indigo",
|
|
90851
|
+
"rainbow_violet"
|
|
90852
|
+
];
|
|
90853
|
+
RAINBOW_SHIMMER_COLORS = [
|
|
90854
|
+
"rainbow_red_shimmer",
|
|
90855
|
+
"rainbow_orange_shimmer",
|
|
90856
|
+
"rainbow_yellow_shimmer",
|
|
90857
|
+
"rainbow_green_shimmer",
|
|
90858
|
+
"rainbow_blue_shimmer",
|
|
90859
|
+
"rainbow_indigo_shimmer",
|
|
90860
|
+
"rainbow_violet_shimmer"
|
|
90861
|
+
];
|
|
90862
|
+
});
|
|
90863
|
+
|
|
90864
|
+
// src/utils/effort.ts
|
|
90865
|
+
function modelSupportsEffort(model, provider = getRuntimeProvider()) {
|
|
90866
|
+
if (isEnvTruthy(process.env.UR_CODE_ALWAYS_ENABLE_EFFORT)) {
|
|
90867
|
+
return true;
|
|
90868
|
+
}
|
|
90869
|
+
const supported3P = get3PModelCapabilityOverride(model, "effort");
|
|
90870
|
+
if (supported3P !== undefined) {
|
|
90871
|
+
return supported3P;
|
|
90872
|
+
}
|
|
90873
|
+
const discovered = getRuntimeModelReasoningCapabilities(model, provider);
|
|
90874
|
+
if (discovered?.supportedEfforts === null)
|
|
90875
|
+
return true;
|
|
90876
|
+
if (discovered?.supportedEfforts !== undefined) {
|
|
90877
|
+
return discovered.supportedEfforts.some((effort) => effort !== "none");
|
|
90878
|
+
}
|
|
90879
|
+
if (discovered && provider === "openrouter") {
|
|
90880
|
+
return true;
|
|
90881
|
+
}
|
|
90882
|
+
return getAPIProvider() === "ollama";
|
|
90883
|
+
}
|
|
90884
|
+
function modelSupportsMaxEffort(model, provider = getRuntimeProvider()) {
|
|
90885
|
+
const supported3P = get3PModelCapabilityOverride(model, "max_effort");
|
|
90886
|
+
if (supported3P !== undefined) {
|
|
90887
|
+
return supported3P;
|
|
90888
|
+
}
|
|
90889
|
+
const discovered = getRuntimeModelReasoningCapabilities(model, provider);
|
|
90890
|
+
if (discovered?.supportedEfforts === null)
|
|
90891
|
+
return true;
|
|
90892
|
+
if (discovered?.supportedEfforts !== undefined) {
|
|
90893
|
+
return provider === "openrouter" || discovered.supportedEfforts.some((effort) => effort === "max" || effort === "xhigh");
|
|
90894
|
+
}
|
|
90895
|
+
if (discovered && provider === "openrouter") {
|
|
90896
|
+
return true;
|
|
90897
|
+
}
|
|
90898
|
+
if (process.env.USER_TYPE === "ant" && resolveAntModel(model)) {
|
|
90899
|
+
return true;
|
|
90900
|
+
}
|
|
90901
|
+
return false;
|
|
90902
|
+
}
|
|
90903
|
+
function toOpenRouterReasoningEffort(model, effort) {
|
|
90904
|
+
const supported = getRuntimeModelReasoningCapabilities(model, "openrouter")?.supportedEfforts;
|
|
90905
|
+
if (effort !== "max")
|
|
90906
|
+
return effort;
|
|
90907
|
+
if (supported === null || supported === undefined)
|
|
90908
|
+
return "max";
|
|
90909
|
+
if (supported.includes("max"))
|
|
90910
|
+
return "max";
|
|
90911
|
+
if (supported.includes("xhigh"))
|
|
90912
|
+
return "xhigh";
|
|
90913
|
+
return "high";
|
|
90914
|
+
}
|
|
90915
|
+
function isEffortLevel(value) {
|
|
90916
|
+
return EFFORT_LEVELS.includes(value);
|
|
90917
|
+
}
|
|
90918
|
+
function parseEffortValue(value) {
|
|
90919
|
+
if (value === undefined || value === null || value === "") {
|
|
90920
|
+
return;
|
|
90921
|
+
}
|
|
90922
|
+
if (typeof value === "number" && isValidNumericEffort(value)) {
|
|
90923
|
+
return value;
|
|
90924
|
+
}
|
|
90925
|
+
const str = String(value).toLowerCase();
|
|
90926
|
+
if (isEffortLevel(str)) {
|
|
90927
|
+
return str;
|
|
90928
|
+
}
|
|
90929
|
+
const numericValue = parseInt(str, 10);
|
|
90930
|
+
if (!isNaN(numericValue) && isValidNumericEffort(numericValue)) {
|
|
90931
|
+
return numericValue;
|
|
90932
|
+
}
|
|
90933
|
+
return;
|
|
90934
|
+
}
|
|
90935
|
+
function toPersistableEffort(value) {
|
|
90936
|
+
if (value === "low" || value === "medium" || value === "high") {
|
|
90937
|
+
return value;
|
|
90938
|
+
}
|
|
90939
|
+
if (value === "max" && process.env.USER_TYPE === "ant") {
|
|
90940
|
+
return value;
|
|
90941
|
+
}
|
|
90942
|
+
return;
|
|
90943
|
+
}
|
|
90944
|
+
function getInitialEffortSetting() {
|
|
90945
|
+
return toPersistableEffort(getInitialSettings().effortLevel);
|
|
90946
|
+
}
|
|
90947
|
+
function resolvePickerEffortPersistence(picked, modelDefault, priorPersisted, toggledInPicker) {
|
|
90948
|
+
const hadExplicit = priorPersisted !== undefined || toggledInPicker;
|
|
90949
|
+
return hadExplicit || picked !== modelDefault ? picked : undefined;
|
|
90950
|
+
}
|
|
90951
|
+
function getEffortEnvOverride() {
|
|
90952
|
+
const envOverride = process.env.UR_CODE_EFFORT_LEVEL;
|
|
90953
|
+
return envOverride?.toLowerCase() === "unset" || envOverride?.toLowerCase() === "auto" ? null : parseEffortValue(envOverride);
|
|
90954
|
+
}
|
|
90955
|
+
function resolveAppliedEffort(model, appStateEffortValue, provider = getRuntimeProvider()) {
|
|
90956
|
+
const envOverride = getEffortEnvOverride();
|
|
90957
|
+
if (envOverride === null) {
|
|
90958
|
+
return;
|
|
90959
|
+
}
|
|
90960
|
+
const resolved = envOverride ?? appStateEffortValue ?? getDefaultEffortForModel(model);
|
|
90961
|
+
if (resolved === "max" && !modelSupportsMaxEffort(model, provider)) {
|
|
90962
|
+
return "high";
|
|
90963
|
+
}
|
|
90964
|
+
return resolved;
|
|
90965
|
+
}
|
|
90966
|
+
function getDisplayedEffortLevel(model, appStateEffort, provider = getRuntimeProvider()) {
|
|
90967
|
+
const resolved = resolveAppliedEffort(model, appStateEffort, provider) ?? "high";
|
|
90968
|
+
return convertEffortValueToLevel(resolved);
|
|
90969
|
+
}
|
|
90970
|
+
function getEffortSuffix(model, effortValue, provider = getRuntimeProvider()) {
|
|
90971
|
+
if (effortValue === undefined)
|
|
90972
|
+
return "";
|
|
90973
|
+
const resolved = resolveAppliedEffort(model, effortValue, provider);
|
|
90974
|
+
if (resolved === undefined)
|
|
90975
|
+
return "";
|
|
90976
|
+
return ` with ${convertEffortValueToLevel(resolved)} effort`;
|
|
90977
|
+
}
|
|
90978
|
+
function isValidNumericEffort(value) {
|
|
90979
|
+
return Number.isInteger(value);
|
|
90980
|
+
}
|
|
90981
|
+
function convertEffortValueToLevel(value) {
|
|
90982
|
+
if (typeof value === "string") {
|
|
90983
|
+
return isEffortLevel(value) ? value : "high";
|
|
90984
|
+
}
|
|
90985
|
+
if (process.env.USER_TYPE === "ant" && typeof value === "number") {
|
|
90986
|
+
if (value <= 50)
|
|
90987
|
+
return "low";
|
|
90988
|
+
if (value <= 85)
|
|
90989
|
+
return "medium";
|
|
90990
|
+
if (value <= 100)
|
|
90991
|
+
return "high";
|
|
90992
|
+
return "max";
|
|
90993
|
+
}
|
|
90994
|
+
return "high";
|
|
90995
|
+
}
|
|
90996
|
+
function getEffortLevelDescription(level) {
|
|
90997
|
+
switch (level) {
|
|
90998
|
+
case "low":
|
|
90999
|
+
return "Quick, straightforward implementation with minimal overhead";
|
|
91000
|
+
case "medium":
|
|
91001
|
+
return "Balanced approach with standard implementation and testing";
|
|
91002
|
+
case "high":
|
|
91003
|
+
return "Comprehensive implementation with extensive testing and documentation";
|
|
91004
|
+
case "max":
|
|
91005
|
+
return "Maximum capability with deepest reasoning";
|
|
91006
|
+
}
|
|
91007
|
+
}
|
|
91008
|
+
function getEffortValueDescription(value) {
|
|
91009
|
+
if (process.env.USER_TYPE === "ant" && typeof value === "number") {
|
|
91010
|
+
return `[ANT-ONLY] Numeric effort value of ${value}`;
|
|
91011
|
+
}
|
|
91012
|
+
if (typeof value === "string") {
|
|
91013
|
+
return getEffortLevelDescription(value);
|
|
91014
|
+
}
|
|
91015
|
+
return "Balanced approach with standard implementation and testing";
|
|
91016
|
+
}
|
|
91017
|
+
function getmodelODefaultEffortConfig() {
|
|
91018
|
+
const config2 = getFeatureValue_CACHED_MAY_BE_STALE("tengu_grey_step2", MODELO_DEFAULT_EFFORT_CONFIG_DEFAULT);
|
|
91019
|
+
return {
|
|
91020
|
+
...MODELO_DEFAULT_EFFORT_CONFIG_DEFAULT,
|
|
91021
|
+
...config2
|
|
91022
|
+
};
|
|
91023
|
+
}
|
|
91024
|
+
function getDefaultEffortForModel(model) {
|
|
91025
|
+
if (process.env.USER_TYPE === "ant") {
|
|
91026
|
+
const config2 = getAntModelOverrideConfig();
|
|
91027
|
+
const isDefaultModel = config2?.defaultModel !== undefined && model.toLowerCase() === config2.defaultModel.toLowerCase();
|
|
91028
|
+
if (isDefaultModel && config2?.defaultModelEffortLevel) {
|
|
91029
|
+
return config2.defaultModelEffortLevel;
|
|
91030
|
+
}
|
|
91031
|
+
const antModel = resolveAntModel(model);
|
|
91032
|
+
if (antModel) {
|
|
91033
|
+
if (antModel.defaultEffortLevel) {
|
|
91034
|
+
return antModel.defaultEffortLevel;
|
|
91035
|
+
}
|
|
91036
|
+
if (antModel.defaultEffortValue !== undefined) {
|
|
91037
|
+
return antModel.defaultEffortValue;
|
|
91038
|
+
}
|
|
91039
|
+
}
|
|
91040
|
+
return;
|
|
91041
|
+
}
|
|
91042
|
+
if (modelSupportsEffort(model)) {
|
|
91043
|
+
if (isProSubscriber()) {
|
|
91044
|
+
return "medium";
|
|
91045
|
+
}
|
|
91046
|
+
if (getmodelODefaultEffortConfig().enabled && (isMaxSubscriber() || isTeamSubscriber())) {
|
|
91047
|
+
return "medium";
|
|
91048
|
+
}
|
|
91049
|
+
}
|
|
91050
|
+
if (isUltrathinkEnabled() && modelSupportsEffort(model)) {
|
|
91051
|
+
return "medium";
|
|
91052
|
+
}
|
|
91053
|
+
return;
|
|
91054
|
+
}
|
|
91055
|
+
var EFFORT_LEVELS, MODELO_DEFAULT_EFFORT_CONFIG_DEFAULT;
|
|
91056
|
+
var init_effort = __esm(() => {
|
|
91057
|
+
init_thinking();
|
|
91058
|
+
init_settings2();
|
|
91059
|
+
init_auth();
|
|
91060
|
+
init_growthbook();
|
|
91061
|
+
init_providers();
|
|
91062
|
+
init_modelSupportOverrides();
|
|
91063
|
+
init_envUtils();
|
|
91064
|
+
init_antModels();
|
|
91065
|
+
EFFORT_LEVELS = [
|
|
91066
|
+
"low",
|
|
91067
|
+
"medium",
|
|
91068
|
+
"high",
|
|
91069
|
+
"max"
|
|
91070
|
+
];
|
|
91071
|
+
MODELO_DEFAULT_EFFORT_CONFIG_DEFAULT = {
|
|
91072
|
+
enabled: true,
|
|
91073
|
+
dialogTitle: "We recommend medium effort for modelO",
|
|
91074
|
+
dialogDescription: "Effort determines how long UR thinks for when completing your task. We recommend medium effort for most tasks to balance speed and intelligence and maximize rate limits. Use ultrathink to trigger high effort when needed."
|
|
91075
|
+
};
|
|
91076
|
+
});
|
|
91077
|
+
|
|
90689
91078
|
// src/services/api/usageNormalization.ts
|
|
90690
91079
|
function count3(value) {
|
|
90691
91080
|
if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
|
|
@@ -92278,6 +92667,10 @@ function toOpenAICompatibleRequest(params, providerName = "openai-compatible") {
|
|
|
92278
92667
|
const tools = toOpenAITools(params.tools, providerName);
|
|
92279
92668
|
const responseFormat = toOpenAIResponseFormat(params.output_config?.format);
|
|
92280
92669
|
const reasoningEffort = toOpenAIReasoningEffort(params);
|
|
92670
|
+
const openRouterReasoning = providerName === "openrouter" && reasoningEffort ? {
|
|
92671
|
+
effort: toOpenRouterReasoningEffort(String(params.model ?? ""), reasoningEffort)
|
|
92672
|
+
} : undefined;
|
|
92673
|
+
const compatibleReasoningEffort = reasoningEffort === "max" ? "high" : reasoningEffort;
|
|
92281
92674
|
return {
|
|
92282
92675
|
model: params.model,
|
|
92283
92676
|
messages: toOpenAIMessages(params, providerName),
|
|
@@ -92286,7 +92679,7 @@ function toOpenAICompatibleRequest(params, providerName = "openai-compatible") {
|
|
|
92286
92679
|
...params.top_p !== undefined && { top_p: params.top_p },
|
|
92287
92680
|
...params.stop_sequences?.length > 0 && { stop: params.stop_sequences },
|
|
92288
92681
|
...params.metadata !== undefined && { metadata: params.metadata },
|
|
92289
|
-
...
|
|
92682
|
+
...openRouterReasoning ? { reasoning: openRouterReasoning } : compatibleReasoningEffort ? { reasoning_effort: compatibleReasoningEffort } : {},
|
|
92290
92683
|
...responseFormat && { response_format: responseFormat },
|
|
92291
92684
|
stream: Boolean(params.stream),
|
|
92292
92685
|
...params.stream && providerName !== "openrouter" ? { stream_options: { include_usage: true } } : {},
|
|
@@ -92308,10 +92701,9 @@ function toOpenAIResponseFormat(format4) {
|
|
|
92308
92701
|
}
|
|
92309
92702
|
function toOpenAIReasoningEffort(params) {
|
|
92310
92703
|
const requested = params.output_config?.effort;
|
|
92311
|
-
if (requested === "low" || requested === "medium" || requested === "high")
|
|
92704
|
+
if (requested === "low" || requested === "medium" || requested === "high" || requested === "max") {
|
|
92312
92705
|
return requested;
|
|
92313
|
-
|
|
92314
|
-
return "high";
|
|
92706
|
+
}
|
|
92315
92707
|
if (params.thinking?.type === "adaptive")
|
|
92316
92708
|
return "medium";
|
|
92317
92709
|
if (params.thinking?.type !== "enabled")
|
|
@@ -92754,6 +93146,7 @@ function hasToolUse(content) {
|
|
|
92754
93146
|
}
|
|
92755
93147
|
var init_openaiCompatible = __esm(() => {
|
|
92756
93148
|
init_kimiToolCalls();
|
|
93149
|
+
init_effort();
|
|
92757
93150
|
init_toolSchema();
|
|
92758
93151
|
init_providerClient();
|
|
92759
93152
|
init_streamingAdapters();
|
|
@@ -95077,7 +95470,7 @@ async function assertFreshRuntimeModel(providerId, options) {
|
|
|
95077
95470
|
const provider = getProviderDefinition(providerId);
|
|
95078
95471
|
if (provider.modelDiscoveryType !== "live")
|
|
95079
95472
|
return;
|
|
95080
|
-
const settings = getInitialSettings();
|
|
95473
|
+
const settings = options.settings ?? getInitialSettings();
|
|
95081
95474
|
const env4 = provider.envKey && options.apiKey ? { ...process.env, [provider.envKey]: options.apiKey } : process.env;
|
|
95082
95475
|
const discovered = await ensureProviderModelsFresh(providerId, {
|
|
95083
95476
|
settings,
|
|
@@ -95152,12 +95545,12 @@ async function createLocalProviderClient(providerId, options = {}) {
|
|
|
95152
95545
|
throw new Error(`Provider "${providerId}" is not an Ollama runtime. Runtime backend is ${getProviderRuntimeBackend(providerId)}.`);
|
|
95153
95546
|
}
|
|
95154
95547
|
const { createOllamaURHQClient: createOllamaURHQClient2 } = await Promise.resolve().then(() => (init_ollama(), exports_ollama));
|
|
95155
|
-
const settings = getInitialSettings();
|
|
95548
|
+
const settings = options.settings ?? getInitialSettings();
|
|
95156
95549
|
const baseUrlOverride = resolveProviderBaseUrl(providerId, settings);
|
|
95157
95550
|
return createOllamaURHQClient2({ baseUrlOverride });
|
|
95158
95551
|
}
|
|
95159
95552
|
async function createOpenAICompatibleProviderClient(providerId, options = {}) {
|
|
95160
|
-
const settings = getInitialSettings();
|
|
95553
|
+
const settings = options.settings ?? getInitialSettings();
|
|
95161
95554
|
const providerSettings = getActiveProviderSettings(settings);
|
|
95162
95555
|
const provider = getProviderDefinition(providerId);
|
|
95163
95556
|
const baseUrl = providerSettings.active === providerId ? providerSettings.baseUrl ?? provider.defaultBaseUrl : provider.defaultBaseUrl;
|
|
@@ -95178,7 +95571,7 @@ async function createSubscriptionClient(providerId, options = {}) {
|
|
|
95178
95571
|
if (runtimeBlock) {
|
|
95179
95572
|
throw new Error(runtimeBlock);
|
|
95180
95573
|
}
|
|
95181
|
-
const settings = getInitialSettings();
|
|
95574
|
+
const settings = options.settings ?? getInitialSettings();
|
|
95182
95575
|
const providerSettings = getActiveProviderSettings(settings);
|
|
95183
95576
|
const { which: which2 } = await Promise.resolve().then(() => (init_which(), exports_which));
|
|
95184
95577
|
let commandPath = providerSettings.commandPath ?? null;
|
|
@@ -95201,7 +95594,7 @@ async function createSubscriptionClient(providerId, options = {}) {
|
|
|
95201
95594
|
}
|
|
95202
95595
|
async function createAPIClient(providerId, options = {}) {
|
|
95203
95596
|
const provider = getProviderDefinition(providerId);
|
|
95204
|
-
const settings = getInitialSettings();
|
|
95597
|
+
const settings = options.settings ?? getInitialSettings();
|
|
95205
95598
|
const providerSettings = getActiveProviderSettings(settings);
|
|
95206
95599
|
const apiKey = options.apiKey ?? getProviderApiKey(providerId);
|
|
95207
95600
|
if (provider.envKey && !apiKey) {
|
|
@@ -95276,20 +95669,30 @@ async function getURHQClient({
|
|
|
95276
95669
|
maxRetries,
|
|
95277
95670
|
model,
|
|
95278
95671
|
fetchOverride,
|
|
95279
|
-
source
|
|
95672
|
+
source,
|
|
95673
|
+
providerSettings
|
|
95280
95674
|
}) {
|
|
95281
|
-
const
|
|
95675
|
+
const settings = providerSettings ? {
|
|
95676
|
+
...getInitialSettings(),
|
|
95677
|
+
provider: {
|
|
95678
|
+
...providerSettings,
|
|
95679
|
+
...providerSettings.responses ? { responses: { ...providerSettings.responses } } : {}
|
|
95680
|
+
}
|
|
95681
|
+
} : undefined;
|
|
95682
|
+
const runtime = resolveActiveProviderModel({ settings, model, source });
|
|
95282
95683
|
return createProviderClient(runtime.providerId, {
|
|
95283
95684
|
apiKey,
|
|
95284
95685
|
maxRetries,
|
|
95285
95686
|
model: runtime.model,
|
|
95286
95687
|
fetchOverride,
|
|
95287
|
-
source
|
|
95688
|
+
source,
|
|
95689
|
+
settings
|
|
95288
95690
|
});
|
|
95289
95691
|
}
|
|
95290
95692
|
var CLIENT_REQUEST_ID_HEADER = "x-client-request-id";
|
|
95291
95693
|
var init_client2 = __esm(() => {
|
|
95292
95694
|
init_providerClient();
|
|
95695
|
+
init_settings2();
|
|
95293
95696
|
});
|
|
95294
95697
|
|
|
95295
95698
|
// src/utils/model/modelCapabilities.ts
|
|
@@ -96580,43 +96983,6 @@ var init_model = __esm(() => {
|
|
|
96580
96983
|
LEGACY_MODELO_FIRSTPARTY = [];
|
|
96581
96984
|
});
|
|
96582
96985
|
|
|
96583
|
-
// src/utils/model/modelSupportOverrides.ts
|
|
96584
|
-
var TIERS, get3PModelCapabilityOverride;
|
|
96585
|
-
var init_modelSupportOverrides = __esm(() => {
|
|
96586
|
-
init_memoize();
|
|
96587
|
-
init_providers();
|
|
96588
|
-
TIERS = [
|
|
96589
|
-
{
|
|
96590
|
-
modelEnvVar: "URHQ_DEFAULT_MODELO_MODEL",
|
|
96591
|
-
capabilitiesEnvVar: "URHQ_DEFAULT_MODELO_MODEL_SUPPORTED_CAPABILITIES"
|
|
96592
|
-
},
|
|
96593
|
-
{
|
|
96594
|
-
modelEnvVar: "URHQ_DEFAULT_MODELS_MODEL",
|
|
96595
|
-
capabilitiesEnvVar: "URHQ_DEFAULT_MODELS_MODEL_SUPPORTED_CAPABILITIES"
|
|
96596
|
-
},
|
|
96597
|
-
{
|
|
96598
|
-
modelEnvVar: "URHQ_DEFAULT_MODELH_MODEL",
|
|
96599
|
-
capabilitiesEnvVar: "URHQ_DEFAULT_MODELH_MODEL_SUPPORTED_CAPABILITIES"
|
|
96600
|
-
}
|
|
96601
|
-
];
|
|
96602
|
-
get3PModelCapabilityOverride = memoize_default((model, capability) => {
|
|
96603
|
-
if (isFirstPartyRuntime()) {
|
|
96604
|
-
return;
|
|
96605
|
-
}
|
|
96606
|
-
const m = model.toLowerCase();
|
|
96607
|
-
for (const tier of TIERS) {
|
|
96608
|
-
const pinned = process.env[tier.modelEnvVar];
|
|
96609
|
-
const capabilities = process.env[tier.capabilitiesEnvVar];
|
|
96610
|
-
if (!pinned || capabilities === undefined)
|
|
96611
|
-
continue;
|
|
96612
|
-
if (m !== pinned.toLowerCase())
|
|
96613
|
-
continue;
|
|
96614
|
-
return capabilities.toLowerCase().split(",").map((s) => s.trim()).includes(capability);
|
|
96615
|
-
}
|
|
96616
|
-
return;
|
|
96617
|
-
}, (model, capability) => `${model.toLowerCase()}:${capability}`);
|
|
96618
|
-
});
|
|
96619
|
-
|
|
96620
96986
|
// src/utils/betas.ts
|
|
96621
96987
|
function partitionBetasByAllowlist(betas) {
|
|
96622
96988
|
const allowed = [];
|
|
@@ -107788,7 +108154,7 @@ var init_auth = __esm(() => {
|
|
|
107788
108154
|
|
|
107789
108155
|
// src/utils/userAgent.ts
|
|
107790
108156
|
function getURCodeUserAgent() {
|
|
107791
|
-
return `ur/${"1.81.
|
|
108157
|
+
return `ur/${"1.81.2"}`;
|
|
107792
108158
|
}
|
|
107793
108159
|
|
|
107794
108160
|
// src/utils/workloadContext.ts
|
|
@@ -107810,7 +108176,7 @@ function getUserAgent() {
|
|
|
107810
108176
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
107811
108177
|
const workload = getWorkload();
|
|
107812
108178
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
107813
|
-
return `ur-cli/${"1.81.
|
|
108179
|
+
return `ur-cli/${"1.81.2"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
107814
108180
|
}
|
|
107815
108181
|
function getMCPUserAgent() {
|
|
107816
108182
|
const parts = [];
|
|
@@ -107824,7 +108190,7 @@ function getMCPUserAgent() {
|
|
|
107824
108190
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
107825
108191
|
}
|
|
107826
108192
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
107827
|
-
return `ur/${"1.81.
|
|
108193
|
+
return `ur/${"1.81.2"}${suffix}`;
|
|
107828
108194
|
}
|
|
107829
108195
|
function getWebFetchUserAgent() {
|
|
107830
108196
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -107962,7 +108328,7 @@ var init_user = __esm(() => {
|
|
|
107962
108328
|
deviceId,
|
|
107963
108329
|
sessionId: getSessionId(),
|
|
107964
108330
|
email: getEmail(),
|
|
107965
|
-
appVersion: "1.81.
|
|
108331
|
+
appVersion: "1.81.2",
|
|
107966
108332
|
platform: getHostPlatformForAnalytics(),
|
|
107967
108333
|
organizationUuid,
|
|
107968
108334
|
accountUuid,
|
|
@@ -115849,7 +116215,7 @@ var init_metadata = __esm(() => {
|
|
|
115849
116215
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
115850
116216
|
WHITESPACE_REGEX = /\s+/;
|
|
115851
116217
|
getVersionBase = memoize_default(() => {
|
|
115852
|
-
const match = "1.81.
|
|
116218
|
+
const match = "1.81.2".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
115853
116219
|
return match ? match[0] : undefined;
|
|
115854
116220
|
});
|
|
115855
116221
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -115889,7 +116255,7 @@ var init_metadata = __esm(() => {
|
|
|
115889
116255
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
115890
116256
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
115891
116257
|
isURAiAuth: isURAISubscriber(),
|
|
115892
|
-
version: "1.81.
|
|
116258
|
+
version: "1.81.2",
|
|
115893
116259
|
versionBase: getVersionBase(),
|
|
115894
116260
|
buildTime: "",
|
|
115895
116261
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -116559,7 +116925,7 @@ function initialize1PEventLogging() {
|
|
|
116559
116925
|
const platform2 = getPlatform();
|
|
116560
116926
|
const attributes = {
|
|
116561
116927
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
116562
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.81.
|
|
116928
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.81.2"
|
|
116563
116929
|
};
|
|
116564
116930
|
if (platform2 === "wsl") {
|
|
116565
116931
|
const wslVersion = getWslVersion();
|
|
@@ -116587,7 +116953,7 @@ function initialize1PEventLogging() {
|
|
|
116587
116953
|
})
|
|
116588
116954
|
]
|
|
116589
116955
|
});
|
|
116590
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.81.
|
|
116956
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.81.2");
|
|
116591
116957
|
}
|
|
116592
116958
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
116593
116959
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -126553,7 +126919,7 @@ function formatA2AAgentCard(options = {}, pretty = true) {
|
|
|
126553
126919
|
function formatA2AV1AgentCard(options = {}, pretty = true) {
|
|
126554
126920
|
return JSON.stringify(buildA2AV1AgentCard(options), null, pretty ? 2 : 0);
|
|
126555
126921
|
}
|
|
126556
|
-
var urVersion = "1.81.
|
|
126922
|
+
var urVersion = "1.81.2", researchSnapshotDate = "2026-08-10", coverage, priorityRoadmap;
|
|
126557
126923
|
var init_trends = __esm(() => {
|
|
126558
126924
|
init_a2aCardSignature();
|
|
126559
126925
|
coverage = [
|
|
@@ -129443,7 +129809,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
129443
129809
|
if (!isAttributionHeaderEnabled()) {
|
|
129444
129810
|
return "";
|
|
129445
129811
|
}
|
|
129446
|
-
const version2 = `${"1.81.
|
|
129812
|
+
const version2 = `${"1.81.2"}.${fingerprint}`;
|
|
129447
129813
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
129448
129814
|
const cch = "";
|
|
129449
129815
|
const workload = getWorkload();
|
|
@@ -170342,285 +170708,6 @@ var init_pluginDirectories = __esm(() => {
|
|
|
170342
170708
|
init_pathValidation();
|
|
170343
170709
|
});
|
|
170344
170710
|
|
|
170345
|
-
// src/utils/thinking.ts
|
|
170346
|
-
function isUltrathinkEnabled() {
|
|
170347
|
-
if (true) {
|
|
170348
|
-
return false;
|
|
170349
|
-
}
|
|
170350
|
-
return getFeatureValue_CACHED_MAY_BE_STALE("tengu_turtle_carbon", true);
|
|
170351
|
-
}
|
|
170352
|
-
function hasUltrathinkKeyword(text2) {
|
|
170353
|
-
return /\bultrathink\b/i.test(text2);
|
|
170354
|
-
}
|
|
170355
|
-
function findThinkingTriggerPositions(text2) {
|
|
170356
|
-
const positions = [];
|
|
170357
|
-
const matches = text2.matchAll(/\bultrathink\b/gi);
|
|
170358
|
-
for (const match of matches) {
|
|
170359
|
-
if (match.index !== undefined) {
|
|
170360
|
-
positions.push({
|
|
170361
|
-
word: match[0],
|
|
170362
|
-
start: match.index,
|
|
170363
|
-
end: match.index + match[0].length
|
|
170364
|
-
});
|
|
170365
|
-
}
|
|
170366
|
-
}
|
|
170367
|
-
return positions;
|
|
170368
|
-
}
|
|
170369
|
-
function getRainbowColor(charIndex, shimmer = false) {
|
|
170370
|
-
const colors = shimmer ? RAINBOW_SHIMMER_COLORS : RAINBOW_COLORS;
|
|
170371
|
-
return colors[charIndex % colors.length];
|
|
170372
|
-
}
|
|
170373
|
-
function modelSupportsThinking(model) {
|
|
170374
|
-
const provider = getAPIProvider();
|
|
170375
|
-
if (provider === "ollama") {
|
|
170376
|
-
return true;
|
|
170377
|
-
}
|
|
170378
|
-
const supported3P = get3PModelCapabilityOverride(model, "thinking");
|
|
170379
|
-
if (supported3P !== undefined) {
|
|
170380
|
-
return supported3P;
|
|
170381
|
-
}
|
|
170382
|
-
if (process.env.USER_TYPE === "ant") {
|
|
170383
|
-
if (resolveAntModel(model.toLowerCase())) {
|
|
170384
|
-
return true;
|
|
170385
|
-
}
|
|
170386
|
-
}
|
|
170387
|
-
if (provider === "foundry" || isFirstPartyRuntime()) {
|
|
170388
|
-
return true;
|
|
170389
|
-
}
|
|
170390
|
-
return false;
|
|
170391
|
-
}
|
|
170392
|
-
function modelSupportsAdaptiveThinking(model) {
|
|
170393
|
-
const supported3P = get3PModelCapabilityOverride(model, "adaptive_thinking");
|
|
170394
|
-
if (supported3P !== undefined) {
|
|
170395
|
-
return supported3P;
|
|
170396
|
-
}
|
|
170397
|
-
if (getAPIProvider() === "ollama") {
|
|
170398
|
-
return false;
|
|
170399
|
-
}
|
|
170400
|
-
const provider = getAPIProvider();
|
|
170401
|
-
return isFirstPartyRuntime() || provider === "foundry";
|
|
170402
|
-
}
|
|
170403
|
-
function shouldEnableThinkingByDefault() {
|
|
170404
|
-
if (process.env.MAX_THINKING_TOKENS) {
|
|
170405
|
-
return parseInt(process.env.MAX_THINKING_TOKENS, 10) > 0;
|
|
170406
|
-
}
|
|
170407
|
-
const { settings } = getSettingsWithErrors();
|
|
170408
|
-
if (settings.alwaysThinkingEnabled === false) {
|
|
170409
|
-
return false;
|
|
170410
|
-
}
|
|
170411
|
-
return true;
|
|
170412
|
-
}
|
|
170413
|
-
var RAINBOW_COLORS, RAINBOW_SHIMMER_COLORS;
|
|
170414
|
-
var init_thinking = __esm(() => {
|
|
170415
|
-
init_growthbook();
|
|
170416
|
-
init_antModels();
|
|
170417
|
-
init_modelSupportOverrides();
|
|
170418
|
-
init_providers();
|
|
170419
|
-
init_settings2();
|
|
170420
|
-
RAINBOW_COLORS = [
|
|
170421
|
-
"rainbow_red",
|
|
170422
|
-
"rainbow_orange",
|
|
170423
|
-
"rainbow_yellow",
|
|
170424
|
-
"rainbow_green",
|
|
170425
|
-
"rainbow_blue",
|
|
170426
|
-
"rainbow_indigo",
|
|
170427
|
-
"rainbow_violet"
|
|
170428
|
-
];
|
|
170429
|
-
RAINBOW_SHIMMER_COLORS = [
|
|
170430
|
-
"rainbow_red_shimmer",
|
|
170431
|
-
"rainbow_orange_shimmer",
|
|
170432
|
-
"rainbow_yellow_shimmer",
|
|
170433
|
-
"rainbow_green_shimmer",
|
|
170434
|
-
"rainbow_blue_shimmer",
|
|
170435
|
-
"rainbow_indigo_shimmer",
|
|
170436
|
-
"rainbow_violet_shimmer"
|
|
170437
|
-
];
|
|
170438
|
-
});
|
|
170439
|
-
|
|
170440
|
-
// src/utils/effort.ts
|
|
170441
|
-
function modelSupportsEffort(model) {
|
|
170442
|
-
if (isEnvTruthy(process.env.UR_CODE_ALWAYS_ENABLE_EFFORT)) {
|
|
170443
|
-
return true;
|
|
170444
|
-
}
|
|
170445
|
-
const supported3P = get3PModelCapabilityOverride(model, "effort");
|
|
170446
|
-
if (supported3P !== undefined) {
|
|
170447
|
-
return supported3P;
|
|
170448
|
-
}
|
|
170449
|
-
return getAPIProvider() === "ollama";
|
|
170450
|
-
}
|
|
170451
|
-
function modelSupportsMaxEffort(model) {
|
|
170452
|
-
const supported3P = get3PModelCapabilityOverride(model, "max_effort");
|
|
170453
|
-
if (supported3P !== undefined) {
|
|
170454
|
-
return supported3P;
|
|
170455
|
-
}
|
|
170456
|
-
if (process.env.USER_TYPE === "ant" && resolveAntModel(model)) {
|
|
170457
|
-
return true;
|
|
170458
|
-
}
|
|
170459
|
-
return false;
|
|
170460
|
-
}
|
|
170461
|
-
function isEffortLevel(value) {
|
|
170462
|
-
return EFFORT_LEVELS.includes(value);
|
|
170463
|
-
}
|
|
170464
|
-
function parseEffortValue(value) {
|
|
170465
|
-
if (value === undefined || value === null || value === "") {
|
|
170466
|
-
return;
|
|
170467
|
-
}
|
|
170468
|
-
if (typeof value === "number" && isValidNumericEffort(value)) {
|
|
170469
|
-
return value;
|
|
170470
|
-
}
|
|
170471
|
-
const str = String(value).toLowerCase();
|
|
170472
|
-
if (isEffortLevel(str)) {
|
|
170473
|
-
return str;
|
|
170474
|
-
}
|
|
170475
|
-
const numericValue = parseInt(str, 10);
|
|
170476
|
-
if (!isNaN(numericValue) && isValidNumericEffort(numericValue)) {
|
|
170477
|
-
return numericValue;
|
|
170478
|
-
}
|
|
170479
|
-
return;
|
|
170480
|
-
}
|
|
170481
|
-
function toPersistableEffort(value) {
|
|
170482
|
-
if (value === "low" || value === "medium" || value === "high") {
|
|
170483
|
-
return value;
|
|
170484
|
-
}
|
|
170485
|
-
if (value === "max" && process.env.USER_TYPE === "ant") {
|
|
170486
|
-
return value;
|
|
170487
|
-
}
|
|
170488
|
-
return;
|
|
170489
|
-
}
|
|
170490
|
-
function getInitialEffortSetting() {
|
|
170491
|
-
return toPersistableEffort(getInitialSettings().effortLevel);
|
|
170492
|
-
}
|
|
170493
|
-
function resolvePickerEffortPersistence(picked, modelDefault, priorPersisted, toggledInPicker) {
|
|
170494
|
-
const hadExplicit = priorPersisted !== undefined || toggledInPicker;
|
|
170495
|
-
return hadExplicit || picked !== modelDefault ? picked : undefined;
|
|
170496
|
-
}
|
|
170497
|
-
function getEffortEnvOverride() {
|
|
170498
|
-
const envOverride = process.env.UR_CODE_EFFORT_LEVEL;
|
|
170499
|
-
return envOverride?.toLowerCase() === "unset" || envOverride?.toLowerCase() === "auto" ? null : parseEffortValue(envOverride);
|
|
170500
|
-
}
|
|
170501
|
-
function resolveAppliedEffort(model, appStateEffortValue) {
|
|
170502
|
-
const envOverride = getEffortEnvOverride();
|
|
170503
|
-
if (envOverride === null) {
|
|
170504
|
-
return;
|
|
170505
|
-
}
|
|
170506
|
-
const resolved = envOverride ?? appStateEffortValue ?? getDefaultEffortForModel(model);
|
|
170507
|
-
if (resolved === "max" && !modelSupportsMaxEffort(model)) {
|
|
170508
|
-
return "high";
|
|
170509
|
-
}
|
|
170510
|
-
return resolved;
|
|
170511
|
-
}
|
|
170512
|
-
function getDisplayedEffortLevel(model, appStateEffort) {
|
|
170513
|
-
const resolved = resolveAppliedEffort(model, appStateEffort) ?? "high";
|
|
170514
|
-
return convertEffortValueToLevel(resolved);
|
|
170515
|
-
}
|
|
170516
|
-
function getEffortSuffix(model, effortValue) {
|
|
170517
|
-
if (effortValue === undefined)
|
|
170518
|
-
return "";
|
|
170519
|
-
const resolved = resolveAppliedEffort(model, effortValue);
|
|
170520
|
-
if (resolved === undefined)
|
|
170521
|
-
return "";
|
|
170522
|
-
return ` with ${convertEffortValueToLevel(resolved)} effort`;
|
|
170523
|
-
}
|
|
170524
|
-
function isValidNumericEffort(value) {
|
|
170525
|
-
return Number.isInteger(value);
|
|
170526
|
-
}
|
|
170527
|
-
function convertEffortValueToLevel(value) {
|
|
170528
|
-
if (typeof value === "string") {
|
|
170529
|
-
return isEffortLevel(value) ? value : "high";
|
|
170530
|
-
}
|
|
170531
|
-
if (process.env.USER_TYPE === "ant" && typeof value === "number") {
|
|
170532
|
-
if (value <= 50)
|
|
170533
|
-
return "low";
|
|
170534
|
-
if (value <= 85)
|
|
170535
|
-
return "medium";
|
|
170536
|
-
if (value <= 100)
|
|
170537
|
-
return "high";
|
|
170538
|
-
return "max";
|
|
170539
|
-
}
|
|
170540
|
-
return "high";
|
|
170541
|
-
}
|
|
170542
|
-
function getEffortLevelDescription(level) {
|
|
170543
|
-
switch (level) {
|
|
170544
|
-
case "low":
|
|
170545
|
-
return "Quick, straightforward implementation with minimal overhead";
|
|
170546
|
-
case "medium":
|
|
170547
|
-
return "Balanced approach with standard implementation and testing";
|
|
170548
|
-
case "high":
|
|
170549
|
-
return "Comprehensive implementation with extensive testing and documentation";
|
|
170550
|
-
case "max":
|
|
170551
|
-
return "Maximum capability with deepest reasoning";
|
|
170552
|
-
}
|
|
170553
|
-
}
|
|
170554
|
-
function getEffortValueDescription(value) {
|
|
170555
|
-
if (process.env.USER_TYPE === "ant" && typeof value === "number") {
|
|
170556
|
-
return `[ANT-ONLY] Numeric effort value of ${value}`;
|
|
170557
|
-
}
|
|
170558
|
-
if (typeof value === "string") {
|
|
170559
|
-
return getEffortLevelDescription(value);
|
|
170560
|
-
}
|
|
170561
|
-
return "Balanced approach with standard implementation and testing";
|
|
170562
|
-
}
|
|
170563
|
-
function getmodelODefaultEffortConfig() {
|
|
170564
|
-
const config3 = getFeatureValue_CACHED_MAY_BE_STALE("tengu_grey_step2", MODELO_DEFAULT_EFFORT_CONFIG_DEFAULT);
|
|
170565
|
-
return {
|
|
170566
|
-
...MODELO_DEFAULT_EFFORT_CONFIG_DEFAULT,
|
|
170567
|
-
...config3
|
|
170568
|
-
};
|
|
170569
|
-
}
|
|
170570
|
-
function getDefaultEffortForModel(model) {
|
|
170571
|
-
if (process.env.USER_TYPE === "ant") {
|
|
170572
|
-
const config3 = getAntModelOverrideConfig();
|
|
170573
|
-
const isDefaultModel = config3?.defaultModel !== undefined && model.toLowerCase() === config3.defaultModel.toLowerCase();
|
|
170574
|
-
if (isDefaultModel && config3?.defaultModelEffortLevel) {
|
|
170575
|
-
return config3.defaultModelEffortLevel;
|
|
170576
|
-
}
|
|
170577
|
-
const antModel = resolveAntModel(model);
|
|
170578
|
-
if (antModel) {
|
|
170579
|
-
if (antModel.defaultEffortLevel) {
|
|
170580
|
-
return antModel.defaultEffortLevel;
|
|
170581
|
-
}
|
|
170582
|
-
if (antModel.defaultEffortValue !== undefined) {
|
|
170583
|
-
return antModel.defaultEffortValue;
|
|
170584
|
-
}
|
|
170585
|
-
}
|
|
170586
|
-
return;
|
|
170587
|
-
}
|
|
170588
|
-
if (modelSupportsEffort(model)) {
|
|
170589
|
-
if (isProSubscriber()) {
|
|
170590
|
-
return "medium";
|
|
170591
|
-
}
|
|
170592
|
-
if (getmodelODefaultEffortConfig().enabled && (isMaxSubscriber() || isTeamSubscriber())) {
|
|
170593
|
-
return "medium";
|
|
170594
|
-
}
|
|
170595
|
-
}
|
|
170596
|
-
if (isUltrathinkEnabled() && modelSupportsEffort(model)) {
|
|
170597
|
-
return "medium";
|
|
170598
|
-
}
|
|
170599
|
-
return;
|
|
170600
|
-
}
|
|
170601
|
-
var EFFORT_LEVELS, MODELO_DEFAULT_EFFORT_CONFIG_DEFAULT;
|
|
170602
|
-
var init_effort = __esm(() => {
|
|
170603
|
-
init_thinking();
|
|
170604
|
-
init_settings2();
|
|
170605
|
-
init_auth();
|
|
170606
|
-
init_growthbook();
|
|
170607
|
-
init_providers();
|
|
170608
|
-
init_modelSupportOverrides();
|
|
170609
|
-
init_envUtils();
|
|
170610
|
-
init_antModels();
|
|
170611
|
-
EFFORT_LEVELS = [
|
|
170612
|
-
"low",
|
|
170613
|
-
"medium",
|
|
170614
|
-
"high",
|
|
170615
|
-
"max"
|
|
170616
|
-
];
|
|
170617
|
-
MODELO_DEFAULT_EFFORT_CONFIG_DEFAULT = {
|
|
170618
|
-
enabled: true,
|
|
170619
|
-
dialogTitle: "We recommend medium effort for modelO",
|
|
170620
|
-
dialogDescription: "Effort determines how long UR thinks for when completing your task. We recommend medium effort for most tasks to balance speed and intelligence and maximize rate limits. Use ultrathink to trigger high effort when needed."
|
|
170621
|
-
};
|
|
170622
|
-
});
|
|
170623
|
-
|
|
170624
170711
|
// src/utils/dxt/mcpbCompat.ts
|
|
170625
170712
|
var exports_mcpbCompat = {};
|
|
170626
170713
|
__export(exports_mcpbCompat, {
|
|
@@ -184643,7 +184730,7 @@ var init_projectSafety = __esm(() => {
|
|
|
184643
184730
|
function getInstruments() {
|
|
184644
184731
|
if (instruments)
|
|
184645
184732
|
return instruments;
|
|
184646
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.81.
|
|
184733
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.81.2");
|
|
184647
184734
|
instruments = {
|
|
184648
184735
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
184649
184736
|
description: "GenAI operation duration.",
|
|
@@ -184741,7 +184828,7 @@ function genAiAgentAttributes() {
|
|
|
184741
184828
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
184742
184829
|
"gen_ai.provider.name": "ur",
|
|
184743
184830
|
"gen_ai.agent.name": "UR-Nexus",
|
|
184744
|
-
"gen_ai.agent.version": "1.81.
|
|
184831
|
+
"gen_ai.agent.version": "1.81.2"
|
|
184745
184832
|
};
|
|
184746
184833
|
}
|
|
184747
184834
|
function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
@@ -184762,7 +184849,7 @@ function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
|
184762
184849
|
function startGenAiWorkflowSpan(workflowName, workflowRunId) {
|
|
184763
184850
|
const attributes = genAiWorkflowAttributes(workflowName, workflowRunId);
|
|
184764
184851
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
184765
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.
|
|
184852
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.2").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184766
184853
|
}
|
|
184767
184854
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
184768
184855
|
try {
|
|
@@ -184800,7 +184887,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
184800
184887
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
184801
184888
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
184802
184889
|
}
|
|
184803
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.
|
|
184890
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.2").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184804
184891
|
}
|
|
184805
184892
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
184806
184893
|
try {
|
|
@@ -187876,7 +187963,7 @@ class Verifier {
|
|
|
187876
187963
|
this.maxRejections = options2.maxRejectionsPerTurn ?? DEFAULT_MAX_REJECTIONS_PER_TURN;
|
|
187877
187964
|
this.loops = new LoopDetector(options2.repeatThreshold);
|
|
187878
187965
|
this.configPromise = loadVerifyConfig(options2.cwd);
|
|
187879
|
-
this.pluginValidatorsPromise = loadPluginValidators();
|
|
187966
|
+
this.pluginValidatorsPromise = options2.pluginValidators === undefined ? loadPluginValidators() : Promise.resolve(options2.pluginValidators);
|
|
187880
187967
|
this.mode = resolveMode(options2.mode);
|
|
187881
187968
|
this.askBeforeGatesOverride = options2.askBeforeGates;
|
|
187882
187969
|
this.getActionableTasks = options2.getActionableTasks ?? (async () => {
|
|
@@ -278515,7 +278602,7 @@ function getTelemetryAttributes() {
|
|
|
278515
278602
|
attributes["session.id"] = sessionId;
|
|
278516
278603
|
}
|
|
278517
278604
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
278518
|
-
attributes["app.version"] = "1.81.
|
|
278605
|
+
attributes["app.version"] = "1.81.2";
|
|
278519
278606
|
}
|
|
278520
278607
|
const oauthAccount = getOauthAccountInfo();
|
|
278521
278608
|
if (oauthAccount) {
|
|
@@ -319919,7 +320006,7 @@ function getInstallationEnv() {
|
|
|
319919
320006
|
return;
|
|
319920
320007
|
}
|
|
319921
320008
|
function getURCodeVersion() {
|
|
319922
|
-
return "1.81.
|
|
320009
|
+
return "1.81.2";
|
|
319923
320010
|
}
|
|
319924
320011
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
319925
320012
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -327289,7 +327376,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
327289
327376
|
const client2 = new Client({
|
|
327290
327377
|
name: "ur",
|
|
327291
327378
|
title: "UR",
|
|
327292
|
-
version: "1.81.
|
|
327379
|
+
version: "1.81.2",
|
|
327293
327380
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
327294
327381
|
websiteUrl: PRODUCT_URL
|
|
327295
327382
|
}, {
|
|
@@ -327650,7 +327737,7 @@ var init_client5 = __esm(() => {
|
|
|
327650
327737
|
const client2 = new Client({
|
|
327651
327738
|
name: "ur",
|
|
327652
327739
|
title: "UR",
|
|
327653
|
-
version: "1.81.
|
|
327740
|
+
version: "1.81.2",
|
|
327654
327741
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
327655
327742
|
websiteUrl: PRODUCT_URL
|
|
327656
327743
|
}, {
|
|
@@ -340423,7 +340510,7 @@ async function createRuntime() {
|
|
|
340423
340510
|
bootstrapTelemetry();
|
|
340424
340511
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
340425
340512
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
340426
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.81.
|
|
340513
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.81.2"
|
|
340427
340514
|
}));
|
|
340428
340515
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
340429
340516
|
resource,
|
|
@@ -340456,11 +340543,11 @@ async function createRuntime() {
|
|
|
340456
340543
|
setMeterProvider(meterProvider);
|
|
340457
340544
|
setLoggerProvider(loggerProvider);
|
|
340458
340545
|
if (meterProvider) {
|
|
340459
|
-
const meter = meterProvider.getMeter("ur-agent", "1.81.
|
|
340546
|
+
const meter = meterProvider.getMeter("ur-agent", "1.81.2");
|
|
340460
340547
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
340461
340548
|
}
|
|
340462
340549
|
if (loggerProvider) {
|
|
340463
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.81.
|
|
340550
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.81.2"));
|
|
340464
340551
|
}
|
|
340465
340552
|
if (!cleanupRegistered3) {
|
|
340466
340553
|
cleanupRegistered3 = true;
|
|
@@ -341122,9 +341209,9 @@ async function assertMinVersion() {
|
|
|
341122
341209
|
if (false) {}
|
|
341123
341210
|
try {
|
|
341124
341211
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
341125
|
-
if (versionConfig.minVersion && lt("1.81.
|
|
341212
|
+
if (versionConfig.minVersion && lt("1.81.2", versionConfig.minVersion)) {
|
|
341126
341213
|
console.error(`
|
|
341127
|
-
It looks like your version of UR (${"1.81.
|
|
341214
|
+
It looks like your version of UR (${"1.81.2"}) needs an update.
|
|
341128
341215
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
341129
341216
|
|
|
341130
341217
|
To update, please run:
|
|
@@ -341340,7 +341427,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
341340
341427
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
341341
341428
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
341342
341429
|
pid: process.pid,
|
|
341343
|
-
currentVersion: "1.81.
|
|
341430
|
+
currentVersion: "1.81.2"
|
|
341344
341431
|
});
|
|
341345
341432
|
return "in_progress";
|
|
341346
341433
|
}
|
|
@@ -341349,7 +341436,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
341349
341436
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
341350
341437
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
341351
341438
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
341352
|
-
currentVersion: "1.81.
|
|
341439
|
+
currentVersion: "1.81.2"
|
|
341353
341440
|
});
|
|
341354
341441
|
console.error(`
|
|
341355
341442
|
Error: Windows NPM detected in WSL
|
|
@@ -341884,7 +341971,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
341884
341971
|
}
|
|
341885
341972
|
async function getDoctorDiagnostic() {
|
|
341886
341973
|
const installationType = await getCurrentInstallationType();
|
|
341887
|
-
const version2 = typeof MACRO !== "undefined" ? "1.81.
|
|
341974
|
+
const version2 = typeof MACRO !== "undefined" ? "1.81.2" : "unknown";
|
|
341888
341975
|
const installationPath = await getInstallationPath();
|
|
341889
341976
|
const invokedBinary = getInvokedBinary();
|
|
341890
341977
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -342819,8 +342906,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
342819
342906
|
const maxVersion = await getMaxVersion();
|
|
342820
342907
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
342821
342908
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
342822
|
-
if (gte("1.81.
|
|
342823
|
-
logForDebugging(`Native installer: current version ${"1.81.
|
|
342909
|
+
if (gte("1.81.2", maxVersion)) {
|
|
342910
|
+
logForDebugging(`Native installer: current version ${"1.81.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
342824
342911
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
342825
342912
|
latency_ms: Date.now() - startTime,
|
|
342826
342913
|
max_version: maxVersion,
|
|
@@ -342831,7 +342918,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
342831
342918
|
version2 = maxVersion;
|
|
342832
342919
|
}
|
|
342833
342920
|
}
|
|
342834
|
-
if (!forceReinstall && version2 === "1.81.
|
|
342921
|
+
if (!forceReinstall && version2 === "1.81.2" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
342835
342922
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
342836
342923
|
logEvent("tengu_native_update_complete", {
|
|
342837
342924
|
latency_ms: Date.now() - startTime,
|
|
@@ -351636,7 +351723,8 @@ function SpinnerWithVerbInner({
|
|
|
351636
351723
|
};
|
|
351637
351724
|
}, [mode]);
|
|
351638
351725
|
const effortValue = useAppState((s_4) => s_4.effortValue);
|
|
351639
|
-
const
|
|
351726
|
+
const effortProvider = useAppState((s_4) => s_4.provider.active);
|
|
351727
|
+
const effortSuffix = getEffortSuffix(getMainLoopModel(), effortValue, effortProvider);
|
|
351640
351728
|
const runningTeammates = getAllInProcessTeammateTasks(tasks).filter((t) => t.status === "running");
|
|
351641
351729
|
const hasRunningTeammates = runningTeammates.length > 0;
|
|
351642
351730
|
const allIdle = hasRunningTeammates && runningTeammates.every((t_0) => t_0.isIdle);
|
|
@@ -392681,9 +392769,10 @@ function checkRepeatedFailure(signature, config3 = REPEATED_FAILURE_DEFAULTS) {
|
|
|
392681
392769
|
};
|
|
392682
392770
|
}
|
|
392683
392771
|
if (failures >= config3.limit) {
|
|
392772
|
+
const recoveryHint = config3.recoveryHint ? ` ${config3.recoveryHint.trim()}` : "";
|
|
392684
392773
|
return {
|
|
392685
392774
|
action: "refuse",
|
|
392686
|
-
reason: `This exact call has already failed ${failures} times with the same ` + `arguments, so it will fail again. Do not retry it unchanged. Either ` + `fix the arguments, use a different tool, or tell the user what is ` + `blocking you and stop
|
|
392775
|
+
reason: `This exact call has already failed ${failures} times with the same ` + `arguments, so it will fail again. Do not retry it unchanged. Either ` + `fix the arguments, use a different tool, or tell the user what is ` + `blocking you and stop.${recoveryHint}`
|
|
392687
392776
|
};
|
|
392688
392777
|
}
|
|
392689
392778
|
return { action: "allow" };
|
|
@@ -396500,7 +396589,8 @@ var init_WebSearchTool = __esm(() => {
|
|
|
396500
396589
|
agents: context5.options.agentDefinitions.activeAgents,
|
|
396501
396590
|
mcpTools: [],
|
|
396502
396591
|
agentId: context5.agentId,
|
|
396503
|
-
effortValue: appState.effortValue
|
|
396592
|
+
effortValue: appState.effortValue,
|
|
396593
|
+
providerSettings: appState.provider
|
|
396504
396594
|
}
|
|
396505
396595
|
});
|
|
396506
396596
|
const allContentBlocks = [];
|
|
@@ -413507,7 +413597,7 @@ function isAnyTracingEnabled() {
|
|
|
413507
413597
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
413508
413598
|
}
|
|
413509
413599
|
function getTracer() {
|
|
413510
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.81.
|
|
413600
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.81.2");
|
|
413511
413601
|
}
|
|
413512
413602
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
413513
413603
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -414906,6 +414996,9 @@ var init_toolHooks = __esm(() => {
|
|
|
414906
414996
|
});
|
|
414907
414997
|
|
|
414908
414998
|
// src/services/tools/toolExecution.ts
|
|
414999
|
+
function getToolRepeatedFailurePolicy(toolName) {
|
|
415000
|
+
return toolName === FILE_EDIT_TOOL_NAME || toolName === FILE_WRITE_TOOL_NAME || toolName === NOTEBOOK_EDIT_TOOL_NAME ? CODE_EDIT_REPEAT_POLICY : REPEATED_FAILURE_DEFAULTS;
|
|
415001
|
+
}
|
|
414909
415002
|
function countToolCalls(messages, excludedMessageId) {
|
|
414910
415003
|
if (!Array.isArray(messages))
|
|
414911
415004
|
return 0;
|
|
@@ -415310,7 +415403,7 @@ async function checkPermissionsAndCallTool(tool, toolUseID, input, toolUseContex
|
|
|
415310
415403
|
}
|
|
415311
415404
|
}
|
|
415312
415405
|
let callSig = callSignature(tool.name, input, repeatedFailureScope(toolUseContext, messageId));
|
|
415313
|
-
const repeat2 = checkRepeatedFailure(callSig);
|
|
415406
|
+
const repeat2 = checkRepeatedFailure(callSig, getToolRepeatedFailurePolicy(tool.name));
|
|
415314
415407
|
if (repeat2.action !== "allow") {
|
|
415315
415408
|
logEvent("tengu_repeated_failure_guard", {
|
|
415316
415409
|
toolName: sanitizeToolNameForAnalytics(tool.name),
|
|
@@ -416214,7 +416307,7 @@ async function checkPermissionsAndCallTool(tool, toolUseID, input, toolUseContex
|
|
|
416214
416307
|
}
|
|
416215
416308
|
}
|
|
416216
416309
|
}
|
|
416217
|
-
var UNKNOWN_TOOL_REPEAT_POLICY, HOOK_TIMING_DISPLAY_THRESHOLD_MS2 = 500, SLOW_PHASE_LOG_THRESHOLD_MS = 2000;
|
|
416310
|
+
var UNKNOWN_TOOL_REPEAT_POLICY, CODE_EDIT_REPEAT_POLICY, HOOK_TIMING_DISPLAY_THRESHOLD_MS2 = 500, SLOW_PHASE_LOG_THRESHOLD_MS = 2000;
|
|
416218
416311
|
var init_toolExecution = __esm(() => {
|
|
416219
416312
|
init_analytics();
|
|
416220
416313
|
init_metadata();
|
|
@@ -416261,6 +416354,12 @@ var init_toolExecution = __esm(() => {
|
|
|
416261
416354
|
limit: 1,
|
|
416262
416355
|
abortAfter: 3
|
|
416263
416356
|
};
|
|
416357
|
+
CODE_EDIT_REPEAT_POLICY = {
|
|
416358
|
+
enabled: true,
|
|
416359
|
+
limit: 2,
|
|
416360
|
+
abortAfter: 3,
|
|
416361
|
+
recoveryHint: "Read the current target again, then rebuild the edit from the exact current content and use a unique anchor (or replace_all only when every match is intended)."
|
|
416362
|
+
};
|
|
416264
416363
|
});
|
|
416265
416364
|
|
|
416266
416365
|
// src/services/tools/StreamingToolExecutor.ts
|
|
@@ -418501,6 +418600,7 @@ async function* queryLoop(params, consumedCommandUuids, ownedRepeatedFailureQuer
|
|
|
418501
418600
|
hasPendingMcpServers: appState.mcp.clients.some((c4) => c4.type === "pending"),
|
|
418502
418601
|
queryTracking,
|
|
418503
418602
|
effortValue: appState.effortValue,
|
|
418603
|
+
providerSettings: appState.provider,
|
|
418504
418604
|
advisorModel: appState.advisorModel,
|
|
418505
418605
|
skipCacheWrite,
|
|
418506
418606
|
agentId: toolUseContext.agentId,
|
|
@@ -420993,7 +421093,8 @@ async function streamCompactSummary({
|
|
|
420993
421093
|
querySource: "compact",
|
|
420994
421094
|
agents: context5.options.agentDefinitions.activeAgents,
|
|
420995
421095
|
mcpTools: [],
|
|
420996
|
-
effortValue: appState.effortValue
|
|
421096
|
+
effortValue: appState.effortValue,
|
|
421097
|
+
providerSettings: appState.provider
|
|
420997
421098
|
}
|
|
420998
421099
|
});
|
|
420999
421100
|
const streamIter = streamingGen[Symbol.asyncIterator]();
|
|
@@ -443655,7 +443756,7 @@ function Feedback({
|
|
|
443655
443756
|
platform: env2.platform,
|
|
443656
443757
|
gitRepo: envInfo.isGit,
|
|
443657
443758
|
terminal: env2.terminal,
|
|
443658
|
-
version: "1.81.
|
|
443759
|
+
version: "1.81.2",
|
|
443659
443760
|
transcript: normalizeMessagesForAPI(messages),
|
|
443660
443761
|
errors: sanitizedErrors,
|
|
443661
443762
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -443847,7 +443948,7 @@ function Feedback({
|
|
|
443847
443948
|
", ",
|
|
443848
443949
|
env2.terminal,
|
|
443849
443950
|
", v",
|
|
443850
|
-
"1.81.
|
|
443951
|
+
"1.81.2"
|
|
443851
443952
|
]
|
|
443852
443953
|
}, undefined, true, undefined, this)
|
|
443853
443954
|
]
|
|
@@ -443953,7 +444054,7 @@ ${sanitizedDescription}
|
|
|
443953
444054
|
` + `**Environment Info**
|
|
443954
444055
|
` + `- Platform: ${env2.platform}
|
|
443955
444056
|
` + `- Terminal: ${env2.terminal}
|
|
443956
|
-
` + `- Version: ${"1.81.
|
|
444057
|
+
` + `- Version: ${"1.81.2"}
|
|
443957
444058
|
` + `- Feedback ID: ${feedbackId}
|
|
443958
444059
|
` + `
|
|
443959
444060
|
**Errors**
|
|
@@ -447063,7 +447164,7 @@ function buildPrimarySection() {
|
|
|
447063
447164
|
}, undefined, false, undefined, this);
|
|
447064
447165
|
return [{
|
|
447065
447166
|
label: "Version",
|
|
447066
|
-
value: "1.81.
|
|
447167
|
+
value: "1.81.2"
|
|
447067
447168
|
}, {
|
|
447068
447169
|
label: "Session name",
|
|
447069
447170
|
value: nameValue
|
|
@@ -447830,10 +447931,10 @@ var init_ThemePicker = __esm(() => {
|
|
|
447830
447931
|
});
|
|
447831
447932
|
|
|
447832
447933
|
// src/components/EffortIndicator.ts
|
|
447833
|
-
function getEffortNotificationText(effortValue, model) {
|
|
447834
|
-
if (!modelSupportsEffort(model))
|
|
447934
|
+
function getEffortNotificationText(effortValue, model, provider) {
|
|
447935
|
+
if (!modelSupportsEffort(model, provider))
|
|
447835
447936
|
return;
|
|
447836
|
-
const level = getDisplayedEffortLevel(model, effortValue);
|
|
447937
|
+
const level = getDisplayedEffortLevel(model, effortValue, provider);
|
|
447837
447938
|
return `${effortLevelToSymbol(level)} ${level} \xB7 /effort`;
|
|
447838
447939
|
}
|
|
447839
447940
|
function effortLevelToSymbol(level) {
|
|
@@ -450445,7 +450546,7 @@ function Config({
|
|
|
450445
450546
|
}
|
|
450446
450547
|
}, undefined, false, undefined, this)
|
|
450447
450548
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
450448
|
-
currentVersion: "1.81.
|
|
450549
|
+
currentVersion: "1.81.2",
|
|
450449
450550
|
onChoice: (choice) => {
|
|
450450
450551
|
setShowSubmenu(null);
|
|
450451
450552
|
setTabsHidden(false);
|
|
@@ -450457,7 +450558,7 @@ function Config({
|
|
|
450457
450558
|
autoUpdatesChannel: "stable"
|
|
450458
450559
|
};
|
|
450459
450560
|
if (choice === "stay") {
|
|
450460
|
-
newSettings.minimumVersion = "1.81.
|
|
450561
|
+
newSettings.minimumVersion = "1.81.2";
|
|
450461
450562
|
}
|
|
450462
450563
|
updateSettingsForSource("userSettings", newSettings);
|
|
450463
450564
|
setSettingsData((prev_27) => ({
|
|
@@ -458766,7 +458867,7 @@ function HelpV2(t0) {
|
|
|
458766
458867
|
let t6;
|
|
458767
458868
|
if ($2[31] !== tabs) {
|
|
458768
458869
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
458769
|
-
title: `UR v${"1.81.
|
|
458870
|
+
title: `UR v${"1.81.2"}`,
|
|
458770
458871
|
color: "professionalBlue",
|
|
458771
458872
|
defaultTab: "general",
|
|
458772
458873
|
children: tabs
|
|
@@ -459699,7 +459800,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
459699
459800
|
async function handleInitialize(options2) {
|
|
459700
459801
|
return {
|
|
459701
459802
|
name: "UR",
|
|
459702
|
-
version: "1.81.
|
|
459803
|
+
version: "1.81.2",
|
|
459703
459804
|
protocolVersion: "0.1.0",
|
|
459704
459805
|
workspaceRoot: options2.cwd,
|
|
459705
459806
|
capabilities: {
|
|
@@ -476807,7 +476908,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
476807
476908
|
return [];
|
|
476808
476909
|
}
|
|
476809
476910
|
}
|
|
476810
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.81.
|
|
476911
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.81.2") {
|
|
476811
476912
|
if (process.env.USER_TYPE === "ant") {
|
|
476812
476913
|
const changelog = "";
|
|
476813
476914
|
if (changelog) {
|
|
@@ -476834,7 +476935,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.81.0")
|
|
|
476834
476935
|
releaseNotes
|
|
476835
476936
|
};
|
|
476836
476937
|
}
|
|
476837
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.81.
|
|
476938
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.81.2") {
|
|
476838
476939
|
if (process.env.USER_TYPE === "ant") {
|
|
476839
476940
|
const changelog = "";
|
|
476840
476941
|
if (changelog) {
|
|
@@ -479739,7 +479840,7 @@ function getRecentActivitySync() {
|
|
|
479739
479840
|
return cachedActivity;
|
|
479740
479841
|
}
|
|
479741
479842
|
function getLogoDisplayData() {
|
|
479742
|
-
const version2 = process.env.DEMO_VERSION ?? "1.81.
|
|
479843
|
+
const version2 = process.env.DEMO_VERSION ?? "1.81.2";
|
|
479743
479844
|
const serverUrl = getDirectConnectServerUrl();
|
|
479744
479845
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
479745
479846
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -479814,33 +479915,55 @@ var init_logoV2Utils = __esm(() => {
|
|
|
479814
479915
|
|
|
479815
479916
|
// src/components/LogoV2/URBanner.tsx
|
|
479816
479917
|
function URBanner() {
|
|
479918
|
+
if (isScreenReaderMode()) {
|
|
479919
|
+
return /* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
479920
|
+
children: "UR \u2014 the autonomous agent"
|
|
479921
|
+
}, undefined, false, undefined, this);
|
|
479922
|
+
}
|
|
479817
479923
|
return /* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedBox_default, {
|
|
479818
479924
|
flexDirection: "column",
|
|
479819
479925
|
alignItems: "center",
|
|
479820
479926
|
children: [
|
|
479821
|
-
|
|
479927
|
+
UR_WORDMARK_ROWS.map((row, i3) => /* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
479822
479928
|
color: "ur",
|
|
479823
479929
|
bold: true,
|
|
479824
479930
|
children: row
|
|
479825
479931
|
}, i3, false, undefined, this)),
|
|
479826
479932
|
/* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
479827
|
-
|
|
479828
|
-
|
|
479829
|
-
|
|
479830
|
-
|
|
479933
|
+
children: [
|
|
479934
|
+
/* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
479935
|
+
color: "ur",
|
|
479936
|
+
children: "\u25C6"
|
|
479937
|
+
}, undefined, false, undefined, this),
|
|
479938
|
+
/* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
479939
|
+
dimColor: true,
|
|
479940
|
+
children: [
|
|
479941
|
+
" ",
|
|
479942
|
+
UR_WORDMARK_TAGLINE,
|
|
479943
|
+
" "
|
|
479944
|
+
]
|
|
479945
|
+
}, undefined, true, undefined, this),
|
|
479946
|
+
/* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
479947
|
+
color: "ur",
|
|
479948
|
+
children: "\u25C6"
|
|
479949
|
+
}, undefined, false, undefined, this)
|
|
479950
|
+
]
|
|
479951
|
+
}, undefined, true, undefined, this)
|
|
479831
479952
|
]
|
|
479832
479953
|
}, undefined, true, undefined, this);
|
|
479833
479954
|
}
|
|
479834
|
-
var jsx_dev_runtime233,
|
|
479955
|
+
var jsx_dev_runtime233, UR_WORDMARK_ROWS, UR_WORDMARK_TAGLINE = "THE AUTONOMOUS AGENT";
|
|
479835
479956
|
var init_URBanner = __esm(() => {
|
|
479836
479957
|
init_ink2();
|
|
479958
|
+
init_screenReader();
|
|
479837
479959
|
jsx_dev_runtime233 = __toESM(require_jsx_dev_runtime(), 1);
|
|
479838
|
-
|
|
479839
|
-
"\u2588
|
|
479840
|
-
"\u2588
|
|
479841
|
-
"\u2588
|
|
479842
|
-
"\u2588
|
|
479843
|
-
"
|
|
479960
|
+
UR_WORDMARK_ROWS = [
|
|
479961
|
+
"\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 ",
|
|
479962
|
+
"\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557",
|
|
479963
|
+
"\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D",
|
|
479964
|
+
"\u2588\u2588\u2551 \u2588\u2588\u2551 \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557",
|
|
479965
|
+
"\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551",
|
|
479966
|
+
" \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D"
|
|
479844
479967
|
];
|
|
479845
479968
|
});
|
|
479846
479969
|
|
|
@@ -480158,6 +480281,7 @@ function CondensedLogo() {
|
|
|
480158
480281
|
} = useTerminalSize();
|
|
480159
480282
|
const agent = useAppState(_temp104);
|
|
480160
480283
|
const effortValue = useAppState(_temp240);
|
|
480284
|
+
const effortProvider = useAppState((s) => s.provider.active);
|
|
480161
480285
|
const model = useMainLoopModel();
|
|
480162
480286
|
const modelDisplayName = renderModelSetting(model);
|
|
480163
480287
|
const {
|
|
@@ -480210,7 +480334,7 @@ function CondensedLogo() {
|
|
|
480210
480334
|
textWidth
|
|
480211
480335
|
} = getCondensedLogoLayout(columns);
|
|
480212
480336
|
const truncatedVersion = truncate3(version2, Math.max(textWidth - 4, 1));
|
|
480213
|
-
const effortSuffix = getEffortSuffix(model, effortValue);
|
|
480337
|
+
const effortSuffix = getEffortSuffix(model, effortValue, effortProvider);
|
|
480214
480338
|
const {
|
|
480215
480339
|
shouldSplit,
|
|
480216
480340
|
truncatedModel,
|
|
@@ -480586,6 +480710,7 @@ function LogoV2() {
|
|
|
480586
480710
|
const showOverageCreditUpsell = useShowOverageCreditUpsell();
|
|
480587
480711
|
const agent = useAppState(_temp107);
|
|
480588
480712
|
const effortValue = useAppState(_temp241);
|
|
480713
|
+
const effortProvider = useAppState((s) => s.provider.active);
|
|
480589
480714
|
const config4 = getGlobalConfig();
|
|
480590
480715
|
let changelog;
|
|
480591
480716
|
try {
|
|
@@ -480607,7 +480732,7 @@ function LogoV2() {
|
|
|
480607
480732
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
480608
480733
|
t2 = () => {
|
|
480609
480734
|
const currentConfig = getGlobalConfig();
|
|
480610
|
-
if (currentConfig.lastReleaseNotesSeen === "1.81.
|
|
480735
|
+
if (currentConfig.lastReleaseNotesSeen === "1.81.2") {
|
|
480611
480736
|
return;
|
|
480612
480737
|
}
|
|
480613
480738
|
saveGlobalConfig(_temp325);
|
|
@@ -480680,7 +480805,7 @@ function LogoV2() {
|
|
|
480680
480805
|
agentName: agentNameFromSettings
|
|
480681
480806
|
} = getLogoDisplayData();
|
|
480682
480807
|
const agentName = agent ?? agentNameFromSettings;
|
|
480683
|
-
const effortSuffix = getEffortSuffix(model, effortValue);
|
|
480808
|
+
const effortSuffix = getEffortSuffix(model, effortValue, effortProvider);
|
|
480684
480809
|
const t9 = fullModelDisplayName + effortSuffix;
|
|
480685
480810
|
let t10;
|
|
480686
480811
|
if ($2[13] !== t9) {
|
|
@@ -481292,12 +481417,12 @@ function LogoV2() {
|
|
|
481292
481417
|
return t41;
|
|
481293
481418
|
}
|
|
481294
481419
|
function _temp325(current) {
|
|
481295
|
-
if (current.lastReleaseNotesSeen === "1.81.
|
|
481420
|
+
if (current.lastReleaseNotesSeen === "1.81.2") {
|
|
481296
481421
|
return current;
|
|
481297
481422
|
}
|
|
481298
481423
|
return {
|
|
481299
481424
|
...current,
|
|
481300
|
-
lastReleaseNotesSeen: "1.81.
|
|
481425
|
+
lastReleaseNotesSeen: "1.81.2"
|
|
481301
481426
|
};
|
|
481302
481427
|
}
|
|
481303
481428
|
function _temp241(s_0) {
|
|
@@ -497247,7 +497372,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
497247
497372
|
if (spec.name !== specName) {
|
|
497248
497373
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
497249
497374
|
}
|
|
497250
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.81.
|
|
497375
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.81.2" : "1.81.2");
|
|
497251
497376
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
497252
497377
|
throw new Error("invalid ur-agent package version");
|
|
497253
497378
|
}
|
|
@@ -498240,7 +498365,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
498240
498365
|
path: ".github/workflows/ur.yml",
|
|
498241
498366
|
root: "project",
|
|
498242
498367
|
content: compileAgenticCiWorkflow("default", {
|
|
498243
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.81.
|
|
498368
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.81.2" : "1.81.2"
|
|
498244
498369
|
})
|
|
498245
498370
|
},
|
|
498246
498371
|
{
|
|
@@ -498303,7 +498428,7 @@ function value(tokens, flag) {
|
|
|
498303
498428
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
498304
498429
|
}
|
|
498305
498430
|
function cliVersion() {
|
|
498306
|
-
return typeof MACRO !== "undefined" ? "1.81.
|
|
498431
|
+
return typeof MACRO !== "undefined" ? "1.81.2" : "1.81.2";
|
|
498307
498432
|
}
|
|
498308
498433
|
function workflowPath(cwd2) {
|
|
498309
498434
|
return join168(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -504159,7 +504284,7 @@ function createAcpStdioApp(deps) {
|
|
|
504159
504284
|
}
|
|
504160
504285
|
},
|
|
504161
504286
|
authMethods: [],
|
|
504162
|
-
agentInfo: { name: "UR-Nexus", version: "1.81.
|
|
504287
|
+
agentInfo: { name: "UR-Nexus", version: "1.81.2" }
|
|
504163
504288
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
504164
504289
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
504165
504290
|
await runtime2.announce({
|
|
@@ -504256,7 +504381,7 @@ function createAcpStdioAgent(deps) {
|
|
|
504256
504381
|
}
|
|
504257
504382
|
},
|
|
504258
504383
|
authMethods: [],
|
|
504259
|
-
agentInfo: { name: "UR-Nexus", version: "1.81.
|
|
504384
|
+
agentInfo: { name: "UR-Nexus", version: "1.81.2" }
|
|
504260
504385
|
});
|
|
504261
504386
|
return;
|
|
504262
504387
|
case "authenticate":
|
|
@@ -715508,7 +715633,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
715508
715633
|
smapsRollup,
|
|
715509
715634
|
platform: process.platform,
|
|
715510
715635
|
nodeVersion: process.version,
|
|
715511
|
-
ccVersion: "1.81.
|
|
715636
|
+
ccVersion: "1.81.2"
|
|
715512
715637
|
};
|
|
715513
715638
|
}
|
|
715514
715639
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -716097,7 +716222,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
716097
716222
|
var call154 = async () => {
|
|
716098
716223
|
return {
|
|
716099
716224
|
type: "text",
|
|
716100
|
-
value: "1.81.
|
|
716225
|
+
value: "1.81.2"
|
|
716101
716226
|
};
|
|
716102
716227
|
}, version2, version_default;
|
|
716103
716228
|
var init_version = __esm(() => {
|
|
@@ -719892,13 +720017,15 @@ function ModelPickerWrapper(t0) {
|
|
|
719892
720017
|
setAppState((prev) => ({
|
|
719893
720018
|
...prev,
|
|
719894
720019
|
mainLoopModel: model,
|
|
719895
|
-
mainLoopModelForSession: null
|
|
720020
|
+
mainLoopModelForSession: null,
|
|
720021
|
+
...model && metadata ? {
|
|
720022
|
+
provider: {
|
|
720023
|
+
...prev.provider,
|
|
720024
|
+
active: metadata.providerId,
|
|
720025
|
+
model
|
|
720026
|
+
}
|
|
720027
|
+
} : {}
|
|
719896
720028
|
}));
|
|
719897
|
-
if (model && metadata) {
|
|
719898
|
-
setProviderModel(metadata.providerId, model, {
|
|
719899
|
-
modelSource: metadata.modelSource
|
|
719900
|
-
});
|
|
719901
|
-
}
|
|
719902
720029
|
let message = metadata ? `Selected provider: ${source_default.bold(metadata.providerName)} (${metadata.accessType})
|
|
719903
720030
|
Selected model: ${source_default.bold(renderModelLabel(model))}
|
|
719904
720031
|
Model source: ${metadata.modelSource}
|
|
@@ -721771,7 +721898,7 @@ __export(exports_effort, {
|
|
|
721771
721898
|
executeEffort: () => executeEffort,
|
|
721772
721899
|
call: () => call168
|
|
721773
721900
|
});
|
|
721774
|
-
function setEffortValue(effortValue) {
|
|
721901
|
+
function setEffortValue(effortValue, model) {
|
|
721775
721902
|
const persistable = toPersistableEffort(effortValue);
|
|
721776
721903
|
if (persistable !== undefined) {
|
|
721777
721904
|
const result = updateSettingsForSource("userSettings", {
|
|
@@ -721806,6 +721933,15 @@ function setEffortValue(effortValue) {
|
|
|
721806
721933
|
}
|
|
721807
721934
|
const description = getEffortValueDescription(effortValue);
|
|
721808
721935
|
const suffix = persistable !== undefined ? "" : " (this session only)";
|
|
721936
|
+
const appliedLevel = model ? getDisplayedEffortLevel(model, effortValue) : effortValue;
|
|
721937
|
+
if (typeof effortValue === "string" && appliedLevel !== effortValue) {
|
|
721938
|
+
return {
|
|
721939
|
+
message: `Requested effort level ${effortValue}${suffix}, but ${model} advertises up to ${appliedLevel}; applied ${appliedLevel}: ${getEffortValueDescription(appliedLevel)}`,
|
|
721940
|
+
effortUpdate: {
|
|
721941
|
+
value: effortValue
|
|
721942
|
+
}
|
|
721943
|
+
};
|
|
721944
|
+
}
|
|
721809
721945
|
return {
|
|
721810
721946
|
message: `Set effort level to ${effortValue}${suffix}: ${description}`,
|
|
721811
721947
|
effortUpdate: {
|
|
@@ -721822,6 +721958,12 @@ function showCurrentEffort(appStateEffort, model) {
|
|
|
721822
721958
|
message: `Effort level: auto (currently ${level})`
|
|
721823
721959
|
};
|
|
721824
721960
|
}
|
|
721961
|
+
const appliedLevel = getDisplayedEffortLevel(model, appStateEffort);
|
|
721962
|
+
if (typeof effectiveValue === "string" && appliedLevel !== effectiveValue) {
|
|
721963
|
+
return {
|
|
721964
|
+
message: `Requested effort: ${effectiveValue}; applied effort for ${model}: ${appliedLevel} (${getEffortValueDescription(appliedLevel)})`
|
|
721965
|
+
};
|
|
721966
|
+
}
|
|
721825
721967
|
const description = getEffortValueDescription(effectiveValue);
|
|
721826
721968
|
return {
|
|
721827
721969
|
message: `Current effort level: ${effectiveValue} (${description})`
|
|
@@ -721856,7 +721998,7 @@ function unsetEffortLevel() {
|
|
|
721856
721998
|
}
|
|
721857
721999
|
};
|
|
721858
722000
|
}
|
|
721859
|
-
function executeEffort(args) {
|
|
722001
|
+
function executeEffort(args, model) {
|
|
721860
722002
|
const normalized = args.toLowerCase();
|
|
721861
722003
|
if (normalized === "auto" || normalized === "unset") {
|
|
721862
722004
|
return unsetEffortLevel();
|
|
@@ -721866,7 +722008,7 @@ function executeEffort(args) {
|
|
|
721866
722008
|
message: `Invalid argument: ${args}. Valid options are: low, medium, high, max, auto`
|
|
721867
722009
|
};
|
|
721868
722010
|
}
|
|
721869
|
-
return setEffortValue(normalized);
|
|
722011
|
+
return setEffortValue(normalized, model);
|
|
721870
722012
|
}
|
|
721871
722013
|
function ShowCurrentEffort(t0) {
|
|
721872
722014
|
const {
|
|
@@ -721938,7 +722080,14 @@ Effort levels:
|
|
|
721938
722080
|
onDone
|
|
721939
722081
|
}, undefined, false, undefined, this);
|
|
721940
722082
|
}
|
|
721941
|
-
const
|
|
722083
|
+
const model = getMainLoopModel();
|
|
722084
|
+
const runtimeProvider = getRuntimeProvider();
|
|
722085
|
+
if (args.toLowerCase() === "max" && runtimeProvider === "openrouter" && !getProviderReasoningCapabilitiesForModel(model, runtimeProvider)) {
|
|
722086
|
+
await ensureProviderModelsFresh(runtimeProvider).catch(() => {
|
|
722087
|
+
return;
|
|
722088
|
+
});
|
|
722089
|
+
}
|
|
722090
|
+
const result = executeEffort(args, model);
|
|
721942
722091
|
return /* @__PURE__ */ jsx_dev_runtime345.jsxDEV(ApplyEffortAndClose, {
|
|
721943
722092
|
result,
|
|
721944
722093
|
onDone
|
|
@@ -721950,6 +722099,9 @@ var init_effort2 = __esm(() => {
|
|
|
721950
722099
|
init_analytics();
|
|
721951
722100
|
init_AppState();
|
|
721952
722101
|
init_effort();
|
|
722102
|
+
init_providerRegistry();
|
|
722103
|
+
init_model();
|
|
722104
|
+
init_providers();
|
|
721953
722105
|
init_settings2();
|
|
721954
722106
|
import_compiler_runtime251 = __toESM(require_compiler_runtime(), 1);
|
|
721955
722107
|
React105 = __toESM(require_react(), 1);
|
|
@@ -727340,7 +727492,7 @@ function generateHtmlReport(data, insights) {
|
|
|
727340
727492
|
</html>`;
|
|
727341
727493
|
}
|
|
727342
727494
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
727343
|
-
const version3 = typeof MACRO !== "undefined" ? "1.81.
|
|
727495
|
+
const version3 = typeof MACRO !== "undefined" ? "1.81.2" : "unknown";
|
|
727344
727496
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
727345
727497
|
const facets_summary = {
|
|
727346
727498
|
total: facets.size,
|
|
@@ -731653,7 +731805,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
731653
731805
|
init_settings2();
|
|
731654
731806
|
init_slowOperations();
|
|
731655
731807
|
init_uuid();
|
|
731656
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.81.
|
|
731808
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.81.2" : "unknown";
|
|
731657
731809
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
731658
731810
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
731659
731811
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -732868,7 +733020,7 @@ var init_filesystem = __esm(() => {
|
|
|
732868
733020
|
});
|
|
732869
733021
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
732870
733022
|
const nonce = randomBytes24(16).toString("hex");
|
|
732871
|
-
return join243(getURTempDir(), "bundled-skills", "1.81.
|
|
733023
|
+
return join243(getURTempDir(), "bundled-skills", "1.81.2", nonce);
|
|
732872
733024
|
});
|
|
732873
733025
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
732874
733026
|
});
|
|
@@ -739268,7 +739420,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
739268
739420
|
}
|
|
739269
739421
|
function computeFingerprintFromMessages(messages) {
|
|
739270
739422
|
const firstMessageText = extractFirstMessageText(messages);
|
|
739271
|
-
return computeFingerprint(firstMessageText, "1.81.
|
|
739423
|
+
return computeFingerprint(firstMessageText, "1.81.2");
|
|
739272
739424
|
}
|
|
739273
739425
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
739274
739426
|
var init_fingerprint = () => {};
|
|
@@ -739681,7 +739833,8 @@ async function* executeNonStreamingRequest(clientOptions, retryOptions, paramsFr
|
|
|
739681
739833
|
maxRetries: 0,
|
|
739682
739834
|
model: clientOptions.model,
|
|
739683
739835
|
fetchOverride: clientOptions.fetchOverride,
|
|
739684
|
-
source: clientOptions.source
|
|
739836
|
+
source: clientOptions.source,
|
|
739837
|
+
providerSettings: clientOptions.providerSettings
|
|
739685
739838
|
}), async (urhq, attempt, context6) => {
|
|
739686
739839
|
const start = Date.now();
|
|
739687
739840
|
const retryParams = paramsFromContext(context6);
|
|
@@ -739971,7 +740124,7 @@ ${deferredToolList}
|
|
|
739971
740124
|
setThinkingClearLatched(true);
|
|
739972
740125
|
}
|
|
739973
740126
|
}
|
|
739974
|
-
const effort = resolveAppliedEffort(options5.model, options5.effortValue);
|
|
740127
|
+
const effort = resolveAppliedEffort(options5.model, options5.effortValue, options5.providerSettings?.active);
|
|
739975
740128
|
if (false) {}
|
|
739976
740129
|
const newContext = isBetaTracingEnabled() || shouldCaptureGenAiContent() ? {
|
|
739977
740130
|
systemPrompt: systemPrompt.join(`
|
|
@@ -740161,7 +740314,8 @@ ${deferredToolList}
|
|
|
740161
740314
|
maxRetries: 0,
|
|
740162
740315
|
model: options5.model,
|
|
740163
740316
|
fetchOverride: options5.fetchOverride,
|
|
740164
|
-
source: options5.querySource
|
|
740317
|
+
source: options5.querySource,
|
|
740318
|
+
providerSettings: options5.providerSettings
|
|
740165
740319
|
}), async (urhq, attempt, context6) => {
|
|
740166
740320
|
attemptNumber = attempt;
|
|
740167
740321
|
isFastModeRequest = context6.fastMode ?? false;
|
|
@@ -740592,7 +740746,11 @@ ${deferredToolList}
|
|
|
740592
740746
|
model: options5.model,
|
|
740593
740747
|
fallback_cause: streamIdleAborted ? "watchdog" : "other"
|
|
740594
740748
|
});
|
|
740595
|
-
const result = yield* executeNonStreamingRequest({
|
|
740749
|
+
const result = yield* executeNonStreamingRequest({
|
|
740750
|
+
model: options5.model,
|
|
740751
|
+
source: options5.querySource,
|
|
740752
|
+
providerSettings: options5.providerSettings
|
|
740753
|
+
}, {
|
|
740596
740754
|
model: options5.model,
|
|
740597
740755
|
fallbackModel: options5.fallbackModel,
|
|
740598
740756
|
thinkingConfig,
|
|
@@ -740649,7 +740807,11 @@ ${deferredToolList}
|
|
|
740649
740807
|
fallback_cause: "404_stream_creation"
|
|
740650
740808
|
});
|
|
740651
740809
|
try {
|
|
740652
|
-
const result = yield* executeNonStreamingRequest({
|
|
740810
|
+
const result = yield* executeNonStreamingRequest({
|
|
740811
|
+
model: options5.model,
|
|
740812
|
+
source: options5.querySource,
|
|
740813
|
+
providerSettings: options5.providerSettings
|
|
740814
|
+
}, {
|
|
740653
740815
|
model: options5.model,
|
|
740654
740816
|
fallbackModel: options5.fallbackModel,
|
|
740655
740817
|
thinkingConfig,
|
|
@@ -741193,7 +741355,7 @@ async function sideQuery(opts) {
|
|
|
741193
741355
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
741194
741356
|
}
|
|
741195
741357
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
741196
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.81.
|
|
741358
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.81.2");
|
|
741197
741359
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
741198
741360
|
const systemBlocks = [
|
|
741199
741361
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -746027,7 +746189,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
746027
746189
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
746028
746190
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
746029
746191
|
betas: getSdkBetas(),
|
|
746030
|
-
ur_version: "1.81.
|
|
746192
|
+
ur_version: "1.81.2",
|
|
746031
746193
|
output_style: outputStyle,
|
|
746032
746194
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
746033
746195
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -759863,7 +760025,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
759863
760025
|
function getSemverPart(version3) {
|
|
759864
760026
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
759865
760027
|
}
|
|
759866
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.81.
|
|
760028
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.81.2") {
|
|
759867
760029
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
|
|
759868
760030
|
if (!updatedVersion) {
|
|
759869
760031
|
return null;
|
|
@@ -759912,7 +760074,7 @@ function AutoUpdater({
|
|
|
759912
760074
|
return;
|
|
759913
760075
|
}
|
|
759914
760076
|
if (false) {}
|
|
759915
|
-
const currentVersion = "1.81.
|
|
760077
|
+
const currentVersion = "1.81.2";
|
|
759916
760078
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
759917
760079
|
let latestVersion = await getLatestVersion(channel);
|
|
759918
760080
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -760141,12 +760303,12 @@ function NativeAutoUpdater({
|
|
|
760141
760303
|
logEvent("tengu_native_auto_updater_start", {});
|
|
760142
760304
|
try {
|
|
760143
760305
|
const maxVersion = await getMaxVersion();
|
|
760144
|
-
if (maxVersion && gt("1.81.
|
|
760306
|
+
if (maxVersion && gt("1.81.2", maxVersion)) {
|
|
760145
760307
|
const msg = await getMaxVersionMessage();
|
|
760146
760308
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
760147
760309
|
}
|
|
760148
760310
|
const result = await installLatest(channel);
|
|
760149
|
-
const currentVersion = "1.81.
|
|
760311
|
+
const currentVersion = "1.81.2";
|
|
760150
760312
|
const latencyMs = Date.now() - startTime;
|
|
760151
760313
|
if (result.lockFailed) {
|
|
760152
760314
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -760283,17 +760445,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
760283
760445
|
const maxVersion = await getMaxVersion();
|
|
760284
760446
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
760285
760447
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
760286
|
-
if (gte("1.81.
|
|
760287
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.81.
|
|
760448
|
+
if (gte("1.81.2", maxVersion)) {
|
|
760449
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.81.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
760288
760450
|
setUpdateAvailable(false);
|
|
760289
760451
|
return;
|
|
760290
760452
|
}
|
|
760291
760453
|
latest = maxVersion;
|
|
760292
760454
|
}
|
|
760293
|
-
const hasUpdate = latest && !gte("1.81.
|
|
760455
|
+
const hasUpdate = latest && !gte("1.81.2", latest) && !shouldSkipVersion(latest);
|
|
760294
760456
|
setUpdateAvailable(!!hasUpdate);
|
|
760295
760457
|
if (hasUpdate) {
|
|
760296
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.81.
|
|
760458
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.81.2"} -> ${latest}`);
|
|
760297
760459
|
}
|
|
760298
760460
|
};
|
|
760299
760461
|
$2[0] = t1;
|
|
@@ -760327,7 +760489,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
760327
760489
|
wrap: "truncate",
|
|
760328
760490
|
children: [
|
|
760329
760491
|
"currentVersion: ",
|
|
760330
|
-
"1.81.
|
|
760492
|
+
"1.81.2"
|
|
760331
760493
|
]
|
|
760332
760494
|
}, undefined, true, undefined, this);
|
|
760333
760495
|
$2[3] = verbose;
|
|
@@ -771180,7 +771342,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
771180
771342
|
project_dir: getOriginalCwd(),
|
|
771181
771343
|
added_dirs: addedDirs
|
|
771182
771344
|
},
|
|
771183
|
-
version: "1.81.
|
|
771345
|
+
version: "1.81.2",
|
|
771184
771346
|
output_style: {
|
|
771185
771347
|
name: outputStyleName
|
|
771186
771348
|
},
|
|
@@ -771315,7 +771477,7 @@ function StatusLineInner({
|
|
|
771315
771477
|
const attention = customStatusError ?? taskAttention;
|
|
771316
771478
|
const terminalSize = React133.useContext(TerminalSizeContext);
|
|
771317
771479
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
771318
|
-
version: "1.81.
|
|
771480
|
+
version: "1.81.2",
|
|
771319
771481
|
providerLabel: providerRuntime.providerLabel,
|
|
771320
771482
|
authMode: providerRuntime.authLabel,
|
|
771321
771483
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -773817,6 +773979,7 @@ function PromptInput({
|
|
|
773817
773979
|
const thinkingEnabled = useAppState((s) => s.thinkingEnabled);
|
|
773818
773980
|
const isFastMode = useAppState((s) => isFastModeEnabled() ? s.fastMode : false);
|
|
773819
773981
|
const effortValue = useAppState((s) => s.effortValue);
|
|
773982
|
+
const effortProvider = useAppState((s) => s.provider.active);
|
|
773820
773983
|
const viewedTeammate = getViewedTeammateTask(store2.getState());
|
|
773821
773984
|
const viewingAgentName = viewedTeammate?.identity.agentName;
|
|
773822
773985
|
const viewingAgentColor = viewedTeammate?.identity.color && AGENT_COLORS.includes(viewedTeammate.identity.color) ? viewedTeammate.identity.color : undefined;
|
|
@@ -774985,7 +775148,7 @@ function PromptInput({
|
|
|
774985
775148
|
const fastModeCooldown = isFastModeEnabled() ? isFastModeCooldown() : false;
|
|
774986
775149
|
const showFastIcon = isFastModeEnabled() ? isFastMode && (isFastModeAvailable() || fastModeCooldown) : false;
|
|
774987
775150
|
const showFastIconHint = useShowFastIconHint(showFastIcon ?? false);
|
|
774988
|
-
const effortNotificationText = briefOwnsGap ? undefined : getEffortNotificationText(effortValue, mainLoopModel);
|
|
775151
|
+
const effortNotificationText = briefOwnsGap ? undefined : getEffortNotificationText(effortValue, mainLoopModel, effortProvider);
|
|
774989
775152
|
import_react258.useEffect(() => {
|
|
774990
775153
|
if (!effortNotificationText) {
|
|
774991
775154
|
removeNotification("effort-level");
|
|
@@ -783570,7 +783733,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
783570
783733
|
} catch {}
|
|
783571
783734
|
const data = {
|
|
783572
783735
|
trigger: trigger2,
|
|
783573
|
-
version: "1.81.
|
|
783736
|
+
version: "1.81.2",
|
|
783574
783737
|
platform: process.platform,
|
|
783575
783738
|
transcript,
|
|
783576
783739
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -795939,7 +796102,7 @@ function WelcomeV2() {
|
|
|
795939
796102
|
dimColor: true,
|
|
795940
796103
|
children: [
|
|
795941
796104
|
"v",
|
|
795942
|
-
"1.81.
|
|
796105
|
+
"1.81.2"
|
|
795943
796106
|
]
|
|
795944
796107
|
}, undefined, true, undefined, this)
|
|
795945
796108
|
]
|
|
@@ -797199,7 +797362,7 @@ function completeOnboarding() {
|
|
|
797199
797362
|
saveGlobalConfig((current) => ({
|
|
797200
797363
|
...current,
|
|
797201
797364
|
hasCompletedOnboarding: true,
|
|
797202
|
-
lastOnboardingVersion: "1.81.
|
|
797365
|
+
lastOnboardingVersion: "1.81.2"
|
|
797203
797366
|
}));
|
|
797204
797367
|
}
|
|
797205
797368
|
function showDialog(root2, renderer) {
|
|
@@ -802345,7 +802508,7 @@ function appendToLog(path28, message) {
|
|
|
802345
802508
|
cwd: getFsImplementation().cwd(),
|
|
802346
802509
|
userType: process.env.USER_TYPE,
|
|
802347
802510
|
sessionId: getSessionId(),
|
|
802348
|
-
version: "1.81.
|
|
802511
|
+
version: "1.81.2"
|
|
802349
802512
|
};
|
|
802350
802513
|
getLogWriter(path28).write(messageWithTimestamp);
|
|
802351
802514
|
}
|
|
@@ -806509,8 +806672,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
806509
806672
|
}
|
|
806510
806673
|
async function checkEnvLessBridgeMinVersion() {
|
|
806511
806674
|
const cfg = await getEnvLessBridgeConfig();
|
|
806512
|
-
if (cfg.min_version && lt("1.81.
|
|
806513
|
-
return `Your version of UR (${"1.81.
|
|
806675
|
+
if (cfg.min_version && lt("1.81.2", cfg.min_version)) {
|
|
806676
|
+
return `Your version of UR (${"1.81.2"}) is too old for Remote Control.
|
|
806514
806677
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
806515
806678
|
}
|
|
806516
806679
|
return null;
|
|
@@ -806984,7 +807147,7 @@ async function initBridgeCore(params) {
|
|
|
806984
807147
|
const rawApi = createBridgeApiClient({
|
|
806985
807148
|
baseUrl,
|
|
806986
807149
|
getAccessToken,
|
|
806987
|
-
runnerVersion: "1.81.
|
|
807150
|
+
runnerVersion: "1.81.2",
|
|
806988
807151
|
onDebug: logForDebugging,
|
|
806989
807152
|
onAuth401,
|
|
806990
807153
|
getTrustedDeviceToken
|
|
@@ -816457,7 +816620,7 @@ function getAgUiCapabilities() {
|
|
|
816457
816620
|
name: "UR-Nexus",
|
|
816458
816621
|
type: "ur-nexus",
|
|
816459
816622
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
816460
|
-
version: "1.81.
|
|
816623
|
+
version: "1.81.2",
|
|
816461
816624
|
provider: "UR",
|
|
816462
816625
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
816463
816626
|
},
|
|
@@ -817684,7 +817847,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
817684
817847
|
};
|
|
817685
817848
|
const server2 = new Server({
|
|
817686
817849
|
name: "ur-nexus",
|
|
817687
|
-
version: "1.81.
|
|
817850
|
+
version: "1.81.2"
|
|
817688
817851
|
}, {
|
|
817689
817852
|
capabilities: {
|
|
817690
817853
|
tools: {}
|
|
@@ -818888,7 +819051,7 @@ function thrownResponse(error40) {
|
|
|
818888
819051
|
}
|
|
818889
819052
|
async function createUrMcp2026Runtime(options5) {
|
|
818890
819053
|
const server2 = createMCPServer(options5.cwd, options5.debug === true, options5.verbose === true);
|
|
818891
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.81.
|
|
819054
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.81.2" }, { capabilities: {} });
|
|
818892
819055
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
818893
819056
|
try {
|
|
818894
819057
|
await server2.connect(serverTransport);
|
|
@@ -818899,7 +819062,7 @@ async function createUrMcp2026Runtime(options5) {
|
|
|
818899
819062
|
}
|
|
818900
819063
|
const runtime2 = new Mcp2026Runtime({
|
|
818901
819064
|
cwd: options5.cwd,
|
|
818902
|
-
version: "1.81.
|
|
819065
|
+
version: "1.81.2",
|
|
818903
819066
|
backend: {
|
|
818904
819067
|
listTools: async () => {
|
|
818905
819068
|
const listed = await client2.listTools();
|
|
@@ -821634,7 +821797,7 @@ async function update() {
|
|
|
821634
821797
|
logEvent("tengu_update_check", {});
|
|
821635
821798
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
821636
821799
|
const result = await checkUpgradeStatus({
|
|
821637
|
-
currentVersion: "1.81.
|
|
821800
|
+
currentVersion: "1.81.2",
|
|
821638
821801
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
821639
821802
|
installationType: diagnostic2.installationType,
|
|
821640
821803
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -822962,7 +823125,7 @@ ${customInstructions}` : customInstructions;
|
|
|
822962
823125
|
}
|
|
822963
823126
|
}
|
|
822964
823127
|
logForDiagnosticsNoPII("info", "started", {
|
|
822965
|
-
version: "1.81.
|
|
823128
|
+
version: "1.81.2",
|
|
822966
823129
|
is_native_binary: isInBundledMode()
|
|
822967
823130
|
});
|
|
822968
823131
|
registerCleanup(async () => {
|
|
@@ -823749,7 +823912,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
823749
823912
|
pendingHookMessages
|
|
823750
823913
|
}, renderAndRun);
|
|
823751
823914
|
}
|
|
823752
|
-
}).version("1.81.
|
|
823915
|
+
}).version("1.81.2 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
823753
823916
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
823754
823917
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
823755
823918
|
if (canUserConfigureAdvisor()) {
|
|
@@ -824876,7 +825039,7 @@ if (false) {}
|
|
|
824876
825039
|
async function main2() {
|
|
824877
825040
|
const args = process.argv.slice(2);
|
|
824878
825041
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
824879
|
-
console.log(`${"1.81.
|
|
825042
|
+
console.log(`${"1.81.2"} (UR-Nexus)`);
|
|
824880
825043
|
return;
|
|
824881
825044
|
}
|
|
824882
825045
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|