ur-agent 1.33.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 CHANGED
@@ -1,5 +1,16 @@
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
+
3
14
  ## 1.33.0
4
15
 
5
16
  - Add API keys from inside UR while it is running: in `/model`, selecting an
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 default provider list includes a generic `subscription` access entry so the
161
- access type is visible, but this build does not invent subscription models or
162
- route through provider apps. If no independent subscription runtime is
163
- configured, that entry is marked unavailable. Subscription CLI integrations are
164
- external app bridges; they are diagnostics/opt-in only and are disabled for
165
- normal runtime selection unless `UR_ENABLE_EXTERNAL_APP_PROVIDERS=1` is set.
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
- - **External app bridges** for subscription CLIs are disabled by default because
239
- they delegate the turn to another agent app. Opt in with
240
- `UR_ENABLE_EXTERNAL_APP_PROVIDERS=1` only when that behavior is intentional.
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" represents subscription login, but no independent subscription runtime is configured. UR will not fake subscription models or call provider apps by default. Choose a local, server, or API provider with /model.`;
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 `Provider "${provider}" uses an external app bridge (${definition.displayName}). Connect it once with \`ur connect ${provider}\` (or set UR_ENABLE_EXTERNAL_APP_PROVIDERS=1) to enable it. Otherwise choose an API/local/server provider such as openai-api, anthropic-api, gemini-api, openrouter, ollama, lmstudio, llama.cpp, or vllm.`;
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(options = {}) {
51837
- const includeExternal = options.includeExternalAppBridges ?? externalAppProviderBridgeEnabled(options.env ?? process.env);
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.33.0"}`;
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.33.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
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.33.0"}${suffix}`;
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.33.0",
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.33.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
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.33.0",
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.33.0"
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.33.0");
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.33.0", coverage, priorityRoadmap;
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.33.0"}.${fingerprint}`;
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.33.0";
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.33.0";
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.33.0",
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.33.0",
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.33.0", versionConfig.minVersion)) {
240277
+ if (versionConfig.minVersion && lt("1.34.0", versionConfig.minVersion)) {
240286
240278
  console.error(`
240287
- It looks like your version of UR (${"1.33.0"}) needs an update.
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.33.0"
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.33.0"
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.33.0" : "unknown";
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.33.0", maxVersion)) {
241983
- logForDebugging(`Native installer: current version ${"1.33.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
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.33.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
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.33.0",
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.33.0"
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.33.0"}
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.33.0"
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.33.0",
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.33.0";
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.33.0"}`,
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.33.0",
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.33.0") {
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.33.0")
374583
374575
  releaseNotes
374584
374576
  };
374585
374577
  }
374586
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.33.0") {
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.33.0";
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.33.0") {
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.33.0") {
377222
+ if (current.lastReleaseNotesSeen === "1.34.0") {
377231
377223
  return current;
377232
377224
  }
377233
377225
  return {
377234
377226
  ...current,
377235
- lastReleaseNotesSeen: "1.33.0"
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.33.0"
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.33.0"
593709
+ value: "1.34.0"
593718
593710
  };
593719
593711
  }, version2, version_default;
593720
593712
  var init_version = __esm(() => {
@@ -596689,6 +596681,10 @@ function ProviderFirstModelPicker({
596689
596681
  setStep("connect");
596690
596682
  return;
596691
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
+ }
596692
596688
  setProviderWarning(`Provider "${provider.value}" is ${provider.status}: ${provider.statusLabel}. Run \`ur provider doctor ${provider.value}\`, or choose a connected API/local/server provider.`);
596693
596689
  return;
596694
596690
  }
@@ -603780,7 +603776,7 @@ function generateHtmlReport(data, insights) {
603780
603776
  </html>`;
603781
603777
  }
603782
603778
  function buildExportData(data, insights, facets, remoteStats) {
603783
- const version3 = typeof MACRO !== "undefined" ? "1.33.0" : "unknown";
603779
+ const version3 = typeof MACRO !== "undefined" ? "1.34.0" : "unknown";
603784
603780
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
603785
603781
  const facets_summary = {
603786
603782
  total: facets.size,
@@ -608060,7 +608056,7 @@ var init_sessionStorage = __esm(() => {
608060
608056
  init_settings2();
608061
608057
  init_slowOperations();
608062
608058
  init_uuid();
608063
- VERSION5 = typeof MACRO !== "undefined" ? "1.33.0" : "unknown";
608059
+ VERSION5 = typeof MACRO !== "undefined" ? "1.34.0" : "unknown";
608064
608060
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
608065
608061
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
608066
608062
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -609265,7 +609261,7 @@ var init_filesystem = __esm(() => {
609265
609261
  });
609266
609262
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
609267
609263
  const nonce = randomBytes18(16).toString("hex");
609268
- return join200(getURTempDir(), "bundled-skills", "1.33.0", nonce);
609264
+ return join200(getURTempDir(), "bundled-skills", "1.34.0", nonce);
609269
609265
  });
609270
609266
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
609271
609267
  });
@@ -615554,7 +615550,7 @@ function computeFingerprint(messageText2, version3) {
615554
615550
  }
615555
615551
  function computeFingerprintFromMessages(messages) {
615556
615552
  const firstMessageText = extractFirstMessageText(messages);
615557
- return computeFingerprint(firstMessageText, "1.33.0");
615553
+ return computeFingerprint(firstMessageText, "1.34.0");
615558
615554
  }
615559
615555
  var FINGERPRINT_SALT = "59cf53e54c78";
615560
615556
  var init_fingerprint = () => {};
@@ -617421,7 +617417,7 @@ async function sideQuery(opts) {
617421
617417
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
617422
617418
  }
617423
617419
  const messageText2 = extractFirstUserMessageText(messages);
617424
- const fingerprint = computeFingerprint(messageText2, "1.33.0");
617420
+ const fingerprint = computeFingerprint(messageText2, "1.34.0");
617425
617421
  const attributionHeader = getAttributionHeader(fingerprint);
617426
617422
  const systemBlocks = [
617427
617423
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -622158,7 +622154,7 @@ function buildSystemInitMessage(inputs) {
622158
622154
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
622159
622155
  apiKeySource: getURHQApiKeyWithSource().source,
622160
622156
  betas: getSdkBetas(),
622161
- ur_version: "1.33.0",
622157
+ ur_version: "1.34.0",
622162
622158
  output_style: outputStyle2,
622163
622159
  agents: inputs.agents.map((agent) => agent.agentType),
622164
622160
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -636786,7 +636782,7 @@ var init_useVoiceEnabled = __esm(() => {
636786
636782
  function getSemverPart(version3) {
636787
636783
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
636788
636784
  }
636789
- function useUpdateNotification(updatedVersion, initialVersion = "1.33.0") {
636785
+ function useUpdateNotification(updatedVersion, initialVersion = "1.34.0") {
636790
636786
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
636791
636787
  if (!updatedVersion) {
636792
636788
  return null;
@@ -636835,7 +636831,7 @@ function AutoUpdater({
636835
636831
  return;
636836
636832
  }
636837
636833
  if (false) {}
636838
- const currentVersion = "1.33.0";
636834
+ const currentVersion = "1.34.0";
636839
636835
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
636840
636836
  let latestVersion = await getLatestVersion(channel);
636841
636837
  const isDisabled = isAutoUpdaterDisabled();
@@ -637064,12 +637060,12 @@ function NativeAutoUpdater({
637064
637060
  logEvent("tengu_native_auto_updater_start", {});
637065
637061
  try {
637066
637062
  const maxVersion = await getMaxVersion();
637067
- if (maxVersion && gt("1.33.0", maxVersion)) {
637063
+ if (maxVersion && gt("1.34.0", maxVersion)) {
637068
637064
  const msg = await getMaxVersionMessage();
637069
637065
  setMaxVersionIssue(msg ?? "affects your version");
637070
637066
  }
637071
637067
  const result = await installLatest(channel);
637072
- const currentVersion = "1.33.0";
637068
+ const currentVersion = "1.34.0";
637073
637069
  const latencyMs = Date.now() - startTime;
637074
637070
  if (result.lockFailed) {
637075
637071
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -637206,17 +637202,17 @@ function PackageManagerAutoUpdater(t0) {
637206
637202
  const maxVersion = await getMaxVersion();
637207
637203
  if (maxVersion && latest && gt(latest, maxVersion)) {
637208
637204
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
637209
- if (gte("1.33.0", maxVersion)) {
637210
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.33.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
637205
+ if (gte("1.34.0", maxVersion)) {
637206
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.34.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
637211
637207
  setUpdateAvailable(false);
637212
637208
  return;
637213
637209
  }
637214
637210
  latest = maxVersion;
637215
637211
  }
637216
- const hasUpdate = latest && !gte("1.33.0", latest) && !shouldSkipVersion(latest);
637212
+ const hasUpdate = latest && !gte("1.34.0", latest) && !shouldSkipVersion(latest);
637217
637213
  setUpdateAvailable(!!hasUpdate);
637218
637214
  if (hasUpdate) {
637219
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.33.0"} -> ${latest}`);
637215
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.34.0"} -> ${latest}`);
637220
637216
  }
637221
637217
  };
637222
637218
  $3[0] = t1;
@@ -637250,7 +637246,7 @@ function PackageManagerAutoUpdater(t0) {
637250
637246
  wrap: "truncate",
637251
637247
  children: [
637252
637248
  "currentVersion: ",
637253
- "1.33.0"
637249
+ "1.34.0"
637254
637250
  ]
637255
637251
  }, undefined, true, undefined, this);
