ur-agent 1.30.3 → 1.30.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -51209,12 +51209,15 @@ __export(exports_providerRegistry, {
51209
51209
  listModelsForProviderWithSource: () => listModelsForProviderWithSource,
51210
51210
  listModelsForProvider: () => listModelsForProvider,
51211
51211
  launchProviderAuth: () => launchProviderAuth,
51212
+ isProviderRuntimeSelectable: () => isProviderRuntimeSelectable,
51212
51213
  isProviderId: () => isProviderId,
51213
51214
  isModelSupportedByProvider: () => isModelSupportedByProvider,
51214
51215
  getValidModelIdsForProvider: () => getValidModelIdsForProvider,
51215
51216
  getRuntimeProviderId: () => getRuntimeProviderId,
51216
51217
  getProviderStatus: () => getProviderStatus,
51218
+ getProviderRuntimeKind: () => getProviderRuntimeKind,
51217
51219
  getProviderRuntimeInfo: () => getProviderRuntimeInfo,
51220
+ getProviderRuntimeBlockReason: () => getProviderRuntimeBlockReason,
51218
51221
  getProviderRuntimeBackend: () => getProviderRuntimeBackend,
51219
51222
  getProviderFamily: () => getProviderFamily,
51220
51223
  getProviderDefinition: () => getProviderDefinition,
@@ -51227,6 +51230,7 @@ __export(exports_providerRegistry, {
51227
51230
  formatProviderList: () => formatProviderList,
51228
51231
  formatProviderDoctor: () => formatProviderDoctor,
51229
51232
  formatInvalidProviderModelMessage: () => formatInvalidProviderModelMessage,
51233
+ externalAppProviderBridgeEnabled: () => externalAppProviderBridgeEnabled,
51230
51234
  doctorProvider: () => doctorProvider,
51231
51235
  doctorActiveProvider: () => doctorActiveProvider,
51232
51236
  credentialTypeLabel: () => credentialTypeLabel,
@@ -51360,8 +51364,33 @@ function credentialTypeLabel(type) {
51360
51364
  return "OpenAI-compatible endpoint";
51361
51365
  }
51362
51366
  }
51363
- function listProviders() {
51364
- return PROVIDER_IDS.map((id) => PROVIDERS[id]);
51367
+ function externalAppProviderBridgeEnabled(env4 = process.env) {
51368
+ return env4.UR_ENABLE_EXTERNAL_APP_PROVIDERS === "1";
51369
+ }
51370
+ function getProviderRuntimeKind(providerId) {
51371
+ const provider = resolveProviderId(providerId);
51372
+ return provider ? getProviderDefinition(provider).runtimeKind : "unknown";
51373
+ }
51374
+ function getProviderRuntimeBlockReason(providerId, env4 = process.env) {
51375
+ const provider = resolveProviderId(providerId);
51376
+ if (!provider) {
51377
+ return `Unknown provider "${providerId}". Run: ur provider list`;
51378
+ }
51379
+ const definition = getProviderDefinition(provider);
51380
+ if (definition.runtimeKind !== "external-app") {
51381
+ return null;
51382
+ }
51383
+ if (externalAppProviderBridgeEnabled(env4)) {
51384
+ return null;
51385
+ }
51386
+ return `Provider "${provider}" uses an external app bridge (${definition.displayName}), not a UR-native model endpoint. UR's independent runtime does not require Codex, Claude Code, Gemini CLI, or Antigravity to be installed. Choose an API/local/server provider such as openai-api, anthropic-api, gemini-api, openrouter, ollama, lmstudio, llama.cpp, or vllm. To intentionally delegate turns to the external app bridge, set UR_ENABLE_EXTERNAL_APP_PROVIDERS=1.`;
51387
+ }
51388
+ function isProviderRuntimeSelectable(providerId, env4 = process.env) {
51389
+ return getProviderRuntimeBlockReason(providerId, env4) === null;
51390
+ }
51391
+ function listProviders(options = {}) {
51392
+ const includeExternal = options.includeExternalAppBridges ?? externalAppProviderBridgeEnabled(options.env ?? process.env);
51393
+ return PROVIDER_IDS.map((id) => PROVIDERS[id]).filter((provider) => includeExternal || provider.runtimeKind !== "external-app");
51365
51394
  }
51366
51395
  function hasSecretLikeValue(value) {
51367
51396
  const trimmed = value.trim();
@@ -51409,6 +51438,13 @@ function setSafeProviderConfig(key, value) {
51409
51438
  message: `Unknown provider "${trimmed}". Run: ur provider list`
51410
51439
  };
51411
51440
  }
51441
+ const runtimeBlock = getProviderRuntimeBlockReason(provider);
51442
+ if (runtimeBlock) {
51443
+ return {
51444
+ ok: false,
51445
+ message: runtimeBlock
51446
+ };
51447
+ }
51412
51448
  const currentSettings = getInitialSettings();
51413
51449
  const currentModel = getActiveProviderSettings(currentSettings).model;
51414
51450
  const nextProviderSettings = { active: provider };
@@ -51433,12 +51469,28 @@ function setSafeProviderConfig(key, value) {
51433
51469
  message: `Unknown fallback provider "${trimmed}". Run: ur provider list`
51434
51470
  };
51435
51471
  }
51472
+ if (fallback !== "disabled") {
51473
+ const runtimeBlock = getProviderRuntimeBlockReason(fallback);
51474
+ if (runtimeBlock) {
51475
+ return {
51476
+ ok: false,
51477
+ message: runtimeBlock
51478
+ };
51479
+ }
51480
+ }
51436
51481
  settings = { provider: { fallback } };
51437
51482
  } else if (key === "provider.command_path") {
51438
51483
  settings = { provider: { commandPath: trimmed } };
51439
51484
  } else if (key === "model") {
51440
51485
  const currentSettings = getInitialSettings();
51441
51486
  const currentProvider = getActiveProviderSettings(currentSettings).active ?? "ollama";
51487
+ const runtimeBlock = getProviderRuntimeBlockReason(currentProvider);
51488
+ if (runtimeBlock) {
51489
+ return {
51490
+ ok: false,
51491
+ message: runtimeBlock
51492
+ };
51493
+ }
51442
51494
  const validation = validateProviderModelPair(currentProvider, trimmed);
51443
51495
  if (validation.valid === false) {
51444
51496
  return {
@@ -51917,6 +51969,7 @@ function formatProviderList(json2 = false) {
51917
51969
  accessTypeLabel: getProviderAccessTypeLabel(provider),
51918
51970
  credentialType: provider.credentialType,
51919
51971
  modelDiscoveryType: provider.modelDiscoveryType,
51972
+ runtimeKind: provider.runtimeKind,
51920
51973
  runtimeBackend: getProviderRuntimeBackend(provider.id),
51921
51974
  authMode: provider.authMode,
51922
51975
  accessPath: provider.accessPathLabel,
@@ -51926,9 +51979,9 @@ function formatProviderList(json2 = false) {
51926
51979
  return JSON.stringify(providers, null, 2);
51927
51980
  }
51928
51981
  return [
51929
- "Provider | ID | Aliases | Access type | Credential | Model discovery | Runtime backend | Access path",
51930
- "--- | --- | --- | --- | --- | --- | --- | ---",
51931
- ...providers.map((provider) => `${provider.name} | ${provider.id} | ${provider.aliases.slice(0, 3).join(", ") || "-"} | ${provider.accessTypeLabel} | ${provider.credentialType} | ${provider.modelDiscoveryType} | ${provider.runtimeBackend} | ${provider.accessPath}`)
51982
+ "Provider | ID | Aliases | Access type | Credential | Model discovery | Runtime kind | Runtime backend | Access path",
51983
+ "--- | --- | --- | --- | --- | --- | --- | --- | ---",
51984
+ ...providers.map((provider) => `${provider.name} | ${provider.id} | ${provider.aliases.slice(0, 3).join(", ") || "-"} | ${provider.accessTypeLabel} | ${provider.credentialType} | ${provider.modelDiscoveryType} | ${provider.runtimeKind} | ${provider.runtimeBackend} | ${provider.accessPath}`)
51932
51985
  ].join(`
51933
51986
  `);
51934
51987
  }
@@ -51936,14 +51989,20 @@ function formatProviderDoctor(result, json2 = false) {
51936
51989
  if (json2) {
51937
51990
  return JSON.stringify(result, null, 2);
51938
51991
  }
51992
+ const runtimeBlock = getProviderRuntimeBlockReason(result.provider);
51939
51993
  const lines = [
51940
51994
  `Provider: ${result.displayName} (${result.provider})`,
51941
51995
  `Access: ${getProviderAccessTypeLabel(getProviderDefinition(result.provider))}`,
51942
51996
  `Credential: ${getProviderDefinition(result.provider).credentialType}`,
51997
+ `Runtime kind: ${getProviderDefinition(result.provider).runtimeKind}`,
51943
51998
  `Runtime backend: ${getProviderRuntimeBackend(result.provider)}`,
51999
+ `Runtime available: ${runtimeBlock ? "no" : "yes"}`,
51944
52000
  `Auth: ${authModeLabel(result.authMode)}`,
51945
52001
  `Status: ${result.ok ? "ready" : "not ready"}`
51946
52002
  ];
52003
+ if (runtimeBlock) {
52004
+ lines.push(`Runtime note: ${runtimeBlock}`);
52005
+ }
51947
52006
  for (const check3 of result.checks) {
51948
52007
  lines.push(`- ${check3.status.toUpperCase()} ${check3.name}: ${check3.message}`);
51949
52008
  }
@@ -51971,10 +52030,15 @@ Suggested fix: ${result.suggestedFix}` : "";
51971
52030
  const settings = getActiveProviderSettings(getInitialSettings());
51972
52031
  const model = settings.model ? `
51973
52032
  Active model: ${settings.model}` : "";
52033
+ const runtimeBlock = getProviderRuntimeBlockReason(result.provider);
52034
+ const runtime = `
52035
+ Runtime available: ${runtimeBlock ? "no" : "yes"}${runtimeBlock ? `
52036
+ Runtime note: ${runtimeBlock}` : ""}`;
51974
52037
  return `Selected provider: ${result.displayName} (${result.provider})
51975
52038
  Access type: ${getProviderAccessTypeLabel(definition)}
51976
52039
  Credential: ${definition.credentialType}
51977
- Runtime backend: ${getProviderRuntimeBackend(result.provider)}${model}
52040
+ Runtime kind: ${definition.runtimeKind}
52041
+ Runtime backend: ${getProviderRuntimeBackend(result.provider)}${model}${runtime}
51978
52042
  Auth mode: ${authModeLabel(result.authMode)}
51979
52043
  Ready: ${result.ok ? "yes" : "no"}${failure}${fix}`;
51980
52044
  }
@@ -52233,6 +52297,13 @@ function setProviderModel(providerId, modelId, options = {}) {
52233
52297
  message: `Unknown provider "${providerId}". Run: ur provider list`
52234
52298
  };
52235
52299
  }
52300
+ const runtimeBlock = getProviderRuntimeBlockReason(provider);
52301
+ if (runtimeBlock) {
52302
+ return {
52303
+ ok: false,
52304
+ message: runtimeBlock
52305
+ };
52306
+ }
52236
52307
  const validation = validateProviderModelPair(provider, modelId, {
52237
52308
  availableModels: options.availableModels
52238
52309
  });
@@ -52270,19 +52341,19 @@ var init_providerRegistry = __esm(() => {
52270
52341
  init_settings2();
52271
52342
  init_which();
52272
52343
  PROVIDER_IDS = [
52273
- "codex-cli",
52274
- "claude-code-cli",
52275
- "gemini-cli",
52276
- "antigravity-cli",
52344
+ "ollama",
52345
+ "lmstudio",
52346
+ "llama.cpp",
52347
+ "vllm",
52348
+ "openai-compatible",
52277
52349
  "openai-api",
52278
52350
  "anthropic-api",
52279
52351
  "gemini-api",
52280
52352
  "openrouter",
52281
- "openai-compatible",
52282
- "ollama",
52283
- "lmstudio",
52284
- "llama.cpp",
52285
- "vllm"
52353
+ "codex-cli",
52354
+ "claude-code-cli",
52355
+ "gemini-cli",
52356
+ "antigravity-cli"
52286
52357
  ];
52287
52358
  LOCALHOST_RE = /^(https?:\/\/)?(localhost|127\.0\.0\.1|\[::1\]|::1)(:\d+)?(\/|$)/i;
52288
52359
  PROVIDERS = {
@@ -52296,6 +52367,7 @@ var init_providerRegistry = __esm(() => {
52296
52367
  statusCheck: "cli-login",
52297
52368
  listModels: "static",
52298
52369
  validateModel: "static-list",
52370
+ runtimeKind: "external-app",
52299
52371
  authMode: "subscription",
52300
52372
  legalPath: "official Codex CLI login",
52301
52373
  accessPathLabel: "subscription login via official Codex CLI",
@@ -52315,6 +52387,7 @@ var init_providerRegistry = __esm(() => {
52315
52387
  statusCheck: "cli-login",
52316
52388
  listModels: "static",
52317
52389
  validateModel: "static-list",
52390
+ runtimeKind: "external-app",
52318
52391
  authMode: "subscription",
52319
52392
  legalPath: "official Claude Code CLI login",
52320
52393
  accessPathLabel: "subscription login via official Claude Code CLI",
@@ -52333,6 +52406,7 @@ var init_providerRegistry = __esm(() => {
52333
52406
  statusCheck: "cli-login",
52334
52407
  listModels: "static",
52335
52408
  validateModel: "static-list",
52409
+ runtimeKind: "external-app",
52336
52410
  authMode: "enterprise-login",
52337
52411
  legalPath: "official Gemini Code Assist login",
52338
52412
  accessPathLabel: "subscription login via official Gemini CLI",
@@ -52351,6 +52425,7 @@ var init_providerRegistry = __esm(() => {
52351
52425
  statusCheck: "cli-login",
52352
52426
  listModels: "static",
52353
52427
  validateModel: "static-list",
52428
+ runtimeKind: "external-app",
52354
52429
  authMode: "personal-login",
52355
52430
  legalPath: "official Antigravity CLI login, where supported",
52356
52431
  accessPathLabel: "subscription login via official Antigravity CLI",
@@ -52368,6 +52443,7 @@ var init_providerRegistry = __esm(() => {
52368
52443
  statusCheck: "api-key",
52369
52444
  listModels: "static",
52370
52445
  validateModel: "static-list",
52446
+ runtimeKind: "ur-native",
52371
52447
  authMode: "api",
52372
52448
  legalPath: "OPENAI_API_KEY",
52373
52449
  accessPathLabel: "API key from OPENAI_API_KEY",
@@ -52383,6 +52459,7 @@ var init_providerRegistry = __esm(() => {
52383
52459
  statusCheck: "api-key",
52384
52460
  listModels: "static",
52385
52461
  validateModel: "static-list",
52462
+ runtimeKind: "ur-native",
52386
52463
  authMode: "api",
52387
52464
  legalPath: "ANTHROPIC_API_KEY",
52388
52465
  accessPathLabel: "API key from ANTHROPIC_API_KEY",
@@ -52398,6 +52475,7 @@ var init_providerRegistry = __esm(() => {
52398
52475
  statusCheck: "api-key",
52399
52476
  listModels: "static",
52400
52477
  validateModel: "static-list",
52478
+ runtimeKind: "ur-native",
52401
52479
  authMode: "api",
52402
52480
  legalPath: "GEMINI_API_KEY",
52403
52481
  accessPathLabel: "API key from GEMINI_API_KEY",
@@ -52413,6 +52491,7 @@ var init_providerRegistry = __esm(() => {
52413
52491
  statusCheck: "api-key",
52414
52492
  listModels: "static",
52415
52493
  validateModel: "static-list",
52494
+ runtimeKind: "ur-native",
52416
52495
  authMode: "api",
52417
52496
  legalPath: "OPENROUTER_API_KEY",
52418
52497
  accessPathLabel: "API key from OPENROUTER_API_KEY",
@@ -52429,6 +52508,7 @@ var init_providerRegistry = __esm(() => {
52429
52508
  statusCheck: "endpoint",
52430
52509
  listModels: "openai-compatible-models",
52431
52510
  validateModel: "discovered-list",
52511
+ runtimeKind: "ur-native",
52432
52512
  authMode: "api",
52433
52513
  legalPath: "user-selected OpenAI-compatible base URL with API key only when required by that endpoint",
52434
52514
  accessPathLabel: "OpenAI-compatible endpoint",
@@ -52445,6 +52525,7 @@ var init_providerRegistry = __esm(() => {
52445
52525
  statusCheck: "endpoint",
52446
52526
  listModels: "ollama-tags",
52447
52527
  validateModel: "discovered-list",
52528
+ runtimeKind: "ur-native",
52448
52529
  authMode: "local",
52449
52530
  legalPath: "localhost Ollama runtime",
52450
52531
  accessPathLabel: "local Ollama runtime",
@@ -52462,6 +52543,7 @@ var init_providerRegistry = __esm(() => {
52462
52543
  statusCheck: "endpoint",
52463
52544
  listModels: "openai-compatible-models",
52464
52545
  validateModel: "discovered-list",
52546
+ runtimeKind: "ur-native",
52465
52547
  authMode: "local",
52466
52548
  legalPath: "local OpenAI-compatible server",
52467
52549
  accessPathLabel: "local OpenAI-compatible endpoint",
@@ -52479,6 +52561,7 @@ var init_providerRegistry = __esm(() => {
52479
52561
  statusCheck: "endpoint",
52480
52562
  listModels: "openai-compatible-models",
52481
52563
  validateModel: "discovered-list",
52564
+ runtimeKind: "ur-native",
52482
52565
  authMode: "local",
52483
52566
  legalPath: "local OpenAI-compatible server",
52484
52567
  accessPathLabel: "local OpenAI-compatible endpoint",
@@ -52496,6 +52579,7 @@ var init_providerRegistry = __esm(() => {
52496
52579
  statusCheck: "endpoint",
52497
52580
  listModels: "openai-compatible-models",
52498
52581
  validateModel: "discovered-list",
52582
+ runtimeKind: "ur-native",
52499
52583
  authMode: "local",
52500
52584
  legalPath: "OpenAI-compatible server",
52501
52585
  accessPathLabel: "OpenAI-compatible endpoint runtime",
@@ -57394,6 +57478,10 @@ function resolveActiveProviderModel(options = {}) {
57394
57478
  if (!provider) {
57395
57479
  throw new Error(`Provider "${providerId}" is selected, but no runtime provider is registered. Run: ur provider list`);
57396
57480
  }
57481
+ const runtimeBlock = getProviderRuntimeBlockReason(providerId);
57482
+ if (runtimeBlock) {
57483
+ throw new Error(runtimeBlock);
57484
+ }
57397
57485
  const configuredModel = providerSettings.model;
57398
57486
  const defaultModel = getDefaultModelForProvider(providerId);
57399
57487
  const model = options.model ?? configuredModel ?? defaultModel;
@@ -57442,6 +57530,10 @@ async function createProviderClient(providerId, options = {}) {
57442
57530
  throw new Error(`Unknown provider: ${providerId}`);
57443
57531
  }
57444
57532
  const provider = getProviderDefinition(resolved);
57533
+ const runtimeBlock = getProviderRuntimeBlockReason(resolved);
57534
+ if (runtimeBlock) {
57535
+ throw new Error(runtimeBlock);
57536
+ }
57445
57537
  let client;
57446
57538
  switch (provider.accessType) {
57447
57539
  case "local":
@@ -57500,6 +57592,10 @@ async function createOpenAICompatibleProviderClient(providerId, options = {}) {
57500
57592
  }
57501
57593
  async function createSubscriptionClient(providerId, options = {}) {
57502
57594
  const provider = getProviderDefinition(providerId);
57595
+ const runtimeBlock = getProviderRuntimeBlockReason(providerId);
57596
+ if (runtimeBlock) {
57597
+ throw new Error(runtimeBlock);
57598
+ }
57503
57599
  const settings = getInitialSettings();
57504
57600
  const providerSettings = getActiveProviderSettings(settings);
57505
57601
  const { which: which2 } = await Promise.resolve().then(() => (init_which(), exports_which));
@@ -69312,7 +69408,7 @@ var init_auth = __esm(() => {
69312
69408
 
69313
69409
  // src/utils/userAgent.ts
69314
69410
  function getURCodeUserAgent() {
69315
- return `ur/${"1.30.3"}`;
69411
+ return `ur/${"1.30.5"}`;
69316
69412
  }
69317
69413
 
69318
69414
  // src/utils/workloadContext.ts
@@ -69334,7 +69430,7 @@ function getUserAgent() {
69334
69430
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
69335
69431
  const workload = getWorkload();
69336
69432
  const workloadSuffix = workload ? `, workload/${workload}` : "";
69337
- return `ur-cli/${"1.30.3"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
69433
+ return `ur-cli/${"1.30.5"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
69338
69434
  }
69339
69435
  function getMCPUserAgent() {
69340
69436
  const parts = [];
@@ -69348,7 +69444,7 @@ function getMCPUserAgent() {
69348
69444
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
69349
69445
  }
69350
69446
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
69351
- return `ur/${"1.30.3"}${suffix}`;
69447
+ return `ur/${"1.30.5"}${suffix}`;
69352
69448
  }
69353
69449
  function getWebFetchUserAgent() {
69354
69450
  return `UR-User (${getURCodeUserAgent()})`;
@@ -69486,7 +69582,7 @@ var init_user = __esm(() => {
69486
69582
  deviceId,
69487
69583
  sessionId: getSessionId(),
69488
69584
  email: getEmail(),
69489
- appVersion: "1.30.3",
69585
+ appVersion: "1.30.5",
69490
69586
  platform: getHostPlatformForAnalytics(),
69491
69587
  organizationUuid,
69492
69588
  accountUuid,
@@ -76003,7 +76099,7 @@ var init_metadata = __esm(() => {
76003
76099
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
76004
76100
  WHITESPACE_REGEX = /\s+/;
76005
76101
  getVersionBase = memoize_default(() => {
76006
- const match = "1.30.3".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
76102
+ const match = "1.30.5".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
76007
76103
  return match ? match[0] : undefined;
76008
76104
  });
76009
76105
  buildEnvContext = memoize_default(async () => {
@@ -76043,7 +76139,7 @@ var init_metadata = __esm(() => {
76043
76139
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
76044
76140
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
76045
76141
  isURAiAuth: isURAISubscriber2(),
76046
- version: "1.30.3",
76142
+ version: "1.30.5",
76047
76143
  versionBase: getVersionBase(),
76048
76144
  buildTime: "",
76049
76145
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -76713,7 +76809,7 @@ function initialize1PEventLogging() {
76713
76809
  const platform2 = getPlatform();
76714
76810
  const attributes = {
76715
76811
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
76716
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.30.3"
76812
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.30.5"
76717
76813
  };
76718
76814
  if (platform2 === "wsl") {
76719
76815
  const wslVersion = getWslVersion();
@@ -76740,7 +76836,7 @@ function initialize1PEventLogging() {
76740
76836
  })
76741
76837
  ]
76742
76838
  });
76743
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.30.3");
76839
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.30.5");
76744
76840
  }
76745
76841
  async function reinitialize1PEventLoggingIfConfigChanged() {
76746
76842
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -82037,7 +82133,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
82037
82133
  function formatA2AAgentCard(options = {}, pretty = true) {
82038
82134
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
82039
82135
  }
82040
- var urVersion = "1.30.3", coverage, priorityRoadmap;
82136
+ var urVersion = "1.30.5", coverage, priorityRoadmap;
82041
82137
  var init_trends = __esm(() => {
82042
82138
  coverage = [
82043
82139
  {
@@ -84030,7 +84126,7 @@ function getAttributionHeader(fingerprint) {
84030
84126
  if (!isAttributionHeaderEnabled()) {
84031
84127
  return "";
84032
84128
  }
84033
- const version2 = `${"1.30.3"}.${fingerprint}`;
84129
+ const version2 = `${"1.30.5"}.${fingerprint}`;
84034
84130
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
84035
84131
  const cch = "";
84036
84132
  const workload = getWorkload();
@@ -191703,7 +191799,7 @@ function getTelemetryAttributes() {
191703
191799
  attributes["session.id"] = sessionId;
191704
191800
  }
191705
191801
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
191706
- attributes["app.version"] = "1.30.3";
191802
+ attributes["app.version"] = "1.30.5";
191707
191803
  }
191708
191804
  const oauthAccount = getOauthAccountInfo();
191709
191805
  if (oauthAccount) {
@@ -227108,7 +227204,7 @@ function getInstallationEnv() {
227108
227204
  return;
227109
227205
  }
227110
227206
  function getURCodeVersion() {
227111
- return "1.30.3";
227207
+ return "1.30.5";
227112
227208
  }
227113
227209
  async function getInstalledVSCodeExtensionVersion(command) {
227114
227210
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -229947,7 +230043,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
229947
230043
  const client2 = new Client({
229948
230044
  name: "ur",
229949
230045
  title: "UR",
229950
- version: "1.30.3",
230046
+ version: "1.30.5",
229951
230047
  description: "UR-AGENT autonomous engineering workflow engine",
229952
230048
  websiteUrl: PRODUCT_URL
229953
230049
  }, {
@@ -230301,7 +230397,7 @@ var init_client5 = __esm(() => {
230301
230397
  const client2 = new Client({
230302
230398
  name: "ur",
230303
230399
  title: "UR",
230304
- version: "1.30.3",
230400
+ version: "1.30.5",
230305
230401
  description: "UR-AGENT autonomous engineering workflow engine",
230306
230402
  websiteUrl: PRODUCT_URL
230307
230403
  }, {
@@ -240117,9 +240213,9 @@ async function assertMinVersion() {
240117
240213
  if (false) {}
240118
240214
  try {
240119
240215
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
240120
- if (versionConfig.minVersion && lt("1.30.3", versionConfig.minVersion)) {
240216
+ if (versionConfig.minVersion && lt("1.30.5", versionConfig.minVersion)) {
240121
240217
  console.error(`
240122
- It looks like your version of UR (${"1.30.3"}) needs an update.
240218
+ It looks like your version of UR (${"1.30.5"}) needs an update.
240123
240219
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
240124
240220
 
240125
240221
  To update, please run:
@@ -240335,7 +240431,7 @@ async function installGlobalPackage(specificVersion) {
240335
240431
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
240336
240432
  logEvent("tengu_auto_updater_lock_contention", {
240337
240433
  pid: process.pid,
240338
- currentVersion: "1.30.3"
240434
+ currentVersion: "1.30.5"
240339
240435
  });
240340
240436
  return "in_progress";
240341
240437
  }
@@ -240344,7 +240440,7 @@ async function installGlobalPackage(specificVersion) {
240344
240440
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
240345
240441
  logError2(new Error("Windows NPM detected in WSL environment"));
240346
240442
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
240347
- currentVersion: "1.30.3"
240443
+ currentVersion: "1.30.5"
240348
240444
  });
240349
240445
  console.error(`
240350
240446
  Error: Windows NPM detected in WSL
@@ -240879,7 +240975,7 @@ function detectLinuxGlobPatternWarnings() {
240879
240975
  }
240880
240976
  async function getDoctorDiagnostic() {
240881
240977
  const installationType = await getCurrentInstallationType();
240882
- const version2 = typeof MACRO !== "undefined" ? "1.30.3" : "unknown";
240978
+ const version2 = typeof MACRO !== "undefined" ? "1.30.5" : "unknown";
240883
240979
  const installationPath = await getInstallationPath();
240884
240980
  const invokedBinary = getInvokedBinary();
240885
240981
  const multipleInstallations = await detectMultipleInstallations();
@@ -241814,8 +241910,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
241814
241910
  const maxVersion = await getMaxVersion();
241815
241911
  if (maxVersion && gt(version2, maxVersion)) {
241816
241912
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
241817
- if (gte("1.30.3", maxVersion)) {
241818
- logForDebugging(`Native installer: current version ${"1.30.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
241913
+ if (gte("1.30.5", maxVersion)) {
241914
+ logForDebugging(`Native installer: current version ${"1.30.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
241819
241915
  logEvent("tengu_native_update_skipped_max_version", {
241820
241916
  latency_ms: Date.now() - startTime,
241821
241917
  max_version: maxVersion,
@@ -241826,7 +241922,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
241826
241922
  version2 = maxVersion;
241827
241923
  }
241828
241924
  }
241829
- if (!forceReinstall && version2 === "1.30.3" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
241925
+ if (!forceReinstall && version2 === "1.30.5" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
241830
241926
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
241831
241927
  logEvent("tengu_native_update_complete", {
241832
241928
  latency_ms: Date.now() - startTime,
@@ -338753,7 +338849,7 @@ function Feedback({
338753
338849
  platform: env2.platform,
338754
338850
  gitRepo: envInfo.isGit,
338755
338851
  terminal: env2.terminal,
338756
- version: "1.30.3",
338852
+ version: "1.30.5",
338757
338853
  transcript: normalizeMessagesForAPI(messages),
338758
338854
  errors: sanitizedErrors,
338759
338855
  lastApiRequest: getLastAPIRequest(),
@@ -338945,7 +339041,7 @@ function Feedback({
338945
339041
  ", ",
338946
339042
  env2.terminal,
338947
339043
  ", v",
338948
- "1.30.3"
339044
+ "1.30.5"
338949
339045
  ]
338950
339046
  }, undefined, true, undefined, this)
338951
339047
  ]
@@ -339051,7 +339147,7 @@ ${sanitizedDescription}
339051
339147
  ` + `**Environment Info**
339052
339148
  ` + `- Platform: ${env2.platform}
339053
339149
  ` + `- Terminal: ${env2.terminal}
339054
- ` + `- Version: ${"1.30.3"}
339150
+ ` + `- Version: ${"1.30.5"}
339055
339151
  ` + `- Feedback ID: ${feedbackId}
339056
339152
  ` + `
339057
339153
  **Errors**
@@ -342162,7 +342258,7 @@ function buildPrimarySection() {
342162
342258
  }, undefined, false, undefined, this);
342163
342259
  return [{
342164
342260
  label: "Version",
342165
- value: "1.30.3"
342261
+ value: "1.30.5"
342166
342262
  }, {
342167
342263
  label: "Session name",
342168
342264
  value: nameValue
@@ -345462,7 +345558,7 @@ function Config({
345462
345558
  }
345463
345559
  }, undefined, false, undefined, this)
345464
345560
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
345465
- currentVersion: "1.30.3",
345561
+ currentVersion: "1.30.5",
345466
345562
  onChoice: (choice) => {
345467
345563
  setShowSubmenu(null);
345468
345564
  setTabsHidden(false);
@@ -345474,7 +345570,7 @@ function Config({
345474
345570
  autoUpdatesChannel: "stable"
345475
345571
  };
345476
345572
  if (choice === "stay") {
345477
- newSettings.minimumVersion = "1.30.3";
345573
+ newSettings.minimumVersion = "1.30.5";
345478
345574
  }
345479
345575
  updateSettingsForSource("userSettings", newSettings);
345480
345576
  setSettingsData((prev_27) => ({
@@ -353544,7 +353640,7 @@ function HelpV2(t0) {
353544
353640
  let t6;
353545
353641
  if ($3[31] !== tabs) {
353546
353642
  t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
353547
- title: `UR v${"1.30.3"}`,
353643
+ title: `UR v${"1.30.5"}`,
353548
353644
  color: "professionalBlue",
353549
353645
  defaultTab: "general",
353550
353646
  children: tabs
@@ -354290,7 +354386,7 @@ function buildToolUseContext(tools, readFileStateCache) {
354290
354386
  async function handleInitialize(options2) {
354291
354387
  return {
354292
354388
  name: "ur-agent",
354293
- version: "1.30.3",
354389
+ version: "1.30.5",
354294
354390
  protocolVersion: "0.1.0",
354295
354391
  workspaceRoot: options2.cwd,
354296
354392
  capabilities: {
@@ -374414,7 +374510,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
374414
374510
  return [];
374415
374511
  }
374416
374512
  }
374417
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.30.3") {
374513
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.30.5") {
374418
374514
  if (process.env.USER_TYPE === "ant") {
374419
374515
  const changelog = "";
374420
374516
  if (changelog) {
@@ -374441,7 +374537,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.30.3")
374441
374537
  releaseNotes
374442
374538
  };
374443
374539
  }
374444
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.30.3") {
374540
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.30.5") {
374445
374541
  if (process.env.USER_TYPE === "ant") {
374446
374542
  const changelog = "";
374447
374543
  if (changelog) {
@@ -375611,7 +375707,7 @@ function getRecentActivitySync() {
375611
375707
  return cachedActivity;
375612
375708
  }
375613
375709
  function getLogoDisplayData() {
375614
- const version2 = process.env.DEMO_VERSION ?? "1.30.3";
375710
+ const version2 = process.env.DEMO_VERSION ?? "1.30.5";
375615
375711
  const serverUrl = getDirectConnectServerUrl();
375616
375712
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd2());
375617
375713
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -376400,7 +376496,7 @@ function LogoV2() {
376400
376496
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
376401
376497
  t2 = () => {
376402
376498
  const currentConfig = getGlobalConfig();
376403
- if (currentConfig.lastReleaseNotesSeen === "1.30.3") {
376499
+ if (currentConfig.lastReleaseNotesSeen === "1.30.5") {
376404
376500
  return;
376405
376501
  }
376406
376502
  saveGlobalConfig(_temp326);
@@ -377085,12 +377181,12 @@ function LogoV2() {
377085
377181
  return t41;
377086
377182
  }
377087
377183
  function _temp326(current) {
377088
- if (current.lastReleaseNotesSeen === "1.30.3") {
377184
+ if (current.lastReleaseNotesSeen === "1.30.5") {
377089
377185
  return current;
377090
377186
  }
377091
377187
  return {
377092
377188
  ...current,
377093
- lastReleaseNotesSeen: "1.30.3"
377189
+ lastReleaseNotesSeen: "1.30.5"
377094
377190
  };
377095
377191
  }
377096
377192
  function _temp243(s_0) {
@@ -592805,7 +592901,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
592805
592901
  smapsRollup,
592806
592902
  platform: process.platform,
592807
592903
  nodeVersion: process.version,
592808
- ccVersion: "1.30.3"
592904
+ ccVersion: "1.30.5"
592809
592905
  };
592810
592906
  }
592811
592907
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -593391,7 +593487,7 @@ var init_bridge_kick = __esm(() => {
593391
593487
  var call136 = async () => {
593392
593488
  return {
593393
593489
  type: "text",
593394
- value: "1.30.3"
593490
+ value: "1.30.5"
593395
593491
  };
593396
593492
  }, version2, version_default;
593397
593493
  var init_version = __esm(() => {
@@ -596270,6 +596366,7 @@ function ProviderFirstModelPicker({
596270
596366
  const [selectedProvider, setSelectedProvider] = import_react188.useState(null);
596271
596367
  const [modelSource, setModelSource] = import_react188.useState("static");
596272
596368
  const [modelWarning, setModelWarning] = import_react188.useState(null);
596369
+ const [providerWarning, setProviderWarning] = import_react188.useState(null);
596273
596370
  const effortValue = useAppState(selectEffortValue2);
596274
596371
  const [effort] = import_react188.useState(effortValue !== undefined ? convertEffortValueToLevel(effortValue) : undefined);
596275
596372
  const appThinkingEnabled = useAppState(selectThinkingEnabled2);
@@ -596288,11 +596385,12 @@ function ProviderFirstModelPicker({
596288
596385
  return {
596289
596386
  value: provider.id,
596290
596387
  label: provider.displayName,
596291
- description: `${accessType} \xB7 ${status2.label}`,
596388
+ description: `${accessType} \xB7 ${provider.credentialType} \xB7 ${provider.runtimeKind === "external-app" ? "external app bridge" : status2.label}`,
596292
596389
  status: status2.status,
596293
596390
  statusLabel: status2.label,
596294
596391
  accessType,
596295
596392
  credentialType: provider.credentialType,
596393
+ runtimeBlockedReason: getProviderRuntimeBlockReason(provider.id),
596296
596394
  provider
596297
596395
  };
596298
596396
  }));
@@ -596341,6 +596439,7 @@ function ProviderFirstModelPicker({
596341
596439
  const focusedModel = modelOptions.find((m) => m.value === focusedModelValue);
596342
596440
  function handleProviderFocus(value) {
596343
596441
  setFocusedProviderValue(value);
596442
+ setProviderWarning(null);
596344
596443
  }
596345
596444
  function handleModelFocus(value) {
596346
596445
  setFocusedModelValue(value);
@@ -596348,6 +596447,14 @@ function ProviderFirstModelPicker({
596348
596447
  function handleProviderSelect(value) {
596349
596448
  const provider = providerOptions.find((p2) => p2.value === value);
596350
596449
  if (provider) {
596450
+ if (provider.runtimeBlockedReason) {
596451
+ setProviderWarning(provider.runtimeBlockedReason);
596452
+ return;
596453
+ }
596454
+ if (provider.status !== "connected") {
596455
+ setProviderWarning(`Provider "${provider.value}" is ${provider.status}: ${provider.statusLabel}. Run \`ur provider doctor ${provider.value}\`, or choose a connected API/local/server provider.`);
596456
+ return;
596457
+ }
596351
596458
  setSelectedProvider(provider);
596352
596459
  setStep("model");
596353
596460
  setFocusedModelValue(null);
@@ -596510,6 +596617,14 @@ function ProviderFirstModelPicker({
596510
596617
  dimColor: true,
596511
596618
  children: focusedProvider.provider.accessPathLabel
596512
596619
  }, undefined, false, undefined, this),
596620
+ /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedText, {
596621
+ dimColor: true,
596622
+ color: focusedProvider.runtimeBlockedReason ? "error" : "subtle",
596623
+ children: [
596624
+ "Runtime: ",
596625
+ focusedProvider.provider.runtimeKind === "external-app" ? "external app bridge (disabled for independent UR runtime)" : "UR-native"
596626
+ ]
596627
+ }, undefined, true, undefined, this),
596513
596628
  focusedProvider.status !== "connected" && /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedText, {
596514
596629
  dimColor: true,
596515
596630
  color: "subtle",
@@ -596518,7 +596633,12 @@ function ProviderFirstModelPicker({
596518
596633
  focusedProvider.value,
596519
596634
  "` for troubleshooting"
596520
596635
  ]
596521
- }, undefined, true, undefined, this)
596636
+ }, undefined, true, undefined, this),
596637
+ providerWarning && focusedProvider.value === focusedProviderValue && /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedText, {
596638
+ dimColor: true,
596639
+ color: "error",
596640
+ children: providerWarning
596641
+ }, undefined, false, undefined, this)
596522
596642
  ]
596523
596643
  }, undefined, true, undefined, this)
596524
596644
  ]
@@ -597079,11 +597199,12 @@ function ProviderPicker({
597079
597199
  const selectOptions = providers.map((provider) => ({
597080
597200
  value: provider.id,
597081
597201
  label: provider.displayName,
597082
- description: `${getProviderAccessTypeLabel(provider)} \xB7 ${provider.credentialType}`
597202
+ description: `${getProviderAccessTypeLabel(provider)} \xB7 ${provider.credentialType} \xB7 ${provider.runtimeKind === "external-app" ? "external app bridge" : "UR-native"}`
597083
597203
  }));
597084
597204
  const visibleCount = Math.min(10, selectOptions.length);
597085
597205
  const hiddenCount = Math.max(0, selectOptions.length - visibleCount);
597086
597206
  const focusedProvider = providers.find((p2) => p2.id === focusedValue);
597207
+ const focusedBlockReason = focusedProvider ? getProviderRuntimeBlockReason(focusedProvider.id) : null;
597087
597208
  function handleFocus(value) {
597088
597209
  setFocusedValue(value);
597089
597210
  }
@@ -597093,6 +597214,10 @@ function ProviderPicker({
597093
597214
  from_provider: currentProvider,
597094
597215
  to_provider: value
597095
597216
  });
597217
+ const runtimeBlock = getProviderRuntimeBlockReason(value);
597218
+ if (runtimeBlock) {
597219
+ return;
597220
+ }
597096
597221
  const result = setSafeProviderConfig("provider", value);
597097
597222
  if (!result.ok) {
597098
597223
  return;
@@ -597161,21 +597286,28 @@ function ProviderPicker({
597161
597286
  /* @__PURE__ */ jsx_dev_runtime348.jsxDEV(ThemedBox_default, {
597162
597287
  marginBottom: 1,
597163
597288
  flexDirection: "column",
597164
- children: focusedProvider && /* @__PURE__ */ jsx_dev_runtime348.jsxDEV(ThemedText, {
597165
- dimColor: true,
597166
- children: [
597167
- focusedProvider.displayName,
597168
- " (",
597169
- focusedProvider.id,
597170
- ") \xB7",
597171
- " ",
597172
- getProviderAccessTypeLabel(focusedProvider),
597173
- " \xB7",
597174
- " ",
597175
- focusedProvider.accessPathLabel
597176
- ]
597177
- }, undefined, true, undefined, this)
597178
- }, undefined, false, undefined, this)
597289
+ children: [
597290
+ focusedProvider && /* @__PURE__ */ jsx_dev_runtime348.jsxDEV(ThemedText, {
597291
+ dimColor: true,
597292
+ children: [
597293
+ focusedProvider.displayName,
597294
+ " (",
597295
+ focusedProvider.id,
597296
+ ") \xB7",
597297
+ " ",
597298
+ getProviderAccessTypeLabel(focusedProvider),
597299
+ " \xB7",
597300
+ " ",
597301
+ focusedProvider.accessPathLabel
597302
+ ]
597303
+ }, undefined, true, undefined, this),
597304
+ focusedBlockReason && /* @__PURE__ */ jsx_dev_runtime348.jsxDEV(ThemedText, {
597305
+ dimColor: true,
597306
+ color: "error",
597307
+ children: focusedBlockReason
597308
+ }, undefined, false, undefined, this)
597309
+ ]
597310
+ }, undefined, true, undefined, this)
597179
597311
  ]
597180
597312
  }, undefined, true, undefined, this),
597181
597313
  isStandaloneCommand && /* @__PURE__ */ jsx_dev_runtime348.jsxDEV(ThemedText, {
@@ -603308,7 +603440,7 @@ function generateHtmlReport(data, insights) {
603308
603440
  </html>`;
603309
603441
  }
603310
603442
  function buildExportData(data, insights, facets, remoteStats) {
603311
- const version3 = typeof MACRO !== "undefined" ? "1.30.3" : "unknown";
603443
+ const version3 = typeof MACRO !== "undefined" ? "1.30.5" : "unknown";
603312
603444
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
603313
603445
  const facets_summary = {
603314
603446
  total: facets.size,
@@ -607586,7 +607718,7 @@ var init_sessionStorage = __esm(() => {
607586
607718
  init_settings2();
607587
607719
  init_slowOperations();
607588
607720
  init_uuid();
607589
- VERSION5 = typeof MACRO !== "undefined" ? "1.30.3" : "unknown";
607721
+ VERSION5 = typeof MACRO !== "undefined" ? "1.30.5" : "unknown";
607590
607722
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
607591
607723
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
607592
607724
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -608791,7 +608923,7 @@ var init_filesystem = __esm(() => {
608791
608923
  });
608792
608924
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
608793
608925
  const nonce = randomBytes18(16).toString("hex");
608794
- return join200(getURTempDir(), "bundled-skills", "1.30.3", nonce);
608926
+ return join200(getURTempDir(), "bundled-skills", "1.30.5", nonce);
608795
608927
  });
608796
608928
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
608797
608929
  });
@@ -615088,7 +615220,7 @@ function computeFingerprint(messageText2, version3) {
615088
615220
  }
615089
615221
  function computeFingerprintFromMessages(messages) {
615090
615222
  const firstMessageText = extractFirstMessageText(messages);
615091
- return computeFingerprint(firstMessageText, "1.30.3");
615223
+ return computeFingerprint(firstMessageText, "1.30.5");
615092
615224
  }
615093
615225
  var FINGERPRINT_SALT = "59cf53e54c78";
615094
615226
  var init_fingerprint = () => {};
@@ -616955,7 +617087,7 @@ async function sideQuery(opts) {
616955
617087
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
616956
617088
  }
616957
617089
  const messageText2 = extractFirstUserMessageText(messages);
616958
- const fingerprint = computeFingerprint(messageText2, "1.30.3");
617090
+ const fingerprint = computeFingerprint(messageText2, "1.30.5");
616959
617091
  const attributionHeader = getAttributionHeader(fingerprint);
616960
617092
  const systemBlocks = [
616961
617093
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -621692,7 +621824,7 @@ function buildSystemInitMessage(inputs) {
621692
621824
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
621693
621825
  apiKeySource: getURHQApiKeyWithSource().source,
621694
621826
  betas: getSdkBetas(),
621695
- ur_version: "1.30.3",
621827
+ ur_version: "1.30.5",
621696
621828
  output_style: outputStyle2,
621697
621829
  agents: inputs.agents.map((agent) => agent.agentType),
621698
621830
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -636320,7 +636452,7 @@ var init_useVoiceEnabled = __esm(() => {
636320
636452
  function getSemverPart(version3) {
636321
636453
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
636322
636454
  }
636323
- function useUpdateNotification(updatedVersion, initialVersion = "1.30.3") {
636455
+ function useUpdateNotification(updatedVersion, initialVersion = "1.30.5") {
636324
636456
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
636325
636457
  if (!updatedVersion) {
636326
636458
  return null;
@@ -636369,7 +636501,7 @@ function AutoUpdater({
636369
636501
  return;
636370
636502
  }
636371
636503
  if (false) {}
636372
- const currentVersion = "1.30.3";
636504
+ const currentVersion = "1.30.5";
636373
636505
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
636374
636506
  let latestVersion = await getLatestVersion(channel);
636375
636507
  const isDisabled = isAutoUpdaterDisabled();
@@ -636598,12 +636730,12 @@ function NativeAutoUpdater({
636598
636730
  logEvent("tengu_native_auto_updater_start", {});
636599
636731
  try {
636600
636732
  const maxVersion = await getMaxVersion();
636601
- if (maxVersion && gt("1.30.3", maxVersion)) {
636733
+ if (maxVersion && gt("1.30.5", maxVersion)) {
636602
636734
  const msg = await getMaxVersionMessage();
636603
636735
  setMaxVersionIssue(msg ?? "affects your version");
636604
636736
  }
636605
636737
  const result = await installLatest(channel);
636606
- const currentVersion = "1.30.3";
636738
+ const currentVersion = "1.30.5";
636607
636739
  const latencyMs = Date.now() - startTime;
636608
636740
  if (result.lockFailed) {
636609
636741
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -636740,17 +636872,17 @@ function PackageManagerAutoUpdater(t0) {
636740
636872
  const maxVersion = await getMaxVersion();
636741
636873
  if (maxVersion && latest && gt(latest, maxVersion)) {
636742
636874
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
636743
- if (gte("1.30.3", maxVersion)) {
636744
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.30.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
636875
+ if (gte("1.30.5", maxVersion)) {
636876
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.30.5"} is already at or above maxVersion ${maxVersion}, skipping update`);
636745
636877
  setUpdateAvailable(false);
636746
636878
  return;
636747
636879
  }
636748
636880
  latest = maxVersion;
636749
636881
  }
636750
- const hasUpdate = latest && !gte("1.30.3", latest) && !shouldSkipVersion(latest);
636882
+ const hasUpdate = latest && !gte("1.30.5", latest) && !shouldSkipVersion(latest);
636751
636883
  setUpdateAvailable(!!hasUpdate);
636752
636884
  if (hasUpdate) {
636753
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.30.3"} -> ${latest}`);
636885
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.30.5"} -> ${latest}`);
636754
636886
  }
636755
636887
  };
636756
636888
  $3[0] = t1;
@@ -636784,7 +636916,7 @@ function PackageManagerAutoUpdater(t0) {
636784
636916
  wrap: "truncate",
636785
636917
  children: [
636786
636918
  "currentVersion: ",
636787
- "1.30.3"
636919
+ "1.30.5"
636788
636920
  ]
636789
636921
  }, undefined, true, undefined, this);
636790
636922
  $3[3] = verbose;
@@ -649120,7 +649252,6 @@ function statusBarShouldDisplay({
649120
649252
  function buildDefaultStatusBar({
649121
649253
  version: version3,
649122
649254
  providerLabel,
649123
- authMode,
649124
649255
  model,
649125
649256
  mode: mode2,
649126
649257
  branch: branch2,
@@ -649130,36 +649261,31 @@ function buildDefaultStatusBar({
649130
649261
  latestVersion,
649131
649262
  isCheckingUpdate
649132
649263
  }) {
649133
- const parts = [`UR-AGENT v${version3}`];
649264
+ const parts = [];
649134
649265
  if (providerLabel) {
649135
- parts.push(`Provider: ${providerLabel}`);
649136
- }
649137
- if (authMode) {
649138
- parts.push(`Auth: ${authMode}`);
649266
+ parts.push(providerLabel);
649139
649267
  }
649140
649268
  if (model) {
649141
- parts.push(`model: ${model}`);
649269
+ parts.push(model);
649142
649270
  }
649143
649271
  if (mode2) {
649144
- parts.push(`mode: ${mode2}`);
649272
+ parts.push(mode2);
649145
649273
  }
649146
649274
  if (branch2 && branch2 !== "HEAD") {
649147
- parts.push(`branch: ${branch2}`);
649275
+ parts.push(branch2);
649148
649276
  }
649149
649277
  if (taskTotalCount > 0) {
649150
649278
  parts.push(`tasks: ${taskRunningCount}/${taskTotalCount} running`);
649151
- } else {
649152
- parts.push("tasks: idle");
649153
649279
  }
649154
649280
  if (checksStatus) {
649155
- parts.push(`checks: ${checksStatus}`);
649281
+ parts.push(checksStatus);
649156
649282
  }
649157
649283
  if (isCheckingUpdate) {
649158
- parts.push("Update: checking");
649284
+ parts.push("update checking");
649159
649285
  } else if (isUpdateAvailable(version3, latestVersion)) {
649160
- parts.push(`Update: ${version3} -> ${latestVersion} available`);
649286
+ parts.push(`update ${latestVersion} available`);
649161
649287
  }
649162
- return parts.join(" | ");
649288
+ return parts.length > 0 ? parts.join(" | ") : "ready";
649163
649289
  }
649164
649290
  var init_statusBar = __esm(() => {
649165
649291
  init_updateNotice();
@@ -649241,7 +649367,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
649241
649367
  project_dir: getOriginalCwd(),
649242
649368
  added_dirs: addedDirs
649243
649369
  },
649244
- version: "1.30.3",
649370
+ version: "1.30.5",
649245
649371
  output_style: {
649246
649372
  name: outputStyleName
649247
649373
  },
@@ -649324,7 +649450,7 @@ function StatusLineInner({
649324
649450
  const taskValues = Object.values(tasks2);
649325
649451
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
649326
649452
  const defaultStatusLineText = buildDefaultStatusBar({
649327
- version: "1.30.3",
649453
+ version: "1.30.5",
649328
649454
  providerLabel: providerRuntime.providerLabel,
649329
649455
  authMode: providerRuntime.authLabel,
649330
649456
  model: providerRuntime.model ?? renderModelName(mainLoopModel),
@@ -660812,7 +660938,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
660812
660938
  } catch {}
660813
660939
  const data = {
660814
660940
  trigger: trigger2,
660815
- version: "1.30.3",
660941
+ version: "1.30.5",
660816
660942
  platform: process.platform,
660817
660943
  transcript,
660818
660944
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -672696,7 +672822,7 @@ function WelcomeV2() {
672696
672822
  dimColor: true,
672697
672823
  children: [
672698
672824
  "v",
672699
- "1.30.3"
672825
+ "1.30.5"
672700
672826
  ]
672701
672827
  }, undefined, true, undefined, this)
672702
672828
  ]
@@ -673956,7 +674082,7 @@ function completeOnboarding() {
673956
674082
  saveGlobalConfig((current) => ({
673957
674083
  ...current,
673958
674084
  hasCompletedOnboarding: true,
673959
- lastOnboardingVersion: "1.30.3"
674085
+ lastOnboardingVersion: "1.30.5"
673960
674086
  }));
673961
674087
  }
673962
674088
  function showDialog(root2, renderer) {
@@ -679060,7 +679186,7 @@ function appendToLog(path24, message) {
679060
679186
  cwd: getFsImplementation().cwd(),
679061
679187
  userType: process.env.USER_TYPE,
679062
679188
  sessionId: getSessionId(),
679063
- version: "1.30.3"
679189
+ version: "1.30.5"
679064
679190
  };
679065
679191
  getLogWriter(path24).write(messageWithTimestamp);
679066
679192
  }
@@ -683154,8 +683280,8 @@ async function getEnvLessBridgeConfig() {
683154
683280
  }
683155
683281
  async function checkEnvLessBridgeMinVersion() {
683156
683282
  const cfg = await getEnvLessBridgeConfig();
683157
- if (cfg.min_version && lt("1.30.3", cfg.min_version)) {
683158
- return `Your version of UR (${"1.30.3"}) is too old for Remote Control.
683283
+ if (cfg.min_version && lt("1.30.5", cfg.min_version)) {
683284
+ return `Your version of UR (${"1.30.5"}) is too old for Remote Control.
683159
683285
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
683160
683286
  }
683161
683287
  return null;
@@ -683629,7 +683755,7 @@ async function initBridgeCore(params) {
683629
683755
  const rawApi = createBridgeApiClient({
683630
683756
  baseUrl,
683631
683757
  getAccessToken,
683632
- runnerVersion: "1.30.3",
683758
+ runnerVersion: "1.30.5",
683633
683759
  onDebug: logForDebugging,
683634
683760
  onAuth401,
683635
683761
  getTrustedDeviceToken
@@ -689311,7 +689437,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
689311
689437
  setCwd(cwd3);
689312
689438
  const server2 = new Server({
689313
689439
  name: "ur/tengu",
689314
- version: "1.30.3"
689440
+ version: "1.30.5"
689315
689441
  }, {
689316
689442
  capabilities: {
689317
689443
  tools: {}
@@ -691288,7 +691414,7 @@ async function update() {
691288
691414
  logEvent("tengu_update_check", {});
691289
691415
  const diagnostic = await getDoctorDiagnostic();
691290
691416
  const result = await checkUpgradeStatus({
691291
- currentVersion: "1.30.3",
691417
+ currentVersion: "1.30.5",
691292
691418
  packageName: UR_AGENT_PACKAGE_NAME,
691293
691419
  installationType: diagnostic.installationType,
691294
691420
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -692534,7 +692660,7 @@ ${customInstructions}` : customInstructions;
692534
692660
  }
692535
692661
  }
692536
692662
  logForDiagnosticsNoPII("info", "started", {
692537
- version: "1.30.3",
692663
+ version: "1.30.5",
692538
692664
  is_native_binary: isInBundledMode()
692539
692665
  });
692540
692666
  registerCleanup(async () => {
@@ -693320,7 +693446,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
693320
693446
  pendingHookMessages
693321
693447
  }, renderAndRun);
693322
693448
  }
693323
- }).version("1.30.3 (UR-AGENT)", "-v, --version", "Output the version number");
693449
+ }).version("1.30.5 (UR-AGENT)", "-v, --version", "Output the version number");
693324
693450
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
693325
693451
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
693326
693452
  if (canUserConfigureAdvisor()) {
@@ -694205,7 +694331,7 @@ if (false) {}
694205
694331
  async function main2() {
694206
694332
  const args = process.argv.slice(2);
694207
694333
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
694208
- console.log(`${"1.30.3"} (UR-AGENT)`);
694334
+ console.log(`${"1.30.5"} (UR-AGENT)`);
694209
694335
  return;
694210
694336
  }
694211
694337
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {