ur-agent 1.81.3 → 1.81.5
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 +24 -0
- package/README.md +5 -3
- package/dist/cli.js +178 -146
- package/docs/CONFIGURATION.md +3 -1
- package/docs/VALIDATION.md +1 -1
- package/docs/providers.md +9 -3
- package/documentation/index.html +1 -1
- package/extensions/jetbrains-ur/build.gradle.kts +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.81.5
|
|
4
|
+
|
|
5
|
+
- Matched the UR welcome wordmark to the house and frame's bright, theme-aware
|
|
6
|
+
accent by applying the brand color directly to each rendered row. Added a
|
|
7
|
+
restrained dim drop shadow around the large house without changing its
|
|
8
|
+
established geometry or screen-reader output.
|
|
9
|
+
- Made OpenRouter model discovery fresh-only whenever the model catalog opens.
|
|
10
|
+
UR now fetches the current catalog on every visit and reports refresh errors
|
|
11
|
+
instead of silently showing stale cached entries.
|
|
12
|
+
- Shortened OpenRouter model labels and startup model chrome to their useful
|
|
13
|
+
model names while preserving the complete provider/model ID for requests and
|
|
14
|
+
showing it on the focused catalog entry. Duplicate short names retain a clear
|
|
15
|
+
vendor suffix.
|
|
16
|
+
- Stabilized the production-shell recovery regression under concurrent test
|
|
17
|
+
execution while continuing to verify that reclaimed task-output directories
|
|
18
|
+
are recreated without restarting UR.
|
|
19
|
+
|
|
20
|
+
## 1.81.4
|
|
21
|
+
|
|
22
|
+
- Unified the welcome-screen UR wordmark, outlined depth, decorative marks,
|
|
23
|
+
house, divider, and outer frame on the same theme-aware UR brand color. This
|
|
24
|
+
removes the muddy olive/brown appearance caused by mixing three palette
|
|
25
|
+
colors while preserving the wordmark geometry and screen-reader output.
|
|
26
|
+
|
|
3
27
|
## 1.81.3
|
|
4
28
|
|
|
5
29
|
- Brightened the welcome-screen UR wordmark with a polished three-tone finish:
|
package/README.md
CHANGED
|
@@ -355,9 +355,11 @@ In the interactive app, `/model` is a two-step, provider-first picker:
|
|
|
355
355
|
|
|
356
356
|
In the model catalog, use **Up/Down** to browse and **Left/Right** to change
|
|
357
357
|
the focused model's effort before pressing Enter. OpenRouter additionally
|
|
358
|
-
shows FREE/PAID tier, context size, tool/reasoning
|
|
359
|
-
|
|
360
|
-
|
|
358
|
+
shows compact model names, FREE/PAID tier, context size, tool/reasoning
|
|
359
|
+
support, and the exact ID for the focused entry. Its catalog is fetched
|
|
360
|
+
fresh every time it opens and never falls back to a stale cached list.
|
|
361
|
+
API-key entry is masked, aligned on one row, and stored through the OS
|
|
362
|
+
keychain flow.
|
|
361
363
|
|
|
362
364
|
Model lists never cross providers: OpenAI API, Claude API, Gemini API,
|
|
363
365
|
OpenRouter, Ollama, and OpenAI-compatible local/server endpoints are separate
|
package/dist/cli.js
CHANGED
|
@@ -55200,6 +55200,14 @@ async function listModelsForProviderWithSource(providerId, options = {}) {
|
|
|
55200
55200
|
source: "live"
|
|
55201
55201
|
};
|
|
55202
55202
|
}
|
|
55203
|
+
if (options.freshOnly) {
|
|
55204
|
+
return {
|
|
55205
|
+
provider,
|
|
55206
|
+
models: [],
|
|
55207
|
+
source: "live",
|
|
55208
|
+
warning: `Live model discovery for "${provider}" returned no models. No cached catalog was shown.`
|
|
55209
|
+
};
|
|
55210
|
+
}
|
|
55203
55211
|
const cachedModels = cachedModelsByProvider.get(cacheKey) ?? [];
|
|
55204
55212
|
if (cachedModels.length > 0) {
|
|
55205
55213
|
const age = describeCacheAge(cachedModelsAgeMs(cacheKey) ?? 0);
|
|
@@ -55218,6 +55226,14 @@ async function listModelsForProviderWithSource(providerId, options = {}) {
|
|
|
55218
55226
|
warning: `Live model discovery for "${provider}" returned no models.`
|
|
55219
55227
|
};
|
|
55220
55228
|
} catch (error40) {
|
|
55229
|
+
if (options.freshOnly) {
|
|
55230
|
+
return {
|
|
55231
|
+
provider,
|
|
55232
|
+
models: [],
|
|
55233
|
+
source: "live",
|
|
55234
|
+
warning: `Live model discovery for "${provider}" failed: ${error40 instanceof Error ? error40.message : String(error40)}. No cached catalog was shown.`
|
|
55235
|
+
};
|
|
55236
|
+
}
|
|
55221
55237
|
const cachedModels = cachedModelsByProvider.get(cacheKey) ?? [];
|
|
55222
55238
|
if (cachedModels.length > 0) {
|
|
55223
55239
|
const age = describeCacheAge(cachedModelsAgeMs(cacheKey) ?? 0);
|
|
@@ -108236,7 +108252,7 @@ var init_auth = __esm(() => {
|
|
|
108236
108252
|
|
|
108237
108253
|
// src/utils/userAgent.ts
|
|
108238
108254
|
function getURCodeUserAgent() {
|
|
108239
|
-
return `ur/${"1.81.
|
|
108255
|
+
return `ur/${"1.81.5"}`;
|
|
108240
108256
|
}
|
|
108241
108257
|
|
|
108242
108258
|
// src/utils/workloadContext.ts
|
|
@@ -108258,7 +108274,7 @@ function getUserAgent() {
|
|
|
108258
108274
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
108259
108275
|
const workload = getWorkload();
|
|
108260
108276
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
108261
|
-
return `ur-cli/${"1.81.
|
|
108277
|
+
return `ur-cli/${"1.81.5"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
108262
108278
|
}
|
|
108263
108279
|
function getMCPUserAgent() {
|
|
108264
108280
|
const parts = [];
|
|
@@ -108272,7 +108288,7 @@ function getMCPUserAgent() {
|
|
|
108272
108288
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
108273
108289
|
}
|
|
108274
108290
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
108275
|
-
return `ur/${"1.81.
|
|
108291
|
+
return `ur/${"1.81.5"}${suffix}`;
|
|
108276
108292
|
}
|
|
108277
108293
|
function getWebFetchUserAgent() {
|
|
108278
108294
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -108410,7 +108426,7 @@ var init_user = __esm(() => {
|
|
|
108410
108426
|
deviceId,
|
|
108411
108427
|
sessionId: getSessionId(),
|
|
108412
108428
|
email: getEmail(),
|
|
108413
|
-
appVersion: "1.81.
|
|
108429
|
+
appVersion: "1.81.5",
|
|
108414
108430
|
platform: getHostPlatformForAnalytics(),
|
|
108415
108431
|
organizationUuid,
|
|
108416
108432
|
accountUuid,
|
|
@@ -116297,7 +116313,7 @@ var init_metadata = __esm(() => {
|
|
|
116297
116313
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
116298
116314
|
WHITESPACE_REGEX = /\s+/;
|
|
116299
116315
|
getVersionBase = memoize_default(() => {
|
|
116300
|
-
const match = "1.81.
|
|
116316
|
+
const match = "1.81.5".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
116301
116317
|
return match ? match[0] : undefined;
|
|
116302
116318
|
});
|
|
116303
116319
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -116337,7 +116353,7 @@ var init_metadata = __esm(() => {
|
|
|
116337
116353
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
116338
116354
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
116339
116355
|
isURAiAuth: isURAISubscriber(),
|
|
116340
|
-
version: "1.81.
|
|
116356
|
+
version: "1.81.5",
|
|
116341
116357
|
versionBase: getVersionBase(),
|
|
116342
116358
|
buildTime: "",
|
|
116343
116359
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -117007,7 +117023,7 @@ function initialize1PEventLogging() {
|
|
|
117007
117023
|
const platform2 = getPlatform();
|
|
117008
117024
|
const attributes = {
|
|
117009
117025
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
117010
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.81.
|
|
117026
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.81.5"
|
|
117011
117027
|
};
|
|
117012
117028
|
if (platform2 === "wsl") {
|
|
117013
117029
|
const wslVersion = getWslVersion();
|
|
@@ -117035,7 +117051,7 @@ function initialize1PEventLogging() {
|
|
|
117035
117051
|
})
|
|
117036
117052
|
]
|
|
117037
117053
|
});
|
|
117038
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.81.
|
|
117054
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.81.5");
|
|
117039
117055
|
}
|
|
117040
117056
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
117041
117057
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -127001,7 +127017,7 @@ function formatA2AAgentCard(options = {}, pretty = true) {
|
|
|
127001
127017
|
function formatA2AV1AgentCard(options = {}, pretty = true) {
|
|
127002
127018
|
return JSON.stringify(buildA2AV1AgentCard(options), null, pretty ? 2 : 0);
|
|
127003
127019
|
}
|
|
127004
|
-
var urVersion = "1.81.
|
|
127020
|
+
var urVersion = "1.81.5", researchSnapshotDate = "2026-08-10", coverage, priorityRoadmap;
|
|
127005
127021
|
var init_trends = __esm(() => {
|
|
127006
127022
|
init_a2aCardSignature();
|
|
127007
127023
|
coverage = [
|
|
@@ -129891,7 +129907,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
129891
129907
|
if (!isAttributionHeaderEnabled()) {
|
|
129892
129908
|
return "";
|
|
129893
129909
|
}
|
|
129894
|
-
const version2 = `${"1.81.
|
|
129910
|
+
const version2 = `${"1.81.5"}.${fingerprint}`;
|
|
129895
129911
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
129896
129912
|
const cch = "";
|
|
129897
129913
|
const workload = getWorkload();
|
|
@@ -184812,7 +184828,7 @@ var init_projectSafety = __esm(() => {
|
|
|
184812
184828
|
function getInstruments() {
|
|
184813
184829
|
if (instruments)
|
|
184814
184830
|
return instruments;
|
|
184815
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.81.
|
|
184831
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.81.5");
|
|
184816
184832
|
instruments = {
|
|
184817
184833
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
184818
184834
|
description: "GenAI operation duration.",
|
|
@@ -184910,7 +184926,7 @@ function genAiAgentAttributes() {
|
|
|
184910
184926
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
184911
184927
|
"gen_ai.provider.name": "ur",
|
|
184912
184928
|
"gen_ai.agent.name": "UR-Nexus",
|
|
184913
|
-
"gen_ai.agent.version": "1.81.
|
|
184929
|
+
"gen_ai.agent.version": "1.81.5"
|
|
184914
184930
|
};
|
|
184915
184931
|
}
|
|
184916
184932
|
function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
@@ -184931,7 +184947,7 @@ function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
|
184931
184947
|
function startGenAiWorkflowSpan(workflowName, workflowRunId) {
|
|
184932
184948
|
const attributes = genAiWorkflowAttributes(workflowName, workflowRunId);
|
|
184933
184949
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
184934
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.
|
|
184950
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.5").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184935
184951
|
}
|
|
184936
184952
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
184937
184953
|
try {
|
|
@@ -184969,7 +184985,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
184969
184985
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
184970
184986
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
184971
184987
|
}
|
|
184972
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.
|
|
184988
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.81.5").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184973
184989
|
}
|
|
184974
184990
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
184975
184991
|
try {
|
|
@@ -278684,7 +278700,7 @@ function getTelemetryAttributes() {
|
|
|
278684
278700
|
attributes["session.id"] = sessionId;
|
|
278685
278701
|
}
|
|
278686
278702
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
278687
|
-
attributes["app.version"] = "1.81.
|
|
278703
|
+
attributes["app.version"] = "1.81.5";
|
|
278688
278704
|
}
|
|
278689
278705
|
const oauthAccount = getOauthAccountInfo();
|
|
278690
278706
|
if (oauthAccount) {
|
|
@@ -320088,7 +320104,7 @@ function getInstallationEnv() {
|
|
|
320088
320104
|
return;
|
|
320089
320105
|
}
|
|
320090
320106
|
function getURCodeVersion() {
|
|
320091
|
-
return "1.81.
|
|
320107
|
+
return "1.81.5";
|
|
320092
320108
|
}
|
|
320093
320109
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
320094
320110
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -327458,7 +327474,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
327458
327474
|
const client2 = new Client({
|
|
327459
327475
|
name: "ur",
|
|
327460
327476
|
title: "UR",
|
|
327461
|
-
version: "1.81.
|
|
327477
|
+
version: "1.81.5",
|
|
327462
327478
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
327463
327479
|
websiteUrl: PRODUCT_URL
|
|
327464
327480
|
}, {
|
|
@@ -327819,7 +327835,7 @@ var init_client5 = __esm(() => {
|
|
|
327819
327835
|
const client2 = new Client({
|
|
327820
327836
|
name: "ur",
|
|
327821
327837
|
title: "UR",
|
|
327822
|
-
version: "1.81.
|
|
327838
|
+
version: "1.81.5",
|
|
327823
327839
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
327824
327840
|
websiteUrl: PRODUCT_URL
|
|
327825
327841
|
}, {
|
|
@@ -340592,7 +340608,7 @@ async function createRuntime() {
|
|
|
340592
340608
|
bootstrapTelemetry();
|
|
340593
340609
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
340594
340610
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
340595
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.81.
|
|
340611
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.81.5"
|
|
340596
340612
|
}));
|
|
340597
340613
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
340598
340614
|
resource,
|
|
@@ -340625,11 +340641,11 @@ async function createRuntime() {
|
|
|
340625
340641
|
setMeterProvider(meterProvider);
|
|
340626
340642
|
setLoggerProvider(loggerProvider);
|
|
340627
340643
|
if (meterProvider) {
|
|
340628
|
-
const meter = meterProvider.getMeter("ur-agent", "1.81.
|
|
340644
|
+
const meter = meterProvider.getMeter("ur-agent", "1.81.5");
|
|
340629
340645
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
340630
340646
|
}
|
|
340631
340647
|
if (loggerProvider) {
|
|
340632
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.81.
|
|
340648
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.81.5"));
|
|
340633
340649
|
}
|
|
340634
340650
|
if (!cleanupRegistered3) {
|
|
340635
340651
|
cleanupRegistered3 = true;
|
|
@@ -341291,9 +341307,9 @@ async function assertMinVersion() {
|
|
|
341291
341307
|
if (false) {}
|
|
341292
341308
|
try {
|
|
341293
341309
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
341294
|
-
if (versionConfig.minVersion && lt("1.81.
|
|
341310
|
+
if (versionConfig.minVersion && lt("1.81.5", versionConfig.minVersion)) {
|
|
341295
341311
|
console.error(`
|
|
341296
|
-
It looks like your version of UR (${"1.81.
|
|
341312
|
+
It looks like your version of UR (${"1.81.5"}) needs an update.
|
|
341297
341313
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
341298
341314
|
|
|
341299
341315
|
To update, please run:
|
|
@@ -341509,7 +341525,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
341509
341525
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
341510
341526
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
341511
341527
|
pid: process.pid,
|
|
341512
|
-
currentVersion: "1.81.
|
|
341528
|
+
currentVersion: "1.81.5"
|
|
341513
341529
|
});
|
|
341514
341530
|
return "in_progress";
|
|
341515
341531
|
}
|
|
@@ -341518,7 +341534,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
341518
341534
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
341519
341535
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
341520
341536
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
341521
|
-
currentVersion: "1.81.
|
|
341537
|
+
currentVersion: "1.81.5"
|
|
341522
341538
|
});
|
|
341523
341539
|
console.error(`
|
|
341524
341540
|
Error: Windows NPM detected in WSL
|
|
@@ -342053,7 +342069,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
342053
342069
|
}
|
|
342054
342070
|
async function getDoctorDiagnostic() {
|
|
342055
342071
|
const installationType = await getCurrentInstallationType();
|
|
342056
|
-
const version2 = typeof MACRO !== "undefined" ? "1.81.
|
|
342072
|
+
const version2 = typeof MACRO !== "undefined" ? "1.81.5" : "unknown";
|
|
342057
342073
|
const installationPath = await getInstallationPath();
|
|
342058
342074
|
const invokedBinary = getInvokedBinary();
|
|
342059
342075
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -342988,8 +343004,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
342988
343004
|
const maxVersion = await getMaxVersion();
|
|
342989
343005
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
342990
343006
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
342991
|
-
if (gte("1.81.
|
|
342992
|
-
logForDebugging(`Native installer: current version ${"1.81.
|
|
343007
|
+
if (gte("1.81.5", maxVersion)) {
|
|
343008
|
+
logForDebugging(`Native installer: current version ${"1.81.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
342993
343009
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
342994
343010
|
latency_ms: Date.now() - startTime,
|
|
342995
343011
|
max_version: maxVersion,
|
|
@@ -343000,7 +343016,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
343000
343016
|
version2 = maxVersion;
|
|
343001
343017
|
}
|
|
343002
343018
|
}
|
|
343003
|
-
if (!forceReinstall && version2 === "1.81.
|
|
343019
|
+
if (!forceReinstall && version2 === "1.81.5" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
343004
343020
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
343005
343021
|
logEvent("tengu_native_update_complete", {
|
|
343006
343022
|
latency_ms: Date.now() - startTime,
|
|
@@ -413687,7 +413703,7 @@ function isAnyTracingEnabled() {
|
|
|
413687
413703
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
413688
413704
|
}
|
|
413689
413705
|
function getTracer() {
|
|
413690
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.81.
|
|
413706
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.81.5");
|
|
413691
413707
|
}
|
|
413692
413708
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
413693
413709
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -443846,7 +443862,7 @@ function Feedback({
|
|
|
443846
443862
|
platform: env2.platform,
|
|
443847
443863
|
gitRepo: envInfo.isGit,
|
|
443848
443864
|
terminal: env2.terminal,
|
|
443849
|
-
version: "1.81.
|
|
443865
|
+
version: "1.81.5",
|
|
443850
443866
|
transcript: normalizeMessagesForAPI(messages),
|
|
443851
443867
|
errors: sanitizedErrors,
|
|
443852
443868
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -444038,7 +444054,7 @@ function Feedback({
|
|
|
444038
444054
|
", ",
|
|
444039
444055
|
env2.terminal,
|
|
444040
444056
|
", v",
|
|
444041
|
-
"1.81.
|
|
444057
|
+
"1.81.5"
|
|
444042
444058
|
]
|
|
444043
444059
|
}, undefined, true, undefined, this)
|
|
444044
444060
|
]
|
|
@@ -444144,7 +444160,7 @@ ${sanitizedDescription}
|
|
|
444144
444160
|
` + `**Environment Info**
|
|
444145
444161
|
` + `- Platform: ${env2.platform}
|
|
444146
444162
|
` + `- Terminal: ${env2.terminal}
|
|
444147
|
-
` + `- Version: ${"1.81.
|
|
444163
|
+
` + `- Version: ${"1.81.5"}
|
|
444148
444164
|
` + `- Feedback ID: ${feedbackId}
|
|
444149
444165
|
` + `
|
|
444150
444166
|
**Errors**
|
|
@@ -447254,7 +447270,7 @@ function buildPrimarySection() {
|
|
|
447254
447270
|
}, undefined, false, undefined, this);
|
|
447255
447271
|
return [{
|
|
447256
447272
|
label: "Version",
|
|
447257
|
-
value: "1.81.
|
|
447273
|
+
value: "1.81.5"
|
|
447258
447274
|
}, {
|
|
447259
447275
|
label: "Session name",
|
|
447260
447276
|
value: nameValue
|
|
@@ -448046,6 +448062,36 @@ var init_EffortIndicator = __esm(() => {
|
|
|
448046
448062
|
init_effort();
|
|
448047
448063
|
});
|
|
448048
448064
|
|
|
448065
|
+
// src/utils/model/modelPresentation.ts
|
|
448066
|
+
function compactModelDisplayName(modelId, maxLength = DEFAULT_COMPACT_MODEL_LENGTH) {
|
|
448067
|
+
const trimmed = modelId.trim();
|
|
448068
|
+
const leaf2 = trimmed.split("/").filter(Boolean).at(-1) ?? trimmed;
|
|
448069
|
+
const limit = Number.isFinite(maxLength) ? Math.max(2, Math.floor(maxLength)) : DEFAULT_COMPACT_MODEL_LENGTH;
|
|
448070
|
+
if (leaf2.length <= limit)
|
|
448071
|
+
return leaf2;
|
|
448072
|
+
return `${leaf2.slice(0, limit - 1)}\u2026`;
|
|
448073
|
+
}
|
|
448074
|
+
function buildProviderModelLabels(providerId, models) {
|
|
448075
|
+
if (providerId !== "openrouter") {
|
|
448076
|
+
return new Map(models.map((model) => [model.id, model.displayName]));
|
|
448077
|
+
}
|
|
448078
|
+
const baseLabels = models.map((model) => compactModelDisplayName(model.id));
|
|
448079
|
+
const counts = new Map;
|
|
448080
|
+
for (const label of baseLabels) {
|
|
448081
|
+
const key = label.toLowerCase();
|
|
448082
|
+
counts.set(key, (counts.get(key) ?? 0) + 1);
|
|
448083
|
+
}
|
|
448084
|
+
return new Map(models.map((model, index2) => {
|
|
448085
|
+
const label = baseLabels[index2];
|
|
448086
|
+
if ((counts.get(label.toLowerCase()) ?? 0) === 1) {
|
|
448087
|
+
return [model.id, label];
|
|
448088
|
+
}
|
|
448089
|
+
const vendor = model.id.includes("/") ? model.id.split("/")[0] : "model";
|
|
448090
|
+
return [model.id, `${label} \xB7 ${vendor}`];
|
|
448091
|
+
}));
|
|
448092
|
+
}
|
|
448093
|
+
var DEFAULT_COMPACT_MODEL_LENGTH = 30;
|
|
448094
|
+
|
|
448049
448095
|
// src/components/ModelPicker.tsx
|
|
448050
448096
|
function ModelPicker({
|
|
448051
448097
|
initial,
|
|
@@ -448081,13 +448127,15 @@ function ModelPicker({
|
|
|
448081
448127
|
setPickerError(null);
|
|
448082
448128
|
listModelsForProviderWithSource(currentProvider, {
|
|
448083
448129
|
settings: effectiveSettings,
|
|
448084
|
-
signal: controller.signal
|
|
448130
|
+
signal: controller.signal,
|
|
448131
|
+
freshOnly: currentProvider === "openrouter"
|
|
448085
448132
|
}).then((result) => {
|
|
448086
448133
|
if (controller.signal.aborted)
|
|
448087
448134
|
return;
|
|
448135
|
+
const modelLabels = buildProviderModelLabels(currentProvider, result.models);
|
|
448088
448136
|
setProviderModelOptions(result.models.map((model) => ({
|
|
448089
448137
|
value: model.id,
|
|
448090
|
-
label: model.displayName,
|
|
448138
|
+
label: modelLabels.get(model.id) ?? model.displayName,
|
|
448091
448139
|
description: `${model.description} \xB7 ${result.source}`,
|
|
448092
448140
|
...model.supportedParameters !== undefined && !model.supportedParameters.includes("tools") ? { disabled: true } : {}
|
|
448093
448141
|
})));
|
|
@@ -450636,7 +450684,7 @@ function Config({
|
|
|
450636
450684
|
}
|
|
450637
450685
|
}, undefined, false, undefined, this)
|
|
450638
450686
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
450639
|
-
currentVersion: "1.81.
|
|
450687
|
+
currentVersion: "1.81.5",
|
|
450640
450688
|
onChoice: (choice) => {
|
|
450641
450689
|
setShowSubmenu(null);
|
|
450642
450690
|
setTabsHidden(false);
|
|
@@ -450648,7 +450696,7 @@ function Config({
|
|
|
450648
450696
|
autoUpdatesChannel: "stable"
|
|
450649
450697
|
};
|
|
450650
450698
|
if (choice === "stay") {
|
|
450651
|
-
newSettings.minimumVersion = "1.81.
|
|
450699
|
+
newSettings.minimumVersion = "1.81.5";
|
|
450652
450700
|
}
|
|
450653
450701
|
updateSettingsForSource("userSettings", newSettings);
|
|
450654
450702
|
setSettingsData((prev_27) => ({
|
|
@@ -458957,7 +459005,7 @@ function HelpV2(t0) {
|
|
|
458957
459005
|
let t6;
|
|
458958
459006
|
if ($2[31] !== tabs) {
|
|
458959
459007
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
458960
|
-
title: `UR v${"1.81.
|
|
459008
|
+
title: `UR v${"1.81.5"}`,
|
|
458961
459009
|
color: "professionalBlue",
|
|
458962
459010
|
defaultTab: "general",
|
|
458963
459011
|
children: tabs
|
|
@@ -459890,7 +459938,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
459890
459938
|
async function handleInitialize(options2) {
|
|
459891
459939
|
return {
|
|
459892
459940
|
name: "UR",
|
|
459893
|
-
version: "1.81.
|
|
459941
|
+
version: "1.81.5",
|
|
459894
459942
|
protocolVersion: "0.1.0",
|
|
459895
459943
|
workspaceRoot: options2.cwd,
|
|
459896
459944
|
capabilities: {
|
|
@@ -476998,7 +477046,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
476998
477046
|
return [];
|
|
476999
477047
|
}
|
|
477000
477048
|
}
|
|
477001
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.81.
|
|
477049
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.81.5") {
|
|
477002
477050
|
if (process.env.USER_TYPE === "ant") {
|
|
477003
477051
|
const changelog = "";
|
|
477004
477052
|
if (changelog) {
|
|
@@ -477025,7 +477073,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.81.3")
|
|
|
477025
477073
|
releaseNotes
|
|
477026
477074
|
};
|
|
477027
477075
|
}
|
|
477028
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.81.
|
|
477076
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.81.5") {
|
|
477029
477077
|
if (process.env.USER_TYPE === "ant") {
|
|
477030
477078
|
const changelog = "";
|
|
477031
477079
|
if (changelog) {
|
|
@@ -479930,7 +479978,7 @@ function getRecentActivitySync() {
|
|
|
479930
479978
|
return cachedActivity;
|
|
479931
479979
|
}
|
|
479932
479980
|
function getLogoDisplayData() {
|
|
479933
|
-
const version2 = process.env.DEMO_VERSION ?? "1.81.
|
|
479981
|
+
const version2 = process.env.DEMO_VERSION ?? "1.81.5";
|
|
479934
479982
|
const serverUrl = getDirectConnectServerUrl();
|
|
479935
479983
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
479936
479984
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -480004,14 +480052,6 @@ var init_logoV2Utils = __esm(() => {
|
|
|
480004
480052
|
});
|
|
480005
480053
|
|
|
480006
480054
|
// src/components/LogoV2/URBanner.tsx
|
|
480007
|
-
function getURWordmarkGlyphTone(glyph, row, column) {
|
|
480008
|
-
if (glyph === "\u2588") {
|
|
480009
|
-
return SPECULAR_GLYPHS.has(`${row}:${column}`) ? "warningShimmer" : "urShimmer";
|
|
480010
|
-
}
|
|
480011
|
-
if ("\u2557\u2551\u2554\u255D\u255A\u2550".includes(glyph))
|
|
480012
|
-
return "ur";
|
|
480013
|
-
return;
|
|
480014
|
-
}
|
|
480015
480055
|
function URBanner() {
|
|
480016
480056
|
if (isScreenReaderMode()) {
|
|
480017
480057
|
return /* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
@@ -480023,37 +480063,21 @@ function URBanner() {
|
|
|
480023
480063
|
alignItems: "center",
|
|
480024
480064
|
children: [
|
|
480025
480065
|
UR_WORDMARK_ROWS.map((row, i3) => /* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
480026
|
-
|
|
480027
|
-
children:
|
|
480028
|
-
color: getURWordmarkGlyphTone(glyph, i3, column),
|
|
480029
|
-
children: glyph
|
|
480030
|
-
}, `${i3}:${column}`, false, undefined, this))
|
|
480066
|
+
color: "ur",
|
|
480067
|
+
children: row
|
|
480031
480068
|
}, i3, false, undefined, this)),
|
|
480032
480069
|
/* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
480033
|
-
|
|
480070
|
+
color: "ur",
|
|
480034
480071
|
children: [
|
|
480035
|
-
|
|
480036
|
-
|
|
480037
|
-
|
|
480038
|
-
}, undefined, false, undefined, this),
|
|
480039
|
-
/* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
480040
|
-
color: "urShimmer",
|
|
480041
|
-
children: [
|
|
480042
|
-
" ",
|
|
480043
|
-
UR_WORDMARK_TAGLINE,
|
|
480044
|
-
" "
|
|
480045
|
-
]
|
|
480046
|
-
}, undefined, true, undefined, this),
|
|
480047
|
-
/* @__PURE__ */ jsx_dev_runtime233.jsxDEV(ThemedText, {
|
|
480048
|
-
color: "warningShimmer",
|
|
480049
|
-
children: "\u2726"
|
|
480050
|
-
}, undefined, false, undefined, this)
|
|
480072
|
+
"\u2726 ",
|
|
480073
|
+
UR_WORDMARK_TAGLINE,
|
|
480074
|
+
" \u2726"
|
|
480051
480075
|
]
|
|
480052
480076
|
}, undefined, true, undefined, this)
|
|
480053
480077
|
]
|
|
480054
480078
|
}, undefined, true, undefined, this);
|
|
480055
480079
|
}
|
|
480056
|
-
var jsx_dev_runtime233, UR_WORDMARK_ROWS, UR_WORDMARK_TAGLINE = "THE AUTONOMOUS AGENT"
|
|
480080
|
+
var jsx_dev_runtime233, UR_WORDMARK_ROWS, UR_WORDMARK_TAGLINE = "THE AUTONOMOUS AGENT";
|
|
480057
480081
|
var init_URBanner = __esm(() => {
|
|
480058
480082
|
init_ink2();
|
|
480059
480083
|
init_screenReader();
|
|
@@ -480066,25 +480090,6 @@ var init_URBanner = __esm(() => {
|
|
|
480066
480090
|
"\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D \u2588\u2588\u2551 \u2588\u2588\u2551",
|
|
480067
480091
|
" \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D"
|
|
480068
480092
|
];
|
|
480069
|
-
SPECULAR_GLYPHS = new Set([
|
|
480070
|
-
"0:0",
|
|
480071
|
-
"0:1",
|
|
480072
|
-
"0:6",
|
|
480073
|
-
"0:7",
|
|
480074
|
-
"0:11",
|
|
480075
|
-
"0:12",
|
|
480076
|
-
"0:13",
|
|
480077
|
-
"0:14",
|
|
480078
|
-
"0:15",
|
|
480079
|
-
"0:16",
|
|
480080
|
-
"1:0",
|
|
480081
|
-
"1:6",
|
|
480082
|
-
"1:11",
|
|
480083
|
-
"1:15",
|
|
480084
|
-
"2:0",
|
|
480085
|
-
"2:6",
|
|
480086
|
-
"2:11"
|
|
480087
|
-
]);
|
|
480088
480093
|
});
|
|
480089
480094
|
|
|
480090
480095
|
// src/components/LogoV2/UrHouse.tsx
|
|
@@ -480093,13 +480098,30 @@ function UrHouse({ size = "large" }) {
|
|
|
480093
480098
|
return /* @__PURE__ */ jsx_dev_runtime234.jsxDEV(ThemedBox_default, {
|
|
480094
480099
|
flexDirection: "column",
|
|
480095
480100
|
alignItems: "center",
|
|
480096
|
-
children:
|
|
480097
|
-
|
|
480098
|
-
|
|
480099
|
-
|
|
480100
|
-
|
|
480101
|
+
children: [
|
|
480102
|
+
rows.map((row, i3) => /* @__PURE__ */ jsx_dev_runtime234.jsxDEV(ThemedBox_default, {
|
|
480103
|
+
flexDirection: "row",
|
|
480104
|
+
children: [
|
|
480105
|
+
/* @__PURE__ */ jsx_dev_runtime234.jsxDEV(ThemedText, {
|
|
480106
|
+
color: "ur",
|
|
480107
|
+
children: row
|
|
480108
|
+
}, undefined, false, undefined, this),
|
|
480109
|
+
size === "large" && /* @__PURE__ */ jsx_dev_runtime234.jsxDEV(ThemedText, {
|
|
480110
|
+
color: "ur",
|
|
480111
|
+
dimColor: true,
|
|
480112
|
+
children: i3 >= LARGE_SHADOW_START_ROW ? "\u2591" : " "
|
|
480113
|
+
}, undefined, false, undefined, this)
|
|
480114
|
+
]
|
|
480115
|
+
}, i3, true, undefined, this)),
|
|
480116
|
+
size === "large" && /* @__PURE__ */ jsx_dev_runtime234.jsxDEV(ThemedText, {
|
|
480117
|
+
color: "ur",
|
|
480118
|
+
dimColor: true,
|
|
480119
|
+
children: LARGE_HOUSE_BOTTOM_SHADOW
|
|
480120
|
+
}, undefined, false, undefined, this)
|
|
480121
|
+
]
|
|
480122
|
+
}, undefined, true, undefined, this);
|
|
480101
480123
|
}
|
|
480102
|
-
var jsx_dev_runtime234, LARGE, SMALL;
|
|
480124
|
+
var jsx_dev_runtime234, LARGE, SMALL, LARGE_SHADOW_START_ROW = 3, LARGE_HOUSE_BOTTOM_SHADOW = " \u2591\u2591\u2591\u2591\u2591\u2591\u2591\u2591 ";
|
|
480103
480125
|
var init_UrHouse = __esm(() => {
|
|
480104
480126
|
init_ink2();
|
|
480105
480127
|
jsx_dev_runtime234 = __toESM(require_jsx_dev_runtime(), 1);
|
|
@@ -480403,7 +480425,7 @@ function CondensedLogo() {
|
|
|
480403
480425
|
const effortValue = useAppState(_temp240);
|
|
480404
480426
|
const effortProvider = useAppState((s) => s.provider.active);
|
|
480405
480427
|
const model = useMainLoopModel();
|
|
480406
|
-
const modelDisplayName = renderModelSetting(model);
|
|
480428
|
+
const modelDisplayName = compactModelDisplayName(renderModelSetting(model));
|
|
480407
480429
|
const {
|
|
480408
480430
|
version: version2,
|
|
480409
480431
|
cwd: cwd2,
|
|
@@ -480852,7 +480874,7 @@ function LogoV2() {
|
|
|
480852
480874
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
480853
480875
|
t2 = () => {
|
|
480854
480876
|
const currentConfig = getGlobalConfig();
|
|
480855
|
-
if (currentConfig.lastReleaseNotesSeen === "1.81.
|
|
480877
|
+
if (currentConfig.lastReleaseNotesSeen === "1.81.5") {
|
|
480856
480878
|
return;
|
|
480857
480879
|
}
|
|
480858
480880
|
saveGlobalConfig(_temp325);
|
|
@@ -480917,7 +480939,7 @@ function LogoV2() {
|
|
|
480917
480939
|
}
|
|
480918
480940
|
import_react144.useEffect(t7, t8);
|
|
480919
480941
|
const model = useMainLoopModel();
|
|
480920
|
-
const fullModelDisplayName = renderModelSetting(model);
|
|
480942
|
+
const fullModelDisplayName = compactModelDisplayName(renderModelSetting(model));
|
|
480921
480943
|
const {
|
|
480922
480944
|
version: version2,
|
|
480923
480945
|
cwd: cwd2,
|
|
@@ -481537,12 +481559,12 @@ function LogoV2() {
|
|
|
481537
481559
|
return t41;
|
|
481538
481560
|
}
|
|
481539
481561
|
function _temp325(current) {
|
|
481540
|
-
if (current.lastReleaseNotesSeen === "1.81.
|
|
481562
|
+
if (current.lastReleaseNotesSeen === "1.81.5") {
|
|
481541
481563
|
return current;
|
|
481542
481564
|
}
|
|
481543
481565
|
return {
|
|
481544
481566
|
...current,
|
|
481545
|
-
lastReleaseNotesSeen: "1.81.
|
|
481567
|
+
lastReleaseNotesSeen: "1.81.5"
|
|
481546
481568
|
};
|
|
481547
481569
|
}
|
|
481548
481570
|
function _temp241(s_0) {
|
|
@@ -497492,7 +497514,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
497492
497514
|
if (spec.name !== specName) {
|
|
497493
497515
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
497494
497516
|
}
|
|
497495
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.81.
|
|
497517
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.81.5" : "1.81.5");
|
|
497496
497518
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
497497
497519
|
throw new Error("invalid ur-agent package version");
|
|
497498
497520
|
}
|
|
@@ -498485,7 +498507,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
498485
498507
|
path: ".github/workflows/ur.yml",
|
|
498486
498508
|
root: "project",
|
|
498487
498509
|
content: compileAgenticCiWorkflow("default", {
|
|
498488
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.81.
|
|
498510
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.81.5" : "1.81.5"
|
|
498489
498511
|
})
|
|
498490
498512
|
},
|
|
498491
498513
|
{
|
|
@@ -498548,7 +498570,7 @@ function value(tokens, flag) {
|
|
|
498548
498570
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
498549
498571
|
}
|
|
498550
498572
|
function cliVersion() {
|
|
498551
|
-
return typeof MACRO !== "undefined" ? "1.81.
|
|
498573
|
+
return typeof MACRO !== "undefined" ? "1.81.5" : "1.81.5";
|
|
498552
498574
|
}
|
|
498553
498575
|
function workflowPath(cwd2) {
|
|
498554
498576
|
return join168(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -504404,7 +504426,7 @@ function createAcpStdioApp(deps) {
|
|
|
504404
504426
|
}
|
|
504405
504427
|
},
|
|
504406
504428
|
authMethods: [],
|
|
504407
|
-
agentInfo: { name: "UR-Nexus", version: "1.81.
|
|
504429
|
+
agentInfo: { name: "UR-Nexus", version: "1.81.5" }
|
|
504408
504430
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
504409
504431
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
504410
504432
|
await runtime2.announce({
|
|
@@ -504501,7 +504523,7 @@ function createAcpStdioAgent(deps) {
|
|
|
504501
504523
|
}
|
|
504502
504524
|
},
|
|
504503
504525
|
authMethods: [],
|
|
504504
|
-
agentInfo: { name: "UR-Nexus", version: "1.81.
|
|
504526
|
+
agentInfo: { name: "UR-Nexus", version: "1.81.5" }
|
|
504505
504527
|
});
|
|
504506
504528
|
return;
|
|
504507
504529
|
case "authenticate":
|
|
@@ -715753,7 +715775,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
715753
715775
|
smapsRollup,
|
|
715754
715776
|
platform: process.platform,
|
|
715755
715777
|
nodeVersion: process.version,
|
|
715756
|
-
ccVersion: "1.81.
|
|
715778
|
+
ccVersion: "1.81.5"
|
|
715757
715779
|
};
|
|
715758
715780
|
}
|
|
715759
715781
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -716342,7 +716364,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
716342
716364
|
var call154 = async () => {
|
|
716343
716365
|
return {
|
|
716344
716366
|
type: "text",
|
|
716345
|
-
value: "1.81.
|
|
716367
|
+
value: "1.81.5"
|
|
716346
716368
|
};
|
|
716347
716369
|
}, version2, version_default;
|
|
716348
716370
|
var init_version = __esm(() => {
|
|
@@ -719402,13 +719424,15 @@ function ProviderFirstModelPicker({
|
|
|
719402
719424
|
try {
|
|
719403
719425
|
const result = await listModelsForProviderWithSource(providerId, {
|
|
719404
719426
|
settings: getSettingsForSource("userSettings") ?? undefined,
|
|
719405
|
-
signal: controller.signal
|
|
719427
|
+
signal: controller.signal,
|
|
719428
|
+
freshOnly: providerId === "openrouter"
|
|
719406
719429
|
});
|
|
719407
719430
|
if (cancelled)
|
|
719408
719431
|
return;
|
|
719432
|
+
const modelLabels = buildProviderModelLabels(providerId, result.models);
|
|
719409
719433
|
const options5 = result.models.map((model) => ({
|
|
719410
719434
|
value: model.id,
|
|
719411
|
-
label: model.displayName,
|
|
719435
|
+
label: modelLabels.get(model.id) ?? model.displayName,
|
|
719412
719436
|
description: formatProviderModelDescription(model, result.source, providerId),
|
|
719413
719437
|
pricing: model.pricing,
|
|
719414
719438
|
contextLength: model.contextLength,
|
|
@@ -719976,7 +720000,7 @@ function ProviderFirstModelPicker({
|
|
|
719976
720000
|
}, undefined, false, undefined, this),
|
|
719977
720001
|
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
719978
720002
|
dimColor: true,
|
|
719979
|
-
children: selectedProvider?.value === "openrouter" ? `${modelOptions.length}
|
|
720003
|
+
children: selectedProvider?.value === "openrouter" ? `${modelOptions.length} models \xB7 fetched fresh whenever this catalog opens` : `Showing models for ${selectedProvider?.label} (${selectedProvider?.accessType})`
|
|
719980
720004
|
}, undefined, false, undefined, this),
|
|
719981
720005
|
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
719982
720006
|
color: modelSource === "live" ? "success" : "subtle",
|
|
@@ -720032,6 +720056,14 @@ function ProviderFirstModelPicker({
|
|
|
720032
720056
|
color: "text",
|
|
720033
720057
|
children: focusedModel.label
|
|
720034
720058
|
}, undefined, false, undefined, this),
|
|
720059
|
+
selectedProvider?.value === "openrouter" && /* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720060
|
+
dimColor: true,
|
|
720061
|
+
color: "subtle",
|
|
720062
|
+
children: [
|
|
720063
|
+
"ID: ",
|
|
720064
|
+
focusedModel.value
|
|
720065
|
+
]
|
|
720066
|
+
}, undefined, true, undefined, this),
|
|
720035
720067
|
/* @__PURE__ */ jsx_dev_runtime336.jsxDEV(ThemedText, {
|
|
720036
720068
|
dimColor: true,
|
|
720037
720069
|
children: focusedModel.description
|
|
@@ -727701,7 +727733,7 @@ function generateHtmlReport(data, insights) {
|
|
|
727701
727733
|
</html>`;
|
|
727702
727734
|
}
|
|
727703
727735
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
727704
|
-
const version3 = typeof MACRO !== "undefined" ? "1.81.
|
|
727736
|
+
const version3 = typeof MACRO !== "undefined" ? "1.81.5" : "unknown";
|
|
727705
727737
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
727706
727738
|
const facets_summary = {
|
|
727707
727739
|
total: facets.size,
|
|
@@ -732014,7 +732046,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
732014
732046
|
init_settings2();
|
|
732015
732047
|
init_slowOperations();
|
|
732016
732048
|
init_uuid();
|
|
732017
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.81.
|
|
732049
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.81.5" : "unknown";
|
|
732018
732050
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
732019
732051
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
732020
732052
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -733229,7 +733261,7 @@ var init_filesystem = __esm(() => {
|
|
|
733229
733261
|
});
|
|
733230
733262
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
733231
733263
|
const nonce = randomBytes24(16).toString("hex");
|
|
733232
|
-
return join243(getURTempDir(), "bundled-skills", "1.81.
|
|
733264
|
+
return join243(getURTempDir(), "bundled-skills", "1.81.5", nonce);
|
|
733233
733265
|
});
|
|
733234
733266
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
733235
733267
|
});
|
|
@@ -739629,7 +739661,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
739629
739661
|
}
|
|
739630
739662
|
function computeFingerprintFromMessages(messages) {
|
|
739631
739663
|
const firstMessageText = extractFirstMessageText(messages);
|
|
739632
|
-
return computeFingerprint(firstMessageText, "1.81.
|
|
739664
|
+
return computeFingerprint(firstMessageText, "1.81.5");
|
|
739633
739665
|
}
|
|
739634
739666
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
739635
739667
|
var init_fingerprint = () => {};
|
|
@@ -741564,7 +741596,7 @@ async function sideQuery(opts) {
|
|
|
741564
741596
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
741565
741597
|
}
|
|
741566
741598
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
741567
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.81.
|
|
741599
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.81.5");
|
|
741568
741600
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
741569
741601
|
const systemBlocks = [
|
|
741570
741602
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -746398,7 +746430,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
746398
746430
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
746399
746431
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
746400
746432
|
betas: getSdkBetas(),
|
|
746401
|
-
ur_version: "1.81.
|
|
746433
|
+
ur_version: "1.81.5",
|
|
746402
746434
|
output_style: outputStyle,
|
|
746403
746435
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
746404
746436
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -760234,7 +760266,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
760234
760266
|
function getSemverPart(version3) {
|
|
760235
760267
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
760236
760268
|
}
|
|
760237
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.81.
|
|
760269
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.81.5") {
|
|
760238
760270
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
|
|
760239
760271
|
if (!updatedVersion) {
|
|
760240
760272
|
return null;
|
|
@@ -760283,7 +760315,7 @@ function AutoUpdater({
|
|
|
760283
760315
|
return;
|
|
760284
760316
|
}
|
|
760285
760317
|
if (false) {}
|
|
760286
|
-
const currentVersion = "1.81.
|
|
760318
|
+
const currentVersion = "1.81.5";
|
|
760287
760319
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
760288
760320
|
let latestVersion = await getLatestVersion(channel);
|
|
760289
760321
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -760512,12 +760544,12 @@ function NativeAutoUpdater({
|
|
|
760512
760544
|
logEvent("tengu_native_auto_updater_start", {});
|
|
760513
760545
|
try {
|
|
760514
760546
|
const maxVersion = await getMaxVersion();
|
|
760515
|
-
if (maxVersion && gt("1.81.
|
|
760547
|
+
if (maxVersion && gt("1.81.5", maxVersion)) {
|
|
760516
760548
|
const msg = await getMaxVersionMessage();
|
|
760517
760549
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
760518
760550
|
}
|
|
760519
760551
|
const result = await installLatest(channel);
|
|
760520
|
-
const currentVersion = "1.81.
|
|
760552
|
+
const currentVersion = "1.81.5";
|
|
760521
760553
|
const latencyMs = Date.now() - startTime;
|
|
760522
760554
|
if (result.lockFailed) {
|
|
760523
760555
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -760654,17 +760686,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
760654
760686
|
const maxVersion = await getMaxVersion();
|
|
760655
760687
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
760656
760688
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
760657
|
-
if (gte("1.81.
|
|
760658
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.81.
|
|
760689
|
+
if (gte("1.81.5", maxVersion)) {
|
|
760690
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.81.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
760659
760691
|
setUpdateAvailable(false);
|
|
760660
760692
|
return;
|
|
760661
760693
|
}
|
|
760662
760694
|
latest = maxVersion;
|
|
760663
760695
|
}
|
|
760664
|
-
const hasUpdate = latest && !gte("1.81.
|
|
760696
|
+
const hasUpdate = latest && !gte("1.81.5", latest) && !shouldSkipVersion(latest);
|
|
760665
760697
|
setUpdateAvailable(!!hasUpdate);
|
|
760666
760698
|
if (hasUpdate) {
|
|
760667
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.81.
|
|
760699
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.81.5"} -> ${latest}`);
|
|
760668
760700
|
}
|
|
760669
760701
|
};
|
|
760670
760702
|
$2[0] = t1;
|
|
@@ -760698,7 +760730,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
760698
760730
|
wrap: "truncate",
|
|
760699
760731
|
children: [
|
|
760700
760732
|
"currentVersion: ",
|
|
760701
|
-
"1.81.
|
|
760733
|
+
"1.81.5"
|
|
760702
760734
|
]
|
|
760703
760735
|
}, undefined, true, undefined, this);
|
|
760704
760736
|
$2[3] = verbose;
|
|
@@ -771551,7 +771583,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
771551
771583
|
project_dir: getOriginalCwd(),
|
|
771552
771584
|
added_dirs: addedDirs
|
|
771553
771585
|
},
|
|
771554
|
-
version: "1.81.
|
|
771586
|
+
version: "1.81.5",
|
|
771555
771587
|
output_style: {
|
|
771556
771588
|
name: outputStyleName
|
|
771557
771589
|
},
|
|
@@ -771686,7 +771718,7 @@ function StatusLineInner({
|
|
|
771686
771718
|
const attention = customStatusError ?? taskAttention;
|
|
771687
771719
|
const terminalSize = React133.useContext(TerminalSizeContext);
|
|
771688
771720
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
771689
|
-
version: "1.81.
|
|
771721
|
+
version: "1.81.5",
|
|
771690
771722
|
providerLabel: providerRuntime.providerLabel,
|
|
771691
771723
|
authMode: providerRuntime.authLabel,
|
|
771692
771724
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -783942,7 +783974,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
783942
783974
|
} catch {}
|
|
783943
783975
|
const data = {
|
|
783944
783976
|
trigger: trigger2,
|
|
783945
|
-
version: "1.81.
|
|
783977
|
+
version: "1.81.5",
|
|
783946
783978
|
platform: process.platform,
|
|
783947
783979
|
transcript,
|
|
783948
783980
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -796311,7 +796343,7 @@ function WelcomeV2() {
|
|
|
796311
796343
|
dimColor: true,
|
|
796312
796344
|
children: [
|
|
796313
796345
|
"v",
|
|
796314
|
-
"1.81.
|
|
796346
|
+
"1.81.5"
|
|
796315
796347
|
]
|
|
796316
796348
|
}, undefined, true, undefined, this)
|
|
796317
796349
|
]
|
|
@@ -797571,7 +797603,7 @@ function completeOnboarding() {
|
|
|
797571
797603
|
saveGlobalConfig((current) => ({
|
|
797572
797604
|
...current,
|
|
797573
797605
|
hasCompletedOnboarding: true,
|
|
797574
|
-
lastOnboardingVersion: "1.81.
|
|
797606
|
+
lastOnboardingVersion: "1.81.5"
|
|
797575
797607
|
}));
|
|
797576
797608
|
}
|
|
797577
797609
|
function showDialog(root2, renderer) {
|
|
@@ -802717,7 +802749,7 @@ function appendToLog(path28, message) {
|
|
|
802717
802749
|
cwd: getFsImplementation().cwd(),
|
|
802718
802750
|
userType: process.env.USER_TYPE,
|
|
802719
802751
|
sessionId: getSessionId(),
|
|
802720
|
-
version: "1.81.
|
|
802752
|
+
version: "1.81.5"
|
|
802721
802753
|
};
|
|
802722
802754
|
getLogWriter(path28).write(messageWithTimestamp);
|
|
802723
802755
|
}
|
|
@@ -806881,8 +806913,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
806881
806913
|
}
|
|
806882
806914
|
async function checkEnvLessBridgeMinVersion() {
|
|
806883
806915
|
const cfg = await getEnvLessBridgeConfig();
|
|
806884
|
-
if (cfg.min_version && lt("1.81.
|
|
806885
|
-
return `Your version of UR (${"1.81.
|
|
806916
|
+
if (cfg.min_version && lt("1.81.5", cfg.min_version)) {
|
|
806917
|
+
return `Your version of UR (${"1.81.5"}) is too old for Remote Control.
|
|
806886
806918
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
806887
806919
|
}
|
|
806888
806920
|
return null;
|
|
@@ -807356,7 +807388,7 @@ async function initBridgeCore(params) {
|
|
|
807356
807388
|
const rawApi = createBridgeApiClient({
|
|
807357
807389
|
baseUrl,
|
|
807358
807390
|
getAccessToken,
|
|
807359
|
-
runnerVersion: "1.81.
|
|
807391
|
+
runnerVersion: "1.81.5",
|
|
807360
807392
|
onDebug: logForDebugging,
|
|
807361
807393
|
onAuth401,
|
|
807362
807394
|
getTrustedDeviceToken
|
|
@@ -816829,7 +816861,7 @@ function getAgUiCapabilities() {
|
|
|
816829
816861
|
name: "UR-Nexus",
|
|
816830
816862
|
type: "ur-nexus",
|
|
816831
816863
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
816832
|
-
version: "1.81.
|
|
816864
|
+
version: "1.81.5",
|
|
816833
816865
|
provider: "UR",
|
|
816834
816866
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
816835
816867
|
},
|
|
@@ -818056,7 +818088,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
818056
818088
|
};
|
|
818057
818089
|
const server2 = new Server({
|
|
818058
818090
|
name: "ur-nexus",
|
|
818059
|
-
version: "1.81.
|
|
818091
|
+
version: "1.81.5"
|
|
818060
818092
|
}, {
|
|
818061
818093
|
capabilities: {
|
|
818062
818094
|
tools: {}
|
|
@@ -819260,7 +819292,7 @@ function thrownResponse(error40) {
|
|
|
819260
819292
|
}
|
|
819261
819293
|
async function createUrMcp2026Runtime(options5) {
|
|
819262
819294
|
const server2 = createMCPServer(options5.cwd, options5.debug === true, options5.verbose === true);
|
|
819263
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.81.
|
|
819295
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.81.5" }, { capabilities: {} });
|
|
819264
819296
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
819265
819297
|
try {
|
|
819266
819298
|
await server2.connect(serverTransport);
|
|
@@ -819271,7 +819303,7 @@ async function createUrMcp2026Runtime(options5) {
|
|
|
819271
819303
|
}
|
|
819272
819304
|
const runtime2 = new Mcp2026Runtime({
|
|
819273
819305
|
cwd: options5.cwd,
|
|
819274
|
-
version: "1.81.
|
|
819306
|
+
version: "1.81.5",
|
|
819275
819307
|
backend: {
|
|
819276
819308
|
listTools: async () => {
|
|
819277
819309
|
const listed = await client2.listTools();
|
|
@@ -822006,7 +822038,7 @@ async function update() {
|
|
|
822006
822038
|
logEvent("tengu_update_check", {});
|
|
822007
822039
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
822008
822040
|
const result = await checkUpgradeStatus({
|
|
822009
|
-
currentVersion: "1.81.
|
|
822041
|
+
currentVersion: "1.81.5",
|
|
822010
822042
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
822011
822043
|
installationType: diagnostic2.installationType,
|
|
822012
822044
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -823334,7 +823366,7 @@ ${customInstructions}` : customInstructions;
|
|
|
823334
823366
|
}
|
|
823335
823367
|
}
|
|
823336
823368
|
logForDiagnosticsNoPII("info", "started", {
|
|
823337
|
-
version: "1.81.
|
|
823369
|
+
version: "1.81.5",
|
|
823338
823370
|
is_native_binary: isInBundledMode()
|
|
823339
823371
|
});
|
|
823340
823372
|
registerCleanup(async () => {
|
|
@@ -824121,7 +824153,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
824121
824153
|
pendingHookMessages
|
|
824122
824154
|
}, renderAndRun);
|
|
824123
824155
|
}
|
|
824124
|
-
}).version("1.81.
|
|
824156
|
+
}).version("1.81.5 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
824125
824157
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
824126
824158
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
824127
824159
|
if (canUserConfigureAdvisor()) {
|
|
@@ -825248,7 +825280,7 @@ if (false) {}
|
|
|
825248
825280
|
async function main2() {
|
|
825249
825281
|
const args = process.argv.slice(2);
|
|
825250
825282
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
825251
|
-
console.log(`${"1.81.
|
|
825283
|
+
console.log(`${"1.81.5"} (UR-Nexus)`);
|
|
825252
825284
|
return;
|
|
825253
825285
|
}
|
|
825254
825286
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|
package/docs/CONFIGURATION.md
CHANGED
|
@@ -146,7 +146,9 @@ request; Ollama is only used when `ollama` is the selected provider.
|
|
|
146
146
|
In the model step, Up/Down browses, Left/Right changes the focused model's
|
|
147
147
|
supported effort level, Enter confirms, Ctrl+R refreshes the catalog, and Esc
|
|
148
148
|
returns to providers. OpenRouter entries show pricing tier, context size,
|
|
149
|
-
tool/reasoning capability, and
|
|
149
|
+
tool/reasoning capability, compact names, and the exact ID for the focused
|
|
150
|
+
entry. Its catalog is fetched fresh whenever opened; a failed refresh never
|
|
151
|
+
silently displays cached entries. API-provider secret
|
|
150
152
|
entry stays on one masked row and stores the value through the keychain flow.
|
|
151
153
|
|
|
152
154
|
The same provider-first picker is mandatory on the first interactive run in a
|
package/docs/VALIDATION.md
CHANGED
package/docs/providers.md
CHANGED
|
@@ -167,7 +167,9 @@ The provider-first `/model` picker supports the same control directly: use
|
|
|
167
167
|
Left/Right to move through the effort levels advertised by the focused model,
|
|
168
168
|
then Enter to apply the model and effort together. OpenRouter's live catalog
|
|
169
169
|
shows pricing tier, context size, tool capability, reasoning capability, and
|
|
170
|
-
|
|
170
|
+
the exact model ID for the focused entry. Opening the OpenRouter catalog always
|
|
171
|
+
fetches the current `/models` endpoint and never substitutes a cached list when
|
|
172
|
+
that refresh fails. API-key entry for
|
|
171
173
|
OpenAI, Claude, Gemini, and OpenRouter is a single aligned masked row; the key
|
|
172
174
|
is stored in the OS keychain flow and is never written to settings.
|
|
173
175
|
|
|
@@ -229,8 +231,11 @@ You see all configured providers with:
|
|
|
229
231
|
After selecting a provider:
|
|
230
232
|
- Only models from that provider are shown
|
|
231
233
|
- Each model shows its concise capabilities; OpenRouter includes pricing,
|
|
232
|
-
context size, tool support, and reasoning support
|
|
234
|
+
context size, tool support, and reasoning support. Its list uses compact
|
|
235
|
+
model names; focus an entry to see the exact provider/model ID
|
|
233
236
|
- Model source is displayed: `live` (dynamic discovery), `cache` (fallback), or `static` (predefined)
|
|
237
|
+
- OpenRouter is fresh-only in this picker: every opening fetches `/models`, and
|
|
238
|
+
a failed refresh is reported instead of showing stale cached entries
|
|
234
239
|
- Left/Right changes effort for the focused model; Up/Down browses and Enter confirms
|
|
235
240
|
- Press Esc to go back and change provider
|
|
236
241
|
|
|
@@ -290,7 +295,8 @@ ur config set provider anthropic-api
|
|
|
290
295
|
|
|
291
296
|
| Provider type | Model discovery | Source label |
|
|
292
297
|
| --- | --- | --- |
|
|
293
|
-
| API providers (openai-api, anthropic-api, gemini-api
|
|
298
|
+
| API providers (openai-api, anthropic-api, gemini-api) | Live discovery from the provider's `/models` endpoint using your connected key (curated fallback until connected) | live |
|
|
299
|
+
| OpenRouter | Fresh `/models` discovery every time its picker opens; no cached-list fallback in the picker | live |
|
|
294
300
|
| Local/server providers (ollama, lmstudio, llama.cpp, vllm) | Dynamic discovery from the selected provider endpoint | live |
|
|
295
301
|
| OpenAI-compatible | Dynamic discovery from configured endpoint | live |
|
|
296
302
|
| Subscription CLIs (codex-cli, claude-code-cli, gemini-cli, antigravity-cli) | Curated list (the official CLIs expose no models API); first-class in `/model`, dispatched via the official CLI. External CLI behavior depends on the vendor CLI. Log in with `ur auth <provider>` | static |
|
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.81.
|
|
48
|
+
<p class="eyebrow">Version 1.81.5</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.81.
|
|
5
|
+
"version": "1.81.5",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED