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/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.0"}`;
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.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
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.0"}${suffix}`;
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.0",
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.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
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.0",
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.0"
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.0");
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.0", researchSnapshotDate = "2026-08-10", coverage, priorityRoadmap;
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.0"}.${fingerprint}`;
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.0");
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.0"
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.0").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
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.0").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
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.0";
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.0";
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.0",
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.0",
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.0"
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.0");
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.0"));
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.0", versionConfig.minVersion)) {
340632
+ if (versionConfig.minVersion && lt("1.80.1", versionConfig.minVersion)) {
340633
340633
  console.error(`
340634
- It looks like your version of UR (${"1.80.0"}) needs an update.
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.0"
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.0"
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.0" : "unknown";
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.0", maxVersion)) {
342330
- logForDebugging(`Native installer: current version ${"1.80.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
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.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
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: options2.ultraplan ? `ultraplan: ${sessionTitle}` : sessionTitle,
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.isUltraplan || task.isLongRunning ? undefined : accumulatedLog.findLast((msg) => msg.type === "result");
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", "ultraplan", "ultrareview", "autofix-pr", "background-pr"];
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.0");
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.0",
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.0"
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.0"}
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.0"
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.0",
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.0";
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.0"}`,
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.0",
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.0") {
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.0") {
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.0";
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.0") {
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.0") {
480379
+ if (current.lastReleaseNotesSeen === "1.80.1") {
480402
480380
  return current;
480403
480381
  }
480404
480382
  return {
480405
480383
  ...current,
480406
- lastReleaseNotesSeen: "1.80.0"
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.isUltraplan || session2.isRemoteReview)
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, PHASE_LABEL, AGENT_VERB, STAGES, STAGE_LABELS;
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
- if (currentSelection_0.task.isUltraplan) {
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 : task_0.isUltraplan ? () => void stopUltraplan(task_0.id, task_0.sessionId, setAppState) : () => void killRemoteAgentTask(task_0.id)
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.0" : "1.80.0");
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.0" : "1.80.0"
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.0" : "1.80.0";
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.0" }
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.0" }
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 init_types15 = __esm(() => {
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
- init_types15();
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 init_types16 = __esm(() => {
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
- init_types16();
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.0"
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
- init_types14();
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.0"
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.0" : "unknown";
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.0" : "unknown";
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.0", nonce);
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.0");
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.0");
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.0",
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, showUltraplan, usage30, mode2, isAutoModeAvailable, isBypassPermissionsModeAvailable]);
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.0") {
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.0";
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.0", maxVersion)) {
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.0";
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.0", maxVersion)) {
760513
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.80.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
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.0", latest) && !shouldSkipVersion(latest);
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.0"} -> ${latest}`);
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.0"
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/ultraplan/keyword.ts
763968
- function findKeywordTriggerPositions(text2, keyword) {
763969
- const re = new RegExp(keyword, "i");
763970
- if (!re.test(text2))
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) => !!ch2 && /[\p{L}\p{N}_]/u.test(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 wordRe = new RegExp(`\\b${keyword}\\b`, "gi");
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((r) => start >= r.start && start < r.end))
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 init_keyword = __esm(() => {
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.0",
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.0",
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 t102;
770910
+ let t10;
771953
770911
  if ($2[15] !== availableWidth || $2[16] !== pillWidths || $2[17] !== t92) {
771954
- t102 = calculateHorizontalScrollWindow(pillWidths, availableWidth, 2, t92);
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] = t102;
770916
+ $2[18] = t10;
771959
770917
  } else {
771960
- t102 = $2[18];
770918
+ t10 = $2[18];
771961
770919
  }
771962
770920
  const {
771963
770921
  startIndex,
771964
770922
  endIndex,
771965
770923
  showLeftArrow,
771966
770924
  showRightArrow
771967
- } = t102;
771968
- let t112;
770925
+ } = t10;
770926
+ let t11;
771969
770927
  if ($2[19] !== allPills || $2[20] !== endIndex || $2[21] !== startIndex) {
771970
- t112 = allPills.slice(startIndex, endIndex);
770928
+ t11 = allPills.slice(startIndex, endIndex);
771971
770929
  $2[19] = allPills;
771972
770930
  $2[20] = endIndex;
771973
770931
  $2[21] = startIndex;
771974
- $2[22] = t112;
770932
+ $2[22] = t11;
771975
770933
  } else {
771976
- t112 = $2[22];
770934
+ t11 = $2[22];
771977
770935
  }
771978
- const visiblePills = t112;
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
- let t10;
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, POLL_INTERVAL_MS3);
771586
+ timeoutRef.current = setTimeout(poll, POLL_INTERVAL_MS2);
772658
771587
  }
772659
771588
  }
772660
771589
  const elapsed = Date.now() - lastFetchRef.current;
772661
- if (elapsed >= POLL_INTERVAL_MS3) {
771590
+ if (elapsed >= POLL_INTERVAL_MS2) {
772662
771591
  poll();
772663
771592
  } else {
772664
- timeoutRef.current = setTimeout(poll, POLL_INTERVAL_MS3 - elapsed);
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, POLL_INTERVAL_MS3 = 60000, SLOW_GH_THRESHOLD_MS = 4000, IDLE_STOP_MS, INITIAL_STATE3;
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 ultraplanSessionUrl = useAppState((s) => s.ultraplanSessionUrl);
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, ultraplanTriggers, ultrareviewTriggers, buddyTriggers]);
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
- init_keyword();
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, preExpansionInput);
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, preExpansionInput) {
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.0",
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: focusedInputDialog !== "ultraplan-choice",
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.0"
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.0"
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/debug-v2.ts
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 = DEBUG_V2_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 DEBUG_V2_PROMPT;
799484
- var init_debug_v2 = __esm(() => {
798389
+ var FIX_BUG_PROMPT;
798390
+ var init_fix_bug = __esm(() => {
799485
798391
  init_constants2();
799486
798392
  init_bundledSkills();
799487
- DEBUG_V2_PROMPT = `# Debug Skill: Reproduce, Root-Cause, and Fix
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/debug-<timestamp>-<slug>".
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
- init_debug_v2();
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.0"
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.0", cfg.min_version)) {
806796
- return `Your version of UR (${"1.80.0"}) is too old for Remote Control.
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.0",
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 POLL_INTERVAL_MS4 = 500;
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(POLL_INTERVAL_MS4);
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.0",
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.0"
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.0" }, { capabilities: {} });
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.0",
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.0",
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.0",
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.0 (UR-Nexus)", "-v, --version", "Output the version number");
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.0"} (UR-Nexus)`);
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")) {