ur-agent 1.76.4 → 1.76.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.76.6
|
|
4
|
+
|
|
5
|
+
- Fixed malformed `Write` tool input handling so missing required `content` now stays
|
|
6
|
+
as plain text during normalization and surfaces clear validation when repair is
|
|
7
|
+
impossible.
|
|
8
|
+
- Hardened `AskUserQuestion` transport and execution normalization to reject malformed
|
|
9
|
+
question/option payloads before schema enforcement, reducing repeated
|
|
10
|
+
`InputValidationError` loops for missing `question`/`options`.
|
|
11
|
+
- Restored `Grep` schema compatibility checks and ensured provider schema generation
|
|
12
|
+
keeps unsupported type regressions from reaching the provider.
|
|
13
|
+
- Fixed task dependency validation for missing task IDs and cyclic/self-edge
|
|
14
|
+
requests so callers receive actionable diagnostics instead of opaque task graph
|
|
15
|
+
errors.
|
|
16
|
+
|
|
17
|
+
## 1.76.5
|
|
18
|
+
|
|
19
|
+
- Hardened Kimi tool-call parsing for `Write` and `AskUserQuestion` so malformed
|
|
20
|
+
payloads fail normalisation and remain plain text instead of throwing input
|
|
21
|
+
validation at render time; valid payloads still parse correctly.
|
|
22
|
+
- Fixed `AskUserQuestion` question-schema validation to reject one-question/open-ended
|
|
23
|
+
malformed shapes with distinct-label enforcement before tool execution, preventing
|
|
24
|
+
`InputValidationError` loops for missing `question`/`options`.
|
|
25
|
+
- Fixed Grep tool-schema regression coverage and restored the task dependency
|
|
26
|
+
validation path to ignore self-edges before reporting missing-task errors.
|
|
27
|
+
- Version bump and release metadata were synchronized after parser fixes.
|
|
28
|
+
|
|
3
29
|
## 1.76.4
|
|
4
30
|
|
|
5
31
|
- AskUserQuestion normalizer now strips malformed question entries instead of
|
package/dist/cli.js
CHANGED
|
@@ -87761,6 +87761,15 @@ function normalizeQuestionInput(value, index2) {
|
|
|
87761
87761
|
};
|
|
87762
87762
|
}
|
|
87763
87763
|
function normalizeAskUserQuestionInput(value) {
|
|
87764
|
+
if (Array.isArray(value)) {
|
|
87765
|
+
const normalized = value.map((entry, index2) => normalizeQuestionInput(entry, index2)).filter((entry) => entry !== null && typeof entry === "object");
|
|
87766
|
+
if (normalized.length > 0) {
|
|
87767
|
+
return {
|
|
87768
|
+
questions: dedupeQuestions(normalized)
|
|
87769
|
+
};
|
|
87770
|
+
}
|
|
87771
|
+
return null;
|
|
87772
|
+
}
|
|
87764
87773
|
const input = objectValue(value);
|
|
87765
87774
|
if (!input)
|
|
87766
87775
|
return value;
|
|
@@ -88191,6 +88200,9 @@ function normalizeKimiAskUserQuestionInput(input) {
|
|
|
88191
88200
|
if (!Array.isArray(questions) || questions.length === 0) {
|
|
88192
88201
|
return null;
|
|
88193
88202
|
}
|
|
88203
|
+
if (describeQuestionPayloadProblems(normalized).length > 0) {
|
|
88204
|
+
return null;
|
|
88205
|
+
}
|
|
88194
88206
|
return {
|
|
88195
88207
|
...normalized,
|
|
88196
88208
|
questions: questions.slice(0, 4)
|
|
@@ -88198,10 +88210,10 @@ function normalizeKimiAskUserQuestionInput(input) {
|
|
|
88198
88210
|
}
|
|
88199
88211
|
function normalizeInlineToolInput(name, input) {
|
|
88200
88212
|
if (name === "Write") {
|
|
88201
|
-
return normalizeKimiWriteInput(input)
|
|
88213
|
+
return normalizeKimiWriteInput(input);
|
|
88202
88214
|
}
|
|
88203
88215
|
if (name === "AskUserQuestion") {
|
|
88204
|
-
return normalizeKimiAskUserQuestionInput(input)
|
|
88216
|
+
return normalizeKimiAskUserQuestionInput(input);
|
|
88205
88217
|
}
|
|
88206
88218
|
return input;
|
|
88207
88219
|
}
|
|
@@ -88219,19 +88231,25 @@ function parseKimiToolCalls(text) {
|
|
|
88219
88231
|
throw new KimiToolCallParseError("Kimi tool call markup is incomplete or malformed");
|
|
88220
88232
|
}
|
|
88221
88233
|
CALL_RE.lastIndex = 0;
|
|
88234
|
+
let matchedCalls = 0;
|
|
88222
88235
|
let cleaned = text.replace(CALL_RE, (_full, rawName, rawArgs) => {
|
|
88223
88236
|
const name = (rawName ?? "").trim().replace(/^functions\./, "").replace(/[:.]\d+\s*$/, "").trim();
|
|
88224
88237
|
if (!name) {
|
|
88225
88238
|
throw new KimiToolCallParseError("Kimi tool call is missing a function name");
|
|
88226
88239
|
}
|
|
88240
|
+
matchedCalls += 1;
|
|
88241
|
+
const normalizedInput = normalizeInlineToolInput(name, parseArgs(rawArgs ?? ""));
|
|
88242
|
+
if (normalizedInput === null) {
|
|
88243
|
+
return rawArgs ?? "";
|
|
88244
|
+
}
|
|
88227
88245
|
toolCalls.push({
|
|
88228
88246
|
id: parsedToolCallId("kimi", i2++),
|
|
88229
88247
|
name,
|
|
88230
|
-
input:
|
|
88248
|
+
input: normalizedInput
|
|
88231
88249
|
});
|
|
88232
88250
|
return "";
|
|
88233
88251
|
});
|
|
88234
|
-
if (
|
|
88252
|
+
if (matchedCalls !== callBegins) {
|
|
88235
88253
|
throw new KimiToolCallParseError("Kimi tool call markup is incomplete or malformed");
|
|
88236
88254
|
}
|
|
88237
88255
|
cleaned = cleaned.replace(SECTION_RE, "").replace(STRAY_RE, "").replace(/\n{3,}/g, `
|
|
@@ -88499,6 +88517,8 @@ function maybeBareJsonToolCall(text, availableToolNames, index2) {
|
|
|
88499
88517
|
return null;
|
|
88500
88518
|
}
|
|
88501
88519
|
const normalizedInput = name === "Write" || name === "AskUserQuestion" ? normalizeInlineToolInput(name, input.input) : input.input;
|
|
88520
|
+
if (normalizedInput === null)
|
|
88521
|
+
return null;
|
|
88502
88522
|
return {
|
|
88503
88523
|
id: parsedToolCallId("bare", index2),
|
|
88504
88524
|
name,
|
|
@@ -88514,11 +88534,13 @@ function maybeBareJsonToolCall(text, availableToolNames, index2) {
|
|
|
88514
88534
|
}
|
|
88515
88535
|
if (hasTool(availableToolNames, "Write") && normalizeKimiWriteInput(input) !== null) {
|
|
88516
88536
|
const normalized = normalizeKimiWriteInput(input);
|
|
88517
|
-
|
|
88518
|
-
|
|
88519
|
-
|
|
88520
|
-
|
|
88521
|
-
|
|
88537
|
+
if (normalized !== null) {
|
|
88538
|
+
return {
|
|
88539
|
+
id: parsedToolCallId("bare", index2),
|
|
88540
|
+
name: "Write",
|
|
88541
|
+
input: normalized
|
|
88542
|
+
};
|
|
88543
|
+
}
|
|
88522
88544
|
}
|
|
88523
88545
|
if (hasTool(availableToolNames, "Edit") && hasRequiredKeys(input, ["file_path", "old_string", "new_string"], ["replace_all"]) && typeof input.file_path === "string" && typeof input.old_string === "string" && typeof input.new_string === "string" && (input.replace_all === undefined || typeof input.replace_all === "boolean")) {
|
|
88524
88546
|
return {
|
|
@@ -107465,7 +107487,7 @@ var init_auth = __esm(() => {
|
|
|
107465
107487
|
|
|
107466
107488
|
// src/utils/userAgent.ts
|
|
107467
107489
|
function getURCodeUserAgent() {
|
|
107468
|
-
return `ur/${"1.76.
|
|
107490
|
+
return `ur/${"1.76.6"}`;
|
|
107469
107491
|
}
|
|
107470
107492
|
|
|
107471
107493
|
// src/utils/workloadContext.ts
|
|
@@ -107487,7 +107509,7 @@ function getUserAgent() {
|
|
|
107487
107509
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
107488
107510
|
const workload = getWorkload();
|
|
107489
107511
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
107490
|
-
return `ur-cli/${"1.76.
|
|
107512
|
+
return `ur-cli/${"1.76.6"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
107491
107513
|
}
|
|
107492
107514
|
function getMCPUserAgent() {
|
|
107493
107515
|
const parts = [];
|
|
@@ -107501,7 +107523,7 @@ function getMCPUserAgent() {
|
|
|
107501
107523
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
107502
107524
|
}
|
|
107503
107525
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
107504
|
-
return `ur/${"1.76.
|
|
107526
|
+
return `ur/${"1.76.6"}${suffix}`;
|
|
107505
107527
|
}
|
|
107506
107528
|
function getWebFetchUserAgent() {
|
|
107507
107529
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -107639,7 +107661,7 @@ var init_user = __esm(() => {
|
|
|
107639
107661
|
deviceId,
|
|
107640
107662
|
sessionId: getSessionId(),
|
|
107641
107663
|
email: getEmail(),
|
|
107642
|
-
appVersion: "1.76.
|
|
107664
|
+
appVersion: "1.76.6",
|
|
107643
107665
|
platform: getHostPlatformForAnalytics(),
|
|
107644
107666
|
organizationUuid,
|
|
107645
107667
|
accountUuid,
|
|
@@ -115526,7 +115548,7 @@ var init_metadata = __esm(() => {
|
|
|
115526
115548
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
115527
115549
|
WHITESPACE_REGEX = /\s+/;
|
|
115528
115550
|
getVersionBase = memoize_default(() => {
|
|
115529
|
-
const match = "1.76.
|
|
115551
|
+
const match = "1.76.6".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
115530
115552
|
return match ? match[0] : undefined;
|
|
115531
115553
|
});
|
|
115532
115554
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -115566,7 +115588,7 @@ var init_metadata = __esm(() => {
|
|
|
115566
115588
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
115567
115589
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
115568
115590
|
isURAiAuth: isURAISubscriber(),
|
|
115569
|
-
version: "1.76.
|
|
115591
|
+
version: "1.76.6",
|
|
115570
115592
|
versionBase: getVersionBase(),
|
|
115571
115593
|
buildTime: "",
|
|
115572
115594
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -116236,7 +116258,7 @@ function initialize1PEventLogging() {
|
|
|
116236
116258
|
const platform2 = getPlatform();
|
|
116237
116259
|
const attributes = {
|
|
116238
116260
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
116239
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.76.
|
|
116261
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.76.6"
|
|
116240
116262
|
};
|
|
116241
116263
|
if (platform2 === "wsl") {
|
|
116242
116264
|
const wslVersion = getWslVersion();
|
|
@@ -116264,7 +116286,7 @@ function initialize1PEventLogging() {
|
|
|
116264
116286
|
})
|
|
116265
116287
|
]
|
|
116266
116288
|
});
|
|
116267
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.76.
|
|
116289
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.76.6");
|
|
116268
116290
|
}
|
|
116269
116291
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
116270
116292
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -126045,7 +126067,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
126045
126067
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
126046
126068
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
126047
126069
|
}
|
|
126048
|
-
var urVersion = "1.76.
|
|
126070
|
+
var urVersion = "1.76.6", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
|
|
126049
126071
|
var init_trends = __esm(() => {
|
|
126050
126072
|
init_a2aCardSignature();
|
|
126051
126073
|
coverage = [
|
|
@@ -128848,7 +128870,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
128848
128870
|
if (!isAttributionHeaderEnabled()) {
|
|
128849
128871
|
return "";
|
|
128850
128872
|
}
|
|
128851
|
-
const version2 = `${"1.76.
|
|
128873
|
+
const version2 = `${"1.76.6"}.${fingerprint}`;
|
|
128852
128874
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
128853
128875
|
const cch = "";
|
|
128854
128876
|
const workload = getWorkload();
|
|
@@ -156847,7 +156869,7 @@ var init_projectSafety = __esm(() => {
|
|
|
156847
156869
|
function getInstruments() {
|
|
156848
156870
|
if (instruments)
|
|
156849
156871
|
return instruments;
|
|
156850
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.76.
|
|
156872
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.76.6");
|
|
156851
156873
|
instruments = {
|
|
156852
156874
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
156853
156875
|
description: "GenAI operation duration.",
|
|
@@ -156945,7 +156967,7 @@ function genAiAgentAttributes() {
|
|
|
156945
156967
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
156946
156968
|
"gen_ai.provider.name": "ur",
|
|
156947
156969
|
"gen_ai.agent.name": "UR-Nexus",
|
|
156948
|
-
"gen_ai.agent.version": "1.76.
|
|
156970
|
+
"gen_ai.agent.version": "1.76.6"
|
|
156949
156971
|
};
|
|
156950
156972
|
}
|
|
156951
156973
|
function genAiWorkflowAttributes(workflowName) {
|
|
@@ -156961,7 +156983,7 @@ function genAiWorkflowAttributes(workflowName) {
|
|
|
156961
156983
|
function startGenAiWorkflowSpan(workflowName) {
|
|
156962
156984
|
const attributes = genAiWorkflowAttributes(workflowName);
|
|
156963
156985
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
156964
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.76.
|
|
156986
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.76.6").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
156965
156987
|
}
|
|
156966
156988
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
156967
156989
|
try {
|
|
@@ -156999,7 +157021,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
156999
157021
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
157000
157022
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
157001
157023
|
}
|
|
157002
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.76.
|
|
157024
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.76.6").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
157003
157025
|
}
|
|
157004
157026
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
157005
157027
|
try {
|
|
@@ -250647,7 +250669,7 @@ function getTelemetryAttributes() {
|
|
|
250647
250669
|
attributes["session.id"] = sessionId;
|
|
250648
250670
|
}
|
|
250649
250671
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
250650
|
-
attributes["app.version"] = "1.76.
|
|
250672
|
+
attributes["app.version"] = "1.76.6";
|
|
250651
250673
|
}
|
|
250652
250674
|
const oauthAccount = getOauthAccountInfo();
|
|
250653
250675
|
if (oauthAccount) {
|
|
@@ -297131,7 +297153,7 @@ function getInstallationEnv() {
|
|
|
297131
297153
|
return;
|
|
297132
297154
|
}
|
|
297133
297155
|
function getURCodeVersion() {
|
|
297134
|
-
return "1.76.
|
|
297156
|
+
return "1.76.6";
|
|
297135
297157
|
}
|
|
297136
297158
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
297137
297159
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -304462,7 +304484,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
304462
304484
|
const client2 = new Client({
|
|
304463
304485
|
name: "ur",
|
|
304464
304486
|
title: "UR",
|
|
304465
|
-
version: "1.76.
|
|
304487
|
+
version: "1.76.6",
|
|
304466
304488
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
304467
304489
|
websiteUrl: PRODUCT_URL
|
|
304468
304490
|
}, {
|
|
@@ -304822,7 +304844,7 @@ var init_client5 = __esm(() => {
|
|
|
304822
304844
|
const client2 = new Client({
|
|
304823
304845
|
name: "ur",
|
|
304824
304846
|
title: "UR",
|
|
304825
|
-
version: "1.76.
|
|
304847
|
+
version: "1.76.6",
|
|
304826
304848
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
304827
304849
|
websiteUrl: PRODUCT_URL
|
|
304828
304850
|
}, {
|
|
@@ -317375,7 +317397,7 @@ async function createRuntime() {
|
|
|
317375
317397
|
bootstrapTelemetry();
|
|
317376
317398
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
317377
317399
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
317378
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.76.
|
|
317400
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.76.6"
|
|
317379
317401
|
}));
|
|
317380
317402
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
317381
317403
|
resource,
|
|
@@ -317408,11 +317430,11 @@ async function createRuntime() {
|
|
|
317408
317430
|
setMeterProvider(meterProvider);
|
|
317409
317431
|
setLoggerProvider(loggerProvider);
|
|
317410
317432
|
if (meterProvider) {
|
|
317411
|
-
const meter = meterProvider.getMeter("ur-agent", "1.76.
|
|
317433
|
+
const meter = meterProvider.getMeter("ur-agent", "1.76.6");
|
|
317412
317434
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
317413
317435
|
}
|
|
317414
317436
|
if (loggerProvider) {
|
|
317415
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.76.
|
|
317437
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.76.6"));
|
|
317416
317438
|
}
|
|
317417
317439
|
if (!cleanupRegistered2) {
|
|
317418
317440
|
cleanupRegistered2 = true;
|
|
@@ -318074,9 +318096,9 @@ async function assertMinVersion() {
|
|
|
318074
318096
|
if (false) {}
|
|
318075
318097
|
try {
|
|
318076
318098
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
318077
|
-
if (versionConfig.minVersion && lt("1.76.
|
|
318099
|
+
if (versionConfig.minVersion && lt("1.76.6", versionConfig.minVersion)) {
|
|
318078
318100
|
console.error(`
|
|
318079
|
-
It looks like your version of UR (${"1.76.
|
|
318101
|
+
It looks like your version of UR (${"1.76.6"}) needs an update.
|
|
318080
318102
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
318081
318103
|
|
|
318082
318104
|
To update, please run:
|
|
@@ -318292,7 +318314,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
318292
318314
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
318293
318315
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
318294
318316
|
pid: process.pid,
|
|
318295
|
-
currentVersion: "1.76.
|
|
318317
|
+
currentVersion: "1.76.6"
|
|
318296
318318
|
});
|
|
318297
318319
|
return "in_progress";
|
|
318298
318320
|
}
|
|
@@ -318301,7 +318323,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
318301
318323
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
318302
318324
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
318303
318325
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
318304
|
-
currentVersion: "1.76.
|
|
318326
|
+
currentVersion: "1.76.6"
|
|
318305
318327
|
});
|
|
318306
318328
|
console.error(`
|
|
318307
318329
|
Error: Windows NPM detected in WSL
|
|
@@ -318836,7 +318858,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
318836
318858
|
}
|
|
318837
318859
|
async function getDoctorDiagnostic() {
|
|
318838
318860
|
const installationType = await getCurrentInstallationType();
|
|
318839
|
-
const version2 = typeof MACRO !== "undefined" ? "1.76.
|
|
318861
|
+
const version2 = typeof MACRO !== "undefined" ? "1.76.6" : "unknown";
|
|
318840
318862
|
const installationPath = await getInstallationPath();
|
|
318841
318863
|
const invokedBinary = getInvokedBinary();
|
|
318842
318864
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -319771,8 +319793,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
319771
319793
|
const maxVersion = await getMaxVersion();
|
|
319772
319794
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
319773
319795
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
319774
|
-
if (gte("1.76.
|
|
319775
|
-
logForDebugging(`Native installer: current version ${"1.76.
|
|
319796
|
+
if (gte("1.76.6", maxVersion)) {
|
|
319797
|
+
logForDebugging(`Native installer: current version ${"1.76.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
319776
319798
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
319777
319799
|
latency_ms: Date.now() - startTime,
|
|
319778
319800
|
max_version: maxVersion,
|
|
@@ -319783,7 +319805,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
319783
319805
|
version2 = maxVersion;
|
|
319784
319806
|
}
|
|
319785
319807
|
}
|
|
319786
|
-
if (!forceReinstall && version2 === "1.76.
|
|
319808
|
+
if (!forceReinstall && version2 === "1.76.6" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
319787
319809
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
319788
319810
|
logEvent("tengu_native_update_complete", {
|
|
319789
319811
|
latency_ms: Date.now() - startTime,
|
|
@@ -379197,6 +379219,9 @@ var init_prompt19 = __esm(() => {
|
|
|
379197
379219
|
});
|
|
379198
379220
|
|
|
379199
379221
|
// src/tools/TaskCreateTool/TaskCreateTool.ts
|
|
379222
|
+
function normalizeTaskId(candidate) {
|
|
379223
|
+
return candidate.trim().replace(/^#/gu, "");
|
|
379224
|
+
}
|
|
379200
379225
|
var inputSchema38, outputSchema33, TaskCreateTool;
|
|
379201
379226
|
var init_TaskCreateTool = __esm(() => {
|
|
379202
379227
|
init_v4();
|
|
@@ -379266,10 +379291,11 @@ var init_TaskCreateTool = __esm(() => {
|
|
|
379266
379291
|
addBlockedBy,
|
|
379267
379292
|
addToCurrentList
|
|
379268
379293
|
}, context5) {
|
|
379269
|
-
const
|
|
379270
|
-
const
|
|
379294
|
+
const normalize13 = (raw) => [...new Set(raw.map(normalizeTaskId).filter(Boolean))];
|
|
379295
|
+
const initialBlocks = normalize13([...new Set([...blocks ?? [], ...addBlocks ?? []])]);
|
|
379296
|
+
const initialBlockedBy = normalize13([
|
|
379271
379297
|
...new Set([...blockedBy ?? [], ...addBlockedBy ?? []])
|
|
379272
|
-
];
|
|
379298
|
+
]);
|
|
379273
379299
|
const taskListId = getTaskListId();
|
|
379274
379300
|
const run2 = getTaskListRunContext() ?? (context5.agentId ? undefined : getTaskListRunFromMessages(context5.messages ?? []));
|
|
379275
379301
|
const taskData = {
|
|
@@ -379285,27 +379311,36 @@ var init_TaskCreateTool = __esm(() => {
|
|
|
379285
379311
|
const taskId = run2 ? await createTaskForRun(taskListId, run2.generationId, taskData, {
|
|
379286
379312
|
appendToCurrent: run2.appendToCurrent || addToCurrentList === true
|
|
379287
379313
|
}) : await createTask(taskListId, taskData);
|
|
379288
|
-
const
|
|
379289
|
-
|
|
379290
|
-
|
|
379291
|
-
|
|
379292
|
-
|
|
379293
|
-
|
|
379294
|
-
|
|
379295
|
-
|
|
379296
|
-
|
|
379297
|
-
|
|
379298
|
-
|
|
379299
|
-
|
|
379300
|
-
|
|
379301
|
-
|
|
379302
|
-
|
|
379303
|
-
|
|
379304
|
-
|
|
379305
|
-
|
|
379306
|
-
|
|
379314
|
+
const candidateDependencies = [];
|
|
379315
|
+
const seenEdges = new Set;
|
|
379316
|
+
const addCandidate = (fromTaskId, toTaskId, field) => {
|
|
379317
|
+
const from = normalizeTaskId(fromTaskId);
|
|
379318
|
+
const to = normalizeTaskId(toTaskId);
|
|
379319
|
+
if (!from || !to || from === to)
|
|
379320
|
+
return;
|
|
379321
|
+
const key = `${from}->${to}`;
|
|
379322
|
+
if (seenEdges.has(key))
|
|
379323
|
+
return;
|
|
379324
|
+
seenEdges.add(key);
|
|
379325
|
+
candidateDependencies.push({ fromTaskId: from, toTaskId: to, field });
|
|
379326
|
+
};
|
|
379327
|
+
for (const targetId of initialBlocks) {
|
|
379328
|
+
addCandidate(taskId, targetId, "blocks");
|
|
379329
|
+
}
|
|
379330
|
+
for (const blockerId of initialBlockedBy) {
|
|
379331
|
+
addCandidate(blockerId, taskId, "blockedBy");
|
|
379332
|
+
}
|
|
379333
|
+
if (candidateDependencies.length > 0) {
|
|
379334
|
+
const dependencyResult = await updateTaskWithDependencies(taskListId, taskId, {}, candidateDependencies);
|
|
379335
|
+
if (dependencyResult.success === false) {
|
|
379336
|
+
const dependency = dependencyResult.dependency;
|
|
379337
|
+
await deleteTask(taskListId, taskId);
|
|
379338
|
+
if (dependency) {
|
|
379339
|
+
const field = candidateDependencies.find((candidate) => candidate.fromTaskId === dependency.fromTaskId && candidate.toTaskId === dependency.toTaskId)?.field ?? "dependency";
|
|
379340
|
+
throw new Error(`Invalid ${field} dependency ` + `#${dependency.fromTaskId} -> #${dependency.toTaskId}: ` + dependencyResult.reason);
|
|
379341
|
+
}
|
|
379342
|
+
throw new Error(`Failed to create task dependencies: ${dependencyResult.reason}`);
|
|
379307
379343
|
}
|
|
379308
|
-
throw new Error(`Failed to create task dependencies: ${dependencyResult.reason}`);
|
|
379309
379344
|
}
|
|
379310
379345
|
const blockingErrors = [];
|
|
379311
379346
|
const generator = executeTaskCreatedHooks(taskId, subject, description, getAgentName(), getTeamName(), undefined, context5?.abortController?.signal, undefined, context5);
|
|
@@ -379555,6 +379590,9 @@ Set up task dependencies:
|
|
|
379555
379590
|
`;
|
|
379556
379591
|
|
|
379557
379592
|
// src/tools/TaskUpdateTool/TaskUpdateTool.ts
|
|
379593
|
+
function normalizeTaskId2(candidate) {
|
|
379594
|
+
return candidate.trim().replace(/^#/gu, "");
|
|
379595
|
+
}
|
|
379558
379596
|
var inputSchema40, outputSchema35, TaskUpdateTool;
|
|
379559
379597
|
var init_TaskUpdateTool = __esm(() => {
|
|
379560
379598
|
init_v4();
|
|
@@ -379656,13 +379694,16 @@ var init_TaskUpdateTool = __esm(() => {
|
|
|
379656
379694
|
}
|
|
379657
379695
|
};
|
|
379658
379696
|
}
|
|
379697
|
+
const normalize13 = (raw) => [...new Set(raw.map(normalizeTaskId2).filter(Boolean))];
|
|
379698
|
+
const addBlockIds = normalize13(addBlocks ?? []);
|
|
379699
|
+
const addBlockedByIds = normalize13(addBlockedBy ?? []);
|
|
379659
379700
|
const requestedDependencies = [
|
|
379660
|
-
...
|
|
379701
|
+
...addBlockIds.map((targetId) => ({
|
|
379661
379702
|
fromTaskId: taskId,
|
|
379662
379703
|
toTaskId: targetId,
|
|
379663
379704
|
field: "addBlocks"
|
|
379664
379705
|
})),
|
|
379665
|
-
...
|
|
379706
|
+
...addBlockedByIds.map((blockerId) => ({
|
|
379666
379707
|
fromTaskId: blockerId,
|
|
379667
379708
|
toTaskId: taskId,
|
|
379668
379709
|
field: "addBlockedBy"
|
|
@@ -389358,7 +389399,7 @@ function isAnyTracingEnabled() {
|
|
|
389358
389399
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
389359
389400
|
}
|
|
389360
389401
|
function getTracer() {
|
|
389361
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.76.
|
|
389402
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.76.6");
|
|
389362
389403
|
}
|
|
389363
389404
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
389364
389405
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -391472,7 +391513,56 @@ function buildSchemaNotSentHint(tool, messages, tools) {
|
|
|
391472
391513
|
|
|
391473
391514
|
This tool's schema was not sent to the API \u2014 it was not in the discovered-tool set derived from message history. ` + `Without the schema in your prompt, typed parameters (arrays, numbers, booleans) get emitted as strings and the client-side parser rejects them. Load the tool first: call ${TOOL_SEARCH_TOOL_NAME} with query "select:${tool.name}", then retry this call.`;
|
|
391474
391515
|
}
|
|
391516
|
+
function isObjectValue(value) {
|
|
391517
|
+
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
391518
|
+
}
|
|
391519
|
+
function normalizeExecutionToolInput(tool, input) {
|
|
391520
|
+
if (tool.name === ASK_USER_QUESTION_TOOL_NAME) {
|
|
391521
|
+
const normalized = normalizeAskUserQuestionInput(input);
|
|
391522
|
+
if (!isObjectValue(normalized)) {
|
|
391523
|
+
const problemsInput = Array.isArray(normalized) ? { questions: normalized } : isObjectValue(normalized) ? normalized : isObjectValue(input) ? input : undefined;
|
|
391524
|
+
const problems2 = problemsInput ? describeQuestionPayloadProblems(problemsInput) : ["Input must be an object with a `questions` array."];
|
|
391525
|
+
return {
|
|
391526
|
+
input,
|
|
391527
|
+
validationHint: `AskUserQuestion input cannot be rendered: ${problems2.join(" ")}`
|
|
391528
|
+
};
|
|
391529
|
+
}
|
|
391530
|
+
const problems = describeQuestionPayloadProblems(normalized);
|
|
391531
|
+
if (problems.length > 0) {
|
|
391532
|
+
return {
|
|
391533
|
+
input: normalized,
|
|
391534
|
+
validationHint: `AskUserQuestion input cannot be rendered: ${problems.join(" ")}`
|
|
391535
|
+
};
|
|
391536
|
+
}
|
|
391537
|
+
return { input: normalized };
|
|
391538
|
+
}
|
|
391539
|
+
if (tool.name === FILE_WRITE_TOOL_NAME && tool === FileWriteTool) {
|
|
391540
|
+
const parsed = FileWriteTool.inputSchema.safeParse(input);
|
|
391541
|
+
if (parsed.success) {
|
|
391542
|
+
return { input: parsed.data };
|
|
391543
|
+
}
|
|
391544
|
+
return {
|
|
391545
|
+
input,
|
|
391546
|
+
validationHint: parsed.error.issues.map((issue2) => issue2.message).join(". ")
|
|
391547
|
+
};
|
|
391548
|
+
}
|
|
391549
|
+
return { input };
|
|
391550
|
+
}
|
|
391551
|
+
function formatToolInputError(toolName, reason) {
|
|
391552
|
+
if (toolName === ASK_USER_QUESTION_TOOL_NAME || toolName === FILE_WRITE_TOOL_NAME) {
|
|
391553
|
+
return {
|
|
391554
|
+
toolUseError: reason,
|
|
391555
|
+
toolUseResult: reason
|
|
391556
|
+
};
|
|
391557
|
+
}
|
|
391558
|
+
return {
|
|
391559
|
+
toolUseError: `InputValidationError: ${reason}`,
|
|
391560
|
+
toolUseResult: `InputValidationError: ${reason}`
|
|
391561
|
+
};
|
|
391562
|
+
}
|
|
391475
391563
|
async function checkPermissionsAndCallTool(tool, toolUseID, input, toolUseContext, canUseTool, assistantMessage, messageId, requestId, mcpServerType, mcpServerBaseUrl, onToolProgress) {
|
|
391564
|
+
const normalized = normalizeExecutionToolInput(tool, input);
|
|
391565
|
+
input = normalized.input;
|
|
391476
391566
|
let parsedInput = tool.inputSchema.safeParse(input);
|
|
391477
391567
|
if (!parsedInput.success && parsedInput.error.issues.length > 0 && parsedInput.error.issues.every((issue2) => issue2.code === "unrecognized_keys")) {
|
|
391478
391568
|
const { input: cleaned, stripped } = stripUnrecognizedKeys(input, parsedInput.error.issues);
|
|
@@ -391514,9 +391604,17 @@ async function checkPermissionsAndCallTool(tool, toolUseID, input, toolUseContex
|
|
|
391514
391604
|
];
|
|
391515
391605
|
}
|
|
391516
391606
|
if (!parsedInput.success) {
|
|
391607
|
+
const normalizedHint = normalized.validationHint;
|
|
391517
391608
|
recordCallFailure(callSig);
|
|
391518
|
-
|
|
391519
|
-
|
|
391609
|
+
let errorContent = normalizedHint;
|
|
391610
|
+
if (errorContent === undefined) {
|
|
391611
|
+
const questionProblems = tool.name === ASK_USER_QUESTION_TOOL_NAME ? describeQuestionPayloadProblems(normalizeAskUserQuestionInput(input)) : [];
|
|
391612
|
+
if (questionProblems.length > 0) {
|
|
391613
|
+
errorContent = `${tool.name} input cannot be rendered: ${questionProblems.join(" ")}`;
|
|
391614
|
+
} else {
|
|
391615
|
+
errorContent = formatZodValidationError(tool.name, parsedInput.error);
|
|
391616
|
+
}
|
|
391617
|
+
}
|
|
391520
391618
|
const schemaHint = buildSchemaNotSentHint(tool, toolUseContext.messages, toolUseContext.options.tools);
|
|
391521
391619
|
if (schemaHint) {
|
|
391522
391620
|
logEvent("tengu_deferred_tool_schema_not_sent", {
|
|
@@ -391545,18 +391643,19 @@ async function checkPermissionsAndCallTool(tool, toolUseID, input, toolUseContex
|
|
|
391545
391643
|
},
|
|
391546
391644
|
...mcpToolDetailsForAnalytics(tool.name, mcpServerType, mcpServerBaseUrl)
|
|
391547
391645
|
});
|
|
391646
|
+
const { toolUseError, toolUseResult } = formatToolInputError(tool.name, errorContent);
|
|
391548
391647
|
return [
|
|
391549
391648
|
{
|
|
391550
391649
|
message: createUserMessage({
|
|
391551
391650
|
content: [
|
|
391552
391651
|
{
|
|
391553
391652
|
type: "tool_result",
|
|
391554
|
-
content: `<tool_use_error
|
|
391653
|
+
content: `<tool_use_error>${toolUseError}</tool_use_error>`,
|
|
391555
391654
|
is_error: true,
|
|
391556
391655
|
tool_use_id: toolUseID
|
|
391557
391656
|
}
|
|
391558
391657
|
],
|
|
391559
|
-
toolUseResult
|
|
391658
|
+
toolUseResult,
|
|
391560
391659
|
sourceToolAssistantUUID: assistantMessage.uuid
|
|
391561
391660
|
})
|
|
391562
391661
|
}
|
|
@@ -391867,6 +391966,8 @@ async function checkPermissionsAndCallTool(tool, toolUseID, input, toolUseContex
|
|
|
391867
391966
|
endToolSpan();
|
|
391868
391967
|
toolUseContext.toolDecisions?.delete(toolUseID);
|
|
391869
391968
|
};
|
|
391969
|
+
const finalNormalized = normalizeExecutionToolInput(tool, callInput);
|
|
391970
|
+
callInput = finalNormalized.input;
|
|
391870
391971
|
const finalParsedInput = tool.inputSchema.safeParse(callInput);
|
|
391871
391972
|
if (!finalParsedInput.success) {
|
|
391872
391973
|
callSig = callSignature(tool.name, callInput, repeatedFailureScope(toolUseContext, messageId));
|
|
@@ -391895,18 +391996,21 @@ async function checkPermissionsAndCallTool(tool, toolUseID, input, toolUseContex
|
|
|
391895
391996
|
}
|
|
391896
391997
|
recordCallFailure(callSig);
|
|
391897
391998
|
const finalInputError = formatZodValidationError(tool.name, finalParsedInput.error);
|
|
391999
|
+
const finalInputContent = finalNormalized.validationHint ?? finalInputError;
|
|
391898
392000
|
finishPreExecutionRejection();
|
|
392001
|
+
const finalInputContentWithContext = tool.name === ASK_USER_QUESTION_TOOL_NAME || tool.name === FILE_WRITE_TOOL_NAME ? finalInputContent : `InputValidationError after input update: ${finalInputContent}`;
|
|
392002
|
+
const { toolUseError, toolUseResult } = formatToolInputError(tool.name, finalInputContentWithContext);
|
|
391899
392003
|
resultingMessages.push({
|
|
391900
392004
|
message: createUserMessage({
|
|
391901
392005
|
content: [
|
|
391902
392006
|
{
|
|
391903
392007
|
type: "tool_result",
|
|
391904
|
-
content: `<tool_use_error
|
|
392008
|
+
content: `<tool_use_error>${toolUseError}</tool_use_error>`,
|
|
391905
392009
|
is_error: true,
|
|
391906
392010
|
tool_use_id: toolUseID
|
|
391907
392011
|
}
|
|
391908
392012
|
],
|
|
391909
|
-
toolUseResult
|
|
392013
|
+
toolUseResult,
|
|
391910
392014
|
sourceToolAssistantUUID: assistantMessage.uuid
|
|
391911
392015
|
})
|
|
391912
392016
|
});
|
|
@@ -392374,6 +392478,7 @@ var init_toolExecution = __esm(() => {
|
|
|
392374
392478
|
init_bashPermissions();
|
|
392375
392479
|
init_prompt3();
|
|
392376
392480
|
init_prompt4();
|
|
392481
|
+
init_FileWriteTool();
|
|
392377
392482
|
init_gitOperationTracking();
|
|
392378
392483
|
init_prompt8();
|
|
392379
392484
|
init_tools2();
|
|
@@ -409457,6 +409562,40 @@ function joinTextAtSeam(a2, b) {
|
|
|
409457
409562
|
}
|
|
409458
409563
|
return [...a2, ...b];
|
|
409459
409564
|
}
|
|
409565
|
+
function safeJsonDebugValue(value) {
|
|
409566
|
+
try {
|
|
409567
|
+
return JSON.stringify(value, null, 2);
|
|
409568
|
+
} catch {
|
|
409569
|
+
return String(value);
|
|
409570
|
+
}
|
|
409571
|
+
}
|
|
409572
|
+
function normalizeIncomingWriteInputForAPI(input) {
|
|
409573
|
+
if (!isObject_default(input)) {
|
|
409574
|
+
return null;
|
|
409575
|
+
}
|
|
409576
|
+
const parsed = FileWriteTool.inputSchema.safeParse(input);
|
|
409577
|
+
if (!parsed.success) {
|
|
409578
|
+
return null;
|
|
409579
|
+
}
|
|
409580
|
+
return parsed.data;
|
|
409581
|
+
}
|
|
409582
|
+
function normalizeIncomingAskUserQuestionInputForAPI(input) {
|
|
409583
|
+
const normalized = normalizeAskUserQuestionInput(input);
|
|
409584
|
+
if (!isObject_default(normalized)) {
|
|
409585
|
+
return null;
|
|
409586
|
+
}
|
|
409587
|
+
if (describeQuestionPayloadProblems(normalized).length > 0) {
|
|
409588
|
+
return null;
|
|
409589
|
+
}
|
|
409590
|
+
return normalized;
|
|
409591
|
+
}
|
|
409592
|
+
function toolUseFallbackText(toolName, reason, input) {
|
|
409593
|
+
const safeInput = safeJsonDebugValue(input).slice(0, MAX_TOOL_USE_REPAIR_TEXT_CHARS);
|
|
409594
|
+
return {
|
|
409595
|
+
type: "text",
|
|
409596
|
+
text: `Tool ${toolName} call was not renderable (${reason}). Raw input: ${safeInput}`
|
|
409597
|
+
};
|
|
409598
|
+
}
|
|
409460
409599
|
function smooshIntoToolResult(tr, blocks) {
|
|
409461
409600
|
if (blocks.length === 0)
|
|
409462
409601
|
return tr;
|
|
@@ -409564,6 +409703,20 @@ function normalizeContentFromAPI(contentBlocks, tools, agentId) {
|
|
|
409564
409703
|
if (typeof normalizedInput !== "object" || normalizedInput === null || Array.isArray(normalizedInput)) {
|
|
409565
409704
|
throw new Error(`Tool use input for ${String(contentBlock.name)} must be a JSON object`);
|
|
409566
409705
|
}
|
|
409706
|
+
if (contentBlock.name === FILE_WRITE_TOOL_NAME) {
|
|
409707
|
+
const repaired = normalizeIncomingWriteInputForAPI(normalizedInput);
|
|
409708
|
+
if (repaired === null) {
|
|
409709
|
+
return toolUseFallbackText(String(contentBlock.name ?? FILE_WRITE_TOOL_NAME), "invalid Write arguments", contentBlock.input);
|
|
409710
|
+
}
|
|
409711
|
+
normalizedInput = repaired;
|
|
409712
|
+
}
|
|
409713
|
+
if (contentBlock.name === ASK_USER_QUESTION_TOOL_NAME) {
|
|
409714
|
+
const repaired = normalizeIncomingAskUserQuestionInputForAPI(normalizedInput);
|
|
409715
|
+
if (repaired === null) {
|
|
409716
|
+
return toolUseFallbackText(String(contentBlock.name ?? ASK_USER_QUESTION_TOOL_NAME), "invalid AskUserQuestion arguments", contentBlock.input);
|
|
409717
|
+
}
|
|
409718
|
+
normalizedInput = repaired;
|
|
409719
|
+
}
|
|
409567
409720
|
const sanitized = stripEmptyParameterNames(normalizedInput);
|
|
409568
409721
|
if (sanitized.stripped) {
|
|
409569
409722
|
normalizedInput = sanitized.input;
|
|
@@ -411416,7 +411569,7 @@ Note: The user's next message may contain a correction or preference. Pay close
|
|
|
411416
411569
|
`, PLAN_REJECTION_PREFIX = `The agent proposed a plan that was rejected by the user. The user chose to stay in plan mode rather than proceed with implementation.
|
|
411417
411570
|
|
|
411418
411571
|
Rejected plan:
|
|
411419
|
-
`, DENIAL_WORKAROUND_GUIDANCE, NO_RESPONSE_REQUESTED = "No response requested.", SYNTHETIC_TOOL_RESULT_PLACEHOLDER = "[Tool result missing due to internal error]", SYNTHETIC_MODEL = "<synthetic>", SYNTHETIC_MESSAGES, EMPTY_LOOKUPS, EMPTY_STRING_SET, STRIPPED_TAGS_RE, PLAN_PHASE4_CONTROL = `### Phase 4: Final Plan
|
|
411572
|
+
`, DENIAL_WORKAROUND_GUIDANCE, NO_RESPONSE_REQUESTED = "No response requested.", SYNTHETIC_TOOL_RESULT_PLACEHOLDER = "[Tool result missing due to internal error]", SYNTHETIC_MODEL = "<synthetic>", SYNTHETIC_MESSAGES, EMPTY_LOOKUPS, EMPTY_STRING_SET, MAX_TOOL_USE_REPAIR_TEXT_CHARS = 1200, STRIPPED_TAGS_RE, PLAN_PHASE4_CONTROL = `### Phase 4: Final Plan
|
|
411420
411573
|
Goal: Write your final plan to the plan file (the only file you can edit).
|
|
411421
411574
|
- Begin with a **Context** section: explain why this change is being made \u2014 the problem or need it addresses, what prompted it, and the intended outcome
|
|
411422
411575
|
- Include only your recommended approach, not all alternatives
|
|
@@ -411469,6 +411622,7 @@ var init_messages = __esm(() => {
|
|
|
411469
411622
|
init_ExitPlanModeV2Tool();
|
|
411470
411623
|
init_FileEditTool();
|
|
411471
411624
|
init_prompt3();
|
|
411625
|
+
init_prompt4();
|
|
411472
411626
|
init_FileWriteTool();
|
|
411473
411627
|
init_prompt2();
|
|
411474
411628
|
init_state();
|
|
@@ -411481,6 +411635,7 @@ var init_messages = __esm(() => {
|
|
|
411481
411635
|
init_debug();
|
|
411482
411636
|
init_displayTags();
|
|
411483
411637
|
init_embeddedTools();
|
|
411638
|
+
init_AskUserQuestionTool();
|
|
411484
411639
|
init_format2();
|
|
411485
411640
|
init_imageValidation();
|
|
411486
411641
|
init_json();
|
|
@@ -419527,7 +419682,7 @@ function Feedback({
|
|
|
419527
419682
|
platform: env2.platform,
|
|
419528
419683
|
gitRepo: envInfo.isGit,
|
|
419529
419684
|
terminal: env2.terminal,
|
|
419530
|
-
version: "1.76.
|
|
419685
|
+
version: "1.76.6",
|
|
419531
419686
|
transcript: normalizeMessagesForAPI(messages),
|
|
419532
419687
|
errors: sanitizedErrors,
|
|
419533
419688
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -419719,7 +419874,7 @@ function Feedback({
|
|
|
419719
419874
|
", ",
|
|
419720
419875
|
env2.terminal,
|
|
419721
419876
|
", v",
|
|
419722
|
-
"1.76.
|
|
419877
|
+
"1.76.6"
|
|
419723
419878
|
]
|
|
419724
419879
|
}, undefined, true, undefined, this)
|
|
419725
419880
|
]
|
|
@@ -419825,7 +419980,7 @@ ${sanitizedDescription}
|
|
|
419825
419980
|
` + `**Environment Info**
|
|
419826
419981
|
` + `- Platform: ${env2.platform}
|
|
419827
419982
|
` + `- Terminal: ${env2.terminal}
|
|
419828
|
-
` + `- Version: ${"1.76.
|
|
419983
|
+
` + `- Version: ${"1.76.6"}
|
|
419829
419984
|
` + `- Feedback ID: ${feedbackId}
|
|
419830
419985
|
` + `
|
|
419831
419986
|
**Errors**
|
|
@@ -422935,7 +423090,7 @@ function buildPrimarySection() {
|
|
|
422935
423090
|
}, undefined, false, undefined, this);
|
|
422936
423091
|
return [{
|
|
422937
423092
|
label: "Version",
|
|
422938
|
-
value: "1.76.
|
|
423093
|
+
value: "1.76.6"
|
|
422939
423094
|
}, {
|
|
422940
423095
|
label: "Session name",
|
|
422941
423096
|
value: nameValue
|
|
@@ -426317,7 +426472,7 @@ function Config({
|
|
|
426317
426472
|
}
|
|
426318
426473
|
}, undefined, false, undefined, this)
|
|
426319
426474
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
426320
|
-
currentVersion: "1.76.
|
|
426475
|
+
currentVersion: "1.76.6",
|
|
426321
426476
|
onChoice: (choice) => {
|
|
426322
426477
|
setShowSubmenu(null);
|
|
426323
426478
|
setTabsHidden(false);
|
|
@@ -426329,7 +426484,7 @@ function Config({
|
|
|
426329
426484
|
autoUpdatesChannel: "stable"
|
|
426330
426485
|
};
|
|
426331
426486
|
if (choice === "stay") {
|
|
426332
|
-
newSettings.minimumVersion = "1.76.
|
|
426487
|
+
newSettings.minimumVersion = "1.76.6";
|
|
426333
426488
|
}
|
|
426334
426489
|
updateSettingsForSource("userSettings", newSettings);
|
|
426335
426490
|
setSettingsData((prev_27) => ({
|
|
@@ -434393,7 +434548,7 @@ function HelpV2(t0) {
|
|
|
434393
434548
|
let t6;
|
|
434394
434549
|
if ($2[31] !== tabs) {
|
|
434395
434550
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
434396
|
-
title: `UR v${"1.76.
|
|
434551
|
+
title: `UR v${"1.76.6"}`,
|
|
434397
434552
|
color: "professionalBlue",
|
|
434398
434553
|
defaultTab: "general",
|
|
434399
434554
|
children: tabs
|
|
@@ -435326,7 +435481,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
435326
435481
|
async function handleInitialize(options2) {
|
|
435327
435482
|
return {
|
|
435328
435483
|
name: "UR",
|
|
435329
|
-
version: "1.76.
|
|
435484
|
+
version: "1.76.6",
|
|
435330
435485
|
protocolVersion: "0.1.0",
|
|
435331
435486
|
workspaceRoot: options2.cwd,
|
|
435332
435487
|
capabilities: {
|
|
@@ -452434,7 +452589,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
452434
452589
|
return [];
|
|
452435
452590
|
}
|
|
452436
452591
|
}
|
|
452437
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.76.
|
|
452592
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.76.6") {
|
|
452438
452593
|
if (process.env.USER_TYPE === "ant") {
|
|
452439
452594
|
const changelog = "";
|
|
452440
452595
|
if (changelog) {
|
|
@@ -452461,7 +452616,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.76.4")
|
|
|
452461
452616
|
releaseNotes
|
|
452462
452617
|
};
|
|
452463
452618
|
}
|
|
452464
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.76.
|
|
452619
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.76.6") {
|
|
452465
452620
|
if (process.env.USER_TYPE === "ant") {
|
|
452466
452621
|
const changelog = "";
|
|
452467
452622
|
if (changelog) {
|
|
@@ -455327,7 +455482,7 @@ function getRecentActivitySync() {
|
|
|
455327
455482
|
return cachedActivity;
|
|
455328
455483
|
}
|
|
455329
455484
|
function getLogoDisplayData() {
|
|
455330
|
-
const version2 = process.env.DEMO_VERSION ?? "1.76.
|
|
455485
|
+
const version2 = process.env.DEMO_VERSION ?? "1.76.6";
|
|
455331
455486
|
const serverUrl = getDirectConnectServerUrl();
|
|
455332
455487
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
455333
455488
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -456194,7 +456349,7 @@ function LogoV2() {
|
|
|
456194
456349
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
456195
456350
|
t2 = () => {
|
|
456196
456351
|
const currentConfig2 = getGlobalConfig();
|
|
456197
|
-
if (currentConfig2.lastReleaseNotesSeen === "1.76.
|
|
456352
|
+
if (currentConfig2.lastReleaseNotesSeen === "1.76.6") {
|
|
456198
456353
|
return;
|
|
456199
456354
|
}
|
|
456200
456355
|
saveGlobalConfig(_temp325);
|
|
@@ -456879,12 +457034,12 @@ function LogoV2() {
|
|
|
456879
457034
|
return t41;
|
|
456880
457035
|
}
|
|
456881
457036
|
function _temp325(current) {
|
|
456882
|
-
if (current.lastReleaseNotesSeen === "1.76.
|
|
457037
|
+
if (current.lastReleaseNotesSeen === "1.76.6") {
|
|
456883
457038
|
return current;
|
|
456884
457039
|
}
|
|
456885
457040
|
return {
|
|
456886
457041
|
...current,
|
|
456887
|
-
lastReleaseNotesSeen: "1.76.
|
|
457042
|
+
lastReleaseNotesSeen: "1.76.6"
|
|
456888
457043
|
};
|
|
456889
457044
|
}
|
|
456890
457045
|
function _temp241(s_0) {
|
|
@@ -473698,7 +473853,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
473698
473853
|
if (spec.name !== specName) {
|
|
473699
473854
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
473700
473855
|
}
|
|
473701
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.76.
|
|
473856
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.76.6" : "1.76.6");
|
|
473702
473857
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
473703
473858
|
throw new Error("invalid ur-agent package version");
|
|
473704
473859
|
}
|
|
@@ -474691,7 +474846,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
474691
474846
|
path: ".github/workflows/ur.yml",
|
|
474692
474847
|
root: "project",
|
|
474693
474848
|
content: compileAgenticCiWorkflow("default", {
|
|
474694
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.76.
|
|
474849
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.76.6" : "1.76.6"
|
|
474695
474850
|
})
|
|
474696
474851
|
},
|
|
474697
474852
|
{
|
|
@@ -474754,7 +474909,7 @@ function value(tokens, flag) {
|
|
|
474754
474909
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
474755
474910
|
}
|
|
474756
474911
|
function cliVersion() {
|
|
474757
|
-
return typeof MACRO !== "undefined" ? "1.76.
|
|
474912
|
+
return typeof MACRO !== "undefined" ? "1.76.6" : "1.76.6";
|
|
474758
474913
|
}
|
|
474759
474914
|
function workflowPath(cwd2) {
|
|
474760
474915
|
return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -480610,7 +480765,7 @@ function createAcpStdioApp(deps) {
|
|
|
480610
480765
|
}
|
|
480611
480766
|
},
|
|
480612
480767
|
authMethods: [],
|
|
480613
|
-
agentInfo: { name: "UR-Nexus", version: "1.76.
|
|
480768
|
+
agentInfo: { name: "UR-Nexus", version: "1.76.6" }
|
|
480614
480769
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
480615
480770
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
480616
480771
|
await runtime2.announce({
|
|
@@ -480707,7 +480862,7 @@ function createAcpStdioAgent(deps) {
|
|
|
480707
480862
|
}
|
|
480708
480863
|
},
|
|
480709
480864
|
authMethods: [],
|
|
480710
|
-
agentInfo: { name: "UR-Nexus", version: "1.76.
|
|
480865
|
+
agentInfo: { name: "UR-Nexus", version: "1.76.6" }
|
|
480711
480866
|
});
|
|
480712
480867
|
return;
|
|
480713
480868
|
case "authenticate":
|
|
@@ -690159,7 +690314,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
690159
690314
|
smapsRollup,
|
|
690160
690315
|
platform: process.platform,
|
|
690161
690316
|
nodeVersion: process.version,
|
|
690162
|
-
ccVersion: "1.76.
|
|
690317
|
+
ccVersion: "1.76.6"
|
|
690163
690318
|
};
|
|
690164
690319
|
}
|
|
690165
690320
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -690739,7 +690894,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
690739
690894
|
var call154 = async () => {
|
|
690740
690895
|
return {
|
|
690741
690896
|
type: "text",
|
|
690742
|
-
value: "1.76.
|
|
690897
|
+
value: "1.76.6"
|
|
690743
690898
|
};
|
|
690744
690899
|
}, version2, version_default;
|
|
690745
690900
|
var init_version = __esm(() => {
|
|
@@ -702006,7 +702161,7 @@ function generateHtmlReport(data, insights) {
|
|
|
702006
702161
|
</html>`;
|
|
702007
702162
|
}
|
|
702008
702163
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
702009
|
-
const version3 = typeof MACRO !== "undefined" ? "1.76.
|
|
702164
|
+
const version3 = typeof MACRO !== "undefined" ? "1.76.6" : "unknown";
|
|
702010
702165
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
702011
702166
|
const facets_summary = {
|
|
702012
702167
|
total: facets.size,
|
|
@@ -706320,7 +706475,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
706320
706475
|
init_settings2();
|
|
706321
706476
|
init_slowOperations();
|
|
706322
706477
|
init_uuid();
|
|
706323
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.76.
|
|
706478
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.76.6" : "unknown";
|
|
706324
706479
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
706325
706480
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
706326
706481
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -707535,7 +707690,7 @@ var init_filesystem = __esm(() => {
|
|
|
707535
707690
|
});
|
|
707536
707691
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
707537
707692
|
const nonce = randomBytes20(16).toString("hex");
|
|
707538
|
-
return join232(getURTempDir(), "bundled-skills", "1.76.
|
|
707693
|
+
return join232(getURTempDir(), "bundled-skills", "1.76.6", nonce);
|
|
707539
707694
|
});
|
|
707540
707695
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
707541
707696
|
});
|
|
@@ -713884,7 +714039,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
713884
714039
|
}
|
|
713885
714040
|
function computeFingerprintFromMessages(messages) {
|
|
713886
714041
|
const firstMessageText = extractFirstMessageText(messages);
|
|
713887
|
-
return computeFingerprint(firstMessageText, "1.76.
|
|
714042
|
+
return computeFingerprint(firstMessageText, "1.76.6");
|
|
713888
714043
|
}
|
|
713889
714044
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
713890
714045
|
var init_fingerprint = () => {};
|
|
@@ -715803,7 +715958,7 @@ async function sideQuery(opts) {
|
|
|
715803
715958
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
715804
715959
|
}
|
|
715805
715960
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
715806
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.76.
|
|
715961
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.76.6");
|
|
715807
715962
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
715808
715963
|
const systemBlocks = [
|
|
715809
715964
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -720640,7 +720795,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
720640
720795
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
720641
720796
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
720642
720797
|
betas: getSdkBetas(),
|
|
720643
|
-
ur_version: "1.76.
|
|
720798
|
+
ur_version: "1.76.6",
|
|
720644
720799
|
output_style: outputStyle2,
|
|
720645
720800
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
720646
720801
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -734512,7 +734667,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
734512
734667
|
function getSemverPart(version3) {
|
|
734513
734668
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
734514
734669
|
}
|
|
734515
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.76.
|
|
734670
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.76.6") {
|
|
734516
734671
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react223.useState(() => getSemverPart(initialVersion));
|
|
734517
734672
|
if (!updatedVersion) {
|
|
734518
734673
|
return null;
|
|
@@ -734561,7 +734716,7 @@ function AutoUpdater({
|
|
|
734561
734716
|
return;
|
|
734562
734717
|
}
|
|
734563
734718
|
if (false) {}
|
|
734564
|
-
const currentVersion = "1.76.
|
|
734719
|
+
const currentVersion = "1.76.6";
|
|
734565
734720
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
734566
734721
|
let latestVersion = await getLatestVersion(channel);
|
|
734567
734722
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -734790,12 +734945,12 @@ function NativeAutoUpdater({
|
|
|
734790
734945
|
logEvent("tengu_native_auto_updater_start", {});
|
|
734791
734946
|
try {
|
|
734792
734947
|
const maxVersion = await getMaxVersion();
|
|
734793
|
-
if (maxVersion && gt("1.76.
|
|
734948
|
+
if (maxVersion && gt("1.76.6", maxVersion)) {
|
|
734794
734949
|
const msg = await getMaxVersionMessage();
|
|
734795
734950
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
734796
734951
|
}
|
|
734797
734952
|
const result = await installLatest(channel);
|
|
734798
|
-
const currentVersion = "1.76.
|
|
734953
|
+
const currentVersion = "1.76.6";
|
|
734799
734954
|
const latencyMs = Date.now() - startTime;
|
|
734800
734955
|
if (result.lockFailed) {
|
|
734801
734956
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -734932,17 +735087,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
734932
735087
|
const maxVersion = await getMaxVersion();
|
|
734933
735088
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
734934
735089
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
734935
|
-
if (gte("1.76.
|
|
734936
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.76.
|
|
735090
|
+
if (gte("1.76.6", maxVersion)) {
|
|
735091
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.76.6"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
734937
735092
|
setUpdateAvailable(false);
|
|
734938
735093
|
return;
|
|
734939
735094
|
}
|
|
734940
735095
|
latest = maxVersion;
|
|
734941
735096
|
}
|
|
734942
|
-
const hasUpdate = latest && !gte("1.76.
|
|
735097
|
+
const hasUpdate = latest && !gte("1.76.6", latest) && !shouldSkipVersion(latest);
|
|
734943
735098
|
setUpdateAvailable(!!hasUpdate);
|
|
734944
735099
|
if (hasUpdate) {
|
|
734945
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.76.
|
|
735100
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.76.6"} -> ${latest}`);
|
|
734946
735101
|
}
|
|
734947
735102
|
};
|
|
734948
735103
|
$2[0] = t1;
|
|
@@ -734976,7 +735131,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
734976
735131
|
wrap: "truncate",
|
|
734977
735132
|
children: [
|
|
734978
735133
|
"currentVersion: ",
|
|
734979
|
-
"1.76.
|
|
735134
|
+
"1.76.6"
|
|
734980
735135
|
]
|
|
734981
735136
|
}, undefined, true, undefined, this);
|
|
734982
735137
|
$2[3] = verbose;
|
|
@@ -745776,7 +745931,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
745776
745931
|
project_dir: getOriginalCwd(),
|
|
745777
745932
|
added_dirs: addedDirs
|
|
745778
745933
|
},
|
|
745779
|
-
version: "1.76.
|
|
745934
|
+
version: "1.76.6",
|
|
745780
745935
|
output_style: {
|
|
745781
745936
|
name: outputStyleName
|
|
745782
745937
|
},
|
|
@@ -745911,7 +746066,7 @@ function StatusLineInner({
|
|
|
745911
746066
|
const attention = customStatusError ?? taskAttention;
|
|
745912
746067
|
const terminalSize = React132.useContext(TerminalSizeContext);
|
|
745913
746068
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
745914
|
-
version: "1.76.
|
|
746069
|
+
version: "1.76.6",
|
|
745915
746070
|
providerLabel: providerRuntime.providerLabel,
|
|
745916
746071
|
authMode: providerRuntime.authLabel,
|
|
745917
746072
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -758196,7 +758351,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
758196
758351
|
} catch {}
|
|
758197
758352
|
const data = {
|
|
758198
758353
|
trigger: trigger2,
|
|
758199
|
-
version: "1.76.
|
|
758354
|
+
version: "1.76.6",
|
|
758200
758355
|
platform: process.platform,
|
|
758201
758356
|
transcript,
|
|
758202
758357
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -770570,7 +770725,7 @@ function WelcomeV2() {
|
|
|
770570
770725
|
dimColor: true,
|
|
770571
770726
|
children: [
|
|
770572
770727
|
"v",
|
|
770573
|
-
"1.76.
|
|
770728
|
+
"1.76.6"
|
|
770574
770729
|
]
|
|
770575
770730
|
}, undefined, true, undefined, this)
|
|
770576
770731
|
]
|
|
@@ -771830,7 +771985,7 @@ function completeOnboarding() {
|
|
|
771830
771985
|
saveGlobalConfig((current) => ({
|
|
771831
771986
|
...current,
|
|
771832
771987
|
hasCompletedOnboarding: true,
|
|
771833
|
-
lastOnboardingVersion: "1.76.
|
|
771988
|
+
lastOnboardingVersion: "1.76.6"
|
|
771834
771989
|
}));
|
|
771835
771990
|
}
|
|
771836
771991
|
function showDialog(root2, renderer) {
|
|
@@ -776874,7 +777029,7 @@ function appendToLog(path24, message) {
|
|
|
776874
777029
|
cwd: getFsImplementation().cwd(),
|
|
776875
777030
|
userType: process.env.USER_TYPE,
|
|
776876
777031
|
sessionId: getSessionId(),
|
|
776877
|
-
version: "1.76.
|
|
777032
|
+
version: "1.76.6"
|
|
776878
777033
|
};
|
|
776879
777034
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
776880
777035
|
}
|
|
@@ -781033,8 +781188,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
781033
781188
|
}
|
|
781034
781189
|
async function checkEnvLessBridgeMinVersion() {
|
|
781035
781190
|
const cfg = await getEnvLessBridgeConfig();
|
|
781036
|
-
if (cfg.min_version && lt("1.76.
|
|
781037
|
-
return `Your version of UR (${"1.76.
|
|
781191
|
+
if (cfg.min_version && lt("1.76.6", cfg.min_version)) {
|
|
781192
|
+
return `Your version of UR (${"1.76.6"}) is too old for Remote Control.
|
|
781038
781193
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
781039
781194
|
}
|
|
781040
781195
|
return null;
|
|
@@ -781508,7 +781663,7 @@ async function initBridgeCore(params) {
|
|
|
781508
781663
|
const rawApi = createBridgeApiClient({
|
|
781509
781664
|
baseUrl,
|
|
781510
781665
|
getAccessToken,
|
|
781511
|
-
runnerVersion: "1.76.
|
|
781666
|
+
runnerVersion: "1.76.6",
|
|
781512
781667
|
onDebug: logForDebugging,
|
|
781513
781668
|
onAuth401,
|
|
781514
781669
|
getTrustedDeviceToken
|
|
@@ -790981,7 +791136,7 @@ function getAgUiCapabilities() {
|
|
|
790981
791136
|
name: "UR-Nexus",
|
|
790982
791137
|
type: "ur-nexus",
|
|
790983
791138
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
790984
|
-
version: "1.76.
|
|
791139
|
+
version: "1.76.6",
|
|
790985
791140
|
provider: "UR",
|
|
790986
791141
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
790987
791142
|
},
|
|
@@ -792121,7 +792276,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
792121
792276
|
};
|
|
792122
792277
|
const server2 = new Server({
|
|
792123
792278
|
name: "ur-nexus",
|
|
792124
|
-
version: "1.76.
|
|
792279
|
+
version: "1.76.6"
|
|
792125
792280
|
}, {
|
|
792126
792281
|
capabilities: {
|
|
792127
792282
|
tools: {}
|
|
@@ -793279,7 +793434,7 @@ function thrownResponse(error40) {
|
|
|
793279
793434
|
}
|
|
793280
793435
|
async function createUrMcp2026Runtime(options4) {
|
|
793281
793436
|
const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
|
|
793282
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.76.
|
|
793437
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.76.6" }, { capabilities: {} });
|
|
793283
793438
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
793284
793439
|
try {
|
|
793285
793440
|
await server2.connect(serverTransport);
|
|
@@ -793290,7 +793445,7 @@ async function createUrMcp2026Runtime(options4) {
|
|
|
793290
793445
|
}
|
|
793291
793446
|
const runtime2 = new Mcp2026Runtime({
|
|
793292
793447
|
cwd: options4.cwd,
|
|
793293
|
-
version: "1.76.
|
|
793448
|
+
version: "1.76.6",
|
|
793294
793449
|
backend: {
|
|
793295
793450
|
listTools: async () => {
|
|
793296
793451
|
const listed = await client2.listTools();
|
|
@@ -795431,7 +795586,7 @@ async function update() {
|
|
|
795431
795586
|
logEvent("tengu_update_check", {});
|
|
795432
795587
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
795433
795588
|
const result = await checkUpgradeStatus({
|
|
795434
|
-
currentVersion: "1.76.
|
|
795589
|
+
currentVersion: "1.76.6",
|
|
795435
795590
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
795436
795591
|
installationType: diagnostic2.installationType,
|
|
795437
795592
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -796747,7 +796902,7 @@ ${customInstructions}` : customInstructions;
|
|
|
796747
796902
|
}
|
|
796748
796903
|
}
|
|
796749
796904
|
logForDiagnosticsNoPII("info", "started", {
|
|
796750
|
-
version: "1.76.
|
|
796905
|
+
version: "1.76.6",
|
|
796751
796906
|
is_native_binary: isInBundledMode()
|
|
796752
796907
|
});
|
|
796753
796908
|
registerCleanup(async () => {
|
|
@@ -797533,7 +797688,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
797533
797688
|
pendingHookMessages
|
|
797534
797689
|
}, renderAndRun);
|
|
797535
797690
|
}
|
|
797536
|
-
}).version("1.76.
|
|
797691
|
+
}).version("1.76.6 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
797537
797692
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
797538
797693
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
797539
797694
|
if (canUserConfigureAdvisor()) {
|
|
@@ -798585,7 +798740,7 @@ if (false) {}
|
|
|
798585
798740
|
async function main2() {
|
|
798586
798741
|
const args = process.argv.slice(2);
|
|
798587
798742
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
798588
|
-
console.log(`${"1.76.
|
|
798743
|
+
console.log(`${"1.76.6"} (UR-Nexus)`);
|
|
798589
798744
|
return;
|
|
798590
798745
|
}
|
|
798591
798746
|
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.76.
|
|
48
|
+
<p class="eyebrow">Version 1.76.6</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.76.
|
|
5
|
+
"version": "1.76.6",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED