ur-agent 1.66.1 → 1.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -56666,6 +56666,29 @@ function computeOllamaNumCtx(input) {
56666
56666
  const desired = Math.max(minCtx, estimatedPromptTokens + headroom);
56667
56667
  return cap(bucketize(desired));
56668
56668
  }
56669
+ function describeContextPressure(input) {
56670
+ const { estimatedPromptTokens, numCtx, modelContextLength, model } = input;
56671
+ const effective = numCtx ?? modelContextLength;
56672
+ if (!effective || effective <= 0 || estimatedPromptTokens <= 0) {
56673
+ return { level: "ok" };
56674
+ }
56675
+ if (estimatedPromptTokens >= effective) {
56676
+ return {
56677
+ level: "overflow",
56678
+ message: `This request is about ${fmt(estimatedPromptTokens)} tokens but ${model} ` + `is running with a ${fmt(effective)}-token context. Ollama discards the ` + `oldest tokens instead of failing, so the system prompt and earliest ` + `turns are being dropped and the model is answering without them. ` + `Use /compact, start a new session, pick a model with a larger context, ` + `or raise UR_OLLAMA_NUM_CTX if the model supports more.`
56679
+ };
56680
+ }
56681
+ if (estimatedPromptTokens >= effective * 0.85) {
56682
+ return {
56683
+ level: "tight",
56684
+ message: `This request is using about ${fmt(estimatedPromptTokens)} of ${model}'s ` + `${fmt(effective)}-token context. Once it is full, Ollama drops the ` + `oldest tokens \u2014 the system prompt first. /compact will free room.`
56685
+ };
56686
+ }
56687
+ return { level: "ok" };
56688
+ }
56689
+ function fmt(n2) {
56690
+ return n2 >= 1000 ? `${Math.round(n2 / 1000)}k` : String(n2);
56691
+ }
56669
56692
  function bucketize(n2) {
56670
56693
  for (const bucket of NUM_CTX_BUCKETS) {
56671
56694
  if (bucket >= n2)
@@ -57709,15 +57732,26 @@ function toOllamaChatRequest(params, stream4, capabilities, baseUrl = getEffecti
57709
57732
  if (typeof params.max_tokens === "number") {
57710
57733
  options.num_predict = params.max_tokens;
57711
57734
  }
57735
+ const modelContextLength = getOllamaContextLengthForModel(params.model, baseUrl);
57736
+ const estimatedPromptTokens = estimateInputTokens(params);
57712
57737
  const numCtx = computeOllamaNumCtx({
57713
- modelContextLength: getOllamaContextLengthForModel(params.model, baseUrl),
57714
- estimatedPromptTokens: estimateInputTokens(params),
57738
+ modelContextLength,
57739
+ estimatedPromptTokens,
57715
57740
  maxTokens: typeof params.max_tokens === "number" ? params.max_tokens : undefined,
57716
57741
  override: getOllamaNumCtxOverride()
57717
57742
  });
57718
57743
  if (numCtx !== undefined) {
57719
57744
  options.num_ctx = numCtx;
57720
57745
  }
57746
+ const pressure = describeContextPressure({
57747
+ estimatedPromptTokens,
57748
+ numCtx,
57749
+ modelContextLength,
57750
+ model: params.model
57751
+ });
57752
+ if (pressure.message && !pendingProviderNotice) {
57753
+ pendingProviderNotice = pressure.message;
57754
+ }
57721
57755
  if (Object.keys(options).length > 0) {
57722
57756
  request.options = options;
57723
57757
  }
@@ -75613,7 +75647,7 @@ var init_auth = __esm(() => {
75613
75647
 
75614
75648
  // src/utils/userAgent.ts
75615
75649
  function getURCodeUserAgent() {
75616
- return `ur/${"1.66.1"}`;
75650
+ return `ur/${"1.68.0"}`;
75617
75651
  }
75618
75652
 
75619
75653
  // src/utils/workloadContext.ts
@@ -75635,7 +75669,7 @@ function getUserAgent() {
75635
75669
  const clientApp = process.env.UR_AGENT_SDK_CLIENT_APP ? `, client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}` : "";
75636
75670
  const workload = getWorkload();
75637
75671
  const workloadSuffix = workload ? `, workload/${workload}` : "";
75638
- return `ur-cli/${"1.66.1"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75672
+ return `ur-cli/${"1.68.0"} (${process.env.USER_TYPE}, ${process.env.UR_CODE_ENTRYPOINT ?? "cli"}${agentSdkVersion}${clientApp}${workloadSuffix})`;
75639
75673
  }
75640
75674
  function getMCPUserAgent() {
75641
75675
  const parts = [];
@@ -75649,7 +75683,7 @@ function getMCPUserAgent() {
75649
75683
  parts.push(`client-app/${process.env.UR_AGENT_SDK_CLIENT_APP}`);
75650
75684
  }
75651
75685
  const suffix = parts.length > 0 ? ` (${parts.join(", ")})` : "";
75652
- return `ur/${"1.66.1"}${suffix}`;
75686
+ return `ur/${"1.68.0"}${suffix}`;
75653
75687
  }
75654
75688
  function getWebFetchUserAgent() {
75655
75689
  return `UR-User (${getURCodeUserAgent()})`;
@@ -75787,7 +75821,7 @@ var init_user = __esm(() => {
75787
75821
  deviceId,
75788
75822
  sessionId: getSessionId(),
75789
75823
  email: getEmail(),
75790
- appVersion: "1.66.1",
75824
+ appVersion: "1.68.0",
75791
75825
  platform: getHostPlatformForAnalytics(),
75792
75826
  organizationUuid,
75793
75827
  accountUuid,
@@ -83987,7 +84021,7 @@ var init_metadata = __esm(() => {
83987
84021
  COMPOUND_OPERATOR_REGEX = /\s*(?:&&|\|\||[;|])\s*/;
83988
84022
  WHITESPACE_REGEX = /\s+/;
83989
84023
  getVersionBase = memoize_default(() => {
83990
- const match = "1.66.1".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
84024
+ const match = "1.68.0".match(/^\d+\.\d+\.\d+(?:-[a-z]+)?/);
83991
84025
  return match ? match[0] : undefined;
83992
84026
  });
83993
84027
  buildEnvContext = memoize_default(async () => {
@@ -84027,7 +84061,7 @@ var init_metadata = __esm(() => {
84027
84061
  isGithubAction: isEnvTruthy(process.env.GITHUB_ACTIONS),
84028
84062
  isURCodeAction: isEnvTruthy(process.env.UR_CODE_ACTION),
84029
84063
  isURAiAuth: isURAISubscriber(),
84030
- version: "1.66.1",
84064
+ version: "1.68.0",
84031
84065
  versionBase: getVersionBase(),
84032
84066
  buildTime: "",
84033
84067
  deploymentEnvironment: env2.detectDeploymentEnvironment(),
@@ -84697,7 +84731,7 @@ function initialize1PEventLogging() {
84697
84731
  const platform2 = getPlatform();
84698
84732
  const attributes = {
84699
84733
  [import_semantic_conventions4.ATTR_SERVICE_NAME]: "ur",
84700
- [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.66.1"
84734
+ [import_semantic_conventions4.ATTR_SERVICE_VERSION]: "1.68.0"
84701
84735
  };
84702
84736
  if (platform2 === "wsl") {
84703
84737
  const wslVersion = getWslVersion();
@@ -84725,7 +84759,7 @@ function initialize1PEventLogging() {
84725
84759
  })
84726
84760
  ]
84727
84761
  });
84728
- firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.66.1");
84762
+ firstPartyEventLogger = firstPartyEventLoggerProvider.getLogger("com.urhq.ur.events", "1.68.0");
84729
84763
  }
84730
84764
  async function reinitialize1PEventLoggingIfConfigChanged() {
84731
84765
  if (!is1PEventLoggingEnabled() || !firstPartyEventLoggerProvider) {
@@ -90099,7 +90133,7 @@ function suggestSkillCandidates(stats, existingSkillNames = [], options = {}) {
90099
90133
  function formatStats(stats, json2) {
90100
90134
  if (json2)
90101
90135
  return JSON.stringify(stats, null, 2);
90102
- const fmt = (t) => {
90136
+ const fmt2 = (t) => {
90103
90137
  const total = t.pass + t.fail;
90104
90138
  return `${t.pass}/${total} (${total ? Math.round(t.pass / total * 100) : 0}%)`;
90105
90139
  };
@@ -90108,14 +90142,14 @@ function formatStats(stats, json2) {
90108
90142
  if (cats.length) {
90109
90143
  lines.push("By category:");
90110
90144
  for (const [cat, t] of cats)
90111
- lines.push(` ${cat.padEnd(14)} ${fmt(t)}`);
90145
+ lines.push(` ${cat.padEnd(14)} ${fmt2(t)}`);
90112
90146
  lines.push("");
90113
90147
  }
90114
90148
  const models = Object.entries(stats.models).sort((a2, b) => a2[0].localeCompare(b[0]));
90115
90149
  if (models.length) {
90116
90150
  lines.push("By model:");
90117
90151
  for (const [model, t] of models)
90118
- lines.push(` ${model.padEnd(28)} ${fmt(t)}`);
90152
+ lines.push(` ${model.padEnd(28)} ${fmt2(t)}`);
90119
90153
  lines.push("");
90120
90154
  }
90121
90155
  if (stats.lessons.length) {
@@ -94613,7 +94647,7 @@ function formatAgentTrendReport(report = buildAgentTrendReport()) {
94613
94647
  function formatA2AAgentCard(options = {}, pretty = true) {
94614
94648
  return JSON.stringify(buildA2AAgentCard(options), null, pretty ? 2 : 0);
94615
94649
  }
94616
- var urVersion = "1.66.1", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94650
+ var urVersion = "1.68.0", researchSnapshotDate = "2026-07-15", coverage, priorityRoadmap;
94617
94651
  var init_trends = __esm(() => {
94618
94652
  init_a2aCardSignature();
94619
94653
  coverage = [
@@ -97416,7 +97450,7 @@ function getAttributionHeader(fingerprint) {
97416
97450
  if (!isAttributionHeaderEnabled()) {
97417
97451
  return "";
97418
97452
  }
97419
- const version2 = `${"1.66.1"}.${fingerprint}`;
97453
+ const version2 = `${"1.68.0"}.${fingerprint}`;
97420
97454
  const entrypoint = process.env.UR_CODE_ENTRYPOINT ?? "unknown";
97421
97455
  const cch = "";
97422
97456
  const workload = getWorkload();
@@ -155289,7 +155323,7 @@ var init_projectSafety = __esm(() => {
155289
155323
  function getInstruments() {
155290
155324
  if (instruments)
155291
155325
  return instruments;
155292
- const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.66.1");
155326
+ const meter = import_api10.metrics.getMeter("ur-agent.gen_ai", "1.68.0");
155293
155327
  instruments = {
155294
155328
  operationDuration: meter.createHistogram("gen_ai.client.operation.duration", {
155295
155329
  description: "GenAI operation duration.",
@@ -155387,7 +155421,7 @@ function genAiAgentAttributes() {
155387
155421
  "gen_ai.operation.name": GEN_AI_OPERATION_INVOKE_AGENT,
155388
155422
  "gen_ai.provider.name": "ur",
155389
155423
  "gen_ai.agent.name": "UR-Nexus",
155390
- "gen_ai.agent.version": "1.66.1"
155424
+ "gen_ai.agent.version": "1.68.0"
155391
155425
  };
155392
155426
  }
155393
155427
  function genAiWorkflowAttributes(workflowName) {
@@ -155403,7 +155437,7 @@ function genAiWorkflowAttributes(workflowName) {
155403
155437
  function startGenAiWorkflowSpan(workflowName) {
155404
155438
  const attributes = genAiWorkflowAttributes(workflowName);
155405
155439
  const name = typeof attributes["gen_ai.workflow.name"] === "string" ? `invoke_workflow ${attributes["gen_ai.workflow.name"]}` : GEN_AI_OPERATION_INVOKE_WORKFLOW;
155406
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.66.1").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
155440
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.0").startSpan(name, { kind: import_api10.SpanKind.INTERNAL, attributes });
155407
155441
  }
155408
155442
  function endGenAiWorkflowSpan(span, options2 = {}) {
155409
155443
  try {
@@ -155441,7 +155475,7 @@ function startGenAiMemorySpan(operation, options2 = {}) {
155441
155475
  if (options2.recordCount !== undefined && Number.isInteger(options2.recordCount) && options2.recordCount >= 0) {
155442
155476
  attributes["gen_ai.memory.record.count"] = options2.recordCount;
155443
155477
  }
155444
- return import_api10.trace.getTracer("ur-agent.gen_ai", "1.66.1").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
155478
+ return import_api10.trace.getTracer("ur-agent.gen_ai", "1.68.0").startSpan(operation, { kind: import_api10.SpanKind.INTERNAL, attributes });
155445
155479
  }
155446
155480
  function endGenAiMemorySpan(span, options2 = {}) {
155447
155481
  try {
@@ -248924,7 +248958,7 @@ function getTelemetryAttributes() {
248924
248958
  attributes["session.id"] = sessionId;
248925
248959
  }
248926
248960
  if (shouldIncludeAttribute("OTEL_METRICS_INCLUDE_VERSION")) {
248927
- attributes["app.version"] = "1.66.1";
248961
+ attributes["app.version"] = "1.68.0";
248928
248962
  }
248929
248963
  const oauthAccount = getOauthAccountInfo();
248930
248964
  if (oauthAccount) {
@@ -264542,11 +264576,11 @@ var require_format = __commonJS((exports) => {
264542
264576
  }
264543
264577
  function getFormat(fmtDef) {
264544
264578
  const code = fmtDef instanceof RegExp ? (0, codegen_1.regexpCode)(fmtDef) : opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(schema)}` : undefined;
264545
- const fmt = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
264579
+ const fmt2 = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
264546
264580
  if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) {
264547
- return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt}.validate`];
264581
+ return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt2}.validate`];
264548
264582
  }
264549
- return ["string", fmtDef, fmt];
264583
+ return ["string", fmtDef, fmt2];
264550
264584
  }
264551
264585
  function validCondition() {
264552
264586
  if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) {
@@ -275651,11 +275685,11 @@ var require_format3 = __commonJS((exports) => {
275651
275685
  }
275652
275686
  function getFormat(fmtDef) {
275653
275687
  const code = fmtDef instanceof RegExp ? (0, codegen_1.regexpCode)(fmtDef) : opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(schema)}` : undefined;
275654
- const fmt = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
275688
+ const fmt2 = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
275655
275689
  if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) {
275656
- return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt}.validate`];
275690
+ return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt2}.validate`];
275657
275691
  }
275658
- return ["string", fmtDef, fmt];
275692
+ return ["string", fmtDef, fmt2];
275659
275693
  }
275660
275694
  function validCondition() {
275661
275695
  if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) {
@@ -281210,11 +281244,11 @@ var require_format5 = __commonJS((exports) => {
281210
281244
  }
281211
281245
  function getFormat(fmtDef) {
281212
281246
  const code = fmtDef instanceof RegExp ? (0, codegen_1.regexpCode)(fmtDef) : opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(schema)}` : undefined;
281213
- const fmt = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
281247
+ const fmt2 = gen.scopeValue("formats", { key: schema, ref: fmtDef, code });
281214
281248
  if (typeof fmtDef == "object" && !(fmtDef instanceof RegExp)) {
281215
- return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt}.validate`];
281249
+ return [fmtDef.type || "string", fmtDef.validate, (0, codegen_1._)`${fmt2}.validate`];
281216
281250
  }
281217
- return ["string", fmtDef, fmt];
281251
+ return ["string", fmtDef, fmt2];
281218
281252
  }
281219
281253
  function validCondition() {
281220
281254
  if (typeof formatDef == "object" && !(formatDef instanceof RegExp) && formatDef.async) {
@@ -281651,8 +281685,8 @@ var require_limit = __commonJS((exports) => {
281651
281685
  ref: self2.formats,
281652
281686
  code: opts.code.formats
281653
281687
  });
281654
- const fmt = gen.const("fmt", (0, codegen_1._)`${fmts}[${fCxt.schemaCode}]`);
281655
- cxt.fail$data((0, codegen_1.or)((0, codegen_1._)`typeof ${fmt} != "object"`, (0, codegen_1._)`${fmt} instanceof RegExp`, (0, codegen_1._)`typeof ${fmt}.compare != "function"`, compareCode(fmt)));
281688
+ const fmt2 = gen.const("fmt", (0, codegen_1._)`${fmts}[${fCxt.schemaCode}]`);
281689
+ cxt.fail$data((0, codegen_1.or)((0, codegen_1._)`typeof ${fmt2} != "object"`, (0, codegen_1._)`${fmt2} instanceof RegExp`, (0, codegen_1._)`typeof ${fmt2}.compare != "function"`, compareCode(fmt2)));
281656
281690
  }
281657
281691
  function validateFormat() {
281658
281692
  const format4 = fCxt.schema;
@@ -281662,15 +281696,15 @@ var require_limit = __commonJS((exports) => {
281662
281696
  if (typeof fmtDef != "object" || fmtDef instanceof RegExp || typeof fmtDef.compare != "function") {
281663
281697
  throw new Error(`"${keyword}": format "${format4}" does not define "compare" function`);
281664
281698
  }
281665
- const fmt = gen.scopeValue("formats", {
281699
+ const fmt2 = gen.scopeValue("formats", {
281666
281700
  key: format4,
281667
281701
  ref: fmtDef,
281668
281702
  code: opts.code.formats ? (0, codegen_1._)`${opts.code.formats}${(0, codegen_1.getProperty)(format4)}` : undefined
281669
281703
  });
281670
- cxt.fail$data(compareCode(fmt));
281704
+ cxt.fail$data(compareCode(fmt2));
281671
281705
  }
281672
- function compareCode(fmt) {
281673
- return (0, codegen_1._)`${fmt}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;
281706
+ function compareCode(fmt2) {
281707
+ return (0, codegen_1._)`${fmt2}.compare(${data}, ${schemaCode}) ${KWDs[keyword].fail} 0`;
281674
281708
  }
281675
281709
  },
281676
281710
  dependencies: ["format"]
@@ -295404,7 +295438,7 @@ function getInstallationEnv() {
295404
295438
  return;
295405
295439
  }
295406
295440
  function getURCodeVersion() {
295407
- return "1.66.1";
295441
+ return "1.68.0";
295408
295442
  }
295409
295443
  async function getInstalledVSCodeExtensionVersion(command) {
295410
295444
  const { stdout } = await execFileNoThrow(command, ["--list-extensions", "--show-versions"], {
@@ -302735,7 +302769,7 @@ async function setupSdkMcpClients(sdkMcpConfigs, sendMcpMessage) {
302735
302769
  const client2 = new Client({
302736
302770
  name: "ur",
302737
302771
  title: "UR",
302738
- version: "1.66.1",
302772
+ version: "1.68.0",
302739
302773
  description: "UR-Nexus autonomous engineering workflow engine",
302740
302774
  websiteUrl: PRODUCT_URL
302741
302775
  }, {
@@ -303095,7 +303129,7 @@ var init_client5 = __esm(() => {
303095
303129
  const client2 = new Client({
303096
303130
  name: "ur",
303097
303131
  title: "UR",
303098
- version: "1.66.1",
303132
+ version: "1.68.0",
303099
303133
  description: "UR-Nexus autonomous engineering workflow engine",
303100
303134
  websiteUrl: PRODUCT_URL
303101
303135
  }, {
@@ -315634,7 +315668,7 @@ async function createRuntime() {
315634
315668
  bootstrapTelemetry();
315635
315669
  const resource = defaultResource().merge(detectResources({ detectors: [envDetector] })).merge(resourceFromAttributes({
315636
315670
  [import_semantic_conventions7.ATTR_SERVICE_NAME]: "ur-agent",
315637
- [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.66.1"
315671
+ [import_semantic_conventions7.ATTR_SERVICE_VERSION]: "1.68.0"
315638
315672
  }));
315639
315673
  const tracerProvider = exporters.traces.length > 0 ? new BasicTracerProvider({
315640
315674
  resource,
@@ -315667,11 +315701,11 @@ async function createRuntime() {
315667
315701
  setMeterProvider(meterProvider);
315668
315702
  setLoggerProvider(loggerProvider);
315669
315703
  if (meterProvider) {
315670
- const meter = meterProvider.getMeter("ur-agent", "1.66.1");
315704
+ const meter = meterProvider.getMeter("ur-agent", "1.68.0");
315671
315705
  setMeter(meter, (name, options2) => meter.createCounter(name, options2));
315672
315706
  }
315673
315707
  if (loggerProvider) {
315674
- setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.66.1"));
315708
+ setEventLogger(loggerProvider.getLogger("ur-agent.events", "1.68.0"));
315675
315709
  }
315676
315710
  if (!cleanupRegistered2) {
315677
315711
  cleanupRegistered2 = true;
@@ -316333,9 +316367,9 @@ async function assertMinVersion() {
316333
316367
  if (false) {}
316334
316368
  try {
316335
316369
  const versionConfig = await getDynamicConfig_BLOCKS_ON_INIT("tengu_version_config", { minVersion: "0.0.0" });
316336
- if (versionConfig.minVersion && lt("1.66.1", versionConfig.minVersion)) {
316370
+ if (versionConfig.minVersion && lt("1.68.0", versionConfig.minVersion)) {
316337
316371
  console.error(`
316338
- It looks like your version of UR (${"1.66.1"}) needs an update.
316372
+ It looks like your version of UR (${"1.68.0"}) needs an update.
316339
316373
  A newer version (${versionConfig.minVersion} or higher) is required to continue.
316340
316374
 
316341
316375
  To update, please run:
@@ -316551,7 +316585,7 @@ async function installGlobalPackage(specificVersion) {
316551
316585
  logError2(new AutoUpdaterError("Another process is currently installing an update"));
316552
316586
  logEvent("tengu_auto_updater_lock_contention", {
316553
316587
  pid: process.pid,
316554
- currentVersion: "1.66.1"
316588
+ currentVersion: "1.68.0"
316555
316589
  });
316556
316590
  return "in_progress";
316557
316591
  }
@@ -316560,7 +316594,7 @@ async function installGlobalPackage(specificVersion) {
316560
316594
  if (!env2.isRunningWithBun() && env2.isNpmFromWindowsPath()) {
316561
316595
  logError2(new Error("Windows NPM detected in WSL environment"));
316562
316596
  logEvent("tengu_auto_updater_windows_npm_in_wsl", {
316563
- currentVersion: "1.66.1"
316597
+ currentVersion: "1.68.0"
316564
316598
  });
316565
316599
  console.error(`
316566
316600
  Error: Windows NPM detected in WSL
@@ -317095,7 +317129,7 @@ function detectLinuxGlobPatternWarnings() {
317095
317129
  }
317096
317130
  async function getDoctorDiagnostic() {
317097
317131
  const installationType = await getCurrentInstallationType();
317098
- const version2 = typeof MACRO !== "undefined" ? "1.66.1" : "unknown";
317132
+ const version2 = typeof MACRO !== "undefined" ? "1.68.0" : "unknown";
317099
317133
  const installationPath = await getInstallationPath();
317100
317134
  const invokedBinary = getInvokedBinary();
317101
317135
  const multipleInstallations = await detectMultipleInstallations();
@@ -318030,8 +318064,8 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
318030
318064
  const maxVersion = await getMaxVersion();
318031
318065
  if (maxVersion && gt(version2, maxVersion)) {
318032
318066
  logForDebugging(`Native installer: maxVersion ${maxVersion} is set, capping update from ${version2} to ${maxVersion}`);
318033
- if (gte("1.66.1", maxVersion)) {
318034
- logForDebugging(`Native installer: current version ${"1.66.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
318067
+ if (gte("1.68.0", maxVersion)) {
318068
+ logForDebugging(`Native installer: current version ${"1.68.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
318035
318069
  logEvent("tengu_native_update_skipped_max_version", {
318036
318070
  latency_ms: Date.now() - startTime,
318037
318071
  max_version: maxVersion,
@@ -318042,7 +318076,7 @@ async function updateLatest(channelOrVersion, forceReinstall = false) {
318042
318076
  version2 = maxVersion;
318043
318077
  }
318044
318078
  }
318045
- if (!forceReinstall && version2 === "1.66.1" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
318079
+ if (!forceReinstall && version2 === "1.68.0" && await versionIsAvailable(version2) && await isPossibleURBinary(executablePath)) {
318046
318080
  logForDebugging(`Found ${version2} at ${executablePath}, skipping install`);
318047
318081
  logEvent("tengu_native_update_complete", {
318048
318082
  latency_ms: Date.now() - startTime,
@@ -339503,18 +339537,133 @@ var init_types10 = __esm(() => {
339503
339537
  });
339504
339538
 
339505
339539
  // src/tools/TodoWriteTool/prompt.ts
339506
- var PROMPT4 = `Use this tool to maintain the ordered work plan for the current session.
339540
+ var PROMPT4, DESCRIPTION9 = "Create and update the ordered todo list for multi-step work. Use proactively for tasks with 3 or more steps. Keep statuses current, keep exactly one item in_progress, and complete items only after relevant verification succeeds.";
339541
+ var init_prompt11 = __esm(() => {
339542
+ PROMPT4 = `Use this tool to create and manage the ordered work plan for the current session. It tracks progress, organises complex work, and shows the user where their request stands.
339507
339543
 
339508
- ## When to use it
339544
+ ## When to Use This Tool
339545
+
339546
+ Use this tool proactively in these scenarios:
339509
339547
 
339510
- Create a todo list before every non-trivial workspace implementation. Work is
339511
- non-trivial when it needs planning, investigation, multiple deliverables,
339512
- dependencies, several features, or post-change verification. A feature-rich
339548
+ 1. Complex multi-step tasks \u2014 when a task requires 3 or more distinct steps or actions
339549
+ 2. Non-trivial and complex tasks \u2014 tasks that require careful planning or multiple operations
339550
+ 3. User explicitly requests a todo list
339551
+ 4. User provides multiple tasks \u2014 a list of things to be done (numbered or comma-separated)
339552
+ 5. After receiving new instructions \u2014 immediately capture user requirements as todos
339553
+ 6. When you start working on a task \u2014 mark it in_progress BEFORE beginning work; only one item should be in_progress at a time
339554
+ 7. After completing a task \u2014 mark it completed and add any follow-up work discovered during implementation
339555
+
339556
+ Work is non-trivial when it needs planning, investigation, multiple
339557
+ deliverables, dependencies, several features, or post-change verification.
339558
+ Investigate first when scope is unknown so the list records concrete
339559
+ outcomes rather than guesses. A feature-rich
339513
339560
  single-file build is non-trivial even if one Write call could create it.
339514
- Investigate first when scope is unknown so the list records concrete outcomes.
339515
339561
 
339516
- Skip it only for a purely informational answer or a genuinely atomic one-shot
339517
- action with no planning, dependencies, or meaningful verification.
339562
+ ## When NOT to Use This Tool
339563
+
339564
+ Skip using this tool when:
339565
+
339566
+ 1. There is only a single, straightforward task
339567
+ 2. The task is trivial and tracking it provides no organisational benefit
339568
+ 3. The task can be completed in less than 3 trivial steps
339569
+ 4. The task is purely conversational or informational
339570
+
339571
+ If there is one trivial task to do, just do it. Ceremony on a one-line request
339572
+ is what trains users to switch this off.
339573
+
339574
+ ## Examples of When to Use the Todo List
339575
+
339576
+ <example>
339577
+ User: I want to add a dark mode toggle to the application settings. Make sure you run the tests and build when you're done!
339578
+ Assistant: *Creates todo list with the following items:*
339579
+ 1. Creating dark mode toggle component in Settings page
339580
+ 2. Adding dark mode state management (context/store)
339581
+ 3. Implementing CSS-in-JS styles for dark theme
339582
+ 4. Updating existing components to support theme switching
339583
+ 5. Running tests and build process, addressing any failures or errors that occur
339584
+ *Begins working on the first task*
339585
+
339586
+ <reasoning>
339587
+ The assistant used the todo list because:
339588
+ 1. Adding dark mode is a multi-step feature requiring UI, state management, and styling changes
339589
+ 2. The user explicitly requested tests and build be run afterward
339590
+ 3. The assistant added the verification step as its own tracked outcome
339591
+ </reasoning>
339592
+ </example>
339593
+
339594
+ <example>
339595
+ User: Help me rename the function getCwd to getCurrentWorkingDirectory across my project
339596
+ Assistant: *Uses grep or search tools to locate all instances of getCwd in the codebase*
339597
+ I've found 15 instances of 'getCwd' across 8 different files.
339598
+ *Creates todo list with specific items for each file that needs updating*
339599
+
339600
+ <reasoning>
339601
+ The assistant used the todo list because:
339602
+ 1. It searched first to understand the scope of the task
339603
+ 2. Finding multiple occurrences across files made this a multi-step task
339604
+ 3. The list ensures every instance is tracked and updated systematically
339605
+ </reasoning>
339606
+ </example>
339607
+
339608
+ <example>
339609
+ User: I need to implement these features for my e-commerce site: user registration, product catalog, shopping cart, and checkout flow.
339610
+ Assistant: *Creates a todo list breaking down each feature into specific tasks based on the project architecture*
339611
+ Let's start with user registration.
339612
+
339613
+ <reasoning>
339614
+ The assistant used the todo list because:
339615
+ 1. The user provided multiple complex features in a comma-separated list
339616
+ 2. The list organises large features into manageable outcomes
339617
+ 3. It allows tracking progress across the entire implementation
339618
+ </reasoning>
339619
+ </example>
339620
+
339621
+ <example>
339622
+ User: make me a warship space game, full advanced, one file html+js
339623
+ Assistant: *Creates todo list: 1) Scaffold the HTML shell and canvas, 2) Implement the render and game loop, 3) Implement player ship movement and physics, 4) Implement enemy fleet and AI, 5) Implement collision, damage and scoring, 6) Write the file and verify it opens in a browser*
339624
+ *Marks the first item in_progress, then writes the file*
339625
+
339626
+ <reasoning>
339627
+ The assistant used the todo list because a "full advanced" game is a
339628
+ feature-rich build with several independent systems and a verification step,
339629
+ even though the deliverable is a single file produced by one Write call. The
339630
+ number of files is not what makes work non-trivial.
339631
+ </reasoning>
339632
+ </example>
339633
+
339634
+ ## Examples of When NOT to Use the Todo List
339635
+
339636
+ <example>
339637
+ User: How do I print 'Hello World' in Python?
339638
+ Assistant: In Python, you can print "Hello World" with this simple code:
339639
+
339640
+ python
339641
+ print("Hello World")
339642
+
339643
+ <reasoning>
339644
+ A single trivial task completed in one step. Nothing to track.
339645
+ </reasoning>
339646
+ </example>
339647
+
339648
+ <example>
339649
+ User: What does the git status command do?
339650
+ Assistant: The git status command shows the current state of your working directory and staging area.
339651
+
339652
+ <reasoning>
339653
+ An informational request with no coding task to complete.
339654
+ </reasoning>
339655
+ </example>
339656
+
339657
+ <example>
339658
+ User: Can you add a comment to the calculateTotal function to explain what it does?
339659
+ Assistant: Adds the comment with a single ${FILE_EDIT_TOOL_NAME} call and reports the result.
339660
+
339661
+ <reasoning>
339662
+ A single straightforward edit confined to one location. No systematic
339663
+ organisation required. Note that the edit is performed by issuing the tool
339664
+ call, not by describing it \u2014 a narrated action is not an executed one.
339665
+ </reasoning>
339666
+ </example>
339518
339667
 
339519
339668
  ## Lifecycle
339520
339669
 
@@ -339547,7 +339696,8 @@ required todo is completed or an honest blocker has been reported.
339547
339696
 
339548
339697
  Invoke tools through their native structured interfaces. Narrating a todo,
339549
339698
  file edit, or command does not execute it, and printed arguments are not a
339550
- substitute for a tool call.`, DESCRIPTION9 = "Create and update the ordered todo list for multi-step work. Keep statuses current and complete items only after relevant verification succeeds.";
339699
+ substitute for a tool call.`;
339700
+ });
339551
339701
 
339552
339702
  // src/tools/TodoWriteTool/TodoWriteTool.ts
339553
339703
  var inputSchema9, outputSchema6, TodoWriteTool;
@@ -339559,6 +339709,7 @@ var init_TodoWriteTool = __esm(() => {
339559
339709
  init_tasks();
339560
339710
  init_types10();
339561
339711
  init_constants2();
339712
+ init_prompt11();
339562
339713
  inputSchema9 = lazySchema(() => exports_external.strictObject({
339563
339714
  todos: TodoListSchema().describe("The updated todo list")
339564
339715
  }));
@@ -358464,7 +358615,7 @@ ${sleepGuidance ? sleepGuidance + `
358464
358615
  - Before running destructive operations (e.g., git reset --hard, git push --force, git checkout --), consider whether there is a safer alternative that achieves the same goal. Only use destructive operations when they are truly the best approach.
358465
358616
  - Never skip hooks (--no-verify) or bypass signing (--no-gpg-sign, -c commit.gpgsign=false) unless the user has explicitly asked for it. If a hook fails, investigate and fix the underlying issue.`;
358466
358617
  }
358467
- var init_prompt11 = __esm(() => {
358618
+ var init_prompt12 = __esm(() => {
358468
358619
  init_envUtils();
358469
358620
  init_outputLimits();
358470
358621
  init_powershellDetection();
@@ -358986,7 +359137,7 @@ var init_PowerShellTool = __esm(() => {
358986
359137
  init_cwd2();
358987
359138
  init_commandSemantics();
358988
359139
  init_powershellPermissions();
358989
- init_prompt11();
359140
+ init_prompt12();
358990
359141
  init_readOnlyValidation2();
358991
359142
  init_UI7();
358992
359143
  jsx_dev_runtime124 = __toESM(require_jsx_dev_runtime(), 1);
@@ -361111,7 +361262,7 @@ Usage:${getPreReadInstruction2()}
361111
361262
  - The edit will FAIL if \`old_string\` is not unique in the file. Either provide a larger string with more surrounding context to make it unique or use \`replace_all\` to change every instance of \`old_string\`.${minimalUniquenessHint}
361112
361263
  - Use \`replace_all\` for replacing and renaming strings across the file. This parameter is useful if you want to rename a variable for instance.`;
361113
361264
  }
361114
- var init_prompt12 = __esm(() => {
361265
+ var init_prompt13 = __esm(() => {
361115
361266
  init_file();
361116
361267
  init_prompt3();
361117
361268
  });
@@ -364268,7 +364419,7 @@ var init_FileEditTool = __esm(() => {
364268
364419
  init_filesystem();
364269
364420
  init_shellRuleMatching();
364270
364421
  init_validateEditTool();
364271
- init_prompt12();
364422
+ init_prompt13();
364272
364423
  init_types11();
364273
364424
  init_UI8();
364274
364425
  init_utils10();
@@ -369934,7 +370085,7 @@ var BRIEF_TOOL_NAME2 = "SendUserMessage", LEGACY_BRIEF_TOOL_NAME2 = "Brief", DES
369934
370085
  \`message\` supports markdown. \`attachments\` takes file paths (absolute or cwd-relative) for images, diffs, logs.
369935
370086
 
369936
370087
  \`status\` labels intent: 'normal' when replying to what they just asked; 'proactive' when you're initiating \u2014 a scheduled task finished, a blocker surfaced during background work, you need input on something they haven't asked about. Set it honestly; downstream routing uses it.`, BRIEF_PROACTIVE_SECTION;
369937
- var init_prompt13 = __esm(() => {
370088
+ var init_prompt14 = __esm(() => {
369938
370089
  BRIEF_PROACTIVE_SECTION = `## Talking to the user
369939
370090
 
369940
370091
  ${BRIEF_TOOL_NAME2} is where your replies go. Text outside it is visible if the user expands the detail view, but most won't \u2014 assume unread. Anything you want them to actually see goes through ${BRIEF_TOOL_NAME2}. The failure mode: the real answer lives in plain text while ${BRIEF_TOOL_NAME2} just says "done!" \u2014 they see "done!" and miss everything.
@@ -370133,7 +370284,7 @@ var init_BriefTool = __esm(() => {
370133
370284
  init_envUtils();
370134
370285
  init_stringUtils();
370135
370286
  init_attachments();
370136
- init_prompt13();
370287
+ init_prompt14();
370137
370288
  init_UI16();
370138
370289
  inputSchema26 = lazySchema(() => exports_external.strictObject({
370139
370290
  message: exports_external.string().describe("The message for the user. Supports markdown formatting."),
@@ -371418,7 +371569,7 @@ var init_inProcessTeammateHelpers = __esm(() => {
371418
371569
 
371419
371570
  // src/tools/ExitPlanModeTool/prompt.ts
371420
371571
  var ASK_USER_QUESTION_TOOL_NAME2 = "AskUserQuestion", EXIT_PLAN_MODE_V2_TOOL_PROMPT;
371421
- var init_prompt14 = __esm(() => {
371572
+ var init_prompt15 = __esm(() => {
371422
371573
  EXIT_PLAN_MODE_V2_TOOL_PROMPT = `Use this tool when you are in plan mode and have finished writing your plan to the plan file and are ready for user approval.
371423
371574
 
371424
371575
  ## How This Tool Works
@@ -371651,7 +371802,7 @@ var init_ExitPlanModeV2Tool = __esm(() => {
371651
371802
  init_slowOperations();
371652
371803
  init_teammate();
371653
371804
  init_teammateMailbox();
371654
- init_prompt14();
371805
+ init_prompt15();
371655
371806
  init_UI18();
371656
371807
  allowedPromptSchema = lazySchema(() => exports_external.object({
371657
371808
  tool: exports_external.enum(["Bash"]).describe("The tool this prompt applies to"),
@@ -373155,7 +373306,7 @@ Notes:
373155
373306
  - Returns file paths with line ranges and a short preview for each hit.`;
373156
373307
  }
373157
373308
  var CODE_SEARCH_TOOL_NAME = "CodeSearch";
373158
- var init_prompt15 = __esm(() => {
373309
+ var init_prompt16 = __esm(() => {
373159
373310
  init_prompt2();
373160
373311
  });
373161
373312
 
@@ -373175,7 +373326,7 @@ var init_CodeSearchTool = __esm(() => {
373175
373326
  init_cwd2();
373176
373327
  init_codeIndex();
373177
373328
  init_semanticNumber();
373178
- init_prompt15();
373329
+ init_prompt16();
373179
373330
  inputSchema31 = lazySchema(() => exports_external.strictObject({
373180
373331
  query: exports_external.string().describe('Natural-language description of the code you are looking for (e.g. "retry logic for failed network requests").'),
373181
373332
  limit: semanticNumber(exports_external.number().optional()).describe("Maximum number of results to return. Defaults to 10."),
@@ -375284,7 +375435,7 @@ function getEnterPlanModeToolPrompt() {
375284
375435
  return process.env.USER_TYPE === "ant" ? getEnterPlanModeToolPromptAnt() : getEnterPlanModeToolPromptExternal();
375285
375436
  }
375286
375437
  var WHAT_HAPPENS_SECTION;
375287
- var init_prompt16 = __esm(() => {
375438
+ var init_prompt17 = __esm(() => {
375288
375439
  init_planModeV2();
375289
375440
  init_prompt();
375290
375441
  WHAT_HAPPENS_SECTION = `## What Happens in Plan Mode
@@ -375363,7 +375514,7 @@ var init_EnterPlanModeTool = __esm(() => {
375363
375514
  init_PermissionUpdate();
375364
375515
  init_permissionSetup();
375365
375516
  init_planModeV2();
375366
- init_prompt16();
375517
+ init_prompt17();
375367
375518
  init_UI20();
375368
375519
  inputSchema34 = lazySchema(() => exports_external.strictObject({}));
375369
375520
  outputSchema29 = lazySchema(() => exports_external.object({
@@ -376694,7 +376845,7 @@ ${lines.join(`
376694
376845
  }
376695
376846
  }
376696
376847
  var DESCRIPTION13 = "Get or set UR configuration settings.";
376697
- var init_prompt17 = __esm(() => {
376848
+ var init_prompt18 = __esm(() => {
376698
376849
  init_modelOptions();
376699
376850
  init_voiceModeEnabled();
376700
376851
  init_supportedSettings();
@@ -377409,7 +377560,7 @@ var init_ConfigTool = __esm(() => {
377409
377560
  init_log2();
377410
377561
  init_settings2();
377411
377562
  init_slowOperations();
377412
- init_prompt17();
377563
+ init_prompt18();
377413
377564
  init_supportedSettings();
377414
377565
  init_UI23();
377415
377566
  inputSchema37 = lazySchema(() => exports_external.strictObject({
@@ -377836,7 +377987,7 @@ ${teammateTips}- Check TaskList first to avoid creating duplicate tasks
377836
377987
  `;
377837
377988
  }
377838
377989
  var DESCRIPTION14 = "Create a new task in the task list";
377839
- var init_prompt18 = __esm(() => {
377990
+ var init_prompt19 = __esm(() => {
377840
377991
  init_agentSwarmsEnabled();
377841
377992
  });
377842
377993
 
@@ -377849,7 +378000,7 @@ var init_TaskCreateTool = __esm(() => {
377849
378000
  init_tasks();
377850
378001
  init_teammate();
377851
378002
  init_taskIdInput();
377852
- init_prompt18();
378003
+ init_prompt19();
377853
378004
  inputSchema38 = lazySchema(() => {
377854
378005
  const TaskIdSchema = taskIdInputSchema("A task dependency ID. Positive integer JSON values are accepted and normalized to strings.");
377855
378006
  return exports_external.strictObject({
@@ -378696,7 +378847,7 @@ Use TaskGet with a specific task ID to view full details including description a
378696
378847
  ${teammateWorkflow}`;
378697
378848
  }
378698
378849
  var DESCRIPTION17 = "List all tasks in the task list";
378699
- var init_prompt19 = __esm(() => {
378850
+ var init_prompt20 = __esm(() => {
378700
378851
  init_agentSwarmsEnabled();
378701
378852
  });
378702
378853
 
@@ -378706,7 +378857,7 @@ var init_TaskListTool = __esm(() => {
378706
378857
  init_v4();
378707
378858
  init_Tool();
378708
378859
  init_tasks();
378709
- init_prompt19();
378860
+ init_prompt20();
378710
378861
  inputSchema41 = lazySchema(() => exports_external.strictObject({}));
378711
378862
  outputSchema36 = lazySchema(() => exports_external.object({
378712
378863
  tasks: exports_external.array(exports_external.object({
@@ -382042,7 +382193,7 @@ Usage notes:
382042
382193
 
382043
382194
  ${forkEnabled ? forkExamples : currentExamples}`;
382044
382195
  }
382045
- var init_prompt20 = __esm(() => {
382196
+ var init_prompt21 = __esm(() => {
382046
382197
  init_growthbook();
382047
382198
  init_auth();
382048
382199
  init_embeddedTools();
@@ -382111,7 +382262,7 @@ var init_AgentTool = __esm(() => {
382111
382262
  init_constants2();
382112
382263
  init_forkSubagent();
382113
382264
  init_loadAgentsDir();
382114
- init_prompt20();
382265
+ init_prompt21();
382115
382266
  init_runAgent();
382116
382267
  init_UI4();
382117
382268
  jsx_dev_runtime153 = __toESM(require_jsx_dev_runtime(), 1);
@@ -385395,7 +385546,7 @@ function getSimplePrompt() {
385395
385546
  ].join(`
385396
385547
  `);
385397
385548
  }
385398
- var init_prompt21 = __esm(() => {
385549
+ var init_prompt22 = __esm(() => {
385399
385550
  init_prompts4();
385400
385551
  init_attribution();
385401
385552
  init_embeddedTools();
@@ -385852,7 +386003,7 @@ var init_BashTool = __esm(() => {
385852
386003
  init_state();
385853
386004
  init_bashPermissions();
385854
386005
  init_commandSemantics2();
385855
- init_prompt21();
386006
+ init_prompt22();
385856
386007
  init_readOnlyValidation();
385857
386008
  init_sedEditParser();
385858
386009
  init_shouldUseSandbox();
@@ -388136,7 +388287,7 @@ function isAnyTracingEnabled() {
388136
388287
  return isTelemetryEnabled() || isEnhancedTelemetryEnabled() || isBetaTracingEnabled();
388137
388288
  }
388138
388289
  function getTracer() {
388139
- return import_api39.trace.getTracer("ur-agent.gen_ai", "1.66.1");
388290
+ return import_api39.trace.getTracer("ur-agent.gen_ai", "1.68.0");
388140
388291
  }
388141
388292
  function createSpanAttributes(spanType, customAttributes = {}) {
388142
388293
  const baseAttributes = getTelemetryAttributes();
@@ -395923,7 +396074,7 @@ var NO_TOOLS_PREAMBLE = `CRITICAL: Respond with TEXT ONLY. Do NOT call any tools
395923
396074
  - Errors that you ran into and how you fixed them
395924
396075
  - Pay special attention to specific user feedback that you received, especially if the user told you to do something differently.
395925
396076
  2. Double-check for technical accuracy and completeness, addressing each required element thoroughly.`, BASE_COMPACT_PROMPT, PARTIAL_COMPACT_PROMPT, PARTIAL_COMPACT_UP_TO_PROMPT, NO_TOOLS_TRAILER;
395926
- var init_prompt22 = __esm(() => {
396077
+ var init_prompt23 = __esm(() => {
395927
396078
  BASE_COMPACT_PROMPT = `Your task is to create a detailed summary of the conversation so far, paying close attention to the user's explicit requests and your previous actions.
395928
396079
  This summary should be thorough in capturing technical details, code patterns, and architectural decisions that would be essential for continuing development work without losing context.
395929
396080
 
@@ -397088,7 +397239,7 @@ var init_compact = __esm(() => {
397088
397239
  init_withRetry();
397089
397240
  init_internalLogging();
397090
397241
  init_tokenEstimation();
397091
- init_prompt22();
397242
+ init_prompt23();
397092
397243
  });
397093
397244
 
397094
397245
  // src/services/compact/postCompactCleanup.ts
@@ -397628,7 +397779,7 @@ var init_sessionMemoryCompact = __esm(() => {
397628
397779
  init_sessionMemoryUtils();
397629
397780
  init_compact();
397630
397781
  init_microCompact();
397631
- init_prompt22();
397782
+ init_prompt23();
397632
397783
  DEFAULT_SM_COMPACT_CONFIG = {
397633
397784
  minTokens: 1e4,
397634
397785
  minTextBlockMessages: 5,
@@ -402628,7 +402779,7 @@ var init_attachments2 = __esm(() => {
402628
402779
  init_file();
402629
402780
  init_loadAgentsDir();
402630
402781
  init_constants2();
402631
- init_prompt20();
402782
+ init_prompt21();
402632
402783
  init_permissions2();
402633
402784
  init_auth();
402634
402785
  init_mcpStringUtils();
@@ -419380,7 +419531,7 @@ function Feedback({
419380
419531
  platform: env2.platform,
419381
419532
  gitRepo: envInfo.isGit,
419382
419533
  terminal: env2.terminal,
419383
- version: "1.66.1",
419534
+ version: "1.68.0",
419384
419535
  transcript: normalizeMessagesForAPI(messages),
419385
419536
  errors: sanitizedErrors,
419386
419537
  lastApiRequest: getLastAPIRequest(),
@@ -419572,7 +419723,7 @@ function Feedback({
419572
419723
  ", ",
419573
419724
  env2.terminal,
419574
419725
  ", v",
419575
- "1.66.1"
419726
+ "1.68.0"
419576
419727
  ]
419577
419728
  }, undefined, true, undefined, this)
419578
419729
  ]
@@ -419678,7 +419829,7 @@ ${sanitizedDescription}
419678
419829
  ` + `**Environment Info**
419679
419830
  ` + `- Platform: ${env2.platform}
419680
419831
  ` + `- Terminal: ${env2.terminal}
419681
- ` + `- Version: ${"1.66.1"}
419832
+ ` + `- Version: ${"1.68.0"}
419682
419833
  ` + `- Feedback ID: ${feedbackId}
419683
419834
  ` + `
419684
419835
  **Errors**
@@ -422788,7 +422939,7 @@ function buildPrimarySection() {
422788
422939
  }, undefined, false, undefined, this);
422789
422940
  return [{
422790
422941
  label: "Version",
422791
- value: "1.66.1"
422942
+ value: "1.68.0"
422792
422943
  }, {
422793
422944
  label: "Session name",
422794
422945
  value: nameValue
@@ -426118,7 +426269,7 @@ function Config({
426118
426269
  }
426119
426270
  }, undefined, false, undefined, this)
426120
426271
  }, undefined, false, undefined, this) : showSubmenu === "ChannelDowngrade" ? /* @__PURE__ */ jsx_dev_runtime179.jsxDEV(ChannelDowngradeDialog, {
426121
- currentVersion: "1.66.1",
426272
+ currentVersion: "1.68.0",
426122
426273
  onChoice: (choice) => {
426123
426274
  setShowSubmenu(null);
426124
426275
  setTabsHidden(false);
@@ -426130,7 +426281,7 @@ function Config({
426130
426281
  autoUpdatesChannel: "stable"
426131
426282
  };
426132
426283
  if (choice === "stay") {
426133
- newSettings.minimumVersion = "1.66.1";
426284
+ newSettings.minimumVersion = "1.68.0";
426134
426285
  }
426135
426286
  updateSettingsForSource("userSettings", newSettings);
426136
426287
  setSettingsData((prev_27) => ({
@@ -434204,7 +434355,7 @@ function HelpV2(t0) {
434204
434355
  let t6;
434205
434356
  if ($2[31] !== tabs) {
434206
434357
  t6 = /* @__PURE__ */ jsx_dev_runtime206.jsxDEV(Tabs, {
434207
- title: `UR v${"1.66.1"}`,
434358
+ title: `UR v${"1.68.0"}`,
434208
434359
  color: "professionalBlue",
434209
434360
  defaultTab: "general",
434210
434361
  children: tabs
@@ -435137,7 +435288,7 @@ function buildToolUseContext(tools, readFileStateCache, toolPermissionContext, a
435137
435288
  async function handleInitialize(options2) {
435138
435289
  return {
435139
435290
  name: "UR",
435140
- version: "1.66.1",
435291
+ version: "1.68.0",
435141
435292
  protocolVersion: "0.1.0",
435142
435293
  workspaceRoot: options2.cwd,
435143
435294
  capabilities: {
@@ -452245,7 +452396,7 @@ function getAllReleaseNotes(changelogContent = getStoredChangelogFromMemory()) {
452245
452396
  return [];
452246
452397
  }
452247
452398
  }
452248
- async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.66.1") {
452399
+ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.68.0") {
452249
452400
  if (process.env.USER_TYPE === "ant") {
452250
452401
  const changelog = "";
452251
452402
  if (changelog) {
@@ -452272,7 +452423,7 @@ async function checkForReleaseNotes(lastSeenVersion, currentVersion = "1.66.1")
452272
452423
  releaseNotes
452273
452424
  };
452274
452425
  }
452275
- function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.66.1") {
452426
+ function checkForReleaseNotesSync(lastSeenVersion, currentVersion = "1.68.0") {
452276
452427
  if (process.env.USER_TYPE === "ant") {
452277
452428
  const changelog = "";
452278
452429
  if (changelog) {
@@ -455138,7 +455289,7 @@ function getRecentActivitySync() {
455138
455289
  return cachedActivity;
455139
455290
  }
455140
455291
  function getLogoDisplayData() {
455141
- const version2 = process.env.DEMO_VERSION ?? "1.66.1";
455292
+ const version2 = process.env.DEMO_VERSION ?? "1.68.0";
455142
455293
  const serverUrl = getDirectConnectServerUrl();
455143
455294
  const displayPath = process.env.DEMO_VERSION ? "/code/ur" : getDisplayPath(getCwd());
455144
455295
  const cwd2 = serverUrl ? `${displayPath} in ${serverUrl.replace(/^https?:\/\//, "")}` : displayPath;
@@ -456005,7 +456156,7 @@ function LogoV2() {
456005
456156
  if ($2[2] === Symbol.for("react.memo_cache_sentinel")) {
456006
456157
  t2 = () => {
456007
456158
  const currentConfig2 = getGlobalConfig();
456008
- if (currentConfig2.lastReleaseNotesSeen === "1.66.1") {
456159
+ if (currentConfig2.lastReleaseNotesSeen === "1.68.0") {
456009
456160
  return;
456010
456161
  }
456011
456162
  saveGlobalConfig(_temp325);
@@ -456690,12 +456841,12 @@ function LogoV2() {
456690
456841
  return t41;
456691
456842
  }
456692
456843
  function _temp325(current) {
456693
- if (current.lastReleaseNotesSeen === "1.66.1") {
456844
+ if (current.lastReleaseNotesSeen === "1.68.0") {
456694
456845
  return current;
456695
456846
  }
456696
456847
  return {
456697
456848
  ...current,
456698
- lastReleaseNotesSeen: "1.66.1"
456849
+ lastReleaseNotesSeen: "1.68.0"
456699
456850
  };
456700
456851
  }
456701
456852
  function _temp241(s_0) {
@@ -470868,7 +471019,7 @@ Mode: ${mode} \u2014 ${MODE_GUIDANCE[mode]}
470868
471019
  ${SECURITY_BOUNDARY}`;
470869
471020
  }
470870
471021
  var SECURITY_BOUNDARY, BASE, MODE_GUIDANCE, SECURITY_MODES;
470871
- var init_prompt23 = __esm(() => {
471022
+ var init_prompt24 = __esm(() => {
470872
471023
  SECURITY_BOUNDARY = "SECURITY SAFETY BOUNDARY (mandatory): operate only against systems the user owns or is explicitly authorized to test. " + "Before any active test, require a defined, approved scope. Never assist with unauthorized access, credential theft, " + "malware, stealth, persistence, evasion, exfiltration, destructive exploitation, DDoS, phishing, or attacks on third-party " + "systems. Never run destructive commands or escalate privileges silently, never auto-run exploits, and always redact secrets. " + "If a request is unsafe or unauthorized, refuse the harmful part and redirect to a defensive, lab, or authorized alternative " + "(audit, hardening, detection logic, threat model, secure-code review, local lab).";
470873
471024
  BASE = "You are 309 in security-engineering mode: a professional white-hat / blue-team / purple-team security engineer. " + "Use the Security Containment Firewall, scope, and tool-policy registry. Map findings to OWASP, CWE, CVSS, and MITRE ATT&CK " + "where relevant. Be precise and evidence-based: include severity, confidence, and remediation; never claim something is " + "exploited unless it was verified non-destructively. Prefer passive, non-destructive checks; require approval for active tools.";
470874
471025
  MODE_GUIDANCE = {
@@ -471707,8 +471858,8 @@ Run /security report for the full report.`;
471707
471858
  }
471708
471859
  case "report": {
471709
471860
  const all4 = findings.all();
471710
- const fmt = rest[0] ?? "markdown";
471711
- return fmt === "json" ? toJson(all4) : fmt === "sarif" ? toSarif(all4) : fmt === "csv" ? toCsv(all4) : toMarkdown(all4);
471861
+ const fmt2 = rest[0] ?? "markdown";
471862
+ return fmt2 === "json" ? toJson(all4) : fmt2 === "sarif" ? toSarif(all4) : fmt2 === "csv" ? toCsv(all4) : toMarkdown(all4);
471712
471863
  }
471713
471864
  case "findings": {
471714
471865
  const all4 = findings.all();
@@ -471871,7 +472022,7 @@ var init_commands2 = __esm(() => {
471871
472022
  init_attackSurface();
471872
472023
  init_reports();
471873
472024
  init_doctor3();
471874
- init_prompt23();
472025
+ init_prompt24();
471875
472026
  init_mappings();
471876
472027
  init_network();
471877
472028
  init_hardening();
@@ -471899,7 +472050,7 @@ var init_security = __esm(() => {
471899
472050
  init_findings();
471900
472051
  init_reports();
471901
472052
  init_doctor3();
471902
- init_prompt23();
472053
+ init_prompt24();
471903
472054
  init_commands2();
471904
472055
  });
471905
472056
 
@@ -473641,7 +473792,7 @@ function compileAgenticCiWorkflow(specName = "default", options2 = {}) {
473641
473792
  if (spec.name !== specName) {
473642
473793
  throw new Error("Agentic CI workflow spec name does not match");
473643
473794
  }
473644
- const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.66.1" : "1.66.1");
473795
+ const packageVersion = options2.packageVersion ?? (typeof MACRO !== "undefined" ? "1.68.0" : "1.68.0");
473645
473796
  if (!/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/.test(packageVersion)) {
473646
473797
  throw new Error("invalid ur-agent package version");
473647
473798
  }
@@ -474634,7 +474785,7 @@ runner; \`ur trigger\` is the inbound parser that decides what to run.
474634
474785
  path: ".github/workflows/ur.yml",
474635
474786
  root: "project",
474636
474787
  content: compileAgenticCiWorkflow("default", {
474637
- packageVersion: typeof MACRO !== "undefined" ? "1.66.1" : "1.66.1"
474788
+ packageVersion: typeof MACRO !== "undefined" ? "1.68.0" : "1.68.0"
474638
474789
  })
474639
474790
  },
474640
474791
  {
@@ -474704,7 +474855,7 @@ function value(tokens, flag) {
474704
474855
  return index2 >= 0 ? tokens[index2 + 1] : undefined;
474705
474856
  }
474706
474857
  function cliVersion() {
474707
- return typeof MACRO !== "undefined" ? "1.66.1" : "1.66.1";
474858
+ return typeof MACRO !== "undefined" ? "1.68.0" : "1.68.0";
474708
474859
  }
474709
474860
  function workflowPath(cwd2) {
474710
474861
  return join159(cwd2, ".github", "workflows", "ur-agentic-ci.yml");
@@ -480569,7 +480720,7 @@ function createAcpStdioApp(deps) {
480569
480720
  }
480570
480721
  },
480571
480722
  authMethods: [],
480572
- agentInfo: { name: "UR-Nexus", version: "1.66.1" }
480723
+ agentInfo: { name: "UR-Nexus", version: "1.68.0" }
480573
480724
  })).onRequest("authenticate", () => ({})).onRequest("session/new", async (context6) => {
480574
480725
  const result = runtime2.newSession(context6.params.cwd, context6.params.mcpServers, context6.params.additionalDirectories);
480575
480726
  await runtime2.announce({
@@ -480666,7 +480817,7 @@ function createAcpStdioAgent(deps) {
480666
480817
  }
480667
480818
  },
480668
480819
  authMethods: [],
480669
- agentInfo: { name: "UR-Nexus", version: "1.66.1" }
480820
+ agentInfo: { name: "UR-Nexus", version: "1.68.0" }
480670
480821
  });
480671
480822
  return;
480672
480823
  case "authenticate":
@@ -691826,7 +691977,7 @@ async function captureMemoryDiagnostics(trigger2, dumpNumber = 0) {
691826
691977
  smapsRollup,
691827
691978
  platform: process.platform,
691828
691979
  nodeVersion: process.version,
691829
- ccVersion: "1.66.1"
691980
+ ccVersion: "1.68.0"
691830
691981
  };
691831
691982
  }
691832
691983
  async function performHeapDump(trigger2 = "manual", dumpNumber = 0) {
@@ -692406,7 +692557,7 @@ var init_bridge_kick = __esm(() => {
692406
692557
  var call153 = async () => {
692407
692558
  return {
692408
692559
  type: "text",
692409
- value: "1.66.1"
692560
+ value: "1.68.0"
692410
692561
  };
692411
692562
  }, version2, version_default;
692412
692563
  var init_version = __esm(() => {
@@ -703586,7 +703737,7 @@ function generateHtmlReport(data, insights) {
703586
703737
  </html>`;
703587
703738
  }
703588
703739
  function buildExportData(data, insights, facets, remoteStats) {
703589
- const version3 = typeof MACRO !== "undefined" ? "1.66.1" : "unknown";
703740
+ const version3 = typeof MACRO !== "undefined" ? "1.68.0" : "unknown";
703590
703741
  const remote_hosts_collected = remoteStats?.hosts.filter((h2) => h2.sessionCount > 0).map((h2) => h2.name);
703591
703742
  const facets_summary = {
703592
703743
  total: facets.size,
@@ -707913,7 +708064,7 @@ var init_sessionStorage = __esm(() => {
707913
708064
  init_settings2();
707914
708065
  init_slowOperations();
707915
708066
  init_uuid();
707916
- VERSION7 = typeof MACRO !== "undefined" ? "1.66.1" : "unknown";
708067
+ VERSION7 = typeof MACRO !== "undefined" ? "1.68.0" : "unknown";
707917
708068
  MAX_TOMBSTONE_REWRITE_BYTES = 50 * 1024 * 1024;
707918
708069
  SKIP_FIRST_PROMPT_PATTERN = /^(?:\s*<[a-z][\w-]*[\s>]|\[Request interrupted by user[^\]]*\])/;
707919
708070
  EPHEMERAL_PROGRESS_TYPES = new Set([
@@ -709128,7 +709279,7 @@ var init_filesystem = __esm(() => {
709128
709279
  });
709129
709280
  getBundledSkillsRoot = memoize_default(function getBundledSkillsRoot2() {
709130
709281
  const nonce = randomBytes20(16).toString("hex");
709131
- return join230(getURTempDir(), "bundled-skills", "1.66.1", nonce);
709282
+ return join230(getURTempDir(), "bundled-skills", "1.68.0", nonce);
709132
709283
  });
709133
709284
  getResolvedWorkingDirPaths = memoize_default(getPathsForPermissionCheck);
709134
709285
  });
@@ -715434,7 +715585,7 @@ function computeFingerprint(messageText2, version3) {
715434
715585
  }
715435
715586
  function computeFingerprintFromMessages(messages) {
715436
715587
  const firstMessageText = extractFirstMessageText(messages);
715437
- return computeFingerprint(firstMessageText, "1.66.1");
715588
+ return computeFingerprint(firstMessageText, "1.68.0");
715438
715589
  }
715439
715590
  var FINGERPRINT_SALT = "59cf53e54c78";
715440
715591
  var init_fingerprint = () => {};
@@ -717333,7 +717484,7 @@ async function sideQuery(opts) {
717333
717484
  betas.push(STRUCTURED_OUTPUTS_BETA_HEADER);
717334
717485
  }
717335
717486
  const messageText2 = extractFirstUserMessageText(messages);
717336
- const fingerprint2 = computeFingerprint(messageText2, "1.66.1");
717487
+ const fingerprint2 = computeFingerprint(messageText2, "1.68.0");
717337
717488
  const attributionHeader = getAttributionHeader(fingerprint2);
717338
717489
  const systemBlocks = [
717339
717490
  attributionHeader ? { type: "text", text: attributionHeader } : null,
@@ -722120,7 +722271,7 @@ function buildSystemInitMessage(inputs) {
722120
722271
  slash_commands: inputs.commands.filter((c4) => c4.userInvocable !== false).map((c4) => c4.name),
722121
722272
  apiKeySource: getURHQApiKeyWithSource().source,
722122
722273
  betas: getSdkBetas(),
722123
- ur_version: "1.66.1",
722274
+ ur_version: "1.68.0",
722124
722275
  output_style: outputStyle2,
722125
722276
  agents: inputs.agents.map((agent2) => agent2.agentType),
722126
722277
  skills: inputs.skills.filter((s) => s.userInvocable !== false).map((skill2) => skill2.name),
@@ -736071,7 +736222,7 @@ var init_useVoiceEnabled = __esm(() => {
736071
736222
  function getSemverPart(version3) {
736072
736223
  return `${import_semver13.major(version3, { loose: true })}.${import_semver13.minor(version3, { loose: true })}.${import_semver13.patch(version3, { loose: true })}`;
736073
736224
  }
736074
- function useUpdateNotification(updatedVersion, initialVersion = "1.66.1") {
736225
+ function useUpdateNotification(updatedVersion, initialVersion = "1.68.0") {
736075
736226
  const [lastNotifiedSemver, setLastNotifiedSemver] = import_react222.useState(() => getSemverPart(initialVersion));
736076
736227
  if (!updatedVersion) {
736077
736228
  return null;
@@ -736120,7 +736271,7 @@ function AutoUpdater({
736120
736271
  return;
736121
736272
  }
736122
736273
  if (false) {}
736123
- const currentVersion = "1.66.1";
736274
+ const currentVersion = "1.68.0";
736124
736275
  const channel = getInitialSettings()?.autoUpdatesChannel ?? "latest";
736125
736276
  let latestVersion = await getLatestVersion(channel);
736126
736277
  const isDisabled = isAutoUpdaterDisabled();
@@ -736349,12 +736500,12 @@ function NativeAutoUpdater({
736349
736500
  logEvent("tengu_native_auto_updater_start", {});
736350
736501
  try {
736351
736502
  const maxVersion = await getMaxVersion();
736352
- if (maxVersion && gt("1.66.1", maxVersion)) {
736503
+ if (maxVersion && gt("1.68.0", maxVersion)) {
736353
736504
  const msg = await getMaxVersionMessage();
736354
736505
  setMaxVersionIssue(msg ?? "affects your version");
736355
736506
  }
736356
736507
  const result = await installLatest(channel);
736357
- const currentVersion = "1.66.1";
736508
+ const currentVersion = "1.68.0";
736358
736509
  const latencyMs = Date.now() - startTime;
736359
736510
  if (result.lockFailed) {
736360
736511
  logEvent("tengu_native_auto_updater_lock_contention", {
@@ -736491,17 +736642,17 @@ function PackageManagerAutoUpdater(t0) {
736491
736642
  const maxVersion = await getMaxVersion();
736492
736643
  if (maxVersion && latest && gt(latest, maxVersion)) {
736493
736644
  logForDebugging(`PackageManagerAutoUpdater: maxVersion ${maxVersion} is set, capping update from ${latest} to ${maxVersion}`);
736494
- if (gte("1.66.1", maxVersion)) {
736495
- logForDebugging(`PackageManagerAutoUpdater: current version ${"1.66.1"} is already at or above maxVersion ${maxVersion}, skipping update`);
736645
+ if (gte("1.68.0", maxVersion)) {
736646
+ logForDebugging(`PackageManagerAutoUpdater: current version ${"1.68.0"} is already at or above maxVersion ${maxVersion}, skipping update`);
736496
736647
  setUpdateAvailable(false);
736497
736648
  return;
736498
736649
  }
736499
736650
  latest = maxVersion;
736500
736651
  }
736501
- const hasUpdate = latest && !gte("1.66.1", latest) && !shouldSkipVersion(latest);
736652
+ const hasUpdate = latest && !gte("1.68.0", latest) && !shouldSkipVersion(latest);
736502
736653
  setUpdateAvailable(!!hasUpdate);
736503
736654
  if (hasUpdate) {
736504
- logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.66.1"} -> ${latest}`);
736655
+ logForDebugging(`PackageManagerAutoUpdater: Update available ${"1.68.0"} -> ${latest}`);
736505
736656
  }
736506
736657
  };
736507
736658
  $2[0] = t1;
@@ -736535,7 +736686,7 @@ function PackageManagerAutoUpdater(t0) {
736535
736686
  wrap: "truncate",
736536
736687
  children: [
736537
736688
  "currentVersion: ",
736538
- "1.66.1"
736689
+ "1.68.0"
736539
736690
  ]
736540
736691
  }, undefined, true, undefined, this);
736541
736692
  $2[3] = verbose;
@@ -747228,7 +747379,7 @@ function buildStatusLineCommandInput(permissionMode, exceeds200kTokens, settings
747228
747379
  project_dir: getOriginalCwd(),
747229
747380
  added_dirs: addedDirs
747230
747381
  },
747231
- version: "1.66.1",
747382
+ version: "1.68.0",
747232
747383
  output_style: {
747233
747384
  name: outputStyleName
747234
747385
  },
@@ -747306,7 +747457,7 @@ function StatusLineInner({
747306
747457
  const taskValues = Object.values(tasks2);
747307
747458
  const taskRunningCount = countActiveBackgroundTasks(taskValues);
747308
747459
  const defaultStatusLineText = buildDefaultStatusBar({
747309
- version: "1.66.1",
747460
+ version: "1.68.0",
747310
747461
  providerLabel: providerRuntime.providerLabel,
747311
747462
  authMode: providerRuntime.authLabel,
747312
747463
  model: renderModelName(mainLoopModel) || providerRuntime.model || "",
@@ -759486,7 +759637,7 @@ async function submitTranscriptShare(messages, trigger2, appearanceId) {
759486
759637
  } catch {}
759487
759638
  const data = {
759488
759639
  trigger: trigger2,
759489
- version: "1.66.1",
759640
+ version: "1.68.0",
759490
759641
  platform: process.platform,
759491
759642
  transcript,
759492
759643
  subagentTranscripts: Object.keys(subagentTranscripts).length > 0 ? subagentTranscripts : undefined,
@@ -771854,7 +772005,7 @@ function WelcomeV2() {
771854
772005
  dimColor: true,
771855
772006
  children: [
771856
772007
  "v",
771857
- "1.66.1"
772008
+ "1.68.0"
771858
772009
  ]
771859
772010
  }, undefined, true, undefined, this)
771860
772011
  ]
@@ -773114,7 +773265,7 @@ function completeOnboarding() {
773114
773265
  saveGlobalConfig((current) => ({
773115
773266
  ...current,
773116
773267
  hasCompletedOnboarding: true,
773117
- lastOnboardingVersion: "1.66.1"
773268
+ lastOnboardingVersion: "1.68.0"
773118
773269
  }));
773119
773270
  }
773120
773271
  function showDialog(root2, renderer) {
@@ -778158,7 +778309,7 @@ function appendToLog(path24, message) {
778158
778309
  cwd: getFsImplementation().cwd(),
778159
778310
  userType: process.env.USER_TYPE,
778160
778311
  sessionId: getSessionId(),
778161
- version: "1.66.1"
778312
+ version: "1.68.0"
778162
778313
  };
778163
778314
  getLogWriter(path24).write(messageWithTimestamp);
778164
778315
  }
@@ -782322,8 +782473,8 @@ async function getEnvLessBridgeConfig() {
782322
782473
  }
782323
782474
  async function checkEnvLessBridgeMinVersion() {
782324
782475
  const cfg = await getEnvLessBridgeConfig();
782325
- if (cfg.min_version && lt("1.66.1", cfg.min_version)) {
782326
- return `Your version of UR (${"1.66.1"}) is too old for Remote Control.
782476
+ if (cfg.min_version && lt("1.68.0", cfg.min_version)) {
782477
+ return `Your version of UR (${"1.68.0"}) is too old for Remote Control.
782327
782478
  Version ${cfg.min_version} or higher is required. Run \`ur update\` to update.`;
782328
782479
  }
782329
782480
  return null;
@@ -782797,7 +782948,7 @@ async function initBridgeCore(params) {
782797
782948
  const rawApi = createBridgeApiClient({
782798
782949
  baseUrl,
782799
782950
  getAccessToken,
782800
- runnerVersion: "1.66.1",
782951
+ runnerVersion: "1.68.0",
782801
782952
  onDebug: logForDebugging,
782802
782953
  onAuth401,
782803
782954
  getTrustedDeviceToken
@@ -792270,7 +792421,7 @@ function getAgUiCapabilities() {
792270
792421
  name: "UR-Nexus",
792271
792422
  type: "ur-nexus",
792272
792423
  description: "Provider-flexible, local-first autonomous engineering workflow agent.",
792273
- version: "1.66.1",
792424
+ version: "1.68.0",
792274
792425
  provider: "UR",
792275
792426
  documentationUrl: "https://github.com/Maitham16/UR/blob/master/docs/AG_UI.md"
792276
792427
  },
@@ -793410,7 +793561,7 @@ function createMCPServer(cwd4, debug2, verbose) {
793410
793561
  };
793411
793562
  const server2 = new Server({
793412
793563
  name: "ur-nexus",
793413
- version: "1.66.1"
793564
+ version: "1.68.0"
793414
793565
  }, {
793415
793566
  capabilities: {
793416
793567
  tools: {}
@@ -794568,7 +794719,7 @@ function thrownResponse(error40) {
794568
794719
  }
794569
794720
  async function createUrMcp2026Runtime(options4) {
794570
794721
  const server2 = createMCPServer(options4.cwd, options4.debug === true, options4.verbose === true);
794571
- const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.66.1" }, { capabilities: {} });
794722
+ const client2 = new Client({ name: "ur-mcp-2026-adapter", version: "1.68.0" }, { capabilities: {} });
794572
794723
  const [clientTransport, serverTransport] = createLinkedTransportPair();
794573
794724
  try {
794574
794725
  await server2.connect(serverTransport);
@@ -794579,7 +794730,7 @@ async function createUrMcp2026Runtime(options4) {
794579
794730
  }
794580
794731
  const runtime2 = new Mcp2026Runtime({
794581
794732
  cwd: options4.cwd,
794582
- version: "1.66.1",
794733
+ version: "1.68.0",
794583
794734
  backend: {
794584
794735
  listTools: async () => {
794585
794736
  const listed = await client2.listTools();
@@ -796712,7 +796863,7 @@ async function update() {
796712
796863
  logEvent("tengu_update_check", {});
796713
796864
  const diagnostic2 = await getDoctorDiagnostic();
796714
796865
  const result = await checkUpgradeStatus({
796715
- currentVersion: "1.66.1",
796866
+ currentVersion: "1.68.0",
796716
796867
  packageName: UR_AGENT_PACKAGE_NAME,
796717
796868
  installationType: diagnostic2.installationType,
796718
796869
  latestVersion: () => getLatestNpmPackageVersion(UR_AGENT_PACKAGE_NAME)
@@ -798028,7 +798179,7 @@ ${customInstructions}` : customInstructions;
798028
798179
  }
798029
798180
  }
798030
798181
  logForDiagnosticsNoPII("info", "started", {
798031
- version: "1.66.1",
798182
+ version: "1.68.0",
798032
798183
  is_native_binary: isInBundledMode()
798033
798184
  });
798034
798185
  registerCleanup(async () => {
@@ -798814,7 +798965,7 @@ Usage: ur --remote "your task description"`, () => gracefulShutdown(1));
798814
798965
  pendingHookMessages
798815
798966
  }, renderAndRun);
798816
798967
  }
798817
- }).version("1.66.1 (UR-Nexus)", "-v, --version", "Output the version number");
798968
+ }).version("1.68.0 (UR-Nexus)", "-v, --version", "Output the version number");
798818
798969
  program2.option("-w, --worktree [name]", "Create a new git worktree for this session (optionally specify a name)");
798819
798970
  program2.option("--tmux", "Create a tmux session for the worktree (requires --worktree). Uses iTerm2 native panes when available; use --tmux=classic for traditional tmux.");
798820
798971
  if (canUserConfigureAdvisor()) {
@@ -799873,7 +800024,7 @@ if (false) {}
799873
800024
  async function main2() {
799874
800025
  const args = process.argv.slice(2);
799875
800026
  if (args.length === 1 && (args[0] === "--version" || args[0] === "-v" || args[0] === "-V")) {
799876
- console.log(`${"1.66.1"} (UR-Nexus)`);
800027
+ console.log(`${"1.68.0"} (UR-Nexus)`);
799877
800028
  return;
799878
800029
  }
799879
800030
  if (args[0] === "a2a" && args[1] === "serve" && !args.includes("--help") && !args.includes("-h")) {