ur-agent 1.27.2 → 1.27.4

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.
Files changed (2) hide show
  1. package/dist/cli.js +205 -202
  2. package/package.json +1 -1
package/dist/cli.js CHANGED
@@ -56142,39 +56142,59 @@ __export(exports_urhqSubscription, {
56142
56142
  });
56143
56143
  import { randomUUID as randomUUID3 } from "crypto";
56144
56144
  async function createURHQSubscriptionClient(providerId, options) {
56145
+ async function doRequest(params, extraHeaders) {
56146
+ const clientRequestId = params?.headers?.["x-client-request-id"];
56147
+ const data = {
56148
+ id: `${providerId}-${randomUUID3()}`,
56149
+ type: "message",
56150
+ role: "assistant",
56151
+ model: params.model,
56152
+ content: [{ type: "text", text: "Subscription CLI response" }],
56153
+ stop_reason: "end_turn",
56154
+ stop_sequence: null,
56155
+ usage: {
56156
+ input_tokens: 0,
56157
+ output_tokens: 0,
56158
+ cache_creation_input_tokens: 0,
56159
+ cache_read_input_tokens: 0
56160
+ }
56161
+ };
56162
+ return {
56163
+ data,
56164
+ response: {
56165
+ headers: clientRequestId ? { "x-client-request-id": clientRequestId } : {},
56166
+ ...extraHeaders
56167
+ }
56168
+ };
56169
+ }
56145
56170
  const messagesAPI = {
56146
- async create(params) {
56147
- return {
56148
- id: `${providerId}-${randomUUID3()}`,
56149
- type: "message",
56150
- role: "assistant",
56151
- model: params.model,
56152
- content: [{ type: "text", text: "Subscription CLI response" }],
56153
- stop_reason: "end_turn",
56154
- stop_sequence: null,
56155
- usage: {
56156
- input_tokens: 0,
56157
- output_tokens: 0,
56158
- cache_creation_input_tokens: 0,
56159
- cache_read_input_tokens: 0
56160
- }
56161
- };
56171
+ create(params, options2) {
56172
+ if (params.stream) {
56173
+ const requestPromise = doRequest(params, options2?.headers);
56174
+ return {
56175
+ async withResponse() {
56176
+ const { response, data } = await requestPromise;
56177
+ return {
56178
+ data,
56179
+ response,
56180
+ request_id: data.id
56181
+ };
56182
+ }
56183
+ };
56184
+ }
56185
+ return doRequest(params, options2?.headers).then(({ response, data }) => ({
56186
+ ...data,
56187
+ withResponse: () => ({
56188
+ data,
56189
+ response,
56190
+ request_id: data.id
56191
+ })
56192
+ }));
56162
56193
  },
56163
56194
  async countTokens(params) {
56164
56195
  return {
56165
56196
  input_tokens: estimateTokenCount(params)
56166
56197
  };
56167
- },
56168
- async withResponse(params) {
56169
- const clientRequestId = params?.headers?.["x-client-request-id"];
56170
- const data = await messagesAPI.create(params);
56171
- return {
56172
- data,
56173
- request_id: data.id,
56174
- response: {
56175
- headers: clientRequestId ? { "x-client-request-id": clientRequestId } : {}
56176
- }
56177
- };
56178
56198
  }
56179
56199
  };
56180
56200
  return {
@@ -56198,89 +56218,72 @@ import { randomUUID as randomUUID4 } from "crypto";
56198
56218
  async function createOpenRouterClient(options) {
56199
56219
  const { apiKey, maxRetries } = options;
56200
56220
  const OPENROUTER_BASE = "https://openrouter.ai/api/v1";
56221
+ async function doRequest(params, extraHeaders) {
56222
+ const clientRequestId = params?.headers?.["x-client-request-id"];
56223
+ const response = await axios_default.post(`${OPENROUTER_BASE}/chat/completions`, {
56224
+ model: params.model,
56225
+ messages: params.messages,
56226
+ max_tokens: params.max_tokens,
56227
+ stream: false
56228
+ }, {
56229
+ headers: {
56230
+ "Content-Type": "application/json",
56231
+ Authorization: `Bearer ${apiKey}`,
56232
+ "HTTP-Referer": "https://ur-agent.local",
56233
+ "X-Title": "UR-AGENT",
56234
+ ...clientRequestId && { "x-client-request-id": clientRequestId },
56235
+ ...extraHeaders
56236
+ },
56237
+ timeout: 60000
56238
+ });
56239
+ const data = response.data;
56240
+ return {
56241
+ response,
56242
+ data: {
56243
+ id: `openrouter-${randomUUID4()}`,
56244
+ type: "message",
56245
+ role: "assistant",
56246
+ model: data.model,
56247
+ content: [{ type: "text", text: data.choices?.[0]?.message?.content ?? "" }],
56248
+ stop_reason: data.choices?.[0]?.finish_reason ?? "end_turn",
56249
+ stop_sequence: null,
56250
+ usage: {
56251
+ input_tokens: data.usage?.prompt_tokens ?? 0,
56252
+ output_tokens: data.usage?.completion_tokens ?? 0,
56253
+ cache_creation_input_tokens: 0,
56254
+ cache_read_input_tokens: 0
56255
+ }
56256
+ }
56257
+ };
56258
+ }
56201
56259
  const messagesAPI = {
56202
- async create(params) {
56203
- try {
56204
- const response = await axios_default.post(`${OPENROUTER_BASE}/chat/completions`, {
56205
- model: params.model,
56206
- messages: params.messages,
56207
- max_tokens: params.max_tokens,
56208
- stream: false
56209
- }, {
56210
- headers: {
56211
- "Content-Type": "application/json",
56212
- Authorization: `Bearer ${apiKey}`,
56213
- "HTTP-Referer": "https://ur-agent.local",
56214
- "X-Title": "UR-AGENT"
56215
- },
56216
- timeout: 60000
56217
- });
56218
- const data = response.data;
56260
+ create(params, options2) {
56261
+ if (params.stream) {
56262
+ const requestPromise = doRequest(params, options2?.headers);
56219
56263
  return {
56220
- id: `openrouter-${randomUUID4()}`,
56221
- type: "message",
56222
- role: "assistant",
56223
- model: data.model,
56224
- content: [{ type: "text", text: data.choices?.[0]?.message?.content ?? "" }],
56225
- stop_reason: data.choices?.[0]?.finish_reason ?? "end_turn",
56226
- stop_sequence: null,
56227
- usage: {
56228
- input_tokens: data.usage?.prompt_tokens ?? 0,
56229
- output_tokens: data.usage?.completion_tokens ?? 0,
56230
- cache_creation_input_tokens: 0,
56231
- cache_read_input_tokens: 0
56264
+ async withResponse() {
56265
+ const { response, data } = await requestPromise;
56266
+ return {
56267
+ data,
56268
+ response,
56269
+ request_id: response.data?.id ?? response.headers?.["x-request-id"] ?? randomUUID4()
56270
+ };
56232
56271
  }
56233
56272
  };
56234
- } catch (error40) {
56235
- throw new Error(`OpenRouter API call failed: ${error40 instanceof Error ? error40.message : "unknown error"}`);
56236
56273
  }
56274
+ return doRequest(params, options2?.headers).then(({ response, data }) => ({
56275
+ ...data,
56276
+ withResponse: () => ({
56277
+ data,
56278
+ response,
56279
+ request_id: response.data?.id ?? response.headers?.["x-request-id"] ?? randomUUID4()
56280
+ })
56281
+ }));
56237
56282
  },
56238
56283
  async countTokens(params) {
56239
56284
  return {
56240
56285
  input_tokens: estimateTokenCount2(params)
56241
56286
  };
56242
- },
56243
- async withResponse(params) {
56244
- const clientRequestId = params?.headers?.["x-client-request-id"];
56245
- try {
56246
- const response = await axios_default.post(`${OPENROUTER_BASE}/chat/completions`, {
56247
- model: params.model,
56248
- messages: params.messages,
56249
- max_tokens: params.max_tokens,
56250
- stream: false
56251
- }, {
56252
- headers: {
56253
- "Content-Type": "application/json",
56254
- Authorization: `Bearer ${apiKey}`,
56255
- "HTTP-Referer": "https://ur-agent.local",
56256
- "X-Title": "UR-AGENT",
56257
- ...clientRequestId && { "x-client-request-id": clientRequestId }
56258
- },
56259
- timeout: 60000
56260
- });
56261
- const data = response.data;
56262
- return {
56263
- data: {
56264
- id: `openrouter-${randomUUID4()}`,
56265
- type: "message",
56266
- role: "assistant",
56267
- model: data.model,
56268
- content: [{ type: "text", text: data.choices?.[0]?.message?.content ?? "" }],
56269
- stop_reason: data.choices?.[0]?.finish_reason ?? "end_turn",
56270
- stop_sequence: null,
56271
- usage: {
56272
- input_tokens: data.usage?.prompt_tokens ?? 0,
56273
- output_tokens: data.usage?.completion_tokens ?? 0,
56274
- cache_creation_input_tokens: 0,
56275
- cache_read_input_tokens: 0
56276
- }
56277
- },
56278
- response,
56279
- request_id: data.id ?? response.headers?.["x-request-id"] ?? randomUUID4()
56280
- };
56281
- } catch (error40) {
56282
- throw new Error(`OpenRouter API call failed: ${error40 instanceof Error ? error40.message : "unknown error"}`);
56283
- }
56284
56287
  }
56285
56288
  };
56286
56289
  return {
@@ -56305,48 +56308,48 @@ __export(exports_standardAPI, {
56305
56308
  import { randomUUID as randomUUID5 } from "crypto";
56306
56309
  async function createStandardAPIClient(options) {
56307
56310
  const { providerId, apiKey, baseUrl, maxRetries } = options;
56311
+ async function doRequest(params, extraHeaders) {
56312
+ const endpoint = getAPIEndpoint(providerId, baseUrl);
56313
+ const clientRequestId = params?.headers?.["x-client-request-id"];
56314
+ const response = await axios_default.post(endpoint, buildAPIRequest(providerId, params), {
56315
+ headers: {
56316
+ "Content-Type": "application/json",
56317
+ Authorization: `Bearer ${apiKey}`,
56318
+ ...clientRequestId && { "x-client-request-id": clientRequestId },
56319
+ ...extraHeaders
56320
+ },
56321
+ timeout: 60000
56322
+ });
56323
+ return { response, data: parseAPIResponse(providerId, response.data) };
56324
+ }
56308
56325
  const messagesAPI = {
56309
- async create(params) {
56310
- const endpoint = getAPIEndpoint(providerId, baseUrl);
56311
- try {
56312
- const response = await axios_default.post(endpoint, buildAPIRequest(providerId, params), {
56313
- headers: {
56314
- "Content-Type": "application/json",
56315
- Authorization: `Bearer ${apiKey}`
56316
- },
56317
- timeout: 60000
56318
- });
56319
- return parseAPIResponse(providerId, response.data);
56320
- } catch (error40) {
56321
- throw new Error(`Provider ${providerId} API call failed: ${error40 instanceof Error ? error40.message : "unknown error"}`);
56326
+ create(params, options2) {
56327
+ if (params.stream) {
56328
+ const requestPromise = doRequest(params, options2?.headers);
56329
+ return {
56330
+ async withResponse() {
56331
+ const { response, data } = await requestPromise;
56332
+ return {
56333
+ data,
56334
+ response,
56335
+ request_id: response.data?.id ?? response.headers?.["x-request-id"] ?? randomUUID5()
56336
+ };
56337
+ }
56338
+ };
56322
56339
  }
56340
+ return doRequest(params, options2?.headers).then(({ response, data }) => ({
56341
+ ...data,
56342
+ withResponse: () => ({
56343
+ data,
56344
+ response,
56345
+ request_id: response.data?.id ?? response.headers?.["x-request-id"] ?? randomUUID5()
56346
+ })
56347
+ }));
56323
56348
  },
56324
56349
  async countTokens(params) {
56325
56350
  return {
56326
56351
  input_tokens: estimateTokenCount3(params)
56327
56352
  };
56328
- },
56329
- async withResponse(params) {
56330
- const endpoint = getAPIEndpoint(providerId, baseUrl);
56331
- const clientRequestId = params?.headers?.["x-client-request-id"];
56332
- try {
56333
- const response = await axios_default.post(endpoint, buildAPIRequest(providerId, params), {
56334
- headers: {
56335
- "Content-Type": "application/json",
56336
- Authorization: `Bearer ${apiKey}`,
56337
- ...clientRequestId && { "x-client-request-id": clientRequestId }
56338
- },
56339
- timeout: 60000
56340
- });
56341
- const data = parseAPIResponse(providerId, response.data);
56342
- return {
56343
- data,
56344
- response,
56345
- request_id: response.data?.id ?? response.headers?.["x-request-id"] ?? randomUUID5()
56346
- };
56347
- } catch (error40) {
56348
- throw new Error(`Provider ${providerId} API call failed: ${error40 instanceof Error ? error40.message : "unknown error"}`);
56349
- }
56350
56353
  }
56351
56354
  };
56352
56355
  return {
@@ -68275,7 +68278,7 @@ var init_auth = __esm(() => {
68275
68278
 
68276
68279
  // src/utils/userAgent.ts
68277
68280
  function getURCodeUserAgent() {
68278
- return `ur/${"1.27.2"}`;
68281
+ return `ur/${"1.27.4"}`;
68279
68282
  }
68280
68283
 
68281
68284
  // src/utils/workloadContext.ts
@@ -68297,7 +68300,7 @@ function getUserAgent() {
68297
68300
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
68298
68301
  const workload = getWorkload();
68299
68302
  const workloadSuffix = workload ? `, workload/${workload}` : "";
68300
- return `ur-cli/${"1.27.2"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
68303
+ return `ur-cli/${"1.27.4"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
68301
68304
  }
68302
68305
  function getMCPUserAgent() {
68303
68306
  const parts = [];
@@ -68311,7 +68314,7 @@ function getMCPUserAgent() {
68311
68314
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
68312
68315
  }
68313
68316
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
68314
- return `ur/${"1.27.2"}${suffix}`;
68317
+ return `ur/${"1.27.4"}${suffix}`;
68315
68318
  }
68316
68319
  function getWebFetchUserAgent() {
68317
68320
  return `UR-User (${getURCodeUserAgent()})`;
@@ -68449,7 +68452,7 @@ var init_user = __esm(() => {
68449
68452
  deviceId,
68450
68453
  sessionId: getSessionId(),
68451
68454
  email: getEmail(),
68452
- appVersion: "1.27.2",
68455
+ appVersion: "1.27.4",
68453
68456
  platform: getHostPlatformForAnalytics(),
68454
68457
  organizationUuid,
68455
68458
  accountUuid,
@@ -74966,7 +74969,7 @@ var init_metadata = __esm(() => {
74966
74969
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
74967
74970
  WHITESPACE_REGEX = /\s+/;
74968
74971
  getVersionBase = memoize_default(() => {
74969
- const match = "1.27.2".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
74972
+ const match = "1.27.4".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
74970
74973
  return match ? match[0] : undefined;
74971
74974
  });
74972
74975
  buildEnvContext = memoize_default(async () => {
@@ -75006,7 +75009,7 @@ var init_metadata = __esm(() => {
75006
75009
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
75007
75010
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
75008
75011
  isURAiAuth: isURAISubscriber2(),
75009
- version: "1.27.2",
75012
+ version: "1.27.4",
75010
75013
  versionBase: getVersionBase(),
75011
75014
  buildTime: "",
75012
75015
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -75676,7 +75679,7 @@ function initialize1PEventLogging() {
75676
75679
  const platform2 = getPlatform();
75677
75680
  const attributes = {
75678
75681
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
75679
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.27.2"
75682
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.27.4"
75680
75683
  };
75681
75684
  if (platform2 === "wsl") {
75682
75685
  const wslVersion = getWslVersion();
@@ -75703,7 +75706,7 @@ function initialize1PEventLogging() {
75703
75706
  })
75704
75707
  ]
75705
75708
  });
75706
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.27.2");
75709
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.27.4");
75707
75710
  }
75708
75711
  async function reinitialize1PEventLoggingIfConfigChanged() {
75709
75712
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -81000,7 +81003,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
81000
81003
  function formatA2AAgentCard(options = {}, pretty = true) {
81001
81004
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
81002
81005
  }
81003
- var urVersion = "1.27.2", coverage, priorityRoadmap;
81006
+ var urVersion = "1.27.4", coverage, priorityRoadmap;
81004
81007
  var init_trends = __esm(() => {
81005
81008
  coverage = [
81006
81009
  {
@@ -82992,7 +82995,7 @@ function getAttributionHeader(fingerprint) {
82992
82995
  if (!isAttributionHeaderEnabled()) {
82993
82996
  return "";
82994
82997
  }
82995
- const version2 = `${"1.27.2"}.${fingerprint}`;
82998
+ const version2 = `${"1.27.4"}.${fingerprint}`;
82996
82999
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
82997
83000
  const cch = "";
82998
83001
  const workload = getWorkload();
@@ -190661,7 +190664,7 @@ function getTelemetryAttributes() {
190661
190664
  attributes["session.id"] = sessionId;
190662
190665
  }
190663
190666
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
190664
- attributes["app.version"] = "1.27.2";
190667
+ attributes["app.version"] = "1.27.4";
190665
190668
  }
190666
190669
  const oauthAccount = getOauthAccountInfo();
190667
190670
  if (oauthAccount) {
@@ -226063,7 +226066,7 @@ function getInstallationEnv() {
226063
226066
  return;
226064
226067
  }
226065
226068
  function getURCodeVersion() {
226066
- return "1.27.2";
226069
+ return "1.27.4";
226067
226070
  }
226068
226071
  async function getInstalledVSCodeExtensionVersion(command) {
226069
226072
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -228902,7 +228905,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
228902
228905
  const client2 = new Client({
228903
228906
  name: "ur",
228904
228907
  title: "UR",
228905
- version: "1.27.2",
228908
+ version: "1.27.4",
228906
228909
  description: "UR-AGENT autonomous engineering workflow engine",
228907
228910
  websiteUrl: PRODUCT_URL
228908
228911
  }, {
@@ -229256,7 +229259,7 @@ var init_client5 = __esm(() => {
229256
229259
  const client2 = new Client({
229257
229260
  name: "ur",
229258
229261
  title: "UR",
229259
- version: "1.27.2",
229262
+ version: "1.27.4",
229260
229263
  description: "UR-AGENT autonomous engineering workflow engine",
229261
229264
  websiteUrl: PRODUCT_URL
229262
229265
  }, {
@@ -239069,9 +239072,9 @@ async function assertMinVersion() {
239069
239072
  if (false) {}
239070
239073
  try {
239071
239074
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
239072
- if (versionConfig.minVersion && lt("1.27.2", versionConfig.minVersion)) {
239075
+ if (versionConfig.minVersion && lt("1.27.4", versionConfig.minVersion)) {
239073
239076
  console.error(`
239074
- It looks like your version of UR (${"1.27.2"}) needs an update.
239077
+ It looks like your version of UR (${"1.27.4"}) needs an update.
239075
239078
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
239076
239079
 
239077
239080
  To update, please run:
@@ -239287,7 +239290,7 @@ async function installGlobalPackage(specificVersion) {
239287
239290
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
239288
239291
  logEvent("tengu_auto_updater_lock_contention", {
239289
239292
  pid: process.pid,
239290
- currentVersion: "1.27.2"
239293
+ currentVersion: "1.27.4"
239291
239294
  });
239292
239295
  return "in_progress";
239293
239296
  }
@@ -239296,7 +239299,7 @@ async function installGlobalPackage(specificVersion) {
239296
239299
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
239297
239300
  logError2(new Error("Windows NPM detected in WSL environment"));
239298
239301
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
239299
- currentVersion: "1.27.2"
239302
+ currentVersion: "1.27.4"
239300
239303
  });
239301
239304
  console.error(`
239302
239305
  Error: Windows NPM detected in WSL
@@ -239831,7 +239834,7 @@ function detectLinuxGlobPatternWarnings() {
239831
239834
  }
239832
239835
  async function getDoctorDiagnostic() {
239833
239836
  const installationType = await getCurrentInstallationType();
239834
- const version2 = typeof MACRO !== "undefined" ? "1.27.2" : "unknown";
239837
+ const version2 = typeof MACRO !== "undefined" ? "1.27.4" : "unknown";
239835
239838
  const installationPath = await getInstallationPath();
239836
239839
  const invokedBinary = getInvokedBinary();
239837
239840
  const multipleInstallations = await detectMultipleInstallations();
@@ -240766,8 +240769,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
240766
240769
  const maxVersion = await getMaxVersion();
240767
240770
  if (maxVersion && gt(version2, maxVersion)) {
240768
240771
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
240769
- if (gte("1.27.2", maxVersion)) {
240770
- logForDebugging(`Native installer: current version ${"1.27.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
240772
+ if (gte("1.27.4", maxVersion)) {
240773
+ logForDebugging(`Native installer: current version ${"1.27.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
240771
240774
  logEvent("tengu_native_update_skipped_max_version", {
240772
240775
  latency_ms: Date.now() - startTime,
240773
240776
  max_version: maxVersion,
@@ -240778,7 +240781,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
240778
240781
  version2 = maxVersion;
240779
240782
  }
240780
240783
  }
240781
- if (!forceReinstall && version2 === "1.27.2" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
240784
+ if (!forceReinstall && version2 === "1.27.4" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
240782
240785
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
240783
240786
  logEvent("tengu_native_update_complete", {
240784
240787
  latency_ms: Date.now() - startTime,
@@ -337690,7 +337693,7 @@ function Feedback({
337690
337693
  platform: env2.platform,
337691
337694
  gitRepo: envInfo.isGit,
337692
337695
  terminal: env2.terminal,
337693
- version: "1.27.2",
337696
+ version: "1.27.4",
337694
337697
  transcript: normalizeMessagesForAPI(messages),
337695
337698
  errors: sanitizedErrors,
337696
337699
  lastApiRequest: getLastAPIRequest(),
@@ -337882,7 +337885,7 @@ function Feedback({
337882
337885
  ", ",
337883
337886
  env2.terminal,
337884
337887
  ", v",
337885
- "1.27.2"
337888
+ "1.27.4"
337886
337889
  ]
337887
337890
  }, undefined, true, undefined, this)
337888
337891
  ]
@@ -337988,7 +337991,7 @@ ${sanitizedDescription}
337988
337991
  ` + `**Environment Info**
337989
337992
  ` + `- Platform: ${env2.platform}
337990
337993
  ` + `- Terminal: ${env2.terminal}
337991
- ` + `- Version: ${"1.27.2"}
337994
+ ` + `- Version: ${"1.27.4"}
337992
337995
  ` + `- Feedback ID: ${feedbackId}
337993
337996
  ` + `
337994
337997
  **Errors**
@@ -341099,7 +341102,7 @@ function buildPrimarySection() {
341099
341102
  }, undefined, false, undefined, this);
341100
341103
  return [{
341101
341104
  label: "Version",
341102
- value: "1.27.2"
341105
+ value: "1.27.4"
341103
341106
  }, {
341104
341107
  label: "Session name",
341105
341108
  value: nameValue
@@ -344405,7 +344408,7 @@ function Config({
344405
344408
  }
344406
344409
  }, undefined, false, undefined, this)
344407
344410
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
344408
- currentVersion: "1.27.2",
344411
+ currentVersion: "1.27.4",
344409
344412
  onChoice: (choice) => {
344410
344413
  setShowSubmenu(null);
344411
344414
  setTabsHidden(false);
@@ -344417,7 +344420,7 @@ function Config({
344417
344420
  autoUpdatesChannel: "stable"
344418
344421
  };
344419
344422
  if (choice === "stay") {
344420
- newSettings.minimumVersion = "1.27.2";
344423
+ newSettings.minimumVersion = "1.27.4";
344421
344424
  }
344422
344425
  updateSettingsForSource("userSettings", newSettings);
344423
344426
  setSettingsData((prev_27) => ({
@@ -352487,7 +352490,7 @@ function HelpV2(t0) {
352487
352490
  let t6;
352488
352491
  if ($3[31] !== tabs) {
352489
352492
  t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
352490
- title: `UR v${"1.27.2"}`,
352493
+ title: `UR v${"1.27.4"}`,
352491
352494
  color: "professionalBlue",
352492
352495
  defaultTab: "general",
352493
352496
  children: tabs
@@ -372589,7 +372592,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
372589
372592
  return [];
372590
372593
  }
372591
372594
  }
372592
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.27.2") {
372595
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.27.4") {
372593
372596
  if (process.env.USER_TYPE === "ant") {
372594
372597
  const changelog = "";
372595
372598
  if (changelog) {
@@ -372616,7 +372619,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.27.2")
372616
372619
  releaseNotes
372617
372620
  };
372618
372621
  }
372619
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.27.2") {
372622
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.27.4") {
372620
372623
  if (process.env.USER_TYPE === "ant") {
372621
372624
  const changelog = "";
372622
372625
  if (changelog) {
@@ -373786,7 +373789,7 @@ function getRecentActivitySync() {
373786
373789
  return cachedActivity;
373787
373790
  }
373788
373791
  function getLogoDisplayData() {
373789
- const version2 = process.env.DEMO_VERSION ?? "1.27.2";
373792
+ const version2 = process.env.DEMO_VERSION ?? "1.27.4";
373790
373793
  const serverUrl = getDirectConnectServerUrl();
373791
373794
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd2());
373792
373795
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -374575,7 +374578,7 @@ function LogoV2() {
374575
374578
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
374576
374579
  t2 = () => {
374577
374580
  const currentConfig = getGlobalConfig();
374578
- if (currentConfig.lastReleaseNotesSeen === "1.27.2") {
374581
+ if (currentConfig.lastReleaseNotesSeen === "1.27.4") {
374579
374582
  return;
374580
374583
  }
374581
374584
  saveGlobalConfig(_temp326);
@@ -375260,12 +375263,12 @@ function LogoV2() {
375260
375263
  return t41;
375261
375264
  }
375262
375265
  function _temp326(current) {
375263
- if (current.lastReleaseNotesSeen === "1.27.2") {
375266
+ if (current.lastReleaseNotesSeen === "1.27.4") {
375264
375267
  return current;
375265
375268
  }
375266
375269
  return {
375267
375270
  ...current,
375268
- lastReleaseNotesSeen: "1.27.2"
375271
+ lastReleaseNotesSeen: "1.27.4"
375269
375272
  };
375270
375273
  }
375271
375274
  function _temp243(s_0) {
@@ -392254,7 +392257,7 @@ function buildToolUseContext(tools, readFileStateCache) {
392254
392257
  async function handleInitialize() {
392255
392258
  return {
392256
392259
  name: "ur-agent",
392257
- version: "1.27.2",
392260
+ version: "1.27.4",
392258
392261
  protocolVersion: "0.1.0"
392259
392262
  };
392260
392263
  }
@@ -591248,7 +591251,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
591248
591251
  smapsRollup,
591249
591252
  platform: process.platform,
591250
591253
  nodeVersion: process.version,
591251
- ccVersion: "1.27.2"
591254
+ ccVersion: "1.27.4"
591252
591255
  };
591253
591256
  }
591254
591257
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -591834,7 +591837,7 @@ var init_bridge_kick = __esm(() => {
591834
591837
  var call136 = async () => {
591835
591838
  return {
591836
591839
  type: "text",
591837
- value: "1.27.2"
591840
+ value: "1.27.4"
591838
591841
  };
591839
591842
  }, version2, version_default;
591840
591843
  var init_version = __esm(() => {
@@ -601753,7 +601756,7 @@ function generateHtmlReport(data, insights) {
601753
601756
  </html>`;
601754
601757
  }
601755
601758
  function buildExportData(data, insights, facets, remoteStats) {
601756
- const version3 = typeof MACRO !== "undefined" ? "1.27.2" : "unknown";
601759
+ const version3 = typeof MACRO !== "undefined" ? "1.27.4" : "unknown";
601757
601760
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
601758
601761
  const facets_summary = {
601759
601762
  total: facets.size,
@@ -606030,7 +606033,7 @@ var init_sessionStorage = __esm(() => {
606030
606033
  init_settings2();
606031
606034
  init_slowOperations();
606032
606035
  init_uuid();
606033
- VERSION5 = typeof MACRO !== "undefined" ? "1.27.2" : "unknown";
606036
+ VERSION5 = typeof MACRO !== "undefined" ? "1.27.4" : "unknown";
606034
606037
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
606035
606038
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
606036
606039
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -607235,7 +607238,7 @@ var init_filesystem = __esm(() => {
607235
607238
  });
607236
607239
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
607237
607240
  const nonce = randomBytes18(16).toString("hex");
607238
- return join200(getURTempDir(), "bundled-skills", "1.27.2", nonce);
607241
+ return join200(getURTempDir(), "bundled-skills", "1.27.4", nonce);
607239
607242
  });
607240
607243
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
607241
607244
  });
@@ -613525,7 +613528,7 @@ function computeFingerprint(messageText, version3) {
613525
613528
  }
613526
613529
  function computeFingerprintFromMessages(messages) {
613527
613530
  const firstMessageText = extractFirstMessageText(messages);
613528
- return computeFingerprint(firstMessageText, "1.27.2");
613531
+ return computeFingerprint(firstMessageText, "1.27.4");
613529
613532
  }
613530
613533
  var FINGERPRINT_SALT = "59cf53e54c78";
613531
613534
  var init_fingerprint = () => {};
@@ -615391,7 +615394,7 @@ async function sideQuery(opts) {
615391
615394
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
615392
615395
  }
615393
615396
  const messageText = extractFirstUserMessageText(messages);
615394
- const fingerprint = computeFingerprint(messageText, "1.27.2");
615397
+ const fingerprint = computeFingerprint(messageText, "1.27.4");
615395
615398
  const attributionHeader = getAttributionHeader(fingerprint);
615396
615399
  const systemBlocks = [
615397
615400
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -620128,7 +620131,7 @@ function buildSystemInitMessage(inputs) {
620128
620131
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
620129
620132
  apiKeySource: getURHQApiKeyWithSource().source,
620130
620133
  betas: getSdkBetas(),
620131
- ur_version: "1.27.2",
620134
+ ur_version: "1.27.4",
620132
620135
  output_style: outputStyle2,
620133
620136
  agents: inputs.agents.map((agent) => agent.agentType),
620134
620137
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -634756,7 +634759,7 @@ var init_useVoiceEnabled = __esm(() => {
634756
634759
  function getSemverPart(version3) {
634757
634760
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
634758
634761
  }
634759
- function useUpdateNotification(updatedVersion, initialVersion = "1.27.2") {
634762
+ function useUpdateNotification(updatedVersion, initialVersion = "1.27.4") {
634760
634763
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react226.useState(() => getSemverPart(initialVersion));
634761
634764
  if (!updatedVersion) {
634762
634765
  return null;
@@ -634805,7 +634808,7 @@ function AutoUpdater({
634805
634808
  return;
634806
634809
  }
634807
634810
  if (false) {}
634808
- const currentVersion = "1.27.2";
634811
+ const currentVersion = "1.27.4";
634809
634812
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
634810
634813
  let latestVersion = await getLatestVersion(channel);
634811
634814
  const isDisabled = isAutoUpdaterDisabled();
@@ -635034,12 +635037,12 @@ function NativeAutoUpdater({
635034
635037
  logEvent("tengu_native_auto_updater_start", {});
635035
635038
  try {
635036
635039
  const maxVersion = await getMaxVersion();
635037
- if (maxVersion && gt("1.27.2", maxVersion)) {
635040
+ if (maxVersion && gt("1.27.4", maxVersion)) {
635038
635041
  const msg = await getMaxVersionMessage();
635039
635042
  setMaxVersionIssue(msg ?? "affects your version");
635040
635043
  }
635041
635044
  const result = await installLatest(channel);
635042
- const currentVersion = "1.27.2";
635045
+ const currentVersion = "1.27.4";
635043
635046
  const latencyMs = Date.now() - startTime;
635044
635047
  if (result.lockFailed) {
635045
635048
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -635176,17 +635179,17 @@ function PackageManagerAutoUpdater(t0) {
635176
635179
  const maxVersion = await getMaxVersion();
635177
635180
  if (maxVersion && latest && gt(latest, maxVersion)) {
635178
635181
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
635179
- if (gte("1.27.2", maxVersion)) {
635180
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.27.2"} is already at or above maxVersion ${maxVersion}, skipping update`);
635182
+ if (gte("1.27.4", maxVersion)) {
635183
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.27.4"} is already at or above maxVersion ${maxVersion}, skipping update`);
635181
635184
  setUpdateAvailable(false);
635182
635185
  return;
635183
635186
  }
635184
635187
  latest = maxVersion;
635185
635188
  }
635186
- const hasUpdate = latest && !gte("1.27.2", latest) && !shouldSkipVersion(latest);
635189
+ const hasUpdate = latest && !gte("1.27.4", latest) && !shouldSkipVersion(latest);
635187
635190
  setUpdateAvailable(!!hasUpdate);
635188
635191
  if (hasUpdate) {
635189
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.27.2"} -> ${latest}`);
635192
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.27.4"} -> ${latest}`);
635190
635193
  }
635191
635194
  };
635192
635195
  $3[0] = t1;
@@ -635220,7 +635223,7 @@ function PackageManagerAutoUpdater(t0) {
635220
635223
  wrap: "truncate",
635221
635224
  children: [
635222
635225
  "currentVersion: ",
635223
- "1.27.2"
635226
+ "1.27.4"
635224
635227
  ]
635225
635228
  }, undefined, true, undefined, this);
635226
635229
  $3[3] = verbose;
@@ -647666,7 +647669,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
647666
647669
  project_dir: getOriginalCwd(),
647667
647670
  added_dirs: addedDirs
647668
647671
  },
647669
- version: "1.27.2",
647672
+ version: "1.27.4",
647670
647673
  output_style: {
647671
647674
  name: outputStyleName
647672
647675
  },
@@ -647741,7 +647744,7 @@ function StatusLineInner({
647741
647744
  const taskValues = Object.values(tasks2);
647742
647745
  const taskRunningCount = taskValues.filter((task2) => task2.status === "running" || task2.status === "pending").length;
647743
647746
  const defaultStatusLineText = buildDefaultStatusBar({
647744
- version: "1.27.2",
647747
+ version: "1.27.4",
647745
647748
  providerLabel: providerRuntime.providerLabel,
647746
647749
  authMode: providerRuntime.authLabel,
647747
647750
  model: providerRuntime.model ?? renderModelName(mainLoopModel),
@@ -659227,7 +659230,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
659227
659230
  } catch {}
659228
659231
  const data = {
659229
659232
  trigger: trigger2,
659230
- version: "1.27.2",
659233
+ version: "1.27.4",
659231
659234
  platform: process.platform,
659232
659235
  transcript,
659233
659236
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -671109,7 +671112,7 @@ function WelcomeV2() {
671109
671112
  dimColor: true,
671110
671113
  children: [
671111
671114
  "v",
671112
- "1.27.2"
671115
+ "1.27.4"
671113
671116
  ]
671114
671117
  }, undefined, true, undefined, this)
671115
671118
  ]
@@ -672369,7 +672372,7 @@ function completeOnboarding() {
672369
672372
  saveGlobalConfig((current) => ({
672370
672373
  ...current,
672371
672374
  hasCompletedOnboarding: true,
672372
- lastOnboardingVersion: "1.27.2"
672375
+ lastOnboardingVersion: "1.27.4"
672373
672376
  }));
672374
672377
  }
672375
672378
  function showDialog(root2, renderer) {
@@ -677470,7 +677473,7 @@ function appendToLog(path24, message) {
677470
677473
  cwd: getFsImplementation().cwd(),
677471
677474
  userType: process.env.USER_TYPE,
677472
677475
  sessionId: getSessionId(),
677473
- version: "1.27.2"
677476
+ version: "1.27.4"
677474
677477
  };
677475
677478
  getLogWriter(path24).write(messageWithTimestamp);
677476
677479
  }
@@ -681564,8 +681567,8 @@ async function getEnvLessBridgeConfig() {
681564
681567
  }
681565
681568
  async function checkEnvLessBridgeMinVersion() {
681566
681569
  const cfg = await getEnvLessBridgeConfig();
681567
- if (cfg.min_version && lt("1.27.2", cfg.min_version)) {
681568
- return `Your version of UR (${"1.27.2"}) is too old for Remote Control.
681570
+ if (cfg.min_version && lt("1.27.4", cfg.min_version)) {
681571
+ return `Your version of UR (${"1.27.4"}) is too old for Remote Control.
681569
681572
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
681570
681573
  }
681571
681574
  return null;
@@ -682039,7 +682042,7 @@ async function initBridgeCore(params) {
682039
682042
  const rawApi = createBridgeApiClient({
682040
682043
  baseUrl,
682041
682044
  getAccessToken,
682042
- runnerVersion: "1.27.2",
682045
+ runnerVersion: "1.27.4",
682043
682046
  onDebug: logForDebugging,
682044
682047
  onAuth401,
682045
682048
  getTrustedDeviceToken
@@ -687720,7 +687723,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
687720
687723
  setCwd(cwd3);
687721
687724
  const server2 = new Server({
687722
687725
  name: "ur/tengu",
687723
- version: "1.27.2"
687726
+ version: "1.27.4"
687724
687727
  }, {
687725
687728
  capabilities: {
687726
687729
  tools: {}
@@ -689533,7 +689536,7 @@ async function update() {
689533
689536
  logEvent("tengu_update_check", {});
689534
689537
  const diagnostic = await getDoctorDiagnostic();
689535
689538
  const result = await checkUpgradeStatus({
689536
- currentVersion: "1.27.2",
689539
+ currentVersion: "1.27.4",
689537
689540
  packageName: UR_AGENT_PACKAGE_NAME,
689538
689541
  installationType: diagnostic.installationType,
689539
689542
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -690779,7 +690782,7 @@ ${customInstructions}` : customInstructions;
690779
690782
  }
690780
690783
  }
690781
690784
  logForDiagnosticsNoPII("info", "started", {
690782
- version: "1.27.2",
690785
+ version: "1.27.4",
690783
690786
  is_native_binary: isInBundledMode()
690784
690787
  });
690785
690788
  registerCleanup(async () => {
@@ -691563,7 +691566,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
691563
691566
  pendingHookMessages
691564
691567
  }, renderAndRun);
691565
691568
  }
691566
- }).version("1.27.2 (UR-AGENT)", "-v, --version", "Output the version number");
691569
+ }).version("1.27.4 (UR-AGENT)", "-v, --version", "Output the version number");
691567
691570
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
691568
691571
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
691569
691572
  if (canUserConfigureAdvisor()) {
@@ -692440,7 +692443,7 @@ if (false) {}
692440
692443
  async function main2() {
692441
692444
  const args = process.argv.slice(2);
692442
692445
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
692443
- console.log(`${"1.27.2"} (UR-AGENT)`);
692446
+ console.log(`${"1.27.4"} (UR-AGENT)`);
692444
692447
  return;
692445
692448
  }
692446
692449
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.27.2",
3
+ "version": "1.27.4",
4
4
  "description": "UR-AGENT — autonomous engineering workflow engine (plan, execute, test, verify, document, benchmark, reproduce)",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",