ur-agent 1.81.9 → 1.82.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.82.0
|
|
4
|
+
|
|
5
|
+
- Restored the complete UR agent prompt, conversation history, tools, and
|
|
6
|
+
reasoning configuration for every request, including greetings and small
|
|
7
|
+
code questions. No request is reclassified into a reduced standalone chat,
|
|
8
|
+
preserving identical quality and agent behavior across Ollama, vLLM,
|
|
9
|
+
OpenRouter, and all other providers.
|
|
10
|
+
- Retained only provider-compatibility safeguards: self-hosted runtimes use a
|
|
11
|
+
realistic completion reservation, vLLM context-overflow responses retry with
|
|
12
|
+
a budget that actually fits, and discovered provider output limits remain
|
|
13
|
+
enforced. Ollama keeps its full agent context and 30-minute warm lifetime.
|
|
14
|
+
- Aligned release benchmarks with the repository's 120-second test timeout so
|
|
15
|
+
slower AST checks report their real result instead of an incidental five-second
|
|
16
|
+
machine-load timeout.
|
|
17
|
+
|
|
18
|
+
## 1.81.10
|
|
19
|
+
|
|
20
|
+
- Reduced provider latency and memory pressure without removing the complete
|
|
21
|
+
system prompt or tool set from real agent work. Self-hosted Ollama, vLLM,
|
|
22
|
+
LM Studio, llama.cpp, and OpenAI-compatible requests now reserve a realistic
|
|
23
|
+
4K output turn, resume automatically if it is exhausted, and keep a stable
|
|
24
|
+
prompt prefix so local/server prefix caches can be reused across sessions.
|
|
25
|
+
- Added a safe lightweight path for exact greetings on every runnable provider.
|
|
26
|
+
These turns send no irrelevant repository tools, use a 1K output budget, and
|
|
27
|
+
use an 8K Ollama context; coding, media, structured-output, custom-prompt,
|
|
28
|
+
and ongoing agent turns retain their full quality-bearing context.
|
|
29
|
+
- Prevented Ollama helper calls from automatically loading a second installed
|
|
30
|
+
model and evicting the warm session model. A separate helper model remains
|
|
31
|
+
available through the explicit `OLLAMA_SMALL_FAST_MODEL` override.
|
|
32
|
+
- Added adaptive recovery for vLLM's OpenAI-compatible context-overflow errors,
|
|
33
|
+
including wrapped/multiline and comma-formatted token counts, and fixed the
|
|
34
|
+
retry calculation so thinking budgets can never produce another oversized
|
|
35
|
+
request.
|
|
36
|
+
- Applied provider-discovered completion limits to request sizing, including
|
|
37
|
+
OpenRouter's live `max_output_tokens`, so defaults and explicit overrides are
|
|
38
|
+
validated against the selected model's real limit.
|
|
39
|
+
|
|
3
40
|
## 1.81.9
|
|
4
41
|
|
|
5
42
|
- Restored the previous compact six-row UR wordmark as the primary welcome
|
package/dist/cli.js
CHANGED
|
@@ -53764,6 +53764,7 @@ __export(exports_providerRegistry, {
|
|
|
53764
53764
|
getProviderRuntimeBlockReason: () => getProviderRuntimeBlockReason,
|
|
53765
53765
|
getProviderRuntimeBackend: () => getProviderRuntimeBackend,
|
|
53766
53766
|
getProviderReasoningCapabilitiesForModel: () => getProviderReasoningCapabilitiesForModel,
|
|
53767
|
+
getProviderOutputTokenLimitForModel: () => getProviderOutputTokenLimitForModel,
|
|
53767
53768
|
getProviderFamily: () => getProviderFamily,
|
|
53768
53769
|
getProviderDefinition: () => getProviderDefinition,
|
|
53769
53770
|
getProviderContextLengthForModel: () => getProviderContextLengthForModel,
|
|
@@ -54913,6 +54914,21 @@ function getProviderContextLengthForModel(model, provider = getInitialSettings()
|
|
|
54913
54914
|
const length = match?.contextLength;
|
|
54914
54915
|
return typeof length === "number" && Number.isFinite(length) && length > 0 ? Math.floor(length) : undefined;
|
|
54915
54916
|
}
|
|
54917
|
+
function getProviderOutputTokenLimitForModel(model, provider = getRuntimeProviderId(), settings = getInitialSettings()) {
|
|
54918
|
+
const providerId = resolveProviderId(provider);
|
|
54919
|
+
if (!providerId)
|
|
54920
|
+
return;
|
|
54921
|
+
const wanted = model.trim().toLowerCase();
|
|
54922
|
+
if (!wanted)
|
|
54923
|
+
return;
|
|
54924
|
+
const known = [
|
|
54925
|
+
...getCachedProviderModels(providerId, settings),
|
|
54926
|
+
...PROVIDER_MODELS[providerId] ?? []
|
|
54927
|
+
];
|
|
54928
|
+
const match = known.find((entry) => entry.id.toLowerCase() === wanted) ?? known.find((entry) => wanted.includes(entry.id.toLowerCase()));
|
|
54929
|
+
const limit = match?.outputTokenLimit;
|
|
54930
|
+
return typeof limit === "number" && Number.isFinite(limit) && limit > 0 ? Math.floor(limit) : undefined;
|
|
54931
|
+
}
|
|
54916
54932
|
function getProviderReasoningCapabilitiesForModel(model, provider = getRuntimeProviderId(), settings = getInitialSettings()) {
|
|
54917
54933
|
const providerId = resolveProviderId(provider);
|
|
54918
54934
|
if (!providerId)
|
|
@@ -57301,7 +57317,15 @@ function getOllamaKeepAlive(env4 = process.env) {
|
|
|
57301
57317
|
}
|
|
57302
57318
|
var MIN_AGENT_NUM_CTX = 32768, DEFAULT_OLLAMA_KEEP_ALIVE = "30m", NUM_CTX_BUCKETS, OUTPUT_HEADROOM_TOKENS = 4096;
|
|
57303
57319
|
var init_ollamaTuning = __esm(() => {
|
|
57304
|
-
NUM_CTX_BUCKETS = [
|
|
57320
|
+
NUM_CTX_BUCKETS = [
|
|
57321
|
+
32768,
|
|
57322
|
+
49152,
|
|
57323
|
+
65536,
|
|
57324
|
+
98304,
|
|
57325
|
+
131072,
|
|
57326
|
+
196608,
|
|
57327
|
+
262144
|
|
57328
|
+
];
|
|
57305
57329
|
});
|
|
57306
57330
|
|
|
57307
57331
|
// node_modules/react/cjs/react.development.js
|
|
@@ -89922,15 +89946,18 @@ function toOllamaChatRequest(params, stream4, capabilities, baseUrl = getEffecti
|
|
|
89922
89946
|
if (typeof params.max_tokens === "number") {
|
|
89923
89947
|
options.num_predict = params.max_tokens;
|
|
89924
89948
|
}
|
|
89949
|
+
const estimatedPromptTokens = estimateInputTokens(params);
|
|
89950
|
+
const maxTokens = typeof params.max_tokens === "number" ? params.max_tokens : undefined;
|
|
89925
89951
|
const numCtx = computeOllamaNumCtx({
|
|
89926
89952
|
modelContextLength: getOllamaContextLengthForModel(params.model, baseUrl),
|
|
89927
|
-
estimatedPromptTokens
|
|
89928
|
-
maxTokens
|
|
89953
|
+
estimatedPromptTokens,
|
|
89954
|
+
maxTokens,
|
|
89929
89955
|
override: getOllamaNumCtxOverride()
|
|
89930
89956
|
});
|
|
89931
89957
|
if (numCtx !== undefined) {
|
|
89932
89958
|
options.num_ctx = numCtx;
|
|
89933
89959
|
}
|
|
89960
|
+
logForDebugging(`Ollama request sizing: ~${estimatedPromptTokens} input tokens, ${maxTokens ?? "default"} output tokens, ${tools.length} tools, num_ctx=${numCtx ?? "server-default"}`);
|
|
89934
89961
|
if (Object.keys(options).length > 0) {
|
|
89935
89962
|
request.options = options;
|
|
89936
89963
|
}
|
|
@@ -96080,7 +96107,7 @@ function calculateContextPercentages(currentUsage, contextWindowSize) {
|
|
|
96080
96107
|
remaining: 100 - clampedUsed
|
|
96081
96108
|
};
|
|
96082
96109
|
}
|
|
96083
|
-
function getModelMaxOutputTokens(model) {
|
|
96110
|
+
function getModelMaxOutputTokens(model, provider, settings) {
|
|
96084
96111
|
let defaultTokens = MAX_OUTPUT_TOKENS_DEFAULT;
|
|
96085
96112
|
let upperLimit = MAX_OUTPUT_TOKENS_UPPER_LIMIT;
|
|
96086
96113
|
if (process.env.USER_TYPE === "ant") {
|
|
@@ -96096,6 +96123,11 @@ function getModelMaxOutputTokens(model) {
|
|
|
96096
96123
|
upperLimit = cap.max_tokens;
|
|
96097
96124
|
defaultTokens = Math.min(defaultTokens, upperLimit);
|
|
96098
96125
|
}
|
|
96126
|
+
const providerOutputLimit = getProviderOutputTokenLimitForModel(model, provider, settings);
|
|
96127
|
+
if (providerOutputLimit !== undefined) {
|
|
96128
|
+
upperLimit = Math.min(upperLimit, providerOutputLimit);
|
|
96129
|
+
defaultTokens = Math.min(defaultTokens, upperLimit);
|
|
96130
|
+
}
|
|
96099
96131
|
return { default: defaultTokens, upperLimit };
|
|
96100
96132
|
}
|
|
96101
96133
|
function getMaxThinkingTokensForModel(model) {
|
|
@@ -96808,7 +96840,6 @@ __export(exports_model, {
|
|
|
96808
96840
|
});
|
|
96809
96841
|
function __resetOllamaRouteMemoForTests() {
|
|
96810
96842
|
memoizedRoutedDefaultModel = undefined;
|
|
96811
|
-
memoizedRoutedFastModel = undefined;
|
|
96812
96843
|
}
|
|
96813
96844
|
function getDefaultOllamaModel() {
|
|
96814
96845
|
const explicitModel = process.env.OLLAMA_MODEL || process.env.UR_MODEL;
|
|
@@ -96837,15 +96868,6 @@ function getSmallFastModel(providerSettings) {
|
|
|
96837
96868
|
if (process.env.OLLAMA_SMALL_FAST_MODEL) {
|
|
96838
96869
|
return process.env.OLLAMA_SMALL_FAST_MODEL;
|
|
96839
96870
|
}
|
|
96840
|
-
if (isOllamaAutoRouteEnabled()) {
|
|
96841
|
-
if (memoizedRoutedFastModel)
|
|
96842
|
-
return memoizedRoutedFastModel;
|
|
96843
|
-
const routed = pickSmallFastModel(getCachedOllamaModelNames());
|
|
96844
|
-
if (routed) {
|
|
96845
|
-
memoizedRoutedFastModel = routed;
|
|
96846
|
-
return routed;
|
|
96847
|
-
}
|
|
96848
|
-
}
|
|
96849
96871
|
const sessionModel = getMainLoopModel();
|
|
96850
96872
|
if (sessionModel)
|
|
96851
96873
|
return sessionModel;
|
|
@@ -97166,7 +97188,7 @@ function getMarketingNameForModel(modelId) {
|
|
|
97166
97188
|
function normalizeModelStringForAPI(model) {
|
|
97167
97189
|
return model.replace(/\[(1|2)m\]/gi, "");
|
|
97168
97190
|
}
|
|
97169
|
-
var DEFAULT_OLLAMA_MODEL2 = "qwen2.5-coder:7b", memoizedRoutedDefaultModel,
|
|
97191
|
+
var DEFAULT_OLLAMA_MODEL2 = "qwen2.5-coder:7b", memoizedRoutedDefaultModel, LEGACY_MODELO_FIRSTPARTY;
|
|
97170
97192
|
var init_model = __esm(() => {
|
|
97171
97193
|
init_state();
|
|
97172
97194
|
init_auth();
|
|
@@ -108358,7 +108380,7 @@ var init_auth = __esm(() => {
|
|
|
108358
108380
|
|
|
108359
108381
|
// src/utils/userAgent.ts
|
|
108360
108382
|
function getURCodeUserAgent() {
|
|
108361
|
-
return `ur/${"1.
|
|
108383
|
+
return `ur/${"1.82.0"}`;
|
|
108362
108384
|
}
|
|
108363
108385
|
|
|
108364
108386
|
// src/utils/workloadContext.ts
|
|
@@ -108380,7 +108402,7 @@ function getUserAgent() {
|
|
|
108380
108402
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
108381
108403
|
const workload = getWorkload();
|
|
108382
108404
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
108383
|
-
return `ur-cli/${"1.
|
|
108405
|
+
return `ur-cli/${"1.82.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
108384
108406
|
}
|
|
108385
108407
|
function getMCPUserAgent() {
|
|
108386
108408
|
const parts = [];
|
|
@@ -108394,7 +108416,7 @@ function getMCPUserAgent() {
|
|
|
108394
108416
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
108395
108417
|
}
|
|
108396
108418
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
108397
|
-
return `ur/${"1.
|
|
108419
|
+
return `ur/${"1.82.0"}${suffix}`;
|
|
108398
108420
|
}
|
|
108399
108421
|
function getWebFetchUserAgent() {
|
|
108400
108422
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -108532,7 +108554,7 @@ var init_user = __esm(() => {
|
|
|
108532
108554
|
deviceId,
|
|
108533
108555
|
sessionId: getSessionId(),
|
|
108534
108556
|
email: getEmail(),
|
|
108535
|
-
appVersion: "1.
|
|
108557
|
+
appVersion: "1.82.0",
|
|
108536
108558
|
platform: getHostPlatformForAnalytics(),
|
|
108537
108559
|
organizationUuid,
|
|
108538
108560
|
accountUuid,
|
|
@@ -116419,7 +116441,7 @@ var init_metadata = __esm(() => {
|
|
|
116419
116441
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
116420
116442
|
WHITESPACE_REGEX = /\s+/;
|
|
116421
116443
|
getVersionBase = memoize_default(() => {
|
|
116422
|
-
const match = "1.
|
|
116444
|
+
const match = "1.82.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
116423
116445
|
return match ? match[0] : undefined;
|
|
116424
116446
|
});
|
|
116425
116447
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -116459,7 +116481,7 @@ var init_metadata = __esm(() => {
|
|
|
116459
116481
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
116460
116482
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
116461
116483
|
isURAiAuth: isURAISubscriber(),
|
|
116462
|
-
version: "1.
|
|
116484
|
+
version: "1.82.0",
|
|
116463
116485
|
versionBase: getVersionBase(),
|
|
116464
116486
|
buildTime: "",
|
|
116465
116487
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -117129,7 +117151,7 @@ function initialize1PEventLogging() {
|
|
|
117129
117151
|
const platform2 = getPlatform();
|
|
117130
117152
|
const attributes = {
|
|
117131
117153
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
117132
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.
|
|
117154
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.82.0"
|
|
117133
117155
|
};
|
|
117134
117156
|
if (platform2 === "wsl") {
|
|
117135
117157
|
const wslVersion = getWslVersion();
|
|
@@ -117157,7 +117179,7 @@ function initialize1PEventLogging() {
|
|
|
117157
117179
|
})
|
|
117158
117180
|
]
|
|
117159
117181
|
});
|
|
117160
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.
|
|
117182
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.82.0");
|
|
117161
117183
|
}
|
|
117162
117184
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
117163
117185
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -127123,7 +127145,7 @@ function formatA2AAgentCard(options = {}, pretty = true) {
|
|
|
127123
127145
|
function formatA2AV1AgentCard(options = {}, pretty = true) {
|
|
127124
127146
|
return JSON.stringify(buildA2AV1AgentCard(options), null, pretty ? 2 : 0);
|
|
127125
127147
|
}
|
|
127126
|
-
var urVersion = "1.
|
|
127148
|
+
var urVersion = "1.82.0", researchSnapshotDate = "2026-08-10", coverage, priorityRoadmap;
|
|
127127
127149
|
var init_trends = __esm(() => {
|
|
127128
127150
|
init_a2aCardSignature();
|
|
127129
127151
|
coverage = [
|
|
@@ -130013,7 +130035,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
130013
130035
|
if (!isAttributionHeaderEnabled()) {
|
|
130014
130036
|
return "";
|
|
130015
130037
|
}
|
|
130016
|
-
const version2 = `${"1.
|
|
130038
|
+
const version2 = `${"1.82.0"}.${fingerprint}`;
|
|
130017
130039
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
130018
130040
|
const cch = "";
|
|
130019
130041
|
const workload = getWorkload();
|
|
@@ -182998,7 +183020,11 @@ async function* withRetry(getClient, operation, options2) {
|
|
|
182998
183020
|
throw error40;
|
|
182999
183021
|
}
|
|
183000
183022
|
const minRequired = (retryContext.thinkingConfig.type === "enabled" ? retryContext.thinkingConfig.budgetTokens : 0) + 1;
|
|
183001
|
-
|
|
183023
|
+
if (minRequired > availableContext) {
|
|
183024
|
+
logError2(new Error(`thinking budget requires ${minRequired} tokens but only ${availableContext} output tokens fit in the context window`));
|
|
183025
|
+
throw error40;
|
|
183026
|
+
}
|
|
183027
|
+
const adjustedMaxTokens = availableContext;
|
|
183002
183028
|
retryContext.maxTokensOverride = adjustedMaxTokens;
|
|
183003
183029
|
logEvent("tengu_max_tokens_context_overflow_adjustment", {
|
|
183004
183030
|
inputTokens,
|
|
@@ -183079,21 +183105,18 @@ function parseMaxTokensContextOverflowError(error40) {
|
|
|
183079
183105
|
if (error40.status !== 400 || !error40.message) {
|
|
183080
183106
|
return;
|
|
183081
183107
|
}
|
|
183082
|
-
|
|
183083
|
-
|
|
183084
|
-
|
|
183085
|
-
const
|
|
183086
|
-
const
|
|
183087
|
-
if (!
|
|
183088
|
-
return;
|
|
183089
|
-
}
|
|
183090
|
-
if (!match[1] || !match[2] || !match[3]) {
|
|
183091
|
-
logError2(new Error("Unable to parse max_tokens from max_tokens exceed context limit error message"));
|
|
183108
|
+
const arithmeticMatch = error40.message.match(/input length and `max_tokens` exceed context limit:\s*([\d,]+)\s*\+\s*([\d,]+)\s*>\s*([\d,]+)/i);
|
|
183109
|
+
const vllmMatch = error40.message.match(/maximum context length is\s+([\d,]+)\s+tokens[\s\S]*?requested\s+([\d,]+)\s+output tokens[\s\S]*?prompt contains(?:\s+at least)?\s+([\d,]+)\s+input tokens/i);
|
|
183110
|
+
const rawInputTokens = arithmeticMatch?.[1] ?? vllmMatch?.[3];
|
|
183111
|
+
const rawMaxTokens = arithmeticMatch?.[2] ?? vllmMatch?.[2];
|
|
183112
|
+
const rawContextLimit = arithmeticMatch?.[3] ?? vllmMatch?.[1];
|
|
183113
|
+
if (!rawInputTokens || !rawMaxTokens || !rawContextLimit) {
|
|
183092
183114
|
return;
|
|
183093
183115
|
}
|
|
183094
|
-
const
|
|
183095
|
-
const
|
|
183096
|
-
const
|
|
183116
|
+
const parseTokenCount = (value) => Number.parseInt(value.replaceAll(",", ""), 10);
|
|
183117
|
+
const inputTokens = parseTokenCount(rawInputTokens);
|
|
183118
|
+
const maxTokens = parseTokenCount(rawMaxTokens);
|
|
183119
|
+
const contextLimit = parseTokenCount(rawContextLimit);
|
|
183097
183120
|
if (isNaN(inputTokens) || isNaN(maxTokens) || isNaN(contextLimit)) {
|
|
183098
183121
|
return;
|
|
183099
183122
|
}
|
|
@@ -184934,7 +184957,7 @@ var init_projectSafety = __esm(() => {
|
|
|
184934
184957
|
function getInstruments() {
|
|
184935
184958
|
if (instruments)
|
|
184936
184959
|
return instruments;
|
|
184937
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.
|
|
184960
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.82.0");
|
|
184938
184961
|
instruments = {
|
|
184939
184962
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
184940
184963
|
description: "GenAI operation duration.",
|
|
@@ -185032,7 +185055,7 @@ function genAiAgentAttributes() {
|
|
|
185032
185055
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
185033
185056
|
"gen_ai.provider.name": "ur",
|
|
185034
185057
|
"gen_ai.agent.name": "UR-Nexus",
|
|
185035
|
-
"gen_ai.agent.version": "1.
|
|
185058
|
+
"gen_ai.agent.version": "1.82.0"
|
|
185036
185059
|
};
|
|
185037
185060
|
}
|
|
185038
185061
|
function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
@@ -185053,7 +185076,7 @@ function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
|
185053
185076
|
function startGenAiWorkflowSpan(workflowName, workflowRunId) {
|
|
185054
185077
|
const attributes = genAiWorkflowAttributes(workflowName, workflowRunId);
|
|
185055
185078
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
185056
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.
|
|
185079
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.82.0").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
185057
185080
|
}
|
|
185058
185081
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
185059
185082
|
try {
|
|
@@ -185091,7 +185114,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
185091
185114
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
185092
185115
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
185093
185116
|
}
|
|
185094
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.
|
|
185117
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.82.0").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
185095
185118
|
}
|
|
185096
185119
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
185097
185120
|
try {
|
|
@@ -278806,7 +278829,7 @@ function getTelemetryAttributes() {
|
|
|
278806
278829
|
attributes["session.id"] = sessionId;
|
|
278807
278830
|
}
|
|
278808
278831
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
278809
|
-
attributes["app.version"] = "1.
|
|
278832
|
+
attributes["app.version"] = "1.82.0";
|
|
278810
278833
|
}
|
|
278811
278834
|
const oauthAccount = getOauthAccountInfo();
|
|
278812
278835
|
if (oauthAccount) {
|
|
@@ -320210,7 +320233,7 @@ function getInstallationEnv() {
|
|
|
320210
320233
|
return;
|
|
320211
320234
|
}
|
|
320212
320235
|
function getURCodeVersion() {
|
|
320213
|
-
return "1.
|
|
320236
|
+
return "1.82.0";
|
|
320214
320237
|
}
|
|
320215
320238
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
320216
320239
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -327580,7 +327603,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
327580
327603
|
const client2 = new Client({
|
|
327581
327604
|
name: "ur",
|
|
327582
327605
|
title: "UR",
|
|
327583
|
-
version: "1.
|
|
327606
|
+
version: "1.82.0",
|
|
327584
327607
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
327585
327608
|
websiteUrl: PRODUCT_URL
|
|
327586
327609
|
}, {
|
|
@@ -327941,7 +327964,7 @@ var init_client5 = __esm(() => {
|
|
|
327941
327964
|
const client2 = new Client({
|
|
327942
327965
|
name: "ur",
|
|
327943
327966
|
title: "UR",
|
|
327944
|
-
version: "1.
|
|
327967
|
+
version: "1.82.0",
|
|
327945
327968
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
327946
327969
|
websiteUrl: PRODUCT_URL
|
|
327947
327970
|
}, {
|
|
@@ -340714,7 +340737,7 @@ async function createRuntime() {
|
|
|
340714
340737
|
bootstrapTelemetry();
|
|
340715
340738
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
340716
340739
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
340717
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.
|
|
340740
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.82.0"
|
|
340718
340741
|
}));
|
|
340719
340742
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
340720
340743
|
resource,
|
|
@@ -340747,11 +340770,11 @@ async function createRuntime() {
|
|
|
340747
340770
|
setMeterProvider(meterProvider);
|
|
340748
340771
|
setLoggerProvider(loggerProvider);
|
|
340749
340772
|
if (meterProvider) {
|
|
340750
|
-
const meter = meterProvider.getMeter("ur-agent", "1.
|
|
340773
|
+
const meter = meterProvider.getMeter("ur-agent", "1.82.0");
|
|
340751
340774
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
340752
340775
|
}
|
|
340753
340776
|
if (loggerProvider) {
|
|
340754
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.
|
|
340777
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.82.0"));
|
|
340755
340778
|
}
|
|
340756
340779
|
if (!cleanupRegistered3) {
|
|
340757
340780
|
cleanupRegistered3 = true;
|
|
@@ -341413,9 +341436,9 @@ async function assertMinVersion() {
|
|
|
341413
341436
|
if (false) {}
|
|
341414
341437
|
try {
|
|
341415
341438
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
341416
|
-
if (versionConfig.minVersion && lt("1.
|
|
341439
|
+
if (versionConfig.minVersion && lt("1.82.0", versionConfig.minVersion)) {
|
|
341417
341440
|
console.error(`
|
|
341418
|
-
It looks like your version of UR (${"1.
|
|
341441
|
+
It looks like your version of UR (${"1.82.0"}) needs an update.
|
|
341419
341442
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
341420
341443
|
|
|
341421
341444
|
To update, please run:
|
|
@@ -341631,7 +341654,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
341631
341654
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
341632
341655
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
341633
341656
|
pid: process.pid,
|
|
341634
|
-
currentVersion: "1.
|
|
341657
|
+
currentVersion: "1.82.0"
|
|
341635
341658
|
});
|
|
341636
341659
|
return "in_progress";
|
|
341637
341660
|
}
|
|
@@ -341640,7 +341663,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
341640
341663
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
341641
341664
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
341642
341665
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
341643
|
-
currentVersion: "1.
|
|
341666
|
+
currentVersion: "1.82.0"
|
|
341644
341667
|
});
|
|
341645
341668
|
console.error(`
|
|
341646
341669
|
Error: Windows NPM detected in WSL
|
|
@@ -342175,7 +342198,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
342175
342198
|
}
|
|
342176
342199
|
async function getDoctorDiagnostic() {
|
|
342177
342200
|
const installationType = await getCurrentInstallationType();
|
|
342178
|
-
const version2 = typeof MACRO !== "undefined" ? "1.
|
|
342201
|
+
const version2 = typeof MACRO !== "undefined" ? "1.82.0" : "unknown";
|
|
342179
342202
|
const installationPath = await getInstallationPath();
|
|
342180
342203
|
const invokedBinary = getInvokedBinary();
|
|
342181
342204
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -343110,8 +343133,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
343110
343133
|
const maxVersion = await getMaxVersion();
|
|
343111
343134
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
343112
343135
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
343113
|
-
if (gte("1.
|
|
343114
|
-
logForDebugging(`Native installer: current version ${"1.
|
|
343136
|
+
if (gte("1.82.0", maxVersion)) {
|
|
343137
|
+
logForDebugging(`Native installer: current version ${"1.82.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
343115
343138
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
343116
343139
|
latency_ms: Date.now() - startTime,
|
|
343117
343140
|
max_version: maxVersion,
|
|
@@ -343122,7 +343145,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
343122
343145
|
version2 = maxVersion;
|
|
343123
343146
|
}
|
|
343124
343147
|
}
|
|
343125
|
-
if (!forceReinstall && version2 === "1.
|
|
343148
|
+
if (!forceReinstall && version2 === "1.82.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
343126
343149
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
343127
343150
|
logEvent("tengu_native_update_complete", {
|
|
343128
343151
|
latency_ms: Date.now() - startTime,
|
|
@@ -413812,7 +413835,7 @@ function isAnyTracingEnabled() {
|
|
|
413812
413835
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
413813
413836
|
}
|
|
413814
413837
|
function getTracer() {
|
|
413815
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.
|
|
413838
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.82.0");
|
|
413816
413839
|
}
|
|
413817
413840
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
413818
413841
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -443951,7 +443974,7 @@ function Feedback({
|
|
|
443951
443974
|
platform: env2.platform,
|
|
443952
443975
|
gitRepo: envInfo.isGit,
|
|
443953
443976
|
terminal: env2.terminal,
|
|
443954
|
-
version: "1.
|
|
443977
|
+
version: "1.82.0",
|
|
443955
443978
|
transcript: normalizeMessagesForAPI(messages),
|
|
443956
443979
|
errors: sanitizedErrors,
|
|
443957
443980
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -444143,7 +444166,7 @@ function Feedback({
|
|
|
444143
444166
|
", ",
|
|
444144
444167
|
env2.terminal,
|
|
444145
444168
|
", v",
|
|
444146
|
-
"1.
|
|
444169
|
+
"1.82.0"
|
|
444147
444170
|
]
|
|
444148
444171
|
}, undefined, true, undefined, this)
|
|
444149
444172
|
]
|
|
@@ -444249,7 +444272,7 @@ ${sanitizedDescription}
|
|
|
444249
444272
|
` + `**Environment Info**
|
|
444250
444273
|
` + `- Platform: ${env2.platform}
|
|
444251
444274
|
` + `- Terminal: ${env2.terminal}
|
|
444252
|
-
` + `- Version: ${"1.
|
|
444275
|
+
` + `- Version: ${"1.82.0"}
|
|
444253
444276
|
` + `- Feedback ID: ${feedbackId}
|
|
444254
444277
|
` + `
|
|
444255
444278
|
**Errors**
|
|
@@ -447359,7 +447382,7 @@ function buildPrimarySection() {
|
|
|
447359
447382
|
}, undefined, false, undefined, this);
|
|
447360
447383
|
return [{
|
|
447361
447384
|
label: "Version",
|
|
447362
|
-
value: "1.
|
|
447385
|
+
value: "1.82.0"
|
|
447363
447386
|
}, {
|
|
447364
447387
|
label: "Session name",
|
|
447365
447388
|
value: nameValue
|
|
@@ -450862,7 +450885,7 @@ function Config({
|
|
|
450862
450885
|
}
|
|
450863
450886
|
}, undefined, false, undefined, this)
|
|
450864
450887
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
450865
|
-
currentVersion: "1.
|
|
450888
|
+
currentVersion: "1.82.0",
|
|
450866
450889
|
onChoice: (choice) => {
|
|
450867
450890
|
setShowSubmenu(null);
|
|
450868
450891
|
setTabsHidden(false);
|
|
@@ -450874,7 +450897,7 @@ function Config({
|
|
|
450874
450897
|
autoUpdatesChannel: "stable"
|
|
450875
450898
|
};
|
|
450876
450899
|
if (choice === "stay") {
|
|
450877
|
-
newSettings.minimumVersion = "1.
|
|
450900
|
+
newSettings.minimumVersion = "1.82.0";
|
|
450878
450901
|
}
|
|
450879
450902
|
updateSettingsForSource("userSettings", newSettings);
|
|
450880
450903
|
setSettingsData((prev_27) => ({
|
|
@@ -459183,7 +459206,7 @@ function HelpV2(t0) {
|
|
|
459183
459206
|
let t6;
|
|
459184
459207
|
if ($2[31] !== tabs) {
|
|
459185
459208
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
459186
|
-
title: `UR v${"1.
|
|
459209
|
+
title: `UR v${"1.82.0"}`,
|
|
459187
459210
|
color: "professionalBlue",
|
|
459188
459211
|
defaultTab: "general",
|
|
459189
459212
|
children: tabs
|
|
@@ -460116,7 +460139,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
460116
460139
|
async function handleInitialize(options2) {
|
|
460117
460140
|
return {
|
|
460118
460141
|
name: "UR",
|
|
460119
|
-
version: "1.
|
|
460142
|
+
version: "1.82.0",
|
|
460120
460143
|
protocolVersion: "0.1.0",
|
|
460121
460144
|
workspaceRoot: options2.cwd,
|
|
460122
460145
|
capabilities: {
|
|
@@ -477224,7 +477247,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
477224
477247
|
return [];
|
|
477225
477248
|
}
|
|
477226
477249
|
}
|
|
477227
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.
|
|
477250
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.82.0") {
|
|
477228
477251
|
if (process.env.USER_TYPE === "ant") {
|
|
477229
477252
|
const changelog = "";
|
|
477230
477253
|
if (changelog) {
|
|
@@ -477251,7 +477274,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.81.9")
|
|
|
477251
477274
|
releaseNotes
|
|
477252
477275
|
};
|
|
477253
477276
|
}
|
|
477254
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.
|
|
477277
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.82.0") {
|
|
477255
477278
|
if (process.env.USER_TYPE === "ant") {
|
|
477256
477279
|
const changelog = "";
|
|
477257
477280
|
if (changelog) {
|
|
@@ -480159,7 +480182,7 @@ function getRecentActivitySync() {
|
|
|
480159
480182
|
return cachedActivity;
|
|
480160
480183
|
}
|
|
480161
480184
|
function getLogoDisplayData() {
|
|
480162
|
-
const version2 = process.env.DEMO_VERSION ?? "1.
|
|
480185
|
+
const version2 = process.env.DEMO_VERSION ?? "1.82.0";
|
|
480163
480186
|
const serverUrl = getDirectConnectServerUrl();
|
|
480164
480187
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
480165
480188
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -481047,7 +481070,7 @@ function LogoV2() {
|
|
|
481047
481070
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
481048
481071
|
t2 = () => {
|
|
481049
481072
|
const currentConfig = getGlobalConfig();
|
|
481050
|
-
if (currentConfig.lastReleaseNotesSeen === "1.
|
|
481073
|
+
if (currentConfig.lastReleaseNotesSeen === "1.82.0") {
|
|
481051
481074
|
return;
|
|
481052
481075
|
}
|
|
481053
481076
|
saveGlobalConfig(_temp325);
|
|
@@ -481735,12 +481758,12 @@ function LogoV2() {
|
|
|
481735
481758
|
return t41;
|
|
481736
481759
|
}
|
|
481737
481760
|
function _temp325(current) {
|
|
481738
|
-
if (current.lastReleaseNotesSeen === "1.
|
|
481761
|
+
if (current.lastReleaseNotesSeen === "1.82.0") {
|
|
481739
481762
|
return current;
|
|
481740
481763
|
}
|
|
481741
481764
|
return {
|
|
481742
481765
|
...current,
|
|
481743
|
-
lastReleaseNotesSeen: "1.
|
|
481766
|
+
lastReleaseNotesSeen: "1.82.0"
|
|
481744
481767
|
};
|
|
481745
481768
|
}
|
|
481746
481769
|
function _temp241(s_0) {
|
|
@@ -497690,7 +497713,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
497690
497713
|
if (spec.name !== specName) {
|
|
497691
497714
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
497692
497715
|
}
|
|
497693
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.
|
|
497716
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.82.0" : "1.82.0");
|
|
497694
497717
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
497695
497718
|
throw new Error("invalid ur-agent package version");
|
|
497696
497719
|
}
|
|
@@ -498683,7 +498706,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
498683
498706
|
path: ".github/workflows/ur.yml",
|
|
498684
498707
|
root: "project",
|
|
498685
498708
|
content: compileAgenticCiWorkflow("default", {
|
|
498686
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.
|
|
498709
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.82.0" : "1.82.0"
|
|
498687
498710
|
})
|
|
498688
498711
|
},
|
|
498689
498712
|
{
|
|
@@ -498746,7 +498769,7 @@ function value(tokens, flag) {
|
|
|
498746
498769
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
498747
498770
|
}
|
|
498748
498771
|
function cliVersion() {
|
|
498749
|
-
return typeof MACRO !== "undefined" ? "1.
|
|
498772
|
+
return typeof MACRO !== "undefined" ? "1.82.0" : "1.82.0";
|
|
498750
498773
|
}
|
|
498751
498774
|
function workflowPath(cwd2) {
|
|
498752
498775
|
return join168(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -504602,7 +504625,7 @@ function createAcpStdioApp(deps) {
|
|
|
504602
504625
|
}
|
|
504603
504626
|
},
|
|
504604
504627
|
authMethods: [],
|
|
504605
|
-
agentInfo: { name: "UR-Nexus", version: "1.
|
|
504628
|
+
agentInfo: { name: "UR-Nexus", version: "1.82.0" }
|
|
504606
504629
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
504607
504630
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
504608
504631
|
await runtime2.announce({
|
|
@@ -504699,7 +504722,7 @@ function createAcpStdioAgent(deps) {
|
|
|
504699
504722
|
}
|
|
504700
504723
|
},
|
|
504701
504724
|
authMethods: [],
|
|
504702
|
-
agentInfo: { name: "UR-Nexus", version: "1.
|
|
504725
|
+
agentInfo: { name: "UR-Nexus", version: "1.82.0" }
|
|
504703
504726
|
});
|
|
504704
504727
|
return;
|
|
504705
504728
|
case "authenticate":
|
|
@@ -715951,7 +715974,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
715951
715974
|
smapsRollup,
|
|
715952
715975
|
platform: process.platform,
|
|
715953
715976
|
nodeVersion: process.version,
|
|
715954
|
-
ccVersion: "1.
|
|
715977
|
+
ccVersion: "1.82.0"
|
|
715955
715978
|
};
|
|
715956
715979
|
}
|
|
715957
715980
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -716540,7 +716563,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
716540
716563
|
var call154 = async () => {
|
|
716541
716564
|
return {
|
|
716542
716565
|
type: "text",
|
|
716543
|
-
value: "1.
|
|
716566
|
+
value: "1.82.0"
|
|
716544
716567
|
};
|
|
716545
716568
|
}, version2, version_default;
|
|
716546
716569
|
var init_version = __esm(() => {
|
|
@@ -728008,7 +728031,7 @@ function generateHtmlReport(data, insights) {
|
|
|
728008
728031
|
</html>`;
|
|
728009
728032
|
}
|
|
728010
728033
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
728011
|
-
const version3 = typeof MACRO !== "undefined" ? "1.
|
|
728034
|
+
const version3 = typeof MACRO !== "undefined" ? "1.82.0" : "unknown";
|
|
728012
728035
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
728013
728036
|
const facets_summary = {
|
|
728014
728037
|
total: facets.size,
|
|
@@ -732321,7 +732344,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
732321
732344
|
init_settings2();
|
|
732322
732345
|
init_slowOperations();
|
|
732323
732346
|
init_uuid();
|
|
732324
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.
|
|
732347
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.82.0" : "unknown";
|
|
732325
732348
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
732326
732349
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
732327
732350
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -733536,7 +733559,7 @@ var init_filesystem = __esm(() => {
|
|
|
733536
733559
|
});
|
|
733537
733560
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
733538
733561
|
const nonce = randomBytes24(16).toString("hex");
|
|
733539
|
-
return join243(getURTempDir(), "bundled-skills", "1.
|
|
733562
|
+
return join243(getURTempDir(), "bundled-skills", "1.82.0", nonce);
|
|
733540
733563
|
});
|
|
733541
733564
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
733542
733565
|
});
|
|
@@ -739936,11 +739959,26 @@ function computeFingerprint(messageText2, version3) {
|
|
|
739936
739959
|
}
|
|
739937
739960
|
function computeFingerprintFromMessages(messages) {
|
|
739938
739961
|
const firstMessageText = extractFirstMessageText(messages);
|
|
739939
|
-
return computeFingerprint(firstMessageText, "1.
|
|
739962
|
+
return computeFingerprint(firstMessageText, "1.82.0");
|
|
739940
739963
|
}
|
|
739941
739964
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
739942
739965
|
var init_fingerprint = () => {};
|
|
739943
739966
|
|
|
739967
|
+
// src/utils/model/providerRequestTuning.ts
|
|
739968
|
+
function usesConservativeOutputReservation(provider) {
|
|
739969
|
+
return CONSERVATIVE_OUTPUT_PROVIDERS.has(provider);
|
|
739970
|
+
}
|
|
739971
|
+
var CONSERVATIVE_OUTPUT_PROVIDERS, SELF_HOSTED_DEFAULT_MAX_OUTPUT_TOKENS = 4096;
|
|
739972
|
+
var init_providerRequestTuning = __esm(() => {
|
|
739973
|
+
CONSERVATIVE_OUTPUT_PROVIDERS = new Set([
|
|
739974
|
+
"ollama",
|
|
739975
|
+
"lmstudio",
|
|
739976
|
+
"llama.cpp",
|
|
739977
|
+
"vllm",
|
|
739978
|
+
"openai-compatible"
|
|
739979
|
+
]);
|
|
739980
|
+
});
|
|
739981
|
+
|
|
739944
739982
|
// src/services/compact/apiMicrocompact.ts
|
|
739945
739983
|
function getAPIContextManagement(options5) {
|
|
739946
739984
|
const {
|
|
@@ -740690,7 +740728,7 @@ ${deferredToolList}
|
|
|
740690
740728
|
betasParams.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
740691
740729
|
}
|
|
740692
740730
|
}
|
|
740693
|
-
const maxOutputTokens2 = retryContext?.maxTokensOverride || options5.maxOutputTokensOverride || getMaxOutputTokensForModel(options5.model);
|
|
740731
|
+
const maxOutputTokens2 = retryContext?.maxTokensOverride || options5.maxOutputTokensOverride || getMaxOutputTokensForModel(options5.model, options5.providerSettings?.active ?? getRuntimeProvider());
|
|
740694
740732
|
const hasThinking = thinkingConfig.type !== "disabled" && !isEnvTruthy(process.env.UR_CODE_DISABLE_THINKING);
|
|
740695
740733
|
let thinking = undefined;
|
|
740696
740734
|
if (hasThinking && modelSupportsThinking(options5.model)) {
|
|
@@ -741762,9 +741800,9 @@ function adjustParamsForNonStreaming(params, maxTokensCap) {
|
|
|
741762
741800
|
function isMaxTokensCapEnabled() {
|
|
741763
741801
|
return getFeatureValue_CACHED_MAY_BE_STALE("tengu_otk_slot_v1", false);
|
|
741764
741802
|
}
|
|
741765
|
-
function getMaxOutputTokensForModel(model) {
|
|
741766
|
-
const maxOutputTokens = getModelMaxOutputTokens(model);
|
|
741767
|
-
const defaultTokens = isMaxTokensCapEnabled() ? Math.min(maxOutputTokens.default, CAPPED_DEFAULT_MAX_TOKENS) : maxOutputTokens.default;
|
|
741803
|
+
function getMaxOutputTokensForModel(model, provider = getRuntimeProvider()) {
|
|
741804
|
+
const maxOutputTokens = getModelMaxOutputTokens(model, provider);
|
|
741805
|
+
const defaultTokens = usesConservativeOutputReservation(provider) ? Math.min(maxOutputTokens.default, SELF_HOSTED_DEFAULT_MAX_OUTPUT_TOKENS) : isMaxTokensCapEnabled() ? Math.min(maxOutputTokens.default, CAPPED_DEFAULT_MAX_TOKENS) : maxOutputTokens.default;
|
|
741768
741806
|
const result = validateBoundedIntEnvVar("UR_CODE_MAX_OUTPUT_TOKENS", process.env.UR_CODE_MAX_OUTPUT_TOKENS, defaultTokens, maxOutputTokens.upperLimit);
|
|
741769
741807
|
return result.effective;
|
|
741770
741808
|
}
|
|
@@ -741785,6 +741823,7 @@ var init_ur2 = __esm(() => {
|
|
|
741785
741823
|
init_log2();
|
|
741786
741824
|
init_messages();
|
|
741787
741825
|
init_model();
|
|
741826
|
+
init_providerRequestTuning();
|
|
741788
741827
|
init_tokens();
|
|
741789
741828
|
init_growthbook();
|
|
741790
741829
|
init_urAiLimits();
|
|
@@ -741871,7 +741910,7 @@ async function sideQuery(opts) {
|
|
|
741871
741910
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
741872
741911
|
}
|
|
741873
741912
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
741874
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.
|
|
741913
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.82.0");
|
|
741875
741914
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
741876
741915
|
const systemBlocks = [
|
|
741877
741916
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -746705,7 +746744,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
746705
746744
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
746706
746745
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
746707
746746
|
betas: getSdkBetas(),
|
|
746708
|
-
ur_version: "1.
|
|
746747
|
+
ur_version: "1.82.0",
|
|
746709
746748
|
output_style: outputStyle,
|
|
746710
746749
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
746711
746750
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -760541,7 +760580,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
760541
760580
|
function getSemverPart(version3) {
|
|
760542
760581
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
760543
760582
|
}
|
|
760544
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.
|
|
760583
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.82.0") {
|
|
760545
760584
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
|
|
760546
760585
|
if (!updatedVersion) {
|
|
760547
760586
|
return null;
|
|
@@ -760590,7 +760629,7 @@ function AutoUpdater({
|
|
|
760590
760629
|
return;
|
|
760591
760630
|
}
|
|
760592
760631
|
if (false) {}
|
|
760593
|
-
const currentVersion = "1.
|
|
760632
|
+
const currentVersion = "1.82.0";
|
|
760594
760633
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
760595
760634
|
let latestVersion = await getLatestVersion(channel);
|
|
760596
760635
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -760819,12 +760858,12 @@ function NativeAutoUpdater({
|
|
|
760819
760858
|
logEvent("tengu_native_auto_updater_start", {});
|
|
760820
760859
|
try {
|
|
760821
760860
|
const maxVersion = await getMaxVersion();
|
|
760822
|
-
if (maxVersion && gt("1.
|
|
760861
|
+
if (maxVersion && gt("1.82.0", maxVersion)) {
|
|
760823
760862
|
const msg = await getMaxVersionMessage();
|
|
760824
760863
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
760825
760864
|
}
|
|
760826
760865
|
const result = await installLatest(channel);
|
|
760827
|
-
const currentVersion = "1.
|
|
760866
|
+
const currentVersion = "1.82.0";
|
|
760828
760867
|
const latencyMs = Date.now() - startTime;
|
|
760829
760868
|
if (result.lockFailed) {
|
|
760830
760869
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -760961,17 +761000,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
760961
761000
|
const maxVersion = await getMaxVersion();
|
|
760962
761001
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
760963
761002
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
760964
|
-
if (gte("1.
|
|
760965
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.
|
|
761003
|
+
if (gte("1.82.0", maxVersion)) {
|
|
761004
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.82.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
760966
761005
|
setUpdateAvailable(false);
|
|
760967
761006
|
return;
|
|
760968
761007
|
}
|
|
760969
761008
|
latest = maxVersion;
|
|
760970
761009
|
}
|
|
760971
|
-
const hasUpdate = latest && !gte("1.
|
|
761010
|
+
const hasUpdate = latest && !gte("1.82.0", latest) && !shouldSkipVersion(latest);
|
|
760972
761011
|
setUpdateAvailable(!!hasUpdate);
|
|
760973
761012
|
if (hasUpdate) {
|
|
760974
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.
|
|
761013
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.82.0"} -> ${latest}`);
|
|
760975
761014
|
}
|
|
760976
761015
|
};
|
|
760977
761016
|
$2[0] = t1;
|
|
@@ -761005,7 +761044,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
761005
761044
|
wrap: "truncate",
|
|
761006
761045
|
children: [
|
|
761007
761046
|
"currentVersion: ",
|
|
761008
|
-
"1.
|
|
761047
|
+
"1.82.0"
|
|
761009
761048
|
]
|
|
761010
761049
|
}, undefined, true, undefined, this);
|
|
761011
761050
|
$2[3] = verbose;
|
|
@@ -771858,7 +771897,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
771858
771897
|
project_dir: getOriginalCwd(),
|
|
771859
771898
|
added_dirs: addedDirs
|
|
771860
771899
|
},
|
|
771861
|
-
version: "1.
|
|
771900
|
+
version: "1.82.0",
|
|
771862
771901
|
output_style: {
|
|
771863
771902
|
name: outputStyleName
|
|
771864
771903
|
},
|
|
@@ -771993,7 +772032,7 @@ function StatusLineInner({
|
|
|
771993
772032
|
const attention = customStatusError ?? taskAttention;
|
|
771994
772033
|
const terminalSize = React133.useContext(TerminalSizeContext);
|
|
771995
772034
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
771996
|
-
version: "1.
|
|
772035
|
+
version: "1.82.0",
|
|
771997
772036
|
providerLabel: providerRuntime.providerLabel,
|
|
771998
772037
|
authMode: providerRuntime.authLabel,
|
|
771999
772038
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -784249,7 +784288,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
784249
784288
|
} catch {}
|
|
784250
784289
|
const data = {
|
|
784251
784290
|
trigger: trigger2,
|
|
784252
|
-
version: "1.
|
|
784291
|
+
version: "1.82.0",
|
|
784253
784292
|
platform: process.platform,
|
|
784254
784293
|
transcript,
|
|
784255
784294
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -796618,7 +796657,7 @@ function WelcomeV2() {
|
|
|
796618
796657
|
dimColor: true,
|
|
796619
796658
|
children: [
|
|
796620
796659
|
"v",
|
|
796621
|
-
"1.
|
|
796660
|
+
"1.82.0"
|
|
796622
796661
|
]
|
|
796623
796662
|
}, undefined, true, undefined, this)
|
|
796624
796663
|
]
|
|
@@ -797878,7 +797917,7 @@ function completeOnboarding() {
|
|
|
797878
797917
|
saveGlobalConfig((current) => ({
|
|
797879
797918
|
...current,
|
|
797880
797919
|
hasCompletedOnboarding: true,
|
|
797881
|
-
lastOnboardingVersion: "1.
|
|
797920
|
+
lastOnboardingVersion: "1.82.0"
|
|
797882
797921
|
}));
|
|
797883
797922
|
}
|
|
797884
797923
|
function showDialog(root2, renderer) {
|
|
@@ -803024,7 +803063,7 @@ function appendToLog(path28, message) {
|
|
|
803024
803063
|
cwd: getFsImplementation().cwd(),
|
|
803025
803064
|
userType: process.env.USER_TYPE,
|
|
803026
803065
|
sessionId: getSessionId(),
|
|
803027
|
-
version: "1.
|
|
803066
|
+
version: "1.82.0"
|
|
803028
803067
|
};
|
|
803029
803068
|
getLogWriter(path28).write(messageWithTimestamp);
|
|
803030
803069
|
}
|
|
@@ -807188,8 +807227,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
807188
807227
|
}
|
|
807189
807228
|
async function checkEnvLessBridgeMinVersion() {
|
|
807190
807229
|
const cfg = await getEnvLessBridgeConfig();
|
|
807191
|
-
if (cfg.min_version && lt("1.
|
|
807192
|
-
return `Your version of UR (${"1.
|
|
807230
|
+
if (cfg.min_version && lt("1.82.0", cfg.min_version)) {
|
|
807231
|
+
return `Your version of UR (${"1.82.0"}) is too old for Remote Control.
|
|
807193
807232
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
807194
807233
|
}
|
|
807195
807234
|
return null;
|
|
@@ -807663,7 +807702,7 @@ async function initBridgeCore(params) {
|
|
|
807663
807702
|
const rawApi = createBridgeApiClient({
|
|
807664
807703
|
baseUrl,
|
|
807665
807704
|
getAccessToken,
|
|
807666
|
-
runnerVersion: "1.
|
|
807705
|
+
runnerVersion: "1.82.0",
|
|
807667
807706
|
onDebug: logForDebugging,
|
|
807668
807707
|
onAuth401,
|
|
807669
807708
|
getTrustedDeviceToken
|
|
@@ -817139,7 +817178,7 @@ function getAgUiCapabilities() {
|
|
|
817139
817178
|
name: "UR-Nexus",
|
|
817140
817179
|
type: "ur-nexus",
|
|
817141
817180
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
817142
|
-
version: "1.
|
|
817181
|
+
version: "1.82.0",
|
|
817143
817182
|
provider: "UR",
|
|
817144
817183
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
817145
817184
|
},
|
|
@@ -818366,7 +818405,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
818366
818405
|
};
|
|
818367
818406
|
const server2 = new Server({
|
|
818368
818407
|
name: "ur-nexus",
|
|
818369
|
-
version: "1.
|
|
818408
|
+
version: "1.82.0"
|
|
818370
818409
|
}, {
|
|
818371
818410
|
capabilities: {
|
|
818372
818411
|
tools: {}
|
|
@@ -819570,7 +819609,7 @@ function thrownResponse(error40) {
|
|
|
819570
819609
|
}
|
|
819571
819610
|
async function createUrMcp2026Runtime(options5) {
|
|
819572
819611
|
const server2 = createMCPServer(options5.cwd, options5.debug === true, options5.verbose === true);
|
|
819573
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.
|
|
819612
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.82.0" }, { capabilities: {} });
|
|
819574
819613
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
819575
819614
|
try {
|
|
819576
819615
|
await server2.connect(serverTransport);
|
|
@@ -819581,7 +819620,7 @@ async function createUrMcp2026Runtime(options5) {
|
|
|
819581
819620
|
}
|
|
819582
819621
|
const runtime2 = new Mcp2026Runtime({
|
|
819583
819622
|
cwd: options5.cwd,
|
|
819584
|
-
version: "1.
|
|
819623
|
+
version: "1.82.0",
|
|
819585
819624
|
backend: {
|
|
819586
819625
|
listTools: async () => {
|
|
819587
819626
|
const listed = await client2.listTools();
|
|
@@ -822316,7 +822355,7 @@ async function update() {
|
|
|
822316
822355
|
logEvent("tengu_update_check", {});
|
|
822317
822356
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
822318
822357
|
const result = await checkUpgradeStatus({
|
|
822319
|
-
currentVersion: "1.
|
|
822358
|
+
currentVersion: "1.82.0",
|
|
822320
822359
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
822321
822360
|
installationType: diagnostic2.installationType,
|
|
822322
822361
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -823644,7 +823683,7 @@ ${customInstructions}` : customInstructions;
|
|
|
823644
823683
|
}
|
|
823645
823684
|
}
|
|
823646
823685
|
logForDiagnosticsNoPII("info", "started", {
|
|
823647
|
-
version: "1.
|
|
823686
|
+
version: "1.82.0",
|
|
823648
823687
|
is_native_binary: isInBundledMode()
|
|
823649
823688
|
});
|
|
823650
823689
|
registerCleanup(async () => {
|
|
@@ -824431,7 +824470,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
824431
824470
|
pendingHookMessages
|
|
824432
824471
|
}, renderAndRun);
|
|
824433
824472
|
}
|
|
824434
|
-
}).version("1.
|
|
824473
|
+
}).version("1.82.0 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
824435
824474
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
824436
824475
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
824437
824476
|
if (canUserConfigureAdvisor()) {
|
|
@@ -825558,7 +825597,7 @@ if (false) {}
|
|
|
825558
825597
|
async function main2() {
|
|
825559
825598
|
const args = process.argv.slice(2);
|
|
825560
825599
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
825561
|
-
console.log(`${"1.
|
|
825600
|
+
console.log(`${"1.82.0"} (UR-Nexus)`);
|
|
825562
825601
|
return;
|
|
825563
825602
|
}
|
|
825564
825603
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|
package/docs/VALIDATION.md
CHANGED
package/documentation/index.html
CHANGED
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
<main id="content" class="content">
|
|
46
46
|
<header class="topbar">
|
|
47
47
|
<div>
|
|
48
|
-
<p class="eyebrow">Version 1.
|
|
48
|
+
<p class="eyebrow">Version 1.82.0</p>
|
|
49
49
|
<h1>UR-Nexus Documentation</h1>
|
|
50
50
|
<p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
|
|
51
51
|
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "ur-inline-diffs",
|
|
3
3
|
"displayName": "UR Inline Diffs",
|
|
4
4
|
"description": "Review, apply, and reject UR inline diff bundles from .ur/ide/diffs inside VS Code.",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.82.0",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED