ur-agent 1.16.0 → 1.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
### Added
|
|
6
6
|
- **Network Ollama discovery.** `ur --discover-ollama` scans active local subnets
|
|
7
7
|
for Ollama servers on port 11434, verifies each via `/api/tags`, and shows an
|
|
8
|
-
interactive host picker. The chosen host is
|
|
9
|
-
`
|
|
8
|
+
interactive host picker. The chosen host is used for that session only; plain
|
|
9
|
+
`ur` continues to default to `localhost:11434` unless `ollama.host` is set
|
|
10
|
+
explicitly.
|
|
10
11
|
- **`--ollama-host <url>` CLI flag.** Point UR at a specific Ollama server for a
|
|
11
12
|
single session without writing settings.
|
|
12
13
|
- **`ollama` settings block** in `~/.ur/settings.json` with `host` and
|
package/dist/cli.js
CHANGED
|
@@ -16939,7 +16939,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
16939
16939
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
16940
16940
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
16941
16941
|
}
|
|
16942
|
-
var urVersion = "1.16.
|
|
16942
|
+
var urVersion = "1.16.1", coverage, priorityRoadmap;
|
|
16943
16943
|
var init_trends = __esm(() => {
|
|
16944
16944
|
coverage = [
|
|
16945
16945
|
{
|
|
@@ -53397,7 +53397,7 @@ function normalizeOllamaBaseUrl(value) {
|
|
|
53397
53397
|
const withScheme = /^https?:\/\//.test(base2) ? base2 : `http://${base2}`;
|
|
53398
53398
|
return withScheme.replace(/\/api\/?$/, "").replace(/\/$/, "");
|
|
53399
53399
|
}
|
|
53400
|
-
function getOllamaBaseUrl(env3 = process.env) {
|
|
53400
|
+
function getOllamaBaseUrl(env3 = process.env, settings) {
|
|
53401
53401
|
if (sessionOverride) {
|
|
53402
53402
|
return normalizeOllamaBaseUrl(sessionOverride);
|
|
53403
53403
|
}
|
|
@@ -53405,7 +53405,7 @@ function getOllamaBaseUrl(env3 = process.env) {
|
|
|
53405
53405
|
if (envHost) {
|
|
53406
53406
|
return normalizeOllamaBaseUrl(envHost);
|
|
53407
53407
|
}
|
|
53408
|
-
const settingsHost = getSettingsForSource("userSettings")?.ollama?.host;
|
|
53408
|
+
const settingsHost = settings === undefined ? getSettingsForSource("userSettings")?.ollama?.host : settings.ollama?.host;
|
|
53409
53409
|
if (settingsHost) {
|
|
53410
53410
|
return normalizeOllamaBaseUrl(settingsHost);
|
|
53411
53411
|
}
|
|
@@ -71196,7 +71196,7 @@ var init_auth = __esm(() => {
|
|
|
71196
71196
|
|
|
71197
71197
|
// src/utils/userAgent.ts
|
|
71198
71198
|
function getURCodeUserAgent() {
|
|
71199
|
-
return `ur/${"1.16.
|
|
71199
|
+
return `ur/${"1.16.1"}`;
|
|
71200
71200
|
}
|
|
71201
71201
|
|
|
71202
71202
|
// src/utils/workloadContext.ts
|
|
@@ -71218,7 +71218,7 @@ function getUserAgent() {
|
|
|
71218
71218
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
71219
71219
|
const workload = getWorkload();
|
|
71220
71220
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
71221
|
-
return `ur-cli/${"1.16.
|
|
71221
|
+
return `ur-cli/${"1.16.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
71222
71222
|
}
|
|
71223
71223
|
function getMCPUserAgent() {
|
|
71224
71224
|
const parts = [];
|
|
@@ -71232,7 +71232,7 @@ function getMCPUserAgent() {
|
|
|
71232
71232
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
71233
71233
|
}
|
|
71234
71234
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
71235
|
-
return `ur/${"1.16.
|
|
71235
|
+
return `ur/${"1.16.1"}${suffix}`;
|
|
71236
71236
|
}
|
|
71237
71237
|
function getWebFetchUserAgent() {
|
|
71238
71238
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -71370,7 +71370,7 @@ var init_user = __esm(() => {
|
|
|
71370
71370
|
deviceId,
|
|
71371
71371
|
sessionId: getSessionId(),
|
|
71372
71372
|
email: getEmail(),
|
|
71373
|
-
appVersion: "1.16.
|
|
71373
|
+
appVersion: "1.16.1",
|
|
71374
71374
|
platform: getHostPlatformForAnalytics(),
|
|
71375
71375
|
organizationUuid,
|
|
71376
71376
|
accountUuid,
|
|
@@ -77147,7 +77147,7 @@ var init_metadata = __esm(() => {
|
|
|
77147
77147
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
77148
77148
|
WHITESPACE_REGEX = /\s+/;
|
|
77149
77149
|
getVersionBase = memoize_default(() => {
|
|
77150
|
-
const match = "1.16.
|
|
77150
|
+
const match = "1.16.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
77151
77151
|
return match ? match[0] : undefined;
|
|
77152
77152
|
});
|
|
77153
77153
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -77187,7 +77187,7 @@ var init_metadata = __esm(() => {
|
|
|
77187
77187
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
77188
77188
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
77189
77189
|
isURAiAuth: isURAISubscriber2(),
|
|
77190
|
-
version: "1.16.
|
|
77190
|
+
version: "1.16.1",
|
|
77191
77191
|
versionBase: getVersionBase(),
|
|
77192
77192
|
buildTime: "",
|
|
77193
77193
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -77857,7 +77857,7 @@ function initialize1PEventLogging() {
|
|
|
77857
77857
|
const platform2 = getPlatform();
|
|
77858
77858
|
const attributes = {
|
|
77859
77859
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
77860
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.16.
|
|
77860
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.16.1"
|
|
77861
77861
|
};
|
|
77862
77862
|
if (platform2 === "wsl") {
|
|
77863
77863
|
const wslVersion = getWslVersion();
|
|
@@ -77884,7 +77884,7 @@ function initialize1PEventLogging() {
|
|
|
77884
77884
|
})
|
|
77885
77885
|
]
|
|
77886
77886
|
});
|
|
77887
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.16.
|
|
77887
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.16.1");
|
|
77888
77888
|
}
|
|
77889
77889
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
77890
77890
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -79752,7 +79752,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
79752
79752
|
if (!isAttributionHeaderEnabled()) {
|
|
79753
79753
|
return "";
|
|
79754
79754
|
}
|
|
79755
|
-
const version2 = `${"1.16.
|
|
79755
|
+
const version2 = `${"1.16.1"}.${fingerprint}`;
|
|
79756
79756
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
79757
79757
|
const cch = "";
|
|
79758
79758
|
const workload = getWorkload();
|
|
@@ -186381,7 +186381,7 @@ function getTelemetryAttributes() {
|
|
|
186381
186381
|
attributes["session.id"] = sessionId;
|
|
186382
186382
|
}
|
|
186383
186383
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
186384
|
-
attributes["app.version"] = "1.16.
|
|
186384
|
+
attributes["app.version"] = "1.16.1";
|
|
186385
186385
|
}
|
|
186386
186386
|
const oauthAccount = getOauthAccountInfo();
|
|
186387
186387
|
if (oauthAccount) {
|
|
@@ -222170,7 +222170,7 @@ function getInstallationEnv() {
|
|
|
222170
222170
|
return;
|
|
222171
222171
|
}
|
|
222172
222172
|
function getURCodeVersion() {
|
|
222173
|
-
return "1.16.
|
|
222173
|
+
return "1.16.1";
|
|
222174
222174
|
}
|
|
222175
222175
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
222176
222176
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -224898,7 +224898,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
224898
224898
|
const client2 = new Client({
|
|
224899
224899
|
name: "ur",
|
|
224900
224900
|
title: "UR",
|
|
224901
|
-
version: "1.16.
|
|
224901
|
+
version: "1.16.1",
|
|
224902
224902
|
description: "URHQ's agentic coding tool",
|
|
224903
224903
|
websiteUrl: PRODUCT_URL
|
|
224904
224904
|
}, {
|
|
@@ -225252,7 +225252,7 @@ var init_client5 = __esm(() => {
|
|
|
225252
225252
|
const client2 = new Client({
|
|
225253
225253
|
name: "ur",
|
|
225254
225254
|
title: "UR",
|
|
225255
|
-
version: "1.16.
|
|
225255
|
+
version: "1.16.1",
|
|
225256
225256
|
description: "URHQ's agentic coding tool",
|
|
225257
225257
|
websiteUrl: PRODUCT_URL
|
|
225258
225258
|
}, {
|
|
@@ -235065,9 +235065,9 @@ async function assertMinVersion() {
|
|
|
235065
235065
|
if (false) {}
|
|
235066
235066
|
try {
|
|
235067
235067
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
235068
|
-
if (versionConfig.minVersion && lt("1.16.
|
|
235068
|
+
if (versionConfig.minVersion && lt("1.16.1", versionConfig.minVersion)) {
|
|
235069
235069
|
console.error(`
|
|
235070
|
-
It looks like your version of UR (${"1.16.
|
|
235070
|
+
It looks like your version of UR (${"1.16.1"}) needs an update.
|
|
235071
235071
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
235072
235072
|
|
|
235073
235073
|
To update, please run:
|
|
@@ -235283,7 +235283,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
235283
235283
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
235284
235284
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
235285
235285
|
pid: process.pid,
|
|
235286
|
-
currentVersion: "1.16.
|
|
235286
|
+
currentVersion: "1.16.1"
|
|
235287
235287
|
});
|
|
235288
235288
|
return "in_progress";
|
|
235289
235289
|
}
|
|
@@ -235292,7 +235292,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
235292
235292
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
235293
235293
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
235294
235294
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
235295
|
-
currentVersion: "1.16.
|
|
235295
|
+
currentVersion: "1.16.1"
|
|
235296
235296
|
});
|
|
235297
235297
|
console.error(`
|
|
235298
235298
|
Error: Windows NPM detected in WSL
|
|
@@ -235827,7 +235827,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
235827
235827
|
}
|
|
235828
235828
|
async function getDoctorDiagnostic() {
|
|
235829
235829
|
const installationType = await getCurrentInstallationType();
|
|
235830
|
-
const version2 = typeof MACRO !== "undefined" ? "1.16.
|
|
235830
|
+
const version2 = typeof MACRO !== "undefined" ? "1.16.1" : "unknown";
|
|
235831
235831
|
const installationPath = await getInstallationPath();
|
|
235832
235832
|
const invokedBinary = getInvokedBinary();
|
|
235833
235833
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -236762,8 +236762,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
236762
236762
|
const maxVersion = await getMaxVersion();
|
|
236763
236763
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
236764
236764
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
236765
|
-
if (gte("1.16.
|
|
236766
|
-
logForDebugging(`Native installer: current version ${"1.16.
|
|
236765
|
+
if (gte("1.16.1", maxVersion)) {
|
|
236766
|
+
logForDebugging(`Native installer: current version ${"1.16.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
236767
236767
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
236768
236768
|
latency_ms: Date.now() - startTime,
|
|
236769
236769
|
max_version: maxVersion,
|
|
@@ -236774,7 +236774,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
236774
236774
|
version2 = maxVersion;
|
|
236775
236775
|
}
|
|
236776
236776
|
}
|
|
236777
|
-
if (!forceReinstall && version2 === "1.16.
|
|
236777
|
+
if (!forceReinstall && version2 === "1.16.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
236778
236778
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
236779
236779
|
logEvent("tengu_native_update_complete", {
|
|
236780
236780
|
latency_ms: Date.now() - startTime,
|
|
@@ -331695,7 +331695,7 @@ function Feedback({
|
|
|
331695
331695
|
platform: env2.platform,
|
|
331696
331696
|
gitRepo: envInfo.isGit,
|
|
331697
331697
|
terminal: env2.terminal,
|
|
331698
|
-
version: "1.16.
|
|
331698
|
+
version: "1.16.1",
|
|
331699
331699
|
transcript: normalizeMessagesForAPI(messages),
|
|
331700
331700
|
errors: sanitizedErrors,
|
|
331701
331701
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -331887,7 +331887,7 @@ function Feedback({
|
|
|
331887
331887
|
", ",
|
|
331888
331888
|
env2.terminal,
|
|
331889
331889
|
", v",
|
|
331890
|
-
"1.16.
|
|
331890
|
+
"1.16.1"
|
|
331891
331891
|
]
|
|
331892
331892
|
}, undefined, true, undefined, this)
|
|
331893
331893
|
]
|
|
@@ -331993,7 +331993,7 @@ ${sanitizedDescription}
|
|
|
331993
331993
|
` + `**Environment Info**
|
|
331994
331994
|
` + `- Platform: ${env2.platform}
|
|
331995
331995
|
` + `- Terminal: ${env2.terminal}
|
|
331996
|
-
` + `- Version: ${"1.16.
|
|
331996
|
+
` + `- Version: ${"1.16.1"}
|
|
331997
331997
|
` + `- Feedback ID: ${feedbackId}
|
|
331998
331998
|
` + `
|
|
331999
331999
|
**Errors**
|
|
@@ -335103,7 +335103,7 @@ function buildPrimarySection() {
|
|
|
335103
335103
|
}, undefined, false, undefined, this);
|
|
335104
335104
|
return [{
|
|
335105
335105
|
label: "Version",
|
|
335106
|
-
value: "1.16.
|
|
335106
|
+
value: "1.16.1"
|
|
335107
335107
|
}, {
|
|
335108
335108
|
label: "Session name",
|
|
335109
335109
|
value: nameValue
|
|
@@ -338381,7 +338381,7 @@ function Config({
|
|
|
338381
338381
|
}
|
|
338382
338382
|
}, undefined, false, undefined, this)
|
|
338383
338383
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
|
|
338384
|
-
currentVersion: "1.16.
|
|
338384
|
+
currentVersion: "1.16.1",
|
|
338385
338385
|
onChoice: (choice) => {
|
|
338386
338386
|
setShowSubmenu(null);
|
|
338387
338387
|
setTabsHidden(false);
|
|
@@ -338393,7 +338393,7 @@ function Config({
|
|
|
338393
338393
|
autoUpdatesChannel: "stable"
|
|
338394
338394
|
};
|
|
338395
338395
|
if (choice === "stay") {
|
|
338396
|
-
newSettings.minimumVersion = "1.16.
|
|
338396
|
+
newSettings.minimumVersion = "1.16.1";
|
|
338397
338397
|
}
|
|
338398
338398
|
updateSettingsForSource("userSettings", newSettings);
|
|
338399
338399
|
setSettingsData((prev_27) => ({
|
|
@@ -346463,7 +346463,7 @@ function HelpV2(t0) {
|
|
|
346463
346463
|
let t6;
|
|
346464
346464
|
if ($3[31] !== tabs) {
|
|
346465
346465
|
t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
|
|
346466
|
-
title: `UR v${"1.16.
|
|
346466
|
+
title: `UR v${"1.16.1"}`,
|
|
346467
346467
|
color: "professionalBlue",
|
|
346468
346468
|
defaultTab: "general",
|
|
346469
346469
|
children: tabs
|
|
@@ -366427,7 +366427,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
366427
366427
|
return [];
|
|
366428
366428
|
}
|
|
366429
366429
|
}
|
|
366430
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.16.
|
|
366430
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.16.1") {
|
|
366431
366431
|
if (process.env.USER_TYPE === "ant") {
|
|
366432
366432
|
const changelog = "";
|
|
366433
366433
|
if (changelog) {
|
|
@@ -366454,7 +366454,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.16.0")
|
|
|
366454
366454
|
releaseNotes
|
|
366455
366455
|
};
|
|
366456
366456
|
}
|
|
366457
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.16.
|
|
366457
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.16.1") {
|
|
366458
366458
|
if (process.env.USER_TYPE === "ant") {
|
|
366459
366459
|
const changelog = "";
|
|
366460
366460
|
if (changelog) {
|
|
@@ -367624,7 +367624,7 @@ function getRecentActivitySync() {
|
|
|
367624
367624
|
return cachedActivity;
|
|
367625
367625
|
}
|
|
367626
367626
|
function getLogoDisplayData() {
|
|
367627
|
-
const version2 = process.env.DEMO_VERSION ?? "1.16.
|
|
367627
|
+
const version2 = process.env.DEMO_VERSION ?? "1.16.1";
|
|
367628
367628
|
const serverUrl = getDirectConnectServerUrl();
|
|
367629
367629
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
367630
367630
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -368413,7 +368413,7 @@ function LogoV2() {
|
|
|
368413
368413
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
368414
368414
|
t2 = () => {
|
|
368415
368415
|
const currentConfig = getGlobalConfig();
|
|
368416
|
-
if (currentConfig.lastReleaseNotesSeen === "1.16.
|
|
368416
|
+
if (currentConfig.lastReleaseNotesSeen === "1.16.1") {
|
|
368417
368417
|
return;
|
|
368418
368418
|
}
|
|
368419
368419
|
saveGlobalConfig(_temp326);
|
|
@@ -369098,12 +369098,12 @@ function LogoV2() {
|
|
|
369098
369098
|
return t41;
|
|
369099
369099
|
}
|
|
369100
369100
|
function _temp326(current) {
|
|
369101
|
-
if (current.lastReleaseNotesSeen === "1.16.
|
|
369101
|
+
if (current.lastReleaseNotesSeen === "1.16.1") {
|
|
369102
369102
|
return current;
|
|
369103
369103
|
}
|
|
369104
369104
|
return {
|
|
369105
369105
|
...current,
|
|
369106
|
-
lastReleaseNotesSeen: "1.16.
|
|
369106
|
+
lastReleaseNotesSeen: "1.16.1"
|
|
369107
369107
|
};
|
|
369108
369108
|
}
|
|
369109
369109
|
function _temp243(s_0) {
|
|
@@ -409625,7 +409625,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
409625
409625
|
smapsRollup,
|
|
409626
409626
|
platform: process.platform,
|
|
409627
409627
|
nodeVersion: process.version,
|
|
409628
|
-
ccVersion: "1.16.
|
|
409628
|
+
ccVersion: "1.16.1"
|
|
409629
409629
|
};
|
|
409630
409630
|
}
|
|
409631
409631
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -410211,7 +410211,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
410211
410211
|
var call126 = async () => {
|
|
410212
410212
|
return {
|
|
410213
410213
|
type: "text",
|
|
410214
|
-
value: "1.16.
|
|
410214
|
+
value: "1.16.1"
|
|
410215
410215
|
};
|
|
410216
410216
|
}, version2, version_default;
|
|
410217
410217
|
var init_version = __esm(() => {
|
|
@@ -419266,7 +419266,7 @@ function generateHtmlReport(data, insights) {
|
|
|
419266
419266
|
</html>`;
|
|
419267
419267
|
}
|
|
419268
419268
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
419269
|
-
const version3 = typeof MACRO !== "undefined" ? "1.16.
|
|
419269
|
+
const version3 = typeof MACRO !== "undefined" ? "1.16.1" : "unknown";
|
|
419270
419270
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
419271
419271
|
const facets_summary = {
|
|
419272
419272
|
total: facets.size,
|
|
@@ -423519,7 +423519,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
423519
423519
|
init_settings2();
|
|
423520
423520
|
init_slowOperations();
|
|
423521
423521
|
init_uuid();
|
|
423522
|
-
VERSION5 = typeof MACRO !== "undefined" ? "1.16.
|
|
423522
|
+
VERSION5 = typeof MACRO !== "undefined" ? "1.16.1" : "unknown";
|
|
423523
423523
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
423524
423524
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
423525
423525
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -424724,7 +424724,7 @@ var init_filesystem = __esm(() => {
|
|
|
424724
424724
|
});
|
|
424725
424725
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
424726
424726
|
const nonce = randomBytes18(16).toString("hex");
|
|
424727
|
-
return join178(getURTempDir(), "bundled-skills", "1.16.
|
|
424727
|
+
return join178(getURTempDir(), "bundled-skills", "1.16.1", nonce);
|
|
424728
424728
|
});
|
|
424729
424729
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
424730
424730
|
});
|
|
@@ -430755,7 +430755,7 @@ function computeFingerprint(messageText, version3) {
|
|
|
430755
430755
|
}
|
|
430756
430756
|
function computeFingerprintFromMessages(messages) {
|
|
430757
430757
|
const firstMessageText = extractFirstMessageText(messages);
|
|
430758
|
-
return computeFingerprint(firstMessageText, "1.16.
|
|
430758
|
+
return computeFingerprint(firstMessageText, "1.16.1");
|
|
430759
430759
|
}
|
|
430760
430760
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
430761
430761
|
var init_fingerprint = () => {};
|
|
@@ -432621,7 +432621,7 @@ async function sideQuery(opts) {
|
|
|
432621
432621
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
432622
432622
|
}
|
|
432623
432623
|
const messageText = extractFirstUserMessageText(messages);
|
|
432624
|
-
const fingerprint = computeFingerprint(messageText, "1.16.
|
|
432624
|
+
const fingerprint = computeFingerprint(messageText, "1.16.1");
|
|
432625
432625
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
432626
432626
|
const systemBlocks = [
|
|
432627
432627
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -437358,7 +437358,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
437358
437358
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
437359
437359
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
437360
437360
|
betas: getSdkBetas(),
|
|
437361
|
-
ur_version: "1.16.
|
|
437361
|
+
ur_version: "1.16.1",
|
|
437362
437362
|
output_style: outputStyle2,
|
|
437363
437363
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
437364
437364
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
|
|
@@ -451986,7 +451986,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
451986
451986
|
function getSemverPart(version3) {
|
|
451987
451987
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
451988
451988
|
}
|
|
451989
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.16.
|
|
451989
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.16.1") {
|
|
451990
451990
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react224.useState(() => getSemverPart(initialVersion));
|
|
451991
451991
|
if (!updatedVersion) {
|
|
451992
451992
|
return null;
|
|
@@ -452035,7 +452035,7 @@ function AutoUpdater({
|
|
|
452035
452035
|
return;
|
|
452036
452036
|
}
|
|
452037
452037
|
if (false) {}
|
|
452038
|
-
const currentVersion = "1.16.
|
|
452038
|
+
const currentVersion = "1.16.1";
|
|
452039
452039
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
452040
452040
|
let latestVersion = await getLatestVersion(channel);
|
|
452041
452041
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -452264,12 +452264,12 @@ function NativeAutoUpdater({
|
|
|
452264
452264
|
logEvent("tengu_native_auto_updater_start", {});
|
|
452265
452265
|
try {
|
|
452266
452266
|
const maxVersion = await getMaxVersion();
|
|
452267
|
-
if (maxVersion && gt("1.16.
|
|
452267
|
+
if (maxVersion && gt("1.16.1", maxVersion)) {
|
|
452268
452268
|
const msg = await getMaxVersionMessage();
|
|
452269
452269
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
452270
452270
|
}
|
|
452271
452271
|
const result = await installLatest(channel);
|
|
452272
|
-
const currentVersion = "1.16.
|
|
452272
|
+
const currentVersion = "1.16.1";
|
|
452273
452273
|
const latencyMs = Date.now() - startTime;
|
|
452274
452274
|
if (result.lockFailed) {
|
|
452275
452275
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -452406,17 +452406,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
452406
452406
|
const maxVersion = await getMaxVersion();
|
|
452407
452407
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
452408
452408
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
452409
|
-
if (gte("1.16.
|
|
452410
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.16.
|
|
452409
|
+
if (gte("1.16.1", maxVersion)) {
|
|
452410
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.16.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
452411
452411
|
setUpdateAvailable(false);
|
|
452412
452412
|
return;
|
|
452413
452413
|
}
|
|
452414
452414
|
latest = maxVersion;
|
|
452415
452415
|
}
|
|
452416
|
-
const hasUpdate = latest && !gte("1.16.
|
|
452416
|
+
const hasUpdate = latest && !gte("1.16.1", latest) && !shouldSkipVersion(latest);
|
|
452417
452417
|
setUpdateAvailable(!!hasUpdate);
|
|
452418
452418
|
if (hasUpdate) {
|
|
452419
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.16.
|
|
452419
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.16.1"} -> ${latest}`);
|
|
452420
452420
|
}
|
|
452421
452421
|
};
|
|
452422
452422
|
$3[0] = t1;
|
|
@@ -452450,7 +452450,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
452450
452450
|
wrap: "truncate",
|
|
452451
452451
|
children: [
|
|
452452
452452
|
"currentVersion: ",
|
|
452453
|
-
"1.16.
|
|
452453
|
+
"1.16.1"
|
|
452454
452454
|
]
|
|
452455
452455
|
}, undefined, true, undefined, this);
|
|
452456
452456
|
$3[3] = verbose;
|
|
@@ -464812,7 +464812,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
464812
464812
|
project_dir: getOriginalCwd(),
|
|
464813
464813
|
added_dirs: addedDirs
|
|
464814
464814
|
},
|
|
464815
|
-
version: "1.16.
|
|
464815
|
+
version: "1.16.1",
|
|
464816
464816
|
output_style: {
|
|
464817
464817
|
name: outputStyleName
|
|
464818
464818
|
},
|
|
@@ -476320,7 +476320,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
476320
476320
|
} catch {}
|
|
476321
476321
|
const data = {
|
|
476322
476322
|
trigger: trigger2,
|
|
476323
|
-
version: "1.16.
|
|
476323
|
+
version: "1.16.1",
|
|
476324
476324
|
platform: process.platform,
|
|
476325
476325
|
transcript,
|
|
476326
476326
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -488229,7 +488229,7 @@ function WelcomeV2() {
|
|
|
488229
488229
|
dimColor: true,
|
|
488230
488230
|
children: [
|
|
488231
488231
|
"v",
|
|
488232
|
-
"1.16.
|
|
488232
|
+
"1.16.1"
|
|
488233
488233
|
]
|
|
488234
488234
|
}, undefined, true, undefined, this)
|
|
488235
488235
|
]
|
|
@@ -489489,7 +489489,7 @@ function completeOnboarding() {
|
|
|
489489
489489
|
saveGlobalConfig((current) => ({
|
|
489490
489490
|
...current,
|
|
489491
489491
|
hasCompletedOnboarding: true,
|
|
489492
|
-
lastOnboardingVersion: "1.16.
|
|
489492
|
+
lastOnboardingVersion: "1.16.1"
|
|
489493
489493
|
}));
|
|
489494
489494
|
}
|
|
489495
489495
|
function showDialog(root2, renderer) {
|
|
@@ -494137,7 +494137,7 @@ function appendToLog(path24, message) {
|
|
|
494137
494137
|
cwd: getFsImplementation().cwd(),
|
|
494138
494138
|
userType: process.env.USER_TYPE,
|
|
494139
494139
|
sessionId: getSessionId(),
|
|
494140
|
-
version: "1.16.
|
|
494140
|
+
version: "1.16.1"
|
|
494141
494141
|
};
|
|
494142
494142
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
494143
494143
|
}
|
|
@@ -498266,8 +498266,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
498266
498266
|
}
|
|
498267
498267
|
async function checkEnvLessBridgeMinVersion() {
|
|
498268
498268
|
const cfg = await getEnvLessBridgeConfig();
|
|
498269
|
-
if (cfg.min_version && lt("1.16.
|
|
498270
|
-
return `Your version of UR (${"1.16.
|
|
498269
|
+
if (cfg.min_version && lt("1.16.1", cfg.min_version)) {
|
|
498270
|
+
return `Your version of UR (${"1.16.1"}) is too old for Remote Control.
|
|
498271
498271
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
498272
498272
|
}
|
|
498273
498273
|
return null;
|
|
@@ -498741,7 +498741,7 @@ async function initBridgeCore(params) {
|
|
|
498741
498741
|
const rawApi = createBridgeApiClient({
|
|
498742
498742
|
baseUrl,
|
|
498743
498743
|
getAccessToken,
|
|
498744
|
-
runnerVersion: "1.16.
|
|
498744
|
+
runnerVersion: "1.16.1",
|
|
498745
498745
|
onDebug: logForDebugging,
|
|
498746
498746
|
onAuth401,
|
|
498747
498747
|
getTrustedDeviceToken
|
|
@@ -504406,7 +504406,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
|
|
|
504406
504406
|
setCwd(cwd3);
|
|
504407
504407
|
const server = new Server({
|
|
504408
504408
|
name: "ur/tengu",
|
|
504409
|
-
version: "1.16.
|
|
504409
|
+
version: "1.16.1"
|
|
504410
504410
|
}, {
|
|
504411
504411
|
capabilities: {
|
|
504412
504412
|
tools: {}
|
|
@@ -506017,7 +506017,7 @@ __export(exports_update, {
|
|
|
506017
506017
|
});
|
|
506018
506018
|
async function update() {
|
|
506019
506019
|
logEvent("tengu_update_check", {});
|
|
506020
|
-
writeToStdout(`Current version: ${"1.16.
|
|
506020
|
+
writeToStdout(`Current version: ${"1.16.1"}
|
|
506021
506021
|
`);
|
|
506022
506022
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
506023
506023
|
writeToStdout(`Checking for updates to ${channel} version...
|
|
@@ -506092,8 +506092,8 @@ async function update() {
|
|
|
506092
506092
|
writeToStdout(`UR is managed by Homebrew.
|
|
506093
506093
|
`);
|
|
506094
506094
|
const latest = await getLatestVersion(channel);
|
|
506095
|
-
if (latest && !gte("1.16.
|
|
506096
|
-
writeToStdout(`${formatUpdateAvailableMessage("1.16.
|
|
506095
|
+
if (latest && !gte("1.16.1", latest)) {
|
|
506096
|
+
writeToStdout(`${formatUpdateAvailableMessage("1.16.1", latest)}
|
|
506097
506097
|
`);
|
|
506098
506098
|
writeToStdout(`
|
|
506099
506099
|
`);
|
|
@@ -506109,8 +506109,8 @@ async function update() {
|
|
|
506109
506109
|
writeToStdout(`UR is managed by winget.
|
|
506110
506110
|
`);
|
|
506111
506111
|
const latest = await getLatestVersion(channel);
|
|
506112
|
-
if (latest && !gte("1.16.
|
|
506113
|
-
writeToStdout(`${formatUpdateAvailableMessage("1.16.
|
|
506112
|
+
if (latest && !gte("1.16.1", latest)) {
|
|
506113
|
+
writeToStdout(`${formatUpdateAvailableMessage("1.16.1", latest)}
|
|
506114
506114
|
`);
|
|
506115
506115
|
writeToStdout(`
|
|
506116
506116
|
`);
|
|
@@ -506126,8 +506126,8 @@ async function update() {
|
|
|
506126
506126
|
writeToStdout(`UR is managed by apk.
|
|
506127
506127
|
`);
|
|
506128
506128
|
const latest = await getLatestVersion(channel);
|
|
506129
|
-
if (latest && !gte("1.16.
|
|
506130
|
-
writeToStdout(`${formatUpdateAvailableMessage("1.16.
|
|
506129
|
+
if (latest && !gte("1.16.1", latest)) {
|
|
506130
|
+
writeToStdout(`${formatUpdateAvailableMessage("1.16.1", latest)}
|
|
506131
506131
|
`);
|
|
506132
506132
|
writeToStdout(`
|
|
506133
506133
|
`);
|
|
@@ -506192,11 +506192,11 @@ async function update() {
|
|
|
506192
506192
|
`);
|
|
506193
506193
|
await gracefulShutdown(1);
|
|
506194
506194
|
}
|
|
506195
|
-
if (result.latestVersion === "1.16.
|
|
506196
|
-
writeToStdout(source_default.green(`UR is up to date (${"1.16.
|
|
506195
|
+
if (result.latestVersion === "1.16.1") {
|
|
506196
|
+
writeToStdout(source_default.green(`UR is up to date (${"1.16.1"})`) + `
|
|
506197
506197
|
`);
|
|
506198
506198
|
} else {
|
|
506199
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.16.
|
|
506199
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.16.1"} to version ${result.latestVersion}`) + `
|
|
506200
506200
|
`);
|
|
506201
506201
|
await regenerateCompletionCache();
|
|
506202
506202
|
}
|
|
@@ -506256,12 +506256,12 @@ async function update() {
|
|
|
506256
506256
|
`);
|
|
506257
506257
|
await gracefulShutdown(1);
|
|
506258
506258
|
}
|
|
506259
|
-
if (latestVersion === "1.16.
|
|
506260
|
-
writeToStdout(source_default.green(`UR is up to date (${"1.16.
|
|
506259
|
+
if (latestVersion === "1.16.1") {
|
|
506260
|
+
writeToStdout(source_default.green(`UR is up to date (${"1.16.1"})`) + `
|
|
506261
506261
|
`);
|
|
506262
506262
|
await gracefulShutdown(0);
|
|
506263
506263
|
}
|
|
506264
|
-
writeToStdout(`${formatUpdateAvailableMessage("1.16.
|
|
506264
|
+
writeToStdout(`${formatUpdateAvailableMessage("1.16.1", latestVersion)}
|
|
506265
506265
|
`);
|
|
506266
506266
|
writeToStdout(`Installing update...
|
|
506267
506267
|
`);
|
|
@@ -506306,7 +506306,7 @@ async function update() {
|
|
|
506306
506306
|
logForDebugging(`update: Installation status: ${status2}`);
|
|
506307
506307
|
switch (status2) {
|
|
506308
506308
|
case "success":
|
|
506309
|
-
writeToStdout(source_default.green(`Successfully updated from ${"1.16.
|
|
506309
|
+
writeToStdout(source_default.green(`Successfully updated from ${"1.16.1"} to version ${latestVersion}`) + `
|
|
506310
506310
|
`);
|
|
506311
506311
|
await regenerateCompletionCache();
|
|
506312
506312
|
break;
|
|
@@ -507453,12 +507453,6 @@ ${customInstructions}` : customInstructions;
|
|
|
507453
507453
|
onSelect: done
|
|
507454
507454
|
}, undefined, false, undefined, this));
|
|
507455
507455
|
setOllamaBaseUrlOverride(chosenHost);
|
|
507456
|
-
if (chosenHost) {
|
|
507457
|
-
const existing = getSettingsForSource("userSettings")?.ollama;
|
|
507458
|
-
updateSettingsForSource("userSettings", {
|
|
507459
|
-
ollama: { ...existing, host: chosenHost }
|
|
507460
|
-
});
|
|
507461
|
-
}
|
|
507462
507456
|
}
|
|
507463
507457
|
}
|
|
507464
507458
|
}
|
|
@@ -507588,7 +507582,7 @@ ${customInstructions}` : customInstructions;
|
|
|
507588
507582
|
}
|
|
507589
507583
|
}
|
|
507590
507584
|
logForDiagnosticsNoPII("info", "started", {
|
|
507591
|
-
version: "1.16.
|
|
507585
|
+
version: "1.16.1",
|
|
507592
507586
|
is_native_binary: isInBundledMode()
|
|
507593
507587
|
});
|
|
507594
507588
|
registerCleanup(async () => {
|
|
@@ -508372,7 +508366,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
508372
508366
|
pendingHookMessages
|
|
508373
508367
|
}, renderAndRun);
|
|
508374
508368
|
}
|
|
508375
|
-
}).version("1.16.
|
|
508369
|
+
}).version("1.16.1 (Ur)", "-v, --version", "Output the version number");
|
|
508376
508370
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
508377
508371
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
508378
508372
|
if (canUserConfigureAdvisor()) {
|
|
@@ -509107,7 +509101,7 @@ if (false) {}
|
|
|
509107
509101
|
async function main2() {
|
|
509108
509102
|
const args = process.argv.slice(2);
|
|
509109
509103
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
509110
|
-
console.log(`${"1.16.
|
|
509104
|
+
console.log(`${"1.16.1"} (Ur)`);
|
|
509111
509105
|
return;
|
|
509112
509106
|
}
|
|
509113
509107
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|
package/docs/AGENT_FEATURES.md
CHANGED
|
@@ -40,7 +40,7 @@ ur --ollama-host http://192.168.1.50:11434
|
|
|
40
40
|
|
|
41
41
|
| Addition | Surface | What it adds |
|
|
42
42
|
| --- | --- | --- |
|
|
43
|
-
| Network Ollama discovery | `ur --discover-ollama`, `ur --ollama-host <url>`, `settings.ollama` | Scans active local subnets for Ollama servers on port 11434, verifies via `/api/tags`, shows a host picker
|
|
43
|
+
| Network Ollama discovery | `ur --discover-ollama`, `ur --ollama-host <url>`, `settings.ollama` | Scans active local subnets for Ollama servers on port 11434, verifies via `/api/tags`, and shows a host picker for the current session. |
|
|
44
44
|
|
|
45
45
|
## v1.15.0 Additions
|
|
46
46
|
|
|
@@ -20,7 +20,8 @@ a picker with:
|
|
|
20
20
|
- `This computer` — your local `ollama serve` at `http://localhost:11434`
|
|
21
21
|
- every discovered LAN host and the number of models it advertises
|
|
22
22
|
|
|
23
|
-
Select a host and UR uses it for
|
|
23
|
+
Select a host and UR uses it for that session only. The choice is **not**
|
|
24
|
+
persisted, so plain `ur` continues to use `localhost:11434`.
|
|
24
25
|
|
|
25
26
|
### Enable discovery on every startup
|
|
26
27
|
|
|
@@ -34,8 +35,8 @@ Add to `~/.ur/settings.json`:
|
|
|
34
35
|
}
|
|
35
36
|
```
|
|
36
37
|
|
|
37
|
-
The picker
|
|
38
|
-
|
|
38
|
+
The picker appears on every startup. The choice is still session-only and is
|
|
39
|
+
not written to settings.
|
|
39
40
|
|
|
40
41
|
### Point to a specific host without scanning
|
|
41
42
|
|
package/docs/CONFIGURATION.md
CHANGED
|
@@ -50,6 +50,10 @@ UR can scan your active local subnets for other Ollama servers and show a picker
|
|
|
50
50
|
ur --discover-ollama
|
|
51
51
|
```
|
|
52
52
|
|
|
53
|
+
This is **session-only**: the picker appears and the chosen host is used for
|
|
54
|
+
that session, but plain `ur` continues to use `localhost:11434` unless you set
|
|
55
|
+
`ollama.host` explicitly.
|
|
56
|
+
|
|
53
57
|
To make the picker appear on every startup, enable it in user settings:
|
|
54
58
|
|
|
55
59
|
```json
|
package/docs/USAGE.md
CHANGED
|
@@ -67,18 +67,21 @@ ur --model qwen2.5-coder:latest
|
|
|
67
67
|
UR talks to the local Ollama app at `http://localhost:11434/api` by default, but you can point it at another Ollama server on your LAN or in another location:
|
|
68
68
|
|
|
69
69
|
```sh
|
|
70
|
-
# Discover and pick a LAN Ollama server at startup
|
|
70
|
+
# Discover and pick a LAN Ollama server at startup (session only)
|
|
71
71
|
ur --discover-ollama
|
|
72
72
|
|
|
73
73
|
# Point to a specific Ollama server for this session
|
|
74
74
|
ur --ollama-host http://192.168.1.50:11434
|
|
75
75
|
|
|
76
|
-
# Persistent setting
|
|
76
|
+
# Persistent setting (plain `ur` uses this host automatically)
|
|
77
77
|
ur --settings '{"ollama":{"host":"http://192.168.1.50:11434"}}'
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
Precedence: `--ollama-host` > `OLLAMA_HOST` env > `ollama.host` setting > `localhost:11434`.
|
|
81
81
|
|
|
82
|
+
`--discover-ollama` shows the picker every time but does **not** save the choice;
|
|
83
|
+
use `ollama.host` in settings if you want plain `ur` to default to a LAN host.
|
|
84
|
+
|
|
82
85
|
Models exposed by the chosen Ollama app are valid, including local models and Ollama Cloud-backed models. UR does not call provider APIs directly or manage model API keys.
|
|
83
86
|
|
|
84
87
|
## Project Instructions
|