ur-agent 1.61.2 → 1.63.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.63.0
|
|
4
|
+
|
|
5
|
+
- Added size-triggered pruning of superseded tool results
|
|
6
|
+
(`context.pruneToolResults`). UR already had the clearing machinery, but
|
|
7
|
+
nothing external could reach it: cached microcompact is internal-only and
|
|
8
|
+
returns unchanged messages in shipped builds, and the time-based trigger
|
|
9
|
+
needs an hour of idling *and* a GrowthBook flag that a local install never
|
|
10
|
+
receives. An active session therefore pruned nothing and ran until autocompact
|
|
11
|
+
replaced the whole history with a summary.
|
|
12
|
+
- Pruning fires only when it would free at least 20k tokens, because clearing
|
|
13
|
+
invalidates the cached prefix and a small cleanup costs more in cache misses
|
|
14
|
+
than it reclaims. Short sessions are untouched; a 40-read session frees ~64k.
|
|
15
|
+
- The most recent 8 compactable results are a protected zone and are never
|
|
16
|
+
cleared, so the model keeps the working set it is reasoning about.
|
|
17
|
+
`keepRecent` is floored at 1: clearing everything would leave no working
|
|
18
|
+
context, and `slice(-0)` would paradoxically keep all of it.
|
|
19
|
+
- Configured through settings rather than GrowthBook, so it can actually be
|
|
20
|
+
turned off or tuned.
|
|
21
|
+
|
|
22
|
+
## 1.62.0
|
|
23
|
+
|
|
24
|
+
- `ur agent-inspect --costs` now labels each row with what the agent was
|
|
25
|
+
actually doing. A real 62-agent fan-out reported opaque hex ids, so you could
|
|
26
|
+
see that one agent burned 810k input tokens — 14% of the session — without
|
|
27
|
+
being able to tell which of your subagents it was. The description already
|
|
28
|
+
existed in the `agent-{id}.meta.json` sidecar and was simply never read.
|
|
29
|
+
- Agents with missing or malformed metadata still appear, keyed by id.
|
|
30
|
+
Historical sessions predate the description field, and dropping those rows
|
|
31
|
+
would lose spend in order to avoid losing a label.
|
|
32
|
+
|
|
3
33
|
## 1.61.2
|
|
4
34
|
|
|
5
35
|
- Fixed `ur agent-inspect --costs` reporting nothing, always. It resolved the
|
package/dist/cli.js
CHANGED
|
@@ -75207,7 +75207,7 @@ var init_auth = __esm(() => {
|
|
|
75207
75207
|
|
|
75208
75208
|
// src/utils/userAgent.ts
|
|
75209
75209
|
function getURCodeUserAgent() {
|
|
75210
|
-
return `ur/${"1.
|
|
75210
|
+
return `ur/${"1.63.0"}`;
|
|
75211
75211
|
}
|
|
75212
75212
|
|
|
75213
75213
|
// src/utils/workloadContext.ts
|
|
@@ -75229,7 +75229,7 @@ function getUserAgent() {
|
|
|
75229
75229
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
75230
75230
|
const workload = getWorkload();
|
|
75231
75231
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
75232
|
-
return `ur-cli/${"1.
|
|
75232
|
+
return `ur-cli/${"1.63.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
75233
75233
|
}
|
|
75234
75234
|
function getMCPUserAgent() {
|
|
75235
75235
|
const parts = [];
|
|
@@ -75243,7 +75243,7 @@ function getMCPUserAgent() {
|
|
|
75243
75243
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
75244
75244
|
}
|
|
75245
75245
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
75246
|
-
return `ur/${"1.
|
|
75246
|
+
return `ur/${"1.63.0"}${suffix}`;
|
|
75247
75247
|
}
|
|
75248
75248
|
function getWebFetchUserAgent() {
|
|
75249
75249
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -75381,7 +75381,7 @@ var init_user = __esm(() => {
|
|
|
75381
75381
|
deviceId,
|
|
75382
75382
|
sessionId: getSessionId(),
|
|
75383
75383
|
email: getEmail(),
|
|
75384
|
-
appVersion: "1.
|
|
75384
|
+
appVersion: "1.63.0",
|
|
75385
75385
|
platform: getHostPlatformForAnalytics(),
|
|
75386
75386
|
organizationUuid,
|
|
75387
75387
|
accountUuid,
|
|
@@ -83581,7 +83581,7 @@ var init_metadata = __esm(() => {
|
|
|
83581
83581
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
83582
83582
|
WHITESPACE_REGEX = /\s+/;
|
|
83583
83583
|
getVersionBase = memoize_default(() => {
|
|
83584
|
-
const match = "1.
|
|
83584
|
+
const match = "1.63.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
83585
83585
|
return match ? match[0] : undefined;
|
|
83586
83586
|
});
|
|
83587
83587
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -83621,7 +83621,7 @@ var init_metadata = __esm(() => {
|
|
|
83621
83621
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
83622
83622
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
83623
83623
|
isURAiAuth: isURAISubscriber(),
|
|
83624
|
-
version: "1.
|
|
83624
|
+
version: "1.63.0",
|
|
83625
83625
|
versionBase: getVersionBase(),
|
|
83626
83626
|
buildTime: "",
|
|
83627
83627
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -84291,7 +84291,7 @@ function initialize1PEventLogging() {
|
|
|
84291
84291
|
const platform2 = getPlatform();
|
|
84292
84292
|
const attributes = {
|
|
84293
84293
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
84294
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.
|
|
84294
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.63.0"
|
|
84295
84295
|
};
|
|
84296
84296
|
if (platform2 === "wsl") {
|
|
84297
84297
|
const wslVersion = getWslVersion();
|
|
@@ -84319,7 +84319,7 @@ function initialize1PEventLogging() {
|
|
|
84319
84319
|
})
|
|
84320
84320
|
]
|
|
84321
84321
|
});
|
|
84322
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.
|
|
84322
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.63.0");
|
|
84323
84323
|
}
|
|
84324
84324
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
84325
84325
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -86838,6 +86838,13 @@ var init_types2 = __esm(() => {
|
|
|
86838
86838
|
name: exports_external.string().optional().describe("Synthesiser voice name"),
|
|
86839
86839
|
rate: exports_external.number().optional().describe("Words per minute")
|
|
86840
86840
|
}).optional().describe("Spoken output settings"),
|
|
86841
|
+
context: exports_external.object({
|
|
86842
|
+
pruneToolResults: exports_external.object({
|
|
86843
|
+
enabled: exports_external.boolean().optional(),
|
|
86844
|
+
minTokensFreed: exports_external.number().optional(),
|
|
86845
|
+
keepRecent: exports_external.number().optional()
|
|
86846
|
+
}).optional().describe("Size-triggered pruning of superseded tool results (old file reads, greps, shell output). " + "Prunes only when it would free at least minTokensFreed tokens, keeping the most recent " + "keepRecent results untouched. Less destructive than letting context fill until autocompact " + "replaces the whole history with a summary.")
|
|
86847
|
+
}).optional().describe("Context management behaviour."),
|
|
86841
86848
|
memory: exports_external.object({
|
|
86842
86849
|
suggest: exports_external.boolean().optional().describe("Propose durable facts after each turn"),
|
|
86843
86850
|
suggestMinConfidence: exports_external.number().optional().describe("Confidence floor for proposals (0-1, default 0.75)")
|
|
@@ -94158,7 +94165,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
94158
94165
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
94159
94166
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
94160
94167
|
}
|
|
94161
|
-
var urVersion = "1.
|
|
94168
|
+
var urVersion = "1.63.0", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
|
|
94162
94169
|
var init_trends = __esm(() => {
|
|
94163
94170
|
init_a2aCardSignature();
|
|
94164
94171
|
coverage = [
|
|
@@ -96961,7 +96968,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
96961
96968
|
if (!isAttributionHeaderEnabled()) {
|
|
96962
96969
|
return "";
|
|
96963
96970
|
}
|
|
96964
|
-
const version2 = `${"1.
|
|
96971
|
+
const version2 = `${"1.63.0"}.${fingerprint}`;
|
|
96965
96972
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
96966
96973
|
const cch = "";
|
|
96967
96974
|
const workload = getWorkload();
|
|
@@ -145458,6 +145465,27 @@ var init_prompt7 = __esm(() => {
|
|
|
145458
145465
|
init_constants2();
|
|
145459
145466
|
});
|
|
145460
145467
|
|
|
145468
|
+
// src/services/compact/toolResultPruningConfig.ts
|
|
145469
|
+
function getToolResultPruningConfig() {
|
|
145470
|
+
const configured = getInitialSettings()?.context?.pruneToolResults;
|
|
145471
|
+
if (!configured)
|
|
145472
|
+
return TOOL_RESULT_PRUNING_DEFAULTS;
|
|
145473
|
+
return {
|
|
145474
|
+
enabled: typeof configured.enabled === "boolean" ? configured.enabled : TOOL_RESULT_PRUNING_DEFAULTS.enabled,
|
|
145475
|
+
minTokensFreed: typeof configured.minTokensFreed === "number" && Number.isFinite(configured.minTokensFreed) && configured.minTokensFreed >= 0 ? configured.minTokensFreed : TOOL_RESULT_PRUNING_DEFAULTS.minTokensFreed,
|
|
145476
|
+
keepRecent: typeof configured.keepRecent === "number" && Number.isInteger(configured.keepRecent) && configured.keepRecent >= 1 ? configured.keepRecent : TOOL_RESULT_PRUNING_DEFAULTS.keepRecent
|
|
145477
|
+
};
|
|
145478
|
+
}
|
|
145479
|
+
var TOOL_RESULT_PRUNING_DEFAULTS;
|
|
145480
|
+
var init_toolResultPruningConfig = __esm(() => {
|
|
145481
|
+
init_settings2();
|
|
145482
|
+
TOOL_RESULT_PRUNING_DEFAULTS = {
|
|
145483
|
+
enabled: true,
|
|
145484
|
+
minTokensFreed: 20000,
|
|
145485
|
+
keepRecent: 8
|
|
145486
|
+
};
|
|
145487
|
+
});
|
|
145488
|
+
|
|
145461
145489
|
// src/tools/PowerShellTool/toolName.ts
|
|
145462
145490
|
var POWERSHELL_TOOL_NAME = "PowerShell";
|
|
145463
145491
|
|
|
@@ -146338,6 +146366,10 @@ async function microcompactMessages(messages, toolUseContext, querySource) {
|
|
|
146338
146366
|
if (timeBasedResult) {
|
|
146339
146367
|
return timeBasedResult;
|
|
146340
146368
|
}
|
|
146369
|
+
const sizeBasedResult = maybeSizeBasedMicrocompact(messages, querySource);
|
|
146370
|
+
if (sizeBasedResult) {
|
|
146371
|
+
return sizeBasedResult;
|
|
146372
|
+
}
|
|
146341
146373
|
return { messages };
|
|
146342
146374
|
}
|
|
146343
146375
|
function evaluateTimeBasedTrigger(messages, querySource) {
|
|
@@ -146355,6 +146387,56 @@ function evaluateTimeBasedTrigger(messages, querySource) {
|
|
|
146355
146387
|
}
|
|
146356
146388
|
return { gapMinutes, config: config2 };
|
|
146357
146389
|
}
|
|
146390
|
+
function clearOldToolResults(messages, keepRecent) {
|
|
146391
|
+
const compactableIds = collectCompactableToolIds(messages);
|
|
146392
|
+
const keep = Math.max(1, keepRecent);
|
|
146393
|
+
const keepSet = new Set(compactableIds.slice(-keep));
|
|
146394
|
+
const clearSet = new Set(compactableIds.filter((id) => !keepSet.has(id)));
|
|
146395
|
+
if (clearSet.size === 0)
|
|
146396
|
+
return null;
|
|
146397
|
+
let tokensSaved = 0;
|
|
146398
|
+
const result = messages.map((message) => {
|
|
146399
|
+
if (message.type !== "user" || !Array.isArray(message.message.content)) {
|
|
146400
|
+
return message;
|
|
146401
|
+
}
|
|
146402
|
+
let touched = false;
|
|
146403
|
+
const newContent = message.message.content.map((block) => {
|
|
146404
|
+
if (block.type === "tool_result" && clearSet.has(block.tool_use_id) && block.content !== TIME_BASED_MC_CLEARED_MESSAGE) {
|
|
146405
|
+
tokensSaved += calculateToolResultTokens(block);
|
|
146406
|
+
touched = true;
|
|
146407
|
+
return { ...block, content: TIME_BASED_MC_CLEARED_MESSAGE };
|
|
146408
|
+
}
|
|
146409
|
+
return block;
|
|
146410
|
+
});
|
|
146411
|
+
if (!touched)
|
|
146412
|
+
return message;
|
|
146413
|
+
return { ...message, message: { ...message.message, content: newContent } };
|
|
146414
|
+
});
|
|
146415
|
+
if (tokensSaved === 0)
|
|
146416
|
+
return null;
|
|
146417
|
+
return { messages: result, tokensSaved, cleared: clearSet.size };
|
|
146418
|
+
}
|
|
146419
|
+
function maybeSizeBasedMicrocompact(messages, querySource) {
|
|
146420
|
+
const config2 = getToolResultPruningConfig();
|
|
146421
|
+
if (!config2.enabled || !querySource || !isMainThreadSource(querySource)) {
|
|
146422
|
+
return null;
|
|
146423
|
+
}
|
|
146424
|
+
const cleared = clearOldToolResults(messages, config2.keepRecent);
|
|
146425
|
+
if (!cleared || cleared.tokensSaved < config2.minTokensFreed) {
|
|
146426
|
+
return null;
|
|
146427
|
+
}
|
|
146428
|
+
logEvent("tengu_size_based_microcompact", {
|
|
146429
|
+
toolsCleared: cleared.cleared,
|
|
146430
|
+
keepRecent: config2.keepRecent,
|
|
146431
|
+
minTokensFreed: config2.minTokensFreed,
|
|
146432
|
+
tokensSaved: cleared.tokensSaved
|
|
146433
|
+
});
|
|
146434
|
+
logForDebugging(`[SIZE-BASED MC] cleared ${cleared.cleared} tool results (~${cleared.tokensSaved} tokens >= ${config2.minTokensFreed} threshold), kept last ${config2.keepRecent}`);
|
|
146435
|
+
suppressCompactWarning();
|
|
146436
|
+
resetMicrocompactState();
|
|
146437
|
+
if (false) {}
|
|
146438
|
+
return { messages: cleared.messages };
|
|
146439
|
+
}
|
|
146358
146440
|
function maybeTimeBasedMicrocompact(messages, querySource) {
|
|
146359
146441
|
const trigger = evaluateTimeBasedTrigger(messages, querySource);
|
|
146360
146442
|
if (!trigger) {
|
|
@@ -146408,6 +146490,7 @@ function maybeTimeBasedMicrocompact(messages, querySource) {
|
|
|
146408
146490
|
}
|
|
146409
146491
|
var TIME_BASED_MC_CLEARED_MESSAGE = "[Old tool result content cleared]", IMAGE_MAX_TOKEN_SIZE = 2000, COMPACTABLE_TOOLS, cachedMCState = null, pendingCacheEdits = null;
|
|
146410
146492
|
var init_microCompact = __esm(() => {
|
|
146493
|
+
init_toolResultPruningConfig();
|
|
146411
146494
|
init_prompt2();
|
|
146412
146495
|
init_prompt3();
|
|
146413
146496
|
init_prompt();
|
|
@@ -154550,7 +154633,7 @@ var init_projectSafety = __esm(() => {
|
|
|
154550
154633
|
function getInstruments() {
|
|
154551
154634
|
if (instruments)
|
|
154552
154635
|
return instruments;
|
|
154553
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.
|
|
154636
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.63.0");
|
|
154554
154637
|
instruments = {
|
|
154555
154638
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
154556
154639
|
description: "GenAI operation duration.",
|
|
@@ -154648,7 +154731,7 @@ function genAiAgentAttributes() {
|
|
|
154648
154731
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
154649
154732
|
"gen_ai.provider.name": "ur",
|
|
154650
154733
|
"gen_ai.agent.name": "UR-Nexus",
|
|
154651
|
-
"gen_ai.agent.version": "1.
|
|
154734
|
+
"gen_ai.agent.version": "1.63.0"
|
|
154652
154735
|
};
|
|
154653
154736
|
}
|
|
154654
154737
|
function genAiWorkflowAttributes(workflowName) {
|
|
@@ -154664,7 +154747,7 @@ function genAiWorkflowAttributes(workflowName) {
|
|
|
154664
154747
|
function startGenAiWorkflowSpan(workflowName) {
|
|
154665
154748
|
const attributes = genAiWorkflowAttributes(workflowName);
|
|
154666
154749
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
154667
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.
|
|
154750
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.63.0").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
154668
154751
|
}
|
|
154669
154752
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
154670
154753
|
try {
|
|
@@ -154702,7 +154785,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
154702
154785
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
154703
154786
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
154704
154787
|
}
|
|
154705
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.
|
|
154788
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.63.0").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
154706
154789
|
}
|
|
154707
154790
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
154708
154791
|
try {
|
|
@@ -206221,7 +206304,7 @@ function getTelemetryAttributes() {
|
|
|
206221
206304
|
attributes["session.id"] = sessionId;
|
|
206222
206305
|
}
|
|
206223
206306
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
206224
|
-
attributes["app.version"] = "1.
|
|
206307
|
+
attributes["app.version"] = "1.63.0";
|
|
206225
206308
|
}
|
|
206226
206309
|
const oauthAccount = getOauthAccountInfo();
|
|
206227
206310
|
if (oauthAccount) {
|
|
@@ -241995,7 +242078,7 @@ function getInstallationEnv() {
|
|
|
241995
242078
|
return;
|
|
241996
242079
|
}
|
|
241997
242080
|
function getURCodeVersion() {
|
|
241998
|
-
return "1.
|
|
242081
|
+
return "1.63.0";
|
|
241999
242082
|
}
|
|
242000
242083
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
242001
242084
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -249326,7 +249409,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
249326
249409
|
const client2 = new Client({
|
|
249327
249410
|
name: "ur",
|
|
249328
249411
|
title: "UR",
|
|
249329
|
-
version: "1.
|
|
249412
|
+
version: "1.63.0",
|
|
249330
249413
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
249331
249414
|
websiteUrl: PRODUCT_URL
|
|
249332
249415
|
}, {
|
|
@@ -249686,7 +249769,7 @@ var init_client5 = __esm(() => {
|
|
|
249686
249769
|
const client2 = new Client({
|
|
249687
249770
|
name: "ur",
|
|
249688
249771
|
title: "UR",
|
|
249689
|
-
version: "1.
|
|
249772
|
+
version: "1.63.0",
|
|
249690
249773
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
249691
249774
|
websiteUrl: PRODUCT_URL
|
|
249692
249775
|
}, {
|
|
@@ -262287,7 +262370,7 @@ async function createRuntime() {
|
|
|
262287
262370
|
bootstrapTelemetry();
|
|
262288
262371
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
262289
262372
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
262290
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.
|
|
262373
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.63.0"
|
|
262291
262374
|
}));
|
|
262292
262375
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
262293
262376
|
resource,
|
|
@@ -262320,11 +262403,11 @@ async function createRuntime() {
|
|
|
262320
262403
|
setMeterProvider(meterProvider);
|
|
262321
262404
|
setLoggerProvider(loggerProvider);
|
|
262322
262405
|
if (meterProvider) {
|
|
262323
|
-
const meter = meterProvider.getMeter("ur-agent", "1.
|
|
262406
|
+
const meter = meterProvider.getMeter("ur-agent", "1.63.0");
|
|
262324
262407
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
262325
262408
|
}
|
|
262326
262409
|
if (loggerProvider) {
|
|
262327
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.
|
|
262410
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.63.0"));
|
|
262328
262411
|
}
|
|
262329
262412
|
if (!cleanupRegistered2) {
|
|
262330
262413
|
cleanupRegistered2 = true;
|
|
@@ -262986,9 +263069,9 @@ async function assertMinVersion() {
|
|
|
262986
263069
|
if (false) {}
|
|
262987
263070
|
try {
|
|
262988
263071
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
262989
|
-
if (versionConfig.minVersion && lt("1.
|
|
263072
|
+
if (versionConfig.minVersion && lt("1.63.0", versionConfig.minVersion)) {
|
|
262990
263073
|
console.error(`
|
|
262991
|
-
It looks like your version of UR (${"1.
|
|
263074
|
+
It looks like your version of UR (${"1.63.0"}) needs an update.
|
|
262992
263075
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
262993
263076
|
|
|
262994
263077
|
To update, please run:
|
|
@@ -263204,7 +263287,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
263204
263287
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
263205
263288
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
263206
263289
|
pid: process.pid,
|
|
263207
|
-
currentVersion: "1.
|
|
263290
|
+
currentVersion: "1.63.0"
|
|
263208
263291
|
});
|
|
263209
263292
|
return "in_progress";
|
|
263210
263293
|
}
|
|
@@ -263213,7 +263296,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
263213
263296
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
263214
263297
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
263215
263298
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
263216
|
-
currentVersion: "1.
|
|
263299
|
+
currentVersion: "1.63.0"
|
|
263217
263300
|
});
|
|
263218
263301
|
console.error(`
|
|
263219
263302
|
Error: Windows NPM detected in WSL
|
|
@@ -263748,7 +263831,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
263748
263831
|
}
|
|
263749
263832
|
async function getDoctorDiagnostic() {
|
|
263750
263833
|
const installationType = await getCurrentInstallationType();
|
|
263751
|
-
const version2 = typeof MACRO !== "undefined" ? "1.
|
|
263834
|
+
const version2 = typeof MACRO !== "undefined" ? "1.63.0" : "unknown";
|
|
263752
263835
|
const installationPath = await getInstallationPath();
|
|
263753
263836
|
const invokedBinary = getInvokedBinary();
|
|
263754
263837
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -264683,8 +264766,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
264683
264766
|
const maxVersion = await getMaxVersion();
|
|
264684
264767
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
264685
264768
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
264686
|
-
if (gte("1.
|
|
264687
|
-
logForDebugging(`Native installer: current version ${"1.
|
|
264769
|
+
if (gte("1.63.0", maxVersion)) {
|
|
264770
|
+
logForDebugging(`Native installer: current version ${"1.63.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
264688
264771
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
264689
264772
|
latency_ms: Date.now() - startTime,
|
|
264690
264773
|
max_version: maxVersion,
|
|
@@ -264695,7 +264778,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
264695
264778
|
version2 = maxVersion;
|
|
264696
264779
|
}
|
|
264697
264780
|
}
|
|
264698
|
-
if (!forceReinstall && version2 === "1.
|
|
264781
|
+
if (!forceReinstall && version2 === "1.63.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
264699
264782
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
264700
264783
|
logEvent("tengu_native_update_complete", {
|
|
264701
264784
|
latency_ms: Date.now() - startTime,
|
|
@@ -334894,7 +334977,7 @@ function isAnyTracingEnabled() {
|
|
|
334894
334977
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
334895
334978
|
}
|
|
334896
334979
|
function getTracer() {
|
|
334897
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.
|
|
334980
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.63.0");
|
|
334898
334981
|
}
|
|
334899
334982
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
334900
334983
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -364397,7 +364480,7 @@ function Feedback({
|
|
|
364397
364480
|
platform: env2.platform,
|
|
364398
364481
|
gitRepo: envInfo.isGit,
|
|
364399
364482
|
terminal: env2.terminal,
|
|
364400
|
-
version: "1.
|
|
364483
|
+
version: "1.63.0",
|
|
364401
364484
|
transcript: normalizeMessagesForAPI(messages),
|
|
364402
364485
|
errors: sanitizedErrors,
|
|
364403
364486
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -364589,7 +364672,7 @@ function Feedback({
|
|
|
364589
364672
|
", ",
|
|
364590
364673
|
env2.terminal,
|
|
364591
364674
|
", v",
|
|
364592
|
-
"1.
|
|
364675
|
+
"1.63.0"
|
|
364593
364676
|
]
|
|
364594
364677
|
}, undefined, true, undefined, this)
|
|
364595
364678
|
]
|
|
@@ -364695,7 +364778,7 @@ ${sanitizedDescription}
|
|
|
364695
364778
|
` + `**Environment Info**
|
|
364696
364779
|
` + `- Platform: ${env2.platform}
|
|
364697
364780
|
` + `- Terminal: ${env2.terminal}
|
|
364698
|
-
` + `- Version: ${"1.
|
|
364781
|
+
` + `- Version: ${"1.63.0"}
|
|
364699
364782
|
` + `- Feedback ID: ${feedbackId}
|
|
364700
364783
|
` + `
|
|
364701
364784
|
**Errors**
|
|
@@ -367805,7 +367888,7 @@ function buildPrimarySection() {
|
|
|
367805
367888
|
}, undefined, false, undefined, this);
|
|
367806
367889
|
return [{
|
|
367807
367890
|
label: "Version",
|
|
367808
|
-
value: "1.
|
|
367891
|
+
value: "1.63.0"
|
|
367809
367892
|
}, {
|
|
367810
367893
|
label: "Session name",
|
|
367811
367894
|
value: nameValue
|
|
@@ -371135,7 +371218,7 @@ function Config({
|
|
|
371135
371218
|
}
|
|
371136
371219
|
}, undefined, false, undefined, this)
|
|
371137
371220
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
371138
|
-
currentVersion: "1.
|
|
371221
|
+
currentVersion: "1.63.0",
|
|
371139
371222
|
onChoice: (choice) => {
|
|
371140
371223
|
setShowSubmenu(null);
|
|
371141
371224
|
setTabsHidden(false);
|
|
@@ -371147,7 +371230,7 @@ function Config({
|
|
|
371147
371230
|
autoUpdatesChannel: "stable"
|
|
371148
371231
|
};
|
|
371149
371232
|
if (choice === "stay") {
|
|
371150
|
-
newSettings.minimumVersion = "1.
|
|
371233
|
+
newSettings.minimumVersion = "1.63.0";
|
|
371151
371234
|
}
|
|
371152
371235
|
updateSettingsForSource("userSettings", newSettings);
|
|
371153
371236
|
setSettingsData((prev_27) => ({
|
|
@@ -379211,7 +379294,7 @@ function HelpV2(t0) {
|
|
|
379211
379294
|
let t6;
|
|
379212
379295
|
if ($2[31] !== tabs) {
|
|
379213
379296
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
379214
|
-
title: `UR v${"1.
|
|
379297
|
+
title: `UR v${"1.63.0"}`,
|
|
379215
379298
|
color: "professionalBlue",
|
|
379216
379299
|
defaultTab: "general",
|
|
379217
379300
|
children: tabs
|
|
@@ -380128,7 +380211,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
380128
380211
|
async function handleInitialize(options2) {
|
|
380129
380212
|
return {
|
|
380130
380213
|
name: "UR",
|
|
380131
|
-
version: "1.
|
|
380214
|
+
version: "1.63.0",
|
|
380132
380215
|
protocolVersion: "0.1.0",
|
|
380133
380216
|
workspaceRoot: options2.cwd,
|
|
380134
380217
|
capabilities: {
|
|
@@ -397236,7 +397319,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
397236
397319
|
return [];
|
|
397237
397320
|
}
|
|
397238
397321
|
}
|
|
397239
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.
|
|
397322
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.63.0") {
|
|
397240
397323
|
if (process.env.USER_TYPE === "ant") {
|
|
397241
397324
|
const changelog = "";
|
|
397242
397325
|
if (changelog) {
|
|
@@ -397263,7 +397346,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.61.2")
|
|
|
397263
397346
|
releaseNotes
|
|
397264
397347
|
};
|
|
397265
397348
|
}
|
|
397266
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.
|
|
397349
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.63.0") {
|
|
397267
397350
|
if (process.env.USER_TYPE === "ant") {
|
|
397268
397351
|
const changelog = "";
|
|
397269
397352
|
if (changelog) {
|
|
@@ -400120,7 +400203,7 @@ function getRecentActivitySync() {
|
|
|
400120
400203
|
return cachedActivity;
|
|
400121
400204
|
}
|
|
400122
400205
|
function getLogoDisplayData() {
|
|
400123
|
-
const version2 = process.env.DEMO_VERSION ?? "1.
|
|
400206
|
+
const version2 = process.env.DEMO_VERSION ?? "1.63.0";
|
|
400124
400207
|
const serverUrl = getDirectConnectServerUrl();
|
|
400125
400208
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
400126
400209
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -401004,7 +401087,7 @@ function LogoV2() {
|
|
|
401004
401087
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
401005
401088
|
t2 = () => {
|
|
401006
401089
|
const currentConfig2 = getGlobalConfig();
|
|
401007
|
-
if (currentConfig2.lastReleaseNotesSeen === "1.
|
|
401090
|
+
if (currentConfig2.lastReleaseNotesSeen === "1.63.0") {
|
|
401008
401091
|
return;
|
|
401009
401092
|
}
|
|
401010
401093
|
saveGlobalConfig(_temp327);
|
|
@@ -401689,12 +401772,12 @@ function LogoV2() {
|
|
|
401689
401772
|
return t41;
|
|
401690
401773
|
}
|
|
401691
401774
|
function _temp327(current) {
|
|
401692
|
-
if (current.lastReleaseNotesSeen === "1.
|
|
401775
|
+
if (current.lastReleaseNotesSeen === "1.63.0") {
|
|
401693
401776
|
return current;
|
|
401694
401777
|
}
|
|
401695
401778
|
return {
|
|
401696
401779
|
...current,
|
|
401697
|
-
lastReleaseNotesSeen: "1.
|
|
401780
|
+
lastReleaseNotesSeen: "1.63.0"
|
|
401698
401781
|
};
|
|
401699
401782
|
}
|
|
401700
401783
|
function _temp241(s_0) {
|
|
@@ -418492,7 +418575,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
418492
418575
|
if (spec.name !== specName) {
|
|
418493
418576
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
418494
418577
|
}
|
|
418495
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.
|
|
418578
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.63.0" : "1.63.0");
|
|
418496
418579
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
418497
418580
|
throw new Error("invalid ur-agent package version");
|
|
418498
418581
|
}
|
|
@@ -419485,7 +419568,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
419485
419568
|
path: ".github/workflows/ur.yml",
|
|
419486
419569
|
root: "project",
|
|
419487
419570
|
content: compileAgenticCiWorkflow("default", {
|
|
419488
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.
|
|
419571
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.63.0" : "1.63.0"
|
|
419489
419572
|
})
|
|
419490
419573
|
},
|
|
419491
419574
|
{
|
|
@@ -419548,7 +419631,7 @@ function value(tokens, flag) {
|
|
|
419548
419631
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
419549
419632
|
}
|
|
419550
419633
|
function cliVersion() {
|
|
419551
|
-
return typeof MACRO !== "undefined" ? "1.
|
|
419634
|
+
return typeof MACRO !== "undefined" ? "1.63.0" : "1.63.0";
|
|
419552
419635
|
}
|
|
419553
419636
|
function workflowPath(cwd2) {
|
|
419554
419637
|
return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -425404,7 +425487,7 @@ function createAcpStdioApp(deps) {
|
|
|
425404
425487
|
}
|
|
425405
425488
|
},
|
|
425406
425489
|
authMethods: [],
|
|
425407
|
-
agentInfo: { name: "UR-Nexus", version: "1.
|
|
425490
|
+
agentInfo: { name: "UR-Nexus", version: "1.63.0" }
|
|
425408
425491
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
425409
425492
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
425410
425493
|
await runtime2.announce({
|
|
@@ -425501,7 +425584,7 @@ function createAcpStdioAgent(deps) {
|
|
|
425501
425584
|
}
|
|
425502
425585
|
},
|
|
425503
425586
|
authMethods: [],
|
|
425504
|
-
agentInfo: { name: "UR-Nexus", version: "1.
|
|
425587
|
+
agentInfo: { name: "UR-Nexus", version: "1.63.0" }
|
|
425505
425588
|
});
|
|
425506
425589
|
return;
|
|
425507
425590
|
case "authenticate":
|
|
@@ -434834,8 +434917,11 @@ function summarizeSubagentCosts(subagentsDir) {
|
|
|
434834
434917
|
} catch {
|
|
434835
434918
|
continue;
|
|
434836
434919
|
}
|
|
434920
|
+
const meta = readAgentMetadata2(join182(subagentsDir, entry));
|
|
434837
434921
|
const row = {
|
|
434838
434922
|
agentId: matched[1],
|
|
434923
|
+
agentType: meta.agentType,
|
|
434924
|
+
description: meta.description,
|
|
434839
434925
|
model: null,
|
|
434840
434926
|
messages: messages.length,
|
|
434841
434927
|
inputTokens: 0,
|
|
@@ -434867,6 +434953,18 @@ function summarizeSubagentCosts(subagentsDir) {
|
|
|
434867
434953
|
}
|
|
434868
434954
|
return rows.sort((a2, b) => b.costUSD - a2.costUSD);
|
|
434869
434955
|
}
|
|
434956
|
+
function readAgentMetadata2(transcriptPath) {
|
|
434957
|
+
try {
|
|
434958
|
+
const raw = readFileSync61(transcriptPath.replace(/\.jsonl$/, ".meta.json"), "utf8");
|
|
434959
|
+
const parsed = JSON.parse(raw);
|
|
434960
|
+
return {
|
|
434961
|
+
agentType: typeof parsed.agentType === "string" ? parsed.agentType : null,
|
|
434962
|
+
description: typeof parsed.description === "string" ? parsed.description : null
|
|
434963
|
+
};
|
|
434964
|
+
} catch {
|
|
434965
|
+
return { agentType: null, description: null };
|
|
434966
|
+
}
|
|
434967
|
+
}
|
|
434870
434968
|
function formatSubagentCosts(rows, json2, searchedDir) {
|
|
434871
434969
|
if (json2)
|
|
434872
434970
|
return JSON.stringify({ subagents: rows, searchedDir }, null, 2);
|
|
@@ -434875,11 +434973,12 @@ function formatSubagentCosts(rows, json2, searchedDir) {
|
|
|
434875
434973
|
Either this session spawned no subagents, or that is not where they were written.` : "No subagent transcripts found for this session.";
|
|
434876
434974
|
}
|
|
434877
434975
|
const billed = rows.some((row) => row.costUSD > 0);
|
|
434878
|
-
const
|
|
434976
|
+
const label = (row) => row.description || row.agentType || row.agentId;
|
|
434977
|
+
const width = Math.min(Math.max(...rows.map((row) => label(row).length), 5), 44);
|
|
434879
434978
|
const lines = ["Per-agent usage", ""];
|
|
434880
434979
|
for (const row of rows) {
|
|
434881
434980
|
const cost2 = billed ? ` ${formatUSD(row.costUSD).padStart(9)}` : "";
|
|
434882
|
-
lines.push(` ${row.
|
|
434981
|
+
lines.push(` ${label(row).slice(0, width).padEnd(width)} ${String(row.inputTokens).padStart(9)} in ` + `${String(row.outputTokens).padStart(8)} out${cost2} ${row.model ?? "unknown model"}`);
|
|
434883
434982
|
}
|
|
434884
434983
|
const totalIn = rows.reduce((sum, row) => sum + row.inputTokens, 0);
|
|
434885
434984
|
const totalOut = rows.reduce((sum, row) => sum + row.outputTokens, 0);
|
|
@@ -633820,7 +633919,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
633820
633919
|
smapsRollup,
|
|
633821
633920
|
platform: process.platform,
|
|
633822
633921
|
nodeVersion: process.version,
|
|
633823
|
-
ccVersion: "1.
|
|
633922
|
+
ccVersion: "1.63.0"
|
|
633824
633923
|
};
|
|
633825
633924
|
}
|
|
633826
633925
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -634400,7 +634499,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
634400
634499
|
var call153 = async () => {
|
|
634401
634500
|
return {
|
|
634402
634501
|
type: "text",
|
|
634403
|
-
value: "1.
|
|
634502
|
+
value: "1.63.0"
|
|
634404
634503
|
};
|
|
634405
634504
|
}, version2, version_default;
|
|
634406
634505
|
var init_version = __esm(() => {
|
|
@@ -645471,7 +645570,7 @@ function generateHtmlReport(data, insights) {
|
|
|
645471
645570
|
</html>`;
|
|
645472
645571
|
}
|
|
645473
645572
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
645474
|
-
const version3 = typeof MACRO !== "undefined" ? "1.
|
|
645573
|
+
const version3 = typeof MACRO !== "undefined" ? "1.63.0" : "unknown";
|
|
645475
645574
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
645476
645575
|
const facets_summary = {
|
|
645477
645576
|
total: facets.size,
|
|
@@ -649782,7 +649881,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
649782
649881
|
init_settings2();
|
|
649783
649882
|
init_slowOperations();
|
|
649784
649883
|
init_uuid();
|
|
649785
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.
|
|
649884
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.63.0" : "unknown";
|
|
649786
649885
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
649787
649886
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
649788
649887
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -650997,7 +651096,7 @@ var init_filesystem = __esm(() => {
|
|
|
650997
651096
|
});
|
|
650998
651097
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
650999
651098
|
const nonce = randomBytes20(16).toString("hex");
|
|
651000
|
-
return join232(getURTempDir(), "bundled-skills", "1.
|
|
651099
|
+
return join232(getURTempDir(), "bundled-skills", "1.63.0", nonce);
|
|
651001
651100
|
});
|
|
651002
651101
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
651003
651102
|
});
|
|
@@ -657292,7 +657391,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
657292
657391
|
}
|
|
657293
657392
|
function computeFingerprintFromMessages(messages) {
|
|
657294
657393
|
const firstMessageText = extractFirstMessageText(messages);
|
|
657295
|
-
return computeFingerprint(firstMessageText, "1.
|
|
657394
|
+
return computeFingerprint(firstMessageText, "1.63.0");
|
|
657296
657395
|
}
|
|
657297
657396
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
657298
657397
|
var init_fingerprint = () => {};
|
|
@@ -659188,7 +659287,7 @@ async function sideQuery(opts) {
|
|
|
659188
659287
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
659189
659288
|
}
|
|
659190
659289
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
659191
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.
|
|
659290
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.63.0");
|
|
659192
659291
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
659193
659292
|
const systemBlocks = [
|
|
659194
659293
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -663959,7 +664058,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
663959
664058
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
663960
664059
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
663961
664060
|
betas: getSdkBetas(),
|
|
663962
|
-
ur_version: "1.
|
|
664061
|
+
ur_version: "1.63.0",
|
|
663963
664062
|
output_style: outputStyle2,
|
|
663964
664063
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
663965
664064
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -677819,7 +677918,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
677819
677918
|
function getSemverPart(version3) {
|
|
677820
677919
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
677821
677920
|
}
|
|
677822
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.
|
|
677921
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.63.0") {
|
|
677823
677922
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
|
|
677824
677923
|
if (!updatedVersion) {
|
|
677825
677924
|
return null;
|
|
@@ -677868,7 +677967,7 @@ function AutoUpdater({
|
|
|
677868
677967
|
return;
|
|
677869
677968
|
}
|
|
677870
677969
|
if (false) {}
|
|
677871
|
-
const currentVersion = "1.
|
|
677970
|
+
const currentVersion = "1.63.0";
|
|
677872
677971
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
677873
677972
|
let latestVersion = await getLatestVersion(channel);
|
|
677874
677973
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -678097,12 +678196,12 @@ function NativeAutoUpdater({
|
|
|
678097
678196
|
logEvent("tengu_native_auto_updater_start", {});
|
|
678098
678197
|
try {
|
|
678099
678198
|
const maxVersion = await getMaxVersion();
|
|
678100
|
-
if (maxVersion && gt("1.
|
|
678199
|
+
if (maxVersion && gt("1.63.0", maxVersion)) {
|
|
678101
678200
|
const msg = await getMaxVersionMessage();
|
|
678102
678201
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
678103
678202
|
}
|
|
678104
678203
|
const result = await installLatest(channel);
|
|
678105
|
-
const currentVersion = "1.
|
|
678204
|
+
const currentVersion = "1.63.0";
|
|
678106
678205
|
const latencyMs = Date.now() - startTime;
|
|
678107
678206
|
if (result.lockFailed) {
|
|
678108
678207
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -678239,17 +678338,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
678239
678338
|
const maxVersion = await getMaxVersion();
|
|
678240
678339
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
678241
678340
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
678242
|
-
if (gte("1.
|
|
678243
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.
|
|
678341
|
+
if (gte("1.63.0", maxVersion)) {
|
|
678342
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.63.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
678244
678343
|
setUpdateAvailable(false);
|
|
678245
678344
|
return;
|
|
678246
678345
|
}
|
|
678247
678346
|
latest = maxVersion;
|
|
678248
678347
|
}
|
|
678249
|
-
const hasUpdate = latest && !gte("1.
|
|
678348
|
+
const hasUpdate = latest && !gte("1.63.0", latest) && !shouldSkipVersion(latest);
|
|
678250
678349
|
setUpdateAvailable(!!hasUpdate);
|
|
678251
678350
|
if (hasUpdate) {
|
|
678252
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.
|
|
678351
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.63.0"} -> ${latest}`);
|
|
678253
678352
|
}
|
|
678254
678353
|
};
|
|
678255
678354
|
$2[0] = t1;
|
|
@@ -678283,7 +678382,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
678283
678382
|
wrap: "truncate",
|
|
678284
678383
|
children: [
|
|
678285
678384
|
"currentVersion: ",
|
|
678286
|
-
"1.
|
|
678385
|
+
"1.63.0"
|
|
678287
678386
|
]
|
|
678288
678387
|
}, undefined, true, undefined, this);
|
|
678289
678388
|
$2[3] = verbose;
|
|
@@ -688980,7 +689079,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
688980
689079
|
project_dir: getOriginalCwd(),
|
|
688981
689080
|
added_dirs: addedDirs
|
|
688982
689081
|
},
|
|
688983
|
-
version: "1.
|
|
689082
|
+
version: "1.63.0",
|
|
688984
689083
|
output_style: {
|
|
688985
689084
|
name: outputStyleName
|
|
688986
689085
|
},
|
|
@@ -689063,7 +689162,7 @@ function StatusLineInner({
|
|
|
689063
689162
|
const taskValues = Object.values(tasks2);
|
|
689064
689163
|
const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
|
|
689065
689164
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
689066
|
-
version: "1.
|
|
689165
|
+
version: "1.63.0",
|
|
689067
689166
|
providerLabel: providerRuntime.providerLabel,
|
|
689068
689167
|
authMode: providerRuntime.authLabel,
|
|
689069
689168
|
model: providerRuntime.model ?? renderModelName(mainLoopModel),
|
|
@@ -701206,7 +701305,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
701206
701305
|
} catch {}
|
|
701207
701306
|
const data = {
|
|
701208
701307
|
trigger: trigger2,
|
|
701209
|
-
version: "1.
|
|
701308
|
+
version: "1.63.0",
|
|
701210
701309
|
platform: process.platform,
|
|
701211
701310
|
transcript,
|
|
701212
701311
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -713486,7 +713585,7 @@ function WelcomeV2() {
|
|
|
713486
713585
|
dimColor: true,
|
|
713487
713586
|
children: [
|
|
713488
713587
|
"v",
|
|
713489
|
-
"1.
|
|
713588
|
+
"1.63.0"
|
|
713490
713589
|
]
|
|
713491
713590
|
}, undefined, true, undefined, this)
|
|
713492
713591
|
]
|
|
@@ -714746,7 +714845,7 @@ function completeOnboarding() {
|
|
|
714746
714845
|
saveGlobalConfig((current) => ({
|
|
714747
714846
|
...current,
|
|
714748
714847
|
hasCompletedOnboarding: true,
|
|
714749
|
-
lastOnboardingVersion: "1.
|
|
714848
|
+
lastOnboardingVersion: "1.63.0"
|
|
714750
714849
|
}));
|
|
714751
714850
|
}
|
|
714752
714851
|
function showDialog(root2, renderer) {
|
|
@@ -719790,7 +719889,7 @@ function appendToLog(path24, message) {
|
|
|
719790
719889
|
cwd: getFsImplementation().cwd(),
|
|
719791
719890
|
userType: process.env.USER_TYPE,
|
|
719792
719891
|
sessionId: getSessionId(),
|
|
719793
|
-
version: "1.
|
|
719892
|
+
version: "1.63.0"
|
|
719794
719893
|
};
|
|
719795
719894
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
719796
719895
|
}
|
|
@@ -723949,8 +724048,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
723949
724048
|
}
|
|
723950
724049
|
async function checkEnvLessBridgeMinVersion() {
|
|
723951
724050
|
const cfg = await getEnvLessBridgeConfig();
|
|
723952
|
-
if (cfg.min_version && lt("1.
|
|
723953
|
-
return `Your version of UR (${"1.
|
|
724051
|
+
if (cfg.min_version && lt("1.63.0", cfg.min_version)) {
|
|
724052
|
+
return `Your version of UR (${"1.63.0"}) is too old for Remote Control.
|
|
723954
724053
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
723955
724054
|
}
|
|
723956
724055
|
return null;
|
|
@@ -724424,7 +724523,7 @@ async function initBridgeCore(params) {
|
|
|
724424
724523
|
const rawApi = createBridgeApiClient({
|
|
724425
724524
|
baseUrl,
|
|
724426
724525
|
getAccessToken,
|
|
724427
|
-
runnerVersion: "1.
|
|
724526
|
+
runnerVersion: "1.63.0",
|
|
724428
724527
|
onDebug: logForDebugging,
|
|
724429
724528
|
onAuth401,
|
|
724430
724529
|
getTrustedDeviceToken
|
|
@@ -733900,7 +733999,7 @@ function getAgUiCapabilities() {
|
|
|
733900
733999
|
name: "UR-Nexus",
|
|
733901
734000
|
type: "ur-nexus",
|
|
733902
734001
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
733903
|
-
version: "1.
|
|
734002
|
+
version: "1.63.0",
|
|
733904
734003
|
provider: "UR",
|
|
733905
734004
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
733906
734005
|
},
|
|
@@ -735040,7 +735139,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
735040
735139
|
};
|
|
735041
735140
|
const server2 = new Server({
|
|
735042
735141
|
name: "ur-nexus",
|
|
735043
|
-
version: "1.
|
|
735142
|
+
version: "1.63.0"
|
|
735044
735143
|
}, {
|
|
735045
735144
|
capabilities: {
|
|
735046
735145
|
tools: {}
|
|
@@ -736198,7 +736297,7 @@ function thrownResponse(error40) {
|
|
|
736198
736297
|
}
|
|
736199
736298
|
async function createUrMcp2026Runtime(options4) {
|
|
736200
736299
|
const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
|
|
736201
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.
|
|
736300
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.63.0" }, { capabilities: {} });
|
|
736202
736301
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
736203
736302
|
try {
|
|
736204
736303
|
await server2.connect(serverTransport);
|
|
@@ -736209,7 +736308,7 @@ async function createUrMcp2026Runtime(options4) {
|
|
|
736209
736308
|
}
|
|
736210
736309
|
const runtime2 = new Mcp2026Runtime({
|
|
736211
736310
|
cwd: options4.cwd,
|
|
736212
|
-
version: "1.
|
|
736311
|
+
version: "1.63.0",
|
|
736213
736312
|
backend: {
|
|
736214
736313
|
listTools: async () => {
|
|
736215
736314
|
const listed = await client2.listTools();
|
|
@@ -738342,7 +738441,7 @@ async function update() {
|
|
|
738342
738441
|
logEvent("tengu_update_check", {});
|
|
738343
738442
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
738344
738443
|
const result = await checkUpgradeStatus({
|
|
738345
|
-
currentVersion: "1.
|
|
738444
|
+
currentVersion: "1.63.0",
|
|
738346
738445
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
738347
738446
|
installationType: diagnostic2.installationType,
|
|
738348
738447
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -739658,7 +739757,7 @@ ${customInstructions}` : customInstructions;
|
|
|
739658
739757
|
}
|
|
739659
739758
|
}
|
|
739660
739759
|
logForDiagnosticsNoPII("info", "started", {
|
|
739661
|
-
version: "1.
|
|
739760
|
+
version: "1.63.0",
|
|
739662
739761
|
is_native_binary: isInBundledMode()
|
|
739663
739762
|
});
|
|
739664
739763
|
registerCleanup(async () => {
|
|
@@ -740444,7 +740543,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
740444
740543
|
pendingHookMessages
|
|
740445
740544
|
}, renderAndRun);
|
|
740446
740545
|
}
|
|
740447
|
-
}).version("1.
|
|
740546
|
+
}).version("1.63.0 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
740448
740547
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
740449
740548
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
740450
740549
|
if (canUserConfigureAdvisor()) {
|
|
@@ -741496,7 +741595,7 @@ if (false) {}
|
|
|
741496
741595
|
async function main2() {
|
|
741497
741596
|
const args = process.argv.slice(2);
|
|
741498
741597
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
741499
|
-
console.log(`${"1.
|
|
741598
|
+
console.log(`${"1.63.0"} (UR-Nexus)`);
|
|
741500
741599
|
return;
|
|
741501
741600
|
}
|
|
741502
741601
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|
package/documentation/index.html
CHANGED
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
<main id="content" class="content">
|
|
46
46
|
<header class="topbar">
|
|
47
47
|
<div>
|
|
48
|
-
<p class="eyebrow">Version 1.
|
|
48
|
+
<p class="eyebrow">Version 1.63.0</p>
|
|
49
49
|
<h1>UR-Nexus Documentation</h1>
|
|
50
50
|
<p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
|
|
51
51
|
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "ur-inline-diffs",
|
|
3
3
|
"displayName": "UR Inline Diffs",
|
|
4
4
|
"description": "Review, apply, and reject UR inline diff bundles from .ur/ide/diffs inside VS Code.",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.63.0",
|
|
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.
|
|
3
|
+
"version": "1.63.0",
|
|
4
4
|
"description": "UR-Nexus — autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "bun@1.3.14",
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
"@ag-ui/core": "0.0.57",
|
|
85
85
|
"@ag-ui/encoder": "0.0.57",
|
|
86
86
|
"diff2html": "^3.4.56",
|
|
87
|
-
"playwright-core": "^1.
|
|
87
|
+
"playwright-core": "^1.63.0",
|
|
88
88
|
"sharp": "^0.35.3"
|
|
89
89
|
},
|
|
90
90
|
"devDependencies": {
|