wenlan-mcp 0.15.7 → 0.16.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/README.md +20 -9
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -41,18 +41,25 @@ Useful work with AI shouldn't disappear when a conversation ends. Wenlan builds
|
|
|
41
41
|
|
|
42
42
|
## Get started
|
|
43
43
|
|
|
44
|
+
Wenlan runs as one local daemon. The desktop app carries that daemon inside it; the headless install gives you the same daemon without a window. Your AI clients reach the same knowledge base either way.
|
|
45
|
+
|
|
44
46
|
<a id="start-with-the-app"></a>
|
|
45
47
|
<a id="open-the-wiki"></a>
|
|
48
|
+
<a id="desktop-app"></a>
|
|
46
49
|
|
|
47
50
|
### Desktop app
|
|
48
51
|
|
|
49
|
-
|
|
52
|
+
**[Download Wenlan for macOS](https://github.com/7xuanlu/wenlan/releases/latest)** (Apple Silicon), open the `.dmg`, and drag the app to Applications.
|
|
53
|
+
|
|
54
|
+
Nothing else to install. The app bundles the daemon, CLI, and MCP connector, starts the daemon on launch, and offers to connect the AI clients it detects: the plugin for Claude Code and Codex, an MCP entry for the rest. From there you read Pages, inspect the Source behind any citation, and curate the knowledge system.
|
|
55
|
+
|
|
56
|
+
This preview is not notarized yet, so macOS blocks the first launch. Allow it once under System Settings, Privacy & Security, "Open Anyway". One command skips that step: it verifies the download against GitHub's published SHA-256, clears quarantine for this app alone, and changes no macOS security settings.
|
|
50
57
|
|
|
51
58
|
```bash
|
|
52
59
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/7xuanlu/wenlan/main/scripts/install-macos-app.sh)"
|
|
53
60
|
```
|
|
54
61
|
|
|
55
|
-
|
|
62
|
+
On Windows x64, run the `-setup.exe` from the same [Releases](https://github.com/7xuanlu/wenlan/releases/latest) page. It installs the daemon, CLI, and MCP connector along with the runtime libraries they load, so there is nothing else to install. Linux has no desktop build yet; use the headless runtime below.
|
|
56
63
|
|
|
57
64
|
<a id="claude-code-in-30-seconds"></a>
|
|
58
65
|
|
|
@@ -150,11 +157,11 @@ During retrieval, dense entity matching finds query-relevant entities. When elig
|
|
|
150
157
|
|
|
151
158
|
Wenlan's core search is a local hybrid pipeline, not a single vector lookup. Each stage has a different job:
|
|
152
159
|
|
|
153
|
-
- **Exact wording
|
|
154
|
-
- **Similar meaning
|
|
155
|
-
- **Combined ranking
|
|
156
|
-
- **Connected context
|
|
157
|
-
- **Optional precision
|
|
160
|
+
- **Exact wording, [SQLite FTS5](https://www.sqlite.org/fts5.html):** a full-text index finds literal terms, identifiers, and phrases.
|
|
161
|
+
- **Similar meaning, FastEmbed + [`Qdrant/bge-base-en-v1.5-onnx-Q`](https://huggingface.co/Qdrant/bge-base-en-v1.5-onnx-Q):** a quantized English model creates 768-dimensional embeddings; [libSQL cosine DiskANN](https://turso.tech/blog/approximate-nearest-neighbor-search-with-diskann-in-libsql) indexes them for approximate nearest-neighbor retrieval.
|
|
162
|
+
- **Combined ranking, weighted [RRF](https://cormack.uwaterloo.ca/cormacksigir09-rrf.pdf) (`k = 60`):** lexical and semantic rank lists are fused without pretending their raw scores share a scale; cosine similarity also weights the vector contribution.
|
|
163
|
+
- **Connected context, graph-memory stream:** eligible entity links add a third RRF signal while the active read scope still filters returned Memories.
|
|
164
|
+
- **Optional precision, cross-encoder reranking:** unlike embeddings, [`jinaai/jina-reranker-v1-turbo-en`](https://huggingface.co/jinaai/jina-reranker-v1-turbo-en) or [`BAAI/bge-reranker-base`](https://huggingface.co/BAAI/bge-reranker-base) reads each query-candidate pair and reorders the smaller pool; reranking is off by default.
|
|
158
165
|
|
|
159
166
|
Page, episodic, and fact channels are opt-in and degrade to the remaining search signals if unavailable. Space still limits the read scope. [Methods, defaults, and limitations ->](docs/technical-foundations.md)
|
|
160
167
|
|
|
@@ -264,6 +271,10 @@ The loop has four steps:
|
|
|
264
271
|
3. **Close the loop.** `/handoff` records what changed and applies typed item-level updates to the current Space Brief.
|
|
265
272
|
4. **Keep the wiki current.** `/distill` deliberately creates or refreshes pages. Between sessions, optional model-backed passes can enrich captures, connect related entities, and refresh eligible pages. `/lint` checks knowledge health; `/curate` brings proposed revisions and any conflict-review items created by the optional reconcile pass to you.
|
|
266
273
|
|
|
274
|
+
### Offline queue (outbox)
|
|
275
|
+
|
|
276
|
+
If the local daemon is unreachable, `wenlan capture` and `wenlan brief update` write their requests to a durable local outbox and exit successfully. When the daemon returns, it drains those writes through the normal HTTP routes; inspect the queue with `wenlan outbox status` or request an immediate replay with `wenlan outbox drain`. A write the daemon rejects outright (a 4xx, such as failing the content quality gate) moves to `outbox/failed/` with a receipt instead of retrying forever; a transport failure or server error (5xx) leaves it queued for the next drain, which runs automatically every 60 seconds.
|
|
277
|
+
|
|
267
278
|
### Models and privacy
|
|
268
279
|
|
|
269
280
|
- **Local base retrieval:** The [BGE embedding model](https://huggingface.co/Qdrant/bge-base-en-v1.5-onnx-Q) runs through FastEmbed on your machine for hybrid search and needs no API key.
|
|
@@ -331,11 +342,11 @@ cargo test
|
|
|
331
342
|
# desktop app (Cargo target and root-level frontend tooling)
|
|
332
343
|
cargo build -p wenlan-app
|
|
333
344
|
pnpm install
|
|
334
|
-
pnpm
|
|
345
|
+
pnpm dev:all
|
|
335
346
|
pnpm build:all
|
|
336
347
|
```
|
|
337
348
|
|
|
338
|
-
|
|
349
|
+
`pnpm dev:all` is the supported development entry point for the desktop app. It keeps development ports, data, process ownership, app identity, MCP sockets, and Remote Access state separate from the installed production runtime; a debug app started without that isolation refuses to run. See this repository's [AGENTS.md](AGENTS.md) and [CONTRIBUTING.md](CONTRIBUTING.md), plus the in-tree [app/AGENTS.md](app/AGENTS.md), for the complete development workflow. Security reports: [SECURITY.md](SECURITY.md). Please also read the [Code of Conduct](CODE_OF_CONDUCT.md).
|
|
339
350
|
|
|
340
351
|
---
|
|
341
352
|
|