637256
637252
  $3[3] = verbose;
@@ -649701,7 +649697,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
649701
649697
  project_dir: getOriginalCwd(),
649702
649698
  added_dirs: addedDirs
649703
649699
  },
649704
- version: "1.33.0",
649700
+ version: "1.34.0",
649705
649701
  output_style: {
649706
649702
  name: outputStyleName
649707
649703
  },
@@ -649784,7 +649780,7 @@ function StatusLineInner({
649784
649780
  const taskValues = Object.values(tasks2);
649785
649781
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
649786
649782
  const defaultStatusLineText = buildDefaultStatusBar({
649787
- version: "1.33.0",
649783
+ version: "1.34.0",
649788
649784
  providerLabel: providerRuntime.providerLabel,
649789
649785
  authMode: providerRuntime.authLabel,
649790
649786
  model: providerRuntime.model ?? renderModelName(mainLoopModel),
@@ -661272,7 +661268,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
661272
661268
  } catch {}
661273
661269
  const data = {
661274
661270
  trigger: trigger2,
661275
- version: "1.33.0",
661271
+ version: "1.34.0",
661276
661272
  platform: process.platform,
661277
661273
  transcript,
661278
661274
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -673156,7 +673152,7 @@ function WelcomeV2() {
673156
673152
  dimColor: true,
673157
673153
  children: [
673158
673154
  "v",
673159
- "1.33.0"
673155
+ "1.34.0"
673160
673156
  ]
673161
673157
  }, undefined, true, undefined, this)
673162
673158
  ]
@@ -674416,7 +674412,7 @@ function completeOnboarding() {
674416
674412
  saveGlobalConfig((current) => ({
674417
674413
  ...current,
674418
674414
  hasCompletedOnboarding: true,
674419
- lastOnboardingVersion: "1.33.0"
674415
+ lastOnboardingVersion: "1.34.0"
674420
674416
  }));
674421
674417
  }
674422
674418
  function showDialog(root2, renderer) {
@@ -679453,7 +679449,7 @@ function appendToLog(path24, message) {
679453
679449
  cwd: getFsImplementation().cwd(),
679454
679450
  userType: process.env.USER_TYPE,
679455
679451
  sessionId: getSessionId(),
679456
- version: "1.33.0"
679452
+ version: "1.34.0"
679457
679453
  };
679458
679454
  getLogWriter(path24).write(messageWithTimestamp);
679459
679455
  }
@@ -683547,8 +683543,8 @@ async function getEnvLessBridgeConfig() {
683547
683543
  }
683548
683544
  async function checkEnvLessBridgeMinVersion() {
683549
683545
  const cfg = await getEnvLessBridgeConfig();
683550
- if (cfg.min_version && lt("1.33.0", cfg.min_version)) {
683551
- return `Your version of UR (${"1.33.0"}) is too old for Remote Control.
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.
683552
683548
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
683553
683549
  }
683554
683550
  return null;
@@ -684022,7 +684018,7 @@ async function initBridgeCore(params) {
684022
684018
  const rawApi = createBridgeApiClient({
684023
684019
  baseUrl,
684024
684020
  getAccessToken,
684025
- runnerVersion: "1.33.0",
684021
+ runnerVersion: "1.34.0",
684026
684022
  onDebug: logForDebugging,
684027
684023
  onAuth401,
684028
684024
  getTrustedDeviceToken
@@ -689704,7 +689700,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
689704
689700
  setCwd(cwd3);
689705
689701
  const server2 = new Server({
689706
689702
  name: "ur/tengu",
689707
- version: "1.33.0"
689703
+ version: "1.34.0"
689708
689704
  }, {
689709
689705
  capabilities: {
689710
689706
  tools: {}
@@ -691681,7 +691677,7 @@ async function update() {
691681
691677
  logEvent("tengu_update_check", {});
691682
691678
  const diagnostic = await getDoctorDiagnostic();
691683
691679
  const result = await checkUpgradeStatus({
691684
- currentVersion: "1.33.0",
691680
+ currentVersion: "1.34.0",
691685
691681
  packageName: UR_AGENT_PACKAGE_NAME,
691686
691682
  installationType: diagnostic.installationType,
691687
691683
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -692927,7 +692923,7 @@ ${customInstructions}` : customInstructions;
692927
692923
  }
692928
692924
  }
692929
692925
  logForDiagnosticsNoPII("info", "started", {
692930
- version: "1.33.0",
692926
+ version: "1.34.0",
692931
692927
  is_native_binary: isInBundledMode()
692932
692928
  });
692933
692929
  registerCleanup(async () => {
@@ -693713,7 +693709,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
693713
693709
  pendingHookMessages
693714
693710
  }, renderAndRun);
693715
693711
  }
693716
- }).version("1.33.0 (UR-AGENT)", "-v, --version", "Output the version number");
693712
+ }).version("1.34.0 (UR-AGENT)", "-v, --version", "Output the version number");
693717
693713
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
693718
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.");
693719
693715
  if (canUserConfigureAdvisor()) {
@@ -694596,7 +694592,7 @@ if (false) {}
694596
694592
  async function main2() {
694597
694593
  const args = process.argv.slice(2);
694598
694594
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
694599
- console.log(`${"1.33.0"} (UR-AGENT)`);
694595
+ console.log(`${"1.34.0"} (UR-AGENT)`);
694600
694596
  return;
694601
694597
  }
694602
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); shown in `/model`, enabled once you `ur connect` them | static |
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.33.0",
3
+ "version": "1.34.0",
4
4
  "description": "UR-AGENT — autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",