ur-agent 1.80.0 → 1.80.1
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 +13 -0
- package/dist/cli.js +151 -1246
- package/docs/GAP_ANALYSIS_2026-08-11.md +10 -6
- 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/dist/cli.js
CHANGED
|
@@ -107757,7 +107757,7 @@ var init_auth = __esm(() => {
|
|
|
107757
107757
|
|
|
107758
107758
|
// src/utils/userAgent.ts
|
|
107759
107759
|
function getURCodeUserAgent() {
|
|
107760
|
-
return `ur/${"1.80.
|
|
107760
|
+
return `ur/${"1.80.1"}`;
|
|
107761
107761
|
}
|
|
107762
107762
|
|
|
107763
107763
|
// src/utils/workloadContext.ts
|
|
@@ -107779,7 +107779,7 @@ function getUserAgent() {
|
|
|
107779
107779
|
const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
|
|
107780
107780
|
const workload = getWorkload();
|
|
107781
107781
|
const workloadSuffix = workload ? `, workload/${workload}` : "";
|
|
107782
|
-
return `ur-cli/${"1.80.
|
|
107782
|
+
return `ur-cli/${"1.80.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
|
|
107783
107783
|
}
|
|
107784
107784
|
function getMCPUserAgent() {
|
|
107785
107785
|
const parts = [];
|
|
@@ -107793,7 +107793,7 @@ function getMCPUserAgent() {
|
|
|
107793
107793
|
parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
|
|
107794
107794
|
}
|
|
107795
107795
|
const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
|
|
107796
|
-
return `ur/${"1.80.
|
|
107796
|
+
return `ur/${"1.80.1"}${suffix}`;
|
|
107797
107797
|
}
|
|
107798
107798
|
function getWebFetchUserAgent() {
|
|
107799
107799
|
return `UR-User (${getURCodeUserAgent()})`;
|
|
@@ -107931,7 +107931,7 @@ var init_user = __esm(() => {
|
|
|
107931
107931
|
deviceId,
|
|
107932
107932
|
sessionId: getSessionId(),
|
|
107933
107933
|
email: getEmail(),
|
|
107934
|
-
appVersion: "1.80.
|
|
107934
|
+
appVersion: "1.80.1",
|
|
107935
107935
|
platform: getHostPlatformForAnalytics(),
|
|
107936
107936
|
organizationUuid,
|
|
107937
107937
|
accountUuid,
|
|
@@ -115818,7 +115818,7 @@ var init_metadata = __esm(() => {
|
|
|
115818
115818
|
COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
|
|
115819
115819
|
WHITESPACE_REGEX = /\s+/;
|
|
115820
115820
|
getVersionBase = memoize_default(() => {
|
|
115821
|
-
const match = "1.80.
|
|
115821
|
+
const match = "1.80.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
|
|
115822
115822
|
return match ? match[0] : undefined;
|
|
115823
115823
|
});
|
|
115824
115824
|
buildEnvContext = memoize_default(async () => {
|
|
@@ -115858,7 +115858,7 @@ var init_metadata = __esm(() => {
|
|
|
115858
115858
|
isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
|
|
115859
115859
|
isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
|
|
115860
115860
|
isURAiAuth: isURAISubscriber(),
|
|
115861
|
-
version: "1.80.
|
|
115861
|
+
version: "1.80.1",
|
|
115862
115862
|
versionBase: getVersionBase(),
|
|
115863
115863
|
buildTime: "",
|
|
115864
115864
|
deploymentEnvironment: env2.detectDeploymentEnvironment(),
|
|
@@ -116528,7 +116528,7 @@ function initialize1PEventLogging() {
|
|
|
116528
116528
|
const platform2 = getPlatform();
|
|
116529
116529
|
const attributes = {
|
|
116530
116530
|
[import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
|
|
116531
|
-
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.80.
|
|
116531
|
+
[import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.80.1"
|
|
116532
116532
|
};
|
|
116533
116533
|
if (platform2 === "wsl") {
|
|
116534
116534
|
const wslVersion = getWslVersion();
|
|
@@ -116556,7 +116556,7 @@ function initialize1PEventLogging() {
|
|
|
116556
116556
|
})
|
|
116557
116557
|
]
|
|
116558
116558
|
});
|
|
116559
|
-
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.80.
|
|
116559
|
+
firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.80.1");
|
|
116560
116560
|
}
|
|
116561
116561
|
async function reinitialize1PEventLoggingIfConfigChanged() {
|
|
116562
116562
|
if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
|
|
@@ -126515,7 +126515,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
|
|
|
126515
126515
|
function formatA2AAgentCard(options = {}, pretty = true) {
|
|
126516
126516
|
return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
|
|
126517
126517
|
}
|
|
126518
|
-
var urVersion = "1.80.
|
|
126518
|
+
var urVersion = "1.80.1", researchSnapshotDate = "2026-08-10", coverage, priorityRoadmap;
|
|
126519
126519
|
var init_trends = __esm(() => {
|
|
126520
126520
|
init_a2aCardSignature();
|
|
126521
126521
|
coverage = [
|
|
@@ -129405,7 +129405,7 @@ function getAttributionHeader(fingerprint) {
|
|
|
129405
129405
|
if (!isAttributionHeaderEnabled()) {
|
|
129406
129406
|
return "";
|
|
129407
129407
|
}
|
|
129408
|
-
const version2 = `${"1.80.
|
|
129408
|
+
const version2 = `${"1.80.1"}.${fingerprint}`;
|
|
129409
129409
|
const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
|
|
129410
129410
|
const cch = "";
|
|
129411
129411
|
const workload = getWorkload();
|
|
@@ -184598,7 +184598,7 @@ var init_projectSafety = __esm(() => {
|
|
|
184598
184598
|
function getInstruments() {
|
|
184599
184599
|
if (instruments)
|
|
184600
184600
|
return instruments;
|
|
184601
|
-
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.80.
|
|
184601
|
+
const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.80.1");
|
|
184602
184602
|
instruments = {
|
|
184603
184603
|
operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
|
|
184604
184604
|
description: "GenAI operation duration.",
|
|
@@ -184696,7 +184696,7 @@ function genAiAgentAttributes() {
|
|
|
184696
184696
|
"gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
|
|
184697
184697
|
"gen_ai.provider.name": "ur",
|
|
184698
184698
|
"gen_ai.agent.name": "UR-Nexus",
|
|
184699
|
-
"gen_ai.agent.version": "1.80.
|
|
184699
|
+
"gen_ai.agent.version": "1.80.1"
|
|
184700
184700
|
};
|
|
184701
184701
|
}
|
|
184702
184702
|
function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
@@ -184717,7 +184717,7 @@ function genAiWorkflowAttributes(workflowName, workflowRunId) {
|
|
|
184717
184717
|
function startGenAiWorkflowSpan(workflowName, workflowRunId) {
|
|
184718
184718
|
const attributes = genAiWorkflowAttributes(workflowName, workflowRunId);
|
|
184719
184719
|
const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
|
|
184720
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.
|
|
184720
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.1").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184721
184721
|
}
|
|
184722
184722
|
function endGenAiWorkflowSpan(span, options2 = {}) {
|
|
184723
184723
|
try {
|
|
@@ -184755,7 +184755,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
|
|
|
184755
184755
|
if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
|
|
184756
184756
|
attributes["gen_ai.memory.record.count"] = options2.recordCount;
|
|
184757
184757
|
}
|
|
184758
|
-
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.
|
|
184758
|
+
return import_api10.trace.getTracer("ur-agent.gen_ai", "1.80.1").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
|
|
184759
184759
|
}
|
|
184760
184760
|
function endGenAiMemorySpan(span, options2 = {}) {
|
|
184761
184761
|
try {
|
|
@@ -278470,7 +278470,7 @@ function getTelemetryAttributes() {
|
|
|
278470
278470
|
attributes["session.id"] = sessionId;
|
|
278471
278471
|
}
|
|
278472
278472
|
if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
|
|
278473
|
-
attributes["app.version"] = "1.80.
|
|
278473
|
+
attributes["app.version"] = "1.80.1";
|
|
278474
278474
|
}
|
|
278475
278475
|
const oauthAccount = getOauthAccountInfo();
|
|
278476
278476
|
if (oauthAccount) {
|
|
@@ -319461,7 +319461,7 @@ function getInstallationEnv() {
|
|
|
319461
319461
|
return;
|
|
319462
319462
|
}
|
|
319463
319463
|
function getURCodeVersion() {
|
|
319464
|
-
return "1.80.
|
|
319464
|
+
return "1.80.1";
|
|
319465
319465
|
}
|
|
319466
319466
|
async function getInstalledVSCodeExtensionVersion(command) {
|
|
319467
319467
|
const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
|
|
@@ -326831,7 +326831,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
|
|
|
326831
326831
|
const client2 = new Client({
|
|
326832
326832
|
name: "ur",
|
|
326833
326833
|
title: "UR",
|
|
326834
|
-
version: "1.80.
|
|
326834
|
+
version: "1.80.1",
|
|
326835
326835
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
326836
326836
|
websiteUrl: PRODUCT_URL
|
|
326837
326837
|
}, {
|
|
@@ -327192,7 +327192,7 @@ var init_client5 = __esm(() => {
|
|
|
327192
327192
|
const client2 = new Client({
|
|
327193
327193
|
name: "ur",
|
|
327194
327194
|
title: "UR",
|
|
327195
|
-
version: "1.80.
|
|
327195
|
+
version: "1.80.1",
|
|
327196
327196
|
description: "UR-Nexus autonomous engineering workflow engine",
|
|
327197
327197
|
websiteUrl: PRODUCT_URL
|
|
327198
327198
|
}, {
|
|
@@ -339930,7 +339930,7 @@ async function createRuntime() {
|
|
|
339930
339930
|
bootstrapTelemetry();
|
|
339931
339931
|
const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
|
|
339932
339932
|
[import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
|
|
339933
|
-
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.80.
|
|
339933
|
+
[import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.80.1"
|
|
339934
339934
|
}));
|
|
339935
339935
|
const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
|
|
339936
339936
|
resource,
|
|
@@ -339963,11 +339963,11 @@ async function createRuntime() {
|
|
|
339963
339963
|
setMeterProvider(meterProvider);
|
|
339964
339964
|
setLoggerProvider(loggerProvider);
|
|
339965
339965
|
if (meterProvider) {
|
|
339966
|
-
const meter = meterProvider.getMeter("ur-agent", "1.80.
|
|
339966
|
+
const meter = meterProvider.getMeter("ur-agent", "1.80.1");
|
|
339967
339967
|
setMeter(meter, (name, options2) => meter.createCounter(name, options2));
|
|
339968
339968
|
}
|
|
339969
339969
|
if (loggerProvider) {
|
|
339970
|
-
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.80.
|
|
339970
|
+
setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.80.1"));
|
|
339971
339971
|
}
|
|
339972
339972
|
if (!cleanupRegistered3) {
|
|
339973
339973
|
cleanupRegistered3 = true;
|
|
@@ -340629,9 +340629,9 @@ async function assertMinVersion() {
|
|
|
340629
340629
|
if (false) {}
|
|
340630
340630
|
try {
|
|
340631
340631
|
const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
|
|
340632
|
-
if (versionConfig.minVersion && lt("1.80.
|
|
340632
|
+
if (versionConfig.minVersion && lt("1.80.1", versionConfig.minVersion)) {
|
|
340633
340633
|
console.error(`
|
|
340634
|
-
It looks like your version of UR (${"1.80.
|
|
340634
|
+
It looks like your version of UR (${"1.80.1"}) needs an update.
|
|
340635
340635
|
A newer version (${versionConfig.minVersion} or higher) is required to continue.
|
|
340636
340636
|
|
|
340637
340637
|
To update, please run:
|
|
@@ -340847,7 +340847,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
340847
340847
|
logError2(new AutoUpdaterError("Another process is currently installing an update"));
|
|
340848
340848
|
logEvent("tengu_auto_updater_lock_contention", {
|
|
340849
340849
|
pid: process.pid,
|
|
340850
|
-
currentVersion: "1.80.
|
|
340850
|
+
currentVersion: "1.80.1"
|
|
340851
340851
|
});
|
|
340852
340852
|
return "in_progress";
|
|
340853
340853
|
}
|
|
@@ -340856,7 +340856,7 @@ async function installGlobalPackage(specificVersion) {
|
|
|
340856
340856
|
if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
|
|
340857
340857
|
logError2(new Error("Windows NPM detected in WSL environment"));
|
|
340858
340858
|
logEvent("tengu_auto_updater_windows_npm_in_wsl", {
|
|
340859
|
-
currentVersion: "1.80.
|
|
340859
|
+
currentVersion: "1.80.1"
|
|
340860
340860
|
});
|
|
340861
340861
|
console.error(`
|
|
340862
340862
|
Error: Windows NPM detected in WSL
|
|
@@ -341391,7 +341391,7 @@ function detectLinuxGlobPatternWarnings() {
|
|
|
341391
341391
|
}
|
|
341392
341392
|
async function getDoctorDiagnostic() {
|
|
341393
341393
|
const installationType = await getCurrentInstallationType();
|
|
341394
|
-
const version2 = typeof MACRO !== "undefined" ? "1.80.
|
|
341394
|
+
const version2 = typeof MACRO !== "undefined" ? "1.80.1" : "unknown";
|
|
341395
341395
|
const installationPath = await getInstallationPath();
|
|
341396
341396
|
const invokedBinary = getInvokedBinary();
|
|
341397
341397
|
const multipleInstallations = await detectMultipleInstallations();
|
|
@@ -342326,8 +342326,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
342326
342326
|
const maxVersion = await getMaxVersion();
|
|
342327
342327
|
if (maxVersion && gt(version2, maxVersion)) {
|
|
342328
342328
|
logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
|
|
342329
|
-
if (gte("1.80.
|
|
342330
|
-
logForDebugging(`Native installer: current version ${"1.80.
|
|
342329
|
+
if (gte("1.80.1", maxVersion)) {
|
|
342330
|
+
logForDebugging(`Native installer: current version ${"1.80.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
342331
342331
|
logEvent("tengu_native_update_skipped_max_version", {
|
|
342332
342332
|
latency_ms: Date.now() - startTime,
|
|
342333
342333
|
max_version: maxVersion,
|
|
@@ -342338,7 +342338,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
|
|
|
342338
342338
|
version2 = maxVersion;
|
|
342339
342339
|
}
|
|
342340
342340
|
}
|
|
342341
|
-
if (!forceReinstall && version2 === "1.80.
|
|
342341
|
+
if (!forceReinstall && version2 === "1.80.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
|
|
342342
342342
|
logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
|
|
342343
342343
|
logEvent("tengu_native_update_complete", {
|
|
342344
342344
|
latency_ms: Date.now() - startTime,
|
|
@@ -359252,17 +359252,6 @@ function getPillLabel(tasks) {
|
|
|
359252
359252
|
case "local_agent":
|
|
359253
359253
|
return n2 === 1 ? "1 local agent" : `${n2} local agents`;
|
|
359254
359254
|
case "remote_agent": {
|
|
359255
|
-
const first = tasks[0];
|
|
359256
|
-
if (n2 === 1 && first.type === "remote_agent" && first.isUltraplan) {
|
|
359257
|
-
switch (first.ultraplanPhase) {
|
|
359258
|
-
case "plan_ready":
|
|
359259
|
-
return `${DIAMOND_FILLED} ultraplan ready`;
|
|
359260
|
-
case "needs_input":
|
|
359261
|
-
return `${DIAMOND_OPEN} ultraplan needs your input`;
|
|
359262
|
-
default:
|
|
359263
|
-
return `${DIAMOND_OPEN} ultraplan`;
|
|
359264
|
-
}
|
|
359265
|
-
}
|
|
359266
359255
|
return n2 === 1 ? `${DIAMOND_OPEN} 1 cloud session` : `${DIAMOND_OPEN} ${n2} cloud sessions`;
|
|
359267
359256
|
}
|
|
359268
359257
|
case "local_workflow":
|
|
@@ -359275,12 +359264,6 @@ function getPillLabel(tasks) {
|
|
|
359275
359264
|
}
|
|
359276
359265
|
return `${n2} background ${n2 === 1 ? "task" : "tasks"}`;
|
|
359277
359266
|
}
|
|
359278
|
-
function pillNeedsCta(tasks) {
|
|
359279
|
-
if (tasks.length !== 1)
|
|
359280
|
-
return false;
|
|
359281
|
-
const t = tasks[0];
|
|
359282
|
-
return t.type === "remote_agent" && t.isUltraplan === true && t.ultraplanPhase !== undefined;
|
|
359283
|
-
}
|
|
359284
359267
|
var init_pillLabel = __esm(() => {
|
|
359285
359268
|
init_figures2();
|
|
359286
359269
|
});
|
|
@@ -368953,8 +368936,7 @@ async function teleportToRemote(options2) {
|
|
|
368953
368936
|
request_id: `set-mode-${randomUUID36()}`,
|
|
368954
368937
|
request: {
|
|
368955
368938
|
subtype: "set_permission_mode",
|
|
368956
|
-
mode: options2.permissionMode
|
|
368957
|
-
ultraplan: options2.ultraplan
|
|
368939
|
+
mode: options2.permissionMode
|
|
368958
368940
|
}
|
|
368959
368941
|
}
|
|
368960
368942
|
});
|
|
@@ -368975,7 +368957,7 @@ async function teleportToRemote(options2) {
|
|
|
368975
368957
|
});
|
|
368976
368958
|
}
|
|
368977
368959
|
const requestBody = {
|
|
368978
|
-
title:
|
|
368960
|
+
title: sessionTitle,
|
|
368979
368961
|
events: events2,
|
|
368980
368962
|
session_context: sessionContext,
|
|
368981
368963
|
environment_id: environmentId
|
|
@@ -369283,7 +369265,6 @@ function registerRemoteAgentTask(options2) {
|
|
|
369283
369265
|
context: context5,
|
|
369284
369266
|
toolUseId,
|
|
369285
369267
|
isRemoteReview,
|
|
369286
|
-
isUltraplan,
|
|
369287
369268
|
isLongRunning,
|
|
369288
369269
|
remoteTaskMetadata
|
|
369289
369270
|
} = options2;
|
|
@@ -369300,7 +369281,6 @@ function registerRemoteAgentTask(options2) {
|
|
|
369300
369281
|
todoList: [],
|
|
369301
369282
|
log: [],
|
|
369302
369283
|
isRemoteReview,
|
|
369303
|
-
isUltraplan,
|
|
369304
369284
|
isLongRunning,
|
|
369305
369285
|
pollStartedAt: Date.now(),
|
|
369306
369286
|
remoteTaskMetadata
|
|
@@ -369314,7 +369294,6 @@ function registerRemoteAgentTask(options2) {
|
|
|
369314
369294
|
command,
|
|
369315
369295
|
spawnedAt: Date.now(),
|
|
369316
369296
|
toolUseId,
|
|
369317
|
-
isUltraplan,
|
|
369318
369297
|
isRemoteReview,
|
|
369319
369298
|
isLongRunning,
|
|
369320
369299
|
remoteTaskMetadata
|
|
@@ -369366,7 +369345,6 @@ async function restoreRemoteAgentTasksImpl(context5) {
|
|
|
369366
369345
|
todoList: [],
|
|
369367
369346
|
log: [],
|
|
369368
369347
|
isRemoteReview: meta.isRemoteReview,
|
|
369369
|
-
isUltraplan: meta.isUltraplan,
|
|
369370
369348
|
isLongRunning: meta.isLongRunning,
|
|
369371
369349
|
startTime: meta.spawnedAt,
|
|
369372
369350
|
pollStartedAt: Date.now(),
|
|
@@ -369439,7 +369417,7 @@ function startRemoteSessionPolling(taskId, context5) {
|
|
|
369439
369417
|
return;
|
|
369440
369418
|
}
|
|
369441
369419
|
}
|
|
369442
|
-
const result = task.
|
|
369420
|
+
const result = task.isLongRunning ? undefined : accumulatedLog.findLast((msg) => msg.type === "result");
|
|
369443
369421
|
if (task.isRemoteReview && logGrew && cachedReviewContent === null) {
|
|
369444
369422
|
cachedReviewContent = extractReviewTagFromLog(response.newEvents);
|
|
369445
369423
|
}
|
|
@@ -369572,7 +369550,7 @@ var init_RemoteAgentTask = __esm(() => {
|
|
|
369572
369550
|
init_framework();
|
|
369573
369551
|
init_api2();
|
|
369574
369552
|
init_teleport();
|
|
369575
|
-
REMOTE_TASK_TYPES = ["remote-agent", "
|
|
369553
|
+
REMOTE_TASK_TYPES = ["remote-agent", "ultrareview", "autofix-pr", "background-pr"];
|
|
369576
369554
|
completionCheckers = new Map;
|
|
369577
369555
|
RemoteAgentTask = {
|
|
369578
369556
|
name: "RemoteAgentTask",
|
|
@@ -412380,7 +412358,7 @@ function isAnyTracingEnabled() {
|
|
|
412380
412358
|
return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
|
|
412381
412359
|
}
|
|
412382
412360
|
function getTracer() {
|
|
412383
|
-
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.80.
|
|
412361
|
+
return import_api39.trace.getTracer("ur-agent.gen_ai", "1.80.1");
|
|
412384
412362
|
}
|
|
412385
412363
|
function createSpanAttributes(spanType, customAttributes = {}) {
|
|
412386
412364
|
const baseAttributes = getTelemetryAttributes();
|
|
@@ -442812,7 +442790,7 @@ function Feedback({
|
|
|
442812
442790
|
platform: env2.platform,
|
|
442813
442791
|
gitRepo: envInfo.isGit,
|
|
442814
442792
|
terminal: env2.terminal,
|
|
442815
|
-
version: "1.80.
|
|
442793
|
+
version: "1.80.1",
|
|
442816
442794
|
transcript: normalizeMessagesForAPI(messages),
|
|
442817
442795
|
errors: sanitizedErrors,
|
|
442818
442796
|
lastApiRequest: getLastAPIRequest(),
|
|
@@ -443004,7 +442982,7 @@ function Feedback({
|
|
|
443004
442982
|
", ",
|
|
443005
442983
|
env2.terminal,
|
|
443006
442984
|
", v",
|
|
443007
|
-
"1.80.
|
|
442985
|
+
"1.80.1"
|
|
443008
442986
|
]
|
|
443009
442987
|
}, undefined, true, undefined, this)
|
|
443010
442988
|
]
|
|
@@ -443110,7 +443088,7 @@ ${sanitizedDescription}
|
|
|
443110
443088
|
` + `**Environment Info**
|
|
443111
443089
|
` + `- Platform: ${env2.platform}
|
|
443112
443090
|
` + `- Terminal: ${env2.terminal}
|
|
443113
|
-
` + `- Version: ${"1.80.
|
|
443091
|
+
` + `- Version: ${"1.80.1"}
|
|
443114
443092
|
` + `- Feedback ID: ${feedbackId}
|
|
443115
443093
|
` + `
|
|
443116
443094
|
**Errors**
|
|
@@ -446220,7 +446198,7 @@ function buildPrimarySection() {
|
|
|
446220
446198
|
}, undefined, false, undefined, this);
|
|
446221
446199
|
return [{
|
|
446222
446200
|
label: "Version",
|
|
446223
|
-
value: "1.80.
|
|
446201
|
+
value: "1.80.1"
|
|
446224
446202
|
}, {
|
|
446225
446203
|
label: "Session name",
|
|
446226
446204
|
value: nameValue
|
|
@@ -449602,7 +449580,7 @@ function Config({
|
|
|
449602
449580
|
}
|
|
449603
449581
|
}, undefined, false, undefined, this)
|
|
449604
449582
|
}, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
|
|
449605
|
-
currentVersion: "1.80.
|
|
449583
|
+
currentVersion: "1.80.1",
|
|
449606
449584
|
onChoice: (choice) => {
|
|
449607
449585
|
setShowSubmenu(null);
|
|
449608
449586
|
setTabsHidden(false);
|
|
@@ -449614,7 +449592,7 @@ function Config({
|
|
|
449614
449592
|
autoUpdatesChannel: "stable"
|
|
449615
449593
|
};
|
|
449616
449594
|
if (choice === "stay") {
|
|
449617
|
-
newSettings.minimumVersion = "1.80.
|
|
449595
|
+
newSettings.minimumVersion = "1.80.1";
|
|
449618
449596
|
}
|
|
449619
449597
|
updateSettingsForSource("userSettings", newSettings);
|
|
449620
449598
|
setSettingsData((prev_27) => ({
|
|
@@ -457872,7 +457850,7 @@ function HelpV2(t0) {
|
|
|
457872
457850
|
let t6;
|
|
457873
457851
|
if ($2[31] !== tabs) {
|
|
457874
457852
|
t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
|
|
457875
|
-
title: `UR v${"1.80.
|
|
457853
|
+
title: `UR v${"1.80.1"}`,
|
|
457876
457854
|
color: "professionalBlue",
|
|
457877
457855
|
defaultTab: "general",
|
|
457878
457856
|
children: tabs
|
|
@@ -458805,7 +458783,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
|
|
|
458805
458783
|
async function handleInitialize(options2) {
|
|
458806
458784
|
return {
|
|
458807
458785
|
name: "UR",
|
|
458808
|
-
version: "1.80.
|
|
458786
|
+
version: "1.80.1",
|
|
458809
458787
|
protocolVersion: "0.1.0",
|
|
458810
458788
|
workspaceRoot: options2.cwd,
|
|
458811
458789
|
capabilities: {
|
|
@@ -475913,7 +475891,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
|
|
|
475913
475891
|
return [];
|
|
475914
475892
|
}
|
|
475915
475893
|
}
|
|
475916
|
-
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.80.
|
|
475894
|
+
async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.80.1") {
|
|
475917
475895
|
if (process.env.USER_TYPE === "ant") {
|
|
475918
475896
|
const changelog = "";
|
|
475919
475897
|
if (changelog) {
|
|
@@ -475940,7 +475918,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.80.0")
|
|
|
475940
475918
|
releaseNotes
|
|
475941
475919
|
};
|
|
475942
475920
|
}
|
|
475943
|
-
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.80.
|
|
475921
|
+
function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.80.1") {
|
|
475944
475922
|
if (process.env.USER_TYPE === "ant") {
|
|
475945
475923
|
const changelog = "";
|
|
475946
475924
|
if (changelog) {
|
|
@@ -478845,7 +478823,7 @@ function getRecentActivitySync() {
|
|
|
478845
478823
|
return cachedActivity;
|
|
478846
478824
|
}
|
|
478847
478825
|
function getLogoDisplayData() {
|
|
478848
|
-
const version2 = process.env.DEMO_VERSION ?? "1.80.
|
|
478826
|
+
const version2 = process.env.DEMO_VERSION ?? "1.80.1";
|
|
478849
478827
|
const serverUrl = getDirectConnectServerUrl();
|
|
478850
478828
|
const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
|
|
478851
478829
|
const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
|
|
@@ -479713,7 +479691,7 @@ function LogoV2() {
|
|
|
479713
479691
|
if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
479714
479692
|
t2 = () => {
|
|
479715
479693
|
const currentConfig = getGlobalConfig();
|
|
479716
|
-
if (currentConfig.lastReleaseNotesSeen === "1.80.
|
|
479694
|
+
if (currentConfig.lastReleaseNotesSeen === "1.80.1") {
|
|
479717
479695
|
return;
|
|
479718
479696
|
}
|
|
479719
479697
|
saveGlobalConfig(_temp325);
|
|
@@ -480398,12 +480376,12 @@ function LogoV2() {
|
|
|
480398
480376
|
return t41;
|
|
480399
480377
|
}
|
|
480400
480378
|
function _temp325(current) {
|
|
480401
|
-
if (current.lastReleaseNotesSeen === "1.80.
|
|
480379
|
+
if (current.lastReleaseNotesSeen === "1.80.1") {
|
|
480402
480380
|
return current;
|
|
480403
480381
|
}
|
|
480404
480382
|
return {
|
|
480405
480383
|
...current,
|
|
480406
|
-
lastReleaseNotesSeen: "1.80.
|
|
480384
|
+
lastReleaseNotesSeen: "1.80.1"
|
|
480407
480385
|
};
|
|
480408
480386
|
}
|
|
480409
480387
|
function _temp241(s_0) {
|
|
@@ -488720,528 +488698,6 @@ var init_teammateViewHelpers = __esm(() => {
|
|
|
488720
488698
|
init_Task();
|
|
488721
488699
|
});
|
|
488722
488700
|
|
|
488723
|
-
// src/bridge/types.ts
|
|
488724
|
-
var DEFAULT_SESSION_TIMEOUT_MS, BRIDGE_LOGIN_INSTRUCTION = "Remote Control is only available with ur.com subscriptions. Please use `/login` to sign in with your ur.com account.", BRIDGE_LOGIN_ERROR, REMOTE_CONTROL_DISCONNECTED_MSG = "Remote Control disconnected.";
|
|
488725
|
-
var init_types14 = __esm(() => {
|
|
488726
|
-
DEFAULT_SESSION_TIMEOUT_MS = 24 * 60 * 60 * 1000;
|
|
488727
|
-
BRIDGE_LOGIN_ERROR = `Error: You must be logged in to use Remote Control.
|
|
488728
|
-
|
|
488729
|
-
` + BRIDGE_LOGIN_INSTRUCTION;
|
|
488730
|
-
});
|
|
488731
|
-
|
|
488732
|
-
// src/utils/ultraplan/ccrSession.ts
|
|
488733
|
-
function sdkMessageContent(message) {
|
|
488734
|
-
if (!("message" in message)) {
|
|
488735
|
-
return;
|
|
488736
|
-
}
|
|
488737
|
-
const sdkMessage = message.message;
|
|
488738
|
-
if (!sdkMessage || typeof sdkMessage !== "object") {
|
|
488739
|
-
return;
|
|
488740
|
-
}
|
|
488741
|
-
return sdkMessage.content;
|
|
488742
|
-
}
|
|
488743
|
-
function isToolUseBlock(block2) {
|
|
488744
|
-
return !!block2 && typeof block2 === "object" && block2.type === "tool_use" && typeof block2.id === "string" && typeof block2.name === "string";
|
|
488745
|
-
}
|
|
488746
|
-
function isToolResultBlockParam(block2) {
|
|
488747
|
-
return !!block2 && typeof block2 === "object" && block2.type === "tool_result" && typeof block2.tool_use_id === "string";
|
|
488748
|
-
}
|
|
488749
|
-
|
|
488750
|
-
class ExitPlanModeScanner {
|
|
488751
|
-
exitPlanCalls = [];
|
|
488752
|
-
results = new Map;
|
|
488753
|
-
rejectedIds = new Set;
|
|
488754
|
-
terminated = null;
|
|
488755
|
-
rescanAfterRejection = false;
|
|
488756
|
-
everSeenPending = false;
|
|
488757
|
-
get rejectCount() {
|
|
488758
|
-
return this.rejectedIds.size;
|
|
488759
|
-
}
|
|
488760
|
-
get hasPendingPlan() {
|
|
488761
|
-
const id = this.exitPlanCalls.findLast((c4) => !this.rejectedIds.has(c4));
|
|
488762
|
-
return id !== undefined && !this.results.has(id);
|
|
488763
|
-
}
|
|
488764
|
-
ingest(newEvents) {
|
|
488765
|
-
for (const m of newEvents) {
|
|
488766
|
-
if (m.type === "assistant") {
|
|
488767
|
-
const content = sdkMessageContent(m);
|
|
488768
|
-
if (!Array.isArray(content))
|
|
488769
|
-
continue;
|
|
488770
|
-
for (const block2 of content) {
|
|
488771
|
-
if (isToolUseBlock(block2) && block2.name === EXIT_PLAN_MODE_V2_TOOL_NAME) {
|
|
488772
|
-
this.exitPlanCalls.push(block2.id);
|
|
488773
|
-
}
|
|
488774
|
-
}
|
|
488775
|
-
} else if (m.type === "user") {
|
|
488776
|
-
const content = sdkMessageContent(m);
|
|
488777
|
-
if (!Array.isArray(content))
|
|
488778
|
-
continue;
|
|
488779
|
-
for (const block2 of content) {
|
|
488780
|
-
if (isToolResultBlockParam(block2)) {
|
|
488781
|
-
this.results.set(block2.tool_use_id, block2);
|
|
488782
|
-
}
|
|
488783
|
-
}
|
|
488784
|
-
} else if (m.type === "result" && m.subtype !== "success") {
|
|
488785
|
-
this.terminated = { subtype: m.subtype };
|
|
488786
|
-
}
|
|
488787
|
-
}
|
|
488788
|
-
const shouldScan = newEvents.length > 0 || this.rescanAfterRejection;
|
|
488789
|
-
this.rescanAfterRejection = false;
|
|
488790
|
-
let found = null;
|
|
488791
|
-
if (shouldScan) {
|
|
488792
|
-
for (let i3 = this.exitPlanCalls.length - 1;i3 >= 0; i3--) {
|
|
488793
|
-
const id = this.exitPlanCalls[i3];
|
|
488794
|
-
if (this.rejectedIds.has(id))
|
|
488795
|
-
continue;
|
|
488796
|
-
const tr = this.results.get(id);
|
|
488797
|
-
if (!tr) {
|
|
488798
|
-
found = { kind: "pending" };
|
|
488799
|
-
} else if (tr.is_error === true) {
|
|
488800
|
-
const teleportPlan = extractTeleportPlan(tr.content);
|
|
488801
|
-
found = teleportPlan !== null ? { kind: "teleport", plan: teleportPlan } : { kind: "rejected", id };
|
|
488802
|
-
} else {
|
|
488803
|
-
found = { kind: "approved", plan: extractApprovedPlan(tr.content) };
|
|
488804
|
-
}
|
|
488805
|
-
break;
|
|
488806
|
-
}
|
|
488807
|
-
if (found?.kind === "approved" || found?.kind === "teleport")
|
|
488808
|
-
return found;
|
|
488809
|
-
}
|
|
488810
|
-
if (found?.kind === "rejected") {
|
|
488811
|
-
this.rejectedIds.add(found.id);
|
|
488812
|
-
this.rescanAfterRejection = true;
|
|
488813
|
-
}
|
|
488814
|
-
if (this.terminated) {
|
|
488815
|
-
return { kind: "terminated", subtype: this.terminated.subtype };
|
|
488816
|
-
}
|
|
488817
|
-
if (found?.kind === "rejected") {
|
|
488818
|
-
return found;
|
|
488819
|
-
}
|
|
488820
|
-
if (found?.kind === "pending") {
|
|
488821
|
-
this.everSeenPending = true;
|
|
488822
|
-
return found;
|
|
488823
|
-
}
|
|
488824
|
-
return { kind: "unchanged" };
|
|
488825
|
-
}
|
|
488826
|
-
}
|
|
488827
|
-
async function pollForApprovedExitPlanMode(sessionId, timeoutMs, onPhaseChange, shouldStop) {
|
|
488828
|
-
const deadline = Date.now() + timeoutMs;
|
|
488829
|
-
const scanner = new ExitPlanModeScanner;
|
|
488830
|
-
let cursor = null;
|
|
488831
|
-
let failures = 0;
|
|
488832
|
-
let lastPhase = "running";
|
|
488833
|
-
while (Date.now() < deadline) {
|
|
488834
|
-
if (shouldStop?.()) {
|
|
488835
|
-
throw new UltraplanPollError("poll stopped by caller", "stopped", scanner.rejectCount);
|
|
488836
|
-
}
|
|
488837
|
-
let newEvents;
|
|
488838
|
-
let sessionStatus;
|
|
488839
|
-
try {
|
|
488840
|
-
const resp = await pollRemoteSessionEvents(sessionId, cursor);
|
|
488841
|
-
newEvents = resp.newEvents;
|
|
488842
|
-
cursor = resp.lastEventId;
|
|
488843
|
-
sessionStatus = resp.sessionStatus;
|
|
488844
|
-
failures = 0;
|
|
488845
|
-
} catch (e) {
|
|
488846
|
-
const transient = isTransientNetworkError(e);
|
|
488847
|
-
if (!transient || ++failures >= MAX_CONSECUTIVE_FAILURES) {
|
|
488848
|
-
throw new UltraplanPollError(e instanceof Error ? e.message : String(e), "network_or_unknown", scanner.rejectCount, { cause: e });
|
|
488849
|
-
}
|
|
488850
|
-
await sleep2(POLL_INTERVAL_MS2);
|
|
488851
|
-
continue;
|
|
488852
|
-
}
|
|
488853
|
-
let result;
|
|
488854
|
-
try {
|
|
488855
|
-
result = scanner.ingest(newEvents);
|
|
488856
|
-
} catch (e) {
|
|
488857
|
-
throw new UltraplanPollError(e instanceof Error ? e.message : String(e), "extract_marker_missing", scanner.rejectCount);
|
|
488858
|
-
}
|
|
488859
|
-
if (result.kind === "approved") {
|
|
488860
|
-
return {
|
|
488861
|
-
plan: result.plan,
|
|
488862
|
-
rejectCount: scanner.rejectCount,
|
|
488863
|
-
executionTarget: "remote"
|
|
488864
|
-
};
|
|
488865
|
-
}
|
|
488866
|
-
if (result.kind === "teleport") {
|
|
488867
|
-
return {
|
|
488868
|
-
plan: result.plan,
|
|
488869
|
-
rejectCount: scanner.rejectCount,
|
|
488870
|
-
executionTarget: "local"
|
|
488871
|
-
};
|
|
488872
|
-
}
|
|
488873
|
-
if (result.kind === "terminated") {
|
|
488874
|
-
throw new UltraplanPollError(`remote session ended (${result.subtype}) before plan approval`, "terminated", scanner.rejectCount);
|
|
488875
|
-
}
|
|
488876
|
-
const quietIdle = (sessionStatus === "idle" || sessionStatus === "requires_action") && newEvents.length === 0;
|
|
488877
|
-
const phase = scanner.hasPendingPlan ? "plan_ready" : quietIdle ? "needs_input" : "running";
|
|
488878
|
-
if (phase !== lastPhase) {
|
|
488879
|
-
logForDebugging(`[ultraplan] phase ${lastPhase} \u2192 ${phase}`);
|
|
488880
|
-
lastPhase = phase;
|
|
488881
|
-
onPhaseChange?.(phase);
|
|
488882
|
-
}
|
|
488883
|
-
await sleep2(POLL_INTERVAL_MS2);
|
|
488884
|
-
}
|
|
488885
|
-
throw new UltraplanPollError(scanner.everSeenPending ? `no approval after ${timeoutMs / 1000}s` : `ExitPlanMode never reached after ${timeoutMs / 1000}s (the remote container failed to start, or session ID mismatch?)`, scanner.everSeenPending ? "timeout_pending" : "timeout_no_plan", scanner.rejectCount);
|
|
488886
|
-
}
|
|
488887
|
-
function contentToText3(content) {
|
|
488888
|
-
return typeof content === "string" ? content : Array.isArray(content) ? content.map((b) => ("text" in b) ? b.text : "").join("") : "";
|
|
488889
|
-
}
|
|
488890
|
-
function extractTeleportPlan(content) {
|
|
488891
|
-
const text2 = contentToText3(content);
|
|
488892
|
-
const marker = `${ULTRAPLAN_TELEPORT_SENTINEL}
|
|
488893
|
-
`;
|
|
488894
|
-
const idx = text2.indexOf(marker);
|
|
488895
|
-
if (idx === -1)
|
|
488896
|
-
return null;
|
|
488897
|
-
return text2.slice(idx + marker.length).trimEnd();
|
|
488898
|
-
}
|
|
488899
|
-
function extractApprovedPlan(content) {
|
|
488900
|
-
const text2 = contentToText3(content);
|
|
488901
|
-
const markers = [
|
|
488902
|
-
`## Approved Plan (edited by user):
|
|
488903
|
-
`,
|
|
488904
|
-
`## Approved Plan:
|
|
488905
|
-
`
|
|
488906
|
-
];
|
|
488907
|
-
for (const marker of markers) {
|
|
488908
|
-
const idx = text2.indexOf(marker);
|
|
488909
|
-
if (idx !== -1) {
|
|
488910
|
-
return text2.slice(idx + marker.length).trimEnd();
|
|
488911
|
-
}
|
|
488912
|
-
}
|
|
488913
|
-
throw new Error(`ExitPlanMode approved but tool_result has no "## Approved Plan:" marker \u2014 remote may have hit the empty-plan or isAgent branch. Content preview: ${text2.slice(0, 200)}`);
|
|
488914
|
-
}
|
|
488915
|
-
var POLL_INTERVAL_MS2 = 3000, MAX_CONSECUTIVE_FAILURES = 5, UltraplanPollError, ULTRAPLAN_TELEPORT_SENTINEL = "__ULTRAPLAN_TELEPORT_LOCAL__";
|
|
488916
|
-
var init_ccrSession = __esm(() => {
|
|
488917
|
-
init_debug();
|
|
488918
|
-
init_api2();
|
|
488919
|
-
init_teleport();
|
|
488920
|
-
UltraplanPollError = class UltraplanPollError extends Error {
|
|
488921
|
-
reason;
|
|
488922
|
-
rejectCount;
|
|
488923
|
-
constructor(message, reason, rejectCount, options2) {
|
|
488924
|
-
super(message, options2);
|
|
488925
|
-
this.reason = reason;
|
|
488926
|
-
this.rejectCount = rejectCount;
|
|
488927
|
-
this.name = "UltraplanPollError";
|
|
488928
|
-
}
|
|
488929
|
-
};
|
|
488930
|
-
});
|
|
488931
|
-
|
|
488932
|
-
// src/utils/ultraplan/prompt.txt
|
|
488933
|
-
var require_prompt = __commonJS((exports, module) => {
|
|
488934
|
-
module.exports = `<system-reminder>
|
|
488935
|
-
You are preparing a careful implementation plan for the user's request.
|
|
488936
|
-
|
|
488937
|
-
Clarify the goal, inspect the relevant repository context, identify risks, and produce a concrete plan that can be reviewed before execution. Keep the plan focused on the requested change and avoid unrelated refactors.
|
|
488938
|
-
</system-reminder>
|
|
488939
|
-
`;
|
|
488940
|
-
});
|
|
488941
|
-
|
|
488942
|
-
// src/commands/ultraplan.tsx
|
|
488943
|
-
function getUltraplanModel() {
|
|
488944
|
-
return getFeatureValue_CACHED_MAY_BE_STALE("tengu_ultraplan_model", ALL_MODEL_CONFIGS.modelO46.firstParty);
|
|
488945
|
-
}
|
|
488946
|
-
function buildUltraplanPrompt(blurb, seedPlan) {
|
|
488947
|
-
const parts = [];
|
|
488948
|
-
if (seedPlan) {
|
|
488949
|
-
parts.push("Here is a draft plan to refine:", "", seedPlan, "");
|
|
488950
|
-
}
|
|
488951
|
-
parts.push(ULTRAPLAN_INSTRUCTIONS);
|
|
488952
|
-
if (blurb) {
|
|
488953
|
-
parts.push("", blurb);
|
|
488954
|
-
}
|
|
488955
|
-
return parts.join(`
|
|
488956
|
-
`);
|
|
488957
|
-
}
|
|
488958
|
-
function startDetachedPoll(taskId, sessionId, url3, getAppState, setAppState) {
|
|
488959
|
-
const started = Date.now();
|
|
488960
|
-
let failed = false;
|
|
488961
|
-
(async () => {
|
|
488962
|
-
try {
|
|
488963
|
-
const {
|
|
488964
|
-
plan,
|
|
488965
|
-
rejectCount,
|
|
488966
|
-
executionTarget
|
|
488967
|
-
} = await pollForApprovedExitPlanMode(sessionId, ULTRAPLAN_TIMEOUT_MS, (phase) => {
|
|
488968
|
-
if (phase === "needs_input")
|
|
488969
|
-
logEvent("tengu_ultraplan_awaiting_input", {});
|
|
488970
|
-
updateTaskState(taskId, setAppState, (t) => {
|
|
488971
|
-
if (t.status !== "running")
|
|
488972
|
-
return t;
|
|
488973
|
-
const next = phase === "running" ? undefined : phase;
|
|
488974
|
-
return t.ultraplanPhase === next ? t : {
|
|
488975
|
-
...t,
|
|
488976
|
-
ultraplanPhase: next
|
|
488977
|
-
};
|
|
488978
|
-
});
|
|
488979
|
-
}, () => getAppState().tasks?.[taskId]?.status !== "running");
|
|
488980
|
-
logEvent("tengu_ultraplan_approved", {
|
|
488981
|
-
duration_ms: Date.now() - started,
|
|
488982
|
-
plan_length: plan.length,
|
|
488983
|
-
reject_count: rejectCount,
|
|
488984
|
-
execution_target: executionTarget
|
|
488985
|
-
});
|
|
488986
|
-
if (executionTarget === "remote") {
|
|
488987
|
-
const task = getAppState().tasks?.[taskId];
|
|
488988
|
-
if (task?.status !== "running")
|
|
488989
|
-
return;
|
|
488990
|
-
updateTaskState(taskId, setAppState, (t) => t.status !== "running" ? t : {
|
|
488991
|
-
...t,
|
|
488992
|
-
status: "completed",
|
|
488993
|
-
endTime: Date.now()
|
|
488994
|
-
});
|
|
488995
|
-
setAppState((prev) => prev.ultraplanSessionUrl === url3 ? {
|
|
488996
|
-
...prev,
|
|
488997
|
-
ultraplanSessionUrl: undefined
|
|
488998
|
-
} : prev);
|
|
488999
|
-
enqueuePendingNotification({
|
|
489000
|
-
value: [`Ultraplan approved \u2014 executing in UR on the web. Follow along at: ${url3}`, "", "Results will land as a pull request when the remote session finishes. There is nothing to do here."].join(`
|
|
489001
|
-
`),
|
|
489002
|
-
mode: "task-notification"
|
|
489003
|
-
});
|
|
489004
|
-
} else {
|
|
489005
|
-
setAppState((prev) => {
|
|
489006
|
-
const task = prev.tasks?.[taskId];
|
|
489007
|
-
if (!task || task.status !== "running")
|
|
489008
|
-
return prev;
|
|
489009
|
-
return {
|
|
489010
|
-
...prev,
|
|
489011
|
-
ultraplanPendingChoice: {
|
|
489012
|
-
plan,
|
|
489013
|
-
sessionId,
|
|
489014
|
-
taskId
|
|
489015
|
-
}
|
|
489016
|
-
};
|
|
489017
|
-
});
|
|
489018
|
-
}
|
|
489019
|
-
} catch (e) {
|
|
489020
|
-
const task = getAppState().tasks?.[taskId];
|
|
489021
|
-
if (task?.status !== "running")
|
|
489022
|
-
return;
|
|
489023
|
-
failed = true;
|
|
489024
|
-
logEvent("tengu_ultraplan_failed", {
|
|
489025
|
-
duration_ms: Date.now() - started,
|
|
489026
|
-
reason: e instanceof UltraplanPollError ? e.reason : "network_or_unknown",
|
|
489027
|
-
reject_count: e instanceof UltraplanPollError ? e.rejectCount : undefined
|
|
489028
|
-
});
|
|
489029
|
-
enqueuePendingNotification({
|
|
489030
|
-
value: `Ultraplan failed: ${errorMessage2(e)}
|
|
489031
|
-
|
|
489032
|
-
Session: ${url3}`,
|
|
489033
|
-
mode: "task-notification"
|
|
489034
|
-
});
|
|
489035
|
-
archiveRemoteSession(sessionId).catch((e2) => logForDebugging(`ultraplan archive failed: ${String(e2)}`));
|
|
489036
|
-
setAppState((prev) => prev.ultraplanSessionUrl === url3 ? {
|
|
489037
|
-
...prev,
|
|
489038
|
-
ultraplanSessionUrl: undefined
|
|
489039
|
-
} : prev);
|
|
489040
|
-
} finally {
|
|
489041
|
-
if (failed) {
|
|
489042
|
-
updateTaskState(taskId, setAppState, (t) => t.status !== "running" ? t : {
|
|
489043
|
-
...t,
|
|
489044
|
-
status: "failed",
|
|
489045
|
-
endTime: Date.now()
|
|
489046
|
-
});
|
|
489047
|
-
}
|
|
489048
|
-
}
|
|
489049
|
-
})();
|
|
489050
|
-
}
|
|
489051
|
-
function buildLaunchMessage(disconnectedBridge) {
|
|
489052
|
-
const prefix = disconnectedBridge ? `${REMOTE_CONTROL_DISCONNECTED_MSG} ` : "";
|
|
489053
|
-
return `${DIAMOND_OPEN} ultraplan
|
|
489054
|
-
${prefix}Starting UR on the web\u2026`;
|
|
489055
|
-
}
|
|
489056
|
-
function buildSessionReadyMessage(url3) {
|
|
489057
|
-
return `${DIAMOND_OPEN} ultraplan \xB7 Monitor progress in UR on the web ${url3}
|
|
489058
|
-
You can continue working \u2014 when the ${DIAMOND_OPEN} fills, press \u2193 to view results`;
|
|
489059
|
-
}
|
|
489060
|
-
function buildAlreadyActiveMessage(url3) {
|
|
489061
|
-
return url3 ? `ultraplan: already polling. Open ${url3} to check status, or wait for the plan to land here.` : "ultraplan: already launching. Please wait for the session to start.";
|
|
489062
|
-
}
|
|
489063
|
-
async function stopUltraplan(taskId, sessionId, setAppState) {
|
|
489064
|
-
await RemoteAgentTask.kill(taskId, setAppState);
|
|
489065
|
-
setAppState((prev) => prev.ultraplanSessionUrl || prev.ultraplanPendingChoice || prev.ultraplanLaunching ? {
|
|
489066
|
-
...prev,
|
|
489067
|
-
ultraplanSessionUrl: undefined,
|
|
489068
|
-
ultraplanPendingChoice: undefined,
|
|
489069
|
-
ultraplanLaunching: undefined
|
|
489070
|
-
} : prev);
|
|
489071
|
-
const url3 = getRemoteSessionUrl(sessionId, process.env.SESSION_INGRESS_URL);
|
|
489072
|
-
enqueuePendingNotification({
|
|
489073
|
-
value: `Ultraplan stopped.
|
|
489074
|
-
|
|
489075
|
-
Session: ${url3}`,
|
|
489076
|
-
mode: "task-notification"
|
|
489077
|
-
});
|
|
489078
|
-
enqueuePendingNotification({
|
|
489079
|
-
value: "The user stopped the ultraplan session above. Do not respond to the stop notification \u2014 wait for their next message.",
|
|
489080
|
-
mode: "task-notification",
|
|
489081
|
-
isMeta: true
|
|
489082
|
-
});
|
|
489083
|
-
}
|
|
489084
|
-
async function launchUltraplan(opts) {
|
|
489085
|
-
const {
|
|
489086
|
-
blurb,
|
|
489087
|
-
seedPlan,
|
|
489088
|
-
getAppState,
|
|
489089
|
-
setAppState,
|
|
489090
|
-
signal,
|
|
489091
|
-
disconnectedBridge,
|
|
489092
|
-
onSessionReady
|
|
489093
|
-
} = opts;
|
|
489094
|
-
const {
|
|
489095
|
-
ultraplanSessionUrl: active2,
|
|
489096
|
-
ultraplanLaunching
|
|
489097
|
-
} = getAppState();
|
|
489098
|
-
if (active2 || ultraplanLaunching) {
|
|
489099
|
-
logEvent("tengu_ultraplan_create_failed", {
|
|
489100
|
-
reason: active2 ? "already_polling" : "already_launching"
|
|
489101
|
-
});
|
|
489102
|
-
return buildAlreadyActiveMessage(active2);
|
|
489103
|
-
}
|
|
489104
|
-
if (!blurb && !seedPlan) {
|
|
489105
|
-
return "Advanced remote planning needs a prompt or an approved draft plan.";
|
|
489106
|
-
}
|
|
489107
|
-
setAppState((prev) => prev.ultraplanLaunching ? prev : {
|
|
489108
|
-
...prev,
|
|
489109
|
-
ultraplanLaunching: true
|
|
489110
|
-
});
|
|
489111
|
-
launchDetached({
|
|
489112
|
-
blurb,
|
|
489113
|
-
seedPlan,
|
|
489114
|
-
getAppState,
|
|
489115
|
-
setAppState,
|
|
489116
|
-
signal,
|
|
489117
|
-
onSessionReady
|
|
489118
|
-
});
|
|
489119
|
-
return buildLaunchMessage(disconnectedBridge);
|
|
489120
|
-
}
|
|
489121
|
-
async function launchDetached(opts) {
|
|
489122
|
-
const {
|
|
489123
|
-
blurb,
|
|
489124
|
-
seedPlan,
|
|
489125
|
-
getAppState,
|
|
489126
|
-
setAppState,
|
|
489127
|
-
signal,
|
|
489128
|
-
onSessionReady
|
|
489129
|
-
} = opts;
|
|
489130
|
-
let sessionId;
|
|
489131
|
-
try {
|
|
489132
|
-
const model = getUltraplanModel();
|
|
489133
|
-
const eligibility = await checkRemoteAgentEligibility();
|
|
489134
|
-
if (!eligibility.eligible) {
|
|
489135
|
-
logEvent("tengu_ultraplan_create_failed", {
|
|
489136
|
-
reason: "precondition",
|
|
489137
|
-
precondition_errors: eligibility.errors.map((e) => e.type).join(",")
|
|
489138
|
-
});
|
|
489139
|
-
const reasons = eligibility.errors.map(formatPreconditionError).join(`
|
|
489140
|
-
`);
|
|
489141
|
-
enqueuePendingNotification({
|
|
489142
|
-
value: `ultraplan: cannot launch remote session \u2014
|
|
489143
|
-
${reasons}`,
|
|
489144
|
-
mode: "task-notification"
|
|
489145
|
-
});
|
|
489146
|
-
return;
|
|
489147
|
-
}
|
|
489148
|
-
const prompt = buildUltraplanPrompt(blurb, seedPlan);
|
|
489149
|
-
let bundleFailMsg;
|
|
489150
|
-
const session2 = await teleportToRemote({
|
|
489151
|
-
initialMessage: prompt,
|
|
489152
|
-
description: blurb || "Refine local plan",
|
|
489153
|
-
model,
|
|
489154
|
-
permissionMode: "plan",
|
|
489155
|
-
ultraplan: true,
|
|
489156
|
-
signal,
|
|
489157
|
-
useDefaultEnvironment: true,
|
|
489158
|
-
onBundleFail: (msg) => {
|
|
489159
|
-
bundleFailMsg = msg;
|
|
489160
|
-
}
|
|
489161
|
-
});
|
|
489162
|
-
if (!session2) {
|
|
489163
|
-
logEvent("tengu_ultraplan_create_failed", {
|
|
489164
|
-
reason: bundleFailMsg ? "bundle_fail" : "teleport_null"
|
|
489165
|
-
});
|
|
489166
|
-
enqueuePendingNotification({
|
|
489167
|
-
value: `ultraplan: session creation failed${bundleFailMsg ? ` \u2014 ${bundleFailMsg}` : ""}. See --debug for details.`,
|
|
489168
|
-
mode: "task-notification"
|
|
489169
|
-
});
|
|
489170
|
-
return;
|
|
489171
|
-
}
|
|
489172
|
-
sessionId = session2.id;
|
|
489173
|
-
const url3 = getRemoteSessionUrl(session2.id, process.env.SESSION_INGRESS_URL);
|
|
489174
|
-
setAppState((prev) => ({
|
|
489175
|
-
...prev,
|
|
489176
|
-
ultraplanSessionUrl: url3,
|
|
489177
|
-
ultraplanLaunching: undefined
|
|
489178
|
-
}));
|
|
489179
|
-
onSessionReady?.(buildSessionReadyMessage(url3));
|
|
489180
|
-
logEvent("tengu_ultraplan_launched", {
|
|
489181
|
-
has_seed_plan: Boolean(seedPlan),
|
|
489182
|
-
model
|
|
489183
|
-
});
|
|
489184
|
-
const {
|
|
489185
|
-
taskId
|
|
489186
|
-
} = registerRemoteAgentTask({
|
|
489187
|
-
remoteTaskType: "ultraplan",
|
|
489188
|
-
session: {
|
|
489189
|
-
id: session2.id,
|
|
489190
|
-
title: blurb || "Ultraplan"
|
|
489191
|
-
},
|
|
489192
|
-
command: blurb,
|
|
489193
|
-
context: {
|
|
489194
|
-
abortController: new AbortController,
|
|
489195
|
-
getAppState,
|
|
489196
|
-
setAppState
|
|
489197
|
-
},
|
|
489198
|
-
isUltraplan: true
|
|
489199
|
-
});
|
|
489200
|
-
startDetachedPoll(taskId, session2.id, url3, getAppState, setAppState);
|
|
489201
|
-
} catch (e) {
|
|
489202
|
-
logError2(e);
|
|
489203
|
-
logEvent("tengu_ultraplan_create_failed", {
|
|
489204
|
-
reason: "unexpected_error"
|
|
489205
|
-
});
|
|
489206
|
-
enqueuePendingNotification({
|
|
489207
|
-
value: `ultraplan: unexpected error \u2014 ${errorMessage2(e)}`,
|
|
489208
|
-
mode: "task-notification"
|
|
489209
|
-
});
|
|
489210
|
-
if (sessionId) {
|
|
489211
|
-
archiveRemoteSession(sessionId).catch((err2) => logForDebugging("ultraplan: failed to archive orphaned session", err2));
|
|
489212
|
-
setAppState((prev) => prev.ultraplanSessionUrl ? {
|
|
489213
|
-
...prev,
|
|
489214
|
-
ultraplanSessionUrl: undefined
|
|
489215
|
-
} : prev);
|
|
489216
|
-
}
|
|
489217
|
-
} finally {
|
|
489218
|
-
setAppState((prev) => prev.ultraplanLaunching ? {
|
|
489219
|
-
...prev,
|
|
489220
|
-
ultraplanLaunching: undefined
|
|
489221
|
-
} : prev);
|
|
489222
|
-
}
|
|
489223
|
-
}
|
|
489224
|
-
var ULTRAPLAN_TIMEOUT_MS, _rawPrompt, DEFAULT_INSTRUCTIONS, ULTRAPLAN_INSTRUCTIONS;
|
|
489225
|
-
var init_ultraplan = __esm(() => {
|
|
489226
|
-
init_types14();
|
|
489227
|
-
init_figures2();
|
|
489228
|
-
init_growthbook();
|
|
489229
|
-
init_analytics();
|
|
489230
|
-
init_RemoteAgentTask();
|
|
489231
|
-
init_debug();
|
|
489232
|
-
init_errors();
|
|
489233
|
-
init_log2();
|
|
489234
|
-
init_messageQueueManager();
|
|
489235
|
-
init_configs();
|
|
489236
|
-
init_framework();
|
|
489237
|
-
init_teleport();
|
|
489238
|
-
init_ccrSession();
|
|
489239
|
-
ULTRAPLAN_TIMEOUT_MS = 30 * 60 * 1000;
|
|
489240
|
-
_rawPrompt = require_prompt();
|
|
489241
|
-
DEFAULT_INSTRUCTIONS = (typeof _rawPrompt === "string" ? _rawPrompt : _rawPrompt.default).trimEnd();
|
|
489242
|
-
ULTRAPLAN_INSTRUCTIONS = DEFAULT_INSTRUCTIONS;
|
|
489243
|
-
});
|
|
489244
|
-
|
|
489245
488701
|
// src/components/tasks/renderToolActivity.tsx
|
|
489246
488702
|
function renderToolActivity(activity, tools, theme) {
|
|
489247
488703
|
const tool = findToolByName(tools, activity.toolName);
|
|
@@ -491516,445 +490972,6 @@ var init_mappers = __esm(() => {
|
|
|
491516
490972
|
});
|
|
491517
490973
|
|
|
491518
490974
|
// src/components/tasks/RemoteSessionDetailDialog.tsx
|
|
491519
|
-
function formatToolUseSummary(name, input) {
|
|
491520
|
-
if (name === EXIT_PLAN_MODE_V2_TOOL_NAME) {
|
|
491521
|
-
return "Review the plan in UR on the web";
|
|
491522
|
-
}
|
|
491523
|
-
if (!input || typeof input !== "object")
|
|
491524
|
-
return name;
|
|
491525
|
-
if (name === ASK_USER_QUESTION_TOOL_NAME && "questions" in input) {
|
|
491526
|
-
const qs = input.questions;
|
|
491527
|
-
if (Array.isArray(qs) && qs[0] && typeof qs[0] === "object") {
|
|
491528
|
-
const q = "question" in qs[0] && typeof qs[0].question === "string" && qs[0].question ? qs[0].question : ("header" in qs[0]) && typeof qs[0].header === "string" ? qs[0].header : null;
|
|
491529
|
-
if (q) {
|
|
491530
|
-
const oneLine2 = q.replace(/\s+/g, " ").trim();
|
|
491531
|
-
return `Answer in browser: ${truncateToWidth(oneLine2, 50)}`;
|
|
491532
|
-
}
|
|
491533
|
-
}
|
|
491534
|
-
}
|
|
491535
|
-
for (const v of Object.values(input)) {
|
|
491536
|
-
if (typeof v === "string" && v.trim()) {
|
|
491537
|
-
const oneLine2 = v.replace(/\s+/g, " ").trim();
|
|
491538
|
-
return `${name} ${truncateToWidth(oneLine2, 60)}`;
|
|
491539
|
-
}
|
|
491540
|
-
}
|
|
491541
|
-
return name;
|
|
491542
|
-
}
|
|
491543
|
-
function UltraplanSessionDetail(t0) {
|
|
491544
|
-
const $2 = import_compiler_runtime200.c(70);
|
|
491545
|
-
const {
|
|
491546
|
-
session: session2,
|
|
491547
|
-
onDone,
|
|
491548
|
-
onBack,
|
|
491549
|
-
onKill
|
|
491550
|
-
} = t0;
|
|
491551
|
-
const running = session2.status === "running" || session2.status === "pending";
|
|
491552
|
-
const phase = session2.ultraplanPhase;
|
|
491553
|
-
const statusText = running ? phase ? PHASE_LABEL[phase] : "running" : session2.status;
|
|
491554
|
-
const elapsedTime = useElapsedTime(session2.startTime, running, 1000, 0, session2.endTime);
|
|
491555
|
-
let spawns = 0;
|
|
491556
|
-
let calls = 0;
|
|
491557
|
-
let lastBlock = null;
|
|
491558
|
-
for (const msg of session2.log) {
|
|
491559
|
-
if (msg.type !== "assistant") {
|
|
491560
|
-
continue;
|
|
491561
|
-
}
|
|
491562
|
-
for (const block2 of msg.message.content) {
|
|
491563
|
-
if (block2.type !== "tool_use") {
|
|
491564
|
-
continue;
|
|
491565
|
-
}
|
|
491566
|
-
calls++;
|
|
491567
|
-
lastBlock = block2;
|
|
491568
|
-
if (block2.name === AGENT_TOOL_NAME || block2.name === LEGACY_AGENT_TOOL_NAME) {
|
|
491569
|
-
spawns++;
|
|
491570
|
-
}
|
|
491571
|
-
}
|
|
491572
|
-
}
|
|
491573
|
-
const t1 = 1 + spawns;
|
|
491574
|
-
let t2;
|
|
491575
|
-
if ($2[0] !== lastBlock) {
|
|
491576
|
-
t2 = lastBlock ? formatToolUseSummary(lastBlock.name, lastBlock.input) : null;
|
|
491577
|
-
$2[0] = lastBlock;
|
|
491578
|
-
$2[1] = t2;
|
|
491579
|
-
} else {
|
|
491580
|
-
t2 = $2[1];
|
|
491581
|
-
}
|
|
491582
|
-
let t3;
|
|
491583
|
-
if ($2[2] !== calls || $2[3] !== t1 || $2[4] !== t2) {
|
|
491584
|
-
t3 = {
|
|
491585
|
-
agentsWorking: t1,
|
|
491586
|
-
toolCalls: calls,
|
|
491587
|
-
lastToolCall: t2
|
|
491588
|
-
};
|
|
491589
|
-
$2[2] = calls;
|
|
491590
|
-
$2[3] = t1;
|
|
491591
|
-
$2[4] = t2;
|
|
491592
|
-
$2[5] = t3;
|
|
491593
|
-
} else {
|
|
491594
|
-
t3 = $2[5];
|
|
491595
|
-
}
|
|
491596
|
-
const {
|
|
491597
|
-
agentsWorking,
|
|
491598
|
-
toolCalls,
|
|
491599
|
-
lastToolCall
|
|
491600
|
-
} = t3;
|
|
491601
|
-
let t4;
|
|
491602
|
-
if ($2[6] !== session2.sessionId) {
|
|
491603
|
-
t4 = getRemoteTaskSessionUrl(session2.sessionId);
|
|
491604
|
-
$2[6] = session2.sessionId;
|
|
491605
|
-
$2[7] = t4;
|
|
491606
|
-
} else {
|
|
491607
|
-
t4 = $2[7];
|
|
491608
|
-
}
|
|
491609
|
-
const sessionUrl = t4;
|
|
491610
|
-
let t5;
|
|
491611
|
-
if ($2[8] !== onBack || $2[9] !== onDone) {
|
|
491612
|
-
t5 = onBack ?? (() => onDone("Remote session details dismissed", {
|
|
491613
|
-
display: "system"
|
|
491614
|
-
}));
|
|
491615
|
-
$2[8] = onBack;
|
|
491616
|
-
$2[9] = onDone;
|
|
491617
|
-
$2[10] = t5;
|
|
491618
|
-
} else {
|
|
491619
|
-
t5 = $2[10];
|
|
491620
|
-
}
|
|
491621
|
-
const goBackOrClose = t5;
|
|
491622
|
-
const [confirmingStop, setConfirmingStop] = import_react157.useState(false);
|
|
491623
|
-
if (confirmingStop) {
|
|
491624
|
-
let t62;
|
|
491625
|
-
if ($2[11] === Symbol.for("react.memo_cache_sentinel")) {
|
|
491626
|
-
t62 = () => setConfirmingStop(false);
|
|
491627
|
-
$2[11] = t62;
|
|
491628
|
-
} else {
|
|
491629
|
-
t62 = $2[11];
|
|
491630
|
-
}
|
|
491631
|
-
let t72;
|
|
491632
|
-
if ($2[12] === Symbol.for("react.memo_cache_sentinel")) {
|
|
491633
|
-
t72 = /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(ThemedText, {
|
|
491634
|
-
dimColor: true,
|
|
491635
|
-
children: "This will terminate the UR on the web session."
|
|
491636
|
-
}, undefined, false, undefined, this);
|
|
491637
|
-
$2[12] = t72;
|
|
491638
|
-
} else {
|
|
491639
|
-
t72 = $2[12];
|
|
491640
|
-
}
|
|
491641
|
-
let t82;
|
|
491642
|
-
if ($2[13] === Symbol.for("react.memo_cache_sentinel")) {
|
|
491643
|
-
t82 = {
|
|
491644
|
-
label: "Terminate session",
|
|
491645
|
-
value: "stop"
|
|
491646
|
-
};
|
|
491647
|
-
$2[13] = t82;
|
|
491648
|
-
} else {
|
|
491649
|
-
t82 = $2[13];
|
|
491650
|
-
}
|
|
491651
|
-
let t92;
|
|
491652
|
-
if ($2[14] === Symbol.for("react.memo_cache_sentinel")) {
|
|
491653
|
-
t92 = [t82, {
|
|
491654
|
-
label: "Back",
|
|
491655
|
-
value: "back"
|
|
491656
|
-
}];
|
|
491657
|
-
$2[14] = t92;
|
|
491658
|
-
} else {
|
|
491659
|
-
t92 = $2[14];
|
|
491660
|
-
}
|
|
491661
|
-
let t102;
|
|
491662
|
-
if ($2[15] !== goBackOrClose || $2[16] !== onKill) {
|
|
491663
|
-
t102 = /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(Dialog, {
|
|
491664
|
-
title: "Stop ultraplan?",
|
|
491665
|
-
onCancel: t62,
|
|
491666
|
-
color: "background",
|
|
491667
|
-
children: /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(ThemedBox_default, {
|
|
491668
|
-
flexDirection: "column",
|
|
491669
|
-
gap: 1,
|
|
491670
|
-
children: [
|
|
491671
|
-
t72,
|
|
491672
|
-
/* @__PURE__ */ jsx_dev_runtime269.jsxDEV(Select, {
|
|
491673
|
-
options: t92,
|
|
491674
|
-
onChange: (v) => {
|
|
491675
|
-
if (v === "stop") {
|
|
491676
|
-
onKill?.();
|
|
491677
|
-
goBackOrClose();
|
|
491678
|
-
} else {
|
|
491679
|
-
setConfirmingStop(false);
|
|
491680
|
-
}
|
|
491681
|
-
}
|
|
491682
|
-
}, undefined, false, undefined, this)
|
|
491683
|
-
]
|
|
491684
|
-
}, undefined, true, undefined, this)
|
|
491685
|
-
}, undefined, false, undefined, this);
|
|
491686
|
-
$2[15] = goBackOrClose;
|
|
491687
|
-
$2[16] = onKill;
|
|
491688
|
-
$2[17] = t102;
|
|
491689
|
-
} else {
|
|
491690
|
-
t102 = $2[17];
|
|
491691
|
-
}
|
|
491692
|
-
return t102;
|
|
491693
|
-
}
|
|
491694
|
-
const t6 = phase === "plan_ready" ? DIAMOND_FILLED : DIAMOND_OPEN;
|
|
491695
|
-
let t7;
|
|
491696
|
-
if ($2[18] !== t6) {
|
|
491697
|
-
t7 = /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(ThemedText, {
|
|
491698
|
-
color: "background",
|
|
491699
|
-
children: [
|
|
491700
|
-
t6,
|
|
491701
|
-
" "
|
|
491702
|
-
]
|
|
491703
|
-
}, undefined, true, undefined, this);
|
|
491704
|
-
$2[18] = t6;
|
|
491705
|
-
$2[19] = t7;
|
|
491706
|
-
} else {
|
|
491707
|
-
t7 = $2[19];
|
|
491708
|
-
}
|
|
491709
|
-
let t8;
|
|
491710
|
-
if ($2[20] === Symbol.for("react.memo_cache_sentinel")) {
|
|
491711
|
-
t8 = /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(ThemedText, {
|
|
491712
|
-
bold: true,
|
|
491713
|
-
children: "ultraplan"
|
|
491714
|
-
}, undefined, false, undefined, this);
|
|
491715
|
-
$2[20] = t8;
|
|
491716
|
-
} else {
|
|
491717
|
-
t8 = $2[20];
|
|
491718
|
-
}
|
|
491719
|
-
let t9;
|
|
491720
|
-
if ($2[21] !== elapsedTime || $2[22] !== statusText) {
|
|
491721
|
-
t9 = /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(ThemedText, {
|
|
491722
|
-
dimColor: true,
|
|
491723
|
-
children: [
|
|
491724
|
-
" \xB7 ",
|
|
491725
|
-
elapsedTime,
|
|
491726
|
-
" \xB7 ",
|
|
491727
|
-
statusText
|
|
491728
|
-
]
|
|
491729
|
-
}, undefined, true, undefined, this);
|
|
491730
|
-
$2[21] = elapsedTime;
|
|
491731
|
-
$2[22] = statusText;
|
|
491732
|
-
$2[23] = t9;
|
|
491733
|
-
} else {
|
|
491734
|
-
t9 = $2[23];
|
|
491735
|
-
}
|
|
491736
|
-
let t10;
|
|
491737
|
-
if ($2[24] !== t7 || $2[25] !== t9) {
|
|
491738
|
-
t10 = /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(ThemedText, {
|
|
491739
|
-
children: [
|
|
491740
|
-
t7,
|
|
491741
|
-
t8,
|
|
491742
|
-
t9
|
|
491743
|
-
]
|
|
491744
|
-
}, undefined, true, undefined, this);
|
|
491745
|
-
$2[24] = t7;
|
|
491746
|
-
$2[25] = t9;
|
|
491747
|
-
$2[26] = t10;
|
|
491748
|
-
} else {
|
|
491749
|
-
t10 = $2[26];
|
|
491750
|
-
}
|
|
491751
|
-
let t11;
|
|
491752
|
-
if ($2[27] !== phase) {
|
|
491753
|
-
t11 = phase === "plan_ready" && /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(ThemedText, {
|
|
491754
|
-
color: "success",
|
|
491755
|
-
children: [
|
|
491756
|
-
figures_default.tick,
|
|
491757
|
-
" "
|
|
491758
|
-
]
|
|
491759
|
-
}, undefined, true, undefined, this);
|
|
491760
|
-
$2[27] = phase;
|
|
491761
|
-
$2[28] = t11;
|
|
491762
|
-
} else {
|
|
491763
|
-
t11 = $2[28];
|
|
491764
|
-
}
|
|
491765
|
-
let t12;
|
|
491766
|
-
if ($2[29] !== agentsWorking) {
|
|
491767
|
-
t12 = plural(agentsWorking, "agent");
|
|
491768
|
-
$2[29] = agentsWorking;
|
|
491769
|
-
$2[30] = t12;
|
|
491770
|
-
} else {
|
|
491771
|
-
t12 = $2[30];
|
|
491772
|
-
}
|
|
491773
|
-
const t13 = phase ? AGENT_VERB[phase] : "working";
|
|
491774
|
-
let t14;
|
|
491775
|
-
if ($2[31] !== toolCalls) {
|
|
491776
|
-
t14 = plural(toolCalls, "call");
|
|
491777
|
-
$2[31] = toolCalls;
|
|
491778
|
-
$2[32] = t14;
|
|
491779
|
-
} else {
|
|
491780
|
-
t14 = $2[32];
|
|
491781
|
-
}
|
|
491782
|
-
let t15;
|
|
491783
|
-
if ($2[33] !== agentsWorking || $2[34] !== t11 || $2[35] !== t12 || $2[36] !== t13 || $2[37] !== t14 || $2[38] !== toolCalls) {
|
|
491784
|
-
t15 = /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(ThemedText, {
|
|
491785
|
-
children: [
|
|
491786
|
-
t11,
|
|
491787
|
-
agentsWorking,
|
|
491788
|
-
" ",
|
|
491789
|
-
t12,
|
|
491790
|
-
" ",
|
|
491791
|
-
t13,
|
|
491792
|
-
" \xB7 ",
|
|
491793
|
-
toolCalls,
|
|
491794
|
-
" tool",
|
|
491795
|
-
" ",
|
|
491796
|
-
t14
|
|
491797
|
-
]
|
|
491798
|
-
}, undefined, true, undefined, this);
|
|
491799
|
-
$2[33] = agentsWorking;
|
|
491800
|
-
$2[34] = t11;
|
|
491801
|
-
$2[35] = t12;
|
|
491802
|
-
$2[36] = t13;
|
|
491803
|
-
$2[37] = t14;
|
|
491804
|
-
$2[38] = toolCalls;
|
|
491805
|
-
$2[39] = t15;
|
|
491806
|
-
} else {
|
|
491807
|
-
t15 = $2[39];
|
|
491808
|
-
}
|
|
491809
|
-
let t16;
|
|
491810
|
-
if ($2[40] !== lastToolCall) {
|
|
491811
|
-
t16 = lastToolCall && /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(ThemedText, {
|
|
491812
|
-
dimColor: true,
|
|
491813
|
-
children: lastToolCall
|
|
491814
|
-
}, undefined, false, undefined, this);
|
|
491815
|
-
$2[40] = lastToolCall;
|
|
491816
|
-
$2[41] = t16;
|
|
491817
|
-
} else {
|
|
491818
|
-
t16 = $2[41];
|
|
491819
|
-
}
|
|
491820
|
-
let t17;
|
|
491821
|
-
if ($2[42] !== sessionUrl) {
|
|
491822
|
-
t17 = /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(ThemedText, {
|
|
491823
|
-
dimColor: true,
|
|
491824
|
-
children: sessionUrl
|
|
491825
|
-
}, undefined, false, undefined, this);
|
|
491826
|
-
$2[42] = sessionUrl;
|
|
491827
|
-
$2[43] = t17;
|
|
491828
|
-
} else {
|
|
491829
|
-
t17 = $2[43];
|
|
491830
|
-
}
|
|
491831
|
-
let t18;
|
|
491832
|
-
if ($2[44] !== sessionUrl || $2[45] !== t17) {
|
|
491833
|
-
t18 = /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(Link, {
|
|
491834
|
-
url: sessionUrl,
|
|
491835
|
-
children: t17
|
|
491836
|
-
}, undefined, false, undefined, this);
|
|
491837
|
-
$2[44] = sessionUrl;
|
|
491838
|
-
$2[45] = t17;
|
|
491839
|
-
$2[46] = t18;
|
|
491840
|
-
} else {
|
|
491841
|
-
t18 = $2[46];
|
|
491842
|
-
}
|
|
491843
|
-
let t19;
|
|
491844
|
-
if ($2[47] === Symbol.for("react.memo_cache_sentinel")) {
|
|
491845
|
-
t19 = {
|
|
491846
|
-
label: "Review in UR on the web",
|
|
491847
|
-
value: "open"
|
|
491848
|
-
};
|
|
491849
|
-
$2[47] = t19;
|
|
491850
|
-
} else {
|
|
491851
|
-
t19 = $2[47];
|
|
491852
|
-
}
|
|
491853
|
-
let t20;
|
|
491854
|
-
if ($2[48] !== onKill || $2[49] !== running) {
|
|
491855
|
-
t20 = onKill && running ? [{
|
|
491856
|
-
label: "Stop ultraplan",
|
|
491857
|
-
value: "stop"
|
|
491858
|
-
}] : [];
|
|
491859
|
-
$2[48] = onKill;
|
|
491860
|
-
$2[49] = running;
|
|
491861
|
-
$2[50] = t20;
|
|
491862
|
-
} else {
|
|
491863
|
-
t20 = $2[50];
|
|
491864
|
-
}
|
|
491865
|
-
let t21;
|
|
491866
|
-
if ($2[51] === Symbol.for("react.memo_cache_sentinel")) {
|
|
491867
|
-
t21 = {
|
|
491868
|
-
label: "Back",
|
|
491869
|
-
value: "back"
|
|
491870
|
-
};
|
|
491871
|
-
$2[51] = t21;
|
|
491872
|
-
} else {
|
|
491873
|
-
t21 = $2[51];
|
|
491874
|
-
}
|
|
491875
|
-
let t22;
|
|
491876
|
-
if ($2[52] !== t20) {
|
|
491877
|
-
t22 = [t19, ...t20, t21];
|
|
491878
|
-
$2[52] = t20;
|
|
491879
|
-
$2[53] = t22;
|
|
491880
|
-
} else {
|
|
491881
|
-
t22 = $2[53];
|
|
491882
|
-
}
|
|
491883
|
-
let t23;
|
|
491884
|
-
if ($2[54] !== goBackOrClose || $2[55] !== onDone || $2[56] !== sessionUrl) {
|
|
491885
|
-
t23 = (v_0) => {
|
|
491886
|
-
switch (v_0) {
|
|
491887
|
-
case "open": {
|
|
491888
|
-
openBrowser(sessionUrl);
|
|
491889
|
-
onDone();
|
|
491890
|
-
return;
|
|
491891
|
-
}
|
|
491892
|
-
case "stop": {
|
|
491893
|
-
setConfirmingStop(true);
|
|
491894
|
-
return;
|
|
491895
|
-
}
|
|
491896
|
-
case "back": {
|
|
491897
|
-
goBackOrClose();
|
|
491898
|
-
return;
|
|
491899
|
-
}
|
|
491900
|
-
}
|
|
491901
|
-
};
|
|
491902
|
-
$2[54] = goBackOrClose;
|
|
491903
|
-
$2[55] = onDone;
|
|
491904
|
-
$2[56] = sessionUrl;
|
|
491905
|
-
$2[57] = t23;
|
|
491906
|
-
} else {
|
|
491907
|
-
t23 = $2[57];
|
|
491908
|
-
}
|
|
491909
|
-
let t24;
|
|
491910
|
-
if ($2[58] !== t22 || $2[59] !== t23) {
|
|
491911
|
-
t24 = /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(Select, {
|
|
491912
|
-
options: t22,
|
|
491913
|
-
onChange: t23
|
|
491914
|
-
}, undefined, false, undefined, this);
|
|
491915
|
-
$2[58] = t22;
|
|
491916
|
-
$2[59] = t23;
|
|
491917
|
-
$2[60] = t24;
|
|
491918
|
-
} else {
|
|
491919
|
-
t24 = $2[60];
|
|
491920
|
-
}
|
|
491921
|
-
let t25;
|
|
491922
|
-
if ($2[61] !== t15 || $2[62] !== t16 || $2[63] !== t18 || $2[64] !== t24) {
|
|
491923
|
-
t25 = /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(ThemedBox_default, {
|
|
491924
|
-
flexDirection: "column",
|
|
491925
|
-
gap: 1,
|
|
491926
|
-
children: [
|
|
491927
|
-
t15,
|
|
491928
|
-
t16,
|
|
491929
|
-
t18,
|
|
491930
|
-
t24
|
|
491931
|
-
]
|
|
491932
|
-
}, undefined, true, undefined, this);
|
|
491933
|
-
$2[61] = t15;
|
|
491934
|
-
$2[62] = t16;
|
|
491935
|
-
$2[63] = t18;
|
|
491936
|
-
$2[64] = t24;
|
|
491937
|
-
$2[65] = t25;
|
|
491938
|
-
} else {
|
|
491939
|
-
t25 = $2[65];
|
|
491940
|
-
}
|
|
491941
|
-
let t26;
|
|
491942
|
-
if ($2[66] !== goBackOrClose || $2[67] !== t10 || $2[68] !== t25) {
|
|
491943
|
-
t26 = /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(Dialog, {
|
|
491944
|
-
title: t10,
|
|
491945
|
-
onCancel: goBackOrClose,
|
|
491946
|
-
color: "background",
|
|
491947
|
-
children: t25
|
|
491948
|
-
}, undefined, false, undefined, this);
|
|
491949
|
-
$2[66] = goBackOrClose;
|
|
491950
|
-
$2[67] = t10;
|
|
491951
|
-
$2[68] = t25;
|
|
491952
|
-
$2[69] = t26;
|
|
491953
|
-
} else {
|
|
491954
|
-
t26 = $2[69];
|
|
491955
|
-
}
|
|
491956
|
-
return t26;
|
|
491957
|
-
}
|
|
491958
490975
|
function StagePipeline(t0) {
|
|
491959
490976
|
const $2 = import_compiler_runtime200.c(15);
|
|
491960
490977
|
const {
|
|
@@ -492437,18 +491454,10 @@ function RemoteSessionDetailDialog({
|
|
|
492437
491454
|
const [isTeleporting, setIsTeleporting] = import_react157.useState(false);
|
|
492438
491455
|
const [teleportError, setTeleportError] = import_react157.useState(null);
|
|
492439
491456
|
const lastMessages = import_react157.useMemo(() => {
|
|
492440
|
-
if (session2.
|
|
491457
|
+
if (session2.isRemoteReview)
|
|
492441
491458
|
return [];
|
|
492442
491459
|
return normalizeMessages(toInternalMessages(session2.log)).filter((_) => _.type !== "progress").slice(-3);
|
|
492443
491460
|
}, [session2]);
|
|
492444
|
-
if (session2.isUltraplan) {
|
|
492445
|
-
return /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(UltraplanSessionDetail, {
|
|
492446
|
-
session: session2,
|
|
492447
|
-
onDone,
|
|
492448
|
-
onBack,
|
|
492449
|
-
onKill
|
|
492450
|
-
}, undefined, false, undefined, this);
|
|
492451
|
-
}
|
|
492452
491461
|
if (session2.isRemoteReview) {
|
|
492453
491462
|
return /* @__PURE__ */ jsx_dev_runtime269.jsxDEV(ReviewSessionDetail, {
|
|
492454
491463
|
session: session2,
|
|
@@ -492667,15 +491676,12 @@ function RemoteSessionDetailDialog({
|
|
|
492667
491676
|
}, undefined, true, undefined, this)
|
|
492668
491677
|
}, undefined, false, undefined, this);
|
|
492669
491678
|
}
|
|
492670
|
-
var import_compiler_runtime200, import_react157, jsx_dev_runtime269,
|
|
491679
|
+
var import_compiler_runtime200, import_react157, jsx_dev_runtime269, STAGES, STAGE_LABELS;
|
|
492671
491680
|
var init_RemoteSessionDetailDialog = __esm(() => {
|
|
492672
|
-
init_figures();
|
|
492673
491681
|
init_figures2();
|
|
492674
491682
|
init_useElapsedTime();
|
|
492675
491683
|
init_ink2();
|
|
492676
491684
|
init_RemoteAgentTask();
|
|
492677
|
-
init_constants2();
|
|
492678
|
-
init_prompt();
|
|
492679
491685
|
init_browser();
|
|
492680
491686
|
init_errors();
|
|
492681
491687
|
init_format2();
|
|
@@ -492692,14 +491698,6 @@ var init_RemoteSessionDetailDialog = __esm(() => {
|
|
|
492692
491698
|
import_compiler_runtime200 = __toESM(require_compiler_runtime(), 1);
|
|
492693
491699
|
import_react157 = __toESM(require_react(), 1);
|
|
492694
491700
|
jsx_dev_runtime269 = __toESM(require_jsx_dev_runtime(), 1);
|
|
492695
|
-
PHASE_LABEL = {
|
|
492696
|
-
needs_input: "input required",
|
|
492697
|
-
plan_ready: "ready"
|
|
492698
|
-
};
|
|
492699
|
-
AGENT_VERB = {
|
|
492700
|
-
needs_input: "waiting",
|
|
492701
|
-
plan_ready: "done"
|
|
492702
|
-
};
|
|
492703
491701
|
STAGES = ["finding", "verifying", "synthesizing"];
|
|
492704
491702
|
STAGE_LABELS = {
|
|
492705
491703
|
finding: "Find",
|
|
@@ -493362,11 +492360,7 @@ function BackgroundTasksDialog({
|
|
|
493362
492360
|
} else if (currentSelection_0.type === "dream" && currentSelection_0.status === "running") {
|
|
493363
492361
|
killDreamTask(currentSelection_0.id);
|
|
493364
492362
|
} else if (currentSelection_0.type === "remote_agent" && currentSelection_0.status === "running") {
|
|
493365
|
-
|
|
493366
|
-
stopUltraplan(currentSelection_0.id, currentSelection_0.task.sessionId, setAppState);
|
|
493367
|
-
} else {
|
|
493368
|
-
killRemoteAgentTask(currentSelection_0.id);
|
|
493369
|
-
}
|
|
492363
|
+
killRemoteAgentTask(currentSelection_0.id);
|
|
493370
492364
|
}
|
|
493371
492365
|
}
|
|
493372
492366
|
if (e.key === "f") {
|
|
@@ -493459,7 +492453,7 @@ function BackgroundTasksDialog({
|
|
|
493459
492453
|
onDone,
|
|
493460
492454
|
toolUseContext,
|
|
493461
492455
|
onBack: goBackToList,
|
|
493462
|
-
onKill: task_0.status !== "running" ? undefined :
|
|
492456
|
+
onKill: task_0.status !== "running" ? undefined : () => void killRemoteAgentTask(task_0.id)
|
|
493463
492457
|
}, `session-${task_0.id}`, false, undefined, this);
|
|
493464
492458
|
case "in_process_teammate":
|
|
493465
492459
|
return /* @__PURE__ */ jsx_dev_runtime271.jsxDEV(InProcessTeammateDetailDialog, {
|
|
@@ -493983,7 +492977,6 @@ var init_BackgroundTasksDialog = __esm(() => {
|
|
|
493983
492977
|
init_LocalAgentTask();
|
|
493984
492978
|
init_LocalShellTask();
|
|
493985
492979
|
init_RemoteAgentTask();
|
|
493986
|
-
init_ultraplan();
|
|
493987
492980
|
init_overlayContext();
|
|
493988
492981
|
init_ink2();
|
|
493989
492982
|
init_useKeybinding();
|
|
@@ -497480,7 +496473,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
|
|
|
497480
496473
|
if (spec.name !== specName) {
|
|
497481
496474
|
throw new Error("Agentic CI workflow spec name does not match");
|
|
497482
496475
|
}
|
|
497483
|
-
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.80.
|
|
496476
|
+
const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.80.1" : "1.80.1");
|
|
497484
496477
|
if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
|
|
497485
496478
|
throw new Error("invalid ur-agent package version");
|
|
497486
496479
|
}
|
|
@@ -498473,7 +497466,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
|
|
|
498473
497466
|
path: ".github/workflows/ur.yml",
|
|
498474
497467
|
root: "project",
|
|
498475
497468
|
content: compileAgenticCiWorkflow("default", {
|
|
498476
|
-
packageVersion: typeof MACRO !== "undefined" ? "1.80.
|
|
497469
|
+
packageVersion: typeof MACRO !== "undefined" ? "1.80.1" : "1.80.1"
|
|
498477
497470
|
})
|
|
498478
497471
|
},
|
|
498479
497472
|
{
|
|
@@ -498536,7 +497529,7 @@ function value(tokens, flag) {
|
|
|
498536
497529
|
return index2 >= 0 ? tokens[index2 + 1] : undefined;
|
|
498537
497530
|
}
|
|
498538
497531
|
function cliVersion() {
|
|
498539
|
-
return typeof MACRO !== "undefined" ? "1.80.
|
|
497532
|
+
return typeof MACRO !== "undefined" ? "1.80.1" : "1.80.1";
|
|
498540
497533
|
}
|
|
498541
497534
|
function workflowPath(cwd2) {
|
|
498542
497535
|
return join168(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
|
|
@@ -504392,7 +503385,7 @@ function createAcpStdioApp(deps) {
|
|
|
504392
503385
|
}
|
|
504393
503386
|
},
|
|
504394
503387
|
authMethods: [],
|
|
504395
|
-
agentInfo: { name: "UR-Nexus", version: "1.80.
|
|
503388
|
+
agentInfo: { name: "UR-Nexus", version: "1.80.1" }
|
|
504396
503389
|
})).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
|
|
504397
503390
|
const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
|
|
504398
503391
|
await runtime2.announce({
|
|
@@ -504489,7 +503482,7 @@ function createAcpStdioAgent(deps) {
|
|
|
504489
503482
|
}
|
|
504490
503483
|
},
|
|
504491
503484
|
authMethods: [],
|
|
504492
|
-
agentInfo: { name: "UR-Nexus", version: "1.80.
|
|
503485
|
+
agentInfo: { name: "UR-Nexus", version: "1.80.1" }
|
|
504493
503486
|
});
|
|
504494
503487
|
return;
|
|
504495
503488
|
case "authenticate":
|
|
@@ -709490,7 +708483,7 @@ var init_agentDisplay = __esm(() => {
|
|
|
709490
708483
|
|
|
709491
708484
|
// src/components/agents/types.ts
|
|
709492
708485
|
var AGENT_PATHS;
|
|
709493
|
-
var
|
|
708486
|
+
var init_types14 = __esm(() => {
|
|
709494
708487
|
AGENT_PATHS = {
|
|
709495
708488
|
FOLDER_NAME: ".ur",
|
|
709496
708489
|
AGENTS_DIR: "agents"
|
|
@@ -709637,7 +708630,7 @@ var init_agentFileUtils = __esm(() => {
|
|
|
709637
708630
|
init_cwd2();
|
|
709638
708631
|
init_envUtils();
|
|
709639
708632
|
init_errors();
|
|
709640
|
-
|
|
708633
|
+
init_types14();
|
|
709641
708634
|
});
|
|
709642
708635
|
|
|
709643
708636
|
// src/components/agents/AgentDetail.tsx
|
|
@@ -715375,7 +714368,7 @@ var init_plugin2 = __esm(() => {
|
|
|
715375
714368
|
|
|
715376
714369
|
// src/services/settingsSync/types.ts
|
|
715377
714370
|
var UserSyncContentSchema, UserSyncDataSchema;
|
|
715378
|
-
var
|
|
714371
|
+
var init_types15 = __esm(() => {
|
|
715379
714372
|
init_v4();
|
|
715380
714373
|
UserSyncContentSchema = lazySchema(() => exports_external.object({
|
|
715381
714374
|
entries: exports_external.record(exports_external.string(), exports_external.string())
|
|
@@ -715407,7 +714400,7 @@ var init_settingsSync = __esm(() => {
|
|
|
715407
714400
|
init_growthbook();
|
|
715408
714401
|
init_analytics();
|
|
715409
714402
|
init_withRetry();
|
|
715410
|
-
|
|
714403
|
+
init_types15();
|
|
715411
714404
|
MAX_FILE_SIZE_BYTES3 = 500 * 1024;
|
|
715412
714405
|
});
|
|
715413
714406
|
|
|
@@ -715715,7 +714708,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
|
|
|
715715
714708
|
smapsRollup,
|
|
715716
714709
|
platform: process.platform,
|
|
715717
714710
|
nodeVersion: process.version,
|
|
715718
|
-
ccVersion: "1.80.
|
|
714711
|
+
ccVersion: "1.80.1"
|
|
715719
714712
|
};
|
|
715720
714713
|
}
|
|
715721
714714
|
async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
|
|
@@ -715820,6 +714813,15 @@ var init_heapdump2 = __esm(() => {
|
|
|
715820
714813
|
heapdump_default = heapDump;
|
|
715821
714814
|
});
|
|
715822
714815
|
|
|
714816
|
+
// src/bridge/types.ts
|
|
714817
|
+
var DEFAULT_SESSION_TIMEOUT_MS, BRIDGE_LOGIN_INSTRUCTION = "Remote Control is only available with ur.com subscriptions. Please use `/login` to sign in with your ur.com account.", BRIDGE_LOGIN_ERROR;
|
|
714818
|
+
var init_types16 = __esm(() => {
|
|
714819
|
+
DEFAULT_SESSION_TIMEOUT_MS = 24 * 60 * 60 * 1000;
|
|
714820
|
+
BRIDGE_LOGIN_ERROR = `Error: You must be logged in to use Remote Control.
|
|
714821
|
+
|
|
714822
|
+
` + BRIDGE_LOGIN_INSTRUCTION;
|
|
714823
|
+
});
|
|
714824
|
+
|
|
715823
714825
|
// src/bridge/bridgeApi.ts
|
|
715824
714826
|
function validateBridgeId(id, label) {
|
|
715825
714827
|
if (!id || !SAFE_ID_PATTERN.test(id)) {
|
|
@@ -716061,7 +715063,7 @@ var BETA_HEADER = "environments-2025-11-01", SAFE_ID_PATTERN, BridgeFatalError;
|
|
|
716061
715063
|
var init_bridgeApi = __esm(() => {
|
|
716062
715064
|
init_axios2();
|
|
716063
715065
|
init_debugUtils();
|
|
716064
|
-
|
|
715066
|
+
init_types16();
|
|
716065
715067
|
SAFE_ID_PATTERN = /^[a-zA-Z0-9_-]+$/;
|
|
716066
715068
|
BridgeFatalError = class BridgeFatalError extends Error {
|
|
716067
715069
|
status;
|
|
@@ -716295,7 +715297,7 @@ var init_bridge_kick = __esm(() => {
|
|
|
716295
715297
|
var call154 = async () => {
|
|
716296
715298
|
return {
|
|
716297
715299
|
type: "text",
|
|
716298
|
-
value: "1.80.
|
|
715300
|
+
value: "1.80.1"
|
|
716299
715301
|
};
|
|
716300
715302
|
}, version2, version_default;
|
|
716301
715303
|
var init_version = __esm(() => {
|
|
@@ -727538,7 +726540,7 @@ function generateHtmlReport(data, insights) {
|
|
|
727538
726540
|
</html>`;
|
|
727539
726541
|
}
|
|
727540
726542
|
function buildExportData(data, insights, facets, remoteStats) {
|
|
727541
|
-
const version3 = typeof MACRO !== "undefined" ? "1.80.
|
|
726543
|
+
const version3 = typeof MACRO !== "undefined" ? "1.80.1" : "unknown";
|
|
727542
726544
|
const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
|
|
727543
726545
|
const facets_summary = {
|
|
727544
726546
|
total: facets.size,
|
|
@@ -731851,7 +730853,7 @@ var init_sessionStorage = __esm(() => {
|
|
|
731851
730853
|
init_settings2();
|
|
731852
730854
|
init_slowOperations();
|
|
731853
730855
|
init_uuid();
|
|
731854
|
-
VERSION7 = typeof MACRO !== "undefined" ? "1.80.
|
|
730856
|
+
VERSION7 = typeof MACRO !== "undefined" ? "1.80.1" : "unknown";
|
|
731855
730857
|
MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
|
|
731856
730858
|
SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
|
|
731857
730859
|
EPHEMERAL_PROGRESS_TYPES = new Set([
|
|
@@ -733066,7 +732068,7 @@ var init_filesystem = __esm(() => {
|
|
|
733066
732068
|
});
|
|
733067
732069
|
getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
|
|
733068
732070
|
const nonce = randomBytes24(16).toString("hex");
|
|
733069
|
-
return join243(getURTempDir(), "bundled-skills", "1.80.
|
|
732071
|
+
return join243(getURTempDir(), "bundled-skills", "1.80.1", nonce);
|
|
733070
732072
|
});
|
|
733071
732073
|
getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
|
|
733072
732074
|
});
|
|
@@ -739455,7 +738457,7 @@ function computeFingerprint(messageText2, version3) {
|
|
|
739455
738457
|
}
|
|
739456
738458
|
function computeFingerprintFromMessages(messages) {
|
|
739457
738459
|
const firstMessageText = extractFirstMessageText(messages);
|
|
739458
|
-
return computeFingerprint(firstMessageText, "1.80.
|
|
738460
|
+
return computeFingerprint(firstMessageText, "1.80.1");
|
|
739459
738461
|
}
|
|
739460
738462
|
var FINGERPRINT_SALT = "59cf53e54c78";
|
|
739461
738463
|
var init_fingerprint = () => {};
|
|
@@ -741380,7 +740382,7 @@ async function sideQuery(opts) {
|
|
|
741380
740382
|
betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
|
|
741381
740383
|
}
|
|
741382
740384
|
const messageText2 = extractFirstUserMessageText(messages);
|
|
741383
|
-
const fingerprint2 = computeFingerprint(messageText2, "1.80.
|
|
740385
|
+
const fingerprint2 = computeFingerprint(messageText2, "1.80.1");
|
|
741384
740386
|
const attributionHeader = getAttributionHeader(fingerprint2);
|
|
741385
740387
|
const systemBlocks = [
|
|
741386
740388
|
attributionHeader ? { type: "text", text: attributionHeader } : null,
|
|
@@ -745305,8 +744307,7 @@ function externalMetadataToAppState(metadata) {
|
|
|
745305
744307
|
...prev.toolPermissionContext,
|
|
745306
744308
|
mode: permissionModeFromString(metadata.permission_mode)
|
|
745307
744309
|
}
|
|
745308
|
-
} : {}
|
|
745309
|
-
...typeof metadata.is_ultraplan_mode === "boolean" ? { isUltraplanMode: metadata.is_ultraplan_mode } : {}
|
|
744310
|
+
} : {}
|
|
745310
744311
|
});
|
|
745311
744312
|
}
|
|
745312
744313
|
function onChangeAppState({
|
|
@@ -745319,10 +744320,8 @@ function onChangeAppState({
|
|
|
745319
744320
|
const prevExternal = toExternalPermissionMode(prevMode);
|
|
745320
744321
|
const newExternal = toExternalPermissionMode(newMode);
|
|
745321
744322
|
if (prevExternal !== newExternal) {
|
|
745322
|
-
const isUltraplan = newExternal === "plan" && newState.isUltraplanMode && !oldState.isUltraplanMode ? true : null;
|
|
745323
744323
|
notifySessionMetadataChanged({
|
|
745324
|
-
permission_mode: newExternal
|
|
745325
|
-
is_ultraplan_mode: isUltraplan
|
|
744324
|
+
permission_mode: newExternal
|
|
745326
744325
|
});
|
|
745327
744326
|
}
|
|
745328
744327
|
notifyPermissionModeChanged(newMode);
|
|
@@ -746217,7 +745216,7 @@ function buildSystemInitMessage(inputs) {
|
|
|
746217
745216
|
slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
|
|
746218
745217
|
apiKeySource: getURHQApiKeyWithSource().source,
|
|
746219
745218
|
betas: getSdkBetas(),
|
|
746220
|
-
ur_version: "1.80.
|
|
745219
|
+
ur_version: "1.80.1",
|
|
746221
745220
|
output_style: outputStyle,
|
|
746222
745221
|
agents: inputs.agents.map((agent2) => agent2.agentType),
|
|
746223
745222
|
skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
|
|
@@ -753773,7 +752772,6 @@ function ExitPlanModePermissionRequest({
|
|
|
753773
752772
|
}) {
|
|
753774
752773
|
const toolPermissionContext = useAppState((s) => s.toolPermissionContext);
|
|
753775
752774
|
const setAppState = useSetAppState();
|
|
753776
|
-
const store2 = useAppStateStore();
|
|
753777
752775
|
const {
|
|
753778
752776
|
addNotification
|
|
753779
752777
|
} = useNotifications();
|
|
@@ -753781,9 +752779,6 @@ function ExitPlanModePermissionRequest({
|
|
|
753781
752779
|
const [pastedContents, setPastedContents] = import_react214.useState({});
|
|
753782
752780
|
const nextPasteIdRef = import_react214.useRef(0);
|
|
753783
752781
|
const showClearContext = useAppState((s) => s.settings.showClearContextOnPlanAccept) ?? false;
|
|
753784
|
-
const ultraplanSessionUrl = useAppState((s) => s.ultraplanSessionUrl);
|
|
753785
|
-
const ultraplanLaunching = useAppState((s) => s.ultraplanLaunching);
|
|
753786
|
-
const showUltraplan = false;
|
|
753787
752782
|
const usage30 = toolUseConfirm.assistantMessage.message.usage;
|
|
753788
752783
|
const {
|
|
753789
752784
|
mode: mode2,
|
|
@@ -753792,12 +752787,11 @@ function ExitPlanModePermissionRequest({
|
|
|
753792
752787
|
} = toolPermissionContext;
|
|
753793
752788
|
const options5 = import_react214.useMemo(() => buildPlanApprovalOptions({
|
|
753794
752789
|
showClearContext,
|
|
753795
|
-
showUltraplan,
|
|
753796
752790
|
usedPercent: showClearContext ? getContextUsedPercent(usage30, mode2) : null,
|
|
753797
752791
|
isAutoModeAvailable,
|
|
753798
752792
|
isBypassPermissionsModeAvailable,
|
|
753799
752793
|
onFeedbackChange: setPlanFeedback
|
|
753800
|
-
}), [showClearContext,
|
|
752794
|
+
}), [showClearContext, usage30, mode2, isAutoModeAvailable, isBypassPermissionsModeAvailable]);
|
|
753801
752795
|
function onImagePaste(base64Image, mediaType, filename, dimensions, _sourcePath) {
|
|
753802
752796
|
const pasteId = nextPasteIdRef.current++;
|
|
753803
752797
|
const newContent = {
|
|
@@ -753895,28 +752889,6 @@ function ExitPlanModePermissionRequest({
|
|
|
753895
752889
|
async function handleResponse(value2) {
|
|
753896
752890
|
const trimmedFeedback = planFeedback.trim();
|
|
753897
752891
|
const acceptFeedback = trimmedFeedback || undefined;
|
|
753898
|
-
if (value2 === "ultraplan") {
|
|
753899
|
-
logEvent("tengu_plan_exit", {
|
|
753900
|
-
planLengthChars: currentPlan.length,
|
|
753901
|
-
outcome: "ultraplan",
|
|
753902
|
-
interviewPhaseEnabled: isPlanModeInterviewPhaseEnabled(),
|
|
753903
|
-
planStructureVariant
|
|
753904
|
-
});
|
|
753905
|
-
onDone();
|
|
753906
|
-
onReject();
|
|
753907
|
-
toolUseConfirm.onReject("Plan being refined via Ultraplan \u2014 please wait for the result.");
|
|
753908
|
-
launchUltraplan({
|
|
753909
|
-
blurb: "",
|
|
753910
|
-
seedPlan: currentPlan,
|
|
753911
|
-
getAppState: store2.getState,
|
|
753912
|
-
setAppState: store2.setState,
|
|
753913
|
-
signal: new AbortController().signal
|
|
753914
|
-
}).then((msg) => enqueuePendingNotification({
|
|
753915
|
-
value: msg,
|
|
753916
|
-
mode: "task-notification"
|
|
753917
|
-
})).catch(logError2);
|
|
753918
|
-
return;
|
|
753919
|
-
}
|
|
753920
752892
|
const updatedInput = isV2 && !planEditedLocally ? {} : {
|
|
753921
752893
|
plan: currentPlan
|
|
753922
752894
|
};
|
|
@@ -754339,7 +753311,6 @@ ${currentPlan}${verificationInstruction}${transcriptHint}${teamHint}${feedbackSu
|
|
|
754339
753311
|
}
|
|
754340
753312
|
function buildPlanApprovalOptions({
|
|
754341
753313
|
showClearContext,
|
|
754342
|
-
showUltraplan,
|
|
754343
753314
|
usedPercent,
|
|
754344
753315
|
isAutoModeAvailable,
|
|
754345
753316
|
isBypassPermissionsModeAvailable,
|
|
@@ -754375,12 +753346,6 @@ function buildPlanApprovalOptions({
|
|
|
754375
753346
|
label: "Yes, manually approve edits",
|
|
754376
753347
|
value: "yes-default-keep-context"
|
|
754377
753348
|
});
|
|
754378
|
-
if (showUltraplan) {
|
|
754379
|
-
options5.push({
|
|
754380
|
-
label: "No, refine with Ultraplan on UR on the web",
|
|
754381
|
-
value: "ultraplan"
|
|
754382
|
-
});
|
|
754383
|
-
}
|
|
754384
753349
|
options5.push({
|
|
754385
753350
|
type: "input",
|
|
754386
753351
|
label: "No, keep planning",
|
|
@@ -754417,7 +753382,6 @@ var init_ExitPlanModePermissionRequest = __esm(() => {
|
|
|
754417
753382
|
init_AppState();
|
|
754418
753383
|
init_state();
|
|
754419
753384
|
init_generateSessionName();
|
|
754420
|
-
init_ultraplan();
|
|
754421
753385
|
init_ink2();
|
|
754422
753386
|
init_constants2();
|
|
754423
753387
|
init_agentSwarmsEnabled();
|
|
@@ -754426,7 +753390,6 @@ var init_ExitPlanModePermissionRequest = __esm(() => {
|
|
|
754426
753390
|
init_file();
|
|
754427
753391
|
init_ide();
|
|
754428
753392
|
init_log2();
|
|
754429
|
-
init_messageQueueManager();
|
|
754430
753393
|
init_messages();
|
|
754431
753394
|
init_model();
|
|
754432
753395
|
init_PermissionMode();
|
|
@@ -760089,7 +759052,7 @@ var init_useVoiceEnabled = __esm(() => {
|
|
|
760089
759052
|
function getSemverPart(version3) {
|
|
760090
759053
|
return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
|
|
760091
759054
|
}
|
|
760092
|
-
function useUpdateNotification(updatedVersion, initialVersion = "1.80.
|
|
759055
|
+
function useUpdateNotification(updatedVersion, initialVersion = "1.80.1") {
|
|
760093
759056
|
const [lastNotifiedSemver, setLastNotifiedSemver] = import_react225.useState(() => getSemverPart(initialVersion));
|
|
760094
759057
|
if (!updatedVersion) {
|
|
760095
759058
|
return null;
|
|
@@ -760138,7 +759101,7 @@ function AutoUpdater({
|
|
|
760138
759101
|
return;
|
|
760139
759102
|
}
|
|
760140
759103
|
if (false) {}
|
|
760141
|
-
const currentVersion = "1.80.
|
|
759104
|
+
const currentVersion = "1.80.1";
|
|
760142
759105
|
const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
|
|
760143
759106
|
let latestVersion = await getLatestVersion(channel);
|
|
760144
759107
|
const isDisabled = isAutoUpdaterDisabled();
|
|
@@ -760367,12 +759330,12 @@ function NativeAutoUpdater({
|
|
|
760367
759330
|
logEvent("tengu_native_auto_updater_start", {});
|
|
760368
759331
|
try {
|
|
760369
759332
|
const maxVersion = await getMaxVersion();
|
|
760370
|
-
if (maxVersion && gt("1.80.
|
|
759333
|
+
if (maxVersion && gt("1.80.1", maxVersion)) {
|
|
760371
759334
|
const msg = await getMaxVersionMessage();
|
|
760372
759335
|
setMaxVersionIssue(msg ?? "affects your version");
|
|
760373
759336
|
}
|
|
760374
759337
|
const result = await installLatest(channel);
|
|
760375
|
-
const currentVersion = "1.80.
|
|
759338
|
+
const currentVersion = "1.80.1";
|
|
760376
759339
|
const latencyMs = Date.now() - startTime;
|
|
760377
759340
|
if (result.lockFailed) {
|
|
760378
759341
|
logEvent("tengu_native_auto_updater_lock_contention", {
|
|
@@ -760509,17 +759472,17 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
760509
759472
|
const maxVersion = await getMaxVersion();
|
|
760510
759473
|
if (maxVersion && latest && gt(latest, maxVersion)) {
|
|
760511
759474
|
logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
|
|
760512
|
-
if (gte("1.80.
|
|
760513
|
-
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.80.
|
|
759475
|
+
if (gte("1.80.1", maxVersion)) {
|
|
759476
|
+
logForDebugging(`PackageManagerAutoUpdater: current version ${"1.80.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
|
|
760514
759477
|
setUpdateAvailable(false);
|
|
760515
759478
|
return;
|
|
760516
759479
|
}
|
|
760517
759480
|
latest = maxVersion;
|
|
760518
759481
|
}
|
|
760519
|
-
const hasUpdate = latest && !gte("1.80.
|
|
759482
|
+
const hasUpdate = latest && !gte("1.80.1", latest) && !shouldSkipVersion(latest);
|
|
760520
759483
|
setUpdateAvailable(!!hasUpdate);
|
|
760521
759484
|
if (hasUpdate) {
|
|
760522
|
-
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.80.
|
|
759485
|
+
logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.80.1"} -> ${latest}`);
|
|
760523
759486
|
}
|
|
760524
759487
|
};
|
|
760525
759488
|
$2[0] = t1;
|
|
@@ -760553,7 +759516,7 @@ function PackageManagerAutoUpdater(t0) {
|
|
|
760553
759516
|
wrap: "truncate",
|
|
760554
759517
|
children: [
|
|
760555
759518
|
"currentVersion: ",
|
|
760556
|
-
"1.80.
|
|
759519
|
+
"1.80.1"
|
|
760557
759520
|
]
|
|
760558
759521
|
}, undefined, true, undefined, this);
|
|
760559
759522
|
$2[3] = verbose;
|
|
@@ -763964,17 +762927,15 @@ var init_getNextPermissionMode = __esm(() => {
|
|
|
763964
762927
|
init_permissionSetup();
|
|
763965
762928
|
});
|
|
763966
762929
|
|
|
763967
|
-
// src/utils/
|
|
763968
|
-
function
|
|
763969
|
-
const
|
|
763970
|
-
if (!
|
|
763971
|
-
return [];
|
|
763972
|
-
if (text2.startsWith("/"))
|
|
762930
|
+
// src/utils/remoteReviewKeyword.ts
|
|
762931
|
+
function findRemoteReviewTriggerPositions(text2) {
|
|
762932
|
+
const keyword = "ultrareview";
|
|
762933
|
+
if (!new RegExp(keyword, "i").test(text2) || text2.startsWith("/"))
|
|
763973
762934
|
return [];
|
|
763974
762935
|
const quotedRanges = [];
|
|
763975
762936
|
let openQuote = null;
|
|
763976
762937
|
let openAt = 0;
|
|
763977
|
-
const isWord = (ch2) =>
|
|
762938
|
+
const isWord = (ch2) => Boolean(ch2 && /[\p{L}\p{N}_]/u.test(ch2));
|
|
763978
762939
|
for (let i3 = 0;i3 < text2.length; i3++) {
|
|
763979
762940
|
const ch2 = text2[i3];
|
|
763980
762941
|
if (openQuote) {
|
|
@@ -763994,32 +762955,29 @@ function findKeywordTriggerPositions(text2, keyword) {
|
|
|
763994
762955
|
}
|
|
763995
762956
|
}
|
|
763996
762957
|
const positions = [];
|
|
763997
|
-
const
|
|
763998
|
-
const matches = text2.matchAll(wordRe);
|
|
763999
|
-
for (const match of matches) {
|
|
762958
|
+
for (const match of text2.matchAll(/\bultrareview\b/gi)) {
|
|
764000
762959
|
if (match.index === undefined)
|
|
764001
762960
|
continue;
|
|
764002
762961
|
const start = match.index;
|
|
764003
762962
|
const end = start + match[0].length;
|
|
764004
|
-
if (quotedRanges.some((
|
|
762963
|
+
if (quotedRanges.some((range) => start >= range.start && start < range.end)) {
|
|
764005
762964
|
continue;
|
|
762965
|
+
}
|
|
764006
762966
|
const before = text2[start - 1];
|
|
764007
762967
|
const after = text2[end];
|
|
764008
762968
|
if (before === "/" || before === "\\" || before === "-")
|
|
764009
762969
|
continue;
|
|
764010
|
-
if (after === "/" || after === "\\" || after === "-" || after === "?")
|
|
762970
|
+
if (after === "/" || after === "\\" || after === "-" || after === "?") {
|
|
764011
762971
|
continue;
|
|
762972
|
+
}
|
|
764012
762973
|
if (after === "." && isWord(text2[end + 1]))
|
|
764013
762974
|
continue;
|
|
764014
762975
|
positions.push({ word: match[0], start, end });
|
|
764015
762976
|
}
|
|
764016
762977
|
return positions;
|
|
764017
762978
|
}
|
|
764018
|
-
function findUltrareviewTriggerPositions(text2) {
|
|
764019
|
-
return findKeywordTriggerPositions(text2, "ultrareview");
|
|
764020
|
-
}
|
|
764021
762979
|
var OPEN_TO_CLOSE;
|
|
764022
|
-
var
|
|
762980
|
+
var init_remoteReviewKeyword = __esm(() => {
|
|
764023
762981
|
OPEN_TO_CLOSE = {
|
|
764024
762982
|
"`": "`",
|
|
764025
762983
|
'"': '"',
|
|
@@ -771411,7 +770369,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
|
|
|
771411
770369
|
project_dir: getOriginalCwd(),
|
|
771412
770370
|
added_dirs: addedDirs
|
|
771413
770371
|
},
|
|
771414
|
-
version: "1.80.
|
|
770372
|
+
version: "1.80.1",
|
|
771415
770373
|
output_style: {
|
|
771416
770374
|
name: outputStyleName
|
|
771417
770375
|
},
|
|
@@ -771546,7 +770504,7 @@ function StatusLineInner({
|
|
|
771546
770504
|
const attention = customStatusError ?? taskAttention;
|
|
771547
770505
|
const terminalSize = React133.useContext(TerminalSizeContext);
|
|
771548
770506
|
const defaultStatusLineText = buildDefaultStatusBar({
|
|
771549
|
-
version: "1.80.
|
|
770507
|
+
version: "1.80.1",
|
|
771550
770508
|
providerLabel: providerRuntime.providerLabel,
|
|
771551
770509
|
authMode: providerRuntime.authLabel,
|
|
771552
770510
|
model: renderModelName(mainLoopModel) || providerRuntime.model || "",
|
|
@@ -771949,33 +770907,33 @@ function BackgroundTaskStatus(t0) {
|
|
|
771949
770907
|
const viewedIdx = t82;
|
|
771950
770908
|
const availableWidth = Math.max(20, columns - 20 - 4);
|
|
771951
770909
|
const t92 = selectedIdx >= 0 ? selectedIdx : 0;
|
|
771952
|
-
let
|
|
770910
|
+
let t10;
|
|
771953
770911
|
if ($2[15] !== availableWidth || $2[16] !== pillWidths || $2[17] !== t92) {
|
|
771954
|
-
|
|
770912
|
+
t10 = calculateHorizontalScrollWindow(pillWidths, availableWidth, 2, t92);
|
|
771955
770913
|
$2[15] = availableWidth;
|
|
771956
770914
|
$2[16] = pillWidths;
|
|
771957
770915
|
$2[17] = t92;
|
|
771958
|
-
$2[18] =
|
|
770916
|
+
$2[18] = t10;
|
|
771959
770917
|
} else {
|
|
771960
|
-
|
|
770918
|
+
t10 = $2[18];
|
|
771961
770919
|
}
|
|
771962
770920
|
const {
|
|
771963
770921
|
startIndex,
|
|
771964
770922
|
endIndex,
|
|
771965
770923
|
showLeftArrow,
|
|
771966
770924
|
showRightArrow
|
|
771967
|
-
} =
|
|
771968
|
-
let
|
|
770925
|
+
} = t10;
|
|
770926
|
+
let t11;
|
|
771969
770927
|
if ($2[19] !== allPills || $2[20] !== endIndex || $2[21] !== startIndex) {
|
|
771970
|
-
|
|
770928
|
+
t11 = allPills.slice(startIndex, endIndex);
|
|
771971
770929
|
$2[19] = allPills;
|
|
771972
770930
|
$2[20] = endIndex;
|
|
771973
770931
|
$2[21] = startIndex;
|
|
771974
|
-
$2[22] =
|
|
770932
|
+
$2[22] = t11;
|
|
771975
770933
|
} else {
|
|
771976
|
-
|
|
770934
|
+
t11 = $2[22];
|
|
771977
770935
|
}
|
|
771978
|
-
const visiblePills =
|
|
770936
|
+
const visiblePills = t11;
|
|
771979
770937
|
let t12;
|
|
771980
770938
|
if ($2[23] !== showLeftArrow) {
|
|
771981
770939
|
t12 = showLeftArrow && /* @__PURE__ */ jsx_dev_runtime416.jsxDEV(ThemedText, {
|
|
@@ -772095,36 +771053,7 @@ function BackgroundTaskStatus(t0) {
|
|
|
772095
771053
|
} else {
|
|
772096
771054
|
t9 = $2[42];
|
|
772097
771055
|
}
|
|
772098
|
-
|
|
772099
|
-
if ($2[43] !== runningTasks) {
|
|
772100
|
-
t10 = pillNeedsCta(runningTasks) && /* @__PURE__ */ jsx_dev_runtime416.jsxDEV(ThemedText, {
|
|
772101
|
-
dimColor: true,
|
|
772102
|
-
children: [
|
|
772103
|
-
" \xB7 ",
|
|
772104
|
-
figures_default.arrowDown,
|
|
772105
|
-
" to view"
|
|
772106
|
-
]
|
|
772107
|
-
}, undefined, true, undefined, this);
|
|
772108
|
-
$2[43] = runningTasks;
|
|
772109
|
-
$2[44] = t10;
|
|
772110
|
-
} else {
|
|
772111
|
-
t10 = $2[44];
|
|
772112
|
-
}
|
|
772113
|
-
let t11;
|
|
772114
|
-
if ($2[45] !== t10 || $2[46] !== t9) {
|
|
772115
|
-
t11 = /* @__PURE__ */ jsx_dev_runtime416.jsxDEV(jsx_dev_runtime416.Fragment, {
|
|
772116
|
-
children: [
|
|
772117
|
-
t9,
|
|
772118
|
-
t10
|
|
772119
|
-
]
|
|
772120
|
-
}, undefined, true, undefined, this);
|
|
772121
|
-
$2[45] = t10;
|
|
772122
|
-
$2[46] = t9;
|
|
772123
|
-
$2[47] = t11;
|
|
772124
|
-
} else {
|
|
772125
|
-
t11 = $2[47];
|
|
772126
|
-
}
|
|
772127
|
-
return t11;
|
|
771056
|
+
return t9;
|
|
772128
771057
|
}
|
|
772129
771058
|
function _temp164(pill_0, i_0) {
|
|
772130
771059
|
const pillText = `@${pill_0.name}`;
|
|
@@ -772654,14 +771583,14 @@ function usePrStatus(isLoading, enabled = true) {
|
|
|
772654
771583
|
return;
|
|
772655
771584
|
}
|
|
772656
771585
|
if (!cancelled) {
|
|
772657
|
-
timeoutRef.current = setTimeout(poll,
|
|
771586
|
+
timeoutRef.current = setTimeout(poll, POLL_INTERVAL_MS2);
|
|
772658
771587
|
}
|
|
772659
771588
|
}
|
|
772660
771589
|
const elapsed = Date.now() - lastFetchRef.current;
|
|
772661
|
-
if (elapsed >=
|
|
771590
|
+
if (elapsed >= POLL_INTERVAL_MS2) {
|
|
772662
771591
|
poll();
|
|
772663
771592
|
} else {
|
|
772664
|
-
timeoutRef.current = setTimeout(poll,
|
|
771593
|
+
timeoutRef.current = setTimeout(poll, POLL_INTERVAL_MS2 - elapsed);
|
|
772665
771594
|
}
|
|
772666
771595
|
return () => {
|
|
772667
771596
|
cancelled = true;
|
|
@@ -772673,7 +771602,7 @@ function usePrStatus(isLoading, enabled = true) {
|
|
|
772673
771602
|
}, [isLoading, enabled]);
|
|
772674
771603
|
return prStatus;
|
|
772675
771604
|
}
|
|
772676
|
-
var import_react251,
|
|
771605
|
+
var import_react251, POLL_INTERVAL_MS2 = 60000, SLOW_GH_THRESHOLD_MS = 4000, IDLE_STOP_MS, INITIAL_STATE3;
|
|
772677
771606
|
var init_usePrStatus = __esm(() => {
|
|
772678
771607
|
init_state();
|
|
772679
771608
|
init_ghPrStatus();
|
|
@@ -774224,10 +773153,7 @@ function PromptInput({
|
|
|
774224
773153
|
});
|
|
774225
773154
|
const displayedValue = import_react258.useMemo(() => isSearchingHistory && historyMatch ? getValueFromInput(typeof historyMatch === "string" ? historyMatch : historyMatch.display) : input, [isSearchingHistory, historyMatch, input]);
|
|
774226
773155
|
const thinkTriggers = import_react258.useMemo(() => findThinkingTriggerPositions(displayedValue), [displayedValue]);
|
|
774227
|
-
const
|
|
774228
|
-
const ultraplanLaunching = useAppState((s) => s.ultraplanLaunching);
|
|
774229
|
-
const ultraplanTriggers = import_react258.useMemo(() => [], [displayedValue, ultraplanSessionUrl, ultraplanLaunching]);
|
|
774230
|
-
const ultrareviewTriggers = import_react258.useMemo(() => isUltrareviewEnabled() ? findUltrareviewTriggerPositions(displayedValue) : [], [displayedValue]);
|
|
773156
|
+
const ultrareviewTriggers = import_react258.useMemo(() => isUltrareviewEnabled() ? findRemoteReviewTriggerPositions(displayedValue) : [], [displayedValue]);
|
|
774231
773157
|
const btwTriggers = import_react258.useMemo(() => findBtwTriggerPositions(displayedValue), [displayedValue]);
|
|
774232
773158
|
const buddyTriggers = import_react258.useMemo(() => findBuddyTriggerPositions(displayedValue), [displayedValue]);
|
|
774233
773159
|
const slashCommandTriggers = import_react258.useMemo(() => {
|
|
@@ -774366,7 +773292,6 @@ function PromptInput({
|
|
|
774366
773292
|
}
|
|
774367
773293
|
}
|
|
774368
773294
|
}
|
|
774369
|
-
if (false) {}
|
|
774370
773295
|
for (const trigger2 of ultrareviewTriggers) {
|
|
774371
773296
|
for (let i3 = trigger2.start;i3 < trigger2.end; i3++) {
|
|
774372
773297
|
highlights.push({
|
|
@@ -774390,7 +773315,7 @@ function PromptInput({
|
|
|
774390
773315
|
}
|
|
774391
773316
|
}
|
|
774392
773317
|
return highlights;
|
|
774393
|
-
}, [isSearchingHistory, historyQuery, historyMatch, historyFailedMatch, cursorOffset, btwTriggers, imageRefPositions, memberMentionHighlights, slashCommandTriggers, tokenBudgetTriggers, slackChannelTriggers, displayedValue, voiceInterimRange, thinkTriggers,
|
|
773318
|
+
}, [isSearchingHistory, historyQuery, historyMatch, historyFailedMatch, cursorOffset, btwTriggers, imageRefPositions, memberMentionHighlights, slashCommandTriggers, tokenBudgetTriggers, slackChannelTriggers, displayedValue, voiceInterimRange, thinkTriggers, ultrareviewTriggers, buddyTriggers]);
|
|
774394
773319
|
const {
|
|
774395
773320
|
addNotification,
|
|
774396
773321
|
removeNotification
|
|
@@ -774407,11 +773332,6 @@ function PromptInput({
|
|
|
774407
773332
|
removeNotification("ultrathink-active");
|
|
774408
773333
|
}
|
|
774409
773334
|
}, [addNotification, removeNotification, thinkTriggers.length]);
|
|
774410
|
-
import_react258.useEffect(() => {
|
|
774411
|
-
if (false) {} else {
|
|
774412
|
-
removeNotification("ultraplan-active");
|
|
774413
|
-
}
|
|
774414
|
-
}, [addNotification, removeNotification, ultraplanTriggers.length]);
|
|
774415
773335
|
import_react258.useEffect(() => {
|
|
774416
773336
|
if (isUltrareviewEnabled() && ultrareviewTriggers.length) {
|
|
774417
773337
|
addNotification({
|
|
@@ -775780,7 +774700,7 @@ var init_PromptInput = __esm(() => {
|
|
|
775780
774700
|
init_teammateMailbox();
|
|
775781
774701
|
init_thinking();
|
|
775782
774702
|
init_tokenBudget();
|
|
775783
|
-
|
|
774703
|
+
init_remoteReviewKeyword();
|
|
775784
774704
|
init_AutoModeOptInDialog();
|
|
775785
774705
|
init_BridgeDialog();
|
|
775786
774706
|
init_ConfigurableShortcutHint();
|
|
@@ -780302,7 +779222,6 @@ var init_processBashCommand = __esm(() => {
|
|
|
780302
779222
|
import { randomUUID as randomUUID83 } from "crypto";
|
|
780303
779223
|
async function processUserInput({
|
|
780304
779224
|
input,
|
|
780305
|
-
preExpansionInput,
|
|
780306
779225
|
mode: mode2,
|
|
780307
779226
|
setToolJSX,
|
|
780308
779227
|
context: context6,
|
|
@@ -780325,7 +779244,7 @@ async function processUserInput({
|
|
|
780325
779244
|
}
|
|
780326
779245
|
queryCheckpoint("query_process_user_input_base_start");
|
|
780327
779246
|
const appState = context6.getAppState();
|
|
780328
|
-
const result = await processUserInputBase(input, mode2, setToolJSX, context6, pastedContents, ideSelection, messages, uuid3, isAlreadyProcessing, querySource, canUseTool, appState.toolPermissionContext.mode, skipSlashCommands, bridgeOrigin, isMeta, skipAttachments
|
|
779247
|
+
const result = await processUserInputBase(input, mode2, setToolJSX, context6, pastedContents, ideSelection, messages, uuid3, isAlreadyProcessing, querySource, canUseTool, appState.toolPermissionContext.mode, skipSlashCommands, bridgeOrigin, isMeta, skipAttachments);
|
|
780329
779248
|
queryCheckpoint("query_process_user_input_base_end");
|
|
780330
779249
|
if (!result.shouldQuery) {
|
|
780331
779250
|
return result;
|
|
@@ -780394,7 +779313,7 @@ function applyTruncation(content) {
|
|
|
780394
779313
|
}
|
|
780395
779314
|
return content;
|
|
780396
779315
|
}
|
|
780397
|
-
async function processUserInputBase(input, mode2, setToolJSX, context6, pastedContents, ideSelection, messages, uuid3, isAlreadyProcessing, querySource, canUseTool, permissionMode, skipSlashCommands, bridgeOrigin, isMeta, skipAttachments
|
|
779316
|
+
async function processUserInputBase(input, mode2, setToolJSX, context6, pastedContents, ideSelection, messages, uuid3, isAlreadyProcessing, querySource, canUseTool, permissionMode, skipSlashCommands, bridgeOrigin, isMeta, skipAttachments) {
|
|
780398
779317
|
let inputString = null;
|
|
780399
779318
|
let precedingInputBlocks = [];
|
|
780400
779319
|
const imageMetadataTexts = [];
|
|
@@ -780496,7 +779415,6 @@ async function processUserInputBase(input, mode2, setToolJSX, context6, pastedCo
|
|
|
780496
779415
|
}
|
|
780497
779416
|
}
|
|
780498
779417
|
}
|
|
780499
|
-
if (false) {}
|
|
780500
779418
|
const shouldExtractAttachments = !skipAttachments && inputString !== null && (mode2 !== "prompt" || effectiveSkipSlash || !inputString.startsWith("/"));
|
|
780501
779419
|
queryCheckpoint("query_attachment_loading_start");
|
|
780502
779420
|
const attachmentMessages = shouldExtractAttachments ? await toArray2(getAttachmentMessages(inputString, context6, ideSelection ?? null, [], messages, querySource)) : [];
|
|
@@ -780546,7 +779464,6 @@ var init_processUserInput = __esm(() => {
|
|
|
780546
779464
|
init_imageStore();
|
|
780547
779465
|
init_messages();
|
|
780548
779466
|
init_queryProfiler();
|
|
780549
|
-
init_keyword();
|
|
780550
779467
|
init_processTextPrompt();
|
|
780551
779468
|
});
|
|
780552
779469
|
|
|
@@ -780794,7 +779711,6 @@ async function executeUserInput(params) {
|
|
|
780794
779711
|
const isFirst = i3 === 0;
|
|
780795
779712
|
const result = await processUserInput({
|
|
780796
779713
|
input: cmd.value,
|
|
780797
|
-
preExpansionInput: cmd.preExpansionValue,
|
|
780798
779714
|
mode: cmd.mode,
|
|
780799
779715
|
setToolJSX,
|
|
780800
779716
|
context: makeContext(),
|
|
@@ -783843,7 +782759,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
|
|
|
783843
782759
|
} catch {}
|
|
783844
782760
|
const data = {
|
|
783845
782761
|
trigger: trigger2,
|
|
783846
|
-
version: "1.80.
|
|
782762
|
+
version: "1.80.1",
|
|
783847
782763
|
platform: process.platform,
|
|
783848
782764
|
transcript,
|
|
783849
782765
|
subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
|
|
@@ -786424,8 +785340,7 @@ var init_controlSchemas = __esm(() => {
|
|
|
786424
785340
|
}).describe("Requests permission to use a tool with the given input."));
|
|
786425
785341
|
SDKControlSetPermissionModeRequestSchema = lazySchema(() => exports_external.object({
|
|
786426
785342
|
subtype: exports_external.literal("set_permission_mode"),
|
|
786427
|
-
mode: PermissionModeSchema()
|
|
786428
|
-
ultraplan: exports_external.boolean().optional().describe("@internal CCR ultraplan session marker.")
|
|
785343
|
+
mode: PermissionModeSchema()
|
|
786429
785344
|
}).describe("Sets the permission mode for tool execution handling."));
|
|
786430
785345
|
SDKControlSetModelRequestSchema = lazySchema(() => exports_external.object({
|
|
786431
785346
|
subtype: exports_external.literal("set_model"),
|
|
@@ -791872,7 +790787,6 @@ function REPL({
|
|
|
791872
790787
|
const tasks2 = useAppState((s) => s.tasks);
|
|
791873
790788
|
const workerSandboxPermissions = useAppState((s) => s.workerSandboxPermissions);
|
|
791874
790789
|
const elicitation = useAppState((s) => s.elicitation);
|
|
791875
|
-
const ultraplanPendingChoice = useAppState((s) => s.ultraplanPendingChoice);
|
|
791876
790790
|
const viewingAgentTaskId = useAppState((s) => s.viewingAgentTaskId);
|
|
791877
790791
|
const setAppState = useSetAppState();
|
|
791878
790792
|
const viewedLocalAgent = viewingAgentTaskId ? tasks2[viewingAgentTaskId] : undefined;
|
|
@@ -792330,11 +791244,6 @@ function REPL({
|
|
|
792330
791244
|
const [showBashesDialog, setShowBashesDialog] = import_react317.useState(false);
|
|
792331
791245
|
const [isSearchingHistory, setIsSearchingHistory] = import_react317.useState(false);
|
|
792332
791246
|
const [isHelpOpen, setIsHelpOpen] = import_react317.useState(false);
|
|
792333
|
-
import_react317.useEffect(() => {
|
|
792334
|
-
if (ultraplanPendingChoice && showBashesDialog) {
|
|
792335
|
-
setShowBashesDialog(false);
|
|
792336
|
-
}
|
|
792337
|
-
}, [ultraplanPendingChoice, showBashesDialog]);
|
|
792338
791247
|
const isTerminalFocused = useTerminalFocus();
|
|
792339
791248
|
const terminalFocusRef = import_react317.useRef(isTerminalFocused);
|
|
792340
791249
|
terminalFocusRef.current = isTerminalFocused;
|
|
@@ -792622,8 +791531,6 @@ function REPL({
|
|
|
792622
791531
|
return "cost";
|
|
792623
791532
|
if (allowDialogsWithAnimation && idleReturnPending)
|
|
792624
791533
|
return "idle-return";
|
|
792625
|
-
if (false)
|
|
792626
|
-
;
|
|
792627
791534
|
if (allowDialogsWithAnimation && showIdeOnboarding)
|
|
792628
791535
|
return "ide-onboarding";
|
|
792629
791536
|
if (false)
|
|
@@ -794265,7 +793172,7 @@ Note: ctrl + z now suspends UR, ctrl + _ undoes input.
|
|
|
794265
793172
|
}, undefined, false, undefined, this),
|
|
794266
793173
|
transcriptScrollRef ? /* @__PURE__ */ jsx_dev_runtime456.jsxDEV(ScrollKeybindingHandler, {
|
|
794267
793174
|
scrollRef,
|
|
794268
|
-
isActive:
|
|
793175
|
+
isActive: true,
|
|
794269
793176
|
isModal: !searchOpen,
|
|
794270
793177
|
onScroll: () => jumpRef.current?.disarmSearch()
|
|
794271
793178
|
}, undefined, false, undefined, this) : null,
|
|
@@ -794749,7 +793656,6 @@ Note: ctrl + z now suspends UR, ctrl + _ undoes input.
|
|
|
794749
793656
|
focusedInputDialog === "desktop-upsell" && /* @__PURE__ */ jsx_dev_runtime456.jsxDEV(DesktopUpsellStartup, {
|
|
794750
793657
|
onDone: () => setShowDesktopUpsellStartup(false)
|
|
794751
793658
|
}, undefined, false, undefined, this),
|
|
794752
|
-
null,
|
|
794753
793659
|
mrRender(),
|
|
794754
793660
|
!toolJSX?.shouldHidePromptInput && !focusedInputDialog && !isExiting && !disabled && !cursor && /* @__PURE__ */ jsx_dev_runtime456.jsxDEV(jsx_dev_runtime456.Fragment, {
|
|
794755
793661
|
children: [
|
|
@@ -796222,7 +795128,7 @@ function WelcomeV2() {
|
|
|
796222
795128
|
dimColor: true,
|
|
796223
795129
|
children: [
|
|
796224
795130
|
"v",
|
|
796225
|
-
"1.80.
|
|
795131
|
+
"1.80.1"
|
|
796226
795132
|
]
|
|
796227
795133
|
}, undefined, true, undefined, this)
|
|
796228
795134
|
]
|
|
@@ -797482,7 +796388,7 @@ function completeOnboarding() {
|
|
|
797482
796388
|
saveGlobalConfig((current) => ({
|
|
797483
796389
|
...current,
|
|
797484
796390
|
hasCompletedOnboarding: true,
|
|
797485
|
-
lastOnboardingVersion: "1.80.
|
|
796391
|
+
lastOnboardingVersion: "1.80.1"
|
|
797486
796392
|
}));
|
|
797487
796393
|
}
|
|
797488
796394
|
function showDialog(root2, renderer) {
|
|
@@ -799460,7 +798366,7 @@ var init_debug2 = __esm(() => {
|
|
|
799460
798366
|
TAIL_READ_BYTES = 64 * 1024;
|
|
799461
798367
|
});
|
|
799462
798368
|
|
|
799463
|
-
// src/skills/bundled/
|
|
798369
|
+
// src/skills/bundled/fix-bug.ts
|
|
799464
798370
|
function registerFixBugSkill() {
|
|
799465
798371
|
registerBundledSkill({
|
|
799466
798372
|
name: "fix-bug",
|
|
@@ -799469,7 +798375,7 @@ function registerFixBugSkill() {
|
|
|
799469
798375
|
argumentHint: "[bug description or reproduction steps]",
|
|
799470
798376
|
userInvocable: true,
|
|
799471
798377
|
async getPromptForCommand(args) {
|
|
799472
|
-
let prompt =
|
|
798378
|
+
let prompt = FIX_BUG_PROMPT;
|
|
799473
798379
|
if (args)
|
|
799474
798380
|
prompt += `
|
|
799475
798381
|
|
|
@@ -799480,17 +798386,17 @@ ${args}`;
|
|
|
799480
798386
|
}
|
|
799481
798387
|
});
|
|
799482
798388
|
}
|
|
799483
|
-
var
|
|
799484
|
-
var
|
|
798389
|
+
var FIX_BUG_PROMPT;
|
|
798390
|
+
var init_fix_bug = __esm(() => {
|
|
799485
798391
|
init_constants2();
|
|
799486
798392
|
init_bundledSkills();
|
|
799487
|
-
|
|
798393
|
+
FIX_BUG_PROMPT = `# Fix Bug Skill: Reproduce, Root-Cause, and Repair
|
|
799488
798394
|
|
|
799489
798395
|
Reproduce, root-cause, and fix the described bug in an isolated worktree. Produce a regression test and keep publishing user-controlled.
|
|
799490
798396
|
|
|
799491
798397
|
## Setup
|
|
799492
798398
|
|
|
799493
|
-
1. Use the ${AGENT_TOOL_NAME} tool with "isolation: worktree" and model "route: strong" to create a fresh git worktree and branch named "ur/
|
|
798399
|
+
1. Use the ${AGENT_TOOL_NAME} tool with "isolation: worktree" and model "route: strong" to create a fresh git worktree and branch named "ur/fix-bug-<timestamp>-<slug>".
|
|
799494
798400
|
2. Inside the worktree, inspect the relevant files, tests, and reproduction steps. Read the current git state with "git status" and "git log --oneline -5".
|
|
799495
798401
|
|
|
799496
798402
|
## Reproduction
|
|
@@ -801696,7 +800602,7 @@ var init_bundled = __esm(() => {
|
|
|
801696
800602
|
init_batch();
|
|
801697
800603
|
init_urInChrome();
|
|
801698
800604
|
init_debug2();
|
|
801699
|
-
|
|
800605
|
+
init_fix_bug();
|
|
801700
800606
|
init_refactor();
|
|
801701
800607
|
init_paper_implementation();
|
|
801702
800608
|
init_benchmark();
|
|
@@ -802628,7 +801534,7 @@ function appendToLog(path28, message) {
|
|
|
802628
801534
|
cwd: getFsImplementation().cwd(),
|
|
802629
801535
|
userType: process.env.USER_TYPE,
|
|
802630
801536
|
sessionId: getSessionId(),
|
|
802631
|
-
version: "1.80.
|
|
801537
|
+
version: "1.80.1"
|
|
802632
801538
|
};
|
|
802633
801539
|
getLogWriter(path28).write(messageWithTimestamp);
|
|
802634
801540
|
}
|
|
@@ -806792,8 +805698,8 @@ async function getEnvLessBridgeConfig() {
|
|
|
806792
805698
|
}
|
|
806793
805699
|
async function checkEnvLessBridgeMinVersion() {
|
|
806794
805700
|
const cfg = await getEnvLessBridgeConfig();
|
|
806795
|
-
if (cfg.min_version && lt("1.80.
|
|
806796
|
-
return `Your version of UR (${"1.80.
|
|
805701
|
+
if (cfg.min_version && lt("1.80.1", cfg.min_version)) {
|
|
805702
|
+
return `Your version of UR (${"1.80.1"}) is too old for Remote Control.
|
|
806797
805703
|
Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
|
|
806798
805704
|
}
|
|
806799
805705
|
return null;
|
|
@@ -807267,7 +806173,7 @@ async function initBridgeCore(params) {
|
|
|
807267
806173
|
const rawApi = createBridgeApiClient({
|
|
807268
806174
|
baseUrl,
|
|
807269
806175
|
getAccessToken,
|
|
807270
|
-
runnerVersion: "1.80.
|
|
806176
|
+
runnerVersion: "1.80.1",
|
|
807271
806177
|
onDebug: logForDebugging,
|
|
807272
806178
|
onAuth401,
|
|
807273
806179
|
getTrustedDeviceToken
|
|
@@ -810229,7 +809135,7 @@ function runHeadlessStreaming(structuredIO, mcpClients, commands, tools, initial
|
|
|
810229
809135
|
const teamContext = currentAppState.teamContext;
|
|
810230
809136
|
if (teamContext && isTeamLead(teamContext)) {
|
|
810231
809137
|
const agentName = "team-lead";
|
|
810232
|
-
const
|
|
809138
|
+
const POLL_INTERVAL_MS3 = 500;
|
|
810233
809139
|
while (true) {
|
|
810234
809140
|
const refreshedState = getAppState();
|
|
810235
809141
|
const hasActiveTeammates = hasActiveInProcessTeammates(refreshedState) || refreshedState.teamContext && Object.keys(refreshedState.teamContext.teammates).length > 0;
|
|
@@ -810296,7 +809202,7 @@ ${m.text}
|
|
|
810296
809202
|
run3();
|
|
810297
809203
|
return;
|
|
810298
809204
|
}
|
|
810299
|
-
await sleep2(
|
|
809205
|
+
await sleep2(POLL_INTERVAL_MS3);
|
|
810300
809206
|
}
|
|
810301
809207
|
}
|
|
810302
809208
|
}
|
|
@@ -810429,8 +809335,7 @@ ${m.text}
|
|
|
810429
809335
|
const m = message.request;
|
|
810430
809336
|
setAppState((prev) => ({
|
|
810431
809337
|
...prev,
|
|
810432
|
-
toolPermissionContext: handleSetPermissionMode(m, message.request_id, prev.toolPermissionContext, output)
|
|
810433
|
-
isUltraplanMode: m.ultraplan ?? prev.isUltraplanMode
|
|
809338
|
+
toolPermissionContext: handleSetPermissionMode(m, message.request_id, prev.toolPermissionContext, output)
|
|
810434
809339
|
}));
|
|
810435
809340
|
} else if (message.request.subtype === "set_model") {
|
|
810436
809341
|
const requestedModel = message.request.model ?? "default";
|
|
@@ -816741,7 +815646,7 @@ function getAgUiCapabilities() {
|
|
|
816741
815646
|
name: "UR-Nexus",
|
|
816742
815647
|
type: "ur-nexus",
|
|
816743
815648
|
description: "Provider-flexible, local-first autonomous engineering workflow agent.",
|
|
816744
|
-
version: "1.80.
|
|
815649
|
+
version: "1.80.1",
|
|
816745
815650
|
provider: "UR",
|
|
816746
815651
|
documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
|
|
816747
815652
|
},
|
|
@@ -817872,7 +816777,7 @@ function createMCPServer(cwd4, debug2, verbose) {
|
|
|
817872
816777
|
};
|
|
817873
816778
|
const server2 = new Server({
|
|
817874
816779
|
name: "ur-nexus",
|
|
817875
|
-
version: "1.80.
|
|
816780
|
+
version: "1.80.1"
|
|
817876
816781
|
}, {
|
|
817877
816782
|
capabilities: {
|
|
817878
816783
|
tools: {}
|
|
@@ -819076,7 +817981,7 @@ function thrownResponse(error40) {
|
|
|
819076
817981
|
}
|
|
819077
817982
|
async function createUrMcp2026Runtime(options5) {
|
|
819078
817983
|
const server2 = createMCPServer(options5.cwd, options5.debug === true, options5.verbose === true);
|
|
819079
|
-
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.80.
|
|
817984
|
+
const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.80.1" }, { capabilities: {} });
|
|
819080
817985
|
const [clientTransport, serverTransport] = createLinkedTransportPair();
|
|
819081
817986
|
try {
|
|
819082
817987
|
await server2.connect(serverTransport);
|
|
@@ -819087,7 +817992,7 @@ async function createUrMcp2026Runtime(options5) {
|
|
|
819087
817992
|
}
|
|
819088
817993
|
const runtime2 = new Mcp2026Runtime({
|
|
819089
817994
|
cwd: options5.cwd,
|
|
819090
|
-
version: "1.80.
|
|
817995
|
+
version: "1.80.1",
|
|
819091
817996
|
backend: {
|
|
819092
817997
|
listTools: async () => {
|
|
819093
817998
|
const listed = await client2.listTools();
|
|
@@ -821689,7 +820594,7 @@ async function update() {
|
|
|
821689
820594
|
logEvent("tengu_update_check", {});
|
|
821690
820595
|
const diagnostic2 = await getDoctorDiagnostic();
|
|
821691
820596
|
const result = await checkUpgradeStatus({
|
|
821692
|
-
currentVersion: "1.80.
|
|
820597
|
+
currentVersion: "1.80.1",
|
|
821693
820598
|
packageName: UR_AGENT_PACKAGE_NAME,
|
|
821694
820599
|
installationType: diagnostic2.installationType,
|
|
821695
820600
|
latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
|
|
@@ -823017,7 +821922,7 @@ ${customInstructions}` : customInstructions;
|
|
|
823017
821922
|
}
|
|
823018
821923
|
}
|
|
823019
821924
|
logForDiagnosticsNoPII("info", "started", {
|
|
823020
|
-
version: "1.80.
|
|
821925
|
+
version: "1.80.1",
|
|
823021
821926
|
is_native_binary: isInBundledMode()
|
|
823022
821927
|
});
|
|
823023
821928
|
registerCleanup(async () => {
|
|
@@ -823804,7 +822709,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
|
|
|
823804
822709
|
pendingHookMessages
|
|
823805
822710
|
}, renderAndRun);
|
|
823806
822711
|
}
|
|
823807
|
-
}).version("1.80.
|
|
822712
|
+
}).version("1.80.1 (UR-Nexus)", "-v, --version", "Output the version number");
|
|
823808
822713
|
program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
|
|
823809
822714
|
program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
|
|
823810
822715
|
if (canUserConfigureAdvisor()) {
|
|
@@ -824912,7 +823817,7 @@ if (false) {}
|
|
|
824912
823817
|
async function main2() {
|
|
824913
823818
|
const args = process.argv.slice(2);
|
|
824914
823819
|
if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
|
|
824915
|
-
console.log(`${"1.80.
|
|
823820
|
+
console.log(`${"1.80.1"} (UR-Nexus)`);
|
|
824916
823821
|
return;
|
|
824917
823822
|
}
|
|
824918
823823
|
if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
|