ur-agent 1.72.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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.73.0
|
|
4
|
+
|
|
5
|
+
- Provider API key entry no longer renders one character per line. The field in
|
|
6
|
+
the provider picker omitted `columns`, `cursorOffset` and
|
|
7
|
+
`onChangeCursorOffset`; the file carries `@ts-nocheck`, so the compiler could
|
|
8
|
+
not flag the missing required props. An absent width reached
|
|
9
|
+
`normalizeCursorColumns`, which floors a non-finite value at 2, leaving a
|
|
10
|
+
1-column `MeasuredText`. The same omission pinned the cursor at offset 0, so
|
|
11
|
+
every keystroke inserted at the head and the stored key came out reversed,
|
|
12
|
+
and the undefined setter threw on each accepted key. `TextInput` now resolves
|
|
13
|
+
a usable width from the live terminal size and keeps the offset internally
|
|
14
|
+
when a call site does not lift it, so no future call site can reproduce this.
|
|
15
|
+
- Pasted provider keys are normalised to a single line. A bracketed paste
|
|
16
|
+
carries the newline that terminated the copied line, which is not legal in an
|
|
17
|
+
HTTP header value and previously failed later requests with an opaque
|
|
18
|
+
transport error instead of a 401.
|
|
19
|
+
- The provider picker can now change or remove a stored API key. Selecting a
|
|
20
|
+
provider whose key UR stores offers "Continue to models", "Change API key"
|
|
21
|
+
and "Disconnect"; a key supplied through the environment is left alone. The
|
|
22
|
+
key-entry step's advertised Esc-to-go-back now actually works.
|
|
23
|
+
- Subagent completion summaries no longer print "0 tokens" beside a real tool
|
|
24
|
+
count. Tool calls and model tokens are separate quantities, and when a
|
|
25
|
+
provider reports no usage the token segment is omitted rather than rendered
|
|
26
|
+
as zero. Provider-reported input, output, cached and creation tokens are
|
|
27
|
+
unchanged.
|
|
28
|
+
- AskUserQuestion keeps every choice in one continuous list. The select
|
|
29
|
+
components default to a 5-item window, so a question with five or more
|
|
30
|
+
entries (four choices plus "Other") pushed the tail below the footer divider
|
|
31
|
+
and read as a detached second group. The list is now sized to the terminal
|
|
32
|
+
and only windows when the height genuinely cannot fit it.
|
|
33
|
+
|
|
3
34
|
## 1.72.0
|
|
4
35
|
|
|
5
36
|
- `AskUserQuestion` no longer rejects a well-formed question because the model
|
package/dist/cli.js
CHANGED
|
@@ -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,
|
|
@@ -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) {
|
|
@@ -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();
|
|
@@ -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) {
|
|
@@ -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"], {
|
|
@@ -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
|
}, {
|
|
@@ -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
|
}, {
|
|
@@ -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,
|
|
@@ -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();
|
|
@@ -387741,7 +387756,7 @@ function isAnyTracingEnabled() {
|
|
|
387741
387756
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
387742
387757
|
}
|
|
387743
387758
|
function getTracer() {
|
|
387744
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.
|
|
387759
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.73.0");
|
|
387745
387760
|
}
|
|
387746
387761
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
387747
387762
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -415896,9 +415911,22 @@ var init_BaseTextInput = __esm(() => {
|
|
|
415896
415911
|
});
|
|
415897
415912
|
|
|
415898
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
|
+
}
|
|
415899
415921
|
function TextInput(props) {
|
|
415900
415922
|
const [theme] = useTheme();
|
|
415901
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;
|
|
415902
415930
|
const accessibilityEnabled = import_react91.useMemo(() => isEnvTruthy(process.env.UR_CODE_ACCESSIBILITY), []);
|
|
415903
415931
|
const settings = useSettings();
|
|
415904
415932
|
const reducedMotion = settings.prefersReducedMotion ?? false;
|
|
@@ -415952,13 +415980,13 @@ function TextInput(props) {
|
|
|
415952
415980
|
highlightPastedText: props.highlightPastedText,
|
|
415953
415981
|
invert,
|
|
415954
415982
|
themeText: color("text", theme),
|
|
415955
|
-
columns:
|
|
415983
|
+
columns: resolvedColumns,
|
|
415956
415984
|
maxVisibleLines: props.maxVisibleLines,
|
|
415957
415985
|
onImagePaste: props.onImagePaste,
|
|
415958
415986
|
disableCursorMovementForUpDownKeys: props.disableCursorMovementForUpDownKeys,
|
|
415959
415987
|
disableEscapeDoublePress: props.disableEscapeDoublePress,
|
|
415960
|
-
externalOffset:
|
|
415961
|
-
onOffsetChange:
|
|
415988
|
+
externalOffset: resolvedOffset,
|
|
415989
|
+
onOffsetChange: resolvedOnOffsetChange,
|
|
415962
415990
|
inputFilter: props.inputFilter,
|
|
415963
415991
|
inlineGhostText: props.inlineGhostText,
|
|
415964
415992
|
dim: source_default.dim
|
|
@@ -415971,17 +415999,21 @@ function TextInput(props) {
|
|
|
415971
415999
|
highlights: props.highlights,
|
|
415972
416000
|
invert,
|
|
415973
416001
|
hidePlaceholderText: isVoiceRecording,
|
|
415974
|
-
...props
|
|
416002
|
+
...props,
|
|
416003
|
+
columns: resolvedColumns,
|
|
416004
|
+
cursorOffset: resolvedOffset,
|
|
416005
|
+
onChangeCursorOffset: resolvedOnOffsetChange
|
|
415975
416006
|
}, undefined, false, undefined, this)
|
|
415976
416007
|
}, undefined, false, undefined, this);
|
|
415977
416008
|
}
|
|
415978
|
-
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;
|
|
415979
416010
|
var init_TextInput = __esm(() => {
|
|
415980
416011
|
init_source2();
|
|
415981
416012
|
init_voice();
|
|
415982
416013
|
init_useClipboardImageHint();
|
|
415983
416014
|
init_useSettings();
|
|
415984
416015
|
init_useTextInput();
|
|
416016
|
+
init_TerminalSizeContext();
|
|
415985
416017
|
init_ink2();
|
|
415986
416018
|
init_envUtils();
|
|
415987
416019
|
init_BaseTextInput();
|
|
@@ -417930,7 +417962,7 @@ function Feedback({
|
|
|
417930
417962
|
platform: env2.platform,
|
|
417931
417963
|
gitRepo: envInfo.isGit,
|
|
417932
417964
|
terminal: env2.terminal,
|
|
417933
|
-
version: "1.
|
|
417965
|
+
version: "1.73.0",
|
|
417934
417966
|
transcript: normalizeMessagesForAPI(messages),
|
|
417935
417967
|
errors: sanitizedErrors,
|
|
417936
417968
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -418122,7 +418154,7 @@ function Feedback({
|
|
|
418122
418154
|
", ",
|
|
418123
418155
|
env2.terminal,
|
|
418124
418156
|
", v",
|
|
418125
|
-
"1.
|
|
418157
|
+
"1.73.0"
|
|
418126
418158
|
]
|
|
418127
418159
|
}, undefined, true, undefined, this)
|
|
418128
418160
|
]
|
|
@@ -418228,7 +418260,7 @@ ${sanitizedDescription}
|
|
|
418228
418260
|
` + `**Environment Info**
|
|
418229
418261
|
` + `- Platform: ${env2.platform}
|
|
418230
418262
|
` + `- Terminal: ${env2.terminal}
|
|
418231
|
-
` + `- Version: ${"1.
|
|
418263
|
+
` + `- Version: ${"1.73.0"}
|
|
418232
418264
|
` + `- Feedback ID: ${feedbackId}
|
|
418233
418265
|
` + `
|
|
418234
418266
|
**Errors**
|
|
@@ -421338,7 +421370,7 @@ function buildPrimarySection() {
|
|
|
421338
421370
|
}, undefined, false, undefined, this);
|
|
421339
421371
|
return [{
|
|
421340
421372
|
label: "Version",
|
|
421341
|
-
value: "1.
|
|
421373
|
+
value: "1.73.0"
|
|
421342
421374
|
}, {
|
|
421343
421375
|
label: "Session name",
|
|
421344
421376
|
value: nameValue
|
|
@@ -424668,7 +424700,7 @@ function Config({
|
|
|
424668
424700
|
}
|
|
424669
424701
|
}, undefined, false, undefined, this)
|
|
424670
424702
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
424671
|
-
currentVersion: "1.
|
|
424703
|
+
currentVersion: "1.73.0",
|
|
424672
424704
|
onChoice: (choice) => {
|
|
424673
424705
|
setShowSubmenu(null);
|
|
424674
424706
|
setTabsHidden(false);
|
|
@@ -424680,7 +424712,7 @@ function Config({
|
|
|
424680
424712
|
autoUpdatesChannel: "stable"
|
|
424681
424713
|
};
|
|
424682
424714
|
if (choice === "stay") {
|
|
424683
|
-
newSettings.minimumVersion = "1.
|
|
424715
|
+
newSettings.minimumVersion = "1.73.0";
|
|
424684
424716
|
}
|
|
424685
424717
|
updateSettingsForSource("userSettings", newSettings);
|
|
424686
424718
|
setSettingsData((prev_27) => ({
|
|
@@ -432744,7 +432776,7 @@ function HelpV2(t0) {
|
|
|
432744
432776
|
let t6;
|
|
432745
432777
|
if ($2[31] !== tabs) {
|
|
432746
432778
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
432747
|
-
title: `UR v${"1.
|
|
432779
|
+
title: `UR v${"1.73.0"}`,
|
|
432748
432780
|
color: "professionalBlue",
|
|
432749
432781
|
defaultTab: "general",
|
|
432750
432782
|
children: tabs
|
|
@@ -433677,7 +433709,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
433677
433709
|
async function handleInitialize(options2) {
|
|
433678
433710
|
return {
|
|
433679
433711
|
name: "UR",
|
|
433680
|
-
version: "1.
|
|
433712
|
+
version: "1.73.0",
|
|
433681
433713
|
protocolVersion: "0.1.0",
|
|
433682
433714
|
workspaceRoot: options2.cwd,
|
|
433683
433715
|
capabilities: {
|
|
@@ -450785,7 +450817,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
450785
450817
|
return [];
|
|
450786
450818
|
}
|
|
450787
450819
|
}
|
|
450788
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.
|
|
450820
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.73.0") {
|
|
450789
450821
|
if (process.env.USER_TYPE === "ant") {
|
|
450790
450822
|
const changelog = "";
|
|
450791
450823
|
if (changelog) {
|
|
@@ -450812,7 +450844,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.72.0")
|
|
|
450812
450844
|
releaseNotes
|
|
450813
450845
|
};
|
|
450814
450846
|
}
|
|
450815
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.
|
|
450847
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.73.0") {
|
|
450816
450848
|
if (process.env.USER_TYPE === "ant") {
|
|
450817
450849
|
const changelog = "";
|
|
450818
450850
|
if (changelog) {
|
|
@@ -453678,7 +453710,7 @@ function getRecentActivitySync() {
|
|
|
453678
453710
|
return cachedActivity;
|
|
453679
453711
|
}
|
|
453680
453712
|
function getLogoDisplayData() {
|
|
453681
|
-
const version2 = process.env.DEMO_VERSION ?? "1.
|
|
453713
|
+
const version2 = process.env.DEMO_VERSION ?? "1.73.0";
|
|
453682
453714
|
const serverUrl = getDirectConnectServerUrl();
|
|
453683
453715
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
453684
453716
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -454545,7 +454577,7 @@ function LogoV2() {
|
|
|
454545
454577
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
454546
454578
|
t2 = () => {
|
|
454547
454579
|
const currentConfig2 = getGlobalConfig();
|
|
454548
|
-
if (currentConfig2.lastReleaseNotesSeen === "1.
|
|
454580
|
+
if (currentConfig2.lastReleaseNotesSeen === "1.73.0") {
|
|
454549
454581
|
return;
|
|
454550
454582
|
}
|
|
454551
454583
|
saveGlobalConfig(_temp325);
|
|
@@ -455230,12 +455262,12 @@ function LogoV2() {
|
|
|
455230
455262
|
return t41;
|
|
455231
455263
|
}
|
|
455232
455264
|
function _temp325(current) {
|
|
455233
|
-
if (current.lastReleaseNotesSeen === "1.
|
|
455265
|
+
if (current.lastReleaseNotesSeen === "1.73.0") {
|
|
455234
455266
|
return current;
|
|
455235
455267
|
}
|
|
455236
455268
|
return {
|
|
455237
455269
|
...current,
|
|
455238
|
-
lastReleaseNotesSeen: "1.
|
|
455270
|
+
lastReleaseNotesSeen: "1.73.0"
|
|
455239
455271
|
};
|
|
455240
455272
|
}
|
|
455241
455273
|
function _temp241(s_0) {
|
|
@@ -472049,7 +472081,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
472049
472081
|
if (spec.name !== specName) {
|
|
472050
472082
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
472051
472083
|
}
|
|
472052
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.
|
|
472084
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.73.0" : "1.73.0");
|
|
472053
472085
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
472054
472086
|
throw new Error("invalid ur-agent package version");
|
|
472055
472087
|
}
|
|
@@ -473042,7 +473074,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
473042
473074
|
path: ".github/workflows/ur.yml",
|
|
473043
473075
|
root: "project",
|
|
473044
473076
|
content: compileAgenticCiWorkflow("default", {
|
|
473045
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.
|
|
473077
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.73.0" : "1.73.0"
|
|
473046
473078
|
})
|
|
473047
473079
|
},
|
|
473048
473080
|
{
|
|
@@ -473105,7 +473137,7 @@ function value(tokens, flag) {
|
|
|
473105
473137
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
473106
473138
|
}
|
|
473107
473139
|
function cliVersion() {
|
|
473108
|
-
return typeof MACRO !== "undefined" ? "1.
|
|
473140
|
+
return typeof MACRO !== "undefined" ? "1.73.0" : "1.73.0";
|
|
473109
473141
|
}
|
|
473110
473142
|
function workflowPath(cwd2) {
|
|
473111
473143
|
return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -478961,7 +478993,7 @@ function createAcpStdioApp(deps) {
|
|
|
478961
478993
|
}
|
|
478962
478994
|
},
|
|
478963
478995
|
authMethods: [],
|
|
478964
|
-
agentInfo: { name: "UR-Nexus", version: "1.
|
|
478996
|
+
agentInfo: { name: "UR-Nexus", version: "1.73.0" }
|
|
478965
478997
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
478966
478998
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
478967
478999
|
await runtime2.announce({
|
|
@@ -479058,7 +479090,7 @@ function createAcpStdioAgent(deps) {
|
|
|
479058
479090
|
}
|
|
479059
479091
|
},
|
|
479060
479092
|
authMethods: [],
|
|
479061
|
-
agentInfo: { name: "UR-Nexus", version: "1.
|
|
479093
|
+
agentInfo: { name: "UR-Nexus", version: "1.73.0" }
|
|
479062
479094
|
});
|
|
479063
479095
|
return;
|
|
479064
479096
|
case "authenticate":
|
|
@@ -688223,7 +688255,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
688223
688255
|
smapsRollup,
|
|
688224
688256
|
platform: process.platform,
|
|
688225
688257
|
nodeVersion: process.version,
|
|
688226
|
-
ccVersion: "1.
|
|
688258
|
+
ccVersion: "1.73.0"
|
|
688227
688259
|
};
|
|
688228
688260
|
}
|
|
688229
688261
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -688803,7 +688835,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
688803
688835
|
var call153 = async () => {
|
|
688804
688836
|
return {
|
|
688805
688837
|
type: "text",
|
|
688806
|
-
value: "1.
|
|
688838
|
+
value: "1.73.0"
|
|
688807
688839
|
};
|
|
688808
688840
|
}, version2, version_default;
|
|
688809
688841
|
var init_version = __esm(() => {
|
|
@@ -691767,6 +691799,28 @@ var init_export2 = __esm(() => {
|
|
|
691767
691799
|
export_default = exportCommand;
|
|
691768
691800
|
});
|
|
691769
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
|
+
|
|
691770
691824
|
// src/components/ProviderFirstModelPicker.tsx
|
|
691771
691825
|
function ProviderFirstModelPicker({
|
|
691772
691826
|
initial,
|
|
@@ -691790,7 +691844,11 @@ function ProviderFirstModelPicker({
|
|
|
691790
691844
|
const [providerWarning, setProviderWarning] = import_react183.useState(null);
|
|
691791
691845
|
const [connectingProvider, setConnectingProvider] = import_react183.useState(null);
|
|
691792
691846
|
const [apiKeyInput, setApiKeyInput] = import_react183.useState("");
|
|
691847
|
+
const [apiKeyCursorOffset, setApiKeyCursorOffset] = import_react183.useState(0);
|
|
691793
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);
|
|
691794
691852
|
const effortValue = useAppState(selectEffortValue2);
|
|
691795
691853
|
const [effort] = import_react183.useState(effortValue !== undefined ? convertEffortValueToLevel(effortValue) : undefined);
|
|
691796
691854
|
const appThinkingEnabled = useAppState(selectThinkingEnabled2);
|
|
@@ -691848,6 +691906,11 @@ function ProviderFirstModelPicker({
|
|
|
691848
691906
|
}
|
|
691849
691907
|
loadModels();
|
|
691850
691908
|
}, [selectedProvider]);
|
|
691909
|
+
use_input_default((_input, key) => {
|
|
691910
|
+
if (key.escape) {
|
|
691911
|
+
handleKeyCancel();
|
|
691912
|
+
}
|
|
691913
|
+
}, { isActive: step === "connect" });
|
|
691851
691914
|
const providerSelectOptions = providerOptions.map((opt) => ({
|
|
691852
691915
|
value: opt.value,
|
|
691853
691916
|
label: opt.label,
|
|
@@ -691875,10 +691938,20 @@ function ProviderFirstModelPicker({
|
|
|
691875
691938
|
setProviderWarning(provider.runtimeBlockedReason);
|
|
691876
691939
|
return;
|
|
691877
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
|
+
}
|
|
691878
691950
|
if (provider.status !== "connected") {
|
|
691879
691951
|
if (provider.credentialType === "api-key") {
|
|
691880
691952
|
setConnectingProvider(provider);
|
|
691881
691953
|
setApiKeyInput("");
|
|
691954
|
+
setApiKeyCursorOffset(0);
|
|
691882
691955
|
setConnectError(null);
|
|
691883
691956
|
setStep("connect");
|
|
691884
691957
|
return;
|
|
@@ -691966,27 +692039,124 @@ function ProviderFirstModelPicker({
|
|
|
691966
692039
|
function handleKeySubmit() {
|
|
691967
692040
|
if (!connectingProvider)
|
|
691968
692041
|
return;
|
|
691969
|
-
const key = apiKeyInput
|
|
692042
|
+
const key = sanitizeApiKeyInput(apiKeyInput);
|
|
691970
692043
|
if (!key) {
|
|
691971
692044
|
setConnectError("Enter your API key (or press Esc to go back).");
|
|
691972
692045
|
return;
|
|
691973
692046
|
}
|
|
692047
|
+
const problem = describeApiKeyProblem(apiKeyInput);
|
|
692048
|
+
if (problem) {
|
|
692049
|
+
setConnectError(problem);
|
|
692050
|
+
return;
|
|
692051
|
+
}
|
|
691974
692052
|
const saved = setProviderApiKey(connectingProvider.value, key);
|
|
691975
692053
|
if (!saved.ok) {
|
|
691976
692054
|
setConnectError(saved.message);
|
|
691977
692055
|
return;
|
|
691978
692056
|
}
|
|
691979
692057
|
setApiKeyInput("");
|
|
692058
|
+
setApiKeyCursorOffset(0);
|
|
691980
692059
|
setConnectError(null);
|
|
692060
|
+
setCredentialNotice(saved.message);
|
|
691981
692061
|
setSelectedProvider(connectingProvider);
|
|
691982
692062
|
setStep("model");
|
|
691983
692063
|
}
|
|
691984
692064
|
function handleKeyCancel() {
|
|
691985
692065
|
setApiKeyInput("");
|
|
692066
|
+
setApiKeyCursorOffset(0);
|
|
691986
692067
|
setConnectingProvider(null);
|
|
691987
692068
|
setConnectError(null);
|
|
691988
692069
|
setStep("provider");
|
|
691989
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
|
+
}
|
|
691990
692160
|
if (step === "connect" && connectingProvider) {
|
|
691991
692161
|
const envKey = connectingProvider.provider.envKey;
|
|
691992
692162
|
const content2 = /* @__PURE__ */ jsx_dev_runtime335.jsxDEV(ThemedBox_default, {
|
|
@@ -692029,7 +692199,13 @@ function ProviderFirstModelPicker({
|
|
|
692029
692199
|
onChange: setApiKeyInput,
|
|
692030
692200
|
onSubmit: handleKeySubmit,
|
|
692031
692201
|
mask: "*",
|
|
692032
|
-
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
|
|
692033
692209
|
}, undefined, false, undefined, this)
|
|
692034
692210
|
]
|
|
692035
692211
|
}, undefined, true, undefined, this),
|
|
@@ -692364,6 +692540,8 @@ var init_ProviderFirstModelPicker = __esm(() => {
|
|
|
692364
692540
|
init_analytics();
|
|
692365
692541
|
init_providerRegistry();
|
|
692366
692542
|
init_providerCredentials();
|
|
692543
|
+
init_apiKeyInput();
|
|
692544
|
+
init_TerminalSizeContext();
|
|
692367
692545
|
init_AppState();
|
|
692368
692546
|
init_settings2();
|
|
692369
692547
|
init_ink2();
|
|
@@ -699874,7 +700052,7 @@ function generateHtmlReport(data, insights) {
|
|
|
699874
700052
|
</html>`;
|
|
699875
700053
|
}
|
|
699876
700054
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
699877
|
-
const version3 = typeof MACRO !== "undefined" ? "1.
|
|
700055
|
+
const version3 = typeof MACRO !== "undefined" ? "1.73.0" : "unknown";
|
|
699878
700056
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
699879
700057
|
const facets_summary = {
|
|
699880
700058
|
total: facets.size,
|
|
@@ -704185,7 +704363,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
704185
704363
|
init_settings2();
|
|
704186
704364
|
init_slowOperations();
|
|
704187
704365
|
init_uuid();
|
|
704188
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.
|
|
704366
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.73.0" : "unknown";
|
|
704189
704367
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
704190
704368
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
704191
704369
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -705400,7 +705578,7 @@ var init_filesystem = __esm(() => {
|
|
|
705400
705578
|
});
|
|
705401
705579
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
705402
705580
|
const nonce = randomBytes20(16).toString("hex");
|
|
705403
|
-
return join232(getURTempDir(), "bundled-skills", "1.
|
|
705581
|
+
return join232(getURTempDir(), "bundled-skills", "1.73.0", nonce);
|
|
705404
705582
|
});
|
|
705405
705583
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
705406
705584
|
});
|
|
@@ -711703,7 +711881,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
711703
711881
|
}
|
|
711704
711882
|
function computeFingerprintFromMessages(messages) {
|
|
711705
711883
|
const firstMessageText = extractFirstMessageText(messages);
|
|
711706
|
-
return computeFingerprint(firstMessageText, "1.
|
|
711884
|
+
return computeFingerprint(firstMessageText, "1.73.0");
|
|
711707
711885
|
}
|
|
711708
711886
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
711709
711887
|
var init_fingerprint = () => {};
|
|
@@ -713599,7 +713777,7 @@ async function sideQuery(opts) {
|
|
|
713599
713777
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
713600
713778
|
}
|
|
713601
713779
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
713602
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.
|
|
713780
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.73.0");
|
|
713603
713781
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
713604
713782
|
const systemBlocks = [
|
|
713605
713783
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -718386,7 +718564,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
718386
718564
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
718387
718565
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
718388
718566
|
betas: getSdkBetas(),
|
|
718389
|
-
ur_version: "1.
|
|
718567
|
+
ur_version: "1.73.0",
|
|
718390
718568
|
output_style: outputStyle2,
|
|
718391
718569
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
718392
718570
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -720449,6 +720627,22 @@ var init_PreviewQuestionView = __esm(() => {
|
|
|
720449
720627
|
jsx_dev_runtime359 = __toESM(require_jsx_dev_runtime(), 1);
|
|
720450
720628
|
});
|
|
720451
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
|
+
|
|
720452
720646
|
// src/components/permissions/AskUserQuestionPermissionRequest/QuestionView.tsx
|
|
720453
720647
|
function QuestionView({
|
|
720454
720648
|
question,
|
|
@@ -720474,6 +720668,7 @@ function QuestionView({
|
|
|
720474
720668
|
onRemoveImage
|
|
720475
720669
|
}) {
|
|
720476
720670
|
const isInPlanMode = useAppState((s) => s.toolPermissionContext.mode) === "plan";
|
|
720671
|
+
const terminalSize = import_react199.useContext(TerminalSizeContext);
|
|
720477
720672
|
const [isFooterFocused, setIsFooterFocused] = import_react199.useState(false);
|
|
720478
720673
|
const [footerIndex, setFooterIndex] = import_react199.useState(0);
|
|
720479
720674
|
const [isOtherFocused, setIsOtherFocused] = import_react199.useState(false);
|
|
@@ -720596,6 +720791,7 @@ function QuestionView({
|
|
|
720596
720791
|
]
|
|
720597
720792
|
}, undefined, true, undefined, this);
|
|
720598
720793
|
const footerIndexStart = options4.length + 1;
|
|
720794
|
+
const choiceCount = visibleChoiceCount(options4.length, terminalSize?.rows);
|
|
720599
720795
|
return /* @__PURE__ */ jsx_dev_runtime360.jsxDEV(ThemedBox_default, {
|
|
720600
720796
|
flexDirection: "column",
|
|
720601
720797
|
marginTop: 0,
|
|
@@ -720631,6 +720827,7 @@ function QuestionView({
|
|
|
720631
720827
|
onSubmit,
|
|
720632
720828
|
onDownFromLastItem: handleDownFromLastItem,
|
|
720633
720829
|
isDisabled: isFooterFocused,
|
|
720830
|
+
visibleOptionCount: choiceCount,
|
|
720634
720831
|
onImagePaste,
|
|
720635
720832
|
pastedContents,
|
|
720636
720833
|
onRemoveImage
|
|
@@ -720646,6 +720843,7 @@ function QuestionView({
|
|
|
720646
720843
|
onCancel,
|
|
720647
720844
|
onDownFromLastItem: handleDownFromLastItem,
|
|
720648
720845
|
isDisabled: isFooterFocused,
|
|
720846
|
+
visibleOptionCount: choiceCount,
|
|
720649
720847
|
layout: "compact-vertical",
|
|
720650
720848
|
onImagePaste,
|
|
720651
720849
|
pastedContents,
|
|
@@ -720743,6 +720941,7 @@ var init_QuestionView = __esm(() => {
|
|
|
720743
720941
|
init_FilePathLink();
|
|
720744
720942
|
init_QuestionNavigationBar();
|
|
720745
720943
|
init_PreviewQuestionView();
|
|
720944
|
+
init_TerminalSizeContext();
|
|
720746
720945
|
import_react199 = __toESM(require_react(), 1);
|
|
720747
720946
|
jsx_dev_runtime360 = __toESM(require_jsx_dev_runtime(), 1);
|
|
720748
720947
|
});
|
|
@@ -732246,7 +732445,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
732246
732445
|
function getSemverPart(version3) {
|
|
732247
732446
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
732248
732447
|
}
|
|
732249
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.
|
|
732448
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.73.0") {
|
|
732250
732449
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
|
|
732251
732450
|
if (!updatedVersion) {
|
|
732252
732451
|
return null;
|
|
@@ -732295,7 +732494,7 @@ function AutoUpdater({
|
|
|
732295
732494
|
return;
|
|
732296
732495
|
}
|
|
732297
732496
|
if (false) {}
|
|
732298
|
-
const currentVersion = "1.
|
|
732497
|
+
const currentVersion = "1.73.0";
|
|
732299
732498
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
732300
732499
|
let latestVersion = await getLatestVersion(channel);
|
|
732301
732500
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -732524,12 +732723,12 @@ function NativeAutoUpdater({
|
|
|
732524
732723
|
logEvent("tengu_native_auto_updater_start", {});
|
|
732525
732724
|
try {
|
|
732526
732725
|
const maxVersion = await getMaxVersion();
|
|
732527
|
-
if (maxVersion && gt("1.
|
|
732726
|
+
if (maxVersion && gt("1.73.0", maxVersion)) {
|
|
732528
732727
|
const msg = await getMaxVersionMessage();
|
|
732529
732728
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
732530
732729
|
}
|
|
732531
732730
|
const result = await installLatest(channel);
|
|
732532
|
-
const currentVersion = "1.
|
|
732731
|
+
const currentVersion = "1.73.0";
|
|
732533
732732
|
const latencyMs = Date.now() - startTime;
|
|
732534
732733
|
if (result.lockFailed) {
|
|
732535
732734
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -732666,17 +732865,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
732666
732865
|
const maxVersion = await getMaxVersion();
|
|
732667
732866
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
732668
732867
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
732669
|
-
if (gte("1.
|
|
732670
|
-
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`);
|
|
732671
732870
|
setUpdateAvailable(false);
|
|
732672
732871
|
return;
|
|
732673
732872
|
}
|
|
732674
732873
|
latest = maxVersion;
|
|
732675
732874
|
}
|
|
732676
|
-
const hasUpdate = latest && !gte("1.
|
|
732875
|
+
const hasUpdate = latest && !gte("1.73.0", latest) && !shouldSkipVersion(latest);
|
|
732677
732876
|
setUpdateAvailable(!!hasUpdate);
|
|
732678
732877
|
if (hasUpdate) {
|
|
732679
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.
|
|
732878
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.73.0"} -> ${latest}`);
|
|
732680
732879
|
}
|
|
732681
732880
|
};
|
|
732682
732881
|
$2[0] = t1;
|
|
@@ -732710,7 +732909,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
732710
732909
|
wrap: "truncate",
|
|
732711
732910
|
children: [
|
|
732712
732911
|
"currentVersion: ",
|
|
732713
|
-
"1.
|
|
732912
|
+
"1.73.0"
|
|
732714
732913
|
]
|
|
732715
732914
|
}, undefined, true, undefined, this);
|
|
732716
732915
|
$2[3] = verbose;
|
|
@@ -743422,7 +743621,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
743422
743621
|
project_dir: getOriginalCwd(),
|
|
743423
743622
|
added_dirs: addedDirs
|
|
743424
743623
|
},
|
|
743425
|
-
version: "1.
|
|
743624
|
+
version: "1.73.0",
|
|
743426
743625
|
output_style: {
|
|
743427
743626
|
name: outputStyleName
|
|
743428
743627
|
},
|
|
@@ -743500,7 +743699,7 @@ function StatusLineInner({
|
|
|
743500
743699
|
const taskValues = Object.values(tasks2);
|
|
743501
743700
|
const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
|
|
743502
743701
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
743503
|
-
version: "1.
|
|
743702
|
+
version: "1.73.0",
|
|
743504
743703
|
providerLabel: providerRuntime.providerLabel,
|
|
743505
743704
|
authMode: providerRuntime.authLabel,
|
|
743506
743705
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -755678,7 +755877,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
755678
755877
|
} catch {}
|
|
755679
755878
|
const data = {
|
|
755680
755879
|
trigger: trigger2,
|
|
755681
|
-
version: "1.
|
|
755880
|
+
version: "1.73.0",
|
|
755682
755881
|
platform: process.platform,
|
|
755683
755882
|
transcript,
|
|
755684
755883
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -768043,7 +768242,7 @@ function WelcomeV2() {
|
|
|
768043
768242
|
dimColor: true,
|
|
768044
768243
|
children: [
|
|
768045
768244
|
"v",
|
|
768046
|
-
"1.
|
|
768245
|
+
"1.73.0"
|
|
768047
768246
|
]
|
|
768048
768247
|
}, undefined, true, undefined, this)
|
|
768049
768248
|
]
|
|
@@ -769303,7 +769502,7 @@ function completeOnboarding() {
|
|
|
769303
769502
|
saveGlobalConfig((current) => ({
|
|
769304
769503
|
...current,
|
|
769305
769504
|
hasCompletedOnboarding: true,
|
|
769306
|
-
lastOnboardingVersion: "1.
|
|
769505
|
+
lastOnboardingVersion: "1.73.0"
|
|
769307
769506
|
}));
|
|
769308
769507
|
}
|
|
769309
769508
|
function showDialog(root2, renderer) {
|
|
@@ -774347,7 +774546,7 @@ function appendToLog(path24, message) {
|
|
|
774347
774546
|
cwd: getFsImplementation().cwd(),
|
|
774348
774547
|
userType: process.env.USER_TYPE,
|
|
774349
774548
|
sessionId: getSessionId(),
|
|
774350
|
-
version: "1.
|
|
774549
|
+
version: "1.73.0"
|
|
774351
774550
|
};
|
|
774352
774551
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
774353
774552
|
}
|
|
@@ -778506,8 +778705,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
778506
778705
|
}
|
|
778507
778706
|
async function checkEnvLessBridgeMinVersion() {
|
|
778508
778707
|
const cfg = await getEnvLessBridgeConfig();
|
|
778509
|
-
if (cfg.min_version && lt("1.
|
|
778510
|
-
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.
|
|
778511
778710
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
778512
778711
|
}
|
|
778513
778712
|
return null;
|
|
@@ -778981,7 +779180,7 @@ async function initBridgeCore(params) {
|
|
|
778981
779180
|
const rawApi = createBridgeApiClient({
|
|
778982
779181
|
baseUrl,
|
|
778983
779182
|
getAccessToken,
|
|
778984
|
-
runnerVersion: "1.
|
|
779183
|
+
runnerVersion: "1.73.0",
|
|
778985
779184
|
onDebug: logForDebugging,
|
|
778986
779185
|
onAuth401,
|
|
778987
779186
|
getTrustedDeviceToken
|
|
@@ -788454,7 +788653,7 @@ function getAgUiCapabilities() {
|
|
|
788454
788653
|
name: "UR-Nexus",
|
|
788455
788654
|
type: "ur-nexus",
|
|
788456
788655
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
788457
|
-
version: "1.
|
|
788656
|
+
version: "1.73.0",
|
|
788458
788657
|
provider: "UR",
|
|
788459
788658
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
788460
788659
|
},
|
|
@@ -789594,7 +789793,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
789594
789793
|
};
|
|
789595
789794
|
const server2 = new Server({
|
|
789596
789795
|
name: "ur-nexus",
|
|
789597
|
-
version: "1.
|
|
789796
|
+
version: "1.73.0"
|
|
789598
789797
|
}, {
|
|
789599
789798
|
capabilities: {
|
|
789600
789799
|
tools: {}
|
|
@@ -790752,7 +790951,7 @@ function thrownResponse(error40) {
|
|
|
790752
790951
|
}
|
|
790753
790952
|
async function createUrMcp2026Runtime(options4) {
|
|
790754
790953
|
const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
|
|
790755
|
-
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: {} });
|
|
790756
790955
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
790757
790956
|
try {
|
|
790758
790957
|
await server2.connect(serverTransport);
|
|
@@ -790763,7 +790962,7 @@ async function createUrMcp2026Runtime(options4) {
|
|
|
790763
790962
|
}
|
|
790764
790963
|
const runtime2 = new Mcp2026Runtime({
|
|
790765
790964
|
cwd: options4.cwd,
|
|
790766
|
-
version: "1.
|
|
790965
|
+
version: "1.73.0",
|
|
790767
790966
|
backend: {
|
|
790768
790967
|
listTools: async () => {
|
|
790769
790968
|
const listed = await client2.listTools();
|
|
@@ -792896,7 +793095,7 @@ async function update() {
|
|
|
792896
793095
|
logEvent("tengu_update_check", {});
|
|
792897
793096
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
792898
793097
|
const result = await checkUpgradeStatus({
|
|
792899
|
-
currentVersion: "1.
|
|
793098
|
+
currentVersion: "1.73.0",
|
|
792900
793099
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
792901
793100
|
installationType: diagnostic2.installationType,
|
|
792902
793101
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -794212,7 +794411,7 @@ ${customInstructions}` : customInstructions;
|
|
|
794212
794411
|
}
|
|
794213
794412
|
}
|
|
794214
794413
|
logForDiagnosticsNoPII("info", "started", {
|
|
794215
|
-
version: "1.
|
|
794414
|
+
version: "1.73.0",
|
|
794216
794415
|
is_native_binary: isInBundledMode()
|
|
794217
794416
|
});
|
|
794218
794417
|
registerCleanup(async () => {
|
|
@@ -794998,7 +795197,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
794998
795197
|
pendingHookMessages
|
|
794999
795198
|
}, renderAndRun);
|
|
795000
795199
|
}
|
|
795001
|
-
}).version("1.
|
|
795200
|
+
}).version("1.73.0 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
795002
795201
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
795003
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.");
|
|
795004
795203
|
if (canUserConfigureAdvisor()) {
|
|
@@ -796050,7 +796249,7 @@ if (false) {}
|
|
|
796050
796249
|
async function main2() {
|
|
796051
796250
|
const args = process.argv.slice(2);
|
|
796052
796251
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
796053
|
-
console.log(`${"1.
|
|
796252
|
+
console.log(`${"1.73.0"} (UR-Nexus)`);
|
|
796054
796253
|
return;
|
|
796055
796254
|
}
|
|
796056
796255
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|
package/docs/VALIDATION.md
CHANGED
package/documentation/index.html
CHANGED
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
<main id="content" class="content">
|
|
46
46
|
<header class="topbar">
|
|
47
47
|
<div>
|
|
48
|
-
<p class="eyebrow">Version 1.
|
|
48
|
+
<p class="eyebrow">Version 1.73.0</p>
|
|
49
49
|
<h1>UR-Nexus Documentation</h1>
|
|
50
50
|
<p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
|
|
51
51
|
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "ur-inline-diffs",
|
|
3
3
|
"displayName": "UR Inline Diffs",
|
|
4
4
|
"description": "Review, apply, and reject UR inline diff bundles from .ur/ide/diffs inside VS Code.",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.73.0",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED