@hiveforge/hivemind-mcp 2.3.0 → 2.4.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 +107 -27
- package/dist/graph/builder.d.ts +7 -3
- package/dist/graph/builder.d.ts.map +1 -1
- package/dist/graph/builder.js +51 -21
- package/dist/graph/builder.js.map +1 -1
- package/dist/mcp/tool-generator.d.ts +3 -1
- package/dist/mcp/tool-generator.d.ts.map +1 -1
- package/dist/mcp/tool-generator.js +41 -5
- package/dist/mcp/tool-generator.js.map +1 -1
- package/dist/search/engine.d.ts +9 -1
- package/dist/search/engine.d.ts.map +1 -1
- package/dist/search/engine.js +16 -4
- package/dist/search/engine.js.map +1 -1
- package/dist/templates/builtin/people-management.d.ts +18 -0
- package/dist/templates/builtin/people-management.d.ts.map +1 -0
- package/dist/templates/builtin/people-management.js +523 -0
- package/dist/templates/builtin/people-management.js.map +1 -0
- package/dist/templates/builtin/research.d.ts +18 -0
- package/dist/templates/builtin/research.d.ts.map +1 -0
- package/dist/templates/builtin/research.js +349 -0
- package/dist/templates/builtin/research.js.map +1 -0
- package/dist/templates/builtin/worldbuilding.d.ts.map +1 -1
- package/dist/templates/builtin/worldbuilding.js +138 -0
- package/dist/templates/builtin/worldbuilding.js.map +1 -1
- package/dist/templates/loader.d.ts +3 -1
- package/dist/templates/loader.d.ts.map +1 -1
- package/dist/templates/loader.js +7 -1
- package/dist/templates/loader.js.map +1 -1
- package/dist/templates/registry.d.ts +31 -1
- package/dist/templates/registry.d.ts.map +1 -1
- package/dist/templates/registry.js +64 -0
- package/dist/templates/registry.js.map +1 -1
- package/dist/templates/types.d.ts +28 -0
- package/dist/templates/types.d.ts.map +1 -1
- package/dist/templates/validator.d.ts +110 -0
- package/dist/templates/validator.d.ts.map +1 -1
- package/dist/templates/validator.js +35 -2
- package/dist/templates/validator.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -12,20 +12,28 @@
|
|
|
12
12
|
[](https://github.com/hiveforge-sh/hivemind/issues)
|
|
13
13
|
[](https://github.com/hiveforge-sh/hivemind/stargazers)
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
A domain-agnostic MCP (Model Context Protocol) server for Obsidian vaults that provides AI tools with consistent, structured context from your knowledge base.
|
|
16
16
|
|
|
17
17
|
## What is Hivemind?
|
|
18
18
|
|
|
19
|
-
Hivemind bridges your Obsidian vault
|
|
19
|
+
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:
|
|
20
|
+
|
|
21
|
+
- **Worldbuilding** — Characters, Locations, Events, Factions, Lore, Assets
|
|
22
|
+
- **Research** — Papers, Citations, Concepts, Notes
|
|
23
|
+
- **People Management** — People, Goals, Teams, 1:1 Meetings
|
|
24
|
+
|
|
25
|
+
Or define your own custom entity types via `config.json` — no code required.
|
|
20
26
|
|
|
21
27
|
## Features
|
|
22
28
|
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
+
- **Pluggable Templates**: Built-in templates for worldbuilding, research, and people management — or define your own
|
|
30
|
+
- **HybridRAG Search**: Combines vector, graph, and keyword search for accurate context retrieval
|
|
31
|
+
- **Obsidian Native**: Works with standard markdown, YAML frontmatter, and wikilinks
|
|
32
|
+
- **Custom Relationships**: Define relationship types per template with bidirectionality and validation
|
|
33
|
+
- **Asset Provenance**: Track AI-generated images and their generation settings
|
|
34
|
+
- **Local-First**: Your data stays on your machine, with optional cloud deployment
|
|
35
|
+
- **Canon Management**: Draft → Pending → Canon approval workflow
|
|
36
|
+
- **High Performance**: <300ms query latency, supports 1000+ note vaults
|
|
29
37
|
|
|
30
38
|
## Quick Start
|
|
31
39
|
|
|
@@ -110,6 +118,9 @@ If you prefer to configure manually, create a `config.json`:
|
|
|
110
118
|
"server": {
|
|
111
119
|
"transport": "stdio"
|
|
112
120
|
},
|
|
121
|
+
"template": {
|
|
122
|
+
"activeTemplate": "worldbuilding"
|
|
123
|
+
},
|
|
113
124
|
"indexing": {
|
|
114
125
|
"strategy": "incremental",
|
|
115
126
|
"batchSize": 100,
|
|
@@ -119,6 +130,53 @@ If you prefer to configure manually, create a `config.json`:
|
|
|
119
130
|
}
|
|
120
131
|
```
|
|
121
132
|
|
|
133
|
+
### Choosing a Template
|
|
134
|
+
|
|
135
|
+
Set `activeTemplate` to one of the built-in templates:
|
|
136
|
+
|
|
137
|
+
| Template | Use Case | Entity Types |
|
|
138
|
+
|----------|----------|--------------|
|
|
139
|
+
| `worldbuilding` | Fiction writers, game masters | Characters, Locations, Events, Factions, Lore, Assets, References |
|
|
140
|
+
| `research` | Academics, knowledge workers | Papers, Citations, Concepts, Notes |
|
|
141
|
+
| `people-management` | Managers, team leads | People, Goals, Teams, 1:1 Meetings |
|
|
142
|
+
|
|
143
|
+
### Custom Templates
|
|
144
|
+
|
|
145
|
+
Define custom entity types directly in your `config.json`:
|
|
146
|
+
|
|
147
|
+
```json
|
|
148
|
+
{
|
|
149
|
+
"template": {
|
|
150
|
+
"activeTemplate": "my-template",
|
|
151
|
+
"templates": [{
|
|
152
|
+
"id": "my-template",
|
|
153
|
+
"name": "My Custom Template",
|
|
154
|
+
"version": "1.0.0",
|
|
155
|
+
"entityTypes": [{
|
|
156
|
+
"name": "project",
|
|
157
|
+
"displayName": "Project",
|
|
158
|
+
"pluralName": "Projects",
|
|
159
|
+
"fields": [
|
|
160
|
+
{ "name": "title", "type": "string", "required": true },
|
|
161
|
+
{ "name": "deadline", "type": "date" },
|
|
162
|
+
{ "name": "priority", "type": "enum", "enumValues": ["low", "medium", "high"] }
|
|
163
|
+
]
|
|
164
|
+
}],
|
|
165
|
+
"relationshipTypes": [{
|
|
166
|
+
"id": "depends_on",
|
|
167
|
+
"displayName": "Depends On",
|
|
168
|
+
"sourceTypes": ["project"],
|
|
169
|
+
"targetTypes": ["project"],
|
|
170
|
+
"bidirectional": true,
|
|
171
|
+
"reverseId": "blocks"
|
|
172
|
+
}]
|
|
173
|
+
}]
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
See [samples/](samples/) for complete example vaults for each template.
|
|
179
|
+
|
|
122
180
|
## Architecture
|
|
123
181
|
|
|
124
182
|
```
|
|
@@ -140,7 +198,19 @@ Obsidian Vault → File Watcher → Markdown Parser → Knowledge Graph
|
|
|
140
198
|
|
|
141
199
|
## Development Status
|
|
142
200
|
|
|
143
|
-
**Current**:
|
|
201
|
+
**Current**: v2.0 Template System Complete ✅
|
|
202
|
+
|
|
203
|
+
### v2.0 — Template System (Complete)
|
|
204
|
+
|
|
205
|
+
Hivemind is now domain-agnostic with pluggable templates:
|
|
206
|
+
|
|
207
|
+
- [x] Template registry with config-driven entity definitions
|
|
208
|
+
- [x] Dynamic Zod schema generation from config
|
|
209
|
+
- [x] Auto-generated MCP tools per entity type (`query_<type>`, `list_<type>`)
|
|
210
|
+
- [x] Worldbuilding template extraction (backwards compatible)
|
|
211
|
+
- [x] Custom relationship types per template with validation
|
|
212
|
+
- [x] Built-in templates: worldbuilding, research, people-management
|
|
213
|
+
- [x] Sample vaults for each template
|
|
144
214
|
|
|
145
215
|
### v1.0 — MVP + Core Features (Shipped)
|
|
146
216
|
|
|
@@ -152,27 +222,35 @@ Obsidian Vault → File Watcher → Markdown Parser → Knowledge Graph
|
|
|
152
222
|
- [x] Obsidian plugin with image generation
|
|
153
223
|
- [x] CI/CD with semantic-release and CodeQL scanning
|
|
154
224
|
|
|
155
|
-
###
|
|
156
|
-
|
|
157
|
-
Make Hivemind domain-agnostic with pluggable templates:
|
|
225
|
+
### Coming Soon
|
|
158
226
|
|
|
159
|
-
- [ ] Template registry with config-driven entity definitions
|
|
160
|
-
- [ ] Built-in templates: worldbuilding, research, people-management
|
|
161
|
-
- [ ] Custom entity types via config (no coding required)
|
|
162
|
-
- [ ] Auto-generated MCP tools per entity type
|
|
163
|
-
- [ ] Custom relationship types per template
|
|
164
|
-
|
|
165
|
-
**Also pending:**
|
|
166
227
|
- [ ] Obsidian community plugin submission
|
|
228
|
+
- [ ] Timeline queries with date range filtering
|
|
229
|
+
- [ ] First-run setup wizard
|
|
167
230
|
|
|
168
231
|
## MCP Tools
|
|
169
232
|
|
|
170
|
-
###
|
|
233
|
+
### Dynamic Entity Tools (Auto-Generated)
|
|
234
|
+
|
|
235
|
+
Tools are automatically generated for each entity type defined in the active template:
|
|
236
|
+
|
|
237
|
+
| Tool Pattern | Description |
|
|
238
|
+
|--------------|-------------|
|
|
239
|
+
| `query_<type>` | Get entity by ID/name with relationships and content |
|
|
240
|
+
| `list_<type>` | List all entities of type with optional filters |
|
|
241
|
+
|
|
242
|
+
**Built-in template tools:**
|
|
243
|
+
|
|
244
|
+
| Template | Generated Tools |
|
|
245
|
+
|----------|-----------------|
|
|
246
|
+
| `worldbuilding` | `query_character`, `query_location`, `query_event`, `query_faction`, `query_lore`, `query_asset`, `query_reference` + list variants |
|
|
247
|
+
| `research` | `query_paper`, `query_citation`, `query_concept`, `query_note` + list variants |
|
|
248
|
+
| `people-management` | `query_person`, `query_goal`, `query_team`, `query_one_on_one` + list variants |
|
|
249
|
+
|
|
250
|
+
### Search
|
|
171
251
|
| Tool | Description |
|
|
172
252
|
|------|-------------|
|
|
173
|
-
| `
|
|
174
|
-
| `query_location` | Get location with hierarchy and connected entities |
|
|
175
|
-
| `search_vault` | Hybrid search across all content with filters |
|
|
253
|
+
| `search_vault` | Hybrid search across all content with type/status filters |
|
|
176
254
|
|
|
177
255
|
### Asset Management
|
|
178
256
|
| Tool | Description |
|
|
@@ -204,10 +282,12 @@ Make Hivemind domain-agnostic with pluggable templates:
|
|
|
204
282
|
|
|
205
283
|
## Documentation
|
|
206
284
|
|
|
207
|
-
- [Setup Guide](docs/SETUP_GUIDE.md)
|
|
208
|
-
- [
|
|
209
|
-
- [
|
|
210
|
-
- [
|
|
285
|
+
- [Setup Guide](docs/SETUP_GUIDE.md) — Getting started with Hivemind
|
|
286
|
+
- [Vault Migration Guide](docs/VAULT_MIGRATION_GUIDE.md) — Migrating existing vaults
|
|
287
|
+
- [MCP Compatibility](docs/MCP_COMPATIBILITY.md) — Supported AI clients
|
|
288
|
+
- [ComfyUI Integration](docs/COMFYUI_INTEGRATION.md) — AI image generation
|
|
289
|
+
- [Obsidian Plugin Workflow](docs/OBSIDIAN_PLUGIN_WORKFLOW.md) — Plugin development
|
|
290
|
+
- [Sample Vaults](samples/README.md) — Example vaults for each built-in template
|
|
211
291
|
|
|
212
292
|
## License
|
|
213
293
|
|
package/dist/graph/builder.d.ts
CHANGED
|
@@ -12,15 +12,19 @@ export declare class GraphBuilder {
|
|
|
12
12
|
*/
|
|
13
13
|
private buildRelationships;
|
|
14
14
|
/**
|
|
15
|
-
* Infer relationship type from note types
|
|
15
|
+
* Infer relationship type from note types using template configuration.
|
|
16
|
+
*
|
|
17
|
+
* Queries the template registry for valid relationships between the
|
|
18
|
+
* source and target entity types. Falls back to 'related' if no
|
|
19
|
+
* specific relationship is defined.
|
|
16
20
|
*/
|
|
17
21
|
private inferRelationType;
|
|
18
22
|
/**
|
|
19
|
-
* Check if a relationship type should be bidirectional
|
|
23
|
+
* Check if a relationship type should be bidirectional using template config.
|
|
20
24
|
*/
|
|
21
25
|
private isBidirectional;
|
|
22
26
|
/**
|
|
23
|
-
* Get reverse relationship type
|
|
27
|
+
* Get reverse relationship type using template config.
|
|
24
28
|
*/
|
|
25
29
|
private getReverseRelationType;
|
|
26
30
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/graph/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAa,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/graph/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAa,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGjD,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAmB;gBAEjB,EAAE,EAAE,gBAAgB;IAIhC;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI;IAwBpC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsC1B;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAgCzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAsB9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAW7B;;OAEG;IACH,QAAQ,IAAI,cAAc;IA8B1B;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI;IASxD;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAGjC"}
|
package/dist/graph/builder.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { templateRegistry } from '../templates/registry.js';
|
|
1
2
|
export class GraphBuilder {
|
|
2
3
|
db;
|
|
3
4
|
constructor(db) {
|
|
@@ -56,49 +57,78 @@ export class GraphBuilder {
|
|
|
56
57
|
}
|
|
57
58
|
}
|
|
58
59
|
/**
|
|
59
|
-
* Infer relationship type from note types
|
|
60
|
+
* Infer relationship type from note types using template configuration.
|
|
61
|
+
*
|
|
62
|
+
* Queries the template registry for valid relationships between the
|
|
63
|
+
* source and target entity types. Falls back to 'related' if no
|
|
64
|
+
* specific relationship is defined.
|
|
60
65
|
*/
|
|
61
66
|
inferRelationType(source, target) {
|
|
62
67
|
const sourceType = source.frontmatter.type;
|
|
63
68
|
const targetType = target.frontmatter.type;
|
|
64
|
-
//
|
|
65
|
-
if (sourceType
|
|
66
|
-
return '
|
|
69
|
+
// If either type is undefined, use default
|
|
70
|
+
if (!sourceType || !targetType) {
|
|
71
|
+
return 'related';
|
|
67
72
|
}
|
|
68
|
-
//
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
// Try to get active template's valid relationships
|
|
74
|
+
try {
|
|
75
|
+
const validRels = templateRegistry.getValidRelationships(sourceType, targetType);
|
|
76
|
+
// Return first valid relationship that isn't the generic 'related'
|
|
77
|
+
// (prefer specific relationships over generic fallback)
|
|
78
|
+
const specificRel = validRels.find((rel) => rel.id !== 'related');
|
|
79
|
+
if (specificRel) {
|
|
80
|
+
return specificRel.id;
|
|
81
|
+
}
|
|
82
|
+
// If only 'related' is available, use it
|
|
83
|
+
if (validRels.length > 0) {
|
|
84
|
+
return validRels[0].id;
|
|
85
|
+
}
|
|
75
86
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return 'connected_to';
|
|
87
|
+
catch {
|
|
88
|
+
// No active template, fall through to default
|
|
79
89
|
}
|
|
80
|
-
// Default
|
|
90
|
+
// Default fallback
|
|
81
91
|
return 'related';
|
|
82
92
|
}
|
|
83
93
|
/**
|
|
84
|
-
* Check if a relationship type should be bidirectional
|
|
94
|
+
* Check if a relationship type should be bidirectional using template config.
|
|
85
95
|
*/
|
|
86
96
|
isBidirectional(relType) {
|
|
87
|
-
|
|
88
|
-
|
|
97
|
+
try {
|
|
98
|
+
const relConfig = templateRegistry.getRelationshipType(relType);
|
|
99
|
+
if (relConfig) {
|
|
100
|
+
return relConfig.bidirectional;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
// No active template, fall through to defaults
|
|
105
|
+
}
|
|
106
|
+
// Default bidirectional types for backwards compatibility
|
|
107
|
+
const defaultBidirectional = ['knows', 'connected_to', 'related'];
|
|
108
|
+
return defaultBidirectional.includes(relType);
|
|
89
109
|
}
|
|
90
110
|
/**
|
|
91
|
-
* Get reverse relationship type
|
|
111
|
+
* Get reverse relationship type using template config.
|
|
92
112
|
*/
|
|
93
113
|
getReverseRelationType(relType) {
|
|
94
|
-
|
|
114
|
+
try {
|
|
115
|
+
const relConfig = templateRegistry.getRelationshipType(relType);
|
|
116
|
+
if (relConfig && relConfig.reverseId) {
|
|
117
|
+
return relConfig.reverseId;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// No active template, fall through to defaults
|
|
122
|
+
}
|
|
123
|
+
// Default reverse mappings for backwards compatibility
|
|
124
|
+
const defaultReverseMap = {
|
|
95
125
|
'knows': 'knows',
|
|
96
126
|
'connected_to': 'connected_to',
|
|
97
127
|
'related': 'related',
|
|
98
128
|
'located_in': 'has_inhabitant',
|
|
99
129
|
'has_inhabitant': 'located_in',
|
|
100
130
|
};
|
|
101
|
-
return
|
|
131
|
+
return defaultReverseMap[relType] || 'related';
|
|
102
132
|
}
|
|
103
133
|
/**
|
|
104
134
|
* Find note by name or ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/graph/builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/graph/builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -84,15 +84,17 @@ export declare function parseListToolName(toolName: string): string | null;
|
|
|
84
84
|
* Format an entity with its relationships for response.
|
|
85
85
|
*
|
|
86
86
|
* Generic formatter that works with any entity type.
|
|
87
|
+
* Groups relationships by relationship type (e.g., "Knows", "Member Of").
|
|
87
88
|
*
|
|
88
89
|
* @param entityType - Entity type configuration
|
|
89
|
-
* @param result - Query result with node and relatedNodes
|
|
90
|
+
* @param result - Query result with node, relationships, and relatedNodes
|
|
90
91
|
* @param includeContent - Whether to include content body
|
|
91
92
|
* @param contentLimit - Maximum content length
|
|
92
93
|
* @returns Formatted markdown response
|
|
93
94
|
*/
|
|
94
95
|
export declare function formatEntityWithRelationships(entityType: EntityTypeConfig, result: {
|
|
95
96
|
node: any;
|
|
97
|
+
relationships?: any[];
|
|
96
98
|
relatedNodes: any[];
|
|
97
99
|
}, includeContent?: boolean, contentLimit?: number): string;
|
|
98
100
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-generator.d.ts","sourceRoot":"","sources":["../../src/mcp/tool-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;iBAK/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,GAAG,cAAc,CA8B9E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,cAAc,CAsC7E;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,CAS7F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGlE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGjE;AAED
|
|
1
|
+
{"version":3,"file":"tool-generator.d.ts","sourceRoot":"","sources":["../../src/mcp/tool-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ,CAAC;QACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;iBAK/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,gBAAgB,GAAG,cAAc,CA8B9E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,GAAG,cAAc,CAsC7E;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,gBAAgB,EAAE,GAAG,cAAc,EAAE,CAS7F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGlE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,gBAAgB,EAC5B,MAAM,EAAE;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,YAAY,EAAE,GAAG,EAAE,CAAA;CAAE,EACjE,cAAc,UAAO,EACrB,YAAY,SAAM,GACjB,MAAM,CAyGR;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,GAAG,EAAE,EACZ,cAAc,UAAQ,EACtB,YAAY,SAAM,GACjB,MAAM,CAyBR"}
|
|
@@ -142,15 +142,16 @@ export function parseListToolName(toolName) {
|
|
|
142
142
|
* Format an entity with its relationships for response.
|
|
143
143
|
*
|
|
144
144
|
* Generic formatter that works with any entity type.
|
|
145
|
+
* Groups relationships by relationship type (e.g., "Knows", "Member Of").
|
|
145
146
|
*
|
|
146
147
|
* @param entityType - Entity type configuration
|
|
147
|
-
* @param result - Query result with node and relatedNodes
|
|
148
|
+
* @param result - Query result with node, relationships, and relatedNodes
|
|
148
149
|
* @param includeContent - Whether to include content body
|
|
149
150
|
* @param contentLimit - Maximum content length
|
|
150
151
|
* @returns Formatted markdown response
|
|
151
152
|
*/
|
|
152
153
|
export function formatEntityWithRelationships(entityType, result, includeContent = true, contentLimit = 500) {
|
|
153
|
-
const { node, relatedNodes } = result;
|
|
154
|
+
const { node, relationships, relatedNodes } = result;
|
|
154
155
|
const props = node.properties;
|
|
155
156
|
const displayName = entityType.displayName;
|
|
156
157
|
let response = `# ${node.title}\n\n`;
|
|
@@ -190,10 +191,45 @@ export function formatEntityWithRelationships(entityType, result, includeContent
|
|
|
190
191
|
response += `${content}\n\n`;
|
|
191
192
|
}
|
|
192
193
|
}
|
|
193
|
-
// Relationships (from graph)
|
|
194
|
-
if (relatedNodes.length > 0) {
|
|
194
|
+
// Relationships (from graph) - group by relationship type
|
|
195
|
+
if (relationships && relationships.length > 0 && relatedNodes.length > 0) {
|
|
196
|
+
response += `## Relationships\n`;
|
|
197
|
+
// Build a map from node ID to node for quick lookup
|
|
198
|
+
const nodeMap = new Map();
|
|
199
|
+
nodeMap.set(node.id, node);
|
|
200
|
+
for (const related of relatedNodes) {
|
|
201
|
+
nodeMap.set(related.id, related);
|
|
202
|
+
}
|
|
203
|
+
// Group relationships by relationship type
|
|
204
|
+
const byRelType = {};
|
|
205
|
+
for (const rel of relationships) {
|
|
206
|
+
const relType = rel.relationType || 'related';
|
|
207
|
+
// Format relationship type for display (snake_case to Title Case)
|
|
208
|
+
const typeLabel = relType
|
|
209
|
+
.split('_')
|
|
210
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
211
|
+
.join(' ');
|
|
212
|
+
if (!byRelType[typeLabel]) {
|
|
213
|
+
byRelType[typeLabel] = [];
|
|
214
|
+
}
|
|
215
|
+
// Determine which node is the "other" node in the relationship
|
|
216
|
+
const otherId = rel.sourceId === node.id ? rel.targetId : rel.sourceId;
|
|
217
|
+
const otherNode = nodeMap.get(otherId);
|
|
218
|
+
if (otherNode) {
|
|
219
|
+
byRelType[typeLabel].push(otherNode.title);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// Output grouped relationships
|
|
223
|
+
for (const [typeLabel, titles] of Object.entries(byRelType)) {
|
|
224
|
+
// Deduplicate titles
|
|
225
|
+
const uniqueTitles = [...new Set(titles)];
|
|
226
|
+
response += `**${typeLabel}**: ${uniqueTitles.join(', ')}\n`;
|
|
227
|
+
}
|
|
228
|
+
response += `\n`;
|
|
229
|
+
}
|
|
230
|
+
else if (relatedNodes.length > 0) {
|
|
231
|
+
// Fallback: group by entity type if no relationship data available
|
|
195
232
|
response += `## Relationships\n`;
|
|
196
|
-
// Group by type
|
|
197
233
|
const byType = {};
|
|
198
234
|
for (const related of relatedNodes) {
|
|
199
235
|
const type = related.type || 'unknown';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-generator.js","sourceRoot":"","sources":["../../src/mcp/tool-generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tool-generator.js","sourceRoot":"","sources":["../../src/mcp/tool-generator.ts"],"names":[],"mappings":"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"}
|
package/dist/search/engine.d.ts
CHANGED
|
@@ -21,11 +21,19 @@ export declare class SearchEngine {
|
|
|
21
21
|
type?: string[];
|
|
22
22
|
status?: string[];
|
|
23
23
|
};
|
|
24
|
+
/** Filter relationships by type (only applies when includeRelationships is true) */
|
|
25
|
+
relationshipType?: string;
|
|
24
26
|
}): Promise<QueryResult>;
|
|
25
27
|
/**
|
|
26
28
|
* Get a node with its relationships
|
|
29
|
+
*
|
|
30
|
+
* @param id - Node ID to retrieve
|
|
31
|
+
* @param options - Optional filtering options
|
|
32
|
+
* @param options.relationshipType - Filter relationships by type
|
|
27
33
|
*/
|
|
28
|
-
getNodeWithRelationships(id: string
|
|
34
|
+
getNodeWithRelationships(id: string, options?: {
|
|
35
|
+
relationshipType?: string;
|
|
36
|
+
}): Promise<{
|
|
29
37
|
node: any;
|
|
30
38
|
relationships: any[];
|
|
31
39
|
relatedNodes: any[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/search/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,QAAQ,EAAE;QACR,MAAM,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;QACnC,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAmB;gBAEjB,EAAE,EAAE,gBAAgB;IAIhC;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;SACnB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/search/engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,QAAQ,EAAE;QACR,MAAM,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;QACnC,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAmB;gBAEjB,EAAE,EAAE,gBAAgB;IAIhC;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACpC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,oBAAoB,CAAC,EAAE,OAAO,CAAC;QAC/B,OAAO,CAAC,EAAE;YACR,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;YAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;SACnB,CAAC;QACF,oFAAoF;QACpF,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC,WAAW,CAAC;IAoDxB;;;;;;OAMG;IACG,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,GAAG,OAAO,CAAC;QACV,IAAI,EAAE,GAAG,CAAC;QACV,aAAa,EAAE,GAAG,EAAE,CAAC;QACrB,YAAY,EAAE,GAAG,EAAE,CAAC;KACrB,GAAG,IAAI,CAAC;IA6BT;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAIlD;;OAEG;IACH,QAAQ;;;;;;;CAGT"}
|
package/dist/search/engine.js
CHANGED
|
@@ -33,7 +33,11 @@ export class SearchEngine {
|
|
|
33
33
|
let relationships = [];
|
|
34
34
|
if (options?.includeRelationships) {
|
|
35
35
|
for (const node of nodes) {
|
|
36
|
-
|
|
36
|
+
let rels = this.db.getRelationships(node.id);
|
|
37
|
+
// Filter by relationship type if specified
|
|
38
|
+
if (options.relationshipType) {
|
|
39
|
+
rels = rels.filter((rel) => rel.relationType === options.relationshipType);
|
|
40
|
+
}
|
|
37
41
|
relationships.push(...rels);
|
|
38
42
|
}
|
|
39
43
|
}
|
|
@@ -49,13 +53,21 @@ export class SearchEngine {
|
|
|
49
53
|
}
|
|
50
54
|
/**
|
|
51
55
|
* Get a node with its relationships
|
|
56
|
+
*
|
|
57
|
+
* @param id - Node ID to retrieve
|
|
58
|
+
* @param options - Optional filtering options
|
|
59
|
+
* @param options.relationshipType - Filter relationships by type
|
|
52
60
|
*/
|
|
53
|
-
async getNodeWithRelationships(id) {
|
|
61
|
+
async getNodeWithRelationships(id, options) {
|
|
54
62
|
const node = this.db.getNode(id);
|
|
55
63
|
if (!node)
|
|
56
64
|
return null;
|
|
57
|
-
|
|
58
|
-
//
|
|
65
|
+
let relationships = this.db.getRelationships(id);
|
|
66
|
+
// Filter by relationship type if specified
|
|
67
|
+
if (options?.relationshipType) {
|
|
68
|
+
relationships = relationships.filter((rel) => rel.relationType === options.relationshipType);
|
|
69
|
+
}
|
|
70
|
+
// Get related nodes (only from filtered relationships)
|
|
59
71
|
const relatedIds = new Set();
|
|
60
72
|
for (const rel of relationships) {
|
|
61
73
|
if (rel.sourceId !== id)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/search/engine.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,YAAY;IACf,EAAE,CAAmB;IAE7B,YAAY,EAAoB;QAC9B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/search/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Built-in people management template.
|
|
3
|
+
*
|
|
4
|
+
* Defines entity types for team and people management:
|
|
5
|
+
* - person: Team members, contacts, and individuals
|
|
6
|
+
* - goal: Objectives, OKRs, and targets
|
|
7
|
+
* - team: Groups, departments, and organizational units
|
|
8
|
+
* - one_on_one: 1:1 meeting notes and follow-ups
|
|
9
|
+
*/
|
|
10
|
+
import type { TemplateDefinition } from '../types.js';
|
|
11
|
+
/**
|
|
12
|
+
* People management template definition.
|
|
13
|
+
*
|
|
14
|
+
* Designed for managers, team leads, and anyone who needs to track
|
|
15
|
+
* people, goals, teams, and 1:1 conversations.
|
|
16
|
+
*/
|
|
17
|
+
export declare const peopleManagementTemplate: TemplateDefinition;
|
|
18
|
+
//# sourceMappingURL=people-management.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"people-management.d.ts","sourceRoot":"","sources":["../../../src/templates/builtin/people-management.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,kBAmgBtC,CAAC"}
|