ur-agent 1.68.9 → 1.68.16
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 +128 -0
- package/dist/cli.js +102 -84
- package/docs/VALIDATION.md +1 -1
- package/documentation/index.html +1 -1
- package/extensions/jetbrains-ur/build.gradle.kts +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +1 -1
- package/technical/README.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,133 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.68.16
|
|
4
|
+
|
|
5
|
+
- First pieces of the UR Nexus visual identity, as terminal primitives rather
|
|
6
|
+
than artwork: `constants/urPalette.ts` (obsidian/bronze/electrum/lapis tokens
|
|
7
|
+
in true-colour, ANSI-256 and monochrome tiers, with depth detection),
|
|
8
|
+
`constants/urOrnament.ts` (frieze bands, the four border styles, the gate
|
|
9
|
+
brand mark), and `utils/statusBarItems.ts` (width-aware status-bar registry).
|
|
10
|
+
- The ornaments are thin box-drawing strokes, not solid blocks. Heavy glyphs
|
|
11
|
+
(▟▙██) were tried first and read as chunky sprites against a design built
|
|
12
|
+
from fine line-work. Everything renders on macOS Terminal, GNOME Terminal,
|
|
13
|
+
Konsole, Alacritty, foot and over SSH — no image protocol, so no user gets a
|
|
14
|
+
degraded version of the identity.
|
|
15
|
+
- Friezes tile to an exact width and truncate rather than pad: a band that
|
|
16
|
+
overshoots its column budget wraps, and a wrapped frieze reads as corruption
|
|
17
|
+
rather than decoration. The ASCII gate is cell-for-cell the same size as the
|
|
18
|
+
Unicode one so a fallback does not shift the layout.
|
|
19
|
+
- Status-bar items degrade by dropping whole items, lowest priority first,
|
|
20
|
+
after trying short forms — never by truncating the assembled string, which
|
|
21
|
+
cuts through whichever number sits at the boundary.
|
|
22
|
+
- Section 11 of the design spec lists context usage at priority 2 but its own
|
|
23
|
+
narrow-width example keeps `ctx` while dropping state and agents. The
|
|
24
|
+
examples win: at a glance the two things worth knowing are how far along the
|
|
25
|
+
work is and how much room is left. Drop order is now an explicit per-item
|
|
26
|
+
rank rather than emerging from zone position.
|
|
27
|
+
|
|
28
|
+
## 1.68.15
|
|
29
|
+
|
|
30
|
+
- Reconstructed three more stub type files, clearing 177 further errors:
|
|
31
|
+
`keybindings/types.ts` (six empty interfaces), `ink/cursor.ts`, and
|
|
32
|
+
`commands/plugin/unifiedTypes.ts`. Same defect as the MCP types in 1.68.14 —
|
|
33
|
+
an empty interface means "has no members" to TypeScript, not "shape unknown",
|
|
34
|
+
so every property access on one was an error and the consuming files carried
|
|
35
|
+
`@ts-nocheck` as a result.
|
|
36
|
+
- `KeybindingBlock.bindings` is keyed by chord string, not an array. A first
|
|
37
|
+
attempt typed it `ParsedBinding[]`, which made every entry in the default
|
|
38
|
+
binding table an error — the declaration form (`'ctrl+d': 'app:exit'`) and the
|
|
39
|
+
parsed form (chord resolved into keystrokes) are different shapes, and
|
|
40
|
+
conflating them broke a file that had been fine.
|
|
41
|
+
- `KeybindingAction` is a string rather than a union of known actions:
|
|
42
|
+
`defaultBindings.ts` assembles entries conditionally from feature flags, so a
|
|
43
|
+
value missing from a union would turn a working binding into an error.
|
|
44
|
+
- Suppression list: 140 -> 132. Eight keybinding and ink files came off.
|
|
45
|
+
- Totals for the sweep so far: 223 -> 132 files, 868 -> 563 errors, and almost
|
|
46
|
+
none of it file-by-file. Four stub files accounted for 258 errors on their
|
|
47
|
+
own.
|
|
48
|
+
|
|
49
|
+
## 1.68.14
|
|
50
|
+
|
|
51
|
+
- Gave the MCP settings types their real shapes. `components/mcp/types.ts`
|
|
52
|
+
declared seven **empty** interfaces under a "Stub: not included in leaked
|
|
53
|
+
source" comment. An empty interface does not mean "unknown shape" to
|
|
54
|
+
TypeScript, it means "has no members" — so every property access on one was an
|
|
55
|
+
error, and that single file produced ~221 of the 858 errors sitting behind
|
|
56
|
+
`@ts-nocheck`. The MCP menus were not wrong; their types were.
|
|
57
|
+
- The shapes are reconstructed from what the components actually access, with
|
|
58
|
+
`transport` as a literal discriminant so the server union narrows on
|
|
59
|
+
`transport === 'stdio'` instead of collapsing. Fields whose internals the UI
|
|
60
|
+
never inspects are `Record<string, unknown>` rather than `any`, so a consumer
|
|
61
|
+
must still narrow before reaching inside.
|
|
62
|
+
- 118 errors cleared, `MCPAgentServerMenu` off the suppression list (141 -> 140).
|
|
63
|
+
- Method note: of 42 files carrying exactly one error, nine shared one cause;
|
|
64
|
+
221 more came from this one stub. These cluster, so the productive next step
|
|
65
|
+
is grouping by error signature rather than opening files one at a time.
|
|
66
|
+
|
|
67
|
+
## 1.68.13
|
|
68
|
+
|
|
69
|
+
- Eight more files came off `@ts-nocheck` (149 -> 141) from a single fix. The
|
|
70
|
+
compiled signature of `useRegisterOverlay(id, t0)` declared two required
|
|
71
|
+
parameters while its own first statement reads
|
|
72
|
+
`const enabled = t0 === undefined ? true : t0` — the argument was optional by
|
|
73
|
+
construction and required by declaration, so every caller passing only an id
|
|
74
|
+
was a type error. Marking it optional cleared 10 errors across 10 files.
|
|
75
|
+
- That is the shape worth looking for in the rest: of 42 files carrying exactly
|
|
76
|
+
one error, nine shared this one cause. The remaining suppressed files surface
|
|
77
|
+
~858 errors, and the useful next step is grouping them by cause rather than
|
|
78
|
+
working through them file by file.
|
|
79
|
+
|
|
80
|
+
## 1.68.12
|
|
81
|
+
|
|
82
|
+
- The Ollama request path now reports where a request's bytes actually go —
|
|
83
|
+
tool definitions, system prompt, conversation — once per session in the debug
|
|
84
|
+
log. The fixed cost of tools plus system prompt is what decides whether a
|
|
85
|
+
small-context model has room left to work, and until now it had only been
|
|
86
|
+
estimated by summing prompt source. That estimate is wrong by construction:
|
|
87
|
+
these prompts are full of `condition ? longText : shortText`, and summing the
|
|
88
|
+
file counts both branches when only one is ever sent. The measurement is
|
|
89
|
+
taken from the serialized request, so it is what the server receives.
|
|
90
|
+
- Reported as a share of the whole with the tool-definition count, because
|
|
91
|
+
"system prompt is large" and "conversation is large" call for opposite fixes
|
|
92
|
+
and are indistinguishable in a single total.
|
|
93
|
+
|
|
94
|
+
## 1.68.11
|
|
95
|
+
|
|
96
|
+
- Investigated turning the task-list gate advisory by default and did not do
|
|
97
|
+
it. The friction it causes is real, but the gate is also the final
|
|
98
|
+
revalidation before a tool executes, and defaulting it off removes two
|
|
99
|
+
properties nothing else provides: a permission handler or hook that rewrites
|
|
100
|
+
a read-only call into a mutating one is re-checked *after* the rewrite, and
|
|
101
|
+
task state is re-read at execution time so a plan that disappears while
|
|
102
|
+
permission is pending cannot let the mutation through. Eight tests in
|
|
103
|
+
`toolExecutionFinalInput` fail the moment enforcement is defaulted off, all
|
|
104
|
+
on those two paths. The rule and its revalidation are not separable: the
|
|
105
|
+
re-read is how the rule is applied at execution time, so with no rule there
|
|
106
|
+
is nothing to revalidate.
|
|
107
|
+
- The friction had two causes and both are already fixed forward: the
|
|
108
|
+
allowance counted messages instead of tool calls, so the gate fired on the
|
|
109
|
+
first Write (1.65.5), and the TodoWrite prompt had lost its worked examples,
|
|
110
|
+
so smaller models stopped producing task lists at all (1.68.0). The gate is
|
|
111
|
+
reached far less often as a result. `tasks.requireBeforeChanges.enabled`
|
|
112
|
+
remains available for anyone who wants it off knowingly.
|
|
113
|
+
|
|
114
|
+
## 1.68.10
|
|
115
|
+
|
|
116
|
+
- `ToolSearchTool` no longer registers on runtimes where it cannot work. Its
|
|
117
|
+
purpose is fetching schemas for tools whose definitions were deferred, and
|
|
118
|
+
deferral needs the runtime to expand `tool_reference` blocks — an
|
|
119
|
+
Anthropic-native beta shape that no UR runtime supports (UR runs on Ollama,
|
|
120
|
+
OpenAI-compatible servers and vendor CLIs). `isEnabled()` consulted only
|
|
121
|
+
`isToolSearchEnabledOptimistic()`, which reads the mode, and the mode
|
|
122
|
+
defaults to `'tst'` (on). The tool therefore registered on every run: its
|
|
123
|
+
description shipped with each request, and the model was offered a tool that
|
|
124
|
+
could not function, because nothing was ever deferred for it to fetch.
|
|
125
|
+
- Audit note on the surface as a whole: 168 commands, of which 8 touch a
|
|
126
|
+
feature flag that is not compiled in, and in each case the flag gates a
|
|
127
|
+
sub-feature rather than the command. 89 of 91 flags are absent from shipped
|
|
128
|
+
builds. Two of those (`CONTEXT_COLLAPSE`, `REACTIVE_COMPACT`) would have
|
|
129
|
+
failed on the first turn if enabled and were fixed in 1.68.2.
|
|
130
|
+
|
|
3
131
|
## 1.68.9
|
|
4
132
|
|
|
5
133
|
- Narrowed that allowlist entry from `ur.com` to `ur.com/docs`. Replacing a
|
package/dist/cli.js
CHANGED
|
@@ -57524,6 +57524,7 @@ __export(exports_ollama, {
|
|
|
57524
57524
|
getOllamaModelDefaultTimeoutMs: () => getOllamaModelDefaultTimeoutMs,
|
|
57525
57525
|
getEffectiveOllamaBaseUrl: () => getEffectiveOllamaBaseUrl,
|
|
57526
57526
|
dropStaleImagesFromRequest: () => dropStaleImagesFromRequest,
|
|
57527
|
+
describeRequestComposition: () => describeRequestComposition,
|
|
57527
57528
|
describeOversizedOllamaRequest: () => describeOversizedOllamaRequest,
|
|
57528
57529
|
describeImageRetry: () => describeImageRetry,
|
|
57529
57530
|
createOllamaURHQClient: () => createOllamaURHQClient,
|
|
@@ -57596,6 +57597,7 @@ async function fetchOllamaChat(params, stream4, controller, options, baseUrl = g
|
|
|
57596
57597
|
const textToolFallbackAllowed = (params.tools?.length ?? 0) > 0 && !modelCapabilityEnabled(capabilities, "tools");
|
|
57597
57598
|
const chatRequest = toOllamaChatRequest(params, stream4, capabilities, baseUrl);
|
|
57598
57599
|
const requestBody = JSON.stringify(chatRequest);
|
|
57600
|
+
logRequestComposition(chatRequest, requestBody.length);
|
|
57599
57601
|
let response = await fetch(`${baseUrl}/api/chat`, {
|
|
57600
57602
|
method: "POST",
|
|
57601
57603
|
headers: buildOllamaHeaders(),
|
|
@@ -57647,6 +57649,19 @@ async function fetchOllamaChat(params, stream4, controller, options, baseUrl = g
|
|
|
57647
57649
|
function isOllamaRequestTooLarge(status, message) {
|
|
57648
57650
|
return (status === 400 || status === 413) && /request body too large|payload too large|entity too large/i.test(message);
|
|
57649
57651
|
}
|
|
57652
|
+
function describeRequestComposition(request, totalBytes) {
|
|
57653
|
+
const toolBytes = request.tools ? JSON.stringify(request.tools).length : 0;
|
|
57654
|
+
const systemBytes = request.messages.filter((message) => message.role === "system").reduce((sum, message) => sum + JSON.stringify(message).length, 0);
|
|
57655
|
+
const conversationBytes = Math.max(0, totalBytes - toolBytes - systemBytes);
|
|
57656
|
+
const pct = (n2) => totalBytes > 0 ? `${Math.round(100 * n2 / totalBytes)}%` : "0%";
|
|
57657
|
+
return `request ${formatBytes(totalBytes)} = ` + `tools ${formatBytes(toolBytes)} (${pct(toolBytes)}, ` + `${request.tools?.length ?? 0} defs) + ` + `system ${formatBytes(systemBytes)} (${pct(systemBytes)}) + ` + `conversation ${formatBytes(conversationBytes)} (${pct(conversationBytes)})`;
|
|
57658
|
+
}
|
|
57659
|
+
function logRequestComposition(request, totalBytes) {
|
|
57660
|
+
if (loggedComposition)
|
|
57661
|
+
return;
|
|
57662
|
+
loggedComposition = true;
|
|
57663
|
+
logForDebugging(`[ollama] ${describeRequestComposition(request, totalBytes)}`);
|
|
57664
|
+
}
|
|
57650
57665
|
function formatBytes(bytes) {
|
|
57651
57666
|
if (bytes >= 1024 * 1024)
|
|
57652
57667
|
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
@@ -58682,7 +58697,7 @@ function parseToolInput(input) {
|
|
|
58682
58697
|
}
|
|
58683
58698
|
return normalized;
|
|
58684
58699
|
}
|
|
58685
|
-
var DEFAULT_OLLAMA_REQUEST_TIMEOUT_MS = 300000, REMOTE_OLLAMA_REQUEST_TIMEOUT_MS = 120000, CLOUD_OLLAMA_REQUEST_TIMEOUT_MS = 120000, KIMI_CLOUD_REQUEST_TIMEOUT_MS = 300000, OLLAMA_GATEWAY_TIMEOUT_MESSAGE = "Ollama gateway timed out while waiting for the model to respond. Check the selected Ollama endpoint or increase API_TIMEOUT_MS if the model needs more time.", ollamaModelCapabilitiesCache, warnedToolsUnsupportedModels, TEXT_TOOL_CALL_HINT, pendingProviderNotice = null, LEVELED_THINK_MODEL_RE;
|
|
58700
|
+
var DEFAULT_OLLAMA_REQUEST_TIMEOUT_MS = 300000, REMOTE_OLLAMA_REQUEST_TIMEOUT_MS = 120000, CLOUD_OLLAMA_REQUEST_TIMEOUT_MS = 120000, KIMI_CLOUD_REQUEST_TIMEOUT_MS = 300000, OLLAMA_GATEWAY_TIMEOUT_MESSAGE = "Ollama gateway timed out while waiting for the model to respond. Check the selected Ollama endpoint or increase API_TIMEOUT_MS if the model needs more time.", ollamaModelCapabilitiesCache, loggedComposition = false, warnedToolsUnsupportedModels, TEXT_TOOL_CALL_HINT, pendingProviderNotice = null, LEVELED_THINK_MODEL_RE;
|
|
58686
58701
|
var init_ollama = __esm(() => {
|
|
58687
58702
|
init_urhq_sdk();
|
|
58688
58703
|
init_ollamaModels();
|
|
@@ -75702,7 +75717,7 @@ var init_auth = __esm(() => {
|
|
|
75702
75717
|
|
|
75703
75718
|
// src/utils/userAgent.ts
|
|
75704
75719
|
function getURCodeUserAgent() {
|
|
75705
|
-
return `ur/${"1.68.
|
|
75720
|
+
return `ur/${"1.68.16"}`;
|
|
75706
75721
|
}
|
|
75707
75722
|
|
|
75708
75723
|
// src/utils/workloadContext.ts
|
|
@@ -75724,7 +75739,7 @@ function getUserAgent() {
|
|
|
75724
75739
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
75725
75740
|
const workload = getWorkload();
|
|
75726
75741
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
75727
|
-
return `ur-cli/${"1.68.
|
|
75742
|
+
return `ur-cli/${"1.68.16"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
75728
75743
|
}
|
|
75729
75744
|
function getMCPUserAgent() {
|
|
75730
75745
|
const parts = [];
|
|
@@ -75738,7 +75753,7 @@ function getMCPUserAgent() {
|
|
|
75738
75753
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
75739
75754
|
}
|
|
75740
75755
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
75741
|
-
return `ur/${"1.68.
|
|
75756
|
+
return `ur/${"1.68.16"}${suffix}`;
|
|
75742
75757
|
}
|
|
75743
75758
|
function getWebFetchUserAgent() {
|
|
75744
75759
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -75876,7 +75891,7 @@ var init_user = __esm(() => {
|
|
|
75876
75891
|
deviceId,
|
|
75877
75892
|
sessionId: getSessionId(),
|
|
75878
75893
|
email: getEmail(),
|
|
75879
|
-
appVersion: "1.68.
|
|
75894
|
+
appVersion: "1.68.16",
|
|
75880
75895
|
platform: getHostPlatformForAnalytics(),
|
|
75881
75896
|
organizationUuid,
|
|
75882
75897
|
accountUuid,
|
|
@@ -84076,7 +84091,7 @@ var init_metadata = __esm(() => {
|
|
|
84076
84091
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
84077
84092
|
WHITESPACE_REGEX = /\s+/;
|
|
84078
84093
|
getVersionBase = memoize_default(() => {
|
|
84079
|
-
const match = "1.68.
|
|
84094
|
+
const match = "1.68.16".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
84080
84095
|
return match ? match[0] : undefined;
|
|
84081
84096
|
});
|
|
84082
84097
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -84116,7 +84131,7 @@ var init_metadata = __esm(() => {
|
|
|
84116
84131
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
84117
84132
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
84118
84133
|
isURAiAuth: isURAISubscriber(),
|
|
84119
|
-
version: "1.68.
|
|
84134
|
+
version: "1.68.16",
|
|
84120
84135
|
versionBase: getVersionBase(),
|
|
84121
84136
|
buildTime: "",
|
|
84122
84137
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -84786,7 +84801,7 @@ function initialize1PEventLogging() {
|
|
|
84786
84801
|
const platform2 = getPlatform();
|
|
84787
84802
|
const attributes = {
|
|
84788
84803
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
84789
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.68.
|
|
84804
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.68.16"
|
|
84790
84805
|
};
|
|
84791
84806
|
if (platform2 === "wsl") {
|
|
84792
84807
|
const wslVersion = getWslVersion();
|
|
@@ -84814,7 +84829,7 @@ function initialize1PEventLogging() {
|
|
|
84814
84829
|
})
|
|
84815
84830
|
]
|
|
84816
84831
|
});
|
|
84817
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.68.
|
|
84832
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.68.16");
|
|
84818
84833
|
}
|
|
84819
84834
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
84820
84835
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -94702,7 +94717,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
94702
94717
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
94703
94718
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
94704
94719
|
}
|
|
94705
|
-
var urVersion = "1.68.
|
|
94720
|
+
var urVersion = "1.68.16", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
|
|
94706
94721
|
var init_trends = __esm(() => {
|
|
94707
94722
|
init_a2aCardSignature();
|
|
94708
94723
|
coverage = [
|
|
@@ -97505,7 +97520,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
97505
97520
|
if (!isAttributionHeaderEnabled()) {
|
|
97506
97521
|
return "";
|
|
97507
97522
|
}
|
|
97508
|
-
const version2 = `${"1.68.
|
|
97523
|
+
const version2 = `${"1.68.16"}.${fingerprint}`;
|
|
97509
97524
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
97510
97525
|
const cch = "";
|
|
97511
97526
|
const workload = getWorkload();
|
|
@@ -152493,6 +152508,9 @@ var init_ToolSearchTool = __esm(() => {
|
|
|
152493
152508
|
}, (toolName) => toolName);
|
|
152494
152509
|
ToolSearchTool = buildTool({
|
|
152495
152510
|
isEnabled() {
|
|
152511
|
+
if (!supportsToolReferenceExpansion()) {
|
|
152512
|
+
return false;
|
|
152513
|
+
}
|
|
152496
152514
|
return isToolSearchEnabledOptimistic();
|
|
152497
152515
|
},
|
|
152498
152516
|
isConcurrencySafe() {
|
|
@@ -155380,7 +155398,7 @@ var init_projectSafety = __esm(() => {
|
|
|
155380
155398
|
function getInstruments() {
|
|
155381
155399
|
if (instruments)
|
|
155382
155400
|
return instruments;
|
|
155383
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.68.
|
|
155401
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.68.16");
|
|
155384
155402
|
instruments = {
|
|
155385
155403
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
155386
155404
|
description: "GenAI operation duration.",
|
|
@@ -155478,7 +155496,7 @@ function genAiAgentAttributes() {
|
|
|
155478
155496
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
155479
155497
|
"gen_ai.provider.name": "ur",
|
|
155480
155498
|
"gen_ai.agent.name": "UR-Nexus",
|
|
155481
|
-
"gen_ai.agent.version": "1.68.
|
|
155499
|
+
"gen_ai.agent.version": "1.68.16"
|
|
155482
155500
|
};
|
|
155483
155501
|
}
|
|
155484
155502
|
function genAiWorkflowAttributes(workflowName) {
|
|
@@ -155494,7 +155512,7 @@ function genAiWorkflowAttributes(workflowName) {
|
|
|
155494
155512
|
function startGenAiWorkflowSpan(workflowName) {
|
|
155495
155513
|
const attributes = genAiWorkflowAttributes(workflowName);
|
|
155496
155514
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
155497
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.
|
|
155515
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.16").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
155498
155516
|
}
|
|
155499
155517
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
155500
155518
|
try {
|
|
@@ -155532,7 +155550,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
155532
155550
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
155533
155551
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
155534
155552
|
}
|
|
155535
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.
|
|
155553
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.16").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
155536
155554
|
}
|
|
155537
155555
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
155538
155556
|
try {
|
|
@@ -249015,7 +249033,7 @@ function getTelemetryAttributes() {
|
|
|
249015
249033
|
attributes["session.id"] = sessionId;
|
|
249016
249034
|
}
|
|
249017
249035
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
249018
|
-
attributes["app.version"] = "1.68.
|
|
249036
|
+
attributes["app.version"] = "1.68.16";
|
|
249019
249037
|
}
|
|
249020
249038
|
const oauthAccount = getOauthAccountInfo();
|
|
249021
249039
|
if (oauthAccount) {
|
|
@@ -295495,7 +295513,7 @@ function getInstallationEnv() {
|
|
|
295495
295513
|
return;
|
|
295496
295514
|
}
|
|
295497
295515
|
function getURCodeVersion() {
|
|
295498
|
-
return "1.68.
|
|
295516
|
+
return "1.68.16";
|
|
295499
295517
|
}
|
|
295500
295518
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
295501
295519
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -302826,7 +302844,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
302826
302844
|
const client2 = new Client({
|
|
302827
302845
|
name: "ur",
|
|
302828
302846
|
title: "UR",
|
|
302829
|
-
version: "1.68.
|
|
302847
|
+
version: "1.68.16",
|
|
302830
302848
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
302831
302849
|
websiteUrl: PRODUCT_URL
|
|
302832
302850
|
}, {
|
|
@@ -303186,7 +303204,7 @@ var init_client5 = __esm(() => {
|
|
|
303186
303204
|
const client2 = new Client({
|
|
303187
303205
|
name: "ur",
|
|
303188
303206
|
title: "UR",
|
|
303189
|
-
version: "1.68.
|
|
303207
|
+
version: "1.68.16",
|
|
303190
303208
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
303191
303209
|
websiteUrl: PRODUCT_URL
|
|
303192
303210
|
}, {
|
|
@@ -315725,7 +315743,7 @@ async function createRuntime() {
|
|
|
315725
315743
|
bootstrapTelemetry();
|
|
315726
315744
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
315727
315745
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
315728
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.68.
|
|
315746
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.68.16"
|
|
315729
315747
|
}));
|
|
315730
315748
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
315731
315749
|
resource,
|
|
@@ -315758,11 +315776,11 @@ async function createRuntime() {
|
|
|
315758
315776
|
setMeterProvider(meterProvider);
|
|
315759
315777
|
setLoggerProvider(loggerProvider);
|
|
315760
315778
|
if (meterProvider) {
|
|
315761
|
-
const meter = meterProvider.getMeter("ur-agent", "1.68.
|
|
315779
|
+
const meter = meterProvider.getMeter("ur-agent", "1.68.16");
|
|
315762
315780
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
315763
315781
|
}
|
|
315764
315782
|
if (loggerProvider) {
|
|
315765
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.68.
|
|
315783
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.68.16"));
|
|
315766
315784
|
}
|
|
315767
315785
|
if (!cleanupRegistered2) {
|
|
315768
315786
|
cleanupRegistered2 = true;
|
|
@@ -316424,9 +316442,9 @@ async function assertMinVersion() {
|
|
|
316424
316442
|
if (false) {}
|
|
316425
316443
|
try {
|
|
316426
316444
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
316427
|
-
if (versionConfig.minVersion && lt("1.68.
|
|
316445
|
+
if (versionConfig.minVersion && lt("1.68.16", versionConfig.minVersion)) {
|
|
316428
316446
|
console.error(`
|
|
316429
|
-
It looks like your version of UR (${"1.68.
|
|
316447
|
+
It looks like your version of UR (${"1.68.16"}) needs an update.
|
|
316430
316448
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
316431
316449
|
|
|
316432
316450
|
To update, please run:
|
|
@@ -316642,7 +316660,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
316642
316660
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
316643
316661
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
316644
316662
|
pid: process.pid,
|
|
316645
|
-
currentVersion: "1.68.
|
|
316663
|
+
currentVersion: "1.68.16"
|
|
316646
316664
|
});
|
|
316647
316665
|
return "in_progress";
|
|
316648
316666
|
}
|
|
@@ -316651,7 +316669,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
316651
316669
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
316652
316670
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
316653
316671
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
316654
|
-
currentVersion: "1.68.
|
|
316672
|
+
currentVersion: "1.68.16"
|
|
316655
316673
|
});
|
|
316656
316674
|
console.error(`
|
|
316657
316675
|
Error: Windows NPM detected in WSL
|
|
@@ -317186,7 +317204,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
317186
317204
|
}
|
|
317187
317205
|
async function getDoctorDiagnostic() {
|
|
317188
317206
|
const installationType = await getCurrentInstallationType();
|
|
317189
|
-
const version2 = typeof MACRO !== "undefined" ? "1.68.
|
|
317207
|
+
const version2 = typeof MACRO !== "undefined" ? "1.68.16" : "unknown";
|
|
317190
317208
|
const installationPath = await getInstallationPath();
|
|
317191
317209
|
const invokedBinary = getInvokedBinary();
|
|
317192
317210
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -318121,8 +318139,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
318121
318139
|
const maxVersion = await getMaxVersion();
|
|
318122
318140
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
318123
318141
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
318124
|
-
if (gte("1.68.
|
|
318125
|
-
logForDebugging(`Native installer: current version ${"1.68.
|
|
318142
|
+
if (gte("1.68.16", maxVersion)) {
|
|
318143
|
+
logForDebugging(`Native installer: current version ${"1.68.16"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
318126
318144
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
318127
318145
|
latency_ms: Date.now() - startTime,
|
|
318128
318146
|
max_version: maxVersion,
|
|
@@ -318133,7 +318151,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
318133
318151
|
version2 = maxVersion;
|
|
318134
318152
|
}
|
|
318135
318153
|
}
|
|
318136
|
-
if (!forceReinstall && version2 === "1.68.
|
|
318154
|
+
if (!forceReinstall && version2 === "1.68.16" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
318137
318155
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
318138
318156
|
logEvent("tengu_native_update_complete", {
|
|
318139
318157
|
latency_ms: Date.now() - startTime,
|
|
@@ -388344,7 +388362,7 @@ function isAnyTracingEnabled() {
|
|
|
388344
388362
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
388345
388363
|
}
|
|
388346
388364
|
function getTracer() {
|
|
388347
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.68.
|
|
388365
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.68.16");
|
|
388348
388366
|
}
|
|
388349
388367
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
388350
388368
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -419588,7 +419606,7 @@ function Feedback({
|
|
|
419588
419606
|
platform: env2.platform,
|
|
419589
419607
|
gitRepo: envInfo.isGit,
|
|
419590
419608
|
terminal: env2.terminal,
|
|
419591
|
-
version: "1.68.
|
|
419609
|
+
version: "1.68.16",
|
|
419592
419610
|
transcript: normalizeMessagesForAPI(messages),
|
|
419593
419611
|
errors: sanitizedErrors,
|
|
419594
419612
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -419780,7 +419798,7 @@ function Feedback({
|
|
|
419780
419798
|
", ",
|
|
419781
419799
|
env2.terminal,
|
|
419782
419800
|
", v",
|
|
419783
|
-
"1.68.
|
|
419801
|
+
"1.68.16"
|
|
419784
419802
|
]
|
|
419785
419803
|
}, undefined, true, undefined, this)
|
|
419786
419804
|
]
|
|
@@ -419886,7 +419904,7 @@ ${sanitizedDescription}
|
|
|
419886
419904
|
` + `**Environment Info**
|
|
419887
419905
|
` + `- Platform: ${env2.platform}
|
|
419888
419906
|
` + `- Terminal: ${env2.terminal}
|
|
419889
|
-
` + `- Version: ${"1.68.
|
|
419907
|
+
` + `- Version: ${"1.68.16"}
|
|
419890
419908
|
` + `- Feedback ID: ${feedbackId}
|
|
419891
419909
|
` + `
|
|
419892
419910
|
**Errors**
|
|
@@ -422996,7 +423014,7 @@ function buildPrimarySection() {
|
|
|
422996
423014
|
}, undefined, false, undefined, this);
|
|
422997
423015
|
return [{
|
|
422998
423016
|
label: "Version",
|
|
422999
|
-
value: "1.68.
|
|
423017
|
+
value: "1.68.16"
|
|
423000
423018
|
}, {
|
|
423001
423019
|
label: "Session name",
|
|
423002
423020
|
value: nameValue
|
|
@@ -426326,7 +426344,7 @@ function Config({
|
|
|
426326
426344
|
}
|
|
426327
426345
|
}, undefined, false, undefined, this)
|
|
426328
426346
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
426329
|
-
currentVersion: "1.68.
|
|
426347
|
+
currentVersion: "1.68.16",
|
|
426330
426348
|
onChoice: (choice) => {
|
|
426331
426349
|
setShowSubmenu(null);
|
|
426332
426350
|
setTabsHidden(false);
|
|
@@ -426338,7 +426356,7 @@ function Config({
|
|
|
426338
426356
|
autoUpdatesChannel: "stable"
|
|
426339
426357
|
};
|
|
426340
426358
|
if (choice === "stay") {
|
|
426341
|
-
newSettings.minimumVersion = "1.68.
|
|
426359
|
+
newSettings.minimumVersion = "1.68.16";
|
|
426342
426360
|
}
|
|
426343
426361
|
updateSettingsForSource("userSettings", newSettings);
|
|
426344
426362
|
setSettingsData((prev_27) => ({
|
|
@@ -434412,7 +434430,7 @@ function HelpV2(t0) {
|
|
|
434412
434430
|
let t6;
|
|
434413
434431
|
if ($2[31] !== tabs) {
|
|
434414
434432
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
434415
|
-
title: `UR v${"1.68.
|
|
434433
|
+
title: `UR v${"1.68.16"}`,
|
|
434416
434434
|
color: "professionalBlue",
|
|
434417
434435
|
defaultTab: "general",
|
|
434418
434436
|
children: tabs
|
|
@@ -435345,7 +435363,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
435345
435363
|
async function handleInitialize(options2) {
|
|
435346
435364
|
return {
|
|
435347
435365
|
name: "UR",
|
|
435348
|
-
version: "1.68.
|
|
435366
|
+
version: "1.68.16",
|
|
435349
435367
|
protocolVersion: "0.1.0",
|
|
435350
435368
|
workspaceRoot: options2.cwd,
|
|
435351
435369
|
capabilities: {
|
|
@@ -452453,7 +452471,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
452453
452471
|
return [];
|
|
452454
452472
|
}
|
|
452455
452473
|
}
|
|
452456
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.68.
|
|
452474
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.68.16") {
|
|
452457
452475
|
if (process.env.USER_TYPE === "ant") {
|
|
452458
452476
|
const changelog = "";
|
|
452459
452477
|
if (changelog) {
|
|
@@ -452480,7 +452498,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.68.9")
|
|
|
452480
452498
|
releaseNotes
|
|
452481
452499
|
};
|
|
452482
452500
|
}
|
|
452483
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.68.
|
|
452501
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.68.16") {
|
|
452484
452502
|
if (process.env.USER_TYPE === "ant") {
|
|
452485
452503
|
const changelog = "";
|
|
452486
452504
|
if (changelog) {
|
|
@@ -455346,7 +455364,7 @@ function getRecentActivitySync() {
|
|
|
455346
455364
|
return cachedActivity;
|
|
455347
455365
|
}
|
|
455348
455366
|
function getLogoDisplayData() {
|
|
455349
|
-
const version2 = process.env.DEMO_VERSION ?? "1.68.
|
|
455367
|
+
const version2 = process.env.DEMO_VERSION ?? "1.68.16";
|
|
455350
455368
|
const serverUrl = getDirectConnectServerUrl();
|
|
455351
455369
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
455352
455370
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -456213,7 +456231,7 @@ function LogoV2() {
|
|
|
456213
456231
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
456214
456232
|
t2 = () => {
|
|
456215
456233
|
const currentConfig2 = getGlobalConfig();
|
|
456216
|
-
if (currentConfig2.lastReleaseNotesSeen === "1.68.
|
|
456234
|
+
if (currentConfig2.lastReleaseNotesSeen === "1.68.16") {
|
|
456217
456235
|
return;
|
|
456218
456236
|
}
|
|
456219
456237
|
saveGlobalConfig(_temp325);
|
|
@@ -456898,12 +456916,12 @@ function LogoV2() {
|
|
|
456898
456916
|
return t41;
|
|
456899
456917
|
}
|
|
456900
456918
|
function _temp325(current) {
|
|
456901
|
-
if (current.lastReleaseNotesSeen === "1.68.
|
|
456919
|
+
if (current.lastReleaseNotesSeen === "1.68.16") {
|
|
456902
456920
|
return current;
|
|
456903
456921
|
}
|
|
456904
456922
|
return {
|
|
456905
456923
|
...current,
|
|
456906
|
-
lastReleaseNotesSeen: "1.68.
|
|
456924
|
+
lastReleaseNotesSeen: "1.68.16"
|
|
456907
456925
|
};
|
|
456908
456926
|
}
|
|
456909
456927
|
function _temp241(s_0) {
|
|
@@ -473849,7 +473867,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
473849
473867
|
if (spec.name !== specName) {
|
|
473850
473868
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
473851
473869
|
}
|
|
473852
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.68.
|
|
473870
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.68.16" : "1.68.16");
|
|
473853
473871
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
473854
473872
|
throw new Error("invalid ur-agent package version");
|
|
473855
473873
|
}
|
|
@@ -474842,7 +474860,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
474842
474860
|
path: ".github/workflows/ur.yml",
|
|
474843
474861
|
root: "project",
|
|
474844
474862
|
content: compileAgenticCiWorkflow("default", {
|
|
474845
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.68.
|
|
474863
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.68.16" : "1.68.16"
|
|
474846
474864
|
})
|
|
474847
474865
|
},
|
|
474848
474866
|
{
|
|
@@ -474912,7 +474930,7 @@ function value(tokens, flag) {
|
|
|
474912
474930
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
474913
474931
|
}
|
|
474914
474932
|
function cliVersion() {
|
|
474915
|
-
return typeof MACRO !== "undefined" ? "1.68.
|
|
474933
|
+
return typeof MACRO !== "undefined" ? "1.68.16" : "1.68.16";
|
|
474916
474934
|
}
|
|
474917
474935
|
function workflowPath(cwd2) {
|
|
474918
474936
|
return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -480777,7 +480795,7 @@ function createAcpStdioApp(deps) {
|
|
|
480777
480795
|
}
|
|
480778
480796
|
},
|
|
480779
480797
|
authMethods: [],
|
|
480780
|
-
agentInfo: { name: "UR-Nexus", version: "1.68.
|
|
480798
|
+
agentInfo: { name: "UR-Nexus", version: "1.68.16" }
|
|
480781
480799
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
480782
480800
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
480783
480801
|
await runtime2.announce({
|
|
@@ -480874,7 +480892,7 @@ function createAcpStdioAgent(deps) {
|
|
|
480874
480892
|
}
|
|
480875
480893
|
},
|
|
480876
480894
|
authMethods: [],
|
|
480877
|
-
agentInfo: { name: "UR-Nexus", version: "1.68.
|
|
480895
|
+
agentInfo: { name: "UR-Nexus", version: "1.68.16" }
|
|
480878
480896
|
});
|
|
480879
480897
|
return;
|
|
480880
480898
|
case "authenticate":
|
|
@@ -692034,7 +692052,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
692034
692052
|
smapsRollup,
|
|
692035
692053
|
platform: process.platform,
|
|
692036
692054
|
nodeVersion: process.version,
|
|
692037
|
-
ccVersion: "1.68.
|
|
692055
|
+
ccVersion: "1.68.16"
|
|
692038
692056
|
};
|
|
692039
692057
|
}
|
|
692040
692058
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -692614,7 +692632,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
692614
692632
|
var call153 = async () => {
|
|
692615
692633
|
return {
|
|
692616
692634
|
type: "text",
|
|
692617
|
-
value: "1.68.
|
|
692635
|
+
value: "1.68.16"
|
|
692618
692636
|
};
|
|
692619
692637
|
}, version2, version_default;
|
|
692620
692638
|
var init_version = __esm(() => {
|
|
@@ -703794,7 +703812,7 @@ function generateHtmlReport(data, insights) {
|
|
|
703794
703812
|
</html>`;
|
|
703795
703813
|
}
|
|
703796
703814
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
703797
|
-
const version3 = typeof MACRO !== "undefined" ? "1.68.
|
|
703815
|
+
const version3 = typeof MACRO !== "undefined" ? "1.68.16" : "unknown";
|
|
703798
703816
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
703799
703817
|
const facets_summary = {
|
|
703800
703818
|
total: facets.size,
|
|
@@ -708121,7 +708139,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
708121
708139
|
init_settings2();
|
|
708122
708140
|
init_slowOperations();
|
|
708123
708141
|
init_uuid();
|
|
708124
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.68.
|
|
708142
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.68.16" : "unknown";
|
|
708125
708143
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
708126
708144
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
708127
708145
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -709338,7 +709356,7 @@ var init_filesystem = __esm(() => {
|
|
|
709338
709356
|
});
|
|
709339
709357
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
709340
709358
|
const nonce = randomBytes20(16).toString("hex");
|
|
709341
|
-
return join230(getURTempDir(), "bundled-skills", "1.68.
|
|
709359
|
+
return join230(getURTempDir(), "bundled-skills", "1.68.16", nonce);
|
|
709342
709360
|
});
|
|
709343
709361
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
709344
709362
|
});
|
|
@@ -715644,7 +715662,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
715644
715662
|
}
|
|
715645
715663
|
function computeFingerprintFromMessages(messages) {
|
|
715646
715664
|
const firstMessageText = extractFirstMessageText(messages);
|
|
715647
|
-
return computeFingerprint(firstMessageText, "1.68.
|
|
715665
|
+
return computeFingerprint(firstMessageText, "1.68.16");
|
|
715648
715666
|
}
|
|
715649
715667
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
715650
715668
|
var init_fingerprint = () => {};
|
|
@@ -717543,7 +717561,7 @@ async function sideQuery(opts) {
|
|
|
717543
717561
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
717544
717562
|
}
|
|
717545
717563
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
717546
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.68.
|
|
717564
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.68.16");
|
|
717547
717565
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
717548
717566
|
const systemBlocks = [
|
|
717549
717567
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -722330,7 +722348,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
722330
722348
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
722331
722349
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
722332
722350
|
betas: getSdkBetas(),
|
|
722333
|
-
ur_version: "1.68.
|
|
722351
|
+
ur_version: "1.68.16",
|
|
722334
722352
|
output_style: outputStyle2,
|
|
722335
722353
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
722336
722354
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -736281,7 +736299,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
736281
736299
|
function getSemverPart(version3) {
|
|
736282
736300
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
736283
736301
|
}
|
|
736284
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.68.
|
|
736302
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.68.16") {
|
|
736285
736303
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
|
|
736286
736304
|
if (!updatedVersion) {
|
|
736287
736305
|
return null;
|
|
@@ -736330,7 +736348,7 @@ function AutoUpdater({
|
|
|
736330
736348
|
return;
|
|
736331
736349
|
}
|
|
736332
736350
|
if (false) {}
|
|
736333
|
-
const currentVersion = "1.68.
|
|
736351
|
+
const currentVersion = "1.68.16";
|
|
736334
736352
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
736335
736353
|
let latestVersion = await getLatestVersion(channel);
|
|
736336
736354
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -736559,12 +736577,12 @@ function NativeAutoUpdater({
|
|
|
736559
736577
|
logEvent("tengu_native_auto_updater_start", {});
|
|
736560
736578
|
try {
|
|
736561
736579
|
const maxVersion = await getMaxVersion();
|
|
736562
|
-
if (maxVersion && gt("1.68.
|
|
736580
|
+
if (maxVersion && gt("1.68.16", maxVersion)) {
|
|
736563
736581
|
const msg = await getMaxVersionMessage();
|
|
736564
736582
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
736565
736583
|
}
|
|
736566
736584
|
const result = await installLatest(channel);
|
|
736567
|
-
const currentVersion = "1.68.
|
|
736585
|
+
const currentVersion = "1.68.16";
|
|
736568
736586
|
const latencyMs = Date.now() - startTime;
|
|
736569
736587
|
if (result.lockFailed) {
|
|
736570
736588
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -736701,17 +736719,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
736701
736719
|
const maxVersion = await getMaxVersion();
|
|
736702
736720
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
736703
736721
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
736704
|
-
if (gte("1.68.
|
|
736705
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.68.
|
|
736722
|
+
if (gte("1.68.16", maxVersion)) {
|
|
736723
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.68.16"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
736706
736724
|
setUpdateAvailable(false);
|
|
736707
736725
|
return;
|
|
736708
736726
|
}
|
|
736709
736727
|
latest = maxVersion;
|
|
736710
736728
|
}
|
|
736711
|
-
const hasUpdate = latest && !gte("1.68.
|
|
736729
|
+
const hasUpdate = latest && !gte("1.68.16", latest) && !shouldSkipVersion(latest);
|
|
736712
736730
|
setUpdateAvailable(!!hasUpdate);
|
|
736713
736731
|
if (hasUpdate) {
|
|
736714
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.68.
|
|
736732
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.68.16"} -> ${latest}`);
|
|
736715
736733
|
}
|
|
736716
736734
|
};
|
|
736717
736735
|
$2[0] = t1;
|
|
@@ -736745,7 +736763,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
736745
736763
|
wrap: "truncate",
|
|
736746
736764
|
children: [
|
|
736747
736765
|
"currentVersion: ",
|
|
736748
|
-
"1.68.
|
|
736766
|
+
"1.68.16"
|
|
736749
736767
|
]
|
|
736750
736768
|
}, undefined, true, undefined, this);
|
|
736751
736769
|
$2[3] = verbose;
|
|
@@ -747455,7 +747473,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
747455
747473
|
project_dir: getOriginalCwd(),
|
|
747456
747474
|
added_dirs: addedDirs
|
|
747457
747475
|
},
|
|
747458
|
-
version: "1.68.
|
|
747476
|
+
version: "1.68.16",
|
|
747459
747477
|
output_style: {
|
|
747460
747478
|
name: outputStyleName
|
|
747461
747479
|
},
|
|
@@ -747534,7 +747552,7 @@ function StatusLineInner({
|
|
|
747534
747552
|
const taskRunningCount = countActiveBackgroundTasks(taskValues);
|
|
747535
747553
|
const agentRunningCount = countActiveForegroundAgents(taskValues);
|
|
747536
747554
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
747537
|
-
version: "1.68.
|
|
747555
|
+
version: "1.68.16",
|
|
747538
747556
|
providerLabel: providerRuntime.providerLabel,
|
|
747539
747557
|
authMode: providerRuntime.authLabel,
|
|
747540
747558
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -759715,7 +759733,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
759715
759733
|
} catch {}
|
|
759716
759734
|
const data = {
|
|
759717
759735
|
trigger: trigger2,
|
|
759718
|
-
version: "1.68.
|
|
759736
|
+
version: "1.68.16",
|
|
759719
759737
|
platform: process.platform,
|
|
759720
759738
|
transcript,
|
|
759721
759739
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -772083,7 +772101,7 @@ function WelcomeV2() {
|
|
|
772083
772101
|
dimColor: true,
|
|
772084
772102
|
children: [
|
|
772085
772103
|
"v",
|
|
772086
|
-
"1.68.
|
|
772104
|
+
"1.68.16"
|
|
772087
772105
|
]
|
|
772088
772106
|
}, undefined, true, undefined, this)
|
|
772089
772107
|
]
|
|
@@ -773343,7 +773361,7 @@ function completeOnboarding() {
|
|
|
773343
773361
|
saveGlobalConfig((current) => ({
|
|
773344
773362
|
...current,
|
|
773345
773363
|
hasCompletedOnboarding: true,
|
|
773346
|
-
lastOnboardingVersion: "1.68.
|
|
773364
|
+
lastOnboardingVersion: "1.68.16"
|
|
773347
773365
|
}));
|
|
773348
773366
|
}
|
|
773349
773367
|
function showDialog(root2, renderer) {
|
|
@@ -778387,7 +778405,7 @@ function appendToLog(path24, message) {
|
|
|
778387
778405
|
cwd: getFsImplementation().cwd(),
|
|
778388
778406
|
userType: process.env.USER_TYPE,
|
|
778389
778407
|
sessionId: getSessionId(),
|
|
778390
|
-
version: "1.68.
|
|
778408
|
+
version: "1.68.16"
|
|
778391
778409
|
};
|
|
778392
778410
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
778393
778411
|
}
|
|
@@ -782551,8 +782569,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
782551
782569
|
}
|
|
782552
782570
|
async function checkEnvLessBridgeMinVersion() {
|
|
782553
782571
|
const cfg = await getEnvLessBridgeConfig();
|
|
782554
|
-
if (cfg.min_version && lt("1.68.
|
|
782555
|
-
return `Your version of UR (${"1.68.
|
|
782572
|
+
if (cfg.min_version && lt("1.68.16", cfg.min_version)) {
|
|
782573
|
+
return `Your version of UR (${"1.68.16"}) is too old for Remote Control.
|
|
782556
782574
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
782557
782575
|
}
|
|
782558
782576
|
return null;
|
|
@@ -783026,7 +783044,7 @@ async function initBridgeCore(params) {
|
|
|
783026
783044
|
const rawApi = createBridgeApiClient({
|
|
783027
783045
|
baseUrl,
|
|
783028
783046
|
getAccessToken,
|
|
783029
|
-
runnerVersion: "1.68.
|
|
783047
|
+
runnerVersion: "1.68.16",
|
|
783030
783048
|
onDebug: logForDebugging,
|
|
783031
783049
|
onAuth401,
|
|
783032
783050
|
getTrustedDeviceToken
|
|
@@ -792499,7 +792517,7 @@ function getAgUiCapabilities() {
|
|
|
792499
792517
|
name: "UR-Nexus",
|
|
792500
792518
|
type: "ur-nexus",
|
|
792501
792519
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
792502
|
-
version: "1.68.
|
|
792520
|
+
version: "1.68.16",
|
|
792503
792521
|
provider: "UR",
|
|
792504
792522
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
792505
792523
|
},
|
|
@@ -793639,7 +793657,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
793639
793657
|
};
|
|
793640
793658
|
const server2 = new Server({
|
|
793641
793659
|
name: "ur-nexus",
|
|
793642
|
-
version: "1.68.
|
|
793660
|
+
version: "1.68.16"
|
|
793643
793661
|
}, {
|
|
793644
793662
|
capabilities: {
|
|
793645
793663
|
tools: {}
|
|
@@ -794797,7 +794815,7 @@ function thrownResponse(error40) {
|
|
|
794797
794815
|
}
|
|
794798
794816
|
async function createUrMcp2026Runtime(options4) {
|
|
794799
794817
|
const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
|
|
794800
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.68.
|
|
794818
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.68.16" }, { capabilities: {} });
|
|
794801
794819
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
794802
794820
|
try {
|
|
794803
794821
|
await server2.connect(serverTransport);
|
|
@@ -794808,7 +794826,7 @@ async function createUrMcp2026Runtime(options4) {
|
|
|
794808
794826
|
}
|
|
794809
794827
|
const runtime2 = new Mcp2026Runtime({
|
|
794810
794828
|
cwd: options4.cwd,
|
|
794811
|
-
version: "1.68.
|
|
794829
|
+
version: "1.68.16",
|
|
794812
794830
|
backend: {
|
|
794813
794831
|
listTools: async () => {
|
|
794814
794832
|
const listed = await client2.listTools();
|
|
@@ -796941,7 +796959,7 @@ async function update() {
|
|
|
796941
796959
|
logEvent("tengu_update_check", {});
|
|
796942
796960
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
796943
796961
|
const result = await checkUpgradeStatus({
|
|
796944
|
-
currentVersion: "1.68.
|
|
796962
|
+
currentVersion: "1.68.16",
|
|
796945
796963
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
796946
796964
|
installationType: diagnostic2.installationType,
|
|
796947
796965
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -798257,7 +798275,7 @@ ${customInstructions}` : customInstructions;
|
|
|
798257
798275
|
}
|
|
798258
798276
|
}
|
|
798259
798277
|
logForDiagnosticsNoPII("info", "started", {
|
|
798260
|
-
version: "1.68.
|
|
798278
|
+
version: "1.68.16",
|
|
798261
798279
|
is_native_binary: isInBundledMode()
|
|
798262
798280
|
});
|
|
798263
798281
|
registerCleanup(async () => {
|
|
@@ -799043,7 +799061,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
799043
799061
|
pendingHookMessages
|
|
799044
799062
|
}, renderAndRun);
|
|
799045
799063
|
}
|
|
799046
|
-
}).version("1.68.
|
|
799064
|
+
}).version("1.68.16 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
799047
799065
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
799048
799066
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
799049
799067
|
if (canUserConfigureAdvisor()) {
|
|
@@ -800102,7 +800120,7 @@ if (false) {}
|
|
|
800102
800120
|
async function main2() {
|
|
800103
800121
|
const args = process.argv.slice(2);
|
|
800104
800122
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
800105
|
-
console.log(`${"1.68.
|
|
800123
|
+
console.log(`${"1.68.16"} (UR-Nexus)`);
|
|
800106
800124
|
return;
|
|
800107
800125
|
}
|
|
800108
800126
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|
package/docs/VALIDATION.md
CHANGED
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.68.
|
|
48
|
+
<p class="eyebrow">Version 1.68.16</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.68.
|
|
5
|
+
"version": "1.68.16",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED
package/technical/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# UR-Nexus — Technical Specifications
|
|
2
2
|
|
|
3
|
-
> Audited against the executable source and tests for `ur-agent` v1.68.
|
|
3
|
+
> Audited against the executable source and tests for `ur-agent` v1.68.16.
|
|
4
4
|
> Command, tool, flag, provider, and setting claims are checked against the
|
|
5
5
|
> implementation rather than copied from product prose. Release validation
|
|
6
6
|
> keeps this version synchronized and packages the complete `technical/`
|