living-documentation 8.11.0 → 8.13.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 CHANGED
@@ -13,7 +13,7 @@ npx living-documentation # interactive wizard (EN/FR)
13
13
  npx living-documentation ./docs # serve an existing folder
14
14
  ```
15
15
 
16
- ![Living Documentation viewer](./images/living_documentation.png)
16
+ ![Living Documentation viewer](./images/living_documentation.jpg)
17
17
 
18
18
  ---
19
19
 
@@ -23,15 +23,15 @@ npx living-documentation ./docs # serve an existing folder
23
23
 
24
24
  Living Documentation ships an **MCP server** on `POST /mcp`. Any MCP-aware agent can read, create and audit your project's documentation autonomously.
25
25
 
26
- | You say… | The agent triggers… | What happens |
27
- | --------------------------------------------------------- | ---------------------------------- | ----------------------------------------------------------------------------------------------------- |
28
- | *"feature done"* / *"feature terminée"* | `create-adr` | Searches existing ADRs, supersedes the obsolete one if any, writes a new ADR at `To be validated`, binds the source files via metadata. |
29
- | *"audit the ADRs"* / *"vérifie la fiabilité des ADR"* | `audit-adrs-drift` | Lists every ADR below 80% reliability and brings each back in sync — re-baseline or supersede after your confirmation. |
30
- | *"review this ADR"* / *"vérifie la pertinence de cet ADR"* | `review-adr-relevance` | Reviews a single ADR against the bound source files; refreshes hashes or proposes supersession. |
31
- | *"backfill ADRs from git"* / *"retrodocumente depuis git"* | `retrodocument-adrs-from-git` | Walks git history oldest-first and creates ADRs for the durable decisions that were never documented. |
32
- | *"give me the big picture"* | `generate-context-diagram` | Creates a C4 context diagram **derived from the docs**, never invented. |
26
+ | You say… | The agent triggers… | What happens |
27
+ | ---------------------------------------------------------- | ----------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
28
+ | _"feature done"_ / _"feature terminée"_ | `create-adr` | Searches existing ADRs, supersedes the obsolete one if any, writes a new ADR at `To be validated`, binds the source files via metadata. |
29
+ | _"audit the ADRs"_ / _"vérifie la fiabilité des ADR"_ | `audit-adrs-drift` | Lists every ADR below 80% reliability and brings each back in sync — re-baseline or supersede after your confirmation. |
30
+ | _"review this ADR"_ / _"vérifie la pertinence de cet ADR"_ | `review-adr-relevance` | Reviews a single ADR against the bound source files; refreshes hashes or proposes supersession. |
31
+ | _"backfill ADRs from git"_ / _"retrodocumente depuis git"_ | `retrodocument-adrs-from-git` | Walks git history oldest-first and creates ADRs for the durable decisions that were never documented. |
32
+ | _"give me the big picture"_ | `generate-context-diagram` | Creates a C4 context diagram **derived from the docs**, never invented. |
33
33
 
34
- **All new ADRs land at `To be validated`.** *You* promote them. The agent never promotes on your behalf.
34
+ **All new ADRs land at `To be validated`.** _You_ promote them. The agent never promotes on your behalf.
35
35
 
36
36
  ### 2. Solo, no AI
37
37
 
@@ -80,7 +80,10 @@ Or manually in `.claude/settings.json`:
80
80
  ```json
81
81
  {
82
82
  "mcpServers": {
83
- "living-documentation": { "type": "http", "url": "http://localhost:4321/mcp" }
83
+ "living-documentation": {
84
+ "type": "http",
85
+ "url": "http://localhost:4321/mcp"
86
+ }
84
87
  }
85
88
  }
86
89
  ```
@@ -92,7 +95,10 @@ In `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS), th
92
95
  ```json
93
96
  {
94
97
  "mcpServers": {
95
- "living-documentation": { "type": "http", "url": "http://localhost:4321/mcp" }
98
+ "living-documentation": {
99
+ "type": "http",
100
+ "url": "http://localhost:4321/mcp"
101
+ }
96
102
  }
97
103
  }
98
104
  ```
@@ -121,42 +127,42 @@ Use the same HTTP endpoint: `http://localhost:4321/mcp` (Streamable HTTP transpo
121
127
 
122
128
  ### Tools (19)
123
129
 
124
- | Group | Tool | Description |
125
- | -------------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------- |
126
- | Onboarding | `get_server_guide` | Returns the server guide: workflow, conventions, diagram rules. |
127
- | Documents | `list_documents` | Inventory: `id`, `title`, `category`, `folder`, `linkHref`. |
128
- | | `read_document` | Raw Markdown content of a document. |
129
- | | `create_document` | Create a new `.md` file (filename from configured pattern, optional `date` override for retrodoc). |
130
- | | `update_document` | Overwrite an existing doc (drift correction, supersede). |
131
- | Diagrams | `list_diagrams` | List saved diagrams. |
132
- | | `read_diagram` | Read nodes + edges of one diagram. |
133
- | | `create_diagram` | Create / overwrite a diagram (server-side guardrails enforce C4 progression and edge labels). |
134
- | Source code (fallback) | `list_source_files` | List files under `sourceRoot` (ignored: `node_modules`, `dist`, `.git`…). |
135
- | | `read_source_file` | Read a file under `sourceRoot`. |
136
- | | `search_source` | Grep-like text search under `sourceRoot`. |
137
- | Metadata | `list_metadata` | Source-file bindings of a doc. |
138
- | | `get_accuracy` | Per-entry status (`unchanged` / `modified` / `missing`) + weighted accuracy ∈ [0, 1]. |
139
- | | `add_metadata` | Bind a source file (path under `sourceRoot`), records SHA-256. **Skips god files.** |
140
- | | `remove_metadata` | Detach a binding (idempotent — for renames/deletes). |
141
- | | `refresh_metadata` | Re-hash every binding (re-baseline after an update). |
142
- | ADR audit | `list_adrs_below_accuracy` | Up to 10 ADRs whose accuracy < 80%, sorted most-degraded first. Excludes `SuperSeeded` and non-ADRs. |
143
- | | `review_adr_relevance` | Factual report on one ADR + drifted files to re-read. Returns a `state` to drive the LLM decision tree. |
144
- | Retrodocumentation | `retrodocument_adrs_from_git` | Up to 200 git commits (oldest first) classified `candidate` / `trivial` / `merge`, with god-file flags. Used to backfill missing ADRs. |
130
+ | Group | Tool | Description |
131
+ | ---------------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
132
+ | Onboarding | `get_server_guide` | Returns the server guide: workflow, conventions, diagram rules. |
133
+ | Documents | `list_documents` | Inventory: `id`, `title`, `category`, `folder`, `linkHref`. |
134
+ | | `read_document` | Raw Markdown content of a document. |
135
+ | | `create_document` | Create a new `.md` file (filename from configured pattern, optional `date` override for retrodoc). |
136
+ | | `update_document` | Overwrite an existing doc (drift correction, supersede). |
137
+ | Diagrams | `list_diagrams` | List saved diagrams. |
138
+ | | `read_diagram` | Read nodes + edges of one diagram. |
139
+ | | `create_diagram` | Create / overwrite a diagram (server-side guardrails enforce C4 progression and edge labels). |
140
+ | Source code (fallback) | `list_source_files` | List files under `sourceRoot` (ignored: `node_modules`, `dist`, `.git`…). |
141
+ | | `read_source_file` | Read a file under `sourceRoot`. |
142
+ | | `search_source` | Grep-like text search under `sourceRoot`. |
143
+ | Metadata | `list_metadata` | Source-file bindings of a doc. |
144
+ | | `get_accuracy` | Per-entry status (`unchanged` / `modified` / `missing`) + weighted accuracy ∈ [0, 1]. |
145
+ | | `add_metadata` | Bind a source file (path under `sourceRoot`), records SHA-256. **Skips god files.** |
146
+ | | `remove_metadata` | Detach a binding (idempotent — for renames/deletes). |
147
+ | | `refresh_metadata` | Re-hash every binding (re-baseline after an update). |
148
+ | ADR audit | `list_adrs_below_accuracy` | Up to 10 ADRs whose accuracy < 80%, sorted most-degraded first. Excludes `SuperSeeded` and non-ADRs. |
149
+ | | `review_adr_relevance` | Factual report on one ADR + drifted files to re-read. Returns a `state` to drive the LLM decision tree. |
150
+ | Retrodocumentation | `retrodocument_adrs_from_git` | Up to 200 git commits (oldest first) classified `candidate` / `trivial` / `merge`, with god-file flags. Used to backfill missing ADRs. |
145
151
 
146
152
  ### Prompts (10)
147
153
 
148
- | Group | Prompt | When |
149
- | ----------- | ------------------------------- | ------------------------------------------------------------------------------------------------------ |
150
- | ADR lifecycle | `create-adr` | A feature has just been implemented or modified. Records the decision, supersedes a prior ADR if any. |
151
- | | `audit-adrs-drift` | Batch audit: bring every drifting ADR back to a clear state (re-baseline or user-confirmed supersession). |
152
- | | `review-adr-relevance` | Single ADR review against its bound source files. |
153
- | | `retrodocument-adrs-from-git` | Backfill ADRs from git history when the project lacks them. |
154
- | Diagrams | `generate-context-diagram` | DEFAULT. C4 context diagram, gated server-side. |
155
- | | `generate-container-diagram` | Explicit-only. C4 container diagram of one system. |
156
- | | `generate-uml-diagram` | Explicit-only. UML class/sequence/state/activity/use-case. |
157
- | | `generate-screen-guide` | Explicit-only. Annotated screenshot with post-it callouts. |
158
- | | `update-diagram-from-docs` | Re-read source documents to update existing diagrams. |
159
- | | `flow`, `erd` | Linear flow / entity-relationship diagrams. |
154
+ | Group | Prompt | When |
155
+ | ------------- | ----------------------------- | --------------------------------------------------------------------------------------------------------- |
156
+ | ADR lifecycle | `create-adr` | A feature has just been implemented or modified. Records the decision, supersedes a prior ADR if any. |
157
+ | | `audit-adrs-drift` | Batch audit: bring every drifting ADR back to a clear state (re-baseline or user-confirmed supersession). |
158
+ | | `review-adr-relevance` | Single ADR review against its bound source files. |
159
+ | | `retrodocument-adrs-from-git` | Backfill ADRs from git history when the project lacks them. |
160
+ | Diagrams | `generate-context-diagram` | DEFAULT. C4 context diagram, gated server-side. |
161
+ | | `generate-container-diagram` | Explicit-only. C4 container diagram of one system. |
162
+ | | `generate-uml-diagram` | Explicit-only. UML class/sequence/state/activity/use-case. |
163
+ | | `generate-screen-guide` | Explicit-only. Annotated screenshot with post-it callouts. |
164
+ | | `update-diagram-from-docs` | Re-read source documents to update existing diagrams. |
165
+ | | `flow`, `erd` | Linear flow / entity-relationship diagrams. |
160
166
 
161
167
  A `GET http://localhost:4321/mcp` returns the live tool + prompt schemas for inspection.
162
168
 
@@ -176,7 +182,7 @@ A `GET http://localhost:4321/mcp` returns the live tool + prompt schemas for ins
176
182
 
177
183
  ![Sidebar grouped by folder → category](./images/readme-sidebar.png)
178
184
 
179
- ![Full-text search](./images/readme-intelligent-search-demo.png)
185
+ ![Full-text search](./images/readme-intelligent-search-demo.jpg)
180
186
 
181
187
  ---
182
188
 
@@ -230,12 +236,12 @@ Created automatically in your docs folder on first run. Edit in the Admin panel
230
236
  }
231
237
  ```
232
238
 
233
- | Field | Role |
234
- | ---------------------- | ------------------------------------------------------------------------------------------------------ |
235
- | `filenamePattern` | Filename convention used to parse date / category / title. `[Category]` token mandatory, exactly once. |
236
- | `extraFiles` | Ordered Markdown files **outside** the docs folder (e.g. `README.md`, `CLAUDE.md`). Shown in General first. |
237
- | `sourceRoot` | Where your code lives (relative to docs folder). Defaults to `..`. Used by MCP source + metadata tools. |
238
- | `blockedFileExtensions` | File-attachment safety list, editable from Admin. |
239
+ | Field | Role |
240
+ | ----------------------- | ----------------------------------------------------------------------------------------------------------- |
241
+ | `filenamePattern` | Filename convention used to parse date / category / title. `[Category]` token mandatory, exactly once. |
242
+ | `extraFiles` | Ordered Markdown files **outside** the docs folder (e.g. `README.md`, `CLAUDE.md`). Shown in General first. |
243
+ | `sourceRoot` | Where your code lives (relative to docs folder). Defaults to `..`. Used by MCP source + metadata tools. |
244
+ | `blockedFileExtensions` | File-attachment safety list, editable from Admin. |
239
245
 
240
246
  **All paths are relative POSIX** so `.living-doc.json` stays portable. Legacy absolute paths are silently migrated on first read.
241
247
 
@@ -245,26 +251,24 @@ Created automatically in your docs folder on first run. Edit in the Admin panel
245
251
 
246
252
  ## Export
247
253
 
248
- | Format | Endpoint | Notes |
249
- | ------------------------ | --------------------- | ------------------------------------------------------------------ |
250
- | PDF (per doc) | `POST /api/export/html` | Browser print dialog from the rendered HTML. |
251
- | HTML — Notion mode | `POST /api/export/html` | Single HTML bundle suitable for Notion import. |
252
- | HTML — Confluence mode | `POST /api/export/html` | Zipped HTML bundle suitable for Confluence import. |
253
- | Markdown bundle | `POST /api/export/markdown` | Zip of every document with normalized links. |
254
+ | Format | Endpoint | Notes |
255
+ | ---------------------- | --------------------------- | -------------------------------------------------- |
256
+ | PDF (per doc) | `POST /api/export/html` | Browser print dialog from the rendered HTML. |
257
+ | HTML — Notion mode | `POST /api/export/html` | Single HTML bundle suitable for Notion import. |
258
+ | HTML — Confluence mode | `POST /api/export/html` | Zipped HTML bundle suitable for Confluence import. |
259
+ | Markdown bundle | `POST /api/export/markdown` | Zip of every document with normalized links. |
254
260
 
255
261
  ---
256
262
 
257
263
  ## UI surfaces
258
264
 
259
- | URL | Page |
260
- | ---------------- | ---------------------------------------------------------------------------------------- |
261
- | `/` | Viewer — sidebar, document rendering, inline edit, snippets, search, attachments. |
262
- | `/admin` | Config — title, theme, filename pattern, extra files, source root, file safety list. |
263
- | `/diagram?id=` | Diagram editor (vis-network) with C4 conventions, ports, alignment guides, undo/redo. |
264
- | `/shape-editor` | Custom shape library editor — SVG icons, default colors, ports. |
265
- | `/context` | AI context page — instructions, rules, memory, **MCP explorer** (try tools live in-browser). |
266
-
267
- ![Code blocks](./images/readme-code-blocks.png)
265
+ | URL | Page |
266
+ | --------------- | -------------------------------------------------------------------------------------------- |
267
+ | `/` | Viewer — sidebar, document rendering, inline edit, snippets, search, attachments. |
268
+ | `/admin` | Config — title, theme, filename pattern, extra files, source root, file safety list. |
269
+ | `/diagram?id=` | Diagram editor (vis-network) with C4 conventions, ports, alignment guides, undo/redo. |
270
+ | `/shape-editor` | Custom shape library editor — SVG icons, default colors, ports. |
271
+ | `/context` | AI context page — instructions, rules, memory, **MCP explorer** (try tools live in-browser). |
268
272
 
269
273
  ---
270
274
 
@@ -273,42 +277,42 @@ Created automatically in your docs folder on first run. Edit in the Admin panel
273
277
  <details>
274
278
  <summary>Full HTTP API (click to expand)</summary>
275
279
 
276
- | Method | Endpoint | Description |
277
- | -------- | ------------------------------ | ------------------------------------------------------------------ |
278
- | `GET` | `/api/documents` | List documents with metadata (includes extra files). |
279
- | `GET` | `/api/documents/:id` | Document content + rendered HTML. |
280
- | `POST` | `/api/documents` | Create from `{ title, category, folder?, content?, date? }`. |
281
- | `PUT` | `/api/documents/:id` | Save content to disk. |
282
- | `DELETE` | `/api/documents/:id` | Delete a document. |
283
- | `GET` | `/api/documents/search?q=` | Full-text search. |
284
- | `GET` | `/api/config` | Read config. |
280
+ | Method | Endpoint | Description |
281
+ | -------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------ |
282
+ | `GET` | `/api/documents` | List documents with metadata (includes extra files). |
283
+ | `GET` | `/api/documents/:id` | Document content + rendered HTML. |
284
+ | `POST` | `/api/documents` | Create from `{ title, category, folder?, content?, date? }`. |
285
+ | `PUT` | `/api/documents/:id` | Save content to disk. |
286
+ | `DELETE` | `/api/documents/:id` | Delete a document. |
287
+ | `GET` | `/api/documents/search?q=` | Full-text search. |
288
+ | `GET` | `/api/config` | Read config. |
285
289
  | `PUT` | `/api/config` | Update config (`title`, `theme`, `filenamePattern`, `extraFiles`, `sourceRoot`, `blockedFileExtensions`, …). |
286
- | `GET` | `/api/browse?path=` | List directories and `.md` files at a path. |
287
- | `POST` | `/api/browse/mkdir` | Create a folder under the docs root. |
288
- | `POST` | `/api/images/upload` | Upload a base64 image → `<docs>/images/`. |
289
- | `POST` | `/api/files/upload` | Upload a base64 attachment → `<docs>/files/`. |
290
- | `GET` | `/api/files` | List every attachment (chronological). |
291
- | `PUT` | `/api/files/:filename` | Replace an attachment. |
292
- | `DELETE` | `/api/files/:filename` | Delete an attachment. |
293
- | `GET` | `/api/metadata/:docId` | Reliability report for one doc. |
294
- | `POST` | `/api/metadata/:docId` | Add or replace a binding. |
295
- | `DELETE` | `/api/metadata/:docId` | Remove a binding. |
296
- | `POST` | `/api/metadata/:docId/refresh` | Re-baseline hashes. |
297
- | `GET` | `/api/browse-source?path=` | Navigate the source tree rooted at `sourceRoot`. |
298
- | `GET` | `/api/diagrams` | List saved diagrams. |
299
- | `GET` | `/api/diagrams/:id` | Read a single diagram (nodes + edges). |
300
- | `PUT` | `/api/diagrams/:id` | Create or update a diagram. |
301
- | `DELETE` | `/api/diagrams/:id` | Delete a diagram. |
302
- | `GET` | `/api/shape-libraries` | List custom shape libraries. |
303
- | `PUT` | `/api/shape-libraries/:id` | Save a shape library. |
304
- | `GET` | `/api/annotations[/:docId]` | List annotations (all docs / one doc). |
305
- | `POST` | `/api/annotations/:docId` | Add an annotation. |
306
- | `DELETE` | `/api/annotations/:docId/:id` | Delete one annotation. |
307
- | `POST` | `/api/export/html` | HTML export — Notion / Confluence modes. |
308
- | `POST` | `/api/export/markdown` | Markdown bundle export. |
309
- | `GET` | `/api/wordcloud?path=&ext=` | Recursively concatenate matching source files as raw text. |
310
- | `POST` | `/mcp` | Model Context Protocol endpoint (Streamable HTTP). |
311
- | `GET` | `/mcp` | Live tool + prompt schema summary. |
290
+ | `GET` | `/api/browse?path=` | List directories and `.md` files at a path. |
291
+ | `POST` | `/api/browse/mkdir` | Create a folder under the docs root. |
292
+ | `POST` | `/api/images/upload` | Upload a base64 image → `<docs>/images/`. |
293
+ | `POST` | `/api/files/upload` | Upload a base64 attachment → `<docs>/files/`. |
294
+ | `GET` | `/api/files` | List every attachment (chronological). |
295
+ | `PUT` | `/api/files/:filename` | Replace an attachment. |
296
+ | `DELETE` | `/api/files/:filename` | Delete an attachment. |
297
+ | `GET` | `/api/metadata/:docId` | Reliability report for one doc. |
298
+ | `POST` | `/api/metadata/:docId` | Add or replace a binding. |
299
+ | `DELETE` | `/api/metadata/:docId` | Remove a binding. |
300
+ | `POST` | `/api/metadata/:docId/refresh` | Re-baseline hashes. |
301
+ | `GET` | `/api/browse-source?path=` | Navigate the source tree rooted at `sourceRoot`. |
302
+ | `GET` | `/api/diagrams` | List saved diagrams. |
303
+ | `GET` | `/api/diagrams/:id` | Read a single diagram (nodes + edges). |
304
+ | `PUT` | `/api/diagrams/:id` | Create or update a diagram. |
305
+ | `DELETE` | `/api/diagrams/:id` | Delete a diagram. |
306
+ | `GET` | `/api/shape-libraries` | List custom shape libraries. |
307
+ | `PUT` | `/api/shape-libraries/:id` | Save a shape library. |
308
+ | `GET` | `/api/annotations[/:docId]` | List annotations (all docs / one doc). |
309
+ | `POST` | `/api/annotations/:docId` | Add an annotation. |
310
+ | `DELETE` | `/api/annotations/:docId/:id` | Delete one annotation. |
311
+ | `POST` | `/api/export/html` | HTML export — Notion / Confluence modes. |
312
+ | `POST` | `/api/export/markdown` | Markdown bundle export. |
313
+ | `GET` | `/api/wordcloud?path=&ext=` | Recursively concatenate matching source files as raw text. |
314
+ | `POST` | `/mcp` | Model Context Protocol endpoint (Streamable HTTP). |
315
+ | `GET` | `/mcp` | Live tool + prompt schema summary. |
312
316
 
313
317
  </details>
314
318
 
@@ -6,7 +6,7 @@
6
6
  <title>Admin — Living Documentation</title>
7
7
 
8
8
  <script src="/i18n.js"></script>
9
- <script src="/vendor/tailwindcss.js"></script>
9
+ <script src="https://cdn.tailwindcss.com"></script>
10
10
 
11
11
  <script>
12
12
  tailwind.config = { darkMode: "class", theme: { extend: {} } };
@@ -6,7 +6,7 @@
6
6
  <title>AI Context</title>
7
7
  <script src="/i18n.js"></script>
8
8
  <script src="/confirm-modal.js"></script>
9
- <script src="/vendor/tailwindcss-typography.js"></script>
9
+ <script src="https://cdn.tailwindcss.com?plugins=typography"></script>
10
10
  <script>
11
11
  tailwind.config = { darkMode: "class", theme: { extend: {} } };
12
12
  </script>
@@ -5,7 +5,7 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Diagram — Living Documentation</title>
7
7
  <script src="/i18n.js"></script>
8
- <script src="/vendor/tailwindcss-typography.js"></script>
8
+ <script src="https://cdn.tailwindcss.com?plugins=typography"></script>
9
9
  <script>
10
10
  tailwind.config = { darkMode: "class", theme: { extend: {} } };
11
11
  </script>
@@ -168,7 +168,7 @@ async function exportAllPDF() {
168
168
  <head>
169
169
  <meta charset="UTF-8">
170
170
  <title>${appTitle} — Export PDF</title>
171
- <script src="${window.location.origin}/vendor/tailwindcss-typography.js"><\/script>
171
+ <script src="https://cdn.tailwindcss.com?plugins=typography"><\/script>
172
172
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github.min.css">
173
173
  <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"><\/script>
174
174
  <style>
@@ -9,7 +9,7 @@
9
9
  <script src="/i18n.js"></script>
10
10
 
11
11
  <!-- Tailwind CSS + Typography plugin via CDN -->
12
- <script src="/vendor/tailwindcss-typography.js"></script>
12
+ <script src="https://cdn.tailwindcss.com?plugins=typography"></script>
13
13
 
14
14
  <!-- Highlight.js — syntax highlighting (always dark) -->
15
15
  <link
@@ -18,8 +18,11 @@
18
18
  />
19
19
  <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
20
20
 
21
- <!-- Font Awesome — icons (vendored to bypass network restrictions) -->
22
- <link rel="stylesheet" href="/vendor/font-awesome/css/all.min.css" />
21
+ <!-- Font Awesome — icons -->
22
+ <link
23
+ rel="stylesheet"
24
+ href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css"
25
+ />
23
26
 
24
27
  <!-- WordCloud2.js — vendored from npm, no CDN dependency -->
25
28
  <script src="/vendor/wordcloud2.js"></script>
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Shape editor — Living Documentation</title>
7
- <script src="/vendor/tailwindcss-typography.js"></script>
7
+ <script src="https://cdn.tailwindcss.com?plugins=typography"></script>
8
8
  <script src="/i18n.js"></script>
9
9
  <script>
10
10
  tailwind.config = { darkMode: "class", theme: { extend: {} } };
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "living-documentation",
3
- "version": "8.11.0",
3
+ "version": "8.13.0",
4
4
  "description": "Local Markdown documentation hub with a built-in MCP server — coding agents create ADRs, draw diagrams and detect drift while you code.",
5
5
  "main": "dist/src/server.js",
6
6
  "bin": {