@hiveforge/hivemind-mcp 2.2.0 → 2.3.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 (61) hide show
  1. package/README.md +18 -9
  2. package/dist/cli.js +193 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/mcp/index.d.ts +8 -0
  5. package/dist/mcp/index.d.ts.map +1 -0
  6. package/dist/mcp/index.js +8 -0
  7. package/dist/mcp/index.js.map +1 -0
  8. package/dist/mcp/tool-generator.d.ts +108 -0
  9. package/dist/mcp/tool-generator.d.ts.map +1 -0
  10. package/dist/mcp/tool-generator.js +245 -0
  11. package/dist/mcp/tool-generator.js.map +1 -0
  12. package/dist/parser/markdown.d.ts +9 -0
  13. package/dist/parser/markdown.d.ts.map +1 -1
  14. package/dist/parser/markdown.js +13 -2
  15. package/dist/parser/markdown.js.map +1 -1
  16. package/dist/server.d.ts +8 -4
  17. package/dist/server.d.ts.map +1 -1
  18. package/dist/server.js +66 -199
  19. package/dist/server.js.map +1 -1
  20. package/dist/templates/builtin/worldbuilding.d.ts +20 -0
  21. package/dist/templates/builtin/worldbuilding.d.ts.map +1 -0
  22. package/dist/templates/builtin/worldbuilding.js +464 -0
  23. package/dist/templates/builtin/worldbuilding.js.map +1 -0
  24. package/dist/templates/detector.d.ts +51 -0
  25. package/dist/templates/detector.d.ts.map +1 -0
  26. package/dist/templates/detector.js +71 -0
  27. package/dist/templates/detector.js.map +1 -0
  28. package/dist/templates/folder-mapper.d.ts +66 -0
  29. package/dist/templates/folder-mapper.d.ts.map +1 -0
  30. package/dist/templates/folder-mapper.js +148 -0
  31. package/dist/templates/folder-mapper.js.map +1 -0
  32. package/dist/templates/index.d.ts +15 -0
  33. package/dist/templates/index.d.ts.map +1 -0
  34. package/dist/templates/index.js +15 -0
  35. package/dist/templates/index.js.map +1 -0
  36. package/dist/templates/loader.d.ts +115 -0
  37. package/dist/templates/loader.d.ts.map +1 -0
  38. package/dist/templates/loader.js +202 -0
  39. package/dist/templates/loader.js.map +1 -0
  40. package/dist/templates/registry.d.ts +97 -0
  41. package/dist/templates/registry.d.ts.map +1 -0
  42. package/dist/templates/registry.js +141 -0
  43. package/dist/templates/registry.js.map +1 -0
  44. package/dist/templates/schema-factory.d.ts +76 -0
  45. package/dist/templates/schema-factory.d.ts.map +1 -0
  46. package/dist/templates/schema-factory.js +171 -0
  47. package/dist/templates/schema-factory.js.map +1 -0
  48. package/dist/templates/types.d.ts +12 -0
  49. package/dist/templates/types.d.ts.map +1 -1
  50. package/dist/templates/validator.d.ts +200 -0
  51. package/dist/templates/validator.d.ts.map +1 -0
  52. package/dist/templates/validator.js +136 -0
  53. package/dist/templates/validator.js.map +1 -0
  54. package/dist/types/index.d.ts +57 -21
  55. package/dist/types/index.d.ts.map +1 -1
  56. package/dist/types/index.js +39 -15
  57. package/dist/types/index.js.map +1 -1
  58. package/dist/vault/reader.d.ts.map +1 -1
  59. package/dist/vault/reader.js +15 -1
  60. package/dist/vault/reader.js.map +1 -1
  61. package/package.json +7 -4
@@ -0,0 +1,245 @@
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
+ *
146
+ * @param entityType - Entity type configuration
147
+ * @param result - Query result with node and relatedNodes
148
+ * @param includeContent - Whether to include content body
149
+ * @param contentLimit - Maximum content length
150
+ * @returns Formatted markdown response
151
+ */
152
+ export function formatEntityWithRelationships(entityType, result, includeContent = true, contentLimit = 500) {
153
+ const { node, relatedNodes } = result;
154
+ const props = node.properties;
155
+ const displayName = entityType.displayName;
156
+ let response = `# ${node.title}\n\n`;
157
+ response += `**Type**: ${displayName} | **Status**: ${node.status} | **ID**: \`${node.id}\`\n\n`;
158
+ // Display configured fields from entity type
159
+ const fieldValues = [];
160
+ for (const field of entityType.fields) {
161
+ const value = props[field.name];
162
+ if (value !== undefined && value !== null && value !== '') {
163
+ // Format field name for display (capitalize first letter)
164
+ const fieldLabel = field.name.charAt(0).toUpperCase() + field.name.slice(1).replace(/_/g, ' ');
165
+ if (field.type === 'array') {
166
+ if (Array.isArray(value) && value.length > 0) {
167
+ fieldValues.push(`**${fieldLabel}**: ${value.join(', ')}`);
168
+ }
169
+ }
170
+ else if (field.type === 'record') {
171
+ // Skip complex record types in summary
172
+ }
173
+ else {
174
+ fieldValues.push(`**${fieldLabel}**: ${value}`);
175
+ }
176
+ }
177
+ }
178
+ if (fieldValues.length > 0) {
179
+ response += fieldValues.slice(0, 5).join(' | ') + '\n\n';
180
+ }
181
+ // Content (if requested)
182
+ if (includeContent && node.content) {
183
+ response += `## Description\n`;
184
+ const content = node.content.trim();
185
+ if (content.length > contentLimit) {
186
+ response += `${content.substring(0, contentLimit)}...\n\n`;
187
+ response += `*[Truncated at ${contentLimit} chars. Full content: ${content.length} chars]*\n\n`;
188
+ }
189
+ else {
190
+ response += `${content}\n\n`;
191
+ }
192
+ }
193
+ // Relationships (from graph)
194
+ if (relatedNodes.length > 0) {
195
+ response += `## Relationships\n`;
196
+ // Group by type
197
+ const byType = {};
198
+ for (const related of relatedNodes) {
199
+ const type = related.type || 'unknown';
200
+ if (!byType[type])
201
+ byType[type] = [];
202
+ byType[type].push(related);
203
+ }
204
+ for (const [type, nodes] of Object.entries(byType)) {
205
+ const typeLabel = type.charAt(0).toUpperCase() + type.slice(1) + 's';
206
+ response += `**${typeLabel}**: ${nodes.map((n) => n.title).join(', ')}\n`;
207
+ }
208
+ response += `\n`;
209
+ }
210
+ response += `---\n*Source: ${node.filePath}*\n`;
211
+ response += `*Last updated: ${new Date(node.updated).toLocaleString()}*`;
212
+ return response;
213
+ }
214
+ /**
215
+ * Format a list of entities for response.
216
+ *
217
+ * @param entityType - Entity type configuration
218
+ * @param nodes - Array of nodes to format
219
+ * @param includeContent - Whether to include content snippets
220
+ * @param contentLimit - Maximum content length per snippet
221
+ * @returns Formatted markdown response
222
+ */
223
+ export function formatEntityList(entityType, nodes, includeContent = false, contentLimit = 200) {
224
+ const pluralName = entityType.pluralName;
225
+ let response = `# ${pluralName}\n\n`;
226
+ response += `Found ${nodes.length} ${pluralName.toLowerCase()}:\n\n`;
227
+ for (const node of nodes) {
228
+ response += `## ${node.title}\n`;
229
+ response += `- **ID**: \`${node.id}\`\n`;
230
+ response += `- **Status**: ${node.status}\n`;
231
+ response += `- **Path**: ${node.filePath}\n`;
232
+ if (includeContent && node.content) {
233
+ const content = node.content.trim();
234
+ if (content.length > contentLimit) {
235
+ response += `- **Snippet**: ${content.substring(0, contentLimit)}...\n`;
236
+ }
237
+ else {
238
+ response += `- **Snippet**: ${content}\n`;
239
+ }
240
+ }
241
+ response += `\n`;
242
+ }
243
+ return response;
244
+ }
245
+ //# sourceMappingURL=tool-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-generator.js","sourceRoot":"","sources":["../../src/mcp/tool-generator.ts"],"names":[],"mappings":"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"}
@@ -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":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AAEpC,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,OAAe,EAAE,QAAgB;QAC5C,qCAAqC;QACrC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAExE,iCAAiC;QACjC,MAAM,iBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QAE7D,qBAAqB;QACrB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAE5C,mBAAmB;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAE3C,oBAAoB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QAErD,iBAAiB;QACjB,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAErD,MAAM,IAAI,GAAc;YACtB,EAAE,EAAE,iBAAiB,CAAC,EAAE;YACxB,QAAQ;YACR,QAAQ;YACR,WAAW,EAAE,iBAAiB;YAC9B,OAAO,EAAE,eAAe;YACxB,KAAK;YACL,QAAQ;YACR,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO,CAAC,MAAM;gBACpB,OAAO,EAAE,IAAI,IAAI,EAAE,EAAE,4BAA4B;gBACjD,QAAQ,EAAE,IAAI,IAAI,EAAE;aACrB;SACF,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,GAAQ;QAC/B,IAAI,CAAC;YACH,2BAA2B;YAC3B,OAAO,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6CAA6C;YAC7C,MAAM,cAAc,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAE1D,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;YAC5G,CAAC;YAED,6CAA6C;YAC7C,MAAM,aAAa,GAAa,EAAE,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG,CAAC,IAAI;gBAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,MAAM;gBAAE,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE9C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,wCAAwC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtF,CAAC;YAED,yBAAyB;YACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,GAAS;QAC/B,MAAM,QAAQ,GAAc,EAAE,CAAC;QAC/B,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,GAAW,EAAE,EAAE;YACvC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,SAAS,GAAG,IAAiB,CAAC;gBACpC,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;gBAEjD,QAAQ,CAAC,IAAI,CAAC;oBACZ,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,IAAI;oBACJ,QAAQ,EAAE,GAAG;iBACd,CAAC,CAAC;YACL,CAAC;YAED,wBAAwB;YACxB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClC,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,IAAS;QACnC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,OAAQ,IAAa,CAAC,KAAK,CAAC;QAC9B,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACK,gBAAgB,CAAC,OAAe;QACtC,MAAM,aAAa,GAAG,iCAAiC,CAAC;QACxD,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC;QAEV,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACtD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,UAAU,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9C,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/parser/markdown.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"}