ur-agent 1.57.0 → 1.57.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
@@ -75097,7 +75097,7 @@ var init_auth = __esm(() => {
75097
75097
 
75098
75098
  // src/utils/userAgent.ts
75099
75099
  function getURCodeUserAgent() {
75100
- return `ur/${"1.57.0"}`;
75100
+ return `ur/${"1.57.1"}`;
75101
75101
  }
75102
75102
 
75103
75103
  // src/utils/workloadContext.ts
@@ -75119,7 +75119,7 @@ function getUserAgent() {
75119
75119
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
75120
75120
  const workload = getWorkload();
75121
75121
  const workloadSuffix = workload ? `, workload/${workload}` : "";
75122
- return `ur-cli/${"1.57.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75122
+ return `ur-cli/${"1.57.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75123
75123
  }
75124
75124
  function getMCPUserAgent() {
75125
75125
  const parts = [];
@@ -75133,7 +75133,7 @@ function getMCPUserAgent() {
75133
75133
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
75134
75134
  }
75135
75135
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
75136
- return `ur/${"1.57.0"}${suffix}`;
75136
+ return `ur/${"1.57.1"}${suffix}`;
75137
75137
  }
75138
75138
  function getWebFetchUserAgent() {
75139
75139
  return `UR-User (${getURCodeUserAgent()})`;
@@ -75271,7 +75271,7 @@ var init_user = __esm(() => {
75271
75271
  deviceId,
75272
75272
  sessionId: getSessionId(),
75273
75273
  email: getEmail(),
75274
- appVersion: "1.57.0",
75274
+ appVersion: "1.57.1",
75275
75275
  platform: getHostPlatformForAnalytics(),
75276
75276
  organizationUuid,
75277
75277
  accountUuid,
@@ -83471,7 +83471,7 @@ var init_metadata = __esm(() => {
83471
83471
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
83472
83472
  WHITESPACE_REGEX = /\s+/;
83473
83473
  getVersionBase = memoize_default(() => {
83474
- const match = "1.57.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83474
+ const match = "1.57.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83475
83475
  return match ? match[0] : undefined;
83476
83476
  });
83477
83477
  buildEnvContext = memoize_default(async () => {
@@ -83511,7 +83511,7 @@ var init_metadata = __esm(() => {
83511
83511
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
83512
83512
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
83513
83513
  isURAiAuth: isURAISubscriber(),
83514
- version: "1.57.0",
83514
+ version: "1.57.1",
83515
83515
  versionBase: getVersionBase(),
83516
83516
  buildTime: "",
83517
83517
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -84181,7 +84181,7 @@ function initialize1PEventLogging() {
84181
84181
  const platform2 = getPlatform();
84182
84182
  const attributes = {
84183
84183
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
84184
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.57.0"
84184
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.57.1"
84185
84185
  };
84186
84186
  if (platform2 === "wsl") {
84187
84187
  const wslVersion = getWslVersion();
@@ -84209,7 +84209,7 @@ function initialize1PEventLogging() {
84209
84209
  })
84210
84210
  ]
84211
84211
  });
84212
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.57.0");
84212
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.57.1");
84213
84213
  }
84214
84214
  async function reinitialize1PEventLoggingIfConfigChanged() {
84215
84215
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -94048,7 +94048,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
94048
94048
  function formatA2AAgentCard(options = {}, pretty = true) {
94049
94049
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
94050
94050
  }
94051
- var urVersion = "1.57.0", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94051
+ var urVersion = "1.57.1", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94052
94052
  var init_trends = __esm(() => {
94053
94053
  init_a2aCardSignature();
94054
94054
  coverage = [
@@ -96849,7 +96849,7 @@ function getAttributionHeader(fingerprint) {
96849
96849
  if (!isAttributionHeaderEnabled()) {
96850
96850
  return "";
96851
96851
  }
96852
- const version2 = `${"1.57.0"}.${fingerprint}`;
96852
+ const version2 = `${"1.57.1"}.${fingerprint}`;
96853
96853
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
96854
96854
  const cch = "";
96855
96855
  const workload = getWorkload();
@@ -154438,7 +154438,7 @@ var init_projectSafety = __esm(() => {
154438
154438
  function getInstruments() {
154439
154439
  if (instruments)
154440
154440
  return instruments;
154441
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.57.0");
154441
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.57.1");
154442
154442
  instruments = {
154443
154443
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
154444
154444
  description: "GenAI operation duration.",
@@ -154536,7 +154536,7 @@ function genAiAgentAttributes() {
154536
154536
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
154537
154537
  "gen_ai.provider.name": "ur",
154538
154538
  "gen_ai.agent.name": "UR-Nexus",
154539
- "gen_ai.agent.version": "1.57.0"
154539
+ "gen_ai.agent.version": "1.57.1"
154540
154540
  };
154541
154541
  }
154542
154542
  function genAiWorkflowAttributes(workflowName) {
@@ -154552,7 +154552,7 @@ function genAiWorkflowAttributes(workflowName) {
154552
154552
  function startGenAiWorkflowSpan(workflowName) {
154553
154553
  const attributes = genAiWorkflowAttributes(workflowName);
154554
154554
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
154555
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.57.0").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
154555
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.57.1").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
154556
154556
  }
154557
154557
  function endGenAiWorkflowSpan(span, options2 = {}) {
154558
154558
  try {
@@ -154590,7 +154590,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
154590
154590
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
154591
154591
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
154592
154592
  }
154593
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.57.0").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
154593
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.57.1").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
154594
154594
  }
154595
154595
  function endGenAiMemorySpan(span, options2 = {}) {
154596
154596
  try {
@@ -206109,7 +206109,7 @@ function getTelemetryAttributes() {
206109
206109
  attributes["session.id"] = sessionId;
206110
206110
  }
206111
206111
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
206112
- attributes["app.version"] = "1.57.0";
206112
+ attributes["app.version"] = "1.57.1";
206113
206113
  }
206114
206114
  const oauthAccount = getOauthAccountInfo();
206115
206115
  if (oauthAccount) {
@@ -241676,7 +241676,7 @@ function getInstallationEnv() {
241676
241676
  return;
241677
241677
  }
241678
241678
  function getURCodeVersion() {
241679
- return "1.57.0";
241679
+ return "1.57.1";
241680
241680
  }
241681
241681
  async function getInstalledVSCodeExtensionVersion(command) {
241682
241682
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -249007,7 +249007,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
249007
249007
  const client2 = new Client({
249008
249008
  name: "ur",
249009
249009
  title: "UR",
249010
- version: "1.57.0",
249010
+ version: "1.57.1",
249011
249011
  description: "UR-Nexus autonomous engineering workflow engine",
249012
249012
  websiteUrl: PRODUCT_URL
249013
249013
  }, {
@@ -249367,7 +249367,7 @@ var init_client5 = __esm(() => {
249367
249367
  const client2 = new Client({
249368
249368
  name: "ur",
249369
249369
  title: "UR",
249370
- version: "1.57.0",
249370
+ version: "1.57.1",
249371
249371
  description: "UR-Nexus autonomous engineering workflow engine",
249372
249372
  websiteUrl: PRODUCT_URL
249373
249373
  }, {
@@ -261968,7 +261968,7 @@ async function createRuntime() {
261968
261968
  bootstrapTelemetry();
261969
261969
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
261970
261970
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
261971
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.57.0"
261971
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.57.1"
261972
261972
  }));
261973
261973
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
261974
261974
  resource,
@@ -262001,11 +262001,11 @@ async function createRuntime() {
262001
262001
  setMeterProvider(meterProvider);
262002
262002
  setLoggerProvider(loggerProvider);
262003
262003
  if (meterProvider) {
262004
- const meter = meterProvider.getMeter("ur-agent", "1.57.0");
262004
+ const meter = meterProvider.getMeter("ur-agent", "1.57.1");
262005
262005
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
262006
262006
  }
262007
262007
  if (loggerProvider) {
262008
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.57.0"));
262008
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.57.1"));
262009
262009
  }
262010
262010
  if (!cleanupRegistered2) {
262011
262011
  cleanupRegistered2 = true;
@@ -262667,9 +262667,9 @@ async function assertMinVersion() {
262667
262667
  if (false) {}
262668
262668
  try {
262669
262669
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
262670
- if (versionConfig.minVersion && lt("1.57.0", versionConfig.minVersion)) {
262670
+ if (versionConfig.minVersion && lt("1.57.1", versionConfig.minVersion)) {
262671
262671
  console.error(`
262672
- It looks like your version of UR (${"1.57.0"}) needs an update.
262672
+ It looks like your version of UR (${"1.57.1"}) needs an update.
262673
262673
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
262674
262674
 
262675
262675
  To update, please run:
@@ -262885,7 +262885,7 @@ async function installGlobalPackage(specificVersion) {
262885
262885
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
262886
262886
  logEvent("tengu_auto_updater_lock_contention", {
262887
262887
  pid: process.pid,
262888
- currentVersion: "1.57.0"
262888
+ currentVersion: "1.57.1"
262889
262889
  });
262890
262890
  return "in_progress";
262891
262891
  }
@@ -262894,7 +262894,7 @@ async function installGlobalPackage(specificVersion) {
262894
262894
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
262895
262895
  logError2(new Error("Windows NPM detected in WSL environment"));
262896
262896
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
262897
- currentVersion: "1.57.0"
262897
+ currentVersion: "1.57.1"
262898
262898
  });
262899
262899
  console.error(`
262900
262900
  Error: Windows NPM detected in WSL
@@ -263429,7 +263429,7 @@ function detectLinuxGlobPatternWarnings() {
263429
263429
  }
263430
263430
  async function getDoctorDiagnostic() {
263431
263431
  const installationType = await getCurrentInstallationType();
263432
- const version2 = typeof MACRO !== "undefined" ? "1.57.0" : "unknown";
263432
+ const version2 = typeof MACRO !== "undefined" ? "1.57.1" : "unknown";
263433
263433
  const installationPath = await getInstallationPath();
263434
263434
  const invokedBinary = getInvokedBinary();
263435
263435
  const multipleInstallations = await detectMultipleInstallations();
@@ -264364,8 +264364,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
264364
264364
  const maxVersion = await getMaxVersion();
264365
264365
  if (maxVersion && gt(version2, maxVersion)) {
264366
264366
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
264367
- if (gte("1.57.0", maxVersion)) {
264368
- logForDebugging(`Native installer: current version ${"1.57.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
264367
+ if (gte("1.57.1", maxVersion)) {
264368
+ logForDebugging(`Native installer: current version ${"1.57.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
264369
264369
  logEvent("tengu_native_update_skipped_max_version", {
264370
264370
  latency_ms: Date.now() - startTime,
264371
264371
  max_version: maxVersion,
@@ -264376,7 +264376,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
264376
264376
  version2 = maxVersion;
264377
264377
  }
264378
264378
  }
264379
- if (!forceReinstall && version2 === "1.57.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
264379
+ if (!forceReinstall && version2 === "1.57.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
264380
264380
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
264381
264381
  logEvent("tengu_native_update_complete", {
264382
264382
  latency_ms: Date.now() - startTime,
@@ -314147,7 +314147,7 @@ var init_UI13 = __esm(() => {
314147
314147
  });
314148
314148
 
314149
314149
  // src/tools/ComputerTool/ComputerTool.tsx
314150
- import { existsSync as existsSync23, statSync as statSync12 } from "fs";
314150
+ import { existsSync as existsSync23, readFileSync as readFileSync27, statSync as statSync12 } from "fs";
314151
314151
  import { tmpdir as tmpdir8 } from "os";
314152
314152
  import { join as join100 } from "path";
314153
314153
  function supportedPlatform() {
@@ -314181,6 +314181,7 @@ var init_ComputerTool = __esm(() => {
314181
314181
  init_v4();
314182
314182
  init_Tool();
314183
314183
  init_execFileNoThrow();
314184
+ init_imageResizer();
314184
314185
  init_UI13();
314185
314186
  inputSchema17 = lazySchema(() => exports_external.object({
314186
314187
  action: exports_external.enum(["screenshot", "click", "type"]).describe("What to do: read the screen, click a point, or type text"),
@@ -314193,7 +314194,9 @@ var init_ComputerTool = __esm(() => {
314193
314194
  action: exports_external.string(),
314194
314195
  ok: exports_external.boolean(),
314195
314196
  detail: exports_external.string(),
314196
- screenshotPath: exports_external.string().optional()
314197
+ screenshotPath: exports_external.string().optional(),
314198
+ imageBase64: exports_external.string().optional(),
314199
+ imageMediaType: exports_external.string().optional()
314197
314200
  }));
314198
314201
  ComputerTool = buildTool({
314199
314202
  name: COMPUTER_TOOL_NAME,
@@ -314290,14 +314293,30 @@ var init_ComputerTool = __esm(() => {
314290
314293
  }
314291
314294
  };
314292
314295
  }
314293
- return {
314294
- data: {
314295
- action: "screenshot",
314296
- ok: true,
314297
- detail: `Captured ${statSync12(path13).size} bytes`,
314298
- screenshotPath: path13
314299
- }
314300
- };
314296
+ const bytes = statSync12(path13).size;
314297
+ try {
314298
+ const raw = readFileSync27(path13);
314299
+ const resized = await maybeResizeAndDownsampleImageBuffer(raw, bytes, "png");
314300
+ return {
314301
+ data: {
314302
+ action: "screenshot",
314303
+ ok: true,
314304
+ detail: `Captured ${bytes} bytes`,
314305
+ screenshotPath: path13,
314306
+ imageBase64: resized.buffer.toString("base64"),
314307
+ imageMediaType: `image/${resized.mediaType}`
314308
+ }
314309
+ };
314310
+ } catch (error42) {
314311
+ return {
314312
+ data: {
314313
+ action: "screenshot",
314314
+ ok: true,
314315
+ detail: `Captured ${bytes} bytes to ${path13}, but the image could not be ` + `encoded (${error42 instanceof Error ? error42.message : String(error42)}). ` + "Read that path to view it.",
314316
+ screenshotPath: path13
314317
+ }
314318
+ };
314319
+ }
314301
314320
  }
314302
314321
  if (input.action === "click") {
314303
314322
  const point = { x: input.x ?? Number.NaN, y: input.y ?? Number.NaN };
@@ -314348,7 +314367,25 @@ var init_ComputerTool = __esm(() => {
314348
314367
  }
314349
314368
  };
314350
314369
  },
314351
- mapToolResultToToolResultBlockParam({ action: action2, ok, detail }, toolUseID) {
314370
+ mapToolResultToToolResultBlockParam(data, toolUseID) {
314371
+ const { action: action2, ok, detail, imageBase64, imageMediaType } = data;
314372
+ if (imageBase64 && imageMediaType) {
314373
+ return {
314374
+ tool_use_id: toolUseID,
314375
+ type: "tool_result",
314376
+ content: [
314377
+ { type: "text", text: `${action2}: ${detail}` },
314378
+ {
314379
+ type: "image",
314380
+ source: {
314381
+ type: "base64",
314382
+ data: imageBase64,
314383
+ media_type: imageMediaType
314384
+ }
314385
+ }
314386
+ ]
314387
+ };
314388
+ }
314352
314389
  return {
314353
314390
  tool_use_id: toolUseID,
314354
314391
  type: "tool_result",
@@ -316057,13 +316094,13 @@ var init_DockerTool = __esm(() => {
316057
316094
  });
316058
316095
 
316059
316096
  // src/tools/TestRunnerTool/TestRunnerTool.ts
316060
- import { existsSync as existsSync25, readFileSync as readFileSync27 } from "fs";
316097
+ import { existsSync as existsSync25, readFileSync as readFileSync28 } from "fs";
316061
316098
  import { join as join102 } from "path";
316062
316099
  function detectTestCommand(cwd2) {
316063
316100
  const packagePath = join102(cwd2, "package.json");
316064
316101
  if (existsSync25(packagePath)) {
316065
316102
  try {
316066
- const pkg = JSON.parse(readFileSync27(packagePath, "utf8"));
316103
+ const pkg = JSON.parse(readFileSync28(packagePath, "utf8"));
316067
316104
  if (pkg.scripts?.test)
316068
316105
  return `bun run test`;
316069
316106
  if (pkg.scripts?.["test:unit"])
@@ -319260,7 +319297,7 @@ var init_indexer = __esm(() => {
319260
319297
  });
319261
319298
 
319262
319299
  // src/utils/codeIndex/graph.ts
319263
- import { existsSync as existsSync26, mkdirSync as mkdirSync17, readFileSync as readFileSync28, writeFileSync as writeFileSync18 } from "fs";
319300
+ import { existsSync as existsSync26, mkdirSync as mkdirSync17, readFileSync as readFileSync29, writeFileSync as writeFileSync18 } from "fs";
319264
319301
  import { posix as posix6, resolve as resolve39 } from "path";
319265
319302
  import { join as join106 } from "path";
319266
319303
  function matchAll2(text, regexes) {
@@ -319408,7 +319445,7 @@ function graphPath(root2) {
319408
319445
  }
319409
319446
  async function buildCodeGraph(options2) {
319410
319447
  const signal = options2.signal ?? new AbortController().signal;
319411
- const read = options2.readFile ?? ((abs) => readFileSync28(abs, "utf-8"));
319448
+ const read = options2.readFile ?? ((abs) => readFileSync29(abs, "utf-8"));
319412
319449
  const rels = (await listIndexableFiles(options2.root, signal)).slice(0, options2.maxFiles ?? 5000);
319413
319450
  const sources = [];
319414
319451
  for (const rel of rels) {
@@ -319426,7 +319463,7 @@ function loadGraph(root2) {
319426
319463
  const path13 = graphPath(root2);
319427
319464
  if (!existsSync26(path13))
319428
319465
  return null;
319429
- const parsed = safeParseJSON(readFileSync28(path13, "utf-8"), false);
319466
+ const parsed = safeParseJSON(readFileSync29(path13, "utf-8"), false);
319430
319467
  return parsed && typeof parsed === "object" ? parsed : null;
319431
319468
  }
319432
319469
  function formatGraphStats(graph) {
@@ -319469,7 +319506,7 @@ var init_graph = __esm(() => {
319469
319506
 
319470
319507
  // src/utils/codeIndex/repoIndex.ts
319471
319508
  import { createHash as createHash29 } from "crypto";
319472
- import { existsSync as existsSync27, mkdirSync as mkdirSync18, readFileSync as readFileSync29, writeFileSync as writeFileSync19 } from "fs";
319509
+ import { existsSync as existsSync27, mkdirSync as mkdirSync18, readFileSync as readFileSync30, writeFileSync as writeFileSync19 } from "fs";
319473
319510
  import { join as join107, posix as posix7 } from "path";
319474
319511
  function sha12(content) {
319475
319512
  return createHash29("sha1").update(content).digest("hex");
@@ -319684,7 +319721,7 @@ function resolveImport2(fromFile, spec, fileSet) {
319684
319721
  }
319685
319722
  async function buildRepoIndex(options2) {
319686
319723
  const signal = options2.signal ?? new AbortController().signal;
319687
- const read = options2.readFile ?? ((abs) => readFileSync29(abs, "utf-8"));
319724
+ const read = options2.readFile ?? ((abs) => readFileSync30(abs, "utf-8"));
319688
319725
  const rels = (await listIndexableFiles(options2.root, signal)).slice(0, options2.maxFiles ?? 5000);
319689
319726
  const fileSet = new Set(rels);
319690
319727
  const files = [];
@@ -319838,7 +319875,7 @@ function loadConfigIndex(root2) {
319838
319875
  function loadJsonFile(path13) {
319839
319876
  if (!existsSync27(path13))
319840
319877
  return null;
319841
- const parsed = safeParseJSON(readFileSync29(path13, "utf-8"), false);
319878
+ const parsed = safeParseJSON(readFileSync30(path13, "utf-8"), false);
319842
319879
  return parsed && typeof parsed === "object" ? parsed : null;
319843
319880
  }
319844
319881
  function repoSearch(repo, query2) {
@@ -334621,7 +334658,7 @@ function isAnyTracingEnabled() {
334621
334658
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
334622
334659
  }
334623
334660
  function getTracer() {
334624
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.57.0");
334661
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.57.1");
334625
334662
  }
334626
334663
  function createSpanAttributes(spanType, customAttributes = {}) {
334627
334664
  const baseAttributes = getTelemetryAttributes();
@@ -335400,7 +335437,7 @@ var init_rootcause = __esm(() => {
335400
335437
  });
335401
335438
 
335402
335439
  // src/stability/ledger.ts
335403
- import { appendFileSync as appendFileSync4, existsSync as existsSync29, mkdirSync as mkdirSync19, readFileSync as readFileSync30 } from "fs";
335440
+ import { appendFileSync as appendFileSync4, existsSync as existsSync29, mkdirSync as mkdirSync19, readFileSync as readFileSync31 } from "fs";
335404
335441
  import { dirname as dirname45, join as join109 } from "path";
335405
335442
  function ledgerPath(cwd2) {
335406
335443
  return join109(cwd2, ".ur", "actions.jsonl");
@@ -335438,7 +335475,7 @@ function readActions(cwd2, limit = 50) {
335438
335475
  const file2 = ledgerPath(cwd2);
335439
335476
  if (!existsSync29(file2))
335440
335477
  return [];
335441
- const lines = readFileSync30(file2, "utf8").split(`
335478
+ const lines = readFileSync31(file2, "utf8").split(`
335442
335479
  `).filter(Boolean);
335443
335480
  const out = [];
335444
335481
  for (const line of lines.slice(-limit)) {
@@ -338431,13 +338468,13 @@ var init_turnSideEffects = __esm(() => {
338431
338468
 
338432
338469
  // src/ur/notes.ts
338433
338470
  import { createHash as createHash31 } from "crypto";
338434
- import { appendFileSync as appendFileSync5, existsSync as existsSync30, mkdirSync as mkdirSync20, readFileSync as readFileSync31, writeFileSync as writeFileSync20 } from "fs";
338471
+ import { appendFileSync as appendFileSync5, existsSync as existsSync30, mkdirSync as mkdirSync20, readFileSync as readFileSync32, writeFileSync as writeFileSync20 } from "fs";
338435
338472
  import { dirname as dirname46, join as join111 } from "path";
338436
338473
  function readJsonl(file2) {
338437
338474
  if (!existsSync30(file2))
338438
338475
  return [];
338439
338476
  const out = [];
338440
- for (const line of readFileSync31(file2, "utf8").split(`
338477
+ for (const line of readFileSync32(file2, "utf8").split(`
338441
338478
  `).filter(Boolean)) {
338442
338479
  try {
338443
338480
  out.push(JSON.parse(line));
@@ -338492,7 +338529,7 @@ function rememberInAutoMemory(memoryDir, text) {
338492
338529
  `));
338493
338530
  const indexPath2 = join111(memoryDir, "MEMORY.md");
338494
338531
  const indexLine = `- [Remembered note](${fileName}) \u2014 ${description}`;
338495
- const existing2 = existsSync30(indexPath2) ? readFileSync31(indexPath2, "utf8") : "";
338532
+ const existing2 = existsSync30(indexPath2) ? readFileSync32(indexPath2, "utf8") : "";
338496
338533
  if (!existing2.includes(`](${fileName})`)) {
338497
338534
  const prefix = existing2.trimEnd();
338498
338535
  writeFileSync20(indexPath2, `${prefix ? `${prefix}
@@ -338539,7 +338576,7 @@ var exports_memoryLines = {};
338539
338576
  __export(exports_memoryLines, {
338540
338577
  existingMemoryLines: () => existingMemoryLines
338541
338578
  });
338542
- import { existsSync as existsSync31, readFileSync as readFileSync32 } from "fs";
338579
+ import { existsSync as existsSync31, readFileSync as readFileSync33 } from "fs";
338543
338580
  import { join as join112 } from "path";
338544
338581
  function existingMemoryLines(cwd2 = getCwd()) {
338545
338582
  const lines = [];
@@ -338556,7 +338593,7 @@ function existingMemoryLines(cwd2 = getCwd()) {
338556
338593
  try {
338557
338594
  if (!existsSync31(file2))
338558
338595
  continue;
338559
- for (const line of readFileSync32(file2, "utf8").split(`
338596
+ for (const line of readFileSync33(file2, "utf8").split(`
338560
338597
  `)) {
338561
338598
  const trimmed = line.replace(/^\s*[-*+]\s+/, "").trim();
338562
338599
  if (trimmed.length >= 12 && !/^[#`]/.test(trimmed))
@@ -364101,7 +364138,7 @@ function Feedback({
364101
364138
  platform: env2.platform,
364102
364139
  gitRepo: envInfo.isGit,
364103
364140
  terminal: env2.terminal,
364104
- version: "1.57.0",
364141
+ version: "1.57.1",
364105
364142
  transcript: normalizeMessagesForAPI(messages),
364106
364143
  errors: sanitizedErrors,
364107
364144
  lastApiRequest: getLastAPIRequest(),
@@ -364293,7 +364330,7 @@ function Feedback({
364293
364330
  ", ",
364294
364331
  env2.terminal,
364295
364332
  ", v",
364296
- "1.57.0"
364333
+ "1.57.1"
364297
364334
  ]
364298
364335
  }, undefined, true, undefined, this)
364299
364336
  ]
@@ -364399,7 +364436,7 @@ ${sanitizedDescription}
364399
364436
  ` + `**Environment Info**
364400
364437
  ` + `- Platform: ${env2.platform}
364401
364438
  ` + `- Terminal: ${env2.terminal}
364402
- ` + `- Version: ${"1.57.0"}
364439
+ ` + `- Version: ${"1.57.1"}
364403
364440
  ` + `- Feedback ID: ${feedbackId}
364404
364441
  ` + `
364405
364442
  **Errors**
@@ -367509,7 +367546,7 @@ function buildPrimarySection() {
367509
367546
  }, undefined, false, undefined, this);
367510
367547
  return [{
367511
367548
  label: "Version",
367512
- value: "1.57.0"
367549
+ value: "1.57.1"
367513
367550
  }, {
367514
367551
  label: "Session name",
367515
367552
  value: nameValue
@@ -370839,7 +370876,7 @@ function Config({
370839
370876
  }
370840
370877
  }, undefined, false, undefined, this)
370841
370878
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
370842
- currentVersion: "1.57.0",
370879
+ currentVersion: "1.57.1",
370843
370880
  onChoice: (choice) => {
370844
370881
  setShowSubmenu(null);
370845
370882
  setTabsHidden(false);
@@ -370851,7 +370888,7 @@ function Config({
370851
370888
  autoUpdatesChannel: "stable"
370852
370889
  };
370853
370890
  if (choice === "stay") {
370854
- newSettings.minimumVersion = "1.57.0";
370891
+ newSettings.minimumVersion = "1.57.1";
370855
370892
  }
370856
370893
  updateSettingsForSource("userSettings", newSettings);
370857
370894
  setSettingsData((prev_27) => ({
@@ -378915,7 +378952,7 @@ function HelpV2(t0) {
378915
378952
  let t6;
378916
378953
  if ($2[31] !== tabs) {
378917
378954
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
378918
- title: `UR v${"1.57.0"}`,
378955
+ title: `UR v${"1.57.1"}`,
378919
378956
  color: "professionalBlue",
378920
378957
  defaultTab: "general",
378921
378958
  children: tabs
@@ -379229,7 +379266,7 @@ var init_IdeAutoConnectDialog = __esm(() => {
379229
379266
  });
379230
379267
 
379231
379268
  // src/services/agents/ideDiffs.ts
379232
- import { existsSync as existsSync33, mkdirSync as mkdirSync21, readFileSync as readFileSync33, rmSync as rmSync8, writeFileSync as writeFileSync21 } from "fs";
379269
+ import { existsSync as existsSync33, mkdirSync as mkdirSync21, readFileSync as readFileSync34, rmSync as rmSync8, writeFileSync as writeFileSync21 } from "fs";
379233
379270
  import { join as join139, resolve as resolve47, sep as sep31 } from "path";
379234
379271
  function ideDir(cwd2) {
379235
379272
  return join139(cwd2, ".ur", "ide");
@@ -379274,7 +379311,7 @@ function loadManifest3(cwd2) {
379274
379311
  const path16 = manifestPath4(cwd2);
379275
379312
  if (!existsSync33(path16))
379276
379313
  return { version: 1, diffs: [] };
379277
- const parsed = safeParseJSON(readFileSync33(path16, "utf-8"), false);
379314
+ const parsed = safeParseJSON(readFileSync34(path16, "utf-8"), false);
379278
379315
  return parsed && typeof parsed === "object" && Array.isArray(parsed.diffs) ? { version: 1, diffs: parsed.diffs.filter((bundle) => isValidBundle(cwd2, bundle)) } : { version: 1, diffs: [] };
379279
379316
  }
379280
379317
  function saveManifest3(cwd2, manifest) {
@@ -379394,7 +379431,7 @@ function readIdeDiffPatch(cwd2, id) {
379394
379431
  const path16 = bundleArtifactPath(cwd2, bundle, "patch");
379395
379432
  if (!path16)
379396
379433
  return null;
379397
- return existsSync33(path16) ? readFileSync33(path16, "utf-8") : null;
379434
+ return existsSync33(path16) ? readFileSync34(path16, "utf-8") : null;
379398
379435
  }
379399
379436
  function mutate2(cwd2, id, fn) {
379400
379437
  const manifest = loadManifest3(cwd2);
@@ -379832,7 +379869,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
379832
379869
  async function handleInitialize(options2) {
379833
379870
  return {
379834
379871
  name: "UR",
379835
- version: "1.57.0",
379872
+ version: "1.57.1",
379836
379873
  protocolVersion: "0.1.0",
379837
379874
  workspaceRoot: options2.cwd,
379838
379875
  capabilities: {
@@ -396940,7 +396977,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
396940
396977
  return [];
396941
396978
  }
396942
396979
  }
396943
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.57.0") {
396980
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.57.1") {
396944
396981
  if (process.env.USER_TYPE === "ant") {
396945
396982
  const changelog = "";
396946
396983
  if (changelog) {
@@ -396967,7 +397004,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.57.0")
396967
397004
  releaseNotes
396968
397005
  };
396969
397006
  }
396970
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.57.0") {
397007
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.57.1") {
396971
397008
  if (process.env.USER_TYPE === "ant") {
396972
397009
  const changelog = "";
396973
397010
  if (changelog) {
@@ -399824,7 +399861,7 @@ function getRecentActivitySync() {
399824
399861
  return cachedActivity;
399825
399862
  }
399826
399863
  function getLogoDisplayData() {
399827
- const version2 = process.env.DEMO_VERSION ?? "1.57.0";
399864
+ const version2 = process.env.DEMO_VERSION ?? "1.57.1";
399828
399865
  const serverUrl = getDirectConnectServerUrl();
399829
399866
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
399830
399867
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -400708,7 +400745,7 @@ function LogoV2() {
400708
400745
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
400709
400746
  t2 = () => {
400710
400747
  const currentConfig2 = getGlobalConfig();
400711
- if (currentConfig2.lastReleaseNotesSeen === "1.57.0") {
400748
+ if (currentConfig2.lastReleaseNotesSeen === "1.57.1") {
400712
400749
  return;
400713
400750
  }
400714
400751
  saveGlobalConfig(_temp327);
@@ -401393,12 +401430,12 @@ function LogoV2() {
401393
401430
  return t41;
401394
401431
  }
401395
401432
  function _temp327(current) {
401396
- if (current.lastReleaseNotesSeen === "1.57.0") {
401433
+ if (current.lastReleaseNotesSeen === "1.57.1") {
401397
401434
  return current;
401398
401435
  }
401399
401436
  return {
401400
401437
  ...current,
401401
- lastReleaseNotesSeen: "1.57.0"
401438
+ lastReleaseNotesSeen: "1.57.1"
401402
401439
  };
401403
401440
  }
401404
401441
  function _temp241(s_0) {
@@ -407651,7 +407688,7 @@ import {
407651
407688
  copyFileSync as copyFileSync2,
407652
407689
  existsSync as existsSync34,
407653
407690
  mkdirSync as mkdirSync22,
407654
- readFileSync as readFileSync34,
407691
+ readFileSync as readFileSync35,
407655
407692
  statSync as statSync14
407656
407693
  } from "fs";
407657
407694
  import { dirname as dirname64, isAbsolute as isAbsolute32, resolve as resolve51 } from "path";
@@ -407700,7 +407737,7 @@ function importSessionFile(sourcePath) {
407700
407737
  if (stat42.size > MAX_IMPORT_BYTES) {
407701
407738
  throw new Error(`Refusing to import ${stat42.size} bytes (limit ${MAX_IMPORT_BYTES})`);
407702
407739
  }
407703
- const validation = validateTranscriptContent(readFileSync34(source, "utf8"));
407740
+ const validation = validateTranscriptContent(readFileSync35(source, "utf8"));
407704
407741
  if (!validation.valid) {
407705
407742
  throw new Error(`Invalid session file:
407706
407743
  - ${validation.errors.join(`
@@ -408163,7 +408200,7 @@ var exports_memory_suggest = {};
408163
408200
  __export(exports_memory_suggest, {
408164
408201
  call: () => call34
408165
408202
  });
408166
- import { existsSync as existsSync36, readFileSync as readFileSync35 } from "fs";
408203
+ import { existsSync as existsSync36, readFileSync as readFileSync36 } from "fs";
408167
408204
  function flagValue2(tokens, flag) {
408168
408205
  const index2 = tokens.indexOf(flag);
408169
408206
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
@@ -408171,7 +408208,7 @@ function flagValue2(tokens, flag) {
408171
408208
  function recentUserMessages(path19, limit) {
408172
408209
  if (!existsSync36(path19))
408173
408210
  return [];
408174
- const raw = readFileSync35(path19, "utf8");
408211
+ const raw = readFileSync36(path19, "utf8");
408175
408212
  if (raw.length > MAX_TRANSCRIPT_READ_BYTES)
408176
408213
  return [];
408177
408214
  const messages = [];
@@ -416988,7 +417025,7 @@ var init_selfReview = __esm(() => {
416988
417025
  import {
416989
417026
  existsSync as existsSync40,
416990
417027
  mkdirSync as mkdirSync27,
416991
- readFileSync as readFileSync42,
417028
+ readFileSync as readFileSync43,
416992
417029
  readdirSync as readdirSync10,
416993
417030
  writeFileSync as writeFileSync26
416994
417031
  } from "fs";
@@ -417165,7 +417202,7 @@ function loadGuardrails(cwd2) {
417165
417202
  for (const file2 of readdirSync10(dir)) {
417166
417203
  if (!file2.endsWith(".json"))
417167
417204
  continue;
417168
- const parsed = safeParseJSON(readFileSync42(join156(dir, file2), "utf-8"), false);
417205
+ const parsed = safeParseJSON(readFileSync43(join156(dir, file2), "utf-8"), false);
417169
417206
  if (!parsed || typeof parsed !== "object")
417170
417207
  continue;
417171
417208
  const fileRules = Array.isArray(parsed) ? parsed : Array.isArray(parsed.rules) ? parsed.rules : [];
@@ -417252,7 +417289,7 @@ import {
417252
417289
  existsSync as existsSync41,
417253
417290
  mkdtempSync,
417254
417291
  mkdirSync as mkdirSync28,
417255
- readFileSync as readFileSync43,
417292
+ readFileSync as readFileSync44,
417256
417293
  rmSync as rmSync10,
417257
417294
  writeFileSync as writeFileSync27
417258
417295
  } from "fs";
@@ -417659,7 +417696,7 @@ function normalizeMentionEvent(root2, eventName) {
417659
417696
  return;
417660
417697
  }
417661
417698
  function loadAgenticCiEventFile(path22) {
417662
- const bytes = readFileSync43(path22);
417699
+ const bytes = readFileSync44(path22);
417663
417700
  if (bytes.byteLength > AGENTIC_CI_MAX_EVENT_BYTES) {
417664
417701
  throw new Error(`event payload exceeds ${AGENTIC_CI_MAX_EVENT_BYTES} bytes`);
417665
417702
  }
@@ -418173,7 +418210,7 @@ function loadAgenticCiSpec(cwd2, name) {
418173
418210
  const path22 = agenticCiSpecPath(cwd2, name);
418174
418211
  if (!existsSync41(path22))
418175
418212
  return null;
418176
- return parseAgenticCiSpec(readFileSync43(path22, "utf8"));
418213
+ return parseAgenticCiSpec(readFileSync44(path22, "utf8"));
418177
418214
  }
418178
418215
  function saveAgenticCiSpec(cwd2, spec, options2 = {}) {
418179
418216
  const validation = validateAgenticCiSpec(spec);
@@ -418196,7 +418233,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
418196
418233
  if (spec.name !== specName) {
418197
418234
  throw new Error("Agentic CI workflow spec name does not match");
418198
418235
  }
418199
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.57.0" : "1.57.0");
418236
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.57.1" : "1.57.1");
418200
418237
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
418201
418238
  throw new Error("invalid ur-agent package version");
418202
418239
  }
@@ -419189,7 +419226,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
419189
419226
  path: ".github/workflows/ur.yml",
419190
419227
  root: "project",
419191
419228
  content: compileAgenticCiWorkflow("default", {
419192
- packageVersion: typeof MACRO !== "undefined" ? "1.57.0" : "1.57.0"
419229
+ packageVersion: typeof MACRO !== "undefined" ? "1.57.1" : "1.57.1"
419193
419230
  })
419194
419231
  },
419195
419232
  {
@@ -419252,7 +419289,7 @@ function value(tokens, flag) {
419252
419289
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
419253
419290
  }
419254
419291
  function cliVersion() {
419255
- return typeof MACRO !== "undefined" ? "1.57.0" : "1.57.0";
419292
+ return typeof MACRO !== "undefined" ? "1.57.1" : "1.57.1";
419256
419293
  }
419257
419294
  function workflowPath(cwd2) {
419258
419295
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -424122,7 +424159,7 @@ import {
424122
424159
  mkdirSync as mkdirSync31,
424123
424160
  mkdtempSync as mkdtempSync2,
424124
424161
  readdirSync as readdirSync11,
424125
- readFileSync as readFileSync44,
424162
+ readFileSync as readFileSync45,
424126
424163
  renameSync as renameSync10,
424127
424164
  rmSync as rmSync11,
424128
424165
  statSync as statSync17,
@@ -424333,7 +424370,7 @@ function readPersistedSessionFile(sessionId, storeRoot) {
424333
424370
  if (size <= 0 || size > MAX_SESSION_METADATA_BYTES) {
424334
424371
  throw new Error("metadata size is invalid");
424335
424372
  }
424336
- return normalizePersistedSession(JSON.parse(readFileSync44(path22, "utf8")), sessionId);
424373
+ return normalizePersistedSession(JSON.parse(readFileSync45(path22, "utf8")), sessionId);
424337
424374
  }
424338
424375
  function persistAcpSession(sessionId, state, storeRoot) {
424339
424376
  const path22 = persistedSessionPath(sessionId, storeRoot);
@@ -424407,7 +424444,7 @@ function loadPersistedAcpHistory(sessionId, storeRoot) {
424407
424444
  if (size > MAX_SESSION_HISTORY_BYTES) {
424408
424445
  invalidParams2(`session history exceeds the supported size: ${sessionId}`);
424409
424446
  }
424410
- const lines = readFileSync44(path22, "utf8").split(`
424447
+ const lines = readFileSync45(path22, "utf8").split(`
424411
424448
  `).filter(Boolean);
424412
424449
  if (lines.length > MAX_SESSION_HISTORY_EVENTS) {
424413
424450
  invalidParams2(`session history has too many events: ${sessionId}`);
@@ -425108,7 +425145,7 @@ function createAcpStdioApp(deps) {
425108
425145
  }
425109
425146
  },
425110
425147
  authMethods: [],
425111
- agentInfo: { name: "UR-Nexus", version: "1.57.0" }
425148
+ agentInfo: { name: "UR-Nexus", version: "1.57.1" }
425112
425149
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
425113
425150
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
425114
425151
  await runtime2.announce({
@@ -425205,7 +425242,7 @@ function createAcpStdioAgent(deps) {
425205
425242
  }
425206
425243
  },
425207
425244
  authMethods: [],
425208
- agentInfo: { name: "UR-Nexus", version: "1.57.0" }
425245
+ agentInfo: { name: "UR-Nexus", version: "1.57.1" }
425209
425246
  });
425210
425247
  return;
425211
425248
  case "authenticate":
@@ -426194,7 +426231,7 @@ import {
426194
426231
  existsSync as existsSync46,
426195
426232
  mkdirSync as mkdirSync33,
426196
426233
  readdirSync as readdirSync12,
426197
- readFileSync as readFileSync46,
426234
+ readFileSync as readFileSync47,
426198
426235
  unlinkSync as unlinkSync9,
426199
426236
  writeFileSync as writeFileSync32
426200
426237
  } from "fs";
@@ -426244,7 +426281,7 @@ function listSpecs() {
426244
426281
  if (!existsSync46(dir))
426245
426282
  return [];
426246
426283
  return readdirSync12(dir).filter((file2) => file2.endsWith(".json")).map((file2) => {
426247
- const parsed = safeParseJSON(readFileSync46(join162(dir, file2), "utf-8"), false);
426284
+ const parsed = safeParseJSON(readFileSync47(join162(dir, file2), "utf-8"), false);
426248
426285
  return parsed && typeof parsed === "object" ? parsed : null;
426249
426286
  }).filter((spec) => spec !== null);
426250
426287
  }
@@ -426491,7 +426528,7 @@ Expected a 5-field cron expression with a next run in the next year.`
426491
426528
  if (!existsSync46(path22)) {
426492
426529
  return { type: "text", value: `Automation not found: ${sanitizeName2(name)}` };
426493
426530
  }
426494
- const raw = readFileSync46(path22, "utf-8");
426531
+ const raw = readFileSync47(path22, "utf-8");
426495
426532
  const parsed = safeParseJSON(raw, false);
426496
426533
  if (json2) {
426497
426534
  return {
@@ -426509,7 +426546,7 @@ Expected a 5-field cron expression with a next run in the next year.`
426509
426546
  if (!existsSync46(path22)) {
426510
426547
  return { type: "text", value: `Automation not found: ${sanitizeName2(name)}` };
426511
426548
  }
426512
- const parsed = safeParseJSON(readFileSync46(path22, "utf-8"), false);
426549
+ const parsed = safeParseJSON(readFileSync47(path22, "utf-8"), false);
426513
426550
  if (!parsed)
426514
426551
  return { type: "text", value: `Automation file is invalid: ${path22}` };
426515
426552
  const updated = { ...parsed, enabled: command5 === "enable" };
@@ -428102,7 +428139,7 @@ var exports_browser_qa = {};
428102
428139
  __export(exports_browser_qa, {
428103
428140
  call: () => call66
428104
428141
  });
428105
- import { existsSync as existsSync48, readdirSync as readdirSync14, readFileSync as readFileSync47 } from "fs";
428142
+ import { existsSync as existsSync48, readdirSync as readdirSync14, readFileSync as readFileSync48 } from "fs";
428106
428143
  import { join as join166 } from "path";
428107
428144
  function fixturesDir() {
428108
428145
  return join166(getCwd(), ".ur", "browser-qa");
@@ -428111,7 +428148,7 @@ function fixtures() {
428111
428148
  if (!existsSync48(fixturesDir()))
428112
428149
  return [];
428113
428150
  return readdirSync14(fixturesDir()).filter((file2) => file2.endsWith(".json")).map((file2) => {
428114
- const parsed = safeParseJSON(readFileSync47(join166(fixturesDir(), file2), "utf-8"), false);
428151
+ const parsed = safeParseJSON(readFileSync48(join166(fixturesDir(), file2), "utf-8"), false);
428115
428152
  return { file: file2, fixture: parsed && typeof parsed === "object" ? parsed : null };
428116
428153
  });
428117
428154
  }
@@ -428209,7 +428246,7 @@ var exports_claim_ledger = {};
428209
428246
  __export(exports_claim_ledger, {
428210
428247
  call: () => call67
428211
428248
  });
428212
- import { existsSync as existsSync49, mkdirSync as mkdirSync35, readFileSync as readFileSync48, writeFileSync as writeFileSync34 } from "fs";
428249
+ import { existsSync as existsSync49, mkdirSync as mkdirSync35, readFileSync as readFileSync49, writeFileSync as writeFileSync34 } from "fs";
428213
428250
  import { join as join167 } from "path";
428214
428251
  function ledgerPath2() {
428215
428252
  return join167(getCwd(), ".ur", "evidence", "claims.json");
@@ -428221,7 +428258,7 @@ function option8(tokens, name) {
428221
428258
  function loadLedger() {
428222
428259
  if (!existsSync49(ledgerPath2()))
428223
428260
  return { claims: [] };
428224
- const parsed = safeParseJSON(readFileSync48(ledgerPath2(), "utf-8"), false);
428261
+ const parsed = safeParseJSON(readFileSync49(ledgerPath2(), "utf-8"), false);
428225
428262
  return parsed && typeof parsed === "object" && Array.isArray(parsed.claims) ? parsed : { claims: [] };
428226
428263
  }
428227
428264
  function saveLedger(ledger) {
@@ -428316,7 +428353,7 @@ var init_claim_ledger2 = __esm(() => {
428316
428353
  import {
428317
428354
  existsSync as existsSync50,
428318
428355
  mkdirSync as mkdirSync36,
428319
- readFileSync as readFileSync49,
428356
+ readFileSync as readFileSync50,
428320
428357
  readdirSync as readdirSync15,
428321
428358
  writeFileSync as writeFileSync35
428322
428359
  } from "fs";
@@ -428506,7 +428543,7 @@ function loadWorkflow(cwd2, name) {
428506
428543
  const path22 = join168(workflowsDir(cwd2), `${slug3}.${ext}`);
428507
428544
  if (existsSync50(path22)) {
428508
428545
  try {
428509
- return parseWorkflowText(readFileSync49(path22, "utf-8"));
428546
+ return parseWorkflowText(readFileSync50(path22, "utf-8"));
428510
428547
  } catch {
428511
428548
  return null;
428512
428549
  }
@@ -428527,7 +428564,7 @@ function loadRunState(cwd2, name) {
428527
428564
  const path22 = statePath(cwd2, name);
428528
428565
  if (!existsSync50(path22))
428529
428566
  return null;
428530
- const parsed = safeParseJSON(readFileSync49(path22, "utf-8"), false);
428567
+ const parsed = safeParseJSON(readFileSync50(path22, "utf-8"), false);
428531
428568
  return parsed && typeof parsed === "object" ? parsed : null;
428532
428569
  }
428533
428570
  function markStepComplete(cwd2, name, stepId) {
@@ -430117,11 +430154,11 @@ var init_workflow2 = __esm(() => {
430117
430154
  });
430118
430155
 
430119
430156
  // src/skills/skillSpec.ts
430120
- import { existsSync as existsSync52, mkdirSync as mkdirSync38, readFileSync as readFileSync50, readdirSync as readdirSync16, writeFileSync as writeFileSync37 } from "fs";
430157
+ import { existsSync as existsSync52, mkdirSync as mkdirSync38, readFileSync as readFileSync51, readdirSync as readdirSync16, writeFileSync as writeFileSync37 } from "fs";
430121
430158
  import { join as join170 } from "path";
430122
430159
  function readTextFile(path22) {
430123
430160
  try {
430124
- return readFileSync50(path22, "utf-8");
430161
+ return readFileSync51(path22, "utf-8");
430125
430162
  } catch {
430126
430163
  return;
430127
430164
  }
@@ -430423,7 +430460,7 @@ import {
430423
430460
  existsSync as existsSync53,
430424
430461
  lstatSync as lstatSync13,
430425
430462
  mkdirSync as mkdirSync39,
430426
- readFileSync as readFileSync51,
430463
+ readFileSync as readFileSync52,
430427
430464
  renameSync as renameSync11,
430428
430465
  unlinkSync as unlinkSync10,
430429
430466
  writeFileSync as writeFileSync38
@@ -430493,7 +430530,7 @@ function readPrivateKey(path22) {
430493
430530
  if (process.platform !== "win32" && (stat42.mode & 63) !== 0) {
430494
430531
  throw new Error("Signing key permissions are too broad; use chmod 600");
430495
430532
  }
430496
- return readFileSync51(path22);
430533
+ return readFileSync52(path22);
430497
430534
  }
430498
430535
  function writeTrustedKeys(keys2) {
430499
430536
  const path22 = trustedSkillKeysPath();
@@ -430958,7 +430995,7 @@ var init_worktree2 = __esm(() => {
430958
430995
 
430959
430996
  // src/services/agents/auditExport.ts
430960
430997
  import { createHash as createHash38 } from "crypto";
430961
- import { existsSync as existsSync54, readFileSync as readFileSync52 } from "fs";
430998
+ import { existsSync as existsSync54, readFileSync as readFileSync53 } from "fs";
430962
430999
  import { join as join172 } from "path";
430963
431000
  function chainHash(prev, payload) {
430964
431001
  return createHash38("sha256").update(prev).update(JSON.stringify(payload)).digest("hex");
@@ -430967,7 +431004,7 @@ function readActionsLedger(cwd2) {
430967
431004
  const path22 = join172(cwd2, ".ur", "actions.jsonl");
430968
431005
  if (!existsSync54(path22))
430969
431006
  return [];
430970
- return readFileSync52(path22, "utf-8").split(`
431007
+ return readFileSync53(path22, "utf-8").split(`
430971
431008
  `).filter(Boolean).map((line) => safeParseJSON(line, false)).filter((v) => !!v && typeof v === "object");
430972
431009
  }
430973
431010
  function collectAuditRecords(cwd2) {
@@ -431035,7 +431072,7 @@ var exports_audit = {};
431035
431072
  __export(exports_audit, {
431036
431073
  call: () => call72
431037
431074
  });
431038
- import { readFileSync as readFileSync53, writeFileSync as writeFileSync39 } from "fs";
431075
+ import { readFileSync as readFileSync54, writeFileSync as writeFileSync39 } from "fs";
431039
431076
  async function call72(args) {
431040
431077
  const tokens = args.trim().split(/\s+/).filter(Boolean);
431041
431078
  const action3 = tokens[0] ?? "export";
@@ -431044,7 +431081,7 @@ async function call72(args) {
431044
431081
  if (!file2) {
431045
431082
  return { type: "text", value: "Usage: ur audit verify <export.jsonl>" };
431046
431083
  }
431047
- const records2 = readFileSync53(file2, "utf-8").split(`
431084
+ const records2 = readFileSync54(file2, "utf-8").split(`
431048
431085
  `).filter(Boolean).map((line) => safeParseJSON(line, false)).filter((v) => !!v && typeof v === "object");
431049
431086
  const ok = verifyAuditChain(records2);
431050
431087
  return {
@@ -431303,7 +431340,7 @@ var exports_recipe = {};
431303
431340
  __export(exports_recipe, {
431304
431341
  call: () => call74
431305
431342
  });
431306
- import { existsSync as existsSync57, mkdirSync as mkdirSync40, readdirSync as readdirSync18, readFileSync as readFileSync54, writeFileSync as writeFileSync40 } from "fs";
431343
+ import { existsSync as existsSync57, mkdirSync as mkdirSync40, readdirSync as readdirSync18, readFileSync as readFileSync55, writeFileSync as writeFileSync40 } from "fs";
431307
431344
  import { join as join174 } from "path";
431308
431345
  function recipesDir(cwd2) {
431309
431346
  return join174(cwd2, ".ur", "recipes");
@@ -431312,7 +431349,7 @@ function loadRecipe(cwd2, name) {
431312
431349
  const path22 = join174(recipesDir(cwd2), `${name}.json`);
431313
431350
  if (!existsSync57(path22))
431314
431351
  return null;
431315
- const parsed = safeParseJSON(readFileSync54(path22, "utf-8"), false);
431352
+ const parsed = safeParseJSON(readFileSync55(path22, "utf-8"), false);
431316
431353
  if (!parsed || typeof parsed !== "object")
431317
431354
  return null;
431318
431355
  const r = parsed;
@@ -432298,7 +432335,7 @@ import {
432298
432335
  lstatSync as lstatSync14,
432299
432336
  mkdirSync as mkdirSync42,
432300
432337
  openSync as openSync10,
432301
- readFileSync as readFileSync55,
432338
+ readFileSync as readFileSync56,
432302
432339
  renameSync as renameSync12,
432303
432340
  statSync as statSync19,
432304
432341
  unlinkSync as unlinkSync11,
@@ -432467,7 +432504,7 @@ function loadCloudManifest(cwd2) {
432467
432504
  if (manifestInfo.size > MAX_CLOUD_MANIFEST_BYTES) {
432468
432505
  throw new Error("Cloud manifest exceeds the 8 MiB limit");
432469
432506
  }
432470
- const parsed = safeParseJSON(readFileSync55(path22, "utf8"), false);
432507
+ const parsed = safeParseJSON(readFileSync56(path22, "utf8"), false);
432471
432508
  if (!parsed || parsed.version !== 1 && parsed.version !== 2 || !Array.isArray(parsed.tasks)) {
432472
432509
  throw new Error("Cloud manifest is invalid");
432473
432510
  }
@@ -432551,7 +432588,7 @@ function loadCloudResult(cwd2, id) {
432551
432588
  if (lstatSync14(path22).size > MAX_CLOUD_MANIFEST_BYTES) {
432552
432589
  throw new Error("Cloud result exceeds the 8 MiB limit");
432553
432590
  }
432554
- return safeParseJSON(readFileSync55(path22, "utf-8"), false);
432591
+ return safeParseJSON(readFileSync56(path22, "utf-8"), false);
432555
432592
  }
432556
432593
  function createCloudTask(cwd2, input) {
432557
432594
  const taskText = input.task.trim();
@@ -432709,7 +432746,7 @@ function readCloudLog(cwd2, id, maxBytes = 1e6) {
432709
432746
  assertSafeStateNode(join176(cwd2, ".ur"), "directory");
432710
432747
  assertSafeStateNode(cloudDir(cwd2), "directory");
432711
432748
  assertSafeStateNode(path22, "file");
432712
- const buffer = readFileSync55(path22);
432749
+ const buffer = readFileSync56(path22);
432713
432750
  const boundedMax = boundedInteger(maxBytes, 1e6, 1, MAX_CLOUD_LOG_BYTES);
432714
432751
  return buffer.subarray(Math.max(0, buffer.length - boundedMax)).toString("utf8");
432715
432752
  }
@@ -433548,7 +433585,7 @@ import {
433548
433585
  existsSync as existsSync60,
433549
433586
  mkdirSync as mkdirSync44,
433550
433587
  readdirSync as readdirSync19,
433551
- readFileSync as readFileSync56,
433588
+ readFileSync as readFileSync57,
433552
433589
  statSync as statSync20,
433553
433590
  writeFileSync as writeFileSync44
433554
433591
  } from "fs";
@@ -433617,7 +433654,7 @@ function loadRepoMapForPrompt(cwd2, maxBytes = 4000) {
433617
433654
  const age = Date.now() - statSync20(path22).mtimeMs;
433618
433655
  if (age > 7 * 24 * 3600 * 1000)
433619
433656
  return null;
433620
- const body = readFileSync56(path22, "utf-8");
433657
+ const body = readFileSync57(path22, "utf-8");
433621
433658
  return body.length <= maxBytes ? body : `${body.slice(0, maxBytes)}
433622
433659
  \u2026 [map truncated]`;
433623
433660
  } catch {
@@ -433635,7 +433672,7 @@ function generateWiki(cwd2) {
433635
433672
  const symbols = loadSymbolIndex(cwd2);
433636
433673
  const stamp = new Date().toISOString();
433637
433674
  const pages = [];
433638
- const pkg = existsSync60(join178(cwd2, "package.json")) ? safeParseJSON(readFileSync56(join178(cwd2, "package.json"), "utf-8"), false) : null;
433675
+ const pkg = existsSync60(join178(cwd2, "package.json")) ? safeParseJSON(readFileSync57(join178(cwd2, "package.json"), "utf-8"), false) : null;
433639
433676
  const indexMd = [
433640
433677
  `# ${pkg?.name ?? "Project"} wiki`,
433641
433678
  "",
@@ -433706,7 +433743,7 @@ function installPostMergeHook(cwd2) {
433706
433743
  const hookPath = join178(hooksDir, "post-merge");
433707
433744
  const marker = "# ur-wiki-refresh";
433708
433745
  const line = `ur wiki generate --quiet >/dev/null 2>&1 || true ${marker}`;
433709
- const existing2 = existsSync60(hookPath) ? readFileSync56(hookPath, "utf-8") : `#!/bin/sh
433746
+ const existing2 = existsSync60(hookPath) ? readFileSync57(hookPath, "utf-8") : `#!/bin/sh
433710
433747
  `;
433711
433748
  if (existing2.includes(marker))
433712
433749
  return hookPath;
@@ -433805,7 +433842,7 @@ var init_wiki2 = __esm(() => {
433805
433842
  });
433806
433843
 
433807
433844
  // src/services/agents/dashboardRoutes.ts
433808
- import { existsSync as existsSync62, readdirSync as readdirSync20, readFileSync as readFileSync57 } from "fs";
433845
+ import { existsSync as existsSync62, readdirSync as readdirSync20, readFileSync as readFileSync58 } from "fs";
433809
433846
  import { join as join180 } from "path";
433810
433847
  function esc2(s) {
433811
433848
  return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
@@ -433839,7 +433876,7 @@ async function handleDashboardRequest(cwd2, path22) {
433839
433876
  const threadMatch = path22.match(/^\/threads\/([\w.-]+)$/);
433840
433877
  if (threadMatch) {
433841
433878
  const file2 = join180(threadsDir(cwd2), `${threadMatch[1]}.html`);
433842
- return existsSync62(file2) ? { status: 200, type: "text/html", body: readFileSync57(file2, "utf-8") } : { status: 404, type: "text/plain", body: `Thread not found: ${threadMatch[1]}` };
433879
+ return existsSync62(file2) ? { status: 200, type: "text/html", body: readFileSync58(file2, "utf-8") } : { status: 404, type: "text/plain", body: `Thread not found: ${threadMatch[1]}` };
433843
433880
  }
433844
433881
  if (path22 !== "/dashboard" && path22 !== "/api/dashboard")
433845
433882
  return null;
@@ -433877,7 +433914,7 @@ var init_dashboardRoutes = __esm(() => {
433877
433914
  });
433878
433915
 
433879
433916
  // src/services/agents/artifactsServer.ts
433880
- import { createReadStream as createReadStream3, readFileSync as readFileSync58 } from "fs";
433917
+ import { createReadStream as createReadStream3, readFileSync as readFileSync59 } from "fs";
433881
433918
  import { createServer as createServer5 } from "http";
433882
433919
  import { createRequire as createRequire2 } from "module";
433883
433920
  function attachmentDelivery(mimeType) {
@@ -433891,7 +433928,7 @@ function loadAsset(path22) {
433891
433928
  const entry = ASSET_SPECS[path22];
433892
433929
  if (entry) {
433893
433930
  try {
433894
- content = readFileSync58(createRequire2(import.meta.url).resolve(entry.spec), "utf-8");
433931
+ content = readFileSync59(createRequire2(import.meta.url).resolve(entry.spec), "utf-8");
433895
433932
  } catch {
433896
433933
  content = null;
433897
433934
  }
@@ -434211,7 +434248,7 @@ var exports_thread = {};
434211
434248
  __export(exports_thread, {
434212
434249
  call: () => call77
434213
434250
  });
434214
- import { existsSync as existsSync63, mkdirSync as mkdirSync45, readdirSync as readdirSync21, readFileSync as readFileSync59, statSync as statSync22, writeFileSync as writeFileSync45 } from "fs";
434251
+ import { existsSync as existsSync63, mkdirSync as mkdirSync45, readdirSync as readdirSync21, readFileSync as readFileSync60, statSync as statSync22, writeFileSync as writeFileSync45 } from "fs";
434215
434252
  import { join as join181 } from "path";
434216
434253
  function esc3(s) {
434217
434254
  return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
@@ -434274,7 +434311,7 @@ var SESSION_ID_PATTERN, call77 = async (args) => {
434274
434311
  transcriptPath = candidates2.map((name) => join181(dir, name)).sort((a2, b) => statSync22(b).mtimeMs - statSync22(a2).mtimeMs)[0];
434275
434312
  }
434276
434313
  const id = sessionId ?? `latest-${Date.now().toString(36)}`;
434277
- const lines = readFileSync59(transcriptPath, "utf-8").split(`
434314
+ const lines = readFileSync60(transcriptPath, "utf-8").split(`
434278
434315
  `).filter(Boolean);
434279
434316
  mkdirSync45(threadsDir(cwd2), { recursive: true });
434280
434317
  const out = join181(threadsDir(cwd2), `${id}.html`);
@@ -434327,7 +434364,7 @@ var init_thread2 = __esm(() => {
434327
434364
  });
434328
434365
 
434329
434366
  // src/services/agents/inspector.ts
434330
- import { existsSync as existsSync64, readFileSync as readFileSync60 } from "fs";
434367
+ import { existsSync as existsSync64, readFileSync as readFileSync61 } from "fs";
434331
434368
  function preview3(value2, max2 = PREVIEW_CHARS) {
434332
434369
  const text = value2.replace(/\s+/g, " ").trim();
434333
434370
  if (text.length <= max2)
@@ -434432,7 +434469,7 @@ function loadTranscript(path22) {
434432
434469
  if (!existsSync64(path22)) {
434433
434470
  throw new Error(`Transcript not found: ${path22}`);
434434
434471
  }
434435
- const raw = readFileSync60(path22, "utf-8").trim();
434472
+ const raw = readFileSync61(path22, "utf-8").trim();
434436
434473
  if (!raw)
434437
434474
  return [];
434438
434475
  if (raw.startsWith("[")) {
@@ -434709,7 +434746,7 @@ var init_embeddings2 = __esm(() => {
434709
434746
  import {
434710
434747
  existsSync as existsSync65,
434711
434748
  mkdirSync as mkdirSync46,
434712
- readFileSync as readFileSync61,
434749
+ readFileSync as readFileSync62,
434713
434750
  readdirSync as readdirSync22,
434714
434751
  statSync as statSync23,
434715
434752
  writeFileSync as writeFileSync46
@@ -434731,7 +434768,7 @@ function loadSources(cwd2) {
434731
434768
  const path22 = sourcesPath(cwd2);
434732
434769
  if (!existsSync65(path22))
434733
434770
  return [];
434734
- const parsed = safeParseJSON(readFileSync61(path22, "utf-8"), false);
434771
+ const parsed = safeParseJSON(readFileSync62(path22, "utf-8"), false);
434735
434772
  return Array.isArray(parsed) ? parsed : [];
434736
434773
  }
434737
434774
  function saveSources(cwd2, sources) {
@@ -434818,7 +434855,7 @@ function chunkFile(cwd2, source, absPath) {
434818
434855
  return [];
434819
434856
  let content;
434820
434857
  try {
434821
- content = readFileSync61(absPath, "utf-8");
434858
+ content = readFileSync62(absPath, "utf-8");
434822
434859
  } catch {
434823
434860
  return [];
434824
434861
  }
@@ -434918,7 +434955,7 @@ function loadIndex2(cwd2) {
434918
434955
  const path22 = indexPath2(cwd2);
434919
434956
  if (!existsSync65(path22))
434920
434957
  return null;
434921
- const parsed = safeParseJSON(readFileSync61(path22, "utf-8"), false);
434958
+ const parsed = safeParseJSON(readFileSync62(path22, "utf-8"), false);
434922
434959
  return parsed && typeof parsed === "object" ? parsed : null;
434923
434960
  }
434924
434961
  async function searchKnowledge(cwd2, query2, options2 = {}) {
@@ -435147,7 +435184,7 @@ var init_knowledge3 = __esm(() => {
435147
435184
  });
435148
435185
 
435149
435186
  // src/services/agents/crew.ts
435150
- import { existsSync as existsSync66, mkdirSync as mkdirSync47, readdirSync as readdirSync23, readFileSync as readFileSync62, unlinkSync as unlinkSync12, writeFileSync as writeFileSync47 } from "fs";
435187
+ import { existsSync as existsSync66, mkdirSync as mkdirSync47, readdirSync as readdirSync23, readFileSync as readFileSync63, unlinkSync as unlinkSync12, writeFileSync as writeFileSync47 } from "fs";
435151
435188
  import { join as join183 } from "path";
435152
435189
  function crewDir(cwd2) {
435153
435190
  return join183(cwd2, ".ur", "crew");
@@ -435165,13 +435202,13 @@ function listCrews(cwd2) {
435165
435202
  const dir = crewDir(cwd2);
435166
435203
  if (!existsSync66(dir))
435167
435204
  return [];
435168
- return readdirSync23(dir).filter((file2) => file2.endsWith(".json")).map((file2) => safeParseJSON(readFileSync62(join183(dir, file2), "utf-8"), false)).filter(isCrewSpec);
435205
+ return readdirSync23(dir).filter((file2) => file2.endsWith(".json")).map((file2) => safeParseJSON(readFileSync63(join183(dir, file2), "utf-8"), false)).filter(isCrewSpec);
435169
435206
  }
435170
435207
  function loadCrew(cwd2, name) {
435171
435208
  const path22 = crewPath(cwd2, name);
435172
435209
  if (!existsSync66(path22))
435173
435210
  return null;
435174
- const parsed = safeParseJSON(readFileSync62(path22, "utf-8"), false);
435211
+ const parsed = safeParseJSON(readFileSync63(path22, "utf-8"), false);
435175
435212
  return isCrewSpec(parsed) ? parsed : null;
435176
435213
  }
435177
435214
  function saveCrew(cwd2, spec) {
@@ -435780,7 +435817,7 @@ var init_crew3 = __esm(() => {
435780
435817
  });
435781
435818
 
435782
435819
  // src/services/agents/goals.ts
435783
- import { existsSync as existsSync67, mkdirSync as mkdirSync48, readdirSync as readdirSync24, readFileSync as readFileSync63, unlinkSync as unlinkSync13, writeFileSync as writeFileSync48 } from "fs";
435820
+ import { existsSync as existsSync67, mkdirSync as mkdirSync48, readdirSync as readdirSync24, readFileSync as readFileSync64, unlinkSync as unlinkSync13, writeFileSync as writeFileSync48 } from "fs";
435784
435821
  import { join as join184 } from "path";
435785
435822
  function goalsDir(cwd2) {
435786
435823
  return join184(cwd2, ".ur", "goals");
@@ -435795,7 +435832,7 @@ function listGoals(cwd2) {
435795
435832
  const dir = goalsDir(cwd2);
435796
435833
  if (!existsSync67(dir))
435797
435834
  return [];
435798
- return readdirSync24(dir).filter((file2) => file2.endsWith(".json")).map((file2) => safeParseJSON(readFileSync63(join184(dir, file2), "utf-8"), false)).filter((spec) => isGoalSpec(spec)).sort((a2, b) => a2.updatedAt < b.updatedAt ? 1 : -1);
435835
+ return readdirSync24(dir).filter((file2) => file2.endsWith(".json")).map((file2) => safeParseJSON(readFileSync64(join184(dir, file2), "utf-8"), false)).filter((spec) => isGoalSpec(spec)).sort((a2, b) => a2.updatedAt < b.updatedAt ? 1 : -1);
435799
435836
  }
435800
435837
  function isGoalSpec(value2) {
435801
435838
  return !!value2 && typeof value2 === "object" && typeof value2.name === "string" && typeof value2.objective === "string";
@@ -435804,7 +435841,7 @@ function loadGoal(cwd2, name) {
435804
435841
  const path22 = goalPath(cwd2, name);
435805
435842
  if (!existsSync67(path22))
435806
435843
  return null;
435807
- const parsed = safeParseJSON(readFileSync63(path22, "utf-8"), false);
435844
+ const parsed = safeParseJSON(readFileSync64(path22, "utf-8"), false);
435808
435845
  return isGoalSpec(parsed) ? parsed : null;
435809
435846
  }
435810
435847
  function saveGoal(cwd2, spec) {
@@ -436123,7 +436160,7 @@ var init_verificationProofs = __esm(() => {
436123
436160
  });
436124
436161
 
436125
436162
  // src/services/agents/kernel.ts
436126
- import { existsSync as existsSync68, readFileSync as readFileSync64 } from "fs";
436163
+ import { existsSync as existsSync68, readFileSync as readFileSync65 } from "fs";
436127
436164
  import { join as join185 } from "path";
436128
436165
  function defaultGuard(skipPermissions) {
436129
436166
  return {
@@ -436144,7 +436181,7 @@ function defaultMemory(cwd2) {
436144
436181
  loadMemorySnippet: (scope, agentType) => {
436145
436182
  const base2 = scope === "project" ? join185(cwd2, ".ur", "memory") : join185(cwd2, ".ur", "memory");
436146
436183
  const path22 = join185(base2, `${agentType}.md`);
436147
- const legacy = existsSync68(path22) ? readFileSync64(path22, "utf-8") : "";
436184
+ const legacy = existsSync68(path22) ? readFileSync65(path22, "utf-8") : "";
436148
436185
  if (scope !== "project")
436149
436186
  return legacy || null;
436150
436187
  try {
@@ -436550,7 +436587,7 @@ import {
436550
436587
  existsSync as existsSync69,
436551
436588
  mkdirSync as mkdirSync49,
436552
436589
  readdirSync as readdirSync25,
436553
- readFileSync as readFileSync65,
436590
+ readFileSync as readFileSync66,
436554
436591
  rmSync as rmSync14,
436555
436592
  writeFileSync as writeFileSync49
436556
436593
  } from "fs";
@@ -436574,13 +436611,13 @@ function listSpecs2(cwd2) {
436574
436611
  const dir = specsDir(cwd2);
436575
436612
  if (!existsSync69(dir))
436576
436613
  return [];
436577
- return readdirSync25(dir).filter((entry) => existsSync69(join186(dir, entry, "spec.json"))).map((entry) => safeParseJSON(readFileSync65(join186(dir, entry, "spec.json"), "utf-8"), false)).filter((m) => !!m && typeof m === "object" && ("goal" in m));
436614
+ return readdirSync25(dir).filter((entry) => existsSync69(join186(dir, entry, "spec.json"))).map((entry) => safeParseJSON(readFileSync66(join186(dir, entry, "spec.json"), "utf-8"), false)).filter((m) => !!m && typeof m === "object" && ("goal" in m));
436578
436615
  }
436579
436616
  function loadSpec(cwd2, name) {
436580
436617
  const path22 = metaPath(cwd2, name);
436581
436618
  if (!existsSync69(path22))
436582
436619
  return null;
436583
- const parsed = safeParseJSON(readFileSync65(path22, "utf-8"), false);
436620
+ const parsed = safeParseJSON(readFileSync66(path22, "utf-8"), false);
436584
436621
  return parsed && typeof parsed === "object" ? parsed : null;
436585
436622
  }
436586
436623
  function saveMeta(cwd2, meta) {
@@ -436590,7 +436627,7 @@ function saveMeta(cwd2, meta) {
436590
436627
  }
436591
436628
  function readPhase(cwd2, name, phase) {
436592
436629
  const path22 = join186(specDir(cwd2, name), phaseFile(phase));
436593
- return existsSync69(path22) ? readFileSync65(path22, "utf-8") : null;
436630
+ return existsSync69(path22) ? readFileSync66(path22, "utf-8") : null;
436594
436631
  }
436595
436632
  function writePhase(cwd2, name, phase, body) {
436596
436633
  mkdirSync49(specDir(cwd2, name), { recursive: true });
@@ -436851,7 +436888,7 @@ var init_spec = __esm(() => {
436851
436888
  });
436852
436889
 
436853
436890
  // src/services/agents/specVerifier.ts
436854
- import { existsSync as existsSync70, mkdirSync as mkdirSync50, readFileSync as readFileSync66, writeFileSync as writeFileSync50 } from "fs";
436891
+ import { existsSync as existsSync70, mkdirSync as mkdirSync50, readFileSync as readFileSync67, writeFileSync as writeFileSync50 } from "fs";
436855
436892
  import { join as join187 } from "path";
436856
436893
  function recordPath(cwd2, name) {
436857
436894
  return join187(cwd2, ".ur", "specs", name, RECORD_FILE);
@@ -436863,7 +436900,7 @@ function loadVerificationRecord(cwd2, name) {
436863
436900
  const path22 = recordPath(cwd2, name);
436864
436901
  if (!existsSync70(path22))
436865
436902
  return null;
436866
- const parsed = safeParseJSON(readFileSync66(path22, "utf-8"), false);
436903
+ const parsed = safeParseJSON(readFileSync67(path22, "utf-8"), false);
436867
436904
  if (!parsed || typeof parsed !== "object")
436868
436905
  return null;
436869
436906
  return parsed;
@@ -437330,7 +437367,7 @@ var init_spec3 = __esm(() => {
437330
437367
  });
437331
437368
 
437332
437369
  // src/services/agents/escalation.ts
437333
- import { existsSync as existsSync71, mkdirSync as mkdirSync51, readFileSync as readFileSync67, writeFileSync as writeFileSync51 } from "fs";
437370
+ import { existsSync as existsSync71, mkdirSync as mkdirSync51, readFileSync as readFileSync68, writeFileSync as writeFileSync51 } from "fs";
437334
437371
  import { join as join188 } from "path";
437335
437372
  function scoreOracle(model) {
437336
437373
  let score = (model.contextLength ?? 0) / 1000;
@@ -437519,7 +437556,7 @@ function loadPolicy(cwd2) {
437519
437556
  const path22 = policyPath(cwd2);
437520
437557
  if (!existsSync71(path22))
437521
437558
  return {};
437522
- const parsed = safeParseJSON(readFileSync67(path22, "utf-8"), false);
437559
+ const parsed = safeParseJSON(readFileSync68(path22, "utf-8"), false);
437523
437560
  return parsed && typeof parsed === "object" ? parsed : {};
437524
437561
  }
437525
437562
  function savePolicy(cwd2, policy) {
@@ -438372,7 +438409,7 @@ var exports_guardrails = {};
438372
438409
  __export(exports_guardrails, {
438373
438410
  call: () => call87
438374
438411
  });
438375
- import { existsSync as existsSync73, readFileSync as readFileSync68 } from "fs";
438412
+ import { existsSync as existsSync73, readFileSync as readFileSync69 } from "fs";
438376
438413
  function optionValue5(tokens, flag) {
438377
438414
  const index2 = tokens.indexOf(flag);
438378
438415
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
@@ -438441,7 +438478,7 @@ var call87 = async (args) => {
438441
438478
  if (!existsSync73(filePath)) {
438442
438479
  return { type: "text", value: `File not found: ${filePath}` };
438443
438480
  }
438444
- text = readFileSync68(filePath, "utf-8");
438481
+ text = readFileSync69(filePath, "utf-8");
438445
438482
  } else {
438446
438483
  text = tokens.filter((token) => !token.startsWith("--") && token !== "check").join(" ");
438447
438484
  }
@@ -438479,7 +438516,7 @@ var init_guardrails3 = __esm(() => {
438479
438516
  });
438480
438517
 
438481
438518
  // src/services/agents/execTarget.ts
438482
- import { existsSync as existsSync74, mkdirSync as mkdirSync52, readFileSync as readFileSync69, writeFileSync as writeFileSync52 } from "fs";
438519
+ import { existsSync as existsSync74, mkdirSync as mkdirSync52, readFileSync as readFileSync70, writeFileSync as writeFileSync52 } from "fs";
438483
438520
  import { join as join190 } from "path";
438484
438521
  function isContainerized(config3) {
438485
438522
  return config3.kind !== "local";
@@ -438510,7 +438547,7 @@ function readDevcontainerImage(cwd2) {
438510
438547
  const path22 = join190(cwd2, ".devcontainer", "devcontainer.json");
438511
438548
  if (!existsSync74(path22))
438512
438549
  return;
438513
- const parsed = safeParseJSON(readFileSync69(path22, "utf-8"), false);
438550
+ const parsed = safeParseJSON(readFileSync70(path22, "utf-8"), false);
438514
438551
  if (parsed && typeof parsed === "object" && typeof parsed.image === "string") {
438515
438552
  return parsed.image;
438516
438553
  }
@@ -438529,7 +438566,7 @@ function resolveExecTarget(cwd2, env4 = process.env) {
438529
438566
  return { kind: "local" };
438530
438567
  const path22 = configPath(cwd2);
438531
438568
  if (existsSync74(path22)) {
438532
- const parsed = safeParseJSON(readFileSync69(path22, "utf-8"), false);
438569
+ const parsed = safeParseJSON(readFileSync70(path22, "utf-8"), false);
438533
438570
  if (parsed && typeof parsed === "object") {
438534
438571
  const config3 = parsed;
438535
438572
  if (config3.kind === "devcontainer" && !config3.image) {
@@ -439179,7 +439216,7 @@ var init_electronDesktopQaDriver = __esm(() => {
439179
439216
  import {
439180
439217
  existsSync as existsSync75,
439181
439218
  lstatSync as lstatSync16,
439182
- readFileSync as readFileSync70,
439219
+ readFileSync as readFileSync71,
439183
439220
  realpathSync as realpathSync13,
439184
439221
  readdirSync as readdirSync26,
439185
439222
  rmSync as rmSync15,
@@ -439246,7 +439283,7 @@ function loadDesktopQaFixture(path22) {
439246
439283
  }
439247
439284
  let input;
439248
439285
  try {
439249
- input = JSON.parse(readFileSync70(path22, "utf-8"));
439286
+ input = JSON.parse(readFileSync71(path22, "utf-8"));
439250
439287
  } catch (error40) {
439251
439288
  throw new Error(`Unable to parse desktop QA fixture: ${error40 instanceof Error ? error40.message : String(error40)}`);
439252
439289
  }
@@ -440432,7 +440469,7 @@ var exports_ci_loop = {};
440432
440469
  __export(exports_ci_loop, {
440433
440470
  call: () => call91
440434
440471
  });
440435
- import { existsSync as existsSync77, readFileSync as readFileSync71, statSync as statSync25 } from "fs";
440472
+ import { existsSync as existsSync77, readFileSync as readFileSync72, statSync as statSync25 } from "fs";
440436
440473
  import { resolve as resolve63 } from "path";
440437
440474
  function option17(tokens, name) {
440438
440475
  const index2 = tokens.indexOf(name);
@@ -440459,7 +440496,7 @@ var call91 = async (args) => {
440459
440496
  if (!existsSync77(logPath2)) {
440460
440497
  return { type: "text", value: `Log file not found: ${logPath2}` };
440461
440498
  }
440462
- seedError = readFileSync71(logPath2, "utf-8");
440499
+ seedError = readFileSync72(logPath2, "utf-8");
440463
440500
  }
440464
440501
  const target = resolveExecTarget(cwd2);
440465
440502
  const result = await runCiLoop({
@@ -440504,7 +440541,7 @@ var init_ci_loop2 = __esm(() => {
440504
440541
  // src/services/agents/testFirstLoop.ts
440505
440542
  import {
440506
440543
  mkdirSync as mkdirSync55,
440507
- readFileSync as readFileSync72,
440544
+ readFileSync as readFileSync73,
440508
440545
  writeFileSync as writeFileSync55
440509
440546
  } from "fs";
440510
440547
  import { dirname as dirname73, join as join194, relative as relative45 } from "path";
@@ -440541,7 +440578,7 @@ function writeFailureTrace(cwd2, traceDir, run3, result, now8) {
440541
440578
  }
440542
440579
  function readExistingVerifyConfig(path22) {
440543
440580
  try {
440544
- const parsed = JSON.parse(readFileSync72(path22, "utf8"));
440581
+ const parsed = JSON.parse(readFileSync73(path22, "utf8"));
440545
440582
  return parsed && typeof parsed === "object" ? parsed : {};
440546
440583
  } catch {
440547
440584
  return {};
@@ -441657,7 +441694,7 @@ var exports_trigger = {};
441657
441694
  __export(exports_trigger, {
441658
441695
  call: () => call96
441659
441696
  });
441660
- import { existsSync as existsSync78, readFileSync as readFileSync73 } from "fs";
441697
+ import { existsSync as existsSync78, readFileSync as readFileSync74 } from "fs";
441661
441698
  function option22(tokens, name) {
441662
441699
  const index2 = tokens.indexOf(name);
441663
441700
  if (index2 === -1)
@@ -441696,7 +441733,7 @@ ${usage22()}` };
441696
441733
  if (!existsSync78(file2)) {
441697
441734
  return { type: "text", value: `Payload file not found: ${file2}` };
441698
441735
  }
441699
- const payload = safeParseJSON(readFileSync73(file2, "utf-8"), false);
441736
+ const payload = safeParseJSON(readFileSync74(file2, "utf-8"), false);
441700
441737
  if (payload === null || typeof payload !== "object") {
441701
441738
  return { type: "text", value: `Payload is not valid JSON: ${file2}` };
441702
441739
  }
@@ -442188,7 +442225,7 @@ __export(exports_evals, {
442188
442225
  import {
442189
442226
  existsSync as existsSync80,
442190
442227
  mkdirSync as mkdirSync57,
442191
- readFileSync as readFileSync74,
442228
+ readFileSync as readFileSync75,
442192
442229
  readdirSync as readdirSync28,
442193
442230
  rmSync as rmSync16,
442194
442231
  writeFileSync as writeFileSync57
@@ -442670,7 +442707,7 @@ function readChildMetricsFile(path22) {
442670
442707
  if (!existsSync80(path22))
442671
442708
  return;
442672
442709
  try {
442673
- const parsed = safeParseJSON(readFileSync74(path22, "utf-8"), false);
442710
+ const parsed = safeParseJSON(readFileSync75(path22, "utf-8"), false);
442674
442711
  if (parsed && typeof parsed === "object")
442675
442712
  return parsed;
442676
442713
  } catch {}
@@ -443064,7 +443101,7 @@ function loadAllReports(cwd2) {
443064
443101
  for (const file2 of readdirSync28(dir)) {
443065
443102
  if (!file2.endsWith(".json") || file2.startsWith("reliability-"))
443066
443103
  continue;
443067
- const parsed = safeParseJSON(readFileSync74(join196(dir, file2), "utf-8"), false);
443104
+ const parsed = safeParseJSON(readFileSync75(join196(dir, file2), "utf-8"), false);
443068
443105
  if (parsed && typeof parsed === "object")
443069
443106
  reports.push(parsed);
443070
443107
  }
@@ -443078,7 +443115,7 @@ function loadAllReliability(cwd2) {
443078
443115
  for (const file2 of readdirSync28(dir)) {
443079
443116
  if (!file2.startsWith("reliability-") || !file2.endsWith(".json"))
443080
443117
  continue;
443081
- const parsed = safeParseJSON(readFileSync74(join196(dir, file2), "utf-8"), false);
443118
+ const parsed = safeParseJSON(readFileSync75(join196(dir, file2), "utf-8"), false);
443082
443119
  if (parsed && typeof parsed === "object")
443083
443120
  reports.push(parsed);
443084
443121
  }
@@ -443163,7 +443200,7 @@ function loadRunMetrics(cwd2, suiteName, caseId) {
443163
443200
  const path22 = join196(runsDir(cwd2, suiteName), `${caseId}.json`);
443164
443201
  if (!existsSync80(path22))
443165
443202
  return null;
443166
- const parsed = safeParseJSON(readFileSync74(path22, "utf-8"), false);
443203
+ const parsed = safeParseJSON(readFileSync75(path22, "utf-8"), false);
443167
443204
  if (!parsed || typeof parsed !== "object")
443168
443205
  return null;
443169
443206
  return parsed;
@@ -443228,7 +443265,7 @@ function loadSuite(cwd2, name) {
443228
443265
  if (!existsSync80(path22))
443229
443266
  return null;
443230
443267
  try {
443231
- return parseSuiteText(readFileSync74(path22, "utf-8"));
443268
+ return parseSuiteText(readFileSync75(path22, "utf-8"));
443232
443269
  } catch {
443233
443270
  return null;
443234
443271
  }
@@ -443386,7 +443423,7 @@ function buildBenchmarkSuite(adapter2, records, options3 = {}) {
443386
443423
  };
443387
443424
  }
443388
443425
  function importBenchmarkSuite(cwd2, adapter2, file2, options3 = {}) {
443389
- const records = parseBenchmarkRecords(readFileSync74(file2, "utf-8"));
443426
+ const records = parseBenchmarkRecords(readFileSync75(file2, "utf-8"));
443390
443427
  if (records.length === 0) {
443391
443428
  throw new Error(`No benchmark records found in ${file2}`);
443392
443429
  }
@@ -443412,7 +443449,7 @@ function loadReport(cwd2, name) {
443412
443449
  const path22 = join196(resultsDir(cwd2), `${suiteSlug(name)}.json`);
443413
443450
  if (!existsSync80(path22))
443414
443451
  return null;
443415
- const parsed = safeParseJSON(readFileSync74(path22, "utf-8"), false);
443452
+ const parsed = safeParseJSON(readFileSync75(path22, "utf-8"), false);
443416
443453
  return parsed && typeof parsed === "object" ? parsed : null;
443417
443454
  }
443418
443455
  function defaultEvalSuite() {
@@ -444458,7 +444495,7 @@ var init_dna2 = __esm(() => {
444458
444495
  });
444459
444496
 
444460
444497
  // src/services/agents/prSummary.ts
444461
- import { existsSync as existsSync81, readFileSync as readFileSync75 } from "fs";
444498
+ import { existsSync as existsSync81, readFileSync as readFileSync76 } from "fs";
444462
444499
  async function git5(cwd2, args) {
444463
444500
  return execFileNoThrowWithCwd(gitExe(), args, { cwd: cwd2, timeout: 30000, preserveOutputOnError: true });
444464
444501
  }
@@ -444498,7 +444535,7 @@ function detectTests(cwd2) {
444498
444535
  const pkgPath = `${cwd2}/package.json`;
444499
444536
  if (existsSync81(pkgPath)) {
444500
444537
  try {
444501
- const pkg = JSON.parse(readFileSync75(pkgPath, "utf-8"));
444538
+ const pkg = JSON.parse(readFileSync76(pkgPath, "utf-8"));
444502
444539
  for (const name of Object.keys(pkg.scripts ?? {})) {
444503
444540
  if (/^(test|t|check|lint|typecheck|ci)$/.test(name) || /^(test|check|lint):/.test(name)) {
444504
444541
  tests.push(`bun run ${name}`);
@@ -445984,7 +446021,7 @@ var init_remember2 = __esm(() => {
445984
446021
  import {
445985
446022
  existsSync as existsSync83,
445986
446023
  mkdirSync as mkdirSync59,
445987
- readFileSync as readFileSync76,
446024
+ readFileSync as readFileSync77,
445988
446025
  readdirSync as readdirSync29,
445989
446026
  writeFileSync as writeFileSync59
445990
446027
  } from "fs";
@@ -446002,7 +446039,7 @@ function loadMemoryRetentionPolicy(cwd2) {
446002
446039
  const path22 = policyPath2(cwd2);
446003
446040
  if (!existsSync83(path22))
446004
446041
  return defaultMemoryRetentionPolicy();
446005
- const parsed = safeParseJSON(readFileSync76(path22, "utf-8"), false);
446042
+ const parsed = safeParseJSON(readFileSync77(path22, "utf-8"), false);
446006
446043
  if (!parsed || typeof parsed !== "object")
446007
446044
  return defaultMemoryRetentionPolicy();
446008
446045
  const p2 = parsed;
@@ -446043,7 +446080,7 @@ function readJsonl2(file2) {
446043
446080
  if (!existsSync83(file2))
446044
446081
  return [];
446045
446082
  const records = [];
446046
- for (const line of readFileSync76(file2, "utf-8").split(`
446083
+ for (const line of readFileSync77(file2, "utf-8").split(`
446047
446084
  `)) {
446048
446085
  if (!line.trim())
446049
446086
  continue;
@@ -446205,7 +446242,7 @@ var exports_semantic_memory = {};
446205
446242
  __export(exports_semantic_memory, {
446206
446243
  call: () => call106
446207
446244
  });
446208
- import { existsSync as existsSync84, mkdirSync as mkdirSync60, readdirSync as readdirSync30, readFileSync as readFileSync77, statSync as statSync26, writeFileSync as writeFileSync60 } from "fs";
446245
+ import { existsSync as existsSync84, mkdirSync as mkdirSync60, readdirSync as readdirSync30, readFileSync as readFileSync78, statSync as statSync26, writeFileSync as writeFileSync60 } from "fs";
446209
446246
  import { basename as basename48, join as join201 } from "path";
446210
446247
  function indexPath3() {
446211
446248
  return join201(getCwd(), ".ur", "semantic-memory", "index", "index.json");
@@ -446242,7 +446279,7 @@ function chunkText2(source, text) {
446242
446279
  }));
446243
446280
  }
446244
446281
  function buildIndex2() {
446245
- const entries = sourceFiles().flatMap((file2) => chunkText2(file2, readFileSync77(file2, "utf-8")));
446282
+ const entries = sourceFiles().flatMap((file2) => chunkText2(file2, readFileSync78(file2, "utf-8")));
446246
446283
  const index2 = {
446247
446284
  version: 1,
446248
446285
  mode: "lexical",
@@ -446257,7 +446294,7 @@ function buildIndex2() {
446257
446294
  function loadIndex3() {
446258
446295
  if (!existsSync84(indexPath3()))
446259
446296
  return null;
446260
- const parsed = safeParseJSON(readFileSync77(indexPath3(), "utf-8"), false);
446297
+ const parsed = safeParseJSON(readFileSync78(indexPath3(), "utf-8"), false);
446261
446298
  return parsed && typeof parsed === "object" ? parsed : null;
446262
446299
  }
446263
446300
  function searchIndex(index2, query2) {
@@ -615596,7 +615633,7 @@ import { exec as exec8 } from "child_process";
615596
615633
  import {
615597
615634
  existsSync as existsSync85,
615598
615635
  mkdirSync as mkdirSync61,
615599
- readFileSync as readFileSync78,
615636
+ readFileSync as readFileSync79,
615600
615637
  readdirSync as readdirSync31,
615601
615638
  statSync as statSync27,
615602
615639
  writeFileSync as writeFileSync61
@@ -615719,7 +615756,7 @@ function buildRepoEditIndex(root2) {
615719
615756
  let content = "";
615720
615757
  if (text && stat42.size <= 1e6) {
615721
615758
  try {
615722
- content = readFileSync78(abs, "utf-8");
615759
+ content = readFileSync79(abs, "utf-8");
615723
615760
  } catch {
615724
615761
  content = "";
615725
615762
  }
@@ -615750,7 +615787,7 @@ function loadRepoEditIndex(root2) {
615750
615787
  const path22 = repoEditIndexPath(root2);
615751
615788
  if (!existsSync85(path22))
615752
615789
  return null;
615753
- const parsed = safeParseJSON(readFileSync78(path22, "utf-8"), false);
615790
+ const parsed = safeParseJSON(readFileSync79(path22, "utf-8"), false);
615754
615791
  return parsed && typeof parsed === "object" ? parsed : null;
615755
615792
  }
615756
615793
  function searchRepoEditIndex(root2, query2, index2 = loadRepoEditIndex(root2) ?? buildRepoEditIndex(root2)) {
@@ -615776,7 +615813,7 @@ function searchRepoEditIndex(root2, query2, index2 = loadRepoEditIndex(root2) ??
615776
615813
  const lines = [];
615777
615814
  if (file2.text && score > 0) {
615778
615815
  try {
615779
- const content = readFileSync78(join202(root2, file2.path), "utf-8");
615816
+ const content = readFileSync79(join202(root2, file2.path), "utf-8");
615780
615817
  const split = content.split(`
615781
615818
  `);
615782
615819
  for (let i3 = 0;i3 < split.length && lines.length < 4; i3++) {
@@ -615833,7 +615870,7 @@ function planRename(root2, from, to) {
615833
615870
  const abs = join202(root2, file2);
615834
615871
  let oldContent;
615835
615872
  try {
615836
- oldContent = readFileSync78(abs, "utf-8");
615873
+ oldContent = readFileSync79(abs, "utf-8");
615837
615874
  } catch {
615838
615875
  return [];
615839
615876
  }
@@ -616423,7 +616460,7 @@ import {
616423
616460
  chmodSync as chmodSync11,
616424
616461
  existsSync as existsSync86,
616425
616462
  mkdirSync as mkdirSync62,
616426
- readFileSync as readFileSync79,
616463
+ readFileSync as readFileSync80,
616427
616464
  realpathSync as realpathSync16,
616428
616465
  renameSync as renameSync14,
616429
616466
  rmSync as rmSync18,
@@ -616523,7 +616560,7 @@ function applyWorkspaceEdit(root2, edit2) {
616523
616560
  const edits = normalizeFileEdits(file2, rawEdits);
616524
616561
  const abs = resolveWorkspaceFile(root2, file2);
616525
616562
  const existed = existsSync86(abs);
616526
- const oldContent = existed ? readFileSync79(abs, "utf-8") : "";
616563
+ const oldContent = existed ? readFileSync80(abs, "utf-8") : "";
616527
616564
  const mode = existed ? statSync28(abs).mode : undefined;
616528
616565
  const newContent = applyFileEdits(oldContent, edits);
616529
616566
  snapshots.set(file2, { content: oldContent, existed, mode });
@@ -616566,7 +616603,7 @@ function formatWorkspaceEditAsPatch(root2, edit2) {
616566
616603
  for (const [file2] of byFile) {
616567
616604
  const safeFile = workspaceRelativePath(root2, file2);
616568
616605
  const abs = resolveWorkspaceFile(root2, safeFile);
616569
- const oldContent = existsSync86(abs) ? readFileSync79(abs, "utf-8") : "";
616606
+ const oldContent = existsSync86(abs) ? readFileSync80(abs, "utf-8") : "";
616570
616607
  const sorted = [...byFile.get(file2) ?? []].sort((a2, b) => b.start - a2.start);
616571
616608
  const newContent = applyFileEdits(oldContent, sorted);
616572
616609
  pieces.push(createTwoFilesPatch(`a/${file2}`, `b/${file2}`, oldContent, newContent, undefined, undefined, { context: 3 }));
@@ -616582,7 +616619,7 @@ function workspaceEditFromLsp(root2, lspEdit) {
616582
616619
  const changes = "changes" in lspEdit && lspEdit.changes && typeof lspEdit.changes === "object" ? lspEdit.changes : {};
616583
616620
  for (const [uri, textEdits] of Object.entries(changes)) {
616584
616621
  const abs = uriToAbsolutePath(root2, uri);
616585
- const content = readFileSync79(abs, "utf-8");
616622
+ const content = readFileSync80(abs, "utf-8");
616586
616623
  const file2 = absoluteToRelative(root2, abs);
616587
616624
  for (const raw of Array.isArray(textEdits) ? textEdits : []) {
616588
616625
  const converted = lspTextEditToEdit(file2, content, raw);
@@ -616597,7 +616634,7 @@ function workspaceEditFromLsp(root2, lspEdit) {
616597
616634
  if (!uri)
616598
616635
  continue;
616599
616636
  const abs = uriToAbsolutePath(root2, uri);
616600
- const content = readFileSync79(abs, "utf-8");
616637
+ const content = readFileSync80(abs, "utf-8");
616601
616638
  const file2 = absoluteToRelative(root2, abs);
616602
616639
  const textEdits = "edits" in change && Array.isArray(change.edits) ? change.edits : [];
616603
616640
  for (const raw of textEdits) {
@@ -616662,7 +616699,7 @@ var init_workspaceEdit = __esm(() => {
616662
616699
  });
616663
616700
 
616664
616701
  // src/services/repoEditing/ast/lspEditEngine.ts
616665
- import { readFileSync as readFileSync80 } from "fs";
616702
+ import { readFileSync as readFileSync81 } from "fs";
616666
616703
  import { pathToFileURL as pathToFileURL8 } from "url";
616667
616704
  async function getManager() {
616668
616705
  if (!manager) {
@@ -616680,7 +616717,7 @@ async function shutdownLspManager() {
616680
616717
  async function lspRename(root2, file2, line, column, newName) {
616681
616718
  const mgr = await getManager();
616682
616719
  const abs = resolveWorkspaceFile(root2, file2);
616683
- const content = readFileSync80(abs, "utf-8");
616720
+ const content = readFileSync81(abs, "utf-8");
616684
616721
  await mgr.openFile(abs, content);
616685
616722
  const prepare = await mgr.sendRequest(abs, "textDocument/prepareRename", {
616686
616723
  textDocument: { uri: pathToFileURL8(abs).href },
@@ -616705,7 +616742,7 @@ var init_lspEditEngine = __esm(() => {
616705
616742
 
616706
616743
  // src/services/repoEditing/ast/typescriptEngine.ts
616707
616744
  import { dirname as dirname78, join as join204, relative as relative50 } from "path";
616708
- import { existsSync as existsSync87, readFileSync as readFileSync81 } from "fs";
616745
+ import { existsSync as existsSync87, readFileSync as readFileSync82 } from "fs";
616709
616746
  function loadProgram(root2, files) {
616710
616747
  const configPath2 = import_typescript3.default.findConfigFile(root2, import_typescript3.default.sys.fileExists, "tsconfig.json");
616711
616748
  let program;
@@ -616808,7 +616845,7 @@ function addOldText(root2, edits) {
616808
616845
  let content = contentByFile.get(edit2.file);
616809
616846
  if (content === undefined) {
616810
616847
  const abs = resolveWorkspaceFile(root2, edit2.file);
616811
- content = existsSync87(abs) ? readFileSync81(abs, "utf-8") : "";
616848
+ content = existsSync87(abs) ? readFileSync82(abs, "utf-8") : "";
616812
616849
  contentByFile.set(edit2.file, content);
616813
616850
  }
616814
616851
  return { ...edit2, oldText: content.slice(edit2.start, edit2.end) };
@@ -617023,7 +617060,7 @@ function tsOrganizeImports(ctx, options4) {
617023
617060
  });
617024
617061
  for (const file2 of files) {
617025
617062
  const abs = resolveWorkspaceFile(root2, file2);
617026
- const content = readFileSync81(abs, "utf-8");
617063
+ const content = readFileSync82(abs, "utf-8");
617027
617064
  const changes = service.organizeImports({ type: "file", fileName: abs, mode: import_typescript3.default.OrganizeImportsMode.SortAndCombine }, {}, { organizeImportsIgnoreCase: "auto" });
617028
617065
  for (const change of changes) {
617029
617066
  const safeFile = workspaceRelativePath(root2, change.fileName);
@@ -617138,7 +617175,7 @@ var init_typescriptEngine = __esm(() => {
617138
617175
  });
617139
617176
 
617140
617177
  // src/services/repoEditing/ast/treeSitterEngine.ts
617141
- import { readFileSync as readFileSync82 } from "fs";
617178
+ import { readFileSync as readFileSync83 } from "fs";
617142
617179
  function tryLoadNativeParser(language) {
617143
617180
  try {
617144
617181
  const Parser2 = __require(`@tree-sitter/${language}`);
@@ -617190,7 +617227,7 @@ function treeSitterRename(options4, language) {
617190
617227
  const adapter2 = getAdapter3(language);
617191
617228
  for (const file2 of files) {
617192
617229
  const abs = file2.startsWith("/") ? file2 : `${root2}/${file2}`;
617193
- const content = readFileSync82(abs, "utf-8");
617230
+ const content = readFileSync83(abs, "utf-8");
617194
617231
  const tree = adapter2.parse(file2, content);
617195
617232
  const identifiers = collectIdentifiers(tree, from, adapter2);
617196
617233
  for (const node of identifiers) {
@@ -617984,7 +618021,7 @@ var init_cite2 = __esm(() => {
617984
618021
  });
617985
618022
 
617986
618023
  // src/ur/fileops.ts
617987
- import { existsSync as existsSync89, mkdirSync as mkdirSync63, readdirSync as readdirSync32, readFileSync as readFileSync83, statSync as statSync29, writeFileSync as writeFileSync63 } from "fs";
618024
+ import { existsSync as existsSync89, mkdirSync as mkdirSync63, readdirSync as readdirSync32, readFileSync as readFileSync84, statSync as statSync29, writeFileSync as writeFileSync63 } from "fs";
617988
618025
  import { extname as extname21, isAbsolute as isAbsolute46, join as join205, relative as relative51, resolve as resolve67 } from "path";
617989
618026
  function readFileSafe2(cwd2, target, maxBytes = 64000) {
617990
618027
  const abs = isAbsolute46(target) ? target : resolve67(cwd2, target);
@@ -617996,7 +618033,7 @@ function readFileSafe2(cwd2, target, maxBytes = 64000) {
617996
618033
  if (!isTextLike(abs))
617997
618034
  return { ok: false, error: `not a text file (${extname21(abs) || "no ext"}). For images use /image, for video /video, for PDFs/docs ask UR to read it.` };
617998
618035
  try {
617999
- let content = readFileSync83(abs, "utf8");
618036
+ let content = readFileSync84(abs, "utf8");
618000
618037
  if (content.length > maxBytes)
618001
618038
  content = content.slice(0, maxBytes) + `
618002
618039
  \u2026 [truncated at ${maxBytes} bytes]`;
@@ -618038,7 +618075,7 @@ function searchFiles(cwd2, query2, maxResults = 60) {
618038
618075
  continue;
618039
618076
  let lines;
618040
618077
  try {
618041
- lines = readFileSync83(join205(cwd2, rel), "utf8").split(`
618078
+ lines = readFileSync84(join205(cwd2, rel), "utf8").split(`
618042
618079
  `);
618043
618080
  } catch {
618044
618081
  continue;
@@ -618482,13 +618519,13 @@ var exports_mode = {};
618482
618519
  __export(exports_mode, {
618483
618520
  call: () => call122
618484
618521
  });
618485
- import { existsSync as existsSync92, mkdirSync as mkdirSync64, readFileSync as readFileSync84, writeFileSync as writeFileSync64 } from "fs";
618522
+ import { existsSync as existsSync92, mkdirSync as mkdirSync64, readFileSync as readFileSync85, writeFileSync as writeFileSync64 } from "fs";
618486
618523
  import { join as join206 } from "path";
618487
618524
  var MODES2, SECURITY_MODES2, file2 = (cwd2) => join206(cwd2, ".ur", "mode"), call122 = async (args) => {
618488
618525
  const want = (args ?? "").trim().toLowerCase();
618489
618526
  const f = file2(getCwd());
618490
618527
  if (!want) {
618491
- const cur = existsSync92(f) ? readFileSync84(f, "utf8").trim() : "code";
618528
+ const cur = existsSync92(f) ? readFileSync85(f, "utf8").trim() : "code";
618492
618529
  return { type: "text", value: `mode: ${cur}
618493
618530
  available: ${MODES2.join(", ")}
618494
618531
  security: ${SECURITY_MODES2.join(", ")}` };
@@ -618736,7 +618773,7 @@ var init_role_mode2 = __esm(() => {
618736
618773
  });
618737
618774
 
618738
618775
  // src/ur/researchGraph.ts
618739
- import { appendFileSync as appendFileSync8, existsSync as existsSync94, mkdirSync as mkdirSync66, readFileSync as readFileSync85 } from "fs";
618776
+ import { appendFileSync as appendFileSync8, existsSync as existsSync94, mkdirSync as mkdirSync66, readFileSync as readFileSync86 } from "fs";
618740
618777
  import { dirname as dirname79, join as join208 } from "path";
618741
618778
  function isEntity(s) {
618742
618779
  return ENTITIES.includes(s);
@@ -618754,7 +618791,7 @@ function listEntity(cwd2, entity) {
618754
618791
  if (!existsSync94(f))
618755
618792
  return [];
618756
618793
  const out = [];
618757
- for (const line of readFileSync85(f, "utf8").split(`
618794
+ for (const line of readFileSync86(f, "utf8").split(`
618758
618795
  `).filter(Boolean)) {
618759
618796
  try {
618760
618797
  out.push(JSON.parse(line));
@@ -632572,7 +632609,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
632572
632609
  smapsRollup,
632573
632610
  platform: process.platform,
632574
632611
  nodeVersion: process.version,
632575
- ccVersion: "1.57.0"
632612
+ ccVersion: "1.57.1"
632576
632613
  };
632577
632614
  }
632578
632615
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -633152,7 +633189,7 @@ var init_bridge_kick = __esm(() => {
633152
633189
  var call149 = async () => {
633153
633190
  return {
633154
633191
  type: "text",
633155
- value: "1.57.0"
633192
+ value: "1.57.1"
633156
633193
  };
633157
633194
  }, version2, version_default;
633158
633195
  var init_version = __esm(() => {
@@ -644223,7 +644260,7 @@ function generateHtmlReport(data, insights) {
644223
644260
  </html>`;
644224
644261
  }
644225
644262
  function buildExportData(data, insights, facets, remoteStats) {
644226
- const version3 = typeof MACRO !== "undefined" ? "1.57.0" : "unknown";
644263
+ const version3 = typeof MACRO !== "undefined" ? "1.57.1" : "unknown";
644227
644264
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
644228
644265
  const facets_summary = {
644229
644266
  total: facets.size,
@@ -648526,7 +648563,7 @@ var init_sessionStorage = __esm(() => {
648526
648563
  init_settings2();
648527
648564
  init_slowOperations();
648528
648565
  init_uuid();
648529
- VERSION7 = typeof MACRO !== "undefined" ? "1.57.0" : "unknown";
648566
+ VERSION7 = typeof MACRO !== "undefined" ? "1.57.1" : "unknown";
648530
648567
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
648531
648568
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
648532
648569
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -649741,7 +649778,7 @@ var init_filesystem = __esm(() => {
649741
649778
  });
649742
649779
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
649743
649780
  const nonce = randomBytes20(16).toString("hex");
649744
- return join227(getURTempDir(), "bundled-skills", "1.57.0", nonce);
649781
+ return join227(getURTempDir(), "bundled-skills", "1.57.1", nonce);
649745
649782
  });
649746
649783
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
649747
649784
  });
@@ -656036,7 +656073,7 @@ function computeFingerprint(messageText2, version3) {
656036
656073
  }
656037
656074
  function computeFingerprintFromMessages(messages) {
656038
656075
  const firstMessageText = extractFirstMessageText(messages);
656039
- return computeFingerprint(firstMessageText, "1.57.0");
656076
+ return computeFingerprint(firstMessageText, "1.57.1");
656040
656077
  }
656041
656078
  var FINGERPRINT_SALT = "59cf53e54c78";
656042
656079
  var init_fingerprint = () => {};
@@ -657932,7 +657969,7 @@ async function sideQuery(opts) {
657932
657969
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
657933
657970
  }
657934
657971
  const messageText2 = extractFirstUserMessageText(messages);
657935
- const fingerprint2 = computeFingerprint(messageText2, "1.57.0");
657972
+ const fingerprint2 = computeFingerprint(messageText2, "1.57.1");
657936
657973
  const attributionHeader = getAttributionHeader(fingerprint2);
657937
657974
  const systemBlocks = [
657938
657975
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -662703,7 +662740,7 @@ function buildSystemInitMessage(inputs) {
662703
662740
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
662704
662741
  apiKeySource: getURHQApiKeyWithSource().source,
662705
662742
  betas: getSdkBetas(),
662706
- ur_version: "1.57.0",
662743
+ ur_version: "1.57.1",
662707
662744
  output_style: outputStyle2,
662708
662745
  agents: inputs.agents.map((agent2) => agent2.agentType),
662709
662746
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -676563,7 +676600,7 @@ var init_useVoiceEnabled = __esm(() => {
676563
676600
  function getSemverPart(version3) {
676564
676601
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
676565
676602
  }
676566
- function useUpdateNotification(updatedVersion, initialVersion = "1.57.0") {
676603
+ function useUpdateNotification(updatedVersion, initialVersion = "1.57.1") {
676567
676604
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
676568
676605
  if (!updatedVersion) {
676569
676606
  return null;
@@ -676612,7 +676649,7 @@ function AutoUpdater({
676612
676649
  return;
676613
676650
  }
676614
676651
  if (false) {}
676615
- const currentVersion = "1.57.0";
676652
+ const currentVersion = "1.57.1";
676616
676653
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
676617
676654
  let latestVersion = await getLatestVersion(channel);
676618
676655
  const isDisabled = isAutoUpdaterDisabled();
@@ -676841,12 +676878,12 @@ function NativeAutoUpdater({
676841
676878
  logEvent("tengu_native_auto_updater_start", {});
676842
676879
  try {
676843
676880
  const maxVersion = await getMaxVersion();
676844
- if (maxVersion && gt("1.57.0", maxVersion)) {
676881
+ if (maxVersion && gt("1.57.1", maxVersion)) {
676845
676882
  const msg = await getMaxVersionMessage();
676846
676883
  setMaxVersionIssue(msg ?? "affects your version");
676847
676884
  }
676848
676885
  const result = await installLatest(channel);
676849
- const currentVersion = "1.57.0";
676886
+ const currentVersion = "1.57.1";
676850
676887
  const latencyMs = Date.now() - startTime;
676851
676888
  if (result.lockFailed) {
676852
676889
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -676983,17 +677020,17 @@ function PackageManagerAutoUpdater(t0) {
676983
677020
  const maxVersion = await getMaxVersion();
676984
677021
  if (maxVersion && latest && gt(latest, maxVersion)) {
676985
677022
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
676986
- if (gte("1.57.0", maxVersion)) {
676987
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.57.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
677023
+ if (gte("1.57.1", maxVersion)) {
677024
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.57.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
676988
677025
  setUpdateAvailable(false);
676989
677026
  return;
676990
677027
  }
676991
677028
  latest = maxVersion;
676992
677029
  }
676993
- const hasUpdate = latest && !gte("1.57.0", latest) && !shouldSkipVersion(latest);
677030
+ const hasUpdate = latest && !gte("1.57.1", latest) && !shouldSkipVersion(latest);
676994
677031
  setUpdateAvailable(!!hasUpdate);
676995
677032
  if (hasUpdate) {
676996
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.57.0"} -> ${latest}`);
677033
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.57.1"} -> ${latest}`);
676997
677034
  }
676998
677035
  };
676999
677036
  $2[0] = t1;
@@ -677027,7 +677064,7 @@ function PackageManagerAutoUpdater(t0) {
677027
677064
  wrap: "truncate",
677028
677065
  children: [
677029
677066
  "currentVersion: ",
677030
- "1.57.0"
677067
+ "1.57.1"
677031
677068
  ]
677032
677069
  }, undefined, true, undefined, this);
677033
677070
  $2[3] = verbose;
@@ -687724,7 +687761,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
687724
687761
  project_dir: getOriginalCwd(),
687725
687762
  added_dirs: addedDirs
687726
687763
  },
687727
- version: "1.57.0",
687764
+ version: "1.57.1",
687728
687765
  output_style: {
687729
687766
  name: outputStyleName
687730
687767
  },
@@ -687807,7 +687844,7 @@ function StatusLineInner({
687807
687844
  const taskValues = Object.values(tasks2);
687808
687845
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
687809
687846
  const defaultStatusLineText = buildDefaultStatusBar({
687810
- version: "1.57.0",
687847
+ version: "1.57.1",
687811
687848
  providerLabel: providerRuntime.providerLabel,
687812
687849
  authMode: providerRuntime.authLabel,
687813
687850
  model: providerRuntime.model ?? renderModelName(mainLoopModel),
@@ -699950,7 +699987,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
699950
699987
  } catch {}
699951
699988
  const data = {
699952
699989
  trigger: trigger2,
699953
- version: "1.57.0",
699990
+ version: "1.57.1",
699954
699991
  platform: process.platform,
699955
699992
  transcript,
699956
699993
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -712230,7 +712267,7 @@ function WelcomeV2() {
712230
712267
  dimColor: true,
712231
712268
  children: [
712232
712269
  "v",
712233
- "1.57.0"
712270
+ "1.57.1"
712234
712271
  ]
712235
712272
  }, undefined, true, undefined, this)
712236
712273
  ]
@@ -713490,7 +713527,7 @@ function completeOnboarding() {
713490
713527
  saveGlobalConfig((current) => ({
713491
713528
  ...current,
713492
713529
  hasCompletedOnboarding: true,
713493
- lastOnboardingVersion: "1.57.0"
713530
+ lastOnboardingVersion: "1.57.1"
713494
713531
  }));
713495
713532
  }
713496
713533
  function showDialog(root2, renderer) {
@@ -718534,7 +718571,7 @@ function appendToLog(path24, message) {
718534
718571
  cwd: getFsImplementation().cwd(),
718535
718572
  userType: process.env.USER_TYPE,
718536
718573
  sessionId: getSessionId(),
718537
- version: "1.57.0"
718574
+ version: "1.57.1"
718538
718575
  };
718539
718576
  getLogWriter(path24).write(messageWithTimestamp);
718540
718577
  }
@@ -722693,8 +722730,8 @@ async function getEnvLessBridgeConfig() {
722693
722730
  }
722694
722731
  async function checkEnvLessBridgeMinVersion() {
722695
722732
  const cfg = await getEnvLessBridgeConfig();
722696
- if (cfg.min_version && lt("1.57.0", cfg.min_version)) {
722697
- return `Your version of UR (${"1.57.0"}) is too old for Remote Control.
722733
+ if (cfg.min_version && lt("1.57.1", cfg.min_version)) {
722734
+ return `Your version of UR (${"1.57.1"}) is too old for Remote Control.
722698
722735
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
722699
722736
  }
722700
722737
  return null;
@@ -723168,7 +723205,7 @@ async function initBridgeCore(params) {
723168
723205
  const rawApi = createBridgeApiClient({
723169
723206
  baseUrl,
723170
723207
  getAccessToken,
723171
- runnerVersion: "1.57.0",
723208
+ runnerVersion: "1.57.1",
723172
723209
  onDebug: logForDebugging,
723173
723210
  onAuth401,
723174
723211
  getTrustedDeviceToken
@@ -732640,7 +732677,7 @@ function getAgUiCapabilities() {
732640
732677
  name: "UR-Nexus",
732641
732678
  type: "ur-nexus",
732642
732679
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
732643
- version: "1.57.0",
732680
+ version: "1.57.1",
732644
732681
  provider: "UR",
732645
732682
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
732646
732683
  },
@@ -733780,7 +733817,7 @@ function createMCPServer(cwd4, debug2, verbose) {
733780
733817
  };
733781
733818
  const server2 = new Server({
733782
733819
  name: "ur-nexus",
733783
- version: "1.57.0"
733820
+ version: "1.57.1"
733784
733821
  }, {
733785
733822
  capabilities: {
733786
733823
  tools: {}
@@ -733934,7 +733971,7 @@ import {
733934
733971
  lstatSync as lstatSync19,
733935
733972
  mkdirSync as mkdirSync69,
733936
733973
  openSync as openSync12,
733937
- readFileSync as readFileSync86,
733974
+ readFileSync as readFileSync87,
733938
733975
  renameSync as renameSync15,
733939
733976
  statSync as statSync31,
733940
733977
  unlinkSync as unlinkSync15,
@@ -734044,7 +734081,7 @@ class DurableMcp2026TaskStore {
734044
734081
  quarantineTaskManifest(path24);
734045
734082
  return { version: TASK_MANIFEST_VERSION, tasks: [] };
734046
734083
  }
734047
- const parsed = JSON.parse(readFileSync86(path24, "utf8"));
734084
+ const parsed = JSON.parse(readFileSync87(path24, "utf8"));
734048
734085
  if (!isRecord6(parsed) || parsed.version !== TASK_MANIFEST_VERSION || !Array.isArray(parsed.tasks)) {
734049
734086
  quarantineTaskManifest(path24);
734050
734087
  return { version: TASK_MANIFEST_VERSION, tasks: [] };
@@ -734938,7 +734975,7 @@ function thrownResponse(error40) {
734938
734975
  }
734939
734976
  async function createUrMcp2026Runtime(options4) {
734940
734977
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
734941
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.57.0" }, { capabilities: {} });
734978
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.57.1" }, { capabilities: {} });
734942
734979
  const [clientTransport, serverTransport] = createLinkedTransportPair();
734943
734980
  try {
734944
734981
  await server2.connect(serverTransport);
@@ -734949,7 +734986,7 @@ async function createUrMcp2026Runtime(options4) {
734949
734986
  }
734950
734987
  const runtime2 = new Mcp2026Runtime({
734951
734988
  cwd: options4.cwd,
734952
- version: "1.57.0",
734989
+ version: "1.57.1",
734953
734990
  backend: {
734954
734991
  listTools: async () => {
734955
734992
  const listed = await client2.listTools();
@@ -735752,7 +735789,7 @@ var init_providers2 = __esm(() => {
735752
735789
  });
735753
735790
 
735754
735791
  // src/utils/plugins/pluginDoctor.ts
735755
- import { existsSync as existsSync99, readdirSync as readdirSync34, readFileSync as readFileSync87, statSync as statSync32 } from "fs";
735792
+ import { existsSync as existsSync99, readdirSync as readdirSync34, readFileSync as readFileSync88, statSync as statSync32 } from "fs";
735756
735793
  import { basename as basename68, join as join247 } from "path";
735757
735794
  function manifestPathFor2(dir) {
735758
735795
  const p2 = join247(dir, ".ur-plugin", "plugin.json");
@@ -735807,7 +735844,7 @@ function doctorPluginDir(dir) {
735807
735844
  }
735808
735845
  let parsed;
735809
735846
  try {
735810
- parsed = JSON.parse(readFileSync87(manifestPath6, "utf8"));
735847
+ parsed = JSON.parse(readFileSync88(manifestPath6, "utf8"));
735811
735848
  } catch (error40) {
735812
735849
  return {
735813
735850
  name: basename68(dir),
@@ -737082,7 +737119,7 @@ async function update() {
737082
737119
  logEvent("tengu_update_check", {});
737083
737120
  const diagnostic2 = await getDoctorDiagnostic();
737084
737121
  const result = await checkUpgradeStatus({
737085
- currentVersion: "1.57.0",
737122
+ currentVersion: "1.57.1",
737086
737123
  packageName: UR_AGENT_PACKAGE_NAME,
737087
737124
  installationType: diagnostic2.installationType,
737088
737125
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -737109,7 +737146,7 @@ __export(exports_main, {
737109
737146
  startDeferredPrefetches: () => startDeferredPrefetches,
737110
737147
  main: () => main
737111
737148
  });
737112
- import { readFileSync as readFileSync88 } from "fs";
737149
+ import { readFileSync as readFileSync89 } from "fs";
737113
737150
  import { resolve as resolve73 } from "path";
737114
737151
  function logManagedSettings() {
737115
737152
  try {
@@ -737265,7 +737302,7 @@ function loadSettingsFromFlag(settingsFile) {
737265
737302
  resolvedPath: resolvedSettingsPath
737266
737303
  } = safeResolvePath(getFsImplementation(), settingsFile);
737267
737304
  try {
737268
- readFileSync88(resolvedSettingsPath, "utf8");
737305
+ readFileSync89(resolvedSettingsPath, "utf8");
737269
737306
  } catch (e) {
737270
737307
  if (isENOENT(e)) {
737271
737308
  process.stderr.write(source_default.red(`Error: Settings file not found: ${resolvedSettingsPath}
@@ -737684,7 +737721,7 @@ ${getTmuxInstallInstructions2()}
737684
737721
  }
737685
737722
  try {
737686
737723
  const filePath = resolve73(options4.systemPromptFile);
737687
- systemPrompt = readFileSync88(filePath, "utf8");
737724
+ systemPrompt = readFileSync89(filePath, "utf8");
737688
737725
  } catch (error40) {
737689
737726
  const code = getErrnoCode(error40);
737690
737727
  if (code === "ENOENT") {
@@ -737706,7 +737743,7 @@ ${getTmuxInstallInstructions2()}
737706
737743
  }
737707
737744
  try {
737708
737745
  const filePath = resolve73(options4.appendSystemPromptFile);
737709
- appendSystemPrompt = readFileSync88(filePath, "utf8");
737746
+ appendSystemPrompt = readFileSync89(filePath, "utf8");
737710
737747
  } catch (error40) {
737711
737748
  const code = getErrnoCode(error40);
737712
737749
  if (code === "ENOENT") {
@@ -738398,7 +738435,7 @@ ${customInstructions}` : customInstructions;
738398
738435
  }
738399
738436
  }
738400
738437
  logForDiagnosticsNoPII("info", "started", {
738401
- version: "1.57.0",
738438
+ version: "1.57.1",
738402
738439
  is_native_binary: isInBundledMode()
738403
738440
  });
738404
738441
  registerCleanup(async () => {
@@ -739184,7 +739221,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
739184
739221
  pendingHookMessages
739185
739222
  }, renderAndRun);
739186
739223
  }
739187
- }).version("1.57.0 (UR-Nexus)", "-v, --version", "Output the version number");
739224
+ }).version("1.57.1 (UR-Nexus)", "-v, --version", "Output the version number");
739188
739225
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
739189
739226
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
739190
739227
  if (canUserConfigureAdvisor()) {
@@ -740219,7 +740256,7 @@ if (false) {}
740219
740256
  async function main2() {
740220
740257
  const args = process.argv.slice(2);
740221
740258
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
740222
- console.log(`${"1.57.0"} (UR-Nexus)`);
740259
+ console.log(`${"1.57.1"} (UR-Nexus)`);
740223
740260
  return;
740224
740261
  }
740225
740262
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {