ur-agent 1.54.0 → 1.54.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.54.1
4
+
5
+ - Fixed `/speak`, `/computer`, `/memory-suggest`, `/import-session` and
6
+ `/permission-profile` being unreachable from the shell. They were registered
7
+ as slash commands but never wired into the Commander tree in `main.tsx`, so
8
+ `ur speak "hi"` was parsed as the interactive prompt and failed with "too
9
+ many arguments". All five now have shell subcommands with their own flags.
10
+ - Fixed argument parsing in the three new commands. The shell wiring quotes
11
+ every argument, so `split(/\s+/)` yielded `"'100'"` rather than `100` and
12
+ numeric arguments were rejected. They now use the quote-aware
13
+ `parseArguments`, matching every other local command.
14
+ - Quieted `scripts/backfill-releases.mjs`: `gh release view` writes "release
15
+ not found" for each unpublished tag, which is the expected answer during a
16
+ scan and was burying the plan in twenty lines of noise.
17
+
3
18
  ## 1.54.0
4
19
 
5
20
  - Wired the 1.53.0 capability libraries into runnable commands. They were
package/dist/cli.js CHANGED
@@ -75091,7 +75091,7 @@ var init_auth = __esm(() => {
75091
75091
 
75092
75092
  // src/utils/userAgent.ts
75093
75093
  function getURCodeUserAgent() {
75094
- return `ur/${"1.54.0"}`;
75094
+ return `ur/${"1.54.1"}`;
75095
75095
  }
75096
75096
 
75097
75097
  // src/utils/workloadContext.ts
@@ -75113,7 +75113,7 @@ function getUserAgent() {
75113
75113
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
75114
75114
  const workload = getWorkload();
75115
75115
  const workloadSuffix = workload ? `, workload/${workload}` : "";
75116
- return `ur-cli/${"1.54.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75116
+ return `ur-cli/${"1.54.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75117
75117
  }
75118
75118
  function getMCPUserAgent() {
75119
75119
  const parts = [];
@@ -75127,7 +75127,7 @@ function getMCPUserAgent() {
75127
75127
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
75128
75128
  }
75129
75129
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
75130
- return `ur/${"1.54.0"}${suffix}`;
75130
+ return `ur/${"1.54.1"}${suffix}`;
75131
75131
  }
75132
75132
  function getWebFetchUserAgent() {
75133
75133
  return `UR-User (${getURCodeUserAgent()})`;
@@ -75265,7 +75265,7 @@ var init_user = __esm(() => {
75265
75265
  deviceId,
75266
75266
  sessionId: getSessionId(),
75267
75267
  email: getEmail(),
75268
- appVersion: "1.54.0",
75268
+ appVersion: "1.54.1",
75269
75269
  platform: getHostPlatformForAnalytics(),
75270
75270
  organizationUuid,
75271
75271
  accountUuid,
@@ -83465,7 +83465,7 @@ var init_metadata = __esm(() => {
83465
83465
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
83466
83466
  WHITESPACE_REGEX = /\s+/;
83467
83467
  getVersionBase = memoize_default(() => {
83468
- const match = "1.54.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83468
+ const match = "1.54.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83469
83469
  return match ? match[0] : undefined;
83470
83470
  });
83471
83471
  buildEnvContext = memoize_default(async () => {
@@ -83505,7 +83505,7 @@ var init_metadata = __esm(() => {
83505
83505
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
83506
83506
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
83507
83507
  isURAiAuth: isURAISubscriber(),
83508
- version: "1.54.0",
83508
+ version: "1.54.1",
83509
83509
  versionBase: getVersionBase(),
83510
83510
  buildTime: "",
83511
83511
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -84175,7 +84175,7 @@ function initialize1PEventLogging() {
84175
84175
  const platform2 = getPlatform();
84176
84176
  const attributes = {
84177
84177
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
84178
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.54.0"
84178
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.54.1"
84179
84179
  };
84180
84180
  if (platform2 === "wsl") {
84181
84181
  const wslVersion = getWslVersion();
@@ -84203,7 +84203,7 @@ function initialize1PEventLogging() {
84203
84203
  })
84204
84204
  ]
84205
84205
  });
84206
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.54.0");
84206
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.54.1");
84207
84207
  }
84208
84208
  async function reinitialize1PEventLoggingIfConfigChanged() {
84209
84209
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -94029,7 +94029,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
94029
94029
  function formatA2AAgentCard(options = {}, pretty = true) {
94030
94030
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
94031
94031
  }
94032
- var urVersion = "1.54.0", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94032
+ var urVersion = "1.54.1", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94033
94033
  var init_trends = __esm(() => {
94034
94034
  init_a2aCardSignature();
94035
94035
  coverage = [
@@ -96830,7 +96830,7 @@ function getAttributionHeader(fingerprint) {
96830
96830
  if (!isAttributionHeaderEnabled()) {
96831
96831
  return "";
96832
96832
  }
96833
- const version2 = `${"1.54.0"}.${fingerprint}`;
96833
+ const version2 = `${"1.54.1"}.${fingerprint}`;
96834
96834
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
96835
96835
  const cch = "";
96836
96836
  const workload = getWorkload();
@@ -154419,7 +154419,7 @@ var init_projectSafety = __esm(() => {
154419
154419
  function getInstruments() {
154420
154420
  if (instruments)
154421
154421
  return instruments;
154422
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.54.0");
154422
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.54.1");
154423
154423
  instruments = {
154424
154424
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
154425
154425
  description: "GenAI operation duration.",
@@ -154517,7 +154517,7 @@ function genAiAgentAttributes() {
154517
154517
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
154518
154518
  "gen_ai.provider.name": "ur",
154519
154519
  "gen_ai.agent.name": "UR-Nexus",
154520
- "gen_ai.agent.version": "1.54.0"
154520
+ "gen_ai.agent.version": "1.54.1"
154521
154521
  };
154522
154522
  }
154523
154523
  function genAiWorkflowAttributes(workflowName) {
@@ -154533,7 +154533,7 @@ function genAiWorkflowAttributes(workflowName) {
154533
154533
  function startGenAiWorkflowSpan(workflowName) {
154534
154534
  const attributes = genAiWorkflowAttributes(workflowName);
154535
154535
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
154536
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.54.0").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
154536
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.54.1").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
154537
154537
  }
154538
154538
  function endGenAiWorkflowSpan(span, options2 = {}) {
154539
154539
  try {
@@ -154571,7 +154571,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
154571
154571
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
154572
154572
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
154573
154573
  }
154574
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.54.0").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
154574
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.54.1").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
154575
154575
  }
154576
154576
  function endGenAiMemorySpan(span, options2 = {}) {
154577
154577
  try {
@@ -206090,7 +206090,7 @@ function getTelemetryAttributes() {
206090
206090
  attributes["session.id"] = sessionId;
206091
206091
  }
206092
206092
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
206093
- attributes["app.version"] = "1.54.0";
206093
+ attributes["app.version"] = "1.54.1";
206094
206094
  }
206095
206095
  const oauthAccount = getOauthAccountInfo();
206096
206096
  if (oauthAccount) {
@@ -241590,7 +241590,7 @@ function getInstallationEnv() {
241590
241590
  return;
241591
241591
  }
241592
241592
  function getURCodeVersion() {
241593
- return "1.54.0";
241593
+ return "1.54.1";
241594
241594
  }
241595
241595
  async function getInstalledVSCodeExtensionVersion(command) {
241596
241596
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -248921,7 +248921,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
248921
248921
  const client2 = new Client({
248922
248922
  name: "ur",
248923
248923
  title: "UR",
248924
- version: "1.54.0",
248924
+ version: "1.54.1",
248925
248925
  description: "UR-Nexus autonomous engineering workflow engine",
248926
248926
  websiteUrl: PRODUCT_URL
248927
248927
  }, {
@@ -249281,7 +249281,7 @@ var init_client5 = __esm(() => {
249281
249281
  const client2 = new Client({
249282
249282
  name: "ur",
249283
249283
  title: "UR",
249284
- version: "1.54.0",
249284
+ version: "1.54.1",
249285
249285
  description: "UR-Nexus autonomous engineering workflow engine",
249286
249286
  websiteUrl: PRODUCT_URL
249287
249287
  }, {
@@ -261882,7 +261882,7 @@ async function createRuntime() {
261882
261882
  bootstrapTelemetry();
261883
261883
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
261884
261884
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
261885
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.54.0"
261885
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.54.1"
261886
261886
  }));
261887
261887
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
261888
261888
  resource,
@@ -261915,11 +261915,11 @@ async function createRuntime() {
261915
261915
  setMeterProvider(meterProvider);
261916
261916
  setLoggerProvider(loggerProvider);
261917
261917
  if (meterProvider) {
261918
- const meter = meterProvider.getMeter("ur-agent", "1.54.0");
261918
+ const meter = meterProvider.getMeter("ur-agent", "1.54.1");
261919
261919
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
261920
261920
  }
261921
261921
  if (loggerProvider) {
261922
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.54.0"));
261922
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.54.1"));
261923
261923
  }
261924
261924
  if (!cleanupRegistered2) {
261925
261925
  cleanupRegistered2 = true;
@@ -262581,9 +262581,9 @@ async function assertMinVersion() {
262581
262581
  if (false) {}
262582
262582
  try {
262583
262583
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
262584
- if (versionConfig.minVersion && lt("1.54.0", versionConfig.minVersion)) {
262584
+ if (versionConfig.minVersion && lt("1.54.1", versionConfig.minVersion)) {
262585
262585
  console.error(`
262586
- It looks like your version of UR (${"1.54.0"}) needs an update.
262586
+ It looks like your version of UR (${"1.54.1"}) needs an update.
262587
262587
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
262588
262588
 
262589
262589
  To update, please run:
@@ -262799,7 +262799,7 @@ async function installGlobalPackage(specificVersion) {
262799
262799
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
262800
262800
  logEvent("tengu_auto_updater_lock_contention", {
262801
262801
  pid: process.pid,
262802
- currentVersion: "1.54.0"
262802
+ currentVersion: "1.54.1"
262803
262803
  });
262804
262804
  return "in_progress";
262805
262805
  }
@@ -262808,7 +262808,7 @@ async function installGlobalPackage(specificVersion) {
262808
262808
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
262809
262809
  logError2(new Error("Windows NPM detected in WSL environment"));
262810
262810
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
262811
- currentVersion: "1.54.0"
262811
+ currentVersion: "1.54.1"
262812
262812
  });
262813
262813
  console.error(`
262814
262814
  Error: Windows NPM detected in WSL
@@ -263343,7 +263343,7 @@ function detectLinuxGlobPatternWarnings() {
263343
263343
  }
263344
263344
  async function getDoctorDiagnostic() {
263345
263345
  const installationType = await getCurrentInstallationType();
263346
- const version2 = typeof MACRO !== "undefined" ? "1.54.0" : "unknown";
263346
+ const version2 = typeof MACRO !== "undefined" ? "1.54.1" : "unknown";
263347
263347
  const installationPath = await getInstallationPath();
263348
263348
  const invokedBinary = getInvokedBinary();
263349
263349
  const multipleInstallations = await detectMultipleInstallations();
@@ -264278,8 +264278,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
264278
264278
  const maxVersion = await getMaxVersion();
264279
264279
  if (maxVersion && gt(version2, maxVersion)) {
264280
264280
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
264281
- if (gte("1.54.0", maxVersion)) {
264282
- logForDebugging(`Native installer: current version ${"1.54.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
264281
+ if (gte("1.54.1", maxVersion)) {
264282
+ logForDebugging(`Native installer: current version ${"1.54.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
264283
264283
  logEvent("tengu_native_update_skipped_max_version", {
264284
264284
  latency_ms: Date.now() - startTime,
264285
264285
  max_version: maxVersion,
@@ -264290,7 +264290,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
264290
264290
  version2 = maxVersion;
264291
264291
  }
264292
264292
  }
264293
- if (!forceReinstall && version2 === "1.54.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
264293
+ if (!forceReinstall && version2 === "1.54.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
264294
264294
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
264295
264295
  logEvent("tengu_native_update_complete", {
264296
264296
  latency_ms: Date.now() - startTime,
@@ -334093,7 +334093,7 @@ function isAnyTracingEnabled() {
334093
334093
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
334094
334094
  }
334095
334095
  function getTracer() {
334096
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.54.0");
334096
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.54.1");
334097
334097
  }
334098
334098
  function createSpanAttributes(spanType, customAttributes = {}) {
334099
334099
  const baseAttributes = getTelemetryAttributes();
@@ -363163,7 +363163,7 @@ function Feedback({
363163
363163
  platform: env2.platform,
363164
363164
  gitRepo: envInfo.isGit,
363165
363165
  terminal: env2.terminal,
363166
- version: "1.54.0",
363166
+ version: "1.54.1",
363167
363167
  transcript: normalizeMessagesForAPI(messages),
363168
363168
  errors: sanitizedErrors,
363169
363169
  lastApiRequest: getLastAPIRequest(),
@@ -363355,7 +363355,7 @@ function Feedback({
363355
363355
  ", ",
363356
363356
  env2.terminal,
363357
363357
  ", v",
363358
- "1.54.0"
363358
+ "1.54.1"
363359
363359
  ]
363360
363360
  }, undefined, true, undefined, this)
363361
363361
  ]
@@ -363461,7 +363461,7 @@ ${sanitizedDescription}
363461
363461
  ` + `**Environment Info**
363462
363462
  ` + `- Platform: ${env2.platform}
363463
363463
  ` + `- Terminal: ${env2.terminal}
363464
- ` + `- Version: ${"1.54.0"}
363464
+ ` + `- Version: ${"1.54.1"}
363465
363465
  ` + `- Feedback ID: ${feedbackId}
363466
363466
  ` + `
363467
363467
  **Errors**
@@ -366571,7 +366571,7 @@ function buildPrimarySection() {
366571
366571
  }, undefined, false, undefined, this);
366572
366572
  return [{
366573
366573
  label: "Version",
366574
- value: "1.54.0"
366574
+ value: "1.54.1"
366575
366575
  }, {
366576
366576
  label: "Session name",
366577
366577
  value: nameValue
@@ -369901,7 +369901,7 @@ function Config({
369901
369901
  }
369902
369902
  }, undefined, false, undefined, this)
369903
369903
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime178.jsxDEV(ChannelDowngradeDialog, {
369904
- currentVersion: "1.54.0",
369904
+ currentVersion: "1.54.1",
369905
369905
  onChoice: (choice) => {
369906
369906
  setShowSubmenu(null);
369907
369907
  setTabsHidden(false);
@@ -369913,7 +369913,7 @@ function Config({
369913
369913
  autoUpdatesChannel: "stable"
369914
369914
  };
369915
369915
  if (choice === "stay") {
369916
- newSettings.minimumVersion = "1.54.0";
369916
+ newSettings.minimumVersion = "1.54.1";
369917
369917
  }
369918
369918
  updateSettingsForSource("userSettings", newSettings);
369919
369919
  setSettingsData((prev_27) => ({
@@ -377977,7 +377977,7 @@ function HelpV2(t0) {
377977
377977
  let t6;
377978
377978
  if ($2[31] !== tabs) {
377979
377979
  t6 = /* @__PURE__ */ jsx_dev_runtime205.jsxDEV(Tabs, {
377980
- title: `UR v${"1.54.0"}`,
377980
+ title: `UR v${"1.54.1"}`,
377981
377981
  color: "professionalBlue",
377982
377982
  defaultTab: "general",
377983
377983
  children: tabs
@@ -378894,7 +378894,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
378894
378894
  async function handleInitialize(options2) {
378895
378895
  return {
378896
378896
  name: "UR",
378897
- version: "1.54.0",
378897
+ version: "1.54.1",
378898
378898
  protocolVersion: "0.1.0",
378899
378899
  workspaceRoot: options2.cwd,
378900
378900
  capabilities: {
@@ -396002,7 +396002,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
396002
396002
  return [];
396003
396003
  }
396004
396004
  }
396005
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.54.0") {
396005
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.54.1") {
396006
396006
  if (process.env.USER_TYPE === "ant") {
396007
396007
  const changelog = "";
396008
396008
  if (changelog) {
@@ -396029,7 +396029,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.54.0")
396029
396029
  releaseNotes
396030
396030
  };
396031
396031
  }
396032
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.54.0") {
396032
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.54.1") {
396033
396033
  if (process.env.USER_TYPE === "ant") {
396034
396034
  const changelog = "";
396035
396035
  if (changelog) {
@@ -398886,7 +398886,7 @@ function getRecentActivitySync() {
398886
398886
  return cachedActivity;
398887
398887
  }
398888
398888
  function getLogoDisplayData() {
398889
- const version2 = process.env.DEMO_VERSION ?? "1.54.0";
398889
+ const version2 = process.env.DEMO_VERSION ?? "1.54.1";
398890
398890
  const serverUrl = getDirectConnectServerUrl();
398891
398891
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
398892
398892
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -399770,7 +399770,7 @@ function LogoV2() {
399770
399770
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
399771
399771
  t2 = () => {
399772
399772
  const currentConfig2 = getGlobalConfig();
399773
- if (currentConfig2.lastReleaseNotesSeen === "1.54.0") {
399773
+ if (currentConfig2.lastReleaseNotesSeen === "1.54.1") {
399774
399774
  return;
399775
399775
  }
399776
399776
  saveGlobalConfig(_temp327);
@@ -400455,12 +400455,12 @@ function LogoV2() {
400455
400455
  return t41;
400456
400456
  }
400457
400457
  function _temp327(current) {
400458
- if (current.lastReleaseNotesSeen === "1.54.0") {
400458
+ if (current.lastReleaseNotesSeen === "1.54.1") {
400459
400459
  return current;
400460
400460
  }
400461
400461
  return {
400462
400462
  ...current,
400463
- lastReleaseNotesSeen: "1.54.0"
400463
+ lastReleaseNotesSeen: "1.54.1"
400464
400464
  };
400465
400465
  }
400466
400466
  function _temp241(s_0) {
@@ -407080,7 +407080,7 @@ var exec4 = async (file2, args, input) => {
407080
407080
  });
407081
407081
  return { code: result.code, stderr: result.stderr };
407082
407082
  }, call32 = async (args) => {
407083
- const tokens = args.trim().split(/\s+/).filter(Boolean);
407083
+ const tokens = parseArguments2(args);
407084
407084
  const voice = flagValue(tokens, "--voice");
407085
407085
  const rawRate = flagValue(tokens, "--rate");
407086
407086
  const rate = rawRate ? Number.parseInt(rawRate, 10) : undefined;
@@ -407120,6 +407120,7 @@ Install a synthesiser, for example: apt install speech-dispatcher` : "";
407120
407120
  };
407121
407121
  };
407122
407122
  var init_speak = __esm(() => {
407123
+ init_argumentSubstitution();
407123
407124
  init_execFileNoThrow();
407124
407125
  });
407125
407126
 
@@ -407263,7 +407264,7 @@ var call33 = async (args) => {
407263
407264
  value: `Desktop control is not supported on ${process.platform}.`
407264
407265
  };
407265
407266
  }
407266
- const tokens = args.trim().split(/\s+/).filter(Boolean);
407267
+ const tokens = parseArguments2(args);
407267
407268
  const approved = tokens.includes("--yes");
407268
407269
  const rest = tokens.filter((token) => token !== "--yes" && token !== "--right");
407269
407270
  const rightClick = tokens.includes("--right");
@@ -407344,6 +407345,7 @@ var call33 = async (args) => {
407344
407345
  };
407345
407346
  };
407346
407347
  var init_computer = __esm(() => {
407348
+ init_argumentSubstitution();
407347
407349
  init_execFileNoThrow();
407348
407350
  });
407349
407351
 
@@ -407506,7 +407508,7 @@ function recentUserMessages(path19, limit) {
407506
407508
  return messages.slice(-limit);
407507
407509
  }
407508
407510
  var call34 = async (args) => {
407509
- const tokens = args.trim().split(/\s+/).filter(Boolean);
407511
+ const tokens = parseArguments2(args);
407510
407512
  const turns = Number.parseInt(flagValue2(tokens, "--turns") ?? "30", 10);
407511
407513
  const minConfidence = Number.parseFloat(flagValue2(tokens, "--min-confidence") ?? "0.75");
407512
407514
  if (!Number.isFinite(turns) || turns < 1) {
@@ -407551,6 +407553,7 @@ var call34 = async (args) => {
407551
407553
  };
407552
407554
  };
407553
407555
  var init_memory_suggest = __esm(() => {
407556
+ init_argumentSubstitution();
407554
407557
  init_extractFacts();
407555
407558
  init_sessionStorage();
407556
407559
  });
@@ -417498,7 +417501,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
417498
417501
  if (spec.name !== specName) {
417499
417502
  throw new Error("Agentic CI workflow spec name does not match");
417500
417503
  }
417501
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.54.0" : "1.54.0");
417504
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.54.1" : "1.54.1");
417502
417505
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
417503
417506
  throw new Error("invalid ur-agent package version");
417504
417507
  }
@@ -418491,7 +418494,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
418491
418494
  path: ".github/workflows/ur.yml",
418492
418495
  root: "project",
418493
418496
  content: compileAgenticCiWorkflow("default", {
418494
- packageVersion: typeof MACRO !== "undefined" ? "1.54.0" : "1.54.0"
418497
+ packageVersion: typeof MACRO !== "undefined" ? "1.54.1" : "1.54.1"
418495
418498
  })
418496
418499
  },
418497
418500
  {
@@ -418554,7 +418557,7 @@ function value(tokens, flag) {
418554
418557
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
418555
418558
  }
418556
418559
  function cliVersion() {
418557
- return typeof MACRO !== "undefined" ? "1.54.0" : "1.54.0";
418560
+ return typeof MACRO !== "undefined" ? "1.54.1" : "1.54.1";
418558
418561
  }
418559
418562
  function workflowPath(cwd2) {
418560
418563
  return join156(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -424410,7 +424413,7 @@ function createAcpStdioApp(deps) {
424410
424413
  }
424411
424414
  },
424412
424415
  authMethods: [],
424413
- agentInfo: { name: "UR-Nexus", version: "1.54.0" }
424416
+ agentInfo: { name: "UR-Nexus", version: "1.54.1" }
424414
424417
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
424415
424418
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
424416
424419
  await runtime2.announce({
@@ -424507,7 +424510,7 @@ function createAcpStdioAgent(deps) {
424507
424510
  }
424508
424511
  },
424509
424512
  authMethods: [],
424510
- agentInfo: { name: "UR-Nexus", version: "1.54.0" }
424513
+ agentInfo: { name: "UR-Nexus", version: "1.54.1" }
424511
424514
  });
424512
424515
  return;
424513
424516
  case "authenticate":
@@ -631979,7 +631982,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
631979
631982
  smapsRollup,
631980
631983
  platform: process.platform,
631981
631984
  nodeVersion: process.version,
631982
- ccVersion: "1.54.0"
631985
+ ccVersion: "1.54.1"
631983
631986
  };
631984
631987
  }
631985
631988
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -632559,7 +632562,7 @@ var init_bridge_kick = __esm(() => {
632559
632562
  var call149 = async () => {
632560
632563
  return {
632561
632564
  type: "text",
632562
- value: "1.54.0"
632565
+ value: "1.54.1"
632563
632566
  };
632564
632567
  }, version2, version_default;
632565
632568
  var init_version = __esm(() => {
@@ -643630,7 +643633,7 @@ function generateHtmlReport(data, insights) {
643630
643633
  </html>`;
643631
643634
  }
643632
643635
  function buildExportData(data, insights, facets, remoteStats) {
643633
- const version3 = typeof MACRO !== "undefined" ? "1.54.0" : "unknown";
643636
+ const version3 = typeof MACRO !== "undefined" ? "1.54.1" : "unknown";
643634
643637
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
643635
643638
  const facets_summary = {
643636
643639
  total: facets.size,
@@ -647933,7 +647936,7 @@ var init_sessionStorage = __esm(() => {
647933
647936
  init_settings2();
647934
647937
  init_slowOperations();
647935
647938
  init_uuid();
647936
- VERSION7 = typeof MACRO !== "undefined" ? "1.54.0" : "unknown";
647939
+ VERSION7 = typeof MACRO !== "undefined" ? "1.54.1" : "unknown";
647937
647940
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
647938
647941
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
647939
647942
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -649148,7 +649151,7 @@ var init_filesystem = __esm(() => {
649148
649151
  });
649149
649152
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
649150
649153
  const nonce = randomBytes19(16).toString("hex");
649151
- return join225(getURTempDir(), "bundled-skills", "1.54.0", nonce);
649154
+ return join225(getURTempDir(), "bundled-skills", "1.54.1", nonce);
649152
649155
  });
649153
649156
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
649154
649157
  });
@@ -655443,7 +655446,7 @@ function computeFingerprint(messageText2, version3) {
655443
655446
  }
655444
655447
  function computeFingerprintFromMessages(messages) {
655445
655448
  const firstMessageText = extractFirstMessageText(messages);
655446
- return computeFingerprint(firstMessageText, "1.54.0");
655449
+ return computeFingerprint(firstMessageText, "1.54.1");
655447
655450
  }
655448
655451
  var FINGERPRINT_SALT = "59cf53e54c78";
655449
655452
  var init_fingerprint = () => {};
@@ -657339,7 +657342,7 @@ async function sideQuery(opts) {
657339
657342
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
657340
657343
  }
657341
657344
  const messageText2 = extractFirstUserMessageText(messages);
657342
- const fingerprint2 = computeFingerprint(messageText2, "1.54.0");
657345
+ const fingerprint2 = computeFingerprint(messageText2, "1.54.1");
657343
657346
  const attributionHeader = getAttributionHeader(fingerprint2);
657344
657347
  const systemBlocks = [
657345
657348
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -662110,7 +662113,7 @@ function buildSystemInitMessage(inputs) {
662110
662113
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
662111
662114
  apiKeySource: getURHQApiKeyWithSource().source,
662112
662115
  betas: getSdkBetas(),
662113
- ur_version: "1.54.0",
662116
+ ur_version: "1.54.1",
662114
662117
  output_style: outputStyle2,
662115
662118
  agents: inputs.agents.map((agent2) => agent2.agentType),
662116
662119
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -675970,7 +675973,7 @@ var init_useVoiceEnabled = __esm(() => {
675970
675973
  function getSemverPart(version3) {
675971
675974
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
675972
675975
  }
675973
- function useUpdateNotification(updatedVersion, initialVersion = "1.54.0") {
675976
+ function useUpdateNotification(updatedVersion, initialVersion = "1.54.1") {
675974
675977
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
675975
675978
  if (!updatedVersion) {
675976
675979
  return null;
@@ -676019,7 +676022,7 @@ function AutoUpdater({
676019
676022
  return;
676020
676023
  }
676021
676024
  if (false) {}
676022
- const currentVersion = "1.54.0";
676025
+ const currentVersion = "1.54.1";
676023
676026
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
676024
676027
  let latestVersion = await getLatestVersion(channel);
676025
676028
  const isDisabled = isAutoUpdaterDisabled();
@@ -676248,12 +676251,12 @@ function NativeAutoUpdater({
676248
676251
  logEvent("tengu_native_auto_updater_start", {});
676249
676252
  try {
676250
676253
  const maxVersion = await getMaxVersion();
676251
- if (maxVersion && gt("1.54.0", maxVersion)) {
676254
+ if (maxVersion && gt("1.54.1", maxVersion)) {
676252
676255
  const msg = await getMaxVersionMessage();
676253
676256
  setMaxVersionIssue(msg ?? "affects your version");
676254
676257
  }
676255
676258
  const result = await installLatest(channel);
676256
- const currentVersion = "1.54.0";
676259
+ const currentVersion = "1.54.1";
676257
676260
  const latencyMs = Date.now() - startTime;
676258
676261
  if (result.lockFailed) {
676259
676262
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -676390,17 +676393,17 @@ function PackageManagerAutoUpdater(t0) {
676390
676393
  const maxVersion = await getMaxVersion();
676391
676394
  if (maxVersion && latest && gt(latest, maxVersion)) {
676392
676395
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
676393
- if (gte("1.54.0", maxVersion)) {
676394
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.54.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
676396
+ if (gte("1.54.1", maxVersion)) {
676397
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.54.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
676395
676398
  setUpdateAvailable(false);
676396
676399
  return;
676397
676400
  }
676398
676401
  latest = maxVersion;
676399
676402
  }
676400
- const hasUpdate = latest && !gte("1.54.0", latest) && !shouldSkipVersion(latest);
676403
+ const hasUpdate = latest && !gte("1.54.1", latest) && !shouldSkipVersion(latest);
676401
676404
  setUpdateAvailable(!!hasUpdate);
676402
676405
  if (hasUpdate) {
676403
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.54.0"} -> ${latest}`);
676406
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.54.1"} -> ${latest}`);
676404
676407
  }
676405
676408
  };
676406
676409
  $2[0] = t1;
@@ -676434,7 +676437,7 @@ function PackageManagerAutoUpdater(t0) {
676434
676437
  wrap: "truncate",
676435
676438
  children: [
676436
676439
  "currentVersion: ",
676437
- "1.54.0"
676440
+ "1.54.1"
676438
676441
  ]
676439
676442
  }, undefined, true, undefined, this);
676440
676443
  $2[3] = verbose;
@@ -687131,7 +687134,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
687131
687134
  project_dir: getOriginalCwd(),
687132
687135
  added_dirs: addedDirs
687133
687136
  },
687134
- version: "1.54.0",
687137
+ version: "1.54.1",
687135
687138
  output_style: {
687136
687139
  name: outputStyleName
687137
687140
  },
@@ -687214,7 +687217,7 @@ function StatusLineInner({
687214
687217
  const taskValues = Object.values(tasks2);
687215
687218
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
687216
687219
  const defaultStatusLineText = buildDefaultStatusBar({
687217
- version: "1.54.0",
687220
+ version: "1.54.1",
687218
687221
  providerLabel: providerRuntime.providerLabel,
687219
687222
  authMode: providerRuntime.authLabel,
687220
687223
  model: providerRuntime.model ?? renderModelName(mainLoopModel),
@@ -699357,7 +699360,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
699357
699360
  } catch {}
699358
699361
  const data = {
699359
699362
  trigger: trigger2,
699360
- version: "1.54.0",
699363
+ version: "1.54.1",
699361
699364
  platform: process.platform,
699362
699365
  transcript,
699363
699366
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -711637,7 +711640,7 @@ function WelcomeV2() {
711637
711640
  dimColor: true,
711638
711641
  children: [
711639
711642
  "v",
711640
- "1.54.0"
711643
+ "1.54.1"
711641
711644
  ]
711642
711645
  }, undefined, true, undefined, this)
711643
711646
  ]
@@ -712897,7 +712900,7 @@ function completeOnboarding() {
712897
712900
  saveGlobalConfig((current) => ({
712898
712901
  ...current,
712899
712902
  hasCompletedOnboarding: true,
712900
- lastOnboardingVersion: "1.54.0"
712903
+ lastOnboardingVersion: "1.54.1"
712901
712904
  }));
712902
712905
  }
712903
712906
  function showDialog(root2, renderer) {
@@ -717941,7 +717944,7 @@ function appendToLog(path24, message) {
717941
717944
  cwd: getFsImplementation().cwd(),
717942
717945
  userType: process.env.USER_TYPE,
717943
717946
  sessionId: getSessionId(),
717944
- version: "1.54.0"
717947
+ version: "1.54.1"
717945
717948
  };
717946
717949
  getLogWriter(path24).write(messageWithTimestamp);
717947
717950
  }
@@ -722100,8 +722103,8 @@ async function getEnvLessBridgeConfig() {
722100
722103
  }
722101
722104
  async function checkEnvLessBridgeMinVersion() {
722102
722105
  const cfg = await getEnvLessBridgeConfig();
722103
- if (cfg.min_version && lt("1.54.0", cfg.min_version)) {
722104
- return `Your version of UR (${"1.54.0"}) is too old for Remote Control.
722106
+ if (cfg.min_version && lt("1.54.1", cfg.min_version)) {
722107
+ return `Your version of UR (${"1.54.1"}) is too old for Remote Control.
722105
722108
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
722106
722109
  }
722107
722110
  return null;
@@ -722575,7 +722578,7 @@ async function initBridgeCore(params) {
722575
722578
  const rawApi = createBridgeApiClient({
722576
722579
  baseUrl,
722577
722580
  getAccessToken,
722578
- runnerVersion: "1.54.0",
722581
+ runnerVersion: "1.54.1",
722579
722582
  onDebug: logForDebugging,
722580
722583
  onAuth401,
722581
722584
  getTrustedDeviceToken
@@ -732047,7 +732050,7 @@ function getAgUiCapabilities() {
732047
732050
  name: "UR-Nexus",
732048
732051
  type: "ur-nexus",
732049
732052
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
732050
- version: "1.54.0",
732053
+ version: "1.54.1",
732051
732054
  provider: "UR",
732052
732055
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
732053
732056
  },
@@ -733187,7 +733190,7 @@ function createMCPServer(cwd4, debug2, verbose) {
733187
733190
  };
733188
733191
  const server2 = new Server({
733189
733192
  name: "ur-nexus",
733190
- version: "1.54.0"
733193
+ version: "1.54.1"
733191
733194
  }, {
733192
733195
  capabilities: {
733193
733196
  tools: {}
@@ -734345,7 +734348,7 @@ function thrownResponse(error40) {
734345
734348
  }
734346
734349
  async function createUrMcp2026Runtime(options4) {
734347
734350
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
734348
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.54.0" }, { capabilities: {} });
734351
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.54.1" }, { capabilities: {} });
734349
734352
  const [clientTransport, serverTransport] = createLinkedTransportPair();
734350
734353
  try {
734351
734354
  await server2.connect(serverTransport);
@@ -734356,7 +734359,7 @@ async function createUrMcp2026Runtime(options4) {
734356
734359
  }
734357
734360
  const runtime2 = new Mcp2026Runtime({
734358
734361
  cwd: options4.cwd,
734359
- version: "1.54.0",
734362
+ version: "1.54.1",
734360
734363
  backend: {
734361
734364
  listTools: async () => {
734362
734365
  const listed = await client2.listTools();
@@ -736489,7 +736492,7 @@ async function update() {
736489
736492
  logEvent("tengu_update_check", {});
736490
736493
  const diagnostic2 = await getDoctorDiagnostic();
736491
736494
  const result = await checkUpgradeStatus({
736492
- currentVersion: "1.54.0",
736495
+ currentVersion: "1.54.1",
736493
736496
  packageName: UR_AGENT_PACKAGE_NAME,
736494
736497
  installationType: diagnostic2.installationType,
736495
736498
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -737805,7 +737808,7 @@ ${customInstructions}` : customInstructions;
737805
737808
  }
737806
737809
  }
737807
737810
  logForDiagnosticsNoPII("info", "started", {
737808
- version: "1.54.0",
737811
+ version: "1.54.1",
737809
737812
  is_native_binary: isInBundledMode()
737810
737813
  });
737811
737814
  registerCleanup(async () => {
@@ -738591,7 +738594,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
738591
738594
  pendingHookMessages
738592
738595
  }, renderAndRun);
738593
738596
  }
738594
- }).version("1.54.0 (UR-Nexus)", "-v, --version", "Output the version number");
738597
+ }).version("1.54.1 (UR-Nexus)", "-v, --version", "Output the version number");
738595
738598
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
738596
738599
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
738597
738600
  if (canUserConfigureAdvisor()) {
@@ -739117,6 +739120,25 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
739117
739120
  const args = [action3 ? quoteLocalCommandArg(action3) : undefined, opts.file ? `--file ${quoteLocalCommandArg(opts.file)}` : undefined, opts.source ? `--source ${quoteLocalCommandArg(opts.source)}` : undefined, opts.keyword ? `--keyword ${quoteLocalCommandArg(opts.keyword)}` : undefined, opts.maxTurns ? `--max-turns ${quoteLocalCommandArg(opts.maxTurns)}` : undefined, opts.dryRun ? "--dry-run" : undefined, opts.json ? "--json" : undefined].filter(Boolean).join(" ");
739118
739121
  await runLocalTextCommand(() => Promise.resolve().then(() => (init_trigger(), exports_trigger)), args);
739119
739122
  });
739123
+ program2.command("speak [text...]").alias("say").description("Read text aloud using the system speech synthesiser").option("--voice <name>", "Synthesiser voice").option("--rate <wpm>", "Words per minute").action(async (text = [], opts) => {
739124
+ const args = [...text.map(quoteLocalCommandArg), opts.voice ? `--voice ${quoteLocalCommandArg(opts.voice)}` : undefined, opts.rate ? `--rate ${quoteLocalCommandArg(opts.rate)}` : undefined].filter(Boolean).join(" ");
739125
+ await runLocalTextCommand(() => Promise.resolve().then(() => (init_speak(), exports_speak)), args);
739126
+ });
739127
+ program2.command("computer [action] [rest...]").alias("desktop-control").description("Control the desktop: screenshot, click, or type (state-changing actions need --yes)").option("--yes", "Confirm a state-changing action").option("--right", "Use the right mouse button").action(async (action3, rest = [], opts) => {
739128
+ const args = [action3 ? quoteLocalCommandArg(action3) : undefined, ...rest.map(quoteLocalCommandArg), opts.right ? "--right" : undefined, opts.yes ? "--yes" : undefined].filter(Boolean).join(" ");
739129
+ await runLocalTextCommand(() => Promise.resolve().then(() => (init_computer(), exports_computer)), args);
739130
+ });
739131
+ program2.command("memory-suggest").alias("suggest-memory").description("Propose durable facts from this session that are not already remembered").option("--turns <n>", "How many recent user messages to scan").option("--min-confidence <value>", "Confidence floor between 0 and 1").action(async (opts) => {
739132
+ const args = [opts.turns ? `--turns ${quoteLocalCommandArg(opts.turns)}` : undefined, opts.minConfidence ? `--min-confidence ${quoteLocalCommandArg(opts.minConfidence)}` : undefined].filter(Boolean).join(" ");
739133
+ await runLocalTextCommand(() => Promise.resolve().then(() => (init_memory_suggest(), exports_memory_suggest)), args);
739134
+ });
739135
+ program2.command("import-session <path>").description("Import a session transcript exported from another machine").action(async (path24) => {
739136
+ await runLocalTextCommand(() => Promise.resolve().then(() => (init_import_session(), exports_import_session)), quoteLocalCommandArg(path24));
739137
+ });
739138
+ program2.command("permission-profile [action] [name]").alias("profile").description("List, switch, or clear the active named permission profile").action(async (action3, name) => {
739139
+ const args = [action3 ? quoteLocalCommandArg(action3) : undefined, name ? quoteLocalCommandArg(name) : undefined].filter(Boolean).join(" ");
739140
+ await runLocalTextCommand(() => Promise.resolve().then(() => (init_permission_profile(), exports_permission_profile)), args);
739141
+ });
739120
739142
  program2.command("sdk [action]").alias("embed").description("Show how to drive UR programmatically (headless) and scaffold TS/Python SDK examples").option("--force", "Overwrite existing example files on init").option("--json", "Output as JSON").action(async (action3, opts) => {
739121
739143
  const args = [action3 ? quoteLocalCommandArg(action3) : undefined, opts.force ? "--force" : undefined, opts.json ? "--json" : undefined].filter(Boolean).join(" ");
739122
739144
  await runLocalTextCommand(() => Promise.resolve().then(() => (init_sdk(), exports_sdk)), args);
@@ -739607,7 +739629,7 @@ if (false) {}
739607
739629
  async function main2() {
739608
739630
  const args = process.argv.slice(2);
739609
739631
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
739610
- console.log(`${"1.54.0"} (UR-Nexus)`);
739632
+ console.log(`${"1.54.1"} (UR-Nexus)`);
739611
739633
  return;
739612
739634
  }
739613
739635
  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.54.0</p>
48
+ <p class="eyebrow">Version 1.54.1</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.54.0"
10
+ version = "1.54.1"
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.54.0",
5
+ "version": "1.54.1",
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.54.0",
3
+ "version": "1.54.1",
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",