ur-agent 1.78.9 → 1.78.10
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 +25 -18
- package/dist/cli.js +354 -221
- package/docs/USAGE.md +29 -27
- package/docs/VALIDATION.md +7 -5
- package/docs/providers.md +8 -6
- package/documentation/index.html +3 -3
- 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/dist/cli.js
CHANGED
|
@@ -89249,12 +89249,112 @@ var init_toolSchema = __esm(() => {
|
|
|
89249
89249
|
TOOL_NAME_PATTERN = /^[A-Za-z0-9_-]{1,64}$/u;
|
|
89250
89250
|
});
|
|
89251
89251
|
|
|
89252
|
+
// src/services/api/streamIdleTimeout.ts
|
|
89253
|
+
function resolveStreamIdleTimeoutMs(configured, env4 = process.env) {
|
|
89254
|
+
const candidates = [
|
|
89255
|
+
configured,
|
|
89256
|
+
Number.parseInt(env4.UR_STREAM_IDLE_TIMEOUT_MS ?? "", 10)
|
|
89257
|
+
];
|
|
89258
|
+
for (const candidate of candidates) {
|
|
89259
|
+
if (typeof candidate === "number" && Number.isFinite(candidate) && candidate > 0) {
|
|
89260
|
+
return Math.floor(candidate);
|
|
89261
|
+
}
|
|
89262
|
+
}
|
|
89263
|
+
return DEFAULT_STREAM_IDLE_TIMEOUT_MS;
|
|
89264
|
+
}
|
|
89265
|
+
function withStreamIdleTimeout(source, idleMs, onTimeout) {
|
|
89266
|
+
if (!Number.isFinite(idleMs) || idleMs <= 0) {
|
|
89267
|
+
return source;
|
|
89268
|
+
}
|
|
89269
|
+
const reader = source.getReader();
|
|
89270
|
+
let timer;
|
|
89271
|
+
let bytesReceived = 0;
|
|
89272
|
+
let settled = false;
|
|
89273
|
+
return new ReadableStream({
|
|
89274
|
+
start(controller) {
|
|
89275
|
+
const clear = () => {
|
|
89276
|
+
if (timer !== undefined) {
|
|
89277
|
+
clearTimeout(timer);
|
|
89278
|
+
timer = undefined;
|
|
89279
|
+
}
|
|
89280
|
+
};
|
|
89281
|
+
const fail = () => {
|
|
89282
|
+
if (settled)
|
|
89283
|
+
return;
|
|
89284
|
+
settled = true;
|
|
89285
|
+
const error40 = new StreamIdleTimeoutError(idleMs, bytesReceived);
|
|
89286
|
+
clear();
|
|
89287
|
+
reader.cancel(error40).catch(() => {});
|
|
89288
|
+
onTimeout?.(error40);
|
|
89289
|
+
controller.error(error40);
|
|
89290
|
+
};
|
|
89291
|
+
const arm = () => {
|
|
89292
|
+
clear();
|
|
89293
|
+
if (settled)
|
|
89294
|
+
return;
|
|
89295
|
+
timer = setTimeout(fail, idleMs);
|
|
89296
|
+
};
|
|
89297
|
+
const pump = async () => {
|
|
89298
|
+
arm();
|
|
89299
|
+
try {
|
|
89300
|
+
while (!settled) {
|
|
89301
|
+
const { done, value } = await reader.read();
|
|
89302
|
+
if (settled)
|
|
89303
|
+
return;
|
|
89304
|
+
if (done) {
|
|
89305
|
+
clear();
|
|
89306
|
+
settled = true;
|
|
89307
|
+
controller.close();
|
|
89308
|
+
return;
|
|
89309
|
+
}
|
|
89310
|
+
if (value !== undefined) {
|
|
89311
|
+
bytesReceived += value.byteLength ?? value.length ?? 0;
|
|
89312
|
+
controller.enqueue(value);
|
|
89313
|
+
}
|
|
89314
|
+
arm();
|
|
89315
|
+
}
|
|
89316
|
+
} catch (error40) {
|
|
89317
|
+
if (settled)
|
|
89318
|
+
return;
|
|
89319
|
+
settled = true;
|
|
89320
|
+
clear();
|
|
89321
|
+
controller.error(error40);
|
|
89322
|
+
}
|
|
89323
|
+
};
|
|
89324
|
+
pump();
|
|
89325
|
+
},
|
|
89326
|
+
cancel(reason) {
|
|
89327
|
+
settled = true;
|
|
89328
|
+
if (timer !== undefined) {
|
|
89329
|
+
clearTimeout(timer);
|
|
89330
|
+
timer = undefined;
|
|
89331
|
+
}
|
|
89332
|
+
return reader.cancel(reason);
|
|
89333
|
+
}
|
|
89334
|
+
});
|
|
89335
|
+
}
|
|
89336
|
+
var DEFAULT_STREAM_IDLE_TIMEOUT_MS = 300000, StreamIdleTimeoutError;
|
|
89337
|
+
var init_streamIdleTimeout = __esm(() => {
|
|
89338
|
+
StreamIdleTimeoutError = class StreamIdleTimeoutError extends Error {
|
|
89339
|
+
idleMs;
|
|
89340
|
+
bytesReceived;
|
|
89341
|
+
isStreamIdleTimeout = true;
|
|
89342
|
+
constructor(idleMs, bytesReceived) {
|
|
89343
|
+
super(bytesReceived === 0 ? `Provider accepted the request but sent no data for ${idleMs}ms.` : `Provider stopped sending data for ${idleMs}ms after ${bytesReceived} bytes.`);
|
|
89344
|
+
this.idleMs = idleMs;
|
|
89345
|
+
this.bytesReceived = bytesReceived;
|
|
89346
|
+
this.name = "StreamIdleTimeoutError";
|
|
89347
|
+
}
|
|
89348
|
+
};
|
|
89349
|
+
});
|
|
89350
|
+
|
|
89252
89351
|
// src/services/api/ollama.ts
|
|
89253
89352
|
var exports_ollama = {};
|
|
89254
89353
|
__export(exports_ollama, {
|
|
89255
89354
|
toOllamaChatRequest: () => toOllamaChatRequest,
|
|
89256
89355
|
mergeToolCalls: () => mergeToolCalls,
|
|
89257
89356
|
isOllamaCloudModel: () => isOllamaCloudModel2,
|
|
89357
|
+
getOllamaStreamIdleTimeoutMs: () => getOllamaStreamIdleTimeoutMs,
|
|
89258
89358
|
getOllamaRequestTimeoutMs: () => getOllamaRequestTimeoutMs,
|
|
89259
89359
|
getOllamaHeaderTimeoutMs: () => getOllamaHeaderTimeoutMs,
|
|
89260
89360
|
getEffectiveOllamaBaseUrl: () => getEffectiveOllamaBaseUrl,
|
|
@@ -89423,6 +89523,18 @@ function getOllamaRequestTimeoutMs(options, env4 = process.env, model) {
|
|
|
89423
89523
|
}
|
|
89424
89524
|
return DEFAULT_OLLAMA_REQUEST_TIMEOUT_MS;
|
|
89425
89525
|
}
|
|
89526
|
+
function getOllamaStreamIdleTimeoutMs(options, env4 = process.env, model) {
|
|
89527
|
+
if (options?.timeoutMs !== undefined || options?.timeout !== undefined) {
|
|
89528
|
+
return getOllamaRequestTimeoutMs(options, env4, model);
|
|
89529
|
+
}
|
|
89530
|
+
const streamOverride = parseInt(env4.UR_STREAM_IDLE_TIMEOUT_MS || "", 10);
|
|
89531
|
+
if (streamOverride > 0)
|
|
89532
|
+
return streamOverride;
|
|
89533
|
+
const apiOverride = parseInt(env4.API_TIMEOUT_MS || "", 10);
|
|
89534
|
+
if (apiOverride > 0)
|
|
89535
|
+
return apiOverride;
|
|
89536
|
+
return isTruthyEnv(env4.UR_CODE_REMOTE) ? REMOTE_OLLAMA_REQUEST_TIMEOUT_MS : DEFAULT_STREAM_IDLE_TIMEOUT_MS;
|
|
89537
|
+
}
|
|
89426
89538
|
function isOllamaCloudModel2(model) {
|
|
89427
89539
|
return model?.trim().toLowerCase().endsWith(":cloud") ?? false;
|
|
89428
89540
|
}
|
|
@@ -89847,7 +89959,7 @@ async function* streamURHQEvents(response, params, controller, requestId, textTo
|
|
|
89847
89959
|
}
|
|
89848
89960
|
return events;
|
|
89849
89961
|
};
|
|
89850
|
-
for await (const chunk of readOllamaChunks(response, controller,
|
|
89962
|
+
for await (const chunk of readOllamaChunks(response, controller, getOllamaStreamIdleTimeoutMs(options, process.env, params.model), options)) {
|
|
89851
89963
|
if (chunk.error) {
|
|
89852
89964
|
throw new Error(chunk.error);
|
|
89853
89965
|
}
|
|
@@ -90372,6 +90484,7 @@ var init_ollama = __esm(() => {
|
|
|
90372
90484
|
init_debug();
|
|
90373
90485
|
init_providerClient();
|
|
90374
90486
|
init_toolSchema();
|
|
90487
|
+
init_streamIdleTimeout();
|
|
90375
90488
|
ollamaModelCapabilitiesCache = new Map;
|
|
90376
90489
|
warnedToolsUnsupportedModels = new Set;
|
|
90377
90490
|
TEXT_TOOL_CALL_HINT = [
|
|
@@ -90460,105 +90573,6 @@ function getStoredGeminiThoughtSignature(block) {
|
|
|
90460
90573
|
}
|
|
90461
90574
|
var GEMINI_THOUGHT_SIGNATURE = "gemini_thought_signature";
|
|
90462
90575
|
|
|
90463
|
-
// src/services/api/streamIdleTimeout.ts
|
|
90464
|
-
function resolveStreamIdleTimeoutMs(configured, env4 = process.env) {
|
|
90465
|
-
const candidates = [
|
|
90466
|
-
configured,
|
|
90467
|
-
Number.parseInt(env4.UR_STREAM_IDLE_TIMEOUT_MS ?? "", 10)
|
|
90468
|
-
];
|
|
90469
|
-
for (const candidate of candidates) {
|
|
90470
|
-
if (typeof candidate === "number" && Number.isFinite(candidate) && candidate > 0) {
|
|
90471
|
-
return Math.floor(candidate);
|
|
90472
|
-
}
|
|
90473
|
-
}
|
|
90474
|
-
return DEFAULT_STREAM_IDLE_TIMEOUT_MS;
|
|
90475
|
-
}
|
|
90476
|
-
function withStreamIdleTimeout(source, idleMs, onTimeout) {
|
|
90477
|
-
if (!Number.isFinite(idleMs) || idleMs <= 0) {
|
|
90478
|
-
return source;
|
|
90479
|
-
}
|
|
90480
|
-
const reader = source.getReader();
|
|
90481
|
-
let timer;
|
|
90482
|
-
let bytesReceived = 0;
|
|
90483
|
-
let settled = false;
|
|
90484
|
-
return new ReadableStream({
|
|
90485
|
-
start(controller) {
|
|
90486
|
-
const clear = () => {
|
|
90487
|
-
if (timer !== undefined) {
|
|
90488
|
-
clearTimeout(timer);
|
|
90489
|
-
timer = undefined;
|
|
90490
|
-
}
|
|
90491
|
-
};
|
|
90492
|
-
const fail = () => {
|
|
90493
|
-
if (settled)
|
|
90494
|
-
return;
|
|
90495
|
-
settled = true;
|
|
90496
|
-
const error40 = new StreamIdleTimeoutError(idleMs, bytesReceived);
|
|
90497
|
-
clear();
|
|
90498
|
-
reader.cancel(error40).catch(() => {});
|
|
90499
|
-
onTimeout?.(error40);
|
|
90500
|
-
controller.error(error40);
|
|
90501
|
-
};
|
|
90502
|
-
const arm = () => {
|
|
90503
|
-
clear();
|
|
90504
|
-
if (settled)
|
|
90505
|
-
return;
|
|
90506
|
-
timer = setTimeout(fail, idleMs);
|
|
90507
|
-
};
|
|
90508
|
-
const pump = async () => {
|
|
90509
|
-
arm();
|
|
90510
|
-
try {
|
|
90511
|
-
while (!settled) {
|
|
90512
|
-
const { done, value } = await reader.read();
|
|
90513
|
-
if (settled)
|
|
90514
|
-
return;
|
|
90515
|
-
if (done) {
|
|
90516
|
-
clear();
|
|
90517
|
-
settled = true;
|
|
90518
|
-
controller.close();
|
|
90519
|
-
return;
|
|
90520
|
-
}
|
|
90521
|
-
if (value !== undefined) {
|
|
90522
|
-
bytesReceived += value.byteLength ?? value.length ?? 0;
|
|
90523
|
-
controller.enqueue(value);
|
|
90524
|
-
}
|
|
90525
|
-
arm();
|
|
90526
|
-
}
|
|
90527
|
-
} catch (error40) {
|
|
90528
|
-
if (settled)
|
|
90529
|
-
return;
|
|
90530
|
-
settled = true;
|
|
90531
|
-
clear();
|
|
90532
|
-
controller.error(error40);
|
|
90533
|
-
}
|
|
90534
|
-
};
|
|
90535
|
-
pump();
|
|
90536
|
-
},
|
|
90537
|
-
cancel(reason) {
|
|
90538
|
-
settled = true;
|
|
90539
|
-
if (timer !== undefined) {
|
|
90540
|
-
clearTimeout(timer);
|
|
90541
|
-
timer = undefined;
|
|
90542
|
-
}
|
|
90543
|
-
return reader.cancel(reason);
|
|
90544
|
-
}
|
|
90545
|
-
});
|
|
90546
|
-
}
|
|
90547
|
-
var DEFAULT_STREAM_IDLE_TIMEOUT_MS = 300000, StreamIdleTimeoutError;
|
|
90548
|
-
var init_streamIdleTimeout = __esm(() => {
|
|
90549
|
-
StreamIdleTimeoutError = class StreamIdleTimeoutError extends Error {
|
|
90550
|
-
idleMs;
|
|
90551
|
-
bytesReceived;
|
|
90552
|
-
isStreamIdleTimeout = true;
|
|
90553
|
-
constructor(idleMs, bytesReceived) {
|
|
90554
|
-
super(bytesReceived === 0 ? `Provider accepted the request but sent no data for ${idleMs}ms.` : `Provider stopped sending data for ${idleMs}ms after ${bytesReceived} bytes.`);
|
|
90555
|
-
this.idleMs = idleMs;
|
|
90556
|
-
this.bytesReceived = bytesReceived;
|
|
90557
|
-
this.name = "StreamIdleTimeoutError";
|
|
90558
|
-
}
|
|
90559
|
-
};
|
|
90560
|
-
});
|
|
90561
|
-
|
|
90562
90576
|
// src/services/api/providerHttp.ts
|
|
90563
90577
|
function parsePositiveInteger(value) {
|
|
90564
90578
|
if (typeof value !== "string" && typeof value !== "number")
|
|
@@ -107588,7 +107602,7 @@ var init_auth = __esm(() => {
|
|
|
107588
107602
|
|
|
107589
107603
|
// src/utils/userAgent.ts
|
|
107590
107604
|
function getURCodeUserAgent() {
|
|
107591
|
-
return `ur/${"1.78.
|
|
107605
|
+
return `ur/${"1.78.10"}`;
|
|
107592
107606
|
}
|
|
107593
107607
|
|
|
107594
107608
|
// src/utils/workloadContext.ts
|
|
@@ -107610,7 +107624,7 @@ function getUserAgent() {
|
|
|
107610
107624
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
107611
107625
|
const workload = getWorkload();
|
|
107612
107626
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
107613
|
-
return `ur-cli/${"1.78.
|
|
107627
|
+
return `ur-cli/${"1.78.10"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
107614
107628
|
}
|
|
107615
107629
|
function getMCPUserAgent() {
|
|
107616
107630
|
const parts = [];
|
|
@@ -107624,7 +107638,7 @@ function getMCPUserAgent() {
|
|
|
107624
107638
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
107625
107639
|
}
|
|
107626
107640
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
107627
|
-
return `ur/${"1.78.
|
|
107641
|
+
return `ur/${"1.78.10"}${suffix}`;
|
|
107628
107642
|
}
|
|
107629
107643
|
function getWebFetchUserAgent() {
|
|
107630
107644
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -107762,7 +107776,7 @@ var init_user = __esm(() => {
|
|
|
107762
107776
|
deviceId,
|
|
107763
107777
|
sessionId: getSessionId(),
|
|
107764
107778
|
email: getEmail(),
|
|
107765
|
-
appVersion: "1.78.
|
|
107779
|
+
appVersion: "1.78.10",
|
|
107766
107780
|
platform: getHostPlatformForAnalytics(),
|
|
107767
107781
|
organizationUuid,
|
|
107768
107782
|
accountUuid,
|
|
@@ -115649,7 +115663,7 @@ var init_metadata = __esm(() => {
|
|
|
115649
115663
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
115650
115664
|
WHITESPACE_REGEX = /\s+/;
|
|
115651
115665
|
getVersionBase = memoize_default(() => {
|
|
115652
|
-
const match = "1.78.
|
|
115666
|
+
const match = "1.78.10".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
115653
115667
|
return match ? match[0] : undefined;
|
|
115654
115668
|
});
|
|
115655
115669
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -115689,7 +115703,7 @@ var init_metadata = __esm(() => {
|
|
|
115689
115703
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
115690
115704
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
115691
115705
|
isURAiAuth: isURAISubscriber(),
|
|
115692
|
-
version: "1.78.
|
|
115706
|
+
version: "1.78.10",
|
|
115693
115707
|
versionBase: getVersionBase(),
|
|
115694
115708
|
buildTime: "",
|
|
115695
115709
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -116359,7 +116373,7 @@ function initialize1PEventLogging() {
|
|
|
116359
116373
|
const platform2 = getPlatform();
|
|
116360
116374
|
const attributes = {
|
|
116361
116375
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
116362
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.78.
|
|
116376
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.78.10"
|
|
116363
116377
|
};
|
|
116364
116378
|
if (platform2 === "wsl") {
|
|
116365
116379
|
const wslVersion = getWslVersion();
|
|
@@ -116387,7 +116401,7 @@ function initialize1PEventLogging() {
|
|
|
116387
116401
|
})
|
|
116388
116402
|
]
|
|
116389
116403
|
});
|
|
116390
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.78.
|
|
116404
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.78.10");
|
|
116391
116405
|
}
|
|
116392
116406
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
116393
116407
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -126287,7 +126301,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
126287
126301
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
126288
126302
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
126289
126303
|
}
|
|
126290
|
-
var urVersion = "1.78.
|
|
126304
|
+
var urVersion = "1.78.10", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
|
|
126291
126305
|
var init_trends = __esm(() => {
|
|
126292
126306
|
init_a2aCardSignature();
|
|
126293
126307
|
coverage = [
|
|
@@ -129090,7 +129104,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
129090
129104
|
if (!isAttributionHeaderEnabled()) {
|
|
129091
129105
|
return "";
|
|
129092
129106
|
}
|
|
129093
|
-
const version2 = `${"1.78.
|
|
129107
|
+
const version2 = `${"1.78.10"}.${fingerprint}`;
|
|
129094
129108
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
129095
129109
|
const cch = "";
|
|
129096
129110
|
const workload = getWorkload();
|
|
@@ -157094,7 +157108,7 @@ var init_projectSafety = __esm(() => {
|
|
|
157094
157108
|
function getInstruments() {
|
|
157095
157109
|
if (instruments)
|
|
157096
157110
|
return instruments;
|
|
157097
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.78.
|
|
157111
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.78.10");
|
|
157098
157112
|
instruments = {
|
|
157099
157113
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
157100
157114
|
description: "GenAI operation duration.",
|
|
@@ -157192,7 +157206,7 @@ function genAiAgentAttributes() {
|
|
|
157192
157206
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
157193
157207
|
"gen_ai.provider.name": "ur",
|
|
157194
157208
|
"gen_ai.agent.name": "UR-Nexus",
|
|
157195
|
-
"gen_ai.agent.version": "1.78.
|
|
157209
|
+
"gen_ai.agent.version": "1.78.10"
|
|
157196
157210
|
};
|
|
157197
157211
|
}
|
|
157198
157212
|
function genAiWorkflowAttributes(workflowName) {
|
|
@@ -157208,7 +157222,7 @@ function genAiWorkflowAttributes(workflowName) {
|
|
|
157208
157222
|
function startGenAiWorkflowSpan(workflowName) {
|
|
157209
157223
|
const attributes = genAiWorkflowAttributes(workflowName);
|
|
157210
157224
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
157211
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.
|
|
157225
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.10").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
157212
157226
|
}
|
|
157213
157227
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
157214
157228
|
try {
|
|
@@ -157246,7 +157260,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
157246
157260
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
157247
157261
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
157248
157262
|
}
|
|
157249
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.
|
|
157263
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.78.10").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
157250
157264
|
}
|
|
157251
157265
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
157252
157266
|
try {
|
|
@@ -159627,42 +159641,59 @@ async function createTaskForRun(taskListId, generationId, taskData, options2 = {
|
|
|
159627
159641
|
await establishTaskListGenerationUnsafe(taskListId, generationId, options2);
|
|
159628
159642
|
const existingTasks = await listTasks(taskListId);
|
|
159629
159643
|
if (options2.replaceAutomaticPromptTask) {
|
|
159630
|
-
const automaticTask = existingTasks.find((
|
|
159644
|
+
const automaticTask = existingTasks.find((task) => task.metadata?.[AUTOMATIC_PROMPT_TASK_KEY] === true && task.metadata?.[AUTOMATIC_PROMPT_GENERATION_KEY] === generationId);
|
|
159631
159645
|
if (automaticTask) {
|
|
159632
|
-
const replacement = adoptForwardTaskDependencies(automaticTask.id, taskData, existingTasks.filter((
|
|
159646
|
+
const replacement = adoptForwardTaskDependencies(automaticTask.id, taskData, existingTasks.filter((task) => task.id !== automaticTask.id));
|
|
159633
159647
|
await writeTaskSnapshotUnsafe(taskListId, replacement);
|
|
159634
159648
|
return automaticTask.id;
|
|
159635
159649
|
}
|
|
159636
159650
|
}
|
|
159637
|
-
|
|
159638
|
-
if (highestId >= Number.MAX_SAFE_INTEGER) {
|
|
159639
|
-
throw new Error("Task ID space is exhausted");
|
|
159640
|
-
}
|
|
159641
|
-
const taskId = String(highestId + 1);
|
|
159642
|
-
const task = adoptForwardTaskDependencies(taskId, taskData, existingTasks);
|
|
159643
|
-
await writeTaskSnapshotUnsafe(taskListId, task);
|
|
159644
|
-
return taskId;
|
|
159651
|
+
return allocateTaskSnapshotUnsafe(taskListId, taskData, existingTasks);
|
|
159645
159652
|
});
|
|
159646
159653
|
notifyTasksUpdated();
|
|
159647
159654
|
return id;
|
|
159648
159655
|
}
|
|
159649
|
-
async function createAutomaticPromptTaskForRun(taskListId, generationId, prompt) {
|
|
159656
|
+
async function createAutomaticPromptTaskForRun(taskListId, generationId, prompt, options2 = {}) {
|
|
159650
159657
|
const compact = prompt.replace(/\s+/gu, " ").trim() || "Handle user request";
|
|
159651
159658
|
const subject = compact.length <= 80 ? compact : `${compact.slice(0, 77).trimEnd()}...`;
|
|
159652
159659
|
const description = prompt.length <= 2000 ? prompt : `${prompt.slice(0, 1997)}...`;
|
|
159653
|
-
|
|
159654
|
-
|
|
159655
|
-
|
|
159656
|
-
|
|
159657
|
-
|
|
159658
|
-
|
|
159659
|
-
|
|
159660
|
-
|
|
159661
|
-
|
|
159662
|
-
|
|
159663
|
-
|
|
159660
|
+
const taskId = await withTaskListLock(taskListId, async () => {
|
|
159661
|
+
await establishTaskListGenerationUnsafe(taskListId, generationId, {
|
|
159662
|
+
appendToCurrent: options2.reuseExistingBoard
|
|
159663
|
+
});
|
|
159664
|
+
const existingTasks = await listTasks(taskListId);
|
|
159665
|
+
const resumableAutomaticTask = existingTasks.findLast((task) => task.metadata?.[AUTOMATIC_PROMPT_TASK_KEY] === true && (task.status === "pending" || task.status === "in_progress" || options2.reuseExistingBoard === true));
|
|
159666
|
+
if (resumableAutomaticTask) {
|
|
159667
|
+
await writeTaskSnapshotUnsafe(taskListId, {
|
|
159668
|
+
...resumableAutomaticTask,
|
|
159669
|
+
status: "in_progress",
|
|
159670
|
+
metadata: {
|
|
159671
|
+
...resumableAutomaticTask.metadata,
|
|
159672
|
+
[AUTOMATIC_PROMPT_TASK_KEY]: true,
|
|
159673
|
+
[AUTOMATIC_PROMPT_GENERATION_KEY]: generationId
|
|
159674
|
+
}
|
|
159675
|
+
});
|
|
159676
|
+
return resumableAutomaticTask.id;
|
|
159664
159677
|
}
|
|
159665
|
-
|
|
159678
|
+
if (hasUnfinishedWork(existingTasks) || options2.reuseExistingBoard === true && existingTasks.length > 0) {
|
|
159679
|
+
return;
|
|
159680
|
+
}
|
|
159681
|
+
return allocateTaskSnapshotUnsafe(taskListId, {
|
|
159682
|
+
subject,
|
|
159683
|
+
description,
|
|
159684
|
+
activeForm: "Working on user request",
|
|
159685
|
+
status: "in_progress",
|
|
159686
|
+
owner: undefined,
|
|
159687
|
+
blocks: [],
|
|
159688
|
+
blockedBy: [],
|
|
159689
|
+
metadata: {
|
|
159690
|
+
[AUTOMATIC_PROMPT_TASK_KEY]: true,
|
|
159691
|
+
[AUTOMATIC_PROMPT_GENERATION_KEY]: generationId
|
|
159692
|
+
}
|
|
159693
|
+
}, existingTasks);
|
|
159694
|
+
});
|
|
159695
|
+
notifyTasksUpdated();
|
|
159696
|
+
return taskId;
|
|
159666
159697
|
}
|
|
159667
159698
|
async function finalizeAutomaticPromptTask(taskListId, taskId, generationId, status) {
|
|
159668
159699
|
const task = await getTask(taskListId, taskId);
|
|
@@ -159683,6 +159714,16 @@ function adoptForwardTaskDependencies(id, taskData, existingTasks) {
|
|
|
159683
159714
|
]
|
|
159684
159715
|
};
|
|
159685
159716
|
}
|
|
159717
|
+
async function allocateTaskSnapshotUnsafe(taskListId, taskData, existingTasks) {
|
|
159718
|
+
const highestId = await findHighestTaskId(taskListId);
|
|
159719
|
+
if (highestId >= Number.MAX_SAFE_INTEGER) {
|
|
159720
|
+
throw new Error("Task ID space is exhausted");
|
|
159721
|
+
}
|
|
159722
|
+
const taskId = String(highestId + 1);
|
|
159723
|
+
const task = adoptForwardTaskDependencies(taskId, taskData, existingTasks);
|
|
159724
|
+
await writeTaskSnapshotUnsafe(taskListId, task);
|
|
159725
|
+
return taskId;
|
|
159726
|
+
}
|
|
159686
159727
|
async function getTask(taskListId, taskId) {
|
|
159687
159728
|
const path10 = getTaskPath(taskListId, taskId);
|
|
159688
159729
|
try {
|
|
@@ -250949,7 +250990,7 @@ function getTelemetryAttributes() {
|
|
|
250949
250990
|
attributes["session.id"] = sessionId;
|
|
250950
250991
|
}
|
|
250951
250992
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
250952
|
-
attributes["app.version"] = "1.78.
|
|
250993
|
+
attributes["app.version"] = "1.78.10";
|
|
250953
250994
|
}
|
|
250954
250995
|
const oauthAccount = getOauthAccountInfo();
|
|
250955
250996
|
if (oauthAccount) {
|
|
@@ -297456,7 +297497,7 @@ function getInstallationEnv() {
|
|
|
297456
297497
|
return;
|
|
297457
297498
|
}
|
|
297458
297499
|
function getURCodeVersion() {
|
|
297459
|
-
return "1.78.
|
|
297500
|
+
return "1.78.10";
|
|
297460
297501
|
}
|
|
297461
297502
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
297462
297503
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -304787,7 +304828,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
304787
304828
|
const client2 = new Client({
|
|
304788
304829
|
name: "ur",
|
|
304789
304830
|
title: "UR",
|
|
304790
|
-
version: "1.78.
|
|
304831
|
+
version: "1.78.10",
|
|
304791
304832
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
304792
304833
|
websiteUrl: PRODUCT_URL
|
|
304793
304834
|
}, {
|
|
@@ -305147,7 +305188,7 @@ var init_client5 = __esm(() => {
|
|
|
305147
305188
|
const client2 = new Client({
|
|
305148
305189
|
name: "ur",
|
|
305149
305190
|
title: "UR",
|
|
305150
|
-
version: "1.78.
|
|
305191
|
+
version: "1.78.10",
|
|
305151
305192
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
305152
305193
|
websiteUrl: PRODUCT_URL
|
|
305153
305194
|
}, {
|
|
@@ -317868,7 +317909,7 @@ async function createRuntime() {
|
|
|
317868
317909
|
bootstrapTelemetry();
|
|
317869
317910
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
317870
317911
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
317871
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.78.
|
|
317912
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.78.10"
|
|
317872
317913
|
}));
|
|
317873
317914
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
317874
317915
|
resource,
|
|
@@ -317901,11 +317942,11 @@ async function createRuntime() {
|
|
|
317901
317942
|
setMeterProvider(meterProvider);
|
|
317902
317943
|
setLoggerProvider(loggerProvider);
|
|
317903
317944
|
if (meterProvider) {
|
|
317904
|
-
const meter = meterProvider.getMeter("ur-agent", "1.78.
|
|
317945
|
+
const meter = meterProvider.getMeter("ur-agent", "1.78.10");
|
|
317905
317946
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
317906
317947
|
}
|
|
317907
317948
|
if (loggerProvider) {
|
|
317908
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.78.
|
|
317949
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.78.10"));
|
|
317909
317950
|
}
|
|
317910
317951
|
if (!cleanupRegistered2) {
|
|
317911
317952
|
cleanupRegistered2 = true;
|
|
@@ -318567,9 +318608,9 @@ async function assertMinVersion() {
|
|
|
318567
318608
|
if (false) {}
|
|
318568
318609
|
try {
|
|
318569
318610
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
318570
|
-
if (versionConfig.minVersion && lt("1.78.
|
|
318611
|
+
if (versionConfig.minVersion && lt("1.78.10", versionConfig.minVersion)) {
|
|
318571
318612
|
console.error(`
|
|
318572
|
-
It looks like your version of UR (${"1.78.
|
|
318613
|
+
It looks like your version of UR (${"1.78.10"}) needs an update.
|
|
318573
318614
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
318574
318615
|
|
|
318575
318616
|
To update, please run:
|
|
@@ -318785,7 +318826,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
318785
318826
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
318786
318827
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
318787
318828
|
pid: process.pid,
|
|
318788
|
-
currentVersion: "1.78.
|
|
318829
|
+
currentVersion: "1.78.10"
|
|
318789
318830
|
});
|
|
318790
318831
|
return "in_progress";
|
|
318791
318832
|
}
|
|
@@ -318794,7 +318835,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
318794
318835
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
318795
318836
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
318796
318837
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
318797
|
-
currentVersion: "1.78.
|
|
318838
|
+
currentVersion: "1.78.10"
|
|
318798
318839
|
});
|
|
318799
318840
|
console.error(`
|
|
318800
318841
|
Error: Windows NPM detected in WSL
|
|
@@ -319329,7 +319370,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
319329
319370
|
}
|
|
319330
319371
|
async function getDoctorDiagnostic() {
|
|
319331
319372
|
const installationType = await getCurrentInstallationType();
|
|
319332
|
-
const version2 = typeof MACRO !== "undefined" ? "1.78.
|
|
319373
|
+
const version2 = typeof MACRO !== "undefined" ? "1.78.10" : "unknown";
|
|
319333
319374
|
const installationPath = await getInstallationPath();
|
|
319334
319375
|
const invokedBinary = getInvokedBinary();
|
|
319335
319376
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -320264,8 +320305,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
320264
320305
|
const maxVersion = await getMaxVersion();
|
|
320265
320306
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
320266
320307
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
320267
|
-
if (gte("1.78.
|
|
320268
|
-
logForDebugging(`Native installer: current version ${"1.78.
|
|
320308
|
+
if (gte("1.78.10", maxVersion)) {
|
|
320309
|
+
logForDebugging(`Native installer: current version ${"1.78.10"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
320269
320310
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
320270
320311
|
latency_ms: Date.now() - startTime,
|
|
320271
320312
|
max_version: maxVersion,
|
|
@@ -320276,7 +320317,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
320276
320317
|
version2 = maxVersion;
|
|
320277
320318
|
}
|
|
320278
320319
|
}
|
|
320279
|
-
if (!forceReinstall && version2 === "1.78.
|
|
320320
|
+
if (!forceReinstall && version2 === "1.78.10" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
320280
320321
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
320281
320322
|
logEvent("tengu_native_update_complete", {
|
|
320282
320323
|
latency_ms: Date.now() - startTime,
|
|
@@ -322976,6 +323017,21 @@ var init_ink3 = __esm(() => {
|
|
|
322976
323017
|
init_agentColorManager();
|
|
322977
323018
|
});
|
|
322978
323019
|
|
|
323020
|
+
// src/components/Spinner/taskLabel.ts
|
|
323021
|
+
function currentSpinnerTaskLabel(tasks) {
|
|
323022
|
+
const task = tasks?.find((candidate) => candidate.status === "in_progress");
|
|
323023
|
+
const label = (task?.activeForm || task?.subject || "").replace(/\s+/g, " ").trim();
|
|
323024
|
+
return label || null;
|
|
323025
|
+
}
|
|
323026
|
+
function fitSpinnerTaskLabel(label, maxWidth) {
|
|
323027
|
+
if (!label || maxWidth < 8)
|
|
323028
|
+
return null;
|
|
323029
|
+
return truncateToWidth(label, Math.min(48, maxWidth));
|
|
323030
|
+
}
|
|
323031
|
+
var init_taskLabel = __esm(() => {
|
|
323032
|
+
init_truncate();
|
|
323033
|
+
});
|
|
323034
|
+
|
|
322979
323035
|
// src/components/Spinner/SpinnerAnimationRow.tsx
|
|
322980
323036
|
function spinnerActivityStatus(mode) {
|
|
322981
323037
|
switch (String(mode)) {
|
|
@@ -322999,6 +323055,7 @@ function SpinnerAnimationRow({
|
|
|
322999
323055
|
hasActiveTools,
|
|
323000
323056
|
responseLengthRef,
|
|
323001
323057
|
message,
|
|
323058
|
+
taskLabel,
|
|
323002
323059
|
messageColor,
|
|
323003
323060
|
shimmerColor,
|
|
323004
323061
|
overrideColor,
|
|
@@ -323046,9 +323103,12 @@ function SpinnerAnimationRow({
|
|
|
323046
323103
|
let thinkingWidthValue = thinkingText ? stringWidth(thinkingText) : 0;
|
|
323047
323104
|
const messageWidth = glimmerMessageWidth + 2;
|
|
323048
323105
|
const sep13 = SEP_WIDTH;
|
|
323106
|
+
const taskWidthBudget = columns - messageWidth - thinkingWidthValue - 9;
|
|
323107
|
+
const visibleTaskLabel = fitSpinnerTaskLabel(taskLabel, taskWidthBudget);
|
|
323108
|
+
const taskSegmentWidth = visibleTaskLabel ? sep13 + stringWidth(visibleTaskLabel) : 0;
|
|
323049
323109
|
const wantsThinking = true;
|
|
323050
323110
|
const wantsTimerAndTokens = verbose || hasRunningTeammates || effectiveElapsedMs > SHOW_TOKENS_AFTER_MS;
|
|
323051
|
-
const availableSpace = columns - messageWidth - 5;
|
|
323111
|
+
const availableSpace = columns - messageWidth - taskSegmentWidth - 5;
|
|
323052
323112
|
let showThinking = wantsThinking;
|
|
323053
323113
|
if (!showThinking && wantsThinking && thinkingStatus === "thinking" && effortSuffix) {
|
|
323054
323114
|
if (availableSpace > THINKING_BARE_WIDTH) {
|
|
@@ -323090,7 +323150,7 @@ function SpinnerAnimationRow({
|
|
|
323090
323150
|
children: thinkingOnly ? `(${thinkingText})` : thinkingText
|
|
323091
323151
|
}, "thinking", false, undefined, this) : /* @__PURE__ */ jsx_dev_runtime69.jsxDEV(ThemedText, {
|
|
323092
323152
|
dimColor: true,
|
|
323093
|
-
children: thinkingText
|
|
323153
|
+
children: thinkingOnly ? `(${thinkingText})` : thinkingText
|
|
323094
323154
|
}, "thinking", false, undefined, this)] : []];
|
|
323095
323155
|
const status = foregroundedTeammate && !foregroundedTeammate.isIdle ? /* @__PURE__ */ jsx_dev_runtime69.jsxDEV(jsx_dev_runtime69.Fragment, {
|
|
323096
323156
|
children: [
|
|
@@ -323147,6 +323207,10 @@ function SpinnerAnimationRow({
|
|
|
323147
323207
|
shimmerColor,
|
|
323148
323208
|
stalledIntensity: overrideColor ? 0 : stalledIntensity
|
|
323149
323209
|
}, undefined, false, undefined, this),
|
|
323210
|
+
visibleTaskLabel && /* @__PURE__ */ jsx_dev_runtime69.jsxDEV(ThemedText, {
|
|
323211
|
+
dimColor: true,
|
|
323212
|
+
children: `\xB7 ${visibleTaskLabel} `
|
|
323213
|
+
}, undefined, false, undefined, this),
|
|
323150
323214
|
status
|
|
323151
323215
|
]
|
|
323152
323216
|
}, undefined, true, undefined, this);
|
|
@@ -323202,6 +323266,7 @@ var init_SpinnerAnimationRow = __esm(() => {
|
|
|
323202
323266
|
init_format2();
|
|
323203
323267
|
init_ink3();
|
|
323204
323268
|
init_Byline();
|
|
323269
|
+
init_taskLabel();
|
|
323205
323270
|
init_GlimmerMessage();
|
|
323206
323271
|
init_SpinnerGlyph();
|
|
323207
323272
|
init_useStalledAnimation();
|
|
@@ -329027,10 +329092,10 @@ function SpinnerWithVerbInner({
|
|
|
329027
329092
|
clearTimeout(clearStatusTimer);
|
|
329028
329093
|
};
|
|
329029
329094
|
}, [mode]);
|
|
329030
|
-
const
|
|
329095
|
+
const currentTaskLabel = currentSpinnerTaskLabel(tasksV2);
|
|
329031
329096
|
const nextTask = findNextPendingTask(tasksV2);
|
|
329032
329097
|
const [randomVerb] = import_react59.useState(() => sample_default(getSpinnerVerbs()));
|
|
329033
|
-
const leaderVerb = overrideMessage ??
|
|
329098
|
+
const leaderVerb = overrideMessage ?? randomVerb;
|
|
329034
329099
|
const effectiveVerb = foregroundedTeammate && !foregroundedTeammate.isIdle ? foregroundedTeammate.spinnerVerb ?? randomVerb : leaderVerb;
|
|
329035
329100
|
const message = effectiveVerb + "\u2026";
|
|
329036
329101
|
import_react59.useEffect(() => {
|
|
@@ -329139,6 +329204,7 @@ function SpinnerWithVerbInner({
|
|
|
329139
329204
|
hasActiveTools,
|
|
329140
329205
|
responseLengthRef,
|
|
329141
329206
|
message,
|
|
329207
|
+
taskLabel: !foregroundedTeammate ? currentTaskLabel : null,
|
|
329142
329208
|
messageColor,
|
|
329143
329209
|
shimmerColor,
|
|
329144
329210
|
overrideColor,
|
|
@@ -329354,6 +329420,7 @@ var init_Spinner2 = __esm(() => {
|
|
|
329354
329420
|
init_stringWidth();
|
|
329355
329421
|
init_Spinner();
|
|
329356
329422
|
init_SpinnerAnimationRow();
|
|
329423
|
+
init_taskLabel();
|
|
329357
329424
|
init_useSettings();
|
|
329358
329425
|
init_InProcessTeammateTask();
|
|
329359
329426
|
init_effort();
|
|
@@ -379812,8 +379879,14 @@ function requestsContinueCurrentTaskList(input) {
|
|
|
379812
379879
|
return false;
|
|
379813
379880
|
return /^(?:ok(?:ay)?|yes|yep|yup|sure|approved|i approve|looks good|sounds good)$/u.test(normalized) || /^(?:please\s+)?(?:continue|proceed|go ahead|carry on|do it|start(?: now)?|begin implementation|start implementation)$/u.test(normalized) || /^(?:ok(?:ay)?|yes|sure|approved|i approve)[, ]+(?:please\s+)?(?:continue|proceed|go ahead|carry on|do it|start(?: now)?|begin implementation|start implementation)$/u.test(normalized);
|
|
379814
379881
|
}
|
|
379882
|
+
function requestsRevisionOfCurrentTaskList(input) {
|
|
379883
|
+
const normalized = input.replace(/\s+/gu, " ").trim().toLowerCase();
|
|
379884
|
+
if (!normalized || normalized.length > 500)
|
|
379885
|
+
return false;
|
|
379886
|
+
return /^(?:also|and|but|actually|instead|still|again)\b/u.test(normalized) || /\b(?:why did (?:you|u)|i (?:said|asked|meant)|you (?:removed|deleted|changed|forgot|missed))\b/u.test(normalized) || /^(?:please\s+)?(?:fix|change|update|restore|keep|remove|add)\s+(?:it|that|this)\b/u.test(normalized) || /^(?:please\s+)?(?:do not|don't)\s+(?:remove|delete|change|replace|forget)\b/u.test(normalized);
|
|
379887
|
+
}
|
|
379815
379888
|
function shouldKeepCurrentTaskList(input) {
|
|
379816
|
-
return requestsAppendToCurrentTaskList(input) || requestsContinueCurrentTaskList(input);
|
|
379889
|
+
return requestsAppendToCurrentTaskList(input) || requestsContinueCurrentTaskList(input) || requestsRevisionOfCurrentTaskList(input);
|
|
379817
379890
|
}
|
|
379818
379891
|
function getTaskListRunForCommand(command, options2 = {}) {
|
|
379819
379892
|
if (!command || command.mode !== "prompt" || command.isMeta)
|
|
@@ -390082,7 +390155,7 @@ function isAnyTracingEnabled() {
|
|
|
390082
390155
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
390083
390156
|
}
|
|
390084
390157
|
function getTracer() {
|
|
390085
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.78.
|
|
390158
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.78.10");
|
|
390086
390159
|
}
|
|
390087
390160
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
390088
390161
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -420371,7 +420444,7 @@ function Feedback({
|
|
|
420371
420444
|
platform: env2.platform,
|
|
420372
420445
|
gitRepo: envInfo.isGit,
|
|
420373
420446
|
terminal: env2.terminal,
|
|
420374
|
-
version: "1.78.
|
|
420447
|
+
version: "1.78.10",
|
|
420375
420448
|
transcript: normalizeMessagesForAPI(messages),
|
|
420376
420449
|
errors: sanitizedErrors,
|
|
420377
420450
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -420563,7 +420636,7 @@ function Feedback({
|
|
|
420563
420636
|
", ",
|
|
420564
420637
|
env2.terminal,
|
|
420565
420638
|
", v",
|
|
420566
|
-
"1.78.
|
|
420639
|
+
"1.78.10"
|
|
420567
420640
|
]
|
|
420568
420641
|
}, undefined, true, undefined, this)
|
|
420569
420642
|
]
|
|
@@ -420669,7 +420742,7 @@ ${sanitizedDescription}
|
|
|
420669
420742
|
` + `**Environment Info**
|
|
420670
420743
|
` + `- Platform: ${env2.platform}
|
|
420671
420744
|
` + `- Terminal: ${env2.terminal}
|
|
420672
|
-
` + `- Version: ${"1.78.
|
|
420745
|
+
` + `- Version: ${"1.78.10"}
|
|
420673
420746
|
` + `- Feedback ID: ${feedbackId}
|
|
420674
420747
|
` + `
|
|
420675
420748
|
**Errors**
|
|
@@ -423779,7 +423852,7 @@ function buildPrimarySection() {
|
|
|
423779
423852
|
}, undefined, false, undefined, this);
|
|
423780
423853
|
return [{
|
|
423781
423854
|
label: "Version",
|
|
423782
|
-
value: "1.78.
|
|
423855
|
+
value: "1.78.10"
|
|
423783
423856
|
}, {
|
|
423784
423857
|
label: "Session name",
|
|
423785
423858
|
value: nameValue
|
|
@@ -427161,7 +427234,7 @@ function Config({
|
|
|
427161
427234
|
}
|
|
427162
427235
|
}, undefined, false, undefined, this)
|
|
427163
427236
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
427164
|
-
currentVersion: "1.78.
|
|
427237
|
+
currentVersion: "1.78.10",
|
|
427165
427238
|
onChoice: (choice) => {
|
|
427166
427239
|
setShowSubmenu(null);
|
|
427167
427240
|
setTabsHidden(false);
|
|
@@ -427173,7 +427246,7 @@ function Config({
|
|
|
427173
427246
|
autoUpdatesChannel: "stable"
|
|
427174
427247
|
};
|
|
427175
427248
|
if (choice === "stay") {
|
|
427176
|
-
newSettings.minimumVersion = "1.78.
|
|
427249
|
+
newSettings.minimumVersion = "1.78.10";
|
|
427177
427250
|
}
|
|
427178
427251
|
updateSettingsForSource("userSettings", newSettings);
|
|
427179
427252
|
setSettingsData((prev_27) => ({
|
|
@@ -435237,7 +435310,7 @@ function HelpV2(t0) {
|
|
|
435237
435310
|
let t6;
|
|
435238
435311
|
if ($2[31] !== tabs) {
|
|
435239
435312
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
435240
|
-
title: `UR v${"1.78.
|
|
435313
|
+
title: `UR v${"1.78.10"}`,
|
|
435241
435314
|
color: "professionalBlue",
|
|
435242
435315
|
defaultTab: "general",
|
|
435243
435316
|
children: tabs
|
|
@@ -436170,7 +436243,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
436170
436243
|
async function handleInitialize(options2) {
|
|
436171
436244
|
return {
|
|
436172
436245
|
name: "UR",
|
|
436173
|
-
version: "1.78.
|
|
436246
|
+
version: "1.78.10",
|
|
436174
436247
|
protocolVersion: "0.1.0",
|
|
436175
436248
|
workspaceRoot: options2.cwd,
|
|
436176
436249
|
capabilities: {
|
|
@@ -453278,7 +453351,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
453278
453351
|
return [];
|
|
453279
453352
|
}
|
|
453280
453353
|
}
|
|
453281
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.
|
|
453354
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.10") {
|
|
453282
453355
|
if (process.env.USER_TYPE === "ant") {
|
|
453283
453356
|
const changelog = "";
|
|
453284
453357
|
if (changelog) {
|
|
@@ -453305,7 +453378,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.78.9")
|
|
|
453305
453378
|
releaseNotes
|
|
453306
453379
|
};
|
|
453307
453380
|
}
|
|
453308
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.78.
|
|
453381
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.78.10") {
|
|
453309
453382
|
if (process.env.USER_TYPE === "ant") {
|
|
453310
453383
|
const changelog = "";
|
|
453311
453384
|
if (changelog) {
|
|
@@ -455900,6 +455973,45 @@ var init_groupToolUses = __esm(() => {
|
|
|
455900
455973
|
GROUPING_CACHE = new WeakMap;
|
|
455901
455974
|
});
|
|
455902
455975
|
|
|
455976
|
+
// src/utils/messagePresentation.ts
|
|
455977
|
+
function sourceMessageKey(message) {
|
|
455978
|
+
const id = message.message?.id;
|
|
455979
|
+
if (id)
|
|
455980
|
+
return `id:${id}`;
|
|
455981
|
+
if (message.uuid)
|
|
455982
|
+
return `uuid:${message.uuid.slice(0, 24)}`;
|
|
455983
|
+
return null;
|
|
455984
|
+
}
|
|
455985
|
+
function isToolExecutionBlock(block2) {
|
|
455986
|
+
return block2?.type === "tool_use" || block2?.type?.endsWith("_tool_use") === true;
|
|
455987
|
+
}
|
|
455988
|
+
function dropIntermediateToolNarration(messages) {
|
|
455989
|
+
const sourcesWithToolExecution = new Set;
|
|
455990
|
+
for (const message of messages) {
|
|
455991
|
+
if (message.type !== "assistant")
|
|
455992
|
+
continue;
|
|
455993
|
+
if (!message.message?.content?.some(isToolExecutionBlock))
|
|
455994
|
+
continue;
|
|
455995
|
+
const key = sourceMessageKey(message);
|
|
455996
|
+
if (key)
|
|
455997
|
+
sourcesWithToolExecution.add(key);
|
|
455998
|
+
}
|
|
455999
|
+
if (sourcesWithToolExecution.size === 0)
|
|
456000
|
+
return [...messages];
|
|
456001
|
+
return messages.filter((message) => {
|
|
456002
|
+
if (message.type !== "assistant" || message.isApiErrorMessage)
|
|
456003
|
+
return true;
|
|
456004
|
+
if (message.message?.content?.length !== 1 || message.message.content[0]?.type !== "text") {
|
|
456005
|
+
return true;
|
|
456006
|
+
}
|
|
456007
|
+
const key = sourceMessageKey(message);
|
|
456008
|
+
return key === null || !sourcesWithToolExecution.has(key);
|
|
456009
|
+
});
|
|
456010
|
+
}
|
|
456011
|
+
function shouldShowLiveAssistantDraft(isTranscriptMode, verbose) {
|
|
456012
|
+
return isTranscriptMode || verbose;
|
|
456013
|
+
}
|
|
456014
|
+
|
|
455903
456015
|
// src/utils/transcriptSearch.ts
|
|
455904
456016
|
function memoryContentSearchText(memories) {
|
|
455905
456017
|
if (!Array.isArray(memories)) {
|
|
@@ -456171,7 +456283,7 @@ function getRecentActivitySync() {
|
|
|
456171
456283
|
return cachedActivity;
|
|
456172
456284
|
}
|
|
456173
456285
|
function getLogoDisplayData() {
|
|
456174
|
-
const version2 = process.env.DEMO_VERSION ?? "1.78.
|
|
456286
|
+
const version2 = process.env.DEMO_VERSION ?? "1.78.10";
|
|
456175
456287
|
const serverUrl = getDirectConnectServerUrl();
|
|
456176
456288
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
456177
456289
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -457038,7 +457150,7 @@ function LogoV2() {
|
|
|
457038
457150
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
457039
457151
|
t2 = () => {
|
|
457040
457152
|
const currentConfig2 = getGlobalConfig();
|
|
457041
|
-
if (currentConfig2.lastReleaseNotesSeen === "1.78.
|
|
457153
|
+
if (currentConfig2.lastReleaseNotesSeen === "1.78.10") {
|
|
457042
457154
|
return;
|
|
457043
457155
|
}
|
|
457044
457156
|
saveGlobalConfig(_temp325);
|
|
@@ -457723,12 +457835,12 @@ function LogoV2() {
|
|
|
457723
457835
|
return t41;
|
|
457724
457836
|
}
|
|
457725
457837
|
function _temp325(current) {
|
|
457726
|
-
if (current.lastReleaseNotesSeen === "1.78.
|
|
457838
|
+
if (current.lastReleaseNotesSeen === "1.78.10") {
|
|
457727
457839
|
return current;
|
|
457728
457840
|
}
|
|
457729
457841
|
return {
|
|
457730
457842
|
...current,
|
|
457731
|
-
lastReleaseNotesSeen: "1.78.
|
|
457843
|
+
lastReleaseNotesSeen: "1.78.10"
|
|
457732
457844
|
};
|
|
457733
457845
|
}
|
|
457734
457846
|
function _temp241(s_0) {
|
|
@@ -460659,7 +460771,8 @@ var import_compiler_runtime187, React76, import_react150, jsx_dev_runtime251, Lo
|
|
|
460659
460771
|
const compactAwareMessages = verbose || isFullscreenEnvEnabled() ? normalizedMessages : getMessagesAfterCompactBoundary(normalizedMessages, {
|
|
460660
460772
|
includeSnipped: true
|
|
460661
460773
|
});
|
|
460662
|
-
const
|
|
460774
|
+
const presentationMessages = !isTranscriptMode && !verbose && !disableRenderCap ? dropIntermediateToolNarration(compactAwareMessages) : compactAwareMessages;
|
|
460775
|
+
const messagesToShowNotTruncated = reorderMessagesInUI(presentationMessages.filter((msg_2) => msg_2.type !== "progress").filter((msg_3) => !isNullRenderingAttachment(msg_3)).filter((_) => shouldShowUserMessage(_, isTranscriptMode)), syntheticStreamingToolUseMessages);
|
|
460663
460776
|
const briefToolNames = [BRIEF_TOOL_NAME4, SEND_USER_FILE_TOOL_NAME2].filter((n2) => n2 !== null);
|
|
460664
460777
|
const dropTextToolNames = [BRIEF_TOOL_NAME4].filter((n_0) => n_0 !== null);
|
|
460665
460778
|
const briefFiltered = briefToolNames.length > 0 && !isTranscriptMode ? isBriefOnly ? filterForBriefTool(messagesToShowNotTruncated, briefToolNames) : dropTextToolNames.length > 0 ? dropTextInBriefTurns(messagesToShowNotTruncated, dropTextToolNames) : messagesToShowNotTruncated : messagesToShowNotTruncated;
|
|
@@ -460677,7 +460790,7 @@ var import_compiler_runtime187, React76, import_react150, jsx_dev_runtime251, Lo
|
|
|
460677
460790
|
hasTruncatedMessages,
|
|
460678
460791
|
hiddenMessageCount
|
|
460679
460792
|
};
|
|
460680
|
-
}, [verbose, normalizedMessages, isTranscriptMode, syntheticStreamingToolUseMessages, shouldTruncate, tools, isBriefOnly]);
|
|
460793
|
+
}, [verbose, normalizedMessages, isTranscriptMode, syntheticStreamingToolUseMessages, shouldTruncate, tools, isBriefOnly, disableRenderCap]);
|
|
460681
460794
|
const renderableMessages = import_react150.useMemo(() => {
|
|
460682
460795
|
const capApplies = !virtualScrollRuntimeGate && !disableRenderCap;
|
|
460683
460796
|
const sliceStart = capApplies ? computeSliceStart(collapsed_0, sliceAnchorRef) : 0;
|
|
@@ -460838,9 +460951,9 @@ var import_compiler_runtime187, React76, import_react150, jsx_dev_runtime251, Lo
|
|
|
460838
460951
|
extractSearchText
|
|
460839
460952
|
}, undefined, false, undefined, this)
|
|
460840
460953
|
}, undefined, false, undefined, this) : renderableMessages.flatMap(renderMessageRow),
|
|
460841
|
-
streamingText && !isBriefOnly && /* @__PURE__ */ jsx_dev_runtime251.jsxDEV(StreamingAssistantTextMessage, {
|
|
460954
|
+
streamingText && !isBriefOnly && shouldShowLiveAssistantDraft(isTranscriptMode, verbose) && /* @__PURE__ */ jsx_dev_runtime251.jsxDEV(StreamingAssistantTextMessage, {
|
|
460842
460955
|
text: streamingText,
|
|
460843
|
-
showFull:
|
|
460956
|
+
showFull: true
|
|
460844
460957
|
}, undefined, false, undefined, this),
|
|
460845
460958
|
isStreamingThinkingVisible && streamingThinking && !isBriefOnly && /* @__PURE__ */ jsx_dev_runtime251.jsxDEV(ThemedBox_default, {
|
|
460846
460959
|
marginTop: 1,
|
|
@@ -474564,7 +474677,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
474564
474677
|
if (spec.name !== specName) {
|
|
474565
474678
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
474566
474679
|
}
|
|
474567
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.78.
|
|
474680
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.78.10" : "1.78.10");
|
|
474568
474681
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
474569
474682
|
throw new Error("invalid ur-agent package version");
|
|
474570
474683
|
}
|
|
@@ -475557,7 +475670,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
475557
475670
|
path: ".github/workflows/ur.yml",
|
|
475558
475671
|
root: "project",
|
|
475559
475672
|
content: compileAgenticCiWorkflow("default", {
|
|
475560
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.78.
|
|
475673
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.78.10" : "1.78.10"
|
|
475561
475674
|
})
|
|
475562
475675
|
},
|
|
475563
475676
|
{
|
|
@@ -475620,7 +475733,7 @@ function value(tokens, flag) {
|
|
|
475620
475733
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
475621
475734
|
}
|
|
475622
475735
|
function cliVersion() {
|
|
475623
|
-
return typeof MACRO !== "undefined" ? "1.78.
|
|
475736
|
+
return typeof MACRO !== "undefined" ? "1.78.10" : "1.78.10";
|
|
475624
475737
|
}
|
|
475625
475738
|
function workflowPath(cwd2) {
|
|
475626
475739
|
return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -481476,7 +481589,7 @@ function createAcpStdioApp(deps) {
|
|
|
481476
481589
|
}
|
|
481477
481590
|
},
|
|
481478
481591
|
authMethods: [],
|
|
481479
|
-
agentInfo: { name: "UR-Nexus", version: "1.78.
|
|
481592
|
+
agentInfo: { name: "UR-Nexus", version: "1.78.10" }
|
|
481480
481593
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
481481
481594
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
481482
481595
|
await runtime2.announce({
|
|
@@ -481573,7 +481686,7 @@ function createAcpStdioAgent(deps) {
|
|
|
481573
481686
|
}
|
|
481574
481687
|
},
|
|
481575
481688
|
authMethods: [],
|
|
481576
|
-
agentInfo: { name: "UR-Nexus", version: "1.78.
|
|
481689
|
+
agentInfo: { name: "UR-Nexus", version: "1.78.10" }
|
|
481577
481690
|
});
|
|
481578
481691
|
return;
|
|
481579
481692
|
case "authenticate":
|
|
@@ -691195,7 +691308,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
691195
691308
|
smapsRollup,
|
|
691196
691309
|
platform: process.platform,
|
|
691197
691310
|
nodeVersion: process.version,
|
|
691198
|
-
ccVersion: "1.78.
|
|
691311
|
+
ccVersion: "1.78.10"
|
|
691199
691312
|
};
|
|
691200
691313
|
}
|
|
691201
691314
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -691775,7 +691888,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
691775
691888
|
var call154 = async () => {
|
|
691776
691889
|
return {
|
|
691777
691890
|
type: "text",
|
|
691778
|
-
value: "1.78.
|
|
691891
|
+
value: "1.78.10"
|
|
691779
691892
|
};
|
|
691780
691893
|
}, version2, version_default;
|
|
691781
691894
|
var init_version = __esm(() => {
|
|
@@ -703042,7 +703155,7 @@ function generateHtmlReport(data, insights) {
|
|
|
703042
703155
|
</html>`;
|
|
703043
703156
|
}
|
|
703044
703157
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
703045
|
-
const version3 = typeof MACRO !== "undefined" ? "1.78.
|
|
703158
|
+
const version3 = typeof MACRO !== "undefined" ? "1.78.10" : "unknown";
|
|
703046
703159
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
703047
703160
|
const facets_summary = {
|
|
703048
703161
|
total: facets.size,
|
|
@@ -707356,7 +707469,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
707356
707469
|
init_settings2();
|
|
707357
707470
|
init_slowOperations();
|
|
707358
707471
|
init_uuid();
|
|
707359
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.78.
|
|
707472
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.78.10" : "unknown";
|
|
707360
707473
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
707361
707474
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
707362
707475
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -708571,7 +708684,7 @@ var init_filesystem = __esm(() => {
|
|
|
708571
708684
|
});
|
|
708572
708685
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
708573
708686
|
const nonce = randomBytes20(16).toString("hex");
|
|
708574
|
-
return join232(getURTempDir(), "bundled-skills", "1.78.
|
|
708687
|
+
return join232(getURTempDir(), "bundled-skills", "1.78.10", nonce);
|
|
708575
708688
|
});
|
|
708576
708689
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
708577
708690
|
});
|
|
@@ -714946,7 +715059,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
714946
715059
|
}
|
|
714947
715060
|
function computeFingerprintFromMessages(messages) {
|
|
714948
715061
|
const firstMessageText = extractFirstMessageText(messages);
|
|
714949
|
-
return computeFingerprint(firstMessageText, "1.78.
|
|
715062
|
+
return computeFingerprint(firstMessageText, "1.78.10");
|
|
714950
715063
|
}
|
|
714951
715064
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
714952
715065
|
var init_fingerprint = () => {};
|
|
@@ -716868,7 +716981,7 @@ async function sideQuery(opts) {
|
|
|
716868
716981
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
716869
716982
|
}
|
|
716870
716983
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
716871
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.78.
|
|
716984
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.78.10");
|
|
716872
716985
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
716873
716986
|
const systemBlocks = [
|
|
716874
716987
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -721705,7 +721818,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
721705
721818
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
721706
721819
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
721707
721820
|
betas: getSdkBetas(),
|
|
721708
|
-
ur_version: "1.78.
|
|
721821
|
+
ur_version: "1.78.10",
|
|
721709
721822
|
output_style: outputStyle2,
|
|
721710
721823
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
721711
721824
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -735577,7 +735690,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
735577
735690
|
function getSemverPart(version3) {
|
|
735578
735691
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
735579
735692
|
}
|
|
735580
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.78.
|
|
735693
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.78.10") {
|
|
735581
735694
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react224.useState(() => getSemverPart(initialVersion));
|
|
735582
735695
|
if (!updatedVersion) {
|
|
735583
735696
|
return null;
|
|
@@ -735626,7 +735739,7 @@ function AutoUpdater({
|
|
|
735626
735739
|
return;
|
|
735627
735740
|
}
|
|
735628
735741
|
if (false) {}
|
|
735629
|
-
const currentVersion = "1.78.
|
|
735742
|
+
const currentVersion = "1.78.10";
|
|
735630
735743
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
735631
735744
|
let latestVersion = await getLatestVersion(channel);
|
|
735632
735745
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -735855,12 +735968,12 @@ function NativeAutoUpdater({
|
|
|
735855
735968
|
logEvent("tengu_native_auto_updater_start", {});
|
|
735856
735969
|
try {
|
|
735857
735970
|
const maxVersion = await getMaxVersion();
|
|
735858
|
-
if (maxVersion && gt("1.78.
|
|
735971
|
+
if (maxVersion && gt("1.78.10", maxVersion)) {
|
|
735859
735972
|
const msg = await getMaxVersionMessage();
|
|
735860
735973
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
735861
735974
|
}
|
|
735862
735975
|
const result = await installLatest(channel);
|
|
735863
|
-
const currentVersion = "1.78.
|
|
735976
|
+
const currentVersion = "1.78.10";
|
|
735864
735977
|
const latencyMs = Date.now() - startTime;
|
|
735865
735978
|
if (result.lockFailed) {
|
|
735866
735979
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -735997,17 +736110,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
735997
736110
|
const maxVersion = await getMaxVersion();
|
|
735998
736111
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
735999
736112
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
736000
|
-
if (gte("1.78.
|
|
736001
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.78.
|
|
736113
|
+
if (gte("1.78.10", maxVersion)) {
|
|
736114
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.78.10"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
736002
736115
|
setUpdateAvailable(false);
|
|
736003
736116
|
return;
|
|
736004
736117
|
}
|
|
736005
736118
|
latest = maxVersion;
|
|
736006
736119
|
}
|
|
736007
|
-
const hasUpdate = latest && !gte("1.78.
|
|
736120
|
+
const hasUpdate = latest && !gte("1.78.10", latest) && !shouldSkipVersion(latest);
|
|
736008
736121
|
setUpdateAvailable(!!hasUpdate);
|
|
736009
736122
|
if (hasUpdate) {
|
|
736010
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.78.
|
|
736123
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.78.10"} -> ${latest}`);
|
|
736011
736124
|
}
|
|
736012
736125
|
};
|
|
736013
736126
|
$2[0] = t1;
|
|
@@ -736041,7 +736154,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
736041
736154
|
wrap: "truncate",
|
|
736042
736155
|
children: [
|
|
736043
736156
|
"currentVersion: ",
|
|
736044
|
-
"1.78.
|
|
736157
|
+
"1.78.10"
|
|
736045
736158
|
]
|
|
736046
736159
|
}, undefined, true, undefined, this);
|
|
736047
736160
|
$2[3] = verbose;
|
|
@@ -746841,7 +746954,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
746841
746954
|
project_dir: getOriginalCwd(),
|
|
746842
746955
|
added_dirs: addedDirs
|
|
746843
746956
|
},
|
|
746844
|
-
version: "1.78.
|
|
746957
|
+
version: "1.78.10",
|
|
746845
746958
|
output_style: {
|
|
746846
746959
|
name: outputStyleName
|
|
746847
746960
|
},
|
|
@@ -746976,7 +747089,7 @@ function StatusLineInner({
|
|
|
746976
747089
|
const attention = customStatusError ?? taskAttention;
|
|
746977
747090
|
const terminalSize = React133.useContext(TerminalSizeContext);
|
|
746978
747091
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
746979
|
-
version: "1.78.
|
|
747092
|
+
version: "1.78.10",
|
|
746980
747093
|
providerLabel: providerRuntime.providerLabel,
|
|
746981
747094
|
authMode: providerRuntime.authLabel,
|
|
746982
747095
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -753489,6 +753602,17 @@ function useMoreRight(_args) {
|
|
|
753489
753602
|
};
|
|
753490
753603
|
}
|
|
753491
753604
|
|
|
753605
|
+
// src/components/Spinner/activityVisibility.ts
|
|
753606
|
+
function shouldShowActivityRow({
|
|
753607
|
+
toolAllowsActivity,
|
|
753608
|
+
hasBlockingPrompt,
|
|
753609
|
+
hasActiveWork,
|
|
753610
|
+
pendingWorkerRequest,
|
|
753611
|
+
onlySleepToolActive
|
|
753612
|
+
}) {
|
|
753613
|
+
return toolAllowsActivity && !hasBlockingPrompt && hasActiveWork && !pendingWorkerRequest && !onlySleepToolActive;
|
|
753614
|
+
}
|
|
753615
|
+
|
|
753492
753616
|
// src/utils/cleanup.ts
|
|
753493
753617
|
import * as fs12 from "fs/promises";
|
|
753494
753618
|
import { homedir as homedir39 } from "os";
|
|
@@ -756210,11 +756334,14 @@ async function executeUserInput(params) {
|
|
|
756210
756334
|
appendToCurrent: taskListRun.appendToCurrent
|
|
756211
756335
|
});
|
|
756212
756336
|
if (!requestsContinueCurrentTaskList(primaryCommandText)) {
|
|
756213
|
-
|
|
756214
|
-
|
|
756215
|
-
|
|
756216
|
-
|
|
756217
|
-
|
|
756337
|
+
const taskId = await createAutomaticPromptTaskForRun(taskListId, taskListRun.generationId, primaryCommandText, { reuseExistingBoard: taskListRun.appendToCurrent });
|
|
756338
|
+
if (taskId) {
|
|
756339
|
+
automaticPromptTask = {
|
|
756340
|
+
taskListId,
|
|
756341
|
+
taskId,
|
|
756342
|
+
generationId: taskListRun.generationId
|
|
756343
|
+
};
|
|
756344
|
+
}
|
|
756218
756345
|
}
|
|
756219
756346
|
}
|
|
756220
756347
|
for (let i3 = 0;i3 < commands.length; i3++) {
|
|
@@ -759284,7 +759411,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
759284
759411
|
} catch {}
|
|
759285
759412
|
const data = {
|
|
759286
759413
|
trigger: trigger2,
|
|
759287
|
-
version: "1.78.
|
|
759414
|
+
version: "1.78.10",
|
|
759288
759415
|
platform: process.platform,
|
|
759289
759416
|
transcript,
|
|
759290
759417
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -767873,7 +768000,13 @@ function REPL({
|
|
|
767873
768000
|
setInputValue,
|
|
767874
768001
|
setToolJSX
|
|
767875
768002
|
});
|
|
767876
|
-
const showSpinner = (
|
|
768003
|
+
const showSpinner = shouldShowActivityRow({
|
|
768004
|
+
toolAllowsActivity: !toolJSX || toolJSX.showSpinner === true,
|
|
768005
|
+
hasBlockingPrompt: toolUseConfirmQueue.length > 0 || promptQueue.length > 0,
|
|
768006
|
+
hasActiveWork: Boolean(isLoading || userInputOnProcessing || hasRunningTeammates || getCommandQueueLength() > 0),
|
|
768007
|
+
pendingWorkerRequest: Boolean(pendingWorkerRequest),
|
|
768008
|
+
onlySleepToolActive
|
|
768009
|
+
});
|
|
767877
768010
|
const hasActivePrompt = toolUseConfirmQueue.length > 0 || promptQueue.length > 0 || sandboxPermissionRequestQueue.length > 0 || elicitation.queue.length > 0 || workerSandboxPermissions.queue.length > 0;
|
|
767878
768011
|
const feedbackSurveyOriginal = useFeedbackSurvey(messages, isLoading, submitCount, "session", hasActivePrompt);
|
|
767879
768012
|
const skillImprovementSurvey = useSkillImprovementSurvey(setMessages);
|
|
@@ -771658,7 +771791,7 @@ function WelcomeV2() {
|
|
|
771658
771791
|
dimColor: true,
|
|
771659
771792
|
children: [
|
|
771660
771793
|
"v",
|
|
771661
|
-
"1.78.
|
|
771794
|
+
"1.78.10"
|
|
771662
771795
|
]
|
|
771663
771796
|
}, undefined, true, undefined, this)
|
|
771664
771797
|
]
|
|
@@ -772918,7 +773051,7 @@ function completeOnboarding() {
|
|
|
772918
773051
|
saveGlobalConfig((current) => ({
|
|
772919
773052
|
...current,
|
|
772920
773053
|
hasCompletedOnboarding: true,
|
|
772921
|
-
lastOnboardingVersion: "1.78.
|
|
773054
|
+
lastOnboardingVersion: "1.78.10"
|
|
772922
773055
|
}));
|
|
772923
773056
|
}
|
|
772924
773057
|
function showDialog(root2, renderer) {
|
|
@@ -777962,7 +778095,7 @@ function appendToLog(path24, message) {
|
|
|
777962
778095
|
cwd: getFsImplementation().cwd(),
|
|
777963
778096
|
userType: process.env.USER_TYPE,
|
|
777964
778097
|
sessionId: getSessionId(),
|
|
777965
|
-
version: "1.78.
|
|
778098
|
+
version: "1.78.10"
|
|
777966
778099
|
};
|
|
777967
778100
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
777968
778101
|
}
|
|
@@ -782121,8 +782254,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
782121
782254
|
}
|
|
782122
782255
|
async function checkEnvLessBridgeMinVersion() {
|
|
782123
782256
|
const cfg = await getEnvLessBridgeConfig();
|
|
782124
|
-
if (cfg.min_version && lt("1.78.
|
|
782125
|
-
return `Your version of UR (${"1.78.
|
|
782257
|
+
if (cfg.min_version && lt("1.78.10", cfg.min_version)) {
|
|
782258
|
+
return `Your version of UR (${"1.78.10"}) is too old for Remote Control.
|
|
782126
782259
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
782127
782260
|
}
|
|
782128
782261
|
return null;
|
|
@@ -782596,7 +782729,7 @@ async function initBridgeCore(params) {
|
|
|
782596
782729
|
const rawApi = createBridgeApiClient({
|
|
782597
782730
|
baseUrl,
|
|
782598
782731
|
getAccessToken,
|
|
782599
|
-
runnerVersion: "1.78.
|
|
782732
|
+
runnerVersion: "1.78.10",
|
|
782600
782733
|
onDebug: logForDebugging,
|
|
782601
782734
|
onAuth401,
|
|
782602
782735
|
getTrustedDeviceToken
|
|
@@ -792069,7 +792202,7 @@ function getAgUiCapabilities() {
|
|
|
792069
792202
|
name: "UR-Nexus",
|
|
792070
792203
|
type: "ur-nexus",
|
|
792071
792204
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
792072
|
-
version: "1.78.
|
|
792205
|
+
version: "1.78.10",
|
|
792073
792206
|
provider: "UR",
|
|
792074
792207
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
792075
792208
|
},
|
|
@@ -793209,7 +793342,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
793209
793342
|
};
|
|
793210
793343
|
const server2 = new Server({
|
|
793211
793344
|
name: "ur-nexus",
|
|
793212
|
-
version: "1.78.
|
|
793345
|
+
version: "1.78.10"
|
|
793213
793346
|
}, {
|
|
793214
793347
|
capabilities: {
|
|
793215
793348
|
tools: {}
|
|
@@ -794367,7 +794500,7 @@ function thrownResponse(error40) {
|
|
|
794367
794500
|
}
|
|
794368
794501
|
async function createUrMcp2026Runtime(options4) {
|
|
794369
794502
|
const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
|
|
794370
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.78.
|
|
794503
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.78.10" }, { capabilities: {} });
|
|
794371
794504
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
794372
794505
|
try {
|
|
794373
794506
|
await server2.connect(serverTransport);
|
|
@@ -794378,7 +794511,7 @@ async function createUrMcp2026Runtime(options4) {
|
|
|
794378
794511
|
}
|
|
794379
794512
|
const runtime2 = new Mcp2026Runtime({
|
|
794380
794513
|
cwd: options4.cwd,
|
|
794381
|
-
version: "1.78.
|
|
794514
|
+
version: "1.78.10",
|
|
794382
794515
|
backend: {
|
|
794383
794516
|
listTools: async () => {
|
|
794384
794517
|
const listed = await client2.listTools();
|
|
@@ -796519,7 +796652,7 @@ async function update() {
|
|
|
796519
796652
|
logEvent("tengu_update_check", {});
|
|
796520
796653
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
796521
796654
|
const result = await checkUpgradeStatus({
|
|
796522
|
-
currentVersion: "1.78.
|
|
796655
|
+
currentVersion: "1.78.10",
|
|
796523
796656
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
796524
796657
|
installationType: diagnostic2.installationType,
|
|
796525
796658
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -797835,7 +797968,7 @@ ${customInstructions}` : customInstructions;
|
|
|
797835
797968
|
}
|
|
797836
797969
|
}
|
|
797837
797970
|
logForDiagnosticsNoPII("info", "started", {
|
|
797838
|
-
version: "1.78.
|
|
797971
|
+
version: "1.78.10",
|
|
797839
797972
|
is_native_binary: isInBundledMode()
|
|
797840
797973
|
});
|
|
797841
797974
|
registerCleanup(async () => {
|
|
@@ -798621,7 +798754,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
798621
798754
|
pendingHookMessages
|
|
798622
798755
|
}, renderAndRun);
|
|
798623
798756
|
}
|
|
798624
|
-
}).version("1.78.
|
|
798757
|
+
}).version("1.78.10 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
798625
798758
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
798626
798759
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
798627
798760
|
if (canUserConfigureAdvisor()) {
|
|
@@ -799673,7 +799806,7 @@ if (false) {}
|
|
|
799673
799806
|
async function main2() {
|
|
799674
799807
|
const args = process.argv.slice(2);
|
|
799675
799808
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
799676
|
-
console.log(`${"1.78.
|
|
799809
|
+
console.log(`${"1.78.10"} (UR-Nexus)`);
|
|
799677
799810
|
return;
|
|
799678
799811
|
}
|
|
799679
799812
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|