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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
316243
|
+
if (versionConfig.minVersion && lt("1.73.0", versionConfig.minVersion)) {
|
|
316231
316244
|
console.error(`
|
|
316232
|
-
It looks like your version of UR (${"1.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
317928
|
-
logForDebugging(`Native installer: current version ${"1.
|
|
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.
|
|
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.
|
|
319261
|
-
authMethod = "ur.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
327578
|
-
children: "https://docs.ur.
|
|
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.
|
|
327594
|
-
children: "https://docs.ur.
|
|
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.
|
|
327617
|
-
children: "https://docs.ur.
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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:
|
|
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.
|
|
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.
|
|
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:
|
|
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:
|
|
415924
|
-
onOffsetChange:
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
420445
|
+
return "https://ur.com/api/desktop/win32/x64/exe/latest/redirect";
|
|
420377
420446
|
default:
|
|
420378
|
-
return "https://ur.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
429270
|
-
children: "https://docs.ur.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
436625
|
-
children: "https://docs.ur.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
455265
|
+
if (current.lastReleaseNotesSeen === "1.73.0") {
|
|
455197
455266
|
return current;
|
|
455198
455267
|
}
|
|
455199
455268
|
return {
|
|
455200
455269
|
...current,
|
|
455201
|
-
lastReleaseNotesSeen: "1.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
678497
|
-
children: "https://docs.ur.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
689486
|
-
children: "docs.ur.
|
|
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.
|
|
689857
|
-
children: "docs.ur.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
732633
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
778473
|
-
return `Your version of UR (${"1.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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")) {
|