@hiveforge/hivemind-mcp 2.2.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.
Files changed (77) hide show
  1. package/README.md +114 -25
  2. package/dist/cli.js +193 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/graph/builder.d.ts +7 -3
  5. package/dist/graph/builder.d.ts.map +1 -1
  6. package/dist/graph/builder.js +51 -21
  7. package/dist/graph/builder.js.map +1 -1
  8. package/dist/mcp/index.d.ts +8 -0
  9. package/dist/mcp/index.d.ts.map +1 -0
  10. package/dist/mcp/index.js +8 -0
  11. package/dist/mcp/index.js.map +1 -0
  12. package/dist/mcp/tool-generator.d.ts +110 -0
  13. package/dist/mcp/tool-generator.d.ts.map +1 -0
  14. package/dist/mcp/tool-generator.js +281 -0
  15. package/dist/mcp/tool-generator.js.map +1 -0
  16. package/dist/parser/markdown.d.ts +9 -0
  17. package/dist/parser/markdown.d.ts.map +1 -1
  18. package/dist/parser/markdown.js +13 -2
  19. package/dist/parser/markdown.js.map +1 -1
  20. package/dist/search/engine.d.ts +9 -1
  21. package/dist/search/engine.d.ts.map +1 -1
  22. package/dist/search/engine.js +16 -4
  23. package/dist/search/engine.js.map +1 -1
  24. package/dist/server.d.ts +8 -4
  25. package/dist/server.d.ts.map +1 -1
  26. package/dist/server.js +66 -199
  27. package/dist/server.js.map +1 -1
  28. package/dist/templates/builtin/people-management.d.ts +18 -0
  29. package/dist/templates/builtin/people-management.d.ts.map +1 -0
  30. package/dist/templates/builtin/people-management.js +523 -0
  31. package/dist/templates/builtin/people-management.js.map +1 -0
  32. package/dist/templates/builtin/research.d.ts +18 -0
  33. package/dist/templates/builtin/research.d.ts.map +1 -0
  34. package/dist/templates/builtin/research.js +349 -0
  35. package/dist/templates/builtin/research.js.map +1 -0
  36. package/dist/templates/builtin/worldbuilding.d.ts +20 -0
  37. package/dist/templates/builtin/worldbuilding.d.ts.map +1 -0
  38. package/dist/templates/builtin/worldbuilding.js +602 -0
  39. package/dist/templates/builtin/worldbuilding.js.map +1 -0
  40. package/dist/templates/detector.d.ts +51 -0
  41. package/dist/templates/detector.d.ts.map +1 -0
  42. package/dist/templates/detector.js +71 -0
  43. package/dist/templates/detector.js.map +1 -0
  44. package/dist/templates/folder-mapper.d.ts +66 -0
  45. package/dist/templates/folder-mapper.d.ts.map +1 -0
  46. package/dist/templates/folder-mapper.js +148 -0
  47. package/dist/templates/folder-mapper.js.map +1 -0
  48. package/dist/templates/index.d.ts +15 -0
  49. package/dist/templates/index.d.ts.map +1 -0
  50. package/dist/templates/index.js +15 -0
  51. package/dist/templates/index.js.map +1 -0
  52. package/dist/templates/loader.d.ts +117 -0
  53. package/dist/templates/loader.d.ts.map +1 -0
  54. package/dist/templates/loader.js +208 -0
  55. package/dist/templates/loader.js.map +1 -0
  56. package/dist/templates/registry.d.ts +127 -0
  57. package/dist/templates/registry.d.ts.map +1 -0
  58. package/dist/templates/registry.js +205 -0
  59. package/dist/templates/registry.js.map +1 -0
  60. package/dist/templates/schema-factory.d.ts +76 -0
  61. package/dist/templates/schema-factory.d.ts.map +1 -0
  62. package/dist/templates/schema-factory.js +171 -0
  63. package/dist/templates/schema-factory.js.map +1 -0
  64. package/dist/templates/types.d.ts +40 -0
  65. package/dist/templates/types.d.ts.map +1 -1
  66. package/dist/templates/validator.d.ts +310 -0
  67. package/dist/templates/validator.d.ts.map +1 -0
  68. package/dist/templates/validator.js +169 -0
  69. package/dist/templates/validator.js.map +1 -0
  70. package/dist/types/index.d.ts +57 -21
  71. package/dist/types/index.d.ts.map +1 -1
  72. package/dist/types/index.js +39 -15
  73. package/dist/types/index.js.map +1 -1
  74. package/dist/vault/reader.d.ts.map +1 -1
  75. package/dist/vault/reader.js +15 -1
  76. package/dist/vault/reader.js.map +1 -1
  77. package/package.json +7 -4
