ur-agent 1.66.0 → 1.67.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 +47 -0
- package/dist/cli.js +140 -106
- 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,52 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.67.0
|
|
4
|
+
|
|
5
|
+
- Two subsystems loaded behind feature flags were not merely disabled, they
|
|
6
|
+
were broken in a way that only showed if you enabled them.
|
|
7
|
+
`services/compact/reactiveCompact.ts` did not exist on disk at all, yet
|
|
8
|
+
`query.ts` requires it by path and `/compact` calls two functions on it;
|
|
9
|
+
`services/contextCollapse/index.ts` was a stub exporting four names while
|
|
10
|
+
`query.ts` called four different ones, three of which were absent. Setting
|
|
11
|
+
either flag would have failed on the first turn with MODULE_NOT_FOUND or
|
|
12
|
+
"is not a function" rather than degrading to "feature off". Both modules now
|
|
13
|
+
export the full surface their callers use, returning result-shaped objects
|
|
14
|
+
instead of null so property access on the result cannot throw.
|
|
15
|
+
- Neither was reachable in shipped builds — the bundler passes only VOICE_MODE
|
|
16
|
+
and CHICAGO_MCP, and live context management runs through
|
|
17
|
+
`services/compact/autoCompact.ts`, which is real and unaffected.
|
|
18
|
+
- Added `test/optionalSubsystems.test.ts`, which derives the required exports
|
|
19
|
+
from what `query.ts` actually calls rather than from a hand-written list, so
|
|
20
|
+
a new call site cannot reintroduce the gap. It also asserts autoCompact has
|
|
21
|
+
not itself become a stub.
|
|
22
|
+
- Audit note: 223 files carry `@ts-nocheck` and are invisible to
|
|
23
|
+
`tsc --noEmit`. Stripping the suppressions in a scratch copy surfaces 872
|
|
24
|
+
errors across ~108k lines, including `query.ts`, `permissions.ts` and
|
|
25
|
+
`filesystem.ts`. Both defects above sat inside that blind spot.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
## 1.66.2
|
|
29
|
+
|
|
30
|
+
- A long session on Ollama now says when it has run out of context instead of
|
|
31
|
+
quietly getting worse. Ollama truncates an oversized prompt from the front
|
|
32
|
+
rather than returning an error, and the front of the prompt is the system
|
|
33
|
+
prompt — so the first thing discarded is the instruction set. The model then
|
|
34
|
+
answers with no tool guidance and no task-list requirement, which from the
|
|
35
|
+
outside looks like the model degrading on long prompts rather than like
|
|
36
|
+
context running out. Both numbers needed to detect this were already computed
|
|
37
|
+
on every request; they were never compared. A near-full context now warns at
|
|
38
|
+
85% and a full one explains what was dropped and offers `/compact`, a fresh
|
|
39
|
+
session, a larger-context model, or `UR_OLLAMA_NUM_CTX`.
|
|
40
|
+
- Added `test/contextPressure.test.ts`, including that unknown sizing produces
|
|
41
|
+
no warning — an unmeasured context is not a full one.
|
|
42
|
+
|
|
43
|
+
## 1.66.1
|
|
44
|
+
|
|
45
|
+
- Corrected the warning-state result used by reactive compaction and context
|
|
46
|
+
collapse when a custom proactive threshold is configured. Their
|
|
47
|
+
effective-window override can no longer report that the separate proactive
|
|
48
|
+
auto-compact trigger was crossed.
|
|
49
|
+
|
|
3
50
|
## 1.66.0
|
|
4
51
|
|
|
5
52
|
- Unified proactive compaction around one model-aware threshold and one live
|
package/dist/cli.js
CHANGED
|
@@ -56666,6 +56666,29 @@ function computeOllamaNumCtx(input) {
|
|
|
56666
56666
|
const desired = Math.max(minCtx, estimatedPromptTokens + headroom);
|
|
56667
56667
|
return cap(bucketize(desired));
|
|
56668
56668
|
}
|
|
56669
|
+
function describeContextPressure(input) {
|
|
56670
|
+
const { estimatedPromptTokens, numCtx, modelContextLength, model } = input;
|
|
56671
|
+
const effective = numCtx ?? modelContextLength;
|
|
56672
|
+
if (!effective || effective <= 0 || estimatedPromptTokens <= 0) {
|
|
56673
|
+
return { level: "ok" };
|
|
56674
|
+
}
|
|
56675
|
+
if (estimatedPromptTokens >= effective) {
|
|
56676
|
+
return {
|
|
56677
|
+
level: "overflow",
|
|
56678
|
+
message: `This request is about ${fmt(estimatedPromptTokens)} tokens but ${model} ` + `is running with a ${fmt(effective)}-token context. Ollama discards the ` + `oldest tokens instead of failing, so the system prompt and earliest ` + `turns are being dropped and the model is answering without them. ` + `Use /compact, start a new session, pick a model with a larger context, ` + `or raise UR_OLLAMA_NUM_CTX if the model supports more.`
|
|
56679
|
+
};
|
|
56680
|
+
}
|
|
56681
|
+
if (estimatedPromptTokens >= effective * 0.85) {
|
|
56682
|
+
return {
|
|
56683
|
+
level: "tight",
|
|
56684
|
+
message: `This request is using about ${fmt(estimatedPromptTokens)} of ${model}'s ` + `${fmt(effective)}-token context. Once it is full, Ollama drops the ` + `oldest tokens \u2014 the system prompt first. /compact will free room.`
|
|
56685
|
+
};
|
|
56686
|
+
}
|
|
56687
|
+
return { level: "ok" };
|
|
56688
|
+
}
|
|
56689
|
+
function fmt(n2) {
|
|
56690
|
+
return n2 >= 1000 ? `${Math.round(n2 / 1000)}k` : String(n2);
|
|
56691
|
+
}
|
|
56669
56692
|
function bucketize(n2) {
|
|
56670
56693
|
for (const bucket of NUM_CTX_BUCKETS) {
|
|
56671
56694
|
if (bucket >= n2)
|
|
@@ -57709,15 +57732,26 @@ function toOllamaChatRequest(params, stream4, capabilities, baseUrl = getEffecti
|
|
|
57709
57732
|
if (typeof params.max_tokens === "number") {
|
|
57710
57733
|
options.num_predict = params.max_tokens;
|
|
57711
57734
|
}
|
|
57735
|
+
const modelContextLength = getOllamaContextLengthForModel(params.model, baseUrl);
|
|
57736
|
+
const estimatedPromptTokens = estimateInputTokens(params);
|
|
57712
57737
|
const numCtx = computeOllamaNumCtx({
|
|
57713
|
-
modelContextLength
|
|
57714
|
-
estimatedPromptTokens
|
|
57738
|
+
modelContextLength,
|
|
57739
|
+
estimatedPromptTokens,
|
|
57715
57740
|
maxTokens: typeof params.max_tokens === "number" ? params.max_tokens : undefined,
|
|
57716
57741
|
override: getOllamaNumCtxOverride()
|
|
57717
57742
|
});
|
|
57718
57743
|
if (numCtx !== undefined) {
|
|
57719
57744
|
options.num_ctx = numCtx;
|
|
57720
57745
|
}
|
|
57746
|
+
const pressure = describeContextPressure({
|
|
57747
|
+
estimatedPromptTokens,
|
|
57748
|
+
numCtx,
|
|
57749
|
+
modelContextLength,
|
|
57750
|
+
model: params.model
|
|
57751
|
+
});
|
|
57752
|
+
if (pressure.message && !pendingProviderNotice) {
|
|
57753
|
+
pendingProviderNotice = pressure.message;
|
|
57754
|
+
}
|
|
57721
57755
|
if (Object.keys(options).length > 0) {
|
|
57722
57756
|
request.options = options;
|
|
57723
57757
|
}
|
|
@@ -75613,7 +75647,7 @@ var init_auth = __esm(() => {
|
|
|
75613
75647
|
|
|
75614
75648
|
// src/utils/userAgent.ts
|
|
75615
75649
|
function getURCodeUserAgent() {
|
|
75616
|
-
return `ur/${"1.
|
|
75650
|
+
return `ur/${"1.67.0"}`;
|
|
75617
75651
|
}
|
|
75618
75652
|
|
|
75619
75653
|
// src/utils/workloadContext.ts
|
|
@@ -75635,7 +75669,7 @@ function getUserAgent() {
|
|
|
75635
75669
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
75636
75670
|
const workload = getWorkload();
|
|
75637
75671
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
75638
|
-
return `ur-cli/${"1.
|
|
75672
|
+
return `ur-cli/${"1.67.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
75639
75673
|
}
|
|
75640
75674
|
function getMCPUserAgent() {
|
|
75641
75675
|
const parts = [];
|
|
@@ -75649,7 +75683,7 @@ function getMCPUserAgent() {
|
|
|
75649
75683
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
75650
75684
|
}
|
|
75651
75685
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
75652
|
-
return `ur/${"1.
|
|
75686
|
+
return `ur/${"1.67.0"}${suffix}`;
|
|
75653
75687
|
}
|
|
75654
75688
|
function getWebFetchUserAgent() {
|
|
75655
75689
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -75787,7 +75821,7 @@ var init_user = __esm(() => {
|
|
|
75787
75821
|
deviceId,
|
|
75788
75822
|
sessionId: getSessionId(),
|
|
75789
75823
|
email: getEmail(),
|
|
75790
|
-
appVersion: "1.
|
|
75824
|
+
appVersion: "1.67.0",
|
|
75791
75825
|
platform: getHostPlatformForAnalytics(),
|
|
75792
75826
|
organizationUuid,
|
|
75793
75827
|
accountUuid,
|
|
@@ -83987,7 +84021,7 @@ var init_metadata = __esm(() => {
|
|
|
83987
84021
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
83988
84022
|
WHITESPACE_REGEX = /\s+/;
|
|
83989
84023
|
getVersionBase = memoize_default(() => {
|
|
83990
|
-
const match = "1.
|
|
84024
|
+
const match = "1.67.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
83991
84025
|
return match ? match[0] : undefined;
|
|
83992
84026
|
});
|
|
83993
84027
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -84027,7 +84061,7 @@ var init_metadata = __esm(() => {
|
|
|
84027
84061
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
84028
84062
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
84029
84063
|
isURAiAuth: isURAISubscriber(),
|
|
84030
|
-
version: "1.
|
|
84064
|
+
version: "1.67.0",
|
|
84031
84065
|
versionBase: getVersionBase(),
|
|
84032
84066
|
buildTime: "",
|
|
84033
84067
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -84697,7 +84731,7 @@ function initialize1PEventLogging() {
|
|
|
84697
84731
|
const platform2 = getPlatform();
|
|
84698
84732
|
const attributes = {
|
|
84699
84733
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
84700
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.
|
|
84734
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.67.0"
|
|
84701
84735
|
};
|
|
84702
84736
|
if (platform2 === "wsl") {
|
|
84703
84737
|
const wslVersion = getWslVersion();
|
|
@@ -84725,7 +84759,7 @@ function initialize1PEventLogging() {
|
|
|
84725
84759
|
})
|
|
84726
84760
|
]
|
|
84727
84761
|
});
|
|
84728
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.
|
|
84762
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.67.0");
|
|
84729
84763
|
}
|
|
84730
84764
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
84731
84765
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -90099,7 +90133,7 @@ function suggestSkillCandidates(stats, existingSkillNames = [], options = {}) {
|
|
|
90099
90133
|
function formatStats(stats, json2) {
|
|
90100
90134
|
if (json2)
|
|
90101
90135
|
return JSON.stringify(stats, null, 2);
|
|
90102
|
-
const
|
|
90136
|
+
const fmt2 = (t) => {
|
|
90103
90137
|
const total = t.pass + t.fail;
|
|
90104
90138
|
return `${t.pass}/${total} (${total ? Math.round(t.pass / total * 100) : 0}%)`;
|
|
90105
90139
|
};
|
|
@@ -90108,14 +90142,14 @@ function formatStats(stats, json2) {
|
|
|
90108
90142
|
if (cats.length) {
|
|
90109
90143
|
lines.push("By category:");
|
|
90110
90144
|
for (const [cat, t] of cats)
|
|
90111
|
-
lines.push(` ${cat.padEnd(14)} ${
|
|
90145
|
+
lines.push(` ${cat.padEnd(14)} ${fmt2(t)}`);
|
|
90112
90146
|
lines.push("");
|
|
90113
90147
|
}
|
|
90114
90148
|
const models = Object.entries(stats.models).sort((a2, b) => a2[0].localeCompare(b[0]));
|
|
90115
90149
|
if (models.length) {
|
|
90116
90150
|
lines.push("By model:");
|
|
90117
90151
|
for (const [model, t] of models)
|
|
90118
|
-
lines.push(` ${model.padEnd(28)} ${
|
|
90152
|
+
lines.push(` ${model.padEnd(28)} ${fmt2(t)}`);
|
|
90119
90153
|
lines.push("");
|
|
90120
90154
|
}
|
|
90121
90155
|
if (stats.lessons.length) {
|
|
@@ -94613,7 +94647,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
94613
94647
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
94614
94648
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
94615
94649
|
}
|
|
94616
|
-
var urVersion = "1.
|
|
94650
|
+
var urVersion = "1.67.0", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
|
|
94617
94651
|
var init_trends = __esm(() => {
|
|
94618
94652
|
init_a2aCardSignature();
|
|
94619
94653
|
coverage = [
|
|
@@ -97416,7 +97450,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
97416
97450
|
if (!isAttributionHeaderEnabled()) {
|
|
97417
97451
|
return "";
|
|
97418
97452
|
}
|
|
97419
|
-
const version2 = `${"1.
|
|
97453
|
+
const version2 = `${"1.67.0"}.${fingerprint}`;
|
|
97420
97454
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
97421
97455
|
const cch = "";
|
|
97422
97456
|
const workload = getWorkload();
|
|
@@ -155289,7 +155323,7 @@ var init_projectSafety = __esm(() => {
|
|
|
155289
155323
|
function getInstruments() {
|
|
155290
155324
|
if (instruments)
|
|
155291
155325
|
return instruments;
|
|
155292
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.
|
|
155326
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.67.0");
|
|
155293
155327
|
instruments = {
|
|
155294
155328
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
155295
155329
|
description: "GenAI operation duration.",
|
|
@@ -155387,7 +155421,7 @@ function genAiAgentAttributes() {
|
|
|
155387
155421
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
155388
155422
|
"gen_ai.provider.name": "ur",
|
|
155389
155423
|
"gen_ai.agent.name": "UR-Nexus",
|
|
155390
|
-
"gen_ai.agent.version": "1.
|
|
155424
|
+
"gen_ai.agent.version": "1.67.0"
|
|
155391
155425
|
};
|
|
155392
155426
|
}
|
|
155393
155427
|
function genAiWorkflowAttributes(workflowName) {
|
|
@@ -155403,7 +155437,7 @@ function genAiWorkflowAttributes(workflowName) {
|
|
|
155403
155437
|
function startGenAiWorkflowSpan(workflowName) {
|
|
155404
155438
|
const attributes = genAiWorkflowAttributes(workflowName);
|
|
155405
155439
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
155406
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.
|
|
155440
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.67.0").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
155407
155441
|
}
|
|
155408
155442
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
155409
155443
|
try {
|
|
@@ -155441,7 +155475,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
155441
155475
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
155442
155476
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
155443
155477
|
}
|
|
155444
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.
|
|
155478
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.67.0").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
155445
155479
|
}
|
|
155446
155480
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
155447
155481
|
try {
|
|
@@ -248924,7 +248958,7 @@ function getTelemetryAttributes() {
|
|
|
248924
248958
|
attributes["session.id"] = sessionId;
|
|
248925
248959
|
}
|
|
248926
248960
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
248927
|
-
attributes["app.version"] = "1.
|
|
248961
|
+
attributes["app.version"] = "1.67.0";
|
|
248928
248962
|
}
|
|
248929
248963
|
const oauthAccount = getOauthAccountInfo();
|
|
248930
248964
|
if (oauthAccount) {
|
|
@@ -264542,11 +264576,11 @@ var require_format = __commonJS((exports) => {
|
|
|
264542
264576
|
}
|
|
264543
264577
|
function getFormat(fmtDef) {
|
|
264544
264578
|
const code = fmtDef instanceof RegExp ? (0, codegen_1.regexpCode)(fmtDef) : opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(schema)}` : undefined;
|
|
264545
|
-
const
|
|
264579
|
+
const fmt2 = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
|
|
264546
264580
|
if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) {
|
|
264547
|
-
return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${
|
|
264581
|
+
return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt2}.validate`];
|
|
264548
264582
|
}
|
|
264549
|
-
return ["string", fmtDef,
|
|
264583
|
+
return ["string", fmtDef, fmt2];
|
|
264550
264584
|
}
|
|
264551
264585
|
function validCondition() {
|
|
264552
264586
|
if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) {
|
|
@@ -275651,11 +275685,11 @@ var require_format3 = __commonJS((exports) => {
|
|
|
275651
275685
|
}
|
|
275652
275686
|
function getFormat(fmtDef) {
|
|
275653
275687
|
const code = fmtDef instanceof RegExp ? (0, codegen_1.regexpCode)(fmtDef) : opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(schema)}` : undefined;
|
|
275654
|
-
const
|
|
275688
|
+
const fmt2 = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
|
|
275655
275689
|
if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) {
|
|
275656
|
-
return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${
|
|
275690
|
+
return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt2}.validate`];
|
|
275657
275691
|
}
|
|
275658
|
-
return ["string", fmtDef,
|
|
275692
|
+
return ["string", fmtDef, fmt2];
|
|
275659
275693
|
}
|
|
275660
275694
|
function validCondition() {
|
|
275661
275695
|
if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) {
|
|
@@ -281210,11 +281244,11 @@ var require_format5 = __commonJS((exports) => {
|
|
|
281210
281244
|
}
|
|
281211
281245
|
function getFormat(fmtDef) {
|
|
281212
281246
|
const code = fmtDef instanceof RegExp ? (0, codegen_1.regexpCode)(fmtDef) : opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(schema)}` : undefined;
|
|
281213
|
-
const
|
|
281247
|
+
const fmt2 = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
|
|
281214
281248
|
if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) {
|
|
281215
|
-
return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${
|
|
281249
|
+
return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt2}.validate`];
|
|
281216
281250
|
}
|
|
281217
|
-
return ["string", fmtDef,
|
|
281251
|
+
return ["string", fmtDef, fmt2];
|
|
281218
281252
|
}
|
|
281219
281253
|
function validCondition() {
|
|
281220
281254
|
if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) {
|
|
@@ -281651,8 +281685,8 @@ var require_limit = __commonJS((exports) => {
|
|
|
281651
281685
|
ref: self2.formats,
|
|
281652
281686
|
code: opts.code.formats
|
|
281653
281687
|
});
|
|
281654
|
-
const
|
|
281655
|
-
cxt.fail$data((0, codegen_1.or)((0, codegen_1._)`typeof ${
|
|
281688
|
+
const fmt2 = gen.const("fmt", (0, codegen_1._)`${fmts}[${fCxt.schemaCode}]`);
|
|
281689
|
+
cxt.fail$data((0, codegen_1.or)((0, codegen_1._)`typeof ${fmt2} != "object"`, (0, codegen_1._)`${fmt2} instanceof RegExp`, (0, codegen_1._)`typeof ${fmt2}.compare != "function"`, compareCode(fmt2)));
|
|
281656
281690
|
}
|
|
281657
281691
|
function validateFormat() {
|
|
281658
281692
|
const format4 = fCxt.schema;
|
|
@@ -281662,15 +281696,15 @@ var require_limit = __commonJS((exports) => {
|
|
|
281662
281696
|
if (typeof fmtDef != "object" || fmtDef instanceof RegExp || typeof fmtDef.compare != "function") {
|
|
281663
281697
|
throw new Error(`"${keyword}": format "${format4}" does not define "compare" function`);
|
|
281664
281698
|
}
|
|
281665
|
-
const
|
|
281699
|
+
const fmt2 = gen.scopeValue("formats", {
|
|
281666
281700
|
key: format4,
|
|
281667
281701
|
ref: fmtDef,
|
|
281668
281702
|
code: opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(format4)}` : undefined
|
|
281669
281703
|
});
|
|
281670
|
-
cxt.fail$data(compareCode(
|
|
281704
|
+
cxt.fail$data(compareCode(fmt2));
|
|
281671
281705
|
}
|
|
281672
|
-
function compareCode(
|
|
281673
|
-
return (0, codegen_1._)`${
|
|
281706
|
+
function compareCode(fmt2) {
|
|
281707
|
+
return (0, codegen_1._)`${fmt2}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;
|
|
281674
281708
|
}
|
|
281675
281709
|
},
|
|
281676
281710
|
dependencies: ["format"]
|
|
@@ -295404,7 +295438,7 @@ function getInstallationEnv() {
|
|
|
295404
295438
|
return;
|
|
295405
295439
|
}
|
|
295406
295440
|
function getURCodeVersion() {
|
|
295407
|
-
return "1.
|
|
295441
|
+
return "1.67.0";
|
|
295408
295442
|
}
|
|
295409
295443
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
295410
295444
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -302735,7 +302769,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
302735
302769
|
const client2 = new Client({
|
|
302736
302770
|
name: "ur",
|
|
302737
302771
|
title: "UR",
|
|
302738
|
-
version: "1.
|
|
302772
|
+
version: "1.67.0",
|
|
302739
302773
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
302740
302774
|
websiteUrl: PRODUCT_URL
|
|
302741
302775
|
}, {
|
|
@@ -303095,7 +303129,7 @@ var init_client5 = __esm(() => {
|
|
|
303095
303129
|
const client2 = new Client({
|
|
303096
303130
|
name: "ur",
|
|
303097
303131
|
title: "UR",
|
|
303098
|
-
version: "1.
|
|
303132
|
+
version: "1.67.0",
|
|
303099
303133
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
303100
303134
|
websiteUrl: PRODUCT_URL
|
|
303101
303135
|
}, {
|
|
@@ -315634,7 +315668,7 @@ async function createRuntime() {
|
|
|
315634
315668
|
bootstrapTelemetry();
|
|
315635
315669
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
315636
315670
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
315637
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.
|
|
315671
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.67.0"
|
|
315638
315672
|
}));
|
|
315639
315673
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
315640
315674
|
resource,
|
|
@@ -315667,11 +315701,11 @@ async function createRuntime() {
|
|
|
315667
315701
|
setMeterProvider(meterProvider);
|
|
315668
315702
|
setLoggerProvider(loggerProvider);
|
|
315669
315703
|
if (meterProvider) {
|
|
315670
|
-
const meter = meterProvider.getMeter("ur-agent", "1.
|
|
315704
|
+
const meter = meterProvider.getMeter("ur-agent", "1.67.0");
|
|
315671
315705
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
315672
315706
|
}
|
|
315673
315707
|
if (loggerProvider) {
|
|
315674
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.
|
|
315708
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.67.0"));
|
|
315675
315709
|
}
|
|
315676
315710
|
if (!cleanupRegistered2) {
|
|
315677
315711
|
cleanupRegistered2 = true;
|
|
@@ -316333,9 +316367,9 @@ async function assertMinVersion() {
|
|
|
316333
316367
|
if (false) {}
|
|
316334
316368
|
try {
|
|
316335
316369
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
316336
|
-
if (versionConfig.minVersion && lt("1.
|
|
316370
|
+
if (versionConfig.minVersion && lt("1.67.0", versionConfig.minVersion)) {
|
|
316337
316371
|
console.error(`
|
|
316338
|
-
It looks like your version of UR (${"1.
|
|
316372
|
+
It looks like your version of UR (${"1.67.0"}) needs an update.
|
|
316339
316373
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
316340
316374
|
|
|
316341
316375
|
To update, please run:
|
|
@@ -316551,7 +316585,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
316551
316585
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
316552
316586
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
316553
316587
|
pid: process.pid,
|
|
316554
|
-
currentVersion: "1.
|
|
316588
|
+
currentVersion: "1.67.0"
|
|
316555
316589
|
});
|
|
316556
316590
|
return "in_progress";
|
|
316557
316591
|
}
|
|
@@ -316560,7 +316594,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
316560
316594
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
316561
316595
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
316562
316596
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
316563
|
-
currentVersion: "1.
|
|
316597
|
+
currentVersion: "1.67.0"
|
|
316564
316598
|
});
|
|
316565
316599
|
console.error(`
|
|
316566
316600
|
Error: Windows NPM detected in WSL
|
|
@@ -317095,7 +317129,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
317095
317129
|
}
|
|
317096
317130
|
async function getDoctorDiagnostic() {
|
|
317097
317131
|
const installationType = await getCurrentInstallationType();
|
|
317098
|
-
const version2 = typeof MACRO !== "undefined" ? "1.
|
|
317132
|
+
const version2 = typeof MACRO !== "undefined" ? "1.67.0" : "unknown";
|
|
317099
317133
|
const installationPath = await getInstallationPath();
|
|
317100
317134
|
const invokedBinary = getInvokedBinary();
|
|
317101
317135
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -318030,8 +318064,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
318030
318064
|
const maxVersion = await getMaxVersion();
|
|
318031
318065
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
318032
318066
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
318033
|
-
if (gte("1.
|
|
318034
|
-
logForDebugging(`Native installer: current version ${"1.
|
|
318067
|
+
if (gte("1.67.0", maxVersion)) {
|
|
318068
|
+
logForDebugging(`Native installer: current version ${"1.67.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
318035
318069
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
318036
318070
|
latency_ms: Date.now() - startTime,
|
|
318037
318071
|
max_version: maxVersion,
|
|
@@ -318042,7 +318076,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
318042
318076
|
version2 = maxVersion;
|
|
318043
318077
|
}
|
|
318044
318078
|
}
|
|
318045
|
-
if (!forceReinstall && version2 === "1.
|
|
318079
|
+
if (!forceReinstall && version2 === "1.67.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
318046
318080
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
318047
318081
|
logEvent("tengu_native_update_complete", {
|
|
318048
318082
|
latency_ms: Date.now() - startTime,
|
|
@@ -388136,7 +388170,7 @@ function isAnyTracingEnabled() {
|
|
|
388136
388170
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
388137
388171
|
}
|
|
388138
388172
|
function getTracer() {
|
|
388139
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.
|
|
388173
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.67.0");
|
|
388140
388174
|
}
|
|
388141
388175
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
388142
388176
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -397691,7 +397725,7 @@ function calculateTokenWarningState(tokenUsage, model, thresholdOverride) {
|
|
|
397691
397725
|
const errorThreshold = Math.max(0, threshold - errorBuffer);
|
|
397692
397726
|
const isAboveWarningThreshold = tokenUsage >= warningThreshold;
|
|
397693
397727
|
const isAboveErrorThreshold = tokenUsage >= errorThreshold;
|
|
397694
|
-
const isAboveAutoCompactThreshold = isAutoCompactEnabled() && tokenUsage >= autoCompactThreshold;
|
|
397728
|
+
const isAboveAutoCompactThreshold = thresholdOverride === undefined && isAutoCompactEnabled() && tokenUsage >= autoCompactThreshold;
|
|
397695
397729
|
const actualContextWindow = getEffectiveContextWindowSize(model);
|
|
397696
397730
|
const defaultBlockingLimit = Math.max(1, actualContextWindow - MANUAL_COMPACT_BUFFER_TOKENS);
|
|
397697
397731
|
const blockingLimitOverride = process.env.UR_CODE_BLOCKING_LIMIT_OVERRIDE;
|
|
@@ -419380,7 +419414,7 @@ function Feedback({
|
|
|
419380
419414
|
platform: env2.platform,
|
|
419381
419415
|
gitRepo: envInfo.isGit,
|
|
419382
419416
|
terminal: env2.terminal,
|
|
419383
|
-
version: "1.
|
|
419417
|
+
version: "1.67.0",
|
|
419384
419418
|
transcript: normalizeMessagesForAPI(messages),
|
|
419385
419419
|
errors: sanitizedErrors,
|
|
419386
419420
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -419572,7 +419606,7 @@ function Feedback({
|
|
|
419572
419606
|
", ",
|
|
419573
419607
|
env2.terminal,
|
|
419574
419608
|
", v",
|
|
419575
|
-
"1.
|
|
419609
|
+
"1.67.0"
|
|
419576
419610
|
]
|
|
419577
419611
|
}, undefined, true, undefined, this)
|
|
419578
419612
|
]
|
|
@@ -419678,7 +419712,7 @@ ${sanitizedDescription}
|
|
|
419678
419712
|
` + `**Environment Info**
|
|
419679
419713
|
` + `- Platform: ${env2.platform}
|
|
419680
419714
|
` + `- Terminal: ${env2.terminal}
|
|
419681
|
-
` + `- Version: ${"1.
|
|
419715
|
+
` + `- Version: ${"1.67.0"}
|
|
419682
419716
|
` + `- Feedback ID: ${feedbackId}
|
|
419683
419717
|
` + `
|
|
419684
419718
|
**Errors**
|
|
@@ -422788,7 +422822,7 @@ function buildPrimarySection() {
|
|
|
422788
422822
|
}, undefined, false, undefined, this);
|
|
422789
422823
|
return [{
|
|
422790
422824
|
label: "Version",
|
|
422791
|
-
value: "1.
|
|
422825
|
+
value: "1.67.0"
|
|
422792
422826
|
}, {
|
|
422793
422827
|
label: "Session name",
|
|
422794
422828
|
value: nameValue
|
|
@@ -426118,7 +426152,7 @@ function Config({
|
|
|
426118
426152
|
}
|
|
426119
426153
|
}, undefined, false, undefined, this)
|
|
426120
426154
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
426121
|
-
currentVersion: "1.
|
|
426155
|
+
currentVersion: "1.67.0",
|
|
426122
426156
|
onChoice: (choice) => {
|
|
426123
426157
|
setShowSubmenu(null);
|
|
426124
426158
|
setTabsHidden(false);
|
|
@@ -426130,7 +426164,7 @@ function Config({
|
|
|
426130
426164
|
autoUpdatesChannel: "stable"
|
|
426131
426165
|
};
|
|
426132
426166
|
if (choice === "stay") {
|
|
426133
|
-
newSettings.minimumVersion = "1.
|
|
426167
|
+
newSettings.minimumVersion = "1.67.0";
|
|
426134
426168
|
}
|
|
426135
426169
|
updateSettingsForSource("userSettings", newSettings);
|
|
426136
426170
|
setSettingsData((prev_27) => ({
|
|
@@ -434204,7 +434238,7 @@ function HelpV2(t0) {
|
|
|
434204
434238
|
let t6;
|
|
434205
434239
|
if ($2[31] !== tabs) {
|
|
434206
434240
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
434207
|
-
title: `UR v${"1.
|
|
434241
|
+
title: `UR v${"1.67.0"}`,
|
|
434208
434242
|
color: "professionalBlue",
|
|
434209
434243
|
defaultTab: "general",
|
|
434210
434244
|
children: tabs
|
|
@@ -435137,7 +435171,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
435137
435171
|
async function handleInitialize(options2) {
|
|
435138
435172
|
return {
|
|
435139
435173
|
name: "UR",
|
|
435140
|
-
version: "1.
|
|
435174
|
+
version: "1.67.0",
|
|
435141
435175
|
protocolVersion: "0.1.0",
|
|
435142
435176
|
workspaceRoot: options2.cwd,
|
|
435143
435177
|
capabilities: {
|
|
@@ -452245,7 +452279,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
452245
452279
|
return [];
|
|
452246
452280
|
}
|
|
452247
452281
|
}
|
|
452248
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.
|
|
452282
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.67.0") {
|
|
452249
452283
|
if (process.env.USER_TYPE === "ant") {
|
|
452250
452284
|
const changelog = "";
|
|
452251
452285
|
if (changelog) {
|
|
@@ -452272,7 +452306,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.66.0")
|
|
|
452272
452306
|
releaseNotes
|
|
452273
452307
|
};
|
|
452274
452308
|
}
|
|
452275
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.
|
|
452309
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.67.0") {
|
|
452276
452310
|
if (process.env.USER_TYPE === "ant") {
|
|
452277
452311
|
const changelog = "";
|
|
452278
452312
|
if (changelog) {
|
|
@@ -455138,7 +455172,7 @@ function getRecentActivitySync() {
|
|
|
455138
455172
|
return cachedActivity;
|
|
455139
455173
|
}
|
|
455140
455174
|
function getLogoDisplayData() {
|
|
455141
|
-
const version2 = process.env.DEMO_VERSION ?? "1.
|
|
455175
|
+
const version2 = process.env.DEMO_VERSION ?? "1.67.0";
|
|
455142
455176
|
const serverUrl = getDirectConnectServerUrl();
|
|
455143
455177
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
455144
455178
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -456005,7 +456039,7 @@ function LogoV2() {
|
|
|
456005
456039
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
456006
456040
|
t2 = () => {
|
|
456007
456041
|
const currentConfig2 = getGlobalConfig();
|
|
456008
|
-
if (currentConfig2.lastReleaseNotesSeen === "1.
|
|
456042
|
+
if (currentConfig2.lastReleaseNotesSeen === "1.67.0") {
|
|
456009
456043
|
return;
|
|
456010
456044
|
}
|
|
456011
456045
|
saveGlobalConfig(_temp325);
|
|
@@ -456690,12 +456724,12 @@ function LogoV2() {
|
|
|
456690
456724
|
return t41;
|
|
456691
456725
|
}
|
|
456692
456726
|
function _temp325(current) {
|
|
456693
|
-
if (current.lastReleaseNotesSeen === "1.
|
|
456727
|
+
if (current.lastReleaseNotesSeen === "1.67.0") {
|
|
456694
456728
|
return current;
|
|
456695
456729
|
}
|
|
456696
456730
|
return {
|
|
456697
456731
|
...current,
|
|
456698
|
-
lastReleaseNotesSeen: "1.
|
|
456732
|
+
lastReleaseNotesSeen: "1.67.0"
|
|
456699
456733
|
};
|
|
456700
456734
|
}
|
|
456701
456735
|
function _temp241(s_0) {
|
|
@@ -471707,8 +471741,8 @@ Run /security report for the full report.`;
|
|
|
471707
471741
|
}
|
|
471708
471742
|
case "report": {
|
|
471709
471743
|
const all4 = findings.all();
|
|
471710
|
-
const
|
|
471711
|
-
return
|
|
471744
|
+
const fmt2 = rest[0] ?? "markdown";
|
|
471745
|
+
return fmt2 === "json" ? toJson(all4) : fmt2 === "sarif" ? toSarif(all4) : fmt2 === "csv" ? toCsv(all4) : toMarkdown(all4);
|
|
471712
471746
|
}
|
|
471713
471747
|
case "findings": {
|
|
471714
471748
|
const all4 = findings.all();
|
|
@@ -473641,7 +473675,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
473641
473675
|
if (spec.name !== specName) {
|
|
473642
473676
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
473643
473677
|
}
|
|
473644
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.
|
|
473678
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.67.0" : "1.67.0");
|
|
473645
473679
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
473646
473680
|
throw new Error("invalid ur-agent package version");
|
|
473647
473681
|
}
|
|
@@ -474634,7 +474668,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
474634
474668
|
path: ".github/workflows/ur.yml",
|
|
474635
474669
|
root: "project",
|
|
474636
474670
|
content: compileAgenticCiWorkflow("default", {
|
|
474637
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.
|
|
474671
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.67.0" : "1.67.0"
|
|
474638
474672
|
})
|
|
474639
474673
|
},
|
|
474640
474674
|
{
|
|
@@ -474704,7 +474738,7 @@ function value(tokens, flag) {
|
|
|
474704
474738
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
474705
474739
|
}
|
|
474706
474740
|
function cliVersion() {
|
|
474707
|
-
return typeof MACRO !== "undefined" ? "1.
|
|
474741
|
+
return typeof MACRO !== "undefined" ? "1.67.0" : "1.67.0";
|
|
474708
474742
|
}
|
|
474709
474743
|
function workflowPath(cwd2) {
|
|
474710
474744
|
return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -480569,7 +480603,7 @@ function createAcpStdioApp(deps) {
|
|
|
480569
480603
|
}
|
|
480570
480604
|
},
|
|
480571
480605
|
authMethods: [],
|
|
480572
|
-
agentInfo: { name: "UR-Nexus", version: "1.
|
|
480606
|
+
agentInfo: { name: "UR-Nexus", version: "1.67.0" }
|
|
480573
480607
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
480574
480608
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
480575
480609
|
await runtime2.announce({
|
|
@@ -480666,7 +480700,7 @@ function createAcpStdioAgent(deps) {
|
|
|
480666
480700
|
}
|
|
480667
480701
|
},
|
|
480668
480702
|
authMethods: [],
|
|
480669
|
-
agentInfo: { name: "UR-Nexus", version: "1.
|
|
480703
|
+
agentInfo: { name: "UR-Nexus", version: "1.67.0" }
|
|
480670
480704
|
});
|
|
480671
480705
|
return;
|
|
480672
480706
|
case "authenticate":
|
|
@@ -691826,7 +691860,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
691826
691860
|
smapsRollup,
|
|
691827
691861
|
platform: process.platform,
|
|
691828
691862
|
nodeVersion: process.version,
|
|
691829
|
-
ccVersion: "1.
|
|
691863
|
+
ccVersion: "1.67.0"
|
|
691830
691864
|
};
|
|
691831
691865
|
}
|
|
691832
691866
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -692406,7 +692440,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
692406
692440
|
var call153 = async () => {
|
|
692407
692441
|
return {
|
|
692408
692442
|
type: "text",
|
|
692409
|
-
value: "1.
|
|
692443
|
+
value: "1.67.0"
|
|
692410
692444
|
};
|
|
692411
692445
|
}, version2, version_default;
|
|
692412
692446
|
var init_version = __esm(() => {
|
|
@@ -703586,7 +703620,7 @@ function generateHtmlReport(data, insights) {
|
|
|
703586
703620
|
</html>`;
|
|
703587
703621
|
}
|
|
703588
703622
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
703589
|
-
const version3 = typeof MACRO !== "undefined" ? "1.
|
|
703623
|
+
const version3 = typeof MACRO !== "undefined" ? "1.67.0" : "unknown";
|
|
703590
703624
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
703591
703625
|
const facets_summary = {
|
|
703592
703626
|
total: facets.size,
|
|
@@ -707913,7 +707947,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
707913
707947
|
init_settings2();
|
|
707914
707948
|
init_slowOperations();
|
|
707915
707949
|
init_uuid();
|
|
707916
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.
|
|
707950
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.67.0" : "unknown";
|
|
707917
707951
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
707918
707952
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
707919
707953
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -709128,7 +709162,7 @@ var init_filesystem = __esm(() => {
|
|
|
709128
709162
|
});
|
|
709129
709163
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
709130
709164
|
const nonce = randomBytes20(16).toString("hex");
|
|
709131
|
-
return join230(getURTempDir(), "bundled-skills", "1.
|
|
709165
|
+
return join230(getURTempDir(), "bundled-skills", "1.67.0", nonce);
|
|
709132
709166
|
});
|
|
709133
709167
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
709134
709168
|
});
|
|
@@ -715434,7 +715468,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
715434
715468
|
}
|
|
715435
715469
|
function computeFingerprintFromMessages(messages) {
|
|
715436
715470
|
const firstMessageText = extractFirstMessageText(messages);
|
|
715437
|
-
return computeFingerprint(firstMessageText, "1.
|
|
715471
|
+
return computeFingerprint(firstMessageText, "1.67.0");
|
|
715438
715472
|
}
|
|
715439
715473
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
715440
715474
|
var init_fingerprint = () => {};
|
|
@@ -717333,7 +717367,7 @@ async function sideQuery(opts) {
|
|
|
717333
717367
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
717334
717368
|
}
|
|
717335
717369
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
717336
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.
|
|
717370
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.67.0");
|
|
717337
717371
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
717338
717372
|
const systemBlocks = [
|
|
717339
717373
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -722120,7 +722154,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
722120
722154
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
722121
722155
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
722122
722156
|
betas: getSdkBetas(),
|
|
722123
|
-
ur_version: "1.
|
|
722157
|
+
ur_version: "1.67.0",
|
|
722124
722158
|
output_style: outputStyle2,
|
|
722125
722159
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
722126
722160
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -736071,7 +736105,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
736071
736105
|
function getSemverPart(version3) {
|
|
736072
736106
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
736073
736107
|
}
|
|
736074
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.
|
|
736108
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.67.0") {
|
|
736075
736109
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
|
|
736076
736110
|
if (!updatedVersion) {
|
|
736077
736111
|
return null;
|
|
@@ -736120,7 +736154,7 @@ function AutoUpdater({
|
|
|
736120
736154
|
return;
|
|
736121
736155
|
}
|
|
736122
736156
|
if (false) {}
|
|
736123
|
-
const currentVersion = "1.
|
|
736157
|
+
const currentVersion = "1.67.0";
|
|
736124
736158
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
736125
736159
|
let latestVersion = await getLatestVersion(channel);
|
|
736126
736160
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -736349,12 +736383,12 @@ function NativeAutoUpdater({
|
|
|
736349
736383
|
logEvent("tengu_native_auto_updater_start", {});
|
|
736350
736384
|
try {
|
|
736351
736385
|
const maxVersion = await getMaxVersion();
|
|
736352
|
-
if (maxVersion && gt("1.
|
|
736386
|
+
if (maxVersion && gt("1.67.0", maxVersion)) {
|
|
736353
736387
|
const msg = await getMaxVersionMessage();
|
|
736354
736388
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
736355
736389
|
}
|
|
736356
736390
|
const result = await installLatest(channel);
|
|
736357
|
-
const currentVersion = "1.
|
|
736391
|
+
const currentVersion = "1.67.0";
|
|
736358
736392
|
const latencyMs = Date.now() - startTime;
|
|
736359
736393
|
if (result.lockFailed) {
|
|
736360
736394
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -736491,17 +736525,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
736491
736525
|
const maxVersion = await getMaxVersion();
|
|
736492
736526
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
736493
736527
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
736494
|
-
if (gte("1.
|
|
736495
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.
|
|
736528
|
+
if (gte("1.67.0", maxVersion)) {
|
|
736529
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.67.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
736496
736530
|
setUpdateAvailable(false);
|
|
736497
736531
|
return;
|
|
736498
736532
|
}
|
|
736499
736533
|
latest = maxVersion;
|
|
736500
736534
|
}
|
|
736501
|
-
const hasUpdate = latest && !gte("1.
|
|
736535
|
+
const hasUpdate = latest && !gte("1.67.0", latest) && !shouldSkipVersion(latest);
|
|
736502
736536
|
setUpdateAvailable(!!hasUpdate);
|
|
736503
736537
|
if (hasUpdate) {
|
|
736504
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.
|
|
736538
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.67.0"} -> ${latest}`);
|
|
736505
736539
|
}
|
|
736506
736540
|
};
|
|
736507
736541
|
$2[0] = t1;
|
|
@@ -736535,7 +736569,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
736535
736569
|
wrap: "truncate",
|
|
736536
736570
|
children: [
|
|
736537
736571
|
"currentVersion: ",
|
|
736538
|
-
"1.
|
|
736572
|
+
"1.67.0"
|
|
736539
736573
|
]
|
|
736540
736574
|
}, undefined, true, undefined, this);
|
|
736541
736575
|
$2[3] = verbose;
|
|
@@ -747228,7 +747262,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
747228
747262
|
project_dir: getOriginalCwd(),
|
|
747229
747263
|
added_dirs: addedDirs
|
|
747230
747264
|
},
|
|
747231
|
-
version: "1.
|
|
747265
|
+
version: "1.67.0",
|
|
747232
747266
|
output_style: {
|
|
747233
747267
|
name: outputStyleName
|
|
747234
747268
|
},
|
|
@@ -747306,7 +747340,7 @@ function StatusLineInner({
|
|
|
747306
747340
|
const taskValues = Object.values(tasks2);
|
|
747307
747341
|
const taskRunningCount = countActiveBackgroundTasks(taskValues);
|
|
747308
747342
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
747309
|
-
version: "1.
|
|
747343
|
+
version: "1.67.0",
|
|
747310
747344
|
providerLabel: providerRuntime.providerLabel,
|
|
747311
747345
|
authMode: providerRuntime.authLabel,
|
|
747312
747346
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -759486,7 +759520,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
759486
759520
|
} catch {}
|
|
759487
759521
|
const data = {
|
|
759488
759522
|
trigger: trigger2,
|
|
759489
|
-
version: "1.
|
|
759523
|
+
version: "1.67.0",
|
|
759490
759524
|
platform: process.platform,
|
|
759491
759525
|
transcript,
|
|
759492
759526
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -771854,7 +771888,7 @@ function WelcomeV2() {
|
|
|
771854
771888
|
dimColor: true,
|
|
771855
771889
|
children: [
|
|
771856
771890
|
"v",
|
|
771857
|
-
"1.
|
|
771891
|
+
"1.67.0"
|
|
771858
771892
|
]
|
|
771859
771893
|
}, undefined, true, undefined, this)
|
|
771860
771894
|
]
|
|
@@ -773114,7 +773148,7 @@ function completeOnboarding() {
|
|
|
773114
773148
|
saveGlobalConfig((current) => ({
|
|
773115
773149
|
...current,
|
|
773116
773150
|
hasCompletedOnboarding: true,
|
|
773117
|
-
lastOnboardingVersion: "1.
|
|
773151
|
+
lastOnboardingVersion: "1.67.0"
|
|
773118
773152
|
}));
|
|
773119
773153
|
}
|
|
773120
773154
|
function showDialog(root2, renderer) {
|
|
@@ -778158,7 +778192,7 @@ function appendToLog(path24, message) {
|
|
|
778158
778192
|
cwd: getFsImplementation().cwd(),
|
|
778159
778193
|
userType: process.env.USER_TYPE,
|
|
778160
778194
|
sessionId: getSessionId(),
|
|
778161
|
-
version: "1.
|
|
778195
|
+
version: "1.67.0"
|
|
778162
778196
|
};
|
|
778163
778197
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
778164
778198
|
}
|
|
@@ -782322,8 +782356,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
782322
782356
|
}
|
|
782323
782357
|
async function checkEnvLessBridgeMinVersion() {
|
|
782324
782358
|
const cfg = await getEnvLessBridgeConfig();
|
|
782325
|
-
if (cfg.min_version && lt("1.
|
|
782326
|
-
return `Your version of UR (${"1.
|
|
782359
|
+
if (cfg.min_version && lt("1.67.0", cfg.min_version)) {
|
|
782360
|
+
return `Your version of UR (${"1.67.0"}) is too old for Remote Control.
|
|
782327
782361
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
782328
782362
|
}
|
|
782329
782363
|
return null;
|
|
@@ -782797,7 +782831,7 @@ async function initBridgeCore(params) {
|
|
|
782797
782831
|
const rawApi = createBridgeApiClient({
|
|
782798
782832
|
baseUrl,
|
|
782799
782833
|
getAccessToken,
|
|
782800
|
-
runnerVersion: "1.
|
|
782834
|
+
runnerVersion: "1.67.0",
|
|
782801
782835
|
onDebug: logForDebugging,
|
|
782802
782836
|
onAuth401,
|
|
782803
782837
|
getTrustedDeviceToken
|
|
@@ -792270,7 +792304,7 @@ function getAgUiCapabilities() {
|
|
|
792270
792304
|
name: "UR-Nexus",
|
|
792271
792305
|
type: "ur-nexus",
|
|
792272
792306
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
792273
|
-
version: "1.
|
|
792307
|
+
version: "1.67.0",
|
|
792274
792308
|
provider: "UR",
|
|
792275
792309
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
792276
792310
|
},
|
|
@@ -793410,7 +793444,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
793410
793444
|
};
|
|
793411
793445
|
const server2 = new Server({
|
|
793412
793446
|
name: "ur-nexus",
|
|
793413
|
-
version: "1.
|
|
793447
|
+
version: "1.67.0"
|
|
793414
793448
|
}, {
|
|
793415
793449
|
capabilities: {
|
|
793416
793450
|
tools: {}
|
|
@@ -794568,7 +794602,7 @@ function thrownResponse(error40) {
|
|
|
794568
794602
|
}
|
|
794569
794603
|
async function createUrMcp2026Runtime(options4) {
|
|
794570
794604
|
const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
|
|
794571
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.
|
|
794605
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.67.0" }, { capabilities: {} });
|
|
794572
794606
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
794573
794607
|
try {
|
|
794574
794608
|
await server2.connect(serverTransport);
|
|
@@ -794579,7 +794613,7 @@ async function createUrMcp2026Runtime(options4) {
|
|
|
794579
794613
|
}
|
|
794580
794614
|
const runtime2 = new Mcp2026Runtime({
|
|
794581
794615
|
cwd: options4.cwd,
|
|
794582
|
-
version: "1.
|
|
794616
|
+
version: "1.67.0",
|
|
794583
794617
|
backend: {
|
|
794584
794618
|
listTools: async () => {
|
|
794585
794619
|
const listed = await client2.listTools();
|
|
@@ -796712,7 +796746,7 @@ async function update() {
|
|
|
796712
796746
|
logEvent("tengu_update_check", {});
|
|
796713
796747
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
796714
796748
|
const result = await checkUpgradeStatus({
|
|
796715
|
-
currentVersion: "1.
|
|
796749
|
+
currentVersion: "1.67.0",
|
|
796716
796750
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
796717
796751
|
installationType: diagnostic2.installationType,
|
|
796718
796752
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -798028,7 +798062,7 @@ ${customInstructions}` : customInstructions;
|
|
|
798028
798062
|
}
|
|
798029
798063
|
}
|
|
798030
798064
|
logForDiagnosticsNoPII("info", "started", {
|
|
798031
|
-
version: "1.
|
|
798065
|
+
version: "1.67.0",
|
|
798032
798066
|
is_native_binary: isInBundledMode()
|
|
798033
798067
|
});
|
|
798034
798068
|
registerCleanup(async () => {
|
|
@@ -798814,7 +798848,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
798814
798848
|
pendingHookMessages
|
|
798815
798849
|
}, renderAndRun);
|
|
798816
798850
|
}
|
|
798817
|
-
}).version("1.
|
|
798851
|
+
}).version("1.67.0 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
798818
798852
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
798819
798853
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
798820
798854
|
if (canUserConfigureAdvisor()) {
|
|
@@ -799873,7 +799907,7 @@ if (false) {}
|
|
|
799873
799907
|
async function main2() {
|
|
799874
799908
|
const args = process.argv.slice(2);
|
|
799875
799909
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
799876
|
-
console.log(`${"1.
|
|
799910
|
+
console.log(`${"1.67.0"} (UR-Nexus)`);
|
|
799877
799911
|
return;
|
|
799878
799912
|
}
|
|
799879
799913
|
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.
|
|
48
|
+
<p class="eyebrow">Version 1.67.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.67.0",
|
|
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.
|
|
3
|
+
> Audited against the executable source and tests for `ur-agent` v1.67.0.
|
|
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/`
|