ur-agent 1.11.1 → 1.11.3

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,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.11.3
4
+
5
+ ### Changed
6
+ - **Read-only web browsing.** `WebSearch` and `WebFetch` now run without
7
+ prompting by default, while still respecting explicit deny or ask rules.
8
+ - **Source visibility.** `WebFetch` tool results now include the fetched URL so
9
+ final answers can mention where the result came from.
10
+
11
+ ## 1.11.2
12
+
13
+ ### Fixed
14
+ - **Clarification dialogs.** `AskUserQuestion` is now loaded without a
15
+ `ToolSearch` round trip and accepts common question text aliases such as
16
+ `prompt` and `text`, preventing malformed clarification attempts from
17
+ surfacing as validation errors.
18
+
3
19
  ## 1.11.1
4
20
 
5
21
  ### Changed
package/dist/cli.js CHANGED
@@ -55104,6 +55104,14 @@ function headerFromQuestion(question, index2) {
55104
55104
  const word = question.replace(/[^A-Za-z0-9]+/g, " ").split(/\s+/).find((part) => part && !stopWords.has(part.toLowerCase())) ?? `Question ${index2 + 1}`;
55105
55105
  return word.slice(0, 12);
55106
55106
  }
55107
+ function stringField(input, names) {
55108
+ for (const name of names) {
55109
+ const value = input[name];
55110
+ if (typeof value === "string" && value.trim())
55111
+ return value.trim();
55112
+ }
55113
+ return "";
55114
+ }
55107
55115
  function normalizeQuestionOption(value) {
55108
55116
  const option = objectValue(value);
55109
55117
  if (!option)
@@ -55120,9 +55128,18 @@ function normalizeQuestionOption(value) {
55120
55128
  }
55121
55129
  function normalizeQuestion(value, index2) {
55122
55130
  const question = objectValue(value);
55123
- if (!question || typeof question.question !== "string")
55131
+ if (!question)
55124
55132
  return null;
55125
- const questionText = question.question.trim();
55133
+ const questionText = stringField(question, [
55134
+ "question",
55135
+ "questionText",
55136
+ "question_text",
55137
+ "prompt",
55138
+ "text",
55139
+ "title",
55140
+ "message",
55141
+ "body"
55142
+ ]);
55126
55143
  if (!questionText || !Array.isArray(question.options))
55127
55144
  return null;
55128
55145
  const options = question.options.map(normalizeQuestionOption).filter((option) => option !== null);
@@ -69520,7 +69537,7 @@ var init_auth = __esm(() => {
69520
69537
 
69521
69538
  // src/utils/userAgent.ts
69522
69539
  function getURCodeUserAgent() {
69523
- return `ur/${"1.11.1"}`;
69540
+ return `ur/${"1.11.3"}`;
69524
69541
  }
69525
69542
 
69526
69543
  // src/utils/workloadContext.ts
@@ -69542,7 +69559,7 @@ function getUserAgent() {
69542
69559
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
69543
69560
  const workload = getWorkload();
69544
69561
  const workloadSuffix = workload ? `, workload/${workload}` : "";
69545
- return `ur-cli/${"1.11.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
69562
+ return `ur-cli/${"1.11.3"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
69546
69563
  }
69547
69564
  function getMCPUserAgent() {
69548
69565
  const parts = [];
@@ -69556,7 +69573,7 @@ function getMCPUserAgent() {
69556
69573
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
69557
69574
  }
69558
69575
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
69559
- return `ur/${"1.11.1"}${suffix}`;
69576
+ return `ur/${"1.11.3"}${suffix}`;
69560
69577
  }
69561
69578
  function getWebFetchUserAgent() {
69562
69579
  return `UR-User (${getURCodeUserAgent()})`;
@@ -69694,7 +69711,7 @@ var init_user = __esm(() => {
69694
69711
  deviceId,
69695
69712
  sessionId: getSessionId(),
69696
69713
  email: getEmail(),
69697
- appVersion: "1.11.1",
69714
+ appVersion: "1.11.3",
69698
69715
  platform: getHostPlatformForAnalytics(),
69699
69716
  organizationUuid,
69700
69717
  accountUuid,
@@ -75471,7 +75488,7 @@ var init_metadata = __esm(() => {
75471
75488
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
75472
75489
  WHITESPACE_REGEX = /\s+/;
75473
75490
  getVersionBase = memoize_default(() => {
75474
- const match = "1.11.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
75491
+ const match = "1.11.3".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
75475
75492
  return match ? match[0] : undefined;
75476
75493
  });
75477
75494
  buildEnvContext = memoize_default(async () => {
@@ -75511,7 +75528,7 @@ var init_metadata = __esm(() => {
75511
75528
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
75512
75529
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
75513
75530
  isURAiAuth: isURAISubscriber2(),
75514
- version: "1.11.1",
75531
+ version: "1.11.3",
75515
75532
  versionBase: getVersionBase(),
75516
75533
  buildTime: "",
75517
75534
  deploymentEnvironment: env3.detectDeploymentEnvironment(),
@@ -76181,7 +76198,7 @@ function initialize1PEventLogging() {
76181
76198
  const platform2 = getPlatform();
76182
76199
  const attributes = {
76183
76200
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
76184
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.11.1"
76201
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.11.3"
76185
76202
  };
76186
76203
  if (platform2 === "wsl") {
76187
76204
  const wslVersion = getWslVersion();
@@ -76208,7 +76225,7 @@ function initialize1PEventLogging() {
76208
76225
  })
76209
76226
  ]
76210
76227
  });
76211
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.11.1");
76228
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.11.3");
76212
76229
  }
76213
76230
  async function reinitialize1PEventLoggingIfConfigChanged() {
76214
76231
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -78072,7 +78089,7 @@ function getAttributionHeader(fingerprint) {
78072
78089
  if (!isAttributionHeaderEnabled()) {
78073
78090
  return "";
78074
78091
  }
78075
- const version2 = `${"1.11.1"}.${fingerprint}`;
78092
+ const version2 = `${"1.11.3"}.${fingerprint}`;
78076
78093
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
78077
78094
  const cch = "";
78078
78095
  const workload = getWorkload();
@@ -118959,6 +118976,7 @@ Usage notes:
118959
118976
  - HTTP URLs will be automatically upgraded to HTTPS
118960
118977
  - The prompt should describe what information you want to extract from the page
118961
118978
  - This tool is read-only and does not modify any files
118979
+ - When using fetched content in your final answer, mention the fetched URL or domain as the source
118962
118980
  - Results may be summarized if the content is very large
118963
118981
  - Includes a self-cleaning 15-minute cache for faster responses when repeatedly accessing the same URL
118964
118982
  - When a URL redirects to a different host, the tool will inform you and provide the redirect URL in a special format. You should then make a new WebFetch request with the redirect URL to fetch the content.
@@ -184542,7 +184560,7 @@ function getTelemetryAttributes() {
184542
184560
  attributes["session.id"] = sessionId;
184543
184561
  }
184544
184562
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
184545
- attributes["app.version"] = "1.11.1";
184563
+ attributes["app.version"] = "1.11.3";
184546
184564
  }
184547
184565
  const oauthAccount = getOauthAccountInfo();
184548
184566
  if (oauthAccount) {
@@ -220140,7 +220158,7 @@ function getInstallationEnv() {
220140
220158
  return;
220141
220159
  }
220142
220160
  function getURCodeVersion() {
220143
- return "1.11.1";
220161
+ return "1.11.3";
220144
220162
  }
220145
220163
  async function getInstalledVSCodeExtensionVersion(command) {
220146
220164
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -222868,7 +222886,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
222868
222886
  const client2 = new Client({
222869
222887
  name: "ur",
222870
222888
  title: "UR",
222871
- version: "1.11.1",
222889
+ version: "1.11.3",
222872
222890
  description: "URHQ's agentic coding tool",
222873
222891
  websiteUrl: PRODUCT_URL
222874
222892
  }, {
@@ -223222,7 +223240,7 @@ var init_client5 = __esm(() => {
223222
223240
  const client2 = new Client({
223223
223241
  name: "ur",
223224
223242
  title: "UR",
223225
- version: "1.11.1",
223243
+ version: "1.11.3",
223226
223244
  description: "URHQ's agentic coding tool",
223227
223245
  websiteUrl: PRODUCT_URL
223228
223246
  }, {
@@ -232941,9 +232959,9 @@ async function assertMinVersion() {
232941
232959
  if (false) {}
232942
232960
  try {
232943
232961
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
232944
- if (versionConfig.minVersion && lt("1.11.1", versionConfig.minVersion)) {
232962
+ if (versionConfig.minVersion && lt("1.11.3", versionConfig.minVersion)) {
232945
232963
  console.error(`
232946
- It looks like your version of UR (${"1.11.1"}) needs an update.
232964
+ It looks like your version of UR (${"1.11.3"}) needs an update.
232947
232965
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
232948
232966
 
232949
232967
  To update, please run:
@@ -233159,7 +233177,7 @@ async function installGlobalPackage(specificVersion) {
233159
233177
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
233160
233178
  logEvent("tengu_auto_updater_lock_contention", {
233161
233179
  pid: process.pid,
233162
- currentVersion: "1.11.1"
233180
+ currentVersion: "1.11.3"
233163
233181
  });
233164
233182
  return "in_progress";
233165
233183
  }
@@ -233168,7 +233186,7 @@ async function installGlobalPackage(specificVersion) {
233168
233186
  if (!env3.isRunningWithBun() && env3.isNpmFromWindowsPath()) {
233169
233187
  logError2(new Error("Windows NPM detected in WSL environment"));
233170
233188
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
233171
- currentVersion: "1.11.1"
233189
+ currentVersion: "1.11.3"
233172
233190
  });
233173
233191
  console.error(`
233174
233192
  Error: Windows NPM detected in WSL
@@ -233703,7 +233721,7 @@ function detectLinuxGlobPatternWarnings() {
233703
233721
  }
233704
233722
  async function getDoctorDiagnostic() {
233705
233723
  const installationType = await getCurrentInstallationType();
233706
- const version2 = typeof MACRO !== "undefined" ? "1.11.1" : "unknown";
233724
+ const version2 = typeof MACRO !== "undefined" ? "1.11.3" : "unknown";
233707
233725
  const installationPath = await getInstallationPath();
233708
233726
  const invokedBinary = getInvokedBinary();
233709
233727
  const multipleInstallations = await detectMultipleInstallations();
@@ -234638,8 +234656,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
234638
234656
  const maxVersion = await getMaxVersion();
234639
234657
  if (maxVersion && gt(version2, maxVersion)) {
234640
234658
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
234641
- if (gte("1.11.1", maxVersion)) {
234642
- logForDebugging(`Native installer: current version ${"1.11.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
234659
+ if (gte("1.11.3", maxVersion)) {
234660
+ logForDebugging(`Native installer: current version ${"1.11.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
234643
234661
  logEvent("tengu_native_update_skipped_max_version", {
234644
234662
  latency_ms: Date.now() - startTime,
234645
234663
  max_version: maxVersion,
@@ -234650,7 +234668,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
234650
234668
  version2 = maxVersion;
234651
234669
  }
234652
234670
  }
234653
- if (!forceReinstall && version2 === "1.11.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
234671
+ if (!forceReinstall && version2 === "1.11.3" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
234654
234672
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
234655
234673
  logEvent("tengu_native_update_complete", {
234656
234674
  latency_ms: Date.now() - startTime,
@@ -284540,9 +284558,12 @@ var init_WebFetchTool = __esm(() => {
284540
284558
  };
284541
284559
  }
284542
284560
  return {
284543
- behavior: "ask",
284544
- message: `UR requested permissions to use ${WebFetchTool.name}, but you haven't granted it yet.`,
284545
- suggestions: buildSuggestions(ruleContent)
284561
+ behavior: "allow",
284562
+ updatedInput: input,
284563
+ decisionReason: {
284564
+ type: "other",
284565
+ reason: "Read-only web fetches are allowed by default"
284566
+ }
284546
284567
  };
284547
284568
  },
284548
284569
  async prompt(_options) {
@@ -284625,11 +284646,13 @@ To complete your request, I need to fetch content from the redirected URL. Pleas
284625
284646
  data: output
284626
284647
  };
284627
284648
  },
284628
- mapToolResultToToolResultBlockParam({ result }, toolUseID) {
284649
+ mapToolResultToToolResultBlockParam({ result, url: url3 }, toolUseID) {
284629
284650
  return {
284630
284651
  tool_use_id: toolUseID,
284631
284652
  type: "tool_result",
284632
- content: result
284653
+ content: `Source URL: ${url3}
284654
+
284655
+ ${result}`
284633
284656
  };
284634
284657
  }
284635
284658
  });
@@ -286289,6 +286312,7 @@ var init_WebSearchTool = __esm(() => {
286289
286312
  init_log2();
286290
286313
  init_messages();
286291
286314
  init_model();
286315
+ init_permissions2();
286292
286316
  init_slowOperations();
286293
286317
  init_prompt5();
286294
286318
  init_UI16();
@@ -286358,18 +286382,50 @@ var init_WebSearchTool = __esm(() => {
286358
286382
  toAutoClassifierInput(input) {
286359
286383
  return input.query;
286360
286384
  },
286361
- async checkPermissions(_input) {
286362
- return {
286363
- behavior: "passthrough",
286364
- message: "WebSearchTool requires permission.",
286365
- suggestions: [
286366
- {
286367
- type: "addRules",
286368
- rules: [{ toolName: WEB_SEARCH_TOOL_NAME }],
286369
- behavior: "allow",
286370
- destination: "localSettings"
286385
+ async checkPermissions(input, context3) {
286386
+ const appState = context3.getAppState();
286387
+ const permissionContext = appState.toolPermissionContext;
286388
+ const ruleContent = input.query;
286389
+ const denyRule = getRuleByContentsForTool(permissionContext, WebSearchTool, "deny").get(ruleContent);
286390
+ if (denyRule) {
286391
+ return {
286392
+ behavior: "deny",
286393
+ message: `${WebSearchTool.name} denied access to ${ruleContent}.`,
286394
+ decisionReason: {
286395
+ type: "rule",
286396
+ rule: denyRule
286371
286397
  }
286372
- ]
286398
+ };
286399
+ }
286400
+ const askRule = getRuleByContentsForTool(permissionContext, WebSearchTool, "ask").get(ruleContent);
286401
+ if (askRule) {
286402
+ return {
286403
+ behavior: "ask",
286404
+ message: `UR requested permissions to use ${WebSearchTool.name}, but you haven't granted it yet.`,
286405
+ decisionReason: {
286406
+ type: "rule",
286407
+ rule: askRule
286408
+ }
286409
+ };
286410
+ }
286411
+ const allowRule = getRuleByContentsForTool(permissionContext, WebSearchTool, "allow").get(ruleContent);
286412
+ if (allowRule) {
286413
+ return {
286414
+ behavior: "allow",
286415
+ updatedInput: input,
286416
+ decisionReason: {
286417
+ type: "rule",
286418
+ rule: allowRule
286419
+ }
286420
+ };
286421
+ }
286422
+ return {
286423
+ behavior: "allow",
286424
+ updatedInput: input,
286425
+ decisionReason: {
286426
+ type: "other",
286427
+ reason: "Read-only web searches are allowed by default"
286428
+ }
286373
286429
  };
286374
286430
  },
286375
286431
  async prompt() {
@@ -287128,6 +287184,14 @@ function headerFromQuestion2(question, index2) {
287128
287184
  const word = question.replace(/[^A-Za-z0-9]+/g, " ").split(/\s+/).find((part) => part && !stopWords.has(part.toLowerCase())) ?? `Question ${index2 + 1}`;
287129
287185
  return word.slice(0, ASK_USER_QUESTION_TOOL_CHIP_WIDTH);
287130
287186
  }
287187
+ function stringField2(input, names) {
287188
+ for (const name of names) {
287189
+ const value = input[name];
287190
+ if (typeof value === "string" && value.trim())
287191
+ return value.trim();
287192
+ }
287193
+ return "";
287194
+ }
287131
287195
  function normalizeQuestionOptionInput(value) {
287132
287196
  if (typeof value === "string") {
287133
287197
  const label2 = value.trim();
@@ -287153,9 +287217,9 @@ function normalizeQuestionOptionInput(value) {
287153
287217
  }
287154
287218
  function normalizeQuestionInput(value, index2) {
287155
287219
  const question = objectValue3(value);
287156
- if (!question || typeof question.question !== "string" || !Array.isArray(question.options))
287220
+ if (!question || !Array.isArray(question.options))
287157
287221
  return value;
287158
- const questionText = question.question.trim();
287222
+ const questionText = stringField2(question, ["question", "questionText", "question_text", "prompt", "text", "title", "message", "body"]);
287159
287223
  if (!questionText)
287160
287224
  return value;
287161
287225
  return {
@@ -287338,7 +287402,7 @@ var init_AskUserQuestionTool = __esm(() => {
287338
287402
  name: ASK_USER_QUESTION_TOOL_NAME,
287339
287403
  searchHint: "prompt the user with a multiple-choice question",
287340
287404
  maxResultSizeChars: 1e5,
287341
- shouldDefer: true,
287405
+ shouldDefer: false,
287342
287406
  async description() {
287343
287407
  return DESCRIPTION5;
287344
287408
  },
@@ -328808,7 +328872,7 @@ function Feedback({
328808
328872
  platform: env3.platform,
328809
328873
  gitRepo: envInfo.isGit,
328810
328874
  terminal: env3.terminal,
328811
- version: "1.11.1",
328875
+ version: "1.11.3",
328812
328876
  transcript: normalizeMessagesForAPI(messages),
328813
328877
  errors: sanitizedErrors,
328814
328878
  lastApiRequest: getLastAPIRequest(),
@@ -329000,7 +329064,7 @@ function Feedback({
329000
329064
  ", ",
329001
329065
  env3.terminal,
329002
329066
  ", v",
329003
- "1.11.1"
329067
+ "1.11.3"
329004
329068
  ]
329005
329069
  }, undefined, true, undefined, this)
329006
329070
  ]
@@ -329106,7 +329170,7 @@ ${sanitizedDescription}
329106
329170
  ` + `**Environment Info**
329107
329171
  ` + `- Platform: ${env3.platform}
329108
329172
  ` + `- Terminal: ${env3.terminal}
329109
- ` + `- Version: ${"1.11.1"}
329173
+ ` + `- Version: ${"1.11.3"}
329110
329174
  ` + `- Feedback ID: ${feedbackId}
329111
329175
  ` + `
329112
329176
  **Errors**
@@ -332216,7 +332280,7 @@ function buildPrimarySection() {
332216
332280
  }, undefined, false, undefined, this);
332217
332281
  return [{
332218
332282
  label: "Version",
332219
- value: "1.11.1"
332283
+ value: "1.11.3"
332220
332284
  }, {
332221
332285
  label: "Session name",
332222
332286
  value: nameValue
@@ -335494,7 +335558,7 @@ function Config({
335494
335558
  }
335495
335559
  }, undefined, false, undefined, this)
335496
335560
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime177.jsxDEV(ChannelDowngradeDialog, {
335497
- currentVersion: "1.11.1",
335561
+ currentVersion: "1.11.3",
335498
335562
  onChoice: (choice) => {
335499
335563
  setShowSubmenu(null);
335500
335564
  setTabsHidden(false);
@@ -335506,7 +335570,7 @@ function Config({
335506
335570
  autoUpdatesChannel: "stable"
335507
335571
  };
335508
335572
  if (choice === "stay") {
335509
- newSettings.minimumVersion = "1.11.1";
335573
+ newSettings.minimumVersion = "1.11.3";
335510
335574
  }
335511
335575
  updateSettingsForSource("userSettings", newSettings);
335512
335576
  setSettingsData((prev_27) => ({
@@ -343576,7 +343640,7 @@ function HelpV2(t0) {
343576
343640
  let t6;
343577
343641
  if ($3[31] !== tabs) {
343578
343642
  t6 = /* @__PURE__ */ jsx_dev_runtime204.jsxDEV(Tabs, {
343579
- title: `UR v${"1.11.1"}`,
343643
+ title: `UR v${"1.11.3"}`,
343580
343644
  color: "professionalBlue",
343581
343645
  defaultTab: "general",
343582
343646
  children: tabs
@@ -363179,7 +363243,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
363179
363243
  return [];
363180
363244
  }
363181
363245
  }
363182
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.11.1") {
363246
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.11.3") {
363183
363247
  if (process.env.USER_TYPE === "ant") {
363184
363248
  const changelog = "";
363185
363249
  if (changelog) {
@@ -363206,7 +363270,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.11.1")
363206
363270
  releaseNotes
363207
363271
  };
363208
363272
  }
363209
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.11.1") {
363273
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.11.3") {
363210
363274
  if (process.env.USER_TYPE === "ant") {
363211
363275
  const changelog = "";
363212
363276
  if (changelog) {
@@ -364376,7 +364440,7 @@ function getRecentActivitySync() {
364376
364440
  return cachedActivity;
364377
364441
  }
364378
364442
  function getLogoDisplayData() {
364379
- const version2 = process.env.DEMO_VERSION ?? "1.11.1";
364443
+ const version2 = process.env.DEMO_VERSION ?? "1.11.3";
364380
364444
  const serverUrl = getDirectConnectServerUrl();
364381
364445
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
364382
364446
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -365165,7 +365229,7 @@ function LogoV2() {
365165
365229
  if ($3[2] === Symbol.for("react.memo_cache_sentinel")) {
365166
365230
  t2 = () => {
365167
365231
  const currentConfig = getGlobalConfig();
365168
- if (currentConfig.lastReleaseNotesSeen === "1.11.1") {
365232
+ if (currentConfig.lastReleaseNotesSeen === "1.11.3") {
365169
365233
  return;
365170
365234
  }
365171
365235
  saveGlobalConfig(_temp326);
@@ -365850,12 +365914,12 @@ function LogoV2() {
365850
365914
  return t41;
365851
365915
  }
365852
365916
  function _temp326(current) {
365853
- if (current.lastReleaseNotesSeen === "1.11.1") {
365917
+ if (current.lastReleaseNotesSeen === "1.11.3") {
365854
365918
  return current;
365855
365919
  }
365856
365920
  return {
365857
365921
  ...current,
365858
- lastReleaseNotesSeen: "1.11.1"
365922
+ lastReleaseNotesSeen: "1.11.3"
365859
365923
  };
365860
365924
  }
365861
365925
  function _temp243(s_0) {
@@ -395672,7 +395736,7 @@ async function captureMemoryDiagnostics(trigger, dumpNumber = 0) {
395672
395736
  smapsRollup,
395673
395737
  platform: process.platform,
395674
395738
  nodeVersion: process.version,
395675
- ccVersion: "1.11.1"
395739
+ ccVersion: "1.11.3"
395676
395740
  };
395677
395741
  }
395678
395742
  async function performHeapDump(trigger = "manual", dumpNumber = 0) {
@@ -396258,7 +396322,7 @@ var init_bridge_kick = __esm(() => {
396258
396322
  var call93 = async () => {
396259
396323
  return {
396260
396324
  type: "text",
396261
- value: "1.11.1"
396325
+ value: "1.11.3"
396262
396326
  };
396263
396327
  }, version2, version_default;
396264
396328
  var init_version = __esm(() => {
@@ -405298,7 +405362,7 @@ function generateHtmlReport(data, insights) {
405298
405362
  </html>`;
405299
405363
  }
405300
405364
  function buildExportData(data, insights, facets, remoteStats) {
405301
- const version3 = typeof MACRO !== "undefined" ? "1.11.1" : "unknown";
405365
+ const version3 = typeof MACRO !== "undefined" ? "1.11.3" : "unknown";
405302
405366
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
405303
405367
  const facets_summary = {
405304
405368
  total: facets.size,
@@ -409485,7 +409549,7 @@ var init_sessionStorage = __esm(() => {
409485
409549
  init_settings2();
409486
409550
  init_slowOperations();
409487
409551
  init_uuid();
409488
- VERSION5 = typeof MACRO !== "undefined" ? "1.11.1" : "unknown";
409552
+ VERSION5 = typeof MACRO !== "undefined" ? "1.11.3" : "unknown";
409489
409553
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
409490
409554
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
409491
409555
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -410690,7 +410754,7 @@ var init_filesystem = __esm(() => {
410690
410754
  });
410691
410755
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
410692
410756
  const nonce = randomBytes18(16).toString("hex");
410693
- return join150(getURTempDir(), "bundled-skills", "1.11.1", nonce);
410757
+ return join150(getURTempDir(), "bundled-skills", "1.11.3", nonce);
410694
410758
  });
410695
410759
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
410696
410760
  });
@@ -416721,7 +416785,7 @@ function computeFingerprint(messageText, version3) {
416721
416785
  }
416722
416786
  function computeFingerprintFromMessages(messages) {
416723
416787
  const firstMessageText = extractFirstMessageText(messages);
416724
- return computeFingerprint(firstMessageText, "1.11.1");
416788
+ return computeFingerprint(firstMessageText, "1.11.3");
416725
416789
  }
416726
416790
  var FINGERPRINT_SALT = "59cf53e54c78";
416727
416791
  var init_fingerprint = () => {};
@@ -418587,7 +418651,7 @@ async function sideQuery(opts) {
418587
418651
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
418588
418652
  }
418589
418653
  const messageText = extractFirstUserMessageText(messages);
418590
- const fingerprint = computeFingerprint(messageText, "1.11.1");
418654
+ const fingerprint = computeFingerprint(messageText, "1.11.3");
418591
418655
  const attributionHeader = getAttributionHeader(fingerprint);
418592
418656
  const systemBlocks = [
418593
418657
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -423324,7 +423388,7 @@ function buildSystemInitMessage(inputs) {
423324
423388
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
423325
423389
  apiKeySource: getURHQApiKeyWithSource().source,
423326
423390
  betas: getSdkBetas(),
423327
- ur_version: "1.11.1",
423391
+ ur_version: "1.11.3",
423328
423392
  output_style: outputStyle2,
423329
423393
  agents: inputs.agents.map((agent) => agent.agentType),
423330
423394
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill) => skill.name),
@@ -437952,7 +438016,7 @@ var init_useVoiceEnabled = __esm(() => {
437952
438016
  function getSemverPart(version3) {
437953
438017
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
437954
438018
  }
437955
- function useUpdateNotification(updatedVersion, initialVersion = "1.11.1") {
438019
+ function useUpdateNotification(updatedVersion, initialVersion = "1.11.3") {
437956
438020
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react224.useState(() => getSemverPart(initialVersion));
437957
438021
  if (!updatedVersion) {
437958
438022
  return null;
@@ -437992,7 +438056,7 @@ function AutoUpdater({
437992
438056
  return;
437993
438057
  }
437994
438058
  if (false) {}
437995
- const currentVersion = "1.11.1";
438059
+ const currentVersion = "1.11.3";
437996
438060
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
437997
438061
  let latestVersion = await getLatestVersion(channel);
437998
438062
  const isDisabled = isAutoUpdaterDisabled();
@@ -438205,12 +438269,12 @@ function NativeAutoUpdater({
438205
438269
  logEvent("tengu_native_auto_updater_start", {});
438206
438270
  try {
438207
438271
  const maxVersion = await getMaxVersion();
438208
- if (maxVersion && gt("1.11.1", maxVersion)) {
438272
+ if (maxVersion && gt("1.11.3", maxVersion)) {
438209
438273
  const msg = await getMaxVersionMessage();
438210
438274
  setMaxVersionIssue(msg ?? "affects your version");
438211
438275
  }
438212
438276
  const result = await installLatest(channel);
438213
- const currentVersion = "1.11.1";
438277
+ const currentVersion = "1.11.3";
438214
438278
  const latencyMs = Date.now() - startTime;
438215
438279
  if (result.lockFailed) {
438216
438280
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -438347,17 +438411,17 @@ function PackageManagerAutoUpdater(t0) {
438347
438411
  const maxVersion = await getMaxVersion();
438348
438412
  if (maxVersion && latest && gt(latest, maxVersion)) {
438349
438413
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
438350
- if (gte("1.11.1", maxVersion)) {
438351
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.11.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
438414
+ if (gte("1.11.3", maxVersion)) {
438415
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.11.3"} is already at or above maxVersion ${maxVersion}, skipping update`);
438352
438416
  setUpdateAvailable(false);
438353
438417
  return;
438354
438418
  }
438355
438419
  latest = maxVersion;
438356
438420
  }
438357
- const hasUpdate = latest && !gte("1.11.1", latest) && !shouldSkipVersion(latest);
438421
+ const hasUpdate = latest && !gte("1.11.3", latest) && !shouldSkipVersion(latest);
438358
438422
  setUpdateAvailable(!!hasUpdate);
438359
438423
  if (hasUpdate) {
438360
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.11.1"} -> ${latest}`);
438424
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.11.3"} -> ${latest}`);
438361
438425
  }
438362
438426
  };
438363
438427
  $3[0] = t1;
@@ -438391,7 +438455,7 @@ function PackageManagerAutoUpdater(t0) {
438391
438455
  wrap: "truncate",
438392
438456
  children: [
438393
438457
  "currentVersion: ",
438394
- "1.11.1"
438458
+ "1.11.3"
438395
438459
  ]
438396
438460
  }, undefined, true, undefined, this);
438397
438461
  $3[3] = verbose;
@@ -450753,7 +450817,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
450753
450817
  project_dir: getOriginalCwd(),
450754
450818
  added_dirs: addedDirs
450755
450819
  },
450756
- version: "1.11.1",
450820
+ version: "1.11.3",
450757
450821
  output_style: {
450758
450822
  name: outputStyleName
450759
450823
  },
@@ -462245,7 +462309,7 @@ async function submitTranscriptShare(messages, trigger, appearanceId) {
462245
462309
  } catch {}
462246
462310
  const data = {
462247
462311
  trigger,
462248
- version: "1.11.1",
462312
+ version: "1.11.3",
462249
462313
  platform: process.platform,
462250
462314
  transcript,
462251
462315
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -474160,7 +474224,7 @@ function WelcomeV2() {
474160
474224
  dimColor: true,
474161
474225
  children: [
474162
474226
  "v",
474163
- "1.11.1"
474227
+ "1.11.3"
474164
474228
  ]
474165
474229
  }, undefined, true, undefined, this)
474166
474230
  ]
@@ -475420,7 +475484,7 @@ function completeOnboarding() {
475420
475484
  saveGlobalConfig((current) => ({
475421
475485
  ...current,
475422
475486
  hasCompletedOnboarding: true,
475423
- lastOnboardingVersion: "1.11.1"
475487
+ lastOnboardingVersion: "1.11.3"
475424
475488
  }));
475425
475489
  }
475426
475490
  function showDialog(root2, renderer) {
@@ -479880,7 +479944,7 @@ function appendToLog(path24, message) {
479880
479944
  cwd: getFsImplementation().cwd(),
479881
479945
  userType: process.env.USER_TYPE,
479882
479946
  sessionId: getSessionId(),
479883
- version: "1.11.1"
479947
+ version: "1.11.3"
479884
479948
  };
479885
479949
  getLogWriter(path24).write(messageWithTimestamp);
479886
479950
  }
@@ -483906,8 +483970,8 @@ async function getEnvLessBridgeConfig() {
483906
483970
  }
483907
483971
  async function checkEnvLessBridgeMinVersion() {
483908
483972
  const cfg = await getEnvLessBridgeConfig();
483909
- if (cfg.min_version && lt("1.11.1", cfg.min_version)) {
483910
- return `Your version of UR (${"1.11.1"}) is too old for Remote Control.
483973
+ if (cfg.min_version && lt("1.11.3", cfg.min_version)) {
483974
+ return `Your version of UR (${"1.11.3"}) is too old for Remote Control.
483911
483975
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
483912
483976
  }
483913
483977
  return null;
@@ -484381,7 +484445,7 @@ async function initBridgeCore(params) {
484381
484445
  const rawApi = createBridgeApiClient({
484382
484446
  baseUrl,
484383
484447
  getAccessToken,
484384
- runnerVersion: "1.11.1",
484448
+ runnerVersion: "1.11.3",
484385
484449
  onDebug: logForDebugging,
484386
484450
  onAuth401,
484387
484451
  getTrustedDeviceToken
@@ -490046,7 +490110,7 @@ async function startMCPServer(cwd3, debug2, verbose) {
490046
490110
  setCwd(cwd3);
490047
490111
  const server = new Server({
490048
490112
  name: "ur/tengu",
490049
- version: "1.11.1"
490113
+ version: "1.11.3"
490050
490114
  }, {
490051
490115
  capabilities: {
490052
490116
  tools: {}
@@ -491657,7 +491721,7 @@ __export(exports_update, {
491657
491721
  });
491658
491722
  async function update() {
491659
491723
  logEvent("tengu_update_check", {});
491660
- writeToStdout(`Current version: ${"1.11.1"}
491724
+ writeToStdout(`Current version: ${"1.11.3"}
491661
491725
  `);
491662
491726
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
491663
491727
  writeToStdout(`Checking for updates to ${channel} version...
@@ -491732,8 +491796,8 @@ async function update() {
491732
491796
  writeToStdout(`UR is managed by Homebrew.
491733
491797
  `);
491734
491798
  const latest = await getLatestVersion(channel);
491735
- if (latest && !gte("1.11.1", latest)) {
491736
- writeToStdout(`Update available: ${"1.11.1"} \u2192 ${latest}
491799
+ if (latest && !gte("1.11.3", latest)) {
491800
+ writeToStdout(`Update available: ${"1.11.3"} \u2192 ${latest}
491737
491801
  `);
491738
491802
  writeToStdout(`
491739
491803
  `);
@@ -491749,8 +491813,8 @@ async function update() {
491749
491813
  writeToStdout(`UR is managed by winget.
491750
491814
  `);
491751
491815
  const latest = await getLatestVersion(channel);
491752
- if (latest && !gte("1.11.1", latest)) {
491753
- writeToStdout(`Update available: ${"1.11.1"} \u2192 ${latest}
491816
+ if (latest && !gte("1.11.3", latest)) {
491817
+ writeToStdout(`Update available: ${"1.11.3"} \u2192 ${latest}
491754
491818
  `);
491755
491819
  writeToStdout(`
491756
491820
  `);
@@ -491766,8 +491830,8 @@ async function update() {
491766
491830
  writeToStdout(`UR is managed by apk.
491767
491831
  `);
491768
491832
  const latest = await getLatestVersion(channel);
491769
- if (latest && !gte("1.11.1", latest)) {
491770
- writeToStdout(`Update available: ${"1.11.1"} \u2192 ${latest}
491833
+ if (latest && !gte("1.11.3", latest)) {
491834
+ writeToStdout(`Update available: ${"1.11.3"} \u2192 ${latest}
491771
491835
  `);
491772
491836
  writeToStdout(`
491773
491837
  `);
@@ -491832,11 +491896,11 @@ async function update() {
491832
491896
  `);
491833
491897
  await gracefulShutdown(1);
491834
491898
  }
491835
- if (result.latestVersion === "1.11.1") {
491836
- writeToStdout(source_default.green(`UR is up to date (${"1.11.1"})`) + `
491899
+ if (result.latestVersion === "1.11.3") {
491900
+ writeToStdout(source_default.green(`UR is up to date (${"1.11.3"})`) + `
491837
491901
  `);
491838
491902
  } else {
491839
- writeToStdout(source_default.green(`Successfully updated from ${"1.11.1"} to version ${result.latestVersion}`) + `
491903
+ writeToStdout(source_default.green(`Successfully updated from ${"1.11.3"} to version ${result.latestVersion}`) + `
491840
491904
  `);
491841
491905
  await regenerateCompletionCache();
491842
491906
  }
@@ -491896,12 +491960,12 @@ async function update() {
491896
491960
  `);
491897
491961
  await gracefulShutdown(1);
491898
491962
  }
491899
- if (latestVersion === "1.11.1") {
491900
- writeToStdout(source_default.green(`UR is up to date (${"1.11.1"})`) + `
491963
+ if (latestVersion === "1.11.3") {
491964
+ writeToStdout(source_default.green(`UR is up to date (${"1.11.3"})`) + `
491901
491965
  `);
491902
491966
  await gracefulShutdown(0);
491903
491967
  }
491904
- writeToStdout(`New version available: ${latestVersion} (current: ${"1.11.1"})
491968
+ writeToStdout(`New version available: ${latestVersion} (current: ${"1.11.3"})
491905
491969
  `);
491906
491970
  writeToStdout(`Installing update...
491907
491971
  `);
@@ -491946,7 +492010,7 @@ async function update() {
491946
492010
  logForDebugging(`update: Installation status: ${status2}`);
491947
492011
  switch (status2) {
491948
492012
  case "success":
491949
- writeToStdout(source_default.green(`Successfully updated from ${"1.11.1"} to version ${latestVersion}`) + `
492013
+ writeToStdout(source_default.green(`Successfully updated from ${"1.11.3"} to version ${latestVersion}`) + `
491950
492014
  `);
491951
492015
  await regenerateCompletionCache();
491952
492016
  break;
@@ -493196,7 +493260,7 @@ ${customInstructions}` : customInstructions;
493196
493260
  }
493197
493261
  }
493198
493262
  logForDiagnosticsNoPII("info", "started", {
493199
- version: "1.11.1",
493263
+ version: "1.11.3",
493200
493264
  is_native_binary: isInBundledMode()
493201
493265
  });
493202
493266
  registerCleanup(async () => {
@@ -493980,7 +494044,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
493980
494044
  pendingHookMessages
493981
494045
  }, renderAndRun);
493982
494046
  }
493983
- }).version("1.11.1 (Ur)", "-v, --version", "Output the version number");
494047
+ }).version("1.11.3 (Ur)", "-v, --version", "Output the version number");
493984
494048
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
493985
494049
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
493986
494050
  if (canUserConfigureAdvisor()) {
@@ -494493,7 +494557,7 @@ if (false) {}
494493
494557
  async function main2() {
494494
494558
  const args = process.argv.slice(2);
494495
494559
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
494496
- console.log(`${"1.11.1"} (Ur)`);
494560
+ console.log(`${"1.11.3"} (Ur)`);
494497
494561
  return;
494498
494562
  }
494499
494563
  const {
@@ -17,7 +17,7 @@ You need:
17
17
 
18
18
  ```sh
19
19
  ur --version
20
- # expected: 1.11.1 (Ur)
20
+ # expected: 1.11.3 (Ur)
21
21
  ```
22
22
 
23
23
  ## 1. Marketplace tree resolves
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ur-agent",
3
- "version": "1.11.1",
3
+ "version": "1.11.3",
4
4
  "description": "UR terminal coding agent CLI",
5
5
  "type": "module",
6
6
  "packageManager": "bun@1.3.14",