ur-agent 1.41.0 → 1.42.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 +15 -0
- package/dist/cli.js +104 -86
- package/docs/CONFIGURATION.md +9 -0
- package/documentation/index.html +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.42.0
|
|
4
|
+
|
|
5
|
+
- Project safety policy no longer hard-blocks commands. Risky or deny-matched
|
|
6
|
+
commands (package installs, destructive git operations, secret access,
|
|
7
|
+
sandbox-required commands when the sandbox is unavailable) now surface as
|
|
8
|
+
approval prompts instead of `Blocked by project safety policy` errors; the
|
|
9
|
+
user decides. `ur safety`/`ur sandbox` evaluation output is unchanged.
|
|
10
|
+
|
|
11
|
+
## 1.41.1
|
|
12
|
+
|
|
13
|
+
- Harden provider tests against stored API keys in the local secure storage.
|
|
14
|
+
- Revert sandbox default to disabled; expose `sandbox.enabled`,
|
|
15
|
+
`sandbox.failIfUnavailable`, and `sandbox.allowUnsandboxedCommands` through
|
|
16
|
+
the `/config` tool so users can toggle the sandbox on/off explicitly.
|
|
17
|
+
|
|
3
18
|
## 1.41.0
|
|
4
19
|
|
|
5
20
|
- Persist the model chosen through the interactive `/model` picker to settings
|
package/dist/cli.js
CHANGED
|
@@ -71146,7 +71146,7 @@ var init_auth = __esm(() => {
|
|
|
71146
71146
|
|
|
71147
71147
|
// src/utils/userAgent.ts
|
|
71148
71148
|
function getURCodeUserAgent() {
|
|
71149
|
-
return `ur/${"1.
|
|
71149
|
+
return `ur/${"1.42.0"}`;
|
|
71150
71150
|
}
|
|
71151
71151
|
|
|
71152
71152
|
// src/utils/workloadContext.ts
|
|
@@ -71168,7 +71168,7 @@ function getUserAgent() {
|
|
|
71168
71168
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
71169
71169
|
const workload = getWorkload();
|
|
71170
71170
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
71171
|
-
return `ur-cli/${"1.
|
|
71171
|
+
return `ur-cli/${"1.42.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
71172
71172
|
}
|
|
71173
71173
|
function getMCPUserAgent() {
|
|
71174
71174
|
const parts = [];
|
|
@@ -71182,7 +71182,7 @@ function getMCPUserAgent() {
|
|
|
71182
71182
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
71183
71183
|
}
|
|
71184
71184
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
71185
|
-
return `ur/${"1.
|
|
71185
|
+
return `ur/${"1.42.0"}${suffix}`;
|
|
71186
71186
|
}
|
|
71187
71187
|
function getWebFetchUserAgent() {
|
|
71188
71188
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -71320,7 +71320,7 @@ var init_user = __esm(() => {
|
|
|
71320
71320
|
deviceId,
|
|
71321
71321
|
sessionId: getSessionId(),
|
|
71322
71322
|
email: getEmail(),
|
|
71323
|
-
appVersion: "1.
|
|
71323
|
+
appVersion: "1.42.0",
|
|
71324
71324
|
platform: getHostPlatformForAnalytics(),
|
|
71325
71325
|
organizationUuid,
|
|
71326
71326
|
accountUuid,
|
|
@@ -77837,7 +77837,7 @@ var init_metadata = __esm(() => {
|
|
|
77837
77837
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
77838
77838
|
WHITESPACE_REGEX = /\s+/;
|
|
77839
77839
|
getVersionBase = memoize_default(() => {
|
|
77840
|
-
const match = "1.
|
|
77840
|
+
const match = "1.42.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
77841
77841
|
return match ? match[0] : undefined;
|
|
77842
77842
|
});
|
|
77843
77843
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -77877,7 +77877,7 @@ var init_metadata = __esm(() => {
|
|
|
77877
77877
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
77878
77878
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
77879
77879
|
isURAiAuth: isURAISubscriber(),
|
|
77880
|
-
version: "1.
|
|
77880
|
+
version: "1.42.0",
|
|
77881
77881
|
versionBase: getVersionBase(),
|
|
77882
77882
|
buildTime: "",
|
|
77883
77883
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -78547,7 +78547,7 @@ function initialize1PEventLogging() {
|
|
|
78547
78547
|
const platform2 = getPlatform();
|
|
78548
78548
|
const attributes = {
|
|
78549
78549
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
78550
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.
|
|
78550
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.42.0"
|
|
78551
78551
|
};
|
|
78552
78552
|
if (platform2 === "wsl") {
|
|
78553
78553
|
const wslVersion = getWslVersion();
|
|
@@ -78574,7 +78574,7 @@ function initialize1PEventLogging() {
|
|
|
78574
78574
|
})
|
|
78575
78575
|
]
|
|
78576
78576
|
});
|
|
78577
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.
|
|
78577
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.42.0");
|
|
78578
78578
|
}
|
|
78579
78579
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
78580
78580
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -83873,7 +83873,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
83873
83873
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
83874
83874
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
83875
83875
|
}
|
|
83876
|
-
var urVersion = "1.
|
|
83876
|
+
var urVersion = "1.42.0", coverage, priorityRoadmap;
|
|
83877
83877
|
var init_trends = __esm(() => {
|
|
83878
83878
|
coverage = [
|
|
83879
83879
|
{
|
|
@@ -85868,7 +85868,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
85868
85868
|
if (!isAttributionHeaderEnabled()) {
|
|
85869
85869
|
return "";
|
|
85870
85870
|
}
|
|
85871
|
-
const version2 = `${"1.
|
|
85871
|
+
const version2 = `${"1.42.0"}.${fingerprint}`;
|
|
85872
85872
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
85873
85873
|
const cch = "";
|
|
85874
85874
|
const workload = getWorkload();
|
|
@@ -127181,10 +127181,10 @@ async function detectWorktreeMainRepoPath(cwd2) {
|
|
|
127181
127181
|
function getSandboxEnabledSetting() {
|
|
127182
127182
|
try {
|
|
127183
127183
|
const settings = getSettings_DEPRECATED();
|
|
127184
|
-
return settings?.sandbox?.enabled ??
|
|
127184
|
+
return settings?.sandbox?.enabled ?? false;
|
|
127185
127185
|
} catch (error40) {
|
|
127186
127186
|
logForDebugging(`Failed to get settings for sandbox check: ${error40}`);
|
|
127187
|
-
return
|
|
127187
|
+
return false;
|
|
127188
127188
|
}
|
|
127189
127189
|
}
|
|
127190
127190
|
function isAutoAllowBashIfSandboxedEnabled() {
|
|
@@ -193771,7 +193771,7 @@ function getTelemetryAttributes() {
|
|
|
193771
193771
|
attributes["session.id"] = sessionId;
|
|
193772
193772
|
}
|
|
193773
193773
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
193774
|
-
attributes["app.version"] = "1.
|
|
193774
|
+
attributes["app.version"] = "1.42.0";
|
|
193775
193775
|
}
|
|
193776
193776
|
const oauthAccount = getOauthAccountInfo();
|
|
193777
193777
|
if (oauthAccount) {
|
|
@@ -229157,7 +229157,7 @@ function getInstallationEnv() {
|
|
|
229157
229157
|
return;
|
|
229158
229158
|
}
|
|
229159
229159
|
function getURCodeVersion() {
|
|
229160
|
-
return "1.
|
|
229160
|
+
return "1.42.0";
|
|
229161
229161
|
}
|
|
229162
229162
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
229163
229163
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -231996,7 +231996,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
231996
231996
|
const client2 = new Client({
|
|
231997
231997
|
name: "ur",
|
|
231998
231998
|
title: "UR",
|
|
231999
|
-
version: "1.
|
|
231999
|
+
version: "1.42.0",
|
|
232000
232000
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
232001
232001
|
websiteUrl: PRODUCT_URL
|
|
232002
232002
|
}, {
|
|
@@ -232350,7 +232350,7 @@ var init_client5 = __esm(() => {
|
|
|
232350
232350
|
const client2 = new Client({
|
|
232351
232351
|
name: "ur",
|
|
232352
232352
|
title: "UR",
|
|
232353
|
-
version: "1.
|
|
232353
|
+
version: "1.42.0",
|
|
232354
232354
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
232355
232355
|
websiteUrl: PRODUCT_URL
|
|
232356
232356
|
}, {
|
|
@@ -242164,9 +242164,9 @@ async function assertMinVersion() {
|
|
|
242164
242164
|
if (false) {}
|
|
242165
242165
|
try {
|
|
242166
242166
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
242167
|
-
if (versionConfig.minVersion && lt("1.
|
|
242167
|
+
if (versionConfig.minVersion && lt("1.42.0", versionConfig.minVersion)) {
|
|
242168
242168
|
console.error(`
|
|
242169
|
-
It looks like your version of UR (${"1.
|
|
242169
|
+
It looks like your version of UR (${"1.42.0"}) needs an update.
|
|
242170
242170
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
242171
242171
|
|
|
242172
242172
|
To update, please run:
|
|
@@ -242382,7 +242382,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
242382
242382
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
242383
242383
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
242384
242384
|
pid: process.pid,
|
|
242385
|
-
currentVersion: "1.
|
|
242385
|
+
currentVersion: "1.42.0"
|
|
242386
242386
|
});
|
|
242387
242387
|
return "in_progress";
|
|
242388
242388
|
}
|
|
@@ -242391,7 +242391,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
242391
242391
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
242392
242392
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
242393
242393
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
242394
|
-
currentVersion: "1.
|
|
242394
|
+
currentVersion: "1.42.0"
|
|
242395
242395
|
});
|
|
242396
242396
|
console.error(`
|
|
242397
242397
|
Error: Windows NPM detected in WSL
|
|
@@ -242926,7 +242926,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
242926
242926
|
}
|
|
242927
242927
|
async function getDoctorDiagnostic() {
|
|
242928
242928
|
const installationType = await getCurrentInstallationType();
|
|
242929
|
-
const version2 = typeof MACRO !== "undefined" ? "1.
|
|
242929
|
+
const version2 = typeof MACRO !== "undefined" ? "1.42.0" : "unknown";
|
|
242930
242930
|
const installationPath = await getInstallationPath();
|
|
242931
242931
|
const invokedBinary = getInvokedBinary();
|
|
242932
242932
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -243861,8 +243861,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
243861
243861
|
const maxVersion = await getMaxVersion();
|
|
243862
243862
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
243863
243863
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
243864
|
-
if (gte("1.
|
|
243865
|
-
logForDebugging(`Native installer: current version ${"1.
|
|
243864
|
+
if (gte("1.42.0", maxVersion)) {
|
|
243865
|
+
logForDebugging(`Native installer: current version ${"1.42.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
243866
243866
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
243867
243867
|
latency_ms: Date.now() - startTime,
|
|
243868
243868
|
max_version: maxVersion,
|
|
@@ -243873,7 +243873,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
243873
243873
|
version2 = maxVersion;
|
|
243874
243874
|
}
|
|
243875
243875
|
}
|
|
243876
|
-
if (!forceReinstall && version2 === "1.
|
|
243876
|
+
if (!forceReinstall && version2 === "1.42.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
243877
243877
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
243878
243878
|
logEvent("tengu_native_update_complete", {
|
|
243879
243879
|
latency_ms: Date.now() - startTime,
|
|
@@ -301849,6 +301849,24 @@ var init_supportedSettings = __esm(() => {
|
|
|
301849
301849
|
description: "Enable extended thinking (false to disable)",
|
|
301850
301850
|
appStateKey: "thinkingEnabled"
|
|
301851
301851
|
},
|
|
301852
|
+
"sandbox.enabled": {
|
|
301853
|
+
source: "settings",
|
|
301854
|
+
type: "boolean",
|
|
301855
|
+
description: "Enable the OS-level sandbox for Bash/File tool commands",
|
|
301856
|
+
path: ["sandbox", "enabled"]
|
|
301857
|
+
},
|
|
301858
|
+
"sandbox.failIfUnavailable": {
|
|
301859
|
+
source: "settings",
|
|
301860
|
+
type: "boolean",
|
|
301861
|
+
description: "Refuse to start when sandbox.enabled is true but the sandbox cannot start",
|
|
301862
|
+
path: ["sandbox", "failIfUnavailable"]
|
|
301863
|
+
},
|
|
301864
|
+
"sandbox.allowUnsandboxedCommands": {
|
|
301865
|
+
source: "settings",
|
|
301866
|
+
type: "boolean",
|
|
301867
|
+
description: "Allow commands to run unsandboxed when they explicitly request it",
|
|
301868
|
+
path: ["sandbox", "allowUnsandboxedCommands"]
|
|
301869
|
+
},
|
|
301852
301870
|
"permissions.defaultMode": {
|
|
301853
301871
|
source: "settings",
|
|
301854
301872
|
type: "string",
|
|
@@ -311247,27 +311265,27 @@ async function bashToolHasPermission(input, context3, getCommandSubcommandPrefix
|
|
|
311247
311265
|
if (safetyEvaluation.behavior === "deny") {
|
|
311248
311266
|
const reason = safetyEvaluation.reasons.join("; ");
|
|
311249
311267
|
recordShellSafetyViolation(safetyEvaluation, reason);
|
|
311268
|
+
const decisionReason2 = {
|
|
311269
|
+
type: "other",
|
|
311270
|
+
reason: `Project safety policy requires approval: ${reason}`
|
|
311271
|
+
};
|
|
311250
311272
|
return {
|
|
311251
|
-
behavior: "
|
|
311252
|
-
|
|
311253
|
-
|
|
311254
|
-
|
|
311255
|
-
reason: `Project safety policy denied command: ${reason}`
|
|
311256
|
-
}
|
|
311273
|
+
behavior: "ask",
|
|
311274
|
+
decisionReason: decisionReason2,
|
|
311275
|
+
message: createPermissionRequestMessage2(BashTool.name, decisionReason2),
|
|
311276
|
+
suggestions: []
|
|
311257
311277
|
};
|
|
311258
311278
|
}
|
|
311259
311279
|
if (safetyEvaluation.sandboxMode === "required" && !shouldUseSandbox(input)) {
|
|
311260
|
-
const
|
|
311261
|
-
|
|
311262
|
-
|
|
311263
|
-
|
|
311280
|
+
const decisionReason2 = {
|
|
311281
|
+
type: "other",
|
|
311282
|
+
reason: `Sandbox unavailable; approval required to run unsandboxed: ${safetyEvaluation.reasons.join("; ")}`
|
|
311283
|
+
};
|
|
311264
311284
|
return {
|
|
311265
|
-
behavior: "
|
|
311266
|
-
|
|
311267
|
-
|
|
311268
|
-
|
|
311269
|
-
reason: `Project safety policy requires sandbox enforcement: ${reason}; ${unavailableReason}`
|
|
311270
|
-
}
|
|
311285
|
+
behavior: "ask",
|
|
311286
|
+
decisionReason: decisionReason2,
|
|
311287
|
+
message: createPermissionRequestMessage2(BashTool.name, decisionReason2),
|
|
311288
|
+
suggestions: []
|
|
311271
311289
|
};
|
|
311272
311290
|
}
|
|
311273
311291
|
if (safetyEvaluation.behavior === "ask") {
|
|
@@ -340826,7 +340844,7 @@ function Feedback({
|
|
|
340826
340844
|
platform: env2.platform,
|
|
340827
340845
|
gitRepo: envInfo.isGit,
|
|
340828
340846
|
terminal: env2.terminal,
|
|
340829
|
-
version: "1.
|
|
340847
|
+
version: "1.42.0",
|
|
340830
340848
|
transcript: normalizeMessagesForAPI(messages),
|
|
340831
340849
|
errors: sanitizedErrors,
|
|
340832
340850
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -341018,7 +341036,7 @@ function Feedback({
|
|
|
341018
341036
|
", ",
|
|
341019
341037
|
env2.terminal,
|
|
341020
341038
|
", v",
|
|
341021
|
-
"1.
|
|
341039
|
+
"1.42.0"
|
|
341022
341040
|
]
|
|
341023
341041
|
}, undefined, true, undefined, this)
|
|
341024
341042
|
]
|
|
@@ -341124,7 +341142,7 @@ ${sanitizedDescription}
|
|
|
341124
341142
|
` + `**Environment Info**
|
|
341125
341143
|
` + `- Platform: ${env2.platform}
|
|
341126
341144
|
` + `- Terminal: ${env2.terminal}
|
|
341127
|
-
` + `- Version: ${"1.
|
|
341145
|
+
` + `- Version: ${"1.42.0"}
|
|
341128
341146
|
` + `- Feedback ID: ${feedbackId}
|
|
341129
341147
|
` + `
|
|
341130
341148
|
**Errors**
|
|
@@ -344235,7 +344253,7 @@ function buildPrimarySection() {
|
|
|
344235
344253
|
}, undefined, false, undefined, this);
|
|
344236
344254
|
return [{
|
|
344237
344255
|
label: "Version",
|
|
344238
|
-
value: "1.
|
|
344256
|
+
value: "1.42.0"
|
|
344239
344257
|
}, {
|
|
344240
344258
|
label: "Session name",
|
|
344241
344259
|
value: nameValue
|
|
@@ -347536,7 +347554,7 @@ function Config({
|
|
|
347536
347554
|
}
|
|
347537
347555
|
}, undefined, false, undefined, this)
|
|
347538
347556
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
|
|
347539
|
-
currentVersion: "1.
|
|
347557
|
+
currentVersion: "1.42.0",
|
|
347540
347558
|
onChoice: (choice) => {
|
|
347541
347559
|
setShowSubmenu(null);
|
|
347542
347560
|
setTabsHidden(false);
|
|
@@ -347548,7 +347566,7 @@ function Config({
|
|
|
347548
347566
|
autoUpdatesChannel: "stable"
|
|
347549
347567
|
};
|
|
347550
347568
|
if (choice === "stay") {
|
|
347551
|
-
newSettings.minimumVersion = "1.
|
|
347569
|
+
newSettings.minimumVersion = "1.42.0";
|
|
347552
347570
|
}
|
|
347553
347571
|
updateSettingsForSource("userSettings", newSettings);
|
|
347554
347572
|
setSettingsData((prev_27) => ({
|
|
@@ -355618,7 +355636,7 @@ function HelpV2(t0) {
|
|
|
355618
355636
|
let t6;
|
|
355619
355637
|
if ($3[31] !== tabs) {
|
|
355620
355638
|
t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
|
|
355621
|
-
title: `UR v${"1.
|
|
355639
|
+
title: `UR v${"1.42.0"}`,
|
|
355622
355640
|
color: "professionalBlue",
|
|
355623
355641
|
defaultTab: "general",
|
|
355624
355642
|
children: tabs
|
|
@@ -356364,7 +356382,7 @@ function buildToolUseContext(tools, readFileStateCache) {
|
|
|
356364
356382
|
async function handleInitialize(options2) {
|
|
356365
356383
|
return {
|
|
356366
356384
|
name: "UR",
|
|
356367
|
-
version: "1.
|
|
356385
|
+
version: "1.42.0",
|
|
356368
356386
|
protocolVersion: "0.1.0",
|
|
356369
356387
|
workspaceRoot: options2.cwd,
|
|
356370
356388
|
capabilities: {
|
|
@@ -376506,7 +376524,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
376506
376524
|
return [];
|
|
376507
376525
|
}
|
|
376508
376526
|
}
|
|
376509
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.
|
|
376527
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.42.0") {
|
|
376510
376528
|
if (process.env.USER_TYPE === "ant") {
|
|
376511
376529
|
const changelog = "";
|
|
376512
376530
|
if (changelog) {
|
|
@@ -376533,7 +376551,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.41.0")
|
|
|
376533
376551
|
releaseNotes
|
|
376534
376552
|
};
|
|
376535
376553
|
}
|
|
376536
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.
|
|
376554
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.42.0") {
|
|
376537
376555
|
if (process.env.USER_TYPE === "ant") {
|
|
376538
376556
|
const changelog = "";
|
|
376539
376557
|
if (changelog) {
|
|
@@ -377712,7 +377730,7 @@ function getRecentActivitySync() {
|
|
|
377712
377730
|
return cachedActivity;
|
|
377713
377731
|
}
|
|
377714
377732
|
function getLogoDisplayData() {
|
|
377715
|
-
const version2 = process.env.DEMO_VERSION ?? "1.
|
|
377733
|
+
const version2 = process.env.DEMO_VERSION ?? "1.42.0";
|
|
377716
377734
|
const serverUrl = getDirectConnectServerUrl();
|
|
377717
377735
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
377718
377736
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -378501,7 +378519,7 @@ function LogoV2() {
|
|
|
378501
378519
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
378502
378520
|
t2 = () => {
|
|
378503
378521
|
const currentConfig2 = getGlobalConfig();
|
|
378504
|
-
if (currentConfig2.lastReleaseNotesSeen === "1.
|
|
378522
|
+
if (currentConfig2.lastReleaseNotesSeen === "1.42.0") {
|
|
378505
378523
|
return;
|
|
378506
378524
|
}
|
|
378507
378525
|
saveGlobalConfig(_temp326);
|
|
@@ -379186,12 +379204,12 @@ function LogoV2() {
|
|
|
379186
379204
|
return t41;
|
|
379187
379205
|
}
|
|
379188
379206
|
function _temp326(current) {
|
|
379189
|
-
if (current.lastReleaseNotesSeen === "1.
|
|
379207
|
+
if (current.lastReleaseNotesSeen === "1.42.0") {
|
|
379190
379208
|
return current;
|
|
379191
379209
|
}
|
|
379192
379210
|
return {
|
|
379193
379211
|
...current,
|
|
379194
|
-
lastReleaseNotesSeen: "1.
|
|
379212
|
+
lastReleaseNotesSeen: "1.42.0"
|
|
379195
379213
|
};
|
|
379196
379214
|
}
|
|
379197
379215
|
function _temp243(s_0) {
|
|
@@ -410814,7 +410832,7 @@ var init_code_index2 = __esm(() => {
|
|
|
410814
410832
|
|
|
410815
410833
|
// node_modules/typescript/lib/typescript.js
|
|
410816
410834
|
var require_typescript2 = __commonJS((exports, module) => {
|
|
410817
|
-
var __dirname = "/
|
|
410835
|
+
var __dirname = "/sessions/friendly-inspiring-goldberg/mnt/UR-1.41.1/node_modules/typescript/lib", __filename = "/sessions/friendly-inspiring-goldberg/mnt/UR-1.41.1/node_modules/typescript/lib/typescript.js";
|
|
410818
410836
|
/*! *****************************************************************************
|
|
410819
410837
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
410820
410838
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
@@ -596348,7 +596366,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
596348
596366
|
smapsRollup,
|
|
596349
596367
|
platform: process.platform,
|
|
596350
596368
|
nodeVersion: process.version,
|
|
596351
|
-
ccVersion: "1.
|
|
596369
|
+
ccVersion: "1.42.0"
|
|
596352
596370
|
};
|
|
596353
596371
|
}
|
|
596354
596372
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -596934,7 +596952,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
596934
596952
|
var call137 = async () => {
|
|
596935
596953
|
return {
|
|
596936
596954
|
type: "text",
|
|
596937
|
-
value: "1.
|
|
596955
|
+
value: "1.42.0"
|
|
596938
596956
|
};
|
|
596939
596957
|
}, version2, version_default;
|
|
596940
596958
|
var init_version = __esm(() => {
|
|
@@ -607027,7 +607045,7 @@ function generateHtmlReport(data, insights) {
|
|
|
607027
607045
|
</html>`;
|
|
607028
607046
|
}
|
|
607029
607047
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
607030
|
-
const version3 = typeof MACRO !== "undefined" ? "1.
|
|
607048
|
+
const version3 = typeof MACRO !== "undefined" ? "1.42.0" : "unknown";
|
|
607031
607049
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
607032
607050
|
const facets_summary = {
|
|
607033
607051
|
total: facets.size,
|
|
@@ -611307,7 +611325,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
611307
611325
|
init_settings2();
|
|
611308
611326
|
init_slowOperations();
|
|
611309
611327
|
init_uuid();
|
|
611310
|
-
VERSION5 = typeof MACRO !== "undefined" ? "1.
|
|
611328
|
+
VERSION5 = typeof MACRO !== "undefined" ? "1.42.0" : "unknown";
|
|
611311
611329
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
611312
611330
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
611313
611331
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -612512,7 +612530,7 @@ var init_filesystem = __esm(() => {
|
|
|
612512
612530
|
});
|
|
612513
612531
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
612514
612532
|
const nonce = randomBytes18(16).toString("hex");
|
|
612515
|
-
return join202(getURTempDir(), "bundled-skills", "1.
|
|
612533
|
+
return join202(getURTempDir(), "bundled-skills", "1.42.0", nonce);
|
|
612516
612534
|
});
|
|
612517
612535
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
612518
612536
|
});
|
|
@@ -618801,7 +618819,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
618801
618819
|
}
|
|
618802
618820
|
function computeFingerprintFromMessages(messages) {
|
|
618803
618821
|
const firstMessageText = extractFirstMessageText(messages);
|
|
618804
|
-
return computeFingerprint(firstMessageText, "1.
|
|
618822
|
+
return computeFingerprint(firstMessageText, "1.42.0");
|
|
618805
618823
|
}
|
|
618806
618824
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
618807
618825
|
var init_fingerprint = () => {};
|
|
@@ -620675,7 +620693,7 @@ async function sideQuery(opts) {
|
|
|
620675
620693
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
620676
620694
|
}
|
|
620677
620695
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
620678
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.
|
|
620696
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.42.0");
|
|
620679
620697
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
620680
620698
|
const systemBlocks = [
|
|
620681
620699
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -625412,7 +625430,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
625412
625430
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
625413
625431
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
625414
625432
|
betas: getSdkBetas(),
|
|
625415
|
-
ur_version: "1.
|
|
625433
|
+
ur_version: "1.42.0",
|
|
625416
625434
|
output_style: outputStyle2,
|
|
625417
625435
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
625418
625436
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -640040,7 +640058,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
640040
640058
|
function getSemverPart(version3) {
|
|
640041
640059
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
640042
640060
|
}
|
|
640043
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.
|
|
640061
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.42.0") {
|
|
640044
640062
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
|
|
640045
640063
|
if (!updatedVersion) {
|
|
640046
640064
|
return null;
|
|
@@ -640089,7 +640107,7 @@ function AutoUpdater({
|
|
|
640089
640107
|
return;
|
|
640090
640108
|
}
|
|
640091
640109
|
if (false) {}
|
|
640092
|
-
const currentVersion = "1.
|
|
640110
|
+
const currentVersion = "1.42.0";
|
|
640093
640111
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
640094
640112
|
let latestVersion = await getLatestVersion(channel);
|
|
640095
640113
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -640318,12 +640336,12 @@ function NativeAutoUpdater({
|
|
|
640318
640336
|
logEvent("tengu_native_auto_updater_start", {});
|
|
640319
640337
|
try {
|
|
640320
640338
|
const maxVersion = await getMaxVersion();
|
|
640321
|
-
if (maxVersion && gt("1.
|
|
640339
|
+
if (maxVersion && gt("1.42.0", maxVersion)) {
|
|
640322
640340
|
const msg = await getMaxVersionMessage();
|
|
640323
640341
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
640324
640342
|
}
|
|
640325
640343
|
const result = await installLatest(channel);
|
|
640326
|
-
const currentVersion = "1.
|
|
640344
|
+
const currentVersion = "1.42.0";
|
|
640327
640345
|
const latencyMs = Date.now() - startTime;
|
|
640328
640346
|
if (result.lockFailed) {
|
|
640329
640347
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -640460,17 +640478,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
640460
640478
|
const maxVersion = await getMaxVersion();
|
|
640461
640479
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
640462
640480
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
640463
|
-
if (gte("1.
|
|
640464
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.
|
|
640481
|
+
if (gte("1.42.0", maxVersion)) {
|
|
640482
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.42.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
640465
640483
|
setUpdateAvailable(false);
|
|
640466
640484
|
return;
|
|
640467
640485
|
}
|
|
640468
640486
|
latest = maxVersion;
|
|
640469
640487
|
}
|
|
640470
|
-
const hasUpdate = latest && !gte("1.
|
|
640488
|
+
const hasUpdate = latest && !gte("1.42.0", latest) && !shouldSkipVersion(latest);
|
|
640471
640489
|
setUpdateAvailable(!!hasUpdate);
|
|
640472
640490
|
if (hasUpdate) {
|
|
640473
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.
|
|
640491
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.42.0"} -> ${latest}`);
|
|
640474
640492
|
}
|
|
640475
640493
|
};
|
|
640476
640494
|
$3[0] = t1;
|
|
@@ -640504,7 +640522,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
640504
640522
|
wrap: "truncate",
|
|
640505
640523
|
children: [
|
|
640506
640524
|
"currentVersion: ",
|
|
640507
|
-
"1.
|
|
640525
|
+
"1.42.0"
|
|
640508
640526
|
]
|
|
640509
640527
|
}, undefined, true, undefined, this);
|
|
640510
640528
|
$3[3] = verbose;
|
|
@@ -652956,7 +652974,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
652956
652974
|
project_dir: getOriginalCwd(),
|
|
652957
652975
|
added_dirs: addedDirs
|
|
652958
652976
|
},
|
|
652959
|
-
version: "1.
|
|
652977
|
+
version: "1.42.0",
|
|
652960
652978
|
output_style: {
|
|
652961
652979
|
name: outputStyleName
|
|
652962
652980
|
},
|
|
@@ -653039,7 +653057,7 @@ function StatusLineInner({
|
|
|
653039
653057
|
const taskValues = Object.values(tasks2);
|
|
653040
653058
|
const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
|
|
653041
653059
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
653042
|
-
version: "1.
|
|
653060
|
+
version: "1.42.0",
|
|
653043
653061
|
providerLabel: providerRuntime.providerLabel,
|
|
653044
653062
|
authMode: providerRuntime.authLabel,
|
|
653045
653063
|
model: providerRuntime.model ?? renderModelName(mainLoopModel),
|
|
@@ -664527,7 +664545,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
664527
664545
|
} catch {}
|
|
664528
664546
|
const data = {
|
|
664529
664547
|
trigger: trigger2,
|
|
664530
|
-
version: "1.
|
|
664548
|
+
version: "1.42.0",
|
|
664531
664549
|
platform: process.platform,
|
|
664532
664550
|
transcript,
|
|
664533
664551
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -676412,7 +676430,7 @@ function WelcomeV2() {
|
|
|
676412
676430
|
dimColor: true,
|
|
676413
676431
|
children: [
|
|
676414
676432
|
"v",
|
|
676415
|
-
"1.
|
|
676433
|
+
"1.42.0"
|
|
676416
676434
|
]
|
|
676417
676435
|
}, undefined, true, undefined, this)
|
|
676418
676436
|
]
|
|
@@ -677672,7 +677690,7 @@ function completeOnboarding() {
|
|
|
677672
677690
|
saveGlobalConfig((current) => ({
|
|
677673
677691
|
...current,
|
|
677674
677692
|
hasCompletedOnboarding: true,
|
|
677675
|
-
lastOnboardingVersion: "1.
|
|
677693
|
+
lastOnboardingVersion: "1.42.0"
|
|
677676
677694
|
}));
|
|
677677
677695
|
}
|
|
677678
677696
|
function showDialog(root2, renderer) {
|
|
@@ -682709,7 +682727,7 @@ function appendToLog(path24, message) {
|
|
|
682709
682727
|
cwd: getFsImplementation().cwd(),
|
|
682710
682728
|
userType: process.env.USER_TYPE,
|
|
682711
682729
|
sessionId: getSessionId(),
|
|
682712
|
-
version: "1.
|
|
682730
|
+
version: "1.42.0"
|
|
682713
682731
|
};
|
|
682714
682732
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
682715
682733
|
}
|
|
@@ -686803,8 +686821,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
686803
686821
|
}
|
|
686804
686822
|
async function checkEnvLessBridgeMinVersion() {
|
|
686805
686823
|
const cfg = await getEnvLessBridgeConfig();
|
|
686806
|
-
if (cfg.min_version && lt("1.
|
|
686807
|
-
return `Your version of UR (${"1.
|
|
686824
|
+
if (cfg.min_version && lt("1.42.0", cfg.min_version)) {
|
|
686825
|
+
return `Your version of UR (${"1.42.0"}) is too old for Remote Control.
|
|
686808
686826
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
686809
686827
|
}
|
|
686810
686828
|
return null;
|
|
@@ -687278,7 +687296,7 @@ async function initBridgeCore(params) {
|
|
|
687278
687296
|
const rawApi = createBridgeApiClient({
|
|
687279
687297
|
baseUrl,
|
|
687280
687298
|
getAccessToken,
|
|
687281
|
-
runnerVersion: "1.
|
|
687299
|
+
runnerVersion: "1.42.0",
|
|
687282
687300
|
onDebug: logForDebugging,
|
|
687283
687301
|
onAuth401,
|
|
687284
687302
|
getTrustedDeviceToken
|
|
@@ -692960,7 +692978,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
|
|
|
692960
692978
|
setCwd(cwd3);
|
|
692961
692979
|
const server2 = new Server({
|
|
692962
692980
|
name: "ur/tengu",
|
|
692963
|
-
version: "1.
|
|
692981
|
+
version: "1.42.0"
|
|
692964
692982
|
}, {
|
|
692965
692983
|
capabilities: {
|
|
692966
692984
|
tools: {}
|
|
@@ -695002,7 +695020,7 @@ async function update() {
|
|
|
695002
695020
|
logEvent("tengu_update_check", {});
|
|
695003
695021
|
const diagnostic = await getDoctorDiagnostic();
|
|
695004
695022
|
const result = await checkUpgradeStatus({
|
|
695005
|
-
currentVersion: "1.
|
|
695023
|
+
currentVersion: "1.42.0",
|
|
695006
695024
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
695007
695025
|
installationType: diagnostic.installationType,
|
|
695008
695026
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -696248,7 +696266,7 @@ ${customInstructions}` : customInstructions;
|
|
|
696248
696266
|
}
|
|
696249
696267
|
}
|
|
696250
696268
|
logForDiagnosticsNoPII("info", "started", {
|
|
696251
|
-
version: "1.
|
|
696269
|
+
version: "1.42.0",
|
|
696252
696270
|
is_native_binary: isInBundledMode()
|
|
696253
696271
|
});
|
|
696254
696272
|
registerCleanup(async () => {
|
|
@@ -697034,7 +697052,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
697034
697052
|
pendingHookMessages
|
|
697035
697053
|
}, renderAndRun);
|
|
697036
697054
|
}
|
|
697037
|
-
}).version("1.
|
|
697055
|
+
}).version("1.42.0 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
697038
697056
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
697039
697057
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
697040
697058
|
if (canUserConfigureAdvisor()) {
|
|
@@ -697949,7 +697967,7 @@ if (false) {}
|
|
|
697949
697967
|
async function main2() {
|
|
697950
697968
|
const args = process.argv.slice(2);
|
|
697951
697969
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
697952
|
-
console.log(`${"1.
|
|
697970
|
+
console.log(`${"1.42.0"} (UR-Nexus)`);
|
|
697953
697971
|
return;
|
|
697954
697972
|
}
|
|
697955
697973
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|
package/docs/CONFIGURATION.md
CHANGED
|
@@ -365,6 +365,15 @@ Sandbox behavior has three modes, controlled by `sandbox.enabled` and
|
|
|
365
365
|
UR fails closed: it refuses to start rather than run without a working
|
|
366
366
|
sandbox.
|
|
367
367
|
|
|
368
|
+
To turn the sandbox on or off, use the `/config` tool or run:
|
|
369
|
+
|
|
370
|
+
```sh
|
|
371
|
+
ur config set sandbox.enabled true
|
|
372
|
+
ur config set sandbox.enabled false
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
You can also inspect the current state with `ur sandbox status`.
|
|
376
|
+
|
|
368
377
|
OS confinement depends on platform support: `sandbox-exec` (Seatbelt) on
|
|
369
378
|
macOS, or `bwrap` (bubblewrap) on Linux/WSL2. `ur sandbox check` reports
|
|
370
379
|
missing dependencies for the current platform.
|
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.42.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>
|
|
@@ -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.42.0",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ur-agent",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "UR-Nexus
|
|
3
|
+
"version": "1.42.0",
|
|
4
|
+
"description": "UR-Nexus \u2014 autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "bun@1.3.14",
|
|
7
7
|
"engines": {
|