@hiveforge/hivemind-mcp 3.4.0 → 3.5.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.
Files changed (78) hide show
  1. package/README.md +89 -309
  2. package/dist/cli/fix/fixer.js +1 -1
  3. package/dist/cli/fix/fixer.js.map +1 -1
  4. package/dist/cli/fix/writer.d.ts.map +1 -1
  5. package/dist/cli/fix/writer.js +75 -3
  6. package/dist/cli/fix/writer.js.map +1 -1
  7. package/dist/cli/init/output.d.ts.map +1 -1
  8. package/dist/cli/init/output.js +6 -5
  9. package/dist/cli/init/output.js.map +1 -1
  10. package/dist/cli/validate/formatter.d.ts.map +1 -1
  11. package/dist/cli/validate/formatter.js +16 -0
  12. package/dist/cli/validate/formatter.js.map +1 -1
  13. package/dist/cli/validate/types.d.ts +3 -0
  14. package/dist/cli/validate/types.d.ts.map +1 -1
  15. package/dist/cli/validate/validator.d.ts.map +1 -1
  16. package/dist/cli/validate/validator.js +32 -1
  17. package/dist/cli/validate/validator.js.map +1 -1
  18. package/dist/cli.js +2 -1
  19. package/dist/cli.js.map +1 -1
  20. package/dist/graph/database.d.ts +152 -0
  21. package/dist/graph/database.d.ts.map +1 -1
  22. package/dist/graph/database.js +418 -30
  23. package/dist/graph/database.js.map +1 -1
  24. package/dist/mcp/graph-tools.d.ts +78 -0
  25. package/dist/mcp/graph-tools.d.ts.map +1 -0
  26. package/dist/mcp/graph-tools.js +284 -0
  27. package/dist/mcp/graph-tools.js.map +1 -0
  28. package/dist/mcp/timeline-tools.d.ts +116 -0
  29. package/dist/mcp/timeline-tools.d.ts.map +1 -0
  30. package/dist/mcp/timeline-tools.js +317 -0
  31. package/dist/mcp/timeline-tools.js.map +1 -0
  32. package/dist/search/engine.d.ts +186 -0
  33. package/dist/search/engine.d.ts.map +1 -1
  34. package/dist/search/engine.js +263 -0
  35. package/dist/search/engine.js.map +1 -1
  36. package/dist/server.d.ts +52 -0
  37. package/dist/server.d.ts.map +1 -1
  38. package/dist/server.js +472 -0
  39. package/dist/server.js.map +1 -1
  40. package/dist/templates/builtin/worldbuilding.d.ts.map +1 -1
  41. package/dist/templates/builtin/worldbuilding.js +401 -1
  42. package/dist/templates/builtin/worldbuilding.js.map +1 -1
  43. package/dist/templates/community/dnd-35e.d.ts +18 -0
  44. package/dist/templates/community/dnd-35e.d.ts.map +1 -0
  45. package/dist/templates/community/dnd-35e.js +859 -0
  46. package/dist/templates/community/dnd-35e.js.map +1 -0
  47. package/dist/templates/community/dnd-5e.d.ts +16 -0
  48. package/dist/templates/community/dnd-5e.d.ts.map +1 -0
  49. package/dist/templates/community/dnd-5e.js +509 -0
  50. package/dist/templates/community/dnd-5e.js.map +1 -0
  51. package/dist/templates/community/index.d.ts +9 -0
  52. package/dist/templates/community/index.d.ts.map +1 -1
  53. package/dist/templates/community/index.js +16 -0
  54. package/dist/templates/community/index.js.map +1 -1
  55. package/dist/templates/community/pathfinder-2e.d.ts +16 -0
  56. package/dist/templates/community/pathfinder-2e.d.ts.map +1 -0
  57. package/dist/templates/community/pathfinder-2e.js +711 -0
  58. package/dist/templates/community/pathfinder-2e.js.map +1 -0
  59. package/dist/templates/community/ttrpg-base.d.ts +17 -0
  60. package/dist/templates/community/ttrpg-base.d.ts.map +1 -0
  61. package/dist/templates/community/ttrpg-base.js +889 -0
  62. package/dist/templates/community/ttrpg-base.js.map +1 -0
  63. package/dist/templates/loader.d.ts +2 -0
  64. package/dist/templates/loader.d.ts.map +1 -1
  65. package/dist/templates/loader.js +45 -1
  66. package/dist/templates/loader.js.map +1 -1
  67. package/dist/templates/registry.d.ts +49 -2
  68. package/dist/templates/registry.d.ts.map +1 -1
  69. package/dist/templates/registry.js +276 -6
  70. package/dist/templates/registry.js.map +1 -1
  71. package/dist/templates/types.d.ts +28 -1
  72. package/dist/templates/types.d.ts.map +1 -1
  73. package/dist/templates/validator.d.ts +80 -1
  74. package/dist/templates/validator.d.ts.map +1 -1
  75. package/dist/templates/validator.js +22 -5
  76. package/dist/templates/validator.js.map +1 -1
  77. package/dist/types/index.d.ts +18 -18
  78. package/package.json +1 -1
package/README.md CHANGED
@@ -1,359 +1,139 @@
1
1
  <p align="center">
2
- <img src="gh-social-preview.png" alt="Hivemind" width="100%"/>
2
+ <img src="gh-social-preview.png" alt="Hivemind for Obsidian" width="100%"/>
3
3
  </p>
4
4
 
5
- # Hivemind MCP Server
5
+ # Hivemind for Obsidian
6
6
 
7
- [![NPM Version](https://img.shields.io/npm/v/@hiveforge/hivemind-mcp.svg)](https://www.npmjs.com/package/@hiveforge/hivemind-mcp)
8
- [![Build Status](https://img.shields.io/github/actions/workflow/status/hiveforge-sh/hivemind/test.yml?branch=master&label=tests)](https://github.com/hiveforge-sh/hivemind/actions/workflows/test.yml)
9
- [![Release](https://img.shields.io/github/actions/workflow/status/hiveforge-sh/hivemind/release.yml?branch=master&label=release)](https://github.com/hiveforge-sh/hivemind/actions/workflows/release.yml)
10
- [![codecov](https://codecov.io/gh/hiveforge-sh/hivemind/branch/master/graph/badge.svg)](https://codecov.io/gh/hiveforge-sh/hivemind)
11
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
12
- [![GitHub issues](https://img.shields.io/github/issues/hiveforge-sh/hivemind)](https://github.com/hiveforge-sh/hivemind/issues)
13
- [![GitHub stars](https://img.shields.io/github/stars/hiveforge-sh/hivemind)](https://github.com/hiveforge-sh/hivemind/stargazers)
14
8
 
15
- A domain-agnostic MCP (Model Context Protocol) server for Obsidian vaults that provides AI tools with consistent, structured context from your knowledge base.
9
+ **Your canon is the source of truth. AI stays inside the lines.**
16
10
 
17
- **The AI Memory Firewall**: Hivemind's core value isn't just better answers — it's *preventing AI from inventing context*. Your knowledge graph becomes a truth anchor that keeps AI grounded in facts you control.
11
+ ## Why Hivemind?
18
12
 
19
- ## What is Hivemind?
13
+ When building fictional worlds — whether you're writing a novel, designing a game, or running an RPG campaign — AI tools can be powerful collaborators. But they hallucinate. Ask your AI assistant about a character you created last week, and it might invent details that contradict your established canon.
20
14
 
21
- Hivemind bridges your Obsidian vault and AI tools (Claude, ComfyUI, etc.) via the Model Context Protocol. With pluggable templates, it supports multiple domains out of the box:
15
+ Hivemind solves this by giving AI tools structured access to your Obsidian vault. Think of it as an **AI Firewall**: your worldbuilding notes become a truth anchor that keeps AI grounded in facts you control. Ask about a character, and the AI reads your actual notes — not a hallucinated version. Query a timeline, and it references your established events not invented dates.
22
16
 
23
- - **Worldbuilding** — Characters, Locations, Events, Factions, Lore, Assets
24
- - **Research** — Papers, Citations, Concepts, Notes
25
- - **People Management** — People, Goals, Teams, 1:1 Meetings
26
- - **Software Architecture** — Systems, Components, ADRs, Constraints *(community)*
27
- - **UX Research** — Interviews, Insights, Hypotheses, Personas *(community)*
17
+ Beyond AI integration, Hivemind provides powerful visualization tools:
18
+ - **Timeline View** — See your story's events laid out chronologically
19
+ - **Graph View** — Explore relationships between characters, locations, factions, and more
20
+ - **Canon Workflow** — Track which content is approved, in review, or still draft
28
21
 
29
- Or define your own custom entity types via `config.json`no code required.
22
+ Hivemind is built for worldbuilders, but the same principles apply to research vaults, people management, software architecture anywhere you need AI to respect your established knowledge.
30
23
 
31
24
  ## Features
32
25
 
33
- - **Pluggable Templates**: Built-in templates for worldbuilding, research, people management, and software architecture — or define your own
34
- - **HybridRAG Search**: Combines vector, graph, and keyword search for accurate context retrieval
35
- - **Obsidian Native**: Works with standard markdown, YAML frontmatter, and wikilinks
36
- - **Custom Relationships**: Define relationship types per template with bidirectionality and validation
37
- - **Asset Provenance**: Track AI-generated images and their generation settings
38
- - **Local-First**: Your data stays on your machine critical for sensitive domains like people management and architecture decisions
39
- - **Canon Management**: Draft Pending Canon approval workflow with consistency validation
40
- - **High Performance**: <300ms query latency, supports 1000+ note vaults
26
+ - **Timeline View** Visualize events chronologically with filtering and search
27
+ - **Graph View** Explore entity relationships with interactive visualization
28
+ - **AI Integration** MCP-compatible server for Claude, GitHub Copilot, and other AI tools
29
+ - **Pluggable Templates** Built-in templates for worldbuilding, research, people management, and more
30
+ - **Canon Workflow** Draft Pending Canon approval system with consistency validation
31
+ - **Obsidian Native**Works with standard markdown, YAML frontmatter, and wikilinks
32
+ - **Local-First** Your data stays on your machine
41
33
 
42
- ### Canon Workflow: Not Just for Fiction
34
+ ### Built-in Templates
43
35
 
44
- The canon workflow applies far beyond worldbuilding:
36
+ | Template | Use Case | Entity Types |
37
+ |----------|----------|--------------|
38
+ | **Worldbuilding** | Fiction writers, game designers, RPG creators | Characters, Locations, Events, Factions, Lore, Assets |
39
+ | **Research** | Academics, knowledge workers | Papers, Citations, Concepts, Notes |
40
+ | **People Management** | Managers, team leads | People, Goals, Teams, 1:1 Meetings |
41
+ | **Software Architecture** | Engineers, architects | Systems, Components, ADRs, Constraints |
45
42
 
46
- | Domain | What Gets Canon Status |
47
- |--------|----------------------|
48
- | **Worldbuilding** | Approved lore, character facts, timeline events |
49
- | **Architecture** | Accepted ADRs, design decisions, constraints |
50
- | **Brand** | Voice guidelines, approved messaging, visual identity |
51
- | **Security** | Approved policies, access controls, compliance rules |
52
- | **People Management** | Finalized goals, approved team structures |
43
+ Define your own custom entity types via config — no code required. See [CONTRIBUTING_TEMPLATES.md](CONTRIBUTING_TEMPLATES.md) for details.
53
44
 
54
- AI that references non-canon content gets flagged. AI that violates canon constraints gets corrected. This is **governance without meetings**.
45
+ ## Installation
55
46
 
56
- ## Quick Start
47
+ ### Obsidian Plugin (Recommended)
57
48
 
58
- ### Installation
49
+ 1. Open Obsidian Settings
50
+ 2. Go to Community plugins → Browse
51
+ 3. Search for "Hivemind"
52
+ 4. Click Install, then Enable
59
53
 
60
- ```bash
61
- # Install globally
62
- npm install -g @hiveforge/hivemind-mcp
54
+ ### Manual Installation
63
55
 
64
- # Or use with npx (no installation needed)
65
- npx @hiveforge/hivemind-mcp init
66
- ```
56
+ 1. Download the latest release from [GitHub Releases](https://github.com/hiveforge-sh/hivemind/releases)
57
+ 2. Extract to your vault's `.obsidian/plugins/hivemind` directory
58
+ 3. Reload Obsidian and enable the plugin in Settings
67
59
 
68
- ### Setup
60
+ ### AI Integration (Optional)
69
61
 
70
- ```bash
71
- # Interactive setup - creates config.json
72
- npx @hiveforge/hivemind-mcp init
62
+ Want AI tools to query your vault? Set up the MCP server:
73
63
 
74
- # Validate your configuration
75
- npx @hiveforge/hivemind-mcp validate
64
+ **[MCP Setup Guide →](docs/MCP_SETUP_GUIDE.md)**
76
65
 
77
- # Start the server
78
- npx @hiveforge/hivemind-mcp start
66
+ The guide covers:
67
+ - Claude Desktop configuration (Windows, macOS, Linux)
68
+ - GitHub Copilot configuration
69
+ - Template selection
70
+ - Troubleshooting
79
71
 
80
- # Or start with a specific vault path (no config needed)
81
- npx @hiveforge/hivemind-mcp --vault /path/to/vault
82
- npx @hiveforge/hivemind-mcp --vault . # Use current directory
83
- ```
84
-
85
- ### Configuration for MCP Clients
86
-
87
- **Claude Desktop** (`%APPDATA%\Claude\claude_desktop_config.json`):
88
- ```json
89
- {
90
- "mcpServers": {
91
- "hivemind": {
92
- "command": "npx",
93
- "args": ["-y", "@hiveforge/hivemind-mcp", "start"]
94
- }
95
- }
96
- }
97
- ```
98
-
99
- **Claude Desktop with vault override**:
100
- ```json
101
- {
102
- "mcpServers": {
103
- "hivemind": {
104
- "command": "npx",
105
- "args": ["-y", "@hiveforge/hivemind-mcp", "--vault", "C:\\Path\\To\\Your\\Vault"]
106
- }
107
- }
108
- }
109
- ```
110
-
111
- **GitHub Copilot** (`~/.copilot/mcp-config.json`):
112
- ```json
113
- {
114
- "mcpServers": {
115
- "hivemind": {
116
- "type": "local",
117
- "command": "npx",
118
- "args": ["-y", "@hiveforge/hivemind-mcp", "start"],
119
- "tools": ["*"]
120
- }
121
- }
122
- }
123
- ```
124
-
125
- ### Manual Configuration
126
-
127
- If you prefer to configure manually, create a `config.json`:
128
-
129
- ```json
130
- {
131
- "vault": {
132
- "path": "/path/to/your/obsidian/vault",
133
- "watchForChanges": true,
134
- "debounceMs": 100
135
- },
136
- "server": {
137
- "transport": "stdio"
138
- },
139
- "template": {
140
- "activeTemplate": "worldbuilding"
141
- },
142
- "indexing": {
143
- "strategy": "incremental",
144
- "batchSize": 100,
145
- "enableVectorSearch": false,
146
- "enableFullTextSearch": true
147
- }
148
- }
149
- ```
150
-
151
- ### Choosing a Template
72
+ ## Quick Start
152
73
 
153
- Set `activeTemplate` to one of the built-in or community templates:
74
+ 1. **Choose a template** Open Hivemind settings in Obsidian and select a template (worldbuilding, research, etc.)
154
75
 
155
- | Template | Use Case | Entity Types |
156
- |----------|----------|--------------|
157
- | `worldbuilding` | Fiction writers, game masters | Characters, Locations, Events, Factions, Lore, Assets, References |
158
- | `research` | Academics, knowledge workers | Papers, Citations, Concepts, Notes |
159
- | `people-management` | Managers, team leads | People, Goals, Teams, 1:1 Meetings |
160
- | `software-architecture` | Engineers, architects | Systems, Components, Decisions (ADRs), Constraints, Interfaces |
161
- | `ux-research` | UX researchers, product teams | Interviews, Insights, Hypotheses, Personas, Experiments |
162
-
163
- ### Custom Templates
164
-
165
- Define custom entity types directly in your `config.json`:
166
-
167
- ```json
168
- {
169
- "template": {
170
- "activeTemplate": "my-template",
171
- "templates": [{
172
- "id": "my-template",
173
- "name": "My Custom Template",
174
- "version": "1.0.0",
175
- "entityTypes": [{
176
- "name": "project",
177
- "displayName": "Project",
178
- "pluralName": "Projects",
179
- "fields": [
180
- { "name": "title", "type": "string", "required": true },
181
- { "name": "deadline", "type": "date" },
182
- { "name": "priority", "type": "enum", "enumValues": ["low", "medium", "high"] }
183
- ]
184
- }],
185
- "relationshipTypes": [{
186
- "id": "depends_on",
187
- "displayName": "Depends On",
188
- "sourceTypes": ["project"],
189
- "targetTypes": ["project"],
190
- "bidirectional": true,
191
- "reverseId": "blocks"
192
- }]
193
- }]
194
- }
195
- }
196
- ```
76
+ 2. **Create entities** Use Obsidian's note creation as usual. Add YAML frontmatter to define entity types:
77
+ ```yaml
78
+ ---
79
+ entity_type: character
80
+ canon_status: draft
81
+ ---
82
+ ```
197
83
 
198
- See [samples/](samples/) for complete example vaults for each template.
84
+ 3. **Visualize** Open the Timeline view or Graph view from the ribbon icons
199
85
 
200
- ### CLI Template Tools
86
+ 4. **Connect to AI** — Follow the [MCP Setup Guide](docs/MCP_SETUP_GUIDE.md) to let AI tools query your vault
201
87
 
202
- Create, manage, and validate templates using the command line:
88
+ For detailed setup instructions, see [docs/SETUP_GUIDE.md](docs/SETUP_GUIDE.md).
203
89
 
204
- ```bash
205
- # List available templates (built-in + community)
206
- npx @hiveforge/hivemind-mcp list-templates
90
+ ## Screenshots
207
91
 
208
- # Add a template from the registry, URL, or local file
209
- npx @hiveforge/hivemind-mcp add-template software-architecture
210
- npx @hiveforge/hivemind-mcp add-template https://example.com/template.json
211
- npx @hiveforge/hivemind-mcp add-template ./my-template.json
92
+ ### Timeline View
93
+ *Coming soon chronological visualization of events*
212
94
 
213
- # Interactive template creation wizard
214
- npx @hiveforge/hivemind-mcp create-template
95
+ ![Timeline View Placeholder](docs/images/timeline-view.png)
215
96
 
216
- # Validate a template file
217
- npx @hiveforge/hivemind-mcp validate-template template.json
97
+ ### Graph View
98
+ *Coming soon interactive entity relationship visualization*
218
99
 
219
- # Check template compatibility with your Hivemind version
220
- npx @hiveforge/hivemind-mcp check-compatibility
221
- npx @hiveforge/hivemind-mcp check-compatibility software-architecture
100
+ ![Graph View Placeholder](docs/images/graph-view.png)
222
101
 
223
- # Generate template catalog JSON (for documentation sites)
224
- npx @hiveforge/hivemind-mcp generate-catalog
225
- ```
102
+ ## Use Cases
226
103
 
227
- Want to contribute a template? See [CONTRIBUTING_TEMPLATES.md](CONTRIBUTING_TEMPLATES.md).
104
+ **Worldbuilding:**
105
+ - Track characters, locations, and events across your novel
106
+ - AI remembers your character details when helping with dialogue
107
+ - Visualize timeline of your story's key events
228
108
 
229
- ## Architecture
109
+ **Research:**
110
+ - Organize papers, citations, and concepts in your field
111
+ - AI references your actual research when answering questions
112
+ - Explore connections between concepts in your knowledge base
230
113
 
231
- ```
232
- Obsidian Vault File Watcher Markdown Parser Knowledge Graph
233
-
234
- ┌───────────────────┴─────────────────┐
235
- │ │
236
- Full-Text Index Vector Index
237
- (SQLite) (FAISS)
238
- │ │
239
- └───────────────────┬─────────────────┘
240
-
241
- HybridRAG Router
242
-
243
- MCP Server
244
-
245
- AI Clients (Claude, etc.)
246
- ```
114
+ **People Management:**
115
+ - Track team goals, 1:1 meeting notes, and people details
116
+ - AI recalls context from previous meetings when drafting agendas
117
+ - Visualize team relationships and reporting structures
247
118
 
248
- ## Development Status
249
-
250
- **Current**: v2.1 Community Templates Complete
251
-
252
- ### v2.1 — Community Templates (Complete)
253
-
254
- - [x] CLI tools: `create-template`, `validate-template`, `add-template`, `list-templates`
255
- - [x] Community templates: software-architecture, ux-research
256
- - [x] Enhanced metadata: category, tags, author, repository, license
257
- - [x] Template catalog generation for docs sites
258
- - [x] Version compatibility checking with `minHivemindVersion`
259
- - [x] Template contribution guide
260
-
261
- ### v2.0 — Template System (Complete)
262
-
263
- Hivemind is now domain-agnostic with pluggable templates:
264
-
265
- - [x] Template registry with config-driven entity definitions
266
- - [x] Dynamic Zod schema generation from config
267
- - [x] Auto-generated MCP tools per entity type (`query_<type>`, `list_<type>`)
268
- - [x] Worldbuilding template extraction (backwards compatible)
269
- - [x] Custom relationship types per template with validation
270
- - [x] Built-in templates: worldbuilding, research, people-management
271
- - [x] Sample vaults for each template
272
-
273
- ### v1.0 — MVP + Core Features (Shipped)
274
-
275
- - [x] MCP server with hybrid search (vector, graph, keyword)
276
- - [x] Vault templates for all entity types (Character, Location, Event, Faction, Lore, Asset)
277
- - [x] Canon workflow tools (status management, consistency validation)
278
- - [x] Asset management with full provenance tracking
279
- - [x] ComfyUI integration with workflow management
280
- - [x] Obsidian plugin with image generation
281
- - [x] CI/CD with semantic-release and CodeQL scanning
282
-
283
- ### Coming Soon
284
-
285
- - [ ] Obsidian community plugin submission
286
- - [ ] Timeline queries with date range filtering
287
- - [ ] Web-based template builder
288
-
289
- ## MCP Tools
290
-
291
- ### Dynamic Entity Tools (Auto-Generated)
292
-
293
- Tools are automatically generated for each entity type defined in the active template:
294
-
295
- | Tool Pattern | Description |
296
- |--------------|-------------|
297
- | `query_<type>` | Get entity by ID/name with relationships and content |
298
- | `list_<type>` | List all entities of type with optional filters |
299
-
300
- **Built-in and community template tools:**
301
-
302
- | Template | Generated Tools |
303
- |----------|-----------------|
304
- | `worldbuilding` | `query_character`, `query_location`, `query_event`, `query_faction`, `query_lore`, `query_asset`, `query_reference` + list variants |
305
- | `research` | `query_paper`, `query_citation`, `query_concept`, `query_note` + list variants |
306
- | `people-management` | `query_person`, `query_goal`, `query_team`, `query_one_on_one` + list variants |
307
- | `software-architecture` | `query_system`, `query_component`, `query_decision`, `query_constraint`, `query_interface` + list variants |
308
- | `ux-research` | `query_interview`, `query_insight`, `query_hypothesis`, `query_persona`, `query_experiment` + list variants |
309
-
310
- ### Search
311
- | Tool | Description |
312
- |------|-------------|
313
- | `search_vault` | Hybrid search across all content with type/status filters |
314
-
315
- ### Asset Management
316
- | Tool | Description |
317
- |------|-------------|
318
- | `store_asset` | Store generated image with provenance metadata |
319
- | `query_asset` | Get asset with generation settings |
320
- | `list_assets` | Filter assets by entity, type, status, workflow |
321
-
322
- ### Canon Workflow
323
- | Tool | Description |
324
- |------|-------------|
325
- | `get_canon_status` | List entities grouped by status (draft/pending/canon) |
326
- | `submit_for_review` | Move entity from draft to pending review |
327
- | `validate_consistency` | Check for broken links, duplicates, conflicts |
328
-
329
- ### ComfyUI Integration (when enabled)
330
- | Tool | Description |
331
- |------|-------------|
332
- | `store_workflow` | Save ComfyUI workflow to vault |
333
- | `list_workflows` | Browse saved workflows |
334
- | `get_workflow` | Retrieve workflow by ID |
335
- | `generate_image` | Generate image with vault context injection |
336
-
337
- ### Utility
338
- | Tool | Description |
339
- |------|-------------|
340
- | `rebuild_index` | Force complete re-index of vault |
341
- | `get_vault_stats` | Vault statistics and token savings metrics |
119
+ **Software Architecture:**
120
+ - Document systems, components, and architectural decisions (ADRs)
121
+ - AI references your ADRs when suggesting design patterns
122
+ - Track dependencies between components visually
342
123
 
343
124
  ## Documentation
344
125
 
345
126
  - [Setup Guide](docs/SETUP_GUIDE.md) — Getting started with Hivemind
127
+ - [MCP Setup Guide](docs/MCP_SETUP_GUIDE.md) — AI integration configuration
346
128
  - [Vault Migration Guide](docs/VAULT_MIGRATION_GUIDE.md) — Migrating existing vaults
347
- - [Canon Workflow for Enterprise](docs/CANON_WORKFLOW_ENTERPRISE.md) — Using canon workflow for ADRs, research, and more
348
- - [MCP Compatibility](docs/MCP_COMPATIBILITY.md) — Supported AI clients
349
- - [ComfyUI Integration](docs/COMFYUI_INTEGRATION.md) — AI image generation
350
- - [Obsidian Plugin Workflow](docs/OBSIDIAN_PLUGIN_WORKFLOW.md) — Plugin development
129
+ - [Canon Workflow](docs/CANON_WORKFLOW_ENTERPRISE.md) — Using canon workflow beyond worldbuilding
130
+ - [Contributing Templates](CONTRIBUTING_TEMPLATES.md) — Create and share templates
351
131
  - [Sample Vaults](samples/README.md) — Example vaults for each template
352
- - [Contributing Templates](CONTRIBUTING_TEMPLATES.md) — How to create and contribute templates
353
132
 
354
- ## License
133
+ ## Community
355
134
 
356
- MIT
135
+ - **Issues & Feature Requests** — [GitHub Issues](https://github.com/hiveforge-sh/hivemind/issues)
136
+ - **Discussions** — [GitHub Discussions](https://github.com/hiveforge-sh/hivemind/discussions)
357
137
 
358
138
  ## Contributing
359
139
 
@@ -365,10 +145,10 @@ We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guid
365
145
  <type>: <description>
366
146
 
367
147
  [optional body]
368
-
369
- [optional footer]
370
148
  ```
371
149
 
372
150
  Common types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`
373
151
 
374
- Example: `feat: add pagination support to search results`
152
+ ## License
153
+
154
+ [MIT](LICENSE) — Free for personal and commercial use.
@@ -201,7 +201,7 @@ export class FileFixer {
201
201
  if (!('status' in result)) {
202
202
  result.status = 'draft';
203
203
  }
204
- // Tags - default to empty array
204
+ // Tags - default to empty array (visible so users know it's available)
205
205
  if (!('tags' in result)) {
206
206
  result.tags = [];
207
207
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fixer.js","sourceRoot":"","sources":["../../../src/cli/fix/fixer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixer.js","sourceRoot":"","sources":["../../../src/cli/fix/fixer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../../src/cli/fix/writer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,aAAa,GACvB,OAAO,CAAC,WAAW,CAAC,CAwCtB;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,aAAa,EAAE,GAC1B,OAAO,CAAC,WAAW,EAAE,CAAC,CASxB"}
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../../src/cli/fix/writer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAehD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,aAAa,GACvB,OAAO,CAAC,WAAW,CAAC,CA2GtB;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,aAAa,EAAE,GAC1B,OAAO,CAAC,WAAW,EAAE,CAAC,CASxB"}
@@ -8,6 +8,18 @@ import { promises as fs } from 'fs';
8
8
  import { join } from 'path';
9
9
  import { tmpdir } from 'os';
10
10
  import matter from 'gray-matter';
11
+ /**
12
+ * Post-process YAML output to fix inline empty arrays/objects.
13
+ * Converts `: []` and `: {}` to just `:` (YAML null) which is more
14
+ * parser-friendly while still showing the field exists.
15
+ */
16
+ function fixEmptyYamlValues(yaml) {
17
+ // Replace inline empty arrays `: []` with just `:`
18
+ // Replace inline empty objects `: {}` with just `:`
19
+ return yaml
20
+ .replace(/: \[\]\s*$/gm, ':')
21
+ .replace(/: \{\}\s*$/gm, ':');
22
+ }
11
23
  /**
12
24
  * Write frontmatter to a file atomically.
13
25
  *
@@ -30,10 +42,70 @@ export async function writeFile(vaultPath, operation) {
30
42
  const content = await fs.readFile(targetPath, 'utf-8');
31
43
  // Parse with gray-matter
32
44
  const file = matter(content);
33
- // Merge frontmatter: existing values take precedence, add only missing fields
45
+ // Check for unparseable frontmatter: content starts with --- but data is empty
46
+ // This happens when YAML has syntax errors - gray-matter puts it in content
47
+ const hasUnparseableFrontmatter = Object.keys(file.data).length === 0 &&
48
+ file.content.trimStart().startsWith('---');
49
+ if (hasUnparseableFrontmatter) {
50
+ // Extract and merge with existing frontmatter manually
51
+ const frontmatterMatch = file.content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
52
+ if (frontmatterMatch) {
53
+ // Parse existing frontmatter as loose key-value pairs (tolerant parsing)
54
+ const existingLines = frontmatterMatch[1].split('\n');
55
+ const existingData = {};
56
+ for (const line of existingLines) {
57
+ const colonIndex = line.indexOf(':');
58
+ if (colonIndex > 0) {
59
+ const key = line.slice(0, colonIndex).trim();
60
+ let value = line.slice(colonIndex + 1).trim();
61
+ // Try to parse as JSON for arrays/objects, otherwise keep as string
62
+ if (value && typeof value === 'string') {
63
+ if (value.startsWith('[') || value.startsWith('{') || value.startsWith('"')) {
64
+ try {
65
+ value = JSON.parse(value);
66
+ }
67
+ catch {
68
+ // Keep as string if JSON parse fails
69
+ }
70
+ }
71
+ else if (value === 'true') {
72
+ value = true;
73
+ }
74
+ else if (value === 'false') {
75
+ value = false;
76
+ }
77
+ else if (/^-?\d+$/.test(value)) {
78
+ value = parseInt(value, 10);
79
+ }
80
+ else if (/^-?\d+\.\d+$/.test(value)) {
81
+ value = parseFloat(value);
82
+ }
83
+ }
84
+ if (key) {
85
+ existingData[key] = value;
86
+ }
87
+ }
88
+ }
89
+ // Merge: new fields + existing fields (existing takes precedence)
90
+ const mergedData = { ...operation.frontmatter, ...existingData };
91
+ // Get content after the frontmatter block
92
+ const contentAfterFrontmatter = file.content.slice(frontmatterMatch[0].length).trimStart();
93
+ // Stringify and fix empty values format
94
+ const output = fixEmptyYamlValues(matter.stringify(contentAfterFrontmatter, mergedData));
95
+ // Write to temp file
96
+ await fs.writeFile(tempPath, output, 'utf-8');
97
+ // Atomic rename to target
98
+ await fs.rename(tempPath, targetPath);
99
+ return {
100
+ path: operation.path,
101
+ success: true,
102
+ };
103
+ }
104
+ }
105
+ // Normal case: merge frontmatter (existing values take precedence, add only missing fields)
34
106
  const mergedData = { ...operation.frontmatter, ...file.data };
35
- // Stringify back to markdown
36
- const output = matter.stringify(file.content, mergedData);
107
+ // Stringify back to markdown and fix empty values format
108
+ const output = fixEmptyYamlValues(matter.stringify(file.content, mergedData));
37
109
  // Write to temp file
38
110
  await fs.writeFile(tempPath, output, 'utf-8');
39
111
  // Atomic rename to target
@@ -1 +1 @@
1
- {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../../src/cli/fix/writer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,MAAM,MAAM,aAAa,CAAC;AAejC;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAAiB,EACjB,SAAwB;IAExB,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,IAAI,CACnB,MAAM,EAAE,EACR,YAAY,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CACnE,CAAC;IAEF,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEvD,yBAAyB;QACzB,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAE7B,8EAA8E;QAC9E,MAAM,UAAU,GAAG,EAAE,GAAG,SAAS,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE9D,6BAA6B;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAE1D,qBAAqB;QACrB,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAE9C,0BAA0B;QAC1B,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEtC,OAAO;YACL,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,+BAA+B;QAC/B,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAE1C,OAAO;YACL,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,SAAiB,EACjB,UAA2B;IAE3B,MAAM,OAAO,GAAkB,EAAE,CAAC;IAElC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../../../src/cli/fix/writer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/cli/init/output.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAcnD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA4BjE;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,OAAO,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,MAAM,EAAE;QACN,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE;QACR,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,EAAE;QACR,QAAQ,EAAE,aAAa,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,oBAAoB,EAAE,OAAO,CAAC;KAC/B,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,CAoBpF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAWtE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,CAI3E;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAI/C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG1D"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../../src/cli/init/output.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CAcnD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA4BjE;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,eAAe,EAAE,OAAO,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,MAAM,EAAE;QACN,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE;QACR,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,QAAQ,EAAE;QACR,QAAQ,EAAE,aAAa,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,oBAAoB,EAAE,OAAO,CAAC;KAC/B,CAAC;CACH;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc,CAoBpF;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAWtE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,MAAM,CAI3E;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,IAAI,CAAC,CA8Cf;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAI/C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAG1D"}