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