ur-agent 1.64.1 → 1.65.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,20 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.65.0
4
+
5
+ - The release gate now asks the registry whether the packed dependency ranges
6
+ can actually be installed. This is the check that was missing when 1.61.2
7
+ through 1.64.0 shipped uninstallable: the tarball built, the CLI started,
8
+ every test passed and the gate was green, because all of it ran against the
9
+ working tree and none of it asked npm whether `playwright-core@^1.64.0`
10
+ exists. The failure only ever appeared on a user's machine.
11
+ - A dependency range equal to the UR version is rejected outright, resolvable
12
+ or not. That equality is the fingerprint of a version bump that matched too
13
+ much, which is exactly how the break happened.
14
+ - Verified by reintroducing the historical break: exit 1 with
15
+ `playwright-core@^1.64.0 does not resolve: npm error code E404`, and exit 0
16
+ on a clean tree.
17
+
3
18
  ## 1.64.1
4
19
 
5
20
  - Fixed `npm install -g ur-agent` failing with
package/dist/cli.js CHANGED
@@ -75223,7 +75223,7 @@ var init_auth = __esm(() => {
75223
75223
 
75224
75224
  // src/utils/userAgent.ts
75225
75225
  function getURCodeUserAgent() {
75226
- return `ur/${"1.64.1"}`;
75226
+ return `ur/${"1.65.0"}`;
75227
75227
  }
75228
75228
 
75229
75229
  // src/utils/workloadContext.ts
@@ -75245,7 +75245,7 @@ function getUserAgent() {
75245
75245
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
75246
75246
  const workload = getWorkload();
75247
75247
  const workloadSuffix = workload ? `, workload/${workload}` : "";
75248
- return `ur-cli/${"1.64.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75248
+ return `ur-cli/${"1.65.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75249
75249
  }
75250
75250
  function getMCPUserAgent() {
75251
75251
  const parts = [];
@@ -75259,7 +75259,7 @@ function getMCPUserAgent() {
75259
75259
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
75260
75260
  }
75261
75261
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
75262
- return `ur/${"1.64.1"}${suffix}`;
75262
+ return `ur/${"1.65.0"}${suffix}`;
75263
75263
  }
75264
75264
  function getWebFetchUserAgent() {
75265
75265
  return `UR-User (${getURCodeUserAgent()})`;
@@ -75397,7 +75397,7 @@ var init_user = __esm(() => {
75397
75397
  deviceId,
75398
75398
  sessionId: getSessionId(),
75399
75399
  email: getEmail(),
75400
- appVersion: "1.64.1",
75400
+ appVersion: "1.65.0",
75401
75401
  platform: getHostPlatformForAnalytics(),
75402
75402
  organizationUuid,
75403
75403
  accountUuid,
@@ -83597,7 +83597,7 @@ var init_metadata = __esm(() => {
83597
83597
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
83598
83598
  WHITESPACE_REGEX = /\s+/;
83599
83599
  getVersionBase = memoize_default(() => {
83600
- const match = "1.64.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83600
+ const match = "1.65.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83601
83601
  return match ? match[0] : undefined;
83602
83602
  });
83603
83603
  buildEnvContext = memoize_default(async () => {
@@ -83637,7 +83637,7 @@ var init_metadata = __esm(() => {
83637
83637
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
83638
83638
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
83639
83639
  isURAiAuth: isURAISubscriber(),
83640
- version: "1.64.1",
83640
+ version: "1.65.0",
83641
83641
  versionBase: getVersionBase(),
83642
83642
  buildTime: "",
83643
83643
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -84307,7 +84307,7 @@ function initialize1PEventLogging() {
84307
84307
  const platform2 = getPlatform();
84308
84308
  const attributes = {
84309
84309
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
84310
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.64.1"
84310
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.65.0"
84311
84311
  };
84312
84312
  if (platform2 === "wsl") {
84313
84313
  const wslVersion = getWslVersion();
@@ -84335,7 +84335,7 @@ function initialize1PEventLogging() {
84335
84335
  })
84336
84336
  ]
84337
84337
  });
84338
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.64.1");
84338
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.65.0");
84339
84339
  }
84340
84340
  async function reinitialize1PEventLoggingIfConfigChanged() {
84341
84341
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -94181,7 +94181,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
94181
94181
  function formatA2AAgentCard(options = {}, pretty = true) {
94182
94182
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
94183
94183
  }
94184
- var urVersion = "1.64.1", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94184
+ var urVersion = "1.65.0", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94185
94185
  var init_trends = __esm(() => {
94186
94186
  init_a2aCardSignature();
94187
94187
  coverage = [
@@ -96984,7 +96984,7 @@ function getAttributionHeader(fingerprint) {
96984
96984
  if (!isAttributionHeaderEnabled()) {
96985
96985
  return "";
96986
96986
  }
96987
- const version2 = `${"1.64.1"}.${fingerprint}`;
96987
+ const version2 = `${"1.65.0"}.${fingerprint}`;
96988
96988
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
96989
96989
  const cch = "";
96990
96990
  const workload = getWorkload();
@@ -154748,7 +154748,7 @@ var init_projectSafety = __esm(() => {
154748
154748
  function getInstruments() {
154749
154749
  if (instruments)
154750
154750
  return instruments;
154751
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.64.1");
154751
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.65.0");
154752
154752
  instruments = {
154753
154753
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
154754
154754
  description: "GenAI operation duration.",
@@ -154846,7 +154846,7 @@ function genAiAgentAttributes() {
154846
154846
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
154847
154847
  "gen_ai.provider.name": "ur",
154848
154848
  "gen_ai.agent.name": "UR-Nexus",
154849
- "gen_ai.agent.version": "1.64.1"
154849
+ "gen_ai.agent.version": "1.65.0"
154850
154850
  };
154851
154851
  }
154852
154852
  function genAiWorkflowAttributes(workflowName) {
@@ -154862,7 +154862,7 @@ function genAiWorkflowAttributes(workflowName) {
154862
154862
  function startGenAiWorkflowSpan(workflowName) {
154863
154863
  const attributes = genAiWorkflowAttributes(workflowName);
154864
154864
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
154865
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.64.1").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
154865
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.65.0").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
154866
154866
  }
154867
154867
  function endGenAiWorkflowSpan(span, options2 = {}) {
154868
154868
  try {
@@ -154900,7 +154900,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
154900
154900
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
154901
154901
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
154902
154902
  }
154903
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.64.1").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
154903
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.65.0").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
154904
154904
  }
154905
154905
  function endGenAiMemorySpan(span, options2 = {}) {
154906
154906
  try {
@@ -206419,7 +206419,7 @@ function getTelemetryAttributes() {
206419
206419
  attributes["session.id"] = sessionId;
206420
206420
  }
206421
206421
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
206422
- attributes["app.version"] = "1.64.1";
206422
+ attributes["app.version"] = "1.65.0";
206423
206423
  }
206424
206424
  const oauthAccount = getOauthAccountInfo();
206425
206425
  if (oauthAccount) {
@@ -252956,7 +252956,7 @@ function getInstallationEnv() {
252956
252956
  return;
252957
252957
  }
252958
252958
  function getURCodeVersion() {
252959
- return "1.64.1";
252959
+ return "1.65.0";
252960
252960
  }
252961
252961
  async function getInstalledVSCodeExtensionVersion(command) {
252962
252962
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -260287,7 +260287,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
260287
260287
  const client2 = new Client({
260288
260288
  name: "ur",
260289
260289
  title: "UR",
260290
- version: "1.64.1",
260290
+ version: "1.65.0",
260291
260291
  description: "UR-Nexus autonomous engineering workflow engine",
260292
260292
  websiteUrl: PRODUCT_URL
260293
260293
  }, {
@@ -260647,7 +260647,7 @@ var init_client5 = __esm(() => {
260647
260647
  const client2 = new Client({
260648
260648
  name: "ur",
260649
260649
  title: "UR",
260650
- version: "1.64.1",
260650
+ version: "1.65.0",
260651
260651
  description: "UR-Nexus autonomous engineering workflow engine",
260652
260652
  websiteUrl: PRODUCT_URL
260653
260653
  }, {
@@ -273248,7 +273248,7 @@ async function createRuntime() {
273248
273248
  bootstrapTelemetry();
273249
273249
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
273250
273250
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
273251
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.64.1"
273251
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.65.0"
273252
273252
  }));
273253
273253
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
273254
273254
  resource,
@@ -273281,11 +273281,11 @@ async function createRuntime() {
273281
273281
  setMeterProvider(meterProvider);
273282
273282
  setLoggerProvider(loggerProvider);
273283
273283
  if (meterProvider) {
273284
- const meter = meterProvider.getMeter("ur-agent", "1.64.1");
273284
+ const meter = meterProvider.getMeter("ur-agent", "1.65.0");
273285
273285
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
273286
273286
  }
273287
273287
  if (loggerProvider) {
273288
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.64.1"));
273288
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.65.0"));
273289
273289
  }
273290
273290
  if (!cleanupRegistered2) {
273291
273291
  cleanupRegistered2 = true;
@@ -273947,9 +273947,9 @@ async function assertMinVersion() {
273947
273947
  if (false) {}
273948
273948
  try {
273949
273949
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
273950
- if (versionConfig.minVersion && lt("1.64.1", versionConfig.minVersion)) {
273950
+ if (versionConfig.minVersion && lt("1.65.0", versionConfig.minVersion)) {
273951
273951
  console.error(`
273952
- It looks like your version of UR (${"1.64.1"}) needs an update.
273952
+ It looks like your version of UR (${"1.65.0"}) needs an update.
273953
273953
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
273954
273954
 
273955
273955
  To update, please run:
@@ -274165,7 +274165,7 @@ async function installGlobalPackage(specificVersion) {
274165
274165
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
274166
274166
  logEvent("tengu_auto_updater_lock_contention", {
274167
274167
  pid: process.pid,
274168
- currentVersion: "1.64.1"
274168
+ currentVersion: "1.65.0"
274169
274169
  });
274170
274170
  return "in_progress";
274171
274171
  }
@@ -274174,7 +274174,7 @@ async function installGlobalPackage(specificVersion) {
274174
274174
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
274175
274175
  logError2(new Error("Windows NPM detected in WSL environment"));
274176
274176
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
274177
- currentVersion: "1.64.1"
274177
+ currentVersion: "1.65.0"
274178
274178
  });
274179
274179
  console.error(`
274180
274180
  Error: Windows NPM detected in WSL
@@ -274709,7 +274709,7 @@ function detectLinuxGlobPatternWarnings() {
274709
274709
  }
274710
274710
  async function getDoctorDiagnostic() {
274711
274711
  const installationType = await getCurrentInstallationType();
274712
- const version2 = typeof MACRO !== "undefined" ? "1.64.1" : "unknown";
274712
+ const version2 = typeof MACRO !== "undefined" ? "1.65.0" : "unknown";
274713
274713
  const installationPath = await getInstallationPath();
274714
274714
  const invokedBinary = getInvokedBinary();
274715
274715
  const multipleInstallations = await detectMultipleInstallations();
@@ -275644,8 +275644,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
275644
275644
  const maxVersion = await getMaxVersion();
275645
275645
  if (maxVersion && gt(version2, maxVersion)) {
275646
275646
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
275647
- if (gte("1.64.1", maxVersion)) {
275648
- logForDebugging(`Native installer: current version ${"1.64.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
275647
+ if (gte("1.65.0", maxVersion)) {
275648
+ logForDebugging(`Native installer: current version ${"1.65.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
275649
275649
  logEvent("tengu_native_update_skipped_max_version", {
275650
275650
  latency_ms: Date.now() - startTime,
275651
275651
  max_version: maxVersion,
@@ -275656,7 +275656,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
275656
275656
  version2 = maxVersion;
275657
275657
  }
275658
275658
  }
275659
- if (!forceReinstall && version2 === "1.64.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
275659
+ if (!forceReinstall && version2 === "1.65.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
275660
275660
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
275661
275661
  logEvent("tengu_native_update_complete", {
275662
275662
  latency_ms: Date.now() - startTime,
@@ -345855,7 +345855,7 @@ function isAnyTracingEnabled() {
345855
345855
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
345856
345856
  }
345857
345857
  function getTracer() {
345858
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.64.1");
345858
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.65.0");
345859
345859
  }
345860
345860
  function createSpanAttributes(spanType, customAttributes = {}) {
345861
345861
  const baseAttributes = getTelemetryAttributes();
@@ -375361,7 +375361,7 @@ function Feedback({
375361
375361
  platform: env2.platform,
375362
375362
  gitRepo: envInfo.isGit,
375363
375363
  terminal: env2.terminal,
375364
- version: "1.64.1",
375364
+ version: "1.65.0",
375365
375365
  transcript: normalizeMessagesForAPI(messages),
375366
375366
  errors: sanitizedErrors,
375367
375367
  lastApiRequest: getLastAPIRequest(),
@@ -375553,7 +375553,7 @@ function Feedback({
375553
375553
  ", ",
375554
375554
  env2.terminal,
375555
375555
  ", v",
375556
- "1.64.1"
375556
+ "1.65.0"
375557
375557
  ]
375558
375558
  }, undefined, true, undefined, this)
375559
375559
  ]
@@ -375659,7 +375659,7 @@ ${sanitizedDescription}
375659
375659
  ` + `**Environment Info**
375660
375660
  ` + `- Platform: ${env2.platform}
375661
375661
  ` + `- Terminal: ${env2.terminal}
375662
- ` + `- Version: ${"1.64.1"}
375662
+ ` + `- Version: ${"1.65.0"}
375663
375663
  ` + `- Feedback ID: ${feedbackId}
375664
375664
  ` + `
375665
375665
  **Errors**
@@ -378769,7 +378769,7 @@ function buildPrimarySection() {
378769
378769
  }, undefined, false, undefined, this);
378770
378770
  return [{
378771
378771
  label: "Version",
378772
- value: "1.64.1"
378772
+ value: "1.65.0"
378773
378773
  }, {
378774
378774
  label: "Session name",
378775
378775
  value: nameValue
@@ -382099,7 +382099,7 @@ function Config({
382099
382099
  }
382100
382100
  }, undefined, false, undefined, this)
382101
382101
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
382102
- currentVersion: "1.64.1",
382102
+ currentVersion: "1.65.0",
382103
382103
  onChoice: (choice) => {
382104
382104
  setShowSubmenu(null);
382105
382105
  setTabsHidden(false);
@@ -382111,7 +382111,7 @@ function Config({
382111
382111
  autoUpdatesChannel: "stable"
382112
382112
  };
382113
382113
  if (choice === "stay") {
382114
- newSettings.minimumVersion = "1.64.1";
382114
+ newSettings.minimumVersion = "1.65.0";
382115
382115
  }
382116
382116
  updateSettingsForSource("userSettings", newSettings);
382117
382117
  setSettingsData((prev_27) => ({
@@ -390175,7 +390175,7 @@ function HelpV2(t0) {
390175
390175
  let t6;
390176
390176
  if ($2[31] !== tabs) {
390177
390177
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
390178
- title: `UR v${"1.64.1"}`,
390178
+ title: `UR v${"1.65.0"}`,
390179
390179
  color: "professionalBlue",
390180
390180
  defaultTab: "general",
390181
390181
  children: tabs
@@ -391092,7 +391092,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
391092
391092
  async function handleInitialize(options2) {
391093
391093
  return {
391094
391094
  name: "UR",
391095
- version: "1.64.1",
391095
+ version: "1.65.0",
391096
391096
  protocolVersion: "0.1.0",
391097
391097
  workspaceRoot: options2.cwd,
391098
391098
  capabilities: {
@@ -408200,7 +408200,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
408200
408200
  return [];
408201
408201
  }
408202
408202
  }
408203
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.64.1") {
408203
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.65.0") {
408204
408204
  if (process.env.USER_TYPE === "ant") {
408205
408205
  const changelog = "";
408206
408206
  if (changelog) {
@@ -408227,7 +408227,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.64.1")
408227
408227
  releaseNotes
408228
408228
  };
408229
408229
  }
408230
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.64.1") {
408230
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.65.0") {
408231
408231
  if (process.env.USER_TYPE === "ant") {
408232
408232
  const changelog = "";
408233
408233
  if (changelog) {
@@ -411084,7 +411084,7 @@ function getRecentActivitySync() {
411084
411084
  return cachedActivity;
411085
411085
  }
411086
411086
  function getLogoDisplayData() {
411087
- const version2 = process.env.DEMO_VERSION ?? "1.64.1";
411087
+ const version2 = process.env.DEMO_VERSION ?? "1.65.0";
411088
411088
  const serverUrl = getDirectConnectServerUrl();
411089
411089
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
411090
411090
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -411968,7 +411968,7 @@ function LogoV2() {
411968
411968
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
411969
411969
  t2 = () => {
411970
411970
  const currentConfig2 = getGlobalConfig();
411971
- if (currentConfig2.lastReleaseNotesSeen === "1.64.1") {
411971
+ if (currentConfig2.lastReleaseNotesSeen === "1.65.0") {
411972
411972
  return;
411973
411973
  }
411974
411974
  saveGlobalConfig(_temp327);
@@ -412653,12 +412653,12 @@ function LogoV2() {
412653
412653
  return t41;
412654
412654
  }
412655
412655
  function _temp327(current) {
412656
- if (current.lastReleaseNotesSeen === "1.64.1") {
412656
+ if (current.lastReleaseNotesSeen === "1.65.0") {
412657
412657
  return current;
412658
412658
  }
412659
412659
  return {
412660
412660
  ...current,
412661
- lastReleaseNotesSeen: "1.64.1"
412661
+ lastReleaseNotesSeen: "1.65.0"
412662
412662
  };
412663
412663
  }
412664
412664
  function _temp241(s_0) {
@@ -429456,7 +429456,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
429456
429456
  if (spec.name !== specName) {
429457
429457
  throw new Error("Agentic CI workflow spec name does not match");
429458
429458
  }
429459
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.64.1" : "1.64.1");
429459
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.65.0" : "1.65.0");
429460
429460
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
429461
429461
  throw new Error("invalid ur-agent package version");
429462
429462
  }
@@ -430449,7 +430449,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
430449
430449
  path: ".github/workflows/ur.yml",
430450
430450
  root: "project",
430451
430451
  content: compileAgenticCiWorkflow("default", {
430452
- packageVersion: typeof MACRO !== "undefined" ? "1.64.1" : "1.64.1"
430452
+ packageVersion: typeof MACRO !== "undefined" ? "1.65.0" : "1.65.0"
430453
430453
  })
430454
430454
  },
430455
430455
  {
@@ -430512,7 +430512,7 @@ function value(tokens, flag) {
430512
430512
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
430513
430513
  }
430514
430514
  function cliVersion() {
430515
- return typeof MACRO !== "undefined" ? "1.64.1" : "1.64.1";
430515
+ return typeof MACRO !== "undefined" ? "1.65.0" : "1.65.0";
430516
430516
  }
430517
430517
  function workflowPath(cwd2) {
430518
430518
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -436368,7 +436368,7 @@ function createAcpStdioApp(deps) {
436368
436368
  }
436369
436369
  },
436370
436370
  authMethods: [],
436371
- agentInfo: { name: "UR-Nexus", version: "1.64.1" }
436371
+ agentInfo: { name: "UR-Nexus", version: "1.65.0" }
436372
436372
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
436373
436373
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
436374
436374
  await runtime2.announce({
@@ -436465,7 +436465,7 @@ function createAcpStdioAgent(deps) {
436465
436465
  }
436466
436466
  },
436467
436467
  authMethods: [],
436468
- agentInfo: { name: "UR-Nexus", version: "1.64.1" }
436468
+ agentInfo: { name: "UR-Nexus", version: "1.65.0" }
436469
436469
  });
436470
436470
  return;
436471
436471
  case "authenticate":
@@ -644839,7 +644839,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
644839
644839
  smapsRollup,
644840
644840
  platform: process.platform,
644841
644841
  nodeVersion: process.version,
644842
- ccVersion: "1.64.1"
644842
+ ccVersion: "1.65.0"
644843
644843
  };
644844
644844
  }
644845
644845
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -645419,7 +645419,7 @@ var init_bridge_kick = __esm(() => {
645419
645419
  var call153 = async () => {
645420
645420
  return {
645421
645421
  type: "text",
645422
- value: "1.64.1"
645422
+ value: "1.65.0"
645423
645423
  };
645424
645424
  }, version2, version_default;
645425
645425
  var init_version = __esm(() => {
@@ -656490,7 +656490,7 @@ function generateHtmlReport(data, insights) {
656490
656490
  </html>`;
656491
656491
  }
656492
656492
  function buildExportData(data, insights, facets, remoteStats) {
656493
- const version3 = typeof MACRO !== "undefined" ? "1.64.1" : "unknown";
656493
+ const version3 = typeof MACRO !== "undefined" ? "1.65.0" : "unknown";
656494
656494
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
656495
656495
  const facets_summary = {
656496
656496
  total: facets.size,
@@ -660801,7 +660801,7 @@ var init_sessionStorage = __esm(() => {
660801
660801
  init_settings2();
660802
660802
  init_slowOperations();
660803
660803
  init_uuid();
660804
- VERSION7 = typeof MACRO !== "undefined" ? "1.64.1" : "unknown";
660804
+ VERSION7 = typeof MACRO !== "undefined" ? "1.65.0" : "unknown";
660805
660805
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
660806
660806
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
660807
660807
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -662016,7 +662016,7 @@ var init_filesystem = __esm(() => {
662016
662016
  });
662017
662017
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
662018
662018
  const nonce = randomBytes20(16).toString("hex");
662019
- return join232(getURTempDir(), "bundled-skills", "1.64.1", nonce);
662019
+ return join232(getURTempDir(), "bundled-skills", "1.65.0", nonce);
662020
662020
  });
662021
662021
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
662022
662022
  });
@@ -668311,7 +668311,7 @@ function computeFingerprint(messageText2, version3) {
668311
668311
  }
668312
668312
  function computeFingerprintFromMessages(messages) {
668313
668313
  const firstMessageText = extractFirstMessageText(messages);
668314
- return computeFingerprint(firstMessageText, "1.64.1");
668314
+ return computeFingerprint(firstMessageText, "1.65.0");
668315
668315
  }
668316
668316
  var FINGERPRINT_SALT = "59cf53e54c78";
668317
668317
  var init_fingerprint = () => {};
@@ -670207,7 +670207,7 @@ async function sideQuery(opts) {
670207
670207
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
670208
670208
  }
670209
670209
  const messageText2 = extractFirstUserMessageText(messages);
670210
- const fingerprint2 = computeFingerprint(messageText2, "1.64.1");
670210
+ const fingerprint2 = computeFingerprint(messageText2, "1.65.0");
670211
670211
  const attributionHeader = getAttributionHeader(fingerprint2);
670212
670212
  const systemBlocks = [
670213
670213
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -674978,7 +674978,7 @@ function buildSystemInitMessage(inputs) {
674978
674978
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
674979
674979
  apiKeySource: getURHQApiKeyWithSource().source,
674980
674980
  betas: getSdkBetas(),
674981
- ur_version: "1.64.1",
674981
+ ur_version: "1.65.0",
674982
674982
  output_style: outputStyle2,
674983
674983
  agents: inputs.agents.map((agent2) => agent2.agentType),
674984
674984
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -688838,7 +688838,7 @@ var init_useVoiceEnabled = __esm(() => {
688838
688838
  function getSemverPart(version3) {
688839
688839
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
688840
688840
  }
688841
- function useUpdateNotification(updatedVersion, initialVersion = "1.64.1") {
688841
+ function useUpdateNotification(updatedVersion, initialVersion = "1.65.0") {
688842
688842
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
688843
688843
  if (!updatedVersion) {
688844
688844
  return null;
@@ -688887,7 +688887,7 @@ function AutoUpdater({
688887
688887
  return;
688888
688888
  }
688889
688889
  if (false) {}
688890
- const currentVersion = "1.64.1";
688890
+ const currentVersion = "1.65.0";
688891
688891
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
688892
688892
  let latestVersion = await getLatestVersion(channel);
688893
688893
  const isDisabled = isAutoUpdaterDisabled();
@@ -689116,12 +689116,12 @@ function NativeAutoUpdater({
689116
689116
  logEvent("tengu_native_auto_updater_start", {});
689117
689117
  try {
689118
689118
  const maxVersion = await getMaxVersion();
689119
- if (maxVersion && gt("1.64.1", maxVersion)) {
689119
+ if (maxVersion && gt("1.65.0", maxVersion)) {
689120
689120
  const msg = await getMaxVersionMessage();
689121
689121
  setMaxVersionIssue(msg ?? "affects your version");
689122
689122
  }
689123
689123
  const result = await installLatest(channel);
689124
- const currentVersion = "1.64.1";
689124
+ const currentVersion = "1.65.0";
689125
689125
  const latencyMs = Date.now() - startTime;
689126
689126
  if (result.lockFailed) {
689127
689127
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -689258,17 +689258,17 @@ function PackageManagerAutoUpdater(t0) {
689258
689258
  const maxVersion = await getMaxVersion();
689259
689259
  if (maxVersion && latest && gt(latest, maxVersion)) {
689260
689260
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
689261
- if (gte("1.64.1", maxVersion)) {
689262
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.64.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
689261
+ if (gte("1.65.0", maxVersion)) {
689262
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.65.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
689263
689263
  setUpdateAvailable(false);
689264
689264
  return;
689265
689265
  }
689266
689266
  latest = maxVersion;
689267
689267
  }
689268
- const hasUpdate = latest && !gte("1.64.1", latest) && !shouldSkipVersion(latest);
689268
+ const hasUpdate = latest && !gte("1.65.0", latest) && !shouldSkipVersion(latest);
689269
689269
  setUpdateAvailable(!!hasUpdate);
689270
689270
  if (hasUpdate) {
689271
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.64.1"} -> ${latest}`);
689271
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.65.0"} -> ${latest}`);
689272
689272
  }
689273
689273
  };
689274
689274
  $2[0] = t1;
@@ -689302,7 +689302,7 @@ function PackageManagerAutoUpdater(t0) {
689302
689302
  wrap: "truncate",
689303
689303
  children: [
689304
689304
  "currentVersion: ",
689305
- "1.64.1"
689305
+ "1.65.0"
689306
689306
  ]
689307
689307
  }, undefined, true, undefined, this);
689308
689308
  $2[3] = verbose;
@@ -699999,7 +699999,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
699999
699999
  project_dir: getOriginalCwd(),
700000
700000
  added_dirs: addedDirs
700001
700001
  },
700002
- version: "1.64.1",
700002
+ version: "1.65.0",
700003
700003
  output_style: {
700004
700004
  name: outputStyleName
700005
700005
  },
@@ -700082,7 +700082,7 @@ function StatusLineInner({
700082
700082
  const taskValues = Object.values(tasks2);
700083
700083
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
700084
700084
  const defaultStatusLineText = buildDefaultStatusBar({
700085
- version: "1.64.1",
700085
+ version: "1.65.0",
700086
700086
  providerLabel: providerRuntime.providerLabel,
700087
700087
  authMode: providerRuntime.authLabel,
700088
700088
  model: providerRuntime.model ?? renderModelName(mainLoopModel),
@@ -712225,7 +712225,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
712225
712225
  } catch {}
712226
712226
  const data = {
712227
712227
  trigger: trigger2,
712228
- version: "1.64.1",
712228
+ version: "1.65.0",
712229
712229
  platform: process.platform,
712230
712230
  transcript,
712231
712231
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -724505,7 +724505,7 @@ function WelcomeV2() {
724505
724505
  dimColor: true,
724506
724506
  children: [
724507
724507
  "v",
724508
- "1.64.1"
724508
+ "1.65.0"
724509
724509
  ]
724510
724510
  }, undefined, true, undefined, this)
724511
724511
  ]
@@ -725765,7 +725765,7 @@ function completeOnboarding() {
725765
725765
  saveGlobalConfig((current) => ({
725766
725766
  ...current,
725767
725767
  hasCompletedOnboarding: true,
725768
- lastOnboardingVersion: "1.64.1"
725768
+ lastOnboardingVersion: "1.65.0"
725769
725769
  }));
725770
725770
  }
725771
725771
  function showDialog(root2, renderer) {
@@ -730809,7 +730809,7 @@ function appendToLog(path24, message) {
730809
730809
  cwd: getFsImplementation().cwd(),
730810
730810
  userType: process.env.USER_TYPE,
730811
730811
  sessionId: getSessionId(),
730812
- version: "1.64.1"
730812
+ version: "1.65.0"
730813
730813
  };
730814
730814
  getLogWriter(path24).write(messageWithTimestamp);
730815
730815
  }
@@ -734968,8 +734968,8 @@ async function getEnvLessBridgeConfig() {
734968
734968
  }
734969
734969
  async function checkEnvLessBridgeMinVersion() {
734970
734970
  const cfg = await getEnvLessBridgeConfig();
734971
- if (cfg.min_version && lt("1.64.1", cfg.min_version)) {
734972
- return `Your version of UR (${"1.64.1"}) is too old for Remote Control.
734971
+ if (cfg.min_version && lt("1.65.0", cfg.min_version)) {
734972
+ return `Your version of UR (${"1.65.0"}) is too old for Remote Control.
734973
734973
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
734974
734974
  }
734975
734975
  return null;
@@ -735443,7 +735443,7 @@ async function initBridgeCore(params) {
735443
735443
  const rawApi = createBridgeApiClient({
735444
735444
  baseUrl,
735445
735445
  getAccessToken,
735446
- runnerVersion: "1.64.1",
735446
+ runnerVersion: "1.65.0",
735447
735447
  onDebug: logForDebugging,
735448
735448
  onAuth401,
735449
735449
  getTrustedDeviceToken
@@ -744916,7 +744916,7 @@ function getAgUiCapabilities() {
744916
744916
  name: "UR-Nexus",
744917
744917
  type: "ur-nexus",
744918
744918
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
744919
- version: "1.64.1",
744919
+ version: "1.65.0",
744920
744920
  provider: "UR",
744921
744921
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
744922
744922
  },
@@ -746056,7 +746056,7 @@ function createMCPServer(cwd4, debug2, verbose) {
746056
746056
  };
746057
746057
  const server2 = new Server({
746058
746058
  name: "ur-nexus",
746059
- version: "1.64.1"
746059
+ version: "1.65.0"
746060
746060
  }, {
746061
746061
  capabilities: {
746062
746062
  tools: {}
@@ -747214,7 +747214,7 @@ function thrownResponse(error40) {
747214
747214
  }
747215
747215
  async function createUrMcp2026Runtime(options4) {
747216
747216
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
747217
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.64.1" }, { capabilities: {} });
747217
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.65.0" }, { capabilities: {} });
747218
747218
  const [clientTransport, serverTransport] = createLinkedTransportPair();
747219
747219
  try {
747220
747220
  await server2.connect(serverTransport);
@@ -747225,7 +747225,7 @@ async function createUrMcp2026Runtime(options4) {
747225
747225
  }
747226
747226
  const runtime2 = new Mcp2026Runtime({
747227
747227
  cwd: options4.cwd,
747228
- version: "1.64.1",
747228
+ version: "1.65.0",
747229
747229
  backend: {
747230
747230
  listTools: async () => {
747231
747231
  const listed = await client2.listTools();
@@ -749358,7 +749358,7 @@ async function update() {
749358
749358
  logEvent("tengu_update_check", {});
749359
749359
  const diagnostic2 = await getDoctorDiagnostic();
749360
749360
  const result = await checkUpgradeStatus({
749361
- currentVersion: "1.64.1",
749361
+ currentVersion: "1.65.0",
749362
749362
  packageName: UR_AGENT_PACKAGE_NAME,
749363
749363
  installationType: diagnostic2.installationType,
749364
749364
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -750674,7 +750674,7 @@ ${customInstructions}` : customInstructions;
750674
750674
  }
750675
750675
  }
750676
750676
  logForDiagnosticsNoPII("info", "started", {
750677
- version: "1.64.1",
750677
+ version: "1.65.0",
750678
750678
  is_native_binary: isInBundledMode()
750679
750679
  });
750680
750680
  registerCleanup(async () => {
@@ -751460,7 +751460,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
751460
751460
  pendingHookMessages
751461
751461
  }, renderAndRun);
751462
751462
  }
751463
- }).version("1.64.1 (UR-Nexus)", "-v, --version", "Output the version number");
751463
+ }).version("1.65.0 (UR-Nexus)", "-v, --version", "Output the version number");
751464
751464
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
751465
751465
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
751466
751466
  if (canUserConfigureAdvisor()) {
@@ -752512,7 +752512,7 @@ if (false) {}
752512
752512
  async function main2() {
752513
752513
  const args = process.argv.slice(2);
752514
752514
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
752515
- console.log(`${"1.64.1"} (UR-Nexus)`);
752515
+ console.log(`${"1.65.0"} (UR-Nexus)`);
752516
752516
  return;
752517
752517
  }
752518
752518
  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.64.1</p>
48
+ <p class="eyebrow">Version 1.65.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.64.1"
10
+ version = "1.65.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.64.1",
5
+ "version": "1.65.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.64.1",
3
+ "version": "1.65.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",