ur-agent 1.66.1 → 1.68.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +79 -0
- package/dist/cli.js +294 -143
- package/docs/VALIDATION.md +1 -1
- package/documentation/index.html +1 -1
- package/extensions/jetbrains-ur/build.gradle.kts +1 -1
- package/extensions/vscode-ur-inline-diffs/package.json +1 -1
- package/package.json +1 -1
- package/technical/README.md +1 -1
package/dist/cli.js
CHANGED
|
@@ -56666,6 +56666,29 @@ function computeOllamaNumCtx(input) {
|
|
|
56666
56666
|
const desired = Math.max(minCtx, estimatedPromptTokens + headroom);
|
|
56667
56667
|
return cap(bucketize(desired));
|
|
56668
56668
|
}
|
|
56669
|
+
function describeContextPressure(input) {
|
|
56670
|
+
const { estimatedPromptTokens, numCtx, modelContextLength, model } = input;
|
|
56671
|
+
const effective = numCtx ?? modelContextLength;
|
|
56672
|
+
if (!effective || effective <= 0 || estimatedPromptTokens <= 0) {
|
|
56673
|
+
return { level: "ok" };
|
|
56674
|
+
}
|
|
56675
|
+
if (estimatedPromptTokens >= effective) {
|
|
56676
|
+
return {
|
|
56677
|
+
level: "overflow",
|
|
56678
|
+
message: `This request is about ${fmt(estimatedPromptTokens)} tokens but ${model} ` + `is running with a ${fmt(effective)}-token context. Ollama discards the ` + `oldest tokens instead of failing, so the system prompt and earliest ` + `turns are being dropped and the model is answering without them. ` + `Use /compact, start a new session, pick a model with a larger context, ` + `or raise UR_OLLAMA_NUM_CTX if the model supports more.`
|
|
56679
|
+
};
|
|
56680
|
+
}
|
|
56681
|
+
if (estimatedPromptTokens >= effective * 0.85) {
|
|
56682
|
+
return {
|
|
56683
|
+
level: "tight",
|
|
56684
|
+
message: `This request is using about ${fmt(estimatedPromptTokens)} of ${model}'s ` + `${fmt(effective)}-token context. Once it is full, Ollama drops the ` + `oldest tokens \u2014 the system prompt first. /compact will free room.`
|
|
56685
|
+
};
|
|
56686
|
+
}
|
|
56687
|
+
return { level: "ok" };
|
|
56688
|
+
}
|
|
56689
|
+
function fmt(n2) {
|
|
56690
|
+
return n2 >= 1000 ? `${Math.round(n2 / 1000)}k` : String(n2);
|
|
56691
|
+
}
|
|
56669
56692
|
function bucketize(n2) {
|
|
56670
56693
|
for (const bucket of NUM_CTX_BUCKETS) {
|
|
56671
56694
|
if (bucket >= n2)
|
|
@@ -57709,15 +57732,26 @@ function toOllamaChatRequest(params, stream4, capabilities, baseUrl = getEffecti
|
|
|
57709
57732
|
if (typeof params.max_tokens === "number") {
|
|
57710
57733
|
options.num_predict = params.max_tokens;
|
|
57711
57734
|
}
|
|
57735
|
+
const modelContextLength = getOllamaContextLengthForModel(params.model, baseUrl);
|
|
57736
|
+
const estimatedPromptTokens = estimateInputTokens(params);
|
|
57712
57737
|
const numCtx = computeOllamaNumCtx({
|
|
57713
|
-
modelContextLength
|
|
57714
|
-
estimatedPromptTokens
|
|
57738
|
+
modelContextLength,
|
|
57739
|
+
estimatedPromptTokens,
|
|
57715
57740
|
maxTokens: typeof params.max_tokens === "number" ? params.max_tokens : undefined,
|
|
57716
57741
|
override: getOllamaNumCtxOverride()
|
|
57717
57742
|
});
|
|
57718
57743
|
if (numCtx !== undefined) {
|
|
57719
57744
|
options.num_ctx = numCtx;
|
|
57720
57745
|
}
|
|
57746
|
+
const pressure = describeContextPressure({
|
|
57747
|
+
estimatedPromptTokens,
|
|
57748
|
+
numCtx,
|
|
57749
|
+
modelContextLength,
|
|
57750
|
+
model: params.model
|
|
57751
|
+
});
|
|
57752
|
+
if (pressure.message && !pendingProviderNotice) {
|
|
57753
|
+
pendingProviderNotice = pressure.message;
|
|
57754
|
+
}
|
|
57721
57755
|
if (Object.keys(options).length > 0) {
|
|
57722
57756
|
request.options = options;
|
|
57723
57757
|
}
|
|
@@ -75613,7 +75647,7 @@ var init_auth = __esm(() => {
|
|
|
75613
75647
|
|
|
75614
75648
|
// src/utils/userAgent.ts
|
|
75615
75649
|
function getURCodeUserAgent() {
|
|
75616
|
-
return `ur/${"1.
|
|
75650
|
+
return `ur/${"1.68.0"}`;
|
|
75617
75651
|
}
|
|
75618
75652
|
|
|
75619
75653
|
// src/utils/workloadContext.ts
|
|
@@ -75635,7 +75669,7 @@ function getUserAgent() {
|
|
|
75635
75669
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
75636
75670
|
const workload = getWorkload();
|
|
75637
75671
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
75638
|
-
return `ur-cli/${"1.
|
|
75672
|
+
return `ur-cli/${"1.68.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
75639
75673
|
}
|
|
75640
75674
|
function getMCPUserAgent() {
|
|
75641
75675
|
const parts = [];
|
|
@@ -75649,7 +75683,7 @@ function getMCPUserAgent() {
|
|
|
75649
75683
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
75650
75684
|
}
|
|
75651
75685
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
75652
|
-
return `ur/${"1.
|
|
75686
|
+
return `ur/${"1.68.0"}${suffix}`;
|
|
75653
75687
|
}
|
|
75654
75688
|
function getWebFetchUserAgent() {
|
|
75655
75689
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -75787,7 +75821,7 @@ var init_user = __esm(() => {
|
|
|
75787
75821
|
deviceId,
|
|
75788
75822
|
sessionId: getSessionId(),
|
|
75789
75823
|
email: getEmail(),
|
|
75790
|
-
appVersion: "1.
|
|
75824
|
+
appVersion: "1.68.0",
|
|
75791
75825
|
platform: getHostPlatformForAnalytics(),
|
|
75792
75826
|
organizationUuid,
|
|
75793
75827
|
accountUuid,
|
|
@@ -83987,7 +84021,7 @@ var init_metadata = __esm(() => {
|
|
|
83987
84021
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
83988
84022
|
WHITESPACE_REGEX = /\s+/;
|
|
83989
84023
|
getVersionBase = memoize_default(() => {
|
|
83990
|
-
const match = "1.
|
|
84024
|
+
const match = "1.68.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
83991
84025
|
return match ? match[0] : undefined;
|
|
83992
84026
|
});
|
|
83993
84027
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -84027,7 +84061,7 @@ var init_metadata = __esm(() => {
|
|
|
84027
84061
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
84028
84062
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
84029
84063
|
isURAiAuth: isURAISubscriber(),
|
|
84030
|
-
version: "1.
|
|
84064
|
+
version: "1.68.0",
|
|
84031
84065
|
versionBase: getVersionBase(),
|
|
84032
84066
|
buildTime: "",
|
|
84033
84067
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -84697,7 +84731,7 @@ function initialize1PEventLogging() {
|
|
|
84697
84731
|
const platform2 = getPlatform();
|
|
84698
84732
|
const attributes = {
|
|
84699
84733
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
84700
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.
|
|
84734
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.68.0"
|
|
84701
84735
|
};
|
|
84702
84736
|
if (platform2 === "wsl") {
|
|
84703
84737
|
const wslVersion = getWslVersion();
|
|
@@ -84725,7 +84759,7 @@ function initialize1PEventLogging() {
|
|
|
84725
84759
|
})
|
|
84726
84760
|
]
|
|
84727
84761
|
});
|
|
84728
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.
|
|
84762
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.68.0");
|
|
84729
84763
|
}
|
|
84730
84764
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
84731
84765
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -90099,7 +90133,7 @@ function suggestSkillCandidates(stats, existingSkillNames = [], options = {}) {
|
|
|
90099
90133
|
function formatStats(stats, json2) {
|
|
90100
90134
|
if (json2)
|
|
90101
90135
|
return JSON.stringify(stats, null, 2);
|
|
90102
|
-
const
|
|
90136
|
+
const fmt2 = (t) => {
|
|
90103
90137
|
const total = t.pass + t.fail;
|
|
90104
90138
|
return `${t.pass}/${total} (${total ? Math.round(t.pass / total * 100) : 0}%)`;
|
|
90105
90139
|
};
|
|
@@ -90108,14 +90142,14 @@ function formatStats(stats, json2) {
|
|
|
90108
90142
|
if (cats.length) {
|
|
90109
90143
|
lines.push("By category:");
|
|
90110
90144
|
for (const [cat, t] of cats)
|
|
90111
|
-
lines.push(` ${cat.padEnd(14)} ${
|
|
90145
|
+
lines.push(` ${cat.padEnd(14)} ${fmt2(t)}`);
|
|
90112
90146
|
lines.push("");
|
|
90113
90147
|
}
|
|
90114
90148
|
const models = Object.entries(stats.models).sort((a2, b) => a2[0].localeCompare(b[0]));
|
|
90115
90149
|
if (models.length) {
|
|
90116
90150
|
lines.push("By model:");
|
|
90117
90151
|
for (const [model, t] of models)
|
|
90118
|
-
lines.push(` ${model.padEnd(28)} ${
|
|
90152
|
+
lines.push(` ${model.padEnd(28)} ${fmt2(t)}`);
|
|
90119
90153
|
lines.push("");
|
|
90120
90154
|
}
|
|
90121
90155
|
if (stats.lessons.length) {
|
|
@@ -94613,7 +94647,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
94613
94647
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
94614
94648
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
94615
94649
|
}
|
|
94616
|
-
var urVersion = "1.
|
|
94650
|
+
var urVersion = "1.68.0", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
|
|
94617
94651
|
var init_trends = __esm(() => {
|
|
94618
94652
|
init_a2aCardSignature();
|
|
94619
94653
|
coverage = [
|
|
@@ -97416,7 +97450,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
97416
97450
|
if (!isAttributionHeaderEnabled()) {
|
|
97417
97451
|
return "";
|
|
97418
97452
|
}
|
|
97419
|
-
const version2 = `${"1.
|
|
97453
|
+
const version2 = `${"1.68.0"}.${fingerprint}`;
|
|
97420
97454
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
97421
97455
|
const cch = "";
|
|
97422
97456
|
const workload = getWorkload();
|
|
@@ -155289,7 +155323,7 @@ var init_projectSafety = __esm(() => {
|
|
|
155289
155323
|
function getInstruments() {
|
|
155290
155324
|
if (instruments)
|
|
155291
155325
|
return instruments;
|
|
155292
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.
|
|
155326
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.68.0");
|
|
155293
155327
|
instruments = {
|
|
155294
155328
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
155295
155329
|
description: "GenAI operation duration.",
|
|
@@ -155387,7 +155421,7 @@ function genAiAgentAttributes() {
|
|
|
155387
155421
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
155388
155422
|
"gen_ai.provider.name": "ur",
|
|
155389
155423
|
"gen_ai.agent.name": "UR-Nexus",
|
|
155390
|
-
"gen_ai.agent.version": "1.
|
|
155424
|
+
"gen_ai.agent.version": "1.68.0"
|
|
155391
155425
|
};
|
|
155392
155426
|
}
|
|
155393
155427
|
function genAiWorkflowAttributes(workflowName) {
|
|
@@ -155403,7 +155437,7 @@ function genAiWorkflowAttributes(workflowName) {
|
|
|
155403
155437
|
function startGenAiWorkflowSpan(workflowName) {
|
|
155404
155438
|
const attributes = genAiWorkflowAttributes(workflowName);
|
|
155405
155439
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
155406
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.
|
|
155440
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.0").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
155407
155441
|
}
|
|
155408
155442
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
155409
155443
|
try {
|
|
@@ -155441,7 +155475,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
155441
155475
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
155442
155476
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
155443
155477
|
}
|
|
155444
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.
|
|
155478
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.0").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
155445
155479
|
}
|
|
155446
155480
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
155447
155481
|
try {
|
|
@@ -248924,7 +248958,7 @@ function getTelemetryAttributes() {
|
|
|
248924
248958
|
attributes["session.id"] = sessionId;
|
|
248925
248959
|
}
|
|
248926
248960
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
248927
|
-
attributes["app.version"] = "1.
|
|
248961
|
+
attributes["app.version"] = "1.68.0";
|
|
248928
248962
|
}
|
|
248929
248963
|
const oauthAccount = getOauthAccountInfo();
|
|
248930
248964
|
if (oauthAccount) {
|
|
@@ -264542,11 +264576,11 @@ var require_format = __commonJS((exports) => {
|
|
|
264542
264576
|
}
|
|
264543
264577
|
function getFormat(fmtDef) {
|
|
264544
264578
|
const code = fmtDef instanceof RegExp ? (0, codegen_1.regexpCode)(fmtDef) : opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(schema)}` : undefined;
|
|
264545
|
-
const
|
|
264579
|
+
const fmt2 = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
|
|
264546
264580
|
if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) {
|
|
264547
|
-
return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${
|
|
264581
|
+
return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt2}.validate`];
|
|
264548
264582
|
}
|
|
264549
|
-
return ["string", fmtDef,
|
|
264583
|
+
return ["string", fmtDef, fmt2];
|
|
264550
264584
|
}
|
|
264551
264585
|
function validCondition() {
|
|
264552
264586
|
if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) {
|
|
@@ -275651,11 +275685,11 @@ var require_format3 = __commonJS((exports) => {
|
|
|
275651
275685
|
}
|
|
275652
275686
|
function getFormat(fmtDef) {
|
|
275653
275687
|
const code = fmtDef instanceof RegExp ? (0, codegen_1.regexpCode)(fmtDef) : opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(schema)}` : undefined;
|
|
275654
|
-
const
|
|
275688
|
+
const fmt2 = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
|
|
275655
275689
|
if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) {
|
|
275656
|
-
return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${
|
|
275690
|
+
return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt2}.validate`];
|
|
275657
275691
|
}
|
|
275658
|
-
return ["string", fmtDef,
|
|
275692
|
+
return ["string", fmtDef, fmt2];
|
|
275659
275693
|
}
|
|
275660
275694
|
function validCondition() {
|
|
275661
275695
|
if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) {
|
|
@@ -281210,11 +281244,11 @@ var require_format5 = __commonJS((exports) => {
|
|
|
281210
281244
|
}
|
|
281211
281245
|
function getFormat(fmtDef) {
|
|
281212
281246
|
const code = fmtDef instanceof RegExp ? (0, codegen_1.regexpCode)(fmtDef) : opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(schema)}` : undefined;
|
|
281213
|
-
const
|
|
281247
|
+
const fmt2 = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
|
|
281214
281248
|
if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) {
|
|
281215
|
-
return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${
|
|
281249
|
+
return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt2}.validate`];
|
|
281216
281250
|
}
|
|
281217
|
-
return ["string", fmtDef,
|
|
281251
|
+
return ["string", fmtDef, fmt2];
|
|
281218
281252
|
}
|
|
281219
281253
|
function validCondition() {
|
|
281220
281254
|
if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) {
|
|
@@ -281651,8 +281685,8 @@ var require_limit = __commonJS((exports) => {
|
|
|
281651
281685
|
ref: self2.formats,
|
|
281652
281686
|
code: opts.code.formats
|
|
281653
281687
|
});
|
|
281654
|
-
const
|
|
281655
|
-
cxt.fail$data((0, codegen_1.or)((0, codegen_1._)`typeof ${
|
|
281688
|
+
const fmt2 = gen.const("fmt", (0, codegen_1._)`${fmts}[${fCxt.schemaCode}]`);
|
|
281689
|
+
cxt.fail$data((0, codegen_1.or)((0, codegen_1._)`typeof ${fmt2} != "object"`, (0, codegen_1._)`${fmt2} instanceof RegExp`, (0, codegen_1._)`typeof ${fmt2}.compare != "function"`, compareCode(fmt2)));
|
|
281656
281690
|
}
|
|
281657
281691
|
function validateFormat() {
|
|
281658
281692
|
const format4 = fCxt.schema;
|
|
@@ -281662,15 +281696,15 @@ var require_limit = __commonJS((exports) => {
|
|
|
281662
281696
|
if (typeof fmtDef != "object" || fmtDef instanceof RegExp || typeof fmtDef.compare != "function") {
|
|
281663
281697
|
throw new Error(`"${keyword}": format "${format4}" does not define "compare" function`);
|
|
281664
281698
|
}
|
|
281665
|
-
const
|
|
281699
|
+
const fmt2 = gen.scopeValue("formats", {
|
|
281666
281700
|
key: format4,
|
|
281667
281701
|
ref: fmtDef,
|
|
281668
281702
|
code: opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(format4)}` : undefined
|
|
281669
281703
|
});
|
|
281670
|
-
cxt.fail$data(compareCode(
|
|
281704
|
+
cxt.fail$data(compareCode(fmt2));
|
|
281671
281705
|
}
|
|
281672
|
-
function compareCode(
|
|
281673
|
-
return (0, codegen_1._)`${
|
|
281706
|
+
function compareCode(fmt2) {
|
|
281707
|
+
return (0, codegen_1._)`${fmt2}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;
|
|
281674
281708
|
}
|
|
281675
281709
|
},
|
|
281676
281710
|
dependencies: ["format"]
|
|
@@ -295404,7 +295438,7 @@ function getInstallationEnv() {
|
|
|
295404
295438
|
return;
|
|
295405
295439
|
}
|
|
295406
295440
|
function getURCodeVersion() {
|
|
295407
|
-
return "1.
|
|
295441
|
+
return "1.68.0";
|
|
295408
295442
|
}
|
|
295409
295443
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
295410
295444
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -302735,7 +302769,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
302735
302769
|
const client2 = new Client({
|
|
302736
302770
|
name: "ur",
|
|
302737
302771
|
title: "UR",
|
|
302738
|
-
version: "1.
|
|
302772
|
+
version: "1.68.0",
|
|
302739
302773
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
302740
302774
|
websiteUrl: PRODUCT_URL
|
|
302741
302775
|
}, {
|
|
@@ -303095,7 +303129,7 @@ var init_client5 = __esm(() => {
|
|
|
303095
303129
|
const client2 = new Client({
|
|
303096
303130
|
name: "ur",
|
|
303097
303131
|
title: "UR",
|
|
303098
|
-
version: "1.
|
|
303132
|
+
version: "1.68.0",
|
|
303099
303133
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
303100
303134
|
websiteUrl: PRODUCT_URL
|
|
303101
303135
|
}, {
|
|
@@ -315634,7 +315668,7 @@ async function createRuntime() {
|
|
|
315634
315668
|
bootstrapTelemetry();
|
|
315635
315669
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
315636
315670
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
315637
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.
|
|
315671
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.68.0"
|
|
315638
315672
|
}));
|
|
315639
315673
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
315640
315674
|
resource,
|
|
@@ -315667,11 +315701,11 @@ async function createRuntime() {
|
|
|
315667
315701
|
setMeterProvider(meterProvider);
|
|
315668
315702
|
setLoggerProvider(loggerProvider);
|
|
315669
315703
|
if (meterProvider) {
|
|
315670
|
-
const meter = meterProvider.getMeter("ur-agent", "1.
|
|
315704
|
+
const meter = meterProvider.getMeter("ur-agent", "1.68.0");
|
|
315671
315705
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
315672
315706
|
}
|
|
315673
315707
|
if (loggerProvider) {
|
|
315674
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.
|
|
315708
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.68.0"));
|
|
315675
315709
|
}
|
|
315676
315710
|
if (!cleanupRegistered2) {
|
|
315677
315711
|
cleanupRegistered2 = true;
|
|
@@ -316333,9 +316367,9 @@ async function assertMinVersion() {
|
|
|
316333
316367
|
if (false) {}
|
|
316334
316368
|
try {
|
|
316335
316369
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
316336
|
-
if (versionConfig.minVersion && lt("1.
|
|
316370
|
+
if (versionConfig.minVersion && lt("1.68.0", versionConfig.minVersion)) {
|
|
316337
316371
|
console.error(`
|
|
316338
|
-
It looks like your version of UR (${"1.
|
|
316372
|
+
It looks like your version of UR (${"1.68.0"}) needs an update.
|
|
316339
316373
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
316340
316374
|
|
|
316341
316375
|
To update, please run:
|
|
@@ -316551,7 +316585,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
316551
316585
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
316552
316586
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
316553
316587
|
pid: process.pid,
|
|
316554
|
-
currentVersion: "1.
|
|
316588
|
+
currentVersion: "1.68.0"
|
|
316555
316589
|
});
|
|
316556
316590
|
return "in_progress";
|
|
316557
316591
|
}
|
|
@@ -316560,7 +316594,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
316560
316594
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
316561
316595
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
316562
316596
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
316563
|
-
currentVersion: "1.
|
|
316597
|
+
currentVersion: "1.68.0"
|
|
316564
316598
|
});
|
|
316565
316599
|
console.error(`
|
|
316566
316600
|
Error: Windows NPM detected in WSL
|
|
@@ -317095,7 +317129,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
317095
317129
|
}
|
|
317096
317130
|
async function getDoctorDiagnostic() {
|
|
317097
317131
|
const installationType = await getCurrentInstallationType();
|
|
317098
|
-
const version2 = typeof MACRO !== "undefined" ? "1.
|
|
317132
|
+
const version2 = typeof MACRO !== "undefined" ? "1.68.0" : "unknown";
|
|
317099
317133
|
const installationPath = await getInstallationPath();
|
|
317100
317134
|
const invokedBinary = getInvokedBinary();
|
|
317101
317135
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -318030,8 +318064,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
318030
318064
|
const maxVersion = await getMaxVersion();
|
|
318031
318065
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
318032
318066
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
318033
|
-
if (gte("1.
|
|
318034
|
-
logForDebugging(`Native installer: current version ${"1.
|
|
318067
|
+
if (gte("1.68.0", maxVersion)) {
|
|
318068
|
+
logForDebugging(`Native installer: current version ${"1.68.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
318035
318069
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
318036
318070
|
latency_ms: Date.now() - startTime,
|
|
318037
318071
|
max_version: maxVersion,
|
|
@@ -318042,7 +318076,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
318042
318076
|
version2 = maxVersion;
|
|
318043
318077
|
}
|
|
318044
318078
|
}
|
|
318045
|
-
if (!forceReinstall && version2 === "1.
|
|
318079
|
+
if (!forceReinstall && version2 === "1.68.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
318046
318080
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
318047
318081
|
logEvent("tengu_native_update_complete", {
|
|
318048
318082
|
latency_ms: Date.now() - startTime,
|
|
@@ -339503,18 +339537,133 @@ var init_types10 = __esm(() => {
|
|
|
339503
339537
|
});
|
|
339504
339538
|
|
|
339505
339539
|
// src/tools/TodoWriteTool/prompt.ts
|
|
339506
|
-
var PROMPT4 =
|
|
339540
|
+
var PROMPT4, DESCRIPTION9 = "Create and update the ordered todo list for multi-step work. Use proactively for tasks with 3 or more steps. Keep statuses current, keep exactly one item in_progress, and complete items only after relevant verification succeeds.";
|
|
339541
|
+
var init_prompt11 = __esm(() => {
|
|
339542
|
+
PROMPT4 = `Use this tool to create and manage the ordered work plan for the current session. It tracks progress, organises complex work, and shows the user where their request stands.
|
|
339507
339543
|
|
|
339508
|
-
## When to
|
|
339544
|
+
## When to Use This Tool
|
|
339545
|
+
|
|
339546
|
+
Use this tool proactively in these scenarios:
|
|
339509
339547
|
|
|
339510
|
-
|
|
339511
|
-
|
|
339512
|
-
|
|
339548
|
+
1. Complex multi-step tasks \u2014 when a task requires 3 or more distinct steps or actions
|
|
339549
|
+
2. Non-trivial and complex tasks \u2014 tasks that require careful planning or multiple operations
|
|
339550
|
+
3. User explicitly requests a todo list
|
|
339551
|
+
4. User provides multiple tasks \u2014 a list of things to be done (numbered or comma-separated)
|
|
339552
|
+
5. After receiving new instructions \u2014 immediately capture user requirements as todos
|
|
339553
|
+
6. When you start working on a task \u2014 mark it in_progress BEFORE beginning work; only one item should be in_progress at a time
|
|
339554
|
+
7. After completing a task \u2014 mark it completed and add any follow-up work discovered during implementation
|
|
339555
|
+
|
|
339556
|
+
Work is non-trivial when it needs planning, investigation, multiple
|
|
339557
|
+
deliverables, dependencies, several features, or post-change verification.
|
|
339558
|
+
Investigate first when scope is unknown so the list records concrete
|
|
339559
|
+
outcomes rather than guesses. A feature-rich
|
|
339513
339560
|
single-file build is non-trivial even if one Write call could create it.
|
|
339514
|
-
Investigate first when scope is unknown so the list records concrete outcomes.
|
|
339515
339561
|
|
|
339516
|
-
|
|
339517
|
-
|
|
339562
|
+
## When NOT to Use This Tool
|
|
339563
|
+
|
|
339564
|
+
Skip using this tool when:
|
|
339565
|
+
|
|
339566
|
+
1. There is only a single, straightforward task
|
|
339567
|
+
2. The task is trivial and tracking it provides no organisational benefit
|
|
339568
|
+
3. The task can be completed in less than 3 trivial steps
|
|
339569
|
+
4. The task is purely conversational or informational
|
|
339570
|
+
|
|
339571
|
+
If there is one trivial task to do, just do it. Ceremony on a one-line request
|
|
339572
|
+
is what trains users to switch this off.
|
|
339573
|
+
|
|
339574
|
+
## Examples of When to Use the Todo List
|
|
339575
|
+
|
|
339576
|
+
<example>
|
|
339577
|
+
User: I want to add a dark mode toggle to the application settings. Make sure you run the tests and build when you're done!
|
|
339578
|
+
Assistant: *Creates todo list with the following items:*
|
|
339579
|
+
1. Creating dark mode toggle component in Settings page
|
|
339580
|
+
2. Adding dark mode state management (context/store)
|
|
339581
|
+
3. Implementing CSS-in-JS styles for dark theme
|
|
339582
|
+
4. Updating existing components to support theme switching
|
|
339583
|
+
5. Running tests and build process, addressing any failures or errors that occur
|
|
339584
|
+
*Begins working on the first task*
|
|
339585
|
+
|
|
339586
|
+
<reasoning>
|
|
339587
|
+
The assistant used the todo list because:
|
|
339588
|
+
1. Adding dark mode is a multi-step feature requiring UI, state management, and styling changes
|
|
339589
|
+
2. The user explicitly requested tests and build be run afterward
|
|
339590
|
+
3. The assistant added the verification step as its own tracked outcome
|
|
339591
|
+
</reasoning>
|
|
339592
|
+
</example>
|
|
339593
|
+
|
|
339594
|
+
<example>
|
|
339595
|
+
User: Help me rename the function getCwd to getCurrentWorkingDirectory across my project
|
|
339596
|
+
Assistant: *Uses grep or search tools to locate all instances of getCwd in the codebase*
|
|
339597
|
+
I've found 15 instances of 'getCwd' across 8 different files.
|
|
339598
|
+
*Creates todo list with specific items for each file that needs updating*
|
|
339599
|
+
|
|
339600
|
+
<reasoning>
|
|
339601
|
+
The assistant used the todo list because:
|
|
339602
|
+
1. It searched first to understand the scope of the task
|
|
339603
|
+
2. Finding multiple occurrences across files made this a multi-step task
|
|
339604
|
+
3. The list ensures every instance is tracked and updated systematically
|
|
339605
|
+
</reasoning>
|
|
339606
|
+
</example>
|
|
339607
|
+
|
|
339608
|
+
<example>
|
|
339609
|
+
User: I need to implement these features for my e-commerce site: user registration, product catalog, shopping cart, and checkout flow.
|
|
339610
|
+
Assistant: *Creates a todo list breaking down each feature into specific tasks based on the project architecture*
|
|
339611
|
+
Let's start with user registration.
|
|
339612
|
+
|
|
339613
|
+
<reasoning>
|
|
339614
|
+
The assistant used the todo list because:
|
|
339615
|
+
1. The user provided multiple complex features in a comma-separated list
|
|
339616
|
+
2. The list organises large features into manageable outcomes
|
|
339617
|
+
3. It allows tracking progress across the entire implementation
|
|
339618
|
+
</reasoning>
|
|
339619
|
+
</example>
|
|
339620
|
+
|
|
339621
|
+
<example>
|
|
339622
|
+
User: make me a warship space game, full advanced, one file html+js
|
|
339623
|
+
Assistant: *Creates todo list: 1) Scaffold the HTML shell and canvas, 2) Implement the render and game loop, 3) Implement player ship movement and physics, 4) Implement enemy fleet and AI, 5) Implement collision, damage and scoring, 6) Write the file and verify it opens in a browser*
|
|
339624
|
+
*Marks the first item in_progress, then writes the file*
|
|
339625
|
+
|
|
339626
|
+
<reasoning>
|
|
339627
|
+
The assistant used the todo list because a "full advanced" game is a
|
|
339628
|
+
feature-rich build with several independent systems and a verification step,
|
|
339629
|
+
even though the deliverable is a single file produced by one Write call. The
|
|
339630
|
+
number of files is not what makes work non-trivial.
|
|
339631
|
+
</reasoning>
|
|
339632
|
+
</example>
|
|
339633
|
+
|
|
339634
|
+
## Examples of When NOT to Use the Todo List
|
|
339635
|
+
|
|
339636
|
+
<example>
|
|
339637
|
+
User: How do I print 'Hello World' in Python?
|
|
339638
|
+
Assistant: In Python, you can print "Hello World" with this simple code:
|
|
339639
|
+
|
|
339640
|
+
python
|
|
339641
|
+
print("Hello World")
|
|
339642
|
+
|
|
339643
|
+
<reasoning>
|
|
339644
|
+
A single trivial task completed in one step. Nothing to track.
|
|
339645
|
+
</reasoning>
|
|
339646
|
+
</example>
|
|
339647
|
+
|
|
339648
|
+
<example>
|
|
339649
|
+
User: What does the git status command do?
|
|
339650
|
+
Assistant: The git status command shows the current state of your working directory and staging area.
|
|
339651
|
+
|
|
339652
|
+
<reasoning>
|
|
339653
|
+
An informational request with no coding task to complete.
|
|
339654
|
+
</reasoning>
|
|
339655
|
+
</example>
|
|
339656
|
+
|
|
339657
|
+
<example>
|
|
339658
|
+
User: Can you add a comment to the calculateTotal function to explain what it does?
|
|
339659
|
+
Assistant: Adds the comment with a single ${FILE_EDIT_TOOL_NAME} call and reports the result.
|
|
339660
|
+
|
|
339661
|
+
<reasoning>
|
|
339662
|
+
A single straightforward edit confined to one location. No systematic
|
|
339663
|
+
organisation required. Note that the edit is performed by issuing the tool
|
|
339664
|
+
call, not by describing it \u2014 a narrated action is not an executed one.
|
|
339665
|
+
</reasoning>
|
|
339666
|
+
</example>
|
|
339518
339667
|
|
|
339519
339668
|
## Lifecycle
|
|
339520
339669
|
|
|
@@ -339547,7 +339696,8 @@ required todo is completed or an honest blocker has been reported.
|
|
|
339547
339696
|
|
|
339548
339697
|
Invoke tools through their native structured interfaces. Narrating a todo,
|
|
339549
339698
|
file edit, or command does not execute it, and printed arguments are not a
|
|
339550
|
-
substitute for a tool call
|
|
339699
|
+
substitute for a tool call.`;
|
|
339700
|
+
});
|
|
339551
339701
|
|
|
339552
339702
|
// src/tools/TodoWriteTool/TodoWriteTool.ts
|
|
339553
339703
|
var inputSchema9, outputSchema6, TodoWriteTool;
|
|
@@ -339559,6 +339709,7 @@ var init_TodoWriteTool = __esm(() => {
|
|
|
339559
339709
|
init_tasks();
|
|
339560
339710
|
init_types10();
|
|
339561
339711
|
init_constants2();
|
|
339712
|
+
init_prompt11();
|
|
339562
339713
|
inputSchema9 = lazySchema(() => exports_external.strictObject({
|
|
339563
339714
|
todos: TodoListSchema().describe("The updated todo list")
|
|
339564
339715
|
}));
|
|
@@ -358464,7 +358615,7 @@ ${sleepGuidance ? sleepGuidance + `
|
|
|
358464
358615
|
- Before running destructive operations (e.g., git reset --hard, git push --force, git checkout --), consider whether there is a safer alternative that achieves the same goal. Only use destructive operations when they are truly the best approach.
|
|
358465
358616
|
- Never skip hooks (--no-verify) or bypass signing (--no-gpg-sign, -c commit.gpgsign=false) unless the user has explicitly asked for it. If a hook fails, investigate and fix the underlying issue.`;
|
|
358466
358617
|
}
|
|
358467
|
-
var
|
|
358618
|
+
var init_prompt12 = __esm(() => {
|
|
358468
358619
|
init_envUtils();
|
|
358469
358620
|
init_outputLimits();
|
|
358470
358621
|
init_powershellDetection();
|
|
@@ -358986,7 +359137,7 @@ var init_PowerShellTool = __esm(() => {
|
|
|
358986
359137
|
init_cwd2();
|
|
358987
359138
|
init_commandSemantics();
|
|
358988
359139
|
init_powershellPermissions();
|
|
358989
|
-
|
|
359140
|
+
init_prompt12();
|
|
358990
359141
|
init_readOnlyValidation2();
|
|
358991
359142
|
init_UI7();
|
|
358992
359143
|
jsx_dev_runtime124 = __toESM(require_jsx_dev_runtime(), 1);
|
|
@@ -361111,7 +361262,7 @@ Usage:${getPreReadInstruction2()}
|
|
|
361111
361262
|
- The edit will FAIL if \`old_string\` is not unique in the file. Either provide a larger string with more surrounding context to make it unique or use \`replace_all\` to change every instance of \`old_string\`.${minimalUniquenessHint}
|
|
361112
361263
|
- Use \`replace_all\` for replacing and renaming strings across the file. This parameter is useful if you want to rename a variable for instance.`;
|
|
361113
361264
|
}
|
|
361114
|
-
var
|
|
361265
|
+
var init_prompt13 = __esm(() => {
|
|
361115
361266
|
init_file();
|
|
361116
361267
|
init_prompt3();
|
|
361117
361268
|
});
|
|
@@ -364268,7 +364419,7 @@ var init_FileEditTool = __esm(() => {
|
|
|
364268
364419
|
init_filesystem();
|
|
364269
364420
|
init_shellRuleMatching();
|
|
364270
364421
|
init_validateEditTool();
|
|
364271
|
-
|
|
364422
|
+
init_prompt13();
|
|
364272
364423
|
init_types11();
|
|
364273
364424
|
init_UI8();
|
|
364274
364425
|
init_utils10();
|
|
@@ -369934,7 +370085,7 @@ var BRIEF_TOOL_NAME2 = "SendUserMessage", LEGACY_BRIEF_TOOL_NAME2 = "Brief", DES
|
|
|
369934
370085
|
\`message\` supports markdown. \`attachments\` takes file paths (absolute or cwd-relative) for images, diffs, logs.
|
|
369935
370086
|
|
|
369936
370087
|
\`status\` labels intent: 'normal' when replying to what they just asked; 'proactive' when you're initiating \u2014 a scheduled task finished, a blocker surfaced during background work, you need input on something they haven't asked about. Set it honestly; downstream routing uses it.`, BRIEF_PROACTIVE_SECTION;
|
|
369937
|
-
var
|
|
370088
|
+
var init_prompt14 = __esm(() => {
|
|
369938
370089
|
BRIEF_PROACTIVE_SECTION = `## Talking to the user
|
|
369939
370090
|
|
|
369940
370091
|
${BRIEF_TOOL_NAME2} is where your replies go. Text outside it is visible if the user expands the detail view, but most won't \u2014 assume unread. Anything you want them to actually see goes through ${BRIEF_TOOL_NAME2}. The failure mode: the real answer lives in plain text while ${BRIEF_TOOL_NAME2} just says "done!" \u2014 they see "done!" and miss everything.
|
|
@@ -370133,7 +370284,7 @@ var init_BriefTool = __esm(() => {
|
|
|
370133
370284
|
init_envUtils();
|
|
370134
370285
|
init_stringUtils();
|
|
370135
370286
|
init_attachments();
|
|
370136
|
-
|
|
370287
|
+
init_prompt14();
|
|
370137
370288
|
init_UI16();
|
|
370138
370289
|
inputSchema26 = lazySchema(() => exports_external.strictObject({
|
|
370139
370290
|
message: exports_external.string().describe("The message for the user. Supports markdown formatting."),
|
|
@@ -371418,7 +371569,7 @@ var init_inProcessTeammateHelpers = __esm(() => {
|
|
|
371418
371569
|
|
|
371419
371570
|
// src/tools/ExitPlanModeTool/prompt.ts
|
|
371420
371571
|
var ASK_USER_QUESTION_TOOL_NAME2 = "AskUserQuestion", EXIT_PLAN_MODE_V2_TOOL_PROMPT;
|
|
371421
|
-
var
|
|
371572
|
+
var init_prompt15 = __esm(() => {
|
|
371422
371573
|
EXIT_PLAN_MODE_V2_TOOL_PROMPT = `Use this tool when you are in plan mode and have finished writing your plan to the plan file and are ready for user approval.
|
|
371423
371574
|
|
|
371424
371575
|
## How This Tool Works
|
|
@@ -371651,7 +371802,7 @@ var init_ExitPlanModeV2Tool = __esm(() => {
|
|
|
371651
371802
|
init_slowOperations();
|
|
371652
371803
|
init_teammate();
|
|
371653
371804
|
init_teammateMailbox();
|
|
371654
|
-
|
|
371805
|
+
init_prompt15();
|
|
371655
371806
|
init_UI18();
|
|
371656
371807
|
allowedPromptSchema = lazySchema(() => exports_external.object({
|
|
371657
371808
|
tool: exports_external.enum(["Bash"]).describe("The tool this prompt applies to"),
|
|
@@ -373155,7 +373306,7 @@ Notes:
|
|
|
373155
373306
|
- Returns file paths with line ranges and a short preview for each hit.`;
|
|
373156
373307
|
}
|
|
373157
373308
|
var CODE_SEARCH_TOOL_NAME = "CodeSearch";
|
|
373158
|
-
var
|
|
373309
|
+
var init_prompt16 = __esm(() => {
|
|
373159
373310
|
init_prompt2();
|
|
373160
373311
|
});
|
|
373161
373312
|
|
|
@@ -373175,7 +373326,7 @@ var init_CodeSearchTool = __esm(() => {
|
|
|
373175
373326
|
init_cwd2();
|
|
373176
373327
|
init_codeIndex();
|
|
373177
373328
|
init_semanticNumber();
|
|
373178
|
-
|
|
373329
|
+
init_prompt16();
|
|
373179
373330
|
inputSchema31 = lazySchema(() => exports_external.strictObject({
|
|
373180
373331
|
query: exports_external.string().describe('Natural-language description of the code you are looking for (e.g. "retry logic for failed network requests").'),
|
|
373181
373332
|
limit: semanticNumber(exports_external.number().optional()).describe("Maximum number of results to return. Defaults to 10."),
|
|
@@ -375284,7 +375435,7 @@ function getEnterPlanModeToolPrompt() {
|
|
|
375284
375435
|
return process.env.USER_TYPE === "ant" ? getEnterPlanModeToolPromptAnt() : getEnterPlanModeToolPromptExternal();
|
|
375285
375436
|
}
|
|
375286
375437
|
var WHAT_HAPPENS_SECTION;
|
|
375287
|
-
var
|
|
375438
|
+
var init_prompt17 = __esm(() => {
|
|
375288
375439
|
init_planModeV2();
|
|
375289
375440
|
init_prompt();
|
|
375290
375441
|
WHAT_HAPPENS_SECTION = `## What Happens in Plan Mode
|
|
@@ -375363,7 +375514,7 @@ var init_EnterPlanModeTool = __esm(() => {
|
|
|
375363
375514
|
init_PermissionUpdate();
|
|
375364
375515
|
init_permissionSetup();
|
|
375365
375516
|
init_planModeV2();
|
|
375366
|
-
|
|
375517
|
+
init_prompt17();
|
|
375367
375518
|
init_UI20();
|
|
375368
375519
|
inputSchema34 = lazySchema(() => exports_external.strictObject({}));
|
|
375369
375520
|
outputSchema29 = lazySchema(() => exports_external.object({
|
|
@@ -376694,7 +376845,7 @@ ${lines.join(`
|
|
|
376694
376845
|
}
|
|
376695
376846
|
}
|
|
376696
376847
|
var DESCRIPTION13 = "Get or set UR configuration settings.";
|
|
376697
|
-
var
|
|
376848
|
+
var init_prompt18 = __esm(() => {
|
|
376698
376849
|
init_modelOptions();
|
|
376699
376850
|
init_voiceModeEnabled();
|
|
376700
376851
|
init_supportedSettings();
|
|
@@ -377409,7 +377560,7 @@ var init_ConfigTool = __esm(() => {
|
|
|
377409
377560
|
init_log2();
|
|
377410
377561
|
init_settings2();
|
|
377411
377562
|
init_slowOperations();
|
|
377412
|
-
|
|
377563
|
+
init_prompt18();
|
|
377413
377564
|
init_supportedSettings();
|
|
377414
377565
|
init_UI23();
|
|
377415
377566
|
inputSchema37 = lazySchema(() => exports_external.strictObject({
|
|
@@ -377836,7 +377987,7 @@ ${teammateTips}- Check TaskList first to avoid creating duplicate tasks
|
|
|
377836
377987
|
`;
|
|
377837
377988
|
}
|
|
377838
377989
|
var DESCRIPTION14 = "Create a new task in the task list";
|
|
377839
|
-
var
|
|
377990
|
+
var init_prompt19 = __esm(() => {
|
|
377840
377991
|
init_agentSwarmsEnabled();
|
|
377841
377992
|
});
|
|
377842
377993
|
|
|
@@ -377849,7 +378000,7 @@ var init_TaskCreateTool = __esm(() => {
|
|
|
377849
378000
|
init_tasks();
|
|
377850
378001
|
init_teammate();
|
|
377851
378002
|
init_taskIdInput();
|
|
377852
|
-
|
|
378003
|
+
init_prompt19();
|
|
377853
378004
|
inputSchema38 = lazySchema(() => {
|
|
377854
378005
|
const TaskIdSchema = taskIdInputSchema("A task dependency ID. Positive integer JSON values are accepted and normalized to strings.");
|
|
377855
378006
|
return exports_external.strictObject({
|
|
@@ -378696,7 +378847,7 @@ Use TaskGet with a specific task ID to view full details including description a
|
|
|
378696
378847
|
${teammateWorkflow}`;
|
|
378697
378848
|
}
|
|
378698
378849
|
var DESCRIPTION17 = "List all tasks in the task list";
|
|
378699
|
-
var
|
|
378850
|
+
var init_prompt20 = __esm(() => {
|
|
378700
378851
|
init_agentSwarmsEnabled();
|
|
378701
378852
|
});
|
|
378702
378853
|
|
|
@@ -378706,7 +378857,7 @@ var init_TaskListTool = __esm(() => {
|
|
|
378706
378857
|
init_v4();
|
|
378707
378858
|
init_Tool();
|
|
378708
378859
|
init_tasks();
|
|
378709
|
-
|
|
378860
|
+
init_prompt20();
|
|
378710
378861
|
inputSchema41 = lazySchema(() => exports_external.strictObject({}));
|
|
378711
378862
|
outputSchema36 = lazySchema(() => exports_external.object({
|
|
378712
378863
|
tasks: exports_external.array(exports_external.object({
|
|
@@ -382042,7 +382193,7 @@ Usage notes:
|
|
|
382042
382193
|
|
|
382043
382194
|
${forkEnabled ? forkExamples : currentExamples}`;
|
|
382044
382195
|
}
|
|
382045
|
-
var
|
|
382196
|
+
var init_prompt21 = __esm(() => {
|
|
382046
382197
|
init_growthbook();
|
|
382047
382198
|
init_auth();
|
|
382048
382199
|
init_embeddedTools();
|
|
@@ -382111,7 +382262,7 @@ var init_AgentTool = __esm(() => {
|
|
|
382111
382262
|
init_constants2();
|
|
382112
382263
|
init_forkSubagent();
|
|
382113
382264
|
init_loadAgentsDir();
|
|
382114
|
-
|
|
382265
|
+
init_prompt21();
|
|
382115
382266
|
init_runAgent();
|
|
382116
382267
|
init_UI4();
|
|
382117
382268
|
jsx_dev_runtime153 = __toESM(require_jsx_dev_runtime(), 1);
|
|
@@ -385395,7 +385546,7 @@ function getSimplePrompt() {
|
|
|
385395
385546
|
].join(`
|
|
385396
385547
|
`);
|
|
385397
385548
|
}
|
|
385398
|
-
var
|
|
385549
|
+
var init_prompt22 = __esm(() => {
|
|
385399
385550
|
init_prompts4();
|
|
385400
385551
|
init_attribution();
|
|
385401
385552
|
init_embeddedTools();
|
|
@@ -385852,7 +386003,7 @@ var init_BashTool = __esm(() => {
|
|
|
385852
386003
|
init_state();
|
|
385853
386004
|
init_bashPermissions();
|
|
385854
386005
|
init_commandSemantics2();
|
|
385855
|
-
|
|
386006
|
+
init_prompt22();
|
|
385856
386007
|
init_readOnlyValidation();
|
|
385857
386008
|
init_sedEditParser();
|
|
385858
386009
|
init_shouldUseSandbox();
|
|
@@ -388136,7 +388287,7 @@ function isAnyTracingEnabled() {
|
|
|
388136
388287
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
388137
388288
|
}
|
|
388138
388289
|
function getTracer() {
|
|
388139
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.
|
|
388290
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.68.0");
|
|
388140
388291
|
}
|
|
388141
388292
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
388142
388293
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -395923,7 +396074,7 @@ var NO_TOOLS_PREAMBLE = `CRITICAL: Respond with TEXT ONLY. Do NOT call any tools
|
|
|
395923
396074
|
- Errors that you ran into and how you fixed them
|
|
395924
396075
|
- Pay special attention to specific user feedback that you received, especially if the user told you to do something differently.
|
|
395925
396076
|
2. Double-check for technical accuracy and completeness, addressing each required element thoroughly.`, BASE_COMPACT_PROMPT, PARTIAL_COMPACT_PROMPT, PARTIAL_COMPACT_UP_TO_PROMPT, NO_TOOLS_TRAILER;
|
|
395926
|
-
var
|
|
396077
|
+
var init_prompt23 = __esm(() => {
|
|
395927
396078
|
BASE_COMPACT_PROMPT = `Your task is to create a detailed summary of the conversation so far, paying close attention to the user's explicit requests and your previous actions.
|
|
395928
396079
|
This summary should be thorough in capturing technical details, code patterns, and architectural decisions that would be essential for continuing development work without losing context.
|
|
395929
396080
|
|
|
@@ -397088,7 +397239,7 @@ var init_compact = __esm(() => {
|
|
|
397088
397239
|
init_withRetry();
|
|
397089
397240
|
init_internalLogging();
|
|
397090
397241
|
init_tokenEstimation();
|
|
397091
|
-
|
|
397242
|
+
init_prompt23();
|
|
397092
397243
|
});
|
|
397093
397244
|
|
|
397094
397245
|
// src/services/compact/postCompactCleanup.ts
|
|
@@ -397628,7 +397779,7 @@ var init_sessionMemoryCompact = __esm(() => {
|
|
|
397628
397779
|
init_sessionMemoryUtils();
|
|
397629
397780
|
init_compact();
|
|
397630
397781
|
init_microCompact();
|
|
397631
|
-
|
|
397782
|
+
init_prompt23();
|
|
397632
397783
|
DEFAULT_SM_COMPACT_CONFIG = {
|
|
397633
397784
|
minTokens: 1e4,
|
|
397634
397785
|
minTextBlockMessages: 5,
|
|
@@ -402628,7 +402779,7 @@ var init_attachments2 = __esm(() => {
|
|
|
402628
402779
|
init_file();
|
|
402629
402780
|
init_loadAgentsDir();
|
|
402630
402781
|
init_constants2();
|
|
402631
|
-
|
|
402782
|
+
init_prompt21();
|
|
402632
402783
|
init_permissions2();
|
|
402633
402784
|
init_auth();
|
|
402634
402785
|
init_mcpStringUtils();
|
|
@@ -419380,7 +419531,7 @@ function Feedback({
|
|
|
419380
419531
|
platform: env2.platform,
|
|
419381
419532
|
gitRepo: envInfo.isGit,
|
|
419382
419533
|
terminal: env2.terminal,
|
|
419383
|
-
version: "1.
|
|
419534
|
+
version: "1.68.0",
|
|
419384
419535
|
transcript: normalizeMessagesForAPI(messages),
|
|
419385
419536
|
errors: sanitizedErrors,
|
|
419386
419537
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -419572,7 +419723,7 @@ function Feedback({
|
|
|
419572
419723
|
", ",
|
|
419573
419724
|
env2.terminal,
|
|
419574
419725
|
", v",
|
|
419575
|
-
"1.
|
|
419726
|
+
"1.68.0"
|
|
419576
419727
|
]
|
|
419577
419728
|
}, undefined, true, undefined, this)
|
|
419578
419729
|
]
|
|
@@ -419678,7 +419829,7 @@ ${sanitizedDescription}
|
|
|
419678
419829
|
` + `**Environment Info**
|
|
419679
419830
|
` + `- Platform: ${env2.platform}
|
|
419680
419831
|
` + `- Terminal: ${env2.terminal}
|
|
419681
|
-
` + `- Version: ${"1.
|
|
419832
|
+
` + `- Version: ${"1.68.0"}
|
|
419682
419833
|
` + `- Feedback ID: ${feedbackId}
|
|
419683
419834
|
` + `
|
|
419684
419835
|
**Errors**
|
|
@@ -422788,7 +422939,7 @@ function buildPrimarySection() {
|
|
|
422788
422939
|
}, undefined, false, undefined, this);
|
|
422789
422940
|
return [{
|
|
422790
422941
|
label: "Version",
|
|
422791
|
-
value: "1.
|
|
422942
|
+
value: "1.68.0"
|
|
422792
422943
|
}, {
|
|
422793
422944
|
label: "Session name",
|
|
422794
422945
|
value: nameValue
|
|
@@ -426118,7 +426269,7 @@ function Config({
|
|
|
426118
426269
|
}
|
|
426119
426270
|
}, undefined, false, undefined, this)
|
|
426120
426271
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
426121
|
-
currentVersion: "1.
|
|
426272
|
+
currentVersion: "1.68.0",
|
|
426122
426273
|
onChoice: (choice) => {
|
|
426123
426274
|
setShowSubmenu(null);
|
|
426124
426275
|
setTabsHidden(false);
|
|
@@ -426130,7 +426281,7 @@ function Config({
|
|
|
426130
426281
|
autoUpdatesChannel: "stable"
|
|
426131
426282
|
};
|
|
426132
426283
|
if (choice === "stay") {
|
|
426133
|
-
newSettings.minimumVersion = "1.
|
|
426284
|
+
newSettings.minimumVersion = "1.68.0";
|
|
426134
426285
|
}
|
|
426135
426286
|
updateSettingsForSource("userSettings", newSettings);
|
|
426136
426287
|
setSettingsData((prev_27) => ({
|
|
@@ -434204,7 +434355,7 @@ function HelpV2(t0) {
|
|
|
434204
434355
|
let t6;
|
|
434205
434356
|
if ($2[31] !== tabs) {
|
|
434206
434357
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
434207
|
-
title: `UR v${"1.
|
|
434358
|
+
title: `UR v${"1.68.0"}`,
|
|
434208
434359
|
color: "professionalBlue",
|
|
434209
434360
|
defaultTab: "general",
|
|
434210
434361
|
children: tabs
|
|
@@ -435137,7 +435288,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
435137
435288
|
async function handleInitialize(options2) {
|
|
435138
435289
|
return {
|
|
435139
435290
|
name: "UR",
|
|
435140
|
-
version: "1.
|
|
435291
|
+
version: "1.68.0",
|
|
435141
435292
|
protocolVersion: "0.1.0",
|
|
435142
435293
|
workspaceRoot: options2.cwd,
|
|
435143
435294
|
capabilities: {
|
|
@@ -452245,7 +452396,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
452245
452396
|
return [];
|
|
452246
452397
|
}
|
|
452247
452398
|
}
|
|
452248
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.
|
|
452399
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.68.0") {
|
|
452249
452400
|
if (process.env.USER_TYPE === "ant") {
|
|
452250
452401
|
const changelog = "";
|
|
452251
452402
|
if (changelog) {
|
|
@@ -452272,7 +452423,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.66.1")
|
|
|
452272
452423
|
releaseNotes
|
|
452273
452424
|
};
|
|
452274
452425
|
}
|
|
452275
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.
|
|
452426
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.68.0") {
|
|
452276
452427
|
if (process.env.USER_TYPE === "ant") {
|
|
452277
452428
|
const changelog = "";
|
|
452278
452429
|
if (changelog) {
|
|
@@ -455138,7 +455289,7 @@ function getRecentActivitySync() {
|
|
|
455138
455289
|
return cachedActivity;
|
|
455139
455290
|
}
|
|
455140
455291
|
function getLogoDisplayData() {
|
|
455141
|
-
const version2 = process.env.DEMO_VERSION ?? "1.
|
|
455292
|
+
const version2 = process.env.DEMO_VERSION ?? "1.68.0";
|
|
455142
455293
|
const serverUrl = getDirectConnectServerUrl();
|
|
455143
455294
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
455144
455295
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -456005,7 +456156,7 @@ function LogoV2() {
|
|
|
456005
456156
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
456006
456157
|
t2 = () => {
|
|
456007
456158
|
const currentConfig2 = getGlobalConfig();
|
|
456008
|
-
if (currentConfig2.lastReleaseNotesSeen === "1.
|
|
456159
|
+
if (currentConfig2.lastReleaseNotesSeen === "1.68.0") {
|
|
456009
456160
|
return;
|
|
456010
456161
|
}
|
|
456011
456162
|
saveGlobalConfig(_temp325);
|
|
@@ -456690,12 +456841,12 @@ function LogoV2() {
|
|
|
456690
456841
|
return t41;
|
|
456691
456842
|
}
|
|
456692
456843
|
function _temp325(current) {
|
|
456693
|
-
if (current.lastReleaseNotesSeen === "1.
|
|
456844
|
+
if (current.lastReleaseNotesSeen === "1.68.0") {
|
|
456694
456845
|
return current;
|
|
456695
456846
|
}
|
|
456696
456847
|
return {
|
|
456697
456848
|
...current,
|
|
456698
|
-
lastReleaseNotesSeen: "1.
|
|
456849
|
+
lastReleaseNotesSeen: "1.68.0"
|
|
456699
456850
|
};
|
|
456700
456851
|
}
|
|
456701
456852
|
function _temp241(s_0) {
|
|
@@ -470868,7 +471019,7 @@ Mode: ${mode} \u2014 ${MODE_GUIDANCE[mode]}
|
|
|
470868
471019
|
${SECURITY_BOUNDARY}`;
|
|
470869
471020
|
}
|
|
470870
471021
|
var SECURITY_BOUNDARY, BASE, MODE_GUIDANCE, SECURITY_MODES;
|
|
470871
|
-
var
|
|
471022
|
+
var init_prompt24 = __esm(() => {
|
|
470872
471023
|
SECURITY_BOUNDARY = "SECURITY SAFETY BOUNDARY (mandatory): operate only against systems the user owns or is explicitly authorized to test. " + "Before any active test, require a defined, approved scope. Never assist with unauthorized access, credential theft, " + "malware, stealth, persistence, evasion, exfiltration, destructive exploitation, DDoS, phishing, or attacks on third-party " + "systems. Never run destructive commands or escalate privileges silently, never auto-run exploits, and always redact secrets. " + "If a request is unsafe or unauthorized, refuse the harmful part and redirect to a defensive, lab, or authorized alternative " + "(audit, hardening, detection logic, threat model, secure-code review, local lab).";
|
|
470873
471024
|
BASE = "You are 309 in security-engineering mode: a professional white-hat / blue-team / purple-team security engineer. " + "Use the Security Containment Firewall, scope, and tool-policy registry. Map findings to OWASP, CWE, CVSS, and MITRE ATT&CK " + "where relevant. Be precise and evidence-based: include severity, confidence, and remediation; never claim something is " + "exploited unless it was verified non-destructively. Prefer passive, non-destructive checks; require approval for active tools.";
|
|
470874
471025
|
MODE_GUIDANCE = {
|
|
@@ -471707,8 +471858,8 @@ Run /security report for the full report.`;
|
|
|
471707
471858
|
}
|
|
471708
471859
|
case "report": {
|
|
471709
471860
|
const all4 = findings.all();
|
|
471710
|
-
const
|
|
471711
|
-
return
|
|
471861
|
+
const fmt2 = rest[0] ?? "markdown";
|
|
471862
|
+
return fmt2 === "json" ? toJson(all4) : fmt2 === "sarif" ? toSarif(all4) : fmt2 === "csv" ? toCsv(all4) : toMarkdown(all4);
|
|
471712
471863
|
}
|
|
471713
471864
|
case "findings": {
|
|
471714
471865
|
const all4 = findings.all();
|
|
@@ -471871,7 +472022,7 @@ var init_commands2 = __esm(() => {
|
|
|
471871
472022
|
init_attackSurface();
|
|
471872
472023
|
init_reports();
|
|
471873
472024
|
init_doctor3();
|
|
471874
|
-
|
|
472025
|
+
init_prompt24();
|
|
471875
472026
|
init_mappings();
|
|
471876
472027
|
init_network();
|
|
471877
472028
|
init_hardening();
|
|
@@ -471899,7 +472050,7 @@ var init_security = __esm(() => {
|
|
|
471899
472050
|
init_findings();
|
|
471900
472051
|
init_reports();
|
|
471901
472052
|
init_doctor3();
|
|
471902
|
-
|
|
472053
|
+
init_prompt24();
|
|
471903
472054
|
init_commands2();
|
|
471904
472055
|
});
|
|
471905
472056
|
|
|
@@ -473641,7 +473792,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
473641
473792
|
if (spec.name !== specName) {
|
|
473642
473793
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
473643
473794
|
}
|
|
473644
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.
|
|
473795
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.68.0" : "1.68.0");
|
|
473645
473796
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
473646
473797
|
throw new Error("invalid ur-agent package version");
|
|
473647
473798
|
}
|
|
@@ -474634,7 +474785,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
474634
474785
|
path: ".github/workflows/ur.yml",
|
|
474635
474786
|
root: "project",
|
|
474636
474787
|
content: compileAgenticCiWorkflow("default", {
|
|
474637
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.
|
|
474788
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.68.0" : "1.68.0"
|
|
474638
474789
|
})
|
|
474639
474790
|
},
|
|
474640
474791
|
{
|
|
@@ -474704,7 +474855,7 @@ function value(tokens, flag) {
|
|
|
474704
474855
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
474705
474856
|
}
|
|
474706
474857
|
function cliVersion() {
|
|
474707
|
-
return typeof MACRO !== "undefined" ? "1.
|
|
474858
|
+
return typeof MACRO !== "undefined" ? "1.68.0" : "1.68.0";
|
|
474708
474859
|
}
|
|
474709
474860
|
function workflowPath(cwd2) {
|
|
474710
474861
|
return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -480569,7 +480720,7 @@ function createAcpStdioApp(deps) {
|
|
|
480569
480720
|
}
|
|
480570
480721
|
},
|
|
480571
480722
|
authMethods: [],
|
|
480572
|
-
agentInfo: { name: "UR-Nexus", version: "1.
|
|
480723
|
+
agentInfo: { name: "UR-Nexus", version: "1.68.0" }
|
|
480573
480724
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
480574
480725
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
480575
480726
|
await runtime2.announce({
|
|
@@ -480666,7 +480817,7 @@ function createAcpStdioAgent(deps) {
|
|
|
480666
480817
|
}
|
|
480667
480818
|
},
|
|
480668
480819
|
authMethods: [],
|
|
480669
|
-
agentInfo: { name: "UR-Nexus", version: "1.
|
|
480820
|
+
agentInfo: { name: "UR-Nexus", version: "1.68.0" }
|
|
480670
480821
|
});
|
|
480671
480822
|
return;
|
|
480672
480823
|
case "authenticate":
|
|
@@ -691826,7 +691977,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
691826
691977
|
smapsRollup,
|
|
691827
691978
|
platform: process.platform,
|
|
691828
691979
|
nodeVersion: process.version,
|
|
691829
|
-
ccVersion: "1.
|
|
691980
|
+
ccVersion: "1.68.0"
|
|
691830
691981
|
};
|
|
691831
691982
|
}
|
|
691832
691983
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -692406,7 +692557,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
692406
692557
|
var call153 = async () => {
|
|
692407
692558
|
return {
|
|
692408
692559
|
type: "text",
|
|
692409
|
-
value: "1.
|
|
692560
|
+
value: "1.68.0"
|
|
692410
692561
|
};
|
|
692411
692562
|
}, version2, version_default;
|
|
692412
692563
|
var init_version = __esm(() => {
|
|
@@ -703586,7 +703737,7 @@ function generateHtmlReport(data, insights) {
|
|
|
703586
703737
|
</html>`;
|
|
703587
703738
|
}
|
|
703588
703739
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
703589
|
-
const version3 = typeof MACRO !== "undefined" ? "1.
|
|
703740
|
+
const version3 = typeof MACRO !== "undefined" ? "1.68.0" : "unknown";
|
|
703590
703741
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
703591
703742
|
const facets_summary = {
|
|
703592
703743
|
total: facets.size,
|
|
@@ -707913,7 +708064,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
707913
708064
|
init_settings2();
|
|
707914
708065
|
init_slowOperations();
|
|
707915
708066
|
init_uuid();
|
|
707916
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.
|
|
708067
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.68.0" : "unknown";
|
|
707917
708068
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
707918
708069
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
707919
708070
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -709128,7 +709279,7 @@ var init_filesystem = __esm(() => {
|
|
|
709128
709279
|
});
|
|
709129
709280
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
709130
709281
|
const nonce = randomBytes20(16).toString("hex");
|
|
709131
|
-
return join230(getURTempDir(), "bundled-skills", "1.
|
|
709282
|
+
return join230(getURTempDir(), "bundled-skills", "1.68.0", nonce);
|
|
709132
709283
|
});
|
|
709133
709284
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
709134
709285
|
});
|
|
@@ -715434,7 +715585,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
715434
715585
|
}
|
|
715435
715586
|
function computeFingerprintFromMessages(messages) {
|
|
715436
715587
|
const firstMessageText = extractFirstMessageText(messages);
|
|
715437
|
-
return computeFingerprint(firstMessageText, "1.
|
|
715588
|
+
return computeFingerprint(firstMessageText, "1.68.0");
|
|
715438
715589
|
}
|
|
715439
715590
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
715440
715591
|
var init_fingerprint = () => {};
|
|
@@ -717333,7 +717484,7 @@ async function sideQuery(opts) {
|
|
|
717333
717484
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
717334
717485
|
}
|
|
717335
717486
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
717336
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.
|
|
717487
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.68.0");
|
|
717337
717488
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
717338
717489
|
const systemBlocks = [
|
|
717339
717490
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -722120,7 +722271,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
722120
722271
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
722121
722272
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
722122
722273
|
betas: getSdkBetas(),
|
|
722123
|
-
ur_version: "1.
|
|
722274
|
+
ur_version: "1.68.0",
|
|
722124
722275
|
output_style: outputStyle2,
|
|
722125
722276
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
722126
722277
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -736071,7 +736222,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
736071
736222
|
function getSemverPart(version3) {
|
|
736072
736223
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
736073
736224
|
}
|
|
736074
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.
|
|
736225
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.68.0") {
|
|
736075
736226
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
|
|
736076
736227
|
if (!updatedVersion) {
|
|
736077
736228
|
return null;
|
|
@@ -736120,7 +736271,7 @@ function AutoUpdater({
|
|
|
736120
736271
|
return;
|
|
736121
736272
|
}
|
|
736122
736273
|
if (false) {}
|
|
736123
|
-
const currentVersion = "1.
|
|
736274
|
+
const currentVersion = "1.68.0";
|
|
736124
736275
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
736125
736276
|
let latestVersion = await getLatestVersion(channel);
|
|
736126
736277
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -736349,12 +736500,12 @@ function NativeAutoUpdater({
|
|
|
736349
736500
|
logEvent("tengu_native_auto_updater_start", {});
|
|
736350
736501
|
try {
|
|
736351
736502
|
const maxVersion = await getMaxVersion();
|
|
736352
|
-
if (maxVersion && gt("1.
|
|
736503
|
+
if (maxVersion && gt("1.68.0", maxVersion)) {
|
|
736353
736504
|
const msg = await getMaxVersionMessage();
|
|
736354
736505
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
736355
736506
|
}
|
|
736356
736507
|
const result = await installLatest(channel);
|
|
736357
|
-
const currentVersion = "1.
|
|
736508
|
+
const currentVersion = "1.68.0";
|
|
736358
736509
|
const latencyMs = Date.now() - startTime;
|
|
736359
736510
|
if (result.lockFailed) {
|
|
736360
736511
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -736491,17 +736642,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
736491
736642
|
const maxVersion = await getMaxVersion();
|
|
736492
736643
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
736493
736644
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
736494
|
-
if (gte("1.
|
|
736495
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.
|
|
736645
|
+
if (gte("1.68.0", maxVersion)) {
|
|
736646
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.68.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
736496
736647
|
setUpdateAvailable(false);
|
|
736497
736648
|
return;
|
|
736498
736649
|
}
|
|
736499
736650
|
latest = maxVersion;
|
|
736500
736651
|
}
|
|
736501
|
-
const hasUpdate = latest && !gte("1.
|
|
736652
|
+
const hasUpdate = latest && !gte("1.68.0", latest) && !shouldSkipVersion(latest);
|
|
736502
736653
|
setUpdateAvailable(!!hasUpdate);
|
|
736503
736654
|
if (hasUpdate) {
|
|
736504
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.
|
|
736655
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.68.0"} -> ${latest}`);
|
|
736505
736656
|
}
|
|
736506
736657
|
};
|
|
736507
736658
|
$2[0] = t1;
|
|
@@ -736535,7 +736686,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
736535
736686
|
wrap: "truncate",
|
|
736536
736687
|
children: [
|
|
736537
736688
|
"currentVersion: ",
|
|
736538
|
-
"1.
|
|
736689
|
+
"1.68.0"
|
|
736539
736690
|
]
|
|
736540
736691
|
}, undefined, true, undefined, this);
|
|
736541
736692
|
$2[3] = verbose;
|
|
@@ -747228,7 +747379,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
747228
747379
|
project_dir: getOriginalCwd(),
|
|
747229
747380
|
added_dirs: addedDirs
|
|
747230
747381
|
},
|
|
747231
|
-
version: "1.
|
|
747382
|
+
version: "1.68.0",
|
|
747232
747383
|
output_style: {
|
|
747233
747384
|
name: outputStyleName
|
|
747234
747385
|
},
|
|
@@ -747306,7 +747457,7 @@ function StatusLineInner({
|
|
|
747306
747457
|
const taskValues = Object.values(tasks2);
|
|
747307
747458
|
const taskRunningCount = countActiveBackgroundTasks(taskValues);
|
|
747308
747459
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
747309
|
-
version: "1.
|
|
747460
|
+
version: "1.68.0",
|
|
747310
747461
|
providerLabel: providerRuntime.providerLabel,
|
|
747311
747462
|
authMode: providerRuntime.authLabel,
|
|
747312
747463
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -759486,7 +759637,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
759486
759637
|
} catch {}
|
|
759487
759638
|
const data = {
|
|
759488
759639
|
trigger: trigger2,
|
|
759489
|
-
version: "1.
|
|
759640
|
+
version: "1.68.0",
|
|
759490
759641
|
platform: process.platform,
|
|
759491
759642
|
transcript,
|
|
759492
759643
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -771854,7 +772005,7 @@ function WelcomeV2() {
|
|
|
771854
772005
|
dimColor: true,
|
|
771855
772006
|
children: [
|
|
771856
772007
|
"v",
|
|
771857
|
-
"1.
|
|
772008
|
+
"1.68.0"
|
|
771858
772009
|
]
|
|
771859
772010
|
}, undefined, true, undefined, this)
|
|
771860
772011
|
]
|
|
@@ -773114,7 +773265,7 @@ function completeOnboarding() {
|
|
|
773114
773265
|
saveGlobalConfig((current) => ({
|
|
773115
773266
|
...current,
|
|
773116
773267
|
hasCompletedOnboarding: true,
|
|
773117
|
-
lastOnboardingVersion: "1.
|
|
773268
|
+
lastOnboardingVersion: "1.68.0"
|
|
773118
773269
|
}));
|
|
773119
773270
|
}
|
|
773120
773271
|
function showDialog(root2, renderer) {
|
|
@@ -778158,7 +778309,7 @@ function appendToLog(path24, message) {
|
|
|
778158
778309
|
cwd: getFsImplementation().cwd(),
|
|
778159
778310
|
userType: process.env.USER_TYPE,
|
|
778160
778311
|
sessionId: getSessionId(),
|
|
778161
|
-
version: "1.
|
|
778312
|
+
version: "1.68.0"
|
|
778162
778313
|
};
|
|
778163
778314
|
getLogWriter(path24).write(messageWithTimestamp);
|
|
778164
778315
|
}
|
|
@@ -782322,8 +782473,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
782322
782473
|
}
|
|
782323
782474
|
async function checkEnvLessBridgeMinVersion() {
|
|
782324
782475
|
const cfg = await getEnvLessBridgeConfig();
|
|
782325
|
-
if (cfg.min_version && lt("1.
|
|
782326
|
-
return `Your version of UR (${"1.
|
|
782476
|
+
if (cfg.min_version && lt("1.68.0", cfg.min_version)) {
|
|
782477
|
+
return `Your version of UR (${"1.68.0"}) is too old for Remote Control.
|
|
782327
782478
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
782328
782479
|
}
|
|
782329
782480
|
return null;
|
|
@@ -782797,7 +782948,7 @@ async function initBridgeCore(params) {
|
|
|
782797
782948
|
const rawApi = createBridgeApiClient({
|
|
782798
782949
|
baseUrl,
|
|
782799
782950
|
getAccessToken,
|
|
782800
|
-
runnerVersion: "1.
|
|
782951
|
+
runnerVersion: "1.68.0",
|
|
782801
782952
|
onDebug: logForDebugging,
|
|
782802
782953
|
onAuth401,
|
|
782803
782954
|
getTrustedDeviceToken
|
|
@@ -792270,7 +792421,7 @@ function getAgUiCapabilities() {
|
|
|
792270
792421
|
name: "UR-Nexus",
|
|
792271
792422
|
type: "ur-nexus",
|
|
792272
792423
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
792273
|
-
version: "1.
|
|
792424
|
+
version: "1.68.0",
|
|
792274
792425
|
provider: "UR",
|
|
792275
792426
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
792276
792427
|
},
|
|
@@ -793410,7 +793561,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
793410
793561
|
};
|
|
793411
793562
|
const server2 = new Server({
|
|
793412
793563
|
name: "ur-nexus",
|
|
793413
|
-
version: "1.
|
|
793564
|
+
version: "1.68.0"
|
|
793414
793565
|
}, {
|
|
793415
793566
|
capabilities: {
|
|
793416
793567
|
tools: {}
|
|
@@ -794568,7 +794719,7 @@ function thrownResponse(error40) {
|
|
|
794568
794719
|
}
|
|
794569
794720
|
async function createUrMcp2026Runtime(options4) {
|
|
794570
794721
|
const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
|
|
794571
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.
|
|
794722
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.68.0" }, { capabilities: {} });
|
|
794572
794723
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
794573
794724
|
try {
|
|
794574
794725
|
await server2.connect(serverTransport);
|
|
@@ -794579,7 +794730,7 @@ async function createUrMcp2026Runtime(options4) {
|
|
|
794579
794730
|
}
|
|
794580
794731
|
const runtime2 = new Mcp2026Runtime({
|
|
794581
794732
|
cwd: options4.cwd,
|
|
794582
|
-
version: "1.
|
|
794733
|
+
version: "1.68.0",
|
|
794583
794734
|
backend: {
|
|
794584
794735
|
listTools: async () => {
|
|
794585
794736
|
const listed = await client2.listTools();
|
|
@@ -796712,7 +796863,7 @@ async function update() {
|
|
|
796712
796863
|
logEvent("tengu_update_check", {});
|
|
796713
796864
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
796714
796865
|
const result = await checkUpgradeStatus({
|
|
796715
|
-
currentVersion: "1.
|
|
796866
|
+
currentVersion: "1.68.0",
|
|
796716
796867
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
796717
796868
|
installationType: diagnostic2.installationType,
|
|
796718
796869
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -798028,7 +798179,7 @@ ${customInstructions}` : customInstructions;
|
|
|
798028
798179
|
}
|
|
798029
798180
|
}
|
|
798030
798181
|
logForDiagnosticsNoPII("info", "started", {
|
|
798031
|
-
version: "1.
|
|
798182
|
+
version: "1.68.0",
|
|
798032
798183
|
is_native_binary: isInBundledMode()
|
|
798033
798184
|
});
|
|
798034
798185
|
registerCleanup(async () => {
|
|
@@ -798814,7 +798965,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
798814
798965
|
pendingHookMessages
|
|
798815
798966
|
}, renderAndRun);
|
|
798816
798967
|
}
|
|
798817
|
-
}).version("1.
|
|
798968
|
+
}).version("1.68.0 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
798818
798969
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
798819
798970
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
798820
798971
|
if (canUserConfigureAdvisor()) {
|
|
@@ -799873,7 +800024,7 @@ if (false) {}
|
|
|
799873
800024
|
async function main2() {
|
|
799874
800025
|
const args = process.argv.slice(2);
|
|
799875
800026
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
799876
|
-
console.log(`${"1.
|
|
800027
|
+
console.log(`${"1.68.0"} (UR-Nexus)`);
|
|
799877
800028
|
return;
|
|
799878
800029
|
}
|
|
799879
800030
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|