@tasksai/install 0.1.26 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/runtime/server.py +11 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tasksai/install",
3
- "version": "0.1.26",
3
+ "version": "0.1.27",
4
4
  "description": "Shared TasksAI MCP installer CLI",
5
5
  "type": "module",
6
6
  "bin": {
package/runtime/server.py CHANGED
@@ -125,7 +125,7 @@ if not LICENSE_KEY:
125
125
  print("Find your key in your purchase confirmation email.", file=sys.stderr, flush=True)
126
126
  sys.exit(1)
127
127
 
128
- SERVER_VERSION = "2.4.2"
128
+ SERVER_VERSION = "2.4.3"
129
129
 
130
130
  AUTH_HEADERS = {
131
131
  "Authorization": f"Bearer {LICENSE_KEY}",
@@ -938,6 +938,10 @@ def labeled_fact(line):
938
938
  match = re.match(r"^([^:\n]{1,55}):\s+(.+)$", line.strip())
939
939
  if not match:
940
940
  return None
941
+ if re.search(r"[`*_\[\]]", match.group(1)):
942
+ # A colon after inline Markdown is sentence punctuation, not a
943
+ # short label/value field. Let the normal inline parser handle it.
944
+ return None
941
945
  return match.group(1).strip(), match.group(2).strip()
942
946
 
943
947
 
@@ -956,6 +960,7 @@ def add_labeled_fact(doc, label, value):
956
960
 
957
961
  def iter_inline_markdown(text):
958
962
  """Yield (text, marks) spans for common inline Markdown."""
963
+ text = re.sub(r"\\([\\`*_{}\[\]()#+.!-])", r"\1", text)
959
964
  token_re = re.compile(
960
965
  r"(`[^`]+`|\*\*[^*]+\*\*|__[^_]+__|\*[^*\s][^*]*\*|(?<!\w)_[^_\s][^_]*_(?!\w)|\[[^\]]+\]\([^)]+\))"
961
966
  )
@@ -1036,6 +1041,11 @@ def add_markdown_text(paragraph, text):
1036
1041
  run = paragraph.add_run(value)
1037
1042
  if marks.get("bold"):
1038
1043
  run.bold = True
1044
+ if re.match(r"^\+\d", value):
1045
+ # Aptos substitution in some headless Word renderers maps a
1046
+ # bold leading plus sign to a diamond. Arial preserves the
1047
+ # intended glyph and remains portable in Office.
1048
+ run.font.name = "Arial"
1039
1049
  if marks.get("italic"):
1040
1050
  run.italic = True
1041
1051
  if marks.get("code"):