@hiveforge/hivemind-mcp 3.4.0 → 3.5.1

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
@@ -155,15 +155,9 @@ export class HivemindDatabase {
155
155
  stmt.run(sourceId, targetId, relType || 'related', properties ? JSON.stringify(properties) : null);
156
156
  }
157
157
  /**
158
- * Get a node by ID
158
+ * Convert a database row to a GraphNode
159
159
  */
160
- getNode(id) {
161
- const stmt = this.db.prepare(`
162
- SELECT * FROM nodes WHERE id = ?
163
- `);
164
- const row = stmt.get(id);
165
- if (!row)
166
- return undefined;
160
+ rowToGraphNode(row) {
167
161
  return {
168
162
  id: row.id,
169
163
  type: row.type,
@@ -176,23 +170,25 @@ export class HivemindDatabase {
176
170
  updated: new Date(row.updated_at),
177
171
  };
178
172
  }
173
+ /**
174
+ * Get a node by ID
175
+ */
176
+ getNode(id) {
177
+ const stmt = this.db.prepare(`
178
+ SELECT * FROM nodes WHERE id = ?
179
+ `);
180
+ const row = stmt.get(id);
181
+ if (!row)
182
+ return undefined;
183
+ return this.rowToGraphNode(row);
184
+ }
179
185
  /**
180
186
  * Get all nodes
181
187
  */
182
188
  getAllNodes() {
183
189
  const stmt = this.db.prepare('SELECT * FROM nodes ORDER BY updated_at DESC');
184
190
  const rows = stmt.all();
185
- return rows.map(row => ({
186
- id: row.id,
187
- type: row.type,
188
- status: row.status,
189
- title: row.title,
190
- content: row.content,
191
- properties: JSON.parse(row.frontmatter),
192
- filePath: row.file_path,
193
- created: new Date(row.created_at),
194
- updated: new Date(row.updated_at),
195
- }));
191
+ return rows.map(row => this.rowToGraphNode(row));
196
192
  }
197
193
  /**
198
194
  * Get nodes by type
@@ -200,17 +196,7 @@ export class HivemindDatabase {
200
196
  getNodesByType(type) {
201
197
  const stmt = this.db.prepare('SELECT * FROM nodes WHERE type = ? ORDER BY title');
202
198
  const rows = stmt.all(type);
203
- return rows.map(row => ({
204
- id: row.id,
205
- type: row.type,
206
- status: row.status,
207
- title: row.title,
208
- content: row.content,
209
- properties: JSON.parse(row.frontmatter),
210
- filePath: row.file_path,
211
- created: new Date(row.created_at),
212
- updated: new Date(row.updated_at),
213
- }));
199
+ return rows.map(row => this.rowToGraphNode(row));
214
200
  }
215
201
  /**
216
202
  * Get relationships for a node
@@ -292,6 +278,408 @@ export class HivemindDatabase {
292
278
  const result = this.db.prepare('SELECT COUNT(*) as count FROM nodes').get();
293
279
  return result.count > 0;
294
280
  }
281
+ /**
282
+ * Initialize generated columns for date fields
283
+ * Creates VIRTUAL generated columns that extract date values from JSON frontmatter
284
+ * and indexes them for efficient queries.
285
+ *
286
+ * @param dateFields - Array of date field names (e.g., ['birth_date', 'start_date'])
287
+ */
288
+ initializeDateColumns(dateFields) {
289
+ for (const field of dateFields) {
290
+ try {
291
+ // Add VIRTUAL generated column
292
+ // SQLite doesn't support IF NOT EXISTS for ALTER TABLE ADD COLUMN
293
+ // So we catch the error if column already exists
294
+ this.db.exec(`
295
+ ALTER TABLE nodes
296
+ ADD COLUMN ${field} TEXT
297
+ GENERATED ALWAYS AS (json_extract(frontmatter, '$.${field}')) VIRTUAL;
298
+ `);
299
+ }
300
+ catch (error) {
301
+ // Ignore "duplicate column" errors (makes this idempotent)
302
+ if (!(error instanceof Error && error.message.includes('duplicate column'))) {
303
+ throw error;
304
+ }
305
+ }
306
+ // Create index on the generated column (IF NOT EXISTS supported for indexes)
307
+ this.db.exec(`
308
+ CREATE INDEX IF NOT EXISTS idx_nodes_${field} ON nodes(${field});
309
+ `);
310
+ }
311
+ }
312
+ /**
313
+ * Query nodes by date range
314
+ *
315
+ * @param startDate - Start date (inclusive) in ISO format (YYYY-MM-DD)
316
+ * @param endDate - End date (inclusive) in ISO format (YYYY-MM-DD)
317
+ * @param dateField - Name of the date field to query
318
+ * @param options - Query options (entityType, sortOrder, limit)
319
+ * @returns Array of matching GraphNodes
320
+ */
321
+ queryByDateRange(startDate, endDate, dateField, options) {
322
+ const { entityType, sortOrder = 'asc', limit = 100 } = options || {};
323
+ let sql = `
324
+ SELECT * FROM nodes
325
+ WHERE json_extract(frontmatter, '$.${dateField}') BETWEEN ? AND ?
326
+ `;
327
+ const params = [startDate, endDate];
328
+ if (entityType) {
329
+ sql += ' AND type = ?';
330
+ params.push(entityType);
331
+ }
332
+ sql += ` ORDER BY json_extract(frontmatter, '$.${dateField}') ${sortOrder.toUpperCase()}`;
333
+ sql += ' LIMIT ?';
334
+ params.push(limit);
335
+ const stmt = this.db.prepare(sql);
336
+ const rows = stmt.all(...params);
337
+ return rows.map(row => this.rowToGraphNode(row));
338
+ }
339
+ /**
340
+ * Query nodes before a specific date
341
+ *
342
+ * @param date - Date threshold in ISO format (YYYY-MM-DD)
343
+ * @param dateField - Name of the date field to query
344
+ * @param options - Query options (entityType, sortOrder, limit)
345
+ * @returns Array of matching GraphNodes (default: desc order - most recent first)
346
+ */
347
+ queryByDateBefore(date, dateField, options) {
348
+ const { entityType, sortOrder = 'desc', limit = 100 } = options || {};
349
+ let sql = `
350
+ SELECT * FROM nodes
351
+ WHERE json_extract(frontmatter, '$.${dateField}') < ?
352
+ `;
353
+ const params = [date];
354
+ if (entityType) {
355
+ sql += ' AND type = ?';
356
+ params.push(entityType);
357
+ }
358
+ sql += ` ORDER BY json_extract(frontmatter, '$.${dateField}') ${sortOrder.toUpperCase()}`;
359
+ sql += ' LIMIT ?';
360
+ params.push(limit);
361
+ const stmt = this.db.prepare(sql);
362
+ const rows = stmt.all(...params);
363
+ return rows.map(row => this.rowToGraphNode(row));
364
+ }
365
+ /**
366
+ * Query nodes after a specific date
367
+ *
368
+ * @param date - Date threshold in ISO format (YYYY-MM-DD)
369
+ * @param dateField - Name of the date field to query
370
+ * @param options - Query options (entityType, sortOrder, limit)
371
+ * @returns Array of matching GraphNodes (default: asc order - earliest first)
372
+ */
373
+ queryByDateAfter(date, dateField, options) {
374
+ const { entityType, sortOrder = 'asc', limit = 100 } = options || {};
375
+ let sql = `
376
+ SELECT * FROM nodes
377
+ WHERE json_extract(frontmatter, '$.${dateField}') > ?
378
+ `;
379
+ const params = [date];
380
+ if (entityType) {
381
+ sql += ' AND type = ?';
382
+ params.push(entityType);
383
+ }
384
+ sql += ` ORDER BY json_extract(frontmatter, '$.${dateField}') ${sortOrder.toUpperCase()}`;
385
+ sql += ' LIMIT ?';
386
+ params.push(limit);
387
+ const stmt = this.db.prepare(sql);
388
+ const rows = stmt.all(...params);
389
+ return rows.map(row => this.rowToGraphNode(row));
390
+ }
391
+ /**
392
+ * Query nodes by exact date match
393
+ *
394
+ * @param date - Date to match in ISO format (YYYY-MM-DD)
395
+ * @param dateField - Name of the date field to query
396
+ * @param options - Query options (entityType, sortOrder, limit)
397
+ * @returns Array of matching GraphNodes
398
+ */
399
+ queryByExactDate(date, dateField, options) {
400
+ const { entityType, sortOrder = 'asc', limit = 100 } = options || {};
401
+ let sql = `
402
+ SELECT * FROM nodes
403
+ WHERE json_extract(frontmatter, '$.${dateField}') = ?
404
+ `;
405
+ const params = [date];
406
+ if (entityType) {
407
+ sql += ' AND type = ?';
408
+ params.push(entityType);
409
+ }
410
+ sql += ` ORDER BY json_extract(frontmatter, '$.${dateField}') ${sortOrder.toUpperCase()}`;
411
+ sql += ' LIMIT ?';
412
+ params.push(limit);
413
+ const stmt = this.db.prepare(sql);
414
+ const rows = stmt.all(...params);
415
+ return rows.map(row => this.rowToGraphNode(row));
416
+ }
417
+ /**
418
+ * Query nodes whose date range overlaps with the specified range
419
+ * Useful for events with start_date and end_date
420
+ *
421
+ * @param startDate - Query range start in ISO format (YYYY-MM-DD)
422
+ * @param endDate - Query range end in ISO format (YYYY-MM-DD)
423
+ * @param startField - Name of the start date field
424
+ * @param endField - Name of the end date field
425
+ * @param options - Query options (entityType, sortOrder, limit)
426
+ * @returns Array of matching GraphNodes
427
+ */
428
+ queryByDateOverlap(startDate, endDate, startField, endField, options) {
429
+ const { entityType, sortOrder = 'asc', limit = 100 } = options || {};
430
+ // Overlap condition: entity starts before query ends AND (entity ends after query starts OR entity has no end date)
431
+ let sql = `
432
+ SELECT * FROM nodes
433
+ WHERE json_extract(frontmatter, '$.${startField}') <= ?
434
+ AND (
435
+ json_extract(frontmatter, '$.${endField}') >= ?
436
+ OR json_extract(frontmatter, '$.${endField}') IS NULL
437
+ )
438
+ `;
439
+ const params = [endDate, startDate];
440
+ if (entityType) {
441
+ sql += ' AND type = ?';
442
+ params.push(entityType);
443
+ }
444
+ sql += ` ORDER BY json_extract(frontmatter, '$.${startField}') ${sortOrder.toUpperCase()}`;
445
+ sql += ' LIMIT ?';
446
+ params.push(limit);
447
+ const stmt = this.db.prepare(sql);
448
+ const rows = stmt.all(...params);
449
+ return rows.map(row => this.rowToGraphNode(row));
450
+ }
451
+ /**
452
+ * Query immediate neighbors (1-hop connections) of an entity
453
+ *
454
+ * @param entityId - Entity to find neighbors for
455
+ * @param options - Filter options (direction, relationship types, entity types, limit)
456
+ * @returns Array of neighbors with relationship info
457
+ */
458
+ queryNeighbors(entityId, options) {
459
+ const { direction = 'both', limit = 100 } = options || {};
460
+ let sql = `
461
+ SELECT
462
+ CASE
463
+ WHEN r.source_id = ? THEN r.target_id
464
+ ELSE r.source_id
465
+ END as neighbor_id,
466
+ r.rel_type,
467
+ CASE
468
+ WHEN r.source_id = ? THEN 'outgoing'
469
+ ELSE 'incoming'
470
+ END as direction
471
+ FROM relationships r
472
+ WHERE
473
+ `;
474
+ const params = [entityId, entityId];
475
+ // Direction filter
476
+ if (direction === 'outgoing') {
477
+ sql += `r.source_id = ?`;
478
+ params.push(entityId);
479
+ }
480
+ else if (direction === 'incoming') {
481
+ sql += `r.target_id = ?`;
482
+ params.push(entityId);
483
+ }
484
+ else {
485
+ sql += `(r.source_id = ? OR r.target_id = ?)`;
486
+ params.push(entityId, entityId);
487
+ }
488
+ // Relationship type filters
489
+ if (options?.includeRelationships?.length) {
490
+ sql += ` AND r.rel_type IN (${options.includeRelationships.map(() => '?').join(',')})`;
491
+ params.push(...options.includeRelationships);
492
+ }
493
+ else if (options?.excludeRelationships?.length) {
494
+ sql += ` AND r.rel_type NOT IN (${options.excludeRelationships.map(() => '?').join(',')})`;
495
+ params.push(...options.excludeRelationships);
496
+ }
497
+ // Entity type filter - requires JOIN with nodes table
498
+ if (options?.includeEntityTypes?.length) {
499
+ sql = `
500
+ SELECT neighbor_id, rel_type, direction FROM (
501
+ ${sql}
502
+ ) filtered
503
+ JOIN nodes n ON n.id = filtered.neighbor_id
504
+ WHERE n.type IN (${options.includeEntityTypes.map(() => '?').join(',')})
505
+ `;
506
+ params.push(...options.includeEntityTypes);
507
+ }
508
+ sql += ` LIMIT ?`;
509
+ params.push(limit);
510
+ const stmt = this.db.prepare(sql);
511
+ return stmt.all(...params);
512
+ }
513
+ /**
514
+ * Query multi-hop subgraph from a starting entity
515
+ *
516
+ * @param entityId - Starting entity
517
+ * @param depth - Number of hops (1-5, capped at 5)
518
+ * @param options - Filter options
519
+ * @returns Array of entities at specified depth(s) with path info
520
+ */
521
+ querySubgraph(entityId, depth, options) {
522
+ const { direction = 'both', includeIntermediateNodes = false } = options || {};
523
+ const maxDepth = Math.min(depth, 5); // Cap at 5 for safety
524
+ // Build relationship type filter
525
+ let relFilter = '';
526
+ const relFilterParams = [];
527
+ if (options?.includeRelationships?.length) {
528
+ relFilter = `AND r.rel_type IN (${options.includeRelationships.map(() => '?').join(',')})`;
529
+ relFilterParams.push(...options.includeRelationships);
530
+ }
531
+ else if (options?.excludeRelationships?.length) {
532
+ relFilter = `AND r.rel_type NOT IN (${options.excludeRelationships.map(() => '?').join(',')})`;
533
+ relFilterParams.push(...options.excludeRelationships);
534
+ }
535
+ // Build direction filter
536
+ let directionJoin = '(r.source_id = t.entity_id OR r.target_id = t.entity_id)';
537
+ if (direction === 'outgoing') {
538
+ directionJoin = 'r.source_id = t.entity_id';
539
+ }
540
+ else if (direction === 'incoming') {
541
+ directionJoin = 'r.target_id = t.entity_id';
542
+ }
543
+ let sql = `
544
+ WITH RECURSIVE traversal(entity_id, depth, path) AS (
545
+ -- Base case: starting entity
546
+ SELECT ?, 0, ?
547
+
548
+ UNION ALL
549
+
550
+ -- Recursive case: traverse edges
551
+ SELECT
552
+ CASE WHEN r.source_id = t.entity_id THEN r.target_id ELSE r.source_id END,
553
+ t.depth + 1,
554
+ t.path || ',' || CASE WHEN r.source_id = t.entity_id THEN r.target_id ELSE r.source_id END
555
+ FROM traversal t
556
+ JOIN relationships r ON ${directionJoin}
557
+ WHERE t.depth < ?
558
+ ${relFilter}
559
+ -- Cycle prevention: don't revisit nodes in current path
560
+ AND t.path NOT LIKE '%' ||
561
+ CASE WHEN r.source_id = t.entity_id THEN r.target_id ELSE r.source_id END || '%'
562
+ ),
563
+ shortest_paths AS (
564
+ SELECT entity_id, MIN(depth) as depth,
565
+ (SELECT path FROM traversal t2 WHERE t2.entity_id = traversal.entity_id ORDER BY depth LIMIT 1) as path
566
+ FROM traversal
567
+ WHERE depth > 0
568
+ GROUP BY entity_id
569
+ )
570
+ SELECT entity_id, depth, path
571
+ FROM shortest_paths
572
+ ${includeIntermediateNodes ? '' : `WHERE depth = ?`}
573
+ ORDER BY depth
574
+ `;
575
+ const params = [
576
+ entityId,
577
+ entityId,
578
+ maxDepth,
579
+ ...relFilterParams
580
+ ];
581
+ if (!includeIntermediateNodes) {
582
+ params.push(maxDepth);
583
+ }
584
+ // Add entity type filter if specified
585
+ if (options?.includeEntityTypes?.length) {
586
+ sql = `
587
+ SELECT entity_id, depth, path FROM (
588
+ ${sql}
589
+ ) filtered
590
+ JOIN nodes n ON n.id = filtered.entity_id
591
+ WHERE n.type IN (${options.includeEntityTypes.map(() => '?').join(',')})
592
+ `;
593
+ params.push(...options.includeEntityTypes);
594
+ }
595
+ const stmt = this.db.prepare(sql);
596
+ return stmt.all(...params);
597
+ }
598
+ /**
599
+ * Find shortest path between two entities using BFS
600
+ *
601
+ * @param fromEntityId - Starting entity
602
+ * @param toEntityId - Target entity
603
+ * @param options - Filter options (relationship types, max depth)
604
+ * @returns Path info or not found
605
+ */
606
+ queryShortestPath(fromEntityId, toEntityId, options) {
607
+ const maxDepth = options?.maxDepth || 10;
608
+ // Build relationship filter
609
+ let relFilter = '';
610
+ const relFilterParams = [];
611
+ if (options?.includeRelationships?.length) {
612
+ relFilter = `AND r.rel_type IN (${options.includeRelationships.map(() => '?').join(',')})`;
613
+ relFilterParams.push(...options.includeRelationships);
614
+ }
615
+ // BFS finds shortest path naturally - first time we reach target is shortest
616
+ const sql = `
617
+ WITH RECURSIVE path_search(entity_id, path, depth) AS (
618
+ -- Start from source
619
+ SELECT ?, ?, 0
620
+
621
+ UNION ALL
622
+
623
+ -- Explore neighbors
624
+ SELECT
625
+ CASE WHEN r.source_id = p.entity_id THEN r.target_id ELSE r.source_id END as next_id,
626
+ p.path || ',' || CASE WHEN r.source_id = p.entity_id THEN r.target_id ELSE r.source_id END,
627
+ p.depth + 1
628
+ FROM path_search p
629
+ JOIN relationships r ON (r.source_id = p.entity_id OR r.target_id = p.entity_id)
630
+ WHERE p.depth < ?
631
+ ${relFilter}
632
+ -- Don't revisit nodes (check if next node is already in path)
633
+ AND p.path NOT LIKE '%' ||
634
+ CASE WHEN r.source_id = p.entity_id THEN r.target_id ELSE r.source_id END || '%'
635
+ )
636
+ SELECT path, depth
637
+ FROM path_search
638
+ WHERE entity_id = ?
639
+ ORDER BY depth
640
+ LIMIT 1
641
+ `;
642
+ const params = [
643
+ fromEntityId,
644
+ fromEntityId,
645
+ maxDepth,
646
+ ...relFilterParams,
647
+ toEntityId
648
+ ];
649
+ const stmt = this.db.prepare(sql);
650
+ const result = stmt.get(...params);
651
+ if (!result) {
652
+ return { found: false, path: [], edges: [] };
653
+ }
654
+ const pathIds = result.path.split(',');
655
+ // Build edge list from path
656
+ const edges = [];
657
+ for (let i = 0; i < pathIds.length - 1; i++) {
658
+ const edge = this.getEdgeBetween(pathIds[i], pathIds[i + 1]);
659
+ if (edge) {
660
+ edges.push({ from: pathIds[i], to: pathIds[i + 1], type: edge.rel_type });
661
+ }
662
+ }
663
+ return { found: true, path: pathIds, edges };
664
+ }
665
+ /**
666
+ * Get edge information between two directly connected nodes
667
+ *
668
+ * @param nodeA - First node ID
669
+ * @param nodeB - Second node ID
670
+ * @returns Edge info or null if no direct connection
671
+ */
672
+ getEdgeBetween(nodeA, nodeB) {
673
+ const stmt = this.db.prepare(`
674
+ SELECT rel_type
675
+ FROM relationships
676
+ WHERE (source_id = ? AND target_id = ?)
677
+ OR (source_id = ? AND target_id = ?)
678
+ LIMIT 1
679
+ `);
680
+ const result = stmt.get(nodeA, nodeB, nodeB, nodeA);
681
+ return result || null;
682
+ }
295
683
  /**
296
684
  * Close database connection
297
685
  */
@@ -1 +1 @@
1
- {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/graph/database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/graph/database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Graph MCP tools - relationship traversal and path finding.
3
+ *
4
+ * Provides graph traversal tools for querying entity relationships,
5
+ * finding shortest paths, and discovering available relationship types.
6
+ */
7
+ import { z } from 'zod';
8
+ import type { ToolDefinition } from './tool-generator.js';
9
+ /**
10
+ * Validation schema for query_graph_neighbors arguments.
11
+ *
12
+ * Finds immediate neighbors (1-hop connections) of an entity.
13
+ */
14
+ export declare const QueryGraphNeighborsArgsSchema: z.ZodObject<{
15
+ entityId: z.ZodString;
16
+ direction: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
17
+ outgoing: "outgoing";
18
+ incoming: "incoming";
19
+ both: "both";
20
+ }>>>;
21
+ includeRelationships: z.ZodOptional<z.ZodArray<z.ZodString>>;
22
+ excludeRelationships: z.ZodOptional<z.ZodArray<z.ZodString>>;
23
+ includeEntityTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
24
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
25
+ }, z.core.$strip>;
26
+ export type QueryGraphNeighborsArgs = z.infer<typeof QueryGraphNeighborsArgsSchema>;
27
+ /**
28
+ * Validation schema for query_graph_subgraph arguments.
29
+ *
30
+ * Finds entities within N hops of a starting entity.
31
+ */
32
+ export declare const QueryGraphSubgraphArgsSchema: z.ZodObject<{
33
+ entityId: z.ZodString;
34
+ depth: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
35
+ direction: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
36
+ outgoing: "outgoing";
37
+ incoming: "incoming";
38
+ both: "both";
39
+ }>>>;
40
+ includeRelationships: z.ZodOptional<z.ZodArray<z.ZodString>>;
41
+ excludeRelationships: z.ZodOptional<z.ZodArray<z.ZodString>>;
42
+ includeEntityTypes: z.ZodOptional<z.ZodArray<z.ZodString>>;
43
+ includeIntermediateNodes: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
44
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
45
+ }, z.core.$strip>;
46
+ export type QueryGraphSubgraphArgs = z.infer<typeof QueryGraphSubgraphArgsSchema>;
47
+ /**
48
+ * Validation schema for query_graph_path arguments.
49
+ *
50
+ * Finds the shortest path between two entities.
51
+ */
52
+ export declare const QueryGraphPathArgsSchema: z.ZodObject<{
53
+ fromEntityId: z.ZodString;
54
+ toEntityId: z.ZodString;
55
+ includeRelationships: z.ZodOptional<z.ZodArray<z.ZodString>>;
56
+ maxDepth: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
57
+ }, z.core.$strip>;
58
+ export type QueryGraphPathArgs = z.infer<typeof QueryGraphPathArgsSchema>;
59
+ /**
60
+ * Validation schema for list_relationship_types arguments.
61
+ *
62
+ * Lists all relationship types available in the vault.
63
+ */
64
+ export declare const ListRelationshipTypesArgsSchema: z.ZodObject<{}, z.core.$strip>;
65
+ export type ListRelationshipTypesArgs = z.infer<typeof ListRelationshipTypesArgsSchema>;
66
+ /**
67
+ * Generates MCP tool definitions for graph queries.
68
+ *
69
+ * Creates four tools: query_graph_neighbors, query_graph_subgraph,
70
+ * query_graph_path, and list_relationship_types.
71
+ *
72
+ * Tool descriptions dynamically include available relationship types
73
+ * when an active template is present.
74
+ *
75
+ * @returns Array of tool definitions for MCP registration
76
+ */
77
+ export declare function generateGraphTools(): ToolDefinition[];
78
+ //# sourceMappingURL=graph-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/graph-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;iBA4BxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF;;;;GAIG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;iBAwCvC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAElF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;;;;iBAkBnC,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;;;GAIG;AACH,eAAO,MAAM,+BAA+B,gCAE1C,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAExF;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CA0JrD"}