brainllm 12.9.0 → 12.9.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/README.md CHANGED
@@ -10,7 +10,7 @@ Self-hosted memory for LLMs in [TriliumNext Notes](https://github.com/TriliumNex
10
10
 
11
11
  [**Site**](https://miisodev.github.io/BrainLLM/) · [Connect to Claude](https://miisodev.github.io/BrainLLM/connect.html) · [How it works](https://miisodev.github.io/BrainLLM/how-it-works.html) · [Docs](https://miisodev.github.io/BrainLLM/docs.html) · [Privacy](https://miisodev.github.io/BrainLLM/privacy.html)
12
12
 
13
- [![Version](https://img.shields.io/badge/version-12.9.0-f59e0b?style=flat-square)](https://github.com/miisodev/BrainLLM/releases)
13
+ [![Version](https://img.shields.io/badge/version-12.9.1-f59e0b?style=flat-square)](https://github.com/miisodev/BrainLLM/releases)
14
14
  [![CI](https://img.shields.io/github/actions/workflow/status/miisodev/BrainLLM/ci.yml?branch=main&style=flat-square&label=CI&color=f59e0b)](https://github.com/miisodev/BrainLLM/actions/workflows/ci.yml)
15
15
  [![License: MIT](https://img.shields.io/badge/license-MIT-a1a1aa?style=flat-square)](./LICENSE)
16
16
  [![Runtime: Bun](https://img.shields.io/badge/runtime-Bun%20%E2%89%A5%201.0-a1a1aa?style=flat-square&logo=bun&logoColor=white)](https://bun.sh)
package/dist/index.js CHANGED
@@ -22807,26 +22807,35 @@ function unbalancedTags(html) {
22807
22807
  }
22808
22808
  function tableShapeIssues(html) {
22809
22809
  const issues = [];
22810
- const cellSpan = (attrs) => Number(/colspan\s*=\s*"?(\d+)/i.exec(attrs ?? "")?.[1] ?? 1);
22810
+ const spanOf = (attrs, name) => Number(new RegExp(`${name}\\s*=\\s*"?(\\d+)`, "i").exec(attrs ?? "")?.[1] ?? 1);
22811
22811
  for (const table of html.matchAll(/<table\b[^>]*>([\s\S]*?)<\/table>/gi)) {
22812
22812
  const rows = [...table[1].matchAll(/<tr\b[^>]*>([\s\S]*?)<\/tr>/gi)].map((r) => [...r[1].matchAll(/<(t[hd])\b([^>]*)>([\s\S]*?)<\/\1>/gi)].map((c) => ({
22813
- span: cellSpan(c[2]),
22813
+ span: spanOf(c[2], "colspan"),
22814
+ rows: spanOf(c[2], "rowspan"),
22814
22815
  text: decodeEntities(c[3].replace(/<[^>]+>/g, "")).trim()
22815
22816
  })));
22816
22817
  if (rows.length < 2)
22817
22818
  continue;
22818
22819
  const width = rows[0].reduce((sum, c) => sum + c.span, 0);
22819
- for (const cells of rows.slice(1)) {
22820
- const label = (cells[0]?.text ?? "").slice(0, 60) || "(empty row)";
22821
- const count = cells.reduce((sum, c) => sum + c.span, 0);
22822
- if (count !== width) {
22823
- issues.push(`row "${label}" has ${count} cell(s), its header has ${width}`);
22824
- continue;
22825
- }
22826
- const piped = cells.find((c) => (c.text.match(/\s\|\s/g)?.length ?? 0) >= Math.max(1, width - 2) && width > 1);
22827
- if (piped && cells.filter((c) => c.text).length < width) {
22828
- issues.push(`row "${label}" carries pipe-separated values inside one cell \u2014 send each value as its own <td>`);
22820
+ let spanning = [];
22821
+ for (const [i, cells] of rows.entries()) {
22822
+ const inherited = spanning.reduce((sum, s) => sum + s.columns, 0);
22823
+ if (i > 0) {
22824
+ const label = (cells[0]?.text ?? "").slice(0, 60) || "(empty row)";
22825
+ const count = cells.reduce((sum, c) => sum + c.span, 0) + inherited;
22826
+ if (count !== width) {
22827
+ issues.push(`row "${label}" has ${count} cell(s), its header has ${width}`);
22828
+ } else {
22829
+ const piped = cells.find((c) => (c.text.match(/\s\|\s/g)?.length ?? 0) >= Math.max(1, width - 2) && width > 1);
22830
+ if (piped && cells.filter((c) => c.text).length < width) {
22831
+ issues.push(`row "${label}" carries pipe-separated values inside one cell \u2014 send each value as its own <td>`);
22832
+ }
22833
+ }
22829
22834
  }
22835
+ spanning = [
22836
+ ...spanning.map((s) => ({ ...s, rowsLeft: s.rowsLeft - 1 })).filter((s) => s.rowsLeft > 0),
22837
+ ...cells.filter((c) => c.rows > 1).map((c) => ({ columns: c.span, rowsLeft: c.rows - 1 }))
22838
+ ];
22830
22839
  }
22831
22840
  }
22832
22841
  return issues;
@@ -30205,7 +30214,7 @@ function createServer(origin = null) {
30205
30214
  const s = new McpServer({
30206
30215
  name: BRAND2.name,
30207
30216
  title: BRAND2.name,
30208
- version: "12.9.0",
30217
+ version: "12.9.1",
30209
30218
  description: BRAND2.description,
30210
30219
  websiteUrl: BRAND2.website,
30211
30220
  icons: brandIcons(origin)
package/manifest.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "manifest_version": "0.3",
3
3
  "name": "brainllm",
4
4
  "display_name": "BrainLLM",
5
- "version": "12.9.0",
5
+ "version": "12.9.1",
6
6
  "description": "Self-hosted memory for LLMs in TriliumNext, structured by the server and editable by you.",
7
7
  "long_description": "BrainLLM is an MCP server that organises memory into five purpose-built areas (Master, LLM, Memory, Knowledge, Insights). The model supplies content while the server owns placement, format, lifecycle, dates and backups. Includes a full raw ETAPI surface for advanced use. Requires a running TriliumNext instance and the Bun runtime.",
8
8
  "author": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brainllm",
3
- "version": "12.9.0",
3
+ "version": "12.9.1",
4
4
  "mcpName": "io.github.miisodev/brainllm",
5
5
  "description": "Self-hosted memory for LLMs in TriliumNext, structured by the server and editable by you.",
6
6
  "author": "Kevin Miiso Novo <miisodev@gmail.com>",
package/server.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "io.github.miisodev/brainllm",
4
4
  "description": "Self-hosted memory for LLMs in TriliumNext, structured by the server and editable by you.",
5
- "version": "12.9.0",
5
+ "version": "12.9.1",
6
6
  "websiteUrl": "https://miisodev.github.io/BrainLLM/",
7
7
  "repository": {
8
8
  "url": "https://github.com/miisodev/BrainLLM",
@@ -12,7 +12,7 @@
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "brainllm",
15
- "version": "12.9.0",
15
+ "version": "12.9.1",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },