ur-agent 1.70.0 → 1.73.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/dist/cli.js CHANGED
@@ -74478,7 +74478,7 @@ function getAuthTokenSource() {
74478
74478
  }
74479
74479
  const oauthTokens = getURAIOAuthTokens();
74480
74480
  if (shouldUseURAIAuth(oauthTokens?.scopes) && oauthTokens?.accessToken) {
74481
- return { source: "ur.ai", hasToken: true };
74481
+ return { source: "ur.com", hasToken: true };
74482
74482
  }
74483
74483
  return { source: "none", hasToken: false };
74484
74484
  }
@@ -75394,14 +75394,14 @@ function getAccountInformation() {
75394
75394
  if (apiKey) {
75395
75395
  accountInfo.apiKeySource = apiKeySource;
75396
75396
  }
75397
- if (authTokenSource === "ur.ai" || apiKeySource === "/login managed key") {
75397
+ if (authTokenSource === "ur.com" || apiKeySource === "/login managed key") {
75398
75398
  const orgName = getOauthAccountInfo()?.organizationName;
75399
75399
  if (orgName) {
75400
75400
  accountInfo.organization = orgName;
75401
75401
  }
75402
75402
  }
75403
75403
  const email3 = getOauthAccountInfo()?.emailAddress;
75404
- if ((authTokenSource === "ur.ai" || apiKeySource === "/login managed key") && email3) {
75404
+ if ((authTokenSource === "ur.com" || apiKeySource === "/login managed key") && email3) {
75405
75405
  accountInfo.email = email3;
75406
75406
  }
75407
75407
  return accountInfo;
@@ -75577,7 +75577,7 @@ var init_auth = __esm(() => {
75577
75577
 
75578
75578
  // src/utils/userAgent.ts
75579
75579
  function getURCodeUserAgent() {
75580
- return `ur/${"1.70.0"}`;
75580
+ return `ur/${"1.73.0"}`;
75581
75581
  }
75582
75582
 
75583
75583
  // src/utils/workloadContext.ts
@@ -75599,7 +75599,7 @@ function getUserAgent() {
75599
75599
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
75600
75600
  const workload = getWorkload();
75601
75601
  const workloadSuffix = workload ? `, workload/${workload}` : "";
75602
- return `ur-cli/${"1.70.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75602
+ return `ur-cli/${"1.73.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75603
75603
  }
75604
75604
  function getMCPUserAgent() {
75605
75605
  const parts = [];
@@ -75613,7 +75613,7 @@ function getMCPUserAgent() {
75613
75613
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
75614
75614
  }
75615
75615
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
75616
- return `ur/${"1.70.0"}${suffix}`;
75616
+ return `ur/${"1.73.0"}${suffix}`;
75617
75617
  }
75618
75618
  function getWebFetchUserAgent() {
75619
75619
  return `UR-User (${getURCodeUserAgent()})`;
@@ -75751,7 +75751,7 @@ var init_user = __esm(() => {
75751
75751
  deviceId,
75752
75752
  sessionId: getSessionId(),
75753
75753
  email: getEmail(),
75754
- appVersion: "1.70.0",
75754
+ appVersion: "1.73.0",
75755
75755
  platform: getHostPlatformForAnalytics(),
75756
75756
  organizationUuid,
75757
75757
  accountUuid,
@@ -83480,7 +83480,7 @@ function normalizeNameForMCP(name) {
83480
83480
  }
83481
83481
  return normalized;
83482
83482
  }
83483
- var URAI_SERVER_PREFIX = "ur.ai ";
83483
+ var URAI_SERVER_PREFIX = "ur.com ";
83484
83484
 
83485
83485
  // src/utils/computerUse/common.ts
83486
83486
  var exports_common = {};
@@ -83951,7 +83951,7 @@ var init_metadata = __esm(() => {
83951
83951
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
83952
83952
  WHITESPACE_REGEX = /\s+/;
83953
83953
  getVersionBase = memoize_default(() => {
83954
- const match = "1.70.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83954
+ const match = "1.73.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83955
83955
  return match ? match[0] : undefined;
83956
83956
  });
83957
83957
  buildEnvContext = memoize_default(async () => {
@@ -83991,7 +83991,7 @@ var init_metadata = __esm(() => {
83991
83991
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
83992
83992
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
83993
83993
  isURAiAuth: isURAISubscriber(),
83994
- version: "1.70.0",
83994
+ version: "1.73.0",
83995
83995
  versionBase: getVersionBase(),
83996
83996
  buildTime: "",
83997
83997
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -84661,7 +84661,7 @@ function initialize1PEventLogging() {
84661
84661
  const platform2 = getPlatform();
84662
84662
  const attributes = {
84663
84663
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
84664
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.70.0"
84664
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.73.0"
84665
84665
  };
84666
84666
  if (platform2 === "wsl") {
84667
84667
  const wslVersion = getWslVersion();
@@ -84689,7 +84689,7 @@ function initialize1PEventLogging() {
84689
84689
  })
84690
84690
  ]
84691
84691
  });
84692
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.70.0");
84692
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.73.0");
84693
84693
  }
84694
84694
  async function reinitialize1PEventLoggingIfConfigChanged() {
84695
84695
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -87407,7 +87407,7 @@ function getValidationTip(context3) {
87407
87407
  }
87408
87408
  return tip;
87409
87409
  }
87410
- var DOCUMENTATION_BASE = "https://docs.ur.dev/docs/en", TIP_MATCHERS, PATH_DOC_LINKS;
87410
+ var DOCUMENTATION_BASE = "https://docs.ur.com/docs/en", TIP_MATCHERS, PATH_DOC_LINKS;
87411
87411
  var init_validationTips = __esm(() => {
87412
87412
  TIP_MATCHERS = [
87413
87413
  {
@@ -94565,7 +94565,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
94565
94565
  function formatA2AAgentCard(options = {}, pretty = true) {
94566
94566
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
94567
94567
  }
94568
- var urVersion = "1.70.0", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94568
+ var urVersion = "1.73.0", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94569
94569
  var init_trends = __esm(() => {
94570
94570
  init_a2aCardSignature();
94571
94571
  coverage = [
@@ -97368,7 +97368,7 @@ function getAttributionHeader(fingerprint) {
97368
97368
  if (!isAttributionHeaderEnabled()) {
97369
97369
  return "";
97370
97370
  }
97371
- const version2 = `${"1.70.0"}.${fingerprint}`;
97371
+ const version2 = `${"1.73.0"}.${fingerprint}`;
97372
97372
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
97373
97373
  const cch = "";
97374
97374
  const workload = getWorkload();
@@ -144728,7 +144728,7 @@ function getFeedbackGuideline() {
144728
144728
  }
144729
144729
  return "- When you cannot find an answer or the feature doesn't exist, direct the user to use /feedback to report a feature request or bug";
144730
144730
  }
144731
- var UR_CODE_DOCS_MAP_URL = "https://docs.ur.dev/docs/en/ur_docs_map.md", CDP_DOCS_MAP_URL = "https://docs.claude.com/llms.txt", UR_CODE_GUIDE_AGENT_TYPE = "ur-guide", UR_CODE_GUIDE_AGENT;
144731
+ var UR_CODE_DOCS_MAP_URL = "https://docs.ur.com/docs/en/ur_docs_map.md", CDP_DOCS_MAP_URL = "https://docs.claude.com/llms.txt", UR_CODE_GUIDE_AGENT_TYPE = "ur-guide", UR_CODE_GUIDE_AGENT;
144732
144732
  var init_urCodeGuideAgent = __esm(() => {
144733
144733
  init_prompt2();
144734
144734
  init_prompt();
@@ -151743,6 +151743,19 @@ function getAssistantMessageId(message) {
151743
151743
  function getTokenCountFromUsage(usage) {
151744
151744
  return usage.input_tokens + (usage.cache_creation_input_tokens ?? 0) + (usage.cache_read_input_tokens ?? 0) + usage.output_tokens;
151745
151745
  }
151746
+ function hasReportedTokenUsage(usage) {
151747
+ if (!usage || typeof usage !== "object") {
151748
+ return false;
151749
+ }
151750
+ const counted = (usage.input_tokens ?? 0) + (usage.cache_creation_input_tokens ?? 0) + (usage.cache_read_input_tokens ?? 0) + (usage.output_tokens ?? 0);
151751
+ return Number.isFinite(counted) && counted > 0;
151752
+ }
151753
+ function formatReportedTokens(usage, totalTokens, format4) {
151754
+ if (!hasReportedTokenUsage(usage) || !Number.isFinite(totalTokens) || totalTokens <= 0) {
151755
+ return null;
151756
+ }
151757
+ return `${format4(totalTokens)} tokens`;
151758
+ }
151746
151759
  function tokenCountFromLastAPIResponse(messages) {
151747
151760
  let i3 = messages.length - 1;
151748
151761
  while (i3 >= 0) {
@@ -155132,7 +155145,7 @@ var init_projectSafety = __esm(() => {
155132
155145
  function getInstruments() {
155133
155146
  if (instruments)
155134
155147
  return instruments;
155135
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.70.0");
155148
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.73.0");
155136
155149
  instruments = {
155137
155150
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
155138
155151
  description: "GenAI operation duration.",
@@ -155230,7 +155243,7 @@ function genAiAgentAttributes() {
155230
155243
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
155231
155244
  "gen_ai.provider.name": "ur",
155232
155245
  "gen_ai.agent.name": "UR-Nexus",
155233
- "gen_ai.agent.version": "1.70.0"
155246
+ "gen_ai.agent.version": "1.73.0"
155234
155247
  };
155235
155248
  }
155236
155249
  function genAiWorkflowAttributes(workflowName) {
@@ -155246,7 +155259,7 @@ function genAiWorkflowAttributes(workflowName) {
155246
155259
  function startGenAiWorkflowSpan(workflowName) {
155247
155260
  const attributes = genAiWorkflowAttributes(workflowName);
155248
155261
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
155249
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.70.0").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
155262
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.73.0").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
155250
155263
  }
155251
155264
  function endGenAiWorkflowSpan(span, options2 = {}) {
155252
155265
  try {
@@ -155284,7 +155297,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
155284
155297
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
155285
155298
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
155286
155299
  }
155287
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.70.0").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
155300
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.73.0").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
155288
155301
  }
155289
155302
  function endGenAiMemorySpan(span, options2 = {}) {
155290
155303
  try {
@@ -248755,7 +248768,7 @@ function getTelemetryAttributes() {
248755
248768
  attributes["session.id"] = sessionId;
248756
248769
  }
248757
248770
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
248758
- attributes["app.version"] = "1.70.0";
248771
+ attributes["app.version"] = "1.73.0";
248759
248772
  }
248760
248773
  const oauthAccount = getOauthAccountInfo();
248761
248774
  if (oauthAccount) {
@@ -284351,7 +284364,7 @@ function getRemoteSessionUrl(sessionId, ingressUrl) {
284351
284364
  const baseUrl = getURAiBaseUrl(compatId, ingressUrl);
284352
284365
  return `${baseUrl}/code/${compatId}`;
284353
284366
  }
284354
- var PRODUCT_URL = "https://github.com/Maitham16/UR", UR_AI_BASE_URL = "https://ur.ai", UR_AI_STAGING_BASE_URL = "https://ur-ai.staging.ant.dev", UR_AI_LOCAL_BASE_URL = "http://localhost:4000";
284367
+ var PRODUCT_URL = "https://github.com/Maitham16/UR", UR_AI_BASE_URL = "https://ur.com", UR_AI_STAGING_BASE_URL = "https://ur-ai.staging.ant.dev", UR_AI_LOCAL_BASE_URL = "http://localhost:4000";
284355
284368
 
284356
284369
  // src/keybindings/defaultBindings.ts
284357
284370
  var IMAGE_PASTE_KEY, SUPPORTS_TERMINAL_VT_MODE, MODE_CYCLE_KEY, DEFAULT_BINDINGS;
@@ -289693,7 +289706,7 @@ var init_urai = __esm(() => {
289693
289706
  const configs = {};
289694
289707
  const usedNormalizedNames = new Set;
289695
289708
  for (const server2 of response.data.data) {
289696
- const baseName = `ur.ai ${server2.display_name}`;
289709
+ const baseName = `ur.com ${server2.display_name}`;
289697
289710
  let finalName = baseName;
289698
289711
  let finalNormalized = normalizeNameForMCP(finalName);
289699
289712
  let count3 = 1;
@@ -289859,7 +289872,7 @@ function dedupURAiMcpServers(urAiServers, manualServers) {
289859
289872
  const sig = getMcpServerSignature(config2);
289860
289873
  const manualDup = sig !== null ? manualSigs.get(sig) : undefined;
289861
289874
  if (manualDup !== undefined) {
289862
- logForDebugging(`Suppressing ur.ai connector "${name}": duplicates manually-configured "${manualDup}"`);
289875
+ logForDebugging(`Suppressing ur.com connector "${name}": duplicates manually-configured "${manualDup}"`);
289863
289876
  suppressed.push({ name, duplicateOf: manualDup });
289864
289877
  continue;
289865
289878
  }
@@ -290485,7 +290498,7 @@ function parseMcpConfig(params) {
290485
290498
  ...filePath && { file: filePath },
290486
290499
  path: `mcpServers.${name}`,
290487
290500
  message: `Windows requires 'cmd /c' wrapper to execute npx`,
290488
- suggestion: `Change command to "cmd" with args ["/c", "npx", ...]. See: https://docs.ur.dev/docs/en/mcp#configure-mcp-servers`,
290501
+ suggestion: `Change command to "cmd" with args ["/c", "npx", ...]. See: https://docs.ur.com/docs/en/mcp#configure-mcp-servers`,
290489
290502
  mcpErrorMetadata: {
290490
290503
  scope,
290491
290504
  serverName: name,
@@ -290743,7 +290756,7 @@ function describeMcpConfigFilePath(scope) {
290743
290756
  case "enterprise":
290744
290757
  return getEnterpriseMcpFilePath();
290745
290758
  case "urai":
290746
- return "ur.ai";
290759
+ return "ur.com";
290747
290760
  default:
290748
290761
  return scope;
290749
290762
  }
@@ -290761,7 +290774,7 @@ function getScopeLabel(scope) {
290761
290774
  case "enterprise":
290762
290775
  return "Enterprise config (managed by your organization)";
290763
290776
  case "urai":
290764
- return "ur.ai config";
290777
+ return "ur.com config";
290765
290778
  default:
290766
290779
  return scope;
290767
290780
  }
@@ -292879,7 +292892,7 @@ function createMcpAuthTool(serverName, config2) {
292879
292892
  return {
292880
292893
  data: {
292881
292894
  status: "unsupported",
292882
- message: `This is a ur.ai MCP connector. Ask the user to run /mcp and select "${serverName}" to authenticate.`
292895
+ message: `This is a ur.com MCP connector. Ask the user to run /mcp and select "${serverName}" to authenticate.`
292883
292896
  }
292884
292897
  };
292885
292898
  }
@@ -295298,7 +295311,7 @@ function getInstallationEnv() {
295298
295311
  return;
295299
295312
  }
295300
295313
  function getURCodeVersion() {
295301
- return "1.70.0";
295314
+ return "1.73.0";
295302
295315
  }
295303
295316
  async function getInstalledVSCodeExtensionVersion(command) {
295304
295317
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -297186,7 +297199,7 @@ function getURInChromeMCPToolOverrides(toolName) {
297186
297199
  function isMCPToolResult(output) {
297187
297200
  return typeof output === "object" && output !== null;
297188
297201
  }
297189
- var jsx_dev_runtime38, CHROME_EXTENSION_FOCUS_TAB_URL_BASE = "https://ur.ai/chrome/tab/";
297202
+ var jsx_dev_runtime38, CHROME_EXTENSION_FOCUS_TAB_URL_BASE = "https://ur.com/chrome/tab/";
297190
297203
  var init_toolRendering = __esm(() => {
297191
297204
  init_MessageResponse();
297192
297205
  init_supports_hyperlinks();
@@ -301842,7 +301855,7 @@ function handleRemoteAuthFailure(name, serverRef, transportType) {
301842
301855
  const label = {
301843
301856
  sse: "SSE",
301844
301857
  http: "HTTP",
301845
- "urai-proxy": "ur.ai proxy"
301858
+ "urai-proxy": "ur.com proxy"
301846
301859
  };
301847
301860
  logMCPDebug(name, `Authentication required for ${label[transportType]} server`);
301848
301861
  setMcpAuthCacheEntry(name);
@@ -301854,7 +301867,7 @@ function createURAiProxyFetch(innerFetch) {
301854
301867
  await checkAndRefreshOAuthTokenIfNeeded();
301855
301868
  const currentTokens = getURAIOAuthTokens();
301856
301869
  if (!currentTokens) {
301857
- throw new Error("No ur.ai OAuth token available");
301870
+ throw new Error("No ur.com OAuth token available");
301858
301871
  }
301859
301872
  const headers = new Headers(init?.headers);
301860
301873
  headers.set("Authorization", `Bearer ${currentTokens.accessToken}`);
@@ -302629,7 +302642,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
302629
302642
  const client2 = new Client({
302630
302643
  name: "ur",
302631
302644
  title: "UR",
302632
- version: "1.70.0",
302645
+ version: "1.73.0",
302633
302646
  description: "UR-Nexus autonomous engineering workflow engine",
302634
302647
  websiteUrl: PRODUCT_URL
302635
302648
  }, {
@@ -302919,14 +302932,14 @@ var init_client5 = __esm(() => {
302919
302932
  } else if (serverRef.type === "sdk") {
302920
302933
  throw new Error("SDK servers should be handled in print.ts");
302921
302934
  } else if (serverRef.type === "urai-proxy") {
302922
- logMCPDebug(name, `Initializing ur.ai proxy transport for server ${serverRef.id}`);
302935
+ logMCPDebug(name, `Initializing ur.com proxy transport for server ${serverRef.id}`);
302923
302936
  const tokens = getURAIOAuthTokens();
302924
302937
  if (!tokens) {
302925
- throw new Error("No ur.ai OAuth token found");
302938
+ throw new Error("No ur.com OAuth token found");
302926
302939
  }
302927
302940
  const oauthConfig = getOauthConfig();
302928
302941
  const proxyUrl = `${oauthConfig.MCP_PROXY_URL}${oauthConfig.MCP_PROXY_PATH.replace("{server_id}", serverRef.id)}`;
302929
- logMCPDebug(name, `Using ur.ai proxy at ${proxyUrl}`);
302942
+ logMCPDebug(name, `Using ur.com proxy at ${proxyUrl}`);
302930
302943
  const fetchWithAuth = createURAiProxyFetch(globalThis.fetch);
302931
302944
  const proxyOptions = getProxyFetchOptions();
302932
302945
  const transportOptions = {
@@ -302940,7 +302953,7 @@ var init_client5 = __esm(() => {
302940
302953
  }
302941
302954
  };
302942
302955
  transport = new StreamableHTTPClientTransport(new URL(proxyUrl), transportOptions);
302943
- logMCPDebug(name, `ur.ai proxy transport created successfully`);
302956
+ logMCPDebug(name, `ur.com proxy transport created successfully`);
302944
302957
  } else if ((serverRef.type === "stdio" || !serverRef.type) && isURInChromeMCPServer(name)) {
302945
302958
  const { createChromeContext } = await Promise.resolve().then(() => (init_mcpServer2(), exports_mcpServer2));
302946
302959
  const { createURForChromeMcpServer: createURForChromeMcpServer2 } = await Promise.resolve().then(() => (init_chromeMcpCompat(), exports_chromeMcpCompat));
@@ -302989,7 +303002,7 @@ var init_client5 = __esm(() => {
302989
303002
  const client2 = new Client({
302990
303003
  name: "ur",
302991
303004
  title: "UR",
302992
- version: "1.70.0",
303005
+ version: "1.73.0",
302993
303006
  description: "UR-Nexus autonomous engineering workflow engine",
302994
303007
  websiteUrl: PRODUCT_URL
302995
303008
  }, {
@@ -303070,7 +303083,7 @@ var init_client5 = __esm(() => {
303070
303083
  return handleRemoteAuthFailure(name, serverRef, "http");
303071
303084
  }
303072
303085
  } else if (serverRef.type === "urai-proxy" && error40 instanceof Error) {
303073
- logMCPDebug(name, `ur.ai proxy connection failed after ${elapsed}ms: ${error40.message}`);
303086
+ logMCPDebug(name, `ur.com proxy connection failed after ${elapsed}ms: ${error40.message}`);
303074
303087
  logMCPError(name, error40);
303075
303088
  const errorCode2 = error40.code;
303076
303089
  if (errorCode2 === 401) {
@@ -315528,7 +315541,7 @@ async function createRuntime() {
315528
315541
  bootstrapTelemetry();
315529
315542
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
315530
315543
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
315531
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.70.0"
315544
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.73.0"
315532
315545
  }));
315533
315546
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
315534
315547
  resource,
@@ -315561,11 +315574,11 @@ async function createRuntime() {
315561
315574
  setMeterProvider(meterProvider);
315562
315575
  setLoggerProvider(loggerProvider);
315563
315576
  if (meterProvider) {
315564
- const meter = meterProvider.getMeter("ur-agent", "1.70.0");
315577
+ const meter = meterProvider.getMeter("ur-agent", "1.73.0");
315565
315578
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
315566
315579
  }
315567
315580
  if (loggerProvider) {
315568
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.70.0"));
315581
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.73.0"));
315569
315582
  }
315570
315583
  if (!cleanupRegistered2) {
315571
315584
  cleanupRegistered2 = true;
@@ -316227,9 +316240,9 @@ async function assertMinVersion() {
316227
316240
  if (false) {}
316228
316241
  try {
316229
316242
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
316230
- if (versionConfig.minVersion && lt("1.70.0", versionConfig.minVersion)) {
316243
+ if (versionConfig.minVersion && lt("1.73.0", versionConfig.minVersion)) {
316231
316244
  console.error(`
316232
- It looks like your version of UR (${"1.70.0"}) needs an update.
316245
+ It looks like your version of UR (${"1.73.0"}) needs an update.
316233
316246
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
316234
316247
 
316235
316248
  To update, please run:
@@ -316445,7 +316458,7 @@ async function installGlobalPackage(specificVersion) {
316445
316458
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
316446
316459
  logEvent("tengu_auto_updater_lock_contention", {
316447
316460
  pid: process.pid,
316448
- currentVersion: "1.70.0"
316461
+ currentVersion: "1.73.0"
316449
316462
  });
316450
316463
  return "in_progress";
316451
316464
  }
@@ -316454,7 +316467,7 @@ async function installGlobalPackage(specificVersion) {
316454
316467
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
316455
316468
  logError2(new Error("Windows NPM detected in WSL environment"));
316456
316469
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
316457
- currentVersion: "1.70.0"
316470
+ currentVersion: "1.73.0"
316458
316471
  });
316459
316472
  console.error(`
316460
316473
  Error: Windows NPM detected in WSL
@@ -316989,7 +317002,7 @@ function detectLinuxGlobPatternWarnings() {
316989
317002
  }
316990
317003
  async function getDoctorDiagnostic() {
316991
317004
  const installationType = await getCurrentInstallationType();
316992
- const version2 = typeof MACRO !== "undefined" ? "1.70.0" : "unknown";
317005
+ const version2 = typeof MACRO !== "undefined" ? "1.73.0" : "unknown";
316993
317006
  const installationPath = await getInstallationPath();
316994
317007
  const invokedBinary = getInvokedBinary();
316995
317008
  const multipleInstallations = await detectMultipleInstallations();
@@ -317924,8 +317937,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
317924
317937
  const maxVersion = await getMaxVersion();
317925
317938
  if (maxVersion && gt(version2, maxVersion)) {
317926
317939
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
317927
- if (gte("1.70.0", maxVersion)) {
317928
- logForDebugging(`Native installer: current version ${"1.70.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
317940
+ if (gte("1.73.0", maxVersion)) {
317941
+ logForDebugging(`Native installer: current version ${"1.73.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
317929
317942
  logEvent("tengu_native_update_skipped_max_version", {
317930
317943
  latency_ms: Date.now() - startTime,
317931
317944
  max_version: maxVersion,
@@ -317936,7 +317949,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
317936
317949
  version2 = maxVersion;
317937
317950
  }
317938
317951
  }
317939
- if (!forceReinstall && version2 === "1.70.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
317952
+ if (!forceReinstall && version2 === "1.73.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
317940
317953
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
317941
317954
  logEvent("tengu_native_update_complete", {
317942
317955
  latency_ms: Date.now() - startTime,
@@ -319257,8 +319270,8 @@ async function authStatus(opts) {
319257
319270
  let authMethod = "none";
319258
319271
  if (using3P) {
319259
319272
  authMethod = "third_party";
319260
- } else if (authTokenSource === "ur.ai") {
319261
- authMethod = "ur.ai";
319273
+ } else if (authTokenSource === "ur.com") {
319274
+ authMethod = "ur.com";
319262
319275
  } else if (authTokenSource === "apiKeyHelper") {
319263
319276
  authMethod = "api_key_helper";
319264
319277
  } else if (authTokenSource !== "none") {
@@ -319266,7 +319279,7 @@ async function authStatus(opts) {
319266
319279
  } else if (apiKeySource === "URHQ_API_KEY" || hasApiKeyEnvVar) {
319267
319280
  authMethod = "api_key";
319268
319281
  } else if (apiKeySource === "/login managed key") {
319269
- authMethod = "ur.ai";
319282
+ authMethod = "ur.com";
319270
319283
  }
319271
319284
  if (opts.text) {
319272
319285
  const properties = [
@@ -319307,7 +319320,7 @@ async function authStatus(opts) {
319307
319320
  if (resolvedApiKeySource) {
319308
319321
  output.apiKeySource = resolvedApiKeySource;
319309
319322
  }
319310
- if (authMethod === "ur.ai") {
319323
+ if (authMethod === "ur.com") {
319311
319324
  output.email = oauthAccount?.emailAddress ?? null;
319312
319325
  output.orgId = oauthAccount?.organizationUuid ?? null;
319313
319326
  output.orgName = oauthAccount?.organizationName ?? null;
@@ -321841,7 +321854,7 @@ var init_coreSchemas = __esm(() => {
321841
321854
  ]).optional(),
321842
321855
  isUsingOverage: exports_external.boolean().optional(),
321843
321856
  surpassedThreshold: exports_external.number().optional()
321844
- }).describe("Rate limit information for ur.ai subscription users."));
321857
+ }).describe("Rate limit information for ur.com subscription users."));
321845
321858
  SDKAssistantMessageSchema = lazySchema(() => exports_external.object({
321846
321859
  type: exports_external.literal("assistant"),
321847
321860
  message: APIAssistantMessagePlaceholder(),
@@ -327574,8 +327587,8 @@ function OAuthStatusMessage(t0) {
327574
327587
  "\xB7 Amazon Bedrock:",
327575
327588
  " ",
327576
327589
  /* @__PURE__ */ jsx_dev_runtime72.jsxDEV(Link, {
327577
- url: "https://docs.ur.dev/docs/en/amazon-bedrock",
327578
- children: "https://docs.ur.dev/docs/en/amazon-bedrock"
327590
+ url: "https://docs.ur.com/docs/en/amazon-bedrock",
327591
+ children: "https://docs.ur.com/docs/en/amazon-bedrock"
327579
327592
  }, undefined, false, undefined, this)
327580
327593
  ]
327581
327594
  }, undefined, true, undefined, this);
@@ -327590,8 +327603,8 @@ function OAuthStatusMessage(t0) {
327590
327603
  "\xB7 Microsoft Foundry:",
327591
327604
  " ",
327592
327605
  /* @__PURE__ */ jsx_dev_runtime72.jsxDEV(Link, {
327593
- url: "https://docs.ur.dev/docs/en/microsoft-foundry",
327594
- children: "https://docs.ur.dev/docs/en/microsoft-foundry"
327606
+ url: "https://docs.ur.com/docs/en/microsoft-foundry",
327607
+ children: "https://docs.ur.com/docs/en/microsoft-foundry"
327595
327608
  }, undefined, false, undefined, this)
327596
327609
  ]
327597
327610
  }, undefined, true, undefined, this);
@@ -327613,8 +327626,8 @@ function OAuthStatusMessage(t0) {
327613
327626
  "\xB7 Vertex AI:",
327614
327627
  " ",
327615
327628
  /* @__PURE__ */ jsx_dev_runtime72.jsxDEV(Link, {
327616
- url: "https://docs.ur.dev/docs/en/google-vertex-ai",
327617
- children: "https://docs.ur.dev/docs/en/google-vertex-ai"
327629
+ url: "https://docs.ur.com/docs/en/google-vertex-ai",
327630
+ children: "https://docs.ur.com/docs/en/google-vertex-ai"
327618
327631
  }, undefined, false, undefined, this)
327619
327632
  ]
327620
327633
  }, undefined, true, undefined, this)
@@ -328584,7 +328597,7 @@ async function runExtraUsage() {
328584
328597
  value: "Please contact your admin to manage extra usage settings."
328585
328598
  };
328586
328599
  }
328587
- const url3 = isTeamOrEnterprise ? "https://ur.ai/admin-settings/usage" : "https://ur.ai/settings/usage";
328600
+ const url3 = isTeamOrEnterprise ? "https://ur.com/admin-settings/usage" : "https://ur.com/settings/usage";
328588
328601
  try {
328589
328602
  const opened = await openBrowser(url3);
328590
328603
  return { type: "browser-opened", url: url3, opened };
@@ -337472,7 +337485,8 @@ function renderToolResultMessage4(data, progressMessagesForMessage, {
337472
337485
  content,
337473
337486
  prompt
337474
337487
  } = data;
337475
- const result = [totalToolUseCount === 1 ? "1 tool use" : `${totalToolUseCount} tool uses`, formatNumber(totalTokens) + " tokens", formatDuration(totalDurationMs)];
337488
+ const tokenSegment = formatReportedTokens(usage, totalTokens, formatNumber);
337489
+ const result = [totalToolUseCount === 1 ? "1 tool use" : `${totalToolUseCount} tool uses`, ...tokenSegment ? [tokenSegment] : [], formatDuration(totalDurationMs)];
337476
337490
  const completionMessage = `Done (${result.join(" \xB7 ")})`;
337477
337491
  const finalAssistantMessage = createAssistantMessage({
337478
337492
  content: completionMessage,
@@ -338032,6 +338046,7 @@ var init_UI4 = __esm(() => {
338032
338046
  init_collapseReadSearch();
338033
338047
  init_file();
338034
338048
  init_format2();
338049
+ init_tokens();
338035
338050
  init_messages();
338036
338051
  init_model();
338037
338052
  init_AgentTool();
@@ -343636,7 +343651,7 @@ async function _bundleWithFallback(gitRoot, bundlePath, maxBytes, hasStash, sign
343636
343651
  }
343637
343652
  return {
343638
343653
  ok: false,
343639
- error: "Repo is too large to bundle. Please setup GitHub on https://ur.ai/code",
343654
+ error: "Repo is too large to bundle. Please setup GitHub on https://ur.com/code",
343640
343655
  failReason: "too_large"
343641
343656
  };
343642
343657
  }
@@ -344372,7 +344387,7 @@ async function teleportToRemote(options2) {
344372
344387
  });
344373
344388
  if (!bundle.success) {
344374
344389
  logError2(new Error(`Bundle upload failed: ${bundle.error}`));
344375
- const setup = repoInfo ? ". Please setup GitHub on https://ur.ai/code" : "";
344390
+ const setup = repoInfo ? ". Please setup GitHub on https://ur.com/code" : "";
344376
344391
  let msg;
344377
344392
  switch (bundle.failReason) {
344378
344393
  case "empty_repo":
@@ -344647,7 +344662,7 @@ function formatPreconditionError(error40) {
344647
344662
  case "not_logged_in":
344648
344663
  return "Please run /login and sign in with your UR account (not Console).";
344649
344664
  case "no_remote_environment":
344650
- return "No cloud environment available. Set one up at https://ur.ai/code/onboarding?magic=env-setup";
344665
+ return "No cloud environment available. Set one up at https://ur.com/code/onboarding?magic=env-setup";
344651
344666
  case "not_in_git_repo":
344652
344667
  return "Background tasks require a git repository. Initialize git or run from a git repository.";
344653
344668
  case "no_git_remote":
@@ -367476,7 +367491,7 @@ function isPreapprovedHost(hostname3, pathname) {
367476
367491
  var PREAPPROVED_HOSTS, HOSTNAME_ONLY, PATH_PREFIXES;
367477
367492
  var init_preapproved = __esm(() => {
367478
367493
  PREAPPROVED_HOSTS = new Set([
367479
- "docs.ur.dev",
367494
+ "docs.ur.com",
367480
367495
  "modelcontextprotocol.io",
367481
367496
  "github.com/Maitham16",
367482
367497
  "agentskills.io",
@@ -368043,7 +368058,7 @@ var init_utils11 = __esm(() => {
368043
368058
  };
368044
368059
  DomainCheckFailedError = class DomainCheckFailedError extends Error {
368045
368060
  constructor(domain2) {
368046
- super(`Unable to verify if domain ${domain2} is safe to fetch. This may be due to network restrictions or enterprise security policies blocking ur.ai.`);
368061
+ super(`Unable to verify if domain ${domain2} is safe to fetch. This may be due to network restrictions or enterprise security policies blocking ur.com.`);
368047
368062
  this.name = "DomainCheckFailedError";
368048
368063
  }
368049
368064
  };
@@ -371589,6 +371604,7 @@ var init_ExitPlanModeV2Tool = __esm(() => {
371589
371604
  hasTaskTool: exports_external.boolean().optional().describe("Whether the Agent tool is available in the current context"),
371590
371605
  planWasEdited: exports_external.boolean().optional().describe("True when the user edited the plan (CCR web UI or Ctrl+G); determines whether the plan is echoed back in tool_result"),
371591
371606
  awaitingLeaderApproval: exports_external.boolean().optional().describe("When true, the teammate has sent a plan approval request to the team leader"),
371607
+ alreadyExited: exports_external.boolean().optional().describe("When true, plan mode had already been exited and this call was a no-op"),
371592
371608
  requestId: exports_external.string().optional().describe("Unique identifier for the plan approval request")
371593
371609
  }));
371594
371610
  ExitPlanModeV2Tool = buildTool({
@@ -371638,6 +371654,9 @@ var init_ExitPlanModeV2Tool = __esm(() => {
371638
371654
  mode,
371639
371655
  hasExitedPlanModeInSession: hasExitedPlanModeInSession()
371640
371656
  });
371657
+ if (hasExitedPlanModeInSession()) {
371658
+ return { result: true };
371659
+ }
371641
371660
  return {
371642
371661
  result: false,
371643
371662
  message: "You are not in plan mode. This tool is only for exiting plan mode after writing a plan. If your plan was already approved, continue with implementation.",
@@ -371653,6 +371672,12 @@ var init_ExitPlanModeV2Tool = __esm(() => {
371653
371672
  updatedInput: input
371654
371673
  };
371655
371674
  }
371675
+ if (context5.getAppState().toolPermissionContext.mode !== "plan" && hasExitedPlanModeInSession()) {
371676
+ return {
371677
+ behavior: "allow",
371678
+ updatedInput: input
371679
+ };
371680
+ }
371656
371681
  return {
371657
371682
  behavior: "ask",
371658
371683
  message: "Exit plan mode?",
@@ -371667,6 +371692,9 @@ var init_ExitPlanModeV2Tool = __esm(() => {
371667
371692
  const filePath = getPlanFilePath(context5.agentId);
371668
371693
  const inputPlan = "plan" in input && typeof input.plan === "string" ? input.plan : undefined;
371669
371694
  const plan = inputPlan ?? getPlan(context5.agentId);
371695
+ if (!isTeammate() && context5.getAppState().toolPermissionContext.mode !== "plan" && hasExitedPlanModeInSession()) {
371696
+ return { data: { plan, isAgent, filePath, alreadyExited: true } };
371697
+ }
371670
371698
  if (inputPlan !== undefined && filePath) {
371671
371699
  await writeFile21(filePath, inputPlan, "utf-8").catch((e) => logError2(e));
371672
371700
  persistFileSnapshotIfRemote();
@@ -371759,8 +371787,16 @@ var init_ExitPlanModeV2Tool = __esm(() => {
371759
371787
  hasTaskTool,
371760
371788
  planWasEdited,
371761
371789
  awaitingLeaderApproval,
371762
- requestId
371790
+ requestId,
371791
+ alreadyExited
371763
371792
  }, toolUseID) {
371793
+ if (alreadyExited) {
371794
+ return {
371795
+ type: "tool_result",
371796
+ content: "Plan mode is already exited \u2014 this call did nothing. Continue with the implementation and do not call ExitPlanMode again this turn.",
371797
+ tool_use_id: toolUseID
371798
+ };
371799
+ }
371764
371800
  if (awaitingLeaderApproval) {
371765
371801
  return {
371766
371802
  type: "tool_result",
@@ -373264,9 +373300,25 @@ function normalizeQuestionOptionInput(value) {
373264
373300
  } : {}
373265
373301
  };
373266
373302
  }
373303
+ function optionsField(question) {
373304
+ for (const name of ["options", "choices", "values", "items", "alternatives", "candidates", "selections"]) {
373305
+ const value = question[name];
373306
+ if (Array.isArray(value))
373307
+ return value;
373308
+ if (typeof value === "string") {
373309
+ const parsed = parseToolInputJsonLenient(value);
373310
+ if (Array.isArray(parsed))
373311
+ return parsed;
373312
+ }
373313
+ }
373314
+ return null;
373315
+ }
373267
373316
  function normalizeQuestionInput(value, index2) {
373268
373317
  const question = objectValue3(value);
373269
- if (!question || !Array.isArray(question.options))
373318
+ if (!question)
373319
+ return value;
373320
+ const options2 = optionsField(question);
373321
+ if (!options2)
373270
373322
  return value;
373271
373323
  const questionText = stringField2(question, ["question", "questionText", "question_text", "prompt", "text", "title", "message", "body"]);
373272
373324
  if (!questionText)
@@ -373274,7 +373326,7 @@ function normalizeQuestionInput(value, index2) {
373274
373326
  return {
373275
373327
  question: questionText,
373276
373328
  header: typeof question.header === "string" && question.header.trim() ? question.header.trim().slice(0, ASK_USER_QUESTION_TOOL_CHIP_WIDTH) : headerFromQuestion2(questionText, index2),
373277
- options: question.options.map(normalizeQuestionOptionInput),
373329
+ options: options2.map(normalizeQuestionOptionInput),
373278
373330
  ...typeof question.multiSelect === "boolean" ? {
373279
373331
  multiSelect: question.multiSelect
373280
373332
  } : {}
@@ -387704,7 +387756,7 @@ function isAnyTracingEnabled() {
387704
387756
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
387705
387757
  }
387706
387758
  function getTracer() {
387707
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.70.0");
387759
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.73.0");
387708
387760
  }
387709
387761
  function createSpanAttributes(spanType, customAttributes = {}) {
387710
387762
  const baseAttributes = getTelemetryAttributes();
@@ -410140,7 +410192,7 @@ function getAssistantMessageFromError(error40, model, options2) {
410140
410192
  });
410141
410193
  }
410142
410194
  if (error40.message.includes("Extra usage is required for long context")) {
410143
- const hint = getIsNonInteractiveSession() ? "enable extra usage at ur.ai/settings/usage, or use --model to switch to standard context" : "run /extra-usage to enable, or /model to switch to standard context";
410195
+ const hint = getIsNonInteractiveSession() ? "enable extra usage at ur.com/settings/usage, or use --model to switch to standard context" : "run /extra-usage to enable, or /model to switch to standard context";
410144
410196
  return createAssistantAPIErrorMessage({
410145
410197
  content: `${API_ERROR_MESSAGE_PREFIX}: Extra usage is required for 1M context \xB7 ${hint}`,
410146
410198
  error: "rate_limit"
@@ -415859,9 +415911,22 @@ var init_BaseTextInput = __esm(() => {
415859
415911
  });
415860
415912
 
415861
415913
  // src/components/TextInput.tsx
415914
+ function resolveImplicitInputColumns(terminalColumns) {
415915
+ const base2 = Number.isFinite(terminalColumns) && terminalColumns > 0 ? terminalColumns : IMPLICIT_WIDTH_FALLBACK;
415916
+ return Math.max(2, Math.floor(base2) - IMPLICIT_WIDTH_GUTTER);
415917
+ }
415918
+ function hasUsableColumns(columns) {
415919
+ return typeof columns === "number" && Number.isFinite(columns) && columns >= 2;
415920
+ }
415862
415921
  function TextInput(props) {
415863
415922
  const [theme] = useTheme();
415864
415923
  const isTerminalFocused = useTerminalFocus();
415924
+ const terminalSize = import_react91.useContext(TerminalSizeContext);
415925
+ const resolvedColumns = hasUsableColumns(props.columns) ? props.columns : resolveImplicitInputColumns(terminalSize?.columns);
415926
+ const [internalOffset, setInternalOffset] = import_react91.useState(0);
415927
+ const hasExternalOffset = typeof props.onChangeCursorOffset === "function";
415928
+ const resolvedOffset = hasExternalOffset ? props.cursorOffset : internalOffset;
415929
+ const resolvedOnOffsetChange = hasExternalOffset ? props.onChangeCursorOffset : setInternalOffset;
415865
415930
  const accessibilityEnabled = import_react91.useMemo(() => isEnvTruthy(process.env.UR_CODE_ACCESSIBILITY), []);
415866
415931
  const settings = useSettings();
415867
415932
  const reducedMotion = settings.prefersReducedMotion ?? false;
@@ -415915,13 +415980,13 @@ function TextInput(props) {
415915
415980
  highlightPastedText: props.highlightPastedText,
415916
415981
  invert,
415917
415982
  themeText: color("text", theme),
415918
- columns: props.columns,
415983
+ columns: resolvedColumns,
415919
415984
  maxVisibleLines: props.maxVisibleLines,
415920
415985
  onImagePaste: props.onImagePaste,
415921
415986
  disableCursorMovementForUpDownKeys: props.disableCursorMovementForUpDownKeys,
415922
415987
  disableEscapeDoublePress: props.disableEscapeDoublePress,
415923
- externalOffset: props.cursorOffset,
415924
- onOffsetChange: props.onChangeCursorOffset,
415988
+ externalOffset: resolvedOffset,
415989
+ onOffsetChange: resolvedOnOffsetChange,
415925
415990
  inputFilter: props.inputFilter,
415926
415991
  inlineGhostText: props.inlineGhostText,
415927
415992
  dim: source_default.dim
@@ -415934,17 +415999,21 @@ function TextInput(props) {
415934
415999
  highlights: props.highlights,
415935
416000
  invert,
415936
416001
  hidePlaceholderText: isVoiceRecording,
415937
- ...props
416002
+ ...props,
416003
+ columns: resolvedColumns,
416004
+ cursorOffset: resolvedOffset,
416005
+ onChangeCursorOffset: resolvedOnOffsetChange
415938
416006
  }, undefined, false, undefined, this)
415939
416007
  }, undefined, false, undefined, this);
415940
416008
  }
415941
- var import_react91, jsx_dev_runtime159, BARS = " \u2581\u2582\u2583\u2584\u2585\u2586\u2587\u2588", CURSOR_WAVEFORM_WIDTH = 1, SMOOTH = 0.7, LEVEL_BOOST = 1.8, SILENCE_THRESHOLD2 = 0.15;
416009
+ var import_react91, jsx_dev_runtime159, BARS = " \u2581\u2582\u2583\u2584\u2585\u2586\u2587\u2588", CURSOR_WAVEFORM_WIDTH = 1, SMOOTH = 0.7, LEVEL_BOOST = 1.8, SILENCE_THRESHOLD2 = 0.15, IMPLICIT_WIDTH_GUTTER = 4, IMPLICIT_WIDTH_FALLBACK = 80;
415942
416010
  var init_TextInput = __esm(() => {
415943
416011
  init_source2();
415944
416012
  init_voice();
415945
416013
  init_useClipboardImageHint();
415946
416014
  init_useSettings();
415947
416015
  init_useTextInput();
416016
+ init_TerminalSizeContext();
415948
416017
  init_ink2();
415949
416018
  init_envUtils();
415950
416019
  init_BaseTextInput();
@@ -417893,7 +417962,7 @@ function Feedback({
417893
417962
  platform: env2.platform,
417894
417963
  gitRepo: envInfo.isGit,
417895
417964
  terminal: env2.terminal,
417896
- version: "1.70.0",
417965
+ version: "1.73.0",
417897
417966
  transcript: normalizeMessagesForAPI(messages),
417898
417967
  errors: sanitizedErrors,
417899
417968
  lastApiRequest: getLastAPIRequest(),
@@ -418085,7 +418154,7 @@ function Feedback({
418085
418154
  ", ",
418086
418155
  env2.terminal,
418087
418156
  ", v",
418088
- "1.70.0"
418157
+ "1.73.0"
418089
418158
  ]
418090
418159
  }, undefined, true, undefined, this)
418091
418160
  ]
@@ -418191,7 +418260,7 @@ ${sanitizedDescription}
418191
418260
  ` + `**Environment Info**
418192
418261
  ` + `- Platform: ${env2.platform}
418193
418262
  ` + `- Terminal: ${env2.terminal}
418194
- ` + `- Version: ${"1.70.0"}
418263
+ ` + `- Version: ${"1.73.0"}
418195
418264
  ` + `- Feedback ID: ${feedbackId}
418196
418265
  ` + `
418197
418266
  **Errors**
@@ -420268,7 +420337,7 @@ async function openCurrentSessionInDesktop() {
420268
420337
  if (!installed) {
420269
420338
  return {
420270
420339
  success: false,
420271
- error: "UR Desktop is not installed. Install it from https://ur.ai/download"
420340
+ error: "UR Desktop is not installed. Install it from https://ur.com/download"
420272
420341
  };
420273
420342
  }
420274
420343
  const deepLinkUrl = buildDesktopDeepLink(sessionId);
@@ -420373,9 +420442,9 @@ var init_LoadingState = __esm(() => {
420373
420442
  function getDownloadUrl() {
420374
420443
  switch (process.platform) {
420375
420444
  case "win32":
420376
- return "https://ur.ai/api/desktop/win32/x64/exe/latest/redirect";
420445
+ return "https://ur.com/api/desktop/win32/x64/exe/latest/redirect";
420377
420446
  default:
420378
- return "https://ur.ai/api/desktop/darwin/universal/dmg/latest/redirect";
420447
+ return "https://ur.com/api/desktop/darwin/universal/dmg/latest/redirect";
420379
420448
  }
420380
420449
  }
420381
420450
  function DesktopHandoff(t0) {
@@ -420574,7 +420643,7 @@ async function _temp214(onDone_0) {
420574
420643
  await gracefulShutdown(0, "other");
420575
420644
  }
420576
420645
  function _temp61() {}
420577
- var import_compiler_runtime125, import_react99, jsx_dev_runtime169, DESKTOP_DOCS_URL = "https://ur.ai/desktop";
420646
+ var import_compiler_runtime125, import_react99, jsx_dev_runtime169, DESKTOP_DOCS_URL = "https://ur.com/desktop";
420578
420647
  var init_DesktopHandoff = __esm(() => {
420579
420648
  init_ink2();
420580
420649
  init_browser();
@@ -421301,7 +421370,7 @@ function buildPrimarySection() {
421301
421370
  }, undefined, false, undefined, this);
421302
421371
  return [{
421303
421372
  label: "Version",
421304
- value: "1.70.0"
421373
+ value: "1.73.0"
421305
421374
  }, {
421306
421375
  label: "Session name",
421307
421376
  value: nameValue
@@ -424631,7 +424700,7 @@ function Config({
424631
424700
  }
424632
424701
  }, undefined, false, undefined, this)
424633
424702
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
424634
- currentVersion: "1.70.0",
424703
+ currentVersion: "1.73.0",
424635
424704
  onChoice: (choice) => {
424636
424705
  setShowSubmenu(null);
424637
424706
  setTabsHidden(false);
@@ -424643,7 +424712,7 @@ function Config({
424643
424712
  autoUpdatesChannel: "stable"
424644
424713
  };
424645
424714
  if (choice === "stay") {
424646
- newSettings.minimumVersion = "1.70.0";
424715
+ newSettings.minimumVersion = "1.73.0";
424647
424716
  }
424648
424717
  updateSettingsForSource("userSettings", newSettings);
424649
424718
  setSettingsData((prev_27) => ({
@@ -429266,8 +429335,8 @@ function McpParsingWarnings() {
429266
429335
  "For help configuring MCP servers, see:",
429267
429336
  " ",
429268
429337
  /* @__PURE__ */ jsx_dev_runtime194.jsxDEV(Link, {
429269
- url: "https://docs.ur.dev/docs/en/mcp",
429270
- children: "https://docs.ur.dev/docs/en/mcp"
429338
+ url: "https://docs.ur.com/docs/en/mcp",
429339
+ children: "https://docs.ur.com/docs/en/mcp"
429271
429340
  }, undefined, false, undefined, this)
429272
429341
  ]
429273
429342
  }, undefined, true, undefined, this)
@@ -431838,7 +431907,7 @@ ${editorHint}`, {
431838
431907
  children: [
431839
431908
  "Learn more: ",
431840
431909
  /* @__PURE__ */ jsx_dev_runtime202.jsxDEV(Link, {
431841
- url: "https://docs.ur.dev/docs/en/memory"
431910
+ url: "https://docs.ur.com/docs/en/memory"
431842
431911
  }, undefined, false, undefined, this)
431843
431912
  ]
431844
431913
  }, undefined, true, undefined, this)
@@ -432707,7 +432776,7 @@ function HelpV2(t0) {
432707
432776
  let t6;
432708
432777
  if ($2[31] !== tabs) {
432709
432778
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
432710
- title: `UR v${"1.70.0"}`,
432779
+ title: `UR v${"1.73.0"}`,
432711
432780
  color: "professionalBlue",
432712
432781
  defaultTab: "general",
432713
432782
  children: tabs
@@ -432726,7 +432795,7 @@ function HelpV2(t0) {
432726
432795
  "For more help:",
432727
432796
  " ",
432728
432797
  /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Link, {
432729
- url: "https://docs.ur.dev/docs/en/overview"
432798
+ url: "https://docs.ur.com/docs/en/overview"
432730
432799
  }, undefined, false, undefined, this)
432731
432800
  ]
432732
432801
  }, undefined, true, undefined, this)
@@ -433640,7 +433709,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
433640
433709
  async function handleInitialize(options2) {
433641
433710
  return {
433642
433711
  name: "UR",
433643
- version: "1.70.0",
433712
+ version: "1.73.0",
433644
433713
  protocolVersion: "0.1.0",
433645
433714
  workspaceRoot: options2.cwd,
433646
433715
  capabilities: {
@@ -435356,7 +435425,7 @@ Usage notes:
435356
435425
  \`\`\`
435357
435426
  # UR.md
435358
435427
 
435359
- This file provides guidance to UR (ur.ai/code) when working with code in this repository.
435428
+ This file provides guidance to UR (ur.com/code) when working with code in this repository.
435360
435429
  \`\`\``, command3, init_default3;
435361
435430
  var init_init = __esm(() => {
435362
435431
  init_projectOnboardingState();
@@ -435664,7 +435733,7 @@ function generateKeybindingsTemplate() {
435664
435733
  const bindings = filterReservedShortcuts(DEFAULT_BINDINGS);
435665
435734
  const config3 = {
435666
435735
  $schema: "https://www.schemastore.org/ur-keybindings.json",
435667
- $docs: "https://docs.ur.dev/docs/en/keybindings",
435736
+ $docs: "https://docs.ur.com/docs/en/keybindings",
435668
435737
  bindings
435669
435738
  };
435670
435739
  return jsonStringify(config3, null, 2) + `
@@ -436522,7 +436591,7 @@ function MCPListPanel(t0) {
436522
436591
  paddingLeft: 2,
436523
436592
  children: /* @__PURE__ */ jsx_dev_runtime211.jsxDEV(ThemedText, {
436524
436593
  bold: true,
436525
- children: "ur.ai"
436594
+ children: "ur.com"
436526
436595
  }, undefined, false, undefined, this)
436527
436596
  }, undefined, false, undefined, this),
436528
436597
  urAiServers.map((server_5) => renderServerItem(server_5))
@@ -436621,8 +436690,8 @@ function MCPListPanel(t0) {
436621
436690
  dimColor: true,
436622
436691
  children: [
436623
436692
  /* @__PURE__ */ jsx_dev_runtime211.jsxDEV(Link, {
436624
- url: "https://docs.ur.dev/docs/en/mcp",
436625
- children: "https://docs.ur.dev/docs/en/mcp"
436693
+ url: "https://docs.ur.com/docs/en/mcp",
436694
+ children: "https://docs.ur.com/docs/en/mcp"
436626
436695
  }, undefined, false, undefined, this),
436627
436696
  " ",
436628
436697
  "for help"
@@ -436972,7 +437041,7 @@ function gateChannelServer(serverName, capabilities, pluginSource) {
436972
437041
  return {
436973
437042
  action: "skip",
436974
437043
  kind: "auth",
436975
- reason: "channels requires ur.ai authentication (run /login)"
437044
+ reason: "channels requires ur.com authentication (run /login)"
436976
437045
  };
436977
437046
  }
436978
437047
  const sub = getSubscriptionType();
@@ -437405,7 +437474,7 @@ function useManageMCPConnections(dynamicMcpConfig, isStrictMcpConfig = false) {
437405
437474
  });
437406
437475
  const enabledURaiConfigs = Object.fromEntries(Object.entries(uraiConfigs).filter(([name]) => !isMcpServerDisabled(name)));
437407
437476
  getMcpToolsCommandsAndResources(onConnectionAttempt, enabledURaiConfigs).catch((error40) => {
437408
- logMCPError("useManageMcpConnections", `Failed to get ur.ai MCP resources: ${errorMessage2(error40)}`);
437477
+ logMCPError("useManageMcpConnections", `Failed to get ur.com MCP resources: ${errorMessage2(error40)}`);
437409
437478
  });
437410
437479
  }
437411
437480
  }
@@ -438459,7 +438528,7 @@ function MCPRemoteServerMenu({
438459
438528
  }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime215.jsxDEV(jsx_dev_runtime215.Fragment, {
438460
438529
  children: [
438461
438530
  /* @__PURE__ */ jsx_dev_runtime215.jsxDEV(ThemedText, {
438462
- children: 'This will open ur.ai in the browser. Find the MCP server in the list and click "Disconnect".'
438531
+ children: 'This will open ur.com in the browser. Find the MCP server in the list and click "Disconnect".'
438463
438532
  }, undefined, false, undefined, this),
438464
438533
  /* @__PURE__ */ jsx_dev_runtime215.jsxDEV(ThemedBox_default, {
438465
438534
  marginLeft: 3,
@@ -439818,7 +439887,7 @@ function MCPSettings(t0) {
439818
439887
  t9 = $2[25];
439819
439888
  }
439820
439889
  const serverTools_0 = t9;
439821
- const defaultTab = viewState.server.transport === "urai-proxy" ? "ur.ai" : "UR";
439890
+ const defaultTab = viewState.server.transport === "urai-proxy" ? "ur.com" : "UR";
439822
439891
  if (viewState.server.transport === "stdio") {
439823
439892
  let t10;
439824
439893
  if ($2[26] !== viewState.server) {
@@ -450748,7 +450817,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
450748
450817
  return [];
450749
450818
  }
450750
450819
  }
450751
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.70.0") {
450820
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.73.0") {
450752
450821
  if (process.env.USER_TYPE === "ant") {
450753
450822
  const changelog = "";
450754
450823
  if (changelog) {
@@ -450775,7 +450844,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.70.0")
450775
450844
  releaseNotes
450776
450845
  };
450777
450846
  }
450778
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.70.0") {
450847
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.73.0") {
450779
450848
  if (process.env.USER_TYPE === "ant") {
450780
450849
  const changelog = "";
450781
450850
  if (changelog) {
@@ -453641,7 +453710,7 @@ function getRecentActivitySync() {
453641
453710
  return cachedActivity;
453642
453711
  }
453643
453712
  function getLogoDisplayData() {
453644
- const version2 = process.env.DEMO_VERSION ?? "1.70.0";
453713
+ const version2 = process.env.DEMO_VERSION ?? "1.73.0";
453645
453714
  const serverUrl = getDirectConnectServerUrl();
453646
453715
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
453647
453716
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -454508,7 +454577,7 @@ function LogoV2() {
454508
454577
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
454509
454578
  t2 = () => {
454510
454579
  const currentConfig2 = getGlobalConfig();
454511
- if (currentConfig2.lastReleaseNotesSeen === "1.70.0") {
454580
+ if (currentConfig2.lastReleaseNotesSeen === "1.73.0") {
454512
454581
  return;
454513
454582
  }
454514
454583
  saveGlobalConfig(_temp325);
@@ -455193,12 +455262,12 @@ function LogoV2() {
455193
455262
  return t41;
455194
455263
  }
455195
455264
  function _temp325(current) {
455196
- if (current.lastReleaseNotesSeen === "1.70.0") {
455265
+ if (current.lastReleaseNotesSeen === "1.73.0") {
455197
455266
  return current;
455198
455267
  }
455199
455268
  return {
455200
455269
  ...current,
455201
- lastReleaseNotesSeen: "1.70.0"
455270
+ lastReleaseNotesSeen: "1.73.0"
455202
455271
  };
455203
455272
  }
455204
455273
  function _temp241(s_0) {
@@ -455938,7 +456007,7 @@ var init_statusNoticeDefinitions = __esm(() => {
455938
456007
  children: [
455939
456008
  "\xB7 Trying to use",
455940
456009
  " ",
455941
- authTokenInfo.source === "ur.ai" ? "ur.ai" : authTokenInfo.source,
456010
+ authTokenInfo.source === "ur.com" ? "ur.com" : authTokenInfo.source,
455942
456011
  "?",
455943
456012
  " ",
455944
456013
  apiKeySource === "URHQ_API_KEY" ? 'Unset the URHQ_API_KEY environment variable, or ur /logout then say "No" to the API key approval before login.' : apiKeySource === "apiKeyHelper" ? "Unset the apiKeyHelper setting." : "ur /logout"
@@ -455951,7 +456020,7 @@ var init_statusNoticeDefinitions = __esm(() => {
455951
456020
  apiKeySource,
455952
456021
  "?",
455953
456022
  " ",
455954
- authTokenInfo.source === "ur.ai" ? "ur /logout to sign out." : `Unset the ${authTokenInfo.source} environment variable.`
456023
+ authTokenInfo.source === "ur.com" ? "ur /logout to sign out." : `Unset the ${authTokenInfo.source} environment variable.`
455955
456024
  ]
455956
456025
  }, undefined, true, undefined, this)
455957
456026
  ]
@@ -462563,13 +462632,13 @@ async function launchAndDone(args, context6, onDone, billingNote, signal) {
462563
462632
  var jsx_dev_runtime257, call36 = async (onDone, context6, args) => {
462564
462633
  const gate = await checkOverageGate();
462565
462634
  if (gate.kind === "not-enabled") {
462566
- onDone("Free ultrareviews used. Enable Extra Usage at https://ur.ai/settings/billing to continue.", {
462635
+ onDone("Free ultrareviews used. Enable Extra Usage at https://ur.com/settings/billing to continue.", {
462567
462636
  display: "system"
462568
462637
  });
462569
462638
  return null;
462570
462639
  }
462571
462640
  if (gate.kind === "low-balance") {
462572
- onDone(`Balance too low to launch ultrareview ($${gate.available.toFixed(2)} available, $10 minimum). Top up at https://ur.ai/settings/billing`, {
462641
+ onDone(`Balance too low to launch ultrareview ($${gate.available.toFixed(2)} available, $10 minimum). Top up at https://ur.com/settings/billing`, {
462573
462642
  display: "system"
462574
462643
  });
462575
462644
  return null;
@@ -462596,7 +462665,7 @@ var init_ultrareviewCommand = __esm(() => {
462596
462665
  });
462597
462666
 
462598
462667
  // src/commands/review.ts
462599
- var CCR_TERMS_URL = "https://docs.ur.dev/docs/en/ur-on-the-web", LOCAL_REVIEW_PROMPT = (args) => `
462668
+ var CCR_TERMS_URL = "https://docs.ur.com/docs/en/ur-on-the-web", LOCAL_REVIEW_PROMPT = (args) => `
462600
462669
  You are an expert code reviewer. Follow these steps:
462601
462670
 
462602
462671
  1. If no PR number is provided in the args, run \`gh pr list\` to show open PRs
@@ -463195,7 +463264,7 @@ var init_teammateViewHelpers = __esm(() => {
463195
463264
  });
463196
463265
 
463197
463266
  // src/bridge/types.ts
463198
- var DEFAULT_SESSION_TIMEOUT_MS, BRIDGE_LOGIN_INSTRUCTION = "Remote Control is only available with ur.ai subscriptions. Please use `/login` to sign in with your ur.ai account.", BRIDGE_LOGIN_ERROR, REMOTE_CONTROL_DISCONNECTED_MSG = "Remote Control disconnected.";
463267
+ var DEFAULT_SESSION_TIMEOUT_MS, BRIDGE_LOGIN_INSTRUCTION = "Remote Control is only available with ur.com subscriptions. Please use `/login` to sign in with your ur.com account.", BRIDGE_LOGIN_ERROR, REMOTE_CONTROL_DISCONNECTED_MSG = "Remote Control disconnected.";
463199
463268
  var init_types14 = __esm(() => {
463200
463269
  DEFAULT_SESSION_TIMEOUT_MS = 24 * 60 * 60 * 1000;
463201
463270
  BRIDGE_LOGIN_ERROR = `Error: You must be logged in to use Remote Control.
@@ -463707,7 +463776,7 @@ ${reasons}`,
463707
463776
  } : prev);
463708
463777
  }
463709
463778
  }
463710
- var ULTRAPLAN_TIMEOUT_MS, CCR_TERMS_URL2 = "https://docs.ur.dev/docs/en/ur-on-the-web", _rawPrompt, DEFAULT_INSTRUCTIONS, ULTRAPLAN_INSTRUCTIONS, call40 = async (onDone, context6, args) => {
463779
+ var ULTRAPLAN_TIMEOUT_MS, CCR_TERMS_URL2 = "https://docs.ur.com/docs/en/ur-on-the-web", _rawPrompt, DEFAULT_INSTRUCTIONS, ULTRAPLAN_INSTRUCTIONS, call40 = async (onDone, context6, args) => {
463711
463780
  const blurb = args.trim();
463712
463781
  if (!blurb) {
463713
463782
  const msg = await launchUltraplan({
@@ -472012,7 +472081,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
472012
472081
  if (spec.name !== specName) {
472013
472082
  throw new Error("Agentic CI workflow spec name does not match");
472014
472083
  }
472015
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.70.0" : "1.70.0");
472084
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.73.0" : "1.73.0");
472016
472085
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
472017
472086
  throw new Error("invalid ur-agent package version");
472018
472087
  }
@@ -473005,7 +473074,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
473005
473074
  path: ".github/workflows/ur.yml",
473006
473075
  root: "project",
473007
473076
  content: compileAgenticCiWorkflow("default", {
473008
- packageVersion: typeof MACRO !== "undefined" ? "1.70.0" : "1.70.0"
473077
+ packageVersion: typeof MACRO !== "undefined" ? "1.73.0" : "1.73.0"
473009
473078
  })
473010
473079
  },
473011
473080
  {
@@ -473068,7 +473137,7 @@ function value(tokens, flag) {
473068
473137
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
473069
473138
  }
473070
473139
  function cliVersion() {
473071
- return typeof MACRO !== "undefined" ? "1.70.0" : "1.70.0";
473140
+ return typeof MACRO !== "undefined" ? "1.73.0" : "1.73.0";
473072
473141
  }
473073
473142
  function workflowPath(cwd2) {
473074
473143
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -478924,7 +478993,7 @@ function createAcpStdioApp(deps) {
478924
478993
  }
478925
478994
  },
478926
478995
  authMethods: [],
478927
- agentInfo: { name: "UR-Nexus", version: "1.70.0" }
478996
+ agentInfo: { name: "UR-Nexus", version: "1.73.0" }
478928
478997
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
478929
478998
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
478930
478999
  await runtime2.announce({
@@ -479021,7 +479090,7 @@ function createAcpStdioAgent(deps) {
479021
479090
  }
479022
479091
  },
479023
479092
  authMethods: [],
479024
- agentInfo: { name: "UR-Nexus", version: "1.70.0" }
479093
+ agentInfo: { name: "UR-Nexus", version: "1.73.0" }
479025
479094
  });
479026
479095
  return;
479027
479096
  case "authenticate":
@@ -494327,7 +494396,7 @@ function desktopQaFixtureJsonSchema() {
494327
494396
  });
494328
494397
  return {
494329
494398
  $schema: "https://json-schema.org/draft/2020-12/schema",
494330
- $id: "https://ur.dev/schemas/desktop-qa-fixture-v1.json",
494399
+ $id: "https://ur.com/schemas/desktop-qa-fixture-v1.json",
494331
494400
  title: "UR desktop QA fixture",
494332
494401
  type: "object",
494333
494402
  additionalProperties: false,
@@ -678493,8 +678562,8 @@ function FastModePicker(t0) {
678493
678562
  "Learn more:",
678494
678563
  " ",
678495
678564
  /* @__PURE__ */ jsx_dev_runtime286.jsxDEV(Link, {
678496
- url: "https://docs.ur.dev/docs/en/fast-mode",
678497
- children: "https://docs.ur.dev/docs/en/fast-mode"
678565
+ url: "https://docs.ur.com/docs/en/fast-mode",
678566
+ children: "https://docs.ur.com/docs/en/fast-mode"
678498
678567
  }, undefined, false, undefined, this)
678499
678568
  ]
678500
678569
  }, undefined, true, undefined, this);
@@ -678985,7 +679054,7 @@ function GracePeriodContentBody() {
678985
679054
  children: [
678986
679055
  "\u2014 Allow the use of your chats and coding sessions to train and improve URHQ AI models. Change anytime in your Privacy Settings (",
678987
679056
  /* @__PURE__ */ jsx_dev_runtime289.jsxDEV(Link, {
678988
- url: "https://ur.ai/settings/data-privacy-controls"
679057
+ url: "https://ur.com/settings/data-privacy-controls"
678989
679058
  }, undefined, false, undefined, this),
678990
679059
  ")."
678991
679060
  ]
@@ -679030,7 +679099,7 @@ function GracePeriodContentBody() {
679030
679099
  let t6;
679031
679100
  if ($2[6] === Symbol.for("react.memo_cache_sentinel")) {
679032
679101
  t6 = /* @__PURE__ */ jsx_dev_runtime289.jsxDEV(Link, {
679033
- url: "https://ur.dev/legal/terms"
679102
+ url: "https://ur.com/legal/terms"
679034
679103
  }, undefined, false, undefined, this);
679035
679104
  $2[6] = t6;
679036
679105
  } else {
@@ -679039,7 +679108,7 @@ function GracePeriodContentBody() {
679039
679108
  let t7;
679040
679109
  if ($2[7] === Symbol.for("react.memo_cache_sentinel")) {
679041
679110
  t7 = /* @__PURE__ */ jsx_dev_runtime289.jsxDEV(Link, {
679042
- url: "https://ur.dev/legal/terms"
679111
+ url: "https://ur.com/legal/terms"
679043
679112
  }, undefined, false, undefined, this);
679044
679113
  $2[7] = t7;
679045
679114
  } else {
@@ -679059,7 +679128,7 @@ function GracePeriodContentBody() {
679059
679128
  t7,
679060
679129
  ") and Privacy Policy (",
679061
679130
  /* @__PURE__ */ jsx_dev_runtime289.jsxDEV(Link, {
679062
- url: "https://ur.dev/legal/privacy"
679131
+ url: "https://ur.com/legal/privacy"
679063
679132
  }, undefined, false, undefined, this),
679064
679133
  ")"
679065
679134
  ]
@@ -679105,7 +679174,7 @@ function PostGracePeriodContentBody() {
679105
679174
  children: "Allow the use of your chats and coding sessions to train and improve URHQ AI models. You can change this anytime in Privacy Settings"
679106
679175
  }, undefined, false, undefined, this),
679107
679176
  /* @__PURE__ */ jsx_dev_runtime289.jsxDEV(Link, {
679108
- url: "https://ur.ai/settings/data-privacy-controls"
679177
+ url: "https://ur.com/settings/data-privacy-controls"
679109
679178
  }, undefined, false, undefined, this)
679110
679179
  ]
679111
679180
  }, undefined, true, undefined, this);
@@ -679142,7 +679211,7 @@ function PostGracePeriodContentBody() {
679142
679211
  let t4;
679143
679212
  if ($2[4] === Symbol.for("react.memo_cache_sentinel")) {
679144
679213
  t4 = /* @__PURE__ */ jsx_dev_runtime289.jsxDEV(Link, {
679145
- url: "https://ur.dev/legal/terms"
679214
+ url: "https://ur.com/legal/terms"
679146
679215
  }, undefined, false, undefined, this);
679147
679216
  $2[4] = t4;
679148
679217
  } else {
@@ -679151,7 +679220,7 @@ function PostGracePeriodContentBody() {
679151
679220
  let t5;
679152
679221
  if ($2[5] === Symbol.for("react.memo_cache_sentinel")) {
679153
679222
  t5 = /* @__PURE__ */ jsx_dev_runtime289.jsxDEV(Link, {
679154
- url: "https://ur.dev/legal/terms"
679223
+ url: "https://ur.com/legal/terms"
679155
679224
  }, undefined, false, undefined, this);
679156
679225
  $2[5] = t5;
679157
679226
  } else {
@@ -679171,7 +679240,7 @@ function PostGracePeriodContentBody() {
679171
679240
  t5,
679172
679241
  ") and Privacy Policy (",
679173
679242
  /* @__PURE__ */ jsx_dev_runtime289.jsxDEV(Link, {
679174
- url: "https://ur.dev/legal/privacy"
679243
+ url: "https://ur.com/legal/privacy"
679175
679244
  }, undefined, false, undefined, this),
679176
679245
  ")"
679177
679246
  ]
@@ -679559,7 +679628,7 @@ function PrivacySettingsDialog(t0) {
679559
679628
  "Review and manage your privacy settings at",
679560
679629
  " ",
679561
679630
  /* @__PURE__ */ jsx_dev_runtime289.jsxDEV(Link, {
679562
- url: "https://ur.ai/settings/data-privacy-controls"
679631
+ url: "https://ur.com/settings/data-privacy-controls"
679563
679632
  }, undefined, false, undefined, this)
679564
679633
  ]
679565
679634
  }, undefined, true, undefined, this);
@@ -679701,7 +679770,7 @@ async function call142(onDone) {
679701
679770
  location: "settings"
679702
679771
  }, undefined, false, undefined, this);
679703
679772
  }
679704
- var jsx_dev_runtime290, FALLBACK_MESSAGE = "Review and manage your privacy settings at https://ur.ai/settings/data-privacy-controls";
679773
+ var jsx_dev_runtime290, FALLBACK_MESSAGE = "Review and manage your privacy settings at https://ur.com/settings/data-privacy-controls";
679705
679774
  var init_privacy_settings = __esm(() => {
679706
679775
  init_Grove();
679707
679776
  init_analytics();
@@ -680239,7 +680308,7 @@ function SelectEventMode(t0) {
680239
680308
  " This menu is read-only. To add or modify hooks, edit settings.json directly or ask UR.",
680240
680309
  " ",
680241
680310
  /* @__PURE__ */ jsx_dev_runtime291.jsxDEV(Link, {
680242
- url: "https://docs.ur.dev/docs/en/hooks",
680311
+ url: "https://docs.ur.com/docs/en/hooks",
680243
680312
  children: "Learn more"
680244
680313
  }, undefined, false, undefined, this)
680245
680314
  ]
@@ -688186,7 +688255,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
688186
688255
  smapsRollup,
688187
688256
  platform: process.platform,
688188
688257
  nodeVersion: process.version,
688189
- ccVersion: "1.70.0"
688258
+ ccVersion: "1.73.0"
688190
688259
  };
688191
688260
  }
688192
688261
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -688766,7 +688835,7 @@ var init_bridge_kick = __esm(() => {
688766
688835
  var call153 = async () => {
688767
688836
  return {
688768
688837
  type: "text",
688769
- value: "1.70.0"
688838
+ value: "1.73.0"
688770
688839
  };
688771
688840
  }, version2, version_default;
688772
688841
  var init_version = __esm(() => {
@@ -689482,8 +689551,8 @@ function OverridesSelect(t0) {
689482
689551
  "Learn more:",
689483
689552
  " ",
689484
689553
  /* @__PURE__ */ jsx_dev_runtime325.jsxDEV(Link, {
689485
- url: "https://docs.ur.dev/docs/en/sandboxing#configure-sandboxing",
689486
- children: "docs.ur.dev/docs/en/sandboxing#configure-sandboxing"
689554
+ url: "https://docs.ur.com/docs/en/sandboxing#configure-sandboxing",
689555
+ children: "docs.ur.com/docs/en/sandboxing#configure-sandboxing"
689487
689556
  }, undefined, false, undefined, this)
689488
689557
  ]
689489
689558
  }, undefined, true, undefined, this)
@@ -689853,8 +689922,8 @@ function SandboxModeTab(t0) {
689853
689922
  "Learn more:",
689854
689923
  " ",
689855
689924
  /* @__PURE__ */ jsx_dev_runtime326.jsxDEV(Link, {
689856
- url: "https://docs.ur.dev/docs/en/sandboxing",
689857
- children: "docs.ur.dev/docs/en/sandboxing"
689925
+ url: "https://docs.ur.com/docs/en/sandboxing",
689926
+ children: "docs.ur.com/docs/en/sandboxing"
689858
689927
  }, undefined, false, undefined, this)
689859
689928
  ]
689860
689929
  }, undefined, true, undefined, this)
@@ -690407,7 +690476,7 @@ async function isChromeExtensionInstalled() {
690407
690476
  }
690408
690477
  return isChromeExtensionInstalledPortable(browserPaths, logForDebugging);
690409
690478
  }
690410
- var CHROME_EXTENSION_RECONNECT_URL = "https://ur.ai/chrome/reconnect", NATIVE_HOST_IDENTIFIER = "com.urhq.ur_browser_extension", NATIVE_HOST_MANIFEST_NAME, shouldAutoEnable = undefined;
690479
+ var CHROME_EXTENSION_RECONNECT_URL = "https://ur.com/chrome/reconnect", NATIVE_HOST_IDENTIFIER = "com.urhq.ur_browser_extension", NATIVE_HOST_MANIFEST_NAME, shouldAutoEnable = undefined;
690411
690480
  var init_setup2 = __esm(() => {
690412
690481
  init_chromeMcpCompat();
690413
690482
  init_state();
@@ -690642,7 +690711,7 @@ function URInChromeMenu(t0) {
690642
690711
  if ($2[23] !== isURAISubscriber2) {
690643
690712
  t8 = !isURAISubscriber2 && /* @__PURE__ */ jsx_dev_runtime328.jsxDEV(ThemedText, {
690644
690713
  color: "error",
690645
- children: "UR in Chrome requires a ur.ai subscription."
690714
+ children: "UR in Chrome requires a ur.com subscription."
690646
690715
  }, undefined, false, undefined, this);
690647
690716
  $2[23] = isURAISubscriber2;
690648
690717
  $2[24] = t8;
@@ -690736,7 +690805,7 @@ function URInChromeMenu(t0) {
690736
690805
  if ($2[33] === Symbol.for("react.memo_cache_sentinel")) {
690737
690806
  t10 = /* @__PURE__ */ jsx_dev_runtime328.jsxDEV(ThemedText, {
690738
690807
  dimColor: true,
690739
- children: "Learn more: https://docs.ur.dev/docs/en/chrome"
690808
+ children: "Learn more: https://docs.ur.com/docs/en/chrome"
690740
690809
  }, undefined, false, undefined, this);
690741
690810
  $2[33] = t10;
690742
690811
  } else {
@@ -690793,7 +690862,7 @@ function _temp268(c4) {
690793
690862
  function _temp151(s) {
690794
690863
  return s.mcp.clients;
690795
690864
  }
690796
- var import_compiler_runtime245, import_react179, jsx_dev_runtime328, CHROME_EXTENSION_URL = "https://ur.ai/chrome", CHROME_PERMISSIONS_URL = "https://ur.ai/chrome/permissions", CHROME_RECONNECT_URL = "https://ur.ai/chrome/reconnect", call156 = async function(onDone) {
690865
+ var import_compiler_runtime245, import_react179, jsx_dev_runtime328, CHROME_EXTENSION_URL = "https://ur.com/chrome", CHROME_PERMISSIONS_URL = "https://ur.com/chrome/permissions", CHROME_RECONNECT_URL = "https://ur.com/chrome/reconnect", call156 = async function(onDone) {
690797
690866
  const isExtensionInstalled = await isChromeExtensionInstalled();
690798
690867
  const config3 = getGlobalConfig();
690799
690868
  const isSubscriber = isURAISubscriber();
@@ -691730,6 +691799,28 @@ var init_export2 = __esm(() => {
691730
691799
  export_default = exportCommand;
691731
691800
  });
691732
691801
 
691802
+ // src/services/providers/apiKeyInput.ts
691803
+ function sanitizeApiKeyInput(raw) {
691804
+ if (typeof raw !== "string" || raw.length === 0) {
691805
+ return "";
691806
+ }
691807
+ return raw.replace(CONTROL_AND_LINE_BREAKS, "").trim();
691808
+ }
691809
+ function describeApiKeyProblem(raw) {
691810
+ const cleaned = sanitizeApiKeyInput(raw);
691811
+ if (!cleaned) {
691812
+ return "API key is empty.";
691813
+ }
691814
+ if (/\s/.test(cleaned)) {
691815
+ return "API key contains whitespace. Check the value you pasted.";
691816
+ }
691817
+ return null;
691818
+ }
691819
+ var CONTROL_AND_LINE_BREAKS;
691820
+ var init_apiKeyInput = __esm(() => {
691821
+ CONTROL_AND_LINE_BREAKS = /[\u0000-\u001F\u007F-\u009F\u2028\u2029]/g;
691822
+ });
691823
+
691733
691824
  // src/components/ProviderFirstModelPicker.tsx
691734
691825
  function ProviderFirstModelPicker({
691735
691826
  initial,
@@ -691753,7 +691844,11 @@ function ProviderFirstModelPicker({
691753
691844
  const [providerWarning, setProviderWarning] = import_react183.useState(null);
691754
691845
  const [connectingProvider, setConnectingProvider] = import_react183.useState(null);
691755
691846
  const [apiKeyInput, setApiKeyInput] = import_react183.useState("");
691847
+ const [apiKeyCursorOffset, setApiKeyCursorOffset] = import_react183.useState(0);
691756
691848
  const [connectError, setConnectError] = import_react183.useState(null);
691849
+ const [credentialNotice, setCredentialNotice] = import_react183.useState(null);
691850
+ const terminalSize = import_react183.useContext(TerminalSizeContext);
691851
+ const keyInputColumns = Math.max(20, (terminalSize?.columns ?? 80) - 14);
691757
691852
  const effortValue = useAppState(selectEffortValue2);
691758
691853
  const [effort] = import_react183.useState(effortValue !== undefined ? convertEffortValueToLevel(effortValue) : undefined);
691759
691854
  const appThinkingEnabled = useAppState(selectThinkingEnabled2);
@@ -691811,6 +691906,11 @@ function ProviderFirstModelPicker({
691811
691906
  }
691812
691907
  loadModels();
691813
691908
  }, [selectedProvider]);
691909
+ use_input_default((_input, key) => {
691910
+ if (key.escape) {
691911
+ handleKeyCancel();
691912
+ }
691913
+ }, { isActive: step === "connect" });
691814
691914
  const providerSelectOptions = providerOptions.map((opt) => ({
691815
691915
  value: opt.value,
691816
691916
  label: opt.label,
@@ -691838,10 +691938,20 @@ function ProviderFirstModelPicker({
691838
691938
  setProviderWarning(provider.runtimeBlockedReason);
691839
691939
  return;
691840
691940
  }
691941
+ if (provider.status === "connected" && provider.credentialType === "api-key") {
691942
+ if (getProviderApiKeySource(provider.value) === "stored") {
691943
+ setConnectingProvider(provider);
691944
+ setCredentialNotice(null);
691945
+ setConnectError(null);
691946
+ setStep("manage");
691947
+ return;
691948
+ }
691949
+ }
691841
691950
  if (provider.status !== "connected") {
691842
691951
  if (provider.credentialType === "api-key") {
691843
691952
  setConnectingProvider(provider);
691844
691953
  setApiKeyInput("");
691954
+ setApiKeyCursorOffset(0);
691845
691955
  setConnectError(null);
691846
691956
  setStep("connect");
691847
691957
  return;
@@ -691929,27 +692039,124 @@ function ProviderFirstModelPicker({
691929
692039
  function handleKeySubmit() {
691930
692040
  if (!connectingProvider)
691931
692041
  return;
691932
- const key = apiKeyInput.trim();
692042
+ const key = sanitizeApiKeyInput(apiKeyInput);
691933
692043
  if (!key) {
691934
692044
  setConnectError("Enter your API key (or press Esc to go back).");
691935
692045
  return;
691936
692046
  }
692047
+ const problem = describeApiKeyProblem(apiKeyInput);
692048
+ if (problem) {
692049
+ setConnectError(problem);
692050
+ return;
692051
+ }
691937
692052
  const saved = setProviderApiKey(connectingProvider.value, key);
691938
692053
  if (!saved.ok) {
691939
692054
  setConnectError(saved.message);
691940
692055
  return;
691941
692056
  }
691942
692057
  setApiKeyInput("");
692058
+ setApiKeyCursorOffset(0);
691943
692059
  setConnectError(null);
692060
+ setCredentialNotice(saved.message);
691944
692061
  setSelectedProvider(connectingProvider);
691945
692062
  setStep("model");
691946
692063
  }
691947
692064
  function handleKeyCancel() {
691948
692065
  setApiKeyInput("");
692066
+ setApiKeyCursorOffset(0);
691949
692067
  setConnectingProvider(null);
691950
692068
  setConnectError(null);
691951
692069
  setStep("provider");
691952
692070
  }
692071
+ function handleManageSelect(action3) {
692072
+ if (!connectingProvider)
692073
+ return;
692074
+ if (action3 === "use") {
692075
+ setSelectedProvider(connectingProvider);
692076
+ setStep("model");
692077
+ setFocusedModelValue(null);
692078
+ return;
692079
+ }
692080
+ if (action3 === "replace") {
692081
+ setApiKeyInput("");
692082
+ setApiKeyCursorOffset(0);
692083
+ setConnectError(null);
692084
+ setStep("connect");
692085
+ return;
692086
+ }
692087
+ if (action3 === "disconnect") {
692088
+ const cleared = clearProviderApiKey(connectingProvider.value);
692089
+ if (!cleared.ok) {
692090
+ setCredentialNotice(cleared.message);
692091
+ return;
692092
+ }
692093
+ setCredentialNotice(cleared.message);
692094
+ setProviderOptions((prev) => prev.map((opt) => opt.value === connectingProvider.value ? { ...opt, status: "missing", statusLabel: "No stored API key" } : opt));
692095
+ setConnectingProvider(null);
692096
+ setStep("provider");
692097
+ }
692098
+ }
692099
+ function handleManageCancel() {
692100
+ setConnectingProvider(null);
692101
+ setStep("provider");
692102
+ }
692103
+ if (step === "manage" && connectingProvider) {
692104
+ const manageContent = /* @__PURE__ */ jsx_dev_runtime335.jsxDEV(ThemedBox_default, {
692105
+ flexDirection: "column",
692106
+ children: [
692107
+ /* @__PURE__ */ jsx_dev_runtime335.jsxDEV(ThemedBox_default, {
692108
+ marginBottom: 1,
692109
+ flexDirection: "column",
692110
+ children: [
692111
+ /* @__PURE__ */ jsx_dev_runtime335.jsxDEV(ThemedText, {
692112
+ color: "remember",
692113
+ bold: true,
692114
+ children: connectingProvider.label
692115
+ }, undefined, false, undefined, this),
692116
+ /* @__PURE__ */ jsx_dev_runtime335.jsxDEV(ThemedText, {
692117
+ dimColor: true,
692118
+ children: "Connected with an API key stored by UR. Choose an action, or press Esc to go back."
692119
+ }, undefined, false, undefined, this)
692120
+ ]
692121
+ }, undefined, true, undefined, this),
692122
+ /* @__PURE__ */ jsx_dev_runtime335.jsxDEV(Select, {
692123
+ defaultValue: "use",
692124
+ options: [
692125
+ {
692126
+ value: "use",
692127
+ label: "Continue to models",
692128
+ description: "Keep the stored key and pick a model"
692129
+ },
692130
+ {
692131
+ value: "replace",
692132
+ label: "Change API key",
692133
+ description: "Replace the stored key with a new one"
692134
+ },
692135
+ {
692136
+ value: "disconnect",
692137
+ label: "Disconnect",
692138
+ description: "Remove the stored key from this machine"
692139
+ }
692140
+ ],
692141
+ onChange: handleManageSelect,
692142
+ onCancel: handleManageCancel,
692143
+ visibleOptionCount: 3
692144
+ }, undefined, false, undefined, this),
692145
+ credentialNotice && /* @__PURE__ */ jsx_dev_runtime335.jsxDEV(ThemedBox_default, {
692146
+ marginTop: 1,
692147
+ children: /* @__PURE__ */ jsx_dev_runtime335.jsxDEV(ThemedText, {
692148
+ dimColor: true,
692149
+ color: "subtle",
692150
+ children: credentialNotice
692151
+ }, undefined, false, undefined, this)
692152
+ }, undefined, false, undefined, this)
692153
+ ]
692154
+ }, undefined, true, undefined, this);
692155
+ return isStandaloneCommand ? /* @__PURE__ */ jsx_dev_runtime335.jsxDEV(Pane, {
692156
+ color: "permission",
692157
+ children: manageContent
692158
+ }, undefined, false, undefined, this) : manageContent;
692159
+ }
691953
692160
  if (step === "connect" && connectingProvider) {
691954
692161
  const envKey = connectingProvider.provider.envKey;
691955
692162
  const content2 = /* @__PURE__ */ jsx_dev_runtime335.jsxDEV(ThemedBox_default, {
@@ -691992,7 +692199,13 @@ function ProviderFirstModelPicker({
691992
692199
  onChange: setApiKeyInput,
691993
692200
  onSubmit: handleKeySubmit,
691994
692201
  mask: "*",
691995
- placeholder: "paste key, then Enter"
692202
+ placeholder: "paste key, then Enter",
692203
+ focus: true,
692204
+ showCursor: true,
692205
+ multiline: false,
692206
+ columns: keyInputColumns,
692207
+ cursorOffset: apiKeyCursorOffset,
692208
+ onChangeCursorOffset: setApiKeyCursorOffset
691996
692209
  }, undefined, false, undefined, this)
691997
692210
  ]
691998
692211
  }, undefined, true, undefined, this),
@@ -692327,6 +692540,8 @@ var init_ProviderFirstModelPicker = __esm(() => {
692327
692540
  init_analytics();
692328
692541
  init_providerRegistry();
692329
692542
  init_providerCredentials();
692543
+ init_apiKeyInput();
692544
+ init_TerminalSizeContext();
692330
692545
  init_AppState();
692331
692546
  init_settings2();
692332
692547
  init_ink2();
@@ -693877,7 +694092,7 @@ function _temp155(env4) {
693877
694092
  value: env4.environment_id
693878
694093
  };
693879
694094
  }
693880
- var import_compiler_runtime249, import_react185, jsx_dev_runtime340, DIALOG_TITLE = "Select Remote Environment", SETUP_HINT = `Configure environments at: https://ur.ai/code`;
694095
+ var import_compiler_runtime249, import_react185, jsx_dev_runtime340, DIALOG_TITLE = "Select Remote Environment", SETUP_HINT = `Configure environments at: https://ur.com/code`;
693881
694096
  var init_RemoteEnvironmentDialog = __esm(() => {
693882
694097
  init_source2();
693883
694098
  init_figures();
@@ -693954,7 +694169,7 @@ async function call166(onDone, context6) {
693954
694169
  return null;
693955
694170
  }
693956
694171
  }
693957
- const url3 = "https://ur.ai/upgrade/max";
694172
+ const url3 = "https://ur.com/upgrade/max";
693958
694173
  await openBrowser(url3);
693959
694174
  return /* @__PURE__ */ jsx_dev_runtime342.jsxDEV(Login, {
693960
694175
  startingMessage: "Starting new login following /upgrade. Exit with Ctrl-C to use existing account.",
@@ -693965,7 +694180,7 @@ async function call166(onDone, context6) {
693965
694180
  }, undefined, false, undefined, this);
693966
694181
  } catch (error40) {
693967
694182
  logError2(error40);
693968
- setTimeout(onDone, 0, "Failed to open browser. Please visit https://ur.ai/upgrade/max to upgrade.");
694183
+ setTimeout(onDone, 0, "Failed to open browser. Please visit https://ur.com/upgrade/max to upgrade.");
693969
694184
  }
693970
694185
  return null;
693971
694186
  }
@@ -699837,7 +700052,7 @@ function generateHtmlReport(data, insights) {
699837
700052
  </html>`;
699838
700053
  }
699839
700054
  function buildExportData(data, insights, facets, remoteStats) {
699840
- const version3 = typeof MACRO !== "undefined" ? "1.70.0" : "unknown";
700055
+ const version3 = typeof MACRO !== "undefined" ? "1.73.0" : "unknown";
699841
700056
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
699842
700057
  const facets_summary = {
699843
700058
  total: facets.size,
@@ -704148,7 +704363,7 @@ var init_sessionStorage = __esm(() => {
704148
704363
  init_settings2();
704149
704364
  init_slowOperations();
704150
704365
  init_uuid();
704151
- VERSION7 = typeof MACRO !== "undefined" ? "1.70.0" : "unknown";
704366
+ VERSION7 = typeof MACRO !== "undefined" ? "1.73.0" : "unknown";
704152
704367
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
704153
704368
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
704154
704369
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -705363,7 +705578,7 @@ var init_filesystem = __esm(() => {
705363
705578
  });
705364
705579
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
705365
705580
  const nonce = randomBytes20(16).toString("hex");
705366
- return join232(getURTempDir(), "bundled-skills", "1.70.0", nonce);
705581
+ return join232(getURTempDir(), "bundled-skills", "1.73.0", nonce);
705367
705582
  });
705368
705583
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
705369
705584
  });
@@ -711095,7 +711310,7 @@ async function computeSimpleEnvInfo(modelId, additionalWorkingDirectories) {
711095
711310
  modelDescription,
711096
711311
  knowledgeCutoffMessage,
711097
711312
  includeURProductInfo ? `UR uses the provider and model selected in /model. Do not invent UR-specific model IDs; choose models from the active provider's model list.` : null,
711098
- includeURProductInfo ? `UR is available as a CLI in the terminal, desktop app (Mac/Windows), web app (ur.ai/code), and IDE extensions (VS Code, JetBrains).` : null,
711313
+ includeURProductInfo ? `UR is available as a CLI in the terminal, desktop app (Mac/Windows), web app (ur.com/code), and IDE extensions (VS Code, JetBrains).` : null,
711099
711314
  includeURProductInfo ? `Fast mode for UR keeps the selected provider/model and requests faster output when that backend supports it. It can be toggled with /fast.` : null
711100
711315
  ].filter((item) => item !== null);
711101
711316
  const repoMap = loadRepoMapForPrompt(cwd2);
@@ -711666,7 +711881,7 @@ function computeFingerprint(messageText2, version3) {
711666
711881
  }
711667
711882
  function computeFingerprintFromMessages(messages) {
711668
711883
  const firstMessageText = extractFirstMessageText(messages);
711669
- return computeFingerprint(firstMessageText, "1.70.0");
711884
+ return computeFingerprint(firstMessageText, "1.73.0");
711670
711885
  }
711671
711886
  var FINGERPRINT_SALT = "59cf53e54c78";
711672
711887
  var init_fingerprint = () => {};
@@ -713562,7 +713777,7 @@ async function sideQuery(opts) {
713562
713777
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
713563
713778
  }
713564
713779
  const messageText2 = extractFirstUserMessageText(messages);
713565
- const fingerprint2 = computeFingerprint(messageText2, "1.70.0");
713780
+ const fingerprint2 = computeFingerprint(messageText2, "1.73.0");
713566
713781
  const attributionHeader = getAttributionHeader(fingerprint2);
713567
713782
  const systemBlocks = [
713568
713783
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -717669,7 +717884,7 @@ function CostThresholdDialog(t0) {
717669
717884
  children: "Learn more about how to monitor your spending:"
717670
717885
  }, undefined, false, undefined, this),
717671
717886
  /* @__PURE__ */ jsx_dev_runtime351.jsxDEV(Link, {
717672
- url: "https://docs.ur.dev/docs/en/costs"
717887
+ url: "https://docs.ur.com/docs/en/costs"
717673
717888
  }, undefined, false, undefined, this)
717674
717889
  ]
717675
717890
  }, undefined, true, undefined, this);
@@ -718349,7 +718564,7 @@ function buildSystemInitMessage(inputs) {
718349
718564
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
718350
718565
  apiKeySource: getURHQApiKeyWithSource().source,
718351
718566
  betas: getSdkBetas(),
718352
- ur_version: "1.70.0",
718567
+ ur_version: "1.73.0",
718353
718568
  output_style: outputStyle2,
718354
718569
  agents: inputs.agents.map((agent2) => agent2.agentType),
718355
718570
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -720412,6 +720627,22 @@ var init_PreviewQuestionView = __esm(() => {
720412
720627
  jsx_dev_runtime359 = __toESM(require_jsx_dev_runtime(), 1);
720413
720628
  });
720414
720629
 
720630
+ // src/components/permissions/AskUserQuestionPermissionRequest/choiceListLayout.ts
720631
+ function visibleChoiceCount(optionCount, terminalRows, descriptionRows = 1) {
720632
+ if (!Number.isFinite(optionCount) || optionCount <= 0) {
720633
+ return MIN_VISIBLE_CHOICES;
720634
+ }
720635
+ const total = Math.floor(optionCount);
720636
+ const rows = Number.isFinite(terminalRows) && terminalRows > 0 ? Math.floor(terminalRows) : FALLBACK_TERMINAL_ROWS;
720637
+ const rowsPerOption = Math.max(1, Math.floor(descriptionRows) + 1);
720638
+ const budget = Math.floor((rows - CHOICE_LIST_CHROME_ROWS) / rowsPerOption);
720639
+ if (budget >= total) {
720640
+ return total;
720641
+ }
720642
+ return Math.max(MIN_VISIBLE_CHOICES, Math.min(total, budget));
720643
+ }
720644
+ var CHOICE_LIST_CHROME_ROWS = 9, MIN_VISIBLE_CHOICES = 3, FALLBACK_TERMINAL_ROWS = 24;
720645
+
720415
720646
  // src/components/permissions/AskUserQuestionPermissionRequest/QuestionView.tsx
720416
720647
  function QuestionView({
720417
720648
  question,
@@ -720437,6 +720668,7 @@ function QuestionView({
720437
720668
  onRemoveImage
720438
720669
  }) {
720439
720670
  const isInPlanMode = useAppState((s) => s.toolPermissionContext.mode) === "plan";
720671
+ const terminalSize = import_react199.useContext(TerminalSizeContext);
720440
720672
  const [isFooterFocused, setIsFooterFocused] = import_react199.useState(false);
720441
720673
  const [footerIndex, setFooterIndex] = import_react199.useState(0);
720442
720674
  const [isOtherFocused, setIsOtherFocused] = import_react199.useState(false);
@@ -720559,6 +720791,7 @@ function QuestionView({
720559
720791
  ]
720560
720792
  }, undefined, true, undefined, this);
720561
720793
  const footerIndexStart = options4.length + 1;
720794
+ const choiceCount = visibleChoiceCount(options4.length, terminalSize?.rows);
720562
720795
  return /* @__PURE__ */ jsx_dev_runtime360.jsxDEV(ThemedBox_default, {
720563
720796
  flexDirection: "column",
720564
720797
  marginTop: 0,
@@ -720594,6 +720827,7 @@ function QuestionView({
720594
720827
  onSubmit,
720595
720828
  onDownFromLastItem: handleDownFromLastItem,
720596
720829
  isDisabled: isFooterFocused,
720830
+ visibleOptionCount: choiceCount,
720597
720831
  onImagePaste,
720598
720832
  pastedContents,
720599
720833
  onRemoveImage
@@ -720609,6 +720843,7 @@ function QuestionView({
720609
720843
  onCancel,
720610
720844
  onDownFromLastItem: handleDownFromLastItem,
720611
720845
  isDisabled: isFooterFocused,
720846
+ visibleOptionCount: choiceCount,
720612
720847
  layout: "compact-vertical",
720613
720848
  onImagePaste,
720614
720849
  pastedContents,
@@ -720706,6 +720941,7 @@ var init_QuestionView = __esm(() => {
720706
720941
  init_FilePathLink();
720707
720942
  init_QuestionNavigationBar();
720708
720943
  init_PreviewQuestionView();
720944
+ init_TerminalSizeContext();
720709
720945
  import_react199 = __toESM(require_react(), 1);
720710
720946
  jsx_dev_runtime360 = __toESM(require_jsx_dev_runtime(), 1);
720711
720947
  });
@@ -732209,7 +732445,7 @@ var init_useVoiceEnabled = __esm(() => {
732209
732445
  function getSemverPart(version3) {
732210
732446
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
732211
732447
  }
732212
- function useUpdateNotification(updatedVersion, initialVersion = "1.70.0") {
732448
+ function useUpdateNotification(updatedVersion, initialVersion = "1.73.0") {
732213
732449
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
732214
732450
  if (!updatedVersion) {
732215
732451
  return null;
@@ -732258,7 +732494,7 @@ function AutoUpdater({
732258
732494
  return;
732259
732495
  }
732260
732496
  if (false) {}
732261
- const currentVersion = "1.70.0";
732497
+ const currentVersion = "1.73.0";
732262
732498
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
732263
732499
  let latestVersion = await getLatestVersion(channel);
732264
732500
  const isDisabled = isAutoUpdaterDisabled();
@@ -732487,12 +732723,12 @@ function NativeAutoUpdater({
732487
732723
  logEvent("tengu_native_auto_updater_start", {});
732488
732724
  try {
732489
732725
  const maxVersion = await getMaxVersion();
732490
- if (maxVersion && gt("1.70.0", maxVersion)) {
732726
+ if (maxVersion && gt("1.73.0", maxVersion)) {
732491
732727
  const msg = await getMaxVersionMessage();
732492
732728
  setMaxVersionIssue(msg ?? "affects your version");
732493
732729
  }
732494
732730
  const result = await installLatest(channel);
732495
- const currentVersion = "1.70.0";
732731
+ const currentVersion = "1.73.0";
732496
732732
  const latencyMs = Date.now() - startTime;
732497
732733
  if (result.lockFailed) {
732498
732734
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -732629,17 +732865,17 @@ function PackageManagerAutoUpdater(t0) {
732629
732865
  const maxVersion = await getMaxVersion();
732630
732866
  if (maxVersion && latest && gt(latest, maxVersion)) {
732631
732867
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
732632
- if (gte("1.70.0", maxVersion)) {
732633
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.70.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
732868
+ if (gte("1.73.0", maxVersion)) {
732869
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.73.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
732634
732870
  setUpdateAvailable(false);
732635
732871
  return;
732636
732872
  }
732637
732873
  latest = maxVersion;
732638
732874
  }
732639
- const hasUpdate = latest && !gte("1.70.0", latest) && !shouldSkipVersion(latest);
732875
+ const hasUpdate = latest && !gte("1.73.0", latest) && !shouldSkipVersion(latest);
732640
732876
  setUpdateAvailable(!!hasUpdate);
732641
732877
  if (hasUpdate) {
732642
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.70.0"} -> ${latest}`);
732878
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.73.0"} -> ${latest}`);
732643
732879
  }
732644
732880
  };
732645
732881
  $2[0] = t1;
@@ -732673,7 +732909,7 @@ function PackageManagerAutoUpdater(t0) {
732673
732909
  wrap: "truncate",
732674
732910
  children: [
732675
732911
  "currentVersion: ",
732676
- "1.70.0"
732912
+ "1.73.0"
732677
732913
  ]
732678
732914
  }, undefined, true, undefined, this);
732679
732915
  $2[3] = verbose;
@@ -743385,7 +743621,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
743385
743621
  project_dir: getOriginalCwd(),
743386
743622
  added_dirs: addedDirs
743387
743623
  },
743388
- version: "1.70.0",
743624
+ version: "1.73.0",
743389
743625
  output_style: {
743390
743626
  name: outputStyleName
743391
743627
  },
@@ -743463,7 +743699,7 @@ function StatusLineInner({
743463
743699
  const taskValues = Object.values(tasks2);
743464
743700
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
743465
743701
  const defaultStatusLineText = buildDefaultStatusBar({
743466
- version: "1.70.0",
743702
+ version: "1.73.0",
743467
743703
  providerLabel: providerRuntime.providerLabel,
743468
743704
  authMode: providerRuntime.authLabel,
743469
743705
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -755554,7 +755790,7 @@ function RemoteCallout({
755554
755790
  }, []);
755555
755791
  const options4 = [{
755556
755792
  label: "Enable Remote Control for this session",
755557
- description: "Opens a secure connection to ur.ai.",
755793
+ description: "Opens a secure connection to ur.com.",
755558
755794
  value: "enable"
755559
755795
  }, {
755560
755796
  label: "Never mind",
@@ -755573,7 +755809,7 @@ function RemoteCallout({
755573
755809
  flexDirection: "column",
755574
755810
  children: [
755575
755811
  /* @__PURE__ */ jsx_dev_runtime433.jsxDEV(ThemedText, {
755576
- children: "Remote Control lets you access this CLI session from the web (ur.ai/code) or the UR app, so you can pick up where you left off on any device."
755812
+ children: "Remote Control lets you access this CLI session from the web (ur.com/code) or the UR app, so you can pick up where you left off on any device."
755577
755813
  }, undefined, false, undefined, this),
755578
755814
  /* @__PURE__ */ jsx_dev_runtime433.jsxDEV(ThemedText, {
755579
755815
  children: " "
@@ -755641,7 +755877,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
755641
755877
  } catch {}
755642
755878
  const data = {
755643
755879
  trigger: trigger2,
755644
- version: "1.70.0",
755880
+ version: "1.73.0",
755645
755881
  platform: process.platform,
755646
755882
  transcript,
755647
755883
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -756459,7 +756695,7 @@ function TranscriptSharePrompt(t0) {
756459
756695
  marginLeft: 2,
756460
756696
  children: /* @__PURE__ */ jsx_dev_runtime434.jsxDEV(ThemedText, {
756461
756697
  dimColor: true,
756462
- children: "Learn more: https://docs.ur.dev/docs/en/data-usage#session-quality-surveys"
756698
+ children: "Learn more: https://docs.ur.com/docs/en/data-usage#session-quality-surveys"
756463
756699
  }, undefined, false, undefined, this)
756464
756700
  }, undefined, false, undefined, this);
756465
756701
  $2[7] = t4;
@@ -756875,7 +757111,7 @@ async function _temp196() {
756875
757111
  key: "chrome-requires-subscription",
756876
757112
  jsx: /* @__PURE__ */ jsx_dev_runtime436.jsxDEV(ThemedText, {
756877
757113
  color: "error",
756878
- children: "UR in Chrome requires a ur.ai subscription"
757114
+ children: "UR in Chrome requires a ur.com subscription"
756879
757115
  }, undefined, false, undefined, this),
756880
757116
  priority: "immediate",
756881
757117
  timeoutMs: 5000
@@ -756887,7 +757123,7 @@ async function _temp196() {
756887
757123
  key: "chrome-extension-not-detected",
756888
757124
  jsx: /* @__PURE__ */ jsx_dev_runtime436.jsxDEV(ThemedText, {
756889
757125
  color: "warning",
756890
- children: "Chrome extension not detected \xB7 https://ur.ai/chrome to install"
757126
+ children: "Chrome extension not detected \xB7 https://ur.com/chrome to install"
756891
757127
  }, undefined, false, undefined, this),
756892
757128
  priority: "immediate",
756893
757129
  timeoutMs: 3000
@@ -759486,7 +759722,7 @@ function useMcpConnectivityStatus(t0) {
759486
759722
  color: "error",
759487
759723
  children: [
759488
759724
  failedURAiClients.length,
759489
- " ur.ai",
759725
+ " ur.com",
759490
759726
  " ",
759491
759727
  failedURAiClients.length === 1 ? "connector" : "connectors",
759492
759728
  " ",
@@ -759536,7 +759772,7 @@ function useMcpConnectivityStatus(t0) {
759536
759772
  color: "warning",
759537
759773
  children: [
759538
759774
  needsAuthURAiServers.length,
759539
- " ur.ai",
759775
+ " ur.com",
759540
759776
  " ",
759541
759777
  needsAuthURAiServers.length === 1 ? "connector needs" : "connectors need",
759542
759778
  " ",
@@ -767120,7 +767356,7 @@ function MCPServerDialogCopy() {
767120
767356
  "MCP servers may execute code or access system resources. All tool calls require approval. Learn more in the",
767121
767357
  " ",
767122
767358
  /* @__PURE__ */ jsx_dev_runtime457.jsxDEV(Link, {
767123
- url: "https://docs.ur.dev/docs/en/mcp",
767359
+ url: "https://docs.ur.com/docs/en/mcp",
767124
767360
  children: "MCP documentation"
767125
767361
  }, undefined, false, undefined, this),
767126
767362
  "."
@@ -767772,7 +768008,7 @@ function PreflightStep(t0) {
767772
768008
  }, undefined, false, undefined, this),
767773
768009
  /* @__PURE__ */ jsx_dev_runtime461.jsxDEV(ThemedText, {
767774
768010
  color: "suggestion",
767775
- children: "See https://docs.ur.dev/docs/en/network-config"
768011
+ children: "See https://docs.ur.com/docs/en/network-config"
767776
768012
  }, undefined, false, undefined, this)
767777
768013
  ]
767778
768014
  }, undefined, true, undefined, this) : /* @__PURE__ */ jsx_dev_runtime461.jsxDEV(ThemedBox_default, {
@@ -768006,7 +768242,7 @@ function WelcomeV2() {
768006
768242
  dimColor: true,
768007
768243
  children: [
768008
768244
  "v",
768009
- "1.70.0"
768245
+ "1.73.0"
768010
768246
  ]
768011
768247
  }, undefined, true, undefined, this)
768012
768248
  ]
@@ -768256,7 +768492,7 @@ function Onboarding({
768256
768492
  "For more details see:",
768257
768493
  /* @__PURE__ */ jsx_dev_runtime466.jsxDEV(Newline, {}, undefined, false, undefined, this),
768258
768494
  /* @__PURE__ */ jsx_dev_runtime466.jsxDEV(Link, {
768259
- url: "https://docs.ur.dev/docs/en/security"
768495
+ url: "https://docs.ur.com/docs/en/security"
768260
768496
  }, undefined, false, undefined, this)
768261
768497
  ]
768262
768498
  }, undefined, true, undefined, this)
@@ -768830,7 +769066,7 @@ function TrustDialog(t0) {
768830
769066
  t19 = /* @__PURE__ */ jsx_dev_runtime467.jsxDEV(ThemedText, {
768831
769067
  dimColor: true,
768832
769068
  children: /* @__PURE__ */ jsx_dev_runtime467.jsxDEV(Link, {
768833
- url: "https://docs.ur.dev/docs/en/security",
769069
+ url: "https://docs.ur.com/docs/en/security",
768834
769070
  children: "Security guide"
768835
769071
  }, undefined, false, undefined, this)
768836
769072
  }, undefined, false, undefined, this);
@@ -769015,7 +769251,7 @@ function BypassPermissionsModeDialog(t0) {
769015
769251
  children: "By proceeding, you accept all responsibility for actions taken while running in Bypass Permissions mode."
769016
769252
  }, undefined, false, undefined, this),
769017
769253
  /* @__PURE__ */ jsx_dev_runtime468.jsxDEV(Link, {
769018
- url: "https://docs.ur.dev/docs/en/security"
769254
+ url: "https://docs.ur.com/docs/en/security"
769019
769255
  }, undefined, false, undefined, this)
769020
769256
  ]
769021
769257
  }, undefined, true, undefined, this);
@@ -769201,7 +769437,7 @@ function URInChromeOnboarding(t0) {
769201
769437
  " ",
769202
769438
  "or visit ",
769203
769439
  /* @__PURE__ */ jsx_dev_runtime469.jsxDEV(Link, {
769204
- url: "https://docs.ur.dev/docs/en/chrome"
769440
+ url: "https://docs.ur.com/docs/en/chrome"
769205
769441
  }, undefined, false, undefined, this)
769206
769442
  ]
769207
769443
  }, undefined, true, undefined, this);
@@ -769248,7 +769484,7 @@ function _temp295(current) {
769248
769484
  hasCompletedURInChromeOnboarding: true
769249
769485
  };
769250
769486
  }
769251
- var import_compiler_runtime352, import_react322, jsx_dev_runtime469, CHROME_EXTENSION_URL2 = "https://ur.ai/chrome", CHROME_PERMISSIONS_URL2 = "https://ur.ai/chrome/permissions";
769487
+ var import_compiler_runtime352, import_react322, jsx_dev_runtime469, CHROME_EXTENSION_URL2 = "https://ur.com/chrome", CHROME_PERMISSIONS_URL2 = "https://ur.com/chrome/permissions";
769252
769488
  var init_URInChromeOnboarding = __esm(() => {
769253
769489
  init_analytics();
769254
769490
  init_ink2();
@@ -769266,7 +769502,7 @@ function completeOnboarding() {
769266
769502
  saveGlobalConfig((current) => ({
769267
769503
  ...current,
769268
769504
  hasCompletedOnboarding: true,
769269
- lastOnboardingVersion: "1.70.0"
769505
+ lastOnboardingVersion: "1.73.0"
769270
769506
  }));
769271
769507
  }
769272
769508
  function showDialog(root2, renderer) {
@@ -771950,7 +772186,7 @@ var init_keybindings3 = __esm(() => {
771950
772186
  init_bundledSkills();
771951
772187
  FILE_FORMAT_EXAMPLE = {
771952
772188
  $schema: "https://www.schemastore.org/ur-keybindings.json",
771953
- $docs: "https://docs.ur.dev/docs/en/keybindings",
772189
+ $docs: "https://docs.ur.com/docs/en/keybindings",
771954
772190
  bindings: [
771955
772191
  {
771956
772192
  context: "Chat",
@@ -774310,7 +774546,7 @@ function appendToLog(path24, message) {
774310
774546
  cwd: getFsImplementation().cwd(),
774311
774547
  userType: process.env.USER_TYPE,
774312
774548
  sessionId: getSessionId(),
774313
- version: "1.70.0"
774549
+ version: "1.73.0"
774314
774550
  };
774315
774551
  getLogWriter(path24).write(messageWithTimestamp);
774316
774552
  }
@@ -778469,8 +778705,8 @@ async function getEnvLessBridgeConfig() {
778469
778705
  }
778470
778706
  async function checkEnvLessBridgeMinVersion() {
778471
778707
  const cfg = await getEnvLessBridgeConfig();
778472
- if (cfg.min_version && lt("1.70.0", cfg.min_version)) {
778473
- return `Your version of UR (${"1.70.0"}) is too old for Remote Control.
778708
+ if (cfg.min_version && lt("1.73.0", cfg.min_version)) {
778709
+ return `Your version of UR (${"1.73.0"}) is too old for Remote Control.
778474
778710
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
778475
778711
  }
778476
778712
  return null;
@@ -778944,7 +779180,7 @@ async function initBridgeCore(params) {
778944
779180
  const rawApi = createBridgeApiClient({
778945
779181
  baseUrl,
778946
779182
  getAccessToken,
778947
- runnerVersion: "1.70.0",
779183
+ runnerVersion: "1.73.0",
778948
779184
  onDebug: logForDebugging,
778949
779185
  onAuth401,
778950
779186
  getTrustedDeviceToken
@@ -788417,7 +788653,7 @@ function getAgUiCapabilities() {
788417
788653
  name: "UR-Nexus",
788418
788654
  type: "ur-nexus",
788419
788655
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
788420
- version: "1.70.0",
788656
+ version: "1.73.0",
788421
788657
  provider: "UR",
788422
788658
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
788423
788659
  },
@@ -789557,7 +789793,7 @@ function createMCPServer(cwd4, debug2, verbose) {
789557
789793
  };
789558
789794
  const server2 = new Server({
789559
789795
  name: "ur-nexus",
789560
- version: "1.70.0"
789796
+ version: "1.73.0"
789561
789797
  }, {
789562
789798
  capabilities: {
789563
789799
  tools: {}
@@ -790715,7 +790951,7 @@ function thrownResponse(error40) {
790715
790951
  }
790716
790952
  async function createUrMcp2026Runtime(options4) {
790717
790953
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
790718
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.70.0" }, { capabilities: {} });
790954
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.73.0" }, { capabilities: {} });
790719
790955
  const [clientTransport, serverTransport] = createLinkedTransportPair();
790720
790956
  try {
790721
790957
  await server2.connect(serverTransport);
@@ -790726,7 +790962,7 @@ async function createUrMcp2026Runtime(options4) {
790726
790962
  }
790727
790963
  const runtime2 = new Mcp2026Runtime({
790728
790964
  cwd: options4.cwd,
790729
- version: "1.70.0",
790965
+ version: "1.73.0",
790730
790966
  backend: {
790731
790967
  listTools: async () => {
790732
790968
  const listed = await client2.listTools();
@@ -792859,7 +793095,7 @@ async function update() {
792859
793095
  logEvent("tengu_update_check", {});
792860
793096
  const diagnostic2 = await getDoctorDiagnostic();
792861
793097
  const result = await checkUpgradeStatus({
792862
- currentVersion: "1.70.0",
793098
+ currentVersion: "1.73.0",
792863
793099
  packageName: UR_AGENT_PACKAGE_NAME,
792864
793100
  installationType: diagnostic2.installationType,
792865
793101
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -793717,7 +793953,7 @@ ${hint}` : hint;
793717
793953
  blocked
793718
793954
  } = filterMcpServersByPolicy(configs);
793719
793955
  if (blocked.length > 0) {
793720
- process.stderr.write(`Warning: ur.ai MCP ${plural(blocked.length, "server")} blocked by enterprise policy: ${blocked.join(", ")}
793956
+ process.stderr.write(`Warning: ur.com MCP ${plural(blocked.length, "server")} blocked by enterprise policy: ${blocked.join(", ")}
793721
793957
  `);
793722
793958
  }
793723
793959
  return allowed;
@@ -794175,7 +794411,7 @@ ${customInstructions}` : customInstructions;
794175
794411
  }
794176
794412
  }
794177
794413
  logForDiagnosticsNoPII("info", "started", {
794178
- version: "1.70.0",
794414
+ version: "1.73.0",
794179
794415
  is_native_binary: isInBundledMode()
794180
794416
  });
794181
794417
  registerCleanup(async () => {
@@ -794340,7 +794576,7 @@ ${customInstructions}` : customInstructions;
794340
794576
  suppressed.add(name);
794341
794577
  }
794342
794578
  if (suppressed.size > 0) {
794343
- logForDebugging(`[MCP] Lazy dedup: suppressing ${suppressed.size} plugin server(s) that duplicate ur.ai connectors: ${[...suppressed].join(", ")}`);
794579
+ logForDebugging(`[MCP] Lazy dedup: suppressing ${suppressed.size} plugin server(s) that duplicate ur.com connectors: ${[...suppressed].join(", ")}`);
794344
794580
  for (const c4 of headlessStore.getState().mcp.clients) {
794345
794581
  if (!suppressed.has(c4.name) || c4.type !== "connected")
794346
794582
  continue;
@@ -794386,7 +794622,7 @@ ${customInstructions}` : customInstructions;
794386
794622
  if (uraiTimer)
794387
794623
  clearTimeout(uraiTimer);
794388
794624
  if (uraiTimedOut) {
794389
- logForDebugging(`[MCP] ur.ai connectors not ready after ${UR_AI_MCP_TIMEOUT_MS}ms \u2014 proceeding; background connection continues`);
794625
+ logForDebugging(`[MCP] ur.com connectors not ready after ${UR_AI_MCP_TIMEOUT_MS}ms \u2014 proceeding; background connection continues`);
794390
794626
  }
794391
794627
  profileCheckpoint("after_connectMcp_urai");
794392
794628
  if (!isBareMode()) {
@@ -794961,7 +795197,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
794961
795197
  pendingHookMessages
794962
795198
  }, renderAndRun);
794963
795199
  }
794964
- }).version("1.70.0 (UR-Nexus)", "-v, --version", "Output the version number");
795200
+ }).version("1.73.0 (UR-Nexus)", "-v, --version", "Output the version number");
794965
795201
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
794966
795202
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
794967
795203
  if (canUserConfigureAdvisor()) {
@@ -796013,7 +796249,7 @@ if (false) {}
796013
796249
  async function main2() {
796014
796250
  const args = process.argv.slice(2);
796015
796251
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
796016
- console.log(`${"1.70.0"} (UR-Nexus)`);
796252
+ console.log(`${"1.73.0"} (UR-Nexus)`);
796017
796253
  return;
796018
796254
  }
796019
796255
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {