ur-agent 1.80.1 → 1.80.2
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 +9 -0
- package/dist/cli.js +115 -88
- package/docs/AGENT_FEATURES.md +1 -1
- package/docs/USAGE.md +3 -1
- package/docs/VALIDATION.md +1 -1
- package/documentation/index.html +1 -1
- package/extensions/jetbrains-ur/build.gradle.kts +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.80.2
|
|
4
|
+
|
|
5
|
+
- Repaired repeated `AskUserQuestion` validation loops when a model emits one
|
|
6
|
+
flattened `{label, header, description}` suggestion, one ordinary option, or
|
|
7
|
+
duplicate-only options. UR preserves the model's suggestion and adds only a
|
|
8
|
+
neutral `Different answer` rejection path; it never fabricates a second
|
|
9
|
+
domain choice or selects an answer for the user. Zero-option questions still
|
|
10
|
+
fail closed.
|
|
11
|
+
|
|
3
12
|
## 1.80.1
|
|
4
13
|
|
|
5
14
|
- Removed the complete unreachable `ultraplan` implementation after its public
|
package/dist/cli.js
CHANGED
|
@@ -87675,6 +87675,33 @@ function dedupeQuestions(questions) {
|
|
|
87675
87675
|
}
|
|
87676
87676
|
return out;
|
|
87677
87677
|
}
|
|
87678
|
+
function repairSingleOptionQuestions(questions) {
|
|
87679
|
+
return dedupeQuestions(questions).map((question) => {
|
|
87680
|
+
if (!isRecord2(question) || !Array.isArray(question.options))
|
|
87681
|
+
return question;
|
|
87682
|
+
if (question.options.length !== 1)
|
|
87683
|
+
return question;
|
|
87684
|
+
const onlyOption = question.options[0];
|
|
87685
|
+
if (!isRecord2(onlyOption) || typeof onlyOption.label !== "string") {
|
|
87686
|
+
return question;
|
|
87687
|
+
}
|
|
87688
|
+
const onlyLabel = duplicateKey(onlyOption.label);
|
|
87689
|
+
if (!onlyLabel)
|
|
87690
|
+
return question;
|
|
87691
|
+
const fallbackLabels = ["Different answer", "Reject suggestion"];
|
|
87692
|
+
const fallbackLabel = fallbackLabels.find((label) => duplicateKey(label) !== onlyLabel);
|
|
87693
|
+
return {
|
|
87694
|
+
...question,
|
|
87695
|
+
options: [
|
|
87696
|
+
onlyOption,
|
|
87697
|
+
{
|
|
87698
|
+
label: fallbackLabel,
|
|
87699
|
+
description: "Reject the suggested option so the agent can ask for a different answer."
|
|
87700
|
+
}
|
|
87701
|
+
]
|
|
87702
|
+
};
|
|
87703
|
+
});
|
|
87704
|
+
}
|
|
87678
87705
|
function describeQuestionPayloadProblems(value) {
|
|
87679
87706
|
const problems = [];
|
|
87680
87707
|
if (!isRecord2(value)) {
|
|
@@ -87921,7 +87948,7 @@ function looksLikeOptionEntry(value) {
|
|
|
87921
87948
|
return typeof entry.label === "string" || typeof entry.value === "string" || typeof entry.header === "string" || typeof entry.description === "string";
|
|
87922
87949
|
}
|
|
87923
87950
|
function recoverFlattenedOptions(input, entries) {
|
|
87924
|
-
if (entries.length <
|
|
87951
|
+
if (entries.length < 1 || !entries.every(looksLikeOptionEntry))
|
|
87925
87952
|
return null;
|
|
87926
87953
|
const questionText = stringField(input, [
|
|
87927
87954
|
"question",
|
|
@@ -88010,7 +88037,7 @@ function normalizeAskUserQuestionInput(value) {
|
|
|
88010
88037
|
const entry = typeof raw === "string" || Array.isArray(raw) || objectValue(raw) ? normalizeQuestionInput({ question: questionText, options: raw }, index2) : null;
|
|
88011
88038
|
return entry;
|
|
88012
88039
|
});
|
|
88013
|
-
const normalized =
|
|
88040
|
+
const normalized = repairSingleOptionQuestions(questions.filter((entry) => entry !== null && typeof entry === "object"));
|
|
88014
88041
|
if (normalized.length > 0) {
|
|
88015
88042
|
return {
|
|
88016
88043
|
questions: normalized.slice(0, 4),
|
|
@@ -88023,14 +88050,14 @@ function normalizeAskUserQuestionInput(value) {
|
|
|
88023
88050
|
const normalized = input.questions.map((entry, index2) => normalizeQuestionInput(entry, index2)).filter((entry) => entry !== null && typeof entry === "object");
|
|
88024
88051
|
if (normalized.length > 0) {
|
|
88025
88052
|
return {
|
|
88026
|
-
questions:
|
|
88053
|
+
questions: repairSingleOptionQuestions(normalized),
|
|
88027
88054
|
...commonFields
|
|
88028
88055
|
};
|
|
88029
88056
|
}
|
|
88030
88057
|
const recovered = recoverFlattenedOptions(input, input.questions);
|
|
88031
88058
|
if (recovered && typeof recovered === "object") {
|
|
88032
88059
|
return {
|
|
88033
|
-
questions:
|
|
88060
|
+
questions: repairSingleOptionQuestions([recovered]),
|
|
88034
88061
|
...commonFields
|
|
88035
88062
|
};
|
|
88036
88063
|
}
|
|
@@ -88040,7 +88067,7 @@ function normalizeAskUserQuestionInput(value) {
|
|
|
88040
88067
|
const singleQuestion = normalizeQuestionInput(input, 0);
|
|
88041
88068
|
if (singleQuestion && singleQuestion !== input) {
|
|
88042
88069
|
return {
|
|
88043
|
-
questions:
|
|
88070
|
+
questions: repairSingleOptionQuestions([singleQuestion]),
|
|
88044
88071
|
...commonFields
|
|
88045
88072
|
};
|
|
88046
88073
|
}
|
|
@@ -107757,7 +107784,7 @@ var init_auth = __esm(() => {
|
|
|
107757
107784
|
|
|
107758
107785
|
// src/utils/userAgent.ts
|
|
107759
107786
|
function getURCodeUserAgent() {
|
|
107760
|
-
return `ur/${"1.80.
|
|
107787
|
+
return `ur/${"1.80.2"}`;
|
|
107761
107788
|
}
|
|
107762
107789
|
|
|
107763
107790
|
// src/utils/workloadContext.ts
|
|
@@ -107779,7 +107806,7 @@ function getUserAgent() {
|
|
|
107779
107806
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
107780
107807
|
const workload = getWorkload();
|
|
107781
107808
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
107782
|
-
return `ur-cli/${"1.80.
|
|
107809
|
+
return `ur-cli/${"1.80.2"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
107783
107810
|
}
|
|
107784
107811
|
function getMCPUserAgent() {
|
|
107785
107812
|
const parts = [];
|
|
@@ -107793,7 +107820,7 @@ function getMCPUserAgent() {
|
|
|
107793
107820
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
107794
107821
|
}
|
|
107795
107822
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
107796
|
-
return `ur/${"1.80.
|
|
107823
|
+
return `ur/${"1.80.2"}${suffix}`;
|
|
107797
107824
|
}
|
|
107798
107825
|
function getWebFetchUserAgent() {
|
|
107799
107826
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -107931,7 +107958,7 @@ var init_user = __esm(() => {
|
|
|
107931
107958
|
deviceId,
|
|
107932
107959
|
sessionId: getSessionId(),
|
|
107933
107960
|
email: getEmail(),
|
|
107934
|
-
appVersion: "1.80.
|
|
107961
|
+
appVersion: "1.80.2",
|
|
107935
107962
|
platform: getHostPlatformForAnalytics(),
|
|
107936
107963
|
organizationUuid,
|
|
107937
107964
|
accountUuid,
|
|
@@ -115818,7 +115845,7 @@ var init_metadata = __esm(() => {
|
|
|
115818
115845
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
115819
115846
|
WHITESPACE_REGEX = /\s+/;
|
|
115820
115847
|
getVersionBase = memoize_default(() => {
|
|
115821
|
-
const match = "1.80.
|
|
115848
|
+
const match = "1.80.2".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
115822
115849
|
return match ? match[0] : undefined;
|
|
115823
115850
|
});
|
|
115824
115851
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -115858,7 +115885,7 @@ var init_metadata = __esm(() => {
|
|
|
115858
115885
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
115859
115886
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
115860
115887
|
isURAiAuth: isURAISubscriber(),
|
|
115861
|
-
version: "1.80.
|
|
115888
|
+
version: "1.80.2",
|
|
115862
115889
|
versionBase: getVersionBase(),
|
|
115863
115890
|
buildTime: "",
|
|
115864
115891
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -116528,7 +116555,7 @@ function initialize1PEventLogging() {
|
|
|
116528
116555
|
const platform2 = getPlatform();
|
|
116529
116556
|
const attributes = {
|
|
116530
116557
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
116531
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.80.
|
|
116558
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.80.2"
|
|
116532
116559
|
};
|
|
116533
116560
|
if (platform2 === "wsl") {
|
|
116534
116561
|
const wslVersion = getWslVersion();
|
|
@@ -116556,7 +116583,7 @@ function initialize1PEventLogging() {
|
|
|
116556
116583
|
})
|
|
116557
116584
|
]
|
|
116558
116585
|
});
|
|
116559
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.80.
|
|
116586
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.80.2");
|
|
116560
116587
|
}
|
|
116561
116588
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
116562
116589
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -126515,7 +126542,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
126515
126542
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
126516
126543
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
126517
126544
|
}
|
|
126518
|
-
var urVersion = "1.80.
|
|
126545
|
+
var urVersion = "1.80.2", researchSnapshotDate = "2026-08-10", coverage, priorityRoadmap;
|
|
126519
126546
|
var init_trends = __esm(() => {
|
|
126520
126547
|
init_a2aCardSignature();
|
|
126521
126548
|
coverage = [
|
|
@@ -129405,7 +129432,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
129405
129432
|
if (!isAttributionHeaderEnabled()) {
|
|
129406
129433
|
return "";
|
|
129407
129434
|
}
|
|
129408
|
-
const version2 = `${"1.80.
|
|
129435
|
+
const version2 = `${"1.80.2"}.${fingerprint}`;
|
|
129409
129436
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
129410
129437
|
const cch = "";
|
|
129411
129438
|
const workload = getWorkload();
|
|
@@ -184598,7 +184625,7 @@ var init_projectSafety = __esm(() => {
|
|
|
184598
184625
|
function getInstruments() {
|
|
184599
184626
|
if (instruments)
|
|
184600
184627
|
return instruments;
|
|
184601
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.80.
|
|
184628
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.80.2");
|
|
184602
184629
|
instruments = {
|
|
184603
184630
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
184604
184631
|
description: "GenAI operation duration.",
|
|
@@ -184696,7 +184723,7 @@ function genAiAgentAttributes() {
|
|
|
184696
184723
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
184697
184724
|
"gen_ai.provider.name": "ur",
|
|
184698
184725
|
"gen_ai.agent.name": "UR-Nexus",
|
|
184699
|
-
"gen_ai.agent.version": "1.80.
|
|
184726
|
+
"gen_ai.agent.version": "1.80.2"
|
|
184700
184727
|
};
|
|
184701
184728
|
}
|
|
184702
184729
|
function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
@@ -184717,7 +184744,7 @@ function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
|
184717
184744
|
function startGenAiWorkflowSpan(workflowName, workflowRunId) {
|
|
184718
184745
|
const attributes = genAiWorkflowAttributes(workflowName, workflowRunId);
|
|
184719
184746
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
184720
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.
|
|
184747
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.2").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184721
184748
|
}
|
|
184722
184749
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
184723
184750
|
try {
|
|
@@ -184755,7 +184782,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
184755
184782
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
184756
184783
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
184757
184784
|
}
|
|
184758
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.
|
|
184785
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.2").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184759
184786
|
}
|
|
184760
184787
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
184761
184788
|
try {
|
|
@@ -278470,7 +278497,7 @@ function getTelemetryAttributes() {
|
|
|
278470
278497
|
attributes["session.id"] = sessionId;
|
|
278471
278498
|
}
|
|
278472
278499
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
278473
|
-
attributes["app.version"] = "1.80.
|
|
278500
|
+
attributes["app.version"] = "1.80.2";
|
|
278474
278501
|
}
|
|
278475
278502
|
const oauthAccount = getOauthAccountInfo();
|
|
278476
278503
|
if (oauthAccount) {
|
|
@@ -319461,7 +319488,7 @@ function getInstallationEnv() {
|
|
|
319461
319488
|
return;
|
|
319462
319489
|
}
|
|
319463
319490
|
function getURCodeVersion() {
|
|
319464
|
-
return "1.80.
|
|
319491
|
+
return "1.80.2";
|
|
319465
319492
|
}
|
|
319466
319493
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
319467
319494
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -326831,7 +326858,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
326831
326858
|
const client2 = new Client({
|
|
326832
326859
|
name: "ur",
|
|
326833
326860
|
title: "UR",
|
|
326834
|
-
version: "1.80.
|
|
326861
|
+
version: "1.80.2",
|
|
326835
326862
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
326836
326863
|
websiteUrl: PRODUCT_URL
|
|
326837
326864
|
}, {
|
|
@@ -327192,7 +327219,7 @@ var init_client5 = __esm(() => {
|
|
|
327192
327219
|
const client2 = new Client({
|
|
327193
327220
|
name: "ur",
|
|
327194
327221
|
title: "UR",
|
|
327195
|
-
version: "1.80.
|
|
327222
|
+
version: "1.80.2",
|
|
327196
327223
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
327197
327224
|
websiteUrl: PRODUCT_URL
|
|
327198
327225
|
}, {
|
|
@@ -339930,7 +339957,7 @@ async function createRuntime() {
|
|
|
339930
339957
|
bootstrapTelemetry();
|
|
339931
339958
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
339932
339959
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
339933
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.80.
|
|
339960
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.80.2"
|
|
339934
339961
|
}));
|
|
339935
339962
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
339936
339963
|
resource,
|
|
@@ -339963,11 +339990,11 @@ async function createRuntime() {
|
|
|
339963
339990
|
setMeterProvider(meterProvider);
|
|
339964
339991
|
setLoggerProvider(loggerProvider);
|
|
339965
339992
|
if (meterProvider) {
|
|
339966
|
-
const meter = meterProvider.getMeter("ur-agent", "1.80.
|
|
339993
|
+
const meter = meterProvider.getMeter("ur-agent", "1.80.2");
|
|
339967
339994
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
339968
339995
|
}
|
|
339969
339996
|
if (loggerProvider) {
|
|
339970
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.80.
|
|
339997
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.80.2"));
|
|
339971
339998
|
}
|
|
339972
339999
|
if (!cleanupRegistered3) {
|
|
339973
340000
|
cleanupRegistered3 = true;
|
|
@@ -340629,9 +340656,9 @@ async function assertMinVersion() {
|
|
|
340629
340656
|
if (false) {}
|
|
340630
340657
|
try {
|
|
340631
340658
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
340632
|
-
if (versionConfig.minVersion && lt("1.80.
|
|
340659
|
+
if (versionConfig.minVersion && lt("1.80.2", versionConfig.minVersion)) {
|
|
340633
340660
|
console.error(`
|
|
340634
|
-
It looks like your version of UR (${"1.80.
|
|
340661
|
+
It looks like your version of UR (${"1.80.2"}) needs an update.
|
|
340635
340662
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
340636
340663
|
|
|
340637
340664
|
To update, please run:
|
|
@@ -340847,7 +340874,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
340847
340874
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
340848
340875
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
340849
340876
|
pid: process.pid,
|
|
340850
|
-
currentVersion: "1.80.
|
|
340877
|
+
currentVersion: "1.80.2"
|
|
340851
340878
|
});
|
|
340852
340879
|
return "in_progress";
|
|
340853
340880
|
}
|
|
@@ -340856,7 +340883,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
340856
340883
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
340857
340884
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
340858
340885
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
340859
|
-
currentVersion: "1.80.
|
|
340886
|
+
currentVersion: "1.80.2"
|
|
340860
340887
|
});
|
|
340861
340888
|
console.error(`
|
|
340862
340889
|
Error: Windows NPM detected in WSL
|
|
@@ -341391,7 +341418,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
341391
341418
|
}
|
|
341392
341419
|
async function getDoctorDiagnostic() {
|
|
341393
341420
|
const installationType = await getCurrentInstallationType();
|
|
341394
|
-
const version2 = typeof MACRO !== "undefined" ? "1.80.
|
|
341421
|
+
const version2 = typeof MACRO !== "undefined" ? "1.80.2" : "unknown";
|
|
341395
341422
|
const installationPath = await getInstallationPath();
|
|
341396
341423
|
const invokedBinary = getInvokedBinary();
|
|
341397
341424
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -342326,8 +342353,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
342326
342353
|
const maxVersion = await getMaxVersion();
|
|
342327
342354
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
342328
342355
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
342329
|
-
if (gte("1.80.
|
|
342330
|
-
logForDebugging(`Native installer: current version ${"1.80.
|
|
342356
|
+
if (gte("1.80.2", maxVersion)) {
|
|
342357
|
+
logForDebugging(`Native installer: current version ${"1.80.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
342331
342358
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
342332
342359
|
latency_ms: Date.now() - startTime,
|
|
342333
342360
|
max_version: maxVersion,
|
|
@@ -342338,7 +342365,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
342338
342365
|
version2 = maxVersion;
|
|
342339
342366
|
}
|
|
342340
342367
|
}
|
|
342341
|
-
if (!forceReinstall && version2 === "1.80.
|
|
342368
|
+
if (!forceReinstall && version2 === "1.80.2" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
342342
342369
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
342343
342370
|
logEvent("tengu_native_update_complete", {
|
|
342344
342371
|
latency_ms: Date.now() - startTime,
|
|
@@ -412358,7 +412385,7 @@ function isAnyTracingEnabled() {
|
|
|
412358
412385
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
412359
412386
|
}
|
|
412360
412387
|
function getTracer() {
|
|
412361
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.80.
|
|
412388
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.80.2");
|
|
412362
412389
|
}
|
|
412363
412390
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
412364
412391
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -442790,7 +442817,7 @@ function Feedback({
|
|
|
442790
442817
|
platform: env2.platform,
|
|
442791
442818
|
gitRepo: envInfo.isGit,
|
|
442792
442819
|
terminal: env2.terminal,
|
|
442793
|
-
version: "1.80.
|
|
442820
|
+
version: "1.80.2",
|
|
442794
442821
|
transcript: normalizeMessagesForAPI(messages),
|
|
442795
442822
|
errors: sanitizedErrors,
|
|
442796
442823
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -442982,7 +443009,7 @@ function Feedback({
|
|
|
442982
443009
|
", ",
|
|
442983
443010
|
env2.terminal,
|
|
442984
443011
|
", v",
|
|
442985
|
-
"1.80.
|
|
443012
|
+
"1.80.2"
|
|
442986
443013
|
]
|
|
442987
443014
|
}, undefined, true, undefined, this)
|
|
442988
443015
|
]
|
|
@@ -443088,7 +443115,7 @@ ${sanitizedDescription}
|
|
|
443088
443115
|
` + `**Environment Info**
|
|
443089
443116
|
` + `- Platform: ${env2.platform}
|
|
443090
443117
|
` + `- Terminal: ${env2.terminal}
|
|
443091
|
-
` + `- Version: ${"1.80.
|
|
443118
|
+
` + `- Version: ${"1.80.2"}
|
|
443092
443119
|
` + `- Feedback ID: ${feedbackId}
|
|
443093
443120
|
` + `
|
|
443094
443121
|
**Errors**
|
|
@@ -446198,7 +446225,7 @@ function buildPrimarySection() {
|
|
|
446198
446225
|
}, undefined, false, undefined, this);
|
|
446199
446226
|
return [{
|
|
446200
446227
|
label: "Version",
|
|
446201
|
-
value: "1.80.
|
|
446228
|
+
value: "1.80.2"
|
|
446202
446229
|
}, {
|
|
446203
446230
|
label: "Session name",
|
|
446204
446231
|
value: nameValue
|
|
@@ -449580,7 +449607,7 @@ function Config({
|
|
|
449580
449607
|
}
|
|
449581
449608
|
}, undefined, false, undefined, this)
|
|
449582
449609
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
449583
|
-
currentVersion: "1.80.
|
|
449610
|
+
currentVersion: "1.80.2",
|
|
449584
449611
|
onChoice: (choice) => {
|
|
449585
449612
|
setShowSubmenu(null);
|
|
449586
449613
|
setTabsHidden(false);
|
|
@@ -449592,7 +449619,7 @@ function Config({
|
|
|
449592
449619
|
autoUpdatesChannel: "stable"
|
|
449593
449620
|
};
|
|
449594
449621
|
if (choice === "stay") {
|
|
449595
|
-
newSettings.minimumVersion = "1.80.
|
|
449622
|
+
newSettings.minimumVersion = "1.80.2";
|
|
449596
449623
|
}
|
|
449597
449624
|
updateSettingsForSource("userSettings", newSettings);
|
|
449598
449625
|
setSettingsData((prev_27) => ({
|
|
@@ -457850,7 +457877,7 @@ function HelpV2(t0) {
|
|
|
457850
457877
|
let t6;
|
|
457851
457878
|
if ($2[31] !== tabs) {
|
|
457852
457879
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
457853
|
-
title: `UR v${"1.80.
|
|
457880
|
+
title: `UR v${"1.80.2"}`,
|
|
457854
457881
|
color: "professionalBlue",
|
|
457855
457882
|
defaultTab: "general",
|
|
457856
457883
|
children: tabs
|
|
@@ -458783,7 +458810,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
458783
458810
|
async function handleInitialize(options2) {
|
|
458784
458811
|
return {
|
|
458785
458812
|
name: "UR",
|
|
458786
|
-
version: "1.80.
|
|
458813
|
+
version: "1.80.2",
|
|
458787
458814
|
protocolVersion: "0.1.0",
|
|
458788
458815
|
workspaceRoot: options2.cwd,
|
|
458789
458816
|
capabilities: {
|
|
@@ -475891,7 +475918,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
475891
475918
|
return [];
|
|
475892
475919
|
}
|
|
475893
475920
|
}
|
|
475894
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.80.
|
|
475921
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.80.2") {
|
|
475895
475922
|
if (process.env.USER_TYPE === "ant") {
|
|
475896
475923
|
const changelog = "";
|
|
475897
475924
|
if (changelog) {
|
|
@@ -475918,7 +475945,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.80.1")
|
|
|
475918
475945
|
releaseNotes
|
|
475919
475946
|
};
|
|
475920
475947
|
}
|
|
475921
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.80.
|
|
475948
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.80.2") {
|
|
475922
475949
|
if (process.env.USER_TYPE === "ant") {
|
|
475923
475950
|
const changelog = "";
|
|
475924
475951
|
if (changelog) {
|
|
@@ -478823,7 +478850,7 @@ function getRecentActivitySync() {
|
|
|
478823
478850
|
return cachedActivity;
|
|
478824
478851
|
}
|
|
478825
478852
|
function getLogoDisplayData() {
|
|
478826
|
-
const version2 = process.env.DEMO_VERSION ?? "1.80.
|
|
478853
|
+
const version2 = process.env.DEMO_VERSION ?? "1.80.2";
|
|
478827
478854
|
const serverUrl = getDirectConnectServerUrl();
|
|
478828
478855
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
478829
478856
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -479691,7 +479718,7 @@ function LogoV2() {
|
|
|
479691
479718
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
479692
479719
|
t2 = () => {
|
|
479693
479720
|
const currentConfig = getGlobalConfig();
|
|
479694
|
-
if (currentConfig.lastReleaseNotesSeen === "1.80.
|
|
479721
|
+
if (currentConfig.lastReleaseNotesSeen === "1.80.2") {
|
|
479695
479722
|
return;
|
|
479696
479723
|
}
|
|
479697
479724
|
saveGlobalConfig(_temp325);
|
|
@@ -480376,12 +480403,12 @@ function LogoV2() {
|
|
|
480376
480403
|
return t41;
|
|
480377
480404
|
}
|
|
480378
480405
|
function _temp325(current) {
|
|
480379
|
-
if (current.lastReleaseNotesSeen === "1.80.
|
|
480406
|
+
if (current.lastReleaseNotesSeen === "1.80.2") {
|
|
480380
480407
|
return current;
|
|
480381
480408
|
}
|
|
480382
480409
|
return {
|
|
480383
480410
|
...current,
|
|
480384
|
-
lastReleaseNotesSeen: "1.80.
|
|
480411
|
+
lastReleaseNotesSeen: "1.80.2"
|
|
480385
480412
|
};
|
|
480386
480413
|
}
|
|
480387
480414
|
function _temp241(s_0) {
|
|
@@ -496473,7 +496500,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
496473
496500
|
if (spec.name !== specName) {
|
|
496474
496501
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
496475
496502
|
}
|
|
496476
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.80.
|
|
496503
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.80.2" : "1.80.2");
|
|
496477
496504
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
496478
496505
|
throw new Error("invalid ur-agent package version");
|
|
496479
496506
|
}
|
|
@@ -497466,7 +497493,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
497466
497493
|
path: ".github/workflows/ur.yml",
|
|
497467
497494
|
root: "project",
|
|
497468
497495
|
content: compileAgenticCiWorkflow("default", {
|
|
497469
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.80.
|
|
497496
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.80.2" : "1.80.2"
|
|
497470
497497
|
})
|
|
497471
497498
|
},
|
|
497472
497499
|
{
|
|
@@ -497529,7 +497556,7 @@ function value(tokens, flag) {
|
|
|
497529
497556
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
497530
497557
|
}
|
|
497531
497558
|
function cliVersion() {
|
|
497532
|
-
return typeof MACRO !== "undefined" ? "1.80.
|
|
497559
|
+
return typeof MACRO !== "undefined" ? "1.80.2" : "1.80.2";
|
|
497533
497560
|
}
|
|
497534
497561
|
function workflowPath(cwd2) {
|
|
497535
497562
|
return join168(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -503385,7 +503412,7 @@ function createAcpStdioApp(deps) {
|
|
|
503385
503412
|
}
|
|
503386
503413
|
},
|
|
503387
503414
|
authMethods: [],
|
|
503388
|
-
agentInfo: { name: "UR-Nexus", version: "1.80.
|
|
503415
|
+
agentInfo: { name: "UR-Nexus", version: "1.80.2" }
|
|
503389
503416
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
503390
503417
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
503391
503418
|
await runtime2.announce({
|
|
@@ -503482,7 +503509,7 @@ function createAcpStdioAgent(deps) {
|
|
|
503482
503509
|
}
|
|
503483
503510
|
},
|
|
503484
503511
|
authMethods: [],
|
|
503485
|
-
agentInfo: { name: "UR-Nexus", version: "1.80.
|
|
503512
|
+
agentInfo: { name: "UR-Nexus", version: "1.80.2" }
|
|
503486
503513
|
});
|
|
503487
503514
|
return;
|
|
503488
503515
|
case "authenticate":
|
|
@@ -714708,7 +714735,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
714708
714735
|
smapsRollup,
|
|
714709
714736
|
platform: process.platform,
|
|
714710
714737
|
nodeVersion: process.version,
|
|
714711
|
-
ccVersion: "1.80.
|
|
714738
|
+
ccVersion: "1.80.2"
|
|
714712
714739
|
};
|
|
714713
714740
|
}
|
|
714714
714741
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -715297,7 +715324,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
715297
715324
|
var call154 = async () => {
|
|
715298
715325
|
return {
|
|
715299
715326
|
type: "text",
|
|
715300
|
-
value: "1.80.
|
|
715327
|
+
value: "1.80.2"
|
|
715301
715328
|
};
|
|
715302
715329
|
}, version2, version_default;
|
|
715303
715330
|
var init_version = __esm(() => {
|
|
@@ -726540,7 +726567,7 @@ function generateHtmlReport(data, insights) {
|
|
|
726540
726567
|
</html>`;
|
|
726541
726568
|
}
|
|
726542
726569
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
726543
|
-
const version3 = typeof MACRO !== "undefined" ? "1.80.
|
|
726570
|
+
const version3 = typeof MACRO !== "undefined" ? "1.80.2" : "unknown";
|
|
726544
726571
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
726545
726572
|
const facets_summary = {
|
|
726546
726573
|
total: facets.size,
|
|
@@ -730853,7 +730880,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
730853
730880
|
init_settings2();
|
|
730854
730881
|
init_slowOperations();
|
|
730855
730882
|
init_uuid();
|
|
730856
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.80.
|
|
730883
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.80.2" : "unknown";
|
|
730857
730884
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
730858
730885
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
730859
730886
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -732068,7 +732095,7 @@ var init_filesystem = __esm(() => {
|
|
|
732068
732095
|
});
|
|
732069
732096
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
732070
732097
|
const nonce = randomBytes24(16).toString("hex");
|
|
732071
|
-
return join243(getURTempDir(), "bundled-skills", "1.80.
|
|
732098
|
+
return join243(getURTempDir(), "bundled-skills", "1.80.2", nonce);
|
|
732072
732099
|
});
|
|
732073
732100
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
732074
732101
|
});
|
|
@@ -738457,7 +738484,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
738457
738484
|
}
|
|
738458
738485
|
function computeFingerprintFromMessages(messages) {
|
|
738459
738486
|
const firstMessageText = extractFirstMessageText(messages);
|
|
738460
|
-
return computeFingerprint(firstMessageText, "1.80.
|
|
738487
|
+
return computeFingerprint(firstMessageText, "1.80.2");
|
|
738461
738488
|
}
|
|
738462
738489
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
738463
738490
|
var init_fingerprint = () => {};
|
|
@@ -740382,7 +740409,7 @@ async function sideQuery(opts) {
|
|
|
740382
740409
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
740383
740410
|
}
|
|
740384
740411
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
740385
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.80.
|
|
740412
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.80.2");
|
|
740386
740413
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
740387
740414
|
const systemBlocks = [
|
|
740388
740415
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -745216,7 +745243,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
745216
745243
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
745217
745244
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
745218
745245
|
betas: getSdkBetas(),
|
|
745219
|
-
ur_version: "1.80.
|
|
745246
|
+
ur_version: "1.80.2",
|
|
745220
745247
|
output_style: outputStyle,
|
|
745221
745248
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
745222
745249
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -759052,7 +759079,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
759052
759079
|
function getSemverPart(version3) {
|
|
759053
759080
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
759054
759081
|
}
|
|
759055
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.80.
|
|
759082
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.80.2") {
|
|
759056
759083
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
|
|
759057
759084
|
if (!updatedVersion) {
|
|
759058
759085
|
return null;
|
|
@@ -759101,7 +759128,7 @@ function AutoUpdater({
|
|
|
759101
759128
|
return;
|
|
759102
759129
|
}
|
|
759103
759130
|
if (false) {}
|
|
759104
|
-
const currentVersion = "1.80.
|
|
759131
|
+
const currentVersion = "1.80.2";
|
|
759105
759132
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
759106
759133
|
let latestVersion = await getLatestVersion(channel);
|
|
759107
759134
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -759330,12 +759357,12 @@ function NativeAutoUpdater({
|
|
|
759330
759357
|
logEvent("tengu_native_auto_updater_start", {});
|
|
759331
759358
|
try {
|
|
759332
759359
|
const maxVersion = await getMaxVersion();
|
|
759333
|
-
if (maxVersion && gt("1.80.
|
|
759360
|
+
if (maxVersion && gt("1.80.2", maxVersion)) {
|
|
759334
759361
|
const msg = await getMaxVersionMessage();
|
|
759335
759362
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
759336
759363
|
}
|
|
759337
759364
|
const result = await installLatest(channel);
|
|
759338
|
-
const currentVersion = "1.80.
|
|
759365
|
+
const currentVersion = "1.80.2";
|
|
759339
759366
|
const latencyMs = Date.now() - startTime;
|
|
759340
759367
|
if (result.lockFailed) {
|
|
759341
759368
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -759472,17 +759499,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
759472
759499
|
const maxVersion = await getMaxVersion();
|
|
759473
759500
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
759474
759501
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
759475
|
-
if (gte("1.80.
|
|
759476
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.80.
|
|
759502
|
+
if (gte("1.80.2", maxVersion)) {
|
|
759503
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.80.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
759477
759504
|
setUpdateAvailable(false);
|
|
759478
759505
|
return;
|
|
759479
759506
|
}
|
|
759480
759507
|
latest = maxVersion;
|
|
759481
759508
|
}
|
|
759482
|
-
const hasUpdate = latest && !gte("1.80.
|
|
759509
|
+
const hasUpdate = latest && !gte("1.80.2", latest) && !shouldSkipVersion(latest);
|
|
759483
759510
|
setUpdateAvailable(!!hasUpdate);
|
|
759484
759511
|
if (hasUpdate) {
|
|
759485
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.80.
|
|
759512
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.80.2"} -> ${latest}`);
|
|
759486
759513
|
}
|
|
759487
759514
|
};
|
|
759488
759515
|
$2[0] = t1;
|
|
@@ -759516,7 +759543,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
759516
759543
|
wrap: "truncate",
|
|
759517
759544
|
children: [
|
|
759518
759545
|
"currentVersion: ",
|
|
759519
|
-
"1.80.
|
|
759546
|
+
"1.80.2"
|
|
759520
759547
|
]
|
|
759521
759548
|
}, undefined, true, undefined, this);
|
|
759522
759549
|
$2[3] = verbose;
|
|
@@ -770369,7 +770396,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
770369
770396
|
project_dir: getOriginalCwd(),
|
|
770370
770397
|
added_dirs: addedDirs
|
|
770371
770398
|
},
|
|
770372
|
-
version: "1.80.
|
|
770399
|
+
version: "1.80.2",
|
|
770373
770400
|
output_style: {
|
|
770374
770401
|
name: outputStyleName
|
|
770375
770402
|
},
|
|
@@ -770504,7 +770531,7 @@ function StatusLineInner({
|
|
|
770504
770531
|
const attention = customStatusError ?? taskAttention;
|
|
770505
770532
|
const terminalSize = React133.useContext(TerminalSizeContext);
|
|
770506
770533
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
770507
|
-
version: "1.80.
|
|
770534
|
+
version: "1.80.2",
|
|
770508
770535
|
providerLabel: providerRuntime.providerLabel,
|
|
770509
770536
|
authMode: providerRuntime.authLabel,
|
|
770510
770537
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -782759,7 +782786,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
782759
782786
|
} catch {}
|
|
782760
782787
|
const data = {
|
|
782761
782788
|
trigger: trigger2,
|
|
782762
|
-
version: "1.80.
|
|
782789
|
+
version: "1.80.2",
|
|
782763
782790
|
platform: process.platform,
|
|
782764
782791
|
transcript,
|
|
782765
782792
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -795128,7 +795155,7 @@ function WelcomeV2() {
|
|
|
795128
795155
|
dimColor: true,
|
|
795129
795156
|
children: [
|
|
795130
795157
|
"v",
|
|
795131
|
-
"1.80.
|
|
795158
|
+
"1.80.2"
|
|
795132
795159
|
]
|
|
795133
795160
|
}, undefined, true, undefined, this)
|
|
795134
795161
|
]
|
|
@@ -796388,7 +796415,7 @@ function completeOnboarding() {
|
|
|
796388
796415
|
saveGlobalConfig((current) => ({
|
|
796389
796416
|
...current,
|
|
796390
796417
|
hasCompletedOnboarding: true,
|
|
796391
|
-
lastOnboardingVersion: "1.80.
|
|
796418
|
+
lastOnboardingVersion: "1.80.2"
|
|
796392
796419
|
}));
|
|
796393
796420
|
}
|
|
796394
796421
|
function showDialog(root2, renderer) {
|
|
@@ -801534,7 +801561,7 @@ function appendToLog(path28, message) {
|
|
|
801534
801561
|
cwd: getFsImplementation().cwd(),
|
|
801535
801562
|
userType: process.env.USER_TYPE,
|
|
801536
801563
|
sessionId: getSessionId(),
|
|
801537
|
-
version: "1.80.
|
|
801564
|
+
version: "1.80.2"
|
|
801538
801565
|
};
|
|
801539
801566
|
getLogWriter(path28).write(messageWithTimestamp);
|
|
801540
801567
|
}
|
|
@@ -805698,8 +805725,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
805698
805725
|
}
|
|
805699
805726
|
async function checkEnvLessBridgeMinVersion() {
|
|
805700
805727
|
const cfg = await getEnvLessBridgeConfig();
|
|
805701
|
-
if (cfg.min_version && lt("1.80.
|
|
805702
|
-
return `Your version of UR (${"1.80.
|
|
805728
|
+
if (cfg.min_version && lt("1.80.2", cfg.min_version)) {
|
|
805729
|
+
return `Your version of UR (${"1.80.2"}) is too old for Remote Control.
|
|
805703
805730
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
805704
805731
|
}
|
|
805705
805732
|
return null;
|
|
@@ -806173,7 +806200,7 @@ async function initBridgeCore(params) {
|
|
|
806173
806200
|
const rawApi = createBridgeApiClient({
|
|
806174
806201
|
baseUrl,
|
|
806175
806202
|
getAccessToken,
|
|
806176
|
-
runnerVersion: "1.80.
|
|
806203
|
+
runnerVersion: "1.80.2",
|
|
806177
806204
|
onDebug: logForDebugging,
|
|
806178
806205
|
onAuth401,
|
|
806179
806206
|
getTrustedDeviceToken
|
|
@@ -815646,7 +815673,7 @@ function getAgUiCapabilities() {
|
|
|
815646
815673
|
name: "UR-Nexus",
|
|
815647
815674
|
type: "ur-nexus",
|
|
815648
815675
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
815649
|
-
version: "1.80.
|
|
815676
|
+
version: "1.80.2",
|
|
815650
815677
|
provider: "UR",
|
|
815651
815678
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
815652
815679
|
},
|
|
@@ -816777,7 +816804,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
816777
816804
|
};
|
|
816778
816805
|
const server2 = new Server({
|
|
816779
816806
|
name: "ur-nexus",
|
|
816780
|
-
version: "1.80.
|
|
816807
|
+
version: "1.80.2"
|
|
816781
816808
|
}, {
|
|
816782
816809
|
capabilities: {
|
|
816783
816810
|
tools: {}
|
|
@@ -817981,7 +818008,7 @@ function thrownResponse(error40) {
|
|
|
817981
818008
|
}
|
|
817982
818009
|
async function createUrMcp2026Runtime(options5) {
|
|
817983
818010
|
const server2 = createMCPServer(options5.cwd, options5.debug === true, options5.verbose === true);
|
|
817984
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.80.
|
|
818011
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.80.2" }, { capabilities: {} });
|
|
817985
818012
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
817986
818013
|
try {
|
|
817987
818014
|
await server2.connect(serverTransport);
|
|
@@ -817992,7 +818019,7 @@ async function createUrMcp2026Runtime(options5) {
|
|
|
817992
818019
|
}
|
|
817993
818020
|
const runtime2 = new Mcp2026Runtime({
|
|
817994
818021
|
cwd: options5.cwd,
|
|
817995
|
-
version: "1.80.
|
|
818022
|
+
version: "1.80.2",
|
|
817996
818023
|
backend: {
|
|
817997
818024
|
listTools: async () => {
|
|
817998
818025
|
const listed = await client2.listTools();
|
|
@@ -820594,7 +820621,7 @@ async function update() {
|
|
|
820594
820621
|
logEvent("tengu_update_check", {});
|
|
820595
820622
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
820596
820623
|
const result = await checkUpgradeStatus({
|
|
820597
|
-
currentVersion: "1.80.
|
|
820624
|
+
currentVersion: "1.80.2",
|
|
820598
820625
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
820599
820626
|
installationType: diagnostic2.installationType,
|
|
820600
820627
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -821922,7 +821949,7 @@ ${customInstructions}` : customInstructions;
|
|
|
821922
821949
|
}
|
|
821923
821950
|
}
|
|
821924
821951
|
logForDiagnosticsNoPII("info", "started", {
|
|
821925
|
-
version: "1.80.
|
|
821952
|
+
version: "1.80.2",
|
|
821926
821953
|
is_native_binary: isInBundledMode()
|
|
821927
821954
|
});
|
|
821928
821955
|
registerCleanup(async () => {
|
|
@@ -822709,7 +822736,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
822709
822736
|
pendingHookMessages
|
|
822710
822737
|
}, renderAndRun);
|
|
822711
822738
|
}
|
|
822712
|
-
}).version("1.80.
|
|
822739
|
+
}).version("1.80.2 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
822713
822740
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
822714
822741
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
822715
822742
|
if (canUserConfigureAdvisor()) {
|
|
@@ -823817,7 +823844,7 @@ if (false) {}
|
|
|
823817
823844
|
async function main2() {
|
|
823818
823845
|
const args = process.argv.slice(2);
|
|
823819
823846
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
823820
|
-
console.log(`${"1.80.
|
|
823847
|
+
console.log(`${"1.80.2"} (UR-Nexus)`);
|
|
823821
823848
|
return;
|
|
823822
823849
|
}
|
|
823823
823850
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|
package/docs/AGENT_FEATURES.md
CHANGED
|
@@ -265,7 +265,7 @@ automatically changes the active provider.
|
|
|
265
265
|
| Provider-aware status bar | Interactive bottom status bar, `src/components/StatusLine.tsx`, `src/utils/statusBar.ts` | Shows only important runtime state: active provider, selected model, mode, git branch, active task state, checks/build state when known, and update availability. Hidden in CI, dumb terminals, and non-interactive mode; custom status-line hooks still override it. |
|
|
266
266
|
| Clean update checks | `ur upgrade`, `ur update`, `src/cli/update.ts` | Detects development/source checkouts and prints a short pull-or-install message instead of attempting self-mutation. npm-installed builds compare the local version with `ur-agent` on npm and print update, latest, registry failure, and malformed-response states without stale planning text. |
|
|
267
267
|
| Bundled IDE extension install | `extensions/vscode-ur-inline-diffs/`, `src/utils/ide.ts`, `ur ide diff` | Public VS Code install now packages the repo's bundled inline-diffs extension as a local VSIX instead of trying an unpublished marketplace ID. The extension remains local-only and reviews `.ur/ide/diffs` bundles from the current workspace. |
|
|
268
|
-
| Professional clarification dialogs | `AskUserQuestion`, `src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx` | Supports up to eight concrete options, infers labels from description-only option objects, accepts prompt aliases,
|
|
268
|
+
| Professional clarification dialogs | `AskUserQuestion`, `src/tools/AskUserQuestionTool/AskUserQuestionTool.tsx` | Supports up to eight concrete options, infers labels from description-only option objects, accepts prompt aliases, deduplicates equivalent labels, safely repairs single-suggestion payloads with a neutral rejection choice, and is loaded without ToolSearch preloading so typed schemas are available before use. |
|
|
269
269
|
| Documentation release sync | `README.md`, `docs/`, `documentation/`, `CHANGELOG.md` | Keeps the npm README, static documentation site, provider guide, usage guide, feature ledger, validation runbook, and release notes aligned with current release behavior. |
|
|
270
270
|
|
|
271
271
|
## v1.24.0 Additions
|
package/docs/USAGE.md
CHANGED
|
@@ -50,7 +50,9 @@ application. Use Blender locally, or run the 3ds Max project on a Windows host.
|
|
|
50
50
|
|
|
51
51
|
When UR needs a focused clarification, it uses the `AskUserQuestion` dialog.
|
|
52
52
|
Professional clarification prompts can provide up to eight concrete options;
|
|
53
|
-
UR also accepts custom "Other" answers
|
|
53
|
+
UR also accepts custom "Other" answers. If a model supplies only one concrete
|
|
54
|
+
suggestion, UR keeps it and adds a neutral `Different answer` rejection path
|
|
55
|
+
instead of showing an internal validation error or inventing another choice.
|
|
54
56
|
|
|
55
57
|
## Print Mode
|
|
56
58
|
|
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.80.
|
|
48
|
+
<p class="eyebrow">Version 1.80.2</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.80.
|
|
5
|
+
"version": "1.80.2",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED