ur-agent 1.43.5 → 1.44.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 +18 -0
- package/dist/cli.js +179 -73
- package/documentation/index.html +2 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.44.0
|
|
4
|
+
|
|
5
|
+
- Add `verifier.askBeforeGates` setting (default `false`). When enabled, UR asks
|
|
6
|
+
via `AskUserQuestion` whether to run project verification commands after a
|
|
7
|
+
task, instead of auto-running tests/typecheck/lint gates. Available in
|
|
8
|
+
`/config`, `ur config set verifier.askBeforeGates true`, and
|
|
9
|
+
`.ur/settings.json`.
|
|
10
|
+
- Prompt the model to stop after delivering its final response, reducing silent
|
|
11
|
+
extra thinking turns.
|
|
12
|
+
|
|
13
|
+
## 1.43.6
|
|
14
|
+
|
|
15
|
+
- Render output from reasoning models on OpenAI-compatible providers (LM Studio,
|
|
16
|
+
vLLM). The streaming and non-streaming parsers now read `reasoning_content`
|
|
17
|
+
(and `reasoning`) deltas and surface them as thinking blocks. Models that emit
|
|
18
|
+
their output in the reasoning field (e.g. NVIDIA Nemotron, DeepSeek-R1
|
|
19
|
+
distills, QwQ) previously produced an empty response with no error.
|
|
20
|
+
|
|
3
21
|
## 1.43.5
|
|
4
22
|
|
|
5
23
|
- Fix model discovery for OpenAI-compatible providers (LM Studio, llama.cpp,
|
package/dist/cli.js
CHANGED
|
@@ -56561,6 +56561,13 @@ async function* streamOpenAIEvents(body, options) {
|
|
|
56561
56561
|
let finishReason;
|
|
56562
56562
|
let usage = EMPTY_USAGE;
|
|
56563
56563
|
const toolStates = new Map;
|
|
56564
|
+
let activeThinkingIndex = null;
|
|
56565
|
+
const stopThinking = function* () {
|
|
56566
|
+
if (activeThinkingIndex !== null) {
|
|
56567
|
+
yield { type: "content_block_stop", index: activeThinkingIndex };
|
|
56568
|
+
activeThinkingIndex = null;
|
|
56569
|
+
}
|
|
56570
|
+
};
|
|
56564
56571
|
const stopText = function* () {
|
|
56565
56572
|
if (activeTextIndex !== null) {
|
|
56566
56573
|
yield { type: "content_block_stop", index: activeTextIndex };
|
|
@@ -56569,6 +56576,8 @@ async function* streamOpenAIEvents(body, options) {
|
|
|
56569
56576
|
};
|
|
56570
56577
|
const ensureText = function* () {
|
|
56571
56578
|
if (activeTextIndex === null) {
|
|
56579
|
+
for (const event of stopThinking())
|
|
56580
|
+
yield event;
|
|
56572
56581
|
activeTextIndex = blockIndex++;
|
|
56573
56582
|
sawBlock = true;
|
|
56574
56583
|
yield {
|
|
@@ -56578,6 +56587,19 @@ async function* streamOpenAIEvents(body, options) {
|
|
|
56578
56587
|
};
|
|
56579
56588
|
}
|
|
56580
56589
|
};
|
|
56590
|
+
const ensureThinking = function* () {
|
|
56591
|
+
if (activeThinkingIndex === null) {
|
|
56592
|
+
for (const event of stopText())
|
|
56593
|
+
yield event;
|
|
56594
|
+
activeThinkingIndex = blockIndex++;
|
|
56595
|
+
sawBlock = true;
|
|
56596
|
+
yield {
|
|
56597
|
+
type: "content_block_start",
|
|
56598
|
+
index: activeThinkingIndex,
|
|
56599
|
+
content_block: { type: "thinking", thinking: "" }
|
|
56600
|
+
};
|
|
56601
|
+
}
|
|
56602
|
+
};
|
|
56581
56603
|
const ensureTool = function* (state) {
|
|
56582
56604
|
if (state.blockIndex !== undefined)
|
|
56583
56605
|
return;
|
|
@@ -56617,6 +56639,16 @@ async function* streamOpenAIEvents(body, options) {
|
|
|
56617
56639
|
}
|
|
56618
56640
|
for (const choice of chunk?.choices ?? []) {
|
|
56619
56641
|
const delta = choice?.delta ?? {};
|
|
56642
|
+
const reasoning = typeof delta.reasoning_content === "string" ? delta.reasoning_content : typeof delta.reasoning === "string" ? delta.reasoning : "";
|
|
56643
|
+
if (reasoning.length > 0) {
|
|
56644
|
+
for (const event of ensureThinking())
|
|
56645
|
+
yield event;
|
|
56646
|
+
yield {
|
|
56647
|
+
type: "content_block_delta",
|
|
56648
|
+
index: activeThinkingIndex,
|
|
56649
|
+
delta: { type: "thinking_delta", thinking: reasoning }
|
|
56650
|
+
};
|
|
56651
|
+
}
|
|
56620
56652
|
if (typeof delta.content === "string" && delta.content.length > 0) {
|
|
56621
56653
|
for (const event of ensureText())
|
|
56622
56654
|
yield event;
|
|
@@ -56660,6 +56692,8 @@ async function* streamOpenAIEvents(body, options) {
|
|
|
56660
56692
|
}
|
|
56661
56693
|
for (const event of stopText())
|
|
56662
56694
|
yield event;
|
|
56695
|
+
for (const event of stopThinking())
|
|
56696
|
+
yield event;
|
|
56663
56697
|
for (const [index2, state] of toolStates.entries()) {
|
|
56664
56698
|
if (state.blockIndex === undefined) {
|
|
56665
56699
|
throw new ProviderResponseParseError(`${providerName} streamed tool_calls[${index2}] without a function name`, { state });
|
|
@@ -57464,6 +57498,10 @@ function messageToOpenAIMessages(message, toolNamesById, providerName) {
|
|
|
57464
57498
|
}
|
|
57465
57499
|
function parseOpenAIMessageContent(message, legacyText, providerName) {
|
|
57466
57500
|
const content = [];
|
|
57501
|
+
const reasoning = typeof message?.reasoning_content === "string" ? message.reasoning_content : typeof message?.reasoning === "string" ? message.reasoning : "";
|
|
57502
|
+
if (reasoning.length > 0) {
|
|
57503
|
+
content.push({ type: "thinking", thinking: reasoning });
|
|
57504
|
+
}
|
|
57467
57505
|
const text = openAIMessageText(message?.content, legacyText);
|
|
57468
57506
|
if (text.length > 0) {
|
|
57469
57507
|
content.push({ type: "text", text });
|
|
@@ -71215,7 +71253,7 @@ var init_auth = __esm(() => {
|
|
|
71215
71253
|
|
|
71216
71254
|
// src/utils/userAgent.ts
|
|
71217
71255
|
function getURCodeUserAgent() {
|
|
71218
|
-
return `ur/${"1.
|
|
71256
|
+
return `ur/${"1.44.0"}`;
|
|
71219
71257
|
}
|
|
71220
71258
|
|
|
71221
71259
|
// src/utils/workloadContext.ts
|
|
@@ -71237,7 +71275,7 @@ function getUserAgent() {
|
|
|
71237
71275
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
71238
71276
|
const workload = getWorkload();
|
|
71239
71277
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
71240
|
-
return `ur-cli/${"1.
|
|
71278
|
+
return `ur-cli/${"1.44.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
71241
71279
|
}
|
|
71242
71280
|
function getMCPUserAgent() {
|
|
71243
71281
|
const parts = [];
|
|
@@ -71251,7 +71289,7 @@ function getMCPUserAgent() {
|
|
|
71251
71289
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
71252
71290
|
}
|
|
71253
71291
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
71254
|
-
return `ur/${"1.
|
|
71292
|
+
return `ur/${"1.44.0"}${suffix}`;
|
|
71255
71293
|
}
|
|
71256
71294
|
function getWebFetchUserAgent() {
|
|
71257
71295
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -71389,7 +71427,7 @@ var init_user = __esm(() => {
|
|
|
71389
71427
|
deviceId,
|
|
71390
71428
|
sessionId: getSessionId(),
|
|
71391
71429
|
email: getEmail(),
|
|
71392
|
-
appVersion: "1.
|
|
71430
|
+
appVersion: "1.44.0",
|
|
71393
71431
|
platform: getHostPlatformForAnalytics(),
|
|
71394
71432
|
organizationUuid,
|
|
71395
71433
|
accountUuid,
|
|
@@ -77906,7 +77944,7 @@ var init_metadata = __esm(() => {
|
|
|
77906
77944
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
77907
77945
|
WHITESPACE_REGEX = /\s+/;
|
|
77908
77946
|
getVersionBase = memoize_default(() => {
|
|
77909
|
-
const match = "1.
|
|
77947
|
+
const match = "1.44.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
77910
77948
|
return match ? match[0] : undefined;
|
|
77911
77949
|
});
|
|
77912
77950
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -77946,7 +77984,7 @@ var init_metadata = __esm(() => {
|
|
|
77946
77984
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
77947
77985
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
77948
77986
|
isURAiAuth: isURAISubscriber(),
|
|
77949
|
-
version: "1.
|
|
77987
|
+
version: "1.44.0",
|
|
77950
77988
|
versionBase: getVersionBase(),
|
|
77951
77989
|
buildTime: "",
|
|
77952
77990
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -78616,7 +78654,7 @@ function initialize1PEventLogging() {
|
|
|
78616
78654
|
const platform2 = getPlatform();
|
|
78617
78655
|
const attributes = {
|
|
78618
78656
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
78619
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.
|
|
78657
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.44.0"
|
|
78620
78658
|
};
|
|
78621
78659
|
if (platform2 === "wsl") {
|
|
78622
78660
|
const wslVersion = getWslVersion();
|
|
@@ -78643,7 +78681,7 @@ function initialize1PEventLogging() {
|
|
|
78643
78681
|
})
|
|
78644
78682
|
]
|
|
78645
78683
|
});
|
|
78646
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.
|
|
78684
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.44.0");
|
|
78647
78685
|
}
|
|
78648
78686
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
78649
78687
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -81273,6 +81311,9 @@ var init_types2 = __esm(() => {
|
|
|
81273
81311
|
prefersReducedMotion: exports_external.boolean().optional().describe("Reduce or disable animations for accessibility (spinner shimmer, flash effects, etc.)"),
|
|
81274
81312
|
autoMemoryEnabled: exports_external.boolean().optional().describe("Enable auto-memory for this project. When false, UR will not read from or write to the auto-memory directory."),
|
|
81275
81313
|
autoMemoryDirectory: exports_external.string().optional().describe("Custom directory path for auto-memory storage. Supports ~/ prefix for home directory expansion. Ignored if set in projectSettings (checked-in .ur/settings.json) for security. When unset, defaults to ~/.ur/projects/<sanitized-cwd>/memory/."),
|
|
81314
|
+
verifier: exports_external.object({
|
|
81315
|
+
askBeforeGates: exports_external.boolean().optional().describe("When true, UR asks whether to run project verification commands (tests, typecheck, lint) after a task instead of running them automatically. Default: false.")
|
|
81316
|
+
}).optional().describe("Verifier behavior configuration"),
|
|
81276
81317
|
autoDreamEnabled: exports_external.boolean().optional().describe("Enable background memory consolidation (auto-dream). When set, overrides the server-side default."),
|
|
81277
81318
|
ollama: exports_external.object({
|
|
81278
81319
|
host: exports_external.string().optional().describe("URL of the Ollama server to use (e.g. http://192.168.1.50:11434)"),
|
|
@@ -83942,7 +83983,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
83942
83983
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
83943
83984
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
83944
83985
|
}
|
|
83945
|
-
var urVersion = "1.
|
|
83986
|
+
var urVersion = "1.44.0", coverage, priorityRoadmap;
|
|
83946
83987
|
var init_trends = __esm(() => {
|
|
83947
83988
|
coverage = [
|
|
83948
83989
|
{
|
|
@@ -85937,7 +85978,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
85937
85978
|
if (!isAttributionHeaderEnabled()) {
|
|
85938
85979
|
return "";
|
|
85939
85980
|
}
|
|
85940
|
-
const version2 = `${"1.
|
|
85981
|
+
const version2 = `${"1.44.0"}.${fingerprint}`;
|
|
85941
85982
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
85942
85983
|
const cch = "";
|
|
85943
85984
|
const workload = getWorkload();
|
|
@@ -144484,16 +144525,26 @@ class Verifier {
|
|
|
144484
144525
|
const ranBash = this.ledger.ranBash(turnId);
|
|
144485
144526
|
let commands = config2 ? pickCommands(config2, modifiedFiles, ranBash, this.cwd) : null;
|
|
144486
144527
|
let timeoutMs = config2?.timeoutMs;
|
|
144528
|
+
let autoDetected = false;
|
|
144487
144529
|
if (!commands && hasNonIgnoredEdits(config2, modifiedFiles, this.cwd)) {
|
|
144488
144530
|
commands = this.autoDetectedAfterEditCommands();
|
|
144489
144531
|
timeoutMs = config2?.timeoutMs ?? AUTO_DETECTED_GATE_TIMEOUT_MS;
|
|
144532
|
+
autoDetected = true;
|
|
144490
144533
|
}
|
|
144491
144534
|
if (commands && commands.length > 0) {
|
|
144492
|
-
|
|
144493
|
-
|
|
144535
|
+
if (!askBeforeGatesEnabled() && getIsNonInteractiveSession()) {
|
|
144536
|
+
const result = await runGateCommands(commands, this.cwd, timeoutMs);
|
|
144537
|
+
if (!result.ok) {
|
|
144538
|
+
this.bumpRejection(turnId);
|
|
144539
|
+
const failed = result;
|
|
144540
|
+
return { ok: false, reminder: failed.reminder };
|
|
144541
|
+
}
|
|
144542
|
+
} else {
|
|
144494
144543
|
this.bumpRejection(turnId);
|
|
144495
|
-
|
|
144496
|
-
|
|
144544
|
+
return {
|
|
144545
|
+
ok: false,
|
|
144546
|
+
reminder: buildAskBeforeGatesReminder(commands, autoDetected)
|
|
144547
|
+
};
|
|
144497
144548
|
}
|
|
144498
144549
|
}
|
|
144499
144550
|
const pluginValidators = await this.pluginValidatorsPromise;
|
|
@@ -144550,6 +144601,22 @@ class Verifier {
|
|
|
144550
144601
|
return detectProjectQualityStack(this.cwd).commands.map((command) => command.command);
|
|
144551
144602
|
}
|
|
144552
144603
|
}
|
|
144604
|
+
function askBeforeGatesEnabled() {
|
|
144605
|
+
try {
|
|
144606
|
+
return getInitialSettings().verifier?.askBeforeGates === true;
|
|
144607
|
+
} catch {
|
|
144608
|
+
return false;
|
|
144609
|
+
}
|
|
144610
|
+
}
|
|
144611
|
+
function buildAskBeforeGatesReminder(commands, autoDetected) {
|
|
144612
|
+
const label = autoDetected ? "auto-detected project verification" : "project verification";
|
|
144613
|
+
const list2 = commands.map((c4) => `- \`${c4}\``).join(`
|
|
144614
|
+
`);
|
|
144615
|
+
return `I have ${label} commands ready to run:
|
|
144616
|
+
${list2}
|
|
144617
|
+
|
|
144618
|
+
` + `Do not automatically run them and do not declare the task complete without the user's decision. ` + `Use AskUserQuestion to ask the user whether to run these verification commands now. ` + `If they confirm, run them with the BashTool and then report the outcome. ` + `If they decline, finish your response without running them.`;
|
|
144619
|
+
}
|
|
144553
144620
|
function pickPluginValidators(validators3, modifiedFiles, ranBash) {
|
|
144554
144621
|
return validators3.filter((v) => {
|
|
144555
144622
|
if (v.when === "always")
|
|
@@ -144567,6 +144634,8 @@ function pickPluginValidators(validators3, modifiedFiles, ranBash) {
|
|
|
144567
144634
|
var import_picomatch3, DEFAULT_MAX_REJECTIONS_PER_TURN = 3, AUTO_DETECTED_GATE_TIMEOUT_MS = 600000;
|
|
144568
144635
|
var init_verifier = __esm(() => {
|
|
144569
144636
|
init_envUtils();
|
|
144637
|
+
init_state();
|
|
144638
|
+
init_settings2();
|
|
144570
144639
|
init_projectQuality();
|
|
144571
144640
|
init_doneDetector();
|
|
144572
144641
|
init_ledger();
|
|
@@ -193879,7 +193948,7 @@ function getTelemetryAttributes() {
|
|
|
193879
193948
|
attributes["session.id"] = sessionId;
|
|
193880
193949
|
}
|
|
193881
193950
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
193882
|
-
attributes["app.version"] = "1.
|
|
193951
|
+
attributes["app.version"] = "1.44.0";
|
|
193883
193952
|
}
|
|
193884
193953
|
const oauthAccount = getOauthAccountInfo();
|
|
193885
193954
|
if (oauthAccount) {
|
|
@@ -229267,7 +229336,7 @@ function getInstallationEnv() {
|
|
|
229267
229336
|
return;
|
|
229268
229337
|
}
|
|
229269
229338
|
function getURCodeVersion() {
|
|
229270
|
-
return "1.
|
|
229339
|
+
return "1.44.0";
|
|
229271
229340
|
}
|
|
229272
229341
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
229273
229342
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -232106,7 +232175,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
232106
232175
|
const client2 = new Client({
|
|
232107
232176
|
name: "ur",
|
|
232108
232177
|
title: "UR",
|
|
232109
|
-
version: "1.
|
|
232178
|
+
version: "1.44.0",
|
|
232110
232179
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
232111
232180
|
websiteUrl: PRODUCT_URL
|
|
232112
232181
|
}, {
|
|
@@ -232460,7 +232529,7 @@ var init_client5 = __esm(() => {
|
|
|
232460
232529
|
const client2 = new Client({
|
|
232461
232530
|
name: "ur",
|
|
232462
232531
|
title: "UR",
|
|
232463
|
-
version: "1.
|
|
232532
|
+
version: "1.44.0",
|
|
232464
232533
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
232465
232534
|
websiteUrl: PRODUCT_URL
|
|
232466
232535
|
}, {
|
|
@@ -242274,9 +242343,9 @@ async function assertMinVersion() {
|
|
|
242274
242343
|
if (false) {}
|
|
242275
242344
|
try {
|
|
242276
242345
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
242277
|
-
if (versionConfig.minVersion && lt("1.
|
|
242346
|
+
if (versionConfig.minVersion && lt("1.44.0", versionConfig.minVersion)) {
|
|
242278
242347
|
console.error(`
|
|
242279
|
-
It looks like your version of UR (${"1.
|
|
242348
|
+
It looks like your version of UR (${"1.44.0"}) needs an update.
|
|
242280
242349
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
242281
242350
|
|
|
242282
242351
|
To update, please run:
|
|
@@ -242492,7 +242561,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
242492
242561
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
242493
242562
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
242494
242563
|
pid: process.pid,
|
|
242495
|
-
currentVersion: "1.
|
|
242564
|
+
currentVersion: "1.44.0"
|
|
242496
242565
|
});
|
|
242497
242566
|
return "in_progress";
|
|
242498
242567
|
}
|
|
@@ -242501,7 +242570,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
242501
242570
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
242502
242571
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
242503
242572
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
242504
|
-
currentVersion: "1.
|
|
242573
|
+
currentVersion: "1.44.0"
|
|
242505
242574
|
});
|
|
242506
242575
|
console.error(`
|
|
242507
242576
|
Error: Windows NPM detected in WSL
|
|
@@ -243036,7 +243105,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
243036
243105
|
}
|
|
243037
243106
|
async function getDoctorDiagnostic() {
|
|
243038
243107
|
const installationType = await getCurrentInstallationType();
|
|
243039
|
-
const version2 = typeof MACRO !== "undefined" ? "1.
|
|
243108
|
+
const version2 = typeof MACRO !== "undefined" ? "1.44.0" : "unknown";
|
|
243040
243109
|
const installationPath = await getInstallationPath();
|
|
243041
243110
|
const invokedBinary = getInvokedBinary();
|
|
243042
243111
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -243971,8 +244040,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
243971
244040
|
const maxVersion = await getMaxVersion();
|
|
243972
244041
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
243973
244042
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
243974
|
-
if (gte("1.
|
|
243975
|
-
logForDebugging(`Native installer: current version ${"1.
|
|
244043
|
+
if (gte("1.44.0", maxVersion)) {
|
|
244044
|
+
logForDebugging(`Native installer: current version ${"1.44.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
243976
244045
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
243977
244046
|
latency_ms: Date.now() - startTime,
|
|
243978
244047
|
max_version: maxVersion,
|
|
@@ -243983,7 +244052,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
243983
244052
|
version2 = maxVersion;
|
|
243984
244053
|
}
|
|
243985
244054
|
}
|
|
243986
|
-
if (!forceReinstall && version2 === "1.
|
|
244055
|
+
if (!forceReinstall && version2 === "1.44.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
243987
244056
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
243988
244057
|
logEvent("tengu_native_update_complete", {
|
|
243989
244058
|
latency_ms: Date.now() - startTime,
|
|
@@ -301913,6 +301982,12 @@ var init_supportedSettings = __esm(() => {
|
|
|
301913
301982
|
path: ["codeIndexAutoReindex"],
|
|
301914
301983
|
description: "Automatically refresh the local semantic code index during interactive sessions"
|
|
301915
301984
|
},
|
|
301985
|
+
"verifier.askBeforeGates": {
|
|
301986
|
+
source: "settings",
|
|
301987
|
+
type: "boolean",
|
|
301988
|
+
path: ["verifier", "askBeforeGates"],
|
|
301989
|
+
description: "Ask before running project verification commands (tests, typecheck, lint) after a task instead of running them automatically. Default: false."
|
|
301990
|
+
},
|
|
301916
301991
|
autoDreamEnabled: {
|
|
301917
301992
|
source: "settings",
|
|
301918
301993
|
type: "boolean",
|
|
@@ -340974,7 +341049,7 @@ function Feedback({
|
|
|
340974
341049
|
platform: env2.platform,
|
|
340975
341050
|
gitRepo: envInfo.isGit,
|
|
340976
341051
|
terminal: env2.terminal,
|
|
340977
|
-
version: "1.
|
|
341052
|
+
version: "1.44.0",
|
|
340978
341053
|
transcript: normalizeMessagesForAPI(messages),
|
|
340979
341054
|
errors: sanitizedErrors,
|
|
340980
341055
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -341166,7 +341241,7 @@ function Feedback({
|
|
|
341166
341241
|
", ",
|
|
341167
341242
|
env2.terminal,
|
|
341168
341243
|
", v",
|
|
341169
|
-
"1.
|
|
341244
|
+
"1.44.0"
|
|
341170
341245
|
]
|
|
341171
341246
|
}, undefined, true, undefined, this)
|
|
341172
341247
|
]
|
|
@@ -341272,7 +341347,7 @@ ${sanitizedDescription}
|
|
|
341272
341347
|
` + `**Environment Info**
|
|
341273
341348
|
` + `- Platform: ${env2.platform}
|
|
341274
341349
|
` + `- Terminal: ${env2.terminal}
|
|
341275
|
-
` + `- Version: ${"1.
|
|
341350
|
+
` + `- Version: ${"1.44.0"}
|
|
341276
341351
|
` + `- Feedback ID: ${feedbackId}
|
|
341277
341352
|
` + `
|
|
341278
341353
|
**Errors**
|
|
@@ -344383,7 +344458,7 @@ function buildPrimarySection() {
|
|
|
344383
344458
|
}, undefined, false, undefined, this);
|
|
344384
344459
|
return [{
|
|
344385
344460
|
label: "Version",
|
|
344386
|
-
value: "1.
|
|
344461
|
+
value: "1.44.0"
|
|
344387
344462
|
}, {
|
|
344388
344463
|
label: "Session name",
|
|
344389
344464
|
value: nameValue
|
|
@@ -346630,6 +346705,31 @@ function Config({
|
|
|
346630
346705
|
});
|
|
346631
346706
|
}
|
|
346632
346707
|
}] : [],
|
|
346708
|
+
{
|
|
346709
|
+
id: "verifierAskBeforeGates",
|
|
346710
|
+
label: "Ask before running verification gates",
|
|
346711
|
+
value: settingsData?.verifier?.askBeforeGates ?? false,
|
|
346712
|
+
type: "boolean",
|
|
346713
|
+
onChange(askBeforeGates) {
|
|
346714
|
+
updateSettingsForSource("userSettings", {
|
|
346715
|
+
verifier: {
|
|
346716
|
+
...settingsData?.verifier,
|
|
346717
|
+
askBeforeGates
|
|
346718
|
+
}
|
|
346719
|
+
});
|
|
346720
|
+
setSettingsData((prev) => ({
|
|
346721
|
+
...prev,
|
|
346722
|
+
verifier: {
|
|
346723
|
+
...prev?.verifier,
|
|
346724
|
+
askBeforeGates
|
|
346725
|
+
}
|
|
346726
|
+
}));
|
|
346727
|
+
logEvent("tengu_config_changed", {
|
|
346728
|
+
setting: "verifierAskBeforeGates",
|
|
346729
|
+
value: String(askBeforeGates)
|
|
346730
|
+
});
|
|
346731
|
+
}
|
|
346732
|
+
},
|
|
346633
346733
|
{
|
|
346634
346734
|
id: "verbose",
|
|
346635
346735
|
label: "Verbose output",
|
|
@@ -347144,6 +347244,9 @@ function Config({
|
|
|
347144
347244
|
if (globalConfig2.autoInstallIdeExtension !== initialConfig.current.autoInstallIdeExtension) {
|
|
347145
347245
|
formattedChanges.push(`${globalConfig2.autoInstallIdeExtension ? "Enabled" : "Disabled"} auto-install IDE extension`);
|
|
347146
347246
|
}
|
|
347247
|
+
if (settingsData?.verifier?.askBeforeGates !== initialSettingsData.current?.verifier?.askBeforeGates) {
|
|
347248
|
+
formattedChanges.push(`${settingsData?.verifier?.askBeforeGates ? "Enabled" : "Disabled"} ask before running verification gates`);
|
|
347249
|
+
}
|
|
347147
347250
|
if (globalConfig2.autoCompactEnabled !== initialConfig.current.autoCompactEnabled) {
|
|
347148
347251
|
formattedChanges.push(`${globalConfig2.autoCompactEnabled ? "Enabled" : "Disabled"} auto-compact`);
|
|
347149
347252
|
}
|
|
@@ -347201,6 +347304,7 @@ function Config({
|
|
|
347201
347304
|
autoUpdatesChannel: iu?.autoUpdatesChannel,
|
|
347202
347305
|
minimumVersion: iu?.minimumVersion,
|
|
347203
347306
|
language: iu?.language,
|
|
347307
|
+
verifier: iu?.verifier,
|
|
347204
347308
|
...{},
|
|
347205
347309
|
syntaxHighlightingDisabled: iu?.syntaxHighlightingDisabled,
|
|
347206
347310
|
permissions: iu?.permissions === undefined ? undefined : {
|
|
@@ -347684,7 +347788,7 @@ function Config({
|
|
|
347684
347788
|
}
|
|
347685
347789
|
}, undefined, false, undefined, this)
|
|
347686
347790
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
|
|
347687
|
-
currentVersion: "1.
|
|
347791
|
+
currentVersion: "1.44.0",
|
|
347688
347792
|
onChoice: (choice) => {
|
|
347689
347793
|
setShowSubmenu(null);
|
|
347690
347794
|
setTabsHidden(false);
|
|
@@ -347696,7 +347800,7 @@ function Config({
|
|
|
347696
347800
|
autoUpdatesChannel: "stable"
|
|
347697
347801
|
};
|
|
347698
347802
|
if (choice === "stay") {
|
|
347699
|
-
newSettings.minimumVersion = "1.
|
|
347803
|
+
newSettings.minimumVersion = "1.44.0";
|
|
347700
347804
|
}
|
|
347701
347805
|
updateSettingsForSource("userSettings", newSettings);
|
|
347702
347806
|
setSettingsData((prev_27) => ({
|
|
@@ -355766,7 +355870,7 @@ function HelpV2(t0) {
|
|
|
355766
355870
|
let t6;
|
|
355767
355871
|
if ($3[31] !== tabs) {
|
|
355768
355872
|
t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
|
|
355769
|
-
title: `UR v${"1.
|
|
355873
|
+
title: `UR v${"1.44.0"}`,
|
|
355770
355874
|
color: "professionalBlue",
|
|
355771
355875
|
defaultTab: "general",
|
|
355772
355876
|
children: tabs
|
|
@@ -356512,7 +356616,7 @@ function buildToolUseContext(tools, readFileStateCache) {
|
|
|
356512
356616
|
async function handleInitialize(options2) {
|
|
356513
356617
|
return {
|
|
356514
356618
|
name: "UR",
|
|
356515
|
-
version: "1.
|
|
356619
|
+
version: "1.44.0",
|
|
356516
356620
|
protocolVersion: "0.1.0",
|
|
356517
356621
|
workspaceRoot: options2.cwd,
|
|
356518
356622
|
capabilities: {
|
|
@@ -376654,7 +376758,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
376654
376758
|
return [];
|
|
376655
376759
|
}
|
|
376656
376760
|
}
|
|
376657
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.
|
|
376761
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.44.0") {
|
|
376658
376762
|
if (process.env.USER_TYPE === "ant") {
|
|
376659
376763
|
const changelog = "";
|
|
376660
376764
|
if (changelog) {
|
|
@@ -376681,7 +376785,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.43.5")
|
|
|
376681
376785
|
releaseNotes
|
|
376682
376786
|
};
|
|
376683
376787
|
}
|
|
376684
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.
|
|
376788
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.44.0") {
|
|
376685
376789
|
if (process.env.USER_TYPE === "ant") {
|
|
376686
376790
|
const changelog = "";
|
|
376687
376791
|
if (changelog) {
|
|
@@ -377860,7 +377964,7 @@ function getRecentActivitySync() {
|
|
|
377860
377964
|
return cachedActivity;
|
|
377861
377965
|
}
|
|
377862
377966
|
function getLogoDisplayData() {
|
|
377863
|
-
const version2 = process.env.DEMO_VERSION ?? "1.
|
|
377967
|
+
const version2 = process.env.DEMO_VERSION ?? "1.44.0";
|
|
377864
377968
|
const serverUrl = getDirectConnectServerUrl();
|
|
377865
377969
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
377866
377970
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -378649,7 +378753,7 @@ function LogoV2() {
|
|
|
378649
378753
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
378650
378754
|
t2 = () => {
|
|
378651
378755
|
const currentConfig2 = getGlobalConfig();
|
|
378652
|
-
if (currentConfig2.lastReleaseNotesSeen === "1.
|
|
378756
|
+
if (currentConfig2.lastReleaseNotesSeen === "1.44.0") {
|
|
378653
378757
|
return;
|
|
378654
378758
|
}
|
|
378655
378759
|
saveGlobalConfig(_temp326);
|
|
@@ -379334,12 +379438,12 @@ function LogoV2() {
|
|
|
379334
379438
|
return t41;
|
|
379335
379439
|
}
|
|
379336
379440
|
function _temp326(current) {
|
|
379337
|
-
if (current.lastReleaseNotesSeen === "1.
|
|
379441
|
+
if (current.lastReleaseNotesSeen === "1.44.0") {
|
|
379338
379442
|
return current;
|
|
379339
379443
|
}
|
|
379340
379444
|
return {
|
|
379341
379445
|
...current,
|
|
379342
|
-
lastReleaseNotesSeen: "1.
|
|
379446
|
+
lastReleaseNotesSeen: "1.44.0"
|
|
379343
379447
|
};
|
|
379344
379448
|
}
|
|
379345
379449
|
function _temp243(s_0) {
|
|
@@ -411220,7 +411324,7 @@ var init_code_index2 = __esm(() => {
|
|
|
411220
411324
|
|
|
411221
411325
|
// node_modules/typescript/lib/typescript.js
|
|
411222
411326
|
var require_typescript2 = __commonJS((exports, module) => {
|
|
411223
|
-
var __dirname = "/
|
|
411327
|
+
var __dirname = "/Users/maith/Desktop/ur3-dev/UR-1.43.3/node_modules/typescript/lib", __filename = "/Users/maith/Desktop/ur3-dev/UR-1.43.3/node_modules/typescript/lib/typescript.js";
|
|
411224
411328
|
/*! *****************************************************************************
|
|
411225
411329
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
411226
411330
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
@@ -596754,7 +596858,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
596754
596858
|
smapsRollup,
|
|
596755
596859
|
platform: process.platform,
|
|
596756
596860
|
nodeVersion: process.version,
|
|
596757
|
-
ccVersion: "1.
|
|
596861
|
+
ccVersion: "1.44.0"
|
|
596758
596862
|
};
|
|
596759
596863
|
}
|
|
596760
596864
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -597340,7 +597444,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
597340
597444
|
var call137 = async () => {
|
|
597341
597445
|
return {
|
|
597342
597446
|
type: "text",
|
|
597343
|
-
value: "1.
|
|
597447
|
+
value: "1.44.0"
|
|
597344
597448
|
};
|
|
597345
597449
|
}, version2, version_default;
|
|
597346
597450
|
var init_version = __esm(() => {
|
|
@@ -607433,7 +607537,7 @@ function generateHtmlReport(data, insights) {
|
|
|
607433
607537
|
</html>`;
|
|
607434
607538
|
}
|
|
607435
607539
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
607436
|
-
const version3 = typeof MACRO !== "undefined" ? "1.
|
|
607540
|
+
const version3 = typeof MACRO !== "undefined" ? "1.44.0" : "unknown";
|
|
607437
607541
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
607438
607542
|
const facets_summary = {
|
|
607439
607543
|
total: facets.size,
|
|
@@ -611713,7 +611817,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
611713
611817
|
init_settings2();
|
|
611714
611818
|
init_slowOperations();
|
|
611715
611819
|
init_uuid();
|
|
611716
|
-
VERSION5 = typeof MACRO !== "undefined" ? "1.
|
|
611820
|
+
VERSION5 = typeof MACRO !== "undefined" ? "1.44.0" : "unknown";
|
|
611717
611821
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
611718
611822
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
611719
611823
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -612918,7 +613022,7 @@ var init_filesystem = __esm(() => {
|
|
|
612918
613022
|
});
|
|
612919
613023
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
612920
613024
|
const nonce = randomBytes18(16).toString("hex");
|
|
612921
|
-
return join202(getURTempDir(), "bundled-skills", "1.
|
|
613025
|
+
return join202(getURTempDir(), "bundled-skills", "1.44.0", nonce);
|
|
612922
613026
|
});
|
|
612923
613027
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
612924
613028
|
});
|
|
@@ -618345,7 +618449,9 @@ function getSimpleDoingTasksSection() {
|
|
|
618345
618449
|
`Default to writing no comments. Only add one when the WHY is non-obvious: a hidden constraint, a subtle invariant, a workaround for a specific bug, behavior that would surprise a reader. If removing the comment wouldn't confuse a future reader, don't write it.`,
|
|
618346
618450
|
`Don't explain WHAT the code does, since well-named identifiers already do that. Don't reference the current task, fix, or callers ("used by X", "added for the Y flow", "handles the case from issue #123"), since those belong in the PR description and rot as the codebase evolves.`,
|
|
618347
618451
|
`Don't remove existing comments unless you're removing the code they describe or you know they're wrong. A comment that looks pointless to you may encode a constraint or a lesson from a past bug that isn't visible in the current diff.`,
|
|
618348
|
-
`
|
|
618452
|
+
`When you finish the substantive work of a task, do not automatically run the full project test suite. Instead, use AskUserQuestion to ask the user whether they want you to run the verification commands. Only run them if the user confirms. If they decline, report completion based on the verification you have already performed.`,
|
|
618453
|
+
`Before reporting a task complete, verify it actually works: run the test, execute the script, check the output. Minimum complexity means no gold-plating, not skipping the finish line. If you can't verify (no test exists, can't run the code), say so explicitly rather than claiming success.`,
|
|
618454
|
+
`When the task is fully complete and you have delivered your final response, stop. Do not continue with additional thinking turns, empty responses, or further tool calls unless the user asks for something new.`
|
|
618349
618455
|
];
|
|
618350
618456
|
const userHelpSubitems = [
|
|
618351
618457
|
`/help: Get help with using UR`,
|
|
@@ -619207,7 +619313,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
619207
619313
|
}
|
|
619208
619314
|
function computeFingerprintFromMessages(messages) {
|
|
619209
619315
|
const firstMessageText = extractFirstMessageText(messages);
|
|
619210
|
-
return computeFingerprint(firstMessageText, "1.
|
|
619316
|
+
return computeFingerprint(firstMessageText, "1.44.0");
|
|
619211
619317
|
}
|
|
619212
619318
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
619213
619319
|
var init_fingerprint = () => {};
|
|
@@ -621081,7 +621187,7 @@ async function sideQuery(opts) {
|
|
|
621081
621187
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
621082
621188
|
}
|
|
621083
621189
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
621084
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.
|
|
621190
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.44.0");
|
|
621085
621191
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
621086
621192
|
const systemBlocks = [
|
|
621087
621193
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -625818,7 +625924,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
625818
625924
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
625819
625925
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
625820
625926
|
betas: getSdkBetas(),
|
|
625821
|
-
ur_version: "1.
|
|
625927
|
+
ur_version: "1.44.0",
|
|
625822
625928
|
output_style: outputStyle2,
|
|
625823
625929
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
625824
625930
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -640446,7 +640552,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
640446
640552
|
function getSemverPart(version3) {
|
|
640447
640553
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
640448
640554
|
}
|
|
640449
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.
|
|
640555
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.44.0") {
|
|
640450
640556
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
|
|
640451
640557
|
if (!updatedVersion) {
|
|
640452
640558
|
return null;
|
|
@@ -640495,7 +640601,7 @@ function AutoUpdater({
|
|
|
640495
640601
|
return;
|
|
640496
640602
|
}
|
|
640497
640603
|
if (false) {}
|
|
640498
|
-
const currentVersion = "1.
|
|
640604
|
+
const currentVersion = "1.44.0";
|
|
640499
640605
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
640500
640606
|
let latestVersion = await getLatestVersion(channel);
|
|
640501
640607
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -640724,12 +640830,12 @@ function NativeAutoUpdater({
|
|
|
640724
640830
|
logEvent("tengu_native_auto_updater_start", {});
|
|
640725
640831
|
try {
|
|
640726
640832
|
const maxVersion = await getMaxVersion();
|
|
640727
|
-
if (maxVersion && gt("1.
|
|
640833
|
+
if (maxVersion && gt("1.44.0", maxVersion)) {
|
|
640728
640834
|
const msg = await getMaxVersionMessage();
|
|
640729
640835
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
640730
640836
|
}
|
|
640731
640837
|
const result = await installLatest(channel);
|
|
640732
|
-
const currentVersion = "1.
|
|
640838
|
+
const currentVersion = "1.44.0";
|
|
640733
640839
|
const latencyMs = Date.now() - startTime;
|
|
640734
640840
|
if (result.lockFailed) {
|
|
640735
640841
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -640866,17 +640972,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
640866
640972
|
const maxVersion = await getMaxVersion();
|
|
640867
640973
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
640868
640974
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
640869
|
-
if (gte("1.
|
|
640870
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.
|
|
640975
|
+
if (gte("1.44.0", maxVersion)) {
|
|
640976
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.44.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
640871
640977
|
setUpdateAvailable(false);
|
|
640872
640978
|
return;
|
|
640873
640979
|
}
|
|
640874
640980
|
latest = maxVersion;
|
|
640875
640981
|
}
|
|
640876
|
-
const hasUpdate = latest && !gte("1.
|
|
640982
|
+
const hasUpdate = latest && !gte("1.44.0", latest) && !shouldSkipVersion(latest);
|
|
640877
640983
|
setUpdateAvailable(!!hasUpdate);
|
|
640878
640984
|
if (hasUpdate) {
|
|
640879
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.
|
|
640985
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.44.0"} -> ${latest}`);
|
|
640880
640986
|
}
|
|
640881
640987
|
};
|
|
640882
640988
|
$3[0] = t1;
|
|
@@ -640910,7 +641016,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
640910
641016
|
wrap: "truncate",
|
|
640911
641017
|
children: [
|
|
640912
641018
|
"currentVersion: ",
|
|
640913
|
-
"1.
|
|
641019
|
+
"1.44.0"
|
|
640914
641020
|
]
|
|
640915
641021
|
}, undefined, true, undefined, this);
|
|
640916
641022
|
$3[3] = verbose;
|
|
@@ -653362,7 +653468,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
653362
653468
|
project_dir: getOriginalCwd(),
|
|
653363
653469
|
added_dirs: addedDirs
|
|
653364
653470
|
},
|
|
653365
|
-
version: "1.
|
|
653471
|
+
version: "1.44.0",
|
|
653366
653472
|
output_style: {
|
|
653367
653473
|
name: outputStyleName
|
|
653368
653474
|
},
|
|
@@ -653445,7 +653551,7 @@ function StatusLineInner({
|
|
|
653445
653551
|
const taskValues = Object.values(tasks2);
|
|
653446
653552
|
const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
|
|
653447
653553
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
653448
|
-
version: "1.
|
|
653554
|
+
version: "1.44.0",
|
|
653449
653555
|
providerLabel: providerRuntime.providerLabel,
|
|
653450
653556
|
authMode: providerRuntime.authLabel,
|
|
653451
653557
|
model: providerRuntime.model ?? renderModelName(mainLoopModel),
|
|
@@ -664933,7 +665039,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
664933
665039
|
} catch {}
|
|
664934
665040
|
const data = {
|
|
664935
665041
|
trigger: trigger2,
|
|
664936
|
-
version: "1.
|
|
665042
|
+
version: "1.44.0",
|
|
664937
665043
|
platform: process.platform,
|
|
664938
665044
|
transcript,
|
|
664939
665045
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -676818,7 +676924,7 @@ function WelcomeV2() {
|
|
|
676818
676924
|
dimColor: true,
|
|
676819
676925
|
children: [
|
|
676820
676926
|
"v",
|
|
676821
|
-
"1.
|
|
676927
|
+
"1.44.0"
|
|
676822
676928
|
]
|
|
676823
676929
|
}, undefined, true, undefined, this)
|
|
676824
676930
|
]
|
|
@@ -678078,7 +678184,7 @@ function completeOnboarding() {
|
|
|
678078
678184
|
saveGlobalConfig((current) => ({
|
|
678079
678185
|
...current,
|
|
678080
678186
|
hasCompletedOnboarding: true,
|
|
678081
|
-
lastOnboardingVersion: "1.
|
|
678187
|
+
lastOnboardingVersion: "1.44.0"
|
|
678082
678188
|
}));
|
|
678083
678189
|
}
|
|
678084
678190
|
function showDialog(root2, renderer) {
|
|
@@ -683115,7 +683221,7 @@ function appendToLog(path24, message) {
|
|
|
683115
683221
|
cwd: getFsImplementation().cwd(),
|
|
683116
683222
|
userType: process.env.USER_TYPE,
|
|
683117
683223
|
sessionId: getSessionId(),
|
|
683118
|
-
version: "1.
|
|
683224
|
+
version: "1.44.0"
|
|
683119
683225
|
};
|
|
683120
683226
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
683121
683227
|
}
|
|
@@ -687209,8 +687315,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
687209
687315
|
}
|
|
687210
687316
|
async function checkEnvLessBridgeMinVersion() {
|
|
687211
687317
|
const cfg = await getEnvLessBridgeConfig();
|
|
687212
|
-
if (cfg.min_version && lt("1.
|
|
687213
|
-
return `Your version of UR (${"1.
|
|
687318
|
+
if (cfg.min_version && lt("1.44.0", cfg.min_version)) {
|
|
687319
|
+
return `Your version of UR (${"1.44.0"}) is too old for Remote Control.
|
|
687214
687320
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
687215
687321
|
}
|
|
687216
687322
|
return null;
|
|
@@ -687684,7 +687790,7 @@ async function initBridgeCore(params) {
|
|
|
687684
687790
|
const rawApi = createBridgeApiClient({
|
|
687685
687791
|
baseUrl,
|
|
687686
687792
|
getAccessToken,
|
|
687687
|
-
runnerVersion: "1.
|
|
687793
|
+
runnerVersion: "1.44.0",
|
|
687688
687794
|
onDebug: logForDebugging,
|
|
687689
687795
|
onAuth401,
|
|
687690
687796
|
getTrustedDeviceToken
|
|
@@ -693366,7 +693472,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
|
|
|
693366
693472
|
setCwd(cwd3);
|
|
693367
693473
|
const server2 = new Server({
|
|
693368
693474
|
name: "ur/tengu",
|
|
693369
|
-
version: "1.
|
|
693475
|
+
version: "1.44.0"
|
|
693370
693476
|
}, {
|
|
693371
693477
|
capabilities: {
|
|
693372
693478
|
tools: {}
|
|
@@ -695408,7 +695514,7 @@ async function update() {
|
|
|
695408
695514
|
logEvent("tengu_update_check", {});
|
|
695409
695515
|
const diagnostic = await getDoctorDiagnostic();
|
|
695410
695516
|
const result = await checkUpgradeStatus({
|
|
695411
|
-
currentVersion: "1.
|
|
695517
|
+
currentVersion: "1.44.0",
|
|
695412
695518
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
695413
695519
|
installationType: diagnostic.installationType,
|
|
695414
695520
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -696654,7 +696760,7 @@ ${customInstructions}` : customInstructions;
|
|
|
696654
696760
|
}
|
|
696655
696761
|
}
|
|
696656
696762
|
logForDiagnosticsNoPII("info", "started", {
|
|
696657
|
-
version: "1.
|
|
696763
|
+
version: "1.44.0",
|
|
696658
696764
|
is_native_binary: isInBundledMode()
|
|
696659
696765
|
});
|
|
696660
696766
|
registerCleanup(async () => {
|
|
@@ -697440,7 +697546,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
697440
697546
|
pendingHookMessages
|
|
697441
697547
|
}, renderAndRun);
|
|
697442
697548
|
}
|
|
697443
|
-
}).version("1.
|
|
697549
|
+
}).version("1.44.0 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
697444
697550
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
697445
697551
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
697446
697552
|
if (canUserConfigureAdvisor()) {
|
|
@@ -698355,7 +698461,7 @@ if (false) {}
|
|
|
698355
698461
|
async function main2() {
|
|
698356
698462
|
const args = process.argv.slice(2);
|
|
698357
698463
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
698358
|
-
console.log(`${"1.
|
|
698464
|
+
console.log(`${"1.44.0"} (UR-Nexus)`);
|
|
698359
698465
|
return;
|
|
698360
698466
|
}
|
|
698361
698467
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|
package/documentation/index.html
CHANGED
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
<main id="content" class="content">
|
|
45
45
|
<header class="topbar">
|
|
46
46
|
<div>
|
|
47
|
-
<p class="eyebrow">Version 1.
|
|
47
|
+
<p class="eyebrow">Version 1.44.0</p>
|
|
48
48
|
<h1>UR-Nexus Documentation</h1>
|
|
49
49
|
<p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
|
|
50
50
|
</div>
|
|
@@ -477,6 +477,7 @@ UR_VERIFIER_MODE=loose
|
|
|
477
477
|
UR_VERIFIER_MODE=off
|
|
478
478
|
UR_VERIFIER_AUTO_SUBAGENT=1</code></pre>
|
|
479
479
|
<p>L1 gates catch false done claims and loops. <code>/verify</code> manually runs deeper verification.</p>
|
|
480
|
+
<p>Interactive users can set <code>"verifier": { "askBeforeGates": true }</code> in <code>.ur/settings.json</code> (or via <code>ur config set verifier.askBeforeGates true</code>) to have UR ask before running project test/typecheck/lint gates after a task, instead of running them automatically. Default is <code>false</code> (auto-run gates).</p>
|
|
480
481
|
</article>
|
|
481
482
|
<article>
|
|
482
483
|
<h3>MCP and plugins</h3>
|
|
@@ -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.44.0",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED