@hiai-gg/docsmint 0.8.1 → 0.8.3

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 (95) hide show
  1. package/README.md +84 -199
  2. package/dist/backend/index.js +718 -269
  3. package/dist/backend-account-runtime-cleanup.js +2 -0
  4. package/dist/backend-api-key-facade.js +2 -0
  5. package/dist/backend-pipeline-cancellation.js +2 -0
  6. package/dist/client.d.ts +2 -1
  7. package/dist/client.js +10 -0
  8. package/dist/frontend/{CategoryDialog-D_xFSWGh.js → CategoryDialog-B6zqtwE6.js} +2 -2
  9. package/dist/frontend/{ConfirmDialog-Cfq3D2Di.js → ConfirmDialog-Dk7wwcj9.js} +1 -1
  10. package/dist/frontend/{CreateSnapshotDialog-BHODxZWK.js → CreateSnapshotDialog-BPYjO1qN.js} +2 -2
  11. package/dist/frontend/{DatePicker-CZyCnQ1q.js → DatePicker-SiGLx9yh.js} +46 -46
  12. package/dist/frontend/{DeleteDialog-DaJOO6SB.js → DeleteDialog-D1jox8h1.js} +2 -2
  13. package/dist/frontend/{FolderNode-C_91NlEO.js → FolderNode-BG4l6I5C.js} +100 -99
  14. package/dist/frontend/{HiAiEditor-DtUGbQg6.js → HiAiEditor-Dxqt8BUN.js} +979 -1010
  15. package/dist/frontend/{SettingsDialog-BlIZqk2-.js → SettingsDialog-DnrPV8dM.js} +7 -7
  16. package/dist/frontend/Sidebar-BI_ccYTl.js +2149 -0
  17. package/dist/frontend/{TagCreateDialog-BlGz4O9Z.js → TagCreateDialog-C5j3H49u.js} +2 -2
  18. package/dist/frontend/api/settings.js +1 -1
  19. package/dist/frontend/app-shell.js +3 -3
  20. package/dist/frontend/{auth-client-DCMne8vd.js → auth-client-Dc0mkuZH.js} +10 -10
  21. package/dist/frontend/components/category-dialog.js +1 -1
  22. package/dist/frontend/components/create-snapshot-dialog.js +1 -1
  23. package/dist/frontend/components/delete-dialog.js +1 -1
  24. package/dist/frontend/components/editor/compact-editor.js +1 -1
  25. package/dist/frontend/components/editor/document-editor.js +1 -1
  26. package/dist/frontend/components/editor/extensions.js +1 -1
  27. package/dist/frontend/components/editor/markdown-toggle.js +1 -1
  28. package/dist/frontend/components/editor/markdown.js +1 -1
  29. package/dist/frontend/components/folder-node.js +1 -1
  30. package/dist/frontend/components/save-as-dialog.js +2 -2
  31. package/dist/frontend/components/settings.js +1 -1
  32. package/dist/frontend/components/sidebar.js +1 -1
  33. package/dist/frontend/components/tag-create-dialog.js +1 -1
  34. package/dist/frontend/components/version-history.js +3 -3
  35. package/dist/frontend/dashboard.js +1034 -1034
  36. package/dist/frontend/{db-CbFRFAm2.js → db-DUOtrCBC.js} +1 -1
  37. package/dist/frontend/{dialog-tHAH3-9M.js → dialog-DC97Hnxo.js} +1 -1
  38. package/dist/frontend/dist-BLpDfrDC.js +316 -0
  39. package/dist/frontend/dist-D7zL6zdU.js +40 -0
  40. package/dist/frontend/{dist-Cg1BpNS7.js → dist-qd_OnyUC.js} +492 -516
  41. package/dist/frontend/dropdown-menu-COZwS7c0.js +493 -0
  42. package/dist/frontend/editorExtensions-Cu__YKW7.js +158 -0
  43. package/dist/frontend/ellipsis-vertical-CObXWXZW.js +41 -0
  44. package/dist/frontend/frontend.css +1 -1
  45. package/dist/frontend/{identity-O4lAuchv.js → identity-D_rjww-V.js} +1 -1
  46. package/dist/frontend/{editorExtensions-B-mKiWqq.js → lib-DYgslUw1.js} +6782 -6935
  47. package/dist/frontend/loader-circle-DnyUzAmN.js +25 -0
  48. package/dist/frontend/{markdown-CMij27Gg.js → markdown-Co8ZAKf4.js} +2 -1
  49. package/dist/frontend/offline/identity.js +1 -1
  50. package/dist/frontend/search.js +2 -2
  51. package/dist/frontend/{settings-DJW8JkdF.js → settings-CW_SR-EH.js} +1 -1
  52. package/dist/frontend/{confirm-dialog-BFTxjLv-.js → share-context-DooXPYKd.js} +2 -3
  53. package/dist/frontend/theme.js +1 -1
  54. package/dist/frontend/{theme.svelte-Bzitjfh9.js → theme.svelte-gLPpG6eU.js} +1 -0
  55. package/dist/frontend-ssr/api/settings.js +1 -1
  56. package/dist/frontend-ssr/app-shell.js +3 -3
  57. package/dist/frontend-ssr/assets/{FolderNode-CClgk8BL.js → FolderNode-CscMQ9sf.js} +2 -1
  58. package/dist/frontend-ssr/assets/{HiAiEditor-_-m7MJDd.js → HiAiEditor-D-FYXUht.js} +6 -52
  59. package/dist/frontend-ssr/assets/{SettingsDialog-BdvHRAxF.js → SettingsDialog-BaI2MU5d.js} +5 -5
  60. package/dist/frontend-ssr/assets/{Sidebar-B3Saqn0O.js → Sidebar-BpTS2uCa.js} +7 -5
  61. package/dist/frontend-ssr/assets/{auth-client-DzkZlSQ8.js → auth-client-Bo5Fg-sb.js} +13 -13
  62. package/dist/frontend-ssr/assets/{db-CUkQe9AU.js → db-DUKz2X3Z.js} +1 -1
  63. package/dist/frontend-ssr/assets/dist-CshZmNmp.js +50 -0
  64. package/dist/frontend-ssr/assets/dist-DqeAICTy.js +300 -0
  65. package/dist/frontend-ssr/assets/{dropdown-menu-CdEpn_LT.js → dropdown-menu--acO7nXs.js} +1 -94
  66. package/dist/frontend-ssr/assets/ellipsis-vertical-BErUuhWg.js +96 -0
  67. package/dist/frontend-ssr/assets/{identity-veXobEfE.js → identity-_M3U9lqe.js} +1 -1
  68. package/dist/frontend-ssr/assets/{markdown-MhPwNWrC.js → markdown-Co31-Tl2.js} +1 -1
  69. package/dist/frontend-ssr/assets/{settings-DwAcLGM1.js → settings-DaOQ4Gv2.js} +1 -1
  70. package/dist/frontend-ssr/assets/{confirm-dialog-DeOR0SnQ.js → share-context-BvXQrIIH.js} +0 -1
  71. package/dist/frontend-ssr/assets/{theme.svelte-shZrSxz8.js → theme.svelte-CGgnJc3k.js} +1 -0
  72. package/dist/frontend-ssr/components/editor/compact-editor.js +1 -1
  73. package/dist/frontend-ssr/components/editor/document-editor.js +1 -1
  74. package/dist/frontend-ssr/components/editor/extensions.js +1 -1
  75. package/dist/frontend-ssr/components/editor/markdown-toggle.js +1 -1
  76. package/dist/frontend-ssr/components/editor/markdown.js +1 -1
  77. package/dist/frontend-ssr/components/folder-node.js +1 -1
  78. package/dist/frontend-ssr/components/settings.js +1 -1
  79. package/dist/frontend-ssr/components/sidebar.js +1 -1
  80. package/dist/frontend-ssr/dashboard.js +6 -4
  81. package/dist/frontend-ssr/offline/identity.js +1 -1
  82. package/dist/frontend-ssr/search.js +1 -1
  83. package/dist/frontend-ssr/theme.js +1 -1
  84. package/dist/lifecycle-runtime.js +2 -0
  85. package/dist/mcp-cli.js +7 -1
  86. package/dist/mcp-server.js +7 -1
  87. package/dist/types.d.ts +12 -0
  88. package/package.json +1 -1
  89. package/packages/cli/src/index.ts +1 -1
  90. package/packages/db/src/schema.ts +2 -0
  91. package/server.json +2 -2
  92. package/dist/frontend/Sidebar-BVGm5BRR.js +0 -2147
  93. package/dist/frontend/dropdown-menu-AJYeFPHu.js +0 -530
  94. package/dist/frontend-ssr/assets/{DatePicker-TZVeMZ2S.js → DatePicker-CCylVH0q.js} +12 -12
  95. package/dist/frontend-ssr/assets/{editorExtensions-qNlZVP98.js → editorExtensions-rhletNji.js} +1 -1
package/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  # DocsMint
2
2
 
3
- **A self-hosted AI-native knowledge workspace and installable PWA for people,
4
- applications, and AI agents.**
3
+ **Turn your documents into knowledge you and your AI agents can use.**
5
4
 
6
- DocsMint stores documents in a structured JSON editor model first. Markdown is
7
- the convenient second format for editing, importing, and exporting content.
8
- Automatic chunking, 1024-dimensional embeddings, multilingual hybrid search,
9
- GraphRAG, and cross-encoder rerank make the same knowledge base useful to
10
- people, applications, and agents through the web application, REST API,
11
- TypeScript SDK, CLI, and MCP server.
5
+ Write and organize notes, guides, and project documentation in one workspace.
6
+ Find answers with search that understands related concepts, then give your
7
+ agents access to the same documents through MCP, REST, the SDK, or CLI.
8
+
9
+ **[Try managed DocsMint](https://docsmint.com)** to get started without
10
+ operating the stack, or **[self-host with Docker](#quickstart)** to run the
11
+ Apache-2.0 application on your own infrastructure.
12
12
 
13
13
  [![Apache-2.0 License](https://img.shields.io/badge/License-Apache--2.0-green.svg)](LICENSE)
14
14
  [![Release](https://img.shields.io/github/v/release/hiai-gg/docsmint?sort=semver)](https://github.com/hiai-gg/docsmint/releases)
@@ -16,7 +16,7 @@ TypeScript SDK, CLI, and MCP server.
16
16
  [![Docker Pulls](https://img.shields.io/docker/pulls/vgalibov/docsmint?logo=docker)](https://hub.docker.com/r/vgalibov/docsmint)
17
17
  [![Stars](https://img.shields.io/github/stars/hiai-gg/docsmint)](https://github.com/hiai-gg/docsmint/stargazers)
18
18
  [![CI](https://github.com/hiai-gg/docsmint/actions/workflows/ci.yml/badge.svg)](https://github.com/hiai-gg/docsmint/actions/workflows/ci.yml)
19
- [![Bun](https://img.shields.io/badge/Runtime-Bun_1.3-black?logo=bun&logoColor=white)](https://bun.sh)
19
+ [![Bun](https://img.shields.io/badge/Runtime-Bun_1.4-black?logo=bun&logoColor=white)](https://bun.sh)
20
20
  [![TypeScript](https://img.shields.io/badge/TypeScript-6.x-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org)
21
21
  [![Svelte](https://img.shields.io/badge/Svelte-5.x-FF3E00?logo=svelte&logoColor=white)](https://svelte.dev)
22
22
  [![Elysia](https://img.shields.io/badge/Elysia-1.4-lightgrey?logo=elysia&logoColor=white)](https://elysiajs.com)
@@ -34,106 +34,47 @@ TypeScript SDK, CLI, and MCP server.
34
34
 
35
35
  ## Why DocsMint?
36
36
 
37
- - **Write naturally** in a rich visual editor or raw Markdown.
38
- - **Find meaning, not only keywords** with exact, lexical, fuzzy, vector,
39
- multilingual expansion, and graph retrieval fused through RRF, then
40
- reranked with a cross-encoder (Voyage rerank-2.5 in the reference profile).
41
- - **Keep retrieval current** with automatic, incremental chunking and
42
- re-embedding after document or metadata changes.
43
- - **Connect agents directly** through REST, a typed SDK, CLI, or MCP.
44
- - **Control access** with global keys or category-scoped `read`, `edit`, and
45
- `write` permissions.
46
- - **Own the full stack**: application data, vectors, graph, queue, and files run
47
- on infrastructure you control.
48
-
49
- ## What's new in 0.8.1?
50
-
51
- - **GraphRAG expansion is connection-safe.** AGE reads pin `ag_catalog` on the
52
- same pooled connection as `cypher()`, so scoped search keeps graph neighbors
53
- even when the connection did not already have AGE first in `search_path`.
54
-
55
- ## What's new in 0.7.9?
56
-
57
- - **GraphRAG on category/share search keeps inherited-folder neighbors.** The
58
- allowed document list is the ACL; category is not applied a second time.
59
-
60
- ## What's new in 0.7.8?
61
-
62
- - **GraphRAG still contributes after rerank.** Neighbors already in the fused
63
- prefix keep the graph channel, so scoped search does not lose graph evidence.
64
- - **Public API identity is DocsMint.** Health reports `service: "docsmint"`;
65
- startup and SDK errors no longer say `hiai-docs`.
66
-
67
- ## What's new in 0.7.7?
68
-
69
- - **Cross-encoder rerank is on by default.** After RRF, search reranks the
70
- original query against the fused prefix with Voyage `rerank-2.5` (Cohere
71
- and NVIDIA fallbacks). Provider failures keep RRF order. Set
72
- `SEARCH_RERANK_ENABLED=false` to turn it off.
73
- - **Live retrieval improved first-hit ranking.** On a 24-document labeled
74
- corpus, RRF+rerank moved MRR 0.969 → 1.000 and nDCG@10 0.958 → 0.986.
75
- Recall@10 stayed 1.0. The paraphrase query “operator API key header”
76
- moved the API-key document from rank 2 to rank 1 (MRR 0.50 → 1.00).
77
- - **Three-model fallbacks** for embeddings, extraction, expansion, and
78
- rerank so a single provider outage does not drop the channel.
79
-
80
- ## What's new in 0.7.6?
81
-
82
- - **Better Auth 1.6 rollback remains possible** after the issuer migration by
83
- deriving the legacy account issuer in a database trigger.
84
-
85
- ## What's new in 0.7.5?
86
-
87
- - **Runtime and dependency graph** to Bun 1.4, TypeScript 6, Better Auth 1.7,
88
- and current compatible editor/queue packages, with fail-closed issuer
89
- identity.
90
-
91
- ## What's new in 0.7.4?
92
-
93
- - **MCP Registry description fits the 100-character limit**, so official
94
- catalog publication can complete after 0.7.3 reached npm.
95
-
96
- ## What's new in 0.7.3?
97
-
98
- - **One public-link share dialog in OSS.** Dashboard, sidebar (including Recent),
99
- and the editor open the same public token share. Hosts can opt into restricted
100
- admission from `DocsmintAppShellHost`.
101
- - **Dialogs stay in their overlays** after hiai-ui 0.1, and nested routes load
102
- CSS from `/_app` instead of `./_app`.
103
- - **hiai-ui 0.1.3** for circular theme spread; Inter remains the product UI
104
- typeface.
105
-
106
- ## What's new in 0.7.2?
107
-
108
- - **Share view matches the editor.** Twitter/Twemoji SVG emoji images no longer
109
- expand across the public share column; they render as ordinary glyphs.
110
- - **Inter in the workspace chrome.** The sidebar uses the same Inter UI typeface
111
- as docsmint.com instead of the operating-system sans stack.
112
- - **MCP catalog 0.7.2.** Registry, LobeHub, and runtime metadata ship the dark
113
- catalog logo and the current product-aligned description.
114
-
115
- ## What's new in 0.7.0?
116
-
117
- - **Signed workspace assertions.** Trusted server-to-server hosts can restrict
118
- an assertion to one category with independent `read`, `edit`, and `write`
119
- permissions. An omitted scope remains workspace-wide and role-derived.
120
- - **Consistent effective-category authorization.** Direct and folder-inherited
121
- categories are enforced before counts, pagination, indexing, search, and
122
- GraphRAG retrieval. Index status is read-only; refresh requires write.
123
- - **Release-safe indexing.** Context-aware embedding generations and recovery
124
- prevent stale metadata work from becoming active.
125
-
126
- This OSS release adds no host RBAC, billing, invitations, or product UI. The
127
- 0.6.x reliability work — workspace-safe reindex, HTTPS sessions, trash-aware
128
- retrieval, explicit GraphRAG providers, MCP Registry identity, and the
129
- installable PWA — ships in this line. See the [changelog](CHANGELOG.md) for
130
- the complete history and the [roadmap](docs/ROADMAP.md) for what comes next.
131
-
132
- ## Fastest installation: give this prompt to your agent
133
-
134
- If you are installing DocsMint through an AI coding agent, use this path first.
135
- It keeps the setup to Docker plus one provider choice and avoids unnecessary
136
- source-code changes.
37
+ - **Keep knowledge easy to edit.** Use a rich visual editor or Markdown;
38
+ organize documents with folders, categories, and tags.
39
+ - **Find the document you mean.** Search combines keywords, meaning, typo
40
+ tolerance, and graph relationships across languages.
41
+ - **Keep agents close to the source.** Let your tools search, read, and update
42
+ the same knowledge through MCP, REST, a typed SDK, and CLI.
43
+ - **Choose what an integration can access.** Category keys grant explicit
44
+ `read`, `edit`, and `write` permissions for a defined part of your library.
45
+ - **Keep retrieval up to date.** Document edits and metadata changes refresh
46
+ the search index automatically in the background.
47
+ - **Choose how you run it.** Use [managed DocsMint](https://docsmint.com) or
48
+ self-host the application, database, search, queues, and files.
49
+
50
+ ## What's new in 0.8.3?
51
+
52
+ This maintenance release focuses on reliable saves and integrations:
53
+
54
+ - Pending editor saves stay attached to the document being edited, even when
55
+ you switch documents.
56
+ - Navigation waits for pending content saves; overlapping saves are serialized
57
+ so an older request cannot overwrite a newer edit.
58
+ - SDK document creation retries reuse an idempotency key to prevent duplicates
59
+ after a lost response.
60
+ - Workspace-wide tag management requires full write access; read-only and
61
+ category-scoped credentials can no longer mutate the entire tag collection.
62
+ - Partial category API-setting updates preserve omitted permissions.
63
+ - Public workspace share links retain their workspace context when loading
64
+ folders and documents.
65
+
66
+ No schema migration is added. Existing public request and response shapes
67
+ remain supported; the tag authorization fix intentionally rejects operations
68
+ that exceeded the caller's permissions.
69
+
70
+ Read the complete release history in the [changelog](CHANGELOG.md) or
71
+ [GitHub Releases](https://github.com/HiAi-gg/docsmint/releases). See the
72
+ [roadmap](docs/ROADMAP.md) for what comes next.
73
+
74
+ ## Install with an AI agent
75
+
76
+ Prefer an assisted self-hosted setup? Give your coding agent this prompt.
77
+ You will need Docker and a choice of AI provider.
137
78
 
138
79
  ```text
139
80
  Install DocsMint from https://github.com/HiAi-gg/docsmint.
@@ -180,8 +121,8 @@ docker pull vgalibov/docsmint:web-latest
180
121
  docker pull vgalibov/docsmint:caddy-latest
181
122
  ```
182
123
 
183
- Use versioned tags such as `api-v0.8.1` for reproducible deploys. The
184
- quickstart still builds the Compose stack from this repository so PostgreSQL,
124
+ Use versioned tags `api-v0.8.3`, `web-v0.8.3`, and `caddy-v0.8.3` for
125
+ reproducible deploys. The quickstart still builds the Compose stack from this repository so PostgreSQL,
185
126
  Redis, and SeaweedFS start together with the application.
186
127
 
187
128
  For OpenRouter, add one value to `.env` and run the script again:
@@ -241,7 +182,7 @@ The published package includes the CLI. It connects to an already running
241
182
  DocsMint server; installing it does not deploy the server.
242
183
 
243
184
  ```bash
244
- npm install @hiai-gg/docsmint
185
+ bun add @hiai-gg/docsmint
245
186
  ```
246
187
 
247
188
  ```bash
@@ -262,10 +203,24 @@ command and configuration precedence.
262
203
 
263
204
  ## Connect an MCP client
264
205
 
265
- DocsMint exposes document search, reading, creation, updates, categories,
266
- folders, tags, GraphRAG traversal, index status and refresh, snapshots,
267
- history, and export as MCP tools. It also publishes reusable prompts,
268
- context resources, and a document-manager skill for agent clients.
206
+ Give agents a secure path to search, read, and maintain your knowledge without
207
+ database or filesystem access. DocsMint publishes 17 tools plus ready-made
208
+ research prompts, scoped resources, and a document-manager skill.
209
+
210
+ ### Hosted DocsMint
211
+
212
+ Connect directly to the managed Streamable HTTP endpoint. Keep the API key in
213
+ an environment variable rather than writing it into client configuration:
214
+
215
+ ```bash
216
+ codex mcp add docsmint \
217
+ --url https://docsmint.com/mcp \
218
+ --bearer-token-env-var HIAI_DOCS_API_KEY
219
+ ```
220
+
221
+ ### Self-hosted DocsMint
222
+
223
+ Run the published stdio bridge against your own DocsMint API:
269
224
 
270
225
  ```json
271
226
  {
@@ -282,70 +237,10 @@ context resources, and a document-manager skill for agent clients.
282
237
  }
283
238
  ```
284
239
 
285
- Run the server directly to verify the installation:
286
-
287
- ```bash
288
- npx -y @hiai-gg/docsmint docsmint-mcp
289
- ```
290
-
291
- `npx` is the install path LobeHub and Node MCP clients validate. Bun checkouts can use
292
- `bunx --package @hiai-gg/docsmint docsmint-mcp` instead. The process speaks MCP on
293
- stdio and advertises tools, prompts, and resources without a running DocsMint API.
294
-
295
- The server uses stdio and works with MCP-capable clients such as Claude
296
- Desktop, Cursor, and coding agents that accept standard MCP configuration. See
297
- the [MCP guide](packages/mcp-server/README.md) for its 17 tools, prompts,
298
- resources, skill, and API routes.
299
-
300
- ## MCP Features
301
-
302
- ### Tools (17)
303
-
304
- - `search_documents`: Hybrid search (full-text + semantic pgvector).
305
- - `get_document`: Fetch document content and metadata.
306
- - `create_document`: Create a document with optional markdown, folder, and category.
307
- - `update_document`: Update title, content, folder, or category (new version on each save).
308
- - `list_documents`: Paginated document list, optionally filtered by folder or tag.
309
- - `list_folders`: List folders, optionally under a parent.
310
- - `create_folder`: Create a folder, optionally nested.
311
- - `create_snapshot`: Create a named snapshot of the current document.
312
- - `get_version_history`: List versions, optionally snapshots only.
313
- - `export_document`: Export a document as Markdown.
314
- - `list_categories`: List categories visible to the API key.
315
- - `create_category`: Create a category (workspace key with write access).
316
- - `list_tags`: List tags in the workspace or bound category.
317
- - `get_related_documents`: Traverse the knowledge graph from one authorized document.
318
- - `search_knowledge_graph`: Search connected knowledge from authorized seed documents.
319
- - `get_document_index_status`: Read indexing and knowledge-pipeline status.
320
- - `refresh_document_index`: Request reindexing after a document or metadata change.
321
-
322
- ### Prompts (2)
323
-
324
- - `organize_workspace`: Plan safe document organization using DocsMint categories and folders.
325
- - `research_workspace`: Research a question with hybrid search, GraphRAG, and rerank citing document IDs.
326
-
327
- ### Resources (3)
328
-
329
- - `docsmint://guide/editor`: Editor usage guide.
330
- - `docsmint://guide/search`: Search, GraphRAG, and rerank guide.
331
- - `docsmint://workspace/catalog`: Live scoped workspace catalog.
332
-
333
- ### Skills (1)
334
-
335
- - [`docsmint-document-manager`](skills/docsmint-document-manager/SKILL.md):
336
- create, organize, edit, and research DocsMint documents through the 17 MCP
337
- tools, including hybrid search, GraphRAG, rerank, and index refresh.
338
-
339
- The same Skill ships in the npm package under `skills/docsmint-document-manager/SKILL.md`.
340
-
341
- ## Agent skills after installation
342
-
343
- The MCP tools are the recommended portable agent skills. A category-bound agent
344
- can receive only the knowledge and operations it needs; a trusted personal
345
- agent can use a global key. Agents do not need database or filesystem access.
346
- After startup, create an API key in **Settings → API** and add the MCP block
347
- above to the agent client. For custom agent workflows, use the same key through
348
- the CLI, SDK, or REST API.
240
+ Category keys let you expose only the documents and operations an agent needs.
241
+ Use a global key only for trusted owner-wide automation. See the
242
+ [complete MCP reference](packages/mcp-server/README.md) for Bun, npm, local
243
+ checkout, all tools, prompts, resources, permissions, and REST mappings.
349
244
 
350
245
  ## TypeScript SDK
351
246
 
@@ -370,7 +265,8 @@ const results = await docs.search('what did we decide?');
370
265
  console.log(created.id, results.items);
371
266
  ```
372
267
 
373
- The SDK is a typed `fetch` client with retries for transient failures. See the
268
+ The SDK is a typed `fetch` client with retries for transient failures and
269
+ idempotent document creation retries. See the
374
270
  [SDK reference](packages/sdk/README.md) and [REST API](docs/API.md).
375
271
 
376
272
  ## API keys and integrations
@@ -397,6 +293,10 @@ affected by browser CORS. Browser integrations must add their exact origin to
397
293
 
398
294
  ## What is included?
399
295
 
296
+ Documents use structured TipTap JSON as canonical content. Markdown is the
297
+ source-editing, import, and export format. The same document store serves the
298
+ web application and public integration interfaces.
299
+
400
300
  ```text
401
301
  frontend/ SvelteKit workspace and TipTap editor
402
302
  backend/ Elysia REST API, search, workers, and authentication
@@ -442,7 +342,7 @@ For pipeline internals and tuning, see [Architecture](docs/ARCHITECTURE.md) and
442
342
 
443
343
  ## Stack
444
344
 
445
- - Bun, TypeScript, Elysia, Zod, and Pino
345
+ - Bun 1.4.0+, TypeScript, Elysia, Zod, and Pino
446
346
  - Svelte 5, SvelteKit, Tailwind CSS, and TipTap
447
347
  - Better Auth and Drizzle ORM
448
348
  - PostgreSQL 18, pgvector, pgvectorscale, and Apache AGE
@@ -450,23 +350,6 @@ For pipeline internals and tuning, see [Architecture](docs/ARCHITECTURE.md) and
450
350
  - SeaweedFS with its S3-compatible API
451
351
  - OpenAI-compatible providers through OpenRouter or local Ollama
452
352
 
453
- ## Comparison
454
-
455
- DocsMint overlaps with several excellent open-source knowledge tools, but its
456
- focus is a compact knowledge runtime shared equally by humans and agents.
457
-
458
- | Project | Primary strength | Difference from DocsMint |
459
- | ------------------------------------------------------------ | -------------------------------------------- | -------------------------------------------------------------------------------------- |
460
- | [Outline](https://github.com/outline/outline) | Polished team wiki and collaboration | DocsMint emphasizes built-in retrieval, GraphRAG, scoped agent access, CLI, and MCP |
461
- | [Docmost](https://github.com/docmost/docmost) | Collaborative wiki and real-time editing | DocsMint centers automatic embeddings and agent-facing integration surfaces |
462
- | [AppFlowy](https://github.com/AppFlowy-IO/AppFlowy) | Broad local-first productivity workspace | DocsMint is narrower: a self-hosted document and retrieval service |
463
- | [AnythingLLM](https://github.com/Mintplex-Labs/anything-llm) | Chat-oriented RAG over imported sources | DocsMint starts with the editable knowledge base and exposes it to many clients |
464
- | [Danswer](https://github.com/danswer-ai/danswer) / Onyx | Enterprise search across external connectors | DocsMint owns and edits its native corpus rather than primarily indexing other systems |
465
-
466
- This is a product-positioning summary, not a claim that every listed project
467
- lacks a feature. Check each project's current documentation when choosing a
468
- deployment.
469
-
470
353
  ## Documentation
471
354
 
472
355
  - [Documentation index](docs/README.md)
@@ -482,6 +365,8 @@ deployment.
482
365
 
483
366
  ## Development
484
367
 
368
+ Use Bun 1.4.0 or later for local development.
369
+
485
370
  ```bash
486
371
  bun install
487
372
  bun run lint