@@ -0,0 +1,8 @@
1
+ /**
2
+ * MCP (Model Context Protocol) utilities.
3
+ *
4
+ * This module provides dynamic tool generation and related utilities
5
+ * for the Hivemind MCP server.
6
+ */
7
+ export * from './tool-generator.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Dynamic MCP tool generation from template entity types.
3
+ *
4
+ * Generates query_<entityType> and list_<entityType> tools for each
5
+ * entity type defined in the active template.
6
+ */
7
+ import type { EntityTypeConfig } from '../templates/types.js';
8
+ import { z } from 'zod';
9
+ /**
10
+ * MCP Tool definition structure.
11
+ */
12
+ export interface ToolDefinition {
13
+ name: string;
14
+ description: string;
15
+ inputSchema: {
16
+ type: 'object';
17
+ properties: Record<string, any>;
18
+ required: string[];
19
+ };
20
+ }
21
+ /**
22
+ * Standard query arguments schema.
23
+ * All query tools share this interface.
24
+ */
25
+ export declare const QueryEntityArgsSchema: z.ZodObject<{
26
+ id: z.ZodString;
27
+ includeContent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
28
+ contentLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
29
+ }, z.core.$strip>;
30
+ export type QueryEntityArgs = z.infer<typeof QueryEntityArgsSchema>;
31
+ /**
32
+ * Standard list arguments schema.
33
+ * All list tools share this interface.
34
+ */
35
+ export declare const ListEntityArgsSchema: z.ZodObject<{
36
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
37
+ status: z.ZodOptional<z.ZodEnum<{
38
+ draft: "draft";
39
+ pending: "pending";
40
+ canon: "canon";
41
+ "non-canon": "non-canon";
42
+ archived: "archived";
43
+ }>>;
44
+ includeContent: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
45
+ contentLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
46
+ }, z.core.$strip>;
47
+ export type ListEntityArgs = z.infer<typeof ListEntityArgsSchema>;
48
+ /**
49
+ * Generate a query_<entityType> tool definition.
50
+ *
51
+ * @param entityType - Entity type configuration from template
52
+ * @returns Tool definition for MCP registration
53
+ */
54
+ export declare function generateQueryTool(entityType: EntityTypeConfig): ToolDefinition;
55
+ /**
56
+ * Generate a list_<entityType> tool definition.
57
+ *
58
+ * @param entityType - Entity type configuration from template
59
+ * @returns Tool definition for MCP registration
60
+ */
61
+ export declare function generateListTool(entityType: EntityTypeConfig): ToolDefinition;
62
+ /**
63
+ * Generate all tools for a set of entity types.
64
+ *
65
+ * @param entityTypes - Array of entity type configurations
66
+ * @returns Array of tool definitions (query + list for each type)
67
+ */
68
+ export declare function generateToolsForEntityTypes(entityTypes: EntityTypeConfig[]): ToolDefinition[];
69
+ /**
70
+ * Check if a tool name matches the query_<entityType> pattern.
71
+ *
72
+ * @param toolName - Tool name to check
73
+ * @returns Entity type name if match, null otherwise
74
+ */
75
+ export declare function parseQueryToolName(toolName: string): string | null;
76
+ /**
77
+ * Check if a tool name matches the list_<entityType> pattern.
78
+ *
79
+ * @param toolName - Tool name to check
80
+ * @returns Entity type name if match, null otherwise
81
+ */
82
+ export declare function parseListToolName(toolName: string): string | null;
83
+ /**
84
+ * Format an entity with its relationships for response.
85
+ *
86
+ * Generic formatter that works with any entity type.
87
+ * Groups relationships by relationship type (e.g., "Knows", "Member Of").
88
+ *
89
+ * @param entityType - Entity type configuration
90
+ * @param result - Query result with node, relationships, and relatedNodes
91
+ * @param includeContent - Whether to include content body
92
+ * @param contentLimit - Maximum content length
93
+ * @returns Formatted markdown response
94
+ */
95
+ export declare function formatEntityWithRelationships(entityType: EntityTypeConfig, result: {
96
+ node: any;
97
+ relationships?: any[];
98
+ relatedNodes: any[];
99
+ }, includeContent?: boolean, contentLimit?: number): string;
100
+ /**
101
+ * Format a list of entities for response.
102
+ *
103
+ * @param entityType - Entity type configuration
104
+ * @param nodes - Array of nodes to format
105
+ * @param includeContent - Whether to include content snippets
106
+ * @param contentLimit - Maximum content length per snippet
107
+ * @returns Formatted markdown response
108
+ */
109
+ export declare function formatEntityList(entityType: EntityTypeConfig, nodes: any[], includeContent?: boolean, contentLimit?: number): string;
110
+ //# sourceMappingURL=tool-generator.d.ts.map
@@ -0,0 +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;;;;;;;;;;;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"}
@@ -0,0 +1,281 @@
1
+ /**
2
+ * Dynamic MCP tool generation from template entity types.
3
+ *
4
+ * Generates query_<entityType> and list_<entityType> tools for each
5
+ * entity type defined in the active template.
6
+ */
7
+ import { z } from 'zod';
8
+ /**
9
+ * Standard query arguments schema.
10
+ * All query tools share this interface.
11
+ */
12
+ export const QueryEntityArgsSchema = z.object({
13
+ id: z.string().describe('Entity ID or name to query'),
14
+ includeContent: z.boolean().optional().default(true).describe('Include content body in response'),
15
+ contentLimit: z.number().min(100).max(5000).optional().default(500).describe('Maximum characters of content to return'),
16
+ });
17
+ /**
18
+ * Standard list arguments schema.
19
+ * All list tools share this interface.
20
+ */
21
+ export const ListEntityArgsSchema = z.object({
22
+ limit: z.number().min(1).max(100).optional().default(20).describe('Maximum number of results to return'),
23
+ status: z.enum(['draft', 'pending', 'canon', 'non-canon', 'archived']).optional().describe('Filter by status'),
24
+ includeContent: z.boolean().optional().default(false).describe('Include content snippets in response'),
25
+ contentLimit: z.number().min(50).max(500).optional().default(200).describe('Maximum characters per content snippet'),
26
+ });
27
+ /**
28
+ * Generate a query_<entityType> tool definition.
29
+ *
30
+ * @param entityType - Entity type configuration from template
31
+ * @returns Tool definition for MCP registration
32
+ */
33
+ export function generateQueryTool(entityType) {
34
+ const typeName = entityType.name;
35
+ const displayName = entityType.displayName;
36
+ return {
37
+ name: `query_${typeName}`,
38
+ description: `Retrieve detailed information about a ${displayName.toLowerCase()} by ID or name. Returns properties, content, and relationships.`,
39
+ inputSchema: {
40
+ type: 'object',
41
+ properties: {
42
+ id: {
43
+ type: 'string',
44
+ description: `${displayName} ID or name to query`,
45
+ },
46
+ includeContent: {
47
+ type: 'boolean',
48
+ description: 'Include content body in response (default: true)',
49
+ default: true,
50
+ },
51
+ contentLimit: {
52
+ type: 'number',
53
+ description: 'Maximum characters of content to return (default: 500, max: 5000)',
54
+ default: 500,
55
+ minimum: 100,
56
+ maximum: 5000,
57
+ },
58
+ },
59
+ required: ['id'],
60
+ },
61
+ };
62
+ }
63
+ /**
64
+ * Generate a list_<entityType> tool definition.
65
+ *
66
+ * @param entityType - Entity type configuration from template
67
+ * @returns Tool definition for MCP registration
68
+ */
69
+ export function generateListTool(entityType) {
70
+ const typeName = entityType.name;
71
+ const pluralName = entityType.pluralName;
72
+ return {
73
+ name: `list_${typeName}`,
74
+ description: `List all ${pluralName.toLowerCase()} in the vault. Supports filtering by status and pagination.`,
75
+ inputSchema: {
76
+ type: 'object',
77
+ properties: {
78
+ limit: {
79
+ type: 'number',
80
+ description: 'Maximum number of results to return (default: 20, max: 100)',
81
+ default: 20,
82
+ minimum: 1,
83
+ maximum: 100,
84
+ },
85
+ status: {
86
+ type: 'string',
87
+ description: 'Filter by status (draft, pending, canon, non-canon, archived)',
88
+ enum: ['draft', 'pending', 'canon', 'non-canon', 'archived'],
89
+ },
90
+ includeContent: {
91
+ type: 'boolean',
92
+ description: 'Include content snippets in response (default: false)',
93
+ default: false,
94
+ },
95
+ contentLimit: {
96
+ type: 'number',
97
+ description: 'Maximum characters per content snippet (default: 200)',
98
+ default: 200,
99
+ minimum: 50,
100
+ maximum: 500,
101
+ },
102
+ },
103
+ required: [],
104
+ },
105
+ };
106
+ }
107
+ /**
108
+ * Generate all tools for a set of entity types.
109
+ *
110
+ * @param entityTypes - Array of entity type configurations
111
+ * @returns Array of tool definitions (query + list for each type)
112
+ */
113
+ export function generateToolsForEntityTypes(entityTypes) {
114
+ const tools = [];
115
+ for (const entityType of entityTypes) {
116
+ tools.push(generateQueryTool(entityType));
117
+ tools.push(generateListTool(entityType));
118
+ }
119
+ return tools;
120
+ }
121
+ /**
122
+ * Check if a tool name matches the query_<entityType> pattern.
123
+ *
124
+ * @param toolName - Tool name to check
125
+ * @returns Entity type name if match, null otherwise
126
+ */
127
+ export function parseQueryToolName(toolName) {
128
+ const match = toolName.match(/^query_(\w+)$/);
129
+ return match ? match[1] : null;
130
+ }
131
+ /**
132
+ * Check if a tool name matches the list_<entityType> pattern.
133
+ *
134
+ * @param toolName - Tool name to check
135
+ * @returns Entity type name if match, null otherwise
136
+ */
137
+ export function parseListToolName(toolName) {
138
+ const match = toolName.match(/^list_(\w+)$/);
139
+ return match ? match[1] : null;
140
+ }
141
+ /**
142
+ * Format an entity with its relationships for response.
143
+ *
144
+ * Generic formatter that works with any entity type.
145
+ * Groups relationships by relationship type (e.g., "Knows", "Member Of").
146
+ *
147
+ * @param entityType - Entity type configuration
148
+ * @param result - Query result with node, relationships, and relatedNodes
149
+ * @param includeContent - Whether to include content body
150
+ * @param contentLimit - Maximum content length
151
+ * @returns Formatted markdown response
152
+ */
153
+ export function formatEntityWithRelationships(entityType, result, includeContent = true, contentLimit = 500) {
154
+ const { node, relationships, relatedNodes } = result;
155
+ const props = node.properties;
156
+ const displayName = entityType.displayName;
157
+ let response = `# ${node.title}\n\n`;
158
+ response += `**Type**: ${displayName} | **Status**: ${node.status} | **ID**: \`${node.id}\`\n\n`;
159
+ // Display configured fields from entity type
160
+ const fieldValues = [];
161
+ for (const field of entityType.fields) {
162
+ const value = props[field.name];
163
+ if (value !== undefined && value !== null && value !== '') {
164
+ // Format field name for display (capitalize first letter)
165
+ const fieldLabel = field.name.charAt(0).toUpperCase() + field.name.slice(1).replace(/_/g, ' ');
166
+ if (field.type === 'array') {
167
+ if (Array.isArray(value) && value.length > 0) {
168
+ fieldValues.push(`**${fieldLabel}**: ${value.join(', ')}`);
169
+ }
170
+ }
171
+ else if (field.type === 'record') {
172
+ // Skip complex record types in summary
173
+ }
174
+ else {
175
+ fieldValues.push(`**${fieldLabel}**: ${value}`);
176
+ }
177
+ }
178
+ }
179
+ if (fieldValues.length > 0) {
180
+ response += fieldValues.slice(0, 5).join(' | ') + '\n\n';
181
+ }
182
+ // Content (if requested)
183
+ if (includeContent && node.content) {
184
+ response += `## Description\n`;
185
+ const content = node.content.trim();
186
+ if (content.length > contentLimit) {
187
+ response += `${content.substring(0, contentLimit)}...\n\n`;
188
+ response += `*[Truncated at ${contentLimit} chars. Full content: ${content.length} chars]*\n\n`;
189
+ }
190
+ else {
191
+ response += `${content}\n\n`;
192
+ }
193
+ }
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
232
+ response += `## Relationships\n`;
233
+ const byType = {};
234
+ for (const related of relatedNodes) {
235
+ const type = related.type || 'unknown';
236
+ if (!byType[type])
237
+ byType[type] = [];
238
+ byType[type].push(related);
239
+ }
240
+ for (const [type, nodes] of Object.entries(byType)) {
241
+ const typeLabel = type.charAt(0).toUpperCase() + type.slice(1) + 's';
242
+ response += `**${typeLabel}**: ${nodes.map((n) => n.title).join(', ')}\n`;
243
+ }
244
+ response += `\n`;
245
+ }
246
+ response += `---\n*Source: ${node.filePath}*\n`;
247
+ response += `*Last updated: ${new Date(node.updated).toLocaleString()}*`;
248
+ return response;
249
+ }
250
+ /**
251
+ * Format a list of entities for response.
252
+ *
253
+ * @param entityType - Entity type configuration
254
+ * @param nodes - Array of nodes to format
255
+ * @param includeContent - Whether to include content snippets
256
+ * @param contentLimit - Maximum content length per snippet
257
+ * @returns Formatted markdown response
258
+ */
259
+ export function formatEntityList(entityType, nodes, includeContent = false, contentLimit = 200) {
260
+ const pluralName = entityType.pluralName;
261
+ let response = `# ${pluralName}\n\n`;
262
+ response += `Found ${nodes.length} ${pluralName.toLowerCase()}:\n\n`;
263
+ for (const node of nodes) {
264
+ response += `## ${node.title}\n`;
265
+ response += `- **ID**: \`${node.id}\`\n`;
266
+ response += `- **Status**: ${node.status}\n`;
267
+ response += `- **Path**: ${node.filePath}\n`;
268
+ if (includeContent && node.content) {
269
+ const content = node.content.trim();
270
+ if (content.length > contentLimit) {
271
+ response += `- **Snippet**: ${content.substring(0, contentLimit)}...\n`;
272
+ }
273
+ else {
274
+ response += `- **Snippet**: ${content}\n`;
275
+ }
276
+ }
277
+ response += `\n`;
278
+ }
279
+ return response;
280
+ }
281
+ //# sourceMappingURL=tool-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-generator.js","sourceRoot":"","sources":["../../src/mcp/tool-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAexB;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACrD,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACjG,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;CACxH,CAAC,CAAC;AAIH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACxG,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC9G,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACtG,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC;CACrH,CAAC,CAAC;AAIH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAA4B;IAC5D,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;IACjC,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAE3C,OAAO;QACL,IAAI,EAAE,SAAS,QAAQ,EAAE;QACzB,WAAW,EAAE,yCAAyC,WAAW,CAAC,WAAW,EAAE,iEAAiE;QAChJ,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,GAAG,WAAW,sBAAsB;iBAClD;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kDAAkD;oBAC/D,OAAO,EAAE,IAAI;iBACd;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mEAAmE;oBAChF,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,IAAI;iBACd;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAA4B;IAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC;IACjC,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAEzC,OAAO;QACL,IAAI,EAAE,QAAQ,QAAQ,EAAE;QACxB,WAAW,EAAE,YAAY,UAAU,CAAC,WAAW,EAAE,6DAA6D;QAC9G,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6DAA6D;oBAC1E,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,GAAG;iBACb;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+DAA+D;oBAC5E,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,CAAC;iBAC7D;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,uDAAuD;oBACpE,OAAO,EAAE,KAAK;iBACf;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uDAAuD;oBACpE,OAAO,EAAE,GAAG;oBACZ,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,GAAG;iBACb;aACF;YACD,QAAQ,EAAE,EAAE;SACb;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CAAC,WAA+B;IACzE,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC7C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,6BAA6B,CAC3C,UAA4B,EAC5B,MAAiE,EACjE,cAAc,GAAG,IAAI,EACrB,YAAY,GAAG,GAAG;IAElB,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IACrD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;IAC9B,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC;IAE3C,IAAI,QAAQ,GAAG,KAAK,IAAI,CAAC,KAAK,MAAM,CAAC;IACrC,QAAQ,IAAI,aAAa,WAAW,kBAAkB,IAAI,CAAC,MAAM,gBAAgB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEjG,6CAA6C;IAC7C,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAC1D,0DAA0D;YAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC/F,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC7C,WAAW,CAAC,IAAI,CAAC,KAAK,UAAU,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACnC,uCAAuC;YACzC,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,CAAC,KAAK,UAAU,OAAO,KAAK,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;IAC3D,CAAC;IAED,yBAAyB;IACzB,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACnC,QAAQ,IAAI,kBAAkB,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;YAClC,QAAQ,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,SAAS,CAAC;YAC3D,QAAQ,IAAI,kBAAkB,YAAY,yBAAyB,OAAO,CAAC,MAAM,cAAc,CAAC;QAClG,CAAC;aAAM,CAAC;YACN,QAAQ,IAAI,GAAG,OAAO,MAAM,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,IAAI,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzE,QAAQ,IAAI,oBAAoB,CAAC;QAEjC,oDAAoD;QACpD,MAAM,OAAO,GAAG,IAAI,GAAG,EAAe,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3B,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;QAED,2CAA2C;QAC3C,MAAM,SAAS,GAA6B,EAAE,CAAC;QAC/C,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,IAAI,SAAS,CAAC;YAC9C,kEAAkE;YAClE,MAAM,SAAS,GAAG,OAAO;iBACtB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBACnE,IAAI,CAAC,GAAG,CAAC,CAAC;YAEb,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC;YAED,+DAA+D;YAC/D,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC;YACvE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,+BAA+B;QAC/B,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5D,qBAAqB;YACrB,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAC1C,QAAQ,IAAI,KAAK,SAAS,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/D,CAAC;QACD,QAAQ,IAAI,IAAI,CAAC;IACnB,CAAC;SAAM,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,mEAAmE;QACnE,QAAQ,IAAI,oBAAoB,CAAC;QAEjC,MAAM,MAAM,GAA0B,EAAE,CAAC;QACzC,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAED,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACrE,QAAQ,IAAI,KAAK,SAAS,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACjF,CAAC;QACD,QAAQ,IAAI,IAAI,CAAC;IACnB,CAAC;IAED,QAAQ,IAAI,iBAAiB,IAAI,CAAC,QAAQ,KAAK,CAAC;IAChD,QAAQ,IAAI,kBAAkB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,GAAG,CAAC;IAEzE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAA4B,EAC5B,KAAY,EACZ,cAAc,GAAG,KAAK,EACtB,YAAY,GAAG,GAAG;IAElB,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IAEzC,IAAI,QAAQ,GAAG,KAAK,UAAU,MAAM,CAAC;IACrC,QAAQ,IAAI,SAAS,KAAK,CAAC,MAAM,IAAI,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC;IAErE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,QAAQ,IAAI,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC;QACjC,QAAQ,IAAI,eAAe,IAAI,CAAC,EAAE,MAAM,CAAC;QACzC,QAAQ,IAAI,iBAAiB,IAAI,CAAC,MAAM,IAAI,CAAC;QAC7C,QAAQ,IAAI,eAAe,IAAI,CAAC,QAAQ,IAAI,CAAC;QAE7C,IAAI,cAAc,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,OAAO,CAAC,MAAM,GAAG,YAAY,EAAE,CAAC;gBAClC,QAAQ,IAAI,kBAAkB,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,QAAQ,IAAI,kBAAkB,OAAO,IAAI,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,QAAQ,IAAI,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,5 +1,14 @@
1
1
  import type { VaultNote } from '../types/index.js';
2
+ import type { z } from 'zod';
2
3
  export declare class MarkdownParser {
4
+ private frontmatterSchema;
5
+ /**
6
+ * Create a new MarkdownParser.
7
+ *
8
+ * @param frontmatterSchema - Optional custom frontmatter schema for template-aware validation.
9
+ * Defaults to BaseFrontmatterSchema for backwards compatibility.
10
+ */
11
+ constructor(frontmatterSchema?: z.ZodObject<any>);
3
12
  /**
4
13
  * Parse a markdown file and extract frontmatter, content, and links
5
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/parser/markdown.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAA4B,MAAM,mBAAmB,CAAC;AAI7E,qBAAa,cAAc;IACzB;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAKrD;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS;IAqC1D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;IACH,OAAO,CAAC,eAAe;IA+BvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAczB"}
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/parser/markdown.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAA4B,MAAM,mBAAmB,CAAC;AAG7E,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,qBAAa,cAAc;IACzB,OAAO,CAAC,iBAAiB,CAAmB;IAE5C;;;;;OAKG;gBACS,iBAAiB,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC;IAIhD;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAKrD;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS;IAqC1D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,OAAO,CAAC,eAAe;IA+BvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAczB"}
@@ -3,6 +3,16 @@ import { remark } from 'remark';
3
3
  import { BaseFrontmatterSchema } from '../types/index.js';
4
4
  import { promises as fs } from 'fs';
5
5
  export class MarkdownParser {
6
+ frontmatterSchema;
7
+ /**
8
+ * Create a new MarkdownParser.
9
+ *
10
+ * @param frontmatterSchema - Optional custom frontmatter schema for template-aware validation.
11
+ * Defaults to BaseFrontmatterSchema for backwards compatibility.
12
+ */
13
+ constructor(frontmatterSchema) {
14
+ this.frontmatterSchema = frontmatterSchema ?? BaseFrontmatterSchema;
15
+ }
6
16
  /**
7
17
  * Parse a markdown file and extract frontmatter, content, and links
8
18
  */
@@ -47,8 +57,9 @@ export class MarkdownParser {
47
57
  */
48
58
  parseFrontmatter(raw) {
49
59
  try {
50
- // Validate with Zod schema
51
- return BaseFrontmatterSchema.parse(raw);
60
+ // Validate with Zod schema (uses injected schema or default)
61
+ // Cast is safe because injected schemas extend BaseFrontmatterSchema
62
+ return this.frontmatterSchema.parse(raw);
52
63
  }
53
64
  catch (error) {
54
65
  // Check if frontmatter is completely missing
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/parser/markdown.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/parser/markdown.ts"],"names":[],"mappings":"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"}
@@ -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): Promise<{
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;KACH,GAAG,OAAO,CAAC,WAAW,CAAC;IAgDxB;;OAEG;IACG,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAClD,IAAI,EAAE,GAAG,CAAC;QACV,aAAa,EAAE,GAAG,EAAE,CAAC;QACrB,YAAY,EAAE,GAAG,EAAE,CAAC;KACrB,GAAG,IAAI,CAAC;IAwBT;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAIlD;;OAEG;IACH,QAAQ;;;;;;;CAGT"}
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"}
@@ -33,7 +33,11 @@ export class SearchEngine {
33
33
  let relationships = [];
34
34
  if (options?.includeRelationships) {
35
35
  for (const node of nodes) {
36
- const rels = this.db.getRelationships(node.id);
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
- const relationships = this.db.getRelationships(id);
58
- // Get related nodes
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":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/search/engine.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -13,15 +13,19 @@ export declare class HivemindServer {
13
13
  private queryMetrics;
14
14
  constructor(config: HivemindConfig);
15
15
  private setupHandlers;
16
- private handleQueryCharacter;
17
- private handleQueryLocation;
16
+ /**
17
+ * Generic query handler for dynamically generated query_<entityType> tools.
18
+ */
19
+ private handleGenericQuery;
20
+ /**
21
+ * Generic list handler for dynamically generated list_<entityType> tools.
22
+ */
23
+ private handleGenericList;
18
24
  private handleSearchVault;
19
25
  private handleRebuildIndex;
20
26
  private handleGetVaultStats;
21
27
  private setupVaultWatcher;
22
28
  private ensureIndexed;
23
- private formatCharacterWithRelationships;
24
- private formatLocationWithRelationships;
25
29
  private formatSearchResults;
26
30
  private handleStoreWorkflow;
27
31
  private handleListWorkflows;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AASA,OAAO,EAYL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAY1B,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,YAAY,CAIlB;gBAEU,MAAM,EAAE,cAAc;IA+ClC,OAAO,CAAC,aAAa;YA0fP,oBAAoB;YA+CpB,mBAAmB;YA+CnB,iBAAiB;YA2CjB,kBAAkB;YAiClB,mBAAmB;IA6FjC,OAAO,CAAC,iBAAiB;YAcX,aAAa;IAwC3B,OAAO,CAAC,gCAAgC;IAwExC,OAAO,CAAC,+BAA+B;IA8CvC,OAAO,CAAC,mBAAmB;YA2Bb,mBAAmB;YAkBnB,mBAAmB;YA8BnB,iBAAiB;YA0BjB,mBAAmB;YAwInB,gBAAgB;YAkChB,gBAAgB;YAkDhB,gBAAgB;YA4DhB,oBAAoB;YAqEpB,qBAAqB;YAsDrB,yBAAyB;IA4GjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAkCd,gBAAgB;CA2B/B"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AASA,OAAO,EAUL,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAsB1B,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,YAAY,CAIlB;gBAEU,MAAM,EAAE,cAAc;IA+ClC,OAAO,CAAC,aAAa;IA6drB;;OAEG;YACW,kBAAkB;IA8DhC;;OAEG;YACW,iBAAiB;YA4CjB,iBAAiB;YA2CjB,kBAAkB;YAiClB,mBAAmB;IA6FjC,OAAO,CAAC,iBAAiB;YAcX,aAAa;IAwC3B,OAAO,CAAC,mBAAmB;YA2Bb,mBAAmB;YAkBnB,mBAAmB;YA8BnB,iBAAiB;YA0BjB,mBAAmB;YAwInB,gBAAgB;YAkChB,gBAAgB;YAkDhB,gBAAgB;YA4DhB,oBAAoB;YAqEpB,qBAAqB;YAsDrB,yBAAyB;IA4GjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAkCd,gBAAgB;CA2B/B"}