ur-agent 1.62.0 → 1.63.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.63.0
4
+
5
+ - Added size-triggered pruning of superseded tool results
6
+ (`context.pruneToolResults`). UR already had the clearing machinery, but
7
+ nothing external could reach it: cached microcompact is internal-only and
8
+ returns unchanged messages in shipped builds, and the time-based trigger
9
+ needs an hour of idling *and* a GrowthBook flag that a local install never
10
+ receives. An active session therefore pruned nothing and ran until autocompact
11
+ replaced the whole history with a summary.
12
+ - Pruning fires only when it would free at least 20k tokens, because clearing
13
+ invalidates the cached prefix and a small cleanup costs more in cache misses
14
+ than it reclaims. Short sessions are untouched; a 40-read session frees ~64k.
15
+ - The most recent 8 compactable results are a protected zone and are never
16
+ cleared, so the model keeps the working set it is reasoning about.
17
+ `keepRecent` is floored at 1: clearing everything would leave no working
18
+ context, and `slice(-0)` would paradoxically keep all of it.
19
+ - Configured through settings rather than GrowthBook, so it can actually be
20
+ turned off or tuned.
21
+
3
22
  ## 1.62.0
4
23
 
5
24
  - `ur agent-inspect --costs` now labels each row with what the agent was
package/dist/cli.js CHANGED
@@ -75207,7 +75207,7 @@ var init_auth = __esm(() => {
75207
75207
 
75208
75208
  // src/utils/userAgent.ts
75209
75209
  function getURCodeUserAgent() {
75210
- return `ur/${"1.62.0"}`;
75210
+ return `ur/${"1.63.0"}`;
75211
75211
  }
75212
75212
 
75213
75213
  // src/utils/workloadContext.ts
@@ -75229,7 +75229,7 @@ function getUserAgent() {
75229
75229
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
75230
75230
  const workload = getWorkload();
75231
75231
  const workloadSuffix = workload ? `, workload/${workload}` : "";
75232
- return `ur-cli/${"1.62.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75232
+ return `ur-cli/${"1.63.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75233
75233
  }
75234
75234
  function getMCPUserAgent() {
75235
75235
  const parts = [];
@@ -75243,7 +75243,7 @@ function getMCPUserAgent() {
75243
75243
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
75244
75244
  }
75245
75245
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
75246
- return `ur/${"1.62.0"}${suffix}`;
75246
+ return `ur/${"1.63.0"}${suffix}`;
75247
75247
  }
75248
75248
  function getWebFetchUserAgent() {
75249
75249
  return `UR-User (${getURCodeUserAgent()})`;
@@ -75381,7 +75381,7 @@ var init_user = __esm(() => {
75381
75381
  deviceId,
75382
75382
  sessionId: getSessionId(),
75383
75383
  email: getEmail(),
75384
- appVersion: "1.62.0",
75384
+ appVersion: "1.63.0",
75385
75385
  platform: getHostPlatformForAnalytics(),
75386
75386
  organizationUuid,
75387
75387
  accountUuid,
@@ -83581,7 +83581,7 @@ var init_metadata = __esm(() => {
83581
83581
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
83582
83582
  WHITESPACE_REGEX = /\s+/;
83583
83583
  getVersionBase = memoize_default(() => {
83584
- const match = "1.62.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83584
+ const match = "1.63.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83585
83585
  return match ? match[0] : undefined;
83586
83586
  });
83587
83587
  buildEnvContext = memoize_default(async () => {
@@ -83621,7 +83621,7 @@ var init_metadata = __esm(() => {
83621
83621
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
83622
83622
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
83623
83623
  isURAiAuth: isURAISubscriber(),
83624
- version: "1.62.0",
83624
+ version: "1.63.0",
83625
83625
  versionBase: getVersionBase(),
83626
83626
  buildTime: "",
83627
83627
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -84291,7 +84291,7 @@ function initialize1PEventLogging() {
84291
84291
  const platform2 = getPlatform();
84292
84292
  const attributes = {
84293
84293
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
84294
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.62.0"
84294
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.63.0"
84295
84295
  };
84296
84296
  if (platform2 === "wsl") {
84297
84297
  const wslVersion = getWslVersion();
@@ -84319,7 +84319,7 @@ function initialize1PEventLogging() {
84319
84319
  })
84320
84320
  ]
84321
84321
  });
84322
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.62.0");
84322
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.63.0");
84323
84323
  }
84324
84324
  async function reinitialize1PEventLoggingIfConfigChanged() {
84325
84325
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -86838,6 +86838,13 @@ var init_types2 = __esm(() => {
86838
86838
  name: exports_external.string().optional().describe("Synthesiser voice name"),
86839
86839
  rate: exports_external.number().optional().describe("Words per minute")
86840
86840
  }).optional().describe("Spoken output settings"),
86841
+ context: exports_external.object({
86842
+ pruneToolResults: exports_external.object({
86843
+ enabled: exports_external.boolean().optional(),
86844
+ minTokensFreed: exports_external.number().optional(),
86845
+ keepRecent: exports_external.number().optional()
86846
+ }).optional().describe("Size-triggered pruning of superseded tool results (old file reads, greps, shell output). " + "Prunes only when it would free at least minTokensFreed tokens, keeping the most recent " + "keepRecent results untouched. Less destructive than letting context fill until autocompact " + "replaces the whole history with a summary.")
86847
+ }).optional().describe("Context management behaviour."),
86841
86848
  memory: exports_external.object({
86842
86849
  suggest: exports_external.boolean().optional().describe("Propose durable facts after each turn"),
86843
86850
  suggestMinConfidence: exports_external.number().optional().describe("Confidence floor for proposals (0-1, default 0.75)")
@@ -94158,7 +94165,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
94158
94165
  function formatA2AAgentCard(options = {}, pretty = true) {
94159
94166
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
94160
94167
  }
94161
- var urVersion = "1.62.0", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94168
+ var urVersion = "1.63.0", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94162
94169
  var init_trends = __esm(() => {
94163
94170
  init_a2aCardSignature();
94164
94171
  coverage = [
@@ -96961,7 +96968,7 @@ function getAttributionHeader(fingerprint) {
96961
96968
  if (!isAttributionHeaderEnabled()) {
96962
96969
  return "";
96963
96970
  }
96964
- const version2 = `${"1.62.0"}.${fingerprint}`;
96971
+ const version2 = `${"1.63.0"}.${fingerprint}`;
96965
96972
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
96966
96973
  const cch = "";
96967
96974
  const workload = getWorkload();
@@ -145458,6 +145465,27 @@ var init_prompt7 = __esm(() => {
145458
145465
  init_constants2();
145459
145466
  });
145460
145467
 
145468
+ // src/services/compact/toolResultPruningConfig.ts
145469
+ function getToolResultPruningConfig() {
145470
+ const configured = getInitialSettings()?.context?.pruneToolResults;
145471
+ if (!configured)
145472
+ return TOOL_RESULT_PRUNING_DEFAULTS;
145473
+ return {
145474
+ enabled: typeof configured.enabled === "boolean" ? configured.enabled : TOOL_RESULT_PRUNING_DEFAULTS.enabled,
145475
+ minTokensFreed: typeof configured.minTokensFreed === "number" && Number.isFinite(configured.minTokensFreed) && configured.minTokensFreed >= 0 ? configured.minTokensFreed : TOOL_RESULT_PRUNING_DEFAULTS.minTokensFreed,
145476
+ keepRecent: typeof configured.keepRecent === "number" && Number.isInteger(configured.keepRecent) && configured.keepRecent >= 1 ? configured.keepRecent : TOOL_RESULT_PRUNING_DEFAULTS.keepRecent
145477
+ };
145478
+ }
145479
+ var TOOL_RESULT_PRUNING_DEFAULTS;
145480
+ var init_toolResultPruningConfig = __esm(() => {
145481
+ init_settings2();
145482
+ TOOL_RESULT_PRUNING_DEFAULTS = {
145483
+ enabled: true,
145484
+ minTokensFreed: 20000,
145485
+ keepRecent: 8
145486
+ };
145487
+ });
145488
+
145461
145489
  // src/tools/PowerShellTool/toolName.ts
145462
145490
  var POWERSHELL_TOOL_NAME = "PowerShell";
145463
145491
 
@@ -146338,6 +146366,10 @@ async function microcompactMessages(messages, toolUseContext, querySource) {
146338
146366
  if (timeBasedResult) {
146339
146367
  return timeBasedResult;
146340
146368
  }
146369
+ const sizeBasedResult = maybeSizeBasedMicrocompact(messages, querySource);
146370
+ if (sizeBasedResult) {
146371
+ return sizeBasedResult;
146372
+ }
146341
146373
  return { messages };
146342
146374
  }
146343
146375
  function evaluateTimeBasedTrigger(messages, querySource) {
@@ -146355,6 +146387,56 @@ function evaluateTimeBasedTrigger(messages, querySource) {
146355
146387
  }
146356
146388
  return { gapMinutes, config: config2 };
146357
146389
  }
146390
+ function clearOldToolResults(messages, keepRecent) {
146391
+ const compactableIds = collectCompactableToolIds(messages);
146392
+ const keep = Math.max(1, keepRecent);
146393
+ const keepSet = new Set(compactableIds.slice(-keep));
146394
+ const clearSet = new Set(compactableIds.filter((id) => !keepSet.has(id)));
146395
+ if (clearSet.size === 0)
146396
+ return null;
146397
+ let tokensSaved = 0;
146398
+ const result = messages.map((message) => {
146399
+ if (message.type !== "user" || !Array.isArray(message.message.content)) {
146400
+ return message;
146401
+ }
146402
+ let touched = false;
146403
+ const newContent = message.message.content.map((block) => {
146404
+ if (block.type === "tool_result" && clearSet.has(block.tool_use_id) && block.content !== TIME_BASED_MC_CLEARED_MESSAGE) {
146405
+ tokensSaved += calculateToolResultTokens(block);
146406
+ touched = true;
146407
+ return { ...block, content: TIME_BASED_MC_CLEARED_MESSAGE };
146408
+ }
146409
+ return block;
146410
+ });
146411
+ if (!touched)
146412
+ return message;
146413
+ return { ...message, message: { ...message.message, content: newContent } };
146414
+ });
146415
+ if (tokensSaved === 0)
146416
+ return null;
146417
+ return { messages: result, tokensSaved, cleared: clearSet.size };
146418
+ }
146419
+ function maybeSizeBasedMicrocompact(messages, querySource) {
146420
+ const config2 = getToolResultPruningConfig();
146421
+ if (!config2.enabled || !querySource || !isMainThreadSource(querySource)) {
146422
+ return null;
146423
+ }
146424
+ const cleared = clearOldToolResults(messages, config2.keepRecent);
146425
+ if (!cleared || cleared.tokensSaved < config2.minTokensFreed) {
146426
+ return null;
146427
+ }
146428
+ logEvent("tengu_size_based_microcompact", {
146429
+ toolsCleared: cleared.cleared,
146430
+ keepRecent: config2.keepRecent,
146431
+ minTokensFreed: config2.minTokensFreed,
146432
+ tokensSaved: cleared.tokensSaved
146433
+ });
146434
+ logForDebugging(`[SIZE-BASED MC] cleared ${cleared.cleared} tool results (~${cleared.tokensSaved} tokens >= ${config2.minTokensFreed} threshold), kept last ${config2.keepRecent}`);
146435
+ suppressCompactWarning();
146436
+ resetMicrocompactState();
146437
+ if (false) {}
146438
+ return { messages: cleared.messages };
146439
+ }
146358
146440
  function maybeTimeBasedMicrocompact(messages, querySource) {
146359
146441
  const trigger = evaluateTimeBasedTrigger(messages, querySource);
146360
146442
  if (!trigger) {
@@ -146408,6 +146490,7 @@ function maybeTimeBasedMicrocompact(messages, querySource) {
146408
146490
  }
146409
146491
  var TIME_BASED_MC_CLEARED_MESSAGE = "[Old tool result content cleared]", IMAGE_MAX_TOKEN_SIZE = 2000, COMPACTABLE_TOOLS, cachedMCState = null, pendingCacheEdits = null;
146410
146492
  var init_microCompact = __esm(() => {
146493
+ init_toolResultPruningConfig();
146411
146494
  init_prompt2();
146412
146495
  init_prompt3();
146413
146496
  init_prompt();
@@ -154550,7 +154633,7 @@ var init_projectSafety = __esm(() => {
154550
154633
  function getInstruments() {
154551
154634
  if (instruments)
154552
154635
  return instruments;
154553
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.62.0");
154636
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.63.0");
154554
154637
  instruments = {
154555
154638
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
154556
154639
  description: "GenAI operation duration.",
@@ -154648,7 +154731,7 @@ function genAiAgentAttributes() {
154648
154731
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
154649
154732
  "gen_ai.provider.name": "ur",
154650
154733
  "gen_ai.agent.name": "UR-Nexus",
154651
- "gen_ai.agent.version": "1.62.0"
154734
+ "gen_ai.agent.version": "1.63.0"
154652
154735
  };
154653
154736
  }
154654
154737
  function genAiWorkflowAttributes(workflowName) {
@@ -154664,7 +154747,7 @@ function genAiWorkflowAttributes(workflowName) {
154664
154747
  function startGenAiWorkflowSpan(workflowName) {
154665
154748
  const attributes = genAiWorkflowAttributes(workflowName);
154666
154749
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
154667
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.62.0").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
154750
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.63.0").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
154668
154751
  }
154669
154752
  function endGenAiWorkflowSpan(span, options2 = {}) {
154670
154753
  try {
@@ -154702,7 +154785,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
154702
154785
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
154703
154786
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
154704
154787
  }
154705
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.62.0").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
154788
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.63.0").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
154706
154789
  }
154707
154790
  function endGenAiMemorySpan(span, options2 = {}) {
154708
154791
  try {
@@ -206221,7 +206304,7 @@ function getTelemetryAttributes() {
206221
206304
  attributes["session.id"] = sessionId;
206222
206305
  }
206223
206306
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
206224
- attributes["app.version"] = "1.62.0";
206307
+ attributes["app.version"] = "1.63.0";
206225
206308
  }
206226
206309
  const oauthAccount = getOauthAccountInfo();
206227
206310
  if (oauthAccount) {
@@ -241995,7 +242078,7 @@ function getInstallationEnv() {
241995
242078
  return;
241996
242079
  }
241997
242080
  function getURCodeVersion() {
241998
- return "1.62.0";
242081
+ return "1.63.0";
241999
242082
  }
242000
242083
  async function getInstalledVSCodeExtensionVersion(command) {
242001
242084
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -249326,7 +249409,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
249326
249409
  const client2 = new Client({
249327
249410
  name: "ur",
249328
249411
  title: "UR",
249329
- version: "1.62.0",
249412
+ version: "1.63.0",
249330
249413
  description: "UR-Nexus autonomous engineering workflow engine",
249331
249414
  websiteUrl: PRODUCT_URL
249332
249415
  }, {
@@ -249686,7 +249769,7 @@ var init_client5 = __esm(() => {
249686
249769
  const client2 = new Client({
249687
249770
  name: "ur",
249688
249771
  title: "UR",
249689
- version: "1.62.0",
249772
+ version: "1.63.0",
249690
249773
  description: "UR-Nexus autonomous engineering workflow engine",
249691
249774
  websiteUrl: PRODUCT_URL
249692
249775
  }, {
@@ -262287,7 +262370,7 @@ async function createRuntime() {
262287
262370
  bootstrapTelemetry();
262288
262371
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
262289
262372
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
262290
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.62.0"
262373
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.63.0"
262291
262374
  }));
262292
262375
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
262293
262376
  resource,
@@ -262320,11 +262403,11 @@ async function createRuntime() {
262320
262403
  setMeterProvider(meterProvider);
262321
262404
  setLoggerProvider(loggerProvider);
262322
262405
  if (meterProvider) {
262323
- const meter = meterProvider.getMeter("ur-agent", "1.62.0");
262406
+ const meter = meterProvider.getMeter("ur-agent", "1.63.0");
262324
262407
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
262325
262408
  }
262326
262409
  if (loggerProvider) {
262327
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.62.0"));
262410
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.63.0"));
262328
262411
  }
262329
262412
  if (!cleanupRegistered2) {
262330
262413
  cleanupRegistered2 = true;
@@ -262986,9 +263069,9 @@ async function assertMinVersion() {
262986
263069
  if (false) {}
262987
263070
  try {
262988
263071
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
262989
- if (versionConfig.minVersion && lt("1.62.0", versionConfig.minVersion)) {
263072
+ if (versionConfig.minVersion && lt("1.63.0", versionConfig.minVersion)) {
262990
263073
  console.error(`
262991
- It looks like your version of UR (${"1.62.0"}) needs an update.
263074
+ It looks like your version of UR (${"1.63.0"}) needs an update.
262992
263075
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
262993
263076
 
262994
263077
  To update, please run:
@@ -263204,7 +263287,7 @@ async function installGlobalPackage(specificVersion) {
263204
263287
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
263205
263288
  logEvent("tengu_auto_updater_lock_contention", {
263206
263289
  pid: process.pid,
263207
- currentVersion: "1.62.0"
263290
+ currentVersion: "1.63.0"
263208
263291
  });
263209
263292
  return "in_progress";
263210
263293
  }
@@ -263213,7 +263296,7 @@ async function installGlobalPackage(specificVersion) {
263213
263296
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
263214
263297
  logError2(new Error("Windows NPM detected in WSL environment"));
263215
263298
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
263216
- currentVersion: "1.62.0"
263299
+ currentVersion: "1.63.0"
263217
263300
  });
263218
263301
  console.error(`
263219
263302
  Error: Windows NPM detected in WSL
@@ -263748,7 +263831,7 @@ function detectLinuxGlobPatternWarnings() {
263748
263831
  }
263749
263832
  async function getDoctorDiagnostic() {
263750
263833
  const installationType = await getCurrentInstallationType();
263751
- const version2 = typeof MACRO !== "undefined" ? "1.62.0" : "unknown";
263834
+ const version2 = typeof MACRO !== "undefined" ? "1.63.0" : "unknown";
263752
263835
  const installationPath = await getInstallationPath();
263753
263836
  const invokedBinary = getInvokedBinary();
263754
263837
  const multipleInstallations = await detectMultipleInstallations();
@@ -264683,8 +264766,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
264683
264766
  const maxVersion = await getMaxVersion();
264684
264767
  if (maxVersion && gt(version2, maxVersion)) {
264685
264768
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
264686
- if (gte("1.62.0", maxVersion)) {
264687
- logForDebugging(`Native installer: current version ${"1.62.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
264769
+ if (gte("1.63.0", maxVersion)) {
264770
+ logForDebugging(`Native installer: current version ${"1.63.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
264688
264771
  logEvent("tengu_native_update_skipped_max_version", {
264689
264772
  latency_ms: Date.now() - startTime,
264690
264773
  max_version: maxVersion,
@@ -264695,7 +264778,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
264695
264778
  version2 = maxVersion;
264696
264779
  }
264697
264780
  }
264698
- if (!forceReinstall && version2 === "1.62.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
264781
+ if (!forceReinstall && version2 === "1.63.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
264699
264782
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
264700
264783
  logEvent("tengu_native_update_complete", {
264701
264784
  latency_ms: Date.now() - startTime,
@@ -334894,7 +334977,7 @@ function isAnyTracingEnabled() {
334894
334977
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
334895
334978
  }
334896
334979
  function getTracer() {
334897
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.62.0");
334980
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.63.0");
334898
334981
  }
334899
334982
  function createSpanAttributes(spanType, customAttributes = {}) {
334900
334983
  const baseAttributes = getTelemetryAttributes();
@@ -364397,7 +364480,7 @@ function Feedback({
364397
364480
  platform: env2.platform,
364398
364481
  gitRepo: envInfo.isGit,
364399
364482
  terminal: env2.terminal,
364400
- version: "1.62.0",
364483
+ version: "1.63.0",
364401
364484
  transcript: normalizeMessagesForAPI(messages),
364402
364485
  errors: sanitizedErrors,
364403
364486
  lastApiRequest: getLastAPIRequest(),
@@ -364589,7 +364672,7 @@ function Feedback({
364589
364672
  ", ",
364590
364673
  env2.terminal,
364591
364674
  ", v",
364592
- "1.62.0"
364675
+ "1.63.0"
364593
364676
  ]
364594
364677
  }, undefined, true, undefined, this)
364595
364678
  ]
@@ -364695,7 +364778,7 @@ ${sanitizedDescription}
364695
364778
  ` + `**Environment Info**
364696
364779
  ` + `- Platform: ${env2.platform}
364697
364780
  ` + `- Terminal: ${env2.terminal}
364698
- ` + `- Version: ${"1.62.0"}
364781
+ ` + `- Version: ${"1.63.0"}
364699
364782
  ` + `- Feedback ID: ${feedbackId}
364700
364783
  ` + `
364701
364784
  **Errors**
@@ -367805,7 +367888,7 @@ function buildPrimarySection() {
367805
367888
  }, undefined, false, undefined, this);
367806
367889
  return [{
367807
367890
  label: "Version",
367808
- value: "1.62.0"
367891
+ value: "1.63.0"
367809
367892
  }, {
367810
367893
  label: "Session name",
367811
367894
  value: nameValue
@@ -371135,7 +371218,7 @@ function Config({
371135
371218
  }
371136
371219
  }, undefined, false, undefined, this)
371137
371220
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
371138
- currentVersion: "1.62.0",
371221
+ currentVersion: "1.63.0",
371139
371222
  onChoice: (choice) => {
371140
371223
  setShowSubmenu(null);
371141
371224
  setTabsHidden(false);
@@ -371147,7 +371230,7 @@ function Config({
371147
371230
  autoUpdatesChannel: "stable"
371148
371231
  };
371149
371232
  if (choice === "stay") {
371150
- newSettings.minimumVersion = "1.62.0";
371233
+ newSettings.minimumVersion = "1.63.0";
371151
371234
  }
371152
371235
  updateSettingsForSource("userSettings", newSettings);
371153
371236
  setSettingsData((prev_27) => ({
@@ -379211,7 +379294,7 @@ function HelpV2(t0) {
379211
379294
  let t6;
379212
379295
  if ($2[31] !== tabs) {
379213
379296
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
379214
- title: `UR v${"1.62.0"}`,
379297
+ title: `UR v${"1.63.0"}`,
379215
379298
  color: "professionalBlue",
379216
379299
  defaultTab: "general",
379217
379300
  children: tabs
@@ -380128,7 +380211,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
380128
380211
  async function handleInitialize(options2) {
380129
380212
  return {
380130
380213
  name: "UR",
380131
- version: "1.62.0",
380214
+ version: "1.63.0",
380132
380215
  protocolVersion: "0.1.0",
380133
380216
  workspaceRoot: options2.cwd,
380134
380217
  capabilities: {
@@ -397236,7 +397319,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
397236
397319
  return [];
397237
397320
  }
397238
397321
  }
397239
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.62.0") {
397322
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.63.0") {
397240
397323
  if (process.env.USER_TYPE === "ant") {
397241
397324
  const changelog = "";
397242
397325
  if (changelog) {
@@ -397263,7 +397346,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.62.0")
397263
397346
  releaseNotes
397264
397347
  };
397265
397348
  }
397266
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.62.0") {
397349
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.63.0") {
397267
397350
  if (process.env.USER_TYPE === "ant") {
397268
397351
  const changelog = "";
397269
397352
  if (changelog) {
@@ -400120,7 +400203,7 @@ function getRecentActivitySync() {
400120
400203
  return cachedActivity;
400121
400204
  }
400122
400205
  function getLogoDisplayData() {
400123
- const version2 = process.env.DEMO_VERSION ?? "1.62.0";
400206
+ const version2 = process.env.DEMO_VERSION ?? "1.63.0";
400124
400207
  const serverUrl = getDirectConnectServerUrl();
400125
400208
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
400126
400209
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -401004,7 +401087,7 @@ function LogoV2() {
401004
401087
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
401005
401088
  t2 = () => {
401006
401089
  const currentConfig2 = getGlobalConfig();
401007
- if (currentConfig2.lastReleaseNotesSeen === "1.62.0") {
401090
+ if (currentConfig2.lastReleaseNotesSeen === "1.63.0") {
401008
401091
  return;
401009
401092
  }
401010
401093
  saveGlobalConfig(_temp327);
@@ -401689,12 +401772,12 @@ function LogoV2() {
401689
401772
  return t41;
401690
401773
  }
401691
401774
  function _temp327(current) {
401692
- if (current.lastReleaseNotesSeen === "1.62.0") {
401775
+ if (current.lastReleaseNotesSeen === "1.63.0") {
401693
401776
  return current;
401694
401777
  }
401695
401778
  return {
401696
401779
  ...current,
401697
- lastReleaseNotesSeen: "1.62.0"
401780
+ lastReleaseNotesSeen: "1.63.0"
401698
401781
  };
401699
401782
  }
401700
401783
  function _temp241(s_0) {
@@ -418492,7 +418575,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
418492
418575
  if (spec.name !== specName) {
418493
418576
  throw new Error("Agentic CI workflow spec name does not match");
418494
418577
  }
418495
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.62.0" : "1.62.0");
418578
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.63.0" : "1.63.0");
418496
418579
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
418497
418580
  throw new Error("invalid ur-agent package version");
418498
418581
  }
@@ -419485,7 +419568,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
419485
419568
  path: ".github/workflows/ur.yml",
419486
419569
  root: "project",
419487
419570
  content: compileAgenticCiWorkflow("default", {
419488
- packageVersion: typeof MACRO !== "undefined" ? "1.62.0" : "1.62.0"
419571
+ packageVersion: typeof MACRO !== "undefined" ? "1.63.0" : "1.63.0"
419489
419572
  })
419490
419573
  },
419491
419574
  {
@@ -419548,7 +419631,7 @@ function value(tokens, flag) {
419548
419631
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
419549
419632
  }
419550
419633
  function cliVersion() {
419551
- return typeof MACRO !== "undefined" ? "1.62.0" : "1.62.0";
419634
+ return typeof MACRO !== "undefined" ? "1.63.0" : "1.63.0";
419552
419635
  }
419553
419636
  function workflowPath(cwd2) {
419554
419637
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -425404,7 +425487,7 @@ function createAcpStdioApp(deps) {
425404
425487
  }
425405
425488
  },
425406
425489
  authMethods: [],
425407
- agentInfo: { name: "UR-Nexus", version: "1.62.0" }
425490
+ agentInfo: { name: "UR-Nexus", version: "1.63.0" }
425408
425491
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
425409
425492
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
425410
425493
  await runtime2.announce({
@@ -425501,7 +425584,7 @@ function createAcpStdioAgent(deps) {
425501
425584
  }
425502
425585
  },
425503
425586
  authMethods: [],
425504
- agentInfo: { name: "UR-Nexus", version: "1.62.0" }
425587
+ agentInfo: { name: "UR-Nexus", version: "1.63.0" }
425505
425588
  });
425506
425589
  return;
425507
425590
  case "authenticate":
@@ -633836,7 +633919,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
633836
633919
  smapsRollup,
633837
633920
  platform: process.platform,
633838
633921
  nodeVersion: process.version,
633839
- ccVersion: "1.62.0"
633922
+ ccVersion: "1.63.0"
633840
633923
  };
633841
633924
  }
633842
633925
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -634416,7 +634499,7 @@ var init_bridge_kick = __esm(() => {
634416
634499
  var call153 = async () => {
634417
634500
  return {
634418
634501
  type: "text",
634419
- value: "1.62.0"
634502
+ value: "1.63.0"
634420
634503
  };
634421
634504
  }, version2, version_default;
634422
634505
  var init_version = __esm(() => {
@@ -645487,7 +645570,7 @@ function generateHtmlReport(data, insights) {
645487
645570
  </html>`;
645488
645571
  }
645489
645572
  function buildExportData(data, insights, facets, remoteStats) {
645490
- const version3 = typeof MACRO !== "undefined" ? "1.62.0" : "unknown";
645573
+ const version3 = typeof MACRO !== "undefined" ? "1.63.0" : "unknown";
645491
645574
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
645492
645575
  const facets_summary = {
645493
645576
  total: facets.size,
@@ -649798,7 +649881,7 @@ var init_sessionStorage = __esm(() => {
649798
649881
  init_settings2();
649799
649882
  init_slowOperations();
649800
649883
  init_uuid();
649801
- VERSION7 = typeof MACRO !== "undefined" ? "1.62.0" : "unknown";
649884
+ VERSION7 = typeof MACRO !== "undefined" ? "1.63.0" : "unknown";
649802
649885
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
649803
649886
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
649804
649887
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -651013,7 +651096,7 @@ var init_filesystem = __esm(() => {
651013
651096
  });
651014
651097
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
651015
651098
  const nonce = randomBytes20(16).toString("hex");
651016
- return join232(getURTempDir(), "bundled-skills", "1.62.0", nonce);
651099
+ return join232(getURTempDir(), "bundled-skills", "1.63.0", nonce);
651017
651100
  });
651018
651101
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
651019
651102
  });
@@ -657308,7 +657391,7 @@ function computeFingerprint(messageText2, version3) {
657308
657391
  }
657309
657392
  function computeFingerprintFromMessages(messages) {
657310
657393
  const firstMessageText = extractFirstMessageText(messages);
657311
- return computeFingerprint(firstMessageText, "1.62.0");
657394
+ return computeFingerprint(firstMessageText, "1.63.0");
657312
657395
  }
657313
657396
  var FINGERPRINT_SALT = "59cf53e54c78";
657314
657397
  var init_fingerprint = () => {};
@@ -659204,7 +659287,7 @@ async function sideQuery(opts) {
659204
659287
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
659205
659288
  }
659206
659289
  const messageText2 = extractFirstUserMessageText(messages);
659207
- const fingerprint2 = computeFingerprint(messageText2, "1.62.0");
659290
+ const fingerprint2 = computeFingerprint(messageText2, "1.63.0");
659208
659291
  const attributionHeader = getAttributionHeader(fingerprint2);
659209
659292
  const systemBlocks = [
659210
659293
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -663975,7 +664058,7 @@ function buildSystemInitMessage(inputs) {
663975
664058
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
663976
664059
  apiKeySource: getURHQApiKeyWithSource().source,
663977
664060
  betas: getSdkBetas(),
663978
- ur_version: "1.62.0",
664061
+ ur_version: "1.63.0",
663979
664062
  output_style: outputStyle2,
663980
664063
  agents: inputs.agents.map((agent2) => agent2.agentType),
663981
664064
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -677835,7 +677918,7 @@ var init_useVoiceEnabled = __esm(() => {
677835
677918
  function getSemverPart(version3) {
677836
677919
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
677837
677920
  }
677838
- function useUpdateNotification(updatedVersion, initialVersion = "1.62.0") {
677921
+ function useUpdateNotification(updatedVersion, initialVersion = "1.63.0") {
677839
677922
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
677840
677923
  if (!updatedVersion) {
677841
677924
  return null;
@@ -677884,7 +677967,7 @@ function AutoUpdater({
677884
677967
  return;
677885
677968
  }
677886
677969
  if (false) {}
677887
- const currentVersion = "1.62.0";
677970
+ const currentVersion = "1.63.0";
677888
677971
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
677889
677972
  let latestVersion = await getLatestVersion(channel);
677890
677973
  const isDisabled = isAutoUpdaterDisabled();
@@ -678113,12 +678196,12 @@ function NativeAutoUpdater({
678113
678196
  logEvent("tengu_native_auto_updater_start", {});
678114
678197
  try {
678115
678198
  const maxVersion = await getMaxVersion();
678116
- if (maxVersion && gt("1.62.0", maxVersion)) {
678199
+ if (maxVersion && gt("1.63.0", maxVersion)) {
678117
678200
  const msg = await getMaxVersionMessage();
678118
678201
  setMaxVersionIssue(msg ?? "affects your version");
678119
678202
  }
678120
678203
  const result = await installLatest(channel);
678121
- const currentVersion = "1.62.0";
678204
+ const currentVersion = "1.63.0";
678122
678205
  const latencyMs = Date.now() - startTime;
678123
678206
  if (result.lockFailed) {
678124
678207
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -678255,17 +678338,17 @@ function PackageManagerAutoUpdater(t0) {
678255
678338
  const maxVersion = await getMaxVersion();
678256
678339
  if (maxVersion && latest && gt(latest, maxVersion)) {
678257
678340
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
678258
- if (gte("1.62.0", maxVersion)) {
678259
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.62.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
678341
+ if (gte("1.63.0", maxVersion)) {
678342
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.63.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
678260
678343
  setUpdateAvailable(false);
678261
678344
  return;
678262
678345
  }
678263
678346
  latest = maxVersion;
678264
678347
  }
678265
- const hasUpdate = latest && !gte("1.62.0", latest) && !shouldSkipVersion(latest);
678348
+ const hasUpdate = latest && !gte("1.63.0", latest) && !shouldSkipVersion(latest);
678266
678349
  setUpdateAvailable(!!hasUpdate);
678267
678350
  if (hasUpdate) {
678268
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.62.0"} -> ${latest}`);
678351
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.63.0"} -> ${latest}`);
678269
678352
  }
678270
678353
  };
678271
678354
  $2[0] = t1;
@@ -678299,7 +678382,7 @@ function PackageManagerAutoUpdater(t0) {
678299
678382
  wrap: "truncate",
678300
678383
  children: [
678301
678384
  "currentVersion: ",
678302
- "1.62.0"
678385
+ "1.63.0"
678303
678386
  ]
678304
678387
  }, undefined, true, undefined, this);
678305
678388
  $2[3] = verbose;
@@ -688996,7 +689079,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
688996
689079
  project_dir: getOriginalCwd(),
688997
689080
  added_dirs: addedDirs
688998
689081
  },
688999
- version: "1.62.0",
689082
+ version: "1.63.0",
689000
689083
  output_style: {
689001
689084
  name: outputStyleName
689002
689085
  },
@@ -689079,7 +689162,7 @@ function StatusLineInner({
689079
689162
  const taskValues = Object.values(tasks2);
689080
689163
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
689081
689164
  const defaultStatusLineText = buildDefaultStatusBar({
689082
- version: "1.62.0",
689165
+ version: "1.63.0",
689083
689166
  providerLabel: providerRuntime.providerLabel,
689084
689167
  authMode: providerRuntime.authLabel,
689085
689168
  model: providerRuntime.model ?? renderModelName(mainLoopModel),
@@ -701222,7 +701305,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
701222
701305
  } catch {}
701223
701306
  const data = {
701224
701307
  trigger: trigger2,
701225
- version: "1.62.0",
701308
+ version: "1.63.0",
701226
701309
  platform: process.platform,
701227
701310
  transcript,
701228
701311
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -713502,7 +713585,7 @@ function WelcomeV2() {
713502
713585
  dimColor: true,
713503
713586
  children: [
713504
713587
  "v",
713505
- "1.62.0"
713588
+ "1.63.0"
713506
713589
  ]
713507
713590
  }, undefined, true, undefined, this)
713508
713591
  ]
@@ -714762,7 +714845,7 @@ function completeOnboarding() {
714762
714845
  saveGlobalConfig((current) => ({
714763
714846
  ...current,
714764
714847
  hasCompletedOnboarding: true,
714765
- lastOnboardingVersion: "1.62.0"
714848
+ lastOnboardingVersion: "1.63.0"
714766
714849
  }));
714767
714850
  }
714768
714851
  function showDialog(root2, renderer) {
@@ -719806,7 +719889,7 @@ function appendToLog(path24, message) {
719806
719889
  cwd: getFsImplementation().cwd(),
719807
719890
  userType: process.env.USER_TYPE,
719808
719891
  sessionId: getSessionId(),
719809
- version: "1.62.0"
719892
+ version: "1.63.0"
719810
719893
  };
719811
719894
  getLogWriter(path24).write(messageWithTimestamp);
719812
719895
  }
@@ -723965,8 +724048,8 @@ async function getEnvLessBridgeConfig() {
723965
724048
  }
723966
724049
  async function checkEnvLessBridgeMinVersion() {
723967
724050
  const cfg = await getEnvLessBridgeConfig();
723968
- if (cfg.min_version && lt("1.62.0", cfg.min_version)) {
723969
- return `Your version of UR (${"1.62.0"}) is too old for Remote Control.
724051
+ if (cfg.min_version && lt("1.63.0", cfg.min_version)) {
724052
+ return `Your version of UR (${"1.63.0"}) is too old for Remote Control.
723970
724053
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
723971
724054
  }
723972
724055
  return null;
@@ -724440,7 +724523,7 @@ async function initBridgeCore(params) {
724440
724523
  const rawApi = createBridgeApiClient({
724441
724524
  baseUrl,
724442
724525
  getAccessToken,
724443
- runnerVersion: "1.62.0",
724526
+ runnerVersion: "1.63.0",
724444
724527
  onDebug: logForDebugging,
724445
724528
  onAuth401,
724446
724529
  getTrustedDeviceToken
@@ -733916,7 +733999,7 @@ function getAgUiCapabilities() {
733916
733999
  name: "UR-Nexus",
733917
734000
  type: "ur-nexus",
733918
734001
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
733919
- version: "1.62.0",
734002
+ version: "1.63.0",
733920
734003
  provider: "UR",
733921
734004
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
733922
734005
  },
@@ -735056,7 +735139,7 @@ function createMCPServer(cwd4, debug2, verbose) {
735056
735139
  };
735057
735140
  const server2 = new Server({
735058
735141
  name: "ur-nexus",
735059
- version: "1.62.0"
735142
+ version: "1.63.0"
735060
735143
  }, {
735061
735144
  capabilities: {
735062
735145
  tools: {}
@@ -736214,7 +736297,7 @@ function thrownResponse(error40) {
736214
736297
  }
736215
736298
  async function createUrMcp2026Runtime(options4) {
736216
736299
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
736217
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.62.0" }, { capabilities: {} });
736300
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.63.0" }, { capabilities: {} });
736218
736301
  const [clientTransport, serverTransport] = createLinkedTransportPair();
736219
736302
  try {
736220
736303
  await server2.connect(serverTransport);
@@ -736225,7 +736308,7 @@ async function createUrMcp2026Runtime(options4) {
736225
736308
  }
736226
736309
  const runtime2 = new Mcp2026Runtime({
736227
736310
  cwd: options4.cwd,
736228
- version: "1.62.0",
736311
+ version: "1.63.0",
736229
736312
  backend: {
736230
736313
  listTools: async () => {
736231
736314
  const listed = await client2.listTools();
@@ -738358,7 +738441,7 @@ async function update() {
738358
738441
  logEvent("tengu_update_check", {});
738359
738442
  const diagnostic2 = await getDoctorDiagnostic();
738360
738443
  const result = await checkUpgradeStatus({
738361
- currentVersion: "1.62.0",
738444
+ currentVersion: "1.63.0",
738362
738445
  packageName: UR_AGENT_PACKAGE_NAME,
738363
738446
  installationType: diagnostic2.installationType,
738364
738447
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -739674,7 +739757,7 @@ ${customInstructions}` : customInstructions;
739674
739757
  }
739675
739758
  }
739676
739759
  logForDiagnosticsNoPII("info", "started", {
739677
- version: "1.62.0",
739760
+ version: "1.63.0",
739678
739761
  is_native_binary: isInBundledMode()
739679
739762
  });
739680
739763
  registerCleanup(async () => {
@@ -740460,7 +740543,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
740460
740543
  pendingHookMessages
740461
740544
  }, renderAndRun);
740462
740545
  }
740463
- }).version("1.62.0 (UR-Nexus)", "-v, --version", "Output the version number");
740546
+ }).version("1.63.0 (UR-Nexus)", "-v, --version", "Output the version number");
740464
740547
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
740465
740548
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
740466
740549
  if (canUserConfigureAdvisor()) {
@@ -741512,7 +741595,7 @@ if (false) {}
741512
741595
  async function main2() {
741513
741596
  const args = process.argv.slice(2);
741514
741597
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
741515
- console.log(`${"1.62.0"} (UR-Nexus)`);
741598
+ console.log(`${"1.63.0"} (UR-Nexus)`);
741516
741599
  return;
741517
741600
  }
741518
741601
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
@@ -45,7 +45,7 @@
45
45
  <main id="content" class="content">
46
46
  <header class="topbar">
47
47
  <div>
48
- <p class="eyebrow">Version 1.62.0</p>
48
+ <p class="eyebrow">Version 1.63.0</p>
49
49
  <h1>UR-Nexus Documentation</h1>
50
50
  <p class="lead">A practical, tutorial-style reference for installing, configuring, automating, extending, and operating UR-Nexus.</p>
51
51
  </div>
@@ -7,7 +7,7 @@ plugins {
7
7
  }
8
8
 
9
9
  group = "dev.urnexus"
10
- version = "1.62.0"
10
+ version = "1.63.0"
11
11
 
12
12
  repositories {
13
13
  mavenCentral()
@@ -2,7 +2,7 @@
2
2
  "name": "ur-inline-diffs",
3
3
  "displayName": "UR Inline Diffs",
4
4
  "description": "Review, apply, and reject UR inline diff bundles from .ur/ide/diffs inside VS Code.",
5
- "version": "1.62.0",
5
+ "version": "1.63.0",
6
6
  "publisher": "ur-nexus",
7
7
  "engines": {
8
8
  "vscode": "^1.92.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.62.0",
3
+ "version": "1.63.0",
4
4
  "description": "UR-Nexus — autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",
@@ -84,7 +84,7 @@
84
84
  "@ag-ui/core": "0.0.57",
85
85
  "@ag-ui/encoder": "0.0.57",
86
86
  "diff2html": "^3.4.56",
87
- "playwright-core": "^1.62.0",
87
+ "playwright-core": "^1.63.0",
88
88
  "sharp": "^0.35.3"
89
89
  },
90
90
  "devDependencies": {