ur-agent 1.80.8 → 1.80.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 +26 -0
- package/dist/cli.js +95 -86
- package/docs/AGENT_FEATURES.md +12 -0
- package/docs/CONFIGURATION.md +7 -4
- package/docs/TROUBLESHOOTING.md +9 -0
- package/docs/USAGE.md +6 -4
- package/docs/VALIDATION.md +11 -6
- 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/plugins/bunBundleDev.ts +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.80.10
|
|
4
|
+
|
|
5
|
+
- Fixed the underlying cause of task-free research still returning
|
|
6
|
+
`TaskListRequired` in the published CLI: the public bundle compiled the
|
|
7
|
+
shipped `Explore` and `Plan` definitions out of the active agent registry.
|
|
8
|
+
Research classification was correct, but there was no protected worker to
|
|
9
|
+
receive the capability-reduced call.
|
|
10
|
+
- Made `Explore` and `Plan` deterministic core agents for public, local, API,
|
|
11
|
+
and subscription-CLI use, aligned the development and release feature sets,
|
|
12
|
+
and added tests against the real built-in registry plus the bundle script.
|
|
13
|
+
Anthropic-internal experimentation remains isolated to internal builds.
|
|
14
|
+
Write-capable delegation, task enforcement, and Approve All are unchanged.
|
|
15
|
+
|
|
16
|
+
## 1.80.9
|
|
17
|
+
|
|
18
|
+
- Fixed the remaining provider-independent `TaskListRequired` failure for
|
|
19
|
+
research fan-out. Some models preserved the research/report-only brief but
|
|
20
|
+
dropped the caller's explicit “read-only” wording while still selecting
|
|
21
|
+
`general-purpose`. UR now recognizes that constrained shape and reduces it
|
|
22
|
+
to the mechanically read-only shipped `Explore` worker before task gating.
|
|
23
|
+
- Kept the boundary fail-closed for any prompt that directs implementation,
|
|
24
|
+
building, file changes, command execution, testing, installation, commits,
|
|
25
|
+
deployment, or other mutation. Custom definitions, nested workers,
|
|
26
|
+
names/teams, worktrees, and cwd overrides remain excluded. Approve All is
|
|
27
|
+
unchanged.
|
|
28
|
+
|
|
3
29
|
## 1.80.8
|
|
4
30
|
|
|
5
31
|
- Fixed provider-independent failed-first research delegation. Several model
|
package/dist/cli.js
CHANGED
|
@@ -107788,7 +107788,7 @@ var init_auth = __esm(() => {
|
|
|
107788
107788
|
|
|
107789
107789
|
// src/utils/userAgent.ts
|
|
107790
107790
|
function getURCodeUserAgent() {
|
|
107791
|
-
return `ur/${"1.80.
|
|
107791
|
+
return `ur/${"1.80.10"}`;
|
|
107792
107792
|
}
|
|
107793
107793
|
|
|
107794
107794
|
// src/utils/workloadContext.ts
|
|
@@ -107810,7 +107810,7 @@ function getUserAgent() {
|
|
|
107810
107810
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
107811
107811
|
const workload = getWorkload();
|
|
107812
107812
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
107813
|
-
return `ur-cli/${"1.80.
|
|
107813
|
+
return `ur-cli/${"1.80.10"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
107814
107814
|
}
|
|
107815
107815
|
function getMCPUserAgent() {
|
|
107816
107816
|
const parts = [];
|
|
@@ -107824,7 +107824,7 @@ function getMCPUserAgent() {
|
|
|
107824
107824
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
107825
107825
|
}
|
|
107826
107826
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
107827
|
-
return `ur/${"1.80.
|
|
107827
|
+
return `ur/${"1.80.10"}${suffix}`;
|
|
107828
107828
|
}
|
|
107829
107829
|
function getWebFetchUserAgent() {
|
|
107830
107830
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -107962,7 +107962,7 @@ var init_user = __esm(() => {
|
|
|
107962
107962
|
deviceId,
|
|
107963
107963
|
sessionId: getSessionId(),
|
|
107964
107964
|
email: getEmail(),
|
|
107965
|
-
appVersion: "1.80.
|
|
107965
|
+
appVersion: "1.80.10",
|
|
107966
107966
|
platform: getHostPlatformForAnalytics(),
|
|
107967
107967
|
organizationUuid,
|
|
107968
107968
|
accountUuid,
|
|
@@ -115849,7 +115849,7 @@ var init_metadata = __esm(() => {
|
|
|
115849
115849
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
115850
115850
|
WHITESPACE_REGEX = /\s+/;
|
|
115851
115851
|
getVersionBase = memoize_default(() => {
|
|
115852
|
-
const match = "1.80.
|
|
115852
|
+
const match = "1.80.10".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
115853
115853
|
return match ? match[0] : undefined;
|
|
115854
115854
|
});
|
|
115855
115855
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -115889,7 +115889,7 @@ var init_metadata = __esm(() => {
|
|
|
115889
115889
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
115890
115890
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
115891
115891
|
isURAiAuth: isURAISubscriber(),
|
|
115892
|
-
version: "1.80.
|
|
115892
|
+
version: "1.80.10",
|
|
115893
115893
|
versionBase: getVersionBase(),
|
|
115894
115894
|
buildTime: "",
|
|
115895
115895
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -116559,7 +116559,7 @@ function initialize1PEventLogging() {
|
|
|
116559
116559
|
const platform2 = getPlatform();
|
|
116560
116560
|
const attributes = {
|
|
116561
116561
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
116562
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.80.
|
|
116562
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.80.10"
|
|
116563
116563
|
};
|
|
116564
116564
|
if (platform2 === "wsl") {
|
|
116565
116565
|
const wslVersion = getWslVersion();
|
|
@@ -116587,7 +116587,7 @@ function initialize1PEventLogging() {
|
|
|
116587
116587
|
})
|
|
116588
116588
|
]
|
|
116589
116589
|
});
|
|
116590
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.80.
|
|
116590
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.80.10");
|
|
116591
116591
|
}
|
|
116592
116592
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
116593
116593
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -126550,7 +126550,7 @@ function formatA2AAgentCard(options = {}, pretty = true) {
|
|
|
126550
126550
|
function formatA2AV1AgentCard(options = {}, pretty = true) {
|
|
126551
126551
|
return JSON.stringify(buildA2AV1AgentCard(options), null, pretty ? 2 : 0);
|
|
126552
126552
|
}
|
|
126553
|
-
var urVersion = "1.80.
|
|
126553
|
+
var urVersion = "1.80.10", researchSnapshotDate = "2026-08-10", coverage, priorityRoadmap;
|
|
126554
126554
|
var init_trends = __esm(() => {
|
|
126555
126555
|
init_a2aCardSignature();
|
|
126556
126556
|
coverage = [
|
|
@@ -129440,7 +129440,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
129440
129440
|
if (!isAttributionHeaderEnabled()) {
|
|
129441
129441
|
return "";
|
|
129442
129442
|
}
|
|
129443
|
-
const version2 = `${"1.80.
|
|
129443
|
+
const version2 = `${"1.80.10"}.${fingerprint}`;
|
|
129444
129444
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
129445
129445
|
const cch = "";
|
|
129446
129446
|
const workload = getWorkload();
|
|
@@ -174699,7 +174699,11 @@ Use the literal string \`VERDICT: \` followed by exactly one of \`PASS\`, \`FAIL
|
|
|
174699
174699
|
|
|
174700
174700
|
// src/tools/AgentTool/builtInAgents.ts
|
|
174701
174701
|
function areExplorePlanAgentsEnabled() {
|
|
174702
|
-
if (
|
|
174702
|
+
if (process.env.USER_TYPE !== "ant")
|
|
174703
|
+
return true;
|
|
174704
|
+
if (true) {
|
|
174705
|
+
return getFeatureValue_CACHED_MAY_BE_STALE("tengu_amber_stoat", true);
|
|
174706
|
+
}
|
|
174703
174707
|
return false;
|
|
174704
174708
|
}
|
|
174705
174709
|
function getBuiltInAgents() {
|
|
@@ -184636,7 +184640,7 @@ var init_projectSafety = __esm(() => {
|
|
|
184636
184640
|
function getInstruments() {
|
|
184637
184641
|
if (instruments)
|
|
184638
184642
|
return instruments;
|
|
184639
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.80.
|
|
184643
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.80.10");
|
|
184640
184644
|
instruments = {
|
|
184641
184645
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
184642
184646
|
description: "GenAI operation duration.",
|
|
@@ -184734,7 +184738,7 @@ function genAiAgentAttributes() {
|
|
|
184734
184738
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
184735
184739
|
"gen_ai.provider.name": "ur",
|
|
184736
184740
|
"gen_ai.agent.name": "UR-Nexus",
|
|
184737
|
-
"gen_ai.agent.version": "1.80.
|
|
184741
|
+
"gen_ai.agent.version": "1.80.10"
|
|
184738
184742
|
};
|
|
184739
184743
|
}
|
|
184740
184744
|
function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
@@ -184755,7 +184759,7 @@ function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
|
184755
184759
|
function startGenAiWorkflowSpan(workflowName, workflowRunId) {
|
|
184756
184760
|
const attributes = genAiWorkflowAttributes(workflowName, workflowRunId);
|
|
184757
184761
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
184758
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.
|
|
184762
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.10").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184759
184763
|
}
|
|
184760
184764
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
184761
184765
|
try {
|
|
@@ -184793,7 +184797,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
184793
184797
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
184794
184798
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
184795
184799
|
}
|
|
184796
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.
|
|
184800
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.10").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184797
184801
|
}
|
|
184798
184802
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
184799
184803
|
try {
|
|
@@ -278508,7 +278512,7 @@ function getTelemetryAttributes() {
|
|
|
278508
278512
|
attributes["session.id"] = sessionId;
|
|
278509
278513
|
}
|
|
278510
278514
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
278511
|
-
attributes["app.version"] = "1.80.
|
|
278515
|
+
attributes["app.version"] = "1.80.10";
|
|
278512
278516
|
}
|
|
278513
278517
|
const oauthAccount = getOauthAccountInfo();
|
|
278514
278518
|
if (oauthAccount) {
|
|
@@ -319499,7 +319503,7 @@ function getInstallationEnv() {
|
|
|
319499
319503
|
return;
|
|
319500
319504
|
}
|
|
319501
319505
|
function getURCodeVersion() {
|
|
319502
|
-
return "1.80.
|
|
319506
|
+
return "1.80.10";
|
|
319503
319507
|
}
|
|
319504
319508
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
319505
319509
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -326869,7 +326873,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
326869
326873
|
const client2 = new Client({
|
|
326870
326874
|
name: "ur",
|
|
326871
326875
|
title: "UR",
|
|
326872
|
-
version: "1.80.
|
|
326876
|
+
version: "1.80.10",
|
|
326873
326877
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
326874
326878
|
websiteUrl: PRODUCT_URL
|
|
326875
326879
|
}, {
|
|
@@ -327230,7 +327234,7 @@ var init_client5 = __esm(() => {
|
|
|
327230
327234
|
const client2 = new Client({
|
|
327231
327235
|
name: "ur",
|
|
327232
327236
|
title: "UR",
|
|
327233
|
-
version: "1.80.
|
|
327237
|
+
version: "1.80.10",
|
|
327234
327238
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
327235
327239
|
websiteUrl: PRODUCT_URL
|
|
327236
327240
|
}, {
|
|
@@ -329251,7 +329255,7 @@ function isShippedReadOnlyAgentDefinition(agent) {
|
|
|
329251
329255
|
return SHIPPED_READ_ONLY_AGENT_TYPES.has(agent.agentType) && agent.source === "built-in" && agent.permissionMode === "plan";
|
|
329252
329256
|
}
|
|
329253
329257
|
function normalizeReadOnlyResearchDelegation(input, activeAgents, isNestedAgent) {
|
|
329254
|
-
if (isNestedAgent || input.subagent_type !== "general-purpose" || input.name !== undefined || input.team_name !== undefined || input.isolation !== undefined || input.cwd !== undefined || typeof input.prompt !== "string" || !
|
|
329258
|
+
if (isNestedAgent || input.subagent_type !== "general-purpose" || input.name !== undefined || input.team_name !== undefined || input.isolation !== undefined || input.cwd !== undefined || typeof input.prompt !== "string" || !RESEARCH_INTENT_MARKER.test(input.prompt) || !READ_ONLY_RESEARCH_MARKER.test(input.prompt) && MUTATING_DELEGATION_MARKER.test(input.prompt)) {
|
|
329255
329259
|
return input;
|
|
329256
329260
|
}
|
|
329257
329261
|
const exploreAgent = activeAgents.find((agent) => agent.agentType === "Explore" && isShippedReadOnlyAgentDefinition(agent));
|
|
@@ -329266,7 +329270,7 @@ function shouldApplyAgentDefinitionPermissionMode(agent, parentMode, transcriptC
|
|
|
329266
329270
|
return true;
|
|
329267
329271
|
return parentMode !== "bypassPermissions" && parentMode !== "acceptEdits" && !(transcriptClassifierEnabled && parentMode === "auto");
|
|
329268
329272
|
}
|
|
329269
|
-
var SHIPPED_READ_ONLY_AGENT_TYPES, READ_ONLY_RESEARCH_MARKER, RESEARCH_INTENT_MARKER;
|
|
329273
|
+
var SHIPPED_READ_ONLY_AGENT_TYPES, READ_ONLY_RESEARCH_MARKER, RESEARCH_INTENT_MARKER, MUTATING_ACTION = "(?:implement(?:s|ed|ing)?|build(?:s|ing)?|built|create(?:s|d|ing)?|modif(?:y|ies|ied|ying)|edit(?:s|ed|ing)?|writ(?:e|es|ten|ing)|fix(?:es|ed|ing)?|refactor(?:s|ed|ing)?|update(?:s|d|ing)?|delete(?:s|d|ing)?|remove(?:s|d|ing)?|add(?:s|ed|ing)?|install(?:s|ed|ing)?|execute(?:s|d|ing)?|run(?:s|ning)?|commit(?:s|ted|ting)?|push(?:es|ed|ing)?|deploy(?:s|ed|ing)?|generate(?:s|d|ing)?|scaffold(?:s|ed|ing)?|author(?:s|ed|ing)?|change(?:s|d|ing)?)", MUTATING_DELEGATION_MARKER;
|
|
329270
329274
|
var init_readOnlyAgents = __esm(() => {
|
|
329271
329275
|
SHIPPED_READ_ONLY_AGENT_TYPES = new Set([
|
|
329272
329276
|
"Explore",
|
|
@@ -329274,6 +329278,11 @@ var init_readOnlyAgents = __esm(() => {
|
|
|
329274
329278
|
]);
|
|
329275
329279
|
READ_ONLY_RESEARCH_MARKER = /\bread[\s-]?only\b|\b(?:do not|don't|must not|never)\s+(?:modify|write|edit|create|change)\s+(?:any\s+)?(?:code\s+)?files?\b|\bno\s+(?:file|workspace)\s+(?:changes|modifications)\b/i;
|
|
329276
329280
|
RESEARCH_INTENT_MARKER = /\b(?:research|investigat\w*|explor\w*|analy[sz]\w*|audit\w*)\b/i;
|
|
329281
|
+
MUTATING_DELEGATION_MARKER = new RegExp([
|
|
329282
|
+
`\\b(?:and|then|also)\\s+${MUTATING_ACTION}\\b`,
|
|
329283
|
+
`\\b(?:please|must|should|need(?:s)?\\s+to|you(?:'ll|\\s+will|\\s+must|\\s+should))\\s+${MUTATING_ACTION}\\b`,
|
|
329284
|
+
`(?:^|[\\n.;:!?]\\s*|[-*]\\s+)${MUTATING_ACTION}\\b`
|
|
329285
|
+
].join("|"), "i");
|
|
329277
329286
|
});
|
|
329278
329287
|
|
|
329279
329288
|
// src/components/AgentProgressLine.tsx
|
|
@@ -339998,7 +340007,7 @@ async function createRuntime() {
|
|
|
339998
340007
|
bootstrapTelemetry();
|
|
339999
340008
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
340000
340009
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
340001
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.80.
|
|
340010
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.80.10"
|
|
340002
340011
|
}));
|
|
340003
340012
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
340004
340013
|
resource,
|
|
@@ -340031,11 +340040,11 @@ async function createRuntime() {
|
|
|
340031
340040
|
setMeterProvider(meterProvider);
|
|
340032
340041
|
setLoggerProvider(loggerProvider);
|
|
340033
340042
|
if (meterProvider) {
|
|
340034
|
-
const meter = meterProvider.getMeter("ur-agent", "1.80.
|
|
340043
|
+
const meter = meterProvider.getMeter("ur-agent", "1.80.10");
|
|
340035
340044
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
340036
340045
|
}
|
|
340037
340046
|
if (loggerProvider) {
|
|
340038
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.80.
|
|
340047
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.80.10"));
|
|
340039
340048
|
}
|
|
340040
340049
|
if (!cleanupRegistered3) {
|
|
340041
340050
|
cleanupRegistered3 = true;
|
|
@@ -340697,9 +340706,9 @@ async function assertMinVersion() {
|
|
|
340697
340706
|
if (false) {}
|
|
340698
340707
|
try {
|
|
340699
340708
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
340700
|
-
if (versionConfig.minVersion && lt("1.80.
|
|
340709
|
+
if (versionConfig.minVersion && lt("1.80.10", versionConfig.minVersion)) {
|
|
340701
340710
|
console.error(`
|
|
340702
|
-
It looks like your version of UR (${"1.80.
|
|
340711
|
+
It looks like your version of UR (${"1.80.10"}) needs an update.
|
|
340703
340712
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
340704
340713
|
|
|
340705
340714
|
To update, please run:
|
|
@@ -340915,7 +340924,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
340915
340924
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
340916
340925
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
340917
340926
|
pid: process.pid,
|
|
340918
|
-
currentVersion: "1.80.
|
|
340927
|
+
currentVersion: "1.80.10"
|
|
340919
340928
|
});
|
|
340920
340929
|
return "in_progress";
|
|
340921
340930
|
}
|
|
@@ -340924,7 +340933,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
340924
340933
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
340925
340934
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
340926
340935
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
340927
|
-
currentVersion: "1.80.
|
|
340936
|
+
currentVersion: "1.80.10"
|
|
340928
340937
|
});
|
|
340929
340938
|
console.error(`
|
|
340930
340939
|
Error: Windows NPM detected in WSL
|
|
@@ -341459,7 +341468,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
341459
341468
|
}
|
|
341460
341469
|
async function getDoctorDiagnostic() {
|
|
341461
341470
|
const installationType = await getCurrentInstallationType();
|
|
341462
|
-
const version2 = typeof MACRO !== "undefined" ? "1.80.
|
|
341471
|
+
const version2 = typeof MACRO !== "undefined" ? "1.80.10" : "unknown";
|
|
341463
341472
|
const installationPath = await getInstallationPath();
|
|
341464
341473
|
const invokedBinary = getInvokedBinary();
|
|
341465
341474
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -342394,8 +342403,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
342394
342403
|
const maxVersion = await getMaxVersion();
|
|
342395
342404
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
342396
342405
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
342397
|
-
if (gte("1.80.
|
|
342398
|
-
logForDebugging(`Native installer: current version ${"1.80.
|
|
342406
|
+
if (gte("1.80.10", maxVersion)) {
|
|
342407
|
+
logForDebugging(`Native installer: current version ${"1.80.10"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
342399
342408
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
342400
342409
|
latency_ms: Date.now() - startTime,
|
|
342401
342410
|
max_version: maxVersion,
|
|
@@ -342406,7 +342415,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
342406
342415
|
version2 = maxVersion;
|
|
342407
342416
|
}
|
|
342408
342417
|
}
|
|
342409
|
-
if (!forceReinstall && version2 === "1.80.
|
|
342418
|
+
if (!forceReinstall && version2 === "1.80.10" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
342410
342419
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
342411
342420
|
logEvent("tengu_native_update_complete", {
|
|
342412
342421
|
latency_ms: Date.now() - startTime,
|
|
@@ -413062,7 +413071,7 @@ function isAnyTracingEnabled() {
|
|
|
413062
413071
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
413063
413072
|
}
|
|
413064
413073
|
function getTracer() {
|
|
413065
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.80.
|
|
413074
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.80.10");
|
|
413066
413075
|
}
|
|
413067
413076
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
413068
413077
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -443191,7 +443200,7 @@ function Feedback({
|
|
|
443191
443200
|
platform: env2.platform,
|
|
443192
443201
|
gitRepo: envInfo.isGit,
|
|
443193
443202
|
terminal: env2.terminal,
|
|
443194
|
-
version: "1.80.
|
|
443203
|
+
version: "1.80.10",
|
|
443195
443204
|
transcript: normalizeMessagesForAPI(messages),
|
|
443196
443205
|
errors: sanitizedErrors,
|
|
443197
443206
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -443383,7 +443392,7 @@ function Feedback({
|
|
|
443383
443392
|
", ",
|
|
443384
443393
|
env2.terminal,
|
|
443385
443394
|
", v",
|
|
443386
|
-
"1.80.
|
|
443395
|
+
"1.80.10"
|
|
443387
443396
|
]
|
|
443388
443397
|
}, undefined, true, undefined, this)
|
|
443389
443398
|
]
|
|
@@ -443489,7 +443498,7 @@ ${sanitizedDescription}
|
|
|
443489
443498
|
` + `**Environment Info**
|
|
443490
443499
|
` + `- Platform: ${env2.platform}
|
|
443491
443500
|
` + `- Terminal: ${env2.terminal}
|
|
443492
|
-
` + `- Version: ${"1.80.
|
|
443501
|
+
` + `- Version: ${"1.80.10"}
|
|
443493
443502
|
` + `- Feedback ID: ${feedbackId}
|
|
443494
443503
|
` + `
|
|
443495
443504
|
**Errors**
|
|
@@ -446599,7 +446608,7 @@ function buildPrimarySection() {
|
|
|
446599
446608
|
}, undefined, false, undefined, this);
|
|
446600
446609
|
return [{
|
|
446601
446610
|
label: "Version",
|
|
446602
|
-
value: "1.80.
|
|
446611
|
+
value: "1.80.10"
|
|
446603
446612
|
}, {
|
|
446604
446613
|
label: "Session name",
|
|
446605
446614
|
value: nameValue
|
|
@@ -449981,7 +449990,7 @@ function Config({
|
|
|
449981
449990
|
}
|
|
449982
449991
|
}, undefined, false, undefined, this)
|
|
449983
449992
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
449984
|
-
currentVersion: "1.80.
|
|
449993
|
+
currentVersion: "1.80.10",
|
|
449985
449994
|
onChoice: (choice) => {
|
|
449986
449995
|
setShowSubmenu(null);
|
|
449987
449996
|
setTabsHidden(false);
|
|
@@ -449993,7 +450002,7 @@ function Config({
|
|
|
449993
450002
|
autoUpdatesChannel: "stable"
|
|
449994
450003
|
};
|
|
449995
450004
|
if (choice === "stay") {
|
|
449996
|
-
newSettings.minimumVersion = "1.80.
|
|
450005
|
+
newSettings.minimumVersion = "1.80.10";
|
|
449997
450006
|
}
|
|
449998
450007
|
updateSettingsForSource("userSettings", newSettings);
|
|
449999
450008
|
setSettingsData((prev_27) => ({
|
|
@@ -458302,7 +458311,7 @@ function HelpV2(t0) {
|
|
|
458302
458311
|
let t6;
|
|
458303
458312
|
if ($2[31] !== tabs) {
|
|
458304
458313
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
458305
|
-
title: `UR v${"1.80.
|
|
458314
|
+
title: `UR v${"1.80.10"}`,
|
|
458306
458315
|
color: "professionalBlue",
|
|
458307
458316
|
defaultTab: "general",
|
|
458308
458317
|
children: tabs
|
|
@@ -459235,7 +459244,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
459235
459244
|
async function handleInitialize(options2) {
|
|
459236
459245
|
return {
|
|
459237
459246
|
name: "UR",
|
|
459238
|
-
version: "1.80.
|
|
459247
|
+
version: "1.80.10",
|
|
459239
459248
|
protocolVersion: "0.1.0",
|
|
459240
459249
|
workspaceRoot: options2.cwd,
|
|
459241
459250
|
capabilities: {
|
|
@@ -476343,7 +476352,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
476343
476352
|
return [];
|
|
476344
476353
|
}
|
|
476345
476354
|
}
|
|
476346
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.80.
|
|
476355
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.80.10") {
|
|
476347
476356
|
if (process.env.USER_TYPE === "ant") {
|
|
476348
476357
|
const changelog = "";
|
|
476349
476358
|
if (changelog) {
|
|
@@ -476370,7 +476379,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.80.8")
|
|
|
476370
476379
|
releaseNotes
|
|
476371
476380
|
};
|
|
476372
476381
|
}
|
|
476373
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.80.
|
|
476382
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.80.10") {
|
|
476374
476383
|
if (process.env.USER_TYPE === "ant") {
|
|
476375
476384
|
const changelog = "";
|
|
476376
476385
|
if (changelog) {
|
|
@@ -479275,7 +479284,7 @@ function getRecentActivitySync() {
|
|
|
479275
479284
|
return cachedActivity;
|
|
479276
479285
|
}
|
|
479277
479286
|
function getLogoDisplayData() {
|
|
479278
|
-
const version2 = process.env.DEMO_VERSION ?? "1.80.
|
|
479287
|
+
const version2 = process.env.DEMO_VERSION ?? "1.80.10";
|
|
479279
479288
|
const serverUrl = getDirectConnectServerUrl();
|
|
479280
479289
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
479281
479290
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -480143,7 +480152,7 @@ function LogoV2() {
|
|
|
480143
480152
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
480144
480153
|
t2 = () => {
|
|
480145
480154
|
const currentConfig = getGlobalConfig();
|
|
480146
|
-
if (currentConfig.lastReleaseNotesSeen === "1.80.
|
|
480155
|
+
if (currentConfig.lastReleaseNotesSeen === "1.80.10") {
|
|
480147
480156
|
return;
|
|
480148
480157
|
}
|
|
480149
480158
|
saveGlobalConfig(_temp325);
|
|
@@ -480828,12 +480837,12 @@ function LogoV2() {
|
|
|
480828
480837
|
return t41;
|
|
480829
480838
|
}
|
|
480830
480839
|
function _temp325(current) {
|
|
480831
|
-
if (current.lastReleaseNotesSeen === "1.80.
|
|
480840
|
+
if (current.lastReleaseNotesSeen === "1.80.10") {
|
|
480832
480841
|
return current;
|
|
480833
480842
|
}
|
|
480834
480843
|
return {
|
|
480835
480844
|
...current,
|
|
480836
|
-
lastReleaseNotesSeen: "1.80.
|
|
480845
|
+
lastReleaseNotesSeen: "1.80.10"
|
|
480837
480846
|
};
|
|
480838
480847
|
}
|
|
480839
480848
|
function _temp241(s_0) {
|
|
@@ -496925,7 +496934,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
496925
496934
|
if (spec.name !== specName) {
|
|
496926
496935
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
496927
496936
|
}
|
|
496928
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.80.
|
|
496937
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.80.10" : "1.80.10");
|
|
496929
496938
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
496930
496939
|
throw new Error("invalid ur-agent package version");
|
|
496931
496940
|
}
|
|
@@ -497918,7 +497927,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
497918
497927
|
path: ".github/workflows/ur.yml",
|
|
497919
497928
|
root: "project",
|
|
497920
497929
|
content: compileAgenticCiWorkflow("default", {
|
|
497921
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.80.
|
|
497930
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.80.10" : "1.80.10"
|
|
497922
497931
|
})
|
|
497923
497932
|
},
|
|
497924
497933
|
{
|
|
@@ -497981,7 +497990,7 @@ function value(tokens, flag) {
|
|
|
497981
497990
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
497982
497991
|
}
|
|
497983
497992
|
function cliVersion() {
|
|
497984
|
-
return typeof MACRO !== "undefined" ? "1.80.
|
|
497993
|
+
return typeof MACRO !== "undefined" ? "1.80.10" : "1.80.10";
|
|
497985
497994
|
}
|
|
497986
497995
|
function workflowPath(cwd2) {
|
|
497987
497996
|
return join168(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -503837,7 +503846,7 @@ function createAcpStdioApp(deps) {
|
|
|
503837
503846
|
}
|
|
503838
503847
|
},
|
|
503839
503848
|
authMethods: [],
|
|
503840
|
-
agentInfo: { name: "UR-Nexus", version: "1.80.
|
|
503849
|
+
agentInfo: { name: "UR-Nexus", version: "1.80.10" }
|
|
503841
503850
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
503842
503851
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
503843
503852
|
await runtime2.announce({
|
|
@@ -503934,7 +503943,7 @@ function createAcpStdioAgent(deps) {
|
|
|
503934
503943
|
}
|
|
503935
503944
|
},
|
|
503936
503945
|
authMethods: [],
|
|
503937
|
-
agentInfo: { name: "UR-Nexus", version: "1.80.
|
|
503946
|
+
agentInfo: { name: "UR-Nexus", version: "1.80.10" }
|
|
503938
503947
|
});
|
|
503939
503948
|
return;
|
|
503940
503949
|
case "authenticate":
|
|
@@ -715160,7 +715169,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
715160
715169
|
smapsRollup,
|
|
715161
715170
|
platform: process.platform,
|
|
715162
715171
|
nodeVersion: process.version,
|
|
715163
|
-
ccVersion: "1.80.
|
|
715172
|
+
ccVersion: "1.80.10"
|
|
715164
715173
|
};
|
|
715165
715174
|
}
|
|
715166
715175
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -715749,7 +715758,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
715749
715758
|
var call154 = async () => {
|
|
715750
715759
|
return {
|
|
715751
715760
|
type: "text",
|
|
715752
|
-
value: "1.80.
|
|
715761
|
+
value: "1.80.10"
|
|
715753
715762
|
};
|
|
715754
715763
|
}, version2, version_default;
|
|
715755
715764
|
var init_version = __esm(() => {
|
|
@@ -726992,7 +727001,7 @@ function generateHtmlReport(data, insights) {
|
|
|
726992
727001
|
</html>`;
|
|
726993
727002
|
}
|
|
726994
727003
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
726995
|
-
const version3 = typeof MACRO !== "undefined" ? "1.80.
|
|
727004
|
+
const version3 = typeof MACRO !== "undefined" ? "1.80.10" : "unknown";
|
|
726996
727005
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
726997
727006
|
const facets_summary = {
|
|
726998
727007
|
total: facets.size,
|
|
@@ -731305,7 +731314,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
731305
731314
|
init_settings2();
|
|
731306
731315
|
init_slowOperations();
|
|
731307
731316
|
init_uuid();
|
|
731308
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.80.
|
|
731317
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.80.10" : "unknown";
|
|
731309
731318
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
731310
731319
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
731311
731320
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -732520,7 +732529,7 @@ var init_filesystem = __esm(() => {
|
|
|
732520
732529
|
});
|
|
732521
732530
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
732522
732531
|
const nonce = randomBytes24(16).toString("hex");
|
|
732523
|
-
return join243(getURTempDir(), "bundled-skills", "1.80.
|
|
732532
|
+
return join243(getURTempDir(), "bundled-skills", "1.80.10", nonce);
|
|
732524
732533
|
});
|
|
732525
732534
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
732526
732535
|
});
|
|
@@ -738910,7 +738919,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
738910
738919
|
}
|
|
738911
738920
|
function computeFingerprintFromMessages(messages) {
|
|
738912
738921
|
const firstMessageText = extractFirstMessageText(messages);
|
|
738913
|
-
return computeFingerprint(firstMessageText, "1.80.
|
|
738922
|
+
return computeFingerprint(firstMessageText, "1.80.10");
|
|
738914
738923
|
}
|
|
738915
738924
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
738916
738925
|
var init_fingerprint = () => {};
|
|
@@ -740835,7 +740844,7 @@ async function sideQuery(opts) {
|
|
|
740835
740844
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
740836
740845
|
}
|
|
740837
740846
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
740838
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.80.
|
|
740847
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.80.10");
|
|
740839
740848
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
740840
740849
|
const systemBlocks = [
|
|
740841
740850
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -745669,7 +745678,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
745669
745678
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
745670
745679
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
745671
745680
|
betas: getSdkBetas(),
|
|
745672
|
-
ur_version: "1.80.
|
|
745681
|
+
ur_version: "1.80.10",
|
|
745673
745682
|
output_style: outputStyle,
|
|
745674
745683
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
745675
745684
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -759505,7 +759514,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
759505
759514
|
function getSemverPart(version3) {
|
|
759506
759515
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
759507
759516
|
}
|
|
759508
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.80.
|
|
759517
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.80.10") {
|
|
759509
759518
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
|
|
759510
759519
|
if (!updatedVersion) {
|
|
759511
759520
|
return null;
|
|
@@ -759554,7 +759563,7 @@ function AutoUpdater({
|
|
|
759554
759563
|
return;
|
|
759555
759564
|
}
|
|
759556
759565
|
if (false) {}
|
|
759557
|
-
const currentVersion = "1.80.
|
|
759566
|
+
const currentVersion = "1.80.10";
|
|
759558
759567
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
759559
759568
|
let latestVersion = await getLatestVersion(channel);
|
|
759560
759569
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -759783,12 +759792,12 @@ function NativeAutoUpdater({
|
|
|
759783
759792
|
logEvent("tengu_native_auto_updater_start", {});
|
|
759784
759793
|
try {
|
|
759785
759794
|
const maxVersion = await getMaxVersion();
|
|
759786
|
-
if (maxVersion && gt("1.80.
|
|
759795
|
+
if (maxVersion && gt("1.80.10", maxVersion)) {
|
|
759787
759796
|
const msg = await getMaxVersionMessage();
|
|
759788
759797
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
759789
759798
|
}
|
|
759790
759799
|
const result = await installLatest(channel);
|
|
759791
|
-
const currentVersion = "1.80.
|
|
759800
|
+
const currentVersion = "1.80.10";
|
|
759792
759801
|
const latencyMs = Date.now() - startTime;
|
|
759793
759802
|
if (result.lockFailed) {
|
|
759794
759803
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -759925,17 +759934,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
759925
759934
|
const maxVersion = await getMaxVersion();
|
|
759926
759935
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
759927
759936
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
759928
|
-
if (gte("1.80.
|
|
759929
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.80.
|
|
759937
|
+
if (gte("1.80.10", maxVersion)) {
|
|
759938
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.80.10"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
759930
759939
|
setUpdateAvailable(false);
|
|
759931
759940
|
return;
|
|
759932
759941
|
}
|
|
759933
759942
|
latest = maxVersion;
|
|
759934
759943
|
}
|
|
759935
|
-
const hasUpdate = latest && !gte("1.80.
|
|
759944
|
+
const hasUpdate = latest && !gte("1.80.10", latest) && !shouldSkipVersion(latest);
|
|
759936
759945
|
setUpdateAvailable(!!hasUpdate);
|
|
759937
759946
|
if (hasUpdate) {
|
|
759938
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.80.
|
|
759947
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.80.10"} -> ${latest}`);
|
|
759939
759948
|
}
|
|
759940
759949
|
};
|
|
759941
759950
|
$2[0] = t1;
|
|
@@ -759969,7 +759978,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
759969
759978
|
wrap: "truncate",
|
|
759970
759979
|
children: [
|
|
759971
759980
|
"currentVersion: ",
|
|
759972
|
-
"1.80.
|
|
759981
|
+
"1.80.10"
|
|
759973
759982
|
]
|
|
759974
759983
|
}, undefined, true, undefined, this);
|
|
759975
759984
|
$2[3] = verbose;
|
|
@@ -770822,7 +770831,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
770822
770831
|
project_dir: getOriginalCwd(),
|
|
770823
770832
|
added_dirs: addedDirs
|
|
770824
770833
|
},
|
|
770825
|
-
version: "1.80.
|
|
770834
|
+
version: "1.80.10",
|
|
770826
770835
|
output_style: {
|
|
770827
770836
|
name: outputStyleName
|
|
770828
770837
|
},
|
|
@@ -770957,7 +770966,7 @@ function StatusLineInner({
|
|
|
770957
770966
|
const attention = customStatusError ?? taskAttention;
|
|
770958
770967
|
const terminalSize = React133.useContext(TerminalSizeContext);
|
|
770959
770968
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
770960
|
-
version: "1.80.
|
|
770969
|
+
version: "1.80.10",
|
|
770961
770970
|
providerLabel: providerRuntime.providerLabel,
|
|
770962
770971
|
authMode: providerRuntime.authLabel,
|
|
770963
770972
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -783212,7 +783221,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
783212
783221
|
} catch {}
|
|
783213
783222
|
const data = {
|
|
783214
783223
|
trigger: trigger2,
|
|
783215
|
-
version: "1.80.
|
|
783224
|
+
version: "1.80.10",
|
|
783216
783225
|
platform: process.platform,
|
|
783217
783226
|
transcript,
|
|
783218
783227
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -795581,7 +795590,7 @@ function WelcomeV2() {
|
|
|
795581
795590
|
dimColor: true,
|
|
795582
795591
|
children: [
|
|
795583
795592
|
"v",
|
|
795584
|
-
"1.80.
|
|
795593
|
+
"1.80.10"
|
|
795585
795594
|
]
|
|
795586
795595
|
}, undefined, true, undefined, this)
|
|
795587
795596
|
]
|
|
@@ -796841,7 +796850,7 @@ function completeOnboarding() {
|
|
|
796841
796850
|
saveGlobalConfig((current) => ({
|
|
796842
796851
|
...current,
|
|
796843
796852
|
hasCompletedOnboarding: true,
|
|
796844
|
-
lastOnboardingVersion: "1.80.
|
|
796853
|
+
lastOnboardingVersion: "1.80.10"
|
|
796845
796854
|
}));
|
|
796846
796855
|
}
|
|
796847
796856
|
function showDialog(root2, renderer) {
|
|
@@ -801987,7 +801996,7 @@ function appendToLog(path28, message) {
|
|
|
801987
801996
|
cwd: getFsImplementation().cwd(),
|
|
801988
801997
|
userType: process.env.USER_TYPE,
|
|
801989
801998
|
sessionId: getSessionId(),
|
|
801990
|
-
version: "1.80.
|
|
801999
|
+
version: "1.80.10"
|
|
801991
802000
|
};
|
|
801992
802001
|
getLogWriter(path28).write(messageWithTimestamp);
|
|
801993
802002
|
}
|
|
@@ -806151,8 +806160,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
806151
806160
|
}
|
|
806152
806161
|
async function checkEnvLessBridgeMinVersion() {
|
|
806153
806162
|
const cfg = await getEnvLessBridgeConfig();
|
|
806154
|
-
if (cfg.min_version && lt("1.80.
|
|
806155
|
-
return `Your version of UR (${"1.80.
|
|
806163
|
+
if (cfg.min_version && lt("1.80.10", cfg.min_version)) {
|
|
806164
|
+
return `Your version of UR (${"1.80.10"}) is too old for Remote Control.
|
|
806156
806165
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
806157
806166
|
}
|
|
806158
806167
|
return null;
|
|
@@ -806626,7 +806635,7 @@ async function initBridgeCore(params) {
|
|
|
806626
806635
|
const rawApi = createBridgeApiClient({
|
|
806627
806636
|
baseUrl,
|
|
806628
806637
|
getAccessToken,
|
|
806629
|
-
runnerVersion: "1.80.
|
|
806638
|
+
runnerVersion: "1.80.10",
|
|
806630
806639
|
onDebug: logForDebugging,
|
|
806631
806640
|
onAuth401,
|
|
806632
806641
|
getTrustedDeviceToken
|
|
@@ -816099,7 +816108,7 @@ function getAgUiCapabilities() {
|
|
|
816099
816108
|
name: "UR-Nexus",
|
|
816100
816109
|
type: "ur-nexus",
|
|
816101
816110
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
816102
|
-
version: "1.80.
|
|
816111
|
+
version: "1.80.10",
|
|
816103
816112
|
provider: "UR",
|
|
816104
816113
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
816105
816114
|
},
|
|
@@ -817326,7 +817335,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
817326
817335
|
};
|
|
817327
817336
|
const server2 = new Server({
|
|
817328
817337
|
name: "ur-nexus",
|
|
817329
|
-
version: "1.80.
|
|
817338
|
+
version: "1.80.10"
|
|
817330
817339
|
}, {
|
|
817331
817340
|
capabilities: {
|
|
817332
817341
|
tools: {}
|
|
@@ -818530,7 +818539,7 @@ function thrownResponse(error40) {
|
|
|
818530
818539
|
}
|
|
818531
818540
|
async function createUrMcp2026Runtime(options5) {
|
|
818532
818541
|
const server2 = createMCPServer(options5.cwd, options5.debug === true, options5.verbose === true);
|
|
818533
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.80.
|
|
818542
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.80.10" }, { capabilities: {} });
|
|
818534
818543
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
818535
818544
|
try {
|
|
818536
818545
|
await server2.connect(serverTransport);
|
|
@@ -818541,7 +818550,7 @@ async function createUrMcp2026Runtime(options5) {
|
|
|
818541
818550
|
}
|
|
818542
818551
|
const runtime2 = new Mcp2026Runtime({
|
|
818543
818552
|
cwd: options5.cwd,
|
|
818544
|
-
version: "1.80.
|
|
818553
|
+
version: "1.80.10",
|
|
818545
818554
|
backend: {
|
|
818546
818555
|
listTools: async () => {
|
|
818547
818556
|
const listed = await client2.listTools();
|
|
@@ -821276,7 +821285,7 @@ async function update() {
|
|
|
821276
821285
|
logEvent("tengu_update_check", {});
|
|
821277
821286
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
821278
821287
|
const result = await checkUpgradeStatus({
|
|
821279
|
-
currentVersion: "1.80.
|
|
821288
|
+
currentVersion: "1.80.10",
|
|
821280
821289
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
821281
821290
|
installationType: diagnostic2.installationType,
|
|
821282
821291
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -822604,7 +822613,7 @@ ${customInstructions}` : customInstructions;
|
|
|
822604
822613
|
}
|
|
822605
822614
|
}
|
|
822606
822615
|
logForDiagnosticsNoPII("info", "started", {
|
|
822607
|
-
version: "1.80.
|
|
822616
|
+
version: "1.80.10",
|
|
822608
822617
|
is_native_binary: isInBundledMode()
|
|
822609
822618
|
});
|
|
822610
822619
|
registerCleanup(async () => {
|
|
@@ -823391,7 +823400,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
823391
823400
|
pendingHookMessages
|
|
823392
823401
|
}, renderAndRun);
|
|
823393
823402
|
}
|
|
823394
|
-
}).version("1.80.
|
|
823403
|
+
}).version("1.80.10 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
823395
823404
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
823396
823405
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
823397
823406
|
if (canUserConfigureAdvisor()) {
|
|
@@ -824518,7 +824527,7 @@ if (false) {}
|
|
|
824518
824527
|
async function main2() {
|
|
824519
824528
|
const args = process.argv.slice(2);
|
|
824520
824529
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
824521
|
-
console.log(`${"1.80.
|
|
824530
|
+
console.log(`${"1.80.10"} (UR-Nexus)`);
|
|
824522
824531
|
return;
|
|
824523
824532
|
}
|
|
824524
824533
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|
package/docs/AGENT_FEATURES.md
CHANGED
|
@@ -9,6 +9,18 @@ reproducible autonomous software engineering agent: every substantial task can
|
|
|
9
9
|
be driven as `spec -> plan -> patch -> test -> report -> rollback`, with the
|
|
10
10
|
spec as the durable source of truth and command evidence as the success gate.
|
|
11
11
|
|
|
12
|
+
## v1.80.10 Addition
|
|
13
|
+
|
|
14
|
+
| Addition | Surface | What it adds |
|
|
15
|
+
| --- | --- | --- |
|
|
16
|
+
| Deterministic read-only agent registry | Public bundle, development runtime, `Agent` gate | Ships the protected `Explore` and `Plan` definitions in every public runtime so task-free research always has a real read-only destination. Tests now exercise the real registry and verify the release feature flag. |
|
|
17
|
+
|
|
18
|
+
## v1.80.9 Addition
|
|
19
|
+
|
|
20
|
+
| Addition | Surface | What it adds |
|
|
21
|
+
| --- | --- | --- |
|
|
22
|
+
| Research-only intent recovery | Shared Agent execution gate | Handles providers that retain a pure research/report brief but omit the caller's “read-only” wording. The call is reduced to shipped Explore capabilities; any implementation or mutation directive remains task-gated. |
|
|
23
|
+
|
|
12
24
|
## v1.80.8 Addition
|
|
13
25
|
|
|
14
26
|
| Addition | Surface | What it adds |
|
package/docs/CONFIGURATION.md
CHANGED
|
@@ -58,12 +58,15 @@ it to `0` to require a task before every mutation. Set `enabled` to `false` to
|
|
|
58
58
|
return to advisory task tracking. Profiles that omit `TaskCreate` are not
|
|
59
59
|
gated, because they could not satisfy the requirement. The main session may
|
|
60
60
|
launch UR's shipped `Explore` and `Plan` agents before a task exists in any
|
|
61
|
-
permission mode. These
|
|
61
|
+
permission mode. These core definitions are always registered in public builds
|
|
62
|
+
and are forced read-only; custom,
|
|
62
63
|
write-capable, nested, named/team, and worktree delegation still requires an
|
|
63
64
|
actionable parent task. As provider-independent compatibility, an unnamed
|
|
64
|
-
main-session `general-purpose` call
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
main-session `general-purpose` call is reduced to the shipped Explore definition
|
|
66
|
+
when its brief is explicitly read-only research or is unambiguously limited to
|
|
67
|
+
research and reporting. Any implementation, test, command-execution,
|
|
68
|
+
installation, or workspace-mutation directive keeps the call gated. It never
|
|
69
|
+
receives general-purpose tools through this path.
|
|
67
70
|
|
|
68
71
|
## Model Providers
|
|
69
72
|
|
package/docs/TROUBLESHOOTING.md
CHANGED
|
@@ -108,6 +108,15 @@ ur provider status
|
|
|
108
108
|
UR 1.80.8 routes that narrow contract to the protected Explore worker before
|
|
109
109
|
the gate. A real general-purpose or implementation worker is still expected
|
|
110
110
|
to require a task.
|
|
111
|
+
- If the model preserved only the research/report instructions and omitted the
|
|
112
|
+
words “read-only,” upgrade to 1.80.9. UR recognizes that remaining provider
|
|
113
|
+
shape without relying on a specific model name. Prompts that also direct
|
|
114
|
+
implementation, testing, command execution, or file changes remain blocked
|
|
115
|
+
until an actionable task exists.
|
|
116
|
+
- If the same failure persists on 1.80.9, upgrade to 1.80.10. The 1.80.9 public
|
|
117
|
+
bundle could still compile the protected `Explore` and `Plan` registry entries
|
|
118
|
+
out, leaving the correct routing decision with no read-only destination.
|
|
119
|
+
Version 1.80.10 makes both core agents deterministic in public builds.
|
|
111
120
|
|
|
112
121
|
### Ollama stops with `unavailable tool "WebSearch"`
|
|
113
122
|
|
package/docs/USAGE.md
CHANGED
|
@@ -475,10 +475,12 @@ research to UR's shipped `Explore` and `Plan` agents before tasks exist. Those
|
|
|
475
475
|
two definitions are mechanically forced into plan permission mode even when
|
|
476
476
|
the parent is in Accept Edits or Approve All. Models are instructed to select
|
|
477
477
|
`subagent_type="Explore"` for this work. If a provider still labels an explicit
|
|
478
|
-
read-only
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
478
|
+
read-only brief—or an unambiguous research-and-report-only brief—
|
|
479
|
+
`general-purpose`, UR reduces that main-session call to the shipped Explore
|
|
480
|
+
definition before gating. A brief that also directs implementation, testing,
|
|
481
|
+
command execution, or workspace changes remains task-gated. Ordinary
|
|
482
|
+
general-purpose work, custom overrides, nested agents, named/team workers,
|
|
483
|
+
worktrees, and cwd overrides still require an actionable parent task. When the user approves the plan,
|
|
482
484
|
`ExitPlanMode` preserves any existing actionable board or creates a bounded set
|
|
483
485
|
of professional, deduplicated implementation tasks plus a verification task
|
|
484
486
|
that depends on them. Implementation therefore starts with visible tracking
|
package/docs/VALIDATION.md
CHANGED
|
@@ -19,10 +19,10 @@ You need:
|
|
|
19
19
|
|
|
20
20
|
```sh
|
|
21
21
|
ur --version
|
|
22
|
-
# expected for this release: "1.80.
|
|
22
|
+
# expected for this release: "1.80.10 (UR-Nexus)"
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
### 0.0 Read-only research delegation starts cleanly (1.80.
|
|
25
|
+
### 0.0 Read-only research delegation starts cleanly (1.80.10)
|
|
26
26
|
|
|
27
27
|
Start an interactive session with task enforcement enabled and ask UR to
|
|
28
28
|
research a change, both normally and from Plan Mode. Before any task exists,
|
|
@@ -31,12 +31,17 @@ built-in `Explore` and `Plan` agent calls should initialize without
|
|
|
31
31
|
Accept Edits or Approve All. Custom agents and ordinary general-purpose agents
|
|
32
32
|
should remain blocked until they have an actionable parent task.
|
|
33
33
|
|
|
34
|
+
The installed public bundle must list both core definitions in its active
|
|
35
|
+
built-in registry; a correct research classifier without those definitions is
|
|
36
|
+
not a passing state. Development and release builds must both enable
|
|
37
|
+
`BUILTIN_EXPLORE_PLAN_AGENTS`.
|
|
38
|
+
|
|
34
39
|
Repeat with multiple available model families. A model may correctly emit
|
|
35
40
|
`subagent_type: "Explore"`; if it instead emits `general-purpose` with an
|
|
36
|
-
explicit read-only research/
|
|
37
|
-
Explore and start without a failed `TaskListRequired` attempt. A
|
|
38
|
-
|
|
39
|
-
regressions are:
|
|
41
|
+
explicit read-only brief or a pure research/report-only brief, UR must safely
|
|
42
|
+
reduce it to Explore and start without a failed `TaskListRequired` attempt. A
|
|
43
|
+
brief that also requests implementation, tests, command execution, or file
|
|
44
|
+
changes must remain blocked. The deterministic regressions are:
|
|
40
45
|
|
|
41
46
|
```sh
|
|
42
47
|
bun test test/taskListGate.test.ts test/toolExecutionFinalInput.test.ts
|
package/documentation/index.html
CHANGED
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
<main id="content" class="content">
|
|
46
46
|
<header class="topbar">
|
|
47
47
|
<div>
|
|
48
|
-
<p class="eyebrow">Version 1.80.
|
|
48
|
+
<p class="eyebrow">Version 1.80.10</p>
|
|
49
49
|
<h1>UR-Nexus Documentation</h1>
|
|
50
50
|
<p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
|
|
51
51
|
</div>
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "ur-inline-diffs",
|
|
3
3
|
"displayName": "UR Inline Diffs",
|
|
4
4
|
"description": "Review, apply, and reject UR inline diff bundles from .ur/ide/diffs inside VS Code.",
|
|
5
|
-
"version": "1.80.
|
|
5
|
+
"version": "1.80.10",
|
|
6
6
|
"publisher": "ur-nexus",
|
|
7
7
|
"engines": {
|
|
8
8
|
"vscode": "^1.92.0"
|
package/package.json
CHANGED
package/plugins/bunBundleDev.ts
CHANGED
|
@@ -15,6 +15,9 @@ import { plugin } from 'bun'
|
|
|
15
15
|
|
|
16
16
|
const enabledFlags = new Set([
|
|
17
17
|
'TREE_SITTER_BASH',
|
|
18
|
+
// Explore/Plan are a supported public capability and the safe target for
|
|
19
|
+
// task-free read-only delegation. Keep development aligned with bundles.
|
|
20
|
+
'BUILTIN_EXPLORE_PLAN_AGENTS',
|
|
18
21
|
...(process.env.FEATURE_FLAGS ?? '').split(',').filter(Boolean),
|
|
19
22
|
])
|
|
20
23
|
|