ur-agent 1.32.0 → 1.33.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.
Files changed (3) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/cli.js +178 -67
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.33.0
4
+
5
+ - Add API keys from inside UR while it is running: in `/model`, selecting an
6
+ API provider (OpenAI, Anthropic, Gemini, OpenRouter) that isn't connected now
7
+ shows a masked key-entry step. The key is stored in the OS keychain, then the
8
+ provider's models load live and you choose one — all without leaving the
9
+ session or setting an environment variable.
10
+ - Subscription login is unchanged: use `ur auth <provider>` (Codex, Claude,
11
+ Gemini, Antigravity).
12
+
3
13
  ## 1.32.0
4
14
 
5
15
  - `/model` now shows the subscription providers (Codex CLI, Claude Code, Gemini
package/dist/cli.js CHANGED
@@ -69518,7 +69518,7 @@ var init_auth = __esm(() => {
69518
69518
 
69519
69519
  // src/utils/userAgent.ts
69520
69520
  function getURCodeUserAgent() {
69521
- return `ur/${"1.32.0"}`;
69521
+ return `ur/${"1.33.0"}`;
69522
69522
  }
69523
69523
 
69524
69524
  // src/utils/workloadContext.ts
@@ -69540,7 +69540,7 @@ function getUserAgent() {
69540
69540
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
69541
69541
  const workload = getWorkload();
69542
69542
  const workloadSuffix = workload ? `, workload/${workload}` : "";
69543
- return `ur-cli/${"1.32.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
69543
+ return `ur-cli/${"1.33.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
69544
69544
  }
69545
69545
  function getMCPUserAgent() {
69546
69546
  const parts = [];
@@ -69554,7 +69554,7 @@ function getMCPUserAgent() {
69554
69554
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
69555
69555
  }
69556
69556
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
69557
- return `ur/${"1.32.0"}${suffix}`;
69557
+ return `ur/${"1.33.0"}${suffix}`;
69558
69558
  }
69559
69559
  function getWebFetchUserAgent() {
69560
69560
  return `UR-User (${getURCodeUserAgent()})`;
@@ -69692,7 +69692,7 @@ var init_user = __esm(() => {
69692
69692
  deviceId,
69693
69693
  sessionId: getSessionId(),
69694
69694
  email: getEmail(),
69695
- appVersion: "1.32.0",
69695
+ appVersion: "1.33.0",
69696
69696
  platform: getHostPlatformForAnalytics(),
69697
69697
  organizationUuid,
69698
69698
  accountUuid,
@@ -76209,7 +76209,7 @@ var init_metadata = __esm(() => {
76209
76209
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
76210
76210
  WHITESPACE_REGEX = /\s+/;
76211
76211
  getVersionBase = memoize_default(() => {
76212
- const match = "1.32.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
76212
+ const match = "1.33.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
76213
76213
  return match ? match[0] : undefined;
76214
76214
  });
76215
76215
  buildEnvContext = memoize_default(async () => {
@@ -76249,7 +76249,7 @@ var init_metadata = __esm(() => {
76249
76249
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
76250
76250
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
76251
76251
  isURAiAuth: isURAISubscriber2(),
76252
- version: "1.32.0",
76252
+ version: "1.33.0",
76253
76253
  versionBase: getVersionBase(),
76254
76254
  buildTime: "",
76255
76255
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -76919,7 +76919,7 @@ function initialize1PEventLogging() {
76919
76919
  const platform2 = getPlatform();
76920
76920
  const attributes = {
76921
76921
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
76922
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.32.0"
76922
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.33.0"
76923
76923
  };
76924
76924
  if (platform2 === "wsl") {
76925
76925
  const wslVersion = getWslVersion();
@@ -76946,7 +76946,7 @@ function initialize1PEventLogging() {
76946
76946
  })
76947
76947
  ]
76948
76948
  });
76949
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.32.0");
76949
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.33.0");
76950
76950
  }
76951
76951
  async function reinitialize1PEventLoggingIfConfigChanged() {
76952
76952
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -82243,7 +82243,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
82243
82243
  function formatA2AAgentCard(options = {}, pretty = true) {
82244
82244
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
82245
82245
  }
82246
- var urVersion = "1.32.0", coverage, priorityRoadmap;
82246
+ var urVersion = "1.33.0", coverage, priorityRoadmap;
82247
82247
  var init_trends = __esm(() => {
82248
82248
  coverage = [
82249
82249
  {
@@ -84236,7 +84236,7 @@ function getAttributionHeader(fingerprint) {
84236
84236
  if (!isAttributionHeaderEnabled()) {
84237
84237
  return "";
84238
84238
  }
84239
- const version2 = `${"1.32.0"}.${fingerprint}`;
84239
+ const version2 = `${"1.33.0"}.${fingerprint}`;
84240
84240
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
84241
84241
  const cch = "";
84242
84242
  const workload = getWorkload();
@@ -191890,7 +191890,7 @@ function getTelemetryAttributes() {
191890
191890
  attributes["session.id"] = sessionId;
191891
191891
  }
191892
191892
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
191893
- attributes["app.version"] = "1.32.0";
191893
+ attributes["app.version"] = "1.33.0";
191894
191894
  }
191895
191895
  const oauthAccount = getOauthAccountInfo();
191896
191896
  if (oauthAccount) {
@@ -227275,7 +227275,7 @@ function getInstallationEnv() {
227275
227275
  return;
227276
227276
  }
227277
227277
  function getURCodeVersion() {
227278
- return "1.32.0";
227278
+ return "1.33.0";
227279
227279
  }
227280
227280
  async function getInstalledVSCodeExtensionVersion(command) {
227281
227281
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -230114,7 +230114,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
230114
230114
  const client2 = new Client({
230115
230115
  name: "ur",
230116
230116
  title: "UR",
230117
- version: "1.32.0",
230117
+ version: "1.33.0",
230118
230118
  description: "UR-AGENT autonomous engineering workflow engine",
230119
230119
  websiteUrl: PRODUCT_URL
230120
230120
  }, {
@@ -230468,7 +230468,7 @@ var init_client5 = __esm(() => {
230468
230468
  const client2 = new Client({
230469
230469
  name: "ur",
230470
230470
  title: "UR",
230471
- version: "1.32.0",
230471
+ version: "1.33.0",
230472
230472
  description: "UR-AGENT autonomous engineering workflow engine",
230473
230473
  websiteUrl: PRODUCT_URL
230474
230474
  }, {
@@ -240282,9 +240282,9 @@ async function assertMinVersion() {
240282
240282
  if (false) {}
240283
240283
  try {
240284
240284
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
240285
- if (versionConfig.minVersion && lt("1.32.0", versionConfig.minVersion)) {
240285
+ if (versionConfig.minVersion && lt("1.33.0", versionConfig.minVersion)) {
240286
240286
  console.error(`
240287
- It looks like your version of UR (${"1.32.0"}) needs an update.
240287
+ It looks like your version of UR (${"1.33.0"}) needs an update.
240288
240288
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
240289
240289
 
240290
240290
  To update, please run:
@@ -240500,7 +240500,7 @@ async function installGlobalPackage(specificVersion) {
240500
240500
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
240501
240501
  logEvent("tengu_auto_updater_lock_contention", {
240502
240502
  pid: process.pid,
240503
- currentVersion: "1.32.0"
240503
+ currentVersion: "1.33.0"
240504
240504
  });
240505
240505
  return "in_progress";
240506
240506
  }
@@ -240509,7 +240509,7 @@ async function installGlobalPackage(specificVersion) {
240509
240509
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
240510
240510
  logError2(new Error("Windows NPM detected in WSL environment"));
240511
240511
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
240512
- currentVersion: "1.32.0"
240512
+ currentVersion: "1.33.0"
240513
240513
  });
240514
240514
  console.error(`
240515
240515
  Error: Windows NPM detected in WSL
@@ -241044,7 +241044,7 @@ function detectLinuxGlobPatternWarnings() {
241044
241044
  }
241045
241045
  async function getDoctorDiagnostic() {
241046
241046
  const installationType = await getCurrentInstallationType();
241047
- const version2 = typeof MACRO !== "undefined" ? "1.32.0" : "unknown";
241047
+ const version2 = typeof MACRO !== "undefined" ? "1.33.0" : "unknown";
241048
241048
  const installationPath = await getInstallationPath();
241049
241049
  const invokedBinary = getInvokedBinary();
241050
241050
  const multipleInstallations = await detectMultipleInstallations();
@@ -241979,8 +241979,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
241979
241979
  const maxVersion = await getMaxVersion();
241980
241980
  if (maxVersion && gt(version2, maxVersion)) {
241981
241981
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
241982
- if (gte("1.32.0", maxVersion)) {
241983
- logForDebugging(`Native installer: current version ${"1.32.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
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`);
241984
241984
  logEvent("tengu_native_update_skipped_max_version", {
241985
241985
  latency_ms: Date.now() - startTime,
241986
241986
  max_version: maxVersion,
@@ -241991,7 +241991,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
241991
241991
  version2 = maxVersion;
241992
241992
  }
241993
241993
  }
241994
- if (!forceReinstall && version2 === "1.32.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
241994
+ if (!forceReinstall && version2 === "1.33.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
241995
241995
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
241996
241996
  logEvent("tengu_native_update_complete", {
241997
241997
  latency_ms: Date.now() - startTime,
@@ -338895,7 +338895,7 @@ function Feedback({
338895
338895
  platform: env2.platform,
338896
338896
  gitRepo: envInfo.isGit,
338897
338897
  terminal: env2.terminal,
338898
- version: "1.32.0",
338898
+ version: "1.33.0",
338899
338899
  transcript: normalizeMessagesForAPI(messages),
338900
338900
  errors: sanitizedErrors,
338901
338901
  lastApiRequest: getLastAPIRequest(),
@@ -339087,7 +339087,7 @@ function Feedback({
339087
339087
  ", ",
339088
339088
  env2.terminal,
339089
339089
  ", v",
339090
- "1.32.0"
339090
+ "1.33.0"
339091
339091
  ]
339092
339092
  }, undefined, true, undefined, this)
339093
339093
  ]
@@ -339193,7 +339193,7 @@ ${sanitizedDescription}
339193
339193
  ` + `**Environment Info**
339194
339194
  ` + `- Platform: ${env2.platform}
339195
339195
  ` + `- Terminal: ${env2.terminal}
339196
- ` + `- Version: ${"1.32.0"}
339196
+ ` + `- Version: ${"1.33.0"}
339197
339197
  ` + `- Feedback ID: ${feedbackId}
339198
339198
  ` + `
339199
339199
  **Errors**
@@ -342304,7 +342304,7 @@ function buildPrimarySection() {
342304
342304
  }, undefined, false, undefined, this);
342305
342305
  return [{
342306
342306
  label: "Version",
342307
- value: "1.32.0"
342307
+ value: "1.33.0"
342308
342308
  }, {
342309
342309
  label: "Session name",
342310
342310
  value: nameValue
@@ -345604,7 +345604,7 @@ function Config({
345604
345604
  }
345605
345605
  }, undefined, false, undefined, this)
345606
345606
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
345607
- currentVersion: "1.32.0",
345607
+ currentVersion: "1.33.0",
345608
345608
  onChoice: (choice) => {
345609
345609
  setShowSubmenu(null);
345610
345610
  setTabsHidden(false);
@@ -345616,7 +345616,7 @@ function Config({
345616
345616
  autoUpdatesChannel: "stable"
345617
345617
  };
345618
345618
  if (choice === "stay") {
345619
- newSettings.minimumVersion = "1.32.0";
345619
+ newSettings.minimumVersion = "1.33.0";
345620
345620
  }
345621
345621
  updateSettingsForSource("userSettings", newSettings);
345622
345622
  setSettingsData((prev_27) => ({
@@ -353686,7 +353686,7 @@ function HelpV2(t0) {
353686
353686
  let t6;
353687
353687
  if ($3[31] !== tabs) {
353688
353688
  t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
353689
- title: `UR v${"1.32.0"}`,
353689
+ title: `UR v${"1.33.0"}`,
353690
353690
  color: "professionalBlue",
353691
353691
  defaultTab: "general",
353692
353692
  children: tabs
@@ -354432,7 +354432,7 @@ function buildToolUseContext(tools, readFileStateCache) {
354432
354432
  async function handleInitialize(options2) {
354433
354433
  return {
354434
354434
  name: "ur-agent",
354435
- version: "1.32.0",
354435
+ version: "1.33.0",
354436
354436
  protocolVersion: "0.1.0",
354437
354437
  workspaceRoot: options2.cwd,
354438
354438
  capabilities: {
@@ -374556,7 +374556,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
374556
374556
  return [];
374557
374557
  }
374558
374558
  }
374559
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.32.0") {
374559
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.33.0") {
374560
374560
  if (process.env.USER_TYPE === "ant") {
374561
374561
  const changelog = "";
374562
374562
  if (changelog) {
@@ -374583,7 +374583,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.32.0")
374583
374583
  releaseNotes
374584
374584
  };
374585
374585
  }
374586
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.32.0") {
374586
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.33.0") {
374587
374587
  if (process.env.USER_TYPE === "ant") {
374588
374588
  const changelog = "";
374589
374589
  if (changelog) {
@@ -375753,7 +375753,7 @@ function getRecentActivitySync() {
375753
375753
  return cachedActivity;
375754
375754
  }
375755
375755
  function getLogoDisplayData() {
375756
- const version2 = process.env.DEMO_VERSION ?? "1.32.0";
375756
+ const version2 = process.env.DEMO_VERSION ?? "1.33.0";
375757
375757
  const serverUrl = getDirectConnectServerUrl();
375758
375758
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd2());
375759
375759
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -376542,7 +376542,7 @@ function LogoV2() {
376542
376542
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
376543
376543
  t2 = () => {
376544
376544
  const currentConfig = getGlobalConfig();
376545
- if (currentConfig.lastReleaseNotesSeen === "1.32.0") {
376545
+ if (currentConfig.lastReleaseNotesSeen === "1.33.0") {
376546
376546
  return;
376547
376547
  }
376548
376548
  saveGlobalConfig(_temp326);
@@ -377227,12 +377227,12 @@ function LogoV2() {
377227
377227
  return t41;
377228
377228
  }
377229
377229
  function _temp326(current) {
377230
- if (current.lastReleaseNotesSeen === "1.32.0") {
377230
+ if (current.lastReleaseNotesSeen === "1.33.0") {
377231
377231
  return current;
377232
377232
  }
377233
377233
  return {
377234
377234
  ...current,
377235
- lastReleaseNotesSeen: "1.32.0"
377235
+ lastReleaseNotesSeen: "1.33.0"
377236
377236
  };
377237
377237
  }
377238
377238
  function _temp243(s_0) {
@@ -593128,7 +593128,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
593128
593128
  smapsRollup,
593129
593129
  platform: process.platform,
593130
593130
  nodeVersion: process.version,
593131
- ccVersion: "1.32.0"
593131
+ ccVersion: "1.33.0"
593132
593132
  };
593133
593133
  }
593134
593134
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -593714,7 +593714,7 @@ var init_bridge_kick = __esm(() => {
593714
593714
  var call137 = async () => {
593715
593715
  return {
593716
593716
  type: "text",
593717
- value: "1.32.0"
593717
+ value: "1.33.0"
593718
593718
  };
593719
593719
  }, version2, version_default;
593720
593720
  var init_version = __esm(() => {
@@ -596594,6 +596594,9 @@ function ProviderFirstModelPicker({
596594
596594
  const [modelSource, setModelSource] = import_react188.useState("static");
596595
596595
  const [modelWarning, setModelWarning] = import_react188.useState(null);
596596
596596
  const [providerWarning, setProviderWarning] = import_react188.useState(null);
596597
+ const [connectingProvider, setConnectingProvider] = import_react188.useState(null);
596598
+ const [apiKeyInput, setApiKeyInput] = import_react188.useState("");
596599
+ const [connectError, setConnectError] = import_react188.useState(null);
596597
596600
  const effortValue = useAppState(selectEffortValue2);
596598
596601
  const [effort] = import_react188.useState(effortValue !== undefined ? convertEffortValueToLevel(effortValue) : undefined);
596599
596602
  const appThinkingEnabled = useAppState(selectThinkingEnabled2);
@@ -596679,6 +596682,13 @@ function ProviderFirstModelPicker({
596679
596682
  return;
596680
596683
  }
596681
596684
  if (provider.status !== "connected") {
596685
+ if (provider.credentialType === "api-key") {
596686
+ setConnectingProvider(provider);
596687
+ setApiKeyInput("");
596688
+ setConnectError(null);
596689
+ setStep("connect");
596690
+ return;
596691
+ }
596682
596692
  setProviderWarning(`Provider "${provider.value}" is ${provider.status}: ${provider.statusLabel}. Run \`ur provider doctor ${provider.value}\`, or choose a connected API/local/server provider.`);
596683
596693
  return;
596684
596694
  }
@@ -596755,6 +596765,105 @@ function ProviderFirstModelPicker({
596755
596765
  setModelOptions([]);
596756
596766
  setModelWarning(null);
596757
596767
  }
596768
+ function handleKeySubmit() {
596769
+ if (!connectingProvider)
596770
+ return;
596771
+ const key = apiKeyInput.trim();
596772
+ if (!key) {
596773
+ setConnectError("Enter your API key (or press Esc to go back).");
596774
+ return;
596775
+ }
596776
+ const saved = setProviderApiKey(connectingProvider.value, key);
596777
+ if (!saved.ok) {
596778
+ setConnectError(saved.message);
596779
+ return;
596780
+ }
596781
+ setApiKeyInput("");
596782
+ setConnectError(null);
596783
+ setSelectedProvider(connectingProvider);
596784
+ setStep("model");
596785
+ }
596786
+ function handleKeyCancel() {
596787
+ setApiKeyInput("");
596788
+ setConnectingProvider(null);
596789
+ setConnectError(null);
596790
+ setStep("provider");
596791
+ }
596792
+ if (step === "connect" && connectingProvider) {
596793
+ const envKey = connectingProvider.provider.envKey;
596794
+ const content2 = /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedBox_default, {
596795
+ flexDirection: "column",
596796
+ children: [
596797
+ /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedBox_default, {
596798
+ marginBottom: 1,
596799
+ flexDirection: "column",
596800
+ children: [
596801
+ /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedText, {
596802
+ color: "remember",
596803
+ bold: true,
596804
+ children: [
596805
+ "Connect ",
596806
+ connectingProvider.label
596807
+ ]
596808
+ }, undefined, true, undefined, this),
596809
+ /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedText, {
596810
+ dimColor: true,
596811
+ 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."
596812
+ }, undefined, false, undefined, this),
596813
+ envKey && /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedText, {
596814
+ dimColor: true,
596815
+ color: "subtle",
596816
+ children: [
596817
+ "Equivalent to setting ",
596818
+ envKey,
596819
+ ". Get a key from the provider's dashboard."
596820
+ ]
596821
+ }, undefined, true, undefined, this)
596822
+ ]
596823
+ }, undefined, true, undefined, this),
596824
+ /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedBox_default, {
596825
+ children: [
596826
+ /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedText, {
596827
+ children: "API key: "
596828
+ }, undefined, false, undefined, this),
596829
+ /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(TextInput, {
596830
+ value: apiKeyInput,
596831
+ onChange: setApiKeyInput,
596832
+ onSubmit: handleKeySubmit,
596833
+ mask: "*",
596834
+ placeholder: "paste key, then Enter"
596835
+ }, undefined, false, undefined, this)
596836
+ ]
596837
+ }, undefined, true, undefined, this),
596838
+ connectError && /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedBox_default, {
596839
+ marginTop: 1,
596840
+ children: /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedText, {
596841
+ color: "error",
596842
+ children: connectError
596843
+ }, undefined, false, undefined, this)
596844
+ }, undefined, false, undefined, this),
596845
+ /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedBox_default, {
596846
+ marginTop: 1,
596847
+ children: /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(Byline, {
596848
+ children: [
596849
+ /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(KeyboardShortcutHint, {
596850
+ shortcut: "Enter",
596851
+ action: "store key & load models"
596852
+ }, undefined, false, undefined, this),
596853
+ /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(KeyboardShortcutHint, {
596854
+ shortcut: "Esc",
596855
+ action: "back"
596856
+ }, undefined, false, undefined, this)
596857
+ ]
596858
+ }, undefined, true, undefined, this)
596859
+ }, undefined, false, undefined, this)
596860
+ ]
596861
+ }, undefined, true, undefined, this);
596862
+ return isStandaloneCommand ? /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(Pane, {
596863
+ color: "permission",
596864
+ children: content2
596865
+ }, undefined, false, undefined, this) : content2;
596866
+ }
596758
596867
  if (step === "provider") {
596759
596868
  const content2 = /* @__PURE__ */ jsx_dev_runtime346.jsxDEV(ThemedBox_default, {
596760
596869
  flexDirection: "column",
@@ -597056,12 +597165,14 @@ var import_react188, jsx_dev_runtime346, selectCurrentProvider = (s) => s.provid
597056
597165
  var init_ProviderFirstModelPicker = __esm(() => {
597057
597166
  init_analytics();
597058
597167
  init_providerRegistry();
597168
+ init_providerCredentials();
597059
597169
  init_AppState();
597060
597170
  init_settings2();
597061
597171
  init_ink2();
597062
597172
  init_AppState();
597063
597173
  init_ConfigurableShortcutHint();
597064
597174
  init_CustomSelect();
597175
+ init_TextInput();
597065
597176
  init_Byline();
597066
597177
  init_KeyboardShortcutHint();
597067
597178
  init_Pane();
@@ -603669,7 +603780,7 @@ function generateHtmlReport(data, insights) {
603669
603780
  </html>`;
603670
603781
  }
603671
603782
  function buildExportData(data, insights, facets, remoteStats) {
603672
- const version3 = typeof MACRO !== "undefined" ? "1.32.0" : "unknown";
603783
+ const version3 = typeof MACRO !== "undefined" ? "1.33.0" : "unknown";
603673
603784
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
603674
603785
  const facets_summary = {
603675
603786
  total: facets.size,
@@ -607949,7 +608060,7 @@ var init_sessionStorage = __esm(() => {
607949
608060
  init_settings2();
607950
608061
  init_slowOperations();
607951
608062
  init_uuid();
607952
- VERSION5 = typeof MACRO !== "undefined" ? "1.32.0" : "unknown";
608063
+ VERSION5 = typeof MACRO !== "undefined" ? "1.33.0" : "unknown";
607953
608064
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
607954
608065
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
607955
608066
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -609154,7 +609265,7 @@ var init_filesystem = __esm(() => {
609154
609265
  });
609155
609266
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
609156
609267
  const nonce = randomBytes18(16).toString("hex");
609157
- return join200(getURTempDir(), "bundled-skills", "1.32.0", nonce);
609268
+ return join200(getURTempDir(), "bundled-skills", "1.33.0", nonce);
609158
609269
  });
609159
609270
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
609160
609271
  });
@@ -615443,7 +615554,7 @@ function computeFingerprint(messageText2, version3) {
615443
615554
  }
615444
615555
  function computeFingerprintFromMessages(messages) {
615445
615556
  const firstMessageText = extractFirstMessageText(messages);
615446
- return computeFingerprint(firstMessageText, "1.32.0");
615557
+ return computeFingerprint(firstMessageText, "1.33.0");
615447
615558
  }
615448
615559
  var FINGERPRINT_SALT = "59cf53e54c78";
615449
615560
  var init_fingerprint = () => {};
@@ -617310,7 +617421,7 @@ async function sideQuery(opts) {
617310
617421
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
617311
617422
  }
617312
617423
  const messageText2 = extractFirstUserMessageText(messages);
617313
- const fingerprint = computeFingerprint(messageText2, "1.32.0");
617424
+ const fingerprint = computeFingerprint(messageText2, "1.33.0");
617314
617425
  const attributionHeader = getAttributionHeader(fingerprint);
617315
617426
  const systemBlocks = [
617316
617427
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -622047,7 +622158,7 @@ function buildSystemInitMessage(inputs) {
622047
622158
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
622048
622159
  apiKeySource: getURHQApiKeyWithSource().source,
622049
622160
  betas: getSdkBetas(),
622050
- ur_version: "1.32.0",
622161
+ ur_version: "1.33.0",
622051
622162
  output_style: outputStyle2,
622052
622163
  agents: inputs.agents.map((agent) => agent.agentType),
622053
622164
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -636675,7 +636786,7 @@ var init_useVoiceEnabled = __esm(() => {
636675
636786
  function getSemverPart(version3) {
636676
636787
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
636677
636788
  }
636678
- function useUpdateNotification(updatedVersion, initialVersion = "1.32.0") {
636789
+ function useUpdateNotification(updatedVersion, initialVersion = "1.33.0") {
636679
636790
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
636680
636791
  if (!updatedVersion) {
636681
636792
  return null;
@@ -636724,7 +636835,7 @@ function AutoUpdater({
636724
636835
  return;
636725
636836
  }
636726
636837
  if (false) {}
636727
- const currentVersion = "1.32.0";
636838
+ const currentVersion = "1.33.0";
636728
636839
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
636729
636840
  let latestVersion = await getLatestVersion(channel);
636730
636841
  const isDisabled = isAutoUpdaterDisabled();
@@ -636953,12 +637064,12 @@ function NativeAutoUpdater({
636953
637064
  logEvent("tengu_native_auto_updater_start", {});
636954
637065
  try {
636955
637066
  const maxVersion = await getMaxVersion();
636956
- if (maxVersion && gt("1.32.0", maxVersion)) {
637067
+ if (maxVersion && gt("1.33.0", maxVersion)) {
636957
637068
  const msg = await getMaxVersionMessage();
636958
637069
  setMaxVersionIssue(msg ?? "affects your version");
636959
637070
  }
636960
637071
  const result = await installLatest(channel);
636961
- const currentVersion = "1.32.0";
637072
+ const currentVersion = "1.33.0";
636962
637073
  const latencyMs = Date.now() - startTime;
636963
637074
  if (result.lockFailed) {
636964
637075
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -637095,17 +637206,17 @@ function PackageManagerAutoUpdater(t0) {
637095
637206
  const maxVersion = await getMaxVersion();
637096
637207
  if (maxVersion && latest && gt(latest, maxVersion)) {
637097
637208
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
637098
- if (gte("1.32.0", maxVersion)) {
637099
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.32.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
637209
+ if (gte("1.33.0", maxVersion)) {
637210
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.33.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
637100
637211
  setUpdateAvailable(false);
637101
637212
  return;
637102
637213
  }
637103
637214
  latest = maxVersion;
637104
637215
  }
637105
- const hasUpdate = latest && !gte("1.32.0", latest) && !shouldSkipVersion(latest);
637216
+ const hasUpdate = latest && !gte("1.33.0", latest) && !shouldSkipVersion(latest);
637106
637217
  setUpdateAvailable(!!hasUpdate);
637107
637218
  if (hasUpdate) {
637108
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.32.0"} -> ${latest}`);
637219
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.33.0"} -> ${latest}`);
637109
637220
  }
637110
637221
  };
637111
637222
  $3[0] = t1;
@@ -637139,7 +637250,7 @@ function PackageManagerAutoUpdater(t0) {
637139
637250
  wrap: "truncate",
637140
637251
  children: [
637141
637252
  "currentVersion: ",
637142
- "1.32.0"
637253
+ "1.33.0"
637143
637254
  ]
637144
637255
  }, undefined, true, undefined, this);
637145
637256
  $3[3] = verbose;
@@ -649590,7 +649701,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
649590
649701
  project_dir: getOriginalCwd(),
649591
649702
  added_dirs: addedDirs
649592
649703
  },
649593
- version: "1.32.0",
649704
+ version: "1.33.0",
649594
649705
  output_style: {
649595
649706
  name: outputStyleName
649596
649707
  },
@@ -649673,7 +649784,7 @@ function StatusLineInner({
649673
649784
  const taskValues = Object.values(tasks2);
649674
649785
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
649675
649786
  const defaultStatusLineText = buildDefaultStatusBar({
649676
- version: "1.32.0",
649787
+ version: "1.33.0",
649677
649788
  providerLabel: providerRuntime.providerLabel,
649678
649789
  authMode: providerRuntime.authLabel,
649679
649790
  model: providerRuntime.model ?? renderModelName(mainLoopModel),
@@ -661161,7 +661272,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
661161
661272
  } catch {}
661162
661273
  const data = {
661163
661274
  trigger: trigger2,
661164
- version: "1.32.0",
661275
+ version: "1.33.0",
661165
661276
  platform: process.platform,
661166
661277
  transcript,
661167
661278
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -673045,7 +673156,7 @@ function WelcomeV2() {
673045
673156
  dimColor: true,
673046
673157
  children: [
673047
673158
  "v",
673048
- "1.32.0"
673159
+ "1.33.0"
673049
673160
  ]
673050
673161
  }, undefined, true, undefined, this)
673051
673162
  ]
@@ -674305,7 +674416,7 @@ function completeOnboarding() {
674305
674416
  saveGlobalConfig((current) => ({
674306
674417
  ...current,
674307
674418
  hasCompletedOnboarding: true,
674308
- lastOnboardingVersion: "1.32.0"
674419
+ lastOnboardingVersion: "1.33.0"
674309
674420
  }));
674310
674421
  }
674311
674422
  function showDialog(root2, renderer) {
@@ -679342,7 +679453,7 @@ function appendToLog(path24, message) {
679342
679453
  cwd: getFsImplementation().cwd(),
679343
679454
  userType: process.env.USER_TYPE,
679344
679455
  sessionId: getSessionId(),
679345
- version: "1.32.0"
679456
+ version: "1.33.0"
679346
679457
  };
679347
679458
  getLogWriter(path24).write(messageWithTimestamp);
679348
679459
  }
@@ -683436,8 +683547,8 @@ async function getEnvLessBridgeConfig() {
683436
683547
  }
683437
683548
  async function checkEnvLessBridgeMinVersion() {
683438
683549
  const cfg = await getEnvLessBridgeConfig();
683439
- if (cfg.min_version && lt("1.32.0", cfg.min_version)) {
683440
- return `Your version of UR (${"1.32.0"}) is too old for Remote Control.
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.
683441
683552
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
683442
683553
  }
683443
683554
  return null;
@@ -683911,7 +684022,7 @@ async function initBridgeCore(params) {
683911
684022
  const rawApi = createBridgeApiClient({
683912
684023
  baseUrl,
683913
684024
  getAccessToken,
683914
- runnerVersion: "1.32.0",
684025
+ runnerVersion: "1.33.0",
683915
684026
  onDebug: logForDebugging,
683916
684027
  onAuth401,
683917
684028
  getTrustedDeviceToken
@@ -689593,7 +689704,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
689593
689704
  setCwd(cwd3);
689594
689705
  const server2 = new Server({
689595
689706
  name: "ur/tengu",
689596
- version: "1.32.0"
689707
+ version: "1.33.0"
689597
689708
  }, {
689598
689709
  capabilities: {
689599
689710
  tools: {}
@@ -691570,7 +691681,7 @@ async function update() {
691570
691681
  logEvent("tengu_update_check", {});
691571
691682
  const diagnostic = await getDoctorDiagnostic();
691572
691683
  const result = await checkUpgradeStatus({
691573
- currentVersion: "1.32.0",
691684
+ currentVersion: "1.33.0",
691574
691685
  packageName: UR_AGENT_PACKAGE_NAME,
691575
691686
  installationType: diagnostic.installationType,
691576
691687
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -692816,7 +692927,7 @@ ${customInstructions}` : customInstructions;
692816
692927
  }
692817
692928
  }
692818
692929
  logForDiagnosticsNoPII("info", "started", {
692819
- version: "1.32.0",
692930
+ version: "1.33.0",
692820
692931
  is_native_binary: isInBundledMode()
692821
692932
  });
692822
692933
  registerCleanup(async () => {
@@ -693602,7 +693713,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
693602
693713
  pendingHookMessages
693603
693714
  }, renderAndRun);
693604
693715
  }
693605
- }).version("1.32.0 (UR-AGENT)", "-v, --version", "Output the version number");
693716
+ }).version("1.33.0 (UR-AGENT)", "-v, --version", "Output the version number");
693606
693717
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
693607
693718
  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
693719
  if (canUserConfigureAdvisor()) {
@@ -694485,7 +694596,7 @@ if (false) {}
694485
694596
  async function main2() {
694486
694597
  const args = process.argv.slice(2);
694487
694598
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
694488
- console.log(`${"1.32.0"} (UR-AGENT)`);
694599
+ console.log(`${"1.33.0"} (UR-AGENT)`);
694489
694600
  return;
694490
694601
  }
694491
694602
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.32.0",
3
+ "version": "1.33.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",