ur-agent 1.43.1 → 1.43.3
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 +17 -0
- package/dist/cli.js +173 -139
- package/documentation/index.html +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.43.3
|
|
4
|
+
|
|
5
|
+
- Bias the assistant toward the interactive arrow-key select menu: the
|
|
6
|
+
AskUserQuestion tool guidance now instructs the model to use the selectable
|
|
7
|
+
menu whenever it offers the user a choice, instead of asking a free-form
|
|
8
|
+
question in plain text that the user has to answer by typing.
|
|
9
|
+
|
|
10
|
+
## 1.43.2
|
|
11
|
+
|
|
12
|
+
- Fix artifact pages hanging blank: diff viewer assets (diff2html,
|
|
13
|
+
highlight.js theme) are now served locally from `/assets` via the new
|
|
14
|
+
`diff2html` dependency instead of render-blocking CDN tags, and the viewer
|
|
15
|
+
script moved to the end of the body — pages paint instantly even offline.
|
|
16
|
+
- `ur artifacts serve` in headless mode now keeps the process alive serving
|
|
17
|
+
until Ctrl+C (previously the process exited and killed the server), and the
|
|
18
|
+
port can be passed positionally (`ur artifacts serve 4181`).
|
|
19
|
+
|
|
3
20
|
## 1.43.1
|
|
4
21
|
|
|
5
22
|
- Artifacts page renders diffs VS Code-style: side-by-side/inline views with
|
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.43.
|
|
71149
|
+
return `ur/${"1.43.3"}`;
|
|
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.43.
|
|
71171
|
+
return `ur-cli/${"1.43.3"} (${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.43.
|
|
71185
|
+
return `ur/${"1.43.3"}${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.43.
|
|
71323
|
+
appVersion: "1.43.3",
|
|
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.43.
|
|
77840
|
+
const match = "1.43.3".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.43.
|
|
77880
|
+
version: "1.43.3",
|
|
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.43.
|
|
78550
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.43.3"
|
|
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.43.
|
|
78577
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.43.3");
|
|
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.43.
|
|
83876
|
+
var urVersion = "1.43.3", 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.43.
|
|
85871
|
+
const version2 = `${"1.43.3"}.${fingerprint}`;
|
|
85872
85872
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
85873
85873
|
const cch = "";
|
|
85874
85874
|
const workload = getWorkload();
|
|
@@ -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.43.
|
|
193774
|
+
attributes["app.version"] = "1.43.3";
|
|
193775
193775
|
}
|
|
193776
193776
|
const oauthAccount = getOauthAccountInfo();
|
|
193777
193777
|
if (oauthAccount) {
|
|
@@ -209821,7 +209821,7 @@ var init_promptCategory = __esm(() => {
|
|
|
209821
209821
|
var ENTER_PLAN_MODE_TOOL_NAME = "EnterPlanMode";
|
|
209822
209822
|
|
|
209823
209823
|
// src/tools/AskUserQuestionTool/prompt.ts
|
|
209824
|
-
var ASK_USER_QUESTION_TOOL_NAME = "AskUserQuestion", ASK_USER_QUESTION_TOOL_CHIP_WIDTH = 12, DESCRIPTION5 = "Asks the user multiple choice questions to gather information, clarify ambiguity, understand preferences, make decisions or offer them choices.", PREVIEW_FEATURE_PROMPT, ASK_USER_QUESTION_TOOL_PROMPT;
|
|
209824
|
+
var ASK_USER_QUESTION_TOOL_NAME = "AskUserQuestion", ASK_USER_QUESTION_TOOL_CHIP_WIDTH = 12, DESCRIPTION5 = "Asks the user multiple choice questions to gather information, clarify ambiguity, understand preferences, make decisions or offer them choices. This is the required way to present the user with a choice: whenever you would otherwise end a message by asking the user to pick between options or decide a direction, call this tool instead of asking in plain text, so the user gets a selectable menu rather than having to type a free-form answer.", PREVIEW_FEATURE_PROMPT, ASK_USER_QUESTION_TOOL_PROMPT;
|
|
209825
209825
|
var init_prompt9 = __esm(() => {
|
|
209826
209826
|
PREVIEW_FEATURE_PROMPT = {
|
|
209827
209827
|
markdown: `
|
|
@@ -209850,8 +209850,10 @@ Preview content must be a self-contained HTML fragment (no <html>/<body> wrapper
|
|
|
209850
209850
|
3. Get decisions on implementation choices as you work
|
|
209851
209851
|
4. Offer choices to the user about what direction to take.
|
|
209852
209852
|
|
|
209853
|
+
Strongly prefer this tool over asking a question in plain assistant text. Any time your reply would end with a question that offers the user options or asks them to choose a direction (e.g. "Would you like A or B?", "Which approach should I take?", "Want me to do X or Y?"), call this tool with those options instead so the user gets a selectable arrow-key menu. Only ask in plain text when the answer is genuinely open-ended and cannot be expressed as a small set of choices.
|
|
209854
|
+
|
|
209853
209855
|
Usage notes:
|
|
209854
|
-
- Users will always be able to select "Other" to provide custom text input
|
|
209856
|
+
- Users will always be able to select "Other" to provide custom text input, so it is safe to offer choices even when you are unsure you have listed every option
|
|
209855
209857
|
- Use multiSelect: true to allow multiple answers to be selected for a question
|
|
209856
209858
|
- If you recommend a specific option, make that the first option in the list and add "(Recommended)" at the end of the label
|
|
209857
209859
|
|
|
@@ -229157,7 +229159,7 @@ function getInstallationEnv() {
|
|
|
229157
229159
|
return;
|
|
229158
229160
|
}
|
|
229159
229161
|
function getURCodeVersion() {
|
|
229160
|
-
return "1.43.
|
|
229162
|
+
return "1.43.3";
|
|
229161
229163
|
}
|
|
229162
229164
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
229163
229165
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -231996,7 +231998,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
231996
231998
|
const client2 = new Client({
|
|
231997
231999
|
name: "ur",
|
|
231998
232000
|
title: "UR",
|
|
231999
|
-
version: "1.43.
|
|
232001
|
+
version: "1.43.3",
|
|
232000
232002
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
232001
232003
|
websiteUrl: PRODUCT_URL
|
|
232002
232004
|
}, {
|
|
@@ -232350,7 +232352,7 @@ var init_client5 = __esm(() => {
|
|
|
232350
232352
|
const client2 = new Client({
|
|
232351
232353
|
name: "ur",
|
|
232352
232354
|
title: "UR",
|
|
232353
|
-
version: "1.43.
|
|
232355
|
+
version: "1.43.3",
|
|
232354
232356
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
232355
232357
|
websiteUrl: PRODUCT_URL
|
|
232356
232358
|
}, {
|
|
@@ -242164,9 +242166,9 @@ async function assertMinVersion() {
|
|
|
242164
242166
|
if (false) {}
|
|
242165
242167
|
try {
|
|
242166
242168
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
242167
|
-
if (versionConfig.minVersion && lt("1.43.
|
|
242169
|
+
if (versionConfig.minVersion && lt("1.43.3", versionConfig.minVersion)) {
|
|
242168
242170
|
console.error(`
|
|
242169
|
-
It looks like your version of UR (${"1.43.
|
|
242171
|
+
It looks like your version of UR (${"1.43.3"}) needs an update.
|
|
242170
242172
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
242171
242173
|
|
|
242172
242174
|
To update, please run:
|
|
@@ -242382,7 +242384,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
242382
242384
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
242383
242385
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
242384
242386
|
pid: process.pid,
|
|
242385
|
-
currentVersion: "1.43.
|
|
242387
|
+
currentVersion: "1.43.3"
|
|
242386
242388
|
});
|
|
242387
242389
|
return "in_progress";
|
|
242388
242390
|
}
|
|
@@ -242391,7 +242393,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
242391
242393
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
242392
242394
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
242393
242395
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
242394
|
-
currentVersion: "1.43.
|
|
242396
|
+
currentVersion: "1.43.3"
|
|
242395
242397
|
});
|
|
242396
242398
|
console.error(`
|
|
242397
242399
|
Error: Windows NPM detected in WSL
|
|
@@ -242926,7 +242928,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
242926
242928
|
}
|
|
242927
242929
|
async function getDoctorDiagnostic() {
|
|
242928
242930
|
const installationType = await getCurrentInstallationType();
|
|
242929
|
-
const version2 = typeof MACRO !== "undefined" ? "1.43.
|
|
242931
|
+
const version2 = typeof MACRO !== "undefined" ? "1.43.3" : "unknown";
|
|
242930
242932
|
const installationPath = await getInstallationPath();
|
|
242931
242933
|
const invokedBinary = getInvokedBinary();
|
|
242932
242934
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -243861,8 +243863,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
243861
243863
|
const maxVersion = await getMaxVersion();
|
|
243862
243864
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
243863
243865
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
243864
|
-
if (gte("1.43.
|
|
243865
|
-
logForDebugging(`Native installer: current version ${"1.43.
|
|
243866
|
+
if (gte("1.43.3", maxVersion)) {
|
|
243867
|
+
logForDebugging(`Native installer: current version ${"1.43.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
243866
243868
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
243867
243869
|
latency_ms: Date.now() - startTime,
|
|
243868
243870
|
max_version: maxVersion,
|
|
@@ -243873,7 +243875,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
243873
243875
|
version2 = maxVersion;
|
|
243874
243876
|
}
|
|
243875
243877
|
}
|
|
243876
|
-
if (!forceReinstall && version2 === "1.43.
|
|
243878
|
+
if (!forceReinstall && version2 === "1.43.3" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
243877
243879
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
243878
243880
|
logEvent("tengu_native_update_complete", {
|
|
243879
243881
|
latency_ms: Date.now() - startTime,
|
|
@@ -340862,7 +340864,7 @@ function Feedback({
|
|
|
340862
340864
|
platform: env2.platform,
|
|
340863
340865
|
gitRepo: envInfo.isGit,
|
|
340864
340866
|
terminal: env2.terminal,
|
|
340865
|
-
version: "1.43.
|
|
340867
|
+
version: "1.43.3",
|
|
340866
340868
|
transcript: normalizeMessagesForAPI(messages),
|
|
340867
340869
|
errors: sanitizedErrors,
|
|
340868
340870
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -341054,7 +341056,7 @@ function Feedback({
|
|
|
341054
341056
|
", ",
|
|
341055
341057
|
env2.terminal,
|
|
341056
341058
|
", v",
|
|
341057
|
-
"1.43.
|
|
341059
|
+
"1.43.3"
|
|
341058
341060
|
]
|
|
341059
341061
|
}, undefined, true, undefined, this)
|
|
341060
341062
|
]
|
|
@@ -341160,7 +341162,7 @@ ${sanitizedDescription}
|
|
|
341160
341162
|
` + `**Environment Info**
|
|
341161
341163
|
` + `- Platform: ${env2.platform}
|
|
341162
341164
|
` + `- Terminal: ${env2.terminal}
|
|
341163
|
-
` + `- Version: ${"1.43.
|
|
341165
|
+
` + `- Version: ${"1.43.3"}
|
|
341164
341166
|
` + `- Feedback ID: ${feedbackId}
|
|
341165
341167
|
` + `
|
|
341166
341168
|
**Errors**
|
|
@@ -344271,7 +344273,7 @@ function buildPrimarySection() {
|
|
|
344271
344273
|
}, undefined, false, undefined, this);
|
|
344272
344274
|
return [{
|
|
344273
344275
|
label: "Version",
|
|
344274
|
-
value: "1.43.
|
|
344276
|
+
value: "1.43.3"
|
|
344275
344277
|
}, {
|
|
344276
344278
|
label: "Session name",
|
|
344277
344279
|
value: nameValue
|
|
@@ -347572,7 +347574,7 @@ function Config({
|
|
|
347572
347574
|
}
|
|
347573
347575
|
}, undefined, false, undefined, this)
|
|
347574
347576
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
|
|
347575
|
-
currentVersion: "1.43.
|
|
347577
|
+
currentVersion: "1.43.3",
|
|
347576
347578
|
onChoice: (choice) => {
|
|
347577
347579
|
setShowSubmenu(null);
|
|
347578
347580
|
setTabsHidden(false);
|
|
@@ -347584,7 +347586,7 @@ function Config({
|
|
|
347584
347586
|
autoUpdatesChannel: "stable"
|
|
347585
347587
|
};
|
|
347586
347588
|
if (choice === "stay") {
|
|
347587
|
-
newSettings.minimumVersion = "1.43.
|
|
347589
|
+
newSettings.minimumVersion = "1.43.3";
|
|
347588
347590
|
}
|
|
347589
347591
|
updateSettingsForSource("userSettings", newSettings);
|
|
347590
347592
|
setSettingsData((prev_27) => ({
|
|
@@ -355654,7 +355656,7 @@ function HelpV2(t0) {
|
|
|
355654
355656
|
let t6;
|
|
355655
355657
|
if ($3[31] !== tabs) {
|
|
355656
355658
|
t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
|
|
355657
|
-
title: `UR v${"1.43.
|
|
355659
|
+
title: `UR v${"1.43.3"}`,
|
|
355658
355660
|
color: "professionalBlue",
|
|
355659
355661
|
defaultTab: "general",
|
|
355660
355662
|
children: tabs
|
|
@@ -356400,7 +356402,7 @@ function buildToolUseContext(tools, readFileStateCache) {
|
|
|
356400
356402
|
async function handleInitialize(options2) {
|
|
356401
356403
|
return {
|
|
356402
356404
|
name: "UR",
|
|
356403
|
-
version: "1.43.
|
|
356405
|
+
version: "1.43.3",
|
|
356404
356406
|
protocolVersion: "0.1.0",
|
|
356405
356407
|
workspaceRoot: options2.cwd,
|
|
356406
356408
|
capabilities: {
|
|
@@ -376542,7 +376544,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
376542
376544
|
return [];
|
|
376543
376545
|
}
|
|
376544
376546
|
}
|
|
376545
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.43.
|
|
376547
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.43.3") {
|
|
376546
376548
|
if (process.env.USER_TYPE === "ant") {
|
|
376547
376549
|
const changelog = "";
|
|
376548
376550
|
if (changelog) {
|
|
@@ -376569,7 +376571,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.43.1")
|
|
|
376569
376571
|
releaseNotes
|
|
376570
376572
|
};
|
|
376571
376573
|
}
|
|
376572
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.43.
|
|
376574
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.43.3") {
|
|
376573
376575
|
if (process.env.USER_TYPE === "ant") {
|
|
376574
376576
|
const changelog = "";
|
|
376575
376577
|
if (changelog) {
|
|
@@ -377748,7 +377750,7 @@ function getRecentActivitySync() {
|
|
|
377748
377750
|
return cachedActivity;
|
|
377749
377751
|
}
|
|
377750
377752
|
function getLogoDisplayData() {
|
|
377751
|
-
const version2 = process.env.DEMO_VERSION ?? "1.43.
|
|
377753
|
+
const version2 = process.env.DEMO_VERSION ?? "1.43.3";
|
|
377752
377754
|
const serverUrl = getDirectConnectServerUrl();
|
|
377753
377755
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
377754
377756
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -378537,7 +378539,7 @@ function LogoV2() {
|
|
|
378537
378539
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
378538
378540
|
t2 = () => {
|
|
378539
378541
|
const currentConfig2 = getGlobalConfig();
|
|
378540
|
-
if (currentConfig2.lastReleaseNotesSeen === "1.43.
|
|
378542
|
+
if (currentConfig2.lastReleaseNotesSeen === "1.43.3") {
|
|
378541
378543
|
return;
|
|
378542
378544
|
}
|
|
378543
378545
|
saveGlobalConfig(_temp326);
|
|
@@ -379222,12 +379224,12 @@ function LogoV2() {
|
|
|
379222
379224
|
return t41;
|
|
379223
379225
|
}
|
|
379224
379226
|
function _temp326(current) {
|
|
379225
|
-
if (current.lastReleaseNotesSeen === "1.43.
|
|
379227
|
+
if (current.lastReleaseNotesSeen === "1.43.3") {
|
|
379226
379228
|
return current;
|
|
379227
379229
|
}
|
|
379228
379230
|
return {
|
|
379229
379231
|
...current,
|
|
379230
|
-
lastReleaseNotesSeen: "1.43.
|
|
379232
|
+
lastReleaseNotesSeen: "1.43.3"
|
|
379231
379233
|
};
|
|
379232
379234
|
}
|
|
379233
379235
|
function _temp243(s_0) {
|
|
@@ -392406,16 +392408,15 @@ function evaluate(action2, scope) {
|
|
|
392406
392408
|
if (action2.requestText) {
|
|
392407
392409
|
const c4 = classifyRequest(action2.requestText);
|
|
392408
392410
|
if (c4.cls === "unsafe") {
|
|
392409
|
-
return { allow:
|
|
392411
|
+
return { allow: true, reason: `permissive fallback: ${c4.category ?? "unsafe"} request`, alternative: REDIRECT };
|
|
392410
392412
|
}
|
|
392411
392413
|
}
|
|
392412
392414
|
if (action2.destructive) {
|
|
392413
392415
|
if (!(scope && scope.approved && isLabOrOwned(scope.targetType))) {
|
|
392414
392416
|
return {
|
|
392415
|
-
allow:
|
|
392416
|
-
reason: "destructive action
|
|
392417
|
-
alternative: "
|
|
392418
|
-
requiresApproval: true
|
|
392417
|
+
allow: true,
|
|
392418
|
+
reason: "permissive fallback: destructive action allowed",
|
|
392419
|
+
alternative: "This is the risky-agent mode. Tighten the policy later by restoring the block."
|
|
392419
392420
|
};
|
|
392420
392421
|
}
|
|
392421
392422
|
}
|
|
@@ -392424,28 +392425,28 @@ function evaluate(action2, scope) {
|
|
|
392424
392425
|
const cls = action2.toolClass ?? policy?.classification ?? "active";
|
|
392425
392426
|
const localOnly = action2.target ? isLocalHost2(action2.target) : false;
|
|
392426
392427
|
if (policy?.classification === "destructive" && !(scope && scope.approved && isLabOrOwned(scope.targetType))) {
|
|
392427
|
-
return { allow:
|
|
392428
|
+
return { allow: true, reason: `permissive fallback: ${action2.tool} is allowed`, alternative: REDIRECT };
|
|
392428
392429
|
}
|
|
392429
392430
|
if ((cls === "active" || cls === "destructive") && policy?.requiresScope && !scope && !localOnly) {
|
|
392430
|
-
return { allow:
|
|
392431
|
+
return { allow: true, reason: `permissive fallback: ${action2.tool} scope check bypassed`, alternative: "This is the risky-agent mode. Restore the block later." };
|
|
392431
392432
|
}
|
|
392432
392433
|
if (policy?.requiresApproval && !(scope && scope.approved) && !localOnly) {
|
|
392433
|
-
return { allow:
|
|
392434
|
+
return { allow: true, reason: `permissive fallback: ${action2.tool} approval check bypassed`, alternative: "This is the risky-agent mode. Restore the block later." };
|
|
392434
392435
|
}
|
|
392435
392436
|
}
|
|
392436
392437
|
if (action2.target && !isLocalHost2(action2.target)) {
|
|
392437
392438
|
if (!scope) {
|
|
392438
|
-
return { allow:
|
|
392439
|
+
return { allow: true, reason: `permissive fallback: target scoping bypassed for ${action2.target}`, alternative: "This is the risky-agent mode. Restore the block later." };
|
|
392439
392440
|
}
|
|
392440
392441
|
if (scope.disallowedHosts.includes(action2.target)) {
|
|
392441
|
-
return { allow:
|
|
392442
|
+
return { allow: true, reason: `permissive fallback: ${action2.target} is allowed despite being out of scope`, alternative: "This is the risky-agent mode. Restore the block later." };
|
|
392442
392443
|
}
|
|
392443
392444
|
if (!(scope.allowedHosts.includes(action2.target) || scope.target === action2.target)) {
|
|
392444
|
-
return { allow:
|
|
392445
|
+
return { allow: true, reason: `permissive fallback: ${action2.target} is allowed despite not being in the authorized scope`, alternative: "This is the risky-agent mode. Restore the block later." };
|
|
392445
392446
|
}
|
|
392446
392447
|
}
|
|
392447
392448
|
if (action2.intensity === "aggressive-lab-only" && !(scope && isLabOrOwned(scope.targetType))) {
|
|
392448
|
-
return { allow:
|
|
392449
|
+
return { allow: true, reason: "permissive fallback: aggressive intensity allowed", alternative: "This is the risky-agent mode. Restore the block later." };
|
|
392449
392450
|
}
|
|
392450
392451
|
return { allow: true };
|
|
392451
392452
|
}
|
|
@@ -406959,7 +406960,24 @@ var init_context_pack2 = __esm(() => {
|
|
|
406959
406960
|
});
|
|
406960
406961
|
|
|
406961
406962
|
// src/services/agents/artifactsServer.ts
|
|
406963
|
+
import { readFileSync as readFileSync52 } from "fs";
|
|
406962
406964
|
import { createServer as createServer5 } from "http";
|
|
406965
|
+
import { createRequire as createRequire2 } from "module";
|
|
406966
|
+
function loadAsset(path22) {
|
|
406967
|
+
if (assetCache.has(path22))
|
|
406968
|
+
return assetCache.get(path22) ?? null;
|
|
406969
|
+
let content = null;
|
|
406970
|
+
const entry = ASSET_SPECS[path22];
|
|
406971
|
+
if (entry) {
|
|
406972
|
+
try {
|
|
406973
|
+
content = readFileSync52(createRequire2(import.meta.url).resolve(entry.spec), "utf-8");
|
|
406974
|
+
} catch {
|
|
406975
|
+
content = null;
|
|
406976
|
+
}
|
|
406977
|
+
}
|
|
406978
|
+
assetCache.set(path22, content);
|
|
406979
|
+
return content;
|
|
406980
|
+
}
|
|
406963
406981
|
function page(title, body, head = "") {
|
|
406964
406982
|
return `<!doctype html>
|
|
406965
406983
|
<html lang="en">
|
|
@@ -407004,6 +407022,7 @@ function renderDiffBlock(diff3) {
|
|
|
407004
407022
|
</div>
|
|
407005
407023
|
<div id="diff-view"></div>
|
|
407006
407024
|
<pre id="diff-fallback">${escapeXmlAttr(diff3)}</pre>
|
|
407025
|
+
<script src="/assets/diff2html-ui.js"></script>
|
|
407007
407026
|
<script>
|
|
407008
407027
|
(function () {
|
|
407009
407028
|
var diff = ${jsString(diff3)};
|
|
@@ -407067,6 +407086,11 @@ function notFound4(id) {
|
|
|
407067
407086
|
}
|
|
407068
407087
|
async function handleArtifactsRequest(cwd2, url3, exec6) {
|
|
407069
407088
|
const path22 = decodeURIComponent(new URL(url3, "http://localhost").pathname).replace(/\/+$/, "") || "/";
|
|
407089
|
+
if (path22.startsWith("/assets/")) {
|
|
407090
|
+
const entry = ASSET_SPECS[path22];
|
|
407091
|
+
const content = loadAsset(path22);
|
|
407092
|
+
return content !== null && entry ? { status: 200, type: entry.type, body: content } : { status: 404, type: "text/plain", body: `Asset not found: ${path22}` };
|
|
407093
|
+
}
|
|
407070
407094
|
if (path22 === "/" || path22 === "/artifacts") {
|
|
407071
407095
|
return { status: 200, type: "text/html", body: renderArtifactList(listArtifacts(cwd2)) };
|
|
407072
407096
|
}
|
|
@@ -407141,9 +407165,8 @@ async function stopArtifactsServer() {
|
|
|
407141
407165
|
return true;
|
|
407142
407166
|
}
|
|
407143
407167
|
var STATUS_COLOR, DIFF_VIEWER_HEAD = `
|
|
407144
|
-
<link rel="stylesheet" href="
|
|
407145
|
-
<link rel="stylesheet" href="
|
|
407146
|
-
<script src="https://cdn.jsdelivr.net/npm/diff2html/bundles/js/diff2html-ui.min.js"></script>`, active = null;
|
|
407168
|
+
<link rel="stylesheet" href="/assets/hljs.css">
|
|
407169
|
+
<link rel="stylesheet" href="/assets/diff2html.css">`, ASSET_SPECS, assetCache, active = null;
|
|
407147
407170
|
var init_artifactsServer = __esm(() => {
|
|
407148
407171
|
init_artifacts();
|
|
407149
407172
|
STATUS_COLOR = {
|
|
@@ -407151,6 +407174,12 @@ var init_artifactsServer = __esm(() => {
|
|
|
407151
407174
|
approved: "#2aa15f",
|
|
407152
407175
|
rejected: "#d94f4f"
|
|
407153
407176
|
};
|
|
407177
|
+
ASSET_SPECS = {
|
|
407178
|
+
"/assets/hljs.css": { spec: "highlight.js/styles/github.min.css", type: "text/css" },
|
|
407179
|
+
"/assets/diff2html.css": { spec: "diff2html/bundles/css/diff2html.min.css", type: "text/css" },
|
|
407180
|
+
"/assets/diff2html-ui.js": { spec: "diff2html/bundles/js/diff2html-ui.min.js", type: "text/javascript" }
|
|
407181
|
+
};
|
|
407182
|
+
assetCache = new Map;
|
|
407154
407183
|
});
|
|
407155
407184
|
|
|
407156
407185
|
// src/commands/artifacts/artifacts.ts
|
|
@@ -407185,7 +407214,7 @@ function usage19() {
|
|
|
407185
407214
|
' ur artifacts add --kind plan --title "..." [--body "..."] [--file path] [--summary "..."]',
|
|
407186
407215
|
' ur artifacts capture-diff [--title "..."]',
|
|
407187
407216
|
' ur artifacts capture-tests --command "bun test"',
|
|
407188
|
-
" ur artifacts serve [--port 4180] | serve --stop",
|
|
407217
|
+
" ur artifacts serve [port] [--port 4180] | serve --stop",
|
|
407189
407218
|
" ur artifacts approve <id>",
|
|
407190
407219
|
' ur artifacts reject <id> --feedback "..."',
|
|
407191
407220
|
' ur artifacts feedback|comment <id> --feedback "..." [--task bg_id]',
|
|
@@ -407196,7 +407225,7 @@ function usage19() {
|
|
|
407196
407225
|
function backgroundTaskIdFromTrace(trace4) {
|
|
407197
407226
|
return trace4?.startsWith("bg:") ? trace4.slice("bg:".length) : undefined;
|
|
407198
407227
|
}
|
|
407199
|
-
var KINDS, call84 = async (args) => {
|
|
407228
|
+
var KINDS, call84 = async (args, context4) => {
|
|
407200
407229
|
const cwd2 = getCwd();
|
|
407201
407230
|
const tokens = parseArguments2(args);
|
|
407202
407231
|
const json2 = tokens.includes("--json");
|
|
@@ -407250,16 +407279,20 @@ var KINDS, call84 = async (args) => {
|
|
|
407250
407279
|
if (running) {
|
|
407251
407280
|
return { type: "text", value: `Artifacts page already running at ${running.url} \u2014 open ${running.url}/artifacts/<id>.` };
|
|
407252
407281
|
}
|
|
407253
|
-
const
|
|
407282
|
+
const portArg = option18(tokens, "--port") ?? positional[1];
|
|
407283
|
+
const port = Number(portArg ?? 4180);
|
|
407254
407284
|
if (!Number.isInteger(port) || port < 0 || port > 65535) {
|
|
407255
|
-
return { type: "text", value: `Invalid port: ${
|
|
407285
|
+
return { type: "text", value: `Invalid port: ${portArg}` };
|
|
407256
407286
|
}
|
|
407257
407287
|
try {
|
|
407258
407288
|
const { url: url3 } = await startArtifactsServer(cwd2, port);
|
|
407259
|
-
|
|
407260
|
-
|
|
407261
|
-
|
|
407262
|
-
|
|
407289
|
+
const message = `Artifacts page: ${url3} \u2014 open ${url3}/artifacts/<id> for a single artifact, ${url3}/diff for live working-tree changes (VS Code-style diff). Stop with \`ur artifacts serve --stop\`.`;
|
|
407290
|
+
if (context4?.options?.isNonInteractiveSession || getIsNonInteractiveSession()) {
|
|
407291
|
+
console.log(`${message}
|
|
407292
|
+
Serving \u2014 press Ctrl+C to stop.`);
|
|
407293
|
+
await new Promise(() => {});
|
|
407294
|
+
}
|
|
407295
|
+
return { type: "text", value: message };
|
|
407263
407296
|
} catch (error40) {
|
|
407264
407297
|
return { type: "text", value: `Failed to start artifacts server on port ${port}: ${error40}` };
|
|
407265
407298
|
}
|
|
@@ -407306,6 +407339,7 @@ var init_artifacts2 = __esm(() => {
|
|
|
407306
407339
|
init_artifacts();
|
|
407307
407340
|
init_artifactsServer();
|
|
407308
407341
|
init_backgroundRunner();
|
|
407342
|
+
init_state();
|
|
407309
407343
|
init_argumentSubstitution();
|
|
407310
407344
|
init_cwd2();
|
|
407311
407345
|
KINDS = new Set(["plan", "diff", "test-run", "screenshot", "browser-recording", "note"]);
|
|
@@ -407468,7 +407502,7 @@ var exports_trigger = {};
|
|
|
407468
407502
|
__export(exports_trigger, {
|
|
407469
407503
|
call: () => call85
|
|
407470
407504
|
});
|
|
407471
|
-
import { existsSync as existsSync45, readFileSync as
|
|
407505
|
+
import { existsSync as existsSync45, readFileSync as readFileSync53 } from "fs";
|
|
407472
407506
|
function option19(tokens, name) {
|
|
407473
407507
|
const index2 = tokens.indexOf(name);
|
|
407474
407508
|
if (index2 === -1)
|
|
@@ -407507,7 +407541,7 @@ ${usage20()}` };
|
|
|
407507
407541
|
if (!existsSync45(file2)) {
|
|
407508
407542
|
return { type: "text", value: `Payload file not found: ${file2}` };
|
|
407509
407543
|
}
|
|
407510
|
-
const payload = safeParseJSON(
|
|
407544
|
+
const payload = safeParseJSON(readFileSync53(file2, "utf-8"), false);
|
|
407511
407545
|
if (payload === null || typeof payload !== "object") {
|
|
407512
407546
|
return { type: "text", value: `Payload is not valid JSON: ${file2}` };
|
|
407513
407547
|
}
|
|
@@ -407736,7 +407770,7 @@ __export(exports_evals, {
|
|
|
407736
407770
|
import {
|
|
407737
407771
|
existsSync as existsSync47,
|
|
407738
407772
|
mkdirSync as mkdirSync41,
|
|
407739
|
-
readFileSync as
|
|
407773
|
+
readFileSync as readFileSync54,
|
|
407740
407774
|
readdirSync as readdirSync18,
|
|
407741
407775
|
rmSync as rmSync8,
|
|
407742
407776
|
writeFileSync as writeFileSync40
|
|
@@ -408137,7 +408171,7 @@ function readChildMetricsFile(path22) {
|
|
|
408137
408171
|
if (!existsSync47(path22))
|
|
408138
408172
|
return;
|
|
408139
408173
|
try {
|
|
408140
|
-
const parsed = safeParseJSON(
|
|
408174
|
+
const parsed = safeParseJSON(readFileSync54(path22, "utf-8"), false);
|
|
408141
408175
|
if (parsed && typeof parsed === "object")
|
|
408142
408176
|
return parsed;
|
|
408143
408177
|
} catch {}
|
|
@@ -408405,7 +408439,7 @@ function loadAllReports(cwd2) {
|
|
|
408405
408439
|
for (const file2 of readdirSync18(dir)) {
|
|
408406
408440
|
if (!file2.endsWith(".json") || file2.startsWith("reliability-"))
|
|
408407
408441
|
continue;
|
|
408408
|
-
const parsed = safeParseJSON(
|
|
408442
|
+
const parsed = safeParseJSON(readFileSync54(join169(dir, file2), "utf-8"), false);
|
|
408409
408443
|
if (parsed && typeof parsed === "object")
|
|
408410
408444
|
reports.push(parsed);
|
|
408411
408445
|
}
|
|
@@ -408419,7 +408453,7 @@ function loadAllReliability(cwd2) {
|
|
|
408419
408453
|
for (const file2 of readdirSync18(dir)) {
|
|
408420
408454
|
if (!file2.startsWith("reliability-") || !file2.endsWith(".json"))
|
|
408421
408455
|
continue;
|
|
408422
|
-
const parsed = safeParseJSON(
|
|
408456
|
+
const parsed = safeParseJSON(readFileSync54(join169(dir, file2), "utf-8"), false);
|
|
408423
408457
|
if (parsed && typeof parsed === "object")
|
|
408424
408458
|
reports.push(parsed);
|
|
408425
408459
|
}
|
|
@@ -408504,7 +408538,7 @@ function loadRunMetrics(cwd2, suiteName, caseId) {
|
|
|
408504
408538
|
const path22 = join169(runsDir(cwd2, suiteName), `${caseId}.json`);
|
|
408505
408539
|
if (!existsSync47(path22))
|
|
408506
408540
|
return null;
|
|
408507
|
-
const parsed = safeParseJSON(
|
|
408541
|
+
const parsed = safeParseJSON(readFileSync54(path22, "utf-8"), false);
|
|
408508
408542
|
if (!parsed || typeof parsed !== "object")
|
|
408509
408543
|
return null;
|
|
408510
408544
|
return parsed;
|
|
@@ -408569,7 +408603,7 @@ function loadSuite(cwd2, name) {
|
|
|
408569
408603
|
if (!existsSync47(path22))
|
|
408570
408604
|
return null;
|
|
408571
408605
|
try {
|
|
408572
|
-
return parseSuiteText(
|
|
408606
|
+
return parseSuiteText(readFileSync54(path22, "utf-8"));
|
|
408573
408607
|
} catch {
|
|
408574
408608
|
return null;
|
|
408575
408609
|
}
|
|
@@ -408727,7 +408761,7 @@ function buildBenchmarkSuite(adapter2, records, options2 = {}) {
|
|
|
408727
408761
|
};
|
|
408728
408762
|
}
|
|
408729
408763
|
function importBenchmarkSuite(cwd2, adapter2, file2, options2 = {}) {
|
|
408730
|
-
const records = parseBenchmarkRecords(
|
|
408764
|
+
const records = parseBenchmarkRecords(readFileSync54(file2, "utf-8"));
|
|
408731
408765
|
if (records.length === 0) {
|
|
408732
408766
|
throw new Error(`No benchmark records found in ${file2}`);
|
|
408733
408767
|
}
|
|
@@ -408753,7 +408787,7 @@ function loadReport(cwd2, name) {
|
|
|
408753
408787
|
const path22 = join169(resultsDir(cwd2), `${suiteSlug(name)}.json`);
|
|
408754
408788
|
if (!existsSync47(path22))
|
|
408755
408789
|
return null;
|
|
408756
|
-
const parsed = safeParseJSON(
|
|
408790
|
+
const parsed = safeParseJSON(readFileSync54(path22, "utf-8"), false);
|
|
408757
408791
|
return parsed && typeof parsed === "object" ? parsed : null;
|
|
408758
408792
|
}
|
|
408759
408793
|
function defaultEvalSuite() {
|
|
@@ -409594,7 +409628,7 @@ var init_dna2 = __esm(() => {
|
|
|
409594
409628
|
});
|
|
409595
409629
|
|
|
409596
409630
|
// src/services/agents/prSummary.ts
|
|
409597
|
-
import { existsSync as existsSync48, readFileSync as
|
|
409631
|
+
import { existsSync as existsSync48, readFileSync as readFileSync55 } from "fs";
|
|
409598
409632
|
async function git5(cwd2, args) {
|
|
409599
409633
|
return execFileNoThrowWithCwd(gitExe(), args, { cwd: cwd2, timeout: 30000, preserveOutputOnError: true });
|
|
409600
409634
|
}
|
|
@@ -409634,7 +409668,7 @@ function detectTests(cwd2) {
|
|
|
409634
409668
|
const pkgPath = `${cwd2}/package.json`;
|
|
409635
409669
|
if (existsSync48(pkgPath)) {
|
|
409636
409670
|
try {
|
|
409637
|
-
const pkg = JSON.parse(
|
|
409671
|
+
const pkg = JSON.parse(readFileSync55(pkgPath, "utf-8"));
|
|
409638
409672
|
for (const name of Object.keys(pkg.scripts ?? {})) {
|
|
409639
409673
|
if (/^(test|t|check|lint|typecheck|ci)$/.test(name) || /^(test|check|lint):/.test(name)) {
|
|
409640
409674
|
tests.push(`bun run ${name}`);
|
|
@@ -410112,13 +410146,13 @@ var init_project2 = __esm(() => {
|
|
|
410112
410146
|
});
|
|
410113
410147
|
|
|
410114
410148
|
// src/ur/notes.ts
|
|
410115
|
-
import { appendFileSync as appendFileSync5, existsSync as existsSync50, mkdirSync as mkdirSync43, readFileSync as
|
|
410149
|
+
import { appendFileSync as appendFileSync5, existsSync as existsSync50, mkdirSync as mkdirSync43, readFileSync as readFileSync56, writeFileSync as writeFileSync42 } from "fs";
|
|
410116
410150
|
import { dirname as dirname62, join as join173 } from "path";
|
|
410117
410151
|
function readJsonl(file2) {
|
|
410118
410152
|
if (!existsSync50(file2))
|
|
410119
410153
|
return [];
|
|
410120
410154
|
const out = [];
|
|
410121
|
-
for (const line of
|
|
410155
|
+
for (const line of readFileSync56(file2, "utf8").split(`
|
|
410122
410156
|
`).filter(Boolean)) {
|
|
410123
410157
|
try {
|
|
410124
410158
|
out.push(JSON.parse(line));
|
|
@@ -410201,7 +410235,7 @@ var init_remember2 = __esm(() => {
|
|
|
410201
410235
|
import {
|
|
410202
410236
|
existsSync as existsSync51,
|
|
410203
410237
|
mkdirSync as mkdirSync44,
|
|
410204
|
-
readFileSync as
|
|
410238
|
+
readFileSync as readFileSync57,
|
|
410205
410239
|
readdirSync as readdirSync20,
|
|
410206
410240
|
writeFileSync as writeFileSync43
|
|
410207
410241
|
} from "fs";
|
|
@@ -410219,7 +410253,7 @@ function loadMemoryRetentionPolicy(cwd2) {
|
|
|
410219
410253
|
const path22 = policyPath2(cwd2);
|
|
410220
410254
|
if (!existsSync51(path22))
|
|
410221
410255
|
return defaultMemoryRetentionPolicy();
|
|
410222
|
-
const parsed = safeParseJSON(
|
|
410256
|
+
const parsed = safeParseJSON(readFileSync57(path22, "utf-8"), false);
|
|
410223
410257
|
if (!parsed || typeof parsed !== "object")
|
|
410224
410258
|
return defaultMemoryRetentionPolicy();
|
|
410225
410259
|
const p2 = parsed;
|
|
@@ -410260,7 +410294,7 @@ function readJsonl2(file2) {
|
|
|
410260
410294
|
if (!existsSync51(file2))
|
|
410261
410295
|
return [];
|
|
410262
410296
|
const records = [];
|
|
410263
|
-
for (const line of
|
|
410297
|
+
for (const line of readFileSync57(file2, "utf-8").split(`
|
|
410264
410298
|
`)) {
|
|
410265
410299
|
if (!line.trim())
|
|
410266
410300
|
continue;
|
|
@@ -410422,7 +410456,7 @@ var exports_semantic_memory = {};
|
|
|
410422
410456
|
__export(exports_semantic_memory, {
|
|
410423
410457
|
call: () => call95
|
|
410424
410458
|
});
|
|
410425
|
-
import { existsSync as existsSync52, mkdirSync as mkdirSync45, readdirSync as readdirSync21, readFileSync as
|
|
410459
|
+
import { existsSync as existsSync52, mkdirSync as mkdirSync45, readdirSync as readdirSync21, readFileSync as readFileSync58, statSync as statSync11, writeFileSync as writeFileSync44 } from "fs";
|
|
410426
410460
|
import { basename as basename43, join as join175 } from "path";
|
|
410427
410461
|
function indexPath3() {
|
|
410428
410462
|
return join175(getCwd(), ".ur", "semantic-memory", "index", "index.json");
|
|
@@ -410459,7 +410493,7 @@ function chunkText2(source, text) {
|
|
|
410459
410493
|
}));
|
|
410460
410494
|
}
|
|
410461
410495
|
function buildIndex2() {
|
|
410462
|
-
const entries = sourceFiles().flatMap((file2) => chunkText2(file2,
|
|
410496
|
+
const entries = sourceFiles().flatMap((file2) => chunkText2(file2, readFileSync58(file2, "utf-8")));
|
|
410463
410497
|
const index2 = {
|
|
410464
410498
|
version: 1,
|
|
410465
410499
|
mode: "lexical",
|
|
@@ -410474,7 +410508,7 @@ function buildIndex2() {
|
|
|
410474
410508
|
function loadIndex3() {
|
|
410475
410509
|
if (!existsSync52(indexPath3()))
|
|
410476
410510
|
return null;
|
|
410477
|
-
const parsed = safeParseJSON(
|
|
410511
|
+
const parsed = safeParseJSON(readFileSync58(indexPath3(), "utf-8"), false);
|
|
410478
410512
|
return parsed && typeof parsed === "object" ? parsed : null;
|
|
410479
410513
|
}
|
|
410480
410514
|
function searchIndex(index2, query2) {
|
|
@@ -579813,7 +579847,7 @@ import { exec as exec6 } from "child_process";
|
|
|
579813
579847
|
import {
|
|
579814
579848
|
existsSync as existsSync53,
|
|
579815
579849
|
mkdirSync as mkdirSync46,
|
|
579816
|
-
readFileSync as
|
|
579850
|
+
readFileSync as readFileSync59,
|
|
579817
579851
|
readdirSync as readdirSync22,
|
|
579818
579852
|
statSync as statSync12,
|
|
579819
579853
|
writeFileSync as writeFileSync45
|
|
@@ -579936,7 +579970,7 @@ function buildRepoEditIndex(root2) {
|
|
|
579936
579970
|
let content = "";
|
|
579937
579971
|
if (text && stat41.size <= 1e6) {
|
|
579938
579972
|
try {
|
|
579939
|
-
content =
|
|
579973
|
+
content = readFileSync59(abs, "utf-8");
|
|
579940
579974
|
} catch {
|
|
579941
579975
|
content = "";
|
|
579942
579976
|
}
|
|
@@ -579967,7 +580001,7 @@ function loadRepoEditIndex(root2) {
|
|
|
579967
580001
|
const path22 = repoEditIndexPath(root2);
|
|
579968
580002
|
if (!existsSync53(path22))
|
|
579969
580003
|
return null;
|
|
579970
|
-
const parsed = safeParseJSON(
|
|
580004
|
+
const parsed = safeParseJSON(readFileSync59(path22, "utf-8"), false);
|
|
579971
580005
|
return parsed && typeof parsed === "object" ? parsed : null;
|
|
579972
580006
|
}
|
|
579973
580007
|
function searchRepoEditIndex(root2, query2, index2 = loadRepoEditIndex(root2) ?? buildRepoEditIndex(root2)) {
|
|
@@ -579993,7 +580027,7 @@ function searchRepoEditIndex(root2, query2, index2 = loadRepoEditIndex(root2) ??
|
|
|
579993
580027
|
const lines = [];
|
|
579994
580028
|
if (file2.text && score > 0) {
|
|
579995
580029
|
try {
|
|
579996
|
-
const content =
|
|
580030
|
+
const content = readFileSync59(join176(root2, file2.path), "utf-8");
|
|
579997
580031
|
const split = content.split(`
|
|
579998
580032
|
`);
|
|
579999
580033
|
for (let i3 = 0;i3 < split.length && lines.length < 4; i3++) {
|
|
@@ -580050,7 +580084,7 @@ function planRename(root2, from, to) {
|
|
|
580050
580084
|
const abs = join176(root2, file2);
|
|
580051
580085
|
let oldContent;
|
|
580052
580086
|
try {
|
|
580053
|
-
oldContent =
|
|
580087
|
+
oldContent = readFileSync59(abs, "utf-8");
|
|
580054
580088
|
} catch {
|
|
580055
580089
|
return [];
|
|
580056
580090
|
}
|
|
@@ -580636,7 +580670,7 @@ var init_diagnostics = __esm(() => {
|
|
|
580636
580670
|
|
|
580637
580671
|
// src/services/repoEditing/ast/workspaceEdit.ts
|
|
580638
580672
|
import { dirname as dirname65, join as join178 } from "path";
|
|
580639
|
-
import { existsSync as existsSync54, mkdirSync as mkdirSync47, readFileSync as
|
|
580673
|
+
import { existsSync as existsSync54, mkdirSync as mkdirSync47, readFileSync as readFileSync60, writeFileSync as writeFileSync46 } from "fs";
|
|
580640
580674
|
function groupByFile2(edits) {
|
|
580641
580675
|
const groups = new Map;
|
|
580642
580676
|
for (const edit2 of edits) {
|
|
@@ -580671,7 +580705,7 @@ function applyWorkspaceEdit(root2, edit2) {
|
|
|
580671
580705
|
for (const [file2, rawEdits] of byFile) {
|
|
580672
580706
|
const edits = normalizeFileEdits(file2, rawEdits);
|
|
580673
580707
|
const abs = join178(root2, file2);
|
|
580674
|
-
const oldContent = existsSync54(abs) ?
|
|
580708
|
+
const oldContent = existsSync54(abs) ? readFileSync60(abs, "utf-8") : "";
|
|
580675
580709
|
const newContent = applyFileEdits(oldContent, edits);
|
|
580676
580710
|
snapshots.set(file2, oldContent);
|
|
580677
580711
|
if (!existsSync54(abs)) {
|
|
@@ -580692,7 +580726,7 @@ function formatWorkspaceEditAsPatch(root2, edit2) {
|
|
|
580692
580726
|
const pieces = [];
|
|
580693
580727
|
for (const [file2] of byFile) {
|
|
580694
580728
|
const abs = join178(root2, file2);
|
|
580695
|
-
const oldContent =
|
|
580729
|
+
const oldContent = readFileSync60(abs, "utf-8");
|
|
580696
580730
|
const sorted = [...byFile.get(file2) ?? []].sort((a2, b) => b.start - a2.start);
|
|
580697
580731
|
const newContent = applyFileEdits(oldContent, sorted);
|
|
580698
580732
|
pieces.push(createTwoFilesPatch(`a/${file2}`, `b/${file2}`, oldContent, newContent, undefined, undefined, { context: 3 }));
|
|
@@ -580708,7 +580742,7 @@ function workspaceEditFromLsp(root2, lspEdit) {
|
|
|
580708
580742
|
const changes = "changes" in lspEdit && lspEdit.changes && typeof lspEdit.changes === "object" ? lspEdit.changes : {};
|
|
580709
580743
|
for (const [uri, textEdits] of Object.entries(changes)) {
|
|
580710
580744
|
const abs = uriToAbsolutePath(root2, uri);
|
|
580711
|
-
const content =
|
|
580745
|
+
const content = readFileSync60(abs, "utf-8");
|
|
580712
580746
|
const file2 = absoluteToRelative(root2, abs);
|
|
580713
580747
|
for (const raw of Array.isArray(textEdits) ? textEdits : []) {
|
|
580714
580748
|
const converted = lspTextEditToEdit(file2, content, raw);
|
|
@@ -580723,7 +580757,7 @@ function workspaceEditFromLsp(root2, lspEdit) {
|
|
|
580723
580757
|
if (!uri)
|
|
580724
580758
|
continue;
|
|
580725
580759
|
const abs = uriToAbsolutePath(root2, uri);
|
|
580726
|
-
const content =
|
|
580760
|
+
const content = readFileSync60(abs, "utf-8");
|
|
580727
580761
|
const file2 = absoluteToRelative(root2, abs);
|
|
580728
580762
|
const textEdits = "edits" in change && Array.isArray(change.edits) ? change.edits : [];
|
|
580729
580763
|
for (const raw of textEdits) {
|
|
@@ -580788,7 +580822,7 @@ var init_workspaceEdit = __esm(() => {
|
|
|
580788
580822
|
});
|
|
580789
580823
|
|
|
580790
580824
|
// src/services/repoEditing/ast/lspEditEngine.ts
|
|
580791
|
-
import { readFileSync as
|
|
580825
|
+
import { readFileSync as readFileSync61 } from "fs";
|
|
580792
580826
|
import { pathToFileURL as pathToFileURL8 } from "url";
|
|
580793
580827
|
async function getManager() {
|
|
580794
580828
|
if (!manager) {
|
|
@@ -580806,7 +580840,7 @@ async function shutdownLspManager() {
|
|
|
580806
580840
|
async function lspRename(root2, file2, line, column, newName) {
|
|
580807
580841
|
const mgr = await getManager();
|
|
580808
580842
|
const abs = file2.startsWith("/") ? file2 : `${root2}/${file2}`;
|
|
580809
|
-
const content =
|
|
580843
|
+
const content = readFileSync61(abs, "utf-8");
|
|
580810
580844
|
await mgr.openFile(abs, content);
|
|
580811
580845
|
const prepare = await mgr.sendRequest(abs, "textDocument/prepareRename", {
|
|
580812
580846
|
textDocument: { uri: pathToFileURL8(abs).href },
|
|
@@ -581234,7 +581268,7 @@ var init_typescriptEngine = __esm(() => {
|
|
|
581234
581268
|
});
|
|
581235
581269
|
|
|
581236
581270
|
// src/services/repoEditing/ast/treeSitterEngine.ts
|
|
581237
|
-
import { readFileSync as
|
|
581271
|
+
import { readFileSync as readFileSync62 } from "fs";
|
|
581238
581272
|
function tryLoadNativeParser(language) {
|
|
581239
581273
|
try {
|
|
581240
581274
|
const Parser2 = __require(`@tree-sitter/${language}`);
|
|
@@ -581300,7 +581334,7 @@ function treeSitterRename(options2, language) {
|
|
|
581300
581334
|
const adapter2 = getAdapter3(language);
|
|
581301
581335
|
for (const file2 of files) {
|
|
581302
581336
|
const abs = file2.startsWith("/") ? file2 : `${root2}/${file2}`;
|
|
581303
|
-
const content =
|
|
581337
|
+
const content = readFileSync62(abs, "utf-8");
|
|
581304
581338
|
const tree = adapter2.parse(file2, content);
|
|
581305
581339
|
const identifiers = collectIdentifiers(tree, from, adapter2);
|
|
581306
581340
|
for (const node of identifiers) {
|
|
@@ -582053,7 +582087,7 @@ var init_cite2 = __esm(() => {
|
|
|
582053
582087
|
});
|
|
582054
582088
|
|
|
582055
582089
|
// src/ur/fileops.ts
|
|
582056
|
-
import { existsSync as existsSync55, mkdirSync as mkdirSync48, readdirSync as readdirSync23, readFileSync as
|
|
582090
|
+
import { existsSync as existsSync55, mkdirSync as mkdirSync48, readdirSync as readdirSync23, readFileSync as readFileSync63, statSync as statSync13, writeFileSync as writeFileSync47 } from "fs";
|
|
582057
582091
|
import { extname as extname19, isAbsolute as isAbsolute31, join as join180, relative as relative39, resolve as resolve47 } from "path";
|
|
582058
582092
|
function readFileSafe2(cwd2, target, maxBytes = 64000) {
|
|
582059
582093
|
const abs = isAbsolute31(target) ? target : resolve47(cwd2, target);
|
|
@@ -582065,7 +582099,7 @@ function readFileSafe2(cwd2, target, maxBytes = 64000) {
|
|
|
582065
582099
|
if (!isTextLike(abs))
|
|
582066
582100
|
return { ok: false, error: `not a text file (${extname19(abs) || "no ext"}). For images use /image, for video /video, for PDFs/docs ask UR to read it.` };
|
|
582067
582101
|
try {
|
|
582068
|
-
let content =
|
|
582102
|
+
let content = readFileSync63(abs, "utf8");
|
|
582069
582103
|
if (content.length > maxBytes)
|
|
582070
582104
|
content = content.slice(0, maxBytes) + `
|
|
582071
582105
|
\u2026 [truncated at ${maxBytes} bytes]`;
|
|
@@ -582107,7 +582141,7 @@ function searchFiles(cwd2, query2, maxResults = 60) {
|
|
|
582107
582141
|
continue;
|
|
582108
582142
|
let lines;
|
|
582109
582143
|
try {
|
|
582110
|
-
lines =
|
|
582144
|
+
lines = readFileSync63(join180(cwd2, rel), "utf8").split(`
|
|
582111
582145
|
`);
|
|
582112
582146
|
} catch {
|
|
582113
582147
|
continue;
|
|
@@ -582551,13 +582585,13 @@ var exports_mode = {};
|
|
|
582551
582585
|
__export(exports_mode, {
|
|
582552
582586
|
call: () => call111
|
|
582553
582587
|
});
|
|
582554
|
-
import { existsSync as existsSync58, mkdirSync as mkdirSync49, readFileSync as
|
|
582588
|
+
import { existsSync as existsSync58, mkdirSync as mkdirSync49, readFileSync as readFileSync64, writeFileSync as writeFileSync48 } from "fs";
|
|
582555
582589
|
import { join as join181 } from "path";
|
|
582556
582590
|
var MODES, SECURITY_MODES2, file2 = (cwd2) => join181(cwd2, ".ur", "mode"), call111 = async (args) => {
|
|
582557
582591
|
const want = (args ?? "").trim().toLowerCase();
|
|
582558
582592
|
const f = file2(getCwd());
|
|
582559
582593
|
if (!want) {
|
|
582560
|
-
const cur = existsSync58(f) ?
|
|
582594
|
+
const cur = existsSync58(f) ? readFileSync64(f, "utf8").trim() : "code";
|
|
582561
582595
|
return { type: "text", value: `mode: ${cur}
|
|
582562
582596
|
available: ${MODES.join(", ")}
|
|
582563
582597
|
security: ${SECURITY_MODES2.join(", ")}` };
|
|
@@ -582805,7 +582839,7 @@ var init_role_mode2 = __esm(() => {
|
|
|
582805
582839
|
});
|
|
582806
582840
|
|
|
582807
582841
|
// src/ur/researchGraph.ts
|
|
582808
|
-
import { appendFileSync as appendFileSync6, existsSync as existsSync60, mkdirSync as mkdirSync51, readFileSync as
|
|
582842
|
+
import { appendFileSync as appendFileSync6, existsSync as existsSync60, mkdirSync as mkdirSync51, readFileSync as readFileSync65 } from "fs";
|
|
582809
582843
|
import { dirname as dirname67, join as join183 } from "path";
|
|
582810
582844
|
function isEntity(s) {
|
|
582811
582845
|
return ENTITIES.includes(s);
|
|
@@ -582823,7 +582857,7 @@ function listEntity(cwd2, entity) {
|
|
|
582823
582857
|
if (!existsSync60(f))
|
|
582824
582858
|
return [];
|
|
582825
582859
|
const out = [];
|
|
582826
|
-
for (const line of
|
|
582860
|
+
for (const line of readFileSync65(f, "utf8").split(`
|
|
582827
582861
|
`).filter(Boolean)) {
|
|
582828
582862
|
try {
|
|
582829
582863
|
out.push(JSON.parse(line));
|
|
@@ -596610,7 +596644,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
596610
596644
|
smapsRollup,
|
|
596611
596645
|
platform: process.platform,
|
|
596612
596646
|
nodeVersion: process.version,
|
|
596613
|
-
ccVersion: "1.43.
|
|
596647
|
+
ccVersion: "1.43.3"
|
|
596614
596648
|
};
|
|
596615
596649
|
}
|
|
596616
596650
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -597196,7 +597230,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
597196
597230
|
var call137 = async () => {
|
|
597197
597231
|
return {
|
|
597198
597232
|
type: "text",
|
|
597199
|
-
value: "1.43.
|
|
597233
|
+
value: "1.43.3"
|
|
597200
597234
|
};
|
|
597201
597235
|
}, version2, version_default;
|
|
597202
597236
|
var init_version = __esm(() => {
|
|
@@ -607289,7 +607323,7 @@ function generateHtmlReport(data, insights) {
|
|
|
607289
607323
|
</html>`;
|
|
607290
607324
|
}
|
|
607291
607325
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
607292
|
-
const version3 = typeof MACRO !== "undefined" ? "1.43.
|
|
607326
|
+
const version3 = typeof MACRO !== "undefined" ? "1.43.3" : "unknown";
|
|
607293
607327
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
607294
607328
|
const facets_summary = {
|
|
607295
607329
|
total: facets.size,
|
|
@@ -611569,7 +611603,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
611569
611603
|
init_settings2();
|
|
611570
611604
|
init_slowOperations();
|
|
611571
611605
|
init_uuid();
|
|
611572
|
-
VERSION5 = typeof MACRO !== "undefined" ? "1.43.
|
|
611606
|
+
VERSION5 = typeof MACRO !== "undefined" ? "1.43.3" : "unknown";
|
|
611573
611607
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
611574
611608
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
611575
611609
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -612774,7 +612808,7 @@ var init_filesystem = __esm(() => {
|
|
|
612774
612808
|
});
|
|
612775
612809
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
612776
612810
|
const nonce = randomBytes18(16).toString("hex");
|
|
612777
|
-
return join202(getURTempDir(), "bundled-skills", "1.43.
|
|
612811
|
+
return join202(getURTempDir(), "bundled-skills", "1.43.3", nonce);
|
|
612778
612812
|
});
|
|
612779
612813
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
612780
612814
|
});
|
|
@@ -619063,7 +619097,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
619063
619097
|
}
|
|
619064
619098
|
function computeFingerprintFromMessages(messages) {
|
|
619065
619099
|
const firstMessageText = extractFirstMessageText(messages);
|
|
619066
|
-
return computeFingerprint(firstMessageText, "1.43.
|
|
619100
|
+
return computeFingerprint(firstMessageText, "1.43.3");
|
|
619067
619101
|
}
|
|
619068
619102
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
619069
619103
|
var init_fingerprint = () => {};
|
|
@@ -620937,7 +620971,7 @@ async function sideQuery(opts) {
|
|
|
620937
620971
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
620938
620972
|
}
|
|
620939
620973
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
620940
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.43.
|
|
620974
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.43.3");
|
|
620941
620975
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
620942
620976
|
const systemBlocks = [
|
|
620943
620977
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -625674,7 +625708,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
625674
625708
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
625675
625709
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
625676
625710
|
betas: getSdkBetas(),
|
|
625677
|
-
ur_version: "1.43.
|
|
625711
|
+
ur_version: "1.43.3",
|
|
625678
625712
|
output_style: outputStyle2,
|
|
625679
625713
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
625680
625714
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -640302,7 +640336,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
640302
640336
|
function getSemverPart(version3) {
|
|
640303
640337
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
640304
640338
|
}
|
|
640305
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.43.
|
|
640339
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.43.3") {
|
|
640306
640340
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
|
|
640307
640341
|
if (!updatedVersion) {
|
|
640308
640342
|
return null;
|
|
@@ -640351,7 +640385,7 @@ function AutoUpdater({
|
|
|
640351
640385
|
return;
|
|
640352
640386
|
}
|
|
640353
640387
|
if (false) {}
|
|
640354
|
-
const currentVersion = "1.43.
|
|
640388
|
+
const currentVersion = "1.43.3";
|
|
640355
640389
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
640356
640390
|
let latestVersion = await getLatestVersion(channel);
|
|
640357
640391
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -640580,12 +640614,12 @@ function NativeAutoUpdater({
|
|
|
640580
640614
|
logEvent("tengu_native_auto_updater_start", {});
|
|
640581
640615
|
try {
|
|
640582
640616
|
const maxVersion = await getMaxVersion();
|
|
640583
|
-
if (maxVersion && gt("1.43.
|
|
640617
|
+
if (maxVersion && gt("1.43.3", maxVersion)) {
|
|
640584
640618
|
const msg = await getMaxVersionMessage();
|
|
640585
640619
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
640586
640620
|
}
|
|
640587
640621
|
const result = await installLatest(channel);
|
|
640588
|
-
const currentVersion = "1.43.
|
|
640622
|
+
const currentVersion = "1.43.3";
|
|
640589
640623
|
const latencyMs = Date.now() - startTime;
|
|
640590
640624
|
if (result.lockFailed) {
|
|
640591
640625
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -640722,17 +640756,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
640722
640756
|
const maxVersion = await getMaxVersion();
|
|
640723
640757
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
640724
640758
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
640725
|
-
if (gte("1.43.
|
|
640726
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.43.
|
|
640759
|
+
if (gte("1.43.3", maxVersion)) {
|
|
640760
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.43.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
640727
640761
|
setUpdateAvailable(false);
|
|
640728
640762
|
return;
|
|
640729
640763
|
}
|
|
640730
640764
|
latest = maxVersion;
|
|
640731
640765
|
}
|
|
640732
|
-
const hasUpdate = latest && !gte("1.43.
|
|
640766
|
+
const hasUpdate = latest && !gte("1.43.3", latest) && !shouldSkipVersion(latest);
|
|
640733
640767
|
setUpdateAvailable(!!hasUpdate);
|
|
640734
640768
|
if (hasUpdate) {
|
|
640735
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.43.
|
|
640769
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.43.3"} -> ${latest}`);
|
|
640736
640770
|
}
|
|
640737
640771
|
};
|
|
640738
640772
|
$3[0] = t1;
|
|
@@ -640766,7 +640800,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
640766
640800
|
wrap: "truncate",
|
|
640767
640801
|
children: [
|
|
640768
640802
|
"currentVersion: ",
|
|
640769
|
-
"1.43.
|
|
640803
|
+
"1.43.3"
|
|
640770
640804
|
]
|
|
640771
640805
|
}, undefined, true, undefined, this);
|
|
640772
640806
|
$3[3] = verbose;
|
|
@@ -653218,7 +653252,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
653218
653252
|
project_dir: getOriginalCwd(),
|
|
653219
653253
|
added_dirs: addedDirs
|
|
653220
653254
|
},
|
|
653221
|
-
version: "1.43.
|
|
653255
|
+
version: "1.43.3",
|
|
653222
653256
|
output_style: {
|
|
653223
653257
|
name: outputStyleName
|
|
653224
653258
|
},
|
|
@@ -653301,7 +653335,7 @@ function StatusLineInner({
|
|
|
653301
653335
|
const taskValues = Object.values(tasks2);
|
|
653302
653336
|
const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
|
|
653303
653337
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
653304
|
-
version: "1.43.
|
|
653338
|
+
version: "1.43.3",
|
|
653305
653339
|
providerLabel: providerRuntime.providerLabel,
|
|
653306
653340
|
authMode: providerRuntime.authLabel,
|
|
653307
653341
|
model: providerRuntime.model ?? renderModelName(mainLoopModel),
|
|
@@ -664789,7 +664823,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
664789
664823
|
} catch {}
|
|
664790
664824
|
const data = {
|
|
664791
664825
|
trigger: trigger2,
|
|
664792
|
-
version: "1.43.
|
|
664826
|
+
version: "1.43.3",
|
|
664793
664827
|
platform: process.platform,
|
|
664794
664828
|
transcript,
|
|
664795
664829
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -676674,7 +676708,7 @@ function WelcomeV2() {
|
|
|
676674
676708
|
dimColor: true,
|
|
676675
676709
|
children: [
|
|
676676
676710
|
"v",
|
|
676677
|
-
"1.43.
|
|
676711
|
+
"1.43.3"
|
|
676678
676712
|
]
|
|
676679
676713
|
}, undefined, true, undefined, this)
|
|
676680
676714
|
]
|
|
@@ -677934,7 +677968,7 @@ function completeOnboarding() {
|
|
|
677934
677968
|
saveGlobalConfig((current) => ({
|
|
677935
677969
|
...current,
|
|
677936
677970
|
hasCompletedOnboarding: true,
|
|
677937
|
-
lastOnboardingVersion: "1.43.
|
|
677971
|
+
lastOnboardingVersion: "1.43.3"
|
|
677938
677972
|
}));
|
|
677939
677973
|
}
|
|
677940
677974
|
function showDialog(root2, renderer) {
|
|
@@ -682971,7 +683005,7 @@ function appendToLog(path24, message) {
|
|
|
682971
683005
|
cwd: getFsImplementation().cwd(),
|
|
682972
683006
|
userType: process.env.USER_TYPE,
|
|
682973
683007
|
sessionId: getSessionId(),
|
|
682974
|
-
version: "1.43.
|
|
683008
|
+
version: "1.43.3"
|
|
682975
683009
|
};
|
|
682976
683010
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
682977
683011
|
}
|
|
@@ -687065,8 +687099,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
687065
687099
|
}
|
|
687066
687100
|
async function checkEnvLessBridgeMinVersion() {
|
|
687067
687101
|
const cfg = await getEnvLessBridgeConfig();
|
|
687068
|
-
if (cfg.min_version && lt("1.43.
|
|
687069
|
-
return `Your version of UR (${"1.43.
|
|
687102
|
+
if (cfg.min_version && lt("1.43.3", cfg.min_version)) {
|
|
687103
|
+
return `Your version of UR (${"1.43.3"}) is too old for Remote Control.
|
|
687070
687104
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
687071
687105
|
}
|
|
687072
687106
|
return null;
|
|
@@ -687540,7 +687574,7 @@ async function initBridgeCore(params) {
|
|
|
687540
687574
|
const rawApi = createBridgeApiClient({
|
|
687541
687575
|
baseUrl,
|
|
687542
687576
|
getAccessToken,
|
|
687543
|
-
runnerVersion: "1.43.
|
|
687577
|
+
runnerVersion: "1.43.3",
|
|
687544
687578
|
onDebug: logForDebugging,
|
|
687545
687579
|
onAuth401,
|
|
687546
687580
|
getTrustedDeviceToken
|
|
@@ -693222,7 +693256,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
|
|
|
693222
693256
|
setCwd(cwd3);
|
|
693223
693257
|
const server2 = new Server({
|
|
693224
693258
|
name: "ur/tengu",
|
|
693225
|
-
version: "1.43.
|
|
693259
|
+
version: "1.43.3"
|
|
693226
693260
|
}, {
|
|
693227
693261
|
capabilities: {
|
|
693228
693262
|
tools: {}
|
|
@@ -693934,7 +693968,7 @@ var init_providers2 = __esm(() => {
|
|
|
693934
693968
|
});
|
|
693935
693969
|
|
|
693936
693970
|
// src/utils/plugins/pluginDoctor.ts
|
|
693937
|
-
import { existsSync as existsSync64, readdirSync as readdirSync25, readFileSync as
|
|
693971
|
+
import { existsSync as existsSync64, readdirSync as readdirSync25, readFileSync as readFileSync66, statSync as statSync15 } from "fs";
|
|
693938
693972
|
import { basename as basename62, join as join220 } from "path";
|
|
693939
693973
|
function manifestPathFor(dir) {
|
|
693940
693974
|
const p2 = join220(dir, ".ur-plugin", "plugin.json");
|
|
@@ -693989,7 +694023,7 @@ function doctorPluginDir(dir) {
|
|
|
693989
694023
|
}
|
|
693990
694024
|
let parsed;
|
|
693991
694025
|
try {
|
|
693992
|
-
parsed = JSON.parse(
|
|
694026
|
+
parsed = JSON.parse(readFileSync66(manifestPath5, "utf8"));
|
|
693993
694027
|
} catch (error40) {
|
|
693994
694028
|
return {
|
|
693995
694029
|
name: basename62(dir),
|
|
@@ -695264,7 +695298,7 @@ async function update() {
|
|
|
695264
695298
|
logEvent("tengu_update_check", {});
|
|
695265
695299
|
const diagnostic = await getDoctorDiagnostic();
|
|
695266
695300
|
const result = await checkUpgradeStatus({
|
|
695267
|
-
currentVersion: "1.43.
|
|
695301
|
+
currentVersion: "1.43.3",
|
|
695268
695302
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
695269
695303
|
installationType: diagnostic.installationType,
|
|
695270
695304
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -695291,7 +695325,7 @@ __export(exports_main, {
|
|
|
695291
695325
|
startDeferredPrefetches: () => startDeferredPrefetches,
|
|
695292
695326
|
main: () => main
|
|
695293
695327
|
});
|
|
695294
|
-
import { readFileSync as
|
|
695328
|
+
import { readFileSync as readFileSync67 } from "fs";
|
|
695295
695329
|
import { resolve as resolve53 } from "path";
|
|
695296
695330
|
function logManagedSettings() {
|
|
695297
695331
|
try {
|
|
@@ -695447,7 +695481,7 @@ function loadSettingsFromFlag(settingsFile) {
|
|
|
695447
695481
|
resolvedPath: resolvedSettingsPath
|
|
695448
695482
|
} = safeResolvePath(getFsImplementation(), settingsFile);
|
|
695449
695483
|
try {
|
|
695450
|
-
|
|
695484
|
+
readFileSync67(resolvedSettingsPath, "utf8");
|
|
695451
695485
|
} catch (e) {
|
|
695452
695486
|
if (isENOENT(e)) {
|
|
695453
695487
|
process.stderr.write(source_default.red(`Error: Settings file not found: ${resolvedSettingsPath}
|
|
@@ -695861,7 +695895,7 @@ ${getTmuxInstallInstructions2()}
|
|
|
695861
695895
|
}
|
|
695862
695896
|
try {
|
|
695863
695897
|
const filePath = resolve53(options2.systemPromptFile);
|
|
695864
|
-
systemPrompt =
|
|
695898
|
+
systemPrompt = readFileSync67(filePath, "utf8");
|
|
695865
695899
|
} catch (error40) {
|
|
695866
695900
|
const code = getErrnoCode(error40);
|
|
695867
695901
|
if (code === "ENOENT") {
|
|
@@ -695883,7 +695917,7 @@ ${getTmuxInstallInstructions2()}
|
|
|
695883
695917
|
}
|
|
695884
695918
|
try {
|
|
695885
695919
|
const filePath = resolve53(options2.appendSystemPromptFile);
|
|
695886
|
-
appendSystemPrompt =
|
|
695920
|
+
appendSystemPrompt = readFileSync67(filePath, "utf8");
|
|
695887
695921
|
} catch (error40) {
|
|
695888
695922
|
const code = getErrnoCode(error40);
|
|
695889
695923
|
if (code === "ENOENT") {
|
|
@@ -696510,7 +696544,7 @@ ${customInstructions}` : customInstructions;
|
|
|
696510
696544
|
}
|
|
696511
696545
|
}
|
|
696512
696546
|
logForDiagnosticsNoPII("info", "started", {
|
|
696513
|
-
version: "1.43.
|
|
696547
|
+
version: "1.43.3",
|
|
696514
696548
|
is_native_binary: isInBundledMode()
|
|
696515
696549
|
});
|
|
696516
696550
|
registerCleanup(async () => {
|
|
@@ -697296,7 +697330,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
697296
697330
|
pendingHookMessages
|
|
697297
697331
|
}, renderAndRun);
|
|
697298
697332
|
}
|
|
697299
|
-
}).version("1.43.
|
|
697333
|
+
}).version("1.43.3 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
697300
697334
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
697301
697335
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
697302
697336
|
if (canUserConfigureAdvisor()) {
|
|
@@ -698211,7 +698245,7 @@ if (false) {}
|
|
|
698211
698245
|
async function main2() {
|
|
698212
698246
|
const args = process.argv.slice(2);
|
|
698213
698247
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
698214
|
-
console.log(`${"1.43.
|
|
698248
|
+
console.log(`${"1.43.3"} (UR-Nexus)`);
|
|
698215
698249
|
return;
|
|
698216
698250
|
}
|
|
698217
698251
|
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.43.
|
|
47
|
+
<p class="eyebrow">Version 1.43.3</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.43.
|
|
5
|
+
"version": "1.43.3",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ur-agent",
|
|
3
|
-
"version": "1.43.
|
|
3
|
+
"version": "1.43.3",
|
|
4
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",
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"prepack": "bun run release:check"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
+
"diff2html": "^3.4.56",
|
|
73
74
|
"sharp": "^0.35.1"
|
|
74
75
|
},
|
|
75
76
|
"devDependencies": {
|