@de-otio/epimethian-mcp 5.3.3 → 5.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli/index.js CHANGED
@@ -18331,14 +18331,14 @@ var require_HTMLParser = __commonJS({
18331
18331
  }
18332
18332
  var insertToken = htmlparser.insertToken = function insertToken2(t, value, arg3, arg4) {
18333
18333
  flushText();
18334
- var current2 = stack.top;
18335
- if (!current2 || current2.namespaceURI === NAMESPACE.HTML) {
18334
+ var current = stack.top;
18335
+ if (!current || current.namespaceURI === NAMESPACE.HTML) {
18336
18336
  parser(t, value, arg3, arg4);
18337
18337
  } else {
18338
18338
  if (t !== TAG && t !== TEXT) {
18339
18339
  insertForeignToken(t, value, arg3, arg4);
18340
18340
  } else {
18341
- if (isMathmlTextIntegrationPoint(current2) && (t === TEXT || t === TAG && value !== "mglyph" && value !== "malignmark") || t === TAG && value === "svg" && current2.namespaceURI === NAMESPACE.MATHML && current2.localName === "annotation-xml" || isHTMLIntegrationPoint(current2)) {
18341
+ if (isMathmlTextIntegrationPoint(current) && (t === TEXT || t === TAG && value !== "mglyph" && value !== "malignmark") || t === TAG && value === "svg" && current.namespaceURI === NAMESPACE.MATHML && current.localName === "annotation-xml" || isHTMLIntegrationPoint(current)) {
18342
18342
  text_integration_mode = true;
18343
18343
  parser(t, value, arg3, arg4);
18344
18344
  text_integration_mode = false;
@@ -22938,7 +22938,7 @@ var require_HTMLParser = __commonJS({
22938
22938
  }
22939
22939
  return false;
22940
22940
  }
22941
- var current2;
22941
+ var current;
22942
22942
  switch (t) {
22943
22943
  case 1:
22944
22944
  if (frameset_ok && NONWSNONNUL.test(value))
@@ -23007,29 +23007,29 @@ var require_HTMLParser = __commonJS({
23007
23007
  }
23008
23008
  do {
23009
23009
  stack.pop();
23010
- current2 = stack.top;
23011
- } while (current2.namespaceURI !== NAMESPACE.HTML && !isMathmlTextIntegrationPoint(current2) && !isHTMLIntegrationPoint(current2));
23010
+ current = stack.top;
23011
+ } while (current.namespaceURI !== NAMESPACE.HTML && !isMathmlTextIntegrationPoint(current) && !isHTMLIntegrationPoint(current));
23012
23012
  insertToken(t, value, arg3, arg4);
23013
23013
  return;
23014
23014
  }
23015
- current2 = stack.elements.length === 1 && fragment ? fragmentContext : stack.top;
23016
- if (current2.namespaceURI === NAMESPACE.MATHML) {
23015
+ current = stack.elements.length === 1 && fragment ? fragmentContext : stack.top;
23016
+ if (current.namespaceURI === NAMESPACE.MATHML) {
23017
23017
  adjustMathMLAttributes(arg3);
23018
- } else if (current2.namespaceURI === NAMESPACE.SVG) {
23018
+ } else if (current.namespaceURI === NAMESPACE.SVG) {
23019
23019
  value = adjustSVGTagName(value);
23020
23020
  adjustSVGAttributes(arg3);
23021
23021
  }
23022
23022
  adjustForeignAttributes(arg3);
23023
- insertForeignElement(value, arg3, current2.namespaceURI);
23023
+ insertForeignElement(value, arg3, current.namespaceURI);
23024
23024
  if (arg4) {
23025
- if (value === "script" && current2.namespaceURI === NAMESPACE.SVG) {
23025
+ if (value === "script" && current.namespaceURI === NAMESPACE.SVG) {
23026
23026
  }
23027
23027
  stack.pop();
23028
23028
  }
23029
23029
  return;
23030
23030
  case 3:
23031
- current2 = stack.top;
23032
- if (value === "script" && current2.namespaceURI === NAMESPACE.SVG && current2.localName === "script") {
23031
+ current = stack.top;
23032
+ if (value === "script" && current.namespaceURI === NAMESPACE.SVG && current.localName === "script") {
23033
23033
  stack.pop();
23034
23034
  } else {
23035
23035
  var i = stack.elements.length - 1;
@@ -23226,8 +23226,8 @@ var require_Location = __commonJS({
23226
23226
  }
23227
23227
  },
23228
23228
  assign: { value: function(url) {
23229
- var current2 = new URL2(this._href);
23230
- var newurl = current2.resolve(url);
23229
+ var current = new URL2(this._href);
23230
+ var newurl = current.resolve(url);
23231
23231
  this._href = newurl;
23232
23232
  } },
23233
23233
  replace: { value: function(url) {
@@ -23832,11 +23832,11 @@ var require_turndown_cjs = __commonJS({
23832
23832
  node.parentNode.removeChild(node);
23833
23833
  return next2;
23834
23834
  }
23835
- function next(prev, current2, isPre) {
23836
- if (prev && prev.parentNode === current2 || isPre(current2)) {
23837
- return current2.nextSibling || current2.parentNode;
23835
+ function next(prev, current, isPre) {
23836
+ if (prev && prev.parentNode === current || isPre(current)) {
23837
+ return current.nextSibling || current.parentNode;
23838
23838
  }
23839
- return current2.firstChild || current2.nextSibling || current2.parentNode;
23839
+ return current.firstChild || current.nextSibling || current.parentNode;
23840
23840
  }
23841
23841
  var root = typeof window !== "undefined" ? window : {};
23842
23842
  function canParseHTMLNatively() {
@@ -25710,19 +25710,19 @@ var require_decode = __commonJS({
25710
25710
  };
25711
25711
  EntityDecoder3.prototype.stateNamedEntity = function(str2, offset) {
25712
25712
  var decodeTree = this.decodeTree;
25713
- var current2 = decodeTree[this.treeIndex];
25714
- var valueLength = (current2 & BinTrieFlags2.VALUE_LENGTH) >> 14;
25713
+ var current = decodeTree[this.treeIndex];
25714
+ var valueLength = (current & BinTrieFlags2.VALUE_LENGTH) >> 14;
25715
25715
  for (; offset < str2.length; offset++, this.excess++) {
25716
25716
  var char = str2.charCodeAt(offset);
25717
- this.treeIndex = determineBranch2(decodeTree, current2, this.treeIndex + Math.max(1, valueLength), char);
25717
+ this.treeIndex = determineBranch2(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);
25718
25718
  if (this.treeIndex < 0) {
25719
25719
  return this.result === 0 || // If we are parsing an attribute
25720
25720
  this.decodeMode === DecodingMode2.Attribute && // We shouldn't have consumed any characters after the entity,
25721
25721
  (valueLength === 0 || // And there should be no invalid characters.
25722
25722
  isEntityInAttributeInvalidEnd2(char)) ? 0 : this.emitNotTerminatedNamedEntity();
25723
25723
  }
25724
- current2 = decodeTree[this.treeIndex];
25725
- valueLength = (current2 & BinTrieFlags2.VALUE_LENGTH) >> 14;
25724
+ current = decodeTree[this.treeIndex];
25725
+ valueLength = (current & BinTrieFlags2.VALUE_LENGTH) >> 14;
25726
25726
  if (valueLength !== 0) {
25727
25727
  if (char === CharCodes2.SEMI) {
25728
25728
  return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
@@ -25806,9 +25806,9 @@ var require_decode = __commonJS({
25806
25806
  return result;
25807
25807
  };
25808
25808
  }
25809
- function determineBranch2(decodeTree, current2, nodeIdx, char) {
25810
- var branchCount = (current2 & BinTrieFlags2.BRANCH_LENGTH) >> 7;
25811
- var jumpOffset = current2 & BinTrieFlags2.JUMP_TABLE;
25809
+ function determineBranch2(decodeTree, current, nodeIdx, char) {
25810
+ var branchCount = (current & BinTrieFlags2.BRANCH_LENGTH) >> 7;
25811
+ var jumpOffset = current & BinTrieFlags2.JUMP_TABLE;
25812
25812
  if (branchCount === 0) {
25813
25813
  return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;
25814
25814
  }
@@ -26923,15 +26923,15 @@ var require_helpers = __commonJS({
26923
26923
  if (nodeA === nodeB) {
26924
26924
  return 0;
26925
26925
  }
26926
- var current2 = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;
26927
- while (current2) {
26928
- aParents.unshift(current2);
26929
- current2 = current2.parent;
26926
+ var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;
26927
+ while (current) {
26928
+ aParents.unshift(current);
26929
+ current = current.parent;
26930
26930
  }
26931
- current2 = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;
26932
- while (current2) {
26933
- bParents.unshift(current2);
26934
- current2 = current2.parent;
26931
+ current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;
26932
+ while (current) {
26933
+ bParents.unshift(current);
26934
+ current = current.parent;
26935
26935
  }
26936
26936
  var maxIdx = Math.min(aParents.length, bParents.length);
26937
26937
  var idx = 0;
@@ -28667,9 +28667,9 @@ var require_general = __commonJS({
28667
28667
  case css_what_1.SelectorType.Descendant: {
28668
28668
  if (options2.cacheResults === false || typeof WeakSet === "undefined") {
28669
28669
  return function descendant(elem) {
28670
- var current2 = elem;
28671
- while (current2 = getElementParent(current2, adapter)) {
28672
- if (next(current2)) {
28670
+ var current = elem;
28671
+ while (current = getElementParent(current, adapter)) {
28672
+ if (next(current)) {
28673
28673
  return true;
28674
28674
  }
28675
28675
  }
@@ -28678,13 +28678,13 @@ var require_general = __commonJS({
28678
28678
  }
28679
28679
  var isFalseCache_1 = /* @__PURE__ */ new WeakSet();
28680
28680
  return function cachedDescendant(elem) {
28681
- var current2 = elem;
28682
- while (current2 = getElementParent(current2, adapter)) {
28683
- if (!isFalseCache_1.has(current2)) {
28684
- if (adapter.isTag(current2) && next(current2)) {
28681
+ var current = elem;
28682
+ while (current = getElementParent(current, adapter)) {
28683
+ if (!isFalseCache_1.has(current)) {
28684
+ if (adapter.isTag(current) && next(current)) {
28685
28685
  return true;
28686
28686
  }
28687
- isFalseCache_1.add(current2);
28687
+ isFalseCache_1.add(current);
28688
28688
  }
28689
28689
  }
28690
28690
  return false;
@@ -28692,11 +28692,11 @@ var require_general = __commonJS({
28692
28692
  }
28693
28693
  case "_flexibleDescendant": {
28694
28694
  return function flexibleDescendant(elem) {
28695
- var current2 = elem;
28695
+ var current = elem;
28696
28696
  do {
28697
- if (next(current2))
28697
+ if (next(current))
28698
28698
  return true;
28699
- } while (current2 = getElementParent(current2, adapter));
28699
+ } while (current = getElementParent(current, adapter));
28700
28700
  return false;
28701
28701
  };
28702
28702
  }
@@ -49324,7 +49324,7 @@ async function getPage(pageId, includeBody) {
49324
49324
  async function createPage(spaceId, title, body, parentId, clientLabel) {
49325
49325
  const cfg = await getConfig();
49326
49326
  const pageBody = stripAttributionFooter(toStorageFormat(body));
49327
- const epimethianTag = `Epimethian v${"5.3.3"}`;
49327
+ const epimethianTag = `Epimethian v${"5.4.1"}`;
49328
49328
  const versionMsg = cfg.attribution && clientLabel ? `Created by ${clientLabel} (via ${epimethianTag})` : `Created by ${epimethianTag}`;
49329
49329
  const payload = {
49330
49330
  title,
@@ -49349,7 +49349,7 @@ async function createPage(spaceId, title, body, parentId, clientLabel) {
49349
49349
  async function updatePage(pageId, opts) {
49350
49350
  const cfg = await getConfig();
49351
49351
  const newVersion = opts.version + 1;
49352
- const epimethianTag = `Epimethian v${"5.3.3"}`;
49352
+ const epimethianTag = `Epimethian v${"5.4.1"}`;
49353
49353
  const effectiveClient = cfg.attribution ? opts.clientLabel : void 0;
49354
49354
  let versionMessage;
49355
49355
  if (opts.versionMessage && effectiveClient)
@@ -50303,9 +50303,9 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne
50303
50303
  const hunks = [];
50304
50304
  let oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1;
50305
50305
  for (let i = 0; i < diff.length; i++) {
50306
- const current2 = diff[i], lines = current2.lines || splitLines(current2.value);
50307
- current2.lines = lines;
50308
- if (current2.added || current2.removed) {
50306
+ const current = diff[i], lines = current.lines || splitLines(current.value);
50307
+ current.lines = lines;
50308
+ if (current.added || current.removed) {
50309
50309
  if (!oldRangeStart) {
50310
50310
  const prev = diff[i - 1];
50311
50311
  oldRangeStart = oldLine;
@@ -50317,9 +50317,9 @@ function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, ne
50317
50317
  }
50318
50318
  }
50319
50319
  for (const line of lines) {
50320
- curRange.push((current2.added ? "+" : "-") + line);
50320
+ curRange.push((current.added ? "+" : "-") + line);
50321
50321
  }
50322
- if (current2.added) {
50322
+ if (current.added) {
50323
50323
  newLine += lines.length;
50324
50324
  } else {
50325
50325
  oldLine += lines.length;
@@ -51235,19 +51235,19 @@ var EntityDecoder = class {
51235
51235
  */
51236
51236
  stateNamedEntity(str2, offset) {
51237
51237
  const { decodeTree } = this;
51238
- let current2 = decodeTree[this.treeIndex];
51239
- let valueLength = (current2 & BinTrieFlags.VALUE_LENGTH) >> 14;
51238
+ let current = decodeTree[this.treeIndex];
51239
+ let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;
51240
51240
  for (; offset < str2.length; offset++, this.excess++) {
51241
51241
  const char = str2.charCodeAt(offset);
51242
- this.treeIndex = determineBranch(decodeTree, current2, this.treeIndex + Math.max(1, valueLength), char);
51242
+ this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);
51243
51243
  if (this.treeIndex < 0) {
51244
51244
  return this.result === 0 || // If we are parsing an attribute
51245
51245
  this.decodeMode === DecodingMode.Attribute && // We shouldn't have consumed any characters after the entity,
51246
51246
  (valueLength === 0 || // And there should be no invalid characters.
51247
51247
  isEntityInAttributeInvalidEnd(char)) ? 0 : this.emitNotTerminatedNamedEntity();
51248
51248
  }
51249
- current2 = decodeTree[this.treeIndex];
51250
- valueLength = (current2 & BinTrieFlags.VALUE_LENGTH) >> 14;
51249
+ current = decodeTree[this.treeIndex];
51250
+ valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;
51251
51251
  if (valueLength !== 0) {
51252
51252
  if (char === CharCodes.SEMI) {
51253
51253
  return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);
@@ -51347,9 +51347,9 @@ function getDecoder(decodeTree) {
51347
51347
  return result;
51348
51348
  };
51349
51349
  }
51350
- function determineBranch(decodeTree, current2, nodeIdx, char) {
51351
- const branchCount = (current2 & BinTrieFlags.BRANCH_LENGTH) >> 7;
51352
- const jumpOffset = current2 & BinTrieFlags.JUMP_TABLE;
51350
+ function determineBranch(decodeTree, current, nodeIdx, char) {
51351
+ const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;
51352
+ const jumpOffset = current & BinTrieFlags.JUMP_TABLE;
51353
51353
  if (branchCount === 0) {
51354
51354
  return jumpOffset !== 0 && char === jumpOffset ? nodeIdx : -1;
51355
51355
  }
@@ -52774,15 +52774,15 @@ function escapedSplit(str2) {
52774
52774
  let ch = str2.charCodeAt(pos);
52775
52775
  let isEscaped = false;
52776
52776
  let lastPos = 0;
52777
- let current2 = "";
52777
+ let current = "";
52778
52778
  while (pos < max) {
52779
52779
  if (ch === 124) {
52780
52780
  if (!isEscaped) {
52781
- result.push(current2 + str2.substring(lastPos, pos));
52782
- current2 = "";
52781
+ result.push(current + str2.substring(lastPos, pos));
52782
+ current = "";
52783
52783
  lastPos = pos + 1;
52784
52784
  } else {
52785
- current2 += str2.substring(lastPos, pos - 1);
52785
+ current += str2.substring(lastPos, pos - 1);
52786
52786
  lastPos = pos;
52787
52787
  }
52788
52788
  }
@@ -52790,7 +52790,7 @@ function escapedSplit(str2) {
52790
52790
  pos++;
52791
52791
  ch = str2.charCodeAt(pos);
52792
52792
  }
52793
- result.push(current2 + str2.substring(lastPos));
52793
+ result.push(current + str2.substring(lastPos));
52794
52794
  return result;
52795
52795
  }
52796
52796
  function table(state, startLine, endLine, silent) {
@@ -56949,11 +56949,11 @@ function parseSemVer(version2) {
56949
56949
  patch: parseInt(match2[3], 10)
56950
56950
  };
56951
56951
  }
56952
- function classifyUpdate(current2, latest) {
56953
- if (latest.major > current2.major) return "major";
56954
- if (latest.major === current2.major && latest.minor > current2.minor)
56952
+ function classifyUpdate(current, latest) {
56953
+ if (latest.major > current.major) return "major";
56954
+ if (latest.major === current.major && latest.minor > current.minor)
56955
56955
  return "minor";
56956
- if (latest.major === current2.major && latest.minor === current2.minor && latest.patch > current2.patch)
56956
+ if (latest.major === current.major && latest.minor === current.minor && latest.patch > current.patch)
56957
56957
  return "patch";
56958
56958
  return null;
56959
56959
  }
@@ -57025,10 +57025,10 @@ async function checkForUpdates(currentVersion) {
57025
57025
  if (!latestStr) {
57026
57026
  return state?.pendingUpdate ?? null;
57027
57027
  }
57028
- const current2 = parseSemVer(currentVersion);
57028
+ const current = parseSemVer(currentVersion);
57029
57029
  const latest = parseSemVer(latestStr);
57030
- if (!current2 || !latest) return null;
57031
- const type = classifyUpdate(current2, latest);
57030
+ if (!current || !latest) return null;
57031
+ const type = classifyUpdate(current, latest);
57032
57032
  const newState = {
57033
57033
  lastCheck: (/* @__PURE__ */ new Date()).toISOString()
57034
57034
  };
@@ -57548,7 +57548,7 @@ ${truncated}`);
57548
57548
  inputSchema: {
57549
57549
  page_id: external_exports.string().describe("The Confluence page ID"),
57550
57550
  section: external_exports.string().describe("Heading text identifying the section to replace (case-insensitive)"),
57551
- body: external_exports.string().describe("New content for this section in Confluence storage format. The heading itself is preserved; only content under it is replaced."),
57551
+ body: external_exports.string().describe("New content for this section \u2014 GFM markdown or Confluence storage format. Markdown is auto-detected and converted. The heading itself is preserved; only content under it is replaced."),
57552
57552
  version: external_exports.number().int().positive().describe("The page version number from your most recent get_page call"),
57553
57553
  version_message: external_exports.string().optional().describe("Optional version comment")
57554
57554
  },
@@ -57566,7 +57566,8 @@ ${truncated}`);
57566
57566
  }
57567
57567
  const page = await getPage(page_id, true);
57568
57568
  const fullBody = page.body?.storage?.value ?? page.body?.value ?? "";
57569
- const newFullBody = replaceSection(fullBody, section, body);
57569
+ const sectionStorage = looksLikeMarkdown(body) ? markdownToStorage(body) : body;
57570
+ const newFullBody = replaceSection(fullBody, section, sectionStorage);
57570
57571
  if (newFullBody === null) {
57571
57572
  return toolResult(
57572
57573
  `Section "${section}" not found. Use headings_only to see available sections.`
@@ -57981,8 +57982,8 @@ ${truncated}`);
57981
57982
  ` <ac:parameter ac:name="contentVer">1</ac:parameter>`,
57982
57983
  `</ac:structured-macro>`
57983
57984
  ].join("\n");
57984
- const current2 = await getPage(page_id, true);
57985
- const existingBody = current2.body?.storage?.value ?? current2.body?.value ?? "";
57985
+ const current = await getPage(page_id, true);
57986
+ const existingBody = current.body?.storage?.value ?? current.body?.value ?? "";
57986
57987
  const newBody = append ? `${existingBody}
57987
57988
  ${macro}` : macro;
57988
57989
  enforceContentSafetyGuards({
@@ -57990,9 +57991,9 @@ ${macro}` : macro;
57990
57991
  newStorage: newBody
57991
57992
  });
57992
57993
  const { page, newVersion } = await updatePage(page_id, {
57993
- title: current2.title,
57994
+ title: current.title,
57994
57995
  body: newBody,
57995
- version: current2.version?.number ?? 0,
57996
+ version: current.version?.number ?? 0,
57996
57997
  versionMessage: `Added diagram: ${filename}`,
57997
57998
  previousBody: existingBody,
57998
57999
  clientLabel: getClientLabel(server)
@@ -58001,7 +58002,7 @@ ${macro}` : macro;
58001
58002
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
58002
58003
  operation: "update_page",
58003
58004
  pageId: page_id,
58004
- oldVersion: current2.version?.number ?? 0,
58005
+ oldVersion: current.version?.number ?? 0,
58005
58006
  newVersion,
58006
58007
  oldBodyLen: existingBody.length,
58007
58008
  newBodyLen: newBody.length,
@@ -58013,9 +58014,7 @@ ${macro}` : macro;
58013
58014
  `Diagram "${filename}" added to page ${page.title} (ID: ${page.id}, version: ${newVersion})` + echo
58014
58015
  );
58015
58016
  } catch (err) {
58016
- logMutation(errorRecord("update_page", page_id, err, {
58017
- oldVersion: current.version?.number ?? 0
58018
- }));
58017
+ logMutation(errorRecord("update_page", page_id, err));
58019
58018
  return toolError(err);
58020
58019
  }
58021
58020
  }
@@ -58626,7 +58625,7 @@ ${lines.join("\n")}${echo2}`
58626
58625
  inputSchema: {}
58627
58626
  },
58628
58627
  async () => {
58629
- let text2 = `epimethian-mcp v${"5.3.3"}`;
58628
+ let text2 = `epimethian-mcp v${"5.4.1"}`;
58630
58629
  try {
58631
58630
  const pending = await getPendingUpdate();
58632
58631
  if (pending) {
@@ -58656,7 +58655,7 @@ ${pending.type === "major" ? "Major" : "Minor"} update available: v${pending.cur
58656
58655
  const pending = await getPendingUpdate();
58657
58656
  if (!pending) {
58658
58657
  return toolResult(
58659
- `epimethian-mcp v${"5.3.3"} is already up to date.`
58658
+ `epimethian-mcp v${"5.4.1"} is already up to date.`
58660
58659
  );
58661
58660
  }
58662
58661
  const output = await performUpgrade(pending.latest);
@@ -58684,12 +58683,12 @@ async function main() {
58684
58683
  const serverName = config3.profile ? `confluence-${config3.profile}` : "confluence";
58685
58684
  const server = new McpServer({
58686
58685
  name: serverName,
58687
- version: "5.3.3"
58686
+ version: "5.4.1"
58688
58687
  });
58689
58688
  registerTools(server, config3);
58690
58689
  const transport = new StdioServerTransport();
58691
58690
  await server.connect(transport);
58692
- checkForUpdates("5.3.3").catch(() => {
58691
+ checkForUpdates("5.4.1").catch(() => {
58693
58692
  });
58694
58693
  }
58695
58694