ur-agent 1.32.0 → 1.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.md +11 -9
- package/dist/cli.js +186 -79
- package/docs/providers.md +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.34.0
|
|
4
|
+
|
|
5
|
+
- Restore the 1.30.3 subscription approach: Codex CLI, Claude Code, Gemini CLI
|
|
6
|
+
and Antigravity are first-class in `/model` again — shown by default and
|
|
7
|
+
usable directly (no `UR_ENABLE_EXTERNAL_APP_PROVIDERS` opt-in and no runtime
|
|
8
|
+
block). They dispatch through the official CLI; log in with
|
|
9
|
+
`ur auth <provider>`. The internal generic `subscription` placeholder is
|
|
10
|
+
hidden from listings.
|
|
11
|
+
- API and local/server providers are unchanged: live model discovery from each
|
|
12
|
+
provider's `/models` endpoint and in-app masked API-key entry.
|
|
13
|
+
|
|
14
|
+
## 1.33.0
|
|
15
|
+
|
|
16
|
+
- Add API keys from inside UR while it is running: in `/model`, selecting an
|
|
17
|
+
API provider (OpenAI, Anthropic, Gemini, OpenRouter) that isn't connected now
|
|
18
|
+
shows a masked key-entry step. The key is stored in the OS keychain, then the
|
|
19
|
+
provider's models load live and you choose one — all without leaving the
|
|
20
|
+
session or setting an environment variable.
|
|
21
|
+
- Subscription login is unchanged: use `ur auth <provider>` (Codex, Claude,
|
|
22
|
+
Gemini, Antigravity).
|
|
23
|
+
|
|
3
24
|
## 1.32.0
|
|
4
25
|
|
|
5
26
|
- `/model` now shows the subscription providers (Codex CLI, Claude Code, Gemini
|
package/README.md
CHANGED
|
@@ -157,12 +157,14 @@ environment variables. API, local, and OpenAI-compatible server providers are
|
|
|
157
157
|
UR-native runtimes and behave like Ollama: UR owns the conversation loop, tool
|
|
158
158
|
loop, errors, and output.
|
|
159
159
|
|
|
160
|
-
The
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
160
|
+
The provider list shows the subscription CLIs (Codex CLI, Claude Code, Gemini
|
|
161
|
+
CLI, Antigravity) alongside the API and local/server providers, and they are
|
|
162
|
+
first-class: pick one in `/model` and it dispatches through the official CLI.
|
|
163
|
+
These are external app bridges — they run the vendor's own CLI using your
|
|
164
|
+
subscription — so you log in with `ur auth <provider>` (e.g. `ur auth chatgpt`,
|
|
165
|
+
`ur auth claude`). UR does not invent subscription models; each subscription
|
|
166
|
+
shows its curated model list. The generic `subscription` entry is an internal
|
|
167
|
+
placeholder and is hidden from the list.
|
|
166
168
|
|
|
167
169
|
```sh
|
|
168
170
|
ur provider list
|
|
@@ -235,9 +237,9 @@ identity line in the system prompt reflects it too:
|
|
|
235
237
|
OpenRouter on its OpenAI-compatible chat endpoint.
|
|
236
238
|
- **Local/server** providers call the configured endpoint (`/v1/chat/completions`
|
|
237
239
|
for LM Studio/llama.cpp/vLLM; the native API for Ollama).
|
|
238
|
-
- **
|
|
239
|
-
|
|
240
|
-
|
|
240
|
+
- **Subscription CLIs** (Codex, Claude Code, Gemini, Antigravity) are external
|
|
241
|
+
app bridges: selecting one dispatches the turn through the vendor's official
|
|
242
|
+
CLI using your subscription. Log in with `ur auth <provider>`.
|
|
241
243
|
- **Subscription** access does not list fake models. If no independent
|
|
242
244
|
subscription backend is configured, `/model` marks it unavailable and asks you
|
|
243
245
|
to choose a connected local, server, or API provider.
|
package/dist/cli.js
CHANGED
|
@@ -51818,24 +51818,16 @@ function getProviderRuntimeBlockReason(providerId, env4 = process.env, settings
|
|
|
51818
51818
|
if (!provider) {
|
|
51819
51819
|
return `Unknown provider "${providerId}". Run: ur provider list`;
|
|
51820
51820
|
}
|
|
51821
|
-
const definition = getProviderDefinition(provider);
|
|
51822
51821
|
if (provider === "subscription") {
|
|
51823
|
-
return `Provider "subscription"
|
|
51824
|
-
}
|
|
51825
|
-
if (definition.runtimeKind !== "external-app") {
|
|
51826
|
-
return null;
|
|
51827
|
-
}
|
|
51828
|
-
if (isExternalBridgeEnabled(provider, env4, settings)) {
|
|
51829
|
-
return null;
|
|
51822
|
+
return `Provider "subscription" is an internal placeholder. Choose a specific subscription (codex-cli, claude-code-cli, gemini-cli, antigravity-cli) or an API/local/server provider with /model.`;
|
|
51830
51823
|
}
|
|
51831
|
-
return
|
|
51824
|
+
return null;
|
|
51832
51825
|
}
|
|
51833
51826
|
function isProviderRuntimeSelectable(providerId, env4 = process.env) {
|
|
51834
51827
|
return getProviderRuntimeBlockReason(providerId, env4) === null;
|
|
51835
51828
|
}
|
|
51836
|
-
function listProviders(
|
|
51837
|
-
|
|
51838
|
-
return PROVIDER_IDS.map((id) => PROVIDERS[id]).filter((provider) => includeExternal || provider.runtimeKind !== "external-app");
|
|
51829
|
+
function listProviders(_options = {}) {
|
|
51830
|
+
return PROVIDER_IDS.map((id) => PROVIDERS[id]).filter((provider) => provider.id !== "subscription");
|
|
51839
51831
|
}
|
|
51840
51832
|
function hasSecretLikeValue(value) {
|
|
51841
51833
|
const trimmed = value.trim();
|
|
@@ -69518,7 +69510,7 @@ var init_auth = __esm(() => {
|
|
|
69518
69510
|
|
|
69519
69511
|
// src/utils/userAgent.ts
|
|
69520
69512
|
function getURCodeUserAgent() {
|
|
69521
|
-
return `ur/${"1.
|
|
69513
|
+
return `ur/${"1.34.0"}`;
|
|
69522
69514
|
}
|
|
69523
69515
|
|
|
69524
69516
|
// src/utils/workloadContext.ts
|
|
@@ -69540,7 +69532,7 @@ function getUserAgent() {
|
|
|
69540
69532
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
69541
69533
|
const workload = getWorkload();
|
|
69542
69534
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
69543
|
-
return `ur-cli/${"1.
|
|
69535
|
+
return `ur-cli/${"1.34.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
69544
69536
|
}
|
|
69545
69537
|
function getMCPUserAgent() {
|
|
69546
69538
|
const parts = [];
|
|
@@ -69554,7 +69546,7 @@ function getMCPUserAgent() {
|
|
|
69554
69546
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
69555
69547
|
}
|
|
69556
69548
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
69557
|
-
return `ur/${"1.
|
|
69549
|
+
return `ur/${"1.34.0"}${suffix}`;
|
|
69558
69550
|
}
|
|
69559
69551
|
function getWebFetchUserAgent() {
|
|
69560
69552
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -69692,7 +69684,7 @@ var init_user = __esm(() => {
|
|
|
69692
69684
|
deviceId,
|
|
69693
69685
|
sessionId: getSessionId(),
|
|
69694
69686
|
email: getEmail(),
|
|
69695
|
-
appVersion: "1.
|
|
69687
|
+
appVersion: "1.34.0",
|
|
69696
69688
|
platform: getHostPlatformForAnalytics(),
|
|
69697
69689
|
organizationUuid,
|
|
69698
69690
|
accountUuid,
|
|
@@ -76209,7 +76201,7 @@ var init_metadata = __esm(() => {
|
|
|
76209
76201
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
76210
76202
|
WHITESPACE_REGEX = /\s+/;
|
|
76211
76203
|
getVersionBase = memoize_default(() => {
|
|
76212
|
-
const match = "1.
|
|
76204
|
+
const match = "1.34.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
76213
76205
|
return match ? match[0] : undefined;
|
|
76214
76206
|
});
|
|
76215
76207
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -76249,7 +76241,7 @@ var init_metadata = __esm(() => {
|
|
|
76249
76241
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
76250
76242
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
76251
76243
|
isURAiAuth: isURAISubscriber2(),
|
|
76252
|
-
version: "1.
|
|
76244
|
+
version: "1.34.0",
|
|
76253
76245
|
versionBase: getVersionBase(),
|
|
76254
76246
|
buildTime: "",
|
|
76255
76247
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -76919,7 +76911,7 @@ function initialize1PEventLogging() {
|
|
|
76919
76911
|
const platform2 = getPlatform();
|
|
76920
76912
|
const attributes = {
|
|
76921
76913
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
76922
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.
|
|
76914
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.34.0"
|
|
76923
76915
|
};
|
|
76924
76916
|
if (platform2 === "wsl") {
|
|
76925
76917
|
const wslVersion = getWslVersion();
|
|
@@ -76946,7 +76938,7 @@ function initialize1PEventLogging() {
|
|
|
76946
76938
|
})
|
|
76947
76939
|
]
|
|
76948
76940
|
});
|
|
76949
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.
|
|
76941
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.34.0");
|
|
76950
76942
|
}
|
|
76951
76943
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
76952
76944
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -82243,7 +82235,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
82243
82235
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
82244
82236
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
82245
82237
|
}
|
|
82246
|
-
var urVersion = "1.
|
|
82238
|
+
var urVersion = "1.34.0", coverage, priorityRoadmap;
|
|
82247
82239
|
var init_trends = __esm(() => {
|
|
82248
82240
|
coverage = [
|
|
82249
82241
|
{
|
|
@@ -84236,7 +84228,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
84236
84228
|
if (!isAttributionHeaderEnabled()) {
|
|
84237
84229
|
return "";
|
|
84238
84230
|
}
|
|
84239
|
-
const version2 = `${"1.
|
|
84231
|
+
const version2 = `${"1.34.0"}.${fingerprint}`;
|
|
84240
84232
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
84241
84233
|
const cch = "";
|
|
84242
84234
|
const workload = getWorkload();
|
|
@@ -191890,7 +191882,7 @@ function getTelemetryAttributes() {
|
|
|
191890
191882
|
attributes["session.id"] = sessionId;
|
|
191891
191883
|
}
|
|
191892
191884
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
191893
|
-
attributes["app.version"] = "1.
|
|
191885
|
+
attributes["app.version"] = "1.34.0";
|
|
191894
191886
|
}
|
|
191895
191887
|
const oauthAccount = getOauthAccountInfo();
|
|
191896
191888
|
if (oauthAccount) {
|
|
@@ -227275,7 +227267,7 @@ function getInstallationEnv() {
|
|
|
227275
227267
|
return;
|
|
227276
227268
|
}
|
|
227277
227269
|
function getURCodeVersion() {
|
|
227278
|
-
return "1.
|
|
227270
|
+
return "1.34.0";
|
|
227279
227271
|
}
|
|
227280
227272
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
227281
227273
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -230114,7 +230106,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
230114
230106
|
const client2 = new Client({
|
|
230115
230107
|
name: "ur",
|
|
230116
230108
|
title: "UR",
|
|
230117
|
-
version: "1.
|
|
230109
|
+
version: "1.34.0",
|
|
230118
230110
|
description: "UR-AGENT autonomous engineering workflow engine",
|
|
230119
230111
|
websiteUrl: PRODUCT_URL
|
|
230120
230112
|
}, {
|
|
@@ -230468,7 +230460,7 @@ var init_client5 = __esm(() => {
|
|
|
230468
230460
|
const client2 = new Client({
|
|
230469
230461
|
name: "ur",
|
|
230470
230462
|
title: "UR",
|
|
230471
|
-
version: "1.
|
|
230463
|
+
version: "1.34.0",
|
|
230472
230464
|
description: "UR-AGENT autonomous engineering workflow engine",
|
|
230473
230465
|
websiteUrl: PRODUCT_URL
|
|
230474
230466
|
}, {
|
|
@@ -240282,9 +240274,9 @@ async function assertMinVersion() {
|
|
|
240282
240274
|
if (false) {}
|
|
240283
240275
|
try {
|
|
240284
240276
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
240285
|
-
if (versionConfig.minVersion && lt("1.
|
|
240277
|
+
if (versionConfig.minVersion && lt("1.34.0", versionConfig.minVersion)) {
|
|
240286
240278
|
console.error(`
|
|
240287
|
-
It looks like your version of UR (${"1.
|
|
240279
|
+
It looks like your version of UR (${"1.34.0"}) needs an update.
|
|
240288
240280
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
240289
240281
|
|
|
240290
240282
|
To update, please run:
|
|
@@ -240500,7 +240492,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
240500
240492
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
240501
240493
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
240502
240494
|
pid: process.pid,
|
|
240503
|
-
currentVersion: "1.
|
|
240495
|
+
currentVersion: "1.34.0"
|
|
240504
240496
|
});
|
|
240505
240497
|
return "in_progress";
|
|
240506
240498
|
}
|
|
@@ -240509,7 +240501,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
240509
240501
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
240510
240502
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
240511
240503
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
240512
|
-
currentVersion: "1.
|
|
240504
|
+
currentVersion: "1.34.0"
|
|
240513
240505
|
});
|
|
240514
240506
|
console.error(`
|
|
240515
240507
|
Error: Windows NPM detected in WSL
|
|
@@ -241044,7 +241036,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
241044
241036
|
}
|
|
241045
241037
|
async function getDoctorDiagnostic() {
|
|
241046
241038
|
const installationType = await getCurrentInstallationType();
|
|
241047
|
-
const version2 = typeof MACRO !== "undefined" ? "1.
|
|
241039
|
+
const version2 = typeof MACRO !== "undefined" ? "1.34.0" : "unknown";
|
|
241048
241040
|
const installationPath = await getInstallationPath();
|
|
241049
241041
|
const invokedBinary = getInvokedBinary();
|
|
241050
241042
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -241979,8 +241971,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
241979
241971
|
const maxVersion = await getMaxVersion();
|
|
241980
241972
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
241981
241973
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
241982
|
-
if (gte("1.
|
|
241983
|
-
logForDebugging(`Native installer: current version ${"1.
|
|
241974
|
+
if (gte("1.34.0", maxVersion)) {
|
|
241975
|
+
logForDebugging(`Native installer: current version ${"1.34.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
241984
241976
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
241985
241977
|
latency_ms: Date.now() - startTime,
|
|
241986
241978
|
max_version: maxVersion,
|
|
@@ -241991,7 +241983,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
241991
241983
|
version2 = maxVersion;
|
|
241992
241984
|
}
|
|
241993
241985
|
}
|
|
241994
|
-
if (!forceReinstall && version2 === "1.
|
|
241986
|
+
if (!forceReinstall && version2 === "1.34.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
241995
241987
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
241996
241988
|
logEvent("tengu_native_update_complete", {
|
|
241997
241989
|
latency_ms: Date.now() - startTime,
|
|
@@ -338895,7 +338887,7 @@ function Feedback({
|
|
|
338895
338887
|
platform: env2.platform,
|
|
338896
338888
|
gitRepo: envInfo.isGit,
|
|
338897
338889
|
terminal: env2.terminal,
|
|
338898
|
-
version: "1.
|
|
338890
|
+
version: "1.34.0",
|
|
338899
338891
|
transcript: normalizeMessagesForAPI(messages),
|
|
338900
338892
|
errors: sanitizedErrors,
|
|
338901
338893
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -339087,7 +339079,7 @@ function Feedback({
|
|
|
339087
339079
|
", ",
|
|
339088
339080
|
env2.terminal,
|
|
339089
339081
|
", v",
|
|
339090
|
-
"1.
|
|
339082
|
+
"1.34.0"
|
|
339091
339083
|
]
|
|
339092
339084
|
}, undefined, true, undefined, this)
|
|
339093
339085
|
]
|
|
@@ -339193,7 +339185,7 @@ ${sanitizedDescription}
|
|
|
339193
339185
|
` + `**Environment Info**
|
|
339194
339186
|
` + `- Platform: ${env2.platform}
|
|
339195
339187
|
` + `- Terminal: ${env2.terminal}
|
|
339196
|
-
` + `- Version: ${"1.
|
|
339188
|
+
` + `- Version: ${"1.34.0"}
|
|
339197
339189
|
` + `- Feedback ID: ${feedbackId}
|
|
339198
339190
|
` + `
|
|
339199
339191
|
**Errors**
|
|
@@ -342304,7 +342296,7 @@ function buildPrimarySection() {
|
|
|
342304
342296
|
}, undefined, false, undefined, this);
|
|
342305
342297
|
return [{
|
|
342306
342298
|
label: "Version",
|
|
342307
|
-
value: "1.
|
|
342299
|
+
value: "1.34.0"
|
|
342308
342300
|
}, {
|
|
342309
342301
|
label: "Session name",
|
|
342310
342302
|
value: nameValue
|
|
@@ -345604,7 +345596,7 @@ function Config({
|
|
|
345604
345596
|
}
|
|
345605
345597
|
}, undefined, false, undefined, this)
|
|
345606
345598
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
|
|
345607
|
-
currentVersion: "1.
|
|
345599
|
+
currentVersion: "1.34.0",
|
|
345608
345600
|
onChoice: (choice) => {
|
|
345609
345601
|
setShowSubmenu(null);
|
|
345610
345602
|
setTabsHidden(false);
|
|
@@ -345616,7 +345608,7 @@ function Config({
|
|
|
345616
345608
|
autoUpdatesChannel: "stable"
|
|
345617
345609
|
};
|
|
345618
345610
|
if (choice === "stay") {
|
|
345619
|
-
newSettings.minimumVersion = "1.
|
|
345611
|
+
newSettings.minimumVersion = "1.34.0";
|
|
345620
345612
|
}
|
|
345621
345613
|
updateSettingsForSource("userSettings", newSettings);
|
|
345622
345614
|
setSettingsData((prev_27) => ({
|
|
@@ -353686,7 +353678,7 @@ function HelpV2(t0) {
|
|
|
353686
353678
|
let t6;
|
|
353687
353679
|
if ($3[31] !== tabs) {
|
|
353688
353680
|
t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
|
|
353689
|
-
title: `UR v${"1.
|
|
353681
|
+
title: `UR v${"1.34.0"}`,
|
|
353690
353682
|
color: "professionalBlue",
|
|
353691
353683
|
defaultTab: "general",
|
|
353692
353684
|
children: tabs
|
|
@@ -354432,7 +354424,7 @@ function buildToolUseContext(tools, readFileStateCache) {
|
|
|
354432
354424
|
async function handleInitialize(options2) {
|
|
354433
354425
|
return {
|
|
354434
354426
|
name: "ur-agent",
|
|
354435
|
-
version: "1.
|
|
354427
|
+
version: "1.34.0",
|
|
354436
354428
|
protocolVersion: "0.1.0",
|
|
354437
354429
|
workspaceRoot: options2.cwd,
|
|
354438
354430
|
capabilities: {
|
|
@@ -374556,7 +374548,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
374556
374548
|
return [];
|
|
374557
374549
|
}
|
|
374558
374550
|
}
|
|
374559
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.
|
|
374551
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.34.0") {
|
|
374560
374552
|
if (process.env.USER_TYPE === "ant") {
|
|
374561
374553
|
const changelog = "";
|
|
374562
374554
|
if (changelog) {
|
|
@@ -374583,7 +374575,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.32.0")
|
|
|
374583
374575
|
releaseNotes
|
|
374584
374576
|
};
|
|
374585
374577
|
}
|
|
374586
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.
|
|
374578
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.34.0") {
|
|
374587
374579
|
if (process.env.USER_TYPE === "ant") {
|
|
374588
374580
|
const changelog = "";
|
|
374589
374581
|
if (changelog) {
|
|
@@ -375753,7 +375745,7 @@ function getRecentActivitySync() {
|
|
|
375753
375745
|
return cachedActivity;
|
|
375754
375746
|
}
|
|
375755
375747
|
function getLogoDisplayData() {
|
|
375756
|
-
const version2 = process.env.DEMO_VERSION ?? "1.
|
|
375748
|
+
const version2 = process.env.DEMO_VERSION ?? "1.34.0";
|
|
375757
375749
|
const serverUrl = getDirectConnectServerUrl();
|
|
375758
375750
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd2());
|
|
375759
375751
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -376542,7 +376534,7 @@ function LogoV2() {
|
|
|
376542
376534
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
376543
376535
|
t2 = () => {
|
|
376544
376536
|
const currentConfig = getGlobalConfig();
|
|
376545
|
-
if (currentConfig.lastReleaseNotesSeen === "1.
|
|
376537
|
+
if (currentConfig.lastReleaseNotesSeen === "1.34.0") {
|
|
376546
376538
|
return;
|
|
376547
376539
|
}
|
|
376548
376540
|
saveGlobalConfig(_temp326);
|
|
@@ -377227,12 +377219,12 @@ function LogoV2() {
|
|
|
377227
377219
|
return t41;
|
|
377228
377220
|
}
|
|
377229
377221
|
function _temp326(current) {
|
|
377230
|
-
if (current.lastReleaseNotesSeen === "1.
|
|
377222
|
+
if (current.lastReleaseNotesSeen === "1.34.0") {
|
|
377231
377223
|
return current;
|
|
377232
377224
|
}
|
|
377233
377225
|
return {
|
|
377234
377226
|
...current,
|
|
377235
|
-
lastReleaseNotesSeen: "1.
|
|
377227
|
+
lastReleaseNotesSeen: "1.34.0"
|
|
377236
377228
|
};
|
|
377237
377229
|
}
|
|
377238
377230
|
function _temp243(s_0) {
|
|
@@ -593128,7 +593120,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
593128
593120
|
smapsRollup,
|
|
593129
593121
|
platform: process.platform,
|
|
593130
593122
|
nodeVersion: process.version,
|
|
593131
|
-
ccVersion: "1.
|
|
593123
|
+
ccVersion: "1.34.0"
|
|
593132
593124
|
};
|
|
593133
593125
|
}
|
|
593134
593126
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -593714,7 +593706,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
593714
593706
|
var call137 = async () => {
|
|
593715
593707
|
return {
|
|
593716
593708
|
type: "text",
|
|
593717
|
-
value: "1.
|
|
593709
|
+
value: "1.34.0"
|
|
593718
593710
|
};
|
|
593719
593711
|
}, version2, version_default;
|
|
593720
593712
|
var init_version = __esm(() => {
|
|
@@ -596594,6 +596586,9 @@ function ProviderFirstModelPicker({
|
|
|
596594
596586
|
const [modelSource, setModelSource] = import_react188.useState("static");
|
|
596595
596587
|
const [modelWarning, setModelWarning] = import_react188.useState(null);
|
|
596596
596588
|
const [providerWarning, setProviderWarning] = import_react188.useState(null);
|
|
596589
|
+
const [connectingProvider, setConnectingProvider] = import_react188.useState(null);
|
|
596590
|
+
const [apiKeyInput, setApiKeyInput] = import_react188.useState("");
|
|
596591
|
+
const [connectError, setConnectError] = import_react188.useState(null);
|
|
596597
596592
|
const effortValue = useAppState(selectEffortValue2);
|
|
596598
596593
|
const [effort] = import_react188.useState(effortValue !== undefined ? convertEffortValueToLevel(effortValue) : undefined);
|
|
596599
596594
|
const appThinkingEnabled = useAppState(selectThinkingEnabled2);
|
|
@@ -596679,6 +596674,17 @@ function ProviderFirstModelPicker({
|
|
|
596679
596674
|
return;
|
|
596680
596675
|
}
|
|
596681
596676
|
if (provider.status !== "connected") {
|
|
596677
|
+
if (provider.credentialType === "api-key") {
|
|
596678
|
+
setConnectingProvider(provider);
|
|
596679
|
+
setApiKeyInput("");
|
|
596680
|
+
setConnectError(null);
|
|
596681
|
+
setStep("connect");
|
|
596682
|
+
return;
|
|
596683
|
+
}
|
|
596684
|
+
if (provider.provider.accessType === "subscription") {
|
|
596685
|
+
setProviderWarning(`${provider.label} is not logged in. Sign in with \`ur auth ${authAliasForProvider(provider.value)}\` (uses your own subscription), then reselect.`);
|
|
596686
|
+
return;
|
|
596687
|
+
}
|
|
596682
596688
|
setProviderWarning(`Provider "${provider.value}" is ${provider.status}: ${provider.statusLabel}. Run \`ur provider doctor ${provider.value}\`, or choose a connected API/local/server provider.`);
|
|
596683
596689
|
return;
|
|
596684
596690
|
}
|
|
@@ -596755,6 +596761,105 @@ function ProviderFirstModelPicker({
|
|
|
596755
596761
|
setModelOptions([]);
|
|
596756
596762
|
setModelWarning(null);
|
|
596757
596763
|
}
|
|
596764
|
+
function handleKeySubmit() {
|
|
596765
|
+
if (!connectingProvider)
|
|
596766
|
+
return;
|
|
596767
|
+
const key = apiKeyInput.trim();
|
|
596768
|
+
if (!key) {
|
|
596769
|
+
setConnectError("Enter your API key (or press Esc to go back).");
|
|
596770
|
+
return;
|
|
596771
|
+
}
|
|
596772
|
+
const saved = setProviderApiKey(connectingProvider.value, key);
|
|
596773
|
+
if (!saved.ok) {
|
|
596774
|
+
setConnectError(saved.message);
|
|
596775
|
+
return;
|
|
596776
|
+
}
|
|
596777
|
+
setApiKeyInput("");
|
|
596778
|
+
setConnectError(null);
|
|
596779
|
+
setSelectedProvider(connectingProvider);
|
|
596780
|
+
setStep("model");
|
|
596781
|
+
}
|
|
596782
|
+
function handleKeyCancel() {
|
|
596783
|
+
setApiKeyInput("");
|
|
596784
|
+
setConnectingProvider(null);
|
|
596785
|
+
setConnectError(null);
|
|
596786
|
+
setStep("provider");
|
|
596787
|
+
}
|
|
596788
|
+
if (step === "connect" && connectingProvider) {
|
|
596789
|
+
const envKey = connectingProvider.provider.envKey;
|
|
596790
|
+
const content2 = /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedBox_default, {
|
|
596791
|
+
flexDirection: "column",
|
|
596792
|
+
children: [
|
|
596793
|
+
/* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedBox_default, {
|
|
596794
|
+
marginBottom: 1,
|
|
596795
|
+
flexDirection: "column",
|
|
596796
|
+
children: [
|
|
596797
|
+
/* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedText, {
|
|
596798
|
+
color: "remember",
|
|
596799
|
+
bold: true,
|
|
596800
|
+
children: [
|
|
596801
|
+
"Connect ",
|
|
596802
|
+
connectingProvider.label
|
|
596803
|
+
]
|
|
596804
|
+
}, undefined, true, undefined, this),
|
|
596805
|
+
/* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedText, {
|
|
596806
|
+
dimColor: true,
|
|
596807
|
+
children: "Paste your API key to use your own account. It is stored securely in your OS keychain and reused automatically \u2014 you only do this once."
|
|
596808
|
+
}, undefined, false, undefined, this),
|
|
596809
|
+
envKey && /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedText, {
|
|
596810
|
+
dimColor: true,
|
|
596811
|
+
color: "subtle",
|
|
596812
|
+
children: [
|
|
596813
|
+
"Equivalent to setting ",
|
|
596814
|
+
envKey,
|
|
596815
|
+
". Get a key from the provider's dashboard."
|
|
596816
|
+
]
|
|
596817
|
+
}, undefined, true, undefined, this)
|
|
596818
|
+
]
|
|
596819
|
+
}, undefined, true, undefined, this),
|
|
596820
|
+
/* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedBox_default, {
|
|
596821
|
+
children: [
|
|
596822
|
+
/* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedText, {
|
|
596823
|
+
children: "API key: "
|
|
596824
|
+
}, undefined, false, undefined, this),
|
|
596825
|
+
/* @__PURE__ */ jsx_dev_runtime346.jsxDEV(TextInput, {
|
|
596826
|
+
value: apiKeyInput,
|
|
596827
|
+
onChange: setApiKeyInput,
|
|
596828
|
+
onSubmit: handleKeySubmit,
|
|
596829
|
+
mask: "*",
|
|
596830
|
+
placeholder: "paste key, then Enter"
|
|
596831
|
+
}, undefined, false, undefined, this)
|
|
596832
|
+
]
|
|
596833
|
+
}, undefined, true, undefined, this),
|
|
596834
|
+
connectError && /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedBox_default, {
|
|
596835
|
+
marginTop: 1,
|
|
596836
|
+
children: /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedText, {
|
|
596837
|
+
color: "error",
|
|
596838
|
+
children: connectError
|
|
596839
|
+
}, undefined, false, undefined, this)
|
|
596840
|
+
}, undefined, false, undefined, this),
|
|
596841
|
+
/* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedBox_default, {
|
|
596842
|
+
marginTop: 1,
|
|
596843
|
+
children: /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(Byline, {
|
|
596844
|
+
children: [
|
|
596845
|
+
/* @__PURE__ */ jsx_dev_runtime346.jsxDEV(KeyboardShortcutHint, {
|
|
596846
|
+
shortcut: "Enter",
|
|
596847
|
+
action: "store key & load models"
|
|
596848
|
+
}, undefined, false, undefined, this),
|
|
596849
|
+
/* @__PURE__ */ jsx_dev_runtime346.jsxDEV(KeyboardShortcutHint, {
|
|
596850
|
+
shortcut: "Esc",
|
|
596851
|
+
action: "back"
|
|
596852
|
+
}, undefined, false, undefined, this)
|
|
596853
|
+
]
|
|
596854
|
+
}, undefined, true, undefined, this)
|
|
596855
|
+
}, undefined, false, undefined, this)
|
|
596856
|
+
]
|
|
596857
|
+
}, undefined, true, undefined, this);
|
|
596858
|
+
return isStandaloneCommand ? /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(Pane, {
|
|
596859
|
+
color: "permission",
|
|
596860
|
+
children: content2
|
|
596861
|
+
}, undefined, false, undefined, this) : content2;
|
|
596862
|
+
}
|
|
596758
596863
|
if (step === "provider") {
|
|
596759
596864
|
const content2 = /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedBox_default, {
|
|
596760
596865
|
flexDirection: "column",
|
|
@@ -597056,12 +597161,14 @@ var import_react188, jsx_dev_runtime346, selectCurrentProvider = (s) => s.provid
|
|
|
597056
597161
|
var init_ProviderFirstModelPicker = __esm(() => {
|
|
597057
597162
|
init_analytics();
|
|
597058
597163
|
init_providerRegistry();
|
|
597164
|
+
init_providerCredentials();
|
|
597059
597165
|
init_AppState();
|
|
597060
597166
|
init_settings2();
|
|
597061
597167
|
init_ink2();
|
|
597062
597168
|
init_AppState();
|
|
597063
597169
|
init_ConfigurableShortcutHint();
|
|
597064
597170
|
init_CustomSelect();
|
|
597171
|
+
init_TextInput();
|
|
597065
597172
|
init_Byline();
|
|
597066
597173
|
init_KeyboardShortcutHint();
|
|
597067
597174
|
init_Pane();
|
|
@@ -603669,7 +603776,7 @@ function generateHtmlReport(data, insights) {
|
|
|
603669
603776
|
</html>`;
|
|
603670
603777
|
}
|
|
603671
603778
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
603672
|
-
const version3 = typeof MACRO !== "undefined" ? "1.
|
|
603779
|
+
const version3 = typeof MACRO !== "undefined" ? "1.34.0" : "unknown";
|
|
603673
603780
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
603674
603781
|
const facets_summary = {
|
|
603675
603782
|
total: facets.size,
|
|
@@ -607949,7 +608056,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
607949
608056
|
init_settings2();
|
|
607950
608057
|
init_slowOperations();
|
|
607951
608058
|
init_uuid();
|
|
607952
|
-
VERSION5 = typeof MACRO !== "undefined" ? "1.
|
|
608059
|
+
VERSION5 = typeof MACRO !== "undefined" ? "1.34.0" : "unknown";
|
|
607953
608060
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
607954
608061
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
607955
608062
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -609154,7 +609261,7 @@ var init_filesystem = __esm(() => {
|
|
|
609154
609261
|
});
|
|
609155
609262
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
609156
609263
|
const nonce = randomBytes18(16).toString("hex");
|
|
609157
|
-
return join200(getURTempDir(), "bundled-skills", "1.
|
|
609264
|
+
return join200(getURTempDir(), "bundled-skills", "1.34.0", nonce);
|
|
609158
609265
|
});
|
|
609159
609266
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
609160
609267
|
});
|
|
@@ -615443,7 +615550,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
615443
615550
|
}
|
|
615444
615551
|
function computeFingerprintFromMessages(messages) {
|
|
615445
615552
|
const firstMessageText = extractFirstMessageText(messages);
|
|
615446
|
-
return computeFingerprint(firstMessageText, "1.
|
|
615553
|
+
return computeFingerprint(firstMessageText, "1.34.0");
|
|
615447
615554
|
}
|
|
615448
615555
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
615449
615556
|
var init_fingerprint = () => {};
|
|
@@ -617310,7 +617417,7 @@ async function sideQuery(opts) {
|
|
|
617310
617417
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
617311
617418
|
}
|
|
617312
617419
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
617313
|
-
const fingerprint = computeFingerprint(messageText2, "1.
|
|
617420
|
+
const fingerprint = computeFingerprint(messageText2, "1.34.0");
|
|
617314
617421
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
617315
617422
|
const systemBlocks = [
|
|
617316
617423
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -622047,7 +622154,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
622047
622154
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
622048
622155
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
622049
622156
|
betas: getSdkBetas(),
|
|
622050
|
-
ur_version: "1.
|
|
622157
|
+
ur_version: "1.34.0",
|
|
622051
622158
|
output_style: outputStyle2,
|
|
622052
622159
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
622053
622160
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -636675,7 +636782,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
636675
636782
|
function getSemverPart(version3) {
|
|
636676
636783
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
636677
636784
|
}
|
|
636678
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.
|
|
636785
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.34.0") {
|
|
636679
636786
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
|
|
636680
636787
|
if (!updatedVersion) {
|
|
636681
636788
|
return null;
|
|
@@ -636724,7 +636831,7 @@ function AutoUpdater({
|
|
|
636724
636831
|
return;
|
|
636725
636832
|
}
|
|
636726
636833
|
if (false) {}
|
|
636727
|
-
const currentVersion = "1.
|
|
636834
|
+
const currentVersion = "1.34.0";
|
|
636728
636835
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
636729
636836
|
let latestVersion = await getLatestVersion(channel);
|
|
636730
636837
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -636953,12 +637060,12 @@ function NativeAutoUpdater({
|
|
|
636953
637060
|
logEvent("tengu_native_auto_updater_start", {});
|
|
636954
637061
|
try {
|
|
636955
637062
|
const maxVersion = await getMaxVersion();
|
|
636956
|
-
if (maxVersion && gt("1.
|
|
637063
|
+
if (maxVersion && gt("1.34.0", maxVersion)) {
|
|
636957
637064
|
const msg = await getMaxVersionMessage();
|
|
636958
637065
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
636959
637066
|
}
|
|
636960
637067
|
const result = await installLatest(channel);
|
|
636961
|
-
const currentVersion = "1.
|
|
637068
|
+
const currentVersion = "1.34.0";
|
|
636962
637069
|
const latencyMs = Date.now() - startTime;
|
|
636963
637070
|
if (result.lockFailed) {
|
|
636964
637071
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -637095,17 +637202,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
637095
637202
|
const maxVersion = await getMaxVersion();
|
|
637096
637203
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
637097
637204
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
637098
|
-
if (gte("1.
|
|
637099
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.
|
|
637205
|
+
if (gte("1.34.0", maxVersion)) {
|
|
637206
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.34.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
637100
637207
|
setUpdateAvailable(false);
|
|
637101
637208
|
return;
|
|
637102
637209
|
}
|
|
637103
637210
|
latest = maxVersion;
|
|
637104
637211
|
}
|
|
637105
|
-
const hasUpdate = latest && !gte("1.
|
|
637212
|
+
const hasUpdate = latest && !gte("1.34.0", latest) && !shouldSkipVersion(latest);
|
|
637106
637213
|
setUpdateAvailable(!!hasUpdate);
|
|
637107
637214
|
if (hasUpdate) {
|
|
637108
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.
|
|
637215
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.34.0"} -> ${latest}`);
|
|
637109
637216
|
}
|
|
637110
637217
|
};
|
|
637111
637218
|
$3[0] = t1;
|
|
@@ -637139,7 +637246,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
637139
637246
|
wrap: "truncate",
|
|
637140
637247
|
children: [
|
|
637141
637248
|
"currentVersion: ",
|
|
637142
|
-
"1.
|
|
637249
|
+
"1.34.0"
|
|
637143
637250
|
]
|
|
637144
637251
|
}, undefined, true, undefined, this);
|
|
637145
637252
|
$3[3] = verbose;
|
|
@@ -649590,7 +649697,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
649590
649697
|
project_dir: getOriginalCwd(),
|
|
649591
649698
|
added_dirs: addedDirs
|
|
649592
649699
|
},
|
|
649593
|
-
version: "1.
|
|
649700
|
+
version: "1.34.0",
|
|
649594
649701
|
output_style: {
|
|
649595
649702
|
name: outputStyleName
|
|
649596
649703
|
},
|
|
@@ -649673,7 +649780,7 @@ function StatusLineInner({
|
|
|
649673
649780
|
const taskValues = Object.values(tasks2);
|
|
649674
649781
|
const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
|
|
649675
649782
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
649676
|
-
version: "1.
|
|
649783
|
+
version: "1.34.0",
|
|
649677
649784
|
providerLabel: providerRuntime.providerLabel,
|
|
649678
649785
|
authMode: providerRuntime.authLabel,
|
|
649679
649786
|
model: providerRuntime.model ?? renderModelName(mainLoopModel),
|
|
@@ -661161,7 +661268,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
661161
661268
|
} catch {}
|
|
661162
661269
|
const data = {
|
|
661163
661270
|
trigger: trigger2,
|
|
661164
|
-
version: "1.
|
|
661271
|
+
version: "1.34.0",
|
|
661165
661272
|
platform: process.platform,
|
|
661166
661273
|
transcript,
|
|
661167
661274
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -673045,7 +673152,7 @@ function WelcomeV2() {
|
|
|
673045
673152
|
dimColor: true,
|
|
673046
673153
|
children: [
|
|
673047
673154
|
"v",
|
|
673048
|
-
"1.
|
|
673155
|
+
"1.34.0"
|
|
673049
673156
|
]
|
|
673050
673157
|
}, undefined, true, undefined, this)
|
|
673051
673158
|
]
|
|
@@ -674305,7 +674412,7 @@ function completeOnboarding() {
|
|
|
674305
674412
|
saveGlobalConfig((current) => ({
|
|
674306
674413
|
...current,
|
|
674307
674414
|
hasCompletedOnboarding: true,
|
|
674308
|
-
lastOnboardingVersion: "1.
|
|
674415
|
+
lastOnboardingVersion: "1.34.0"
|
|
674309
674416
|
}));
|
|
674310
674417
|
}
|
|
674311
674418
|
function showDialog(root2, renderer) {
|
|
@@ -679342,7 +679449,7 @@ function appendToLog(path24, message) {
|
|
|
679342
679449
|
cwd: getFsImplementation().cwd(),
|
|
679343
679450
|
userType: process.env.USER_TYPE,
|
|
679344
679451
|
sessionId: getSessionId(),
|
|
679345
|
-
version: "1.
|
|
679452
|
+
version: "1.34.0"
|
|
679346
679453
|
};
|
|
679347
679454
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
679348
679455
|
}
|
|
@@ -683436,8 +683543,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
683436
683543
|
}
|
|
683437
683544
|
async function checkEnvLessBridgeMinVersion() {
|
|
683438
683545
|
const cfg = await getEnvLessBridgeConfig();
|
|
683439
|
-
if (cfg.min_version && lt("1.
|
|
683440
|
-
return `Your version of UR (${"1.
|
|
683546
|
+
if (cfg.min_version && lt("1.34.0", cfg.min_version)) {
|
|
683547
|
+
return `Your version of UR (${"1.34.0"}) is too old for Remote Control.
|
|
683441
683548
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
683442
683549
|
}
|
|
683443
683550
|
return null;
|
|
@@ -683911,7 +684018,7 @@ async function initBridgeCore(params) {
|
|
|
683911
684018
|
const rawApi = createBridgeApiClient({
|
|
683912
684019
|
baseUrl,
|
|
683913
684020
|
getAccessToken,
|
|
683914
|
-
runnerVersion: "1.
|
|
684021
|
+
runnerVersion: "1.34.0",
|
|
683915
684022
|
onDebug: logForDebugging,
|
|
683916
684023
|
onAuth401,
|
|
683917
684024
|
getTrustedDeviceToken
|
|
@@ -689593,7 +689700,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
|
|
|
689593
689700
|
setCwd(cwd3);
|
|
689594
689701
|
const server2 = new Server({
|
|
689595
689702
|
name: "ur/tengu",
|
|
689596
|
-
version: "1.
|
|
689703
|
+
version: "1.34.0"
|
|
689597
689704
|
}, {
|
|
689598
689705
|
capabilities: {
|
|
689599
689706
|
tools: {}
|
|
@@ -691570,7 +691677,7 @@ async function update() {
|
|
|
691570
691677
|
logEvent("tengu_update_check", {});
|
|
691571
691678
|
const diagnostic = await getDoctorDiagnostic();
|
|
691572
691679
|
const result = await checkUpgradeStatus({
|
|
691573
|
-
currentVersion: "1.
|
|
691680
|
+
currentVersion: "1.34.0",
|
|
691574
691681
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
691575
691682
|
installationType: diagnostic.installationType,
|
|
691576
691683
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -692816,7 +692923,7 @@ ${customInstructions}` : customInstructions;
|
|
|
692816
692923
|
}
|
|
692817
692924
|
}
|
|
692818
692925
|
logForDiagnosticsNoPII("info", "started", {
|
|
692819
|
-
version: "1.
|
|
692926
|
+
version: "1.34.0",
|
|
692820
692927
|
is_native_binary: isInBundledMode()
|
|
692821
692928
|
});
|
|
692822
692929
|
registerCleanup(async () => {
|
|
@@ -693602,7 +693709,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
693602
693709
|
pendingHookMessages
|
|
693603
693710
|
}, renderAndRun);
|
|
693604
693711
|
}
|
|
693605
|
-
}).version("1.
|
|
693712
|
+
}).version("1.34.0 (UR-AGENT)", "-v, --version", "Output the version number");
|
|
693606
693713
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
693607
693714
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
693608
693715
|
if (canUserConfigureAdvisor()) {
|
|
@@ -694485,7 +694592,7 @@ if (false) {}
|
|
|
694485
694592
|
async function main2() {
|
|
694486
694593
|
const args = process.argv.slice(2);
|
|
694487
694594
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
694488
|
-
console.log(`${"1.
|
|
694595
|
+
console.log(`${"1.34.0"} (UR-AGENT)`);
|
|
694489
694596
|
return;
|
|
694490
694597
|
}
|
|
694491
694598
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|
package/docs/providers.md
CHANGED
|
@@ -166,7 +166,7 @@ ur config set provider anthropic-api
|
|
|
166
166
|
| API providers (openai-api, anthropic-api, gemini-api, openrouter) | Live discovery from the provider's `/models` endpoint using your connected key (curated fallback until connected) | live |
|
|
167
167
|
| Local/server providers (ollama, lmstudio, llama.cpp, vllm) | Dynamic discovery from the selected provider endpoint | live |
|
|
168
168
|
| OpenAI-compatible | Dynamic discovery from configured endpoint | live |
|
|
169
|
-
| Subscription CLIs (codex-cli, claude-code-cli, gemini-cli, antigravity-cli) | Curated list (the official CLIs expose no models API);
|
|
169
|
+
| 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. Log in with `ur auth <provider>` | static |
|
|
170
170
|
|
|
171
171
|
### API vs Subscription distinction
|
|
172
172
|
|
package/package.json
CHANGED