ur-agent 1.30.1 → 1.30.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 +15 -0
- package/README.md +1 -1
- package/dist/cli.js +74 -71
- package/docs/USAGE.md +1 -1
- package/documentation/index.html +2 -2
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.30.3
|
|
4
|
+
|
|
5
|
+
- Fix Codex CLI dispatch for real interactive terminals by inheriting terminal
|
|
6
|
+
stdin for `codex exec`. Codex treats both `/dev/null` and closed pipes as
|
|
7
|
+
piped stdin, so the previous `1.30.2` EOF approach still triggered
|
|
8
|
+
`Reading additional input from stdin`.
|
|
9
|
+
|
|
10
|
+
## 1.30.2
|
|
11
|
+
|
|
12
|
+
- Fix Codex subscription dispatch failing with `exited 1 ... Reading additional
|
|
13
|
+
input from stdin`. `codex exec` reads stdin even when the prompt is an
|
|
14
|
+
argument; UR now gives it a closed, empty stdin pipe (EOF) instead of
|
|
15
|
+
`/dev/null`, so a logged-in Codex CLI runs correctly. Other subscription CLIs
|
|
16
|
+
are unchanged (prompt as argument, stdin ignored).
|
|
17
|
+
|
|
3
18
|
## 1.30.1
|
|
4
19
|
|
|
5
20
|
- Fix Codex CLI runtime dispatch by ignoring stdin when UR already passes the
|
package/README.md
CHANGED
|
@@ -304,7 +304,7 @@ viewer mode.
|
|
|
304
304
|
Example:
|
|
305
305
|
|
|
306
306
|
```text
|
|
307
|
-
UR-AGENT v1.30.
|
|
307
|
+
UR-AGENT v1.30.3 | Provider: Codex CLI | Auth: subscription | model: codex/gpt-5.5 | mode: ask | branch: main | tasks: idle
|
|
308
308
|
```
|
|
309
309
|
|
|
310
310
|
The bar reflects the active in-session provider/model immediately after a
|
package/dist/cli.js
CHANGED
|
@@ -56823,6 +56823,7 @@ function createURHQSubscriptionClient(providerId, options) {
|
|
|
56823
56823
|
}
|
|
56824
56824
|
const prompt = messagesToPrompt(params);
|
|
56825
56825
|
const result = await run(options.commandPath, spec.args(model, prompt), {
|
|
56826
|
+
stdinMode: spec.stdinMode,
|
|
56826
56827
|
signal: requestOptions?.signal,
|
|
56827
56828
|
timeoutMs: options.timeoutMs ?? 120000
|
|
56828
56829
|
});
|
|
@@ -56881,7 +56882,9 @@ function createURHQSubscriptionClient(providerId, options) {
|
|
|
56881
56882
|
};
|
|
56882
56883
|
return { beta: { messages: messagesAPI } };
|
|
56883
56884
|
}
|
|
56884
|
-
function getSubscriptionCliStdinMode(input) {
|
|
56885
|
+
function getSubscriptionCliStdinMode(input, mode) {
|
|
56886
|
+
if (mode)
|
|
56887
|
+
return mode;
|
|
56885
56888
|
return input === undefined ? "ignore" : "pipe";
|
|
56886
56889
|
}
|
|
56887
56890
|
function cliModelName(model) {
|
|
@@ -57006,7 +57009,7 @@ function estimateTokens(text) {
|
|
|
57006
57009
|
}
|
|
57007
57010
|
var CLI_SPECS, defaultRunner = (command, args, options) => new Promise((resolve8, reject) => {
|
|
57008
57011
|
const child = spawn3(command, args, {
|
|
57009
|
-
stdio: [getSubscriptionCliStdinMode(options.input), "pipe", "pipe"],
|
|
57012
|
+
stdio: [getSubscriptionCliStdinMode(options.input, options.stdinMode), "pipe", "pipe"],
|
|
57010
57013
|
signal: options.signal
|
|
57011
57014
|
});
|
|
57012
57015
|
let stdout = "";
|
|
@@ -57028,7 +57031,7 @@ var CLI_SPECS, defaultRunner = (command, args, options) => new Promise((resolve8
|
|
|
57028
57031
|
clearTimeout(timer);
|
|
57029
57032
|
resolve8({ code: code ?? 1, stdout, stderr });
|
|
57030
57033
|
});
|
|
57031
|
-
if (options.input !== undefined) {
|
|
57034
|
+
if (options.input !== undefined && child.stdin) {
|
|
57032
57035
|
child.stdin?.write(options.input);
|
|
57033
57036
|
child.stdin?.end();
|
|
57034
57037
|
}
|
|
@@ -57036,7 +57039,7 @@ var CLI_SPECS, defaultRunner = (command, args, options) => new Promise((resolve8
|
|
|
57036
57039
|
var init_urhqSubscription = __esm(() => {
|
|
57037
57040
|
init_streamingAdapters();
|
|
57038
57041
|
CLI_SPECS = {
|
|
57039
|
-
"codex-cli": { args: (model, prompt) => ["exec", "--model", model, prompt] },
|
|
57042
|
+
"codex-cli": { args: (model, prompt) => ["exec", "--model", model, prompt], stdinMode: "inherit" },
|
|
57040
57043
|
"claude-code-cli": {
|
|
57041
57044
|
args: (model, prompt) => ["-p", prompt, "--model", model, "--output-format", "json"]
|
|
57042
57045
|
},
|
|
@@ -69309,7 +69312,7 @@ var init_auth = __esm(() => {
|
|
|
69309
69312
|
|
|
69310
69313
|
// src/utils/userAgent.ts
|
|
69311
69314
|
function getURCodeUserAgent() {
|
|
69312
|
-
return `ur/${"1.30.
|
|
69315
|
+
return `ur/${"1.30.3"}`;
|
|
69313
69316
|
}
|
|
69314
69317
|
|
|
69315
69318
|
// src/utils/workloadContext.ts
|
|
@@ -69331,7 +69334,7 @@ function getUserAgent() {
|
|
|
69331
69334
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
69332
69335
|
const workload = getWorkload();
|
|
69333
69336
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
69334
|
-
return `ur-cli/${"1.30.
|
|
69337
|
+
return `ur-cli/${"1.30.3"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
69335
69338
|
}
|
|
69336
69339
|
function getMCPUserAgent() {
|
|
69337
69340
|
const parts = [];
|
|
@@ -69345,7 +69348,7 @@ function getMCPUserAgent() {
|
|
|
69345
69348
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
69346
69349
|
}
|
|
69347
69350
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
69348
|
-
return `ur/${"1.30.
|
|
69351
|
+
return `ur/${"1.30.3"}${suffix}`;
|
|
69349
69352
|
}
|
|
69350
69353
|
function getWebFetchUserAgent() {
|
|
69351
69354
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -69483,7 +69486,7 @@ var init_user = __esm(() => {
|
|
|
69483
69486
|
deviceId,
|
|
69484
69487
|
sessionId: getSessionId(),
|
|
69485
69488
|
email: getEmail(),
|
|
69486
|
-
appVersion: "1.30.
|
|
69489
|
+
appVersion: "1.30.3",
|
|
69487
69490
|
platform: getHostPlatformForAnalytics(),
|
|
69488
69491
|
organizationUuid,
|
|
69489
69492
|
accountUuid,
|
|
@@ -76000,7 +76003,7 @@ var init_metadata = __esm(() => {
|
|
|
76000
76003
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
76001
76004
|
WHITESPACE_REGEX = /\s+/;
|
|
76002
76005
|
getVersionBase = memoize_default(() => {
|
|
76003
|
-
const match = "1.30.
|
|
76006
|
+
const match = "1.30.3".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
76004
76007
|
return match ? match[0] : undefined;
|
|
76005
76008
|
});
|
|
76006
76009
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -76040,7 +76043,7 @@ var init_metadata = __esm(() => {
|
|
|
76040
76043
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
76041
76044
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
76042
76045
|
isURAiAuth: isURAISubscriber2(),
|
|
76043
|
-
version: "1.30.
|
|
76046
|
+
version: "1.30.3",
|
|
76044
76047
|
versionBase: getVersionBase(),
|
|
76045
76048
|
buildTime: "",
|
|
76046
76049
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -76710,7 +76713,7 @@ function initialize1PEventLogging() {
|
|
|
76710
76713
|
const platform2 = getPlatform();
|
|
76711
76714
|
const attributes = {
|
|
76712
76715
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
76713
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.30.
|
|
76716
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.30.3"
|
|
76714
76717
|
};
|
|
76715
76718
|
if (platform2 === "wsl") {
|
|
76716
76719
|
const wslVersion = getWslVersion();
|
|
@@ -76737,7 +76740,7 @@ function initialize1PEventLogging() {
|
|
|
76737
76740
|
})
|
|
76738
76741
|
]
|
|
76739
76742
|
});
|
|
76740
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.30.
|
|
76743
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.30.3");
|
|
76741
76744
|
}
|
|
76742
76745
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
76743
76746
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -82034,7 +82037,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
82034
82037
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
82035
82038
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
82036
82039
|
}
|
|
82037
|
-
var urVersion = "1.30.
|
|
82040
|
+
var urVersion = "1.30.3", coverage, priorityRoadmap;
|
|
82038
82041
|
var init_trends = __esm(() => {
|
|
82039
82042
|
coverage = [
|
|
82040
82043
|
{
|
|
@@ -84027,7 +84030,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
84027
84030
|
if (!isAttributionHeaderEnabled()) {
|
|
84028
84031
|
return "";
|
|
84029
84032
|
}
|
|
84030
|
-
const version2 = `${"1.30.
|
|
84033
|
+
const version2 = `${"1.30.3"}.${fingerprint}`;
|
|
84031
84034
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
84032
84035
|
const cch = "";
|
|
84033
84036
|
const workload = getWorkload();
|
|
@@ -191700,7 +191703,7 @@ function getTelemetryAttributes() {
|
|
|
191700
191703
|
attributes["session.id"] = sessionId;
|
|
191701
191704
|
}
|
|
191702
191705
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
191703
|
-
attributes["app.version"] = "1.30.
|
|
191706
|
+
attributes["app.version"] = "1.30.3";
|
|
191704
191707
|
}
|
|
191705
191708
|
const oauthAccount = getOauthAccountInfo();
|
|
191706
191709
|
if (oauthAccount) {
|
|
@@ -227105,7 +227108,7 @@ function getInstallationEnv() {
|
|
|
227105
227108
|
return;
|
|
227106
227109
|
}
|
|
227107
227110
|
function getURCodeVersion() {
|
|
227108
|
-
return "1.30.
|
|
227111
|
+
return "1.30.3";
|
|
227109
227112
|
}
|
|
227110
227113
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
227111
227114
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -229944,7 +229947,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
229944
229947
|
const client2 = new Client({
|
|
229945
229948
|
name: "ur",
|
|
229946
229949
|
title: "UR",
|
|
229947
|
-
version: "1.30.
|
|
229950
|
+
version: "1.30.3",
|
|
229948
229951
|
description: "UR-AGENT autonomous engineering workflow engine",
|
|
229949
229952
|
websiteUrl: PRODUCT_URL
|
|
229950
229953
|
}, {
|
|
@@ -230298,7 +230301,7 @@ var init_client5 = __esm(() => {
|
|
|
230298
230301
|
const client2 = new Client({
|
|
230299
230302
|
name: "ur",
|
|
230300
230303
|
title: "UR",
|
|
230301
|
-
version: "1.30.
|
|
230304
|
+
version: "1.30.3",
|
|
230302
230305
|
description: "UR-AGENT autonomous engineering workflow engine",
|
|
230303
230306
|
websiteUrl: PRODUCT_URL
|
|
230304
230307
|
}, {
|
|
@@ -240114,9 +240117,9 @@ async function assertMinVersion() {
|
|
|
240114
240117
|
if (false) {}
|
|
240115
240118
|
try {
|
|
240116
240119
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
240117
|
-
if (versionConfig.minVersion && lt("1.30.
|
|
240120
|
+
if (versionConfig.minVersion && lt("1.30.3", versionConfig.minVersion)) {
|
|
240118
240121
|
console.error(`
|
|
240119
|
-
It looks like your version of UR (${"1.30.
|
|
240122
|
+
It looks like your version of UR (${"1.30.3"}) needs an update.
|
|
240120
240123
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
240121
240124
|
|
|
240122
240125
|
To update, please run:
|
|
@@ -240332,7 +240335,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
240332
240335
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
240333
240336
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
240334
240337
|
pid: process.pid,
|
|
240335
|
-
currentVersion: "1.30.
|
|
240338
|
+
currentVersion: "1.30.3"
|
|
240336
240339
|
});
|
|
240337
240340
|
return "in_progress";
|
|
240338
240341
|
}
|
|
@@ -240341,7 +240344,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
240341
240344
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
240342
240345
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
240343
240346
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
240344
|
-
currentVersion: "1.30.
|
|
240347
|
+
currentVersion: "1.30.3"
|
|
240345
240348
|
});
|
|
240346
240349
|
console.error(`
|
|
240347
240350
|
Error: Windows NPM detected in WSL
|
|
@@ -240876,7 +240879,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
240876
240879
|
}
|
|
240877
240880
|
async function getDoctorDiagnostic() {
|
|
240878
240881
|
const installationType = await getCurrentInstallationType();
|
|
240879
|
-
const version2 = typeof MACRO !== "undefined" ? "1.30.
|
|
240882
|
+
const version2 = typeof MACRO !== "undefined" ? "1.30.3" : "unknown";
|
|
240880
240883
|
const installationPath = await getInstallationPath();
|
|
240881
240884
|
const invokedBinary = getInvokedBinary();
|
|
240882
240885
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -241811,8 +241814,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
241811
241814
|
const maxVersion = await getMaxVersion();
|
|
241812
241815
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
241813
241816
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
241814
|
-
if (gte("1.30.
|
|
241815
|
-
logForDebugging(`Native installer: current version ${"1.30.
|
|
241817
|
+
if (gte("1.30.3", maxVersion)) {
|
|
241818
|
+
logForDebugging(`Native installer: current version ${"1.30.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
241816
241819
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
241817
241820
|
latency_ms: Date.now() - startTime,
|
|
241818
241821
|
max_version: maxVersion,
|
|
@@ -241823,7 +241826,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
241823
241826
|
version2 = maxVersion;
|
|
241824
241827
|
}
|
|
241825
241828
|
}
|
|
241826
|
-
if (!forceReinstall && version2 === "1.30.
|
|
241829
|
+
if (!forceReinstall && version2 === "1.30.3" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
241827
241830
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
241828
241831
|
logEvent("tengu_native_update_complete", {
|
|
241829
241832
|
latency_ms: Date.now() - startTime,
|
|
@@ -338750,7 +338753,7 @@ function Feedback({
|
|
|
338750
338753
|
platform: env2.platform,
|
|
338751
338754
|
gitRepo: envInfo.isGit,
|
|
338752
338755
|
terminal: env2.terminal,
|
|
338753
|
-
version: "1.30.
|
|
338756
|
+
version: "1.30.3",
|
|
338754
338757
|
transcript: normalizeMessagesForAPI(messages),
|
|
338755
338758
|
errors: sanitizedErrors,
|
|
338756
338759
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -338942,7 +338945,7 @@ function Feedback({
|
|
|
338942
338945
|
", ",
|
|
338943
338946
|
env2.terminal,
|
|
338944
338947
|
", v",
|
|
338945
|
-
"1.30.
|
|
338948
|
+
"1.30.3"
|
|
338946
338949
|
]
|
|
338947
338950
|
}, undefined, true, undefined, this)
|
|
338948
338951
|
]
|
|
@@ -339048,7 +339051,7 @@ ${sanitizedDescription}
|
|
|
339048
339051
|
` + `**Environment Info**
|
|
339049
339052
|
` + `- Platform: ${env2.platform}
|
|
339050
339053
|
` + `- Terminal: ${env2.terminal}
|
|
339051
|
-
` + `- Version: ${"1.30.
|
|
339054
|
+
` + `- Version: ${"1.30.3"}
|
|
339052
339055
|
` + `- Feedback ID: ${feedbackId}
|
|
339053
339056
|
` + `
|
|
339054
339057
|
**Errors**
|
|
@@ -342159,7 +342162,7 @@ function buildPrimarySection() {
|
|
|
342159
342162
|
}, undefined, false, undefined, this);
|
|
342160
342163
|
return [{
|
|
342161
342164
|
label: "Version",
|
|
342162
|
-
value: "1.30.
|
|
342165
|
+
value: "1.30.3"
|
|
342163
342166
|
}, {
|
|
342164
342167
|
label: "Session name",
|
|
342165
342168
|
value: nameValue
|
|
@@ -345459,7 +345462,7 @@ function Config({
|
|
|
345459
345462
|
}
|
|
345460
345463
|
}, undefined, false, undefined, this)
|
|
345461
345464
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
|
|
345462
|
-
currentVersion: "1.30.
|
|
345465
|
+
currentVersion: "1.30.3",
|
|
345463
345466
|
onChoice: (choice) => {
|
|
345464
345467
|
setShowSubmenu(null);
|
|
345465
345468
|
setTabsHidden(false);
|
|
@@ -345471,7 +345474,7 @@ function Config({
|
|
|
345471
345474
|
autoUpdatesChannel: "stable"
|
|
345472
345475
|
};
|
|
345473
345476
|
if (choice === "stay") {
|
|
345474
|
-
newSettings.minimumVersion = "1.30.
|
|
345477
|
+
newSettings.minimumVersion = "1.30.3";
|
|
345475
345478
|
}
|
|
345476
345479
|
updateSettingsForSource("userSettings", newSettings);
|
|
345477
345480
|
setSettingsData((prev_27) => ({
|
|
@@ -353541,7 +353544,7 @@ function HelpV2(t0) {
|
|
|
353541
353544
|
let t6;
|
|
353542
353545
|
if ($3[31] !== tabs) {
|
|
353543
353546
|
t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
|
|
353544
|
-
title: `UR v${"1.30.
|
|
353547
|
+
title: `UR v${"1.30.3"}`,
|
|
353545
353548
|
color: "professionalBlue",
|
|
353546
353549
|
defaultTab: "general",
|
|
353547
353550
|
children: tabs
|
|
@@ -354287,7 +354290,7 @@ function buildToolUseContext(tools, readFileStateCache) {
|
|
|
354287
354290
|
async function handleInitialize(options2) {
|
|
354288
354291
|
return {
|
|
354289
354292
|
name: "ur-agent",
|
|
354290
|
-
version: "1.30.
|
|
354293
|
+
version: "1.30.3",
|
|
354291
354294
|
protocolVersion: "0.1.0",
|
|
354292
354295
|
workspaceRoot: options2.cwd,
|
|
354293
354296
|
capabilities: {
|
|
@@ -374411,7 +374414,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
374411
374414
|
return [];
|
|
374412
374415
|
}
|
|
374413
374416
|
}
|
|
374414
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.30.
|
|
374417
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.30.3") {
|
|
374415
374418
|
if (process.env.USER_TYPE === "ant") {
|
|
374416
374419
|
const changelog = "";
|
|
374417
374420
|
if (changelog) {
|
|
@@ -374438,7 +374441,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.30.1")
|
|
|
374438
374441
|
releaseNotes
|
|
374439
374442
|
};
|
|
374440
374443
|
}
|
|
374441
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.30.
|
|
374444
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.30.3") {
|
|
374442
374445
|
if (process.env.USER_TYPE === "ant") {
|
|
374443
374446
|
const changelog = "";
|
|
374444
374447
|
if (changelog) {
|
|
@@ -375608,7 +375611,7 @@ function getRecentActivitySync() {
|
|
|
375608
375611
|
return cachedActivity;
|
|
375609
375612
|
}
|
|
375610
375613
|
function getLogoDisplayData() {
|
|
375611
|
-
const version2 = process.env.DEMO_VERSION ?? "1.30.
|
|
375614
|
+
const version2 = process.env.DEMO_VERSION ?? "1.30.3";
|
|
375612
375615
|
const serverUrl = getDirectConnectServerUrl();
|
|
375613
375616
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd2());
|
|
375614
375617
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -376397,7 +376400,7 @@ function LogoV2() {
|
|
|
376397
376400
|
if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
376398
376401
|
t2 = () => {
|
|
376399
376402
|
const currentConfig = getGlobalConfig();
|
|
376400
|
-
if (currentConfig.lastReleaseNotesSeen === "1.30.
|
|
376403
|
+
if (currentConfig.lastReleaseNotesSeen === "1.30.3") {
|
|
376401
376404
|
return;
|
|
376402
376405
|
}
|
|
376403
376406
|
saveGlobalConfig(_temp326);
|
|
@@ -377082,12 +377085,12 @@ function LogoV2() {
|
|
|
377082
377085
|
return t41;
|
|
377083
377086
|
}
|
|
377084
377087
|
function _temp326(current) {
|
|
377085
|
-
if (current.lastReleaseNotesSeen === "1.30.
|
|
377088
|
+
if (current.lastReleaseNotesSeen === "1.30.3") {
|
|
377086
377089
|
return current;
|
|
377087
377090
|
}
|
|
377088
377091
|
return {
|
|
377089
377092
|
...current,
|
|
377090
|
-
lastReleaseNotesSeen: "1.30.
|
|
377093
|
+
lastReleaseNotesSeen: "1.30.3"
|
|
377091
377094
|
};
|
|
377092
377095
|
}
|
|
377093
377096
|
function _temp243(s_0) {
|
|
@@ -592802,7 +592805,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
592802
592805
|
smapsRollup,
|
|
592803
592806
|
platform: process.platform,
|
|
592804
592807
|
nodeVersion: process.version,
|
|
592805
|
-
ccVersion: "1.30.
|
|
592808
|
+
ccVersion: "1.30.3"
|
|
592806
592809
|
};
|
|
592807
592810
|
}
|
|
592808
592811
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -593388,7 +593391,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
593388
593391
|
var call136 = async () => {
|
|
593389
593392
|
return {
|
|
593390
593393
|
type: "text",
|
|
593391
|
-
value: "1.30.
|
|
593394
|
+
value: "1.30.3"
|
|
593392
593395
|
};
|
|
593393
593396
|
}, version2, version_default;
|
|
593394
593397
|
var init_version = __esm(() => {
|
|
@@ -603305,7 +603308,7 @@ function generateHtmlReport(data, insights) {
|
|
|
603305
603308
|
</html>`;
|
|
603306
603309
|
}
|
|
603307
603310
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
603308
|
-
const version3 = typeof MACRO !== "undefined" ? "1.30.
|
|
603311
|
+
const version3 = typeof MACRO !== "undefined" ? "1.30.3" : "unknown";
|
|
603309
603312
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
603310
603313
|
const facets_summary = {
|
|
603311
603314
|
total: facets.size,
|
|
@@ -607583,7 +607586,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
607583
607586
|
init_settings2();
|
|
607584
607587
|
init_slowOperations();
|
|
607585
607588
|
init_uuid();
|
|
607586
|
-
VERSION5 = typeof MACRO !== "undefined" ? "1.30.
|
|
607589
|
+
VERSION5 = typeof MACRO !== "undefined" ? "1.30.3" : "unknown";
|
|
607587
607590
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
607588
607591
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
607589
607592
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -608788,7 +608791,7 @@ var init_filesystem = __esm(() => {
|
|
|
608788
608791
|
});
|
|
608789
608792
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
608790
608793
|
const nonce = randomBytes18(16).toString("hex");
|
|
608791
|
-
return join200(getURTempDir(), "bundled-skills", "1.30.
|
|
608794
|
+
return join200(getURTempDir(), "bundled-skills", "1.30.3", nonce);
|
|
608792
608795
|
});
|
|
608793
608796
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
608794
608797
|
});
|
|
@@ -615085,7 +615088,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
615085
615088
|
}
|
|
615086
615089
|
function computeFingerprintFromMessages(messages) {
|
|
615087
615090
|
const firstMessageText = extractFirstMessageText(messages);
|
|
615088
|
-
return computeFingerprint(firstMessageText, "1.30.
|
|
615091
|
+
return computeFingerprint(firstMessageText, "1.30.3");
|
|
615089
615092
|
}
|
|
615090
615093
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
615091
615094
|
var init_fingerprint = () => {};
|
|
@@ -616952,7 +616955,7 @@ async function sideQuery(opts) {
|
|
|
616952
616955
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
616953
616956
|
}
|
|
616954
616957
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
616955
|
-
const fingerprint = computeFingerprint(messageText2, "1.30.
|
|
616958
|
+
const fingerprint = computeFingerprint(messageText2, "1.30.3");
|
|
616956
616959
|
const attributionHeader = getAttributionHeader(fingerprint);
|
|
616957
616960
|
const systemBlocks = [
|
|
616958
616961
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -621689,7 +621692,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
621689
621692
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
621690
621693
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
621691
621694
|
betas: getSdkBetas(),
|
|
621692
|
-
ur_version: "1.30.
|
|
621695
|
+
ur_version: "1.30.3",
|
|
621693
621696
|
output_style: outputStyle2,
|
|
621694
621697
|
agents: inputs.agents.map((agent) => agent.agentType),
|
|
621695
621698
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -636317,7 +636320,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
636317
636320
|
function getSemverPart(version3) {
|
|
636318
636321
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
636319
636322
|
}
|
|
636320
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.30.
|
|
636323
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.30.3") {
|
|
636321
636324
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
|
|
636322
636325
|
if (!updatedVersion) {
|
|
636323
636326
|
return null;
|
|
@@ -636366,7 +636369,7 @@ function AutoUpdater({
|
|
|
636366
636369
|
return;
|
|
636367
636370
|
}
|
|
636368
636371
|
if (false) {}
|
|
636369
|
-
const currentVersion = "1.30.
|
|
636372
|
+
const currentVersion = "1.30.3";
|
|
636370
636373
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
636371
636374
|
let latestVersion = await getLatestVersion(channel);
|
|
636372
636375
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -636595,12 +636598,12 @@ function NativeAutoUpdater({
|
|
|
636595
636598
|
logEvent("tengu_native_auto_updater_start", {});
|
|
636596
636599
|
try {
|
|
636597
636600
|
const maxVersion = await getMaxVersion();
|
|
636598
|
-
if (maxVersion && gt("1.30.
|
|
636601
|
+
if (maxVersion && gt("1.30.3", maxVersion)) {
|
|
636599
636602
|
const msg = await getMaxVersionMessage();
|
|
636600
636603
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
636601
636604
|
}
|
|
636602
636605
|
const result = await installLatest(channel);
|
|
636603
|
-
const currentVersion = "1.30.
|
|
636606
|
+
const currentVersion = "1.30.3";
|
|
636604
636607
|
const latencyMs = Date.now() - startTime;
|
|
636605
636608
|
if (result.lockFailed) {
|
|
636606
636609
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -636737,17 +636740,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
636737
636740
|
const maxVersion = await getMaxVersion();
|
|
636738
636741
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
636739
636742
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
636740
|
-
if (gte("1.30.
|
|
636741
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.30.
|
|
636743
|
+
if (gte("1.30.3", maxVersion)) {
|
|
636744
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.30.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
636742
636745
|
setUpdateAvailable(false);
|
|
636743
636746
|
return;
|
|
636744
636747
|
}
|
|
636745
636748
|
latest = maxVersion;
|
|
636746
636749
|
}
|
|
636747
|
-
const hasUpdate = latest && !gte("1.30.
|
|
636750
|
+
const hasUpdate = latest && !gte("1.30.3", latest) && !shouldSkipVersion(latest);
|
|
636748
636751
|
setUpdateAvailable(!!hasUpdate);
|
|
636749
636752
|
if (hasUpdate) {
|
|
636750
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.30.
|
|
636753
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.30.3"} -> ${latest}`);
|
|
636751
636754
|
}
|
|
636752
636755
|
};
|
|
636753
636756
|
$3[0] = t1;
|
|
@@ -636781,7 +636784,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
636781
636784
|
wrap: "truncate",
|
|
636782
636785
|
children: [
|
|
636783
636786
|
"currentVersion: ",
|
|
636784
|
-
"1.30.
|
|
636787
|
+
"1.30.3"
|
|
636785
636788
|
]
|
|
636786
636789
|
}, undefined, true, undefined, this);
|
|
636787
636790
|
$3[3] = verbose;
|
|
@@ -649238,7 +649241,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
649238
649241
|
project_dir: getOriginalCwd(),
|
|
649239
649242
|
added_dirs: addedDirs
|
|
649240
649243
|
},
|
|
649241
|
-
version: "1.30.
|
|
649244
|
+
version: "1.30.3",
|
|
649242
649245
|
output_style: {
|
|
649243
649246
|
name: outputStyleName
|
|
649244
649247
|
},
|
|
@@ -649321,7 +649324,7 @@ function StatusLineInner({
|
|
|
649321
649324
|
const taskValues = Object.values(tasks2);
|
|
649322
649325
|
const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
|
|
649323
649326
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
649324
|
-
version: "1.30.
|
|
649327
|
+
version: "1.30.3",
|
|
649325
649328
|
providerLabel: providerRuntime.providerLabel,
|
|
649326
649329
|
authMode: providerRuntime.authLabel,
|
|
649327
649330
|
model: providerRuntime.model ?? renderModelName(mainLoopModel),
|
|
@@ -660809,7 +660812,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
660809
660812
|
} catch {}
|
|
660810
660813
|
const data = {
|
|
660811
660814
|
trigger: trigger2,
|
|
660812
|
-
version: "1.30.
|
|
660815
|
+
version: "1.30.3",
|
|
660813
660816
|
platform: process.platform,
|
|
660814
660817
|
transcript,
|
|
660815
660818
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -672693,7 +672696,7 @@ function WelcomeV2() {
|
|
|
672693
672696
|
dimColor: true,
|
|
672694
672697
|
children: [
|
|
672695
672698
|
"v",
|
|
672696
|
-
"1.30.
|
|
672699
|
+
"1.30.3"
|
|
672697
672700
|
]
|
|
672698
672701
|
}, undefined, true, undefined, this)
|
|
672699
672702
|
]
|
|
@@ -673953,7 +673956,7 @@ function completeOnboarding() {
|
|
|
673953
673956
|
saveGlobalConfig((current) => ({
|
|
673954
673957
|
...current,
|
|
673955
673958
|
hasCompletedOnboarding: true,
|
|
673956
|
-
lastOnboardingVersion: "1.30.
|
|
673959
|
+
lastOnboardingVersion: "1.30.3"
|
|
673957
673960
|
}));
|
|
673958
673961
|
}
|
|
673959
673962
|
function showDialog(root2, renderer) {
|
|
@@ -679057,7 +679060,7 @@ function appendToLog(path24, message) {
|
|
|
679057
679060
|
cwd: getFsImplementation().cwd(),
|
|
679058
679061
|
userType: process.env.USER_TYPE,
|
|
679059
679062
|
sessionId: getSessionId(),
|
|
679060
|
-
version: "1.30.
|
|
679063
|
+
version: "1.30.3"
|
|
679061
679064
|
};
|
|
679062
679065
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
679063
679066
|
}
|
|
@@ -683151,8 +683154,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
683151
683154
|
}
|
|
683152
683155
|
async function checkEnvLessBridgeMinVersion() {
|
|
683153
683156
|
const cfg = await getEnvLessBridgeConfig();
|
|
683154
|
-
if (cfg.min_version && lt("1.30.
|
|
683155
|
-
return `Your version of UR (${"1.30.
|
|
683157
|
+
if (cfg.min_version && lt("1.30.3", cfg.min_version)) {
|
|
683158
|
+
return `Your version of UR (${"1.30.3"}) is too old for Remote Control.
|
|
683156
683159
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
683157
683160
|
}
|
|
683158
683161
|
return null;
|
|
@@ -683626,7 +683629,7 @@ async function initBridgeCore(params) {
|
|
|
683626
683629
|
const rawApi = createBridgeApiClient({
|
|
683627
683630
|
baseUrl,
|
|
683628
683631
|
getAccessToken,
|
|
683629
|
-
runnerVersion: "1.30.
|
|
683632
|
+
runnerVersion: "1.30.3",
|
|
683630
683633
|
onDebug: logForDebugging,
|
|
683631
683634
|
onAuth401,
|
|
683632
683635
|
getTrustedDeviceToken
|
|
@@ -689308,7 +689311,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
|
|
|
689308
689311
|
setCwd(cwd3);
|
|
689309
689312
|
const server2 = new Server({
|
|
689310
689313
|
name: "ur/tengu",
|
|
689311
|
-
version: "1.30.
|
|
689314
|
+
version: "1.30.3"
|
|
689312
689315
|
}, {
|
|
689313
689316
|
capabilities: {
|
|
689314
689317
|
tools: {}
|
|
@@ -691285,7 +691288,7 @@ async function update() {
|
|
|
691285
691288
|
logEvent("tengu_update_check", {});
|
|
691286
691289
|
const diagnostic = await getDoctorDiagnostic();
|
|
691287
691290
|
const result = await checkUpgradeStatus({
|
|
691288
|
-
currentVersion: "1.30.
|
|
691291
|
+
currentVersion: "1.30.3",
|
|
691289
691292
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
691290
691293
|
installationType: diagnostic.installationType,
|
|
691291
691294
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -692531,7 +692534,7 @@ ${customInstructions}` : customInstructions;
|
|
|
692531
692534
|
}
|
|
692532
692535
|
}
|
|
692533
692536
|
logForDiagnosticsNoPII("info", "started", {
|
|
692534
|
-
version: "1.30.
|
|
692537
|
+
version: "1.30.3",
|
|
692535
692538
|
is_native_binary: isInBundledMode()
|
|
692536
692539
|
});
|
|
692537
692540
|
registerCleanup(async () => {
|
|
@@ -693317,7 +693320,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
693317
693320
|
pendingHookMessages
|
|
693318
693321
|
}, renderAndRun);
|
|
693319
693322
|
}
|
|
693320
|
-
}).version("1.30.
|
|
693323
|
+
}).version("1.30.3 (UR-AGENT)", "-v, --version", "Output the version number");
|
|
693321
693324
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
693322
693325
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
693323
693326
|
if (canUserConfigureAdvisor()) {
|
|
@@ -694202,7 +694205,7 @@ if (false) {}
|
|
|
694202
694205
|
async function main2() {
|
|
694203
694206
|
const args = process.argv.slice(2);
|
|
694204
694207
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
694205
|
-
console.log(`${"1.30.
|
|
694208
|
+
console.log(`${"1.30.3"} (UR-AGENT)`);
|
|
694206
694209
|
return;
|
|
694207
694210
|
}
|
|
694208
694211
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|
package/docs/USAGE.md
CHANGED
|
@@ -246,7 +246,7 @@ Interactive sessions include a compact bottom status bar when stdout is a real
|
|
|
246
246
|
terminal:
|
|
247
247
|
|
|
248
248
|
```text
|
|
249
|
-
UR-AGENT v1.30.
|
|
249
|
+
UR-AGENT v1.30.3 | Provider: Codex CLI | Auth: subscription | model: codex/gpt-5.5 | mode: ask | branch: main | tasks: idle | Update: 1.30.2 -> 1.30.3 available
|
|
250
250
|
```
|
|
251
251
|
|
|
252
252
|
The bar is not rendered in non-interactive mode, CI, dumb terminals, or
|
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.30.
|
|
47
|
+
<p class="eyebrow">Version 1.30.3</p>
|
|
48
48
|
<h1>UR-AGENT Documentation</h1>
|
|
49
49
|
<p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-AGENT.</p>
|
|
50
50
|
</div>
|
|
@@ -159,7 +159,7 @@ ur config set provider.fallback ollama</code></pre>
|
|
|
159
159
|
</article>
|
|
160
160
|
<article>
|
|
161
161
|
<h3>Status bar and updates</h3>
|
|
162
|
-
<pre><code>UR-AGENT v1.30.
|
|
162
|
+
<pre><code>UR-AGENT v1.30.3 | Provider: Codex CLI | Auth: subscription | model: codex/gpt-5.5 | mode: ask | branch: main | tasks: idle | Update: 1.30.2 -> 1.30.3 available</code></pre>
|
|
163
163
|
<p>The interactive status bar shows provider, auth mode, model, branch, task state, checks status when known, and update availability. It is hidden in CI, dumb terminals, and non-interactive mode.</p>
|
|
164
164
|
</article>
|
|
165
165
|
</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.30.
|
|
5
|
+
"version": "1.30.3",
|
|
6
6
|
"publisher": "ur-agent",